diff --git a/.gitignore b/.gitignore
index cfc58f9..070f0ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,8 @@
 in-progress/
 waf
 *~
-*#
+.DS_Store
+*\#
 *.txt
 *.pdf
 *.dot
\ No newline at end of file
diff --git a/apps/ccnx-app.cc b/apps/ccnx-app.cc
index cc5e9b2..5093cf7 100644
--- a/apps/ccnx-app.cc
+++ b/apps/ccnx-app.cc
@@ -84,14 +84,14 @@
 }
     
 void
-CcnxApp::OnInterest (const Ptr<const CcnxInterestHeader> &interest)
+CcnxApp::OnInterest (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> packet)
 {
   NS_LOG_FUNCTION (this << interest);
   m_receivedInterests (interest, this, m_face);
 }
 
 void
-CcnxApp::OnNack (const Ptr<const CcnxInterestHeader> &interest)
+CcnxApp::OnNack (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> packet)
 {
   NS_LOG_FUNCTION (this << interest);
   m_receivedNacks (interest, this, m_face);
@@ -99,7 +99,7 @@
 
 void
 CcnxApp::OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
-                          const Ptr<const Packet> &payload)
+                          Ptr<Packet> payload)
 {
   NS_LOG_FUNCTION (this << contentObject << payload);
   m_receivedContentObjects (contentObject, payload, this, m_face);
diff --git a/apps/ccnx-app.h b/apps/ccnx-app.h
index ae52048..80a789c 100644
--- a/apps/ccnx-app.h
+++ b/apps/ccnx-app.h
@@ -65,25 +65,27 @@
   /**
    * @brief Method that will be called every time new Interest arrives
    * @param interest Interest header
+   * @param packet   "Payload" of the interests packet. The actual payload should be zero, but packet itself
+   *                 may be useful to get packet tags
    */
   virtual void
-  OnInterest (const Ptr<const CcnxInterestHeader> &interest);
+  OnInterest (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> packet);
 
   /**
    * @brief Method that will be called every time new NACK arrives
    * @param interest Interest header
    */
   virtual void
-  OnNack (const Ptr<const CcnxInterestHeader> &interest);
+  OnNack (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> packet);
   
   /**
    * @brief Method that will be called every time new ContentObject arrives
    * @param contentObject ContentObject header
-   * @param payload payload (potentially virtual) of the ContentObject packet
+   * @param payload payload (potentially virtual) of the ContentObject packet (may include packet tags of original packet)
    */
   virtual void
   OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
-                   const Ptr<const Packet> &payload);
+                   Ptr<Packet> payload);
         
 protected:
   virtual void
diff --git a/apps/ccnx-consumer-batches.cc b/apps/ccnx-consumer-batches.cc
new file mode 100644
index 0000000..2a86817
--- /dev/null
+++ b/apps/ccnx-consumer-batches.cc
@@ -0,0 +1,90 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ccnx-consumer-batches.h"
+#include "ns3/ptr.h"
+#include "ns3/log.h"
+#include "ns3/simulator.h"
+#include "ns3/packet.h"
+#include "ns3/callback.h"
+#include "ns3/string.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+#include "ns3/batches.h"
+
+NS_LOG_COMPONENT_DEFINE ("CcnxConsumerBatches");
+
+namespace ns3
+{    
+    
+NS_OBJECT_ENSURE_REGISTERED (CcnxConsumerBatches);
+    
+TypeId
+CcnxConsumerBatches::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::CcnxConsumerBatches")
+    .SetParent<CcnxConsumer> ()
+    .AddConstructor<CcnxConsumerBatches> ()
+
+    .AddAttribute ("Batches", "Batches to schedule. Should be vector, containing pairs of time and amount",
+                   // TypeId::ATTR_SET, 
+                   StringValue (""),
+                   MakeBatchesAccessor (&CcnxConsumerBatches::GetBatch, &CcnxConsumerBatches::SetBatch),
+                   MakeBatchesChecker ())
+    ;
+
+  return tid;
+}
+
+CcnxConsumerBatches::CcnxConsumerBatches ()
+{
+}
+
+void
+CcnxConsumerBatches::SetBatch (const Batches &batches)
+{
+  // std::cout << "Batches: " << batches << "\n";
+  for (Batches::const_iterator i = batches.begin (); i != batches.end (); i++)
+    {
+      Simulator::Schedule (i->get<0> (), &CcnxConsumerBatches::AddBatch, this, i->get<1> ());
+    }
+}
+
+void
+CcnxConsumerBatches::AddBatch (uint32_t amount)
+{
+  // std::cout << Simulator::Now () << " adding batch of " << amount << "\n";
+  m_seqMax += amount;
+  m_rtt->ClearSent (); // this is important, otherwise RTT estimation for the new batch will be affected by previous batch history
+  ScheduleNextPacket ();
+}
+
+void
+CcnxConsumerBatches::ScheduleNextPacket ()
+{
+  if (!m_sendEvent.IsRunning ())
+    m_sendEvent = Simulator::Schedule (Seconds (m_rtt->RetransmitTimeout ().ToDouble (Time::S) * 0.1), &CcnxConsumer::SendPacket, this);
+}
+
+///////////////////////////////////////////////////
+//          Process incoming packets             //
+///////////////////////////////////////////////////
+
+} // namespace ns3
diff --git a/apps/ccnx-consumer-batches.h b/apps/ccnx-consumer-batches.h
new file mode 100644
index 0000000..36d7643
--- /dev/null
+++ b/apps/ccnx-consumer-batches.h
@@ -0,0 +1,78 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef CCNX_CONSUMER_BATCHES_H
+#define CCNX_CONSUMER_BATCHES_H
+
+#include "ccnx-consumer.h"
+#include "ns3/traced-value.h"
+#include "ns3/batches.h"
+
+namespace ns3 
+{
+
+/**
+ * @ingroup ccnx
+ * \brief CCNx application for sending out Interest packets in batches
+ */
+class CcnxConsumerBatches: public CcnxConsumer
+{
+public: 
+  static TypeId GetTypeId ();
+        
+  /**
+   * \brief Default constructor 
+   */
+  CcnxConsumerBatches ();
+
+  // From CcnxApp
+  // virtual void
+  // OnInterest (const Ptr<const CcnxInterestHeader> &interest);
+
+  // virtual void
+  // OnNack (const Ptr<const CcnxInterestHeader> &interest);
+
+  // virtual void
+  // OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
+  //                  const Ptr<const Packet> &payload);
+
+  // virtual void
+  // OnTimeout (uint32_t sequenceNumber);
+
+private:
+  Batches
+  GetBatch () const { return Batches(); }
+
+  void
+  SetBatch (const Batches &batch);
+  
+  void
+  AddBatch (uint32_t amount);
+protected:
+  /**
+   * \brief Constructs the Interest packet and sends it using a callback to the underlying CCNx protocol
+   */
+  virtual void
+  ScheduleNextPacket ();
+};
+
+} // namespace ns3
+
+#endif
diff --git a/apps/ccnx-consumer-cbr.cc b/apps/ccnx-consumer-cbr.cc
new file mode 100644
index 0000000..1727bcd
--- /dev/null
+++ b/apps/ccnx-consumer-cbr.cc
@@ -0,0 +1,97 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+
+#include "ccnx-consumer-cbr.h"
+#include "ns3/ptr.h"
+#include "ns3/log.h"
+#include "ns3/simulator.h"
+#include "ns3/packet.h"
+#include "ns3/callback.h"
+#include "ns3/string.h"
+#include "ns3/boolean.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+
+#include "ns3/ccnx.h"
+#include "../model/ccnx-local-face.h"
+#include "ns3/ccnx-interest-header.h"
+#include "ns3/ccnx-content-object-header.h"
+
+NS_LOG_COMPONENT_DEFINE ("CcnxConsumerCbr");
+
+namespace ns3
+{    
+    
+NS_OBJECT_ENSURE_REGISTERED (CcnxConsumerCbr);
+    
+TypeId
+CcnxConsumerCbr::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::CcnxConsumerCbr")
+    .SetParent<CcnxConsumer> ()
+    .AddConstructor<CcnxConsumerCbr> ()
+
+    .AddAttribute ("Frequency", "Frequency of interest packets",
+                   StringValue ("1.0"),
+                   MakeDoubleAccessor (&CcnxConsumerCbr::m_frequency),
+                   MakeDoubleChecker<double> ())
+    ;
+
+  return tid;
+}
+    
+CcnxConsumerCbr::CcnxConsumerCbr ()
+  : m_frequency (1.0)
+{
+  NS_LOG_FUNCTION_NOARGS ();
+  m_seqMax = std::numeric_limits<uint32_t>::max ();
+}
+
+void
+CcnxConsumerCbr::ScheduleNextPacket ()
+{
+  // double mean = 8.0 * m_payloadSize / m_desiredRate.GetBitRate ();
+  // std::cout << "next: " << Simulator::Now().ToDouble(Time::S) + mean << "s\n";
+
+  if (!m_sendEvent.IsRunning ())
+    m_sendEvent = Simulator::Schedule (
+                                       // Seconds(m_randExp.GetValue ()),
+                                       Seconds(1.0 / m_frequency),
+                                       &CcnxConsumer::SendPacket, this);
+}
+
+///////////////////////////////////////////////////
+//          Process incoming packets             //
+///////////////////////////////////////////////////
+
+// void
+// CcnxConsumer::OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
+//                                const Ptr<const Packet> &payload)
+// {
+//   CcnxConsumer::OnContentObject (contentObject, payload); // tracing inside
+// }
+
+// void
+// CcnxConsumer::OnNack (const Ptr<const CcnxInterestHeader> &interest)
+// {
+//   CcnxConsumer::OnNack (interest); // tracing inside
+// }
+
+} // namespace ns3
diff --git a/apps/ccnx-consumer-cbr.h b/apps/ccnx-consumer-cbr.h
new file mode 100644
index 0000000..03558ed
--- /dev/null
+++ b/apps/ccnx-consumer-cbr.h
@@ -0,0 +1,83 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ *         Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef CCNX_CONSUMER_CBR_H
+#define CCNX_CONSUMER_CBR_H
+
+#include "ccnx-consumer.h"
+
+namespace ns3 
+{
+
+/**
+ * @ingroup ccnx
+ * \brief CCNx application for sending out Interest packets at a "constant" rate (Poisson process)
+ */
+class CcnxConsumerCbr: public CcnxConsumer
+{
+public: 
+  static TypeId GetTypeId ();
+        
+  /**
+   * \brief Default constructor 
+   * Sets up randomizer function and packet sequence number
+   */
+  CcnxConsumerCbr ();
+
+  // From CcnxApp
+  // virtual void
+  // OnInterest (const Ptr<const CcnxInterestHeader> &interest);
+
+  // virtual void
+  // OnNack (const Ptr<const CcnxInterestHeader> &interest);
+
+  // virtual void
+  // OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
+  //                  const Ptr<const Packet> &payload);
+
+protected:
+  /**
+   * \brief Constructs the Interest packet and sends it using a callback to the underlying CCNx protocol
+   */
+  virtual void
+  ScheduleNextPacket ();
+  
+private:
+  // void
+  // UpdateMean ();
+
+  // virtual void
+  // SetPayloadSize (uint32_t payload);
+
+  // void
+  // SetDesiredRate (DataRate rate);
+
+  // DataRate
+  // GetDesiredRate () const;
+  
+protected:
+  ExponentialVariable m_randExp; // packet inter-arrival time generation (Poisson process)
+  double              m_frequency; // Frequency of interest packets (in hertz)
+};
+
+} // namespace ns3
+
+#endif
diff --git a/apps/ccnx-consumer-window.cc b/apps/ccnx-consumer-window.cc
new file mode 100644
index 0000000..3d6f515
--- /dev/null
+++ b/apps/ccnx-consumer-window.cc
@@ -0,0 +1,179 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ccnx-consumer-window.h"
+#include "ns3/ptr.h"
+#include "ns3/log.h"
+#include "ns3/simulator.h"
+#include "ns3/packet.h"
+#include "ns3/callback.h"
+#include "ns3/string.h"
+#include "ns3/uinteger.h"
+#include "ns3/double.h"
+
+NS_LOG_COMPONENT_DEFINE ("CcnxConsumerWindow");
+
+namespace ns3
+{    
+    
+NS_OBJECT_ENSURE_REGISTERED (CcnxConsumerWindow);
+    
+TypeId
+CcnxConsumerWindow::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::CcnxConsumerWindow")
+    .SetParent<CcnxConsumer> ()
+    .AddConstructor<CcnxConsumerWindow> ()
+
+    .AddAttribute ("Window", "Initial size of the window",
+                   StringValue ("1"),
+                   MakeUintegerAccessor (&CcnxConsumerWindow::GetWindow, &CcnxConsumerWindow::SetWindow),
+                   MakeUintegerChecker<uint32_t> ())
+
+    .AddAttribute ("PayloadSize", "Average size of content object size (to calculate interest generation rate)",
+                   UintegerValue (1040),
+                   MakeUintegerAccessor (&CcnxConsumerWindow::GetPayloadSize, &CcnxConsumerWindow::SetPayloadSize),
+                   MakeUintegerChecker<uint32_t>())
+    .AddAttribute ("Size", "Amount of data in megabytes to request (relies on PayloadSize parameter)",
+                   DoubleValue (-1), // don't impose limit by default
+                   MakeDoubleAccessor (&CcnxConsumerWindow::GetMaxSize, &CcnxConsumerWindow::SetMaxSize),
+                   MakeDoubleChecker<double> ())
+
+    .AddTraceSource ("WindowTrace",
+                     "Window that controls how many outstanding interests are allowed",
+                     MakeTraceSourceAccessor (&CcnxConsumerWindow::m_window))
+    .AddTraceSource ("InFlight",
+                     "Current number of outstanding interests",
+                     MakeTraceSourceAccessor (&CcnxConsumerWindow::m_window))
+    ;
+
+  return tid;
+}
+
+CcnxConsumerWindow::CcnxConsumerWindow ()
+  : m_payloadSize (1040)
+  , m_inFlight (0)
+{
+}
+
+void
+CcnxConsumerWindow::SetWindow (uint32_t window)
+{
+  m_window = window;
+}
+
+uint32_t
+CcnxConsumerWindow::GetWindow () const
+{
+  return m_window;
+}
+
+uint32_t
+CcnxConsumerWindow::GetPayloadSize () const
+{
+  return m_payloadSize;
+}
+
+void
+CcnxConsumerWindow::SetPayloadSize (uint32_t payload)
+{
+  m_payloadSize = payload;
+}
+
+double
+CcnxConsumerWindow::GetMaxSize () const
+{
+  if (m_seqMax == 0)
+    return -1.0;
+
+  return m_maxSize;
+}
+
+void
+CcnxConsumerWindow::SetMaxSize (double size)
+{
+  m_maxSize = size;
+  if (m_maxSize < 0)
+    {
+      m_seqMax = 0;
+      return;
+    }
+
+  m_seqMax = floor(1.0 + m_maxSize * 1024.0 * 1024.0 / m_payloadSize);
+  NS_LOG_DEBUG ("MaxSeqNo: " << m_seqMax);
+  // std::cout << "MaxSeqNo: " << m_seqMax << "\n";
+}
+
+
+void
+CcnxConsumerWindow::ScheduleNextPacket ()
+{
+  if (m_window == static_cast<uint32_t> (0) || m_inFlight >= m_window)
+    {
+      if (!m_sendEvent.IsRunning ())
+        m_sendEvent = Simulator::Schedule (Seconds (m_rtt->RetransmitTimeout ().ToDouble (Time::S) * 0.1), &CcnxConsumer::SendPacket, this);
+      return;
+    }
+  
+  // std::cout << "Window: " << m_window << ", InFlight: " << m_inFlight << "\n";
+  if (!m_sendEvent.IsRunning ())
+    {
+      m_inFlight++;
+      m_sendEvent = Simulator::ScheduleNow (&CcnxConsumer::SendPacket, this);
+    }
+}
+
+///////////////////////////////////////////////////
+//          Process incoming packets             //
+///////////////////////////////////////////////////
+
+void
+CcnxConsumerWindow::OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
+                                     Ptr<Packet> payload)
+{
+  CcnxConsumer::OnContentObject (contentObject, payload);
+
+  m_window = m_window + 1;
+
+  if (m_inFlight > static_cast<uint32_t> (0)) m_inFlight--;
+  ScheduleNextPacket ();
+}
+
+void
+CcnxConsumerWindow::OnNack (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> payload)
+{
+  CcnxConsumer::OnNack (interest, payload);
+  if (m_inFlight > static_cast<uint32_t> (0)) m_inFlight--;
+
+  if (m_window > static_cast<uint32_t> (0))
+    {
+      // m_window = 0.5 * m_window;//m_window - 1;
+      m_window = m_window - 1;
+    }
+}
+
+void
+CcnxConsumerWindow::OnTimeout (uint32_t sequenceNumber)
+{
+  if (m_inFlight > static_cast<uint32_t> (0)) m_inFlight--;
+  CcnxConsumer::OnTimeout (sequenceNumber);
+}
+
+} // namespace ns3
diff --git a/apps/ccnx-consumer-window.h b/apps/ccnx-consumer-window.h
new file mode 100644
index 0000000..21a9759
--- /dev/null
+++ b/apps/ccnx-consumer-window.h
@@ -0,0 +1,95 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ *         Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef CCNX_CONSUMER_WINDOW_H
+#define CCNX_CONSUMER_WINDOW_H
+
+#include "ccnx-consumer.h"
+#include "ns3/traced-value.h"
+
+namespace ns3 
+{
+
+/**
+ * @ingroup ccnx
+ * \brief CCNx application for sending out Interest packets (window-based)
+ */
+class CcnxConsumerWindow: public CcnxConsumer
+{
+public: 
+  static TypeId GetTypeId ();
+        
+  /**
+   * \brief Default constructor 
+   */
+  CcnxConsumerWindow ();
+
+  // From CcnxApp
+  // virtual void
+  // OnInterest (const Ptr<const CcnxInterestHeader> &interest);
+
+  virtual void
+  OnNack (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> payload);
+
+  virtual void
+  OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
+                   Ptr<Packet> payload);
+
+  virtual void
+  OnTimeout (uint32_t sequenceNumber);
+ 
+protected:
+  /**
+   * \brief Constructs the Interest packet and sends it using a callback to the underlying CCNx protocol
+   */
+  virtual void
+  ScheduleNextPacket ();
+  
+private:
+  virtual void
+  SetWindow (uint32_t window);
+
+  uint32_t
+  GetWindow () const;
+
+  virtual void
+  SetPayloadSize (uint32_t payload);
+
+  uint32_t
+  GetPayloadSize () const;
+
+  double
+  GetMaxSize () const;
+
+  void
+  SetMaxSize (double size);
+  
+protected:
+  uint32_t m_payloadSize; // expected payload size
+  double   m_maxSize; // max size to request
+
+  TracedValue<uint32_t> m_window;
+  TracedValue<uint32_t> m_inFlight;
+};
+
+} // namespace ns3
+
+#endif
diff --git a/apps/ccnx-consumer.cc b/apps/ccnx-consumer.cc
index cf5d131..eafa77d 100644
--- a/apps/ccnx-consumer.cc
+++ b/apps/ccnx-consumer.cc
@@ -33,12 +33,15 @@
 #include "../model/ccnx-local-face.h"
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
+#include "ns3/ccnx-path-stretch-tag.h"
 
 #include <boost/ref.hpp>
 #include <boost/lexical_cast.hpp>
 #include <boost/lambda/lambda.hpp>
 #include <boost/lambda/bind.hpp>
 
+#include "ns3/names.h"
+
 namespace ll = boost::lambda;
 
 NS_LOG_COMPONENT_DEFINE ("CcnxConsumer");
@@ -53,28 +56,11 @@
 {
   static TypeId tid = TypeId ("ns3::CcnxConsumer")
     .SetParent<CcnxApp> ()
-    .AddConstructor<CcnxConsumer> ()
     .AddAttribute ("StartSeq", "Initial sequence number",
                    IntegerValue (0),
                    MakeIntegerAccessor(&CcnxConsumer::m_seq),
                    MakeIntegerChecker<int32_t>())
 
-    .AddAttribute ("Size", "Amount of data in megabytes to request (relies on PayloadSize parameter)",
-                   DoubleValue (-1), // don't impose limit by default
-                   MakeDoubleAccessor (&CcnxConsumer::GetMaxSize, &CcnxConsumer::SetMaxSize),
-                   MakeDoubleChecker<double> ())
-
-    ///////
-    .AddAttribute ("PayloadSize", "Average size of content object size (to calculate interest generation rate)",
-                   UintegerValue (1040),
-                   MakeUintegerAccessor (&CcnxConsumer::GetPayloadSize, &CcnxConsumer::SetPayloadSize),
-                   MakeUintegerChecker<uint32_t>())
-    .AddAttribute ("MeanRate", "Mean data packet rate (relies on the PayloadSize parameter)",
-                   StringValue ("100Kbps"),
-                   MakeDataRateAccessor (&CcnxConsumer::GetDesiredRate, &CcnxConsumer::SetDesiredRate),
-                   MakeDataRateChecker ())
-    ///////
-
     .AddAttribute ("Prefix","CcnxName of the Interest",
                    StringValue ("/"),
                    MakeCcnxNameComponentsAccessor (&CcnxConsumer::m_interestName),
@@ -100,19 +86,17 @@
                    MakeCcnxNameComponentsAccessor (&CcnxConsumer::m_exclude),
                    MakeCcnxNameComponentsChecker ())
 
-    .AddAttribute ("RTO",
-                   "Initial retransmission timeout",
-                   StringValue ("1s"),
-                   MakeTimeAccessor (&CcnxConsumer::m_rto),
-                   MakeTimeChecker ())
     .AddAttribute ("RetxTimer",
                    "Timeout defining how frequent retransmission timeouts should be checked",
-                   StringValue ("1s"),
+                   StringValue ("50ms"),
                    MakeTimeAccessor (&CcnxConsumer::GetRetxTimer, &CcnxConsumer::SetRetxTimer),
                    MakeTimeChecker ())
 
     .AddTraceSource ("TransmittedInterests", "TransmittedInterests",
                     MakeTraceSourceAccessor (&CcnxConsumer::m_transmittedInterests))
+
+    .AddTraceSource ("PathWeightsTrace", "PathWeightsTrace",
+                    MakeTraceSourceAccessor (&CcnxConsumer::m_pathWeightsTrace))
     ;
 
   return tid;
@@ -120,13 +104,12 @@
     
 CcnxConsumer::CcnxConsumer ()
   : m_rand (0, std::numeric_limits<uint32_t>::max ())
-  , m_desiredRate ("10Kbps")
-  , m_payloadSize (1040)
   , m_seq (0)
+  , m_seqMax (0) // don't request anything
 {
   NS_LOG_FUNCTION_NOARGS ();
 
-  UpdateMean (); // not necessary (will be called by ns3 object system anyways), but doesn't hurt
+  m_rtt = CreateObject<RttMeanDeviation> ();
 }
 
 void
@@ -152,96 +135,26 @@
 {
   Time now = Simulator::Now ();
 
-  boost::mutex::scoped_lock (m_seqTimeoutsGuard);
+  Time rto = m_rtt->RetransmitTimeout ();
 
   while (!m_seqTimeouts.empty ())
     {
       SeqTimeoutsContainer::index<i_timestamp>::type::iterator entry =
         m_seqTimeouts.get<i_timestamp> ().begin ();
-      if (entry->time + m_rto <= now) // timeout expired?
+      if (entry->time + rto <= now) // timeout expired?
         {
-          m_retxSeqs.insert (entry->seq);
-          m_seqTimeouts.get<i_timestamp> ().modify (entry,
-                                                    ll::bind(&SeqTimeout::time, ll::_1) = now);
+          uint32_t seqNo = entry->seq;
+          m_seqTimeouts.get<i_timestamp> ().erase (entry);
+          OnTimeout (seqNo);
         }
       else
         break; // nothing else to do. All later packets need not be retransmitted
     }
 
-  if (m_retxSeqs.size () > 0)
-    {
-      ScheduleNextPacket ();
-    }
-  
   m_retxEvent = Simulator::Schedule (m_retxTimer,
                                      &CcnxConsumer::CheckRetxTimeout, this); 
 }
 
-void
-CcnxConsumer::UpdateMean ()
-{
-  double mean = 8.0 * m_payloadSize / m_desiredRate.GetBitRate ();
-  m_randExp = ExponentialVariable (mean, 10000 * mean); // set upper limit to inter-arrival time
-}
-
-void
-CcnxConsumer::SetPayloadSize (uint32_t payload)
-{
-  m_payloadSize = payload;
-  UpdateMean ();
-}
-
-uint32_t
-CcnxConsumer::GetPayloadSize () const
-{
-  return m_payloadSize;
-}
-
-void
-CcnxConsumer::SetDesiredRate (DataRate rate)
-{
-  m_desiredRate = rate;
-  UpdateMean ();
-}
-
-DataRate
-CcnxConsumer::GetDesiredRate () const
-{
-  return m_desiredRate;
-}
-
-double
-CcnxConsumer::GetMaxSize () const
-{
-  if (m_seqMax == 0)
-    return -1.0;
-
-  return m_seqMax * m_payloadSize / 1024.0 / 1024.0;
-}
-
-void
-CcnxConsumer::SetMaxSize (double size)
-{
-  if (size < 0)
-    {
-      m_seqMax = 0;
-      return;
-    }
-
-  m_seqMax = floor(1.0 + size * 1024.0 * 1024.0 / m_payloadSize);
-  NS_LOG_DEBUG ("MaxSeqNo: " << m_seqMax);
-}
-
-
-void
-CcnxConsumer::ScheduleNextPacket ()
-{
-  if (!m_sendEvent.IsRunning ())
-    m_sendEvent = Simulator::Schedule (
-                                       Seconds(m_randExp.GetValue ()),
-                                       &CcnxConsumer::SendPacket, this);
-}
-
 // Application Methods
 void 
 CcnxConsumer::StartApplication () // Called at time specified by Start
@@ -273,20 +186,29 @@
 
   NS_LOG_FUNCTION_NOARGS ();
 
-  boost::mutex::scoped_lock (m_seqTimeoutsGuard);
+  uint32_t seq=std::numeric_limits<uint32_t>::max (); //invalid
 
-  uint32_t seq;
+  // std::cout << Simulator::Now ().ToDouble (Time::S) << "s max -> " << m_seqMax << "\n";
   
-  if (m_retxSeqs.size () != 0)
+  while (m_retxSeqs.size ())
     {
       seq = *m_retxSeqs.begin ();
-      NS_LOG_INFO ("Before: " << m_retxSeqs.size ());
       m_retxSeqs.erase (m_retxSeqs.begin ());
-      NS_LOG_INFO ("After: " << m_retxSeqs.size ());
+
+      // NS_ASSERT (m_seqLifetimes.find (seq) != m_seqLifetimes.end ());
+      // if (m_seqLifetimes.find (seq)->time <= Simulator::Now ())
+      //   {
+          
+      //     NS_LOG_DEBUG ("Expire " << seq);
+      //     m_seqLifetimes.erase (seq); // lifetime expired. Trying to find another unexpired sequence number
+      //     continue;
+      //   }
+      break;
     }
-  else
+
+  if (seq == std::numeric_limits<uint32_t>::max ())
     {
-      if (m_seqMax > 0)
+      if (m_seqMax != std::numeric_limits<uint32_t>::max ())
         {
           if (m_seq >= m_seqMax)
             {
@@ -297,6 +219,8 @@
       seq = m_seq++;
     }
   
+  // std::cout << Simulator::Now ().ToDouble (Time::S) << "s -> " << seq << "\n";
+  
   //
   Ptr<CcnxNameComponents> nameWithSequence = Create<CcnxNameComponents> (m_interestName);
   (*nameWithSequence) (seq);
@@ -315,7 +239,7 @@
   interestHeader.SetMinSuffixComponents (m_minSuffixComponents);
         
   // NS_LOG_INFO ("Requesting Interest: \n" << interestHeader);
-  NS_LOG_DEBUG ("node("<< GetNode()->GetId() <<") sending Interest for sequence " << seq);
+  NS_LOG_INFO ("> Interest for " << seq);
 
   Ptr<Packet> packet = Create<Packet> ();
   packet->AddHeader (interestHeader);
@@ -324,15 +248,11 @@
 
   NS_LOG_DEBUG ("Trying to add " << seq << " with " << Simulator::Now () << ". already " << m_seqTimeouts.size () << " items");  
   
-  std::pair<SeqTimeoutsContainer::iterator, bool>
-    res = m_seqTimeouts.insert (SeqTimeout (seq, Simulator::Now ()));
-  
-  if (!res.second)
-    m_seqTimeouts.modify (res.first,
-                          ll::bind(&SeqTimeout::time, ll::_1) = Simulator::Now ());
-  
+  m_seqTimeouts.insert (SeqTimeout (seq, Simulator::Now ()));
+  m_seqLifetimes.insert (SeqTimeout (seq, Simulator::Now () + m_interestLifeTime)); // only one insert will work. if entry exists, nothing will happen... nothing should happen
   m_transmittedInterests (&interestHeader, this, m_face);
 
+  m_rtt->SentSeq (SequenceNumber32 (seq), 1);
   ScheduleNextPacket ();
 }
 
@@ -343,7 +263,7 @@
 
 void
 CcnxConsumer::OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
-                               const Ptr<const Packet> &payload)
+                               Ptr<Packet> payload)
 {
   if (!m_active) return;
 
@@ -354,10 +274,8 @@
   // NS_LOG_INFO ("Received content object: " << boost::cref(*contentObject));
   
   uint32_t seq = boost::lexical_cast<uint32_t> (contentObject->GetName ().GetComponents ().back ());
-  NS_LOG_INFO ("node("<< GetNode()->GetId() <<") get DATA for sequence " << seq);
+  NS_LOG_INFO ("< DATA for " << seq);
 
-  boost::mutex::scoped_lock (m_seqTimeoutsGuard);
-  
   // SeqTimeoutsContainer::iterator entry = m_seqTimeouts.find (seq);
 
   //  NS_ASSERT_MSG (entry != m_seqTimeouts.end (),
@@ -366,32 +284,56 @@
   // if (entry != m_seqTimeouts.end ())
   //   m_seqTimeouts.erase (entry);
 
+  m_seqLifetimes.erase (seq);
   m_seqTimeouts.erase (seq);
   m_retxSeqs.erase (seq);
+
+  m_rtt->AckSeq (SequenceNumber32 (seq));
+
+  Ptr<const WeightsPathStretchTag> tag = payload->RemovePacketTag<WeightsPathStretchTag> ();
+  if (tag != 0)
+    {
+      // Notify trace about path weights vector (e.g., for path-stretch calculation)
+      m_pathWeightsTrace (GetNode (), tag->GetSourceNode (), seq, tag->GetTotalWeight ());
+      // if (Names::FindName (GetNode ()) == "36")// || Names::FindName (GetNode ()) == "40"|| Names::FindName (GetNode ()) == "5")
+      //   std::cout << Simulator::Now () << "\t" << boost::cref(*tag) << " = " << tag->GetTotalWeight () << "\n";
+}
 }
 
 void
-CcnxConsumer::OnNack (const Ptr<const CcnxInterestHeader> &interest)
+CcnxConsumer::OnNack (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> origPacket)
 {
   if (!m_active) return;
   
-  CcnxApp::OnNack (interest); // tracing inside
+  CcnxApp::OnNack (interest, origPacket); // tracing inside
   
   NS_LOG_DEBUG ("Nack type: " << interest->GetNack ());
-  boost::mutex::scoped_lock (m_seqTimeoutsGuard);
 
   NS_LOG_FUNCTION (this << interest);
 
   // NS_LOG_INFO ("Received NACK: " << boost::cref(*interest));
   uint32_t seq = boost::lexical_cast<uint32_t> (interest->GetName ().GetComponents ().back ());
-  NS_LOG_DEBUG ("node("<< GetNode()->GetId() <<") < NACK for " << seq);
+  NS_LOG_INFO ("< NACK for " << seq);
+  // std::cout << Simulator::Now ().ToDouble (Time::S) << "s -> " << "NACK for " << seq << "\n"; 
 
   // put in the queue of interests to be retransmitted
   NS_LOG_INFO ("Before: " << m_retxSeqs.size ());
   m_retxSeqs.insert (seq);
   NS_LOG_INFO ("After: " << m_retxSeqs.size ());
 
+  // m_rtt->IncreaseMultiplier ();             // Double the next RTO ??
   ScheduleNextPacket ();
 }
 
+void
+CcnxConsumer::OnTimeout (uint32_t sequenceNumber)
+{
+  // std::cout << Simulator::Now () << ", TO: " << sequenceNumber << ", current RTO: " << m_rtt->RetransmitTimeout ().ToDouble (Time::S) << "s\n";
+
+  // m_rtt->IncreaseMultiplier ();             // Double the next RTO
+  m_rtt->SentSeq (SequenceNumber32 (sequenceNumber), 1); // make sure to disable RTT calculation for this sample
+  m_retxSeqs.insert (sequenceNumber);
+  ScheduleNextPacket (); 
+}
+
 } // namespace ns3
diff --git a/apps/ccnx-consumer.h b/apps/ccnx-consumer.h
index 9b28a2c..0709a40 100644
--- a/apps/ccnx-consumer.h
+++ b/apps/ccnx-consumer.h
@@ -27,6 +27,8 @@
 #include "ns3/ccnx-name-components.h"
 #include "ns3/nstime.h"
 #include "ns3/data-rate.h"
+#include "../../internet/model/rtt-estimator.h"
+//#include "ns3/internet-module.h"
 
 #include <set>
 
@@ -35,8 +37,6 @@
 #include <boost/multi_index/ordered_index.hpp>
 #include <boost/multi_index/member.hpp>
 
-#include <boost/thread/mutex.hpp>
-
 namespace ns3 
 {
 
@@ -60,12 +60,19 @@
   // OnInterest (const Ptr<const CcnxInterestHeader> &interest);
 
   virtual void
-  OnNack (const Ptr<const CcnxInterestHeader> &interest);
+  OnNack (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> packet);
 
   virtual void
   OnContentObject (const Ptr<const CcnxContentObjectHeader> &contentObject,
-                   const Ptr<const Packet> &payload);
+                   Ptr<Packet> payload);
 
+  virtual void
+  OnTimeout (uint32_t sequenceNumber);
+
+  // Simulator::Schedule doesn't work with protected members???
+  void
+  SendPacket ();
+  
 protected:
   // from CcnxApp
   virtual void
@@ -74,31 +81,12 @@
   virtual void
   StopApplication ();
   
-private:
   /**
    * \brief Constructs the Interest packet and sends it using a callback to the underlying CCNx protocol
    */
-  void
-  ScheduleNextPacket ();
-
-  void
-  UpdateMean ();
-
-  void
-  SetPayloadSize (uint32_t payload);
-
-  uint32_t
-  GetPayloadSize () const;
-
-  void
-  SetDesiredRate (DataRate rate);
-
-  DataRate
-  GetDesiredRate () const;
+  virtual void
+  ScheduleNextPacket () = 0;
   
-  void
-  SendPacket ();
-
   /**
    * \brief Checks if the packet need to be retransmitted becuase of retransmission timer expiration
    */
@@ -119,28 +107,16 @@
   Time
   GetRetxTimer () const;
   
-  double
-  GetMaxSize () const;
-
-  void
-  SetMaxSize (double size);
-  
 protected:
   UniformVariable m_rand; // nonce generator
 
-  ExponentialVariable m_randExp; // packet inter-arrival time generation (Poisson process)
-  DataRate            m_desiredRate;    // Desired data packet rate
-  uint32_t            m_payloadSize; // expected payload size
-  
   uint32_t        m_seq;
   uint32_t        m_seqMax;    // maximum number of sequence number
   EventId         m_sendEvent; // Eventid of pending "send packet" event
   Time            m_retxTimer;
   EventId         m_retxEvent; // Event to check whether or not retransmission should be performed
 
-  Time            m_rto;        ///< \brief Retransmission timeout
-  Time            m_rttVar;     ///< \brief RTT variance
-  Time            m_sRtt;       ///< \brief smoothed RTT
+  Ptr<RttEstimator> m_rtt;
   
   Time               m_offTime;             ///< \brief Time interval between packets
   CcnxNameComponents m_interestName;        ///< \brief CcnxName of the Interest (use CcnxNameComponents)
@@ -191,13 +167,15 @@
     > { } ;
 
   SeqTimeoutsContainer m_seqTimeouts;       ///< \brief multi-index for the set of SeqTimeout structs
-  boost::mutex m_seqTimeoutsGuard;          ///< \brief mutex for safe work with the m_seqTimeouts
+  SeqTimeoutsContainer m_seqLifetimes;
 
   /**
    * \brief A trace that is called after each transmitted Interest packet
    */
   TracedCallback<Ptr<const CcnxInterestHeader>,
                  Ptr<CcnxApp>, Ptr<CcnxFace> > m_transmittedInterests;
+  
+  TracedCallback<Ptr<Node>, Ptr<Node>, uint32_t, uint32_t > m_pathWeightsTrace;
 };
 
 } // namespace ns3
diff --git a/apps/ccnx-producer.cc b/apps/ccnx-producer.cc
index 9a41c82..37209b3 100644
--- a/apps/ccnx-producer.cc
+++ b/apps/ccnx-producer.cc
@@ -23,6 +23,7 @@
 #include "ns3/log.h"
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
+// #include "ns3/ccnx-path-stretch-tag.h"
 #include "ns3/string.h"
 #include "ns3/uinteger.h"
 #include "ns3/packet.h"
@@ -31,6 +32,9 @@
 #include "ns3/ccnx-fib.h"
 
 #include <boost/ref.hpp>
+#include <boost/lambda/lambda.hpp>
+#include <boost/lambda/bind.hpp>
+namespace ll = boost::lambda;
 
 NS_LOG_COMPONENT_DEFINE ("CcnxProducer");
 
@@ -75,7 +79,13 @@
 
   CcnxApp::StartApplication ();
 
-  GetNode ()->GetObject<CcnxFib> ()->Add (m_prefix, m_face, 0);
+  Ptr<CcnxFib> fib = GetNode ()->GetObject<CcnxFib> ();
+  CcnxFibEntryContainer::type::iterator fibEntry = fib->Add (m_prefix, m_face, 0);
+
+  // make face green, so it will be used primarily
+  fib->m_fib.modify (fibEntry,
+                     ll::bind (&CcnxFibEntry::UpdateStatus,
+                               ll::_1, m_face, CcnxFibFaceMetric::NDN_FIB_GREEN));
 }
 
 void
@@ -89,9 +99,9 @@
 
 
 void
-CcnxProducer::OnInterest (const Ptr<const CcnxInterestHeader> &interest)
+CcnxProducer::OnInterest (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> origPacket)
 {
-  CcnxApp::OnInterest (interest); // tracing inside
+  CcnxApp::OnInterest (interest, origPacket); // tracing inside
 
   NS_LOG_FUNCTION (this << interest);
 
@@ -104,7 +114,19 @@
   NS_LOG_INFO ("node("<< GetNode()->GetId() <<") respodning with ContentObject:\n" << boost::cref(*header));
   
   Ptr<Packet> packet = Create<Packet> (m_virtualPayloadSize);
+  // Ptr<const WeightsPathStretchTag> tag = origPacket->RemovePacketTag<WeightsPathStretchTag> ();
+  // if (tag != 0)
+  //   {
+  //     // std::cout << Simulator::Now () << ", " << m_app->GetInstanceTypeId ().GetName () << "\n";
 
+  //     // echo back WeightsPathStretchTag
+  //     packet->AddPacketTag (CreateObject<WeightsPathStretchTag> (*tag));
+
+  //     // \todo
+  //     // packet->AddPacketTag should actually accept Ptr<const WeightsPathStretchTag> instead of
+  //     // Ptr<WeightsPathStretchTag>.  Echoing will be simplified after change is done
+  //   }
+  
   m_transmittedContentObjects (header, packet, this, m_face);
   
   packet->AddHeader (*header);
diff --git a/apps/ccnx-producer.h b/apps/ccnx-producer.h
index a239d84..45794b2 100644
--- a/apps/ccnx-producer.h
+++ b/apps/ccnx-producer.h
@@ -39,7 +39,7 @@
   CcnxProducer ();
 
   // inherited from CcnxApp
-  void OnInterest (const Ptr<const CcnxInterestHeader> &interest);
+  void OnInterest (const Ptr<const CcnxInterestHeader> &interest, Ptr<Packet> packet);
 
 protected:
   // inherited from Application base class.
diff --git a/apps/stupid-interest-generator.cc b/apps/stupid-interest-generator.cc
deleted file mode 100644
index 8606117..0000000
--- a/apps/stupid-interest-generator.cc
+++ /dev/null
@@ -1,177 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-//  ndn_stupidinterestgenerator.cpp
-//  Abstraction
-//
-//  Created by Ilya Moiseenko on 05.08.11.
-//  Copyright 2011 UCLA. All rights reserved.
-//
-
-#include "stupid-interest-generator.h"
-
-#include "ns3/socket-factory.h"
-#include "ns3/simulator.h"
-
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/ccnx-content-object-header.h"
-
-NS_LOG_COMPONENT_DEFINE ("StupidInterestGenerator");
-
-namespace ns3
-{
-    
-NS_OBJECT_ENSURE_REGISTERED (StupidInterestGenerator);
-    
-TypeId
-StupidInterestGenerator::GetTypeId (void)
-{
-	static TypeId tid = TypeId ("ns3::StupidInterestGenerator")
-        .SetParent<Application> ()
-        .AddConstructor<StupidInterestGenerator> ()
-        .AddAttribute ("Remote", "The address of the destination",
-                       AddressValue (),
-                       MakeAddressAccessor (&StupidInterestGenerator::m_peer),
-                       MakeAddressChecker ())
-        .AddAttribute ("OffTime", "Time interval between packets",
-                       TimeValue (Seconds (0.1)),
-                       MakeTimeAccessor (&StupidInterestGenerator::m_offTime),
-                       MakeTimeChecker ())
-        .AddAttribute ("Protocol", "The type of protocol to use.",
-                       TypeIdValue (UdpSocketFactory::GetTypeId ()),
-                       MakeTypeIdAccessor (&StupidInterestGenerator::m_tid),
-                       MakeTypeIdChecker ())
-        ;
-	return tid;
-}
-
-StupidInterestGenerator::StupidInterestGenerator ()
-{
-	NS_LOG_FUNCTION_NOARGS ();
-	m_socket = 0;
-	//m_connected = false;
-	//m_residualBits = 0;
-	//m_lastStartTime = Seconds (0);
-	//m_totBytes = 0;
-}
-    
-StupidInterestGenerator::~StupidInterestGenerator()
-{
-	NS_LOG_FUNCTION_NOARGS ();
-}
-    
-void
-StupidInterestGenerator::DoDispose (void)
-{
-	NS_LOG_FUNCTION_NOARGS ();
-        
-	m_socket = 0;
-	// chain up
-	Application::DoDispose ();
-}
-    
-// Application Methods
-void StupidInterestGenerator::StartApplication () // Called at time specified by Start
-{
-	NS_LOG_FUNCTION_NOARGS ();
-        
-	// Create the socket if not already
-	if (!m_socket)
-	{
-		m_socket = Socket::CreateSocket (GetNode (), m_tid);
-		m_socket->Bind ();
-		m_socket->Connect (m_peer);
-		m_socket->SetAllowBroadcast (true);
-		m_socket->ShutdownRecv ();
-	}
-	// Insure no pending event
-	CancelEvents ();
-	// If we are not yet connected, there is nothing to do here
-	// The ConnectionComplete upcall will start timers at that time
-	//if (!m_connected) return;
-	ScheduleStartEvent ();
-}
-    
-void StupidInterestGenerator::StopApplication () // Called at time specified by Stop
-{
-	NS_LOG_FUNCTION_NOARGS ();
-        
-	CancelEvents ();
-	if(m_socket != 0)
-	{
-		m_socket->Close ();
-	}
-	else
-	{
-		NS_LOG_WARN ("OnOffApplication found null socket to close in StopApplication");
-	}
-}
-    
-void StupidInterestGenerator::CancelEvents ()
-{
-	NS_LOG_FUNCTION_NOARGS ();
-        
-	Simulator::Cancel (m_sendEvent);
-	Simulator::Cancel (m_startStopEvent);
-}
-
-void StupidInterestGenerator::ScheduleStartEvent ()
-{  // Schedules the event to start sending data (switch to the "On" state)
-	NS_LOG_FUNCTION_NOARGS ();
-        
-	Time offInterval = Seconds (m_offTime);
-	NS_LOG_LOGIC ("start at " << offInterval);
-	m_startStopEvent = Simulator::Schedule (offInterval, &StupidInterestGenerator::StartSending, this);
-}
-    
-// Event handlers
-void StupidInterestGenerator::StartSending ()
-{
-	NS_LOG_FUNCTION_NOARGS ();
-	//m_lastStartTime = Simulator::Now ();
-	ScheduleNextTx ();  // Schedule the send packet event
-	//ScheduleStopEvent ();
-}
-    
-void StupidInterestGenerator::StopSending ()
-{
-	NS_LOG_FUNCTION_NOARGS ();
-	CancelEvents ();
-        
-	ScheduleStartEvent ();
-}
-    
-// Private helpers
-void StupidInterestGenerator::ScheduleNextTx ()
-{
-	NS_LOG_FUNCTION_NOARGS ();
-        
-
-	Time nextTime = Seconds(0.); //send now
-	m_sendEvent = Simulator::Schedule (nextTime,
-									   &StupidInterestGenerator::SendPacket, this);
-}
-
-        
-void StupidInterestGenerator::SendPacket ()
-{
-	// NS_LOG_FUNCTION_NOARGS ();
-	// NS_LOG_LOGIC ("sending packet at " << Simulator::Now ());
-	// NS_ASSERT (m_sendEvent.IsExpired ());
-        
-	// NameBuilder name;
-	// name("prefix1")("prefix2")("filename");
-	CcnxInterestHeader ();
-
-	CcnxContentObjectHeader ();
-		
-	// const ccn_charbuf *output = name.GetName();
-	// Ptr<InterestPacket> packet = Create<InterestPacket>(name,(uint32_t)output->length);
-	// packet->AddTimeout(4000);
-	// UniformVariable var;
-	// packet->AddNonce(var.GetInteger(1,10000));
-	// m_socket->Send(packet);
-        
-	// ScheduleStartEvent();
-}
-
-}
diff --git a/apps/stupid-interest-generator.h b/apps/stupid-interest-generator.h
deleted file mode 100644
index f4fb287..0000000
--- a/apps/stupid-interest-generator.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-//  ndn_stupidinterestgenerator.h
-//  Abstraction
-//
-//  Created by Ilya Moiseenko on 05.08.11.
-//  Copyright 2011 UCLA. All rights reserved.
-//
-
-#include "ns3/application.h"
-#include "ns3/log.h"
-#include "ns3/address.h"
-#include "ns3/random-variable.h"
-#include "ns3/nstime.h"
-#include "ns3/event-id.h"
-#include "ns3/ptr.h"
-#include "ns3/udp-socket-factory.h"
-#include "ns3/socket.h"
-
-namespace ns3 
-{
-
-//namespace NDNabstraction
-//{
-    class Socket; //dynamic linking works in a somehow strange way
-    
-    class StupidInterestGenerator: public Application
-    {
-    public: 
-        static TypeId GetTypeId (void);
-        
-        StupidInterestGenerator ();
-        
-        virtual ~StupidInterestGenerator();
-        
-                
-    protected:
-        virtual void DoDispose (void);
-    private:
-        // inherited from Application base class.
-        virtual void StartApplication (void);    // Called at time specified by Start
-        virtual void StopApplication (void);     // Called at time specified by Stop
-        
-        //Time m_onTime;
-        Time m_offTime;
-        
-        Address         m_peer;         // Peer address
-        Ptr<Socket>     m_socket;
-        EventId         m_startStopEvent;     // Event id for next start or stop event
-        EventId         m_sendEvent;    // Eventid of pending "send packet" event
-        TypeId          m_tid;
-        
-        //helpers
-        void CancelEvents ();
-        
-        void Construct (Ptr<Node> n,
-                        const Address &remote,
-                        std::string tid,
-                        const RandomVariable& ontime,
-                        const RandomVariable& offtime,
-                        uint32_t size);
-        
-        // Event handlers
-        void StartSending ();
-        void StopSending ();
-        void SendPacket ();
-        
-    private:
-        void ScheduleNextTx ();
-        void ScheduleStartEvent ();
-        void ScheduleStopEvent ();
-        void ConnectionSucceeded (Ptr<Socket>);
-        void ConnectionFailed (Ptr<Socket>);
-        void Ignore (Ptr<Socket>);
-
-    };
-//}
-}
diff --git a/apps/stupid-interest-sink.cc b/apps/stupid-interest-sink.cc
deleted file mode 100644
index c9b166e..0000000
--- a/apps/stupid-interest-sink.cc
+++ /dev/null
@@ -1,189 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-//  stupid-interest-sink.cpp
-//  Abstraction
-//
-//  Created by Ilya Moiseenko on 10.08.11.
-//  Copyright 2011 UCLA. All rights reserved.
-//
-
-#include "stupid-interest-sink.h"
-
-#include "ns3/address.h"
-#include "ns3/address-utils.h"
-#include "ns3/log.h"
-#include "ns3/inet-socket-address.h"
-#include "ns3/node.h"
-#include "ns3/socket.h"
-#include "ns3/udp-socket.h"
-#include "ns3/simulator.h"
-#include "ns3/socket-factory.h"
-#include "ns3/packet.h"
-#include "ns3/trace-source-accessor.h"
-#include "ns3/udp-socket-factory.h"
-
-using namespace std;
-
-namespace ns3 {
-    
-    NS_LOG_COMPONENT_DEFINE ("StupidInterestSink");
-    NS_OBJECT_ENSURE_REGISTERED (StupidInterestSink);
-    
-    TypeId 
-    StupidInterestSink::GetTypeId (void)
-    {
-        static TypeId tid = TypeId ("ns3::StupidInterestSink")
-        .SetParent<Application> ()
-        .AddConstructor<StupidInterestSink> ()
-        .AddAttribute ("Local", "The Address on which to Bind the rx socket.",
-                       AddressValue (),
-                       MakeAddressAccessor (&StupidInterestSink::m_local),
-                       MakeAddressChecker ())
-        .AddAttribute ("Protocol", "The type id of the protocol to use for the rx socket.",
-                       TypeIdValue (UdpSocketFactory::GetTypeId ()),
-                       MakeTypeIdAccessor (&StupidInterestSink::m_tid),
-                       MakeTypeIdChecker ())
-        .AddTraceSource ("Rx", "A packet has been received",
-                         MakeTraceSourceAccessor (&StupidInterestSink::m_rxTrace))
-        ;
-        return tid;
-    }
-    
-    StupidInterestSink::StupidInterestSink ()
-    {
-        NS_LOG_FUNCTION (this);
-        m_socket = 0;
-        m_totalRx = 0;
-    }
-    
-    StupidInterestSink::~StupidInterestSink()
-    {
-        NS_LOG_FUNCTION (this);
-    }
-    
-    uint32_t StupidInterestSink::GetTotalRx () const
-    {
-        return m_totalRx;
-    }
-    
-    Ptr<Socket>
-    StupidInterestSink::GetListeningSocket (void) const
-    {
-        NS_LOG_FUNCTION (this);
-        return m_socket;
-    }
-    
-    std::list<Ptr<Socket> >
-    StupidInterestSink::GetAcceptedSockets (void) const
-    {
-        NS_LOG_FUNCTION (this);
-        return m_socketList;
-    }
-    
-    void StupidInterestSink::DoDispose (void)
-    {
-        NS_LOG_FUNCTION (this);
-        m_socket = 0;
-        m_socketList.clear ();
-        
-        // chain up
-        Application::DoDispose ();
-    }
-    
-    
-    // Application Methods
-    void StupidInterestSink::StartApplication ()    // Called at time specified by Start
-    {
-        NS_LOG_FUNCTION (this);
-        // Create the socket if not already
-        if (!m_socket)
-        {
-            m_socket = Socket::CreateSocket (GetNode (), m_tid);
-            m_socket->Bind (m_local);
-            m_socket->Listen ();
-            m_socket->ShutdownSend ();
-            if (addressUtils::IsMulticast (m_local))
-            {
-                Ptr<UdpSocket> udpSocket = DynamicCast<UdpSocket> (m_socket);
-                if (udpSocket)
-                {
-                    // equivalent to setsockopt (MCAST_JOIN_GROUP)
-                    udpSocket->MulticastJoinGroup (0, m_local);
-                }
-                else
-                {
-                    NS_FATAL_ERROR ("Error: joining multicast on a non-UDP socket");
-                }
-            }
-        }
-        
-        m_socket->SetRecvCallback (MakeCallback (&StupidInterestSink::HandleRead, this));
-        m_socket->SetAcceptCallback (
-                                     MakeNullCallback<bool, Ptr<Socket>, const Address &> (),
-                                     MakeCallback (&StupidInterestSink::HandleAccept, this));
-        m_socket->SetCloseCallbacks (
-                                     MakeCallback (&StupidInterestSink::HandlePeerClose, this),
-                                     MakeCallback (&StupidInterestSink::HandlePeerError, this));
-    }
-    
-    void StupidInterestSink::StopApplication ()     // Called at time specified by Stop
-    {
-        NS_LOG_FUNCTION (this);
-        while(!m_socketList.empty ()) //these are accepted sockets, close them
-        {
-            Ptr<Socket> acceptedSocket = m_socketList.front ();
-            m_socketList.pop_front ();
-            acceptedSocket->Close ();
-        }
-        if (m_socket) 
-        {
-            m_socket->Close ();
-            m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket> > ());
-        }
-    }
-    
-    void StupidInterestSink::HandleRead (Ptr<Socket> socket)
-    {
-        NS_LOG_FUNCTION (this << socket);
-        Ptr<Packet> packet;
-        Address from;
-        while (packet = socket->RecvFrom (from))
-        {
-            if (packet->GetSize () == 0)
-            { //EOF
-                break;
-            }
-            if (InetSocketAddress::IsMatchingType (from))
-            {
-                m_totalRx += packet->GetSize ();
-                InetSocketAddress address = InetSocketAddress::ConvertFrom (from);
-                NS_LOG_INFO ("Received " << packet->GetSize () << " bytes from " <<
-                             address.GetIpv4 () << " [" << address << "]"
-                             << " total Rx " << m_totalRx);
-                //cast address to void , to suppress 'address' set but not used 
-                //compiler warning in optimized builds
-                (void) address;
-            }
-            m_rxTrace (packet, from);
-        }
-    }
-    
-    void StupidInterestSink::HandlePeerClose (Ptr<Socket> socket)
-    {
-        NS_LOG_INFO ("PktSink, peerClose");
-    }
-    
-    void StupidInterestSink::HandlePeerError (Ptr<Socket> socket)
-    {
-        NS_LOG_INFO ("PktSink, peerError");
-    }
-    
-    
-    void StupidInterestSink::HandleAccept (Ptr<Socket> s, const Address& from)
-    {
-        NS_LOG_FUNCTION (this << s << from);
-        s->SetRecvCallback (MakeCallback (&StupidInterestSink::HandleRead, this));
-        m_socketList.push_back (s);
-    }
-    
-} // Namespace ns3
diff --git a/apps/stupid-interest-sink.h b/apps/stupid-interest-sink.h
deleted file mode 100644
index b750907..0000000
--- a/apps/stupid-interest-sink.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-//
-//  stupid-interest-sink.h
-//  Abstraction
-//
-//  Created by Ilya Moiseenko on 10.08.11.
-//  Copyright 2011 UCLA. All rights reserved.
-//
-
-#include "ns3/application.h"
-#include "ns3/event-id.h"
-#include "ns3/ptr.h"
-#include "ns3/traced-callback.h"
-#include "ns3/address.h"
-
-namespace ns3 
-{
-    
-    class Address;
-    class Socket;
-    class Packet;
-
-    class StupidInterestSink : public Application
-    {
-    public:
-        static TypeId GetTypeId (void);
-        StupidInterestSink ();
-        
-        virtual ~StupidInterestSink ();
-        
-        /**
-         * \return the total bytes received in this sink app
-         */
-        uint32_t GetTotalRx () const;
-        
-        /**
-         * \return pointer to listening socket
-         */
-        Ptr<Socket> GetListeningSocket (void) const;
-        
-        /**
-         * \return list of pointers to accepted sockets
-         */
-        std::list<Ptr<Socket> > GetAcceptedSockets (void) const;
-        
-    protected:
-        virtual void DoDispose (void);
-    private:
-        // inherited from Application base class.
-        virtual void StartApplication (void);    // Called at time specified by Start
-        virtual void StopApplication (void);     // Called at time specified by Stop
-        
-        void HandleRead (Ptr<Socket>);
-        void HandleAccept (Ptr<Socket>, const Address& from);
-        void HandlePeerClose (Ptr<Socket>);
-        void HandlePeerError (Ptr<Socket>);
-        
-        // In the case of TCP, each socket accept returns a new socket, so the 
-        // listening socket is stored seperately from the accepted sockets
-        Ptr<Socket>     m_socket;       // Listening socket
-        std::list<Ptr<Socket> > m_socketList; //the accepted sockets
-        
-        Address         m_local;        // Local address to bind to
-        uint32_t        m_totalRx;      // Total bytes received
-        TypeId          m_tid;          // Protocol TypeId
-        TracedCallback<Ptr<const Packet>, const Address &> m_rxTrace;
-    };
-}
diff --git a/bindings/callbacks_list.py b/bindings/callbacks_list.py
index 01ba5ff..73e61b2 100644
--- a/bindings/callbacks_list.py
+++ b/bindings/callbacks_list.py
@@ -1,4 +1,8 @@
 callback_classes = [
+    ['void', 'ns3::Ptr<ns3::Socket>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['void', 'ns3::Ptr<ns3::Socket>', 'unsigned int', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['void', 'ns3::Ptr<ns3::Socket>', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['bool', 'ns3::Ptr<ns3::Socket>', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::CcnxFace> const&', 'ns3::Ptr<ns3::Packet const> const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::Packet const> const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
diff --git a/bindings/modulegen__gcc_ILP32.py b/bindings/modulegen__gcc_ILP32.py
index 2030e69..0b0cd40 100644
--- a/bindings/modulegen__gcc_ILP32.py
+++ b/bindings/modulegen__gcc_ILP32.py
@@ -76,6 +76,10 @@
     module.add_class('Ipv4Address', import_from_module='ns.network')
     ## ipv4-address.h (module 'network'): ns3::Ipv4Address [class]
     root_module['ns3::Ipv4Address'].implicitly_converts_to(root_module['ns3::Address'])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress [class]
+    module.add_class('Ipv4InterfaceAddress', import_from_module='ns.internet')
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e [enumeration]
+    module.add_enum('InterfaceAddressScope_e', ['HOST', 'LINK', 'GLOBAL'], outer_class=root_module['ns3::Ipv4InterfaceAddress'], import_from_module='ns.internet')
     ## ipv4-address.h (module 'network'): ns3::Ipv4Mask [class]
     module.add_class('Ipv4Mask', import_from_module='ns.network')
     ## ipv6-address.h (module 'network'): ns3::Ipv6Address [class]
@@ -102,14 +106,6 @@
     module.add_enum('', ['PAYLOAD', 'HEADER', 'TRAILER'], outer_class=root_module['ns3::PacketMetadata::Item'], import_from_module='ns.network')
     ## packet-metadata.h (module 'network'): ns3::PacketMetadata::ItemIterator [class]
     module.add_class('ItemIterator', import_from_module='ns.network', outer_class=root_module['ns3::PacketMetadata'])
-    ## packet.h (module 'network'): ns3::PacketTagIterator [class]
-    module.add_class('PacketTagIterator', import_from_module='ns.network')
-    ## packet.h (module 'network'): ns3::PacketTagIterator::Item [class]
-    module.add_class('Item', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagIterator'])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList [class]
-    module.add_class('PacketTagList', import_from_module='ns.network')
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData [struct]
-    module.add_class('TagData', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagList'])
     ## random-variable.h (module 'core'): ns3::RandomVariable [class]
     module.add_class('RandomVariable', import_from_module='ns.core')
     ## random-variable.h (module 'core'): ns3::SeedManager [class]
@@ -120,10 +116,10 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Chunk', 'ns3::ObjectBase', 'ns3::DefaultDeleter<ns3::Chunk>'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter> [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simulator.h (module 'core'): ns3::Simulator [class]
+    module.add_class('Simulator', destructor_visibility='private', import_from_module='ns.core')
     ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper [class]
     module.add_class('SpringMobilityHelper')
-    ## tag.h (module 'network'): ns3::Tag [class]
-    module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::ObjectBase'])
     ## tag-buffer.h (module 'network'): ns3::TagBuffer [class]
     module.add_class('TagBuffer', import_from_module='ns.network')
     ## random-variable.h (module 'core'): ns3::TriangularVariable [class]
@@ -170,6 +166,12 @@
     module.add_class('Header', import_from_module='ns.network', parent=root_module['ns3::Chunk'])
     ## random-variable.h (module 'core'): ns3::IntEmpiricalVariable [class]
     module.add_class('IntEmpiricalVariable', import_from_module='ns.core', parent=root_module['ns3::EmpiricalVariable'])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header [class]
+    module.add_class('Ipv4Header', import_from_module='ns.internet', parent=root_module['ns3::Header'])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::DscpType [enumeration]
+    module.add_enum('DscpType', ['DscpDefault', 'CS1', 'AF11', 'AF12', 'AF13', 'CS2', 'AF21', 'AF22', 'AF23', 'CS3', 'AF31', 'AF32', 'AF33', 'CS4', 'AF41', 'AF42', 'AF43', 'CS5', 'EF', 'CS6', 'CS7'], outer_class=root_module['ns3::Ipv4Header'], import_from_module='ns.internet')
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::EcnType [enumeration]
+    module.add_enum('EcnType', ['NotECT', 'ECT1', 'ECT0', 'CE'], outer_class=root_module['ns3::Ipv4Header'], import_from_module='ns.internet')
     ## random-variable.h (module 'core'): ns3::LogNormalVariable [class]
     module.add_class('LogNormalVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariable'])
     ## random-variable.h (module 'core'): ns3::NormalVariable [class]
@@ -198,16 +200,38 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CcnxL3Tracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CcnxL3Tracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxNameComponents, ns3::empty, ns3::DefaultDeleter<ns3::CcnxNameComponents> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CcnxNameComponents', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CcnxNameComponents>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CcnxPathWeightTracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CcnxPathWeightTracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter<ns3::EventImpl>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::Ipv4AppTracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4AppTracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::Ipv4L3Tracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4L3Tracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Ipv4MulticastRoute', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4MulticastRoute>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Ipv4Route', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4Route>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter<ns3::NixVector>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::OutputStreamWrapper', 'ns3::empty', 'ns3::DefaultDeleter<ns3::OutputStreamWrapper>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Packet>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::TopologyReader, ns3::empty, ns3::DefaultDeleter<ns3::TopologyReader> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TopologyReader', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TopologyReader>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TraceSourceAccessor>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::WindowTracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::WindowTracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## socket.h (module 'network'): ns3::Socket [class]
+    module.add_class('Socket', import_from_module='ns.network', parent=root_module['ns3::Object'])
+    ## socket.h (module 'network'): ns3::Socket::SocketErrno [enumeration]
+    module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network')
+    ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration]
+    module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network')
+    ## tag.h (module 'network'): ns3::Tag [class]
+    module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::Object'])
     ## nstime.h (module 'core'): ns3::Time [class]
     module.add_class('Time', import_from_module='ns.core')
     ## nstime.h (module 'core'): ns3::Time::Unit [enumeration]
@@ -222,6 +246,12 @@
     module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
     ## trailer.h (module 'network'): ns3::Trailer [class]
     module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk'])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag [class]
+    module.add_class('WeightsPathStretchTag', parent=root_module['ns3::Tag'])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair [struct]
+    module.add_class('NodeWeightPair', outer_class=root_module['ns3::WeightsPathStretchTag'])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::WindowTracer [class]
+    module.add_class('WindowTracer', parent=root_module['ns3::SimpleRefCount< ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >'])
     ## annotated-topology-reader.h (module 'NDNabstraction'): ns3::AnnotatedTopologyReader [class]
     module.add_class('AnnotatedTopologyReader', parent=root_module['ns3::TopologyReader'])
     ## application.h (module 'network'): ns3::Application [class]
@@ -232,6 +262,10 @@
     module.add_class('AttributeChecker', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter<ns3::AttributeChecker> >'])
     ## attribute.h (module 'core'): ns3::AttributeValue [class]
     module.add_class('AttributeValue', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter<ns3::AttributeValue> >'])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesChecker [class]
+    module.add_class('BatchesChecker', parent=root_module['ns3::AttributeChecker'])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue [class]
+    module.add_class('BatchesValue', parent=root_module['ns3::AttributeValue'])
     ## callback.h (module 'core'): ns3::CallbackChecker [class]
     module.add_class('CallbackChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## callback.h (module 'core'): ns3::CallbackImplBase [class]
@@ -246,6 +280,8 @@
     module.add_class('CcnxApp', parent=root_module['ns3::Application'])
     ## ccnx-app-tracer.h (module 'NDNabstraction'): ns3::CcnxAppTracer [class]
     module.add_class('CcnxAppTracer', parent=root_module['ns3::SimpleRefCount< ns3::CcnxAppTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxAppTracer> >'])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::CcnxConsumerWindowTracer [class]
+    module.add_class('CcnxConsumerWindowTracer', parent=root_module['ns3::WindowTracer'])
     ## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectHeader [class]
     module.add_class('CcnxContentObjectHeader', parent=root_module['ns3::Header'])
     ## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectTail [class]
@@ -272,20 +308,42 @@
     module.add_class('CcnxNameComponentsChecker', parent=root_module['ns3::AttributeChecker'])
     ## ccnx-name-components.h (module 'NDNabstraction'): ns3::CcnxNameComponentsValue [class]
     module.add_class('CcnxNameComponentsValue', parent=root_module['ns3::AttributeValue'])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): ns3::CcnxPathWeightTracer [class]
+    module.add_class('CcnxPathWeightTracer', parent=root_module['ns3::SimpleRefCount< ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >'])
     ## attribute.h (module 'core'): ns3::EmptyAttributeValue [class]
     module.add_class('EmptyAttributeValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
     ## event-impl.h (module 'core'): ns3::EventImpl [class]
     module.add_class('EventImpl', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >'])
     ## integer.h (module 'core'): ns3::IntegerValue [class]
     module.add_class('IntegerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+    ## ipv4.h (module 'internet'): ns3::Ipv4 [class]
+    module.add_class('Ipv4', import_from_module='ns.internet', parent=root_module['ns3::Object'])
     ## ipv4-address.h (module 'network'): ns3::Ipv4AddressChecker [class]
     module.add_class('Ipv4AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## ipv4-address.h (module 'network'): ns3::Ipv4AddressValue [class]
     module.add_class('Ipv4AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): ns3::Ipv4AppTracer [class]
+    module.add_class('Ipv4AppTracer', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >'])
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol [class]
+    module.add_class('Ipv4L3Protocol', import_from_module='ns.internet', parent=root_module['ns3::Ipv4'])
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol::DropReason [enumeration]
+    module.add_enum('DropReason', ['DROP_TTL_EXPIRED', 'DROP_NO_ROUTE', 'DROP_BAD_CHECKSUM', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR', 'DROP_FRAGMENT_TIMEOUT'], outer_class=root_module['ns3::Ipv4L3Protocol'], import_from_module='ns.internet')
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): ns3::Ipv4L3Tracer [class]
+    module.add_class('Ipv4L3Tracer', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >'])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol [class]
+    module.add_class('Ipv4L4Protocol', import_from_module='ns.internet', parent=root_module['ns3::Object'])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::RxStatus [enumeration]
+    module.add_enum('RxStatus', ['RX_OK', 'RX_CSUM_FAILED', 'RX_ENDPOINT_CLOSED', 'RX_ENDPOINT_UNREACH'], outer_class=root_module['ns3::Ipv4L4Protocol'], import_from_module='ns.internet')
     ## ipv4-address.h (module 'network'): ns3::Ipv4MaskChecker [class]
     module.add_class('Ipv4MaskChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## ipv4-address.h (module 'network'): ns3::Ipv4MaskValue [class]
     module.add_class('Ipv4MaskValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute [class]
+    module.add_class('Ipv4MulticastRoute', import_from_module='ns.internet', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >'])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Route [class]
+    module.add_class('Ipv4Route', import_from_module='ns.internet', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >'])
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ipv4RoutingProtocol [class]
+    module.add_class('Ipv4RoutingProtocol', import_from_module='ns.internet', parent=root_module['ns3::Object'])
     ## ipv6-address.h (module 'network'): ns3::Ipv6AddressChecker [class]
     module.add_class('Ipv6AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## ipv6-address.h (module 'network'): ns3::Ipv6AddressValue [class]
@@ -308,6 +366,8 @@
     module.add_class('ObjectFactoryChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## object-factory.h (module 'core'): ns3::ObjectFactoryValue [class]
     module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper [class]
+    module.add_class('OutputStreamWrapper', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >'])
     ## packet.h (module 'network'): ns3::Packet [class]
     module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
     ## random-variable.h (module 'core'): ns3::RandomVariableChecker [class]
@@ -318,8 +378,16 @@
     module.add_class('RocketfuelWeightsReader', parent=root_module['ns3::AnnotatedTopologyReader'])
     ## rocketfuel-weights-reader.h (module 'NDNabstraction'): ns3::RocketfuelWeightsReader [enumeration]
     module.add_enum('', ['WEIGHTS', 'LATENCIES', 'POSITIONS'], outer_class=root_module['ns3::RocketfuelWeightsReader'])
+    ## socket.h (module 'network'): ns3::SocketAddressTag [class]
+    module.add_class('SocketAddressTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
+    ## socket.h (module 'network'): ns3::SocketIpTtlTag [class]
+    module.add_class('SocketIpTtlTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
+    ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag [class]
+    module.add_class('SocketSetDontFragmentTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
     ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel [class]
     module.add_class('SpringMobilityModel', parent=root_module['ns3::MobilityModel'])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::TcpCongestionWindowTracer [class]
+    module.add_class('TcpCongestionWindowTracer', parent=root_module['ns3::WindowTracer'])
     ## nstime.h (module 'core'): ns3::TimeChecker [class]
     module.add_class('TimeChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## nstime.h (module 'core'): ns3::TimeValue [class]
@@ -341,8 +409,11 @@
     ## address.h (module 'network'): ns3::AddressValue [class]
     module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
     module.add_container('std::map< std::string, std::string >', ('std::string', 'std::string'), container_type='map')
+    module.add_container('std::list< ns3::WeightsPathStretchTag::NodeWeightPair >', 'ns3::WeightsPathStretchTag::NodeWeightPair', container_type='list')
+    module.add_container('std::list< ns3::TopologyReader::Link >', 'ns3::TopologyReader::Link', container_type='list')
     module.add_container('std::list< boost::reference_wrapper< std::string const > >', 'boost::reference_wrapper< std::basic_string< char, std::char_traits< char >, std::allocator< char > > const >', container_type='list')
     module.add_container('std::list< std::string >', 'std::string', container_type='list')
+    module.add_container('std::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type='map')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
@@ -401,6 +472,7 @@
     register_Ns3CcnxUnknownHeaderException_methods(root_module, root_module['ns3::CcnxUnknownHeaderException'])
     register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
     register_Ns3Ipv4Address_methods(root_module, root_module['ns3::Ipv4Address'])
+    register_Ns3Ipv4InterfaceAddress_methods(root_module, root_module['ns3::Ipv4InterfaceAddress'])
     register_Ns3Ipv4Mask_methods(root_module, root_module['ns3::Ipv4Mask'])
     register_Ns3Ipv6Address_methods(root_module, root_module['ns3::Ipv6Address'])
     register_Ns3Ipv6Prefix_methods(root_module, root_module['ns3::Ipv6Prefix'])
@@ -412,17 +484,13 @@
     register_Ns3PacketMetadata_methods(root_module, root_module['ns3::PacketMetadata'])
     register_Ns3PacketMetadataItem_methods(root_module, root_module['ns3::PacketMetadata::Item'])
     register_Ns3PacketMetadataItemIterator_methods(root_module, root_module['ns3::PacketMetadata::ItemIterator'])
-    register_Ns3PacketTagIterator_methods(root_module, root_module['ns3::PacketTagIterator'])
-    register_Ns3PacketTagIteratorItem_methods(root_module, root_module['ns3::PacketTagIterator::Item'])
-    register_Ns3PacketTagList_methods(root_module, root_module['ns3::PacketTagList'])
-    register_Ns3PacketTagListTagData_methods(root_module, root_module['ns3::PacketTagList::TagData'])
     register_Ns3RandomVariable_methods(root_module, root_module['ns3::RandomVariable'])
     register_Ns3SeedManager_methods(root_module, root_module['ns3::SeedManager'])
     register_Ns3SequentialVariable_methods(root_module, root_module['ns3::SequentialVariable'])
     register_Ns3SimpleRefCount__Ns3Chunk_Ns3ObjectBase_Ns3DefaultDeleter__lt__ns3Chunk__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Chunk, ns3::ObjectBase, ns3::DefaultDeleter<ns3::Chunk> >'])
     register_Ns3SimpleRefCount__Ns3Object_Ns3ObjectBase_Ns3ObjectDeleter_methods(root_module, root_module['ns3::SimpleRefCount< ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter >'])
+    register_Ns3Simulator_methods(root_module, root_module['ns3::Simulator'])
     register_Ns3SpringMobilityHelper_methods(root_module, root_module['ns3::SpringMobilityHelper'])
-    register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
     register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
     register_Ns3TriangularVariable_methods(root_module, root_module['ns3::TriangularVariable'])
     register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId'])
@@ -445,6 +513,7 @@
     register_Ns3GammaVariable_methods(root_module, root_module['ns3::GammaVariable'])
     register_Ns3Header_methods(root_module, root_module['ns3::Header'])
     register_Ns3IntEmpiricalVariable_methods(root_module, root_module['ns3::IntEmpiricalVariable'])
+    register_Ns3Ipv4Header_methods(root_module, root_module['ns3::Ipv4Header'])
     register_Ns3LogNormalVariable_methods(root_module, root_module['ns3::LogNormalVariable'])
     register_Ns3NormalVariable_methods(root_module, root_module['ns3::NormalVariable'])
     register_Ns3Object_methods(root_module, root_module['ns3::Object'])
@@ -459,27 +528,42 @@
     register_Ns3SimpleRefCount__Ns3CcnxFibEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxFibEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxFibEntry, ns3::empty, ns3::DefaultDeleter<ns3::CcnxFibEntry> >'])
     register_Ns3SimpleRefCount__Ns3CcnxL3Tracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxL3Tracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxL3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxL3Tracer> >'])
     register_Ns3SimpleRefCount__Ns3CcnxNameComponents_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxNameComponents__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxNameComponents, ns3::empty, ns3::DefaultDeleter<ns3::CcnxNameComponents> >'])
+    register_Ns3SimpleRefCount__Ns3CcnxPathWeightTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxPathWeightTracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >'])
     register_Ns3SimpleRefCount__Ns3EventImpl_Ns3Empty_Ns3DefaultDeleter__lt__ns3EventImpl__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4AppTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4AppTracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4L3Tracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4L3Tracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4MulticastRoute_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4MulticastRoute__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4Route_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4Route__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >'])
     register_Ns3SimpleRefCount__Ns3NixVector_Ns3Empty_Ns3DefaultDeleter__lt__ns3NixVector__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >'])
+    register_Ns3SimpleRefCount__Ns3OutputStreamWrapper_Ns3Empty_Ns3DefaultDeleter__lt__ns3OutputStreamWrapper__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >'])
     register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
     register_Ns3SimpleRefCount__Ns3TopologyReader_Ns3Empty_Ns3DefaultDeleter__lt__ns3TopologyReader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TopologyReader, ns3::empty, ns3::DefaultDeleter<ns3::TopologyReader> >'])
     register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
+    register_Ns3SimpleRefCount__Ns3WindowTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3WindowTracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >'])
+    register_Ns3Socket_methods(root_module, root_module['ns3::Socket'])
+    register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
     register_Ns3Time_methods(root_module, root_module['ns3::Time'])
     register_Ns3TopologyReader_methods(root_module, root_module['ns3::TopologyReader'])
     register_Ns3TopologyReaderLink_methods(root_module, root_module['ns3::TopologyReader::Link'])
     register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor'])
     register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer'])
+    register_Ns3WeightsPathStretchTag_methods(root_module, root_module['ns3::WeightsPathStretchTag'])
+    register_Ns3WeightsPathStretchTagNodeWeightPair_methods(root_module, root_module['ns3::WeightsPathStretchTag::NodeWeightPair'])
+    register_Ns3WindowTracer_methods(root_module, root_module['ns3::WindowTracer'])
     register_Ns3AnnotatedTopologyReader_methods(root_module, root_module['ns3::AnnotatedTopologyReader'])
     register_Ns3Application_methods(root_module, root_module['ns3::Application'])
     register_Ns3AttributeAccessor_methods(root_module, root_module['ns3::AttributeAccessor'])
     register_Ns3AttributeChecker_methods(root_module, root_module['ns3::AttributeChecker'])
     register_Ns3AttributeValue_methods(root_module, root_module['ns3::AttributeValue'])
+    register_Ns3BatchesChecker_methods(root_module, root_module['ns3::BatchesChecker'])
+    register_Ns3BatchesValue_methods(root_module, root_module['ns3::BatchesValue'])
     register_Ns3CallbackChecker_methods(root_module, root_module['ns3::CallbackChecker'])
     register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase'])
     register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue'])
     register_Ns3Ccnx_methods(root_module, root_module['ns3::Ccnx'])
     register_Ns3CcnxApp_methods(root_module, root_module['ns3::CcnxApp'])
     register_Ns3CcnxAppTracer_methods(root_module, root_module['ns3::CcnxAppTracer'])
+    register_Ns3CcnxConsumerWindowTracer_methods(root_module, root_module['ns3::CcnxConsumerWindowTracer'])
     register_Ns3CcnxContentObjectHeader_methods(root_module, root_module['ns3::CcnxContentObjectHeader'])
     register_Ns3CcnxContentObjectTail_methods(root_module, root_module['ns3::CcnxContentObjectTail'])
     register_Ns3CcnxFace_methods(root_module, root_module['ns3::CcnxFace'])
@@ -492,13 +576,22 @@
     register_Ns3CcnxNameComponents_methods(root_module, root_module['ns3::CcnxNameComponents'])
     register_Ns3CcnxNameComponentsChecker_methods(root_module, root_module['ns3::CcnxNameComponentsChecker'])
     register_Ns3CcnxNameComponentsValue_methods(root_module, root_module['ns3::CcnxNameComponentsValue'])
+    register_Ns3CcnxPathWeightTracer_methods(root_module, root_module['ns3::CcnxPathWeightTracer'])
     register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue'])
     register_Ns3EventImpl_methods(root_module, root_module['ns3::EventImpl'])
     register_Ns3IntegerValue_methods(root_module, root_module['ns3::IntegerValue'])
+    register_Ns3Ipv4_methods(root_module, root_module['ns3::Ipv4'])
     register_Ns3Ipv4AddressChecker_methods(root_module, root_module['ns3::Ipv4AddressChecker'])
     register_Ns3Ipv4AddressValue_methods(root_module, root_module['ns3::Ipv4AddressValue'])
+    register_Ns3Ipv4AppTracer_methods(root_module, root_module['ns3::Ipv4AppTracer'])
+    register_Ns3Ipv4L3Protocol_methods(root_module, root_module['ns3::Ipv4L3Protocol'])
+    register_Ns3Ipv4L3Tracer_methods(root_module, root_module['ns3::Ipv4L3Tracer'])
+    register_Ns3Ipv4L4Protocol_methods(root_module, root_module['ns3::Ipv4L4Protocol'])
     register_Ns3Ipv4MaskChecker_methods(root_module, root_module['ns3::Ipv4MaskChecker'])
     register_Ns3Ipv4MaskValue_methods(root_module, root_module['ns3::Ipv4MaskValue'])
+    register_Ns3Ipv4MulticastRoute_methods(root_module, root_module['ns3::Ipv4MulticastRoute'])
+    register_Ns3Ipv4Route_methods(root_module, root_module['ns3::Ipv4Route'])
+    register_Ns3Ipv4RoutingProtocol_methods(root_module, root_module['ns3::Ipv4RoutingProtocol'])
     register_Ns3Ipv6AddressChecker_methods(root_module, root_module['ns3::Ipv6AddressChecker'])
     register_Ns3Ipv6AddressValue_methods(root_module, root_module['ns3::Ipv6AddressValue'])
     register_Ns3Ipv6PrefixChecker_methods(root_module, root_module['ns3::Ipv6PrefixChecker'])
@@ -509,11 +602,16 @@
     register_Ns3Node_methods(root_module, root_module['ns3::Node'])
     register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker'])
     register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue'])
+    register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper'])
     register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
     register_Ns3RandomVariableChecker_methods(root_module, root_module['ns3::RandomVariableChecker'])
     register_Ns3RandomVariableValue_methods(root_module, root_module['ns3::RandomVariableValue'])
     register_Ns3RocketfuelWeightsReader_methods(root_module, root_module['ns3::RocketfuelWeightsReader'])
+    register_Ns3SocketAddressTag_methods(root_module, root_module['ns3::SocketAddressTag'])
+    register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag'])
+    register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag'])
     register_Ns3SpringMobilityModel_methods(root_module, root_module['ns3::SpringMobilityModel'])
+    register_Ns3TcpCongestionWindowTracer_methods(root_module, root_module['ns3::TcpCongestionWindowTracer'])
     register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
     register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
     register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker'])
@@ -1109,8 +1207,8 @@
     cls.add_binary_comparison_operator('<')
     ## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibFaceMetric::CcnxFibFaceMetric(ns3::CcnxFibFaceMetric const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::CcnxFibFaceMetric const &', 'arg0')])
-    ## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibFaceMetric::CcnxFibFaceMetric(ns3::Ptr<ns3::CcnxFace> face, int cost) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::CcnxFace >', 'face'), param('int', 'cost')])
+    ## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibFaceMetric::CcnxFibFaceMetric(ns3::Ptr<ns3::CcnxFace> face, int32_t cost) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::CcnxFace >', 'face'), param('int32_t', 'cost')])
     ## ccnx-fib.h (module 'NDNabstraction'): ns3::Ptr<ns3::CcnxFace> ns3::CcnxFibFaceMetric::GetFace() const [member function]
     cls.add_method('GetFace', 
                    'ns3::Ptr< ns3::CcnxFace >', 
@@ -1189,32 +1287,45 @@
                    'ns3::Ptr< ns3::CcnxFaceContainer >', 
                    [], 
                    is_const=True)
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::AddRoute(std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric) const [member function]
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::AddRoute(std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric) [member function]
     cls.add_method('AddRoute', 
                    'void', 
                    [param('std::string', 'nodeName'), param('std::string', 'prefix'), param('uint32_t', 'faceId'), param('int32_t', 'metric')], 
-                   is_const=True)
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::AddRoute(ns3::Ptr<ns3::Node> node, std::string prefix, ns3::Ptr<ns3::CcnxFace> face, int32_t metric) const [member function]
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::AddRoute(ns3::Ptr<ns3::Node> node, std::string prefix, ns3::Ptr<ns3::CcnxFace> face, int32_t metric) [member function]
     cls.add_method('AddRoute', 
                    'void', 
                    [param('ns3::Ptr< ns3::Node >', 'node'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::CcnxFace >', 'face'), param('int32_t', 'metric')], 
-                   is_const=True)
+                   is_static=True)
     ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::SetDefaultRoutes(bool needSet) [member function]
     cls.add_method('SetDefaultRoutes', 
                    'void', 
                    [param('bool', 'needSet')])
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::InstallFakeGlobalRoutes() [member function]
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallFakeGlobalRoutes() [member function]
     cls.add_method('InstallFakeGlobalRoutes', 
                    'void', 
-                   [])
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::InstallRouteTo(ns3::Ptr<ns3::Node> node) [member function]
+                   [], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallFakeGlobalRoutesImpl() [member function]
+    cls.add_method('InstallFakeGlobalRoutesImpl', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallRouteTo(ns3::Ptr<ns3::Node> node) [member function]
     cls.add_method('InstallRouteTo', 
                    'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::InstallRoutesToAll() [member function]
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallRouteTo(std::string const & prefix, ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('InstallRouteTo', 
+                   'void', 
+                   [param('std::string const &', 'prefix'), param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallRoutesToAll() [member function]
     cls.add_method('InstallRoutesToAll', 
                    'void', 
-                   [])
+                   [], 
+                   is_static=True)
     return
 
 def register_Ns3CcnxTraceHelper_methods(root_module, cls):
@@ -1230,10 +1341,34 @@
     cls.add_method('EnableAggregateL3All', 
                    'void', 
                    [])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableIpv4RateL3All(std::string const & ipv4RateTrace="ipv4-rate.log") [member function]
+    cls.add_method('EnableIpv4RateL3All', 
+                   'void', 
+                   [param('std::string const &', 'ipv4RateTrace', default_value='"ipv4-rate.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableIpv4SeqsAppAll(std::string const & appSeqsTrace="app-seqs.log") [member function]
+    cls.add_method('EnableIpv4SeqsAppAll', 
+                   'void', 
+                   [param('std::string const &', 'appSeqsTrace', default_value='"app-seqs.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnablePathWeights(std::string const & pathWeights) [member function]
+    cls.add_method('EnablePathWeights', 
+                   'void', 
+                   [param('std::string const &', 'pathWeights')])
     ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableRateL3All(std::string const & l3RateTrace="l3-rate.log") [member function]
     cls.add_method('EnableRateL3All', 
                    'void', 
                    [param('std::string const &', 'l3RateTrace', default_value='"l3-rate.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableSeqsAppAll(std::string const & app, std::string const & appSeqsTrace="app-seqs.log") [member function]
+    cls.add_method('EnableSeqsAppAll', 
+                   'void', 
+                   [param('std::string const &', 'app'), param('std::string const &', 'appSeqsTrace', default_value='"app-seqs.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableWindowsAll(std::string const & windowTrace="windows.log") [member function]
+    cls.add_method('EnableWindowsAll', 
+                   'void', 
+                   [param('std::string const &', 'windowTrace', default_value='"windows.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableWindowsTcpAll(std::string const & windowTrace) [member function]
+    cls.add_method('EnableWindowsTcpAll', 
+                   'void', 
+                   [param('std::string const &', 'windowTrace')])
     ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::SetAppTraceFile(std::string const & appTrace="apps.log") [member function]
     cls.add_method('SetAppTraceFile', 
                    'void', 
@@ -1242,6 +1377,10 @@
     cls.add_method('SetL3TraceFile', 
                    'void', 
                    [param('std::string const &', 'l3Trace', default_value='"l3.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::TcpConnect(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('TcpConnect', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
     return
 
 def register_Ns3CcnxUnknownHeaderException_methods(root_module, cls):
@@ -1404,6 +1543,67 @@
                    [param('char const *', 'address')])
     return
 
+def register_Ns3Ipv4InterfaceAddress_methods(root_module, cls):
+    cls.add_binary_comparison_operator('!=')
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress() [constructor]
+    cls.add_constructor([])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress(ns3::Ipv4Address local, ns3::Ipv4Mask mask) [constructor]
+    cls.add_constructor([param('ns3::Ipv4Address', 'local'), param('ns3::Ipv4Mask', 'mask')])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress(ns3::Ipv4InterfaceAddress const & o) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4InterfaceAddress const &', 'o')])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4InterfaceAddress::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4InterfaceAddress::GetLocal() const [member function]
+    cls.add_method('GetLocal', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4Mask ns3::Ipv4InterfaceAddress::GetMask() const [member function]
+    cls.add_method('GetMask', 
+                   'ns3::Ipv4Mask', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e ns3::Ipv4InterfaceAddress::GetScope() const [member function]
+    cls.add_method('GetScope', 
+                   'ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): bool ns3::Ipv4InterfaceAddress::IsSecondary() const [member function]
+    cls.add_method('IsSecondary', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetBroadcast(ns3::Ipv4Address broadcast) [member function]
+    cls.add_method('SetBroadcast', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'broadcast')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetLocal(ns3::Ipv4Address local) [member function]
+    cls.add_method('SetLocal', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'local')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetMask(ns3::Ipv4Mask mask) [member function]
+    cls.add_method('SetMask', 
+                   'void', 
+                   [param('ns3::Ipv4Mask', 'mask')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetPrimary() [member function]
+    cls.add_method('SetPrimary', 
+                   'void', 
+                   [])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetScope(ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e scope) [member function]
+    cls.add_method('SetScope', 
+                   'void', 
+                   [param('ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 'scope')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetSecondary() [member function]
+    cls.add_method('SetSecondary', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3Ipv4Mask_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
     cls.add_output_stream_operator()
@@ -2025,80 +2225,6 @@
                    [])
     return
 
-def register_Ns3PacketTagIterator_methods(root_module, cls):
-    ## packet.h (module 'network'): ns3::PacketTagIterator::PacketTagIterator(ns3::PacketTagIterator const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagIterator const &', 'arg0')])
-    ## packet.h (module 'network'): bool ns3::PacketTagIterator::HasNext() const [member function]
-    cls.add_method('HasNext', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## packet.h (module 'network'): ns3::PacketTagIterator::Item ns3::PacketTagIterator::Next() [member function]
-    cls.add_method('Next', 
-                   'ns3::PacketTagIterator::Item', 
-                   [])
-    return
-
-def register_Ns3PacketTagIteratorItem_methods(root_module, cls):
-    ## packet.h (module 'network'): ns3::PacketTagIterator::Item::Item(ns3::PacketTagIterator::Item const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagIterator::Item const &', 'arg0')])
-    ## packet.h (module 'network'): void ns3::PacketTagIterator::Item::GetTag(ns3::Tag & tag) const [member function]
-    cls.add_method('GetTag', 
-                   'void', 
-                   [param('ns3::Tag &', 'tag')], 
-                   is_const=True)
-    ## packet.h (module 'network'): ns3::TypeId ns3::PacketTagIterator::Item::GetTypeId() const [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3PacketTagList_methods(root_module, cls):
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::PacketTagList() [constructor]
-    cls.add_constructor([])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::PacketTagList(ns3::PacketTagList const & o) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagList const &', 'o')])
-    ## packet-tag-list.h (module 'network'): void ns3::PacketTagList::Add(ns3::Tag const & tag) const [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Tag const &', 'tag')], 
-                   is_const=True)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData const * ns3::PacketTagList::Head() const [member function]
-    cls.add_method('Head', 
-                   'ns3::PacketTagList::TagData const *', 
-                   [], 
-                   is_const=True)
-    ## packet-tag-list.h (module 'network'): bool ns3::PacketTagList::Peek(ns3::Tag & tag) const [member function]
-    cls.add_method('Peek', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')], 
-                   is_const=True)
-    ## packet-tag-list.h (module 'network'): bool ns3::PacketTagList::Remove(ns3::Tag & tag) [member function]
-    cls.add_method('Remove', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')])
-    ## packet-tag-list.h (module 'network'): void ns3::PacketTagList::RemoveAll() [member function]
-    cls.add_method('RemoveAll', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3PacketTagListTagData_methods(root_module, cls):
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::TagData() [constructor]
-    cls.add_constructor([])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::TagData(ns3::PacketTagList::TagData const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagList::TagData const &', 'arg0')])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::count [variable]
-    cls.add_instance_attribute('count', 'uint32_t', is_const=False)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::data [variable]
-    cls.add_instance_attribute('data', 'uint8_t [ 20 ]', is_const=False)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::next [variable]
-    cls.add_instance_attribute('next', 'ns3::PacketTagList::TagData *', is_const=False)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::tid [variable]
-    cls.add_instance_attribute('tid', 'ns3::TypeId', is_const=False)
-    return
-
 def register_Ns3RandomVariable_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## random-variable.h (module 'core'): ns3::RandomVariable::RandomVariable() [constructor]
@@ -2182,6 +2308,96 @@
                    is_static=True)
     return
 
+def register_Ns3Simulator_methods(root_module, cls):
+    ## simulator.h (module 'core'): ns3::Simulator::Simulator(ns3::Simulator const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Simulator const &', 'arg0')])
+    ## simulator.h (module 'core'): static void ns3::Simulator::Cancel(ns3::EventId const & id) [member function]
+    cls.add_method('Cancel', 
+                   'void', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Destroy() [member function]
+    cls.add_method('Destroy', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static uint32_t ns3::Simulator::GetContext() [member function]
+    cls.add_method('GetContext', 
+                   'uint32_t', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::GetDelayLeft(ns3::EventId const & id) [member function]
+    cls.add_method('GetDelayLeft', 
+                   'ns3::Time', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Ptr<ns3::SimulatorImpl> ns3::Simulator::GetImplementation() [member function]
+    cls.add_method('GetImplementation', 
+                   'ns3::Ptr< ns3::SimulatorImpl >', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::GetMaximumSimulationTime() [member function]
+    cls.add_method('GetMaximumSimulationTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static uint32_t ns3::Simulator::GetSystemId() [member function]
+    cls.add_method('GetSystemId', 
+                   'uint32_t', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static bool ns3::Simulator::IsExpired(ns3::EventId const & id) [member function]
+    cls.add_method('IsExpired', 
+                   'bool', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static bool ns3::Simulator::IsFinished() [member function]
+    cls.add_method('IsFinished', 
+                   'bool', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::Next() [member function]
+    cls.add_method('Next', 
+                   'ns3::Time', 
+                   [], 
+                   is_static=True, deprecated=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::Now() [member function]
+    cls.add_method('Now', 
+                   'ns3::Time', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Remove(ns3::EventId const & id) [member function]
+    cls.add_method('Remove', 
+                   'void', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::RunOneEvent() [member function]
+    cls.add_method('RunOneEvent', 
+                   'void', 
+                   [], 
+                   is_static=True, deprecated=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::SetImplementation(ns3::Ptr<ns3::SimulatorImpl> impl) [member function]
+    cls.add_method('SetImplementation', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SimulatorImpl >', 'impl')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::SetScheduler(ns3::ObjectFactory schedulerFactory) [member function]
+    cls.add_method('SetScheduler', 
+                   'void', 
+                   [param('ns3::ObjectFactory', 'schedulerFactory')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Stop(ns3::Time const & time) [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [param('ns3::Time const &', 'time')], 
+                   is_static=True)
+    return
+
 def register_Ns3SpringMobilityHelper_methods(root_module, cls):
     ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper::SpringMobilityHelper() [constructor]
     cls.add_constructor([])
@@ -2199,38 +2415,6 @@
                    is_static=True)
     return
 
-def register_Ns3Tag_methods(root_module, cls):
-    ## tag.h (module 'network'): ns3::Tag::Tag() [constructor]
-    cls.add_constructor([])
-    ## tag.h (module 'network'): ns3::Tag::Tag(ns3::Tag const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Tag const &', 'arg0')])
-    ## tag.h (module 'network'): void ns3::Tag::Deserialize(ns3::TagBuffer i) [member function]
-    cls.add_method('Deserialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## tag.h (module 'network'): void ns3::Tag::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    return
-
 def register_Ns3TagBuffer_methods(root_module, cls):
     ## tag-buffer.h (module 'network'): ns3::TagBuffer::TagBuffer(ns3::TagBuffer const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TagBuffer const &', 'arg0')])
@@ -2832,6 +3016,178 @@
     cls.add_constructor([])
     return
 
+def register_Ns3Ipv4Header_methods(root_module, cls):
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::Ipv4Header(ns3::Ipv4Header const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4Header const &', 'arg0')])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::Ipv4Header() [constructor]
+    cls.add_constructor([])
+    ## ipv4-header.h (module 'internet'): uint32_t ns3::Ipv4Header::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## ipv4-header.h (module 'internet'): std::string ns3::Ipv4Header::DscpTypeToString(ns3::Ipv4Header::DscpType dscp) const [member function]
+    cls.add_method('DscpTypeToString', 
+                   'std::string', 
+                   [param('ns3::Ipv4Header::DscpType', 'dscp')], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): std::string ns3::Ipv4Header::EcnTypeToString(ns3::Ipv4Header::EcnType ecn) const [member function]
+    cls.add_method('EcnTypeToString', 
+                   'std::string', 
+                   [param('ns3::Ipv4Header::EcnType', 'ecn')], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::EnableChecksum() [member function]
+    cls.add_method('EnableChecksum', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Header::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::DscpType ns3::Ipv4Header::GetDscp() const [member function]
+    cls.add_method('GetDscp', 
+                   'ns3::Ipv4Header::DscpType', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::EcnType ns3::Ipv4Header::GetEcn() const [member function]
+    cls.add_method('GetEcn', 
+                   'ns3::Ipv4Header::EcnType', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint16_t ns3::Ipv4Header::GetFragmentOffset() const [member function]
+    cls.add_method('GetFragmentOffset', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint16_t ns3::Ipv4Header::GetIdentification() const [member function]
+    cls.add_method('GetIdentification', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): ns3::TypeId ns3::Ipv4Header::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): uint16_t ns3::Ipv4Header::GetPayloadSize() const [member function]
+    cls.add_method('GetPayloadSize', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint8_t ns3::Ipv4Header::GetProtocol() const [member function]
+    cls.add_method('GetProtocol', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint32_t ns3::Ipv4Header::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Header::GetSource() const [member function]
+    cls.add_method('GetSource', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint8_t ns3::Ipv4Header::GetTos() const [member function]
+    cls.add_method('GetTos', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint8_t ns3::Ipv4Header::GetTtl() const [member function]
+    cls.add_method('GetTtl', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): static ns3::TypeId ns3::Ipv4Header::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-header.h (module 'internet'): bool ns3::Ipv4Header::IsChecksumOk() const [member function]
+    cls.add_method('IsChecksumOk', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): bool ns3::Ipv4Header::IsDontFragment() const [member function]
+    cls.add_method('IsDontFragment', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): bool ns3::Ipv4Header::IsLastFragment() const [member function]
+    cls.add_method('IsLastFragment', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetDestination(ns3::Ipv4Address destination) [member function]
+    cls.add_method('SetDestination', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'destination')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetDontFragment() [member function]
+    cls.add_method('SetDontFragment', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetDscp(ns3::Ipv4Header::DscpType dscp) [member function]
+    cls.add_method('SetDscp', 
+                   'void', 
+                   [param('ns3::Ipv4Header::DscpType', 'dscp')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetEcn(ns3::Ipv4Header::EcnType ecn) [member function]
+    cls.add_method('SetEcn', 
+                   'void', 
+                   [param('ns3::Ipv4Header::EcnType', 'ecn')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetFragmentOffset(uint16_t offsetBytes) [member function]
+    cls.add_method('SetFragmentOffset', 
+                   'void', 
+                   [param('uint16_t', 'offsetBytes')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetIdentification(uint16_t identification) [member function]
+    cls.add_method('SetIdentification', 
+                   'void', 
+                   [param('uint16_t', 'identification')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetLastFragment() [member function]
+    cls.add_method('SetLastFragment', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetMayFragment() [member function]
+    cls.add_method('SetMayFragment', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetMoreFragments() [member function]
+    cls.add_method('SetMoreFragments', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetPayloadSize(uint16_t size) [member function]
+    cls.add_method('SetPayloadSize', 
+                   'void', 
+                   [param('uint16_t', 'size')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetProtocol(uint8_t num) [member function]
+    cls.add_method('SetProtocol', 
+                   'void', 
+                   [param('uint8_t', 'num')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetSource(ns3::Ipv4Address source) [member function]
+    cls.add_method('SetSource', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'source')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetTos(uint8_t tos) [member function]
+    cls.add_method('SetTos', 
+                   'void', 
+                   [param('uint8_t', 'tos')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetTtl(uint8_t ttl) [member function]
+    cls.add_method('SetTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    return
+
 def register_Ns3LogNormalVariable_methods(root_module, cls):
     ## random-variable.h (module 'core'): ns3::LogNormalVariable::LogNormalVariable(ns3::LogNormalVariable const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogNormalVariable const &', 'arg0')])
@@ -3041,6 +3397,18 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3CcnxPathWeightTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxPathWeightTracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter< ns3::CcnxPathWeightTracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3SimpleRefCount__Ns3EventImpl_Ns3Empty_Ns3DefaultDeleter__lt__ns3EventImpl__gt___methods(root_module, cls):
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
@@ -3053,6 +3421,54 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3Ipv4AppTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4AppTracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4AppTracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3SimpleRefCount__Ns3Ipv4L3Tracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4L3Tracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4L3Tracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3SimpleRefCount__Ns3Ipv4MulticastRoute_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4MulticastRoute__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4MulticastRoute > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3SimpleRefCount__Ns3Ipv4Route_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4Route__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4Route > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3SimpleRefCount__Ns3NixVector_Ns3Empty_Ns3DefaultDeleter__lt__ns3NixVector__gt___methods(root_module, cls):
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
@@ -3065,6 +3481,18 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3OutputStreamWrapper_Ns3Empty_Ns3DefaultDeleter__lt__ns3OutputStreamWrapper__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >::SimpleRefCount(ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter< ns3::OutputStreamWrapper > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, cls):
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
@@ -3101,6 +3529,278 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3WindowTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3WindowTracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter< ns3::WindowTracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3Socket_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::Socket::Socket(ns3::Socket const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Socket const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::Socket::Socket() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): int ns3::Socket::Bind(ns3::Address const & address) [member function]
+    cls.add_method('Bind', 
+                   'int', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Bind() [member function]
+    cls.add_method('Bind', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::BindToNetDevice(ns3::Ptr<ns3::NetDevice> netdevice) [member function]
+    cls.add_method('BindToNetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'netdevice')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Close() [member function]
+    cls.add_method('Close', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Connect(ns3::Address const & address) [member function]
+    cls.add_method('Connect', 
+                   'int', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): static ns3::Ptr<ns3::Socket> ns3::Socket::CreateSocket(ns3::Ptr<ns3::Node> node, ns3::TypeId tid) [member function]
+    cls.add_method('CreateSocket', 
+                   'ns3::Ptr< ns3::Socket >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::TypeId', 'tid')], 
+                   is_static=True)
+    ## socket.h (module 'network'): bool ns3::Socket::GetAllowBroadcast() const [member function]
+    cls.add_method('GetAllowBroadcast', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::NetDevice> ns3::Socket::GetBoundNetDevice() [member function]
+    cls.add_method('GetBoundNetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [])
+    ## socket.h (module 'network'): ns3::Socket::SocketErrno ns3::Socket::GetErrno() const [member function]
+    cls.add_method('GetErrno', 
+                   'ns3::Socket::SocketErrno', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Node> ns3::Socket::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function]
+    cls.add_method('GetRxAvailable', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::GetSockName(ns3::Address & address) const [member function]
+    cls.add_method('GetSockName', 
+                   'int', 
+                   [param('ns3::Address &', 'address')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Socket::SocketType ns3::Socket::GetSocketType() const [member function]
+    cls.add_method('GetSocketType', 
+                   'ns3::Socket::SocketType', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::Socket::GetTxAvailable() const [member function]
+    cls.add_method('GetTxAvailable', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): bool ns3::Socket::IsRecvPktInfo() const [member function]
+    cls.add_method('IsRecvPktInfo', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## socket.h (module 'network'): int ns3::Socket::Listen() [member function]
+    cls.add_method('Listen', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::Recv(uint32_t maxSize, uint32_t flags) [member function]
+    cls.add_method('Recv', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'maxSize'), param('uint32_t', 'flags')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::Recv() [member function]
+    cls.add_method('Recv', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## socket.h (module 'network'): int ns3::Socket::Recv(uint8_t * buf, uint32_t size, uint32_t flags) [member function]
+    cls.add_method('Recv', 
+                   'int', 
+                   [param('uint8_t *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags')])
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::RecvFrom(uint32_t maxSize, uint32_t flags, ns3::Address & fromAddress) [member function]
+    cls.add_method('RecvFrom', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'maxSize'), param('uint32_t', 'flags'), param('ns3::Address &', 'fromAddress')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::RecvFrom(ns3::Address & fromAddress) [member function]
+    cls.add_method('RecvFrom', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('ns3::Address &', 'fromAddress')])
+    ## socket.h (module 'network'): int ns3::Socket::RecvFrom(uint8_t * buf, uint32_t size, uint32_t flags, ns3::Address & fromAddress) [member function]
+    cls.add_method('RecvFrom', 
+                   'int', 
+                   [param('uint8_t *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags'), param('ns3::Address &', 'fromAddress')])
+    ## socket.h (module 'network'): int ns3::Socket::Send(ns3::Ptr<ns3::Packet> p, uint32_t flags) [member function]
+    cls.add_method('Send', 
+                   'int', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint32_t', 'flags')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Send(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('Send', 
+                   'int', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')])
+    ## socket.h (module 'network'): int ns3::Socket::Send(uint8_t const * buf, uint32_t size, uint32_t flags) [member function]
+    cls.add_method('Send', 
+                   'int', 
+                   [param('uint8_t const *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags')])
+    ## socket.h (module 'network'): int ns3::Socket::SendTo(ns3::Ptr<ns3::Packet> p, uint32_t flags, ns3::Address const & toAddress) [member function]
+    cls.add_method('SendTo', 
+                   'int', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint32_t', 'flags'), param('ns3::Address const &', 'toAddress')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::SendTo(uint8_t const * buf, uint32_t size, uint32_t flags, ns3::Address const & address) [member function]
+    cls.add_method('SendTo', 
+                   'int', 
+                   [param('uint8_t const *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags'), param('ns3::Address const &', 'address')])
+    ## socket.h (module 'network'): void ns3::Socket::SetAcceptCallback(ns3::Callback<bool, ns3::Ptr<ns3::Socket>, ns3::Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> connectionRequest, ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> newConnectionCreated) [member function]
+    cls.add_method('SetAcceptCallback', 
+                   'void', 
+                   [param('ns3::Callback< bool, ns3::Ptr< ns3::Socket >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'connectionRequest'), param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'newConnectionCreated')])
+    ## socket.h (module 'network'): bool ns3::Socket::SetAllowBroadcast(bool allowBroadcast) [member function]
+    cls.add_method('SetAllowBroadcast', 
+                   'bool', 
+                   [param('bool', 'allowBroadcast')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::SetCloseCallbacks(ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> normalClose, ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> errorClose) [member function]
+    cls.add_method('SetCloseCallbacks', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'normalClose'), param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'errorClose')])
+    ## socket.h (module 'network'): void ns3::Socket::SetConnectCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> connectionSucceeded, ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> connectionFailed) [member function]
+    cls.add_method('SetConnectCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'connectionSucceeded'), param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'connectionFailed')])
+    ## socket.h (module 'network'): void ns3::Socket::SetDataSentCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> dataSent) [member function]
+    cls.add_method('SetDataSentCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'dataSent')])
+    ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function]
+    cls.add_method('SetRecvCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'arg0')])
+    ## socket.h (module 'network'): void ns3::Socket::SetRecvPktInfo(bool flag) [member function]
+    cls.add_method('SetRecvPktInfo', 
+                   'void', 
+                   [param('bool', 'flag')])
+    ## socket.h (module 'network'): void ns3::Socket::SetSendCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> sendCb) [member function]
+    cls.add_method('SetSendCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'sendCb')])
+    ## socket.h (module 'network'): int ns3::Socket::ShutdownRecv() [member function]
+    cls.add_method('ShutdownRecv', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::ShutdownSend() [member function]
+    cls.add_method('ShutdownSend', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::NotifyConnectionFailed() [member function]
+    cls.add_method('NotifyConnectionFailed', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): bool ns3::Socket::NotifyConnectionRequest(ns3::Address const & from) [member function]
+    cls.add_method('NotifyConnectionRequest', 
+                   'bool', 
+                   [param('ns3::Address const &', 'from')], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyConnectionSucceeded() [member function]
+    cls.add_method('NotifyConnectionSucceeded', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyDataRecv() [member function]
+    cls.add_method('NotifyDataRecv', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyDataSent(uint32_t size) [member function]
+    cls.add_method('NotifyDataSent', 
+                   'void', 
+                   [param('uint32_t', 'size')], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyErrorClose() [member function]
+    cls.add_method('NotifyErrorClose', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyNewConnectionCreated(ns3::Ptr<ns3::Socket> socket, ns3::Address const & from) [member function]
+    cls.add_method('NotifyNewConnectionCreated', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Socket >', 'socket'), param('ns3::Address const &', 'from')], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyNormalClose() [member function]
+    cls.add_method('NotifyNormalClose', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifySend(uint32_t spaceAvailable) [member function]
+    cls.add_method('NotifySend', 
+                   'void', 
+                   [param('uint32_t', 'spaceAvailable')], 
+                   visibility='protected')
+    return
+
+def register_Ns3Tag_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## tag.h (module 'network'): ns3::Tag::Tag() [constructor]
+    cls.add_constructor([])
+    ## tag.h (module 'network'): ns3::Tag::Tag(ns3::Tag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Tag const &', 'arg0')])
+    ## tag.h (module 'network'): void ns3::Tag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## tag.h (module 'network'): void ns3::Tag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    return
+
 def register_Ns3Time_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
@@ -3303,6 +4003,8 @@
 def register_Ns3TopologyReaderLink_methods(root_module, cls):
     ## topology-reader.h (module 'topology-read'): ns3::TopologyReader::Link::Link(ns3::TopologyReader::Link const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TopologyReader::Link const &', 'arg0')])
+    ## topology-reader.h (module 'topology-read'): ns3::TopologyReader::Link::Link() [constructor]
+    cls.add_constructor([])
     ## topology-reader.h (module 'topology-read'): ns3::TopologyReader::Link::Link(ns3::Ptr<ns3::Node> fromPtr, std::string const & fromName, ns3::Ptr<ns3::Node> toPtr, std::string const & toName) [constructor]
     cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'fromPtr'), param('std::string const &', 'fromName'), param('ns3::Ptr< ns3::Node >', 'toPtr'), param('std::string const &', 'toName')])
     ## topology-reader.h (module 'topology-read'): std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > ns3::TopologyReader::Link::AttributesBegin() [member function]
@@ -3423,6 +4125,92 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
+def register_Ns3WeightsPathStretchTag_methods(root_module, cls):
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::WeightsPathStretchTag(ns3::WeightsPathStretchTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WeightsPathStretchTag const &', 'arg0')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::WeightsPathStretchTag() [constructor]
+    cls.add_constructor([])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::AddPathInfo(ns3::Ptr<ns3::Node> node, uint32_t weight) [member function]
+    cls.add_method('AddPathInfo', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('uint32_t', 'weight')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::WeightsPathStretchTag::GetDestinationNode() const [member function]
+    cls.add_method('GetDestinationNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): std::list<ns3::WeightsPathStretchTag::NodeWeightPair, std::allocator<ns3::WeightsPathStretchTag::NodeWeightPair> > const & ns3::WeightsPathStretchTag::GetInfos() const [member function]
+    cls.add_method('GetInfos', 
+                   'std::list< ns3::WeightsPathStretchTag::NodeWeightPair > const &', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): uint32_t ns3::WeightsPathStretchTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::WeightsPathStretchTag::GetSourceNode() const [member function]
+    cls.add_method('GetSourceNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): uint64_t ns3::WeightsPathStretchTag::GetTotalWeight() const [member function]
+    cls.add_method('GetTotalWeight', 
+                   'uint64_t', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): static ns3::TypeId ns3::WeightsPathStretchTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3WeightsPathStretchTagNodeWeightPair_methods(root_module, cls):
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::NodeWeightPair(ns3::WeightsPathStretchTag::NodeWeightPair const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WeightsPathStretchTag::NodeWeightPair const &', 'arg0')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::NodeWeightPair() [constructor]
+    cls.add_constructor([])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::NodeWeightPair(ns3::Ptr<ns3::Node> _node, uint32_t _weight) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', '_node'), param('uint32_t', '_weight')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::node [variable]
+    cls.add_instance_attribute('node', 'ns3::Ptr< ns3::Node >', is_const=False)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::weight [variable]
+    cls.add_instance_attribute('weight', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3WindowTracer_methods(root_module, cls):
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::WindowTracer::WindowTracer(ns3::WindowTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WindowTracer const &', 'arg0')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::WindowTracer::WindowTracer(std::ostream & os, ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): static void ns3::WindowTracer::PrintHeader(std::ostream & os) [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_static=True)
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): void ns3::WindowTracer::OnWindowChange(std::string context, uint32_t oldValue, uint32_t newValue) [member function]
+    cls.add_method('OnWindowChange', 
+                   'void', 
+                   [param('std::string', 'context'), param('uint32_t', 'oldValue'), param('uint32_t', 'newValue')], 
+                   is_virtual=True)
+    return
+
 def register_Ns3AnnotatedTopologyReader_methods(root_module, cls):
     ## annotated-topology-reader.h (module 'NDNabstraction'): ns3::AnnotatedTopologyReader::AnnotatedTopologyReader(std::string const & path="", double scale=1.0e+0) [constructor]
     cls.add_constructor([param('std::string const &', 'path', default_value='""'), param('double', 'scale', default_value='1.0e+0')])
@@ -3436,6 +4224,11 @@
                    'ns3::NodeContainer', 
                    [], 
                    is_const=True)
+    ## annotated-topology-reader.h (module 'NDNabstraction'): std::list<ns3::TopologyReader::Link, std::allocator<ns3::TopologyReader::Link> > const & ns3::AnnotatedTopologyReader::GetLinks() const [member function]
+    cls.add_method('GetLinks', 
+                   'std::list< ns3::TopologyReader::Link > const &', 
+                   [], 
+                   is_const=True)
     ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::AssignIpv4Addresses(ns3::Ipv4Address base) [member function]
     cls.add_method('AssignIpv4Addresses', 
                    'void', 
@@ -3448,6 +4241,15 @@
     cls.add_method('SetMobilityModel', 
                    'void', 
                    [param('std::string const &', 'model')])
+    ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::ApplyOspfMetric() [member function]
+    cls.add_method('ApplyOspfMetric', 
+                   'void', 
+                   [])
+    ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::SavePositions(std::string const & file) const [member function]
+    cls.add_method('SavePositions', 
+                   'void', 
+                   [param('std::string const &', 'file')], 
+                   is_const=True)
     ## annotated-topology-reader.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::AnnotatedTopologyReader::CreateNode(std::string const name) [member function]
     cls.add_method('CreateNode', 
                    'ns3::Ptr< ns3::Node >', 
@@ -3463,11 +4265,6 @@
                    'void', 
                    [], 
                    visibility='protected')
-    ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::ApplyOspfMetric() [member function]
-    cls.add_method('ApplyOspfMetric', 
-                   'void', 
-                   [], 
-                   visibility='protected')
     return
 
 def register_Ns3Application_methods(root_module, cls):
@@ -3610,6 +4407,46 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
+def register_Ns3BatchesChecker_methods(root_module, cls):
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesChecker::BatchesChecker() [constructor]
+    cls.add_constructor([])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesChecker::BatchesChecker(ns3::BatchesChecker const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BatchesChecker const &', 'arg0')])
+    return
+
+def register_Ns3BatchesValue_methods(root_module, cls):
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue::BatchesValue() [constructor]
+    cls.add_constructor([])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue::BatchesValue(ns3::BatchesValue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BatchesValue const &', 'arg0')])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue::BatchesValue(ns3::Batches const & value) [constructor]
+    cls.add_constructor([param('ns3::Batches const &', 'value')])
+    ## batches.h (module 'NDNabstraction'): ns3::Ptr<ns3::AttributeValue> ns3::BatchesValue::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ptr< ns3::AttributeValue >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## batches.h (module 'NDNabstraction'): bool ns3::BatchesValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+    cls.add_method('DeserializeFromString', 
+                   'bool', 
+                   [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_virtual=True)
+    ## batches.h (module 'NDNabstraction'): ns3::Batches ns3::BatchesValue::Get() const [member function]
+    cls.add_method('Get', 
+                   'ns3::Batches', 
+                   [], 
+                   is_const=True)
+    ## batches.h (module 'NDNabstraction'): std::string ns3::BatchesValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+    cls.add_method('SerializeToString', 
+                   'std::string', 
+                   [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_const=True, is_virtual=True)
+    ## batches.h (module 'NDNabstraction'): void ns3::BatchesValue::Set(ns3::Batches const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('ns3::Batches const &', 'value')])
+    return
+
 def register_Ns3CallbackChecker_methods(root_module, cls):
     ## callback.h (module 'core'): ns3::CallbackChecker::CallbackChecker() [constructor]
     cls.add_constructor([])
@@ -3714,20 +4551,20 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnContentObject(ns3::Ptr<const ns3::CcnxContentObjectHeader> const & contentObject, ns3::Ptr<const ns3::Packet> const & payload) [member function]
+    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnContentObject(ns3::Ptr<const ns3::CcnxContentObjectHeader> const & contentObject, ns3::Ptr<ns3::Packet> payload) [member function]
     cls.add_method('OnContentObject', 
                    'void', 
-                   [param('ns3::Ptr< ns3::CcnxContentObjectHeader const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet const > const &', 'payload')], 
+                   [param('ns3::Ptr< ns3::CcnxContentObjectHeader const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet >', 'payload')], 
                    is_virtual=True)
-    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnInterest(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest) [member function]
+    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnInterest(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest')], 
+                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
-    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnNack(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest) [member function]
+    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnNack(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnNack', 
                    'void', 
-                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest')], 
+                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
     ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::RegisterProtocolHandler(ns3::Callback<bool, ns3::Ptr<ns3::Packet const> const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> handler) [member function]
     cls.add_method('RegisterProtocolHandler', 
@@ -3799,6 +4636,17 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
+def register_Ns3CcnxConsumerWindowTracer_methods(root_module, cls):
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::CcnxConsumerWindowTracer::CcnxConsumerWindowTracer(ns3::CcnxConsumerWindowTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CcnxConsumerWindowTracer const &', 'arg0')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::CcnxConsumerWindowTracer::CcnxConsumerWindowTracer(std::ostream & os, ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): void ns3::CcnxConsumerWindowTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3CcnxContentObjectHeader_methods(root_module, cls):
     ## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectHeader::CcnxContentObjectHeader(ns3::CcnxContentObjectHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::CcnxContentObjectHeader const &', 'arg0')])
@@ -3893,6 +4741,16 @@
                    'uint32_t', 
                    [], 
                    is_const=True)
+    ## ccnx-face.h (module 'NDNabstraction'): uint16_t ns3::CcnxFace::GetMetric() const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ccnx-face.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::CcnxFace::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
     ## ccnx-face.h (module 'NDNabstraction'): static ns3::TypeId ns3::CcnxFace::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
@@ -3941,6 +4799,11 @@
     cls.add_method('SetId', 
                    'void', 
                    [param('uint32_t', 'id')])
+    ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::SetMetric(uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint16_t', 'metric')], 
+                   is_virtual=True)
     ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::SetUp(bool up=true) [member function]
     cls.add_method('SetUp', 
                    'void', 
@@ -4304,6 +5167,11 @@
                    'std::list< std::string > const &', 
                    [], 
                    is_const=True)
+    ## ccnx-name-components.h (module 'NDNabstraction'): std::string ns3::CcnxNameComponents::GetLastComponent() const [member function]
+    cls.add_method('GetLastComponent', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
     ## ccnx-name-components.h (module 'NDNabstraction'): std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > ns3::CcnxNameComponents::GetSubComponents(size_t num) const [member function]
     cls.add_method('GetSubComponents', 
                    'std::list< boost::reference_wrapper< std::string const > >', 
@@ -4361,6 +5229,27 @@
                    [param('ns3::CcnxNameComponents const &', 'value')])
     return
 
+def register_Ns3CcnxPathWeightTracer_methods(root_module, cls):
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): ns3::CcnxPathWeightTracer::CcnxPathWeightTracer(ns3::CcnxPathWeightTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CcnxPathWeightTracer const &', 'arg0')])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): ns3::CcnxPathWeightTracer::CcnxPathWeightTracer(std::ostream & os, ns3::Ptr<ns3::Node> node) [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node')])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): void ns3::CcnxPathWeightTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): static void ns3::CcnxPathWeightTracer::PrintHeader(std::ostream & os) [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_static=True)
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): void ns3::CcnxPathWeightTracer::InLocalFace(std::string context, ns3::Ptr<ns3::Node> src, ns3::Ptr<ns3::Node> dst, uint32_t seqno, uint32_t weight) [member function]
+    cls.add_method('InLocalFace', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ptr< ns3::Node >', 'src'), param('ns3::Ptr< ns3::Node >', 'dst'), param('uint32_t', 'seqno'), param('uint32_t', 'weight')], 
+                   is_virtual=True)
+    return
+
 def register_Ns3EmptyAttributeValue_methods(root_module, cls):
     ## attribute.h (module 'core'): ns3::EmptyAttributeValue::EmptyAttributeValue(ns3::EmptyAttributeValue const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::EmptyAttributeValue const &', 'arg0')])
@@ -4440,6 +5329,160 @@
                    [param('int64_t const &', 'value')])
     return
 
+def register_Ns3Ipv4_methods(root_module, cls):
+    ## ipv4.h (module 'internet'): ns3::Ipv4::Ipv4(ns3::Ipv4 const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4 const &', 'arg0')])
+    ## ipv4.h (module 'internet'): ns3::Ipv4::Ipv4() [constructor]
+    cls.add_constructor([])
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::AddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('AddAddress', 
+                   'bool', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint32_t ns3::Ipv4::AddInterface(ns3::Ptr<ns3::NetDevice> device) [member function]
+    cls.add_method('AddInterface', 
+                   'uint32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ipv4InterfaceAddress ns3::Ipv4::GetAddress(uint32_t interface, uint32_t addressIndex) const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv4InterfaceAddress', 
+                   [param('uint32_t', 'interface'), param('uint32_t', 'addressIndex')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): int32_t ns3::Ipv4::GetInterfaceForAddress(ns3::Ipv4Address address) const [member function]
+    cls.add_method('GetInterfaceForAddress', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'address')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): int32_t ns3::Ipv4::GetInterfaceForDevice(ns3::Ptr<const ns3::NetDevice> device) const [member function]
+    cls.add_method('GetInterfaceForDevice', 
+                   'int32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): int32_t ns3::Ipv4::GetInterfaceForPrefix(ns3::Ipv4Address address, ns3::Ipv4Mask mask) const [member function]
+    cls.add_method('GetInterfaceForPrefix', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'address'), param('ns3::Ipv4Mask', 'mask')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint16_t ns3::Ipv4::GetMetric(uint32_t interface) const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint16_t ns3::Ipv4::GetMtu(uint32_t interface) const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint32_t ns3::Ipv4::GetNAddresses(uint32_t interface) const [member function]
+    cls.add_method('GetNAddresses', 
+                   'uint32_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint32_t ns3::Ipv4::GetNInterfaces() const [member function]
+    cls.add_method('GetNInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ptr<ns3::NetDevice> ns3::Ipv4::GetNetDevice(uint32_t interface) [member function]
+    cls.add_method('GetNetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4::GetRoutingProtocol() const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): static ns3::TypeId ns3::Ipv4::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::Insert(ns3::Ptr<ns3::Ipv4L4Protocol> protocol) [member function]
+    cls.add_method('Insert', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4L4Protocol >', 'protocol')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::IsDestinationAddress(ns3::Ipv4Address address, uint32_t iif) const [member function]
+    cls.add_method('IsDestinationAddress', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address'), param('uint32_t', 'iif')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::IsForwarding(uint32_t interface) const [member function]
+    cls.add_method('IsForwarding', 
+                   'bool', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::IsUp(uint32_t interface) const [member function]
+    cls.add_method('IsUp', 
+                   'bool', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::RemoveAddress(uint32_t interface, uint32_t addressIndex) [member function]
+    cls.add_method('RemoveAddress', 
+                   'bool', 
+                   [param('uint32_t', 'interface'), param('uint32_t', 'addressIndex')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4::SelectSourceAddress(ns3::Ptr<const ns3::NetDevice> device, ns3::Ipv4Address dst, ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e scope) [member function]
+    cls.add_method('SelectSourceAddress', 
+                   'ns3::Ipv4Address', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device'), param('ns3::Ipv4Address', 'dst'), param('ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 'scope')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::Send(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Address source, ns3::Ipv4Address destination, uint8_t protocol, ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('Send', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'destination'), param('uint8_t', 'protocol'), param('ns3::Ptr< ns3::Ipv4Route >', 'route')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetDown(uint32_t interface) [member function]
+    cls.add_method('SetDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetForwarding(uint32_t interface, bool val) [member function]
+    cls.add_method('SetForwarding', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('bool', 'val')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetMetric(uint32_t interface, uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('uint16_t', 'metric')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol) [member function]
+    cls.add_method('SetRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetUp(uint32_t interface) [member function]
+    cls.add_method('SetUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ipv4::IF_ANY [variable]
+    cls.add_static_attribute('IF_ANY', 'uint32_t const', is_const=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::GetIpForward() const [member function]
+    cls.add_method('GetIpForward', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::GetWeakEsModel() const [member function]
+    cls.add_method('GetWeakEsModel', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetIpForward(bool forward) [member function]
+    cls.add_method('SetIpForward', 
+                   'void', 
+                   [param('bool', 'forward')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetWeakEsModel(bool model) [member function]
+    cls.add_method('SetWeakEsModel', 
+                   'void', 
+                   [param('bool', 'model')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    return
+
 def register_Ns3Ipv4AddressChecker_methods(root_module, cls):
     ## ipv4-address.h (module 'network'): ns3::Ipv4AddressChecker::Ipv4AddressChecker() [constructor]
     cls.add_constructor([])
@@ -4480,6 +5523,312 @@
                    [param('ns3::Ipv4Address const &', 'value')])
     return
 
+def register_Ns3Ipv4AppTracer_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): ns3::Ipv4AppTracer::Ipv4AppTracer(ns3::Ipv4AppTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4AppTracer const &', 'arg0')])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): ns3::Ipv4AppTracer::Ipv4AppTracer(ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::PrintHeader(std::ostream & os) const [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Rx(std::string context, ns3::Ipv4Header const & arg1, ns3::Ptr<const ns3::Packet> arg2, uint32_t arg3) [member function]
+    cls.add_method('Rx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ipv4Header const &', 'arg1'), param('ns3::Ptr< ns3::Packet const >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Tx(std::string context, ns3::Ipv4Header const & arg1, ns3::Ptr<const ns3::Packet> arg2, uint32_t arg3) [member function]
+    cls.add_method('Tx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ipv4Header const &', 'arg1'), param('ns3::Ptr< ns3::Packet const >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4L3Protocol_methods(root_module, cls):
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol::Ipv4L3Protocol() [constructor]
+    cls.add_constructor([])
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::AddAddress(uint32_t i, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('AddAddress', 
+                   'bool', 
+                   [param('uint32_t', 'i'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint32_t ns3::Ipv4L3Protocol::AddInterface(ns3::Ptr<ns3::NetDevice> device) [member function]
+    cls.add_method('AddInterface', 
+                   'uint32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Socket> ns3::Ipv4L3Protocol::CreateRawSocket() [member function]
+    cls.add_method('CreateRawSocket', 
+                   'ns3::Ptr< ns3::Socket >', 
+                   [])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::DeleteRawSocket(ns3::Ptr<ns3::Socket> socket) [member function]
+    cls.add_method('DeleteRawSocket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Socket >', 'socket')])
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4InterfaceAddress ns3::Ipv4L3Protocol::GetAddress(uint32_t interfaceIndex, uint32_t addressIndex) const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv4InterfaceAddress', 
+                   [param('uint32_t', 'interfaceIndex'), param('uint32_t', 'addressIndex')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4Interface> ns3::Ipv4L3Protocol::GetInterface(uint32_t i) const [member function]
+    cls.add_method('GetInterface', 
+                   'ns3::Ptr< ns3::Ipv4Interface >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-l3-protocol.h (module 'internet'): int32_t ns3::Ipv4L3Protocol::GetInterfaceForAddress(ns3::Ipv4Address addr) const [member function]
+    cls.add_method('GetInterfaceForAddress', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): int32_t ns3::Ipv4L3Protocol::GetInterfaceForDevice(ns3::Ptr<const ns3::NetDevice> device) const [member function]
+    cls.add_method('GetInterfaceForDevice', 
+                   'int32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): int32_t ns3::Ipv4L3Protocol::GetInterfaceForPrefix(ns3::Ipv4Address addr, ns3::Ipv4Mask mask) const [member function]
+    cls.add_method('GetInterfaceForPrefix', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'addr'), param('ns3::Ipv4Mask', 'mask')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint16_t ns3::Ipv4L3Protocol::GetMetric(uint32_t i) const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint16_t ns3::Ipv4L3Protocol::GetMtu(uint32_t i) const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint32_t ns3::Ipv4L3Protocol::GetNAddresses(uint32_t interface) const [member function]
+    cls.add_method('GetNAddresses', 
+                   'uint32_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint32_t ns3::Ipv4L3Protocol::GetNInterfaces() const [member function]
+    cls.add_method('GetNInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::NetDevice> ns3::Ipv4L3Protocol::GetNetDevice(uint32_t i) [member function]
+    cls.add_method('GetNetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'i')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4L4Protocol> ns3::Ipv4L3Protocol::GetProtocol(int protocolNumber) const [member function]
+    cls.add_method('GetProtocol', 
+                   'ns3::Ptr< ns3::Ipv4L4Protocol >', 
+                   [param('int', 'protocolNumber')], 
+                   is_const=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4L3Protocol::GetRoutingProtocol() const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): static ns3::TypeId ns3::Ipv4L3Protocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Insert(ns3::Ptr<ns3::Ipv4L4Protocol> protocol) [member function]
+    cls.add_method('Insert', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4L4Protocol >', 'protocol')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::IsDestinationAddress(ns3::Ipv4Address address, uint32_t iif) const [member function]
+    cls.add_method('IsDestinationAddress', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address'), param('uint32_t', 'iif')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::IsForwarding(uint32_t i) const [member function]
+    cls.add_method('IsForwarding', 
+                   'bool', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::IsUp(uint32_t i) const [member function]
+    cls.add_method('IsUp', 
+                   'bool', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Receive(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<const ns3::Packet> p, uint16_t protocol, ns3::Address const & from, ns3::Address const & to, ns3::NetDevice::PacketType packetType) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet const >', 'p'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'from'), param('ns3::Address const &', 'to'), param('ns3::NetDevice::PacketType', 'packetType')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Remove(ns3::Ptr<ns3::Ipv4L4Protocol> protocol) [member function]
+    cls.add_method('Remove', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4L4Protocol >', 'protocol')])
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::RemoveAddress(uint32_t interfaceIndex, uint32_t addressIndex) [member function]
+    cls.add_method('RemoveAddress', 
+                   'bool', 
+                   [param('uint32_t', 'interfaceIndex'), param('uint32_t', 'addressIndex')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4L3Protocol::SelectSourceAddress(ns3::Ptr<const ns3::NetDevice> device, ns3::Ipv4Address dst, ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e scope) [member function]
+    cls.add_method('SelectSourceAddress', 
+                   'ns3::Ipv4Address', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device'), param('ns3::Ipv4Address', 'dst'), param('ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 'scope')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Send(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Address source, ns3::Ipv4Address destination, uint8_t protocol, ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('Send', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'destination'), param('uint8_t', 'protocol'), param('ns3::Ptr< ns3::Ipv4Route >', 'route')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SendWithHeader(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Header ipHeader, ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('SendWithHeader', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Header', 'ipHeader'), param('ns3::Ptr< ns3::Ipv4Route >', 'route')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetDefaultTtl(uint8_t ttl) [member function]
+    cls.add_method('SetDefaultTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetDown(uint32_t i) [member function]
+    cls.add_method('SetDown', 
+                   'void', 
+                   [param('uint32_t', 'i')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetForwarding(uint32_t i, bool val) [member function]
+    cls.add_method('SetForwarding', 
+                   'void', 
+                   [param('uint32_t', 'i'), param('bool', 'val')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetMetric(uint32_t i, uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint32_t', 'i'), param('uint16_t', 'metric')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol) [member function]
+    cls.add_method('SetRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetUp(uint32_t i) [member function]
+    cls.add_method('SetUp', 
+                   'void', 
+                   [param('uint32_t', 'i')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol::PROT_NUMBER [variable]
+    cls.add_static_attribute('PROT_NUMBER', 'uint16_t const', is_const=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::NotifyNewAggregate() [member function]
+    cls.add_method('NotifyNewAggregate', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::GetIpForward() const [member function]
+    cls.add_method('GetIpForward', 
+                   'bool', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::GetWeakEsModel() const [member function]
+    cls.add_method('GetWeakEsModel', 
+                   'bool', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetIpForward(bool forward) [member function]
+    cls.add_method('SetIpForward', 
+                   'void', 
+                   [param('bool', 'forward')], 
+                   visibility='private', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetWeakEsModel(bool model) [member function]
+    cls.add_method('SetWeakEsModel', 
+                   'void', 
+                   [param('bool', 'model')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3Ipv4L3Tracer_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): ns3::Ipv4L3Tracer::Ipv4L3Tracer(ns3::Ipv4L3Tracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4L3Tracer const &', 'arg0')])
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): ns3::Ipv4L3Tracer::Ipv4L3Tracer(ns3::Ptr<ns3::Node> node) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node')])
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Drop(std::string context, ns3::Ipv4Header const & arg1, ns3::Ptr<const ns3::Packet> arg2, ns3::Ipv4L3Protocol::DropReason arg3, ns3::Ptr<ns3::Ipv4> arg4, uint32_t arg5) [member function]
+    cls.add_method('Drop', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ipv4Header const &', 'arg1'), param('ns3::Ptr< ns3::Packet const >', 'arg2'), param('ns3::Ipv4L3Protocol::DropReason', 'arg3'), param('ns3::Ptr< ns3::Ipv4 >', 'arg4'), param('uint32_t', 'arg5')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::PrintHeader(std::ostream & os) const [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Rx(std::string context, ns3::Ptr<const ns3::Packet> arg1, ns3::Ptr<ns3::Ipv4> arg2, uint32_t arg3) [member function]
+    cls.add_method('Rx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('ns3::Ptr< ns3::Ipv4 >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Tx(std::string context, ns3::Ptr<const ns3::Packet> arg1, ns3::Ptr<ns3::Ipv4> arg2, uint32_t arg3) [member function]
+    cls.add_method('Tx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('ns3::Ptr< ns3::Ipv4 >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4L4Protocol_methods(root_module, cls):
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::Ipv4L4Protocol() [constructor]
+    cls.add_constructor([])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::Ipv4L4Protocol(ns3::Ipv4L4Protocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4L4Protocol const &', 'arg0')])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Callback<void,ns3::Ptr<ns3::Packet>,ns3::Ipv4Address,ns3::Ipv4Address,unsigned char,ns3::Ptr<ns3::Ipv4Route>,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ns3::Ipv4L4Protocol::GetDownTarget() const [member function]
+    cls.add_method('GetDownTarget', 
+                   'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Ipv4Address, ns3::Ipv4Address, unsigned char, ns3::Ptr< ns3::Ipv4Route >, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): int ns3::Ipv4L4Protocol::GetProtocolNumber() const [member function]
+    cls.add_method('GetProtocolNumber', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): static ns3::TypeId ns3::Ipv4L4Protocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::RxStatus ns3::Ipv4L4Protocol::Receive(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::Ipv4Interface> incomingInterface) [member function]
+    cls.add_method('Receive', 
+                   'ns3::Ipv4L4Protocol::RxStatus', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::Ipv4Interface >', 'incomingInterface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): void ns3::Ipv4L4Protocol::ReceiveIcmp(ns3::Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, ns3::Ipv4Address payloadSource, ns3::Ipv4Address payloadDestination, uint8_t const * payload) [member function]
+    cls.add_method('ReceiveIcmp', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'icmpSource'), param('uint8_t', 'icmpTtl'), param('uint8_t', 'icmpType'), param('uint8_t', 'icmpCode'), param('uint32_t', 'icmpInfo'), param('ns3::Ipv4Address', 'payloadSource'), param('ns3::Ipv4Address', 'payloadDestination'), param('uint8_t const *', 'payload')], 
+                   is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): void ns3::Ipv4L4Protocol::SetDownTarget(ns3::Callback<void,ns3::Ptr<ns3::Packet>,ns3::Ipv4Address,ns3::Ipv4Address,unsigned char,ns3::Ptr<ns3::Ipv4Route>,ns3::empty,ns3::empty,ns3::empty,ns3::empty> cb) [member function]
+    cls.add_method('SetDownTarget', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Ipv4Address, ns3::Ipv4Address, unsigned char, ns3::Ptr< ns3::Ipv4Route >, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
 def register_Ns3Ipv4MaskChecker_methods(root_module, cls):
     ## ipv4-address.h (module 'network'): ns3::Ipv4MaskChecker::Ipv4MaskChecker() [constructor]
     cls.add_constructor([])
@@ -4520,6 +5869,154 @@
                    [param('ns3::Ipv4Mask const &', 'value')])
     return
 
+def register_Ns3Ipv4MulticastRoute_methods(root_module, cls):
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::Ipv4MulticastRoute(ns3::Ipv4MulticastRoute const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4MulticastRoute const &', 'arg0')])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::Ipv4MulticastRoute() [constructor]
+    cls.add_constructor([])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4MulticastRoute::GetGroup() const [member function]
+    cls.add_method('GetGroup', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4MulticastRoute::GetOrigin() const [member function]
+    cls.add_method('GetOrigin', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): uint32_t ns3::Ipv4MulticastRoute::GetOutputTtl(uint32_t oif) [member function]
+    cls.add_method('GetOutputTtl', 
+                   'uint32_t', 
+                   [param('uint32_t', 'oif')], 
+                   deprecated=True)
+    ## ipv4-route.h (module 'internet'): std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> > > ns3::Ipv4MulticastRoute::GetOutputTtlMap() const [member function]
+    cls.add_method('GetOutputTtlMap', 
+                   'std::map< unsigned int, unsigned int >', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): uint32_t ns3::Ipv4MulticastRoute::GetParent() const [member function]
+    cls.add_method('GetParent', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetGroup(ns3::Ipv4Address const group) [member function]
+    cls.add_method('SetGroup', 
+                   'void', 
+                   [param('ns3::Ipv4Address const', 'group')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetOrigin(ns3::Ipv4Address const origin) [member function]
+    cls.add_method('SetOrigin', 
+                   'void', 
+                   [param('ns3::Ipv4Address const', 'origin')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetOutputTtl(uint32_t oif, uint32_t ttl) [member function]
+    cls.add_method('SetOutputTtl', 
+                   'void', 
+                   [param('uint32_t', 'oif'), param('uint32_t', 'ttl')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetParent(uint32_t iif) [member function]
+    cls.add_method('SetParent', 
+                   'void', 
+                   [param('uint32_t', 'iif')])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::MAX_INTERFACES [variable]
+    cls.add_static_attribute('MAX_INTERFACES', 'uint32_t const', is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::MAX_TTL [variable]
+    cls.add_static_attribute('MAX_TTL', 'uint32_t const', is_const=True)
+    return
+
+def register_Ns3Ipv4Route_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Route::Ipv4Route(ns3::Ipv4Route const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4Route const &', 'arg0')])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Route::Ipv4Route() [constructor]
+    cls.add_constructor([])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Route::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Route::GetGateway() const [member function]
+    cls.add_method('GetGateway', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ptr<ns3::NetDevice> ns3::Ipv4Route::GetOutputDevice() const [member function]
+    cls.add_method('GetOutputDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Route::GetSource() const [member function]
+    cls.add_method('GetSource', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetDestination(ns3::Ipv4Address dest) [member function]
+    cls.add_method('SetDestination', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetGateway(ns3::Ipv4Address gw) [member function]
+    cls.add_method('SetGateway', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'gw')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetOutputDevice(ns3::Ptr<ns3::NetDevice> outputDevice) [member function]
+    cls.add_method('SetOutputDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'outputDevice')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetSource(ns3::Ipv4Address src) [member function]
+    cls.add_method('SetSource', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'src')])
+    return
+
+def register_Ns3Ipv4RoutingProtocol_methods(root_module, cls):
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ipv4RoutingProtocol::Ipv4RoutingProtocol() [constructor]
+    cls.add_constructor([])
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ipv4RoutingProtocol::Ipv4RoutingProtocol(ns3::Ipv4RoutingProtocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4RoutingProtocol const &', 'arg0')])
+    ## ipv4-routing-protocol.h (module 'internet'): static ns3::TypeId ns3::Ipv4RoutingProtocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): bool ns3::Ipv4RoutingProtocol::RouteInput(ns3::Ptr<const ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
 def register_Ns3Ipv6AddressChecker_methods(root_module, cls):
     ## ipv6-address.h (module 'network'): ns3::Ipv6AddressChecker::Ipv6AddressChecker() [constructor]
     cls.add_constructor([])
@@ -4955,6 +6452,19 @@
                    [param('ns3::ObjectFactory const &', 'value')])
     return
 
+def register_Ns3OutputStreamWrapper_methods(root_module, cls):
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper::OutputStreamWrapper(ns3::OutputStreamWrapper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::OutputStreamWrapper const &', 'arg0')])
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper::OutputStreamWrapper(std::string filename, std::_Ios_Openmode filemode) [constructor]
+    cls.add_constructor([param('std::string', 'filename'), param('std::_Ios_Openmode', 'filemode')])
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper::OutputStreamWrapper(std::ostream * os) [constructor]
+    cls.add_constructor([param('std::ostream *', 'os')])
+    ## output-stream-wrapper.h (module 'network'): std::ostream * ns3::OutputStreamWrapper::GetStream() [member function]
+    cls.add_method('GetStream', 
+                   'std::ostream *', 
+                   [])
+    return
+
 def register_Ns3Packet_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## packet.h (module 'network'): ns3::Packet::Packet() [constructor]
@@ -4980,11 +6490,10 @@
     cls.add_method('AddHeader', 
                    'void', 
                    [param('ns3::Header const &', 'header')])
-    ## packet.h (module 'network'): void ns3::Packet::AddPacketTag(ns3::Tag const & tag) const [member function]
+    ## packet.h (module 'network'): void ns3::Packet::AddPacketTag(ns3::Ptr<const ns3::Tag> tag) [member function]
     cls.add_method('AddPacketTag', 
                    'void', 
-                   [param('ns3::Tag const &', 'tag')], 
-                   is_const=True)
+                   [param('ns3::Ptr< ns3::Tag const >', 'tag')])
     ## packet.h (module 'network'): void ns3::Packet::AddPaddingAtEnd(uint32_t size) [member function]
     cls.add_method('AddPaddingAtEnd', 
                    'void', 
@@ -5043,11 +6552,6 @@
                    'ns3::Ptr< ns3::NixVector >', 
                    [], 
                    is_const=True)
-    ## packet.h (module 'network'): ns3::PacketTagIterator ns3::Packet::GetPacketTagIterator() const [member function]
-    cls.add_method('GetPacketTagIterator', 
-                   'ns3::PacketTagIterator', 
-                   [], 
-                   is_const=True)
     ## packet.h (module 'network'): uint32_t ns3::Packet::GetSerializedSize() const [member function]
     cls.add_method('GetSerializedSize', 
                    'uint32_t', 
@@ -5073,10 +6577,10 @@
                    'uint32_t', 
                    [param('ns3::Header &', 'header')], 
                    is_const=True)
-    ## packet.h (module 'network'): bool ns3::Packet::PeekPacketTag(ns3::Tag & tag) const [member function]
+    ## packet.h (module 'network'): ns3::Ptr<const ns3::Tag> ns3::Packet::PeekPacketTag(ns3::TypeId tagType) const [member function]
     cls.add_method('PeekPacketTag', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')], 
+                   'ns3::Ptr< ns3::Tag const >', 
+                   [param('ns3::TypeId', 'tagType')], 
                    is_const=True)
     ## packet.h (module 'network'): uint32_t ns3::Packet::PeekTrailer(ns3::Trailer & trailer) [member function]
     cls.add_method('PeekTrailer', 
@@ -5117,10 +6621,10 @@
     cls.add_method('RemoveHeader', 
                    'uint32_t', 
                    [param('ns3::Header &', 'header')])
-    ## packet.h (module 'network'): bool ns3::Packet::RemovePacketTag(ns3::Tag & tag) [member function]
+    ## packet.h (module 'network'): ns3::Ptr<const ns3::Tag> ns3::Packet::RemovePacketTag(ns3::TypeId tagType) [member function]
     cls.add_method('RemovePacketTag', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')])
+                   'ns3::Ptr< ns3::Tag const >', 
+                   [param('ns3::TypeId', 'tagType')])
     ## packet.h (module 'network'): uint32_t ns3::Packet::RemoveTrailer(ns3::Trailer & trailer) [member function]
     cls.add_method('RemoveTrailer', 
                    'uint32_t', 
@@ -5192,11 +6696,148 @@
     cls.add_method('Commit', 
                    'void', 
                    [])
-    ## rocketfuel-weights-reader.h (module 'NDNabstraction'): void ns3::RocketfuelWeightsReader::SavePositions(std::string const & file) const [member function]
-    cls.add_method('SavePositions', 
+    return
+
+def register_Ns3SocketAddressTag_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::SocketAddressTag::SocketAddressTag(ns3::SocketAddressTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SocketAddressTag const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::SocketAddressTag::SocketAddressTag() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
                    'void', 
-                   [param('std::string const &', 'file')], 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): ns3::Address ns3::SocketAddressTag::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
                    is_const=True)
+    ## socket.h (module 'network'): ns3::TypeId ns3::SocketAddressTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::SocketAddressTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): static ns3::TypeId ns3::SocketAddressTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::SetAddress(ns3::Address addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'addr')])
+    return
+
+def register_Ns3SocketIpTtlTag_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::SocketIpTtlTag::SocketIpTtlTag(ns3::SocketIpTtlTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SocketIpTtlTag const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::SocketIpTtlTag::SocketIpTtlTag() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): ns3::TypeId ns3::SocketIpTtlTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::SocketIpTtlTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint8_t ns3::SocketIpTtlTag::GetTtl() const [member function]
+    cls.add_method('GetTtl', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## socket.h (module 'network'): static ns3::TypeId ns3::SocketIpTtlTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::SetTtl(uint8_t ttl) [member function]
+    cls.add_method('SetTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    return
+
+def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Disable() [member function]
+    cls.add_method('Disable', 
+                   'void', 
+                   [])
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Enable() [member function]
+    cls.add_method('Enable', 
+                   'void', 
+                   [])
+    ## socket.h (module 'network'): ns3::TypeId ns3::SocketSetDontFragmentTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::SocketSetDontFragmentTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): static ns3::TypeId ns3::SocketSetDontFragmentTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## socket.h (module 'network'): bool ns3::SocketSetDontFragmentTag::IsEnabled() const [member function]
+    cls.add_method('IsEnabled', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
     return
 
 def register_Ns3SpringMobilityModel_methods(root_module, cls):
@@ -5235,6 +6876,17 @@
                    visibility='private', is_virtual=True)
     return
 
+def register_Ns3TcpCongestionWindowTracer_methods(root_module, cls):
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::TcpCongestionWindowTracer::TcpCongestionWindowTracer(ns3::TcpCongestionWindowTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::TcpCongestionWindowTracer const &', 'arg0')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::TcpCongestionWindowTracer::TcpCongestionWindowTracer(std::ostream & os, ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): void ns3::TcpCongestionWindowTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3TimeChecker_methods(root_module, cls):
     ## nstime.h (module 'core'): ns3::TimeChecker::TimeChecker() [constructor]
     cls.add_constructor([])
@@ -5437,6 +7089,10 @@
 
 def register_functions(root_module):
     module = root_module
+    ## batches.h (module 'NDNabstraction'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeBatchesChecker() [free function]
+    module.add_function('MakeBatchesChecker', 
+                        'ns3::Ptr< ns3::AttributeChecker const >', 
+                        [])
     ## ccnx-name-components.h (module 'NDNabstraction'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeCcnxNameComponentsChecker() [free function]
     module.add_function('MakeCcnxNameComponentsChecker', 
                         'ns3::Ptr< ns3::AttributeChecker const >', 
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index 2030e69..0b0cd40 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -76,6 +76,10 @@
     module.add_class('Ipv4Address', import_from_module='ns.network')
     ## ipv4-address.h (module 'network'): ns3::Ipv4Address [class]
     root_module['ns3::Ipv4Address'].implicitly_converts_to(root_module['ns3::Address'])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress [class]
+    module.add_class('Ipv4InterfaceAddress', import_from_module='ns.internet')
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e [enumeration]
+    module.add_enum('InterfaceAddressScope_e', ['HOST', 'LINK', 'GLOBAL'], outer_class=root_module['ns3::Ipv4InterfaceAddress'], import_from_module='ns.internet')
     ## ipv4-address.h (module 'network'): ns3::Ipv4Mask [class]
     module.add_class('Ipv4Mask', import_from_module='ns.network')
     ## ipv6-address.h (module 'network'): ns3::Ipv6Address [class]
@@ -102,14 +106,6 @@
     module.add_enum('', ['PAYLOAD', 'HEADER', 'TRAILER'], outer_class=root_module['ns3::PacketMetadata::Item'], import_from_module='ns.network')
     ## packet-metadata.h (module 'network'): ns3::PacketMetadata::ItemIterator [class]
     module.add_class('ItemIterator', import_from_module='ns.network', outer_class=root_module['ns3::PacketMetadata'])
-    ## packet.h (module 'network'): ns3::PacketTagIterator [class]
-    module.add_class('PacketTagIterator', import_from_module='ns.network')
-    ## packet.h (module 'network'): ns3::PacketTagIterator::Item [class]
-    module.add_class('Item', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagIterator'])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList [class]
-    module.add_class('PacketTagList', import_from_module='ns.network')
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData [struct]
-    module.add_class('TagData', import_from_module='ns.network', outer_class=root_module['ns3::PacketTagList'])
     ## random-variable.h (module 'core'): ns3::RandomVariable [class]
     module.add_class('RandomVariable', import_from_module='ns.core')
     ## random-variable.h (module 'core'): ns3::SeedManager [class]
@@ -120,10 +116,10 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Chunk', 'ns3::ObjectBase', 'ns3::DefaultDeleter<ns3::Chunk>'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter> [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Object', 'ns3::ObjectBase', 'ns3::ObjectDeleter'], parent=root_module['ns3::ObjectBase'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simulator.h (module 'core'): ns3::Simulator [class]
+    module.add_class('Simulator', destructor_visibility='private', import_from_module='ns.core')
     ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper [class]
     module.add_class('SpringMobilityHelper')
-    ## tag.h (module 'network'): ns3::Tag [class]
-    module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::ObjectBase'])
     ## tag-buffer.h (module 'network'): ns3::TagBuffer [class]
     module.add_class('TagBuffer', import_from_module='ns.network')
     ## random-variable.h (module 'core'): ns3::TriangularVariable [class]
@@ -170,6 +166,12 @@
     module.add_class('Header', import_from_module='ns.network', parent=root_module['ns3::Chunk'])
     ## random-variable.h (module 'core'): ns3::IntEmpiricalVariable [class]
     module.add_class('IntEmpiricalVariable', import_from_module='ns.core', parent=root_module['ns3::EmpiricalVariable'])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header [class]
+    module.add_class('Ipv4Header', import_from_module='ns.internet', parent=root_module['ns3::Header'])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::DscpType [enumeration]
+    module.add_enum('DscpType', ['DscpDefault', 'CS1', 'AF11', 'AF12', 'AF13', 'CS2', 'AF21', 'AF22', 'AF23', 'CS3', 'AF31', 'AF32', 'AF33', 'CS4', 'AF41', 'AF42', 'AF43', 'CS5', 'EF', 'CS6', 'CS7'], outer_class=root_module['ns3::Ipv4Header'], import_from_module='ns.internet')
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::EcnType [enumeration]
+    module.add_enum('EcnType', ['NotECT', 'ECT1', 'ECT0', 'CE'], outer_class=root_module['ns3::Ipv4Header'], import_from_module='ns.internet')
     ## random-variable.h (module 'core'): ns3::LogNormalVariable [class]
     module.add_class('LogNormalVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariable'])
     ## random-variable.h (module 'core'): ns3::NormalVariable [class]
@@ -198,16 +200,38 @@
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CcnxL3Tracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CcnxL3Tracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxNameComponents, ns3::empty, ns3::DefaultDeleter<ns3::CcnxNameComponents> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CcnxNameComponents', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CcnxNameComponents>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::CcnxPathWeightTracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CcnxPathWeightTracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter<ns3::EventImpl>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::Ipv4AppTracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4AppTracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::Ipv4L3Tracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4L3Tracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Ipv4MulticastRoute', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4MulticastRoute>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Ipv4Route', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Ipv4Route>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter<ns3::NixVector>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::OutputStreamWrapper', 'ns3::empty', 'ns3::DefaultDeleter<ns3::OutputStreamWrapper>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Packet', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Packet>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::TopologyReader, ns3::empty, ns3::DefaultDeleter<ns3::TopologyReader> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TopologyReader', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TopologyReader>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> > [class]
     module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::TraceSourceAccessor', 'ns3::empty', 'ns3::DefaultDeleter<ns3::TraceSourceAccessor>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> > [class]
+    module.add_class('SimpleRefCount', automatic_type_narrowing=True, template_parameters=['ns3::WindowTracer', 'ns3::empty', 'ns3::DefaultDeleter<ns3::WindowTracer>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+    ## socket.h (module 'network'): ns3::Socket [class]
+    module.add_class('Socket', import_from_module='ns.network', parent=root_module['ns3::Object'])
+    ## socket.h (module 'network'): ns3::Socket::SocketErrno [enumeration]
+    module.add_enum('SocketErrno', ['ERROR_NOTERROR', 'ERROR_ISCONN', 'ERROR_NOTCONN', 'ERROR_MSGSIZE', 'ERROR_AGAIN', 'ERROR_SHUTDOWN', 'ERROR_OPNOTSUPP', 'ERROR_AFNOSUPPORT', 'ERROR_INVAL', 'ERROR_BADF', 'ERROR_NOROUTETOHOST', 'ERROR_NODEV', 'ERROR_ADDRNOTAVAIL', 'ERROR_ADDRINUSE', 'SOCKET_ERRNO_LAST'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network')
+    ## socket.h (module 'network'): ns3::Socket::SocketType [enumeration]
+    module.add_enum('SocketType', ['NS3_SOCK_STREAM', 'NS3_SOCK_SEQPACKET', 'NS3_SOCK_DGRAM', 'NS3_SOCK_RAW'], outer_class=root_module['ns3::Socket'], import_from_module='ns.network')
+    ## tag.h (module 'network'): ns3::Tag [class]
+    module.add_class('Tag', import_from_module='ns.network', parent=root_module['ns3::Object'])
     ## nstime.h (module 'core'): ns3::Time [class]
     module.add_class('Time', import_from_module='ns.core')
     ## nstime.h (module 'core'): ns3::Time::Unit [enumeration]
@@ -222,6 +246,12 @@
     module.add_class('TraceSourceAccessor', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
     ## trailer.h (module 'network'): ns3::Trailer [class]
     module.add_class('Trailer', import_from_module='ns.network', parent=root_module['ns3::Chunk'])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag [class]
+    module.add_class('WeightsPathStretchTag', parent=root_module['ns3::Tag'])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair [struct]
+    module.add_class('NodeWeightPair', outer_class=root_module['ns3::WeightsPathStretchTag'])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::WindowTracer [class]
+    module.add_class('WindowTracer', parent=root_module['ns3::SimpleRefCount< ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >'])
     ## annotated-topology-reader.h (module 'NDNabstraction'): ns3::AnnotatedTopologyReader [class]
     module.add_class('AnnotatedTopologyReader', parent=root_module['ns3::TopologyReader'])
     ## application.h (module 'network'): ns3::Application [class]
@@ -232,6 +262,10 @@
     module.add_class('AttributeChecker', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeChecker, ns3::empty, ns3::DefaultDeleter<ns3::AttributeChecker> >'])
     ## attribute.h (module 'core'): ns3::AttributeValue [class]
     module.add_class('AttributeValue', allow_subclassing=False, automatic_type_narrowing=True, import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter<ns3::AttributeValue> >'])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesChecker [class]
+    module.add_class('BatchesChecker', parent=root_module['ns3::AttributeChecker'])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue [class]
+    module.add_class('BatchesValue', parent=root_module['ns3::AttributeValue'])
     ## callback.h (module 'core'): ns3::CallbackChecker [class]
     module.add_class('CallbackChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## callback.h (module 'core'): ns3::CallbackImplBase [class]
@@ -246,6 +280,8 @@
     module.add_class('CcnxApp', parent=root_module['ns3::Application'])
     ## ccnx-app-tracer.h (module 'NDNabstraction'): ns3::CcnxAppTracer [class]
     module.add_class('CcnxAppTracer', parent=root_module['ns3::SimpleRefCount< ns3::CcnxAppTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxAppTracer> >'])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::CcnxConsumerWindowTracer [class]
+    module.add_class('CcnxConsumerWindowTracer', parent=root_module['ns3::WindowTracer'])
     ## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectHeader [class]
     module.add_class('CcnxContentObjectHeader', parent=root_module['ns3::Header'])
     ## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectTail [class]
@@ -272,20 +308,42 @@
     module.add_class('CcnxNameComponentsChecker', parent=root_module['ns3::AttributeChecker'])
     ## ccnx-name-components.h (module 'NDNabstraction'): ns3::CcnxNameComponentsValue [class]
     module.add_class('CcnxNameComponentsValue', parent=root_module['ns3::AttributeValue'])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): ns3::CcnxPathWeightTracer [class]
+    module.add_class('CcnxPathWeightTracer', parent=root_module['ns3::SimpleRefCount< ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >'])
     ## attribute.h (module 'core'): ns3::EmptyAttributeValue [class]
     module.add_class('EmptyAttributeValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
     ## event-impl.h (module 'core'): ns3::EventImpl [class]
     module.add_class('EventImpl', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >'])
     ## integer.h (module 'core'): ns3::IntegerValue [class]
     module.add_class('IntegerValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+    ## ipv4.h (module 'internet'): ns3::Ipv4 [class]
+    module.add_class('Ipv4', import_from_module='ns.internet', parent=root_module['ns3::Object'])
     ## ipv4-address.h (module 'network'): ns3::Ipv4AddressChecker [class]
     module.add_class('Ipv4AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## ipv4-address.h (module 'network'): ns3::Ipv4AddressValue [class]
     module.add_class('Ipv4AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): ns3::Ipv4AppTracer [class]
+    module.add_class('Ipv4AppTracer', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >'])
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol [class]
+    module.add_class('Ipv4L3Protocol', import_from_module='ns.internet', parent=root_module['ns3::Ipv4'])
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol::DropReason [enumeration]
+    module.add_enum('DropReason', ['DROP_TTL_EXPIRED', 'DROP_NO_ROUTE', 'DROP_BAD_CHECKSUM', 'DROP_INTERFACE_DOWN', 'DROP_ROUTE_ERROR', 'DROP_FRAGMENT_TIMEOUT'], outer_class=root_module['ns3::Ipv4L3Protocol'], import_from_module='ns.internet')
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): ns3::Ipv4L3Tracer [class]
+    module.add_class('Ipv4L3Tracer', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >'])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol [class]
+    module.add_class('Ipv4L4Protocol', import_from_module='ns.internet', parent=root_module['ns3::Object'])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::RxStatus [enumeration]
+    module.add_enum('RxStatus', ['RX_OK', 'RX_CSUM_FAILED', 'RX_ENDPOINT_CLOSED', 'RX_ENDPOINT_UNREACH'], outer_class=root_module['ns3::Ipv4L4Protocol'], import_from_module='ns.internet')
     ## ipv4-address.h (module 'network'): ns3::Ipv4MaskChecker [class]
     module.add_class('Ipv4MaskChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## ipv4-address.h (module 'network'): ns3::Ipv4MaskValue [class]
     module.add_class('Ipv4MaskValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute [class]
+    module.add_class('Ipv4MulticastRoute', import_from_module='ns.internet', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >'])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Route [class]
+    module.add_class('Ipv4Route', import_from_module='ns.internet', parent=root_module['ns3::SimpleRefCount< ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >'])
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ipv4RoutingProtocol [class]
+    module.add_class('Ipv4RoutingProtocol', import_from_module='ns.internet', parent=root_module['ns3::Object'])
     ## ipv6-address.h (module 'network'): ns3::Ipv6AddressChecker [class]
     module.add_class('Ipv6AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## ipv6-address.h (module 'network'): ns3::Ipv6AddressValue [class]
@@ -308,6 +366,8 @@
     module.add_class('ObjectFactoryChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## object-factory.h (module 'core'): ns3::ObjectFactoryValue [class]
     module.add_class('ObjectFactoryValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper [class]
+    module.add_class('OutputStreamWrapper', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >'])
     ## packet.h (module 'network'): ns3::Packet [class]
     module.add_class('Packet', import_from_module='ns.network', parent=root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
     ## random-variable.h (module 'core'): ns3::RandomVariableChecker [class]
@@ -318,8 +378,16 @@
     module.add_class('RocketfuelWeightsReader', parent=root_module['ns3::AnnotatedTopologyReader'])
     ## rocketfuel-weights-reader.h (module 'NDNabstraction'): ns3::RocketfuelWeightsReader [enumeration]
     module.add_enum('', ['WEIGHTS', 'LATENCIES', 'POSITIONS'], outer_class=root_module['ns3::RocketfuelWeightsReader'])
+    ## socket.h (module 'network'): ns3::SocketAddressTag [class]
+    module.add_class('SocketAddressTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
+    ## socket.h (module 'network'): ns3::SocketIpTtlTag [class]
+    module.add_class('SocketIpTtlTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
+    ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag [class]
+    module.add_class('SocketSetDontFragmentTag', import_from_module='ns.network', parent=root_module['ns3::Tag'])
     ## spring-mobility-model.h (module 'NDNabstraction'): ns3::SpringMobilityModel [class]
     module.add_class('SpringMobilityModel', parent=root_module['ns3::MobilityModel'])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::TcpCongestionWindowTracer [class]
+    module.add_class('TcpCongestionWindowTracer', parent=root_module['ns3::WindowTracer'])
     ## nstime.h (module 'core'): ns3::TimeChecker [class]
     module.add_class('TimeChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## nstime.h (module 'core'): ns3::TimeValue [class]
@@ -341,8 +409,11 @@
     ## address.h (module 'network'): ns3::AddressValue [class]
     module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
     module.add_container('std::map< std::string, std::string >', ('std::string', 'std::string'), container_type='map')
+    module.add_container('std::list< ns3::WeightsPathStretchTag::NodeWeightPair >', 'ns3::WeightsPathStretchTag::NodeWeightPair', container_type='list')
+    module.add_container('std::list< ns3::TopologyReader::Link >', 'ns3::TopologyReader::Link', container_type='list')
     module.add_container('std::list< boost::reference_wrapper< std::string const > >', 'boost::reference_wrapper< std::basic_string< char, std::char_traits< char >, std::allocator< char > > const >', container_type='list')
     module.add_container('std::list< std::string >', 'std::string', container_type='list')
+    module.add_container('std::map< unsigned int, unsigned int >', ('unsigned int', 'unsigned int'), container_type='map')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
@@ -401,6 +472,7 @@
     register_Ns3CcnxUnknownHeaderException_methods(root_module, root_module['ns3::CcnxUnknownHeaderException'])
     register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
     register_Ns3Ipv4Address_methods(root_module, root_module['ns3::Ipv4Address'])
+    register_Ns3Ipv4InterfaceAddress_methods(root_module, root_module['ns3::Ipv4InterfaceAddress'])
     register_Ns3Ipv4Mask_methods(root_module, root_module['ns3::Ipv4Mask'])
     register_Ns3Ipv6Address_methods(root_module, root_module['ns3::Ipv6Address'])
     register_Ns3Ipv6Prefix_methods(root_module, root_module['ns3::Ipv6Prefix'])
@@ -412,17 +484,13 @@
     register_Ns3PacketMetadata_methods(root_module, root_module['ns3::PacketMetadata'])
     register_Ns3PacketMetadataItem_methods(root_module, root_module['ns3::PacketMetadata::Item'])
     register_Ns3PacketMetadataItemIterator_methods(root_module, root_module['ns3::PacketMetadata::ItemIterator'])
-    register_Ns3PacketTagIterator_methods(root_module, root_module['ns3::PacketTagIterator'])
-    register_Ns3PacketTagIteratorItem_methods(root_module, root_module['ns3::PacketTagIterator::Item'])
-    register_Ns3PacketTagList_methods(root_module, root_module['ns3::PacketTagList'])
-    register_Ns3PacketTagListTagData_methods(root_module, root_module['ns3::PacketTagList::TagData'])
     register_Ns3RandomVariable_methods(root_module, root_module['ns3::RandomVariable'])
     register_Ns3SeedManager_methods(root_module, root_module['ns3::SeedManager'])
     register_Ns3SequentialVariable_methods(root_module, root_module['ns3::SequentialVariable'])
     register_Ns3SimpleRefCount__Ns3Chunk_Ns3ObjectBase_Ns3DefaultDeleter__lt__ns3Chunk__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Chunk, ns3::ObjectBase, ns3::DefaultDeleter<ns3::Chunk> >'])
     register_Ns3SimpleRefCount__Ns3Object_Ns3ObjectBase_Ns3ObjectDeleter_methods(root_module, root_module['ns3::SimpleRefCount< ns3::Object, ns3::ObjectBase, ns3::ObjectDeleter >'])
+    register_Ns3Simulator_methods(root_module, root_module['ns3::Simulator'])
     register_Ns3SpringMobilityHelper_methods(root_module, root_module['ns3::SpringMobilityHelper'])
-    register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
     register_Ns3TagBuffer_methods(root_module, root_module['ns3::TagBuffer'])
     register_Ns3TriangularVariable_methods(root_module, root_module['ns3::TriangularVariable'])
     register_Ns3TypeId_methods(root_module, root_module['ns3::TypeId'])
@@ -445,6 +513,7 @@
     register_Ns3GammaVariable_methods(root_module, root_module['ns3::GammaVariable'])
     register_Ns3Header_methods(root_module, root_module['ns3::Header'])
     register_Ns3IntEmpiricalVariable_methods(root_module, root_module['ns3::IntEmpiricalVariable'])
+    register_Ns3Ipv4Header_methods(root_module, root_module['ns3::Ipv4Header'])
     register_Ns3LogNormalVariable_methods(root_module, root_module['ns3::LogNormalVariable'])
     register_Ns3NormalVariable_methods(root_module, root_module['ns3::NormalVariable'])
     register_Ns3Object_methods(root_module, root_module['ns3::Object'])
@@ -459,27 +528,42 @@
     register_Ns3SimpleRefCount__Ns3CcnxFibEntry_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxFibEntry__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxFibEntry, ns3::empty, ns3::DefaultDeleter<ns3::CcnxFibEntry> >'])
     register_Ns3SimpleRefCount__Ns3CcnxL3Tracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxL3Tracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxL3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxL3Tracer> >'])
     register_Ns3SimpleRefCount__Ns3CcnxNameComponents_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxNameComponents__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxNameComponents, ns3::empty, ns3::DefaultDeleter<ns3::CcnxNameComponents> >'])
+    register_Ns3SimpleRefCount__Ns3CcnxPathWeightTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxPathWeightTracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >'])
     register_Ns3SimpleRefCount__Ns3EventImpl_Ns3Empty_Ns3DefaultDeleter__lt__ns3EventImpl__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4AppTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4AppTracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4L3Tracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4L3Tracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4MulticastRoute_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4MulticastRoute__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >'])
+    register_Ns3SimpleRefCount__Ns3Ipv4Route_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4Route__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >'])
     register_Ns3SimpleRefCount__Ns3NixVector_Ns3Empty_Ns3DefaultDeleter__lt__ns3NixVector__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >'])
+    register_Ns3SimpleRefCount__Ns3OutputStreamWrapper_Ns3Empty_Ns3DefaultDeleter__lt__ns3OutputStreamWrapper__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >'])
     register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
     register_Ns3SimpleRefCount__Ns3TopologyReader_Ns3Empty_Ns3DefaultDeleter__lt__ns3TopologyReader__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TopologyReader, ns3::empty, ns3::DefaultDeleter<ns3::TopologyReader> >'])
     register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
+    register_Ns3SimpleRefCount__Ns3WindowTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3WindowTracer__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >'])
+    register_Ns3Socket_methods(root_module, root_module['ns3::Socket'])
+    register_Ns3Tag_methods(root_module, root_module['ns3::Tag'])
     register_Ns3Time_methods(root_module, root_module['ns3::Time'])
     register_Ns3TopologyReader_methods(root_module, root_module['ns3::TopologyReader'])
     register_Ns3TopologyReaderLink_methods(root_module, root_module['ns3::TopologyReader::Link'])
     register_Ns3TraceSourceAccessor_methods(root_module, root_module['ns3::TraceSourceAccessor'])
     register_Ns3Trailer_methods(root_module, root_module['ns3::Trailer'])
+    register_Ns3WeightsPathStretchTag_methods(root_module, root_module['ns3::WeightsPathStretchTag'])
+    register_Ns3WeightsPathStretchTagNodeWeightPair_methods(root_module, root_module['ns3::WeightsPathStretchTag::NodeWeightPair'])
+    register_Ns3WindowTracer_methods(root_module, root_module['ns3::WindowTracer'])
     register_Ns3AnnotatedTopologyReader_methods(root_module, root_module['ns3::AnnotatedTopologyReader'])
     register_Ns3Application_methods(root_module, root_module['ns3::Application'])
     register_Ns3AttributeAccessor_methods(root_module, root_module['ns3::AttributeAccessor'])
     register_Ns3AttributeChecker_methods(root_module, root_module['ns3::AttributeChecker'])
     register_Ns3AttributeValue_methods(root_module, root_module['ns3::AttributeValue'])
+    register_Ns3BatchesChecker_methods(root_module, root_module['ns3::BatchesChecker'])
+    register_Ns3BatchesValue_methods(root_module, root_module['ns3::BatchesValue'])
     register_Ns3CallbackChecker_methods(root_module, root_module['ns3::CallbackChecker'])
     register_Ns3CallbackImplBase_methods(root_module, root_module['ns3::CallbackImplBase'])
     register_Ns3CallbackValue_methods(root_module, root_module['ns3::CallbackValue'])
     register_Ns3Ccnx_methods(root_module, root_module['ns3::Ccnx'])
     register_Ns3CcnxApp_methods(root_module, root_module['ns3::CcnxApp'])
     register_Ns3CcnxAppTracer_methods(root_module, root_module['ns3::CcnxAppTracer'])
+    register_Ns3CcnxConsumerWindowTracer_methods(root_module, root_module['ns3::CcnxConsumerWindowTracer'])
     register_Ns3CcnxContentObjectHeader_methods(root_module, root_module['ns3::CcnxContentObjectHeader'])
     register_Ns3CcnxContentObjectTail_methods(root_module, root_module['ns3::CcnxContentObjectTail'])
     register_Ns3CcnxFace_methods(root_module, root_module['ns3::CcnxFace'])
@@ -492,13 +576,22 @@
     register_Ns3CcnxNameComponents_methods(root_module, root_module['ns3::CcnxNameComponents'])
     register_Ns3CcnxNameComponentsChecker_methods(root_module, root_module['ns3::CcnxNameComponentsChecker'])
     register_Ns3CcnxNameComponentsValue_methods(root_module, root_module['ns3::CcnxNameComponentsValue'])
+    register_Ns3CcnxPathWeightTracer_methods(root_module, root_module['ns3::CcnxPathWeightTracer'])
     register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue'])
     register_Ns3EventImpl_methods(root_module, root_module['ns3::EventImpl'])
     register_Ns3IntegerValue_methods(root_module, root_module['ns3::IntegerValue'])
+    register_Ns3Ipv4_methods(root_module, root_module['ns3::Ipv4'])
     register_Ns3Ipv4AddressChecker_methods(root_module, root_module['ns3::Ipv4AddressChecker'])
     register_Ns3Ipv4AddressValue_methods(root_module, root_module['ns3::Ipv4AddressValue'])
+    register_Ns3Ipv4AppTracer_methods(root_module, root_module['ns3::Ipv4AppTracer'])
+    register_Ns3Ipv4L3Protocol_methods(root_module, root_module['ns3::Ipv4L3Protocol'])
+    register_Ns3Ipv4L3Tracer_methods(root_module, root_module['ns3::Ipv4L3Tracer'])
+    register_Ns3Ipv4L4Protocol_methods(root_module, root_module['ns3::Ipv4L4Protocol'])
     register_Ns3Ipv4MaskChecker_methods(root_module, root_module['ns3::Ipv4MaskChecker'])
     register_Ns3Ipv4MaskValue_methods(root_module, root_module['ns3::Ipv4MaskValue'])
+    register_Ns3Ipv4MulticastRoute_methods(root_module, root_module['ns3::Ipv4MulticastRoute'])
+    register_Ns3Ipv4Route_methods(root_module, root_module['ns3::Ipv4Route'])
+    register_Ns3Ipv4RoutingProtocol_methods(root_module, root_module['ns3::Ipv4RoutingProtocol'])
     register_Ns3Ipv6AddressChecker_methods(root_module, root_module['ns3::Ipv6AddressChecker'])
     register_Ns3Ipv6AddressValue_methods(root_module, root_module['ns3::Ipv6AddressValue'])
     register_Ns3Ipv6PrefixChecker_methods(root_module, root_module['ns3::Ipv6PrefixChecker'])
@@ -509,11 +602,16 @@
     register_Ns3Node_methods(root_module, root_module['ns3::Node'])
     register_Ns3ObjectFactoryChecker_methods(root_module, root_module['ns3::ObjectFactoryChecker'])
     register_Ns3ObjectFactoryValue_methods(root_module, root_module['ns3::ObjectFactoryValue'])
+    register_Ns3OutputStreamWrapper_methods(root_module, root_module['ns3::OutputStreamWrapper'])
     register_Ns3Packet_methods(root_module, root_module['ns3::Packet'])
     register_Ns3RandomVariableChecker_methods(root_module, root_module['ns3::RandomVariableChecker'])
     register_Ns3RandomVariableValue_methods(root_module, root_module['ns3::RandomVariableValue'])
     register_Ns3RocketfuelWeightsReader_methods(root_module, root_module['ns3::RocketfuelWeightsReader'])
+    register_Ns3SocketAddressTag_methods(root_module, root_module['ns3::SocketAddressTag'])
+    register_Ns3SocketIpTtlTag_methods(root_module, root_module['ns3::SocketIpTtlTag'])
+    register_Ns3SocketSetDontFragmentTag_methods(root_module, root_module['ns3::SocketSetDontFragmentTag'])
     register_Ns3SpringMobilityModel_methods(root_module, root_module['ns3::SpringMobilityModel'])
+    register_Ns3TcpCongestionWindowTracer_methods(root_module, root_module['ns3::TcpCongestionWindowTracer'])
     register_Ns3TimeChecker_methods(root_module, root_module['ns3::TimeChecker'])
     register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
     register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker'])
@@ -1109,8 +1207,8 @@
     cls.add_binary_comparison_operator('<')
     ## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibFaceMetric::CcnxFibFaceMetric(ns3::CcnxFibFaceMetric const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::CcnxFibFaceMetric const &', 'arg0')])
-    ## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibFaceMetric::CcnxFibFaceMetric(ns3::Ptr<ns3::CcnxFace> face, int cost) [constructor]
-    cls.add_constructor([param('ns3::Ptr< ns3::CcnxFace >', 'face'), param('int', 'cost')])
+    ## ccnx-fib.h (module 'NDNabstraction'): ns3::CcnxFibFaceMetric::CcnxFibFaceMetric(ns3::Ptr<ns3::CcnxFace> face, int32_t cost) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::CcnxFace >', 'face'), param('int32_t', 'cost')])
     ## ccnx-fib.h (module 'NDNabstraction'): ns3::Ptr<ns3::CcnxFace> ns3::CcnxFibFaceMetric::GetFace() const [member function]
     cls.add_method('GetFace', 
                    'ns3::Ptr< ns3::CcnxFace >', 
@@ -1189,32 +1287,45 @@
                    'ns3::Ptr< ns3::CcnxFaceContainer >', 
                    [], 
                    is_const=True)
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::AddRoute(std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric) const [member function]
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::AddRoute(std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric) [member function]
     cls.add_method('AddRoute', 
                    'void', 
                    [param('std::string', 'nodeName'), param('std::string', 'prefix'), param('uint32_t', 'faceId'), param('int32_t', 'metric')], 
-                   is_const=True)
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::AddRoute(ns3::Ptr<ns3::Node> node, std::string prefix, ns3::Ptr<ns3::CcnxFace> face, int32_t metric) const [member function]
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::AddRoute(ns3::Ptr<ns3::Node> node, std::string prefix, ns3::Ptr<ns3::CcnxFace> face, int32_t metric) [member function]
     cls.add_method('AddRoute', 
                    'void', 
                    [param('ns3::Ptr< ns3::Node >', 'node'), param('std::string', 'prefix'), param('ns3::Ptr< ns3::CcnxFace >', 'face'), param('int32_t', 'metric')], 
-                   is_const=True)
+                   is_static=True)
     ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::SetDefaultRoutes(bool needSet) [member function]
     cls.add_method('SetDefaultRoutes', 
                    'void', 
                    [param('bool', 'needSet')])
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::InstallFakeGlobalRoutes() [member function]
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallFakeGlobalRoutes() [member function]
     cls.add_method('InstallFakeGlobalRoutes', 
                    'void', 
-                   [])
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::InstallRouteTo(ns3::Ptr<ns3::Node> node) [member function]
+                   [], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallFakeGlobalRoutesImpl() [member function]
+    cls.add_method('InstallFakeGlobalRoutesImpl', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallRouteTo(ns3::Ptr<ns3::Node> node) [member function]
     cls.add_method('InstallRouteTo', 
                    'void', 
-                   [param('ns3::Ptr< ns3::Node >', 'node')])
-    ## ccnx-stack-helper.h (module 'NDNabstraction'): void ns3::CcnxStackHelper::InstallRoutesToAll() [member function]
+                   [param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallRouteTo(std::string const & prefix, ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('InstallRouteTo', 
+                   'void', 
+                   [param('std::string const &', 'prefix'), param('ns3::Ptr< ns3::Node >', 'node')], 
+                   is_static=True)
+    ## ccnx-stack-helper.h (module 'NDNabstraction'): static void ns3::CcnxStackHelper::InstallRoutesToAll() [member function]
     cls.add_method('InstallRoutesToAll', 
                    'void', 
-                   [])
+                   [], 
+                   is_static=True)
     return
 
 def register_Ns3CcnxTraceHelper_methods(root_module, cls):
@@ -1230,10 +1341,34 @@
     cls.add_method('EnableAggregateL3All', 
                    'void', 
                    [])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableIpv4RateL3All(std::string const & ipv4RateTrace="ipv4-rate.log") [member function]
+    cls.add_method('EnableIpv4RateL3All', 
+                   'void', 
+                   [param('std::string const &', 'ipv4RateTrace', default_value='"ipv4-rate.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableIpv4SeqsAppAll(std::string const & appSeqsTrace="app-seqs.log") [member function]
+    cls.add_method('EnableIpv4SeqsAppAll', 
+                   'void', 
+                   [param('std::string const &', 'appSeqsTrace', default_value='"app-seqs.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnablePathWeights(std::string const & pathWeights) [member function]
+    cls.add_method('EnablePathWeights', 
+                   'void', 
+                   [param('std::string const &', 'pathWeights')])
     ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableRateL3All(std::string const & l3RateTrace="l3-rate.log") [member function]
     cls.add_method('EnableRateL3All', 
                    'void', 
                    [param('std::string const &', 'l3RateTrace', default_value='"l3-rate.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableSeqsAppAll(std::string const & app, std::string const & appSeqsTrace="app-seqs.log") [member function]
+    cls.add_method('EnableSeqsAppAll', 
+                   'void', 
+                   [param('std::string const &', 'app'), param('std::string const &', 'appSeqsTrace', default_value='"app-seqs.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableWindowsAll(std::string const & windowTrace="windows.log") [member function]
+    cls.add_method('EnableWindowsAll', 
+                   'void', 
+                   [param('std::string const &', 'windowTrace', default_value='"windows.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::EnableWindowsTcpAll(std::string const & windowTrace) [member function]
+    cls.add_method('EnableWindowsTcpAll', 
+                   'void', 
+                   [param('std::string const &', 'windowTrace')])
     ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::SetAppTraceFile(std::string const & appTrace="apps.log") [member function]
     cls.add_method('SetAppTraceFile', 
                    'void', 
@@ -1242,6 +1377,10 @@
     cls.add_method('SetL3TraceFile', 
                    'void', 
                    [param('std::string const &', 'l3Trace', default_value='"l3.log"')])
+    ## ccnx-trace-helper.h (module 'NDNabstraction'): void ns3::CcnxTraceHelper::TcpConnect(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('TcpConnect', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
     return
 
 def register_Ns3CcnxUnknownHeaderException_methods(root_module, cls):
@@ -1404,6 +1543,67 @@
                    [param('char const *', 'address')])
     return
 
+def register_Ns3Ipv4InterfaceAddress_methods(root_module, cls):
+    cls.add_binary_comparison_operator('!=')
+    cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('==')
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress() [constructor]
+    cls.add_constructor([])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress(ns3::Ipv4Address local, ns3::Ipv4Mask mask) [constructor]
+    cls.add_constructor([param('ns3::Ipv4Address', 'local'), param('ns3::Ipv4Mask', 'mask')])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress(ns3::Ipv4InterfaceAddress const & o) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4InterfaceAddress const &', 'o')])
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4InterfaceAddress::GetBroadcast() const [member function]
+    cls.add_method('GetBroadcast', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4InterfaceAddress::GetLocal() const [member function]
+    cls.add_method('GetLocal', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4Mask ns3::Ipv4InterfaceAddress::GetMask() const [member function]
+    cls.add_method('GetMask', 
+                   'ns3::Ipv4Mask', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e ns3::Ipv4InterfaceAddress::GetScope() const [member function]
+    cls.add_method('GetScope', 
+                   'ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): bool ns3::Ipv4InterfaceAddress::IsSecondary() const [member function]
+    cls.add_method('IsSecondary', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetBroadcast(ns3::Ipv4Address broadcast) [member function]
+    cls.add_method('SetBroadcast', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'broadcast')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetLocal(ns3::Ipv4Address local) [member function]
+    cls.add_method('SetLocal', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'local')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetMask(ns3::Ipv4Mask mask) [member function]
+    cls.add_method('SetMask', 
+                   'void', 
+                   [param('ns3::Ipv4Mask', 'mask')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetPrimary() [member function]
+    cls.add_method('SetPrimary', 
+                   'void', 
+                   [])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetScope(ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e scope) [member function]
+    cls.add_method('SetScope', 
+                   'void', 
+                   [param('ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 'scope')])
+    ## ipv4-interface-address.h (module 'internet'): void ns3::Ipv4InterfaceAddress::SetSecondary() [member function]
+    cls.add_method('SetSecondary', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3Ipv4Mask_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
     cls.add_output_stream_operator()
@@ -2025,80 +2225,6 @@
                    [])
     return
 
-def register_Ns3PacketTagIterator_methods(root_module, cls):
-    ## packet.h (module 'network'): ns3::PacketTagIterator::PacketTagIterator(ns3::PacketTagIterator const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagIterator const &', 'arg0')])
-    ## packet.h (module 'network'): bool ns3::PacketTagIterator::HasNext() const [member function]
-    cls.add_method('HasNext', 
-                   'bool', 
-                   [], 
-                   is_const=True)
-    ## packet.h (module 'network'): ns3::PacketTagIterator::Item ns3::PacketTagIterator::Next() [member function]
-    cls.add_method('Next', 
-                   'ns3::PacketTagIterator::Item', 
-                   [])
-    return
-
-def register_Ns3PacketTagIteratorItem_methods(root_module, cls):
-    ## packet.h (module 'network'): ns3::PacketTagIterator::Item::Item(ns3::PacketTagIterator::Item const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagIterator::Item const &', 'arg0')])
-    ## packet.h (module 'network'): void ns3::PacketTagIterator::Item::GetTag(ns3::Tag & tag) const [member function]
-    cls.add_method('GetTag', 
-                   'void', 
-                   [param('ns3::Tag &', 'tag')], 
-                   is_const=True)
-    ## packet.h (module 'network'): ns3::TypeId ns3::PacketTagIterator::Item::GetTypeId() const [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_const=True)
-    return
-
-def register_Ns3PacketTagList_methods(root_module, cls):
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::PacketTagList() [constructor]
-    cls.add_constructor([])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::PacketTagList(ns3::PacketTagList const & o) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagList const &', 'o')])
-    ## packet-tag-list.h (module 'network'): void ns3::PacketTagList::Add(ns3::Tag const & tag) const [member function]
-    cls.add_method('Add', 
-                   'void', 
-                   [param('ns3::Tag const &', 'tag')], 
-                   is_const=True)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData const * ns3::PacketTagList::Head() const [member function]
-    cls.add_method('Head', 
-                   'ns3::PacketTagList::TagData const *', 
-                   [], 
-                   is_const=True)
-    ## packet-tag-list.h (module 'network'): bool ns3::PacketTagList::Peek(ns3::Tag & tag) const [member function]
-    cls.add_method('Peek', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')], 
-                   is_const=True)
-    ## packet-tag-list.h (module 'network'): bool ns3::PacketTagList::Remove(ns3::Tag & tag) [member function]
-    cls.add_method('Remove', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')])
-    ## packet-tag-list.h (module 'network'): void ns3::PacketTagList::RemoveAll() [member function]
-    cls.add_method('RemoveAll', 
-                   'void', 
-                   [])
-    return
-
-def register_Ns3PacketTagListTagData_methods(root_module, cls):
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::TagData() [constructor]
-    cls.add_constructor([])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::TagData(ns3::PacketTagList::TagData const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::PacketTagList::TagData const &', 'arg0')])
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::count [variable]
-    cls.add_instance_attribute('count', 'uint32_t', is_const=False)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::data [variable]
-    cls.add_instance_attribute('data', 'uint8_t [ 20 ]', is_const=False)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::next [variable]
-    cls.add_instance_attribute('next', 'ns3::PacketTagList::TagData *', is_const=False)
-    ## packet-tag-list.h (module 'network'): ns3::PacketTagList::TagData::tid [variable]
-    cls.add_instance_attribute('tid', 'ns3::TypeId', is_const=False)
-    return
-
 def register_Ns3RandomVariable_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## random-variable.h (module 'core'): ns3::RandomVariable::RandomVariable() [constructor]
@@ -2182,6 +2308,96 @@
                    is_static=True)
     return
 
+def register_Ns3Simulator_methods(root_module, cls):
+    ## simulator.h (module 'core'): ns3::Simulator::Simulator(ns3::Simulator const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Simulator const &', 'arg0')])
+    ## simulator.h (module 'core'): static void ns3::Simulator::Cancel(ns3::EventId const & id) [member function]
+    cls.add_method('Cancel', 
+                   'void', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Destroy() [member function]
+    cls.add_method('Destroy', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static uint32_t ns3::Simulator::GetContext() [member function]
+    cls.add_method('GetContext', 
+                   'uint32_t', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::GetDelayLeft(ns3::EventId const & id) [member function]
+    cls.add_method('GetDelayLeft', 
+                   'ns3::Time', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Ptr<ns3::SimulatorImpl> ns3::Simulator::GetImplementation() [member function]
+    cls.add_method('GetImplementation', 
+                   'ns3::Ptr< ns3::SimulatorImpl >', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::GetMaximumSimulationTime() [member function]
+    cls.add_method('GetMaximumSimulationTime', 
+                   'ns3::Time', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static uint32_t ns3::Simulator::GetSystemId() [member function]
+    cls.add_method('GetSystemId', 
+                   'uint32_t', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static bool ns3::Simulator::IsExpired(ns3::EventId const & id) [member function]
+    cls.add_method('IsExpired', 
+                   'bool', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static bool ns3::Simulator::IsFinished() [member function]
+    cls.add_method('IsFinished', 
+                   'bool', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::Next() [member function]
+    cls.add_method('Next', 
+                   'ns3::Time', 
+                   [], 
+                   is_static=True, deprecated=True)
+    ## simulator.h (module 'core'): static ns3::Time ns3::Simulator::Now() [member function]
+    cls.add_method('Now', 
+                   'ns3::Time', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Remove(ns3::EventId const & id) [member function]
+    cls.add_method('Remove', 
+                   'void', 
+                   [param('ns3::EventId const &', 'id')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::RunOneEvent() [member function]
+    cls.add_method('RunOneEvent', 
+                   'void', 
+                   [], 
+                   is_static=True, deprecated=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::SetImplementation(ns3::Ptr<ns3::SimulatorImpl> impl) [member function]
+    cls.add_method('SetImplementation', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::SimulatorImpl >', 'impl')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::SetScheduler(ns3::ObjectFactory schedulerFactory) [member function]
+    cls.add_method('SetScheduler', 
+                   'void', 
+                   [param('ns3::ObjectFactory', 'schedulerFactory')], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Stop() [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    ## simulator.h (module 'core'): static void ns3::Simulator::Stop(ns3::Time const & time) [member function]
+    cls.add_method('Stop', 
+                   'void', 
+                   [param('ns3::Time const &', 'time')], 
+                   is_static=True)
+    return
+
 def register_Ns3SpringMobilityHelper_methods(root_module, cls):
     ## spring-mobility-helper.h (module 'NDNabstraction'): ns3::SpringMobilityHelper::SpringMobilityHelper() [constructor]
     cls.add_constructor([])
@@ -2199,38 +2415,6 @@
                    is_static=True)
     return
 
-def register_Ns3Tag_methods(root_module, cls):
-    ## tag.h (module 'network'): ns3::Tag::Tag() [constructor]
-    cls.add_constructor([])
-    ## tag.h (module 'network'): ns3::Tag::Tag(ns3::Tag const & arg0) [copy constructor]
-    cls.add_constructor([param('ns3::Tag const &', 'arg0')])
-    ## tag.h (module 'network'): void ns3::Tag::Deserialize(ns3::TagBuffer i) [member function]
-    cls.add_method('Deserialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_pure_virtual=True, is_virtual=True)
-    ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function]
-    cls.add_method('GetSerializedSize', 
-                   'uint32_t', 
-                   [], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function]
-    cls.add_method('GetTypeId', 
-                   'ns3::TypeId', 
-                   [], 
-                   is_static=True)
-    ## tag.h (module 'network'): void ns3::Tag::Print(std::ostream & os) const [member function]
-    cls.add_method('Print', 
-                   'void', 
-                   [param('std::ostream &', 'os')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function]
-    cls.add_method('Serialize', 
-                   'void', 
-                   [param('ns3::TagBuffer', 'i')], 
-                   is_pure_virtual=True, is_const=True, is_virtual=True)
-    return
-
 def register_Ns3TagBuffer_methods(root_module, cls):
     ## tag-buffer.h (module 'network'): ns3::TagBuffer::TagBuffer(ns3::TagBuffer const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TagBuffer const &', 'arg0')])
@@ -2832,6 +3016,178 @@
     cls.add_constructor([])
     return
 
+def register_Ns3Ipv4Header_methods(root_module, cls):
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::Ipv4Header(ns3::Ipv4Header const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4Header const &', 'arg0')])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::Ipv4Header() [constructor]
+    cls.add_constructor([])
+    ## ipv4-header.h (module 'internet'): uint32_t ns3::Ipv4Header::Deserialize(ns3::Buffer::Iterator start) [member function]
+    cls.add_method('Deserialize', 
+                   'uint32_t', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_virtual=True)
+    ## ipv4-header.h (module 'internet'): std::string ns3::Ipv4Header::DscpTypeToString(ns3::Ipv4Header::DscpType dscp) const [member function]
+    cls.add_method('DscpTypeToString', 
+                   'std::string', 
+                   [param('ns3::Ipv4Header::DscpType', 'dscp')], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): std::string ns3::Ipv4Header::EcnTypeToString(ns3::Ipv4Header::EcnType ecn) const [member function]
+    cls.add_method('EcnTypeToString', 
+                   'std::string', 
+                   [param('ns3::Ipv4Header::EcnType', 'ecn')], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::EnableChecksum() [member function]
+    cls.add_method('EnableChecksum', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Header::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::DscpType ns3::Ipv4Header::GetDscp() const [member function]
+    cls.add_method('GetDscp', 
+                   'ns3::Ipv4Header::DscpType', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Header::EcnType ns3::Ipv4Header::GetEcn() const [member function]
+    cls.add_method('GetEcn', 
+                   'ns3::Ipv4Header::EcnType', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint16_t ns3::Ipv4Header::GetFragmentOffset() const [member function]
+    cls.add_method('GetFragmentOffset', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint16_t ns3::Ipv4Header::GetIdentification() const [member function]
+    cls.add_method('GetIdentification', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): ns3::TypeId ns3::Ipv4Header::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): uint16_t ns3::Ipv4Header::GetPayloadSize() const [member function]
+    cls.add_method('GetPayloadSize', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint8_t ns3::Ipv4Header::GetProtocol() const [member function]
+    cls.add_method('GetProtocol', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint32_t ns3::Ipv4Header::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Header::GetSource() const [member function]
+    cls.add_method('GetSource', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint8_t ns3::Ipv4Header::GetTos() const [member function]
+    cls.add_method('GetTos', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): uint8_t ns3::Ipv4Header::GetTtl() const [member function]
+    cls.add_method('GetTtl', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): static ns3::TypeId ns3::Ipv4Header::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-header.h (module 'internet'): bool ns3::Ipv4Header::IsChecksumOk() const [member function]
+    cls.add_method('IsChecksumOk', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): bool ns3::Ipv4Header::IsDontFragment() const [member function]
+    cls.add_method('IsDontFragment', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): bool ns3::Ipv4Header::IsLastFragment() const [member function]
+    cls.add_method('IsLastFragment', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::Serialize(ns3::Buffer::Iterator start) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::Buffer::Iterator', 'start')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetDestination(ns3::Ipv4Address destination) [member function]
+    cls.add_method('SetDestination', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'destination')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetDontFragment() [member function]
+    cls.add_method('SetDontFragment', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetDscp(ns3::Ipv4Header::DscpType dscp) [member function]
+    cls.add_method('SetDscp', 
+                   'void', 
+                   [param('ns3::Ipv4Header::DscpType', 'dscp')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetEcn(ns3::Ipv4Header::EcnType ecn) [member function]
+    cls.add_method('SetEcn', 
+                   'void', 
+                   [param('ns3::Ipv4Header::EcnType', 'ecn')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetFragmentOffset(uint16_t offsetBytes) [member function]
+    cls.add_method('SetFragmentOffset', 
+                   'void', 
+                   [param('uint16_t', 'offsetBytes')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetIdentification(uint16_t identification) [member function]
+    cls.add_method('SetIdentification', 
+                   'void', 
+                   [param('uint16_t', 'identification')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetLastFragment() [member function]
+    cls.add_method('SetLastFragment', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetMayFragment() [member function]
+    cls.add_method('SetMayFragment', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetMoreFragments() [member function]
+    cls.add_method('SetMoreFragments', 
+                   'void', 
+                   [])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetPayloadSize(uint16_t size) [member function]
+    cls.add_method('SetPayloadSize', 
+                   'void', 
+                   [param('uint16_t', 'size')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetProtocol(uint8_t num) [member function]
+    cls.add_method('SetProtocol', 
+                   'void', 
+                   [param('uint8_t', 'num')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetSource(ns3::Ipv4Address source) [member function]
+    cls.add_method('SetSource', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'source')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetTos(uint8_t tos) [member function]
+    cls.add_method('SetTos', 
+                   'void', 
+                   [param('uint8_t', 'tos')])
+    ## ipv4-header.h (module 'internet'): void ns3::Ipv4Header::SetTtl(uint8_t ttl) [member function]
+    cls.add_method('SetTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    return
+
 def register_Ns3LogNormalVariable_methods(root_module, cls):
     ## random-variable.h (module 'core'): ns3::LogNormalVariable::LogNormalVariable(ns3::LogNormalVariable const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogNormalVariable const &', 'arg0')])
@@ -3041,6 +3397,18 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3CcnxPathWeightTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3CcnxPathWeightTracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter< ns3::CcnxPathWeightTracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::CcnxPathWeightTracer, ns3::empty, ns3::DefaultDeleter<ns3::CcnxPathWeightTracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3SimpleRefCount__Ns3EventImpl_Ns3Empty_Ns3DefaultDeleter__lt__ns3EventImpl__gt___methods(root_module, cls):
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
@@ -3053,6 +3421,54 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3Ipv4AppTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4AppTracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4AppTracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4AppTracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4AppTracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3SimpleRefCount__Ns3Ipv4L3Tracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4L3Tracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4L3Tracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4L3Tracer, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4L3Tracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3SimpleRefCount__Ns3Ipv4MulticastRoute_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4MulticastRoute__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4MulticastRoute > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4MulticastRoute, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4MulticastRoute> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3SimpleRefCount__Ns3Ipv4Route_Ns3Empty_Ns3DefaultDeleter__lt__ns3Ipv4Route__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter< ns3::Ipv4Route > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Ipv4Route, ns3::empty, ns3::DefaultDeleter<ns3::Ipv4Route> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3SimpleRefCount__Ns3NixVector_Ns3Empty_Ns3DefaultDeleter__lt__ns3NixVector__gt___methods(root_module, cls):
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
@@ -3065,6 +3481,18 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3OutputStreamWrapper_Ns3Empty_Ns3DefaultDeleter__lt__ns3OutputStreamWrapper__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >::SimpleRefCount(ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter< ns3::OutputStreamWrapper > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::OutputStreamWrapper, ns3::empty, ns3::DefaultDeleter<ns3::OutputStreamWrapper> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, cls):
     ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >::SimpleRefCount() [constructor]
     cls.add_constructor([])
@@ -3101,6 +3529,278 @@
                    is_static=True)
     return
 
+def register_Ns3SimpleRefCount__Ns3WindowTracer_Ns3Empty_Ns3DefaultDeleter__lt__ns3WindowTracer__gt___methods(root_module, cls):
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >::SimpleRefCount() [constructor]
+    cls.add_constructor([])
+    ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >::SimpleRefCount(ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> > const & o) [copy constructor]
+    cls.add_constructor([param('ns3::SimpleRefCount< ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter< ns3::WindowTracer > > const &', 'o')])
+    ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::WindowTracer, ns3::empty, ns3::DefaultDeleter<ns3::WindowTracer> >::Cleanup() [member function]
+    cls.add_method('Cleanup', 
+                   'void', 
+                   [], 
+                   is_static=True)
+    return
+
+def register_Ns3Socket_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::Socket::Socket(ns3::Socket const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Socket const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::Socket::Socket() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): int ns3::Socket::Bind(ns3::Address const & address) [member function]
+    cls.add_method('Bind', 
+                   'int', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Bind() [member function]
+    cls.add_method('Bind', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::BindToNetDevice(ns3::Ptr<ns3::NetDevice> netdevice) [member function]
+    cls.add_method('BindToNetDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'netdevice')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Close() [member function]
+    cls.add_method('Close', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Connect(ns3::Address const & address) [member function]
+    cls.add_method('Connect', 
+                   'int', 
+                   [param('ns3::Address const &', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): static ns3::Ptr<ns3::Socket> ns3::Socket::CreateSocket(ns3::Ptr<ns3::Node> node, ns3::TypeId tid) [member function]
+    cls.add_method('CreateSocket', 
+                   'ns3::Ptr< ns3::Socket >', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('ns3::TypeId', 'tid')], 
+                   is_static=True)
+    ## socket.h (module 'network'): bool ns3::Socket::GetAllowBroadcast() const [member function]
+    cls.add_method('GetAllowBroadcast', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::NetDevice> ns3::Socket::GetBoundNetDevice() [member function]
+    cls.add_method('GetBoundNetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [])
+    ## socket.h (module 'network'): ns3::Socket::SocketErrno ns3::Socket::GetErrno() const [member function]
+    cls.add_method('GetErrno', 
+                   'ns3::Socket::SocketErrno', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Node> ns3::Socket::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::Socket::GetRxAvailable() const [member function]
+    cls.add_method('GetRxAvailable', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::GetSockName(ns3::Address & address) const [member function]
+    cls.add_method('GetSockName', 
+                   'int', 
+                   [param('ns3::Address &', 'address')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Socket::SocketType ns3::Socket::GetSocketType() const [member function]
+    cls.add_method('GetSocketType', 
+                   'ns3::Socket::SocketType', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::Socket::GetTxAvailable() const [member function]
+    cls.add_method('GetTxAvailable', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): bool ns3::Socket::IsRecvPktInfo() const [member function]
+    cls.add_method('IsRecvPktInfo', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## socket.h (module 'network'): int ns3::Socket::Listen() [member function]
+    cls.add_method('Listen', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::Recv(uint32_t maxSize, uint32_t flags) [member function]
+    cls.add_method('Recv', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'maxSize'), param('uint32_t', 'flags')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::Recv() [member function]
+    cls.add_method('Recv', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [])
+    ## socket.h (module 'network'): int ns3::Socket::Recv(uint8_t * buf, uint32_t size, uint32_t flags) [member function]
+    cls.add_method('Recv', 
+                   'int', 
+                   [param('uint8_t *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags')])
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::RecvFrom(uint32_t maxSize, uint32_t flags, ns3::Address & fromAddress) [member function]
+    cls.add_method('RecvFrom', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('uint32_t', 'maxSize'), param('uint32_t', 'flags'), param('ns3::Address &', 'fromAddress')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): ns3::Ptr<ns3::Packet> ns3::Socket::RecvFrom(ns3::Address & fromAddress) [member function]
+    cls.add_method('RecvFrom', 
+                   'ns3::Ptr< ns3::Packet >', 
+                   [param('ns3::Address &', 'fromAddress')])
+    ## socket.h (module 'network'): int ns3::Socket::RecvFrom(uint8_t * buf, uint32_t size, uint32_t flags, ns3::Address & fromAddress) [member function]
+    cls.add_method('RecvFrom', 
+                   'int', 
+                   [param('uint8_t *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags'), param('ns3::Address &', 'fromAddress')])
+    ## socket.h (module 'network'): int ns3::Socket::Send(ns3::Ptr<ns3::Packet> p, uint32_t flags) [member function]
+    cls.add_method('Send', 
+                   'int', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint32_t', 'flags')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::Send(ns3::Ptr<ns3::Packet> p) [member function]
+    cls.add_method('Send', 
+                   'int', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p')])
+    ## socket.h (module 'network'): int ns3::Socket::Send(uint8_t const * buf, uint32_t size, uint32_t flags) [member function]
+    cls.add_method('Send', 
+                   'int', 
+                   [param('uint8_t const *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags')])
+    ## socket.h (module 'network'): int ns3::Socket::SendTo(ns3::Ptr<ns3::Packet> p, uint32_t flags, ns3::Address const & toAddress) [member function]
+    cls.add_method('SendTo', 
+                   'int', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('uint32_t', 'flags'), param('ns3::Address const &', 'toAddress')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::SendTo(uint8_t const * buf, uint32_t size, uint32_t flags, ns3::Address const & address) [member function]
+    cls.add_method('SendTo', 
+                   'int', 
+                   [param('uint8_t const *', 'buf'), param('uint32_t', 'size'), param('uint32_t', 'flags'), param('ns3::Address const &', 'address')])
+    ## socket.h (module 'network'): void ns3::Socket::SetAcceptCallback(ns3::Callback<bool, ns3::Ptr<ns3::Socket>, ns3::Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> connectionRequest, ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::Address const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> newConnectionCreated) [member function]
+    cls.add_method('SetAcceptCallback', 
+                   'void', 
+                   [param('ns3::Callback< bool, ns3::Ptr< ns3::Socket >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'connectionRequest'), param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::Address const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'newConnectionCreated')])
+    ## socket.h (module 'network'): bool ns3::Socket::SetAllowBroadcast(bool allowBroadcast) [member function]
+    cls.add_method('SetAllowBroadcast', 
+                   'bool', 
+                   [param('bool', 'allowBroadcast')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::SetCloseCallbacks(ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> normalClose, ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> errorClose) [member function]
+    cls.add_method('SetCloseCallbacks', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'normalClose'), param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'errorClose')])
+    ## socket.h (module 'network'): void ns3::Socket::SetConnectCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> connectionSucceeded, ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> connectionFailed) [member function]
+    cls.add_method('SetConnectCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'connectionSucceeded'), param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'connectionFailed')])
+    ## socket.h (module 'network'): void ns3::Socket::SetDataSentCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> dataSent) [member function]
+    cls.add_method('SetDataSentCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'dataSent')])
+    ## socket.h (module 'network'): void ns3::Socket::SetRecvCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> arg0) [member function]
+    cls.add_method('SetRecvCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'arg0')])
+    ## socket.h (module 'network'): void ns3::Socket::SetRecvPktInfo(bool flag) [member function]
+    cls.add_method('SetRecvPktInfo', 
+                   'void', 
+                   [param('bool', 'flag')])
+    ## socket.h (module 'network'): void ns3::Socket::SetSendCallback(ns3::Callback<void, ns3::Ptr<ns3::Socket>, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> sendCb) [member function]
+    cls.add_method('SetSendCallback', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Socket >, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'sendCb')])
+    ## socket.h (module 'network'): int ns3::Socket::ShutdownRecv() [member function]
+    cls.add_method('ShutdownRecv', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): int ns3::Socket::ShutdownSend() [member function]
+    cls.add_method('ShutdownSend', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## socket.h (module 'network'): void ns3::Socket::NotifyConnectionFailed() [member function]
+    cls.add_method('NotifyConnectionFailed', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): bool ns3::Socket::NotifyConnectionRequest(ns3::Address const & from) [member function]
+    cls.add_method('NotifyConnectionRequest', 
+                   'bool', 
+                   [param('ns3::Address const &', 'from')], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyConnectionSucceeded() [member function]
+    cls.add_method('NotifyConnectionSucceeded', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyDataRecv() [member function]
+    cls.add_method('NotifyDataRecv', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyDataSent(uint32_t size) [member function]
+    cls.add_method('NotifyDataSent', 
+                   'void', 
+                   [param('uint32_t', 'size')], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyErrorClose() [member function]
+    cls.add_method('NotifyErrorClose', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyNewConnectionCreated(ns3::Ptr<ns3::Socket> socket, ns3::Address const & from) [member function]
+    cls.add_method('NotifyNewConnectionCreated', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Socket >', 'socket'), param('ns3::Address const &', 'from')], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifyNormalClose() [member function]
+    cls.add_method('NotifyNormalClose', 
+                   'void', 
+                   [], 
+                   visibility='protected')
+    ## socket.h (module 'network'): void ns3::Socket::NotifySend(uint32_t spaceAvailable) [member function]
+    cls.add_method('NotifySend', 
+                   'void', 
+                   [param('uint32_t', 'spaceAvailable')], 
+                   visibility='protected')
+    return
+
+def register_Ns3Tag_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## tag.h (module 'network'): ns3::Tag::Tag() [constructor]
+    cls.add_constructor([])
+    ## tag.h (module 'network'): ns3::Tag::Tag(ns3::Tag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Tag const &', 'arg0')])
+    ## tag.h (module 'network'): void ns3::Tag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## tag.h (module 'network'): uint32_t ns3::Tag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## tag.h (module 'network'): static ns3::TypeId ns3::Tag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## tag.h (module 'network'): void ns3::Tag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## tag.h (module 'network'): void ns3::Tag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    return
+
 def register_Ns3Time_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
@@ -3303,6 +4003,8 @@
 def register_Ns3TopologyReaderLink_methods(root_module, cls):
     ## topology-reader.h (module 'topology-read'): ns3::TopologyReader::Link::Link(ns3::TopologyReader::Link const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::TopologyReader::Link const &', 'arg0')])
+    ## topology-reader.h (module 'topology-read'): ns3::TopologyReader::Link::Link() [constructor]
+    cls.add_constructor([])
     ## topology-reader.h (module 'topology-read'): ns3::TopologyReader::Link::Link(ns3::Ptr<ns3::Node> fromPtr, std::string const & fromName, ns3::Ptr<ns3::Node> toPtr, std::string const & toName) [constructor]
     cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'fromPtr'), param('std::string const &', 'fromName'), param('ns3::Ptr< ns3::Node >', 'toPtr'), param('std::string const &', 'toName')])
     ## topology-reader.h (module 'topology-read'): std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > ns3::TopologyReader::Link::AttributesBegin() [member function]
@@ -3423,6 +4125,92 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
+def register_Ns3WeightsPathStretchTag_methods(root_module, cls):
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::WeightsPathStretchTag(ns3::WeightsPathStretchTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WeightsPathStretchTag const &', 'arg0')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::WeightsPathStretchTag() [constructor]
+    cls.add_constructor([])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::AddPathInfo(ns3::Ptr<ns3::Node> node, uint32_t weight) [member function]
+    cls.add_method('AddPathInfo', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node'), param('uint32_t', 'weight')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::WeightsPathStretchTag::GetDestinationNode() const [member function]
+    cls.add_method('GetDestinationNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): std::list<ns3::WeightsPathStretchTag::NodeWeightPair, std::allocator<ns3::WeightsPathStretchTag::NodeWeightPair> > const & ns3::WeightsPathStretchTag::GetInfos() const [member function]
+    cls.add_method('GetInfos', 
+                   'std::list< ns3::WeightsPathStretchTag::NodeWeightPair > const &', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): uint32_t ns3::WeightsPathStretchTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::WeightsPathStretchTag::GetSourceNode() const [member function]
+    cls.add_method('GetSourceNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): uint64_t ns3::WeightsPathStretchTag::GetTotalWeight() const [member function]
+    cls.add_method('GetTotalWeight', 
+                   'uint64_t', 
+                   [], 
+                   is_const=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): static ns3::TypeId ns3::WeightsPathStretchTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): void ns3::WeightsPathStretchTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    return
+
+def register_Ns3WeightsPathStretchTagNodeWeightPair_methods(root_module, cls):
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::NodeWeightPair(ns3::WeightsPathStretchTag::NodeWeightPair const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WeightsPathStretchTag::NodeWeightPair const &', 'arg0')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::NodeWeightPair() [constructor]
+    cls.add_constructor([])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::NodeWeightPair(ns3::Ptr<ns3::Node> _node, uint32_t _weight) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', '_node'), param('uint32_t', '_weight')])
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::node [variable]
+    cls.add_instance_attribute('node', 'ns3::Ptr< ns3::Node >', is_const=False)
+    ## ccnx-path-stretch-tag.h (module 'NDNabstraction'): ns3::WeightsPathStretchTag::NodeWeightPair::weight [variable]
+    cls.add_instance_attribute('weight', 'uint32_t', is_const=False)
+    return
+
+def register_Ns3WindowTracer_methods(root_module, cls):
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::WindowTracer::WindowTracer(ns3::WindowTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::WindowTracer const &', 'arg0')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::WindowTracer::WindowTracer(std::ostream & os, ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): static void ns3::WindowTracer::PrintHeader(std::ostream & os) [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_static=True)
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): void ns3::WindowTracer::OnWindowChange(std::string context, uint32_t oldValue, uint32_t newValue) [member function]
+    cls.add_method('OnWindowChange', 
+                   'void', 
+                   [param('std::string', 'context'), param('uint32_t', 'oldValue'), param('uint32_t', 'newValue')], 
+                   is_virtual=True)
+    return
+
 def register_Ns3AnnotatedTopologyReader_methods(root_module, cls):
     ## annotated-topology-reader.h (module 'NDNabstraction'): ns3::AnnotatedTopologyReader::AnnotatedTopologyReader(std::string const & path="", double scale=1.0e+0) [constructor]
     cls.add_constructor([param('std::string const &', 'path', default_value='""'), param('double', 'scale', default_value='1.0e+0')])
@@ -3436,6 +4224,11 @@
                    'ns3::NodeContainer', 
                    [], 
                    is_const=True)
+    ## annotated-topology-reader.h (module 'NDNabstraction'): std::list<ns3::TopologyReader::Link, std::allocator<ns3::TopologyReader::Link> > const & ns3::AnnotatedTopologyReader::GetLinks() const [member function]
+    cls.add_method('GetLinks', 
+                   'std::list< ns3::TopologyReader::Link > const &', 
+                   [], 
+                   is_const=True)
     ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::AssignIpv4Addresses(ns3::Ipv4Address base) [member function]
     cls.add_method('AssignIpv4Addresses', 
                    'void', 
@@ -3448,6 +4241,15 @@
     cls.add_method('SetMobilityModel', 
                    'void', 
                    [param('std::string const &', 'model')])
+    ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::ApplyOspfMetric() [member function]
+    cls.add_method('ApplyOspfMetric', 
+                   'void', 
+                   [])
+    ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::SavePositions(std::string const & file) const [member function]
+    cls.add_method('SavePositions', 
+                   'void', 
+                   [param('std::string const &', 'file')], 
+                   is_const=True)
     ## annotated-topology-reader.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::AnnotatedTopologyReader::CreateNode(std::string const name) [member function]
     cls.add_method('CreateNode', 
                    'ns3::Ptr< ns3::Node >', 
@@ -3463,11 +4265,6 @@
                    'void', 
                    [], 
                    visibility='protected')
-    ## annotated-topology-reader.h (module 'NDNabstraction'): void ns3::AnnotatedTopologyReader::ApplyOspfMetric() [member function]
-    cls.add_method('ApplyOspfMetric', 
-                   'void', 
-                   [], 
-                   visibility='protected')
     return
 
 def register_Ns3Application_methods(root_module, cls):
@@ -3610,6 +4407,46 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
+def register_Ns3BatchesChecker_methods(root_module, cls):
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesChecker::BatchesChecker() [constructor]
+    cls.add_constructor([])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesChecker::BatchesChecker(ns3::BatchesChecker const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BatchesChecker const &', 'arg0')])
+    return
+
+def register_Ns3BatchesValue_methods(root_module, cls):
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue::BatchesValue() [constructor]
+    cls.add_constructor([])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue::BatchesValue(ns3::BatchesValue const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::BatchesValue const &', 'arg0')])
+    ## batches.h (module 'NDNabstraction'): ns3::BatchesValue::BatchesValue(ns3::Batches const & value) [constructor]
+    cls.add_constructor([param('ns3::Batches const &', 'value')])
+    ## batches.h (module 'NDNabstraction'): ns3::Ptr<ns3::AttributeValue> ns3::BatchesValue::Copy() const [member function]
+    cls.add_method('Copy', 
+                   'ns3::Ptr< ns3::AttributeValue >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## batches.h (module 'NDNabstraction'): bool ns3::BatchesValue::DeserializeFromString(std::string value, ns3::Ptr<ns3::AttributeChecker const> checker) [member function]
+    cls.add_method('DeserializeFromString', 
+                   'bool', 
+                   [param('std::string', 'value'), param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_virtual=True)
+    ## batches.h (module 'NDNabstraction'): ns3::Batches ns3::BatchesValue::Get() const [member function]
+    cls.add_method('Get', 
+                   'ns3::Batches', 
+                   [], 
+                   is_const=True)
+    ## batches.h (module 'NDNabstraction'): std::string ns3::BatchesValue::SerializeToString(ns3::Ptr<ns3::AttributeChecker const> checker) const [member function]
+    cls.add_method('SerializeToString', 
+                   'std::string', 
+                   [param('ns3::Ptr< ns3::AttributeChecker const >', 'checker')], 
+                   is_const=True, is_virtual=True)
+    ## batches.h (module 'NDNabstraction'): void ns3::BatchesValue::Set(ns3::Batches const & value) [member function]
+    cls.add_method('Set', 
+                   'void', 
+                   [param('ns3::Batches const &', 'value')])
+    return
+
 def register_Ns3CallbackChecker_methods(root_module, cls):
     ## callback.h (module 'core'): ns3::CallbackChecker::CallbackChecker() [constructor]
     cls.add_constructor([])
@@ -3714,20 +4551,20 @@
                    'ns3::TypeId', 
                    [], 
                    is_static=True)
-    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnContentObject(ns3::Ptr<const ns3::CcnxContentObjectHeader> const & contentObject, ns3::Ptr<const ns3::Packet> const & payload) [member function]
+    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnContentObject(ns3::Ptr<const ns3::CcnxContentObjectHeader> const & contentObject, ns3::Ptr<ns3::Packet> payload) [member function]
     cls.add_method('OnContentObject', 
                    'void', 
-                   [param('ns3::Ptr< ns3::CcnxContentObjectHeader const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet const > const &', 'payload')], 
+                   [param('ns3::Ptr< ns3::CcnxContentObjectHeader const > const &', 'contentObject'), param('ns3::Ptr< ns3::Packet >', 'payload')], 
                    is_virtual=True)
-    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnInterest(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest) [member function]
+    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnInterest(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnInterest', 
                    'void', 
-                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest')], 
+                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
-    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnNack(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest) [member function]
+    ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::OnNack(ns3::Ptr<const ns3::CcnxInterestHeader> const & interest, ns3::Ptr<ns3::Packet> packet) [member function]
     cls.add_method('OnNack', 
                    'void', 
-                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest')], 
+                   [param('ns3::Ptr< ns3::CcnxInterestHeader const > const &', 'interest'), param('ns3::Ptr< ns3::Packet >', 'packet')], 
                    is_virtual=True)
     ## ccnx-app.h (module 'NDNabstraction'): void ns3::CcnxApp::RegisterProtocolHandler(ns3::Callback<bool, ns3::Ptr<ns3::Packet const> const&, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty> handler) [member function]
     cls.add_method('RegisterProtocolHandler', 
@@ -3799,6 +4636,17 @@
                    is_pure_virtual=True, is_const=True, is_virtual=True)
     return
 
+def register_Ns3CcnxConsumerWindowTracer_methods(root_module, cls):
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::CcnxConsumerWindowTracer::CcnxConsumerWindowTracer(ns3::CcnxConsumerWindowTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CcnxConsumerWindowTracer const &', 'arg0')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::CcnxConsumerWindowTracer::CcnxConsumerWindowTracer(std::ostream & os, ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): void ns3::CcnxConsumerWindowTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3CcnxContentObjectHeader_methods(root_module, cls):
     ## ccnx-content-object-header.h (module 'NDNabstraction'): ns3::CcnxContentObjectHeader::CcnxContentObjectHeader(ns3::CcnxContentObjectHeader const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::CcnxContentObjectHeader const &', 'arg0')])
@@ -3893,6 +4741,16 @@
                    'uint32_t', 
                    [], 
                    is_const=True)
+    ## ccnx-face.h (module 'NDNabstraction'): uint16_t ns3::CcnxFace::GetMetric() const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ccnx-face.h (module 'NDNabstraction'): ns3::Ptr<ns3::Node> ns3::CcnxFace::GetNode() const [member function]
+    cls.add_method('GetNode', 
+                   'ns3::Ptr< ns3::Node >', 
+                   [], 
+                   is_const=True)
     ## ccnx-face.h (module 'NDNabstraction'): static ns3::TypeId ns3::CcnxFace::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
                    'ns3::TypeId', 
@@ -3941,6 +4799,11 @@
     cls.add_method('SetId', 
                    'void', 
                    [param('uint32_t', 'id')])
+    ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::SetMetric(uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint16_t', 'metric')], 
+                   is_virtual=True)
     ## ccnx-face.h (module 'NDNabstraction'): void ns3::CcnxFace::SetUp(bool up=true) [member function]
     cls.add_method('SetUp', 
                    'void', 
@@ -4304,6 +5167,11 @@
                    'std::list< std::string > const &', 
                    [], 
                    is_const=True)
+    ## ccnx-name-components.h (module 'NDNabstraction'): std::string ns3::CcnxNameComponents::GetLastComponent() const [member function]
+    cls.add_method('GetLastComponent', 
+                   'std::string', 
+                   [], 
+                   is_const=True)
     ## ccnx-name-components.h (module 'NDNabstraction'): std::list<boost::reference_wrapper<std::string const>, std::allocator<boost::reference_wrapper<std::string const> > > ns3::CcnxNameComponents::GetSubComponents(size_t num) const [member function]
     cls.add_method('GetSubComponents', 
                    'std::list< boost::reference_wrapper< std::string const > >', 
@@ -4361,6 +5229,27 @@
                    [param('ns3::CcnxNameComponents const &', 'value')])
     return
 
+def register_Ns3CcnxPathWeightTracer_methods(root_module, cls):
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): ns3::CcnxPathWeightTracer::CcnxPathWeightTracer(ns3::CcnxPathWeightTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::CcnxPathWeightTracer const &', 'arg0')])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): ns3::CcnxPathWeightTracer::CcnxPathWeightTracer(std::ostream & os, ns3::Ptr<ns3::Node> node) [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node')])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): void ns3::CcnxPathWeightTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): static void ns3::CcnxPathWeightTracer::PrintHeader(std::ostream & os) [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_static=True)
+    ## ccnx-path-weight-tracer.h (module 'NDNabstraction'): void ns3::CcnxPathWeightTracer::InLocalFace(std::string context, ns3::Ptr<ns3::Node> src, ns3::Ptr<ns3::Node> dst, uint32_t seqno, uint32_t weight) [member function]
+    cls.add_method('InLocalFace', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ptr< ns3::Node >', 'src'), param('ns3::Ptr< ns3::Node >', 'dst'), param('uint32_t', 'seqno'), param('uint32_t', 'weight')], 
+                   is_virtual=True)
+    return
+
 def register_Ns3EmptyAttributeValue_methods(root_module, cls):
     ## attribute.h (module 'core'): ns3::EmptyAttributeValue::EmptyAttributeValue(ns3::EmptyAttributeValue const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::EmptyAttributeValue const &', 'arg0')])
@@ -4440,6 +5329,160 @@
                    [param('int64_t const &', 'value')])
     return
 
+def register_Ns3Ipv4_methods(root_module, cls):
+    ## ipv4.h (module 'internet'): ns3::Ipv4::Ipv4(ns3::Ipv4 const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4 const &', 'arg0')])
+    ## ipv4.h (module 'internet'): ns3::Ipv4::Ipv4() [constructor]
+    cls.add_constructor([])
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::AddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('AddAddress', 
+                   'bool', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint32_t ns3::Ipv4::AddInterface(ns3::Ptr<ns3::NetDevice> device) [member function]
+    cls.add_method('AddInterface', 
+                   'uint32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ipv4InterfaceAddress ns3::Ipv4::GetAddress(uint32_t interface, uint32_t addressIndex) const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv4InterfaceAddress', 
+                   [param('uint32_t', 'interface'), param('uint32_t', 'addressIndex')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): int32_t ns3::Ipv4::GetInterfaceForAddress(ns3::Ipv4Address address) const [member function]
+    cls.add_method('GetInterfaceForAddress', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'address')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): int32_t ns3::Ipv4::GetInterfaceForDevice(ns3::Ptr<const ns3::NetDevice> device) const [member function]
+    cls.add_method('GetInterfaceForDevice', 
+                   'int32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): int32_t ns3::Ipv4::GetInterfaceForPrefix(ns3::Ipv4Address address, ns3::Ipv4Mask mask) const [member function]
+    cls.add_method('GetInterfaceForPrefix', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'address'), param('ns3::Ipv4Mask', 'mask')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint16_t ns3::Ipv4::GetMetric(uint32_t interface) const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint16_t ns3::Ipv4::GetMtu(uint32_t interface) const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint32_t ns3::Ipv4::GetNAddresses(uint32_t interface) const [member function]
+    cls.add_method('GetNAddresses', 
+                   'uint32_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): uint32_t ns3::Ipv4::GetNInterfaces() const [member function]
+    cls.add_method('GetNInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ptr<ns3::NetDevice> ns3::Ipv4::GetNetDevice(uint32_t interface) [member function]
+    cls.add_method('GetNetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4::GetRoutingProtocol() const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): static ns3::TypeId ns3::Ipv4::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::Insert(ns3::Ptr<ns3::Ipv4L4Protocol> protocol) [member function]
+    cls.add_method('Insert', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4L4Protocol >', 'protocol')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::IsDestinationAddress(ns3::Ipv4Address address, uint32_t iif) const [member function]
+    cls.add_method('IsDestinationAddress', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address'), param('uint32_t', 'iif')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::IsForwarding(uint32_t interface) const [member function]
+    cls.add_method('IsForwarding', 
+                   'bool', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::IsUp(uint32_t interface) const [member function]
+    cls.add_method('IsUp', 
+                   'bool', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::RemoveAddress(uint32_t interface, uint32_t addressIndex) [member function]
+    cls.add_method('RemoveAddress', 
+                   'bool', 
+                   [param('uint32_t', 'interface'), param('uint32_t', 'addressIndex')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4::SelectSourceAddress(ns3::Ptr<const ns3::NetDevice> device, ns3::Ipv4Address dst, ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e scope) [member function]
+    cls.add_method('SelectSourceAddress', 
+                   'ns3::Ipv4Address', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device'), param('ns3::Ipv4Address', 'dst'), param('ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 'scope')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::Send(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Address source, ns3::Ipv4Address destination, uint8_t protocol, ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('Send', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'destination'), param('uint8_t', 'protocol'), param('ns3::Ptr< ns3::Ipv4Route >', 'route')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetDown(uint32_t interface) [member function]
+    cls.add_method('SetDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetForwarding(uint32_t interface, bool val) [member function]
+    cls.add_method('SetForwarding', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('bool', 'val')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetMetric(uint32_t interface, uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('uint16_t', 'metric')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol) [member function]
+    cls.add_method('SetRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetUp(uint32_t interface) [member function]
+    cls.add_method('SetUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4.h (module 'internet'): ns3::Ipv4::IF_ANY [variable]
+    cls.add_static_attribute('IF_ANY', 'uint32_t const', is_const=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::GetIpForward() const [member function]
+    cls.add_method('GetIpForward', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    ## ipv4.h (module 'internet'): bool ns3::Ipv4::GetWeakEsModel() const [member function]
+    cls.add_method('GetWeakEsModel', 
+                   'bool', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, visibility='private', is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetIpForward(bool forward) [member function]
+    cls.add_method('SetIpForward', 
+                   'void', 
+                   [param('bool', 'forward')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    ## ipv4.h (module 'internet'): void ns3::Ipv4::SetWeakEsModel(bool model) [member function]
+    cls.add_method('SetWeakEsModel', 
+                   'void', 
+                   [param('bool', 'model')], 
+                   is_pure_virtual=True, visibility='private', is_virtual=True)
+    return
+
 def register_Ns3Ipv4AddressChecker_methods(root_module, cls):
     ## ipv4-address.h (module 'network'): ns3::Ipv4AddressChecker::Ipv4AddressChecker() [constructor]
     cls.add_constructor([])
@@ -4480,6 +5523,312 @@
                    [param('ns3::Ipv4Address const &', 'value')])
     return
 
+def register_Ns3Ipv4AppTracer_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): ns3::Ipv4AppTracer::Ipv4AppTracer(ns3::Ipv4AppTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4AppTracer const &', 'arg0')])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): ns3::Ipv4AppTracer::Ipv4AppTracer(ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::PrintHeader(std::ostream & os) const [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Rx(std::string context, ns3::Ipv4Header const & arg1, ns3::Ptr<const ns3::Packet> arg2, uint32_t arg3) [member function]
+    cls.add_method('Rx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ipv4Header const &', 'arg1'), param('ns3::Ptr< ns3::Packet const >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-app-tracer.h (module 'NDNabstraction'): void ns3::Ipv4AppTracer::Tx(std::string context, ns3::Ipv4Header const & arg1, ns3::Ptr<const ns3::Packet> arg2, uint32_t arg3) [member function]
+    cls.add_method('Tx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ipv4Header const &', 'arg1'), param('ns3::Ptr< ns3::Packet const >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4L3Protocol_methods(root_module, cls):
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol::Ipv4L3Protocol() [constructor]
+    cls.add_constructor([])
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::AddAddress(uint32_t i, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('AddAddress', 
+                   'bool', 
+                   [param('uint32_t', 'i'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint32_t ns3::Ipv4L3Protocol::AddInterface(ns3::Ptr<ns3::NetDevice> device) [member function]
+    cls.add_method('AddInterface', 
+                   'uint32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Socket> ns3::Ipv4L3Protocol::CreateRawSocket() [member function]
+    cls.add_method('CreateRawSocket', 
+                   'ns3::Ptr< ns3::Socket >', 
+                   [])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::DeleteRawSocket(ns3::Ptr<ns3::Socket> socket) [member function]
+    cls.add_method('DeleteRawSocket', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Socket >', 'socket')])
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4InterfaceAddress ns3::Ipv4L3Protocol::GetAddress(uint32_t interfaceIndex, uint32_t addressIndex) const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Ipv4InterfaceAddress', 
+                   [param('uint32_t', 'interfaceIndex'), param('uint32_t', 'addressIndex')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4Interface> ns3::Ipv4L3Protocol::GetInterface(uint32_t i) const [member function]
+    cls.add_method('GetInterface', 
+                   'ns3::Ptr< ns3::Ipv4Interface >', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True)
+    ## ipv4-l3-protocol.h (module 'internet'): int32_t ns3::Ipv4L3Protocol::GetInterfaceForAddress(ns3::Ipv4Address addr) const [member function]
+    cls.add_method('GetInterfaceForAddress', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'addr')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): int32_t ns3::Ipv4L3Protocol::GetInterfaceForDevice(ns3::Ptr<const ns3::NetDevice> device) const [member function]
+    cls.add_method('GetInterfaceForDevice', 
+                   'int32_t', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): int32_t ns3::Ipv4L3Protocol::GetInterfaceForPrefix(ns3::Ipv4Address addr, ns3::Ipv4Mask mask) const [member function]
+    cls.add_method('GetInterfaceForPrefix', 
+                   'int32_t', 
+                   [param('ns3::Ipv4Address', 'addr'), param('ns3::Ipv4Mask', 'mask')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint16_t ns3::Ipv4L3Protocol::GetMetric(uint32_t i) const [member function]
+    cls.add_method('GetMetric', 
+                   'uint16_t', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint16_t ns3::Ipv4L3Protocol::GetMtu(uint32_t i) const [member function]
+    cls.add_method('GetMtu', 
+                   'uint16_t', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint32_t ns3::Ipv4L3Protocol::GetNAddresses(uint32_t interface) const [member function]
+    cls.add_method('GetNAddresses', 
+                   'uint32_t', 
+                   [param('uint32_t', 'interface')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): uint32_t ns3::Ipv4L3Protocol::GetNInterfaces() const [member function]
+    cls.add_method('GetNInterfaces', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::NetDevice> ns3::Ipv4L3Protocol::GetNetDevice(uint32_t i) [member function]
+    cls.add_method('GetNetDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [param('uint32_t', 'i')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4L4Protocol> ns3::Ipv4L3Protocol::GetProtocol(int protocolNumber) const [member function]
+    cls.add_method('GetProtocol', 
+                   'ns3::Ptr< ns3::Ipv4L4Protocol >', 
+                   [param('int', 'protocolNumber')], 
+                   is_const=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4RoutingProtocol> ns3::Ipv4L3Protocol::GetRoutingProtocol() const [member function]
+    cls.add_method('GetRoutingProtocol', 
+                   'ns3::Ptr< ns3::Ipv4RoutingProtocol >', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): static ns3::TypeId ns3::Ipv4L3Protocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Insert(ns3::Ptr<ns3::Ipv4L4Protocol> protocol) [member function]
+    cls.add_method('Insert', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4L4Protocol >', 'protocol')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::IsDestinationAddress(ns3::Ipv4Address address, uint32_t iif) const [member function]
+    cls.add_method('IsDestinationAddress', 
+                   'bool', 
+                   [param('ns3::Ipv4Address', 'address'), param('uint32_t', 'iif')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::IsForwarding(uint32_t i) const [member function]
+    cls.add_method('IsForwarding', 
+                   'bool', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::IsUp(uint32_t i) const [member function]
+    cls.add_method('IsUp', 
+                   'bool', 
+                   [param('uint32_t', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Receive(ns3::Ptr<ns3::NetDevice> device, ns3::Ptr<const ns3::Packet> p, uint16_t protocol, ns3::Address const & from, ns3::Address const & to, ns3::NetDevice::PacketType packetType) [member function]
+    cls.add_method('Receive', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'device'), param('ns3::Ptr< ns3::Packet const >', 'p'), param('uint16_t', 'protocol'), param('ns3::Address const &', 'from'), param('ns3::Address const &', 'to'), param('ns3::NetDevice::PacketType', 'packetType')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Remove(ns3::Ptr<ns3::Ipv4L4Protocol> protocol) [member function]
+    cls.add_method('Remove', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4L4Protocol >', 'protocol')])
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::RemoveAddress(uint32_t interfaceIndex, uint32_t addressIndex) [member function]
+    cls.add_method('RemoveAddress', 
+                   'bool', 
+                   [param('uint32_t', 'interfaceIndex'), param('uint32_t', 'addressIndex')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4L3Protocol::SelectSourceAddress(ns3::Ptr<const ns3::NetDevice> device, ns3::Ipv4Address dst, ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e scope) [member function]
+    cls.add_method('SelectSourceAddress', 
+                   'ns3::Ipv4Address', 
+                   [param('ns3::Ptr< ns3::NetDevice const >', 'device'), param('ns3::Ipv4Address', 'dst'), param('ns3::Ipv4InterfaceAddress::InterfaceAddressScope_e', 'scope')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::Send(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Address source, ns3::Ipv4Address destination, uint8_t protocol, ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('Send', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Address', 'source'), param('ns3::Ipv4Address', 'destination'), param('uint8_t', 'protocol'), param('ns3::Ptr< ns3::Ipv4Route >', 'route')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SendWithHeader(ns3::Ptr<ns3::Packet> packet, ns3::Ipv4Header ipHeader, ns3::Ptr<ns3::Ipv4Route> route) [member function]
+    cls.add_method('SendWithHeader', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Packet >', 'packet'), param('ns3::Ipv4Header', 'ipHeader'), param('ns3::Ptr< ns3::Ipv4Route >', 'route')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetDefaultTtl(uint8_t ttl) [member function]
+    cls.add_method('SetDefaultTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetDown(uint32_t i) [member function]
+    cls.add_method('SetDown', 
+                   'void', 
+                   [param('uint32_t', 'i')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetForwarding(uint32_t i, bool val) [member function]
+    cls.add_method('SetForwarding', 
+                   'void', 
+                   [param('uint32_t', 'i'), param('bool', 'val')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetMetric(uint32_t i, uint16_t metric) [member function]
+    cls.add_method('SetMetric', 
+                   'void', 
+                   [param('uint32_t', 'i'), param('uint16_t', 'metric')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetNode(ns3::Ptr<ns3::Node> node) [member function]
+    cls.add_method('SetNode', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Node >', 'node')])
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetRoutingProtocol(ns3::Ptr<ns3::Ipv4RoutingProtocol> routingProtocol) [member function]
+    cls.add_method('SetRoutingProtocol', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4RoutingProtocol >', 'routingProtocol')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetUp(uint32_t i) [member function]
+    cls.add_method('SetUp', 
+                   'void', 
+                   [param('uint32_t', 'i')], 
+                   is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): ns3::Ipv4L3Protocol::PROT_NUMBER [variable]
+    cls.add_static_attribute('PROT_NUMBER', 'uint16_t const', is_const=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::NotifyNewAggregate() [member function]
+    cls.add_method('NotifyNewAggregate', 
+                   'void', 
+                   [], 
+                   visibility='protected', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::GetIpForward() const [member function]
+    cls.add_method('GetIpForward', 
+                   'bool', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): bool ns3::Ipv4L3Protocol::GetWeakEsModel() const [member function]
+    cls.add_method('GetWeakEsModel', 
+                   'bool', 
+                   [], 
+                   is_const=True, visibility='private', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetIpForward(bool forward) [member function]
+    cls.add_method('SetIpForward', 
+                   'void', 
+                   [param('bool', 'forward')], 
+                   visibility='private', is_virtual=True)
+    ## ipv4-l3-protocol.h (module 'internet'): void ns3::Ipv4L3Protocol::SetWeakEsModel(bool model) [member function]
+    cls.add_method('SetWeakEsModel', 
+                   'void', 
+                   [param('bool', 'model')], 
+                   visibility='private', is_virtual=True)
+    return
+
+def register_Ns3Ipv4L3Tracer_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): ns3::Ipv4L3Tracer::Ipv4L3Tracer(ns3::Ipv4L3Tracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4L3Tracer const &', 'arg0')])
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): ns3::Ipv4L3Tracer::Ipv4L3Tracer(ns3::Ptr<ns3::Node> node) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::Node >', 'node')])
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Drop(std::string context, ns3::Ipv4Header const & arg1, ns3::Ptr<const ns3::Packet> arg2, ns3::Ipv4L3Protocol::DropReason arg3, ns3::Ptr<ns3::Ipv4> arg4, uint32_t arg5) [member function]
+    cls.add_method('Drop', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ipv4Header const &', 'arg1'), param('ns3::Ptr< ns3::Packet const >', 'arg2'), param('ns3::Ipv4L3Protocol::DropReason', 'arg3'), param('ns3::Ptr< ns3::Ipv4 >', 'arg4'), param('uint32_t', 'arg5')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::PrintHeader(std::ostream & os) const [member function]
+    cls.add_method('PrintHeader', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Rx(std::string context, ns3::Ptr<const ns3::Packet> arg1, ns3::Ptr<ns3::Ipv4> arg2, uint32_t arg3) [member function]
+    cls.add_method('Rx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('ns3::Ptr< ns3::Ipv4 >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-l3-tracer.h (module 'NDNabstraction'): void ns3::Ipv4L3Tracer::Tx(std::string context, ns3::Ptr<const ns3::Packet> arg1, ns3::Ptr<ns3::Ipv4> arg2, uint32_t arg3) [member function]
+    cls.add_method('Tx', 
+                   'void', 
+                   [param('std::string', 'context'), param('ns3::Ptr< ns3::Packet const >', 'arg1'), param('ns3::Ptr< ns3::Ipv4 >', 'arg2'), param('uint32_t', 'arg3')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
+def register_Ns3Ipv4L4Protocol_methods(root_module, cls):
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::Ipv4L4Protocol() [constructor]
+    cls.add_constructor([])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::Ipv4L4Protocol(ns3::Ipv4L4Protocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4L4Protocol const &', 'arg0')])
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Callback<void,ns3::Ptr<ns3::Packet>,ns3::Ipv4Address,ns3::Ipv4Address,unsigned char,ns3::Ptr<ns3::Ipv4Route>,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ns3::Ipv4L4Protocol::GetDownTarget() const [member function]
+    cls.add_method('GetDownTarget', 
+                   'ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Ipv4Address, ns3::Ipv4Address, unsigned char, ns3::Ptr< ns3::Ipv4Route >, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): int ns3::Ipv4L4Protocol::GetProtocolNumber() const [member function]
+    cls.add_method('GetProtocolNumber', 
+                   'int', 
+                   [], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): static ns3::TypeId ns3::Ipv4L4Protocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-l4-protocol.h (module 'internet'): ns3::Ipv4L4Protocol::RxStatus ns3::Ipv4L4Protocol::Receive(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::Ipv4Interface> incomingInterface) [member function]
+    cls.add_method('Receive', 
+                   'ns3::Ipv4L4Protocol::RxStatus', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::Ipv4Interface >', 'incomingInterface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): void ns3::Ipv4L4Protocol::ReceiveIcmp(ns3::Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo, ns3::Ipv4Address payloadSource, ns3::Ipv4Address payloadDestination, uint8_t const * payload) [member function]
+    cls.add_method('ReceiveIcmp', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'icmpSource'), param('uint8_t', 'icmpTtl'), param('uint8_t', 'icmpType'), param('uint8_t', 'icmpCode'), param('uint32_t', 'icmpInfo'), param('ns3::Ipv4Address', 'payloadSource'), param('ns3::Ipv4Address', 'payloadDestination'), param('uint8_t const *', 'payload')], 
+                   is_virtual=True)
+    ## ipv4-l4-protocol.h (module 'internet'): void ns3::Ipv4L4Protocol::SetDownTarget(ns3::Callback<void,ns3::Ptr<ns3::Packet>,ns3::Ipv4Address,ns3::Ipv4Address,unsigned char,ns3::Ptr<ns3::Ipv4Route>,ns3::empty,ns3::empty,ns3::empty,ns3::empty> cb) [member function]
+    cls.add_method('SetDownTarget', 
+                   'void', 
+                   [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::Ipv4Address, ns3::Ipv4Address, unsigned char, ns3::Ptr< ns3::Ipv4Route >, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'cb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
 def register_Ns3Ipv4MaskChecker_methods(root_module, cls):
     ## ipv4-address.h (module 'network'): ns3::Ipv4MaskChecker::Ipv4MaskChecker() [constructor]
     cls.add_constructor([])
@@ -4520,6 +5869,154 @@
                    [param('ns3::Ipv4Mask const &', 'value')])
     return
 
+def register_Ns3Ipv4MulticastRoute_methods(root_module, cls):
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::Ipv4MulticastRoute(ns3::Ipv4MulticastRoute const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4MulticastRoute const &', 'arg0')])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::Ipv4MulticastRoute() [constructor]
+    cls.add_constructor([])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4MulticastRoute::GetGroup() const [member function]
+    cls.add_method('GetGroup', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4MulticastRoute::GetOrigin() const [member function]
+    cls.add_method('GetOrigin', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): uint32_t ns3::Ipv4MulticastRoute::GetOutputTtl(uint32_t oif) [member function]
+    cls.add_method('GetOutputTtl', 
+                   'uint32_t', 
+                   [param('uint32_t', 'oif')], 
+                   deprecated=True)
+    ## ipv4-route.h (module 'internet'): std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> > > ns3::Ipv4MulticastRoute::GetOutputTtlMap() const [member function]
+    cls.add_method('GetOutputTtlMap', 
+                   'std::map< unsigned int, unsigned int >', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): uint32_t ns3::Ipv4MulticastRoute::GetParent() const [member function]
+    cls.add_method('GetParent', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetGroup(ns3::Ipv4Address const group) [member function]
+    cls.add_method('SetGroup', 
+                   'void', 
+                   [param('ns3::Ipv4Address const', 'group')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetOrigin(ns3::Ipv4Address const origin) [member function]
+    cls.add_method('SetOrigin', 
+                   'void', 
+                   [param('ns3::Ipv4Address const', 'origin')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetOutputTtl(uint32_t oif, uint32_t ttl) [member function]
+    cls.add_method('SetOutputTtl', 
+                   'void', 
+                   [param('uint32_t', 'oif'), param('uint32_t', 'ttl')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4MulticastRoute::SetParent(uint32_t iif) [member function]
+    cls.add_method('SetParent', 
+                   'void', 
+                   [param('uint32_t', 'iif')])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::MAX_INTERFACES [variable]
+    cls.add_static_attribute('MAX_INTERFACES', 'uint32_t const', is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4MulticastRoute::MAX_TTL [variable]
+    cls.add_static_attribute('MAX_TTL', 'uint32_t const', is_const=True)
+    return
+
+def register_Ns3Ipv4Route_methods(root_module, cls):
+    cls.add_output_stream_operator()
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Route::Ipv4Route(ns3::Ipv4Route const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4Route const &', 'arg0')])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Route::Ipv4Route() [constructor]
+    cls.add_constructor([])
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Route::GetDestination() const [member function]
+    cls.add_method('GetDestination', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Route::GetGateway() const [member function]
+    cls.add_method('GetGateway', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ptr<ns3::NetDevice> ns3::Ipv4Route::GetOutputDevice() const [member function]
+    cls.add_method('GetOutputDevice', 
+                   'ns3::Ptr< ns3::NetDevice >', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): ns3::Ipv4Address ns3::Ipv4Route::GetSource() const [member function]
+    cls.add_method('GetSource', 
+                   'ns3::Ipv4Address', 
+                   [], 
+                   is_const=True)
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetDestination(ns3::Ipv4Address dest) [member function]
+    cls.add_method('SetDestination', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'dest')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetGateway(ns3::Ipv4Address gw) [member function]
+    cls.add_method('SetGateway', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'gw')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetOutputDevice(ns3::Ptr<ns3::NetDevice> outputDevice) [member function]
+    cls.add_method('SetOutputDevice', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::NetDevice >', 'outputDevice')])
+    ## ipv4-route.h (module 'internet'): void ns3::Ipv4Route::SetSource(ns3::Ipv4Address src) [member function]
+    cls.add_method('SetSource', 
+                   'void', 
+                   [param('ns3::Ipv4Address', 'src')])
+    return
+
+def register_Ns3Ipv4RoutingProtocol_methods(root_module, cls):
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ipv4RoutingProtocol::Ipv4RoutingProtocol() [constructor]
+    cls.add_constructor([])
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ipv4RoutingProtocol::Ipv4RoutingProtocol(ns3::Ipv4RoutingProtocol const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::Ipv4RoutingProtocol const &', 'arg0')])
+    ## ipv4-routing-protocol.h (module 'internet'): static ns3::TypeId ns3::Ipv4RoutingProtocol::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyAddAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyAddAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyInterfaceDown(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceDown', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyInterfaceUp(uint32_t interface) [member function]
+    cls.add_method('NotifyInterfaceUp', 
+                   'void', 
+                   [param('uint32_t', 'interface')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::NotifyRemoveAddress(uint32_t interface, ns3::Ipv4InterfaceAddress address) [member function]
+    cls.add_method('NotifyRemoveAddress', 
+                   'void', 
+                   [param('uint32_t', 'interface'), param('ns3::Ipv4InterfaceAddress', 'address')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::PrintRoutingTable(ns3::Ptr<ns3::OutputStreamWrapper> stream) const [member function]
+    cls.add_method('PrintRoutingTable', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::OutputStreamWrapper >', 'stream')], 
+                   is_pure_virtual=True, is_const=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): bool ns3::Ipv4RoutingProtocol::RouteInput(ns3::Ptr<const ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<const ns3::NetDevice> idev, ns3::Callback<void,ns3::Ptr<ns3::Ipv4Route>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ucb, ns3::Callback<void,ns3::Ptr<ns3::Ipv4MulticastRoute>,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> mcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,unsigned int,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> lcb, ns3::Callback<void,ns3::Ptr<const ns3::Packet>,const ns3::Ipv4Header&,ns3::Socket::SocketErrno,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty,ns3::empty> ecb) [member function]
+    cls.add_method('RouteInput', 
+                   'bool', 
+                   [param('ns3::Ptr< ns3::Packet const >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice const >', 'idev'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4Route >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ucb'), param('ns3::Callback< void, ns3::Ptr< ns3::Ipv4MulticastRoute >, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'mcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, unsigned int, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'lcb'), param('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::Ipv4Header const &, ns3::Socket::SocketErrno, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ecb')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): ns3::Ptr<ns3::Ipv4Route> ns3::Ipv4RoutingProtocol::RouteOutput(ns3::Ptr<ns3::Packet> p, ns3::Ipv4Header const & header, ns3::Ptr<ns3::NetDevice> oif, ns3::Socket::SocketErrno & sockerr) [member function]
+    cls.add_method('RouteOutput', 
+                   'ns3::Ptr< ns3::Ipv4Route >', 
+                   [param('ns3::Ptr< ns3::Packet >', 'p'), param('ns3::Ipv4Header const &', 'header'), param('ns3::Ptr< ns3::NetDevice >', 'oif'), param('ns3::Socket::SocketErrno &', 'sockerr')], 
+                   is_pure_virtual=True, is_virtual=True)
+    ## ipv4-routing-protocol.h (module 'internet'): void ns3::Ipv4RoutingProtocol::SetIpv4(ns3::Ptr<ns3::Ipv4> ipv4) [member function]
+    cls.add_method('SetIpv4', 
+                   'void', 
+                   [param('ns3::Ptr< ns3::Ipv4 >', 'ipv4')], 
+                   is_pure_virtual=True, is_virtual=True)
+    return
+
 def register_Ns3Ipv6AddressChecker_methods(root_module, cls):
     ## ipv6-address.h (module 'network'): ns3::Ipv6AddressChecker::Ipv6AddressChecker() [constructor]
     cls.add_constructor([])
@@ -4955,6 +6452,19 @@
                    [param('ns3::ObjectFactory const &', 'value')])
     return
 
+def register_Ns3OutputStreamWrapper_methods(root_module, cls):
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper::OutputStreamWrapper(ns3::OutputStreamWrapper const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::OutputStreamWrapper const &', 'arg0')])
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper::OutputStreamWrapper(std::string filename, std::_Ios_Openmode filemode) [constructor]
+    cls.add_constructor([param('std::string', 'filename'), param('std::_Ios_Openmode', 'filemode')])
+    ## output-stream-wrapper.h (module 'network'): ns3::OutputStreamWrapper::OutputStreamWrapper(std::ostream * os) [constructor]
+    cls.add_constructor([param('std::ostream *', 'os')])
+    ## output-stream-wrapper.h (module 'network'): std::ostream * ns3::OutputStreamWrapper::GetStream() [member function]
+    cls.add_method('GetStream', 
+                   'std::ostream *', 
+                   [])
+    return
+
 def register_Ns3Packet_methods(root_module, cls):
     cls.add_output_stream_operator()
     ## packet.h (module 'network'): ns3::Packet::Packet() [constructor]
@@ -4980,11 +6490,10 @@
     cls.add_method('AddHeader', 
                    'void', 
                    [param('ns3::Header const &', 'header')])
-    ## packet.h (module 'network'): void ns3::Packet::AddPacketTag(ns3::Tag const & tag) const [member function]
+    ## packet.h (module 'network'): void ns3::Packet::AddPacketTag(ns3::Ptr<const ns3::Tag> tag) [member function]
     cls.add_method('AddPacketTag', 
                    'void', 
-                   [param('ns3::Tag const &', 'tag')], 
-                   is_const=True)
+                   [param('ns3::Ptr< ns3::Tag const >', 'tag')])
     ## packet.h (module 'network'): void ns3::Packet::AddPaddingAtEnd(uint32_t size) [member function]
     cls.add_method('AddPaddingAtEnd', 
                    'void', 
@@ -5043,11 +6552,6 @@
                    'ns3::Ptr< ns3::NixVector >', 
                    [], 
                    is_const=True)
-    ## packet.h (module 'network'): ns3::PacketTagIterator ns3::Packet::GetPacketTagIterator() const [member function]
-    cls.add_method('GetPacketTagIterator', 
-                   'ns3::PacketTagIterator', 
-                   [], 
-                   is_const=True)
     ## packet.h (module 'network'): uint32_t ns3::Packet::GetSerializedSize() const [member function]
     cls.add_method('GetSerializedSize', 
                    'uint32_t', 
@@ -5073,10 +6577,10 @@
                    'uint32_t', 
                    [param('ns3::Header &', 'header')], 
                    is_const=True)
-    ## packet.h (module 'network'): bool ns3::Packet::PeekPacketTag(ns3::Tag & tag) const [member function]
+    ## packet.h (module 'network'): ns3::Ptr<const ns3::Tag> ns3::Packet::PeekPacketTag(ns3::TypeId tagType) const [member function]
     cls.add_method('PeekPacketTag', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')], 
+                   'ns3::Ptr< ns3::Tag const >', 
+                   [param('ns3::TypeId', 'tagType')], 
                    is_const=True)
     ## packet.h (module 'network'): uint32_t ns3::Packet::PeekTrailer(ns3::Trailer & trailer) [member function]
     cls.add_method('PeekTrailer', 
@@ -5117,10 +6621,10 @@
     cls.add_method('RemoveHeader', 
                    'uint32_t', 
                    [param('ns3::Header &', 'header')])
-    ## packet.h (module 'network'): bool ns3::Packet::RemovePacketTag(ns3::Tag & tag) [member function]
+    ## packet.h (module 'network'): ns3::Ptr<const ns3::Tag> ns3::Packet::RemovePacketTag(ns3::TypeId tagType) [member function]
     cls.add_method('RemovePacketTag', 
-                   'bool', 
-                   [param('ns3::Tag &', 'tag')])
+                   'ns3::Ptr< ns3::Tag const >', 
+                   [param('ns3::TypeId', 'tagType')])
     ## packet.h (module 'network'): uint32_t ns3::Packet::RemoveTrailer(ns3::Trailer & trailer) [member function]
     cls.add_method('RemoveTrailer', 
                    'uint32_t', 
@@ -5192,11 +6696,148 @@
     cls.add_method('Commit', 
                    'void', 
                    [])
-    ## rocketfuel-weights-reader.h (module 'NDNabstraction'): void ns3::RocketfuelWeightsReader::SavePositions(std::string const & file) const [member function]
-    cls.add_method('SavePositions', 
+    return
+
+def register_Ns3SocketAddressTag_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::SocketAddressTag::SocketAddressTag(ns3::SocketAddressTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SocketAddressTag const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::SocketAddressTag::SocketAddressTag() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
                    'void', 
-                   [param('std::string const &', 'file')], 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): ns3::Address ns3::SocketAddressTag::GetAddress() const [member function]
+    cls.add_method('GetAddress', 
+                   'ns3::Address', 
+                   [], 
                    is_const=True)
+    ## socket.h (module 'network'): ns3::TypeId ns3::SocketAddressTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::SocketAddressTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): static ns3::TypeId ns3::SocketAddressTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketAddressTag::SetAddress(ns3::Address addr) [member function]
+    cls.add_method('SetAddress', 
+                   'void', 
+                   [param('ns3::Address', 'addr')])
+    return
+
+def register_Ns3SocketIpTtlTag_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::SocketIpTtlTag::SocketIpTtlTag(ns3::SocketIpTtlTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SocketIpTtlTag const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::SocketIpTtlTag::SocketIpTtlTag() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): ns3::TypeId ns3::SocketIpTtlTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::SocketIpTtlTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint8_t ns3::SocketIpTtlTag::GetTtl() const [member function]
+    cls.add_method('GetTtl', 
+                   'uint8_t', 
+                   [], 
+                   is_const=True)
+    ## socket.h (module 'network'): static ns3::TypeId ns3::SocketIpTtlTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketIpTtlTag::SetTtl(uint8_t ttl) [member function]
+    cls.add_method('SetTtl', 
+                   'void', 
+                   [param('uint8_t', 'ttl')])
+    return
+
+def register_Ns3SocketSetDontFragmentTag_methods(root_module, cls):
+    ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag(ns3::SocketSetDontFragmentTag const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::SocketSetDontFragmentTag const &', 'arg0')])
+    ## socket.h (module 'network'): ns3::SocketSetDontFragmentTag::SocketSetDontFragmentTag() [constructor]
+    cls.add_constructor([])
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Deserialize(ns3::TagBuffer i) [member function]
+    cls.add_method('Deserialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Disable() [member function]
+    cls.add_method('Disable', 
+                   'void', 
+                   [])
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Enable() [member function]
+    cls.add_method('Enable', 
+                   'void', 
+                   [])
+    ## socket.h (module 'network'): ns3::TypeId ns3::SocketSetDontFragmentTag::GetInstanceTypeId() const [member function]
+    cls.add_method('GetInstanceTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): uint32_t ns3::SocketSetDontFragmentTag::GetSerializedSize() const [member function]
+    cls.add_method('GetSerializedSize', 
+                   'uint32_t', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): static ns3::TypeId ns3::SocketSetDontFragmentTag::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    ## socket.h (module 'network'): bool ns3::SocketSetDontFragmentTag::IsEnabled() const [member function]
+    cls.add_method('IsEnabled', 
+                   'bool', 
+                   [], 
+                   is_const=True)
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, is_virtual=True)
+    ## socket.h (module 'network'): void ns3::SocketSetDontFragmentTag::Serialize(ns3::TagBuffer i) const [member function]
+    cls.add_method('Serialize', 
+                   'void', 
+                   [param('ns3::TagBuffer', 'i')], 
+                   is_const=True, is_virtual=True)
     return
 
 def register_Ns3SpringMobilityModel_methods(root_module, cls):
@@ -5235,6 +6876,17 @@
                    visibility='private', is_virtual=True)
     return
 
+def register_Ns3TcpCongestionWindowTracer_methods(root_module, cls):
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::TcpCongestionWindowTracer::TcpCongestionWindowTracer(ns3::TcpCongestionWindowTracer const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::TcpCongestionWindowTracer const &', 'arg0')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): ns3::TcpCongestionWindowTracer::TcpCongestionWindowTracer(std::ostream & os, ns3::Ptr<ns3::Node> node, std::string const & appId="*") [constructor]
+    cls.add_constructor([param('std::ostream &', 'os'), param('ns3::Ptr< ns3::Node >', 'node'), param('std::string const &', 'appId', default_value='"*"')])
+    ## ccnx-consumer-window-tracer.h (module 'NDNabstraction'): void ns3::TcpCongestionWindowTracer::Connect() [member function]
+    cls.add_method('Connect', 
+                   'void', 
+                   [])
+    return
+
 def register_Ns3TimeChecker_methods(root_module, cls):
     ## nstime.h (module 'core'): ns3::TimeChecker::TimeChecker() [constructor]
     cls.add_constructor([])
@@ -5437,6 +7089,10 @@
 
 def register_functions(root_module):
     module = root_module
+    ## batches.h (module 'NDNabstraction'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeBatchesChecker() [free function]
+    module.add_function('MakeBatchesChecker', 
+                        'ns3::Ptr< ns3::AttributeChecker const >', 
+                        [])
     ## ccnx-name-components.h (module 'NDNabstraction'): extern ns3::Ptr<ns3::AttributeChecker const> ns3::MakeCcnxNameComponentsChecker() [free function]
     module.add_function('MakeCcnxNameComponentsChecker', 
                         'ns3::Ptr< ns3::AttributeChecker const >', 
diff --git a/examples/abilene-topology-backup.txt b/examples/abilene-topology-backup.txt
deleted file mode 100644
index f4f1d43..0000000
--- a/examples/abilene-topology-backup.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-12  30
-1   2   9920000 1   1   100 100
-2   1   9920000 1   1   100 100
-2   5   9920000 1176    1   100 100
-2   6   2480000 587 1   100 100
-2   12  9920000 846 1   100 100
-3   6   9920000 260 1   100 100
-3   9   9920000 700 1   100 100
-4   7   9920000 639 1   100 100
-4   10  9920000 1295 1   100 100
-4   11  9920000 2095    1   100 100
-5   2   9920000 1176    1   100 100
-5   7   9920000 902 1   100 100
-5   8   9920000 1893 1   100 100
-6   2   9920000 587 1   100 100
-6   3   2480000 260 1   100 100
-6   7   9920000 548 1   100 100
-7   4   9920000 639 1   100 100
-7   5   9920000 902 1   100 100
-7   6   9920000 548 1   100 100
-8   5   9920000 1893 1   100 100
-8   10  9920000 366 1   100 100
-9   3   9920000 700 1   100 100
-9   12  9920000 233 1   100 100
-10  4   9920000 1295 1   100 100
-10  8   9920000 366 1   100 100
-10  11  9920000 861 1   100 100
-11  4   9920000 2095 1   100 100
-11  10  9920000 861 1   100 100
-12  2   9920000 846 1   100 100
-12  9   9920000 233 1   100 100
diff --git a/examples/abilene-topology.cc b/examples/abilene-topology.cc
index 48ad6db..ff7f52d 100644
--- a/examples/abilene-topology.cc
+++ b/examples/abilene-topology.cc
@@ -117,7 +117,7 @@
   ccnxHelper.InstallAll ();
     
   NS_LOG_INFO ("Installing Applications");
-  CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+  CcnxAppHelper consumerHelper ("ns3::CcnxConsumerCbr");
   consumerHelper.SetPrefix ("/Data");
   consumerHelper.SetAttribute ("MeanRate", StringValue ("1Mbps"));
   ApplicationContainer consumers = consumerHelper.Install (Names::Find<Node> ("/abilene", "SNVAng"));
@@ -146,7 +146,7 @@
     }
 
   CcnxTraceHelper traceHelper;
-  traceHelper.EnableAggregateAppAll ("ns3::CcnxConsumer");
+  traceHelper.EnableAggregateAppAll ("ns3::CcnxConsumerCbr");
   traceHelper.EnableAggregateAppAll ("ns3::CcnxProducer");
   traceHelper.EnableAggregateL3All ();
   traceHelper.SetL3TraceFile ("trace-l3.log");
diff --git a/examples/annotated-topology-read-example.cc b/examples/annotated-topology-read-example.cc
index 450d8d1..d000d57 100644
--- a/examples/annotated-topology-read-example.cc
+++ b/examples/annotated-topology-read-example.cc
@@ -93,7 +93,7 @@
   Ptr<CcnxFaceContainer> cf = ccnx.Install (nodes);
      
   NS_LOG_INFO ("Installing Applications");
-  CcnxAppHelper helper ("ns3::CcnxConsumer");
+  CcnxAppHelper helper ("ns3::CcnxConsumerCbr");
   helper.SetPrefix ("/3");
   ApplicationContainer app = helper.Install ("1");
   app.Start (Seconds (1.0));
diff --git a/examples/base-experiment.h b/examples/base-experiment.h
new file mode 100644
index 0000000..4b3c052
--- /dev/null
+++ b/examples/base-experiment.h
@@ -0,0 +1,192 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011,2012 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef BASE_EXPERIMENT_H
+#define BASE_EXPERIMENT_H
+
+#include "ns3/rocketfuel-topology-reader.h"
+
+void PrintTime ()
+{
+  cout << "Progress: " << Simulator::Now ().ToDouble (Time::S) << "s" << endl;
+
+  Simulator::Schedule (Seconds (5.0), PrintTime);
+}
+
+class BaseExperiment
+{
+public:
+  BaseExperiment ()
+    : m_rand (0,52)
+    , reader (0)
+    , m_numNodes (52)
+  { }
+
+  ~BaseExperiment ()
+  {
+    if (reader != 0) delete reader;
+  }
+    
+  void
+  ConfigureTopology ()
+  {
+    Names::Clear ();
+    cout << "Configure Topology\n";
+    if (reader != 0) delete reader;
+    reader = new RocketfuelWeightsReader ("/sprint");
+    
+    string weights   ("./src/NDNabstraction/examples/sprint-pops.weights");
+    string latencies ("./src/NDNabstraction/examples/sprint-pops.latencies");
+    string positions ("./src/NDNabstraction/examples/sprint-pops.positions");
+  
+    reader->SetFileName (positions);
+    reader->SetFileType (RocketfuelWeightsReader::POSITIONS);
+    reader->Read ();
+  
+    reader->SetFileName (weights);
+    reader->SetFileType (RocketfuelWeightsReader::WEIGHTS);    
+    reader->Read ();
+
+    reader->SetFileName (latencies);
+    reader->SetFileType (RocketfuelWeightsReader::LATENCIES);    
+    reader->Read ();
+    
+    reader->Commit ();
+  }
+
+  void InstallCcnxStackImpl ()
+  {
+    InternetStackHelper stack;
+    Ipv4GlobalRoutingHelper ipv4RoutingHelper ("ns3::Ipv4GlobalRoutingOrderedNexthops");
+    stack.SetRoutingHelper (ipv4RoutingHelper);
+    stack.Install (reader->GetNodes ());
+
+    reader->AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
+    
+    // Install CCNx stack
+    cout << "Installing CCNx stack\n";
+    CcnxStackHelper ccnxHelper;
+    ccnxHelper.SetForwardingStrategy ("ns3::CcnxBestRouteStrategy");
+    ccnxHelper.EnableLimits (true, Seconds(0.1));
+    ccnxHelper.SetDefaultRoutes (false);
+    ccnxHelper.InstallAll ();
+
+    reader->ApplyOspfMetric ();
+  }
+  
+  void InstallCcnxStack (bool installFIBs = true)
+  {
+    InstallCcnxStackImpl ();
+
+    CcnxStackHelper ccnxHelper;
+    ccnxHelper.InstallFakeGlobalRoutes ();
+    if (installFIBs)
+      {
+        // // Populate FIB based on IPv4 global routing controller
+        ccnxHelper.InstallRoutesToAll ();
+      }
+  }
+  
+  void InstallIpStack ()
+  {
+    InternetStackHelper stack;
+    stack.Install (reader->GetNodes ());
+    reader->AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
+    reader->ApplyOspfMetric ();
+
+    Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+  }
+
+  void
+  GenerateRandomPairs (uint16_t numStreams)
+  {
+    m_pairs.clear ();
+    // map<uint32_t, set<uint32_t> > streams;
+    m_usedNodes.clear ();
+    
+    uint16_t createdStreams = 0;
+    uint16_t guard = 0;
+    while (createdStreams < numStreams && guard < (numeric_limits<uint16_t>::max ()-1))
+      {
+        guard ++;
+
+        uint32_t node1_num = m_rand.GetValue (); //43;//
+        uint32_t node2_num = m_rand.GetValue (); //38;//
+
+        if (node1_num == node2_num)
+          continue;
+
+        if (m_usedNodes.count (node1_num) > 0 ||
+            m_usedNodes.count (node2_num) > 0 )
+          {
+            continue; // don't reuse nodes
+          }
+
+        m_usedNodes.insert (node1_num);
+        m_usedNodes.insert (node2_num);
+
+        m_pairs.push_back (make_tuple (node1_num, node2_num));
+        createdStreams ++;
+      }
+  }
+
+  void
+  SetPair (uint32_t pairId)
+  {
+    m_pairs.clear ();
+    m_usedNodes.clear ();
+
+    uint32_t i = 0;
+    for (uint32_t node1_num = 0; node1_num < 52; node1_num++)
+      for (uint32_t node2_num = 0; node2_num < 52; node2_num++)
+        {
+          if (node1_num == node2_num) continue;
+
+          // std::cout << "i = " << i << ", pairId = " << pairId << "\n";
+          if (i++ != pairId) continue;
+          
+          m_usedNodes.insert (node1_num);
+          m_usedNodes.insert (node2_num);
+
+          m_pairs.push_back (make_tuple (node1_num, node2_num));
+          return;
+        }
+  }
+
+  void
+  Run (const Time &finishTime)
+  {
+    cout << "Run Simulation.\n";
+    Simulator::Stop (finishTime);
+    Simulator::Schedule (Seconds (5.0), PrintTime);
+    Simulator::Run ();
+    Simulator::Destroy ();
+    cout << "Done.\n";
+  }
+
+  UniformVariable m_rand;
+  RocketfuelWeightsReader *reader;
+
+  list<tuple<uint32_t,uint32_t> > m_pairs;
+  set<uint32_t> m_usedNodes;
+  const int m_numNodes;
+};
+
+#endif
diff --git a/examples/blackhole-sprint.cc b/examples/blackhole-sprint.cc
new file mode 100644
index 0000000..c912ecb
--- /dev/null
+++ b/examples/blackhole-sprint.cc
@@ -0,0 +1,188 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+ 
+ 
+#include "ns3/core-module.h"
+#include "ns3/network-module.h"
+#include "ns3/point-to-point-module.h"
+#include "ns3/NDNabstraction-module.h"
+#include "ns3/point-to-point-grid.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/random-variable.h"
+
+#include <sstream>
+#include <map>
+#include <list>
+#include <set>
+#include "ns3/rocketfuel-topology-reader.h"
+
+#include <boost/lexical_cast.hpp>
+#include <boost/foreach.hpp>
+
+#include <boost/config.hpp>
+#include <iostream>
+#include <fstream>
+
+#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/dijkstra_shortest_paths.hpp>
+
+using namespace ns3;
+using namespace std;
+using namespace boost;
+
+NS_LOG_COMPONENT_DEFINE ("BlackholeSprint");
+
+#include "base-experiment.h"
+
+class Experiment : public BaseExperiment
+{
+public:
+  // hijacker is more than an application. just disable all faces
+  static void
+  InstallHijacker (std::string prefix, Ptr<Node> node)
+  {
+    Ptr<Ccnx> ccnx = node->GetObject<Ccnx> ();
+    for (uint32_t i = 0; i < ccnx->GetNFaces (); i++)
+      {
+        Ptr<CcnxFace> face = ccnx->GetFace (i);
+        face->SetUp (false);
+      }
+    CcnxStackHelper::InstallRouteTo (prefix, node);
+  }
+
+  //We are creating 10 pairs of producer-hijacker and everybody else is a consumer
+  ApplicationContainer
+  AddApplications ()
+  {
+    ApplicationContainer apps;
+
+    list<string> prefixes;
+
+    // Create Producers/Hijackers
+    uint32_t pair = 0;
+    for (list<tuple<uint32_t,uint32_t> >::iterator i = m_pairs.begin (); i != m_pairs.end (); i++)
+      {
+        uint32_t node1_num = i->get<0> ();
+        uint32_t node2_num = i->get<1> ();
+
+        cout << "Good: " << node1_num << ", bad: " << node2_num << "\n";
+        
+        Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (node1_num));
+        Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (node2_num));
+
+        // node1 legitimate producer
+        // node2 "fake" producer
+
+        string prefix = "/bh/" + lexical_cast<string> (pair);
+        pair ++;
+
+        CcnxAppHelper legitimateProducerHelper ("ns3::CcnxProducer");
+        legitimateProducerHelper.SetPrefix (prefix);
+        apps.Add
+          (legitimateProducerHelper.Install (node1));
+        
+        // one more trick. Need to install route to hijacker (aka "hijacker announces itself as a legitimate producer")
+        CcnxStackHelper::InstallRouteTo (prefix, node1);
+        Simulator::Schedule (Seconds(10.0), Experiment::InstallHijacker, prefix, node2);
+
+        prefixes.push_back (prefix); // remember prefixes that consumers will be requesting
+      }
+    
+    // Create Consumers
+    NodeContainer nodes = reader->GetNodes ();
+    for (NodeContainer::Iterator node = nodes.Begin (); node != nodes.End (); node++)
+      {
+        uint32_t namedId = lexical_cast<uint32_t> (Names::FindName (*node));
+        if (m_usedNodes.count (namedId) > 0)
+          continue;
+
+        CcnxAppHelper consumerHelper ("ns3::CcnxConsumerBatches");
+        consumerHelper.SetAttribute ("LifeTime", StringValue("100s"));
+        consumerHelper.SetAttribute ("Batches", StringValue("0s 10 6s 1 20s 1"));
+        BOOST_FOREACH (const string &prefix, prefixes)
+          {
+            consumerHelper.SetPrefix (prefix + "/" + lexical_cast<string> (namedId)); // make sure we're requesting unique prefixes... this was a huge bug before                 
+
+            ApplicationContainer consumer = consumerHelper.Install (*node);
+            apps.Add (consumer);
+          }
+
+        // break;
+      }
+    return apps;
+  }
+};
+
+int 
+main (int argc, char *argv[])
+{
+  cout << "Begin blackhole scenario\n";
+  
+  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("100Mbps"));
+  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("2000"));
+  Config::SetDefault ("ns3::RttEstimator::InitialEstimation", StringValue ("0.5s"));
+
+  Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
+  Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
+  Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
+
+  uint32_t maxRuns = 1;
+  uint32_t startRun = 0;
+  CommandLine cmd;
+  cmd.AddValue ("start", "Initial run number", startRun);
+  cmd.AddValue ("runs", "Number of runs", maxRuns);
+  cmd.Parse (argc, argv);
+
+  // ConfigStore config;
+  // config.ConfigureDefaults ();
+
+  Experiment experiment;
+  for (uint32_t run = startRun; run < startRun + maxRuns; run++)
+    {
+      Config::SetGlobal ("RngRun", IntegerValue (run));
+      cout << "seed = " << SeedManager::GetSeed () << ", run = " << SeedManager::GetRun () << endl;
+
+      Experiment experiment;
+      // experiment.GenerateRandomPairs (1);
+      experiment.SetPair (run);
+      cout << "Run " << run << endl;
+      
+      string prefix = "blackhole-" + lexical_cast<string> (run) + "-";
+  
+      experiment.ConfigureTopology ();
+      experiment.InstallCcnxStack (false);
+      ApplicationContainer apps = experiment.AddApplications ();
+            
+      //tracing
+      CcnxTraceHelper traceHelper;
+      // traceHelper.EnableRateL3All (prefix + "rate-trace.log");
+      traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumerBatches", prefix + "consumers-seqs.log");
+
+      // enable path weights some time from now (ensure that all faces are created)
+      Simulator::Schedule (Seconds (4.5), &CcnxTraceHelper::EnablePathWeights, &traceHelper, prefix + "weights.log");
+      std::cout << "Total " << apps.GetN () << " applications\n";
+
+      experiment.Run (Seconds(40.0));
+    }
+
+  cout << "Finish blackhole scenario\n";
+  return 0;
+}
diff --git a/examples/ccnx-grid.cc b/examples/ccnx-grid.cc
index a4255be..15898aa 100644
--- a/examples/ccnx-grid.cc
+++ b/examples/ccnx-grid.cc
@@ -115,7 +115,7 @@
   std::ostringstream prefix;
   prefix << "/" << producer->GetId ();
   
-  CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+  CcnxAppHelper consumerHelper ("ns3::CcnxConsumerCbr");
   consumerHelper.SetPrefix (prefix.str ());
   consumerHelper.SetAttribute ("MeanRate", StringValue ("1Mbps"));
   ApplicationContainer consumers = consumerHelper.Install (consumerNodes);
diff --git a/examples/ccnx-test.cc b/examples/ccnx-test.cc
deleted file mode 100644
index cae2815..0000000
--- a/examples/ccnx-test.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
-
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/point-to-point-module.h"
-#include "ns3/NDNabstraction-module.h"
-
-using namespace ns3;
-
-NS_LOG_COMPONENT_DEFINE ("CcnxTest");
-
-int 
-main (int argc, char *argv[])
-{
-  // LogComponentEnable ("CcnxTest", LOG_ALL);
-  // LogComponentEnable ("CcnxStackHelper", LOG_ALL);
-  // LogComponentEnable ("CcnxRit", LOG_ALL);
-  
-  // Config::SetDefault ("ns3::OnOffApplication::PacketSize", UintegerValue (210));
-  // Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue ("448kb/s"));
-
-  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("10Mbps"));
-  Config::SetDefault ("ns3::PointToPointChannel::Delay", StringValue ("1ms"));
-
-  Packet::EnableChecking();
-  Packet::EnablePrinting();
-  CommandLine cmd;
-  cmd.Parse (argc, argv);
-  
-  // Here, we will explicitly create seven nodes. 
-  NodeContainer c;
-  c.Create (3);
-  Names::Add ("1", c.Get (0));
-  Names::Add ("2", c.Get (1));
-  Names::Add ("3", c.Get (2));
-  
-  // NodeContainer n1 = NodeContainer ("1") ("2");
-  // NodeContainer n2 = NodeContainer ("2") ("3");
-  
-  NS_LOG_INFO ("Create channels.");
-  PointToPointHelper p2p;
-  p2p.Install ("1", "2");
-  p2p.Install ("2", "3");
-
-  NS_LOG_INFO ("Installing NDN stack");
-  CcnxStackHelper ccnx;
-  Ptr<CcnxFaceContainer> cf = ccnx.Install (c);
-
-  CcnxAppHelper helper ("ns3::CcnxConsumer");
-  helper.SetPrefix ("/3");
-  ApplicationContainer app = helper.Install ("1");
-  app.Start (Seconds (1.0));
-  app.Stop (Seconds (10.05));
-
-  CcnxAppHelper helper2 ("ns3::CcnxProducer");
-  helper2.SetPrefix ("/3");
-  helper2.SetAttribute ("PayloadSize", StringValue("1024"));
-  ApplicationContainer app2 = helper2.Install("3");
-  
-  app2.Start(Seconds(0.0));
-  app2.Stop(Seconds(15.0));
-  
-  /**
-   * \brief Add forwarding entry in FIB
-   *
-   * \param node Node
-   * \param prefix Routing prefix
-   * \param face Face index
-   * \param metric Routing metric
-   */
-  ccnx.AddRoute ("1", "/3", 0, 1);
-  ccnx.AddRoute ("2", "/3", 1, 1);
-  ccnx.AddRoute ("2", "/3", 0, 10000);
-  NS_LOG_INFO ("FIB dump:\n" << *c.Get(0)->GetObject<CcnxFib> ());
-  NS_LOG_INFO ("FIB dump:\n" << *c.Get(1)->GetObject<CcnxFib> ());
-
-  // Create the OnOff application to send UDP datagrams of size
-  // 210 bytes at a rate of 448 Kb/s from n0 to n4
-  // NS_LOG_INFO ("Create Applications.");
-  
-  // std::string sendsizeattr = "SendSize";
-  // //flow2 7-->2
-  // BulkSendHelper bulksend0 ("ns3::CcnxLocalFaceFactory", InetSocketAddress (i23.GetAddress (0), port));
-  // //bulksend0.SetAttribute(sendsizeattr, AttributeValue(ConstantVariable(2560)));
-  // bulksend0.SetAttribute("MaxBytes", UintegerValue(2560));
-  // ApplicationContainer apps = bulksend0.Install(c.Get(6));
-  // apps.Start(Seconds (1.0));
-  // apps.Stop(Seconds (10.0));
-
-  // AsciiTraceHelper ascii;
-  // p2p.EnableAsciiAll (ascii.CreateFileStream ("ccnx-test.tr"));
-  // p2p.EnablePcapAll ("ccnx-test");
-  
-  Simulator::Stop (Seconds (20));
-  
-  NS_LOG_INFO ("Run Simulation.");
-  Simulator::Run ();
-  Simulator::Destroy ();
-  NS_LOG_INFO ("Done.");
-  
-  return 0;
-}
diff --git a/examples/congestion-pop.cc b/examples/congestion-pop.cc
index 51a5fa0..ae28ad8 100644
--- a/examples/congestion-pop.cc
+++ b/examples/congestion-pop.cc
@@ -28,13 +28,7 @@
 #include "ns3/random-variable.h"
 #include "ns3/internet-module.h"
 #include "ns3/applications-module.h"
-
-#include <iostream>
-#include <sstream>
-#include <map>
-#include <list>
-#include <set>
-#include "ns3/rocketfuel-topology-reader.h"
+#include "ns3/config-store.h"
 
 #include <boost/lexical_cast.hpp>
 #include <boost/foreach.hpp>
@@ -45,108 +39,34 @@
 
 NS_LOG_COMPONENT_DEFINE ("Scenario");
 
-void PrintTime ()
-{
-  cout << "Progress: " << Simulator::Now ().ToDouble (Time::S) << "s" << endl;
+// void PrintTime ()
+// {
+//   cout << "Progress: " << Simulator::Now ().ToDouble (Time::S) << "s" << endl;
 
-  Simulator::Schedule (Seconds (1.0), PrintTime);
-}
+//   Simulator::Schedule (Seconds (1.0), PrintTime);
+// }
 
-class Experiment
+#include "base-experiment.h"
+
+class Experiment : public BaseExperiment
 {
 public:
-  Experiment ()
-    : m_rand (0,52)
-    , reader ("/sprint")
-  { }
-  
-  void
-  ConfigureCcnxTopology ()
-  {
-    Names::Clear ();
-    
-    string weights   ("./src/NDNabstraction/examples/sprint-pops.weights");
-    string latencies ("./src/NDNabstraction/examples/sprint-pops.latencies");
-    string positions ("./src/NDNabstraction/examples/sprint-pops.positions");
-  
-    RocketfuelWeightsReader reader ("/sprint");
-
-    reader.SetFileName (positions);
-    reader.SetFileType (RocketfuelWeightsReader::POSITIONS);
-    reader.Read ();
-  
-    reader.SetFileName (weights);
-    reader.SetFileType (RocketfuelWeightsReader::WEIGHTS);    
-    reader.Read ();
-
-    reader.SetFileName (latencies);
-    reader.SetFileType (RocketfuelWeightsReader::LATENCIES);    
-    reader.Read ();
-    
-    reader.Commit ();
-    NS_ASSERT_MSG (reader.LinksSize () != 0, "Problems reading the topology file. Failing.");
-    
-    NS_LOG_INFO("Nodes = " << reader.GetNodes ().GetN());
-    NS_LOG_INFO("Links = " << reader.LinksSize ());
-  
-    // ------------------------------------------------------------
-    // -- Read topology data.
-    // --------------------------------------------
-        
-    InternetStackHelper stack;
-    Ipv4GlobalRoutingHelper ipv4RoutingHelper ("ns3::Ipv4GlobalRoutingOrderedNexthops");
-    stack.SetRoutingHelper (ipv4RoutingHelper);
-    stack.Install (reader.GetNodes ());
-
-    reader.AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
-    
-    // Install CCNx stack
-    NS_LOG_INFO ("Installing CCNx stack");
-    CcnxStackHelper ccnxHelper;
-    ccnxHelper.SetForwardingStrategy ("ns3::CcnxBestRouteStrategy");
-    ccnxHelper.EnableLimits (true, Seconds(0.1));
-    ccnxHelper.SetDefaultRoutes (false);
-    ccnxHelper.InstallAll ();
-  }
-
-  void
-  ConfigureRouting ()
-  {
-    CcnxStackHelper ccnxHelper;
-    // // Populate FIB based on IPv4 global routing controller
-    ccnxHelper.InstallFakeGlobalRoutes ();
-    ccnxHelper.InstallRoutesToAll ();
-  }
-  
   ApplicationContainer
-  AddCcnxRandomApplications (uint16_t numStreams)
+  AddCcnxApplications ()
   {
-    map<uint32_t, set<uint32_t> > streams;
     ApplicationContainer apps;
-    
-    uint16_t createdStreams = 0;
-    uint16_t guard = 0;
-    while (createdStreams < numStreams && guard < (numeric_limits<uint16_t>::max ()-1))
+
+    for (list<tuple<uint32_t,uint32_t> >::iterator i = m_pairs.begin (); i != m_pairs.end (); i++)
       {
-        guard ++;
-        
-        uint32_t node1_num = m_rand.GetValue ();
-        uint32_t node2_num = m_rand.GetValue ();
-
-        if (node1_num == node2_num)
-          continue;
-
-        if (streams[node1_num].count (node2_num) > 0) // don't create duplicate streams
-          continue;
-        
-        streams[node1_num].insert (node2_num);
+        uint32_t node1_num = i->get<0> ();
+        uint32_t node2_num = i->get<1> ();
 
         Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (node1_num));
         Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (node2_num));
 
-        CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+        CcnxAppHelper consumerHelper ("ns3::CcnxConsumerWindow");
         consumerHelper.SetPrefix ("/" + lexical_cast<string> (node2->GetId ()));
-        consumerHelper.SetAttribute ("MeanRate", StringValue ("2Mbps"));
+        // consumerHelper.SetAttribute ("MeanRate", StringValue ("2Mbps"));
         consumerHelper.SetAttribute ("Size", StringValue ("1.983642578125")); //to make sure max seq # is 2000
 
         CcnxAppHelper producerHelper ("ns3::CcnxProducer");
@@ -157,26 +77,49 @@
 
         apps.Add
           (producerHelper.Install (node2));
-
-        createdStreams ++;
       }
 
     return apps;
   }
 
-  void
-  Run (const Time &finishTime)
+  ApplicationContainer
+  AddTcpApplications ()
   {
-    cout << "Run Simulation.\n";
-    Simulator::Stop (finishTime);
-    // Simulator::Schedule (Seconds (1.0), PrintTime);
-    Simulator::Run ();
-    Simulator::Destroy ();
-    cout << "Done.\n";
-  }
+    ApplicationContainer apps;
 
-  UniformVariable m_rand;
-  RocketfuelWeightsReader reader;
+    uint32_t streamId = 0;
+    const static uint32_t base_port = 10;
+    for (list<tuple<uint32_t,uint32_t> >::iterator i = m_pairs.begin (); i != m_pairs.end (); i++)
+      {
+        uint32_t node1_num = i->get<0> ();
+        uint32_t node2_num = i->get<1> ();
+
+        Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (node2_num));
+        Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (node1_num));
+
+        Ptr<Ipv4> ipv4 = node1->GetObject<Ipv4> ();
+        // ipv4->GetAddress (0, 0);
+
+        // to make sure we don't reuse the same port numbers for different flows, just make all port numbers unique
+        PacketSinkHelper consumerHelper ("ns3::TcpSocketFactory",
+                                         InetSocketAddress (Ipv4Address::GetAny (), base_port + streamId));
+
+        BulkSendHelper producerHelper ("ns3::TcpSocketFactory",
+                                       InetSocketAddress (ipv4->GetAddress (1, 0).GetLocal (), base_port + streamId));
+        // cout << "SendTo: " <<  ipv4->GetAddress (1, 0).GetLocal () << endl;
+        producerHelper.SetAttribute ("MaxBytes", UintegerValue (2081040)); // equal to 2001 ccnx packets
+        
+        apps.Add
+          (consumerHelper.Install (node1));
+
+        apps.Add
+          (producerHelper.Install (node2));
+
+        streamId++;
+      }
+
+    return apps;
+  }
 };
 
 
@@ -186,8 +129,15 @@
   cout << "Begin congestion-pop scenario\n";
   
   Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("1Mbps"));
-  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("20"));
+  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("60"));
+  Config::SetDefault ("ns3::TcpSocket::SegmentSize", StringValue ("1040"));
+  
+  Config::SetDefault ("ns3::BulkSendApplication::SendSize", StringValue ("1040"));
 
+  Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
+  Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
+  Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
+  
   uint32_t maxRuns = 1;
   uint32_t startRun = 0;
   CommandLine cmd;
@@ -195,6 +145,9 @@
   cmd.AddValue ("runs", "Number of runs", maxRuns);
   cmd.Parse (argc, argv);
 
+  // ConfigStore config;
+  // config.ConfigureDefaults ();
+  
   for (uint32_t run = startRun; run < startRun + maxRuns; run++)
     {
       Config::SetGlobal ("RngRun", IntegerValue (run));
@@ -202,27 +155,69 @@
 
       Experiment experiment;
       cout << "Run " << run << endl;
-      
-      experiment.ConfigureCcnxTopology ();
-      ApplicationContainer apps = experiment.AddCcnxRandomApplications (20);
-      experiment.ConfigureRouting ();
-  
       string prefix = "run-" + lexical_cast<string> (run) + "-";
 
+      experiment.GenerateRandomPairs (20);
       ofstream of_nodes ((prefix + "apps.log").c_str ());
-      for (uint32_t i = 0; i < apps.GetN () / 2; i++) 
+      for (list<tuple<uint32_t,uint32_t> >::iterator i = experiment.m_pairs.begin (); i != experiment.m_pairs.end (); i++)
         {
-          of_nodes << "From " << apps.Get (i*2)->GetNode ()->GetId ()
-                   << " to "  << apps.Get (i*2 + 1)->GetNode ()->GetId ();
+          of_nodes << "From " << i->get<0> ()
+                   << " to "  << i->get<1> ();
           of_nodes << "\n";
         }
       of_nodes.close ();
 
-      CcnxTraceHelper traceHelper;
-      traceHelper.EnableRateL3All (prefix + "rate-trace.log");
-      traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumer", prefix + "consumers-seqs.log");
+      cout << "NDN experiment\n";
+      // NDN
+      {
+        experiment.ConfigureTopology ();
+        experiment.InstallCcnxStack ();
+        ApplicationContainer apps = experiment.AddCcnxApplications ();
 
-      experiment.Run (Seconds (200.0));
+        for (uint32_t i = 0; i < apps.GetN () / 2; i++) 
+          {
+            apps.Get (i*2)->SetStartTime (Seconds (1+i));
+            apps.Get (i*2 + 1)->SetStartTime (Seconds (1+i));
+          }
+
+        CcnxTraceHelper traceHelper;
+        // traceHelper.EnableRateL3All (prefix + "rate-trace.log");
+        // traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumerCbr", prefix + "consumers-seqs.log");
+        traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumerWindow", prefix + "consumers-seqs.log");
+        traceHelper.EnableWindowsAll (prefix + "windows.log");
+
+        // config.ConfigureAttributes ();
+        experiment.Run (Seconds (200.0));
+      }
+
+      cout << "TCP experiment\n";
+      // TCP
+      {
+        experiment.ConfigureTopology ();
+        experiment.InstallIpStack ();
+        ApplicationContainer apps = experiment.AddTcpApplications ();
+
+        CcnxTraceHelper traceHelper;
+        traceHelper.EnableIpv4SeqsAppAll (prefix + "tcp-consumers-seqs.log");
+        traceHelper.EnableWindowsTcpAll (prefix + "tcp-windows.log");
+
+        for (uint32_t i = 0; i < apps.GetN () / 2; i++) 
+          {
+            apps.Get (i*2)->SetStartTime (Seconds (1+i));
+
+            apps.Get (i*2 + 1)->SetStartTime (Seconds (1+i));
+
+            // cout << "Node: " << apps.Get (i*2 + 1)->GetNode ()->GetId () << "\n";
+            // care only about BulkSender
+            Simulator::Schedule (Seconds (1+i+0.01),
+                                 &CcnxTraceHelper::TcpConnect, &traceHelper, apps.Get (i*2)->GetNode ());
+
+            Simulator::Schedule (Seconds (1+i+0.01),
+                                 &CcnxTraceHelper::TcpConnect, &traceHelper, apps.Get (i*2 + 1)->GetNode ());
+          }
+
+        experiment.Run (Seconds (200.0));
+      }
     }
 
   // cout << "Finish congestion-pop scenario\n";
diff --git a/examples/congestion-tcp-pop.cc b/examples/congestion-tcp-pop.cc
deleted file mode 100644
index c1ac443..0000000
--- a/examples/congestion-tcp-pop.cc
+++ /dev/null
@@ -1,231 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/point-to-point-module.h"
-#include "ns3/NDNabstraction-module.h"
-#include "ns3/point-to-point-grid.h"
-#include "ns3/ipv4-global-routing-helper.h"
-#include "ns3/random-variable.h"
-#include "ns3/internet-module.h"
-#include "ns3/applications-module.h"
-#include "ns3/config-store.h"
-
-#include <iostream>
-#include <sstream>
-#include <map>
-#include <list>
-#include <set>
-#include "ns3/rocketfuel-topology-reader.h"
-
-#include "../helper/tracers/ipv4-seqs-app-tracer.h"
-
-#include <boost/lexical_cast.hpp>
-#include <boost/foreach.hpp>
-
-using namespace ns3;
-using namespace std;
-using namespace boost;
-
-NS_LOG_COMPONENT_DEFINE ("Scenario");
-
-void PrintTime ()
-{
-  cout << "Progress: " << Simulator::Now ().ToDouble (Time::S) << "s" << endl;
-
-  Simulator::Schedule (Seconds (1.0), PrintTime);
-}
-
-class Experiment
-{
-public:
-  Experiment ()
-    : m_rand (0,52)
-    , reader ("/sprint")
-  { }
-
-  void
-  ConfigureIpv4Topology ()
-  {
-    Names::Clear ();
-    
-    string weights   ("./src/NDNabstraction/examples/sprint-pops.weights");
-    string latencies ("./src/NDNabstraction/examples/sprint-pops.latencies");
-    string positions ("./src/NDNabstraction/examples/sprint-pops.positions");
-  
-    reader.SetFileName (positions);
-    reader.SetFileType (RocketfuelWeightsReader::POSITIONS);
-    reader.Read ();
-  
-    reader.SetFileName (weights);
-    reader.SetFileType (RocketfuelWeightsReader::WEIGHTS);    
-    reader.Read ();
-
-    reader.SetFileName (latencies);
-    reader.SetFileType (RocketfuelWeightsReader::LATENCIES);    
-    reader.Read ();
-    
-    reader.Commit ();
-    NS_ASSERT_MSG (reader.LinksSize () != 0, "Problems reading the topology file. Failing.");
-    
-    NS_LOG_INFO("Nodes = " << reader.GetNodes ().GetN());
-    NS_LOG_INFO("Links = " << reader.LinksSize ());
-
-    InternetStackHelper stack;
-    stack.Install (reader.GetNodes ());
-    reader.AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
-  }
-
-  void
-  ConfigureRouting ()
-  {
-    Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
-
-    // m_rand = UniformVariable (0, reader.GetNodes ().GetN());
-  }
-  
-  ApplicationContainer
-  AddTcpRandomApplications (uint16_t numStreams)
-  {
-    map<uint32_t, set<uint32_t> > streams;
-    ApplicationContainer apps;
-
-    const static uint32_t base_port = 10;
-    uint16_t createdStreams = 0;
-    uint16_t guard = 0;
-    while (createdStreams < numStreams && guard < (numeric_limits<uint16_t>::max ()-1))
-      {
-        guard ++;
-        
-        uint32_t node1_num = m_rand.GetValue ();
-        uint32_t node2_num = m_rand.GetValue ();
-
-        if (node1_num == node2_num)
-          continue;
-
-        if (streams[node1_num].count (node2_num) > 0) // don't create duplicate streams
-          continue;
-        
-        streams[node1_num].insert (node2_num);
-
-        Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (node1_num));
-        Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (node2_num));
-
-        Ptr<Ipv4> ipv4 = node1->GetObject<Ipv4> ();
-        // ipv4->GetAddress (0, 0);
-
-        // to make sure we don't reuse the same port numbers for different flows, just make all port numbers unique
-        PacketSinkHelper consumerHelper ("ns3::TcpSocketFactory",
-                                         InetSocketAddress (Ipv4Address::GetAny (), base_port + createdStreams));
-
-        BulkSendHelper producerHelper ("ns3::TcpSocketFactory",
-                                       InetSocketAddress (ipv4->GetAddress (1, 0).GetLocal (), base_port + createdStreams));
-        // cout << "SendTo: " <<  ipv4->GetAddress (1, 0).GetLocal () << endl;
-        producerHelper.SetAttribute ("MaxBytes", UintegerValue (2081040)); // equal to 2001 ccnx packets
-        
-        apps.Add
-          (consumerHelper.Install (node1));
-
-        apps.Add
-          (producerHelper.Install (node2));
-
-        createdStreams ++;
-      }
-
-    return apps;
-  }
-
-  void
-  Run (const Time &finishTime)
-  {
-    cout << "Run Simulation.\n";
-    Simulator::Stop (finishTime);
-    // Simulator::Schedule (Seconds (1.0), PrintTime);
-    Simulator::Run ();
-    Simulator::Destroy ();
-    cout << "Done.\n";
-  }
-
-  UniformVariable m_rand;
-  RocketfuelWeightsReader reader;
-};
-
-int 
-main (int argc, char *argv[])
-{
-  cout << "Begin congestion-pop scenario\n";
-  Packet::EnableChecking();
-  Packet::EnablePrinting();
-  
-  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("1Mbps"));
-  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("20"));
-  Config::SetDefault ("ns3::TcpSocket::SegmentSize", StringValue ("1040"));
-  
-  Config::SetDefault ("ns3::BulkSendApplication::SendSize", StringValue ("1040"));
-
-  // Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
-  // Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
-  // Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
-  
-  uint32_t maxRuns = 1;
-  uint32_t startRun = 0;
-  CommandLine cmd;
-  cmd.AddValue ("start", "Initial run number", startRun);
-  cmd.AddValue ("runs", "Number of runs", maxRuns);
-  cmd.Parse (argc, argv);
-
-  // ConfigStore config;
-  // config.ConfigureDefaults ();
-
-  for (uint32_t run = startRun; run < startRun + maxRuns; run++)
-    {
-      Config::SetGlobal ("RngRun", IntegerValue (run));
-      cout << "seed = " << SeedManager::GetSeed () << ", run = " << SeedManager::GetRun () << endl;
-      
-      Experiment experiment;
-      cout << "Run " << run << endl;
-      
-      experiment.ConfigureIpv4Topology ();
-      ApplicationContainer apps = experiment.AddTcpRandomApplications (20);
-      experiment.ConfigureRouting ();
-
-      string prefix = "run-tcp-" + lexical_cast<string> (run) + "-";      
-
-      ofstream of_nodes ((prefix + "apps.log").c_str ());
-      for (uint32_t i = 0; i < apps.GetN () / 2; i++) 
-        {
-          of_nodes << "From " << apps.Get (i*2)->GetNode ()->GetId ()
-                   << " to "  << apps.Get (i*2 + 1)->GetNode ()->GetId ();
-          of_nodes << "\n";
-        }
-
-      CcnxTraceHelper traceHelper;
-      traceHelper.EnableIpv4SeqsAppAll (prefix + "consumers-seqs.log");
-
-      // config.ConfigureAttributes ();  
-
-      experiment.Run (Seconds (200.0));
-    }
-
-  // cout << "Finish congestion-pop scenario\n";
-  return 0;
-}
diff --git a/examples/congestion-zoom.cc b/examples/congestion-zoom.cc
new file mode 100644
index 0000000..35b3c0c
--- /dev/null
+++ b/examples/congestion-zoom.cc
@@ -0,0 +1,294 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+
+
+#include "ns3/core-module.h"
+#include "ns3/network-module.h"
+#include "ns3/point-to-point-module.h"
+#include "ns3/NDNabstraction-module.h"
+#include "ns3/point-to-point-grid.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/random-variable.h"
+#include "ns3/internet-module.h"
+#include "ns3/applications-module.h"
+#include "ns3/config-store.h"
+
+#include <boost/lexical_cast.hpp>
+#include <boost/foreach.hpp>
+
+using namespace ns3;
+using namespace std;
+using namespace boost;
+
+NS_LOG_COMPONENT_DEFINE ("Scenario");
+
+// void PrintTime ()
+// {
+//   cout << "Progress: " << Simulator::Now ().ToDouble (Time::S) << "s" << endl;
+
+//   Simulator::Schedule (Seconds (1.0), PrintTime);
+// }
+
+#include "base-experiment.h"
+
+class Experiment
+{
+public:
+  AnnotatedTopologyReader *reader;
+  string prefix;
+
+  Experiment ()
+    : reader (0)
+    , prefix ("simple/")
+  { }
+  
+  void
+  ConfigureTopology ()
+  {
+    Names::Clear ();
+    cout << "Configure Topology\n";
+    if (reader != 0) delete reader;
+    reader = new AnnotatedTopologyReader (prefix);
+    
+    string input ("./src/NDNabstraction/examples/congestion-zoom.txt");
+  
+    reader->SetFileName (input);
+    reader->Read ();
+  }
+  
+  void InstallCcnxStackImpl ()
+  {
+    InternetStackHelper stack;
+    Ipv4GlobalRoutingHelper ipv4RoutingHelper ("ns3::Ipv4GlobalRoutingOrderedNexthops");
+    stack.SetRoutingHelper (ipv4RoutingHelper);
+    stack.Install (reader->GetNodes ());
+
+    reader->AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
+    
+    // Install CCNx stack
+    cout << "Installing CCNx stack\n";
+    CcnxStackHelper ccnxHelper;
+    ccnxHelper.SetForwardingStrategy ("ns3::CcnxBestRouteStrategy");
+    ccnxHelper.EnableLimits (true, Seconds(0.1));
+    ccnxHelper.SetDefaultRoutes (false);
+    ccnxHelper.InstallAll ();
+
+    reader->ApplyOspfMetric ();
+  }
+  
+  void InstallCcnxStack (bool installFIBs = true)
+  {
+    InstallCcnxStackImpl ();
+
+    CcnxStackHelper ccnxHelper;
+    ccnxHelper.InstallFakeGlobalRoutes ();
+    if (installFIBs)
+      {
+        // // Populate FIB based on IPv4 global routing controller
+        ccnxHelper.InstallRoutesToAll ();
+      }
+  }
+  
+  void InstallIpStack ()
+  {
+    InternetStackHelper stack;
+    stack.Install (reader->GetNodes ());
+    reader->AssignIpv4Addresses (Ipv4Address ("10.0.0.0"));
+    reader->ApplyOspfMetric ();
+
+    Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+  }
+
+  ApplicationContainer
+  AddCcnxApplications ()
+  {
+    ApplicationContainer apps;
+
+    Ptr<Node> client = Names::Find<Node> (prefix, lexical_cast<string> ("client"));
+    Ptr<Node> server = Names::Find<Node> (prefix, lexical_cast<string> ("server"));
+    
+    CcnxAppHelper consumerHelper ("ns3::CcnxConsumerWindow");
+    consumerHelper.SetPrefix ("/" + lexical_cast<string> (server->GetId ()));
+    consumerHelper.SetAttribute ("Size", StringValue ("2.0"));
+
+    CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+    producerHelper.SetPrefix ("/" + lexical_cast<string> (server->GetId ()));
+    
+    apps.Add
+      (consumerHelper.Install (client));
+
+    apps.Add
+      (producerHelper.Install (server));
+
+    return apps;
+  }
+
+  ApplicationContainer
+  AddTcpApplications ()
+  {
+    ApplicationContainer apps;
+
+    Ptr<Node> client = Names::Find<Node> (prefix, lexical_cast<string> ("client"));
+    Ptr<Node> server = Names::Find<Node> (prefix, lexical_cast<string> ("server"));
+
+    Ptr<Ipv4> ipv4 = client->GetObject<Ipv4> ();
+
+    // to make sure we don't reuse the same port numbers for different flows, just make all port numbers unique
+    PacketSinkHelper consumerHelper ("ns3::TcpSocketFactory",
+                                     InetSocketAddress (Ipv4Address::GetAny (), 1024));
+
+    BulkSendHelper producerHelper ("ns3::TcpSocketFactory",
+                                   InetSocketAddress (ipv4->GetAddress (1, 0).GetLocal (), 1024));
+    // cout << "SendTo: " <<  ipv4->GetAddress (1, 0).GetLocal () << endl;
+    producerHelper.SetAttribute ("MaxBytes", UintegerValue (2081040)); // equal to 2001 ccnx packets
+
+    apps.Add
+      (consumerHelper.Install (client));
+
+    apps.Add
+      (producerHelper.Install (server));
+    
+    // uint32_t streamId = 0;
+    // const static uint32_t base_port = 10;
+    // for (list<tuple<uint32_t,uint32_t> >::iterator i = m_pairs.begin (); i != m_pairs.end (); i++)
+    //   {
+    //     uint32_t node1_num = i->get<0> ();
+    //     uint32_t node2_num = i->get<1> ();
+
+    //     Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (node2_num));
+    //     Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (node1_num));
+
+    //     Ptr<Ipv4> ipv4 = node1->GetObject<Ipv4> ();
+    //     // ipv4->GetAddress (0, 0);
+
+    //     // to make sure we don't reuse the same port numbers for different flows, just make all port numbers unique
+    //     PacketSinkHelper consumerHelper ("ns3::TcpSocketFactory",
+    //                                      InetSocketAddress (Ipv4Address::GetAny (), base_port + streamId));
+
+    //     BulkSendHelper producerHelper ("ns3::TcpSocketFactory",
+    //                                    InetSocketAddress (ipv4->GetAddress (1, 0).GetLocal (), base_port + streamId));
+    //     // cout << "SendTo: " <<  ipv4->GetAddress (1, 0).GetLocal () << endl;
+    //     producerHelper.SetAttribute ("MaxBytes", UintegerValue (2081040)); // equal to 2001 ccnx packets
+        
+    //     apps.Add
+    //       (consumerHelper.Install (node1));
+
+    //     apps.Add
+    //       (producerHelper.Install (node2));
+
+    //     streamId++;
+    //   }
+
+    return apps;
+  }
+
+  void
+  Run (const Time &finishTime)
+  {
+    cout << "Run Simulation.\n";
+    Simulator::Stop (finishTime);
+    Simulator::Schedule (Seconds (5.0), PrintTime);
+    Simulator::Run ();
+    Simulator::Destroy ();
+    cout << "Done.\n";
+  }
+};
+
+
+int 
+main (int argc, char *argv[])
+{
+  cout << "Begin congestion-pop scenario\n";
+  
+  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("1Mbps"));
+  // Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("60"));
+  Config::SetDefault ("ns3::TcpSocket::SegmentSize", StringValue ("1040"));
+  
+  Config::SetDefault ("ns3::BulkSendApplication::SendSize", StringValue ("1040"));
+
+  Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
+  Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
+  Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
+  
+  CommandLine cmd;
+  cmd.Parse (argc, argv);
+
+  // ConfigStore config;
+  // config.ConfigureDefaults ();
+  
+  Experiment experiment;
+  string prefix = "congestion-zoom-";
+
+  cout << "NDN experiment\n";
+  // NDN
+  {
+    experiment.ConfigureTopology ();
+    experiment.InstallCcnxStack ();
+    experiment.AddCcnxApplications ();
+
+    // for (uint32_t i = 0; i < apps.GetN () / 2; i++) 
+    //   {
+    //     apps.Get (i*2)->SetStartTime (Seconds (1+i));
+    //     apps.Get (i*2 + 1)->SetStartTime (Seconds (1+i));
+    //   }
+
+    CcnxTraceHelper traceHelper;
+    traceHelper.EnableRateL3All (prefix + "rate-trace.log");
+    // traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumerCbr", prefix + "consumers-seqs.log");
+    // traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumerWindow", prefix + "consumers-seqs.log");
+    // traceHelper.EnableWindowsAll (prefix + "windows.log");
+
+    // config.ConfigureAttributes ();
+    experiment.Run (Seconds (50.0));
+    // experiment.reader->SavePositions ("pos.log");
+  }
+
+  cout << "TCP experiment\n";
+  // TCP
+  {
+    experiment.ConfigureTopology ();
+    experiment.InstallIpStack ();
+    experiment.AddTcpApplications ();
+
+    CcnxTraceHelper traceHelper;
+    traceHelper.EnableIpv4RateL3All (prefix + "ipv4-rate-trace.log");
+    // traceHelper.EnableIpv4SeqsAppAll (prefix + "tcp-consumers-seqs.log");
+    // traceHelper.EnableWindowsTcpAll (prefix + "tcp-windows.log");
+
+    // for (uint32_t i = 0; i < apps.GetN () / 2; i++) 
+    //   {
+    //     apps.Get (i*2)->SetStartTime (Seconds (1+i));
+
+    //     apps.Get (i*2 + 1)->SetStartTime (Seconds (1+i));
+
+    //     // cout << "Node: " << apps.Get (i*2 + 1)->GetNode ()->GetId () << "\n";
+    //     // care only about BulkSender
+    //     Simulator::Schedule (Seconds (1+i+0.01),
+    //                          &CcnxTraceHelper::TcpConnect, &traceHelper, apps.Get (i*2)->GetNode ());
+
+    //     Simulator::Schedule (Seconds (1+i+0.01),
+    //                          &CcnxTraceHelper::TcpConnect, &traceHelper, apps.Get (i*2 + 1)->GetNode ());
+    //   }
+
+    experiment.Run (Seconds (50.0));
+  }
+
+  return 0;
+}
diff --git a/examples/congestion-zoom.txt b/examples/congestion-zoom.txt
new file mode 100644
index 0000000..1747062
--- /dev/null
+++ b/examples/congestion-zoom.txt
@@ -0,0 +1,16 @@
+router
+#name			city	latitude	longitude
+client  		unknown 28.8967		-12.8654
+server  		unknown 28.8967  	51.3505
+clientProvider  	unknown 28.8967   	8.97413
+serverProvider  	unknown 28.8967 	37.5575
+provider1   		unknown 23.5641		32.6924
+provider2  		unknown 36.0641 	32.6924
+link
+#x	y	capacity(kbps)	OSPF    Delay		MaxPackets
+client	clientProvider	10Mbps	1	5ms		200
+server  serverProvider 10Mbps	2	6ms		200
+clientProvider provider1 1Mbps 	1  	50ms		20
+clientProvider provider2 1Mbps 	1  	50ms		20
+serverProvider provider1 1Mbps	1	5ms		20	
+serverProvider provider2 1Mbps	2	6ms		20
diff --git a/examples/content-object-example.cc b/examples/content-object-example.cc
deleted file mode 100644
index 8272e86..0000000
--- a/examples/content-object-example.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "ns3/test.h"
-#include "ns3/annotated-topology-reader.h"
-#include "ns3/ccnx-content-object-header.h"
-#include "ns3/uinteger.h"
-#include "ns3/random-variable.h"
-#include <limits> 
-#include "ns3/ccnx-header-helper.h"
-#include "ns3/header.h"
-#include "ns3/ccnx-name-components.h"
-#include "ns3/nstime.h"
-#include "ns3/buffer.h"
-#include "ns3/log.h"
-
-using namespace ns3;
-#include <fstream>
-
-NS_LOG_COMPONENT_DEFINE ("ContentObjectHeaderExample");
-
-int
-main (int argc, char *argv[])
-{
-  LogComponentEnable ("ContentObjectHeaderExample", LOG_ALL);
-  LogComponentEnable ("Packet", LOG_ALL);
-	
-  NS_LOG_INFO ("Test started");
-
-  Packet::EnablePrinting ();
-  Packet::EnableChecking (); 
-  Packet packet (10);
-	
-  CcnxContentObjectHeader header;
-  CcnxContentObjectTail   trailer;
-	
-  Ptr<CcnxNameComponents> testname = Create<CcnxNameComponents> ();
-  (*testname) ("1");
-  header.SetName(testname);
-
-  NS_LOG_INFO ("Source: \n" << header << trailer);
-
-  packet.AddHeader (header);
-  packet.AddTrailer (trailer);
-
-  // NS_LOG_INFO ("Deserialized packet: \n" << packet);
-
-  NS_LOG_INFO ("Removing and deserializing individual headers");
-	
-  CcnxContentObjectHeader dst_header;
-  CcnxContentObjectTail   dst_trailer;
-
-  packet.RemoveHeader (dst_header);
-  packet.RemoveTrailer (dst_trailer);
-	
-  NS_LOG_INFO ("Target: \n" << dst_header << dst_trailer);
-
-  return 0;
-}
diff --git a/examples/failures/failures-0.01 b/examples/failures/failures-0.01
new file mode 100644
index 0000000..3207d84
--- /dev/null
+++ b/examples/failures/failures-0.01
@@ -0,0 +1,1000 @@
+14-16;5-8
+
+
+3-9
+
+
+
+9-20;19-41
+
+9-20
+
+7-13
+11-17;6-7;16-24
+14-17;6-8;16-24
+
+
+1-8
+
+2-3;15-18;20-21;27-28
+27-28
+11-38;6-7
+12-13;6-25
+
+18-23;24-50
+
+1-5;17-29
+5-7
+6-11
+6-7
+
+9-20
+9-20
+12-13;9-15;9-20
+
+9-20
+9-19
+1-9;33-40
+8-16
+8-24;16-17
+13-32;17-28
+1-11
+
+
+31-47
+1-7;17-29;48-49;19-41
+9-31
+
+
+
+
+8-28
+6-25
+8-26;17-29;48-49
+7-13
+
+
+14-15
+32-44;24-45
+23-24
+17-26
+
+24-38;24-50
+
+17-24
+20-22;17-20;5-8
+
+
+27-28
+1-8;13-33;40-49
+11-24
+
+9-31
+
+
+32-48
+20-21;8-24
+9-19;24-38
+16-17;31-37
+
+17-36
+
+21-31
+
+8-28;19-41
+6-11
+6-11;24-50
+
+6-28;32-44
+15-19
+14-15
+14-17
+3-9
+
+
+
+
+
+19-41
+
+
+
+
+
+16-24;9-20;24-45
+
+9-20
+9-20
+13-33;9-20
+
+17-29
+9-20
+9-20;19-41
+18-23
+
+6-7
+
+24-45
+6-11
+20-22
+17-25;40-49
+
+9-20;9-19
+5-32
+8-16
+
+8-26;17-36;5-32
+
+2-3
+
+20-22;19-20
+8-26
+23-24
+
+
+
+0-1
+11-38;33-40
+
+40-49
+9-30
+
+
+19-51
+11-38
+1-7;14-16
+2-3;17-29;24-45
+17-35
+11-24
+0-1;8-24
+
+17-18
+14-15;9-20;3-9
+
+33-39
+
+
+9-20
+1-7;13-32
+9-20
+32-42;9-20
+
+17-18;17-24;9-17
+
+32-48;9-19
+17-25
+17-18
+15-18
+15-19;24-31
+40-48
+
+1-9
+
+25-26;13-32
+
+
+
+8-26
+32-42;9-20
+
+40-48
+
+
+8-16;9-20
+8-26;9-20;19-20
+14-15
+
+9-20
+8-20;9-20
+6-17
+6-7
+16-17;5-7
+
+
+17-24
+18-23
+8-16;32-48
+17-36;16-17
+
+17-28
+1-4;31-37
+
+
+1-10;39-42
+24-31
+17-24;6-11;31-47
+
+9-19
+16-29
+
+1-8;19-20
+
+16-17
+39-42
+
+6-7
+8-20
+
+24-38
+
+5-7
+
+
+
+
+
+
+20-21;5-32
+
+20-21;9-31
+8-20
+12-13;6-7
+31-37
+25-26
+33-39
+
+8-20
+
+17-24;19-20
+6-28
+24-31
+1-7
+
+14-17;17-35;31-45
+0-1
+
+
+
+
+
+13-33;31-47
+14-17
+
+
+40-48
+1-10;40-48
+8-26
+16-29;40-48
+6-7
+9-31
+
+
+20-22;31-45;32-42
+17-25;6-8
+6-17;31-47
+
+25-26
+
+
+8-28;17-26
+32-44
+
+
+
+31-46
+33-39;5-32;40-49
+
+5-32
+1-7
+32-42
+19-20
+19-51
+1-8
+13-33
+
+
+3-9
+25-26
+
+27-28
+1-6;23-24;31-37;19-20
+16-17
+6-7
+32-42
+
+19-41
+17-29
+
+
+
+18-23
+
+17-28;17-29
+
+
+0-1
+9-30
+
+6-7
+32-42
+
+16-29
+14-15
+
+20-22
+
+
+
+15-18;19-51
+
+32-42
+9-31
+32-42
+
+25-26
+6-11
+40-49
+20-22
+
+
+
+
+1-9
+17-28;18-23;24-50
+11-24;5-7
+14-17;8-28
+
+
+9-19
+
+0-1
+9-15
+15-19
+
+1-11
+
+24-31
+
+32-42
+
+
+5-32
+32-42
+2-3
+
+
+
+19-20
+6-11
+
+17-25;16-29
+15-19
+
+
+
+
+
+1-6;17-28;17-24
+32-42
+6-11
+
+
+
+
+24-45
+
+1-10;6-8;7-13
+
+
+5-7
+15-18
+
+
+14-16
+
+19-20
+
+
+
+
+6-17;32-42
+8-28
+9-17
+20-22
+
+
+17-18
+8-28;7-13
+32-42;19-51
+32-44
+33-39;32-44
+
+
+
+
+
+
+17-18
+1-7
+
+17-18;6-7
+17-29
+
+
+1-5;6-28;24-38
+13-32;17-18;17-25
+
+
+17-18
+
+13-32;5-8
+15-18
+32-42
+
+6-7
+9-19
+6-28
+32-44
+
+
+17-35
+
+20-22;31-45
+
+
+
+
+11-24
+1-5;33-40
+19-20
+6-17
+14-17;33-39
+8-28
+8-16
+1-6;11-17;39-42
+8-24
+11-38
+1-7
+1-7
+24-38
+14-17
+6-8
+2-3
+
+32-44
+1-10
+6-25;19-41
+14-16;17-26
+
+33-40;32-42
+
+8-20;31-46
+21-31;31-46
+
+
+
+
+
+1-10
+1-10
+32-42;9-19
+16-24
+
+6-7;24-50
+14-17
+25-26
+
+
+3-9
+1-8;6-17;31-45
+31-45
+
+8-20
+32-42;48-49
+
+7-13;24-38
+
+
+8-24
+23-24
+17-26
+
+
+11-24
+19-20
+
+
+39-42
+
+
+
+
+
+
+
+11-24
+6-7;32-44;5-7
+48-49
+40-49
+
+17-25;33-40;32-42;9-31
+24-45
+16-17;32-42
+1-4;1-11
+13-32;17-25
+0-1;1-9
+38-43
+
+
+11-38
+
+6-28
+48-49
+8-20
+1-5;9-15
+
+1-11;16-24;31-45;32-48
+21-31
+
+14-17;13-32;17-28
+8-20
+17-24;5-7
+1-8
+6-28;24-50
+5-32
+17-20
+14-15;6-11
+
+20-22
+9-17
+1-4
+24-45
+
+
+
+
+
+32-42;24-50
+19-41
+
+
+
+
+17-24;48-49
+8-28
+9-19
+25-26;32-44
+33-39;31-46
+31-46;31-47
+11-17
+33-40
+12-13;17-25
+16-29
+19-41
+
+20-22
+6-25;6-11
+
+
+31-46
+9-31;9-17
+
+32-42
+
+31-47
+17-24
+0-1;5-7
+1-9;1-10;16-29
+
+1-5
+32-44
+
+
+32-48;9-15
+
+
+31-46;32-48
+19-20
+31-46
+17-26
+13-33
+17-29
+39-42;24-38
+
+38-43
+17-35
+17-28
+
+
+31-37
+14-17
+
+1-8;21-31;17-26
+1-10;13-33;31-47;9-31;19-51
+8-26;17-28
+
+
+
+
+
+
+
+
+31-45;19-51
+
+11-17
+
+16-29
+
+
+
+
+1-8
+
+14-15
+
+12-13
+
+20-21
+
+
+
+
+31-47;5-8
+
+5-7
+
+
+2-3
+
+
+
+11-17
+
+
+
+8-16;9-20
+
+
+17-18
+
+17-29
+8-26;17-18
+1-5;16-17
+13-32
+6-25
+
+6-11;9-20
+17-28;17-26
+
+1-8;13-32
+
+5-32
+
+31-37;38-43;5-32
+6-28
+1-4;9-30
+31-37
+1-4
+6-11;9-20
+6-7
+
+
+18-23
+
+
+
+
+8-26
+11-38;24-45
+9-20
+
+
+
+
+
+
+17-20;6-11
+1-10
+
+
+5-32
+16-29
+24-45
+
+15-18;38-43
+
+15-19;31-37;9-30
+
+23-24
+
+1-10
+
+8-28;33-40;5-7
+1-4;31-45
+
+11-24
+17-25;5-8;24-31
+
+
+
+15-19
+
+1-10;8-20
+
+32-44
+14-16;16-29
+
+31-46;40-49
+
+
+24-31
+19-51
+7-13;24-45
+24-50
+17-26
+
+
+
+5-7
+17-24
+
+9-19
+1-9;39-42
+
+0-1;9-30
+8-28
+8-16
+20-22;8-26
+
+16-29
+1-6
+1-11;15-18
+9-17
+
+17-29
+
+
+6-8
+6-25
+1-8;24-31
+
+
+
+9-31
+
+
+17-24
+1-4
+
+13-33;6-17
+23-24
+14-17
+
+24-31
+
+1-10;15-18;5-32
+
+11-38
+8-28
+6-25
+
+
+5-7
+6-8
+1-4;9-19
+
+
+13-32;31-46
+14-16
+12-13
+
+8-28;39-42;19-51
+31-45;5-7
+8-20
+39-42
+
+
+8-24;6-8;9-31
+14-16;13-32
+
+20-21;9-20
+27-28
+8-28
+9-15
+1-5;33-39
+31-45
+17-36
+14-16;16-17
+32-48
+
+20-21
+11-17;9-20;3-9
+
+
+11-38
+
+
+
+8-16;11-17;6-17
+7-13
+5-8
+
+40-49;19-51
+
+1-11;27-28
+
+
+
+
+32-44
+20-21
+24-50
+
+23-24;32-44
+
+14-17
+21-31
+32-48;24-31
+
+
+32-48
+
+9-15
+14-16;33-39;9-30
+1-10;15-18;32-44
+39-42
+
+
+8-20;17-29;11-24
+
+1-9;27-28;19-41
+8-26
+
+12-13
+8-20;18-23
+1-4
+
+
+17-24;6-28;24-31
+
+38-43
+13-33
+7-13;9-15
+17-35;31-37
+1-8
+
+17-29
+11-17
+
+8-24;17-28
+
+14-16;9-19
+21-31
+
+14-15;9-17
+1-5
+12-13
+24-38
+8-26
+
+32-44;18-23;3-9
+19-20
+11-24
+6-8
+1-7
+
+20-21;40-49
+18-23
+
+15-19
+
+
+
+1-6
+
+
+
+11-17;31-45
+
+
+9-19
+9-17
+
+8-28
+
+15-19;20-21
+
+
+
+24-31
+1-4
+0-1
+
+13-32
+
+1-7
+31-46
+
+1-6;17-18
+20-22
+17-25
+1-8;9-31
+16-29
+17-18
+
+11-17
+17-18
+
+
+
+
+2-3;1-6
+
+
+17-26
+
+
+19-20
+17-28
+21-31;11-24;31-47
+
+
+
+
+
+9-15;9-17
+
+3-9
+8-28
+7-13
+
+
+
+5-32
+23-24
+1-8
+
+1-6;16-17;19-41;19-51
+17-25
+
+14-15
+
+19-20
+
+
+
+20-21
+16-17
+
+6-7
+
+
+17-20
+15-18
+1-10
+33-39;31-45
+6-7
+
+15-19;17-28
+9-31
+
+
+
+20-22
+
+5-7
+33-39
+
+33-39
+6-28
+
+
+8-16
+21-31;18-23
+
+6-11;31-47
+
+27-28;17-20
+
+
+
+
+1-11
+11-24
+
+11-17
+
+14-16;17-25;19-51
+9-30
+
diff --git a/examples/failures/failures-0.02 b/examples/failures/failures-0.02
new file mode 100644
index 0000000..bcf7591
--- /dev/null
+++ b/examples/failures/failures-0.02
@@ -0,0 +1,1000 @@
+16-29;31-47
+
+27-28;8-26;17-24;6-7;16-17;24-45
+14-15;17-29;24-45
+1-10
+27-28
+1-5
+23-24;17-25;11-24;18-23
+
+20-22;31-45;9-31
+1-7;1-11;12-13
+1-10;17-24;24-31
+13-33;9-19
+20-22;32-42;9-15
+13-32
+12-13
+1-8
+3-9
+1-5;8-28;17-20;48-49
+5-32
+
+15-18;6-7;7-13
+20-22;17-24
+
+
+8-24;13-33;31-47
+48-49;38-43
+27-28;11-17
+40-49
+1-7
+17-35;24-38
+17-29;31-47
+17-36
+12-13;24-45
+13-32;33-40
+11-17;3-9
+17-28;38-43;9-17
+
+15-19;16-17;24-50
+
+14-15;21-31;18-23;24-31
+
+0-1;7-13
+32-48;9-31
+33-40
+1-11;14-16;17-26;31-46;38-43;19-20
+14-15
+1-11;33-39;31-46;32-48
+39-42;16-17;38-43
+24-50
+6-34;16-24;19-51
+21-31
+
+15-18;11-24;6-8
+
+13-32;39-42;31-45
+12-13;6-11;9-19;19-51
+
+17-18;6-11;38-43
+6-11
+21-31
+17-18
+
+20-22;8-16;8-28;16-17;19-51
+16-24
+6-28;6-17;18-23
+
+
+24-45
+16-24;24-31
+
+6-28
+5-7
+20-21;6-8;18-23
+1-10;25-26;17-20;24-50
+6-7
+17-24
+
+17-18;17-26;6-25;19-51
+19-20
+25-26;17-28;9-17
+
+1-10;13-32;9-31
+14-15;24-38;24-31;24-45
+9-30
+25-26;17-25;24-38
+17-36;16-29
+38-43;24-38;3-9
+
+6-11;48-49
+
+6-11;18-23
+1-7;1-9
+8-16
+
+
+33-40;5-32
+17-35;38-43;24-31
+32-44;5-7;18-23
+6-7
+
+17-24;9-17
+1-11
+15-19;20-22
+6-17
+17-25
+18-23
+1-8;39-42
+13-33
+6-28;31-46
+1-9;33-39
+17-26;9-31
+17-20;31-37;9-31
+1-6
+9-30
+8-26;24-45
+
+33-39;33-40
+15-18
+25-26
+9-17
+8-20;8-28;11-24
+1-6;17-28;17-24;9-15
+15-19
+5-32
+18-23
+40-49
+14-15;32-44;24-31
+20-21;16-17
+23-24
+1-9
+1-4;1-7;8-28
+18-23
+
+
+16-29;32-44;3-9
+25-26;31-45
+1-11
+11-17
+13-32
+
+6-7;24-38
+15-18
+15-19;16-17
+
+9-19
+11-17;9-30
+17-26;11-38
+14-16;6-28;38-43
+
+
+20-21
+1-5;33-39;32-44
+8-16
+14-17;11-38;6-25
+6-8
+1-11;8-20;13-33;17-28
+17-28;6-8
+1-9;33-39;38-43
+6-25
+
+11-17
+1-8;16-24;40-49
+14-17;9-15
+1-5;9-31
+13-32
+0-1;1-10;14-16
+1-4;48-49;38-43
+23-24;31-46
+13-33;6-17
+
+
+
+1-6;31-46
+
+1-7;6-8;24-50
+1-5;17-24;16-24
+27-28;8-20
+14-17;17-36;33-40
+17-20
+17-26
+23-24;21-31;33-39;32-44
+19-20
+
+
+1-4;39-42
+40-49
+
+1-5;12-13
+
+2-3
+1-11
+0-1;13-32;16-29;24-38
+39-42
+24-38
+11-17
+9-30
+1-5;38-43
+15-18
+17-20;48-49
+8-28;17-25;39-42
+48-49
+
+6-34;32-48
+11-38
+
+32-44;24-31
+38-43;9-31
+24-45
+1-5
+8-28;11-17;40-49
+11-38;24-50
+
+14-16;8-20
+8-24;24-50
+16-17;3-9
+9-15
+23-24;17-35
+
+19-51
+17-35;24-31
+1-4;11-17
+14-15
+
+16-29;32-48
+1-6;6-28;9-30
+8-16;9-17;5-7;3-9
+8-16;17-20
+
+13-33
+17-29
+15-18
+48-49
+17-28;11-24;9-19
+1-5;24-45
+14-16;9-19
+24-31;19-51
+
+
+21-31
+6-11
+1-6;3-9
+19-51
+
+
+
+
+
+12-13;21-31;17-26;38-43
+20-21;8-20;17-25;31-45;18-23;19-51
+
+
+14-17
+17-36;6-7;5-7;24-45
+23-24;13-32;32-48
+15-18;8-16
+
+27-28;24-45
+6-8;38-43;9-15;19-51
+1-4;6-17
+16-24
+
+
+
+0-1;17-29;40-49;19-51
+
+1-11;18-23;3-9
+17-28;38-43
+8-28;17-29
+17-20;11-17
+
+1-8;5-7
+0-1;6-11
+16-29;19-51
+5-32
+
+1-9;21-31;13-33
+1-10;9-19
+14-16
+14-17;31-45
+6-25;5-32;5-7
+27-28;17-26;19-41
+18-23
+1-5
+14-17;8-24;24-45
+1-10;31-47
+1-8;31-45;7-13
+15-18;21-31
+
+12-13;15-19;17-36;40-48
+13-32;33-39;3-9
+14-15;20-22;8-20;6-8;40-48
+14-17;17-25;40-48
+23-24;17-18;40-48;24-31
+1-4
+15-18
+13-32;11-38;40-48
+17-24;39-42;40-48
+0-1;11-17;6-7
+20-21;8-16;17-25
+17-18
+1-4
+1-6;31-46;40-48
+11-24;31-46
+6-8;5-32
+
+6-34
+17-36;19-51
+6-17;9-30;40-48
+17-20;31-37;9-30
+16-24
+13-32;17-18;11-24;32-44
+12-13;16-29
+21-31
+8-28;17-26
+1-6;17-18;11-38;6-25;16-24;5-7
+1-10;24-38
+
+1-11;8-24;6-34
+20-21;6-28;9-17
+
+
+11-38;19-51
+
+14-17;9-17
+13-33;6-8;16-24
+8-24;17-36;24-50
+15-18
+
+1-10;27-28;17-18;17-29;31-47
+6-34;6-11;16-17
+14-17;6-11;3-9
+6-11
+39-42
+23-24
+24-50
+17-25
+12-13;9-30
+
+17-35;32-44;9-15
+6-7
+40-49
+1-8;33-40;39-42
+1-10;14-16;17-24
+
+6-8;6-17
+1-5;8-24;5-32
+16-17
+3-9
+1-4
+39-42
+21-31;24-31
+15-18
+0-1;14-15;17-24
+5-32;24-50
+12-13;23-24;6-34
+
+1-7;12-13;14-17;8-20;6-11;24-50
+11-38
+
+11-17;31-47
+0-1
+14-16;33-39;16-29
+20-21;6-11
+6-25;6-11
+15-19;8-24;32-44;24-31;24-45
+31-46
+
+8-28;6-11;19-51
+
+1-7
+20-22
+
+1-11;6-17;3-9
+1-11;13-32;31-37;19-41
+
+
+14-15
+1-8;17-20
+2-3
+24-31
+11-38;32-48
+17-26;5-32;18-23
+
+9-31
+
+39-42
+17-35
+
+31-47;48-49
+17-36
+6-25;24-50
+23-24
+
+39-42
+15-19
+1-9;8-24
+13-33
+
+21-31;18-23;19-41
+13-32
+5-32
+8-16;40-49
+33-39
+8-24;17-28;5-32
+
+6-8
+
+14-16;17-20;33-39
+12-13;17-35;6-17;9-19
+20-22;19-41
+
+11-17;40-49
+31-45;31-47
+12-13;17-28;33-40
+1-8;17-26
+
+17-36
+8-20
+31-47
+14-17
+48-49;9-30
+
+2-3;39-42;9-30
+
+19-41
+1-5
+8-24;13-32;6-8;16-24
+31-46;9-15;19-41
+
+17-25
+17-35
+1-7;1-8
+1-6;9-17
+14-17;17-26
+17-35;6-17;6-34;39-42
+17-36;9-15
+6-17;16-24
+17-20
+1-4
+20-21
+25-26;8-26;16-24;19-20
+1-7;8-24;16-29;40-49
+24-38
+13-33
+1-5;20-21;6-25
+5-7
+32-48;24-38
+25-26;6-8
+17-28
+31-47
+1-5
+16-29
+24-50
+1-10;8-20;9-19;5-32;24-31
+24-50
+
+17-25
+1-4;13-33
+17-35
+5-7
+
+1-10;8-16
+6-25
+
+
+8-24;6-28;24-45
+11-17;33-39
+8-26;16-29;5-8
+1-9;12-13;8-26;24-31
+9-17
+
+32-48
+33-39;31-47
+6-17;31-45;9-17
+25-26;8-20
+6-17;38-43
+9-30
+6-28;24-38
+14-15;5-8
+19-51
+20-21;25-26
+
+17-26;16-17
+1-11;8-28
+33-40;16-29;3-9
+17-25;48-49;19-51
+1-9
+1-8
+6-25;9-15
+1-10;6-7;3-9
+17-28
+12-13;24-50
+31-45
+1-4;11-17;31-46
+17-20;33-40
+
+25-26;32-48;24-31
+31-37;9-19
+40-49
+
+
+
+0-1;25-26
+
+
+1-8
+17-20;17-24
+1-5;8-26;6-8;6-34;19-51
+17-36;9-31;5-32
+0-1;12-13
+1-4;1-6
+14-16;16-24;9-31
+6-17
+25-26
+20-21;13-33;6-11
+17-26;6-25;6-11;16-24;38-43
+
+17-24
+1-11;8-28
+21-31
+6-8;32-44
+
+7-13;40-48
+39-42
+25-26
+7-13;38-43;24-31
+
+24-50
+14-16;13-33
+
+27-28;8-20;39-42
+
+14-17;17-20
+17-25;16-29;5-7;40-48
+1-7;9-30
+14-15;38-43
+5-32;19-20
+6-7
+9-31
+21-31
+25-26
+6-25;6-8;9-15;9-19
+9-31
+7-13
+
+17-36
+8-24;17-18;24-45;19-41
+1-4
+2-3;17-29;6-17;32-44
+6-34;32-44;19-20
+6-17
+
+
+20-21
+
+8-24;16-24
+40-48
+
+2-3;17-18;9-15
+
+17-20
+1-8;17-18
+
+
+0-1;8-16;17-18;5-32;19-20
+1-4;14-17;8-16
+5-7;24-50
+1-10;17-36;11-38;38-43;40-48
+
+1-9;15-18;25-26
+20-22
+
+17-18
+14-17;6-25;9-31
+20-21;6-34
+15-19;6-7;6-8;16-24
+
+17-20;17-29;24-45;19-20
+40-48
+
+27-28;40-49
+11-17;31-37
+19-51
+5-32
+17-24;24-45
+9-19
+17-18;33-40;6-34
+1-9;6-17
+8-24;9-30;5-32
+40-48
+9-30;24-31
+17-18;31-47;19-20
+1-11
+11-24
+31-45
+1-8;17-24
+
+31-47
+0-1;12-13;32-44
+
+8-28;40-48
+8-20
+14-16
+12-13
+1-9;24-38;24-31
+17-24
+0-1;24-38
+11-24;16-17;5-32
+7-13
+
+20-21;5-7
+6-25;39-42;40-48
+16-24
+31-45
+17-29;38-43
+
+1-5;15-18;11-24;6-34
+19-20
+13-32;17-36;31-46
+1-4;8-26
+
+
+40-48;24-45
+1-9;6-28
+
+
+33-40;16-24;48-49
+1-11;32-44
+1-5;1-6;6-34
+8-28;7-13
+20-21;5-8
+2-3;6-7;5-8;40-49
+8-26;5-8
+8-20;21-31;40-48
+13-32;6-11
+1-7;15-19;20-22;31-47
+1-10;9-17
+16-29
+
+
+31-45;5-32;24-38
+
+8-28;16-17
+
+5-32;40-48
+1-7;15-19
+33-40
+18-23
+14-16;31-37
+1-10
+0-1;2-3;1-8
+17-28
+14-17;31-37
+
+32-44;24-50
+1-4;12-13;23-24
+
+17-20
+32-48
+13-33
+
+20-22;8-24;6-7;6-28;6-25;9-17;24-31
+1-11
+12-13;17-29;6-11
+15-19;8-28;6-11;31-47;18-23
+8-26;6-25;6-11;48-49
+6-17;32-48
+9-19
+6-11
+12-13
+2-3
+
+31-47
+8-26;17-36;9-19
+9-30
+
+14-16;24-31
+1-5;6-34
+20-22
+
+
+27-28
+31-46
+1-11;17-26
+2-3;11-24;6-8;9-15
+
+17-28;19-20
+8-28;17-20
+2-3;6-25
+40-48;24-45
+1-5;6-34
+17-25;5-32;24-31
+1-4;5-7
+8-26;6-25
+17-28
+
+24-38;24-45
+
+1-7;48-49
+8-26;9-15
+8-28;40-48
+16-24
+1-5;11-38;6-34;31-47;9-17
+
+6-17
+1-9
+1-6
+27-28;19-41
+31-37
+32-48
+6-7
+1-11;20-21;17-29;40-48
+
+0-1;31-37;19-20
+11-17
+
+20-22;17-26;33-39
+21-31;6-8;9-19
+33-40;19-41
+1-11;8-26;17-35;6-25
+1-8;1-10;9-17
+19-41
+1-11;8-24;9-31
+
+
+
+1-5;23-24;17-24;17-25;6-34
+
+5-7
+13-33;9-30
+11-24;32-44;24-50
+14-16
+27-28;19-41
+19-51
+1-10;16-29;24-31
+
+11-38
+15-18
+1-5;17-29;6-34
+31-45
+31-37;9-31;19-20
+
+8-24;6-17;3-9
+13-32;19-51
+21-31;17-36
+
+1-4;8-26;17-29;6-25
+1-7;17-36
+31-46
+
+14-16;6-28;19-51
+
+8-26;9-15;24-45;3-9
+1-11
+
+14-15
+8-16
+1-6;32-44
+6-8
+19-51
+
+1-7;9-19
+1-5;20-21;33-39;6-34;48-49
+
+17-36
+14-17;40-49;19-51
+
+
+6-25;3-9
+15-18
+
+1-5;1-7;11-17;39-42;24-45
+19-51
+1-6;1-11;17-20
+1-5;1-8;21-31;11-24;6-34
+
+31-37
+1-11;39-42
+17-35;31-47
+6-8;32-48
+
+
+8-24;17-24;17-25;19-20
+14-17;20-21
+17-26
+14-15;27-28;32-44
+11-38;33-39
+17-35;7-13
+17-29
+15-18;31-45;9-17;3-9
+
+17-35;40-49
+
+
+11-38;16-24
+48-49;40-48;19-20
+1-9
+
+8-16;11-24;11-17
+33-40
+8-24;19-51
+1-4;31-45;5-7;40-48
+15-18;13-33
+40-48
+32-48;40-48
+31-37;40-48
+6-7;40-48
+11-24;32-48
+
+1-11;17-18;40-48
+1-11
+
+
+17-28;32-44;40-48
+40-48
+1-9;5-32
+
+17-18;17-26;17-29
+1-4;6-17
+0-1;8-26;33-40
+5-32
+
+1-9;5-8
+14-17;38-43
+
+
+15-19;13-33;19-41
+0-1;23-24;39-42
+17-18
+6-34
+11-24
+17-18
+38-43
+48-49
+8-20;24-45
+20-22
+15-19;8-28;32-48;9-17;5-7
+
+2-3;33-39
+8-26
+9-30;9-17;19-41
+
+20-21;38-43;24-50
+
+12-13;17-25;5-8
+0-1
+
+14-15;31-45;40-49
+
+9-19
+
+1-6
+9-31;24-45
+6-8
+19-41
+17-20
+
+17-28;9-31
+8-28;21-31
+8-16;11-17;31-47
+39-42;31-37
+
+9-15
+
+1-11;31-37
+11-24;31-47;9-17
+8-16;31-37;32-48
+
+25-26;39-42;24-50
+7-13;19-41
+9-30
+14-16;33-40;6-28;6-25
+16-24
+1-7
+31-46
+39-42
+23-24
+1-10;14-16;8-16;16-24
+24-45
+14-17
+20-21;13-32;31-45;3-9
+5-8;5-7
+5-8
+5-8
+17-35;17-26;6-7;5-8;19-51
+8-24;8-26;13-33;11-17
+9-31
+48-49
+15-18;6-25
+12-13;25-26;5-7;19-20
+12-13
+14-15;8-20
+33-40
+24-31
+9-19
+38-43
+
+1-9
+15-18;21-31;13-33
+14-16;8-26;17-29
+
+
+1-11
+8-16;33-39
+
+11-38;38-43
+
+0-1;21-31;24-50
+5-7
+6-7;24-45
+
+1-6;8-20;17-28
+
+8-26;11-38;16-29
+17-20
+
+1-6;23-24;8-28;6-28;9-15;3-9
+
+2-3;17-26
+14-17;6-17
+11-38;48-49;40-49
+16-29
+17-25
+15-18;17-20
+25-26
+1-9;8-24;6-25
+8-28;16-17;9-31;5-32
+1-4;6-34
+6-28;16-24;16-29;48-49;40-49
+1-6;6-25;24-38
+32-48
+12-13;15-19;33-39
+27-28;8-26
+8-28;9-17
+14-15;6-7;31-47
+31-46
+14-16;17-25;24-31
+20-21;9-19;19-41
+1-11;7-13
+11-17
+
+15-19
+1-6;31-46
+
+
+11-24;32-44;5-32
+8-16;8-26;3-9
+
+19-41
+17-29
+19-51
+0-1;14-17;15-19;17-26;6-34;16-17;19-41
+16-29;9-30
+17-35
+1-10;14-16;24-50
+24-38
+1-8;9-31
+
+
+14-17;27-28;8-24;17-28;17-24;32-48;7-13
+33-39;39-42
+16-17
+1-10;15-18
+24-38
+
+
+6-8
+8-24
+13-33
+17-24
+1-7;17-29;16-29
+8-28;6-7
+1-11;8-26;6-28;5-32
+1-11
+1-8;14-17;9-17
+
+8-16
+2-3;1-7;11-17
+7-13
+1-9;17-25;9-17
+17-24
+1-4;9-31;9-30;9-19;3-9
+14-16
+33-39;16-24
+17-26;6-28
+
+
+32-48;5-8
+9-30
+13-32;5-8
+1-5;8-16
+32-48;38-43
+2-3;11-17
+1-8;6-34
+32-44
+24-38;24-50
+12-13;20-21
+24-38
+1-4;1-5;14-17;19-20
diff --git a/examples/failures/failures-0.03 b/examples/failures/failures-0.03
new file mode 100644
index 0000000..ee6bd4c
--- /dev/null
+++ b/examples/failures/failures-0.03
@@ -0,0 +1,1000 @@
+11-38
+12-13;8-24;33-39;16-29;31-46;38-43
+1-11;15-19;3-9
+8-24;6-17;9-17;9-19;3-9
+40-48
+24-45
+
+0-1;1-9;6-28;16-17
+17-26
+48-49
+14-15;17-25;9-30
+1-8;17-24;6-17;16-24
+11-24;33-39;31-45;31-46
+1-8;19-41;19-20
+1-6;17-35;33-40;6-8
+0-1;1-7;23-24;32-44
+31-47;32-44;5-32;40-48;24-38
+16-17;48-49;9-17;40-48
+17-25;31-37;40-48
+17-20;6-28;40-48
+8-26;6-7;40-48;19-41
+12-13;5-32;5-7
+25-26
+1-6;31-46
+1-7
+23-24;27-28;6-17;48-49
+11-17;31-45
+1-10;8-26;16-17
+25-26;18-23
+9-31
+
+6-28;6-25;38-43;9-17
+1-4;31-37
+25-26;17-24
+13-32;33-40;40-48;24-45
+8-28;13-33;17-29
+15-18;40-48
+17-20;31-37;9-30;40-48
+14-16;11-17;6-11;48-49;19-20
+21-31;17-36;6-11
+23-24;8-16;6-11
+0-1;17-26;6-11;38-43;24-45
+1-11;6-11
+17-29;6-11;31-47;40-49
+12-13;33-40;7-13
+1-8;11-38;9-19
+39-42
+8-20;8-26;32-48
+23-24;16-24;9-15;5-7
+1-5;39-42;24-31
+1-6;13-32;32-48
+17-20;19-41
+11-17;33-39;6-34;16-29
+31-45;19-51
+17-24;9-31
+14-16
+17-36;5-7
+1-4;17-20;40-49
+33-39
+18-23
+0-1;17-20
+1-8
+9-17
+9-15;24-31
+1-8;33-40;6-34
+15-19;8-28;6-7;6-17;19-41
+1-7;18-23
+0-1;1-4;11-17;16-29;32-44;9-15
+17-26
+17-29
+11-24
+1-10;20-22;13-32;9-15
+31-45;48-49
+27-28;6-8;5-32;19-41
+14-16;8-20;31-47
+0-1;17-28;33-40;31-46;9-15
+1-6;6-17;9-17
+
+
+11-38
+1-8;48-49;9-31
+1-11;14-17;31-37
+6-34;24-50
+15-18;16-29;9-15
+20-22;17-25;16-24;31-46;24-45
+1-7;17-28;33-40
+13-32;6-7;6-8
+1-9
+39-42;9-19
+16-29;32-44;38-43
+8-24
+15-18;9-17
+8-26;17-25;3-9
+17-28
+6-34
+21-31;33-40;9-17
+14-17;39-42
+12-13;6-7;5-32
+20-21;23-24
+8-16;6-8
+6-28;48-49
+15-19;20-22
+12-13;31-47;24-38;3-9
+1-6;40-49;19-51
+14-17;24-38
+17-29;33-40;6-25;16-17;19-20
+6-28;7-13
+17-35
+8-28;11-17
+1-10;11-38
+17-36
+14-17;8-26
+13-33;31-46
+0-1;31-47
+
+33-40
+24-45
+1-11;16-29;32-44
+3-9
+6-34;19-20;19-51
+0-1;14-16;38-43
+11-17;16-17;9-30
+1-4;27-28
+1-10;20-22
+1-7;39-42;32-44;24-31
+1-6;20-22;21-31
+11-24;16-29;19-51
+
+17-28;33-39;6-25;31-45
+8-16;13-33;17-36
+7-13;38-43
+8-28;6-34
+1-9;11-17;31-37;31-47;9-19
+14-15;11-38;33-39;48-49;9-19;19-41
+
+8-26;17-28;16-24;9-19;5-8;5-7
+1-8;23-24;9-17
+32-48;5-7
+1-6;17-28;17-29
+14-16;21-31
+1-4
+8-28;13-33;17-26;6-8;39-42;16-29;19-41
+17-24;31-46;24-31
+
+9-31
+15-19;8-26;6-28;32-44;19-20
+5-8
+16-17;7-13
+8-24;11-17
+27-28
+31-46
+1-9;23-24
+1-11;14-15;8-26;9-15;40-49
+5-32
+1-8
+15-18;17-29
+0-1;33-39;24-31
+1-11;6-11
+17-20;6-11
+23-24;21-31;11-17;6-25
+11-38
+
+16-17
+20-22;8-24;17-25
+13-32;16-24
+6-7;48-49
+8-20;17-24;18-23
+1-6;20-21;11-38
+5-8
+
+17-28;7-13;40-48
+14-15;9-17;24-31
+8-16;8-26;11-24;24-45
+1-7;32-44;48-49;19-20
+23-24;17-26;31-45
+17-35
+8-28;9-19
+40-48
+8-26;17-35;40-48;3-9
+6-11;18-23
+15-18;17-28;40-48
+5-32;40-48
+5-7
+
+17-36;31-45;40-48
+13-32;6-25;39-42;40-48;24-31
+8-28;11-38;32-48
+1-5;1-8;15-18;17-28
+1-10;1-11
+6-25;16-29;9-17
+16-17;5-8
+1-5;17-25;33-39;19-51
+1-7
+20-21;25-26;31-47;19-51
+1-4;1-6;8-20
+17-29
+1-10;6-28;40-49
+23-24;33-40;40-48
+2-3;21-31;5-8;40-48
+15-19
+0-1;5-8;40-48
+12-13;27-28;8-26;6-11;48-49;3-9
+1-7;17-35;17-18;6-17;5-8;40-48
+9-30
+25-26;6-17;9-31
+17-28
+17-18;24-31
+17-26;16-17
+6-7;6-8;19-41
+8-28;17-24;24-50
+31-46
+14-16
+6-17;6-11;31-37
+6-17;19-20
+12-13
+25-26;7-13
+
+8-16;5-7
+38-43
+9-19
+1-7;6-25;48-49;9-19
+13-32;17-36;6-7
+32-44
+17-36;6-7;38-43
+25-26;17-24
+1-9;17-18;17-29
+1-8;15-19;6-25;39-42
+1-11;18-23
+15-18;33-40
+12-13;14-15;38-43;40-49
+20-22;17-24;16-29
+14-16;13-32;16-17
+25-26;8-28;17-20;33-39
+20-21;21-31;9-15;5-32
+7-13;9-31
+1-4;11-24
+0-1;15-18;5-8
+16-29;5-8;40-49
+5-8
+5-8
+14-16;17-36;6-34;5-8;24-45
+1-9;1-11;17-24;17-26;16-17;5-8
+17-24;24-31
+1-11;8-28;8-24;17-20;11-38
+2-3;1-5;1-6;12-13;8-16;8-26;48-49
+11-17;24-45
+12-13;15-19;6-7
+
+1-5;14-17;27-28;17-18;32-44;19-41
+
+8-20;17-35
+1-5;1-9;15-18;13-33;9-31;24-31
+48-49;5-7
+25-26;17-24;19-20
+20-22;11-38
+17-18
+
+13-33;31-47;18-23
+1-6;14-16;8-26;6-34
+1-10;17-18;7-13
+
+21-31;11-17;16-17;9-30
+11-38;6-7
+17-24;9-19
+31-46;9-17;40-49
+39-42;24-31
+1-10;20-21
+12-13;6-17
+14-15;8-28;11-17
+17-25;3-9
+27-28
+8-20;17-28;5-8;24-50
+
+17-24;5-8
+15-19;23-24
+6-7;5-8
+14-15;31-45;9-31;40-49
+8-24;13-32;32-44
+1-7;17-28;6-17;16-24
+2-3;6-25
+38-43;19-51
+
+23-24;6-8;24-50
+9-17
+15-19;6-28
+8-24;9-15
+20-21;25-26;6-7;16-17;19-51
+14-17;17-20;11-17;9-17
+8-16;17-25;11-38
+6-28;38-43
+16-17
+12-13;32-48
+25-26;39-42;48-49
+9-15
+20-22;17-36
+14-16;31-37;19-51
+14-17;17-20;11-38;31-47
+
+8-28;11-17
+31-37
+20-21;33-39
+33-39;5-7
+1-4;16-17;19-51
+11-24;31-47
+6-17
+1-6;12-13
+13-33;6-34;5-7;18-23
+17-26;33-40;9-19
+9-17;24-31;24-45;19-51
+12-13;38-43;24-50
+
+11-38
+17-28
+17-28;17-36;40-49
+1-9;1-11
+1-8;15-18
+8-24;16-29;9-30
+11-24
+17-29;6-25;6-34;31-45
+11-38;7-13
+20-21
+1-6;11-17;6-28;19-20
+5-32;24-31
+1-9;14-15;31-47
+8-28;17-25;33-39;48-49
+13-32
+11-24
+16-17;9-17
+17-24;31-46
+1-10;21-31;38-43
+
+0-1;18-23
+31-47
+16-29;32-48;9-15
+14-15;8-28;13-32;40-49;19-41
+24-31
+1-11;20-22
+17-25;31-46
+8-26;31-45;40-49;24-31;24-50
+1-4
+0-1;1-9;8-24;38-43;18-23
+17-35;17-26;6-7;5-8
+25-26
+6-8;6-17;16-17;5-8
+17-20;39-42
+1-10;13-33;40-49
+
+13-32;31-37;9-15
+15-18;17-29;5-8
+1-6;20-22;27-28;24-50
+15-19;11-24
+14-16;31-37
+9-19;5-7
+17-20
+
+31-37;3-9;19-41
+1-4;8-28;31-45
+1-8;8-24;33-39;32-44
+
+1-9;1-10;16-29
+17-25
+13-32
+16-24
+6-8;40-48
+8-26;6-8;40-48
+18-23;40-48;3-9
+6-28;40-48;24-38;24-31
+17-36;16-29;40-48
+2-3;20-22
+17-29;40-48;24-38
+8-20;48-49;5-7;40-48
+1-11;24-38
+16-24;9-30
+21-31;18-23
+1-4;20-22;27-28;17-24;17-26
+31-45
+0-1;6-25;19-20
+1-9
+6-7;31-37
+8-16;13-33
+15-18;17-25;32-44
+11-38
+13-32;6-17
+1-6;16-29
+17-24
+2-3;1-8
+
+
+1-8;33-39;33-40;9-17
+17-35;17-29
+1-8
+15-19;8-16;8-26;13-33;18-23
+12-13
+14-17;13-33;17-35;9-17
+0-1
+1-7;6-7
+11-38;9-19
+14-16;8-26;9-31
+11-17;33-40;18-23
+27-28;17-28;6-11
+14-17;15-19;6-11;31-46;24-31
+8-26;13-33;17-26;17-29
+0-1;21-31;6-11;48-49
+6-11
+2-3;15-18;20-21;11-38;6-11
+1-11;13-33;6-28;6-11
+12-13;32-44;5-32
+1-8;17-28;31-47;32-44;9-17
+1-10;17-26;33-40
+0-1;23-24;17-28;11-17;24-31
+
+15-18;19-51
+1-4;9-15;24-45
+2-3;5-8;24-50
+31-47;32-48;7-13;5-8;5-7;19-51
+1-9;13-33;11-38
+1-10
+17-28;6-28;16-17;32-48
+33-40;9-31
+14-15;15-18;23-24;25-26;33-40
+0-1;6-17;24-45
+1-11;9-17
+1-8;27-28;16-29;9-15;19-41
+1-10
+
+14-15;15-19;39-42
+1-6;1-8;8-20;17-29;19-41
+20-22;13-33;17-20;6-7;16-24
+1-7;11-17;31-47
+33-40;6-28
+6-8;31-45;5-32
+1-9;8-24;6-17;5-7
+8-20;17-28;6-11;24-45
+33-39;6-11
+12-13;8-24;5-32
+8-28;6-7;6-11;9-15
+1-6;8-26;39-42;9-17
+11-24;16-17;24-50
+9-19
+15-19;17-18;33-39;6-34;9-31;9-19
+2-3;17-26;33-40;5-7
+17-29;6-28;19-51
+17-28;6-17;9-15
+
+2-3;23-24;8-28;16-29
+31-45;31-47
+39-42
+31-37;24-50
+6-28
+19-51
+15-19;8-16;13-33;33-40
+17-20;31-37
+11-24;6-34
+1-6;16-17;5-8
+8-20;17-18;16-29
+0-1;1-10;20-22;31-46;5-32
+31-46;32-48
+1-7;13-32;17-18;31-45;9-15
+1-8;20-21;6-8;39-42
+8-24;11-17
+1-11;33-40;6-7;32-44
+1-9;1-11;33-40;32-44;5-32
+1-7;32-44;19-41
+20-21;9-15
+1-4
+31-46;31-37;9-31;19-41
+40-49;24-31
+20-22;17-29;6-7
+15-18
+8-28
+17-25
+33-40;19-20
+1-7;11-38;7-13
+27-28;17-18;16-17
+17-26
+15-18
+17-18;19-41
+20-21
+
+12-13;24-31;24-50;19-51
+1-6;17-18;19-41
+8-28;33-39
+17-25;6-17;32-48
+9-19
+23-24;11-24;6-7
+13-32;11-17;32-48;5-8
+13-33;9-17;5-8;3-9
+17-35;31-47
+17-29;5-8
+0-1;1-6;24-38
+1-9;5-8
+6-8;6-11;31-45;5-8
+17-20;6-7;24-38;19-51
+8-24
+1-10;12-13;23-24;24-38;19-51
+1-8;27-28;21-31;17-18;6-17
+1-9;25-26;13-33;17-29;24-38
+33-39
+1-5
+32-48
+2-3;27-28;7-13
+20-22;8-28
+24-31
+17-18;33-39
+14-17;17-29;11-24;11-17;5-32
+1-7;31-37;40-48
+17-20;40-48;24-45
+17-26;40-48
+17-25
+2-3;8-20;8-16;31-37;48-49;9-30;24-50
+17-18;9-30;9-17;40-48
+17-29;17-36;40-48;24-50
+8-16
+1-6;40-48;24-45
+15-19;32-44;40-48
+1-11;7-13;40-48
+17-25;39-42;40-48
+6-17;48-49;40-48
+
+14-15;6-11;16-29;31-46;40-48
+6-11;40-48;24-50
+8-26;6-11;40-48
+8-16;6-11;40-48
+21-31;9-30;5-8
+1-7;17-20;6-11;31-37;40-48
+14-16;6-11;40-48
+1-6;9-19;40-48
+17-35;16-24;40-48
+12-13;11-38;31-46;5-32;40-48;19-51
+23-24;17-36;11-24;6-34;31-46
+1-11;8-24
+33-39;24-50
+12-13;14-15;40-48
+17-28;11-17;6-25;38-43;40-48
+17-18;9-30
+1-4;16-29;32-48;32-44;40-48
+20-21;8-16;32-44;38-43
+8-20;24-31
+15-18;15-19;11-24;6-25;32-48;5-7
+11-38
+32-42
+17-28;16-29
+21-31;33-39
+17-28;24-38
+23-24;6-7
+1-8;15-18;8-20;6-34;31-45;5-8
+20-22;32-42;38-43;40-49;24-38;3-9
+13-32;17-20
+15-19;17-29;24-38
+
+0-1;27-28;16-29
+12-13;21-31;32-42;24-31
+1-6;14-16;11-24
+
+13-33;11-38;5-8
+2-3;1-10;20-21
+21-31;9-31;9-30;24-50
+17-29;7-13
+19-41
+8-20;6-7;6-17;5-8
+17-24
+2-3;20-22;33-39
+16-17;5-32;24-50
+21-31;7-13;9-31;18-23
+15-19;11-17;16-24
+8-20;8-24;17-20;19-20
+14-15;6-7;32-44;40-49;3-9
+1-7;25-26;17-36
+11-17;9-17;9-19
+1-11;31-37
+9-19
+23-24;17-24;32-48
+6-17;6-34;19-51
+25-26;17-26;16-29;24-31
+8-26;6-25;5-7;19-51
+1-9;39-42
+1-6
+
+23-24;25-26;32-42
+
+
+6-17;48-49
+12-13;8-16;16-17;31-46
+17-25;39-42
+13-32;17-36;9-31;24-50
+0-1
+1-7;12-13;15-18
+8-26;31-37;32-44
+1-4;21-31
+31-46;5-8
+32-48
+11-17;6-7;5-8
+17-24;6-8;5-32
+8-20;24-45
+15-18;11-17;9-30
+8-16;33-39;38-43;24-50
+3-9
+32-42
+15-19;31-47
+8-24;19-41
+8-26
+14-15;8-28
+1-8;17-24
+32-42;38-43
+8-28
+1-11;12-13;6-25;31-47;5-32
+17-26;40-49
+8-24;8-26;16-17
+14-16;15-19;21-31;9-15
+12-13;17-28
+19-41
+20-22;6-28;39-42
+13-32
+20-22;38-43;9-19
+8-26;17-29;9-19;19-41
+8-24;6-7;32-44
+32-44;9-15
+23-24;11-17
+15-18;15-19;17-20;9-31;24-45
+6-17;39-42;16-24
+1-8;17-36
+27-28;8-20;33-40;16-29;31-47;19-41
+17-24
+8-24
+17-35
+1-7;8-16;38-43
+17-25
+8-26;11-38;32-42;5-7
+12-13;21-31;13-33;32-48
+0-1;7-13
+2-3;40-49
+1-9;33-40
+12-13;20-21;16-17;19-20
+
+6-25
+2-3;13-32
+6-25
+
+
+1-11;25-26;16-29;31-45
+1-6;8-26;13-32;17-26;11-24
+33-39
+1-4;32-44
+
+18-23;24-31
+1-7;17-20;17-36;16-17
+19-20
+0-1;27-28;8-26;6-17;31-37;40-49;19-41;19-20
+16-17;31-45;9-30
+2-3;8-20;11-24;24-38
+15-18;7-13
+20-22;17-28;24-38
+6-7;9-31;9-17;19-51
+1-7;14-16;15-19;11-38;5-7
+
+13-32
+14-15;40-49
+8-24;31-46;32-48;9-19
+15-18;17-24;16-17
+8-28;19-20
+1-4;1-10;33-40;6-17
+14-15;16-29
+21-31
+1-7;15-19;8-20;6-7
+20-22
+31-47;24-31
+6-25
+1-9;16-29
+
+1-10;6-28;31-37;48-49
+8-16;17-28;6-17
+27-28;33-40;16-24;32-42
+
+1-5;1-8;11-38;24-50
+17-35;17-26;6-28;9-31;19-20
+39-42;40-49
+1-5
+8-20;17-25;3-9
+1-4;1-7;15-19;20-22
+17-18;11-17;5-32
+18-23
+
+14-16;23-24
+
+
+1-5;5-32
+16-29;32-48
+3-9
+1-5
+0-1;17-20;17-24;9-15;19-41
+9-15;19-20
+
+1-5;16-17;31-37
+
+1-6;32-44
+8-28;16-29;24-31
+
+1-5;11-17;5-8
+15-18;15-19;6-25;9-17
+5-8;5-7;40-49
+14-16;17-25;6-11;9-19;19-20
+8-24;6-7
+6-11;38-43
+6-11
+5-8
+8-28;24-45
+
+17-26;11-38;31-46
+11-17
+1-5;1-8;24-31;24-50
+16-29
+8-16;17-28;17-36;32-48
+6-8;16-29
+8-16;17-36;6-8
+19-20
+17-18;11-38;31-46
+
+12-13
+23-24;17-18
+14-17;11-24
+6-25;32-44
+1-5;17-29
+15-18;27-28;13-33;17-35;11-38;33-39
+11-38;9-31
+31-37;40-49;24-31
+1-5
+6-7
+8-20;39-42;19-51
+15-19;11-24;16-29
+17-18
+8-24;32-42
+1-7;1-8;17-36;38-43
+6-8;16-17
+6-8
+12-13;17-29;6-28;9-15;5-32;40-49
+6-11
+14-17;6-17;6-11;32-42;19-51
+1-5;13-33;16-29;24-45
+7-13;9-17;3-9
+
+17-26;33-39;48-49;5-32
+6-34
+31-37;9-31
+8-16;16-29;38-43
+17-24;6-17;16-24;9-19
+1-6
+17-35;5-32
+1-8;6-7;6-8
+17-18
+1-9;1-11;13-32;32-42
+1-6;27-28;16-29
+23-24
+8-26;7-13;9-17
+18-23
+7-13;19-20
+48-49
+17-18;6-17;9-17
+14-15;8-16;8-24;13-33;19-41
+6-7;6-17
+17-18;24-31
+
+31-47;9-30;5-7;18-23;24-50
+32-42
+6-25;9-31
+1-11;13-32;11-17;31-45
+1-8;1-9;8-26;17-35;17-29;17-36
+17-36;16-24;9-17
+13-32;39-42
+0-1;15-19;6-25
+20-21;13-33;18-23
+20-22;5-32;24-50;19-51
+11-24
+24-50
+14-16;8-28;17-26;31-45
+1-7
+31-46;32-48
+11-24;16-24;48-49;18-23
+15-18;15-19;16-17
+1-6;27-28;24-50
+6-7;16-29;31-45;19-51
+
+6-8;24-45
+6-28;16-24
+25-26;6-7;24-31
+13-33;6-34;31-45;31-46
+1-9
+11-24;33-39
+17-20;32-42
+15-19;25-26;9-19;5-7
+17-35;5-32
+1-7;8-26;17-20
+38-43;9-15
+8-24;33-39
+23-24
+9-15;9-31
+27-28;11-24
+13-33;39-42
+
+17-24;3-9
+27-28;8-24;6-17
+38-43
+6-28;31-37;9-30
+1-11;8-16;32-44
+21-31;17-36;7-13
+1-7;16-17;48-49
+0-1;1-4;32-48
+1-5;31-47;32-42
+17-26;11-17
+1-6;13-33;6-17
+1-5;11-24;33-39;19-20
+17-20;6-17;24-45;19-41
+2-3;48-49
+8-24;17-29;24-50
+15-19;17-35
+1-9;21-31;6-34;9-15
+8-16;39-42
+
+12-13
+15-18;11-24
+7-13
+0-1;1-9;14-16;20-21;13-33;24-50
+11-17;6-11;16-17
+1-7;15-19;13-32;17-25;39-42;16-24;5-32
+16-24;19-41
+6-11;32-44
+6-11
+6-34
+6-8
+6-7;40-49
+19-51
+2-3;1-10;32-42
+9-19
+1-7;11-24;33-39;16-24;9-19
+14-15;33-40;31-37;32-48;3-9
+14-17;8-28;17-35;17-18;17-36;5-7;24-45
+1-6;33-40
+12-13;19-20;19-51
+1-8;16-17
+1-11;20-22;33-39;6-34;24-31;19-51
+1-11;17-35
+12-13;20-21;17-26;11-38;5-8
+5-32;24-45
+13-33;9-30
+39-42;31-47;32-42
+33-40;31-46
+6-8;16-17
+20-21
+16-17
+27-28
+6-17;32-42
+11-24;6-28;31-47;5-7
+20-22;6-28
+13-32;6-7
+33-40
+
+
+6-28;9-15
+0-1;6-25;31-47
+1-9;17-35
+1-4;12-13;17-36;39-42;24-50
+20-21
+1-7;33-39;24-31
+23-24;16-17;32-48;19-20
+17-20;33-40;3-9
+0-1;1-6;11-24;48-49
+14-16;17-25;6-7
+
+11-17;6-17;31-45
+15-19
+5-32;3-9
+
+9-15
+
+1-11;17-26;31-47;24-45
+8-28;11-38;9-15
+9-19;24-31
+1-4;1-9;20-22;21-31
+1-6;16-24
+1-6;38-43
+9-15
+20-21;9-17
+17-29;6-8
+12-13
+
+32-42
+6-17;31-45
+5-7
+1-10;15-19;8-16;13-33;17-35;16-29;9-31
+1-8;8-16
+
+21-31;17-25;32-44;9-31
+1-7;15-18;33-39;6-7;7-13
+20-22;8-26
+19-41
+17-20
+1-4;17-36;6-28
+1-9;27-28;39-42
+21-31;5-32
+32-42
+38-43
+1-7;20-21;13-33
+14-16;38-43;24-31
+8-16;6-28;31-47
+
+14-16;16-29;32-42;24-38;19-41
+48-49;24-45
+12-13
+17-26;32-44;19-41
+
+1-11;31-46;32-48;32-42;40-49
+1-7;8-28
+14-17;7-13
+1-10;17-18;18-23
+13-33;6-11
+31-45;5-7
+8-24;13-33;6-25;19-41
+9-17
+23-24;21-31;19-20;19-51
+8-26;9-31
+31-37;38-43;19-51
+20-21;8-28;17-20;9-19
+17-24
+15-18;27-28
+6-28;5-7
+15-19
+6-17;5-32
+1-6
+13-33;6-17
+6-7;16-29;32-44;32-42;7-13
+14-15;11-24;32-44
+20-22;8-20;8-28
+1-9;14-16;24-31
+
+8-16;16-24;31-37
+27-28
+17-35
+6-17;24-38;24-45
+13-33
+17-20;16-24;31-37;24-38
+1-6;13-33;17-29;6-7;16-17
+17-26;24-31
+8-24;17-18;32-42
+23-24;21-31
+20-22;8-28;39-42
+18-23;3-9;19-20
+1-4;1-9;17-18;32-48
+8-16;31-47
+1-11;32-42;5-8
+1-11;15-19
+1-4;13-33;17-36;16-17;9-17
+23-24;27-28;24-50
+1-5;39-42;5-8
+13-32;17-18;32-48;18-23
+8-28;17-24
+11-38;11-17;6-25
+31-45
+1-5;39-42
+
+15-19;6-28;32-44
+25-26
+1-5;24-31;24-45;3-9
+31-46;40-49
+21-31;11-38;31-47
+1-5;1-8;6-7;9-19
+25-26
+1-6;23-24;32-42
+1-4;17-18;17-28
+0-1;17-29;7-13
+9-15;5-32;19-41
+19-51
+15-18;31-46
+6-34;6-11;19-20
+6-11
+17-24;17-26
+24-38
+11-24;5-7;19-51
+1-10;14-16;8-16;17-35;33-40;6-17;24-38
+18-23;19-51
+1-6
+
+
+25-26
+1-6;1-11;19-41
+14-17;20-22;9-30;24-31
+17-18;19-51
+8-28;33-40;32-44;40-49
+1-7;25-26;8-20;24-50
+
+33-39;9-17
+14-16;27-28;17-18;6-28
+11-24
+14-17;20-21;17-20;24-45
+25-26;16-29;48-49
+
+1-9;12-13;15-18
+17-25;39-42;32-48
+17-29;11-38;7-13
+20-22;25-26;27-28;16-17;24-45
+8-24;11-24;16-24;32-48;19-20
+33-39
diff --git a/examples/failures/failures-0.04 b/examples/failures/failures-0.04
new file mode 100644
index 0000000..b8539fb
--- /dev/null
+++ b/examples/failures/failures-0.04
@@ -0,0 +1,1000 @@
+1-4;8-26;33-40;31-45;38-43;9-15;9-20;40-49
+15-19;11-24;6-8
+8-20;17-24
+9-30;3-9
+21-31;6-8
+2-3;1-4;25-26;6-25;31-46;32-48;32-44
+23-24;19-51
+1-11;33-39;48-49;5-32;24-50
+6-28;31-46;32-44;7-13;9-17
+1-7;8-28;6-17;32-48
+2-3;13-33;5-32
+0-1;15-18;17-35;17-20;6-34;9-20;24-38
+15-19;17-25;6-8;31-46;32-44
+8-16;6-34;40-48;19-41
+33-39;40-49
+
+9-20
+1-8;33-40;16-29
+20-21;27-28;32-48;24-50
+1-8;20-22
+14-15;15-19;11-38;33-40;48-49
+14-16;21-31;3-9;19-41
+6-25;19-51
+27-28;17-36;6-17
+2-3;14-16
+17-29
+25-26;8-26;13-32;16-24;9-15
+1-9
+17-24
+31-46;19-20
+1-11;11-38;6-8;9-20
+16-24
+12-13;14-15;21-31;13-32;17-25;38-43
+1-7;1-11;11-24;31-45;5-7
+17-26;11-17;7-13;5-32;40-49;3-9
+13-32;31-47;9-20;5-32;24-50
+33-39;9-20
+8-28;6-11;32-48
+12-13;6-8;6-17
+15-19;8-28;11-17
+17-28
+1-8;6-28;6-11
+15-18;8-26;17-24;9-19
+20-21;17-35;33-39;9-19
+14-16;11-38
+13-32;17-36;6-7;9-20;24-45
+8-28;13-33;17-26;9-31;5-8;24-38
+
+17-28
+8-24;16-17;5-8
+20-22;9-20;24-50
+1-4;31-45
+2-3;1-7;6-7;24-31
+1-11;3-9;19-41
+11-17;38-43;24-31
+27-28;9-20;5-7
+14-16
+8-26;17-26;6-17;32-44
+2-3;20-21;17-28;6-34;39-42
+8-26;9-31
+16-24
+25-26;7-13;40-48;24-38
+31-45;5-32
+0-1;2-3;8-24;24-31;19-20
+8-28;19-20
+0-1;13-32;31-37
+6-17;40-48
+0-1;8-16;17-28;5-7
+0-1;48-49;5-32
+2-3;14-16;8-28;17-35;17-24;32-48;24-45
+2-3;1-5;17-36;9-30;24-45
+1-8;23-24;17-29;33-40;16-17;19-41
+15-18;6-34;16-24;31-47;9-20;9-30;24-31
+11-38;31-45;32-48
+1-6;25-26;16-17;31-45;31-47;32-44
+2-3;8-26;6-11;24-38
+1-5;14-17;13-32;17-26;9-15;9-17
+1-11;14-17;11-38;9-20
+17-35;17-20;6-7
+15-18
+1-9;40-49
+17-24;6-8;24-31;24-50
+
+13-32;6-25;40-48
+24-50
+12-13;27-28;13-32;13-33
+14-15;21-31;6-28;39-42;32-48;9-15
+14-17;6-8;9-20
+31-46
+16-29;7-13;9-17;5-8;5-7
+0-1;17-18;24-45
+1-8;12-13;14-16;17-36;31-47;32-48
+16-29;24-45
+1-9;31-47;5-32;40-48;24-45
+33-39
+1-4;11-24;32-48
+1-4;12-13;13-32;9-31
+1-11;9-19
+14-17;8-20;39-42;9-19;40-48;19-41
+12-13;31-46
+1-11;20-22;6-17;16-24
+1-6;15-19;17-25;48-49;9-20
+20-22;25-26;11-38;9-15
+14-16;13-32;11-24;6-7;16-29;31-45;31-46;9-20;18-23
+17-35;32-44;40-48
+12-13;31-37;18-23;40-49
+1-10;8-16;11-24;16-17
+15-19;8-20;32-44;5-32
+1-8;15-19;8-26;9-20
+11-24;38-43;40-48
+6-34;31-37;3-9
+1-7;6-17
+6-17;9-30;40-48;3-9
+25-26;33-40
+1-10;39-42;19-51
+1-9;17-36;31-45;9-20;19-20
+1-5;20-22;31-45;40-48;40-49;19-20
+2-3;1-8;1-9;20-22;17-25;6-11
+1-4;20-22;17-26;39-42;9-31
+0-1;17-26;9-17
+12-13
+0-1;15-19;8-24;11-24;6-17;7-13
+2-3;1-5;1-11;21-31;6-25;38-43
+12-13;8-16;17-29;33-39;6-7
+11-17
+1-7;8-20;11-24;19-41
+21-31;17-24;11-17;16-17
+14-15;14-17;9-20;24-50;19-51
+2-3;6-28
+16-29
+6-7;24-38;24-50
+33-39;16-24;9-20;24-45
+16-17;24-45
+0-1;21-31;24-31
+19-41
+16-29;18-23;24-31
+6-17;9-20;5-7;24-31
+1-8;21-31;16-24
+17-35;17-36
+6-8
+15-19;17-29
+0-1;8-28;48-49;9-30
+8-26;17-20;6-28;39-42;16-24;3-9
+0-1;15-18;17-28
+21-31;6-7;6-25
+11-38;33-39;33-40;9-20;5-7
+14-16;33-40;9-20
+
+38-43;9-15;18-23;24-50
+1-7;19-20
+1-6;12-13;13-32;9-20
+17-24;6-28
+8-20;19-51
+1-10;6-17;9-19
+6-11;9-19
+11-38
+13-32;17-25
+24-31
+2-3;1-5;9-15;18-23
+9-17
+8-16;17-35;11-17;6-28;9-20
+14-16;17-26;24-31
+1-5;17-35;17-36;3-9
+1-6;1-10;8-16;13-33;5-32;24-31
+8-28;11-17;6-17;39-42;24-45
+0-1;25-26;17-24;9-20;24-38
+8-28;17-25;5-32;19-41;19-20
+17-35;6-25;31-37
+0-1;8-16;6-8;6-11
+8-28;17-20;17-28
+8-24
+33-40;32-44;9-20;24-38
+6-25;40-49;24-31
+14-16;21-31
+11-38;33-40;31-47;32-44;7-13
+0-1;1-9;6-7;9-20;9-30
+14-15;17-25;17-29;16-24;9-20;24-38
+15-19;16-17;31-46;9-31;9-30;5-8
+1-8;23-24;17-28;39-42;24-31
+8-20;6-25
+1-7;8-16;6-34;5-7
+
+16-29;9-20
+5-8
+14-16;17-36;19-41
+20-22
+1-4;25-26;9-20
+8-20;17-20;11-17;40-49
+6-11
+13-32;33-39;32-42
+25-26;17-28;17-29;9-20
+20-21;9-20;5-7;19-51
+23-24;6-7;6-8
+1-6;6-17;6-11;31-47
+8-28;5-32;24-38;3-9
+14-15;17-35;6-25;6-34;7-13
+1-9;13-33;32-42;24-50
+1-7;9-20;5-32
+2-3;1-9;17-28;6-17;19-51
+20-22;25-26;19-20
+20-21;20-22;5-32;19-20
+27-28;8-16;13-33;6-17
+1-10;15-19;20-22;17-26;11-17;31-37;40-49;24-45
+27-28;17-26;24-45
+1-8;32-48;9-20;9-31;24-50
+1-6;24-31
+0-1;6-25;16-24;38-43
+14-16;23-24;17-24;11-38;48-49;9-19;24-31
+0-1;1-4;8-26;32-48;9-30;9-19;18-23
+1-4;1-11;17-18;9-20;19-41
+17-28;31-47;48-49;9-30;24-38
+11-38;3-9
+6-11;7-13
+15-18;31-47
+
+20-21;8-16
+2-3;1-11;17-29;6-8
+
+0-1;1-10;14-15;17-28;33-39;18-23;3-9
+1-9;9-15;9-20;19-41
+0-1;15-19;25-26
+2-3;15-19;17-18;17-24;11-38;6-28;38-43
+32-48
+17-35;11-17;6-7
+8-26;17-35
+1-8;6-8
+8-26;5-8
+1-6;1-8;12-13
+1-7;25-26;32-48
+1-7;1-10;17-35;5-32;18-23
+20-21;6-11;9-15;9-20
+18-23
+1-4;12-13;32-48
+0-1;1-9;31-45
+8-16;17-18;6-25;39-42
+12-13;13-32;17-18;11-24;6-8;18-23;3-9
+12-13;16-24;9-20;5-7
+1-11;20-22;17-24;11-38;32-48
+8-24;9-17
+27-28;16-17;32-44
+
+15-19;17-25;6-34;16-24;32-48;18-23
+1-10;8-26;32-44;24-31;19-41
+14-16;11-24;9-17
+15-18;27-28;17-28;17-26;32-42;38-43;24-31
+17-26;32-48;9-20;9-30;9-17
+16-29;9-20
+11-24;6-28
+14-15;33-39;6-17;32-42
+25-26;39-42;31-47
+8-16;11-17;32-48
+17-25;31-47;32-42;9-20;24-31
+8-24;21-31;17-35;16-29
+17-36;6-7;31-46;9-31;24-31
+1-4;1-9;14-15;17-20;17-18;11-17;32-42
+1-4;21-31;13-33;31-45;31-37;7-13
+1-9;23-24
+25-26;27-28;17-25;9-30
+1-11;8-20;16-17;31-46;9-20
+8-26;17-29;31-47;5-7
+1-6
+12-13;17-24;6-11;31-47
+25-26;17-18
+6-7;9-19;5-32;40-49
+11-24;32-42;9-19
+15-19;20-21;13-33;24-45
+14-16;27-28;8-20
+39-42;31-45;32-42
+1-7
+38-43;24-31
+8-16
+1-7;6-11;16-24;24-31
+1-8;27-28;40-48
+6-25;32-44;5-8;40-49
+15-18;17-18
+39-42
+1-7;20-21;25-26;17-18;40-48
+17-35;6-25;19-41
+8-28;11-17
+24-38
+14-17;17-35;11-38
+1-6;8-28;9-15;9-30
+7-13
+8-28;17-29
+20-22;17-20;9-30;19-51
+12-13;39-42;32-42
+1-5;1-6;1-9;17-26;33-40;40-48;24-38
+17-26;16-24;19-41
+17-18;32-42
+14-17;19-51
+1-8;17-24;9-20;9-30;9-19;19-51
+12-13;14-17;15-19;9-15
+14-15;17-20;17-24;31-45
+16-24
+1-6;11-24;16-29;38-43;40-49
+48-49
+1-8;9-31;40-48;24-31
+25-26
+2-3;11-17;48-49;24-31
+1-9;14-17;13-33;17-29;17-36
+1-4;14-17;8-24;17-18;33-40;6-7;6-8;9-15;19-51
+20-22;38-43;9-19;5-7
+1-9;14-15;11-24;32-44;5-32;40-48
+1-6;15-19;40-48
+1-11;25-26;17-24;6-11;5-7
+12-13;8-24;17-25;16-24;5-32;19-41
+1-7;17-20;17-18;31-37;32-44;24-38
+1-10;3-9
+12-13;20-21;23-24;5-8;40-48;19-51
+1-5;1-9
+1-10;8-20
+13-33;11-17;18-23;24-38
+20-22;8-26;11-17;5-32
+21-31;17-35;33-39;33-40
+31-45;24-31
+14-15;23-24;17-25
+11-24;9-30;24-31;24-50
+1-10;17-20;6-8
+23-24;9-19;5-8;40-48
+8-20;8-24;11-24;9-19;24-45;19-51
+1-5;8-28;6-7
+16-29;16-17
+1-4;14-16;8-28;16-24;9-31;24-31;19-41
+20-22
+8-16;17-28;18-23;40-49
+1-9;8-28;8-26;17-25;5-7;24-31
+6-8;32-48;24-38
+11-38;33-39;6-17
+12-13;17-20;17-26
+14-17
+6-7;38-43
+14-15;25-26;9-17;24-31
+6-28
+8-24;11-24;7-13;40-49;24-31
+27-28;6-34;16-29;18-23
+16-29;16-17;18-23;19-41
+27-28;17-29;16-29;24-45
+17-35;32-48;24-45;24-50
+1-8;31-45
+25-26
+1-8;14-17;13-32;6-11
+
+1-8;8-26;17-29
+8-16;13-33;17-36;32-42;9-17;24-45
+14-15;8-24;6-11;31-45;18-23;24-45
+2-3
+17-20;19-51
+1-4;8-20;8-16;3-9
+
+8-28;48-49
+33-39;33-40;9-30;5-32;40-49
+8-28;6-28;9-17
+20-21;11-38;6-7;6-25;6-8
+25-26;8-28;16-29
+5-8;18-23;24-50
+1-9;15-18;17-20;11-17;40-49;19-41
+38-43;9-17
+15-19;17-18;6-25
+1-9;16-24;9-15
+12-13;14-16;19-51
+14-17;11-17;5-8
+14-17;16-17;31-47;7-13
+1-8;12-13;8-16;6-25
+6-34;31-37;31-47
+8-20;16-29;5-32
+48-49;24-50
+17-35;18-23
+17-28;16-17;9-15
+1-5;1-11;20-21;17-28;6-7;9-15
+6-7;31-37;24-31
+14-15;39-42;32-44
+1-6;14-16;14-17;23-24;17-26;6-17;6-34;31-37;24-31;19-20
+17-29;5-7
+12-13;13-32;32-48;9-19;24-38
+0-1;21-31;17-35;9-19
+15-18;8-26;16-24;48-49
+0-1;12-13;33-40
+17-20;16-29;32-48;24-31
+1-9;6-7;48-49;24-38
+14-16;31-46
+17-28;17-25;6-11
+
+32-48;5-7
+19-51
+0-1;20-21;20-22;6-11;39-42;32-42;38-43
+15-18;15-19;20-22;11-38;31-45;48-49
+0-1;1-5;13-32;11-24;32-48
+1-6;33-40;32-42;9-30
+48-49;24-31
+11-24;7-13
+15-18;39-42;31-47;9-20
+1-4;8-28;13-32;17-36;6-25;6-17;32-42
+8-26;13-33;17-29;31-47
+1-5;8-28;11-24;11-17;16-24;9-17
+14-16;32-42
+15-18;8-28;48-49
+1-11;31-45;38-43
+8-16;13-32;7-13
+48-49;9-31;5-32
+1-10;20-22;23-24;17-28;11-38
+27-28;11-24;6-25
+1-9
+20-21;5-8
+31-37
+1-7;13-32;17-25;9-31
+15-18;48-49;19-20
+1-10;24-45
+1-8;32-44;5-8
+8-26;31-37;31-47;19-41
+1-10;23-24;3-9
+13-32;6-8;39-42;31-37;31-47;32-44
+1-6;14-15;17-36
+11-38;31-46;31-47;19-20
+1-9;23-24;17-26
+17-25;11-38;6-11;31-46
+15-18;13-33;17-28;17-36;33-39
+1-10;1-11;14-16;15-19;17-24;6-17;6-34;16-24;24-38
+21-31
+16-17;7-13
+14-17;20-21;6-11;9-30
+
+16-24;19-20
+1-7;8-28;33-39;3-9
+16-24;31-37;3-9;19-20
+13-32;6-34
+1-6;8-28;16-17;32-42
+1-10;5-32
+1-8
+1-9;21-31;17-29;6-25;16-17;32-42;9-19;5-7
+17-20;9-19
+20-21;13-32;13-33;17-24;6-28
+21-31;32-42
+1-10
+38-43;9-15;24-31
+21-31;13-32
+12-13;15-19
+8-24;40-49
+1-4;17-36;11-17;6-8
+1-6;8-16;11-38;19-51
+2-3;21-31;17-25;6-34
+32-48;19-41
+11-24;3-9
+15-19;24-50
+25-26;8-20
+17-29;6-28
+0-1;33-39;9-20
+1-6;8-24;16-29;9-20
+15-18;8-24;5-8;24-45
+6-34
+6-17
+32-42;48-49
+25-26;31-45;32-48;7-13;5-32;19-41
+1-8;13-33;6-11;5-8
+14-15;8-28;9-31
+20-22;8-16;21-31;9-15
+17-26;17-29
+15-18;20-21;17-26;32-42;38-43
+1-7;17-29;38-43;24-38;19-51
+8-16;17-35;6-7;39-42;24-50
+1-9;17-28;9-31
+1-7;1-10;8-26;33-39;32-42
+1-9;14-17
+14-17;13-33;39-42;9-17;40-49;24-45
+1-5;1-10;1-11;27-28;32-42;24-38
+14-16;13-32
+17-35;17-29;11-17;16-29
+15-18;32-42
+20-22;8-26;17-20;11-38;6-7;16-17;18-23;3-9
+
+20-22;6-17;38-43;5-32;24-38
+1-5;20-22;32-42;18-23
+8-20;6-28;32-44
+1-7;23-24;17-24;40-49
+31-47;32-42
+0-1;8-16;33-39;16-24;32-44;7-13;3-9
+31-47
+0-1;14-16;15-18;39-42;19-41
+1-8;20-21;17-29;6-7
+25-26;16-29
+8-26;17-18;17-26;16-24;31-37;7-13
+1-8;33-40;6-25;16-24;18-23
+
+33-39
+1-4;14-17;17-36;6-17
+31-37;9-19;40-48
+1-5;12-13;6-28;9-19
+0-1;15-18;17-24;19-41
+16-29
+23-24
+1-5;1-10;1-11;27-28;11-24;31-37;9-15
+1-8;15-18
+31-45;9-30;19-20
+6-7;6-11;31-45;24-38;24-50;19-20
+1-6;27-28;8-16;8-26;13-33;9-30;3-9
+33-40
+
+1-7;1-10;33-39;6-11;16-29;5-7
+17-20;17-26;6-25;6-17;32-42
+0-1;1-6;17-26;16-29;31-46;5-8
+1-8;16-17;48-49
+11-24;39-42;32-42;7-13
+14-15;6-28;6-8;24-31
+18-23
+20-21;20-22
+
+1-4;17-20;17-36;31-46
+0-1;1-6;11-38;16-17;38-43;24-50;3-9
+16-29;9-31
+0-1;1-9;19-41;19-20
+8-26;17-24;6-28;16-29;19-20
+0-1;17-18
+8-16;21-31;17-29;18-23
+1-8;17-25;11-17;48-49
+40-49
+6-8
+1-7;8-20
+2-3;17-20
+15-18
+12-13;17-29;32-48;9-31
+1-6;14-15;40-48
+25-26;5-32
+13-33;17-28
+1-10;14-16;14-17;17-35
+1-6;27-28;17-35;17-36;5-7;24-31
+1-8;12-13;8-20;17-25
+17-18;32-42;24-45
+
+1-4;1-5;1-6;15-18;6-28;16-29;31-45;24-38
+1-4;20-21;17-29;16-24;32-42
+1-10;6-7;6-11;40-48
+0-1;15-19;9-30;19-41
+
+1-6;1-10;14-17;6-8;39-42;32-48;7-13;19-51
+17-25
+0-1;33-39;39-42;31-45
+14-16;20-22;8-26;17-20;17-18;11-38;6-11;5-32;40-48
+20-22;32-44
+15-18;21-31;13-33
+14-15;8-28;16-29;3-9
+17-26;6-34;32-44;9-19
+0-1;17-26;33-39;6-8;9-19;19-41
+25-26;8-20;11-24;18-23
+0-1;20-21;32-44;5-8
+1-8;38-43
+
+15-19;21-31;6-11;9-20;5-8
+1-8;1-10;32-48
+17-18;6-34;39-42
+21-31;33-39;5-32
+15-19;16-29;24-45
+1-4;17-35;32-48;48-49;24-38
+1-4;1-7;27-28;8-26;21-31;17-36;16-17;18-23
+0-1;11-17;6-17
+1-9;17-20;7-13
+
+1-11;31-45;24-38
+
+1-9;17-29;11-17;16-29;7-13;9-17;18-23;24-50
+1-6;14-16;20-21;23-24;17-18;11-17;16-24;9-17
+
+1-11;17-18;17-25;32-42;40-49
+16-29;48-49
+9-30;24-31
+16-24;32-42;9-17;5-32
+8-28;5-7
+17-20;17-29;31-37
+1-8;8-28
+1-9;6-8;6-17
+14-15;13-32
+8-20;8-16;13-33;31-46;19-41
+1-7;15-19;20-22;17-18;17-25;40-49
+20-22;33-40;6-7;48-49;24-31
+24-45
+1-4;8-24;32-44;24-45;24-50
+1-4;14-15
+17-29
+1-11;17-35;17-36;32-44;5-7
+12-13;8-20;48-49;19-20
+19-20
+1-7;6-17;16-29;38-43;18-23
+17-18;17-25;5-32;40-49
+16-24;48-49
+1-5;17-26;11-17;33-40
+12-13;17-26;31-46;7-13
+8-16;13-33;16-17;5-8
+8-26;17-29
+8-20;17-35;16-24;31-45;31-46;31-47;18-23
+1-6;8-24;6-7;48-49
+1-5;39-42
+20-21;17-18;5-8;3-9
+6-8;16-17
+25-26;27-28;48-49;7-13;19-51
+1-8;12-13;6-8
+
+1-8;17-24;48-49;38-43;5-32;24-38
+21-31;9-19;24-45
+1-4;9-19
+25-26;31-45;48-49;5-7
+21-31;17-20;6-17;16-24
+1-7;14-15;17-18;17-36;9-31;9-30;24-38
+1-11;6-34
+17-25;11-17
+8-26;13-33;9-15;9-30;3-9
+14-17;23-24;39-42
+1-6;14-17;8-16;19-41
+31-37;24-38
+0-1;33-39;38-43
+11-38;6-28;31-37;48-49;9-17;24-50
+15-18;8-28;6-34
+1-9;17-35;17-18;6-25;6-11;16-17;5-7
+0-1;19-20
+1-8;11-24;7-13
+24-31;19-41
+15-19;16-17
+14-17;33-39;32-42;48-49
+1-10;27-28;11-24;11-17;31-47
+2-3;14-16
+1-6;17-20
+1-4;1-7;15-18;20-21;20-22;31-37;9-17;19-51
+1-4;20-22;16-17;24-45
+0-1;20-22;27-28;17-24;17-36
+17-18;24-50
+1-9;14-17;24-38
+8-28;9-15;9-30
+1-11;14-17;17-25;17-26
+17-26;5-32
+5-8
+1-5;48-49;9-15;3-9
+2-3;1-10;14-16;15-18;19-20
+17-18;19-20
+1-7;16-29
+1-8;1-10;15-19;17-18;11-38;5-7
+13-33;7-13;24-50
+2-3;1-6;48-49
+14-17;13-32;6-34
+14-15;9-30
+11-38
+9-31
+1-10;15-18;8-16;11-17
+39-42;16-29
+8-24;13-33;40-49;3-9
+8-16
+0-1;1-4;6-11
+14-17;8-26;17-20;16-24
+14-17;31-45;32-42
+8-28;38-43;9-31
+11-38
+1-11;14-15;20-21;27-28
+8-20;11-24;9-31;19-41
+17-24
+15-19;17-28;33-39;16-29;9-19
+14-16;9-19
+0-1;20-22;27-28;6-11
+20-22
+0-1;1-7;1-9;14-17;17-20;16-17;5-7
+11-24
+1-10;17-29;33-40;6-28;16-24;16-17;9-20
+8-20
+1-5;11-17;16-17
+6-7;16-29
+25-26;8-16;11-38;6-8;31-46
+13-33
+0-1;17-20;31-45;19-51
+8-28;17-24;39-42;31-46;5-32
+1-10;6-25;6-17;9-15
+14-15;8-20;8-28
+1-11;17-26;17-36;16-24
+20-21;48-49
+2-3;8-28;16-29
+1-10;23-24;6-8
+1-5;15-19;32-44;9-30
+1-9;1-11;6-28;16-29;5-8;24-31
+13-33;9-30;5-8
+17-35
+
+17-35;31-37
+20-21;8-16;6-7;5-8;19-41
+8-26
+1-10;23-24;21-31;39-42
+17-18;18-23;3-9
+15-18;8-16;6-17;32-42
+1-5;31-37;5-32
+25-26;21-31;9-17;24-31
+14-15;6-11
+1-8;16-29;24-38
+1-10;11-38;33-40
+1-8;31-37
+14-16;20-22;40-49
+1-10;15-19;20-22;27-28;31-37;48-49
+15-18;21-31;17-36
+15-18
+6-7;16-29;19-51
+1-7;23-24;8-28;6-11;31-45;5-32;3-9
+8-20;21-31;13-33;6-25;16-29;31-45;31-47
+2-3;8-26;17-25;7-13
+12-13;5-32;40-48
+17-20
+19-20
+1-6;48-49;24-45;3-9
+15-18;11-38;33-40;5-7;40-48
+6-7;6-34;9-15
+17-18;9-20;9-31;24-50
+1-10;8-20
+17-35;6-8;32-44;9-30
+17-28;11-24;16-29
+1-9;17-24;48-49;40-48
+9-19
+17-29;9-19;40-49;24-38
+15-19;13-33;17-25;6-34;5-32
+17-26
+1-4;8-20;8-26;33-40;9-15
+11-24;5-7
+12-13;6-34;16-24
+27-28;17-36;24-38
+8-24;17-28;24-50;19-20
+39-42;16-29;40-48
+6-25;19-41
+32-42;3-9
+1-10;24-31
+20-21;8-20;17-24;6-28
+14-15;32-42;40-48
+14-16;33-40;31-45;5-8
+1-7;5-32;40-49;24-45
+21-31;17-28;11-24;16-17;31-45;9-15;24-45
+1-8;1-9;17-28;32-42;3-9
+48-49
+17-20;6-25;9-15;40-48;19-51
+24-31
+1-6;8-24;17-35;17-25;11-38;6-17
+9-31
+23-24
+38-43;19-20
+1-4;31-45;40-49;19-20
+14-16;17-20;5-7
+2-3;14-17;8-16;17-36;5-32
+1-5;11-17;6-28;31-46;9-31
+8-28;21-31;31-47;24-31
+20-21;20-22;17-36;19-51
+1-11;20-22;8-28;17-25;33-39;31-47;9-30
+1-9;15-19;31-37
+0-1
+1-11;6-7;9-30;18-23;40-48
+0-1;27-28;8-24;40-49
+8-26;39-42;19-41
+14-17;9-17;24-45
+1-6;1-9;14-17
+1-5;17-24;33-39;24-45
+11-38;40-48
+12-13;27-28;19-51
+13-33;6-25;31-46;3-9
+21-31;9-17
+25-26;17-26;31-45;18-23;24-50
+8-26
+17-29
+11-17;32-42
+11-24;31-37;9-15;3-9
+1-5;1-7;17-20;17-29;17-36;32-44
+11-38;6-17
+2-3;17-35
+6-11
+15-18;33-39
+14-15;8-26;33-40;6-25;31-37;9-19;5-32;5-8;24-31
+20-21;8-24;13-33;9-19
+2-3;17-20;17-25;9-17
+6-11
+
+13-32;11-38
+1-8;1-9;38-43;9-20;5-32
+1-10;13-33;17-29;31-47;32-44;9-31;19-51
+31-37;48-49
+1-6;1-8;23-24;8-16;6-8
+5-8
+12-13;8-24;38-43
+20-21;13-32;11-17;16-24;9-30
+6-17;31-37;5-32
+33-39;33-40;39-42;48-49
+27-28;17-24;9-30
+12-13;8-26;17-29
+15-18;15-19;20-22
+6-34
+1-4;8-28;16-24;32-42
+14-15;13-32
+8-28;16-17;7-13
+1-9;6-28;32-42;9-17
+1-7;1-11;15-19;21-31;13-33;24-50
+15-19;17-36;24-45
+6-7;24-45
+8-24;21-31;13-32;33-40;31-45
+20-21;17-35;9-17;3-9
+6-25;5-32
+15-18;19-41
+
+8-20;17-24;6-28
+1-5;14-16
+13-32;17-26
+8-26;17-26
+1-9;9-17;19-51
+11-24
+21-31;24-31;24-50
+20-21
+2-3;6-7;7-13;19-20
+1-4;20-22;8-20;39-42
+1-4;1-10;15-18;9-17;19-20;19-51
+1-4;1-7;15-19;6-11;5-7
+1-5;15-19;17-25
+17-29;6-8;31-45;32-44;40-49
+11-38
+1-11;8-28;13-33;17-36;3-9
+16-24;19-41
+8-20;8-28
+1-11;32-42;38-43
+2-3;15-18;8-28;8-26;9-31;5-8
+1-11;20-22;6-28;19-51
+27-28;33-39;33-40
+1-6;32-42;9-30
+1-5;14-16;25-26;17-29;39-42;31-46;40-49
+33-40
+12-13;11-17;6-7;9-31;24-45
+17-24;9-19
+0-1;9-15;9-19
+1-7;11-38;16-17;40-49
+0-1;15-18;25-26
+1-8;12-13;15-19;13-33
+1-5;20-22;17-24;31-37;9-20
+20-22;19-51
+1-4;31-46;31-47
+1-4
+1-6;8-16;21-31;17-18;33-39;16-17;24-50
+1-10;13-33;17-20;16-29;31-46;9-31
+25-26;17-25;17-36;19-51
+1-5;1-11;16-17;19-41
+17-29;6-8
+38-43
+1-11;11-24
+6-17
+1-5;1-6;1-10;33-39;7-13;24-31
+25-26;6-11;19-20
+8-26;17-26;11-17;16-17;48-49;24-31
+14-16
+17-18;6-25
+48-49;19-41;19-51
+1-9;31-47;32-42;5-32;24-50
+20-21;23-24
+13-33;17-28;17-24;17-25;31-47
+1-8;27-28;32-42;9-30
+9-19
+1-5;8-16;8-24;40-49
+6-34;48-49
+1-4;6-7;38-43;9-30;5-7;24-45
+23-24;17-18;9-15
+
+1-10;14-16;17-18
+15-18;23-24;19-41;19-20
+
+1-9;1-10;20-22;8-20;17-20;17-36
+12-13;20-22;23-24;8-24;5-8;24-50
+12-13;27-28;17-35;17-29;6-34;9-19;5-7
+1-11;20-22
+17-35;17-24;17-29;6-8
+14-15;13-33;9-15;3-9
+31-47
+12-13;17-18;11-17;39-42;31-37;5-8;40-49
+15-18;6-34;16-24;31-47;19-41
+0-1;33-39;38-43
+2-3;8-16
+2-3;23-24;17-20;32-48
+1-8;31-37;32-44
+20-21
+1-10;20-21;16-24
+1-8;23-24;17-25;32-42
+1-4;6-34;32-44;38-43;24-50
+1-10;14-15;11-24;39-42;32-48;5-7;24-31
+15-18;6-7;24-45
+1-9;14-16;17-18;9-19
+13-33;6-11;9-19
+1-7;1-9;17-24;39-42;9-17
+
+14-17;17-29;17-36;33-40
+17-18;6-7;31-37;24-45
+15-19;8-26;17-28;17-26;6-28;32-42;24-50;19-51
+6-11;19-41
+9-30
+13-33;11-24;7-13;9-31;24-31
+17-35;17-18;9-17;5-32
+1-8;14-15;8-24;9-15
+33-39;32-42
+40-49
+14-17;31-46;24-38;19-20
+2-3;14-17;17-28;11-24;11-17;6-7;24-31
+1-5;24-38
+15-18;17-26;11-17;32-48
+24-50;3-9
+24-31
+15-18
+1-4;17-18;33-39;24-38
+1-7;8-28
+21-31;24-45
+8-28;5-8
+14-17;15-19;13-33;39-42
+14-17;15-19;25-26;17-24;31-45
+1-5
+23-24;8-16;21-31;17-25;17-26
+27-28
+19-41
+1-11;21-31;17-25;32-44;24-45
+17-29;19-20
+12-13
+32-44;32-42
+14-17;8-20;17-18;33-39;6-25;24-50
+12-13;14-17;11-17;31-46
+32-42
+17-35;5-32;24-38
+1-6;12-13;16-17;9-31;40-49
+1-7;11-38;39-42;40-48
+13-33;17-24;17-25;6-11;32-42
+12-13;20-21;23-24;17-29;16-24
+1-4;1-5;1-6
+1-4;17-28;32-42;24-38
+17-20;31-37;40-48
+6-11;24-50
+1-11;6-7;16-24;38-43
+17-26;17-36
+8-28;6-17;40-48;19-20
+9-17;5-8
+1-9;17-25
+17-29;31-47
+17-20;31-37;9-31;5-32
+25-26;39-42;16-29;31-47;5-7
+
+8-26;31-45;9-19;3-9
+15-19;6-7;9-19
+17-24;6-34
+1-6;14-16;20-21;16-24;38-43;18-23
+17-25;6-17;40-48
+23-24;8-16;11-24;32-48;5-32;19-20
+1-8;17-29
+
+1-8;27-28;17-35;17-20;6-7;24-31
+8-16;17-18;11-17;16-24;16-29
+20-22;6-34
+20-22;16-17
+8-16;11-24;6-25
+27-28;17-28;6-8;5-8;3-9
+15-18;20-21;16-24;31-47;40-48
+13-33;17-20;48-49
+1-8;17-28
+1-6;8-26;17-36;31-47;7-13
+6-34;16-29;16-17;31-45
+6-17;48-49;5-8;40-49;3-9
+15-19;16-29;5-7;40-48
+21-31
+6-25
+17-28;9-17;18-23
+2-3;1-6;5-32;40-48;40-49
+17-24;32-42;48-49
+11-38
+14-16;17-36
+1-8;8-16;24-50
+20-21;8-24;6-28;6-11;16-29;9-17
+1-6;1-8;12-13
+2-3;8-16;13-33
+8-20;3-9
+31-47;18-23
+13-32;17-20;17-26;9-17;24-38
+17-26;31-45;7-13
+11-38;9-17
+1-6;1-11;17-35;6-28;16-29
+12-13;6-28;9-30;19-41
+1-7;17-36;6-7
+1-9;20-21;27-28;33-40;6-8
+8-20;13-32;32-44
+24-50
+20-22;31-46;7-13;5-7;18-23
+20-22
+17-20;9-31
+25-26;8-16;21-31;13-33;31-45;24-45
+13-32;17-35;6-8
+8-28;17-29;16-29
+15-19;8-26;32-48;9-20;9-17
+14-16;13-32;31-46;32-42;40-49;19-51
+8-28;11-38;33-40;9-31
+11-17;31-47;5-32
+6-28;24-31
+23-24;13-32;17-24;17-25;31-47;9-15
+1-4;6-8;9-19;5-7;18-23
+1-7;17-20;11-24;16-17;32-42;9-19;24-50
+15-19;20-21;31-46;3-9
+0-1;8-26;31-37
+11-24;32-42
+14-15;15-18;15-19
+1-9;14-16;9-30
+13-33;16-29
+17-36;6-7
+17-25;31-37;7-13;5-8
+1-11;11-38
+33-39
+1-6;8-20;8-26;13-32;6-25;6-11
+0-1;17-29
+1-8;14-15;27-28;31-37
+0-1;6-17;32-44
diff --git a/examples/failures/failures-0.05 b/examples/failures/failures-0.05
new file mode 100644
index 0000000..3cabb18
--- /dev/null
+++ b/examples/failures/failures-0.05
@@ -0,0 +1,1000 @@
+1-4;1-7;1-8;13-33;17-25;11-17;5-32;24-45
+14-16;6-7;48-49;5-7;40-49
+2-3;17-24;32-48;9-15
+1-4;1-5;1-7;19-20
+1-7;21-31;11-17;31-47;48-49
+20-21;17-18;9-31;40-49;19-20
+1-6;15-18;6-7;9-19;24-45
+17-20;6-17;6-11;16-24;32-44;9-19;24-38;24-31
+14-16;17-29;6-25;9-19
+8-24;6-7;6-8;9-19
+12-13;6-11;38-43;24-38;24-50
+2-3;1-11;9-31
+0-1;1-6;14-15;25-26;11-24;3-9
+2-3;33-40;32-48
+23-24;8-26;13-32;17-26;11-38;16-24;16-29;16-17
+8-28;17-26;33-40;7-13;9-30
+1-5;13-32;39-42;48-49;9-15;18-23
+1-6;1-11;12-13;8-16;6-11;5-7
+2-3;15-18;32-42;38-43;5-7
+2-3;17-35;17-18;9-17;5-32
+11-17;6-17;6-11;9-30;19-51
+0-1;1-6;17-35;17-18;38-43
+31-46
+31-47;5-32
+17-24;32-42;48-49;40-49
+2-3;17-20;17-29;39-42;18-23
+2-3;1-5;14-17;17-28;11-24;11-17;33-40;6-7;24-31
+17-24;6-25;7-13;19-41;19-51
+1-10;3-9
+25-26;13-32;17-20;40-49
+1-4;1-8;15-18;15-19;31-45;31-46;32-42;7-13
+
+1-7;8-28;9-15
+0-1;17-20;31-47;5-8;40-48
+12-13;14-16;9-15;24-38;24-50
+21-31;39-42
+1-9;14-16;3-9
+14-16;11-38;16-17;38-43;5-32;18-23
+14-17;15-19;25-26;8-28;17-24;17-25;31-45
+1-11;17-36;6-8;6-34;32-44
+1-7;1-10;17-24;17-36;31-46;48-49
+33-40;6-28;6-25;6-17
+17-24;11-38;39-42
+14-15;33-40;6-28;3-9
+1-5;17-24;17-29;16-17;9-15;19-20
+15-19;8-16;13-32;31-45;5-8;40-48
+15-18;8-20;13-33;17-24;6-28
+1-6;9-15
+2-3;1-5;1-7;20-22;8-20;17-35;16-29;31-37;40-49
+31-47;32-44;5-8;40-48;19-41
+8-24;17-35;17-25;16-24
+32-42
+1-8;1-10;13-33;17-29;24-50
+2-3;1-6;8-28;17-18;11-24;24-45
+8-26;31-37;40-49
+1-7;13-33;17-24;17-25;6-11;32-42
+16-17
+17-35;6-17;31-45
+1-4;17-35;17-24;11-24;9-17;40-48
+33-40;6-7;6-17;6-11;9-15;9-30;5-7;19-41
+17-24;11-38;9-30;5-7
+17-20;31-37;40-48
+6-11;24-50
+1-5;25-26;17-18
+8-16;8-26;17-26;17-29;16-17;32-48;40-48
+0-1;20-21;20-22;17-20;17-18;17-26;6-11
+17-36;11-17;31-45;3-9;19-20
+17-18
+23-24;17-24;32-48
+17-29;31-47
+17-20;31-37;9-31;5-32
+1-5;8-28;11-38
+
+9-17;9-19
+12-13;16-29;9-19;5-32;40-48
+15-19;6-7;9-19
+1-7;31-37;48-49
+17-28;40-48
+17-20;6-8;31-47;5-32
+25-26;8-16;13-33;17-20;17-26;18-23
+0-1;1-10;25-26;17-18;32-42
+12-13;27-28;8-28;6-28;32-44;18-23;40-48
+21-31;17-18;9-15;3-9
+1-8;27-28;17-35;17-20;6-7;24-31
+1-5;20-22;8-26;33-39;48-49;7-13;40-48;40-49
+1-4;1-8;17-35;5-32;19-20
+14-17;20-21;32-44;19-51
+1-10;25-26;17-20;6-7;40-48
+0-1;8-28;33-40;3-9
+1-7;20-22;8-20;11-17;6-17;24-45;19-51
+0-1;17-26;24-50;3-9
+1-7;15-18;17-25;6-28;6-8;5-8;24-31;24-45
+11-24;9-17
+1-6;8-26;17-24;17-36;31-47;7-13;24-38
+1-11;17-36;5-8
+31-37
+7-13;40-49
+14-15;6-11;5-8
+17-18;6-8
+14-15;17-29;11-38;32-42;38-43;9-30;24-45
+8-20;8-28;17-18;6-11;5-8;24-45;19-41
+1-9;9-17;19-51
+1-5;12-13;16-17
+8-26;6-17;31-47
+20-22;17-29;6-11;5-8;24-31
+11-38;9-15
+1-8;8-16;24-50
+38-43;9-15;40-48;24-38
+14-17;8-16;31-37;40-49
+17-20;11-24;6-28;6-8
+17-18;16-29
+8-20;3-9
+14-16;31-37;5-7;19-41
+1-5;8-24;6-28;6-8;6-11;16-29
+25-26;32-48;40-48;24-31
+1-4;1-8;17-26;11-24
+0-1;15-18;23-24;17-26;38-43;9-31
+21-31;17-26;48-49;18-23
+11-38;33-40;9-17
+1-6;1-11;17-35;6-28;16-29
+11-24;6-8;31-46;3-9
+1-11;14-15;21-31;17-25;48-49;24-45;24-50
+15-19;6-34
+14-15;8-20;13-32;17-28;32-44
+17-28;32-48;38-43;9-15;24-38
+8-26;17-36;9-17;24-31
+11-17;32-42
+17-35;17-28;17-24;16-17;19-20
+0-1;12-13;23-24;6-28;40-49;3-9
+17-20;17-18;17-24;33-39;6-17;9-31;19-20
+15-19;31-46
+17-18;11-17;32-44;9-17
+8-16;8-24
+0-1;2-3;6-7;6-8;39-42;24-38
+21-31;6-25;16-17;40-49
+1-8;17-29;6-28;31-45
+8-28;11-38;33-40;9-31
+14-17;17-35;6-25;32-48
+15-19;48-49
+17-18;31-37;24-50
+1-6;31-46;9-19
+1-4;6-7;6-8;6-34;9-30;9-19;5-7;18-23
+1-4;13-32;17-28;9-31;9-30;9-19
+16-29;5-8
+8-20
+1-5;20-22;6-11;31-45;7-13;19-41
+0-1;1-5;6-25
+11-24;32-42
+23-24;21-31;13-32;31-46;19-41
+6-25;7-13;9-31
+1-7;12-13;14-16;20-22;8-24;48-49
+1-9;8-28;33-40;39-42;19-51
+1-10;3-9
+1-11;17-36;11-38
+17-28;16-17
+1-11;8-26;17-35;11-17;33-39;9-31;5-8
+25-26;9-15;9-17
+8-20;17-35;17-28;39-42;5-32;24-31
+1-7;6-28;6-11;24-45;19-41;19-51
+1-7;5-8;24-45
+6-34;16-29;31-47;24-50;3-9
+1-8;1-9;21-31;11-17;19-51
+2-3;14-16;14-17;8-24;6-8;32-44;9-31
+32-42;9-17
+1-5;1-10;17-25
+15-18;8-26;31-45
+20-22;13-32;17-26;33-40
+2-3;23-24;17-35;17-26;19-51
+1-4;1-10;15-18;11-38;31-47;9-17;3-9;19-20;19-51
+2-3;1-4;32-48;24-31
+1-4;17-20;17-28;6-34;31-47;32-44;9-17;19-20
+14-17;19-51
+1-10;17-24;11-17
+25-26;33-39;6-8;16-29
+15-19;21-31;32-48;24-31
+23-24;8-26;6-7
+8-20;17-24;6-28;16-24;38-43
+14-16;8-16;11-17;16-17;40-49
+17-20;17-36;6-34;9-17
+
+13-32;17-36;18-23
+1-6;17-36;6-17;31-37;5-7;19-51
+11-24;6-25
+15-19;20-21;21-31;17-20;6-7;16-24;3-9
+14-17;6-8;38-43;9-30;24-50;19-51
+8-24;8-26;9-30
+9-30
+1-8;17-25;6-34;31-37;9-15
+20-22;17-25;11-38
+14-15;15-18;17-24;24-38
+23-24;8-26;16-29;32-44
+1-5;17-28;33-39;6-7;19-51
+18-23
+
+1-7;17-28;11-38;6-11;16-29;31-45;31-37
+23-24;39-42;31-47
+1-4;14-17;8-26;6-25;16-24;32-44;32-42;24-38
+2-3;1-4;1-8;24-45
+0-1;8-16;13-32;17-35
+8-20;33-39;38-43;9-15
+20-21;8-16;21-31;32-42
+20-22;17-24;11-24;6-11;18-23
+1-7;1-11;14-15;15-18;11-17;31-45;9-15;5-8;24-31;24-50
+1-7;8-24
+2-3;1-10;13-32;32-44
+8-28;6-8;31-47;5-8;24-45
+1-5;8-26;17-28;24-45
+11-17;31-37;9-19
+1-10;14-17;17-35;9-19;5-32;40-49
+1-5;1-11;8-20;17-36;11-24;9-19
+20-22
+
+33-39
+1-6;39-42;16-17;7-13;5-32;24-31
+31-37
+17-20;31-47
+14-15;6-34
+12-13;32-42;5-32
+14-15;17-26;31-46;32-48;38-43
+14-16;8-20;17-26
+14-16;8-28;8-24;6-7;16-17;31-37;31-47;40-49
+14-17;17-28;5-7;3-9
+13-32;6-25;5-7;24-50;19-41
+1-10;15-18;3-9
+2-3;17-24;31-47;5-8
+1-4;1-8;25-26;17-20;9-17
+1-4;1-5
+2-3;8-28;8-26;17-29;33-39;6-8;5-32
+20-22;6-28;48-49;40-49
+1-10;13-32;6-7;16-17
+17-35;32-42;9-30
+14-15;31-45;31-47;9-15;9-30;9-17;19-20
+1-11;8-20;33-40;6-25
+6-7;6-17
+17-28;6-34;31-46;9-31
+1-9;8-24;6-7;6-17;32-48
+12-13;11-38
+15-19;17-36;39-42;16-17
+0-1;17-36;6-8;38-43;9-17
+17-29;31-45
+17-35;17-24;6-11;39-42;48-49;40-49
+1-10;6-17;16-17
+17-24
+1-6;8-20;17-20;17-25;11-17;32-44
+1-5;48-49
+7-13;9-15
+20-22;17-24;11-17;31-37;9-15;3-9
+1-8;14-17;17-29;31-45;31-46;18-23;24-38;24-31
+8-26
+20-22;8-16;6-11;16-29;7-13;19-51
+
+
+1-4;15-18;6-25;39-42;7-13;24-31
+1-4;3-9;19-20
+2-3;14-15;8-20;17-29;6-7;6-34;31-47;5-8
+0-1;2-3;23-24;6-8;32-42
+14-15;16-29
+1-11;14-17;17-36;5-8
+8-26;19-41
+1-9;21-31;7-13;24-50
+23-24;33-40;32-42
+16-17;9-17;3-9
+17-25;17-36
+1-11;8-24;17-36;6-34;5-8
+8-16;17-36;39-42;31-37;32-42
+8-20;11-38
+11-17;6-17
+25-26;19-41
+0-1;17-36;24-31;24-45;24-50
+11-24
+2-3;16-24;5-32
+17-20;17-26;31-37
+12-13;8-16;21-31;17-28;17-26;11-17
+20-22;16-17
+5-32
+8-24;17-28;6-28;9-30;24-38
+2-3;6-17;9-19
+14-15;33-40;31-47;48-49;9-19
+1-8;14-16;9-19;24-38
+17-28;6-7;9-30
+0-1;23-24;17-24;5-7;24-50
+1-4;1-8;8-24;17-28
+27-28;13-33;11-24;32-44
+14-15;9-17;24-50
+2-3;14-17;15-19;27-28;16-17;7-13;3-9;19-41
+14-15;17-25;6-28
+17-29;16-29;31-37;32-48;40-48
+6-25;6-8;9-31
+8-16;8-26;17-20;11-38
+1-10;12-13;17-36;5-32
+1-10;12-13;14-15;8-16;6-25;9-30
+6-34;6-11;24-31
+20-22
+1-10;20-22;17-36;6-17;48-49;5-7;24-31
+14-17;17-24;11-38;18-23;19-20
+1-6;6-28;6-11;9-15;40-49;19-51
+1-11;17-24;16-29;31-45;7-13;24-50
+8-26
+39-42;9-17
+1-5;1-9;11-38
+15-18;11-17;32-42
+1-5;13-33;11-17;19-41
+1-8;17-35;17-20;6-28;32-48;40-49;19-51
+0-1;1-5;40-48
+1-8;17-35;39-42
+0-1;1-9;14-16;16-24;31-37
+23-24;17-20;31-47;9-31;5-32;24-31
+1-4;17-28;6-8;9-17
+1-10;14-17;25-26;27-28;32-42;18-23
+20-21;31-45
+1-6;27-28;16-17;24-45
+2-3;20-22;16-24;31-37;9-15;5-8;24-31
+17-28;31-37
+1-7;27-28;6-25;39-42;38-43
+20-21;6-28;9-17
+1-9;27-28;33-39;7-13;9-30;5-8;19-20
+31-46
+8-26;6-34;32-48;18-23
+2-3;21-31;11-17;6-8;16-17;5-8
+0-1;17-26;16-29;40-49;24-45
+8-24;17-26;11-24;6-17;38-43
+1-11;23-24;17-26;17-29;5-32;5-8
+1-8;31-45;32-44;9-17;24-38
+13-32;17-25;16-17;18-23;3-9
+12-13;17-20;11-17;33-40;31-46;32-48;24-50
+2-3;5-8;24-31
+8-28;16-17;5-32;40-48
+14-15;8-26;21-31;6-34;31-37
+31-47
+31-46;24-38;24-45;3-9
+1-5;1-6;5-7;24-45
+2-3;33-39;6-25;5-7
+1-4;16-24;32-42;24-38
+0-1;1-4;11-24;11-38;6-17;19-20
+2-3;38-43;5-32;24-31
+1-5;14-16;25-26;17-29;39-42;31-46;5-7;40-49
+1-7;20-21;33-40
+1-10;6-11;40-48;19-20
+8-26;17-20;33-40;6-8;32-42;3-9
+13-32;17-29
+17-35;17-18;31-46
+1-9;11-17
+1-11;25-26;17-35;17-20;17-18;39-42;9-19
+13-33;17-24;6-28;6-11;9-19;40-48;19-41
+1-5;17-35;17-18;17-36;40-49;24-31
+2-3;14-16;14-17;31-45;32-42
+14-16;11-38;5-8
+1-9;14-16;13-32;17-20;40-48
+1-11;14-15;8-26;11-24;39-42;24-45
+15-18;27-28;8-20;13-32;48-49;24-45
+14-15;20-22;8-24;17-28;7-13;40-48
+27-28;17-25;31-47;24-50
+5-32;3-9
+2-3;17-29;39-42;31-37
+1-5;14-17;13-32;33-40
+8-24
+1-7;1-8;12-13;16-29;40-48
+17-20;16-29;9-19
+0-1;1-7;6-8;32-42;38-43;9-30;24-31;24-45;19-51
+1-8;8-16;31-45;32-44;24-45
+1-10;6-28;6-25;31-37;40-48
+14-16;15-18;17-18;11-24;16-24;32-48;9-15;19-51
+1-4;13-32;17-24;7-13;40-49
+12-13;40-48
+8-28;9-31;19-41
+20-21;17-29;38-43
+25-26;32-44;40-48;24-45
+1-10;8-26;13-33;33-39;5-32;24-45;3-9
+1-6;39-42;9-15;9-19
+1-9;14-17;31-37;38-43
+12-13;14-15;8-20;17-26;17-29;32-42
+17-26;24-31
+17-35;17-36;6-7;16-17;31-45
+1-11;17-36;11-24;31-47
+8-28;17-36;11-38;5-8;40-49;19-51
+25-26;8-16;17-18;33-39;6-17;31-37
+24-31;24-45
+8-26;5-8
+1-7;6-25;24-50
+17-24;9-19
+11-38;6-8;31-45;9-15
+19-41
+17-35;17-20;17-29;31-37;24-31
+13-33
+14-15;23-24;6-11;16-17;19-51
+1-8;15-18;17-18;5-32;24-38
+1-7;14-15;13-33;11-17;32-42
+1-4;1-8;1-9;1-10;12-13;14-16;8-26;21-31;17-18;6-11;7-13;38-43
+1-4;14-16;13-32;31-37;31-47;24-38
+
+0-1;9-15;9-19
+20-22;7-13;19-51
+1-6;12-13;21-31;9-15
+6-25;40-49;24-31;19-41
+1-5;14-17;13-32;32-48;18-23;19-51
+2-3;31-37
+2-3;1-6;8-24;11-24;6-17;19-20
+1-11;15-18;17-18
+0-1;12-13;14-15;31-47;9-30;3-9
+1-10;6-28;32-48;9-30
+14-15;21-31;17-36;6-34;32-44;5-7
+8-26;17-24;31-47;3-9
+17-29;17-36;6-7;31-37
+39-42;32-42
+23-24;8-16;16-29;24-31
+1-11;13-33;6-25;40-49
+6-17;24-38
+17-24;31-46;9-19
+20-22;25-26;31-45;31-47;32-44;9-19
+12-13;15-18;17-18;17-24;17-25;6-7;9-19
+15-19;9-15
+1-8;17-24;33-39;6-8
+6-17;24-38
+1-5;8-20;13-32;5-7
+8-24;21-31;17-29;24-45
+11-38;24-31
+1-4;31-45
+1-4;25-26;31-46;5-8;24-50;19-20
+15-19;13-32;11-24
+17-18;6-25;6-34
+17-35;33-39;16-29
+14-15;17-26;6-8;31-47;3-9
+0-1;17-28;17-26;11-24;6-11
+25-26;8-28;17-35;6-8
+1-9;1-11;8-20;40-49
+8-16;17-24
+25-26;8-24;17-28;48-49;38-43;5-8
+17-24;16-17;31-46
+0-1;17-25;16-29;32-42;9-17
+17-18;17-24;17-29;6-28;6-8;7-13;5-8
+14-16;17-36
+1-10;8-24;17-18
+6-8;5-8
+15-18;20-22;8-28;17-29;48-49
+23-24;11-17;38-43
+15-19;20-21;8-20
+1-8;31-45
+0-1;16-24;32-44;3-9;19-20
+1-7;8-26;33-39;39-42;24-50
+1-9;20-21;19-20
+14-17;6-25;31-46;5-7
+14-15;48-49;9-15;9-30
+1-4;25-26;13-33;9-31;9-30
+14-15;11-38;11-17;39-42;31-37;31-47
+8-20;32-44;18-23
+8-20;11-17;33-39
+20-22;19-51
+15-18;17-18;17-25;33-40;6-28;19-41
+6-34;39-42
+20-21;8-26;33-40;6-28;38-43;24-38;24-50
+8-24;9-31
+16-24;16-17;9-17
+25-26;17-35
+14-17;24-45
+2-3;1-11;17-18;17-29;5-7
+17-20;6-7;6-25;16-29;7-13
+1-10;8-20;11-38;6-17;39-42
+1-4;1-8;31-46;31-47
+17-36;32-42;9-17;18-23
+1-6;17-36;7-13;19-20
+2-3;14-16;24-38
+1-5;1-8;14-16;19-20
+
+17-28;11-17;16-17;48-49
+17-18;38-43
+1-6;14-15;14-17;8-28;17-25;33-39;19-51
+20-21;17-28;16-24;24-50
+14-15;13-32;31-47
+1-4;11-38;33-40;16-29;32-48;9-17;40-49;24-31;24-45
+1-10;11-24;6-11
+0-1;1-6;9-31;24-50
+8-16;16-17;9-17
+1-4;23-24
+1-4;1-8;20-22;17-26;6-8;31-45
+1-5;17-26;11-38;11-17;32-42
+17-28;17-24;6-11;48-49;9-19;19-51
+0-1;1-10;6-28;16-29;9-31;9-19;3-9
+25-26;33-40;9-19
+14-17;8-20;17-18;17-29;6-11;16-17
+14-16;8-28;3-9
+14-17;31-47;32-44;9-17;40-49;19-20
+2-3;12-13;17-28;18-23;24-31;24-45;19-20
+2-3;9-30;24-45
+1-6;15-18;33-39;6-11;9-30
+6-7;6-28;6-34
+8-28;17-18;11-38;32-44
+17-36;24-50
+1-11;17-36;31-45;5-8
+8-20;8-26;9-31;9-17
+1-7;14-17;17-28;7-13;38-43;9-30;5-32
+14-16;14-17;13-32;6-7;39-42
+14-17;6-8
+17-18
+25-26;6-34;16-17;31-45;38-43
+6-28;48-49
+0-1;2-3;1-10;18-23
+1-9;17-35;11-38
+27-28;40-49
+8-26;13-33;11-24;3-9
+1-5;20-21;27-28;6-25;16-24
+21-31;16-17;38-43;24-45
+14-15
+2-3;27-28;11-38;6-8;16-29;32-42
+
+20-21;27-28;17-18;18-23
+31-37
+17-18;6-28;31-45;31-46
+8-24;11-38;5-7
+27-28;8-26;17-24;6-7;16-17;31-46;7-13;5-7;24-45
+40-49;24-45
+1-7;27-28;17-24;6-17;19-41
+1-7;13-32
+25-26;17-25;17-36;19-51
+1-11;8-16;17-20;17-24;19-41
+1-6;14-16;23-24;13-33;31-45;31-47;24-50
+1-5;1-8;1-10;14-16;6-28;9-15
+0-1;17-18;11-24;6-7;16-17;31-46
+1-8;15-19;17-35;17-20
+1-6;17-18;24-45
+
+8-28;6-34;6-11;32-48;19-51
+18-23;40-49;3-9
+17-26;32-44
+14-15;8-16;17-35;11-24;11-38;6-28;6-17;48-49
+17-25;17-26
+1-4;1-8;17-35;17-26;11-17;32-44;24-38
+23-24;31-46;32-48
+1-10;21-31;9-15;5-32
+24-38
+9-30;3-9
+2-3;13-32;11-17;9-30
+15-18;8-16;6-17;39-42
+13-33;9-17
+20-22;23-24;27-28;6-8;31-46;9-31;18-23
+21-31;17-18;17-24;6-34;32-42
+1-9;1-10;1-11;25-26;33-39;6-25;32-42;24-31
+16-29;5-7
+2-3;5-7;19-51
+2-3;14-17;8-26;13-32
+33-40;16-17;31-46
+1-7;1-9;1-11;8-20;17-24;17-36;31-37;9-19;19-20
+13-33;17-25;6-25;16-29;32-48;9-19;40-48
+1-10;20-21;25-26;17-24;11-17;16-24;9-19
+21-31;17-20;17-28;33-39;19-41
+2-3;13-33;17-24;6-17
+1-11;15-18;13-32;7-13;19-51
+1-8;13-32
+20-21;16-17;31-37;32-48;32-42
+8-28;17-29;11-38;11-17;32-48;9-17;18-23;24-50
+23-24;16-24;16-29;38-43
+1-9;48-49
+14-17;20-21;11-24
+20-22;33-40;6-28;7-13;9-15
+1-4;8-16;8-24;17-25;11-38;11-17;6-25;24-31
+12-13;16-29
+17-28;31-45
+1-5;17-36;18-23;40-49;19-20
+23-24;17-24;6-8;31-46;3-9
+0-1;21-31;40-48
+24-50
+1-6;3-9
+14-15;20-21;25-26;17-35;6-11;18-23;19-51
+23-24;21-31;6-28;19-20
+0-1;15-19;16-24
+1-9;14-17
+16-24;32-48;38-43;5-32
+8-24;11-38;6-7;16-29;40-48;24-50;19-41
+13-33;48-49;24-38
+0-1;31-45
+17-36;33-40;6-25;38-43;9-17
+0-1;23-24;8-28;8-26;17-36;31-47;40-48
+15-19;13-33;17-36;33-40
+14-16;17-20;17-25;11-38;31-45;9-30
+2-3;17-25;11-17;6-11;39-42;9-30;18-23
+2-3;1-5;20-22;8-20;17-26;11-24;6-7
+0-1;21-31;17-26
+12-13;5-7
+14-17;25-26;40-49
+11-17
+1-5;1-6;1-10;17-24;33-39;7-13;24-31
+33-39;31-45
+1-4;1-8;15-18
+1-4;23-24;40-48
+1-9;6-28;6-25
+6-17;48-49;38-43
+8-28;6-8;32-42;40-48
+13-33
+1-10;12-13;15-19;16-29;9-17;24-50
+7-13;40-48
+0-1;14-15;8-26;11-38;11-17;31-47
+27-28;13-33;17-20;5-7;40-49
+
+1-6;7-13;38-43;5-8;3-9
+1-7;1-9;15-18;19-41
+25-26
+13-32;6-25;6-34;5-8;19-41
+11-24;48-49;24-45
+6-25;40-48
+12-13;17-36
+1-7;1-10;8-26;17-35;17-20;17-36;31-45;31-37;3-9
+1-7;8-28;9-17;40-48
+17-26;5-7;19-20
+0-1;8-24;17-35;32-44;32-42
+1-5;1-6;5-32
+14-15;17-35;48-49;5-7;19-20
+15-18;23-24;17-29;39-42
+17-35;11-17;33-39;16-24;31-46
+1-6;8-24;6-8;32-44
+1-4;1-9;20-21;13-32;17-28;9-19;18-23
+15-19;17-29;32-42;9-19
+1-5;20-22;25-26;27-28;6-11;39-42;16-29;9-30;9-19;19-51
+14-15;6-28;31-46;31-37;31-47;40-48
+12-13;27-28;17-26;19-51
+0-1;14-16;8-24;11-17;6-34;9-17
+33-40
+8-28;40-48
+1-6;13-32;33-40;19-41
+6-11;16-17;9-30;5-7
+6-28;31-37;5-7
+8-26;31-46;9-15
+1-5;1-11;6-11
+8-16;40-48;3-9
+14-17;8-28;13-33;17-36;6-7
+13-33;33-40;32-44;24-50
+15-19;23-24;8-24;17-26;31-47
+17-26
+1-10;17-26;9-15;40-49
+0-1;25-26;6-8;16-24
+1-7;15-18;6-28;6-17;31-45;9-17;3-9
+17-20;32-48;32-42
+1-9
+14-15;13-32;17-25;33-39;38-43;5-7
+33-40;24-31
+1-4;1-10;17-20
+0-1;1-7;23-24;27-28;8-28;17-25;6-8;6-34;9-15
+1-4;1-8;20-22;25-26;13-33;17-28;6-7;5-32;5-8
+0-1;1-9;17-35;6-25
+14-17;31-37;9-17
+8-26;5-8
+12-13;8-26;17-24;48-49;38-43;5-32
+15-18;8-28;17-29;6-28;32-44
+6-17;31-45;32-42;5-8
+17-25;9-15;19-20
+25-26;8-16;17-28;11-24;31-37;9-17;3-9
+39-42;9-15;19-20
+48-49;19-41;19-51
+1-9;1-11;33-40;18-23
+1-6;8-20;17-28;6-28;16-29
+27-28;6-25;32-44
+14-17;8-26;33-39;6-34;31-45
+2-3;12-13;32-44;5-8;40-49;24-38
+11-17;6-11;48-49;3-9
+15-18;25-26;11-38;5-32
+13-33;24-38
+24-31
+14-16;8-28;9-30
+1-9;31-47;32-42;5-32;24-50
+21-31;13-33;31-45;9-15;9-30;5-32;40-49
+11-38;38-43;18-23
+1-8;1-9;8-24;6-17;31-47;3-9
+14-15;17-29;24-45
+12-13;14-17;17-20;5-32
+1-4;14-15;6-25;39-42;32-42;40-49;24-50
+27-28;13-32;48-49;19-41
+1-7;15-18;8-16;17-35
+1-7;1-10;8-28;17-20;38-43
+
+0-1;1-9;38-43
+14-15;15-18
+0-1;12-13;6-28;32-48
+15-19;25-26;31-45;31-47;9-17;40-49
+1-11;16-24
+8-28;11-24;16-17;5-7
+13-33;17-29;24-50
+9-15;9-19
+14-15;17-20;17-28;17-26;6-25;9-19
+1-5;13-33;17-26;33-39;9-17;9-19;19-41
+1-6;14-15;8-24;17-35;17-26;33-40;6-7;16-24;16-29;32-44;38-43;9-31;9-19
+1-11;15-19;31-45
+1-5;17-18;32-44;9-30;19-51
+12-13;23-24;16-17;31-47;32-42
+
+40-49
+31-37;9-17
+1-6;16-24;9-31;24-50
+17-29;6-7;32-44;38-43
+2-3;1-8;15-19;20-21;25-26;6-8;19-20
+2-3;23-24;27-28;17-28;16-17
+1-6;1-8;13-33;48-49;5-8
+0-1;15-18;8-16;8-28;8-26;17-29;6-7;7-13
+1-6;9-30
+33-40;16-29;9-31;5-32;19-41
+8-20;21-31;17-25;32-42;9-17;5-8
+1-6;12-13;20-22;17-20;17-28;33-39;31-37;9-15
+1-10;18-23
+1-7;23-24;39-42;9-15;5-8
+32-48;48-49;38-43;9-30
+1-6;14-15;17-20;11-24;6-17;19-41
+14-17;6-8;16-24;24-31
+40-49
+2-3;21-31;17-35
+8-20;11-24;11-38;6-25;31-37;38-43;5-32
+15-18;6-7;6-11;31-47;5-8
+23-24;25-26;11-24;33-39
+1-9;12-13;17-25
+11-38;11-17;6-7;6-34;31-46;19-20
+1-11;8-24;17-36;6-28;40-49
+17-36;38-43;19-41;19-20
+1-11;8-16;17-28;17-36;6-28;6-8;32-42
+13-32;33-40;6-7;24-31
+12-13;14-16;14-17;11-38;11-17;33-39
+14-15;16-24;31-47;7-13;9-15;18-23
+1-5;8-16;8-24;6-11;40-49
+1-5;17-35;31-46
+1-10;15-18;8-16;9-17;5-7
+20-22;17-25;6-34;7-13;38-43;5-32
+1-4;20-21;11-17
+1-4;1-8;6-25;31-47;32-44
+17-18;6-17;39-42;16-24;40-49
+25-26;8-26;6-8;5-32
+20-21;11-24;31-45;31-46;32-42;48-49;9-17;24-31
+11-17;16-29;31-37;24-50;3-9
+8-28;9-31
+1-4;1-8;17-20;39-42
+1-7;19-41
+20-21;33-40;16-24;32-44
+1-10;15-18;17-24;17-26;16-17;9-15;5-7
+17-25;17-26;6-28;6-8;31-47;9-17;24-45;19-20
+13-32;17-18;17-24;31-45;5-32
+20-21;17-20;6-25;9-31;3-9
+0-1;23-24;17-18;40-49
+1-7;16-24;24-31
+1-9;12-13;17-28;5-32
+1-6;20-21;8-20;13-32;17-36;6-28;16-17;32-48;38-43;9-17;19-41
+2-3;1-4;6-28
+31-37;32-48
+0-1;2-3;39-42;9-31
+15-19;20-22;31-47;32-42;40-49
+20-21;8-28;17-20;16-29
+12-13;14-16;17-25;6-17;9-30
+1-6;14-16;8-26;17-18;33-40;32-48;9-30
+8-24;16-17;31-37;9-19
+1-9;11-24;9-31;9-19;24-31
+1-4;1-8;17-35;7-13;9-19
+1-4;1-5;17-28;5-8;18-23;24-38
+1-4;14-17;11-24;19-41
+1-10
+33-39;6-7;6-11;7-13
+5-8
+31-45;40-49;19-20
+12-13;23-24;8-26;6-11
+17-25;6-7;16-29;5-8
+17-18;38-43
+15-19;33-40;6-11;32-42;5-7
+14-15;20-22;17-18;5-8
+8-20
+14-16;14-17;11-38;31-47;9-31;9-30
+0-1;12-13;14-15;6-11;31-47;48-49;5-32
+1-9;1-11;14-17;17-24;5-8
+7-13;18-23;3-9
+1-6;8-26;17-20;17-29;6-8
+1-7;16-24;32-48;9-15;24-31
+1-8;15-18;11-38;31-45
+27-28;33-39;6-7;6-17;31-37;38-43
+17-36;6-28;32-44
+27-28;32-42
+19-41
+8-24;17-20;7-13
+1-5;27-28;13-32;39-42;16-24
+1-7;14-15;48-49;24-38;19-20
+25-26;27-28;21-31;6-34;31-45;31-37
+14-15;8-28;18-23
+1-4;1-8;20-22;27-28;24-38;24-31
+1-4;11-17;6-28;9-15;40-49;24-50
+1-6;21-31;17-35;11-38;9-17;5-32;24-45
+17-25;24-45
+1-9;20-21;20-22;27-28;17-35;17-26;31-37;19-41
+2-3;8-16;17-26;11-24;31-45
+6-7;31-45;24-45
+0-1;31-45;5-8;19-51
+2-3;17-18;11-17;19-41
+8-26;40-49
+1-6;6-17;9-17
+1-11;8-24;33-39;31-47;9-30;5-7
+17-20;16-24;9-30;5-32;18-23;19-51
+16-17
+48-49;9-15
+1-5;8-28;32-42;19-51
+21-31;17-36;9-15;9-17;19-20
+0-1;17-18;6-34;40-48;19-41
+15-18;23-24;19-41;19-20
+1-5;1-9;1-10;12-13;13-32;16-24;19-20
+3-9
+8-28
+17-25
+14-17;8-24;17-25;38-43;40-48
+6-11;5-7;18-23
+20-22;17-18;16-29
+23-24;13-33;11-17;6-34;39-42;32-44;9-15;40-48
+6-17;40-49
+2-3;1-4;15-18;17-28;33-40;9-15
+8-26
+0-1;2-3;21-31;40-48;19-41
+1-10
+20-21;11-17;6-28;6-25;16-24
+25-26;11-38;24-45
+21-31;6-25;31-47
+14-17;8-24;13-32;17-20;17-18;31-37;40-48
+32-44;5-7;18-23
+9-19;5-7;24-31;24-50
+23-24;8-20;17-29;11-24;9-19;40-48
+1-11;12-13;17-35;31-46;9-19
+1-5;8-28;11-38;33-40;5-8;19-41;19-20
+15-18;6-28;6-8;16-24;32-42;9-15;24-38
+0-1;1-9;8-28;17-35;31-45;38-43;40-48
+1-10;48-49;7-13;3-9
+17-28;33-40;39-42;31-47;24-38
+1-8;6-34
+23-24;17-36;33-39;6-25;40-49
+1-11;21-31;17-18;17-36;39-42;16-24;31-46
+17-36;6-25;31-37;18-23;24-31;24-50
+31-45
+2-3;12-13;8-16;11-38;11-17;6-7;40-48;3-9
+1-11;17-18;17-36;16-24
+13-33;17-35;9-30;19-41
+14-16;8-24;17-25;16-17;9-15;9-30
+0-1;16-24;40-48
+1-8;1-9;1-10;33-39;31-37
+1-5;11-38;11-17
+2-3;1-4;1-8;12-13;8-28;17-26;32-42;40-48
+2-3;8-24;17-26;9-30;40-49
+15-19;8-26;6-28;6-8;9-15;19-20
+1-9;40-48
+14-17;17-18;24-50
+17-36;18-23
+1-10;17-29;6-7;32-48
+2-3;14-15;13-33;33-39;31-37;5-7;40-48
+2-3;15-18;20-22;17-28
+14-16;17-20
+1-11;14-16;6-25;40-48;24-31
+32-44;24-38
+27-28;8-20;8-28;11-24
+1-10;17-25;6-8;9-17;40-48
+
+17-35;17-36;11-17;6-34;6-11
+1-7;14-17;25-26;33-39;48-49;5-8
+1-8;23-24;17-18;11-24
+8-16;17-29;18-23
+8-24;17-24;16-29;16-17;40-48
+31-37
+11-24;31-45;19-41
+12-13;5-32;24-50;19-51
+0-1;14-16;17-20;6-8;32-44;19-20
+1-8;14-16;8-20;17-18;3-9
+21-31;17-35;17-29;19-51
+1-9;48-49;38-43;9-15;5-32
+1-7;20-22
+1-4;1-5
+0-1;2-3;14-17;23-24;24-38
+2-3;18-23
+8-28;8-24;16-17;5-32;40-48
+13-33;17-20;17-25;6-28
+12-13;8-26;17-29;33-40;5-8;19-41
+17-18;17-24;11-38;33-39;6-28
+0-1;25-26;5-32
+1-11;17-18;5-8
+32-42
+2-3;6-17
+8-16;16-17;48-49;9-31;9-30
+12-13;13-32;31-37;5-8
+1-5;40-48
+14-17
+1-7;25-26;17-25;6-17;32-48;7-13;24-31;19-20
+1-7;23-24;8-16;13-33;32-48;40-48;40-49
+1-10;8-20;11-38;6-8;16-29;32-42
+21-31;17-24;6-17;9-19
+15-19;13-32;17-28;32-44;9-19;40-48
+20-21;27-28;17-35;17-24;31-37;9-19
+2-3;17-35;5-8
+16-17
+14-16;14-17;20-22;21-31;17-18;17-28;17-26;33-39;6-28;5-32
+1-9;14-15;25-26;17-26;33-40
+20-21;27-28;8-26;17-18;6-8;6-34
+1-5;39-42
+1-4;1-8;27-28;8-20;6-11;31-37;32-44
+15-18;24-31
+20-21;27-28;6-25;16-17
+17-35;48-49;19-51
+1-6;27-28;8-24;21-31;13-33;17-28
+1-11;25-26;31-47
+1-6;14-15;18-23
+
+17-29;11-24;11-17;6-34;16-17;31-45;24-45
+8-16;13-33;17-18;17-28;6-7;19-20
+23-24;8-28;21-31;17-24;6-17;6-11;5-32;24-38
+19-20
+1-11;20-21;8-20;13-32;13-33;17-28;17-24;6-8;16-24;31-46;32-42
+14-16;6-7;6-17;24-31
+15-18;21-31;11-38
+6-28;6-25
+1-9;6-7;48-49;24-38;24-45;3-9
+8-26;17-20;17-29;6-28;6-34;24-50
+1-7;1-11;23-24;17-28;31-46;19-51
+21-31;11-17
+6-8;31-46
+12-13;17-18;17-28;31-37;38-43;5-7;40-49
+0-1;14-17;9-15;5-7;19-41
+1-10;8-24;16-17;31-47;5-8;24-50
+17-28;3-9
+1-7;1-8;14-16;17-25;11-24;9-30
+1-4;14-16;11-38;9-30
+0-1;1-4;1-10;14-16;15-18;17-29;9-30
+15-18;8-26;6-25
+33-40;16-29;32-42
+1-9;20-21;23-24;8-16;8-26;11-24;31-46
+1-6;13-33;6-17
+12-13;21-31;11-38;18-23
+27-28;8-28;17-28;31-47;9-17;40-49
+1-7;8-20;31-37
+14-17;27-28;17-35;6-34;31-46;24-31
+0-1;20-22;6-28;7-13;9-31;19-41
+17-35;11-24;31-45;24-38;19-51
+12-13;15-19;16-17;9-15;5-32;19-41
+0-1;33-39;38-43
+1-11;25-26;8-26;13-33;3-9
+14-16;31-46;24-38;19-51
+1-5;17-24;6-8;16-24
+31-37;32-44;9-31
+17-24
+1-9;23-24;17-28;6-34;32-44;40-49
+1-6;17-24;16-17
+17-35;17-26;38-43;5-32;3-9
+14-17;17-26;17-36;16-24;5-7
+8-26;33-39;39-42;31-37;18-23
+1-7;1-10;11-38
+6-25;19-20
+1-8;15-18;5-32
+14-16;6-11;48-49;19-20
+14-16;8-16
+14-16;24-45;3-9
+8-16;6-25
+
+1-9;21-31;6-11;9-17
+1-10;14-17;17-29;33-40;9-19
+13-32;9-19
+1-9;16-29;32-44;19-51
+15-19;11-38;48-49;9-19;24-50
+1-6;21-31
+12-13
+8-24
+8-20;24-31
+17-29
+2-3;33-39;5-32;18-23
+14-16;15-19;23-24;6-17
+8-24;6-25;40-49;3-9;19-41
+21-31;17-29;9-30;9-17
+8-16;39-42
+6-8;6-34;9-30;19-20
+1-8;20-22;25-26;17-35;16-17;48-49
+2-3;33-40;6-28;19-51
+21-31;5-7
+8-16;17-24;9-15;18-23
+0-1;11-17;16-17;32-44;38-43;3-9
+17-24;17-29
+31-45
+2-3;1-4;16-17;38-43;5-8
+27-28;9-31;18-23
+12-13;14-17;8-28;33-40
+17-29;6-8;16-24;32-48;32-44
+23-24;27-28;33-39;5-8
+20-21;24-50;3-9
+1-9;27-28;8-20;13-33;11-24;19-41
+2-3;15-18;17-28;39-42;5-8
+2-3;1-5;31-37;32-44;5-7
+20-21;8-26;11-38;5-7
+15-19;6-34;5-8;18-23
+20-22;21-31;38-43
+8-24;31-45;31-47;48-49;9-17;24-38;19-20
+1-10;15-19;20-21;8-16;16-24
+0-1;2-3;14-17;5-8;40-49
+2-3;12-13;13-33;17-24
+20-22;8-28;17-28;6-17;16-29;7-13;24-38
+14-15;8-20;17-24;17-26;6-25;5-32;24-31
+1-9;1-11;8-28;8-26;17-26;6-11;39-42;31-45
+16-17;31-47;40-49;24-31;3-9
+5-7
+1-6;20-21;17-29;33-39;33-40;6-11;16-24;5-7;24-50
+23-24;17-35;19-51
+8-24;6-25
+1-8;23-24;17-25;39-42;32-42
+31-47;18-23
+1-8;31-45;24-38
+9-31;3-9;19-41
+2-3;1-4;1-8;1-9;12-13;14-17;8-26;5-32
+1-4;8-24;17-24;11-17;6-7;32-42
+1-8;27-28
+20-22;17-20;17-24;16-29;31-46;9-30;19-41
+1-6;27-28;6-28;6-17;9-30;19-20;19-51
+1-9;15-19;25-26;17-28;17-25;32-48
+2-3;27-28;17-35;16-17
diff --git a/examples/failures/failures-0.06 b/examples/failures/failures-0.06
new file mode 100644
index 0000000..88798cc
--- /dev/null
+++ b/examples/failures/failures-0.06
@@ -0,0 +1,1000 @@
+14-16;6-28;9-15;9-17;24-45;19-41
+1-5;1-6;6-28;18-23;24-50
+1-9;16-24
+12-13;8-16;17-35;16-17;31-46;24-31
+0-1;14-17;17-35;17-24;6-34;48-49
+11-24;6-11;32-44;24-38;19-51
+8-20;32-44;48-49;5-32
+1-11;8-24;17-29;18-23;24-45
+1-5;1-11;25-26;27-28;13-32;11-38;33-39;6-11;16-17;32-42;24-38
+16-24;9-30
+14-17;27-28;8-28;5-7;19-20
+15-19;27-28;8-20;8-26;13-33;17-28;6-7;9-30;19-20;19-51
+6-34
+13-32;16-17;31-46
+8-16;11-38;16-24;31-45;48-49
+20-22;13-32;17-25;7-13;9-17
+8-24;13-33;16-24;18-23;19-41
+14-17;17-29;33-39;16-24;24-38
+2-3;15-18;8-28;17-25;16-17
+17-35;17-28;6-28;18-23
+
+1-4;13-33;17-29;17-36
+1-4;14-16;20-21;8-20;8-24;17-26;19-20
+0-1;32-44;7-13;9-17
+7-13;9-30;5-7;24-50;19-41
+20-21;17-35;48-49;38-43
+25-26;9-19
+16-17;32-44;9-19;24-45
+20-22;6-34;32-44;32-42;9-19;5-32
+1-5;14-17;20-22;13-32;39-42
+2-3;23-24;25-26;11-17;18-23
+15-18;15-19;17-20;9-31;24-45
+0-1;6-11;16-17;31-47;38-43;9-30
+1-9;1-10;20-21;17-36;32-48
+27-28;6-7;18-23;24-31
+1-6;16-17;9-17;5-8;19-51
+1-11;33-39;31-47
+0-1;1-11;14-16;11-24;48-49;24-38
+23-24;8-16;8-28;17-28;5-8;24-50
+1-10;15-19;20-22;8-20;11-17;33-40;39-42;31-46
+11-38;39-42;5-32;5-8;18-23;40-49;24-45
+1-6;39-42;31-46;31-47;19-51
+15-18;40-49
+1-7;14-16;20-21;8-20;17-24
+17-24
+20-21;6-34;5-32
+1-9;6-28;6-17;9-30;19-41
+2-3;1-6;8-26;13-32;17-26;11-24;6-17;16-17
+1-9;17-25;7-13;24-38
+11-17;6-11;32-44;9-31;19-51
+14-16;27-28;6-25;16-17;5-7;24-50
+0-1;27-28;8-26;6-17;31-37;9-30;40-49;19-41;19-20
+1-7;12-13;15-19;17-35;32-42;9-15;40-48
+1-9;15-18;17-35;33-40;6-34;6-11;16-17
+17-35;11-17;39-42;16-24;31-45;31-46;9-15;3-9
+2-3;1-6;14-15;8-26;17-35;17-20;17-29;31-37;32-48;24-38
+14-17;20-21;25-26;17-29;6-7;9-19;5-32;40-48
+8-26;16-29;24-50
+14-15;13-32;6-7
+2-3;1-9;13-33;40-48;24-31
+0-1;1-5;6-7;6-8;16-24;32-48;24-31
+1-6;1-9;21-31;24-45
+1-5;20-21;31-37;18-23
+21-31;17-20;11-38
+15-18;13-32;17-29
+12-13;27-28;32-48;9-15
+1-9;17-25;33-40;16-24;38-43
+1-10;31-45;31-47
+1-5;1-7;17-18;17-36;11-24;32-48;5-8;19-51
+2-3;25-26;17-35;16-29;9-15;5-8;40-48;3-9
+17-35;17-26;6-7;6-28;9-31;19-20
+1-9;1-11;31-45
+13-33;17-28;31-47;5-32
+1-5;15-19;20-22;8-26;17-28;17-24;17-29;6-28
+14-16;20-21;6-25;6-11;5-7
+15-18;17-29;32-48;9-31
+8-24;11-24;16-29;32-42;24-50
+8-16;13-33;6-8;6-17;31-37
+6-7;24-45;3-9
+0-1;2-3;15-18;15-19;17-35;17-20;5-8
+14-17;25-26;32-44
+1-9;27-28;32-44;7-13
+2-3;1-8;8-20;8-24;31-46;38-43
+1-7;1-8;15-19;17-28;17-36;11-17;16-24
+1-9;23-24;25-26;17-36;31-45;40-48
+2-3;1-4;39-42;19-51
+1-11;40-48;3-9
+8-24;8-26;33-40;31-46;9-19
+2-3;14-15;17-24;11-17;33-40;31-46;9-30;9-19
+14-15;17-35;17-24;5-32
+0-1;12-13;6-28;3-9
+15-19;17-20;16-17;24-38
+12-13;14-17;17-35;17-29;11-17
+0-1;20-21;17-18;17-26;7-13;19-41
+1-7;15-19;17-26;6-17;48-49;9-15;9-31;5-8;19-41
+17-24;6-17;6-34;6-11;16-24;31-37;31-47
+14-17;13-33;6-25;31-46
+1-9;17-28;17-24;31-45;31-46;48-49
+1-4;20-21;27-28;8-16;17-36
+1-7;8-16;17-25
+8-16;3-9;19-41
+1-4;1-5;17-35
+14-17;15-19;11-24;9-17;24-45
+8-20;13-33;24-38;19-51
+17-20;11-24;16-24;31-37
+15-19;21-31;39-42
+17-18;17-29;6-17
+17-35;7-13;19-41
+24-38;24-31
+2-3;1-11;23-24;9-30
+1-6;1-8;14-17;13-32;16-17;32-48;7-13;5-32
+0-1;1-4;8-28;17-36;31-47;9-17;19-41
+11-24;11-17;31-47
+16-24;31-46;24-45
+0-1;1-10;20-22;38-43;9-17;24-38
+20-21;5-8
+14-17;17-20;39-42;24-50;19-41
+2-3;20-21;11-38;6-17;7-13;9-31;9-17;3-9
+1-5;1-6;17-26;33-39;6-11;32-44;48-49;5-32;18-23
+27-28;17-18;5-8
+0-1;27-28;17-28;6-25;16-24;31-47;9-19
+8-16;13-33;9-19
+1-7;27-28;8-16;8-26;33-39;31-45;19-41
+0-1;27-28;16-24;24-38;19-41
+15-19;16-17;31-46;31-37;9-31;19-41
+23-24;27-28;13-33;17-35;11-38;32-44
+1-4;17-35;17-36;7-13
+1-10;8-28;24-38
+8-24;17-28;6-8;31-47;48-49;9-15;3-9
+7-13;19-20
+1-7;13-32;48-49;40-49;24-45
+1-10;17-24;33-39;16-29;32-42;5-32
+12-13;6-34;31-45;9-30
+6-25
+1-9;24-38
+20-22;17-18;6-28;40-49;19-41
+1-8;21-31;11-24;33-39;6-11;5-7;24-31
+1-5;17-25;11-38
+8-26;17-18;17-24;38-43;9-15
+23-24;27-28
+1-4;21-31;17-25;11-24;11-38;31-37;24-31;19-20;19-51
+1-6;1-9;27-28;17-36;31-47;5-8
+1-9;25-26;13-32;11-24;6-11
+14-16;8-16;17-26;11-17;16-17;38-43;5-8;18-23
+23-24;17-26;39-42;16-29;31-46;19-51
+0-1;8-24;32-42;5-32
+1-10;8-16;17-20;18-23;24-31
+0-1;17-20;38-43;3-9
+
+11-17;33-39
+6-28;6-8;16-24
+23-24;25-26;11-24;6-7;48-49;24-31
+2-3;15-19;8-16;11-17;40-49;24-38;24-50
+8-16;21-31;31-37;38-43;19-41
+1-4;20-22;17-29;6-25;9-19;18-23;19-41
+1-8;15-19;25-26;7-13;9-19;5-7;40-49
+8-20;17-29
+14-16;8-16;33-39;6-34;9-31;5-32
+17-35;33-40
+33-40;6-11;16-29;7-13;9-17;5-32;19-51
+15-18;17-18;16-24;32-48;7-13
+19-20
+8-20;8-28;17-35
+1-9;1-10;15-19;25-26;8-16;8-26;17-35;6-11;32-44
+14-16;17-28;17-24;33-40;16-29;16-17;48-49;19-41;19-51
+1-4;13-32;17-36;33-39;32-42
+6-28;24-50
+20-21;6-28;5-7;18-23
+17-18;16-29;32-42;3-9
+17-20;17-26;38-43;5-7;40-48;19-51
+33-39;40-48;19-20
+20-21;8-20;17-18;6-28;32-48;24-38;19-51
+1-9;20-22;21-31;6-34;16-17;9-15;24-50;3-9
+25-26;17-29;5-8
+12-13;21-31;6-7;39-42;16-24;9-15
+17-20;31-45;7-13;9-31
+1-4;17-36;6-17;18-23;19-20
+23-24;17-36;5-7;18-23;24-31;3-9;19-20
+0-1;15-18;20-22;25-26;13-33;33-39;32-44;40-48
+1-9;27-28;17-18;16-17;19-41
+1-7;21-31;17-20;6-11;16-29;31-46;5-32
+8-28;17-18;31-46;9-15;9-19;40-48;24-31
+1-6;14-15;8-16;8-24;11-17;33-40;31-37;32-48;3-9;19-51
+0-1;31-46;7-13
+1-7;20-21;8-24;18-23
+1-8;14-16;17-25;33-39;31-46;3-9
+2-3;20-22;17-26;39-42
+8-24;17-26;11-24;6-7;32-48;5-8
+1-8;1-10;15-19;8-16;17-24;18-23
+8-16;8-26;11-17;33-39;38-43;19-51
+1-5;13-32;17-18;17-26;32-48;40-49
+1-10;20-21;8-20;8-16;17-20;17-25;16-29;5-8
+12-13;17-29;31-46
+20-21;25-26;31-46;48-49;40-48;24-31
+15-18;33-39;6-34;32-44;5-32;24-50
+23-24;38-43;40-48
+0-1;2-3;1-9;8-20;6-11;19-51
+0-1;1-11;13-33;31-37;31-47;9-17;24-38
+14-16;8-24;6-11;48-49
+1-4;14-15;13-32;17-25;17-36;6-11;31-45;9-31
+25-26;21-31;17-35;11-38;16-24;38-43;24-38;24-31
+23-24;13-32;17-18;19-41
+1-5;17-36;7-13;40-48
+6-8
+17-20;33-40;31-37;3-9
+23-24;17-28;33-40;39-42
+0-1;1-5;1-9;14-16;15-18;17-25;9-31;19-51
+8-24;21-31;16-24;32-42
+6-28
+0-1;1-6;12-13;25-26;17-35;6-25;31-45;9-31;19-51
+31-37;9-30
+13-32;17-26;11-24;32-42;9-30
+6-17;31-47
+1-4;1-5;12-13;13-32;17-36;6-28;32-44;9-19;24-50;19-51
+6-7;5-7;19-20
+17-36;31-37;5-8;18-23
+1-11;14-17;8-28;8-24;7-13
+8-20;6-17
+21-31;31-37
+0-1;15-19;33-40
+
+1-7;14-15;6-34;48-49;7-13;5-7;24-45;19-41;19-51
+1-10;15-19;8-16;13-33;17-35;16-29;32-48;9-31
+0-1;11-38;6-8;31-37;9-19;24-31
+23-24;9-15
+17-25;6-8;16-29;31-46
+1-7;8-26;13-32;17-35;17-28;16-24;31-46;5-32;19-20
+1-10;1-11;14-16;25-26;17-25;16-17;31-47
+1-4;1-6;17-36;6-28;31-45
+12-13;17-35;17-36;33-39;6-28;5-7
+20-21;17-29;6-25;24-31
+12-13;15-18;27-28;17-24;6-25;31-45
+27-28;8-28;21-31;13-32;17-24;31-46;31-37;9-30
+8-16;17-24;33-40;6-28;31-47;19-51
+15-19;8-16;21-31;33-40;32-48;9-15;9-17;24-31;24-50
+14-17;15-19;25-26;13-33;40-48
+8-26;31-45;24-31
+1-7;20-22;9-15
+17-28;17-26;6-28;7-13;9-17
+8-28;13-33;17-20;17-26;17-29;6-28;5-32
+14-15;13-33;6-34;16-29;31-37
+1-4;1-5;23-24;6-7;32-42;18-23;24-31;24-50
+15-19;8-28;11-17;33-39;6-11;16-17;9-31;18-23
+0-1;25-26;27-28;17-29;17-36;16-24;9-15;3-9
+23-24;21-31;11-24;6-7;32-48;19-20;19-51
+15-19;20-22;13-33;9-19
+1-5;23-24;21-31;9-19;3-9
+14-15;17-24;6-7;32-42;9-15;9-19
+32-44;5-32
+31-45;31-37;48-49;5-8;19-51
+1-7;1-9;6-7
+0-1;9-31
+13-32;6-7;16-29;32-44;32-42;7-13
+1-4;1-10;14-17;23-24;17-24;6-25
+1-4;8-26;17-28;6-7;5-7
+0-1;17-24;17-36
+1-11;8-16;8-28;8-24;16-24;31-37;38-43
+1-8;17-35;17-28;9-19
+1-9
+14-17;11-17;48-49;24-45;19-41
+2-3;1-6;8-26;32-48
+1-5;14-16;15-19;48-49;9-31
+17-26;11-24;19-51
+0-1;1-6;13-32;17-29;31-45;32-48;24-31
+1-9;20-22;8-28;13-32;17-20;39-42
+14-17;23-24;8-24;21-31;17-24;6-17;6-11;3-9;19-20
+17-29
+1-4;1-5;1-7;1-10;14-15;25-26;33-39;5-8;24-50
+20-22;8-28;21-31;17-24;6-17;5-8;19-41
+17-29;31-45
+1-6;14-17;8-20;8-26;21-31;17-36;11-38;11-17;6-28;31-46
+8-24;17-20;6-34;24-50
+15-19;33-39;24-38
+13-33;6-7;6-8;9-17
+17-35;17-24;6-17
+1-7;13-32;11-24;19-20
+20-22;25-26;8-20;16-29;5-8
+1-9;8-24;17-18;11-24;9-31;5-32;3-9
+1-7;14-15;17-28;39-42;9-19
+1-7;15-19;25-26;17-35;17-20;6-7;6-28;32-48
+14-15;8-26;17-25;33-40;18-23
+20-21;27-28;8-28;33-40;6-7;6-17;31-37;31-47;7-13;3-9
+13-33;17-20;7-13;24-45
+1-6;1-10;15-19;6-8;31-45;24-50
+1-11;15-18;25-26;17-20;6-17;31-46
+20-22;13-33;17-18;33-39;7-13;9-17
+17-20;17-18;17-26;6-25;40-49;19-20
+17-26;6-17;32-48;24-31;19-41
+1-6;14-16;23-24;17-25;6-8;24-31
+1-7;14-15;8-26;40-49
+14-16;17-35;11-38;6-34;31-47
+15-19;23-24;6-7;31-45
+8-20;17-25;39-42;9-30;24-45;24-50
+14-15;17-35;6-28;6-17;16-29;48-49;40-49
+17-35
+1-4;1-5;14-17;20-22;33-40;32-44;48-49;7-13;24-50
+1-11;13-33;17-18;11-17;5-8;5-7;24-45
+17-35
+23-24;8-16;8-28;17-24;17-36;11-38;6-34;16-24;24-50
+27-28;8-26;9-31;9-17;24-38;3-9
+25-26;16-29;48-49;24-31
+1-10;8-20;17-20;17-18;6-7;40-48
+15-19;27-28;18-23;40-49
+15-18;13-32;7-13
+0-1;20-22;6-8
+8-26;17-18
+13-32;13-33;32-42
+20-21;21-31;24-38;19-41
+14-17;8-28;17-28;6-28;40-48
+1-4;1-7;15-18;21-31;13-33;5-7
+0-1;8-26;32-42;24-45
+8-16;13-32;17-18;17-36;39-42;31-47;7-13;38-43;18-23;24-50
+14-15;8-28;17-18;9-17;40-49
+1-11;17-26;33-40;39-42;31-47;9-19
+15-19;17-18;17-26;11-38;9-30
+23-24;17-35;6-11;16-29;40-48;40-49
+20-21;18-23
+33-39;9-30
+0-1;1-10;15-19;20-22;11-24;6-28;6-34
+8-20;17-20;17-18;17-28;16-29
+16-24;48-49;9-31
+2-3;1-11;12-13;23-24;17-29;31-46;7-13;40-48
+15-19;24-31
+14-15;13-32;17-20;11-24;6-7;16-29;24-38;19-51
+1-7;39-42;16-24;9-31;5-7
+1-6;20-21;6-7
+8-26;17-35;17-29;11-38;11-17
+8-16;17-36;32-48;24-38
+2-3;12-13;15-18;17-20;31-46;31-47;40-48;19-20
+15-19;20-21;21-31;39-42;32-42;7-13;24-31;19-51
+8-26;13-32;33-39;40-48
+1-7;11-24;3-9
+0-1;38-43;19-51
+12-13;6-11
+1-6;1-10;27-28;8-24;13-33;11-17;31-45;9-19;24-38
+17-25;6-34;19-41
+11-38;33-39
+1-5;1-7;1-8;8-16;31-37;3-9
+1-4;1-8;6-8;9-31
+1-4;1-8;17-25;11-24;11-17;6-11;31-46;5-7
+1-8;12-13;14-15;14-17;17-26
+1-9;1-11;15-18;20-21;11-38;38-43;18-23;24-45
+6-34;31-45
+11-24
+17-18;17-25;11-17;33-39
+15-19;16-29;31-47;5-32;24-38;24-31
+1-11;15-19;11-38;7-13;40-49
+1-7;14-16;20-22;8-26;17-20;6-8;6-34;9-19;18-23;24-38
+9-19
+15-19;8-24;17-28;24-50
+2-3;17-24;24-45;19-20
+1-4;9-17
+1-6;14-17;8-24;5-32;19-51
+15-19;17-28;33-39;6-28;39-42;16-24;48-49;19-51
+32-48
+13-33;11-38
+31-45;9-30
+17-36;6-11;5-8;24-50;19-51
+1-7;12-13;25-26;8-24;17-18;16-17;9-30;24-50;19-41
+1-5;1-9;8-16;13-33;17-18;9-17
+1-9;14-15;15-19;27-28;6-11;9-31;18-23;19-20
+1-9;14-16;11-17;38-43;18-23;19-51
+12-13;8-20
+1-11;15-19;31-46;9-17;5-32;24-45
+1-4;15-18;17-28;17-26;33-40;48-49
+1-6;13-33;17-36;33-39;33-40;16-24
+14-16;18-23
+12-13;14-15;15-19;17-35;17-18;17-25;17-36;33-40;32-48;40-49;24-45
+14-16;40-48;19-20
+1-6;12-13;16-24;31-46;7-13;9-15;24-50;19-20
+14-17;8-16;16-17;32-44;38-43
+1-6;17-35;17-18;17-29;18-23
+0-1;1-5;1-9;11-38;6-8;16-17;24-38
+0-1;1-6;17-29;32-48
+1-5;14-15;20-21;11-17;16-29;31-46;48-49
+6-7;32-44;9-15
+1-11;24-31
+2-3;1-11;11-38
+1-11;8-28;9-31;9-19
+1-4;6-7;6-8
+17-36;11-17;39-42;9-19;19-20
+2-3;1-5;1-6;8-16;13-32;16-29
+6-8;6-34;31-46;5-8;24-31;24-50
+8-20;11-38;11-17;16-17;31-37;24-31
+14-15;32-42;3-9
+1-7;25-26;6-28;39-42;24-38;24-50
+14-17;20-22;33-39;6-8;6-17;16-24
+14-16;8-20;31-37;5-32
+1-7;20-21;17-24;17-26;19-20
+1-11;8-26;17-24
+1-4;12-13;9-15
+1-11;23-24;6-8;39-42;9-31;18-23
+1-5;14-15;14-17;17-29;32-42;3-9
+14-17;15-19;25-26;13-32;6-28;9-17
+12-13;27-28;17-29;17-36;11-38;16-17;32-48
+8-28;32-44;48-49;24-45;3-9
+17-20;16-24;5-7
+2-3;48-49;5-7;19-51
+32-48;38-43;24-31;19-20
+1-8;15-19;8-26;13-32;13-33;16-29;16-17;32-42;40-49;24-45
+6-11;9-30;9-17
+1-8;17-18;24-45
+8-24;17-25;32-48;32-42;24-38
+1-4;8-20;33-40;6-25;31-37
+2-3;1-4;14-17;17-28;33-40;6-25;9-17;19-41
+15-18;17-20;6-8;31-47;24-50
+
+1-11;16-24;32-48
+
+13-33
+14-17;31-46;32-42;19-41
+9-19
+20-21;40-49
+33-39;32-42;9-19;5-32;24-50
+12-13;8-16;8-24;17-26;11-17;31-45;38-43;24-31
+0-1;15-19
+12-13;6-8;31-37;19-51
+14-17;33-39;39-42
+1-7;15-18;6-34;24-45
+17-20;6-17;5-32
+1-11;14-15
+1-11;31-45;32-48;38-43
+2-3;14-16;15-19;8-24;17-28;6-28;6-34;9-30;19-51
+8-20;21-31;6-28;16-24;31-37;32-42;24-31
+16-24;16-29;5-7
+12-13;8-20;8-28;16-24;32-42;5-7;24-31
+6-8;18-23;40-48
+15-19;20-22;17-28;6-25;6-8;39-42;38-43;40-48
+0-1;17-24;24-38
+1-7;13-32;19-51
+1-5;15-18;21-31;17-20;17-28;6-7;9-15;24-31
+1-4;20-21;23-24;6-8;6-34
+2-3;1-5
+15-19;23-24;17-35;40-48;3-9
+2-3;1-5;17-25
+1-8;12-13;25-26;17-25;33-40;16-17;31-45
+1-9;1-10;14-16;20-22
+8-24;17-20;6-34;16-29;32-42;24-38;24-45
+0-1;20-21;6-28;6-8;38-43;5-8;24-50
+2-3;17-26;18-23
+13-33;24-38
+15-19;6-34;3-9
+12-13;15-18;11-17;6-28;31-45;9-17;18-23;24-31;19-51
+1-7;23-24;25-26;6-25;24-50
+6-25;9-19
+17-28;17-26;18-23;3-9
+14-16;32-48;32-44;9-17;3-9
+0-1;1-4;20-22;8-26;17-24;31-45;9-19;5-7;18-23;3-9
+2-3;1-8;20-21;20-22;7-13;18-23
+13-32;9-15
+8-24;17-36;3-9
+8-26;17-28;11-24;31-45;31-37;5-32;40-48;19-20
+27-28;17-29;11-17;6-17;32-42;9-15
+17-20;6-11;16-29;24-38
+2-3;1-5;1-9;27-28;31-45
+1-7;6-7
+0-1;8-16;21-31;13-32;13-33;17-28
+20-21;17-26;31-45
+27-28;8-16;33-39;6-17;31-47;5-8
+1-11;31-47;5-7;19-41
+5-8
+15-18;8-24;21-31;17-28;31-45;3-9
+2-3;8-20;17-20;17-25;18-23
+17-24;11-17;6-8;16-24;24-50
+17-28;17-29;16-24
+0-1;15-19;20-22;25-26;21-31;17-26;16-29;32-48;38-43;5-8;3-9
+11-38;11-17;48-49;18-23
+23-24;17-18;40-49
+15-19;23-24;17-18;33-40
+1-9;13-32;39-42;32-42;9-17;3-9
+1-6;1-7;8-24;6-34;9-15;9-17
+12-13;8-26;31-45;48-49;24-45
+14-16
+1-4;1-5;1-8;15-19;8-24;33-40;32-42;38-43;5-7;18-23;3-9
+1-10;16-17
+1-5;13-33
+1-8;12-13;17-28;17-29;17-36;6-7;38-43
+23-24;6-28
+0-1;12-13;14-16;14-17;20-22;11-38;6-25;6-34;31-45;9-19
+1-5;8-20;17-35;33-40
+12-13;17-35;6-17;9-17
+8-26;17-28;6-28;31-46;7-13
+1-5;25-26;6-25
+1-9;9-15;24-38;19-51
+6-7;9-30
+14-17;6-28;31-47;32-42;9-30
+14-16;8-26;11-17;9-17;19-51
+12-13;20-22;21-31;11-38;24-50
+1-8;17-18;33-39;6-34;32-44;24-38
+14-15;8-16;8-28;17-20;6-8;40-49
+1-10;8-16;21-31;17-35;17-20;11-24;31-46;24-38
+27-28;8-16;8-24;17-26;16-29;32-48
+0-1;1-11;15-18;16-17;5-8
+19-20
+1-5;27-28;16-17
+14-15;8-20;33-40;16-24;5-32
+0-1;14-17;8-24;8-26;24-31;19-51
+2-3;12-13;32-42
+13-33;6-25;16-29;9-31;40-49
+14-16;8-20;24-45;19-41
+1-4;14-16;13-32;17-28;17-29;6-8;6-17;39-42;24-38
+32-48
+
+1-11;25-26;8-16;6-7;31-47
+1-8;31-47;24-38
+0-1;2-3;14-15;13-33;40-49
+20-21;8-26;6-28
+6-34;5-7
+17-18;11-24;32-42;9-15
+14-17;6-7;31-37
+1-8;15-18;33-39;33-40;9-17;24-50
+14-15;25-26;8-26;33-40;39-42;40-49
+2-3;1-9;15-18;8-26;21-31
+14-15;8-16;17-20;31-46;9-19;19-20
+32-44;9-17;5-7
+17-35;17-29;33-39;16-29;32-44;7-13;5-7
+14-17;21-31;17-26;6-11;5-8
+1-11;8-24;13-32;17-26;11-24
+1-7;1-11;21-31;33-40;31-45;31-47
+17-20;17-18;6-28;6-25;31-37;18-23
+25-26;8-24;21-31;6-28;6-25;6-17;39-42;38-43;9-15;5-7;24-38
+17-20
+2-3;15-18
+0-1;14-16;13-32;17-28
+0-1;12-13;8-28;31-46;24-45;3-9;19-20
+25-26;6-28;31-47;24-45
+23-24;17-35;17-18;11-17;16-17;24-38;19-41
+1-10;14-17;17-35;17-18;6-8
+20-22;8-20;39-42;16-24;9-30;5-7
+1-4;1-7;14-16;15-18;8-24;21-31;6-25;6-17
+12-13;6-34;31-46;48-49;19-51
+1-5;1-11;15-19;11-38;18-23;3-9
+6-25
+0-1;2-3;1-7;14-17;23-24;8-16;13-32;17-36;19-20
+8-20;17-24;6-17;48-49;40-48
+33-40
+1-5;14-16;17-29;38-43
+1-6;14-16;17-18;16-29;31-45;40-48
+
+8-16;13-33;17-24;6-7;9-15
+1-9;11-17;6-17;6-34;39-42;31-45;32-42;24-38
+1-7;1-9;15-18;17-28;17-25;6-8;31-47;9-17;5-32
+15-19;17-26;24-45;3-9
+8-24;17-18;6-34;31-37;19-20
+1-5;1-10;8-16;6-11;18-23;19-41
+8-28;17-24;16-24;24-45
+1-9;9-19
+17-24;16-29;9-30;9-19;19-51
+1-7;20-21;11-17;9-30;5-8
+8-28;17-24;17-29;17-36;11-38;6-7;6-34;5-7
+8-28;33-39
+0-1;14-17;6-8;9-15;9-30
+1-9;38-43
+12-13;17-18;11-24;11-17;9-17;40-48
+2-3;20-21;17-24;19-20
+1-4;1-6;12-13;8-24;17-24;11-24;5-7;24-38;19-41;19-20
+1-6;12-13;17-35;17-26;17-36;31-46;32-48;9-17
+1-8;39-42;48-49;9-15;9-31
+12-13;14-15;6-7;6-8;31-45;40-48;19-51
+25-26;31-37
+1-5;23-24;13-32
+17-35;17-20;9-17
+12-13;23-24
+2-3;21-31;17-36;32-48;24-45;3-9;19-51
+11-38;6-25;9-17
+14-16;17-24;5-32
+15-18;17-18;38-43;3-9
+1-7;1-9;1-10;25-26;48-49;9-15;5-8
+8-16;3-9
+1-9;14-15;17-26;11-17;33-39;33-40;31-45
+1-4;24-38
+0-1;1-4;21-31;32-48;32-42;40-48
+6-8;31-45
+15-19;23-24;17-24;33-39;6-8;48-49
+11-17
+1-9;1-10;17-36;32-42;24-38
+2-3;1-9;20-21;8-28;17-36;6-34;39-42;16-17;31-46;32-44;9-20;5-8
+15-18;8-26;6-17;16-24;9-31;3-9
+8-24;17-28;39-42;31-46;9-19;18-23;40-48;24-31
+15-18;8-16;13-32;6-7;6-11;40-48
+20-22;7-13;9-19;19-51
+8-20;33-39;6-17
+6-8;5-7;40-49
+1-4;14-17;25-26;17-29;5-7;40-48
+1-7;1-11;13-32
+1-6;17-35;5-32;24-38;24-50;3-9;19-51
+2-3;20-21;20-22;11-24;11-38;24-38;19-51
+1-7;21-31;6-17;9-15
+20-21;20-22;17-25;31-37;32-42
+21-31;33-39;33-40;6-7;19-51
+2-3;8-20;9-31;9-19;19-20
+20-21;13-33;11-17;32-44;24-31
+21-31;6-11;16-29;32-44;9-20
+17-26;32-44;32-42;5-8
+2-3;21-31;17-28
+11-38;6-34;32-42;18-23
+1-6;1-11;13-32;6-7;19-41
+1-4;1-8;16-29;31-47;5-32;5-8;24-38;24-50
+8-28;13-33;33-39;6-8;9-20
+20-21;9-15;5-8
+2-3;14-17;11-38;6-25;48-49;9-15
+17-28;6-25;16-24;16-17;9-19;40-49;3-9
+15-18;20-21;17-36;6-8
+8-20;8-28;17-35;17-36;5-7
+27-28;8-16;11-38;6-7;6-34;16-29;9-20;24-45
+12-13;8-24;21-31;13-33;16-17;31-46;24-45
+1-7;14-17;23-24;27-28;31-46;24-31
+15-19;27-28;21-31;31-45;32-44
+8-20;13-32;13-33;17-24;6-34;32-44;9-20;5-32
+13-33;11-38;5-7
+1-4;17-28;6-28;9-20;9-30
+7-13;9-19;19-41
+17-35;6-11;16-24;40-48
+14-17;20-21;25-26;8-20;8-26;11-38;6-34;6-11;9-15;9-19
+1-11;12-13;14-15;15-18;15-19;23-24;17-20;6-25;31-45;32-44
+8-16;9-15
+1-9;1-11;23-24;6-28;32-44;40-49
+17-29;48-49;5-7
+14-15;8-20;8-28;17-26;6-34;7-13;38-43
+14-16
+1-10;15-18;13-32;6-28;19-41
+25-26;17-24;6-25;6-17;16-29;31-37
+17-24;11-24;6-28
+17-24;9-31
+13-32;17-20;16-24
+1-8;5-8;24-45;19-41
+21-31;17-25;6-7;16-29;5-32;18-23
+1-10;12-13;14-16;15-18;11-24;33-40;16-24;16-29;5-8;18-23
+27-28;8-16;8-26;31-46;31-47;38-43;3-9
+27-28;9-20;24-38;19-41
+12-13;23-24;27-28;17-24;33-39;6-17;9-31;5-8
+17-36;6-34;48-49;9-30;3-9
+15-18;11-17;16-17
+0-1;14-16;38-43;9-30
+14-17;17-24;32-44;40-49
+1-10;14-16;8-20;6-25;31-37;9-15;9-30
+12-13;11-24;11-17;31-45;9-30
+1-7;1-10;13-32;13-33;6-34;16-17;32-48;9-20;9-31
+20-22;23-24;19-20
+12-13;15-18;17-35;33-39;24-50
+2-3;23-24;8-20;17-25;6-7;6-11;9-31
+1-5;1-11;20-21;13-33;17-35
+25-26;21-31;31-37;7-13
+8-24;13-32;17-25;17-26;9-20
+12-13;14-17;13-33;17-26;17-36;11-24;6-8;16-17;31-37;24-50
+8-20;17-18;16-29;31-47;32-44;38-43;9-17;5-32;24-45
+20-21;8-20;8-16;17-29;7-13;9-19
+25-26;11-17;6-28;16-29;9-19;3-9
+6-7;6-25;32-44;9-20;9-17
+17-18;7-13
+14-17;32-44;9-31;9-17
+6-34;3-9
+1-4;1-8;23-24;8-28;31-47;24-38
+0-1;1-4;15-19;6-17;9-20;9-31;5-32
+1-6;1-10;8-28;32-44;9-20
+14-17;21-31;17-35;17-25;6-8;6-11;31-37;9-30
+0-1;1-9;1-11;13-32;6-17
+12-13;8-20;33-39;31-45
+23-24;21-31;17-36;5-7
+1-7;20-21;20-22;17-36;11-17;16-29;32-48;24-38;19-20;19-51
+16-17;48-49;7-13
+17-18;33-39;18-23
+1-7;14-16;6-25;31-47
+1-8;14-15;9-31;40-49
+25-26;38-43
+17-18;17-24;6-17;5-7
+2-3;1-4;1-7;12-13;23-24;33-39;38-43;9-20
+21-31;16-24;31-45;19-20
+1-6;1-9;1-10;8-28;17-35;6-25;6-34;39-42
+1-4;17-24;31-37;31-47
+25-26;16-17;32-44;32-42
+1-8;14-15;8-26;21-31;32-44;9-17;40-48;40-49
+14-15;8-28;8-24;17-35;17-26;11-17;33-39;6-8;39-42;16-17;31-46;32-42;9-20;18-23;19-41
+20-22;8-16;8-28
+0-1;25-26;8-20;16-29;32-48;9-17;5-7;19-51
+0-1;17-25;17-36;11-17;31-37;9-17;19-41
+1-10;12-13;33-39;31-47
+15-18;15-19;23-24;17-24;11-17;6-8;5-8;24-45
+1-10;12-13;33-40;16-24;32-44
+8-28;13-32;17-24;6-7;5-32
+8-28;17-29;7-13;9-20;5-7
+1-9;8-24;8-26;33-39;6-7;6-17;16-29
+1-9;14-17;8-28;6-8;39-42;32-42;9-19
+15-18;20-22;8-16;6-11;39-42;16-17;40-48;24-38
+1-10;8-16;17-25;6-34;16-29;38-43
+14-16;13-32;17-29
+1-7;1-10;27-28;39-42;31-47;9-15;5-7;24-31;24-50
+11-38;6-8;6-11;31-47;40-48;24-31
+14-17;9-15;9-20
+15-18;8-28;6-34;31-37;32-44;9-17
+33-40;6-7;6-8;24-38;24-31;24-50
+12-13;25-26;27-28;8-20;17-28;11-24;6-7;32-44;9-31
+1-8;20-22;8-24;13-32;17-28;48-49;9-15
+1-7;14-15;17-35;17-18;11-38;6-8;32-48;5-7
+1-5;32-44;5-32
+2-3;1-4;1-6;1-8;32-48;5-32;24-31
+20-21;13-32;17-20;17-26;11-24;32-44
+33-40;32-44;7-13;18-23
+33-40;38-43
+1-10;14-16;13-32;6-28;5-32
+12-13;31-45;7-13;24-45
+27-28;13-33;17-26
+20-22;33-39;31-47
+6-8;6-34;24-50
+15-19;27-28;17-20;17-28;16-29;48-49;18-23
+1-5;17-18;6-7;39-42;31-45;24-50
+1-8;14-16;8-20;17-20;11-17;6-11;16-17;24-45
+0-1;1-7;25-26;27-28;8-28;6-7;9-15;19-41
+1-4;17-28;17-29;16-24;31-47;32-42;5-8;18-23;40-48
+1-10;1-11;13-33;17-18;31-47;9-31
+1-8;6-7
+6-34;16-17
+20-21;17-28;16-29
+14-17
+1-11;14-16;15-18;21-31;39-42;3-9
+1-7;11-24;31-45;31-47;32-48;9-19
+17-36;16-24;24-38
+12-13;8-16;17-25;17-29;31-37
+1-10;8-16;17-24;3-9
+14-17;20-21;8-16;6-28;32-42
+2-3;20-22;27-28;8-28;13-32;17-25;33-39
+27-28;11-17;33-40;31-46;5-7;19-20
+20-22;27-28;17-26;6-8;9-30;19-20
+9-15
+20-21;11-17;9-30;5-32
+14-15;33-39;6-11
+27-28;17-28;17-24;6-11;39-42;31-45;40-49;3-9;19-41
+14-16;15-19;17-20;11-17;9-20;24-38
+14-16;27-28;16-17
+1-6;11-24;33-39;40-49;19-51
+1-7;17-18;17-36;6-28;16-29;18-23
+20-22;8-28;8-26;17-36;6-28
+12-13;17-36;32-42;38-43
+0-1;20-22;6-8;31-47;48-49;5-8;19-20
+14-17;6-17;24-45
+2-3;6-28;16-17
+17-28;6-25;16-24;48-49;5-7
+8-26;21-31;6-34;24-38
+1-6;13-33
+32-44;24-38
+15-18;23-24;8-20;6-8
+17-18;24-45
+6-7;31-37
+25-26;5-7;40-49;3-9
+1-10;5-8
+1-8;15-18;11-24;3-9
+20-22;13-32;17-35;6-8;32-48;9-20;19-20
+1-9;15-18;13-32;17-35;17-36;6-28;6-25;6-34;24-38
+17-35;17-28;16-17;9-17
+15-19;21-31;11-24;33-39;9-20
+0-1;1-5;20-21;17-26;9-20;19-41
+14-15;8-28;17-26;11-24;6-28;9-19;5-7
+14-16;14-17;25-26;6-34
+15-18;11-24;39-42;31-45
+14-15;20-21;17-35;17-20;17-28;17-24;6-11;9-20
+12-13;20-22;17-18;17-24;17-25;31-37;31-47;32-44;9-31;19-20
+17-25;9-15;24-50;19-51
+1-5;1-10;1-11;15-19;23-24;31-47;7-13;24-45
+1-7;13-33;11-24;33-39;16-24;16-17;31-47;5-32;19-51
+12-13;6-17;19-41
+15-19;38-43
+1-9;27-28;6-17;16-24;16-29;24-31
+12-13;17-24
+6-7;16-17;48-49;9-30;5-32
+14-16;20-21;8-24;33-40;31-37;32-42;9-31;9-30;24-50
+23-24;8-28;39-42;16-29;18-23
+17-25
+27-28;32-42;18-23
+17-24
+25-26
+13-32;31-46;32-48;48-49;38-43;24-38
+14-17;17-35;17-28;33-40;9-15;24-31;3-9
+14-16;13-33;17-35;16-24;31-45;9-20;5-8
+8-20;8-16;17-36;32-44;32-42
+1-6;20-22;17-20
+14-17;8-16;21-31;17-26;17-36;6-28;6-34;16-24;16-17;32-44;18-23
+1-10;17-25;17-26;31-46
+15-18;25-26;6-8;6-11;31-46;32-42;19-41
+0-1;1-4;15-19;17-35;11-24;16-24;24-45
+0-1;27-28;16-29;24-38
+16-24;24-38
+14-16;8-28;33-40
+1-5;20-21;11-38;6-25;32-44
+11-17;16-29;16-17;9-31;18-23;19-51
+0-1;1-6;20-21;24-50
+
+23-24;6-34;31-47;9-19;24-45;24-50
+16-24;16-17;9-30;9-19
+23-24;17-28;33-40;6-7;16-24;31-37;9-30
+6-25;18-23;24-31
+14-16;8-20;8-28;17-35;6-11;19-20
+23-24;6-25;9-20
+8-20;17-28;17-36;33-40;6-28;16-17;32-48;9-20;9-30;5-32
+2-3;1-10;15-19;21-31;31-47;38-43
+11-38;9-20
+1-6;6-8;6-17;5-8;24-38
+2-3;14-17;8-26;6-17
+1-6;1-9;12-13;7-13
+1-5;8-28;32-42;48-49;40-49
+1-6;1-8;14-15;39-42
+1-6;11-24;6-8;32-42;5-7;24-31
+8-16;8-24;38-43
+1-7;17-20;17-29;6-17;24-38
+1-6;1-10;1-11;17-35;11-38;6-28;31-47
+21-31;17-24;17-26;11-17;19-41
+1-10;8-28;33-40;6-7
+11-38;16-24;9-20;5-32;40-48
+11-24;24-31
+14-17;23-24;13-32;31-46;31-37
+1-8;25-26;16-24;31-45;31-46;31-47
+1-5;15-18;23-24;13-33;11-17;5-32;24-45;19-51
+15-19;11-38;6-8
+1-5;17-25;11-38;6-7;31-45
+0-1;8-16;21-31;17-24;48-49
+25-26;13-32;33-40;16-24;32-48;9-30;18-23;19-41
+21-31;6-34;48-49;9-15;5-32
+31-45;31-46;24-45
+1-5;14-16;31-46;9-20;40-48;40-49;24-31;19-51
+20-22;8-20;33-39
+14-15;21-31;33-40;31-47;32-42;3-9
+17-36;11-24;11-38;6-25;6-8;9-20;9-19;5-32;40-48;19-20
+25-26;8-16;17-35;19-51
+1-10;15-18;8-28;31-46;48-49
+2-3;14-15;13-33;17-35;6-25;32-42;48-49;18-23
+1-4;12-13;14-16;20-21;8-20;8-16;6-25;6-34
+1-11;17-28;24-45
+0-1;13-33;6-17;39-42;7-13
+20-22;17-25;11-17;33-39;3-9
+23-24;17-35;9-20;40-48;24-38
+8-28;17-26;6-11;5-32;40-49;19-41
+15-19;11-17;31-37;38-43;9-20;9-30;40-48
+8-26;17-36;39-42
+20-21;31-37;9-15;9-30
+1-6;14-15;14-17;6-7;6-25;9-30;5-32
+1-5;1-9;17-35;16-24;9-31
+15-19;13-32;16-29;19-41
+1-9;17-29;33-39;32-44;9-31
+1-4;17-28;6-8;31-37
+1-4;1-6;1-8;15-19;20-22;8-28;11-24;6-7;6-17;16-17;31-47;32-48;38-43
+1-5;12-13;14-15;20-22;8-20;17-24;9-15
+1-11;15-18;21-31;31-45
+1-11;15-19;8-26;6-8;32-42
+25-26;21-31;13-33;48-49
+1-9;1-11;16-17;38-43;24-50
+0-1;12-13;33-40;6-28;48-49;9-20;40-48
+1-9;12-13;8-28;11-17;9-17;5-8;24-31;19-41
+14-17;13-33;32-48;18-23
+1-5;25-26
+17-24;6-7;6-11;16-24;7-13
+1-6;17-20;17-28;17-24;11-38;6-28;9-20;40-48;24-45
+17-18;17-29;6-17;9-15;3-9
+25-26;16-24;31-45;9-15
+0-1;8-24;13-32;13-33;11-38;9-31;5-32
+1-5;1-6;1-11;12-13;14-15;15-19;8-16;13-33;17-25;17-26;9-15;9-19;5-8;40-49
+1-5;23-24;25-26;13-33;6-28;6-34;9-31;9-30;5-7
+15-19;17-28;17-25;6-8;31-46;32-44;9-20;40-49;19-51
+15-18;32-42;9-31;5-8
+1-5;14-15;14-17;20-22;16-24;5-32;18-23
+0-1;1-7;1-9;27-28;17-36
+1-10;15-19;20-21;27-28;6-28;6-25;31-47;38-43;24-31
+5-7;19-51
+20-21;27-28;6-7;9-20;5-7;24-50
+2-3;1-7;14-17;25-26;27-28;17-29;11-38;6-28;6-17;39-42;18-23;19-41
+15-18;17-24;6-34;32-48;9-20;18-23;3-9
+1-10;8-20;31-46;32-42
+1-11;24-45;24-50
+1-6;32-48;32-42
+0-1;11-24;5-32;5-7;24-38
+14-17;8-24;16-29;18-23;24-38;19-41
+1-7
+1-11;8-26
+1-9;25-26;31-46
+11-24;7-13;9-30;5-8;19-51
+2-3;17-36;6-25;9-20;9-17;19-41
+14-17;20-21;8-24;17-18;31-37;18-23;19-41
+8-20;8-26;39-42;16-17;31-47;32-44;32-42;9-30;5-8
+2-3;17-25;9-20;40-49
+1-4;1-5;1-7;1-8;16-17;32-42;9-20;5-32
+33-39;16-17;31-46;9-15;18-23;24-38;19-20
+1-10;14-15;17-26;16-24
+2-3;1-5;8-24;17-35;17-24;7-13;9-20;9-31;19-20
+1-5;27-28;13-32;17-18;6-8;6-34;32-42;7-13;5-7;19-41
+20-21;8-24;3-9
+17-18;16-29;5-32;24-38
+23-24;17-36;11-38;6-8;16-29;9-19;24-45
+12-13;8-20;17-18;17-24;17-36;32-48;9-19;24-31
+12-13;8-28;32-42;24-38;24-31
+1-10;17-29;9-17;40-49;24-50
+15-19;6-7;48-49;24-45;19-41
+25-26;8-20;8-28;8-24;21-31;33-40;7-13
+17-36;31-45;32-42;9-15;9-19
+1-4;1-10;16-17;3-9
+48-49;9-30;40-49
+1-10;14-17;31-45;24-38
+20-21;21-31;6-7
+1-10;17-20;17-18;17-28;6-11;38-43;9-30;5-32;5-7
+8-16;17-28;17-29;11-24;18-23
+17-18;17-25;6-17;39-42;16-29;32-44;24-31
+27-28;17-18;11-24;31-37;38-43;9-15;19-51
+17-18;32-48
+27-28;8-28;8-26;6-34;16-17;19-41
+1-4;14-16;8-16;9-19;24-45;19-51
+24-38;19-20
+1-8;33-40;5-8
+0-1;13-33;17-24;17-26;33-40
+1-9;21-31;17-26;33-39;9-15
+15-19;8-28;8-26;11-38
+1-6;15-18;20-22;21-31;11-17
+1-8;12-13
+2-3;25-26;8-28;13-33;17-35;31-37;32-48;32-42;18-23
+8-16;6-28;9-20;3-9
+14-15;14-17;8-16;8-26;17-18;6-28;16-29;40-49
+1-4;14-16;8-16;17-20;17-18
+8-16;6-28;6-8;31-37;19-20
+15-18;15-19;17-25;6-25;6-8;32-44;32-42
+0-1;13-32;38-43;24-45
+13-33;11-38;6-17;6-34;32-42;9-17
+2-3;1-6;17-36;18-23
+14-17;27-28;31-46;32-42;24-50
+1-4;14-15;9-30;9-19
+1-4;1-9;1-10;23-24;27-28;8-20;13-32;6-34;9-19;18-23
+1-9;16-24;32-44;48-49;18-23
+31-45;31-46;31-37
+0-1;1-6;20-22;8-20;8-28;17-24;17-29;33-39;6-8
+8-28;13-33;17-28;48-49;9-31;19-41;19-20
+1-6;8-28
+1-7;15-18;15-19;17-29;16-24;31-45
+0-1;13-33;31-47;3-9
+33-40;6-25;5-8
+14-16;17-36;33-40;6-8;9-20
+20-21;13-32;17-28;17-24;6-34;48-49;9-20
+8-20;17-24;17-26;17-36;40-48
+31-47
+1-4;8-16;8-28;17-18;31-37;24-38
+8-26;17-26;31-47
+13-32;11-17;32-48;48-49;7-13
+25-26;27-28;13-32;6-25;6-17;16-17;9-17;18-23
+1-9;23-24;11-24;40-48
+8-24;33-39;16-17;32-48;24-50
+2-3;15-18;20-22;39-42;31-47;3-9;19-51
+1-11;27-28;40-48;40-49
+1-7;1-11;20-22;8-28;17-28;6-11
+0-1;17-20;6-28;38-43
+12-13;16-24;3-9
+1-5;9-20;9-31
+15-19;17-26;16-29
+15-18;31-47;40-48
+40-48;19-41
+17-25;16-29
+1-4;20-21;8-26;13-33;31-37;38-43
+17-20;17-24;6-25;7-13
+17-35;6-25;6-17
+1-5;1-10;24-38
+1-6;13-32;11-24;32-42;9-20
+8-26;17-18;31-46;9-15;40-48
+14-15;16-24;31-46;32-48;32-42;9-31;9-19
+20-21;20-22;23-24;11-24;11-17;19-41
+8-24;17-18;17-24;31-45
+1-7;17-25;17-26;9-17
+15-18;27-28;17-26;17-36;16-24;32-48;9-31;40-48
+17-29;6-25;6-17;3-9
+20-22;17-36;32-44;9-30;18-23;24-31
+11-24;6-8;31-46
+27-28;31-47;32-44;9-30
+1-9;17-20;17-28;6-34;32-48;32-44;9-30;18-23
+2-3;1-9;17-24;11-17;40-48;19-51
+1-8;15-19;13-33;17-24;16-17;24-31;19-20
+14-17;6-28;24-50
+12-13;23-24;6-8;32-42;9-20
+0-1;2-3;8-16;9-17;40-48;24-50
+12-13;8-16;8-26;17-25;17-29;33-39;32-42;9-15
+15-18;8-28;31-46;9-15
+1-9;31-46;32-42
+6-28;40-48
+14-15;17-36;11-17;16-29;31-46;38-43;5-32;24-50
+20-21;6-17;9-20;9-17;3-9;19-51
+1-4;12-13;11-17
+1-4;20-21;23-24;17-20;6-25;19-41;19-20
+15-18;20-21;17-35;11-24;6-25;5-32;19-20
+1-8;8-28;39-42;48-49;40-49;24-38
+2-3;1-7;1-11;17-20;9-20;5-7
+15-19;8-20;6-17
+6-7;18-23;40-49
+6-8;6-34;39-42;9-15
+25-26;17-28;17-24;17-26;33-40;7-13;24-45
+1-9;8-26;33-40;31-45;9-20;9-31
+16-17;32-48;19-41
+14-15;17-35;17-36;6-34;38-43;5-7;3-9;19-51
+15-19;6-8;6-11;32-42;9-19;24-31;19-41
+8-26
+1-6;8-16;17-35;6-17;9-19;19-41
+1-4;1-8;20-21;20-22;17-25;31-47
+1-11;6-25;6-34;7-13;5-8
+15-19;24-50
+11-38;16-17;18-23;19-51
+1-7;8-26;31-37;48-49;9-15;24-50
+16-17;9-20
+0-1;2-3;15-19;17-25;6-34;32-48;32-42;9-20
+31-37;3-9
+39-42
diff --git a/examples/failures/failures-0.07 b/examples/failures/failures-0.07
new file mode 100644
index 0000000..3f1d247
--- /dev/null
+++ b/examples/failures/failures-0.07
@@ -0,0 +1,1000 @@
+1-6;1-11;17-18;33-40;6-28;9-19
+1-9;12-13;11-24;39-42;16-24;32-44;9-17;5-32;24-38
+1-9;25-26;6-8;32-48
+11-38;9-31;5-32
+14-16;11-17;6-25
+8-16
+20-21;8-20;8-26;17-36;32-44;24-31
+8-24;33-40;38-43
+15-19;6-28;48-49;5-7;24-38
+0-1;17-20;17-25;11-17;6-17;39-42;16-29;9-31;18-23;3-9;19-20
+6-8;31-47;9-17;40-49
+8-28;13-33;31-45;31-37;24-38;24-31;19-20
+1-4;8-16;17-36;6-34
+0-1;17-18;6-7;16-29;9-20
+15-18;17-20;19-41
+2-3;1-5;17-18;11-17;38-43;24-38
+1-8;40-49;3-9
+1-9;25-26;17-35;9-17
+33-39;9-19
+14-16;20-22;8-28;17-35;9-19
+2-3;1-11;14-16;11-17;31-47;48-49;7-13;9-19
+2-3;14-17;15-19;6-8;9-19
+6-25;6-17;5-7
+0-1;14-15;13-33;16-24;5-7
+1-7;23-24;8-16;8-28;8-24;17-24;38-43;9-30;40-48;24-45
+1-5;25-26;6-28;31-45;24-31
+1-11;15-18;27-28;8-26;17-26;11-38;33-40;38-43;9-17
+0-1;20-21;17-20;17-26;6-7;24-31
+17-26
+1-9;14-15;6-25;39-42;38-43;9-20;18-23;19-20;19-51
+1-6;12-13;14-16;23-24;8-16;11-24;32-48;5-32;19-20
+39-42;31-45;48-49;9-30;24-38
+6-17
+8-28;5-7;40-49;24-45
+33-39;16-29;18-23;24-38;24-31;24-45
+1-4;1-8;6-28;48-49;7-13;24-45
+1-9;6-7;6-25;16-24;5-8
+14-15;15-18;15-19;17-36;31-46;32-44
+23-24;9-30;9-17;24-38;3-9
+14-15;6-34;31-47;5-8;19-41
+1-4;1-5;20-22;17-18;17-29;33-40;6-7;39-42;31-37;9-31
+1-9;27-28;11-17;7-13;24-38
+14-17;17-18;17-24;6-28;6-25;6-8;31-46;32-44
+0-1;1-8;20-21;27-28;17-28;11-24;38-43;24-45
+14-16;8-26;17-29;31-45;24-45
+1-6;14-16;15-19;23-24;27-28;5-8
+1-5;15-18;11-38;33-39;9-20
+1-11;11-17;9-31
+1-10;20-21;27-28;8-20;6-7;6-11;16-29
+15-18;25-26;5-8;5-7;19-20
+1-5;1-6;15-19;17-25;6-8;31-46;32-44;24-50
+1-9;8-28;17-35;32-48;48-49;24-45;19-20
+8-16;8-24;17-28;11-17;6-7;16-24;16-29;32-48;24-45
+23-24;13-33;17-35;11-38;31-45;9-15;9-17;40-48;24-31;24-45;3-9
+20-22;6-28;38-43;19-51
+1-10;12-13;14-17;11-24;6-17;31-37
+1-9;14-15;8-20;17-18;11-24;16-24;40-48
+17-35;31-37;40-48
+8-16;8-24;16-29;16-17;31-45;18-23;19-51
+14-15;15-19;20-22;11-38;33-40;48-49
+1-5;14-16;21-31;7-13;5-32;40-48;3-9;19-41
+15-18;6-25;32-42;19-51
+13-33;5-7
+1-10;8-28;31-46;5-7;40-48;24-50
+1-8;20-21;8-26;17-36;11-17;31-37;19-51
+14-17;17-20;9-31
+0-1;1-7;6-34;31-45;48-49;40-48;24-31
+1-4;1-7;8-20;17-25;32-48
+1-10;21-31;17-24;6-11;32-48;7-13;19-20
+16-17;31-46;19-20
+1-6;14-17;11-17;33-39;33-40;40-48;40-49
+1-5;1-10;8-28;17-29;6-28;5-32;19-20
+15-18;8-16;7-13;9-30;18-23
+14-16;15-19;21-31;9-20
+20-22;8-26;17-20;17-26;31-37;48-49;24-31;3-9
+1-11;17-28;17-26;6-17;31-47;32-44;5-7;40-49;24-38
+17-26;9-30
+8-20;8-28;33-39;6-11;16-29;32-48;9-31;40-48
+17-20;24-38
+0-1;12-13;15-19;11-24;6-8
+20-22;17-18
+1-7;6-28;32-42;9-15;40-49
+15-19;17-24;11-17;9-19;5-8
+0-1;12-13;8-28;8-26;17-35;32-48;32-44;38-43;9-15;9-20;9-19;3-9
+1-9;15-18;17-28;17-25;6-34;16-17;32-48;7-13;9-31;9-19
+20-21;17-35;33-39;31-45;9-19;24-38
+14-15;13-33;33-40;6-25;9-20;18-23
+2-3;15-19;17-35;17-20;6-11;16-17;31-47;9-15;5-32;40-48
+2-3;27-28;8-20;17-36;32-42;5-7
+1-10;8-16;17-35;17-25;16-24;48-49;9-17;5-8;24-31;19-20
+6-7;6-17;9-30;40-48;3-9
+8-24;17-29;6-8;19-20
+17-35;11-38;6-34;9-15
+1-4;1-5;20-21;8-26;33-39;16-29;7-13
+17-35;11-24;31-47
+1-6;15-18;20-22;8-16;13-32;6-17
+1-8;1-11;17-25;32-42;9-31;3-9;19-41
+14-16;25-26;13-32;11-17;16-29;38-43;24-31
+14-16;17-28;6-8;40-49;24-45;19-41
+1-6;12-13;14-15;9-17
+13-32;17-18;33-40;6-28;9-20
+8-20;17-29;11-38;39-42;5-32
+14-15;15-19;31-37;5-7
+1-5;1-9;13-32;17-18;11-17;9-31;24-50
+1-6;16-24;5-32
+25-26;13-32;17-18;31-45;7-13;40-48;24-38
+17-24;31-47
+15-18;11-24
+1-9;17-20;11-38;9-17;40-48;24-38;19-51
+23-24;13-33;11-17;33-40;6-34;16-17;31-46
+0-1;13-32;31-37;40-49;24-31
+14-16;8-26;6-17;32-44;40-48;24-38;19-51
+1-5;17-25;31-45;48-49;38-43
+1-6;17-28;9-20
+12-13;14-16;8-26;13-33;17-29;39-42;48-49
+20-21;25-26;21-31;17-25;17-36;11-38;31-45;9-30
+1-6;1-8;27-28;17-36;9-15;9-30;9-17
+13-32;16-29;31-47;40-49;24-31;24-50
+0-1;27-28;8-16;17-35;17-18;6-28;31-37;9-15;9-20;24-45
+1-4;1-9;20-21
+1-6;12-13;14-15;15-18;8-20;8-24;17-35;17-18;11-24;6-34;32-44;5-32;19-41
+1-5;8-16;13-32;6-11;16-17;31-37;48-49;7-13
+1-8;8-26;13-33;17-20;17-28;6-7;9-20;40-49;19-41
+1-7;17-26;31-46
+6-17;16-17;32-44;5-7
+1-7;1-10;17-35;17-18;17-26;6-11;39-42;19-41
+15-19;23-24;8-24;13-33;17-28;17-26;16-24;32-48;32-44;40-48
+14-16;13-32;16-29;38-43;3-9
+14-15;21-31;33-39;6-11
+8-20;33-40;6-34;16-17;31-47;32-42;40-48;40-49
+14-15;25-26;8-28;19-20
+17-20;31-46
+1-7;21-31;17-24;11-17;16-24;32-48
+23-24;11-24;48-49;5-8
+1-9;17-35;17-18;17-24;17-29;6-28;6-25;16-29;31-37;9-20;3-9;19-41
+14-15;14-17;6-7;16-24;38-43;5-7;24-31;24-45
+1-6;8-28;18-23
+1-8;1-10;17-35;17-18;6-34;5-8
+2-3;14-17;17-28;11-17;6-8;9-20
+20-22;31-46;31-47
+0-1;8-16;5-32;24-38
+23-24;8-20;13-33;6-8;9-15;9-20;5-7;40-49
+14-15;8-26;33-40;38-43
+2-3;8-24;8-26;11-17;7-13;9-15;24-38;3-9
+2-3;1-10;14-15;20-21;17-36;6-25;9-20;18-23;24-50
+1-4;8-28;17-36;32-42;48-49;24-45
+1-5;1-7;8-28;21-31;17-29;31-37;9-20
+1-4;11-24;32-48;9-19;5-8
+1-4;1-5;1-11;9-20;9-19
+0-1;20-21;23-24;8-24;17-20;11-38;9-19;24-31
+8-20;13-33;9-19;5-8;18-23
+2-3;1-6;1-8;9-20
+2-3;1-10;12-13;14-17;31-46
+1-7;14-16;27-28;8-28;21-31;13-33;6-25;16-29;32-48;48-49
+8-24;17-25;9-20;9-31
+1-6;15-18;17-24;11-17;6-34;32-44;9-17;5-7;19-41
+23-24;17-29;39-42;38-43
+1-6;1-7;11-24;11-17;39-42;32-48;7-13;19-41
+2-3;1-5;20-22;9-20;9-30;24-50;19-41
+2-3;12-13;31-37;7-13;18-23;40-49
+1-6;1-10;8-16;8-24;11-24;6-25;16-17
+1-11;14-17;17-29;11-17;33-40;31-47;48-49;9-20
+8-26;17-35;6-11;39-42;24-31
+0-1;25-26;6-28;32-44
+2-3;14-15;23-24;9-15;9-20
+1-9;13-33;6-34;39-42;31-37;40-49;3-9
+1-7;6-7;6-17
+1-7;1-10;15-18;39-42;31-45;19-51
+1-11;15-18;25-26;8-16;24-50
+6-8;6-11;32-48
+15-19;20-21;21-31;19-20
+2-3;1-6;8-20;17-20;39-42;9-20;9-17;24-50
+0-1;2-3;1-4;1-8;1-9;12-13;20-22;17-25;17-36;11-24;11-38;33-40;6-8;6-11;19-20
+17-28;17-26;11-24;6-28;31-47;9-15;9-31;18-23;3-9
+1-4;1-8;27-28;13-33;17-26;16-24;24-50
+1-5;1-10;23-24;17-26;6-7
+1-8;1-11;14-17;48-49
+17-25;6-8;31-37;9-15;24-50
+15-18;17-25;16-24
+15-19;20-22;17-18;6-7;16-24;9-15;9-20;9-31;19-41
+12-13;25-26;8-16;17-29;33-39;6-7
+1-7;8-20;11-24;6-8;19-41
+39-42;38-43
+23-24;21-31;13-33;11-38;6-28;24-31;19-41
+1-9;15-19;17-29;48-49
+8-16;38-43;9-20
+12-13;20-21;7-13;5-32;5-8
+25-26;39-42;3-9
+0-1;17-20;11-38;33-40;6-8;32-44;40-49
+9-17;5-8;19-20
+8-20;17-24;17-29
+1-10;15-18;20-21;23-24;24-38
+2-3;15-19;17-29
+2-3;1-8;1-9;8-20;5-7
+6-17;9-20;5-7;24-31
+1-6;20-21;8-28;17-24;6-7;31-47;40-49;3-9
+14-16;20-22;17-29;32-44;48-49;9-15;9-17;18-23
+12-13;14-16;13-32;17-20;17-24;33-39;6-25;9-20
+2-3;1-5;14-17;13-33;11-24;9-30
+2-3;1-4;1-6;17-36;11-38;6-7;6-8;6-34;31-37;19-41
+1-4;15-19;17-36;9-20;40-49
+17-28;6-28;16-17;32-44
+8-26;17-20;33-40;6-28;39-42;16-24;3-9
+1-9;15-18;8-20;13-32;6-7
+1-11;12-13;25-26;8-16;17-35;32-44;9-20
+13-32;7-13;9-31;18-23
+1-6;14-15;17-28;6-25;31-37
+33-39;40-49
+14-15;21-31;17-29;16-24;48-49;7-13;5-8;24-38
+6-11;31-46;19-41
+1-10;17-20;31-45
+8-24;11-17;7-13;9-31
+1-9;13-33;17-24;11-17;33-39;33-40;6-25;6-34;9-20;9-17
+1-9;8-20;17-25;6-11;16-29;31-37;9-19;40-49
+1-11;17-25;9-19
+0-1;1-5;12-13;15-18;33-39;16-24;31-47;9-19
+17-29;9-20;9-19
+1-7;13-33;11-17;33-40;31-46;32-48;18-23
+6-34;31-45;32-42;7-13;9-31;24-45
+1-8;31-37;9-20;40-49;24-45
+13-33;17-35;11-24;6-25;6-8;16-29;31-47
+25-26;21-31;11-24;16-24;5-7
+1-10;39-42;32-48;5-7
+14-16;15-18;8-16;6-34;31-37;24-50
+12-13;8-16;6-7
+14-17;17-26;32-48
+1-6;1-7;8-16;17-26;6-17;6-11;16-17;48-49;9-31
+1-7;14-16;17-25;17-26;31-37;18-23;40-49;3-9
+1-4;15-18;17-36;9-15;24-45
+2-3;1-4;17-29;17-36;6-34;6-11;16-24
+1-4;1-8;8-24;17-20;17-36;11-38;6-7;32-48;18-23;24-50
+1-5;20-22;31-47;19-20
+1-8;1-9;6-8;9-31;40-49
+8-16;17-35;33-40;6-25;16-17;31-37;32-44;19-20
+8-28;17-20;17-28;16-29
+21-31;17-24;31-46;48-49;19-51
+1-10;20-22;21-31;11-38;16-24;31-46;32-42;38-43;9-20
+1-6;1-11;13-33;19-41
+14-16;15-19;6-7;48-49;9-15;19-51
+23-24;25-26;17-25;11-24;6-34;9-20;9-31;40-49;19-41
+8-28;13-33;31-37;9-15;24-50
+17-29;11-38;33-40;16-17;31-47;32-44;7-13;24-31
+0-1;1-9;6-7;9-20;9-30
+1-6;1-10;17-20;31-46;32-42;9-30
+1-5;1-11;21-31;9-17;40-49
+14-17;17-35;17-24;6-7;6-25;9-31
+0-1;1-8;25-26;17-35;17-26;17-36;39-42;16-29;38-43;9-20;40-49
+1-8;15-19;23-24;17-28;6-34;39-42;24-31
+1-6;20-21;25-26;17-20;16-29;32-42
+16-17
+14-15;8-16;17-25;6-7;6-17;5-7;3-9
+1-10;12-13;33-39;6-8;32-48
+1-6;14-16;15-18;8-28;8-26;17-20;17-28;17-36;11-24;33-40;6-25;39-42;16-24;9-20;19-20
+1-4;1-8;12-13;8-16;48-49;7-13;19-20
+1-9;8-28;6-11;31-45
+1-4;1-8;25-26;8-20;17-36;33-40;31-47;5-32
+20-22;21-31;9-20;9-17;24-31;3-9;19-51
+8-26;17-26;6-17;32-44
+1-8;1-11;14-17;17-28;11-38;31-46;9-15;5-8
+
+1-9;20-21;6-17;31-47;9-20;5-7;19-51
+13-32;17-25;31-37;5-8
+0-1;8-26;6-28;7-13
+14-15;25-26;11-38;16-17;32-42;9-20;24-50;3-9
+27-28;6-7;16-24;38-43
+8-16;9-17
+15-19;27-28;8-20;8-28;13-32;17-18;17-28;33-40;9-20
+0-1;14-15;8-16;6-11;16-29;31-45;31-37
+1-8;8-28;17-35;17-26;11-38;31-45;32-42;5-7
+27-28;21-31;6-28;39-42;48-49
+2-3;1-9;8-24;17-28;6-17;19-51
+2-3;14-17;27-28;6-11;16-24;16-17;32-42
+8-26;13-32;32-44;9-17;3-9
+23-24;27-28;17-25;11-24;6-34;18-23
+1-8;17-26;11-24;6-25;6-11;9-15
+27-28;8-16;17-26;11-38;38-43;24-45
+1-6;15-18;17-18;17-26;17-29;33-39;16-29;19-51
+27-28;17-35;6-25;16-24;24-38
+20-22;17-20;11-24;9-20;9-19
+1-9;17-20;11-17;6-25;38-43;19-20
+1-9;14-15;25-26;27-28;17-36;11-17;32-42;9-19;3-9;19-51
+1-6;14-16;23-24;17-24;11-38;16-29;48-49;9-19;24-38;24-31;19-41
+1-10;14-15;27-28;8-28;21-31;17-28;33-40;6-8;32-44;9-20;9-19
+1-4;15-19;17-24;6-34;38-43;9-31;9-30;24-45;19-51
+14-17;17-25;24-45
+1-5;17-24;17-25;11-17;9-20
+1-8;11-38;6-25;16-17;3-9
+1-6;1-11;8-24;17-24;32-48;32-42;5-7
+0-1;23-24;25-26;8-20;31-45;32-48;9-20
+1-10;20-21;8-28;31-37;9-31
+1-6;1-7;1-8;17-28;17-29;17-36;6-17;5-8;24-31
+1-7;21-31;17-18;17-28;11-24;11-17;7-13
+1-6;1-7;8-16;8-26;11-24;32-42;9-20
+13-32;6-8;6-34;48-49;19-51
+20-21;6-17;16-29;16-17
+1-11;33-40;39-42;5-8;24-38
+17-20;17-25;11-17;31-37
+17-25
+1-7;1-8;1-9;6-7;16-17
+1-7;15-19;19-51
+15-18;23-24;17-20;17-18;17-29;6-25;6-17;6-11;9-20
+1-7;13-33;33-40;9-31;40-49
+1-5;1-10;38-43
+27-28;9-31;24-31
+21-31;33-39;6-11;32-42;9-20
+2-3;27-28;8-24;31-47;40-49;24-50
+0-1;1-7;1-10;12-13;17-35;5-32;18-23;40-48
+15-19;27-28;13-33;17-36;5-8
+1-9;14-15;23-24;17-35;31-46;32-44
+1-4;14-16;14-17;17-25;31-37;38-43;19-51
+1-4;1-8;14-15;33-40;16-29;5-8;3-9
+2-3;15-19;20-21;33-39;18-23
+1-4;1-8;12-13;14-15;38-43;9-15;3-9
+12-13;15-18;8-16;17-18;6-25;39-42;32-42;40-48
+1-10;20-22;11-24;6-7;16-17;5-8;19-20
+24-50
+20-21;31-46;31-37;32-44;5-7;40-48;19-20
+1-5;1-6;1-9;21-31;6-28;9-15;5-7;40-49;19-41
+20-22;17-28
+1-11;8-20;6-34;6-11;9-15;9-20;19-41
+0-1;14-16;20-21;8-16;8-28;32-42;38-43
+14-16;14-17;8-26;17-28;11-38;6-8;6-17;48-49;24-45
+13-33;31-47;40-48;19-51
+1-4;1-5;1-11;15-19;17-20;16-24;31-47;32-48;5-8
+1-9;23-24;9-15;9-30;19-41
+1-11;17-26;6-17;32-42;9-30
+17-26;6-7;9-15;40-48;19-51
+17-26;11-24;11-38;6-28;39-42;31-47
+1-7;8-24;6-34
+0-1;1-8;1-10;15-19;17-18;33-40;31-46;18-23;40-48;40-49
+25-26;8-20;13-32;17-29
+12-13;14-17;8-26;17-35;6-25;38-43
+1-6;17-25;11-17;31-47;32-42;9-20;24-31;24-45;19-51
+1-9;8-24;6-7;6-28
+1-7;14-16;21-31;6-7;6-25;24-38
+14-16;33-40;31-45;9-15;5-8;24-38
+14-16;8-16;13-33;17-29;7-13;9-31;9-17;19-20
+1-4;15-18;17-20;17-36;5-32;40-48
+0-1;1-10;20-21;6-34;48-49
+1-5;12-13;25-26;13-32;11-38;33-39;6-7;19-41
+1-9;23-24;8-24;17-29;11-24;40-48
+27-28;8-16;8-28;17-20;11-24;33-40;32-42
+1-6;20-21;8-20;6-8
+1-11;15-19;27-28;21-31;6-7;31-46;32-48;38-43;40-48
+0-1;13-32;17-18;24-38
+12-13;27-28;17-24;6-8;6-11;31-47;9-19
+14-15;8-26;13-32
+20-21;17-35;33-39;6-7;6-28;32-44;9-20;9-19;5-8;24-31
+25-26;27-28;13-33;17-24;6-34;39-42;16-29;9-19;24-38
+1-5;15-18;17-35;17-28;6-11;16-24;31-37;9-19;3-9
+14-16;31-47;9-15;40-48
+1-7;1-11;14-16;8-28;17-25;6-7;31-46;9-17;24-38
+12-13;15-19;20-22;8-26;13-32;6-11;32-44;5-32
+14-15;11-24;39-42;31-45;32-42;40-48
+13-32;17-28;38-43;9-31;24-31
+8-16;19-20
+6-28;6-17;6-34;16-17;40-48
+1-8;1-11;20-21;8-24;13-33;6-17;9-15;40-49;19-51
+1-6;8-16;17-28;48-49;24-38
+1-5;12-13;8-28;17-20;6-11
+13-32;33-40;6-7;40-48;24-50;19-41
+15-18;17-18;9-31;24-38
+1-4;11-38;6-11;39-42;19-41
+1-4;1-8;23-24;8-20;8-24;6-7;6-28;5-8
+21-31;16-17;31-37;32-48
+1-4;1-8;14-16;15-19;17-36;6-11;32-48;32-44;32-42;48-49
+17-28;17-36;6-17;6-34;9-15;5-8
+20-21;11-38;6-7;31-47;9-31;9-30
+1-10;14-15;6-7;16-29;31-37;7-13;5-8;18-23
+1-11;8-24;17-24;17-25
+14-17;6-17;16-24;32-42;5-7;40-48
+8-28;8-26;17-29;33-40
+25-26;8-20;8-26;13-33;6-7;31-47;40-49
+14-15;6-28;6-8;48-49;9-15;40-48;24-50
+1-11;8-24;16-24;31-37;19-20
+13-32;17-28;17-26;17-29
+20-22;17-35;17-26;9-17;40-48;19-20
+1-9;8-16;17-26;5-32
+14-17;27-28;19-51
+0-1;8-16;11-38;6-8;6-11;16-17;31-45
+1-5;25-26;17-18;11-24;31-45;32-48;38-43;40-48
+21-31;13-33;33-39;16-29;32-48;24-31;19-41
+32-42;19-51
+8-20;6-17;40-48;19-41
+1-8;12-13;13-33;6-7;6-8
+1-7;8-16;17-20;6-28;6-25;48-49;7-13
+1-7;1-8;17-25;9-31;40-48;24-31
+11-24;33-40;39-42;18-23;19-41
+1-4;1-8;15-19;5-32
+23-24;17-28;33-39;32-42;24-50
+12-13;31-47;24-45;24-50;3-9;19-51
+1-4;1-8;8-28;13-32;17-36;16-29;32-44
+1-10;14-16;20-22;17-25;31-37
+12-13;13-33;6-8;6-34
+8-20;17-20;6-11
+6-28;16-24;24-38
+15-18;25-26;17-18;6-17;9-15;40-48
+1-6;12-13;14-15;8-24;17-25;16-24;5-32;19-41;19-20
+0-1;21-31;31-46;38-43;9-15
+1-11;8-16;5-8;40-48;24-31
+8-26;32-44;7-13;24-50
+15-18;20-22;13-32;16-24;5-8;24-45
+14-17;17-35;6-28;39-42;16-24;31-45;32-48
+14-16;8-24;32-48;5-8;40-48
+1-10;12-13;14-16;8-20
+11-24;31-37
+1-7;14-17;8-28;31-46;32-42
+1-7;8-16;17-20;33-39;9-17
+1-6;15-18;17-18;32-48;18-23;3-9
+15-19;17-29;9-30;5-7
+8-26;11-24;9-30;9-19;5-7;24-31;24-50
+13-33;31-37;31-47;9-19
+1-11;8-24;6-7;6-11;16-29
+0-1;1-5;1-6;17-24;6-25;48-49;9-19;5-32
+20-21;20-22;17-29;6-28;9-19;40-49;24-50;19-20
+14-17;17-24;9-15
+1-5;8-28;33-40;6-7
+1-4;1-8;13-32;17-24;17-36;5-32;18-23
+1-9;15-19;20-21;20-22;27-28;32-42;9-31
+1-8;1-10;1-11;14-16;21-31;31-46;7-13;24-38
+14-16;15-18;27-28;8-24;17-20;6-28;6-17;6-34;38-43
+0-1;1-8;8-16;17-36;11-17;32-42;9-15
+17-28;16-24;16-29;5-8;5-7;40-48;3-9
+17-25;32-48;32-42;48-49;9-17;19-51
+1-8;15-19;8-20;21-31;19-51
+12-13;14-15;17-20;17-26;33-39;19-41
+14-17;17-26;6-25;32-44;9-15
+8-16;17-24;17-26;6-17;16-29;19-51
+25-26;17-28;17-29;11-17;6-28;6-34;48-49;7-13;9-15;18-23
+20-22;11-38;31-45;32-42;5-32
+14-16;20-21;27-28;6-7;6-17;31-47;9-31;3-9
+15-18;6-28;16-17;48-49
+0-1;1-8;8-28;6-25;39-42;31-37;9-15
+1-6;8-20;33-40;31-46;5-7
+21-31;11-38;31-46;9-30;5-32
+1-8;13-33;11-24;11-38;31-45
+20-22;25-26;21-31;6-34;19-41;19-20
+2-3;25-26;17-28;17-25;32-44;32-42;7-13;24-50
+2-3;1-6;1-10;17-35;17-18;39-42;3-9
+15-19;6-25;31-46;9-15;18-23;19-51
+17-35;17-18;6-11;24-50
+1-4;17-20;32-42;24-31
+1-6;20-21;13-32;17-28;16-17;31-37;32-44;9-31;40-49;19-51
+2-3;14-16;15-18;6-8;48-49;9-17
+2-3;1-4;25-26;8-20;8-16;17-36;33-40;9-30;3-9
+1-7;1-10;20-22;33-39;6-11;32-48
+1-10;14-17;33-40;6-11;16-24;24-31
+1-10;1-11;12-13;17-28;17-36;11-38;6-34;9-30;24-38
+20-21;6-17;31-46
+1-7;1-9;15-19;21-31;11-24;6-28;31-45;5-7
+0-1;1-7;8-26;33-39;6-25;9-31
+2-3;14-15;14-17;16-17;32-48;5-32;24-50;19-41
+2-3;1-11;17-29;16-24;48-49;9-30
+25-26;27-28;8-28;39-42;16-29;7-13;9-17
+1-6;1-10;8-24;32-42
+0-1;23-24;8-20;17-28;6-8;5-32
+17-25;7-13;9-15;9-31;24-38;19-51
+6-7;31-37
+2-3;27-28;21-31;19-20
+1-9;8-28;16-24;16-17;9-15
+1-11;12-13;14-16;27-28;8-26;9-17;24-38;19-51
+17-24;6-28;6-17;24-31;3-9
+27-28;32-42
+13-33;17-24;24-38
+14-17;27-28;17-29;6-7;48-49
+17-24;6-34;31-37;31-47
+1-8;27-28;11-24;33-40;16-17;9-17;5-8;18-23;24-31;19-51
+15-18;17-18;17-24;17-25;33-39;6-28;39-42;32-44;19-41
+0-1;14-16;8-24;16-29;9-20
+1-8;17-29;17-36
+1-4;15-19;25-26;8-16;8-26;17-36;31-45;5-8;19-51
+1-4;12-13;23-24;25-26;27-28;8-26;21-31;17-36;39-42;32-42;24-38;24-45
+13-32;6-7;6-17;31-37;24-31;24-45
+14-17;20-22;6-34;5-8
+1-10;1-11;17-35;17-26;6-8;16-29;16-17;24-38
+17-26;31-47;32-44;9-15;9-19;5-32;5-7;24-50;19-20
+8-28;17-35;17-26;6-7;39-42;9-19;5-8
+20-21;8-24;33-40;9-19
+1-7;15-19;23-24;25-26;8-20;13-33;31-45;7-13;9-19
+1-5;14-16;13-32;17-18;6-28;6-25;6-11;40-49
+1-7;1-11;15-18;13-32;11-24;6-28;6-25;16-29;40-49;24-31
+17-29;24-38;24-45
+1-10;20-21;17-18;9-17;24-45;19-41
+13-32;6-34;32-44;32-42;38-43
+1-9;12-13;6-7;48-49;24-38;3-9;19-41
+13-32;17-29;6-17;24-31
+14-16;14-17;20-21;23-24;8-16;8-28;11-17;6-28;40-49
+1-11;14-15;31-37;24-38
+8-20;17-35;9-31;9-17;24-45
+14-15;24-45
+17-35;17-28;17-25;11-17;31-46;7-13;38-43;9-31;9-30
+12-13;13-32;13-33;17-35;33-40;9-30;5-32;5-7;24-38;24-45;3-9
+15-18;15-19;20-22;8-16;11-24;11-38;6-34;31-45;31-46;48-49
+0-1;1-5;13-32;17-35;11-24;32-48
+17-28;6-8;32-48
+14-15;27-28;13-32;17-29;6-11;9-30;18-23;19-20
+21-31;33-40;6-28;9-30
+1-4;1-10;27-28;17-36;31-46;31-37;38-43;19-20
+1-4;8-28;13-32;17-18;17-36;6-25;6-17;32-42;9-15;24-31
+14-16;27-28
+1-7;14-16;14-17;15-19;6-7;9-15;24-45
+48-49;9-30;9-19;24-45
+1-7;1-8;27-28;6-8;24-50
+1-5;20-21;25-26;33-39;16-29;32-44;32-42;19-41
+15-18;27-28;31-37;48-49;40-49;24-31
+1-9;1-10;1-11;11-24;6-8;31-45;31-46;38-43;19-41
+8-16;8-28;13-32;7-13
+17-24;33-40;16-24;9-31
+8-20;21-31;6-28;16-17
+8-26;17-24;31-47
+20-22;33-39;6-34;39-42;32-44;32-42
+20-21;8-24;5-8
+15-18;23-24;6-11;31-47;9-19;5-7;18-23
+1-11;17-18;6-7;6-8;31-46;7-13;9-17
+0-1;17-35
+1-9;20-22;6-28;5-8;5-7;19-20
+1-5;12-13;14-16;15-18;8-28;17-35;17-24;6-8;16-29;16-17;24-50
+1-10;23-24;9-15;24-45;19-20
+1-8;6-34;32-44;5-8;24-45
+1-5;25-26;17-29;6-25;32-42;9-15;9-17
+8-20;33-39;6-7;16-24;31-46;32-48;9-31
+0-1;1-7;5-8;18-23;3-9;19-41
+1-7;12-13;15-19;32-42
+1-9;1-10;15-19;20-21;17-36;6-17;9-17;9-19;19-41
+17-26;17-29;11-24;6-8;16-17;48-49
+1-9;1-10;23-24;17-26
+1-4;17-26;11-17;31-45;31-37;24-45;24-50
+14-16;17-20;17-26;16-24;32-42;9-31
+0-1;2-3;1-6;15-18;25-26;17-35;33-39;6-7;6-34;31-46;9-30;24-31
+2-3;1-5;8-26;17-36;16-29;31-47;5-32
+1-9;8-16;13-33;5-7;18-23
+11-24;31-45;31-46;31-47;9-30;5-32
+27-28;17-28;17-24;17-25;6-25;6-8;9-31;24-50
+1-5;14-17;8-16;21-31;40-49
+8-26;11-24;9-20;9-19;3-9
+14-15;17-20;11-17;6-28;16-17;32-42;24-38
+1-10;20-22;39-42;16-29;9-30;24-50;19-20
+13-32;6-34;6-11
+31-37;24-38;24-31;19-20
+15-18;8-20;8-16;8-26;17-20;11-24
+11-17;9-19
+9-19;5-7;18-23;24-38
+14-16;33-40;31-46;9-19
+17-20;6-11;9-19;3-9
+20-21;33-39;6-34;24-38
+0-1;1-6;11-24;11-38;6-25;31-46
+1-8;6-17;16-17;31-45;32-48;40-49
+23-24;17-24;11-17;6-7;31-37;32-48;18-23
+14-17;8-26;13-33;17-35;31-47;24-38
+1-4;1-6;1-7;20-21;17-24;17-25;6-25;16-24;32-44;24-50
+1-7;20-22;8-20;17-35;17-28;32-42;3-9;19-51
+1-4;1-5;1-7;15-19;17-36;6-7;9-31;19-41
+12-13;13-32;17-35;24-45;24-50
+5-7;24-31;24-45
+1-9;23-24;32-44;32-42;5-7
+14-16;17-28;17-25;6-7;6-25;19-20
+1-6;15-19;17-36
+20-22;11-17;6-17
+1-11;31-37;40-49
+1-6;14-17;8-26;9-15;9-31;19-20
+12-13;8-16;5-8;24-31
+1-9;25-26;13-32;31-45;32-44
+8-20;17-29;6-28
+1-6;15-18;8-24;33-39;6-17;6-34;32-48;5-8;24-45
+1-7;21-31;17-24;24-45
+0-1;1-11;14-15;15-19;11-17;6-25;16-29;7-13
+20-21;17-24;17-29;9-17;5-8;24-50
+1-6
+25-26;13-33;9-20
+2-3;14-17;25-26;8-24;8-26;13-32;16-24;5-7
+1-8;13-33;6-11;16-29;9-30;5-8;5-7
+14-16;20-22;8-20;17-29;33-40;32-42;48-49;38-43
+1-6;1-8;6-28;6-25;6-34
+0-1;1-5;6-8;6-11;16-17;31-37;31-47;5-8;24-31;24-45;19-41
+8-16;17-26;11-24;31-45;24-45;3-9
+1-10;15-18;20-22;17-26;16-24;19-20
+1-4;8-28;21-31;17-26;6-8;6-17;6-11;9-30;5-8;24-38
+1-9;17-28;9-31
+1-4;27-28;13-33;17-36;32-48;48-49;19-20
+1-4;1-9;8-16;6-28;6-8;48-49
+1-4;17-36;33-39;6-11;5-8;24-38;24-50
+1-11;12-13;21-31;17-24;17-29;6-34;32-44;5-32;40-48;24-31
+6-28;6-8;5-7;18-23;40-49
+14-16;8-28;17-36;11-24;6-17;16-24;32-42
+0-1;14-17;6-11;5-8;19-41
+23-24;8-24;33-40;31-37
+1-10;1-11;15-18;13-32;31-46;32-44;24-50
+1-5;13-33;17-35;33-39;6-11;16-24;31-47
+21-31;32-48;24-31
+15-19;17-25;17-29;6-34;7-13;9-31
+1-4;1-8;1-11;14-17;23-24;32-48
+8-28;6-7
+1-11;20-22;8-20;11-17;6-28;31-46;31-47;32-44
+1-6;20-22;8-28;21-31;13-33;5-32;18-23;24-50
+17-35;17-28;31-47;32-42
+0-1;14-17;8-16;33-39;39-42;16-24;31-46;32-44;7-13;24-38;3-9;19-41;19-51
+15-19;23-24;8-24;8-26;17-35;17-29;19-20
+1-9;15-18;16-29;31-37
+11-38;32-48;32-42;40-49;24-38;19-51
+11-24;33-40;6-28;31-45;32-48
+25-26;8-16;21-31;17-25;17-29;39-42;31-46
+14-16;14-17;31-46;24-31
+1-6;8-20;8-24;17-25;9-31
+1-4;1-5;6-8
+0-1;23-24;17-20;33-39
+1-10;8-28;13-33;17-24;9-17;9-19
+1-6;1-8;17-36;31-47;9-19;5-7
+20-21;8-24;9-19
+14-16;6-25;6-34;31-45;31-46;9-31;9-19
+0-1;14-16;15-18;17-24;24-45;19-41
+16-29;32-42;9-30;3-9
+20-22;8-20;17-24;9-30;9-17;40-48;19-51
+1-8;14-16;8-20;11-17;33-40;9-17
+1-6;17-25;17-29;33-40
+21-31;17-24;17-25;5-8
+1-11;8-28;39-42;9-31;40-48
+20-21;6-17;31-46;31-47;18-23
+1-6;27-28;8-16;8-26;13-33;6-25;32-44;48-49;9-30;40-49;24-31;3-9;19-20
+0-1;14-17;15-19;21-31;33-40
+17-25;6-17
+1-10;1-11;39-42;32-48;9-17
+1-6;15-18;17-35;17-26;11-38;31-45;31-46;5-7
+1-5;14-16;8-16;17-26;17-29;32-44;24-50
+14-15
+14-16;17-28;17-26
+1-8;17-26;11-24;16-17;48-49;38-43
+1-5;20-22;8-26;3-9
+14-17;23-24;11-38;6-25;9-31
+1-10;17-24;6-28;31-37;31-47
+1-4;1-7;12-13;13-33;6-17;39-42;31-46;7-13;9-15
+8-24;21-31;17-24;17-25;33-39;32-44;18-23;19-41
+14-17;33-40;9-15;40-48
+0-1;1-6;13-32;17-28;11-38;16-17;38-43;24-50;3-9
+15-18;8-20;16-29;9-31;5-32
+15-18;13-32;39-42;31-47;9-15;9-20
+8-28;17-36;39-42;31-45;31-46;40-49
+1-5;12-13;17-36;6-25;9-17;24-31;19-20
+1-6;20-21
+1-9;13-32;11-38;33-39;31-47;32-44;5-32;40-48;24-45;19-20
+8-16;21-31;17-29;18-23
+1-10;1-11;14-17;8-28;17-18;16-17;9-31
+20-21;25-26;17-28;32-48;40-48
+12-13;23-24;17-18;33-40;6-17;32-48
+1-6;8-20;13-32;11-24
+17-35;48-49;40-48
+1-11;14-15;25-26;6-34;16-17;7-13;5-7;24-38;19-51
+15-18;20-21;24-45
+12-13;17-29;32-48;9-31;5-32;24-31
+1-9;1-10;1-11;15-19;8-24;33-39;6-25;16-17;31-47;32-48;9-15;5-7
+1-5;1-7;20-22
+1-7;14-15;23-24;25-26;16-24
+17-29;7-13
+
+1-8;12-13;14-17;20-22;8-20;8-24;17-25;6-28;6-17
+17-18;32-42;38-43;9-30;24-45
+11-38;33-39;16-17;9-30;3-9;19-20
+1-5;17-25;31-45;32-44;48-49;24-31
+1-4;8-26;17-35;6-25;16-24;31-37;48-49;18-23;24-50
+23-24;8-28;17-24;39-42;9-17;5-32
+8-24;13-32;17-18;17-25;9-31;9-30;40-49
+1-8;1-9;8-28;31-37;7-13;5-7;24-38
+1-6;13-32;17-18;6-25;31-45;9-15;9-17
+15-19;20-21;17-28;6-34;32-42;18-23
+0-1;1-7;1-11;8-20;17-35;17-36;11-17;24-38;24-50
+1-7;14-17;8-24;21-31;11-24;16-24
+1-6;1-9;17-35;17-25
+1-10;6-7;16-29;24-50
+12-13;8-28;18-23;24-38
+12-13;17-20;17-18;17-25;11-24;11-17;9-20;19-20
+17-28;18-23
+1-11;15-18;23-24;13-32;16-24;31-37
+12-13;20-22;8-24;11-17;33-40;16-17;32-42;9-17;9-19;5-32;40-49;24-31
+2-3;1-5;20-22;13-33;17-25;17-26;9-31;9-19;5-8
+2-3;1-11;12-13;23-24;17-26;31-37;9-15;9-17;9-19;24-45;19-51
+1-8;17-28;17-26;33-40;6-8;24-45
+0-1;20-21;8-28;6-25;32-44;5-8
+14-17;48-49;40-49;19-51
+17-28;16-29;3-9;19-41
+2-3;1-9;32-42;5-8;24-31
+31-46;9-31;24-38;19-51
+2-3;14-16;6-17;6-34;18-23
+15-18;23-24;13-33;33-39
+17-29;11-24;6-25;31-37;31-47;7-13
+15-19;17-28;16-29;32-42;24-45
+0-1;1-4;17-35;32-48;48-49;24-38;24-45;19-41
+1-9;32-48;3-9
+2-3;20-22;21-31;31-46;5-7
+2-3;8-28;8-24;17-18;17-36;24-38
+1-8;23-24;17-36;31-37;5-8;18-23
+17-25
+8-28;21-31;13-32;13-33;6-8;19-20
+1-10;20-22;25-26;33-39;32-48;32-42;24-45
+12-13;15-19;17-28;39-42;31-47;24-31;24-45
+1-11;15-18;8-28;13-32;17-20;6-8;3-9
+1-9;17-29;6-28;6-25;6-17;31-46
+1-5;8-20;8-26;17-28;11-38;39-42;31-37;38-43;9-17;19-20
+13-33;17-35;16-29;48-49
+17-18;31-47;19-20
+1-10;14-17;13-32;33-39;31-45;9-30
+1-7;15-19;13-33;11-17;32-44;32-42;9-30;19-51
+1-7;1-11;11-38;6-28
+1-6;8-24;16-29;9-20
+1-6;17-20;17-29;31-37;9-17
+1-8;14-17;8-28;24-31
+8-16;11-24;6-7;6-11;16-29;31-46
+15-18;8-24;8-26;11-17
+8-26;31-45;19-51
+1-7;1-9;15-19;20-22;17-18;17-25;40-49
+1-6;1-7;23-24;25-26;8-28;6-25;31-37;9-17
+17-29;11-24;11-17;6-28;32-44
+14-17;17-20;17-28
+20-22;6-17;32-42
+8-20;40-49;24-31
+1-4;1-8;14-15;39-42;16-17;48-49;19-51
+2-3;1-5;17-28;6-8;31-46;40-49
+2-3;14-15;14-17;31-37;9-17;24-50
+1-7;25-26;6-11;19-20
+1-9;1-11;8-24;13-32;17-36;33-39;32-44;7-13;9-31
+8-20;17-36;33-40;19-20
+12-13;14-16;17-18;17-25;6-11;5-32;40-49
+6-25;16-17;9-15;19-41
+13-33;17-29;6-17;31-46;31-37;9-17;24-45
+0-1;1-10;20-21;8-24;13-32;17-28;17-26;6-11;9-15;19-41
+11-17;33-39;39-42;16-17
+14-17;17-24;17-26;33-40;32-42;9-31;3-9
+8-26;21-31;13-32;17-26;6-17
+8-26;17-24;17-29;19-51
+1-5;1-9;14-15;20-21;11-24;5-7
+17-24;16-17;32-48
+1-8;15-18;6-25;32-48;19-51
+8-16;17-25;9-31;24-31;24-45
+17-28;24-45
+6-8;32-42;38-43;24-38
+20-22;8-28;17-20;17-29;16-29;32-48
+20-22;17-26;31-45;31-47
+17-28;33-39;31-45;32-48;5-8
+1-9;14-17;20-21;11-38;6-34;32-44;9-30;9-19;24-31;24-50
+0-1;1-4;1-7;14-17;15-19;33-40;31-37;31-47;9-17;9-19;19-41;19-20
+1-4;21-31;17-29;16-29;9-19;5-8;24-45
+8-20;17-35;11-24;31-45;7-13;9-15;9-19;24-45;24-50;19-41;19-20;19-51
+1-4;17-36;11-24;6-28;9-30;24-45
+1-8;15-18;8-28;17-36;6-25;32-44;9-15;9-30;5-8
+1-9;17-29;5-7;19-51
+23-24;17-28;6-8;16-17;31-37;9-17;5-7
+1-11;6-34;39-42;32-42;48-49;18-23
+23-24;17-26;9-31;9-17
+1-7;8-26;17-18;6-17;19-51
+8-16;21-31;6-8;31-47;3-9
+
+25-26;8-20;32-44;24-50;19-51
+25-26;17-29;31-37;24-38
+2-3;20-22;21-31;11-17;32-44;9-15
+13-33;33-39;33-40;31-47
+11-38;6-7;6-34;39-42;16-24;9-15
+1-11;12-13;13-32;17-25;5-7;3-9
+1-9;23-24;13-33;17-35;17-20;17-18;17-25;6-25;6-11;16-17;9-17;5-7
+0-1;1-8;15-18;17-26
+2-3;8-16;8-28;11-17;31-37;32-42;5-32;18-23
+2-3;27-28;8-24;17-35;17-18;6-7
+8-20;39-42;16-17;19-20;19-51
+1-6;27-28;21-31;17-20;33-39;24-50
+1-9;6-28;32-48;32-42;7-13;3-9
+14-16;13-32;6-25;6-34;32-48;38-43;40-49;19-51
+0-1;2-3;14-16;8-24
+2-3;1-6;17-20;16-29
+8-26;33-40;6-7;6-11;18-23;24-31;19-41
+1-4;1-5;16-17
+2-3;17-18;17-36;33-40;6-17;24-45;3-9
+1-4;1-8;13-33;17-36;11-17;6-28;31-45;32-48;24-38
+6-11;32-42;48-49;9-31;19-51
+2-3;1-8;1-10;20-21;20-22;6-7;6-17;16-24;38-43;5-7;3-9
+1-9;14-17;23-24;8-20;5-7;24-38
+21-31;17-35;17-18;17-26;6-34;31-37;19-51
+17-25;17-26;17-36;6-8;32-42;24-50
+17-35;17-18;17-26;11-17;16-24;31-47
+17-26;11-24;31-46;9-31;19-51
+1-5;1-9;6-8;48-49;9-15;3-9
+0-1;14-15;15-18;17-20;6-7;16-29;24-38
+9-20
+2-3;20-22;11-38;6-7;16-29;40-49;24-45
+8-16;33-39;24-31
+1-6;1-11;12-13;8-20;13-33;17-28;11-17;7-13;9-30;18-23;19-20
+6-25;6-34;31-46;38-43;9-17
+23-24;33-40;16-17;31-45;31-37;5-32
+1-9;11-24;9-15;5-8;5-7
+1-5;32-44;48-49;38-43;9-30;24-45;3-9
+2-3;14-15;21-31;17-28;9-30
+14-17;20-21;6-17;31-46;31-47;5-8;24-31
+17-35;6-28;6-25;9-31
+1-6;1-7;15-19;27-28;13-33;32-42
+1-7;14-15;8-28;17-18
+15-18;20-22;23-24;17-25;6-34;9-17;5-8;24-50
+14-16;25-26;8-16;31-37;31-47;3-9;19-41
+2-3;32-44;7-13
+1-4;1-6;1-8;17-18;33-40;6-8;16-29;16-17;32-42;5-8
+1-5;8-26;33-39;9-31;24-45
+14-17;8-26;17-20;16-24;31-45
+11-24;6-25;6-8;5-8
+2-3;1-11;15-19;23-24;8-24;21-31;17-29;6-11;31-37;5-32
+2-3;1-9;8-16;11-38;32-48
+17-36;6-17;31-46;24-31;3-9;19-20
+24-50
+1-7;15-18;9-19;19-51
+8-20;17-35;17-24;9-19
+0-1;1-11;8-24;9-19;24-45;24-50
+1-6;8-26;17-24;11-38;33-39;6-8;6-11;31-45;48-49;9-19;40-48;40-49
+2-3;14-15;23-24;32-42;9-17;9-19;24-31
+2-3;8-28;6-25;31-37;9-15;3-9
+12-13;20-21;17-25;17-29;7-13;19-51
+1-6;1-10;20-22;11-24;31-45;31-47
+14-17;17-18;11-24
+8-20
+0-1;33-39;6-7;39-42;31-45;9-31
+2-3;1-8;20-21;33-40;48-49
+23-24;17-20;31-37;32-42
+1-9;6-11;32-44;40-48;19-51
+25-26;8-16;21-31;11-38;6-8;31-46
+14-16;20-21;13-33;6-34;39-42
+14-16;19-20
+1-4;14-16;15-19;9-15;9-17
+13-32;17-18;11-17;31-37;19-20
+1-10;8-24;6-25;6-17;9-15
+1-8;14-15;14-17;8-20;8-28;17-20;33-39;32-42
+15-19;25-26;21-31;6-11;48-49;9-20;5-8;24-31
+8-16;17-35;17-26;31-46;9-30;3-9
+1-8;1-9;25-26;17-26;17-36;6-17;16-29;48-49;5-7;19-41;19-51
+12-13;15-18;8-26;17-35;17-26;33-40;32-42;38-43;9-15;5-8
+20-22;8-24;17-20;11-24;6-8;6-34;32-48;9-31
+21-31;13-32;17-28;11-24;6-25;9-17;24-50;19-51
+15-19;23-24;27-28;13-33;9-30;5-8;40-49
+8-28;16-24;31-45;32-44;7-13;9-30;24-31;3-9
+1-5;1-7;1-11;27-28;17-20;17-25;19-51
+0-1;1-7;12-13;14-16;14-17;20-22;25-26;8-24;48-49;5-32;5-8
+15-19;17-28
+2-3;1-4;17-36;11-38;6-28;31-47;3-9
+8-26;40-49
+27-28;8-26
+1-10;23-24;21-31;17-18;17-28;17-29;6-25;39-42;31-37;5-32
+15-18;8-16;6-17;32-42
+12-13;17-18;11-38;5-8
+1-6;25-26;19-20
+1-5;25-26;13-32;13-33;17-29;11-24;31-47;24-50
+15-19;20-21;8-28;17-35;39-42;32-48;32-42;5-8
+8-16;13-32;16-17;5-32
+1-6;1-7;8-26;17-35;6-34;16-24;31-45;40-48;24-50;3-9
+2-3;12-13;8-26;11-24;31-37;9-15
+1-7;14-16;6-28;32-42;9-31
+14-16;14-17;20-22;6-8;40-49
+1-4;1-8;39-42;40-48
+1-5;1-6;11-24;16-24
+1-8;13-33;17-36;11-38;6-11;32-42;19-41
+13-32;17-29;17-36;40-48;24-31;24-45
+1-9;20-22;24-45
+8-20;21-31;13-33;6-25;16-29;31-45;31-47
+1-11;8-28;17-28;6-17;16-17;31-37;40-48
+23-24;17-29;11-38;32-44;9-15;18-23
+6-7;6-11;32-48;9-20;5-8;24-45;19-41
+25-26;13-32;33-39;39-42
+17-20;6-8;32-44
+6-11;16-17;38-43;9-31;9-17;40-49
+1-10;8-16;8-28;24-38;19-41
+0-1;17-25;16-29;3-9
+15-18;6-34;32-42;24-31;19-41
+17-29;31-47;32-48;5-7;24-38
+1-8;15-19;27-28;33-39;6-28;32-48;9-30
+8-20;17-35;6-8;6-17;31-45;32-44;9-30
+27-28;17-28;11-24;16-29;32-42;24-38
+1-11;20-21;17-35;39-42;7-13;9-30;24-45;19-20
+1-10;20-21;17-35;17-29;9-19
+6-17;9-17;9-19;24-45
+0-1;20-22;17-18;16-17;38-43;9-19
+14-16;21-31;6-34;16-29;31-46;32-44;9-30;9-19;40-49
+1-5;14-15;8-28;17-18;17-28;17-24;17-26;17-29;16-24;9-15;24-50
+1-4;15-18;25-26;17-26;33-39;38-43;5-32;18-23;19-51
+13-33;17-18;17-26;11-24;11-17;6-28;6-8;32-42;40-48
+8-20;11-24;5-7
+16-24;16-29;31-46;7-13;5-7;19-51
+13-32;6-7;6-8;9-31;9-17;40-48
+14-16;15-18;6-8;16-17;19-51
+0-1;14-17;23-24;24-45
+1-6;1-11;8-16;8-28;17-36;6-34;31-45;31-47;32-48;48-49;24-45
+25-26;9-15;40-48;19-20
+25-26;6-17;32-42;3-9
+1-9;1-10;24-31
+1-6;14-16;8-26;17-25;38-43;5-32;40-48
+1-11;15-18;20-22;27-28;8-16;13-32;6-17;5-8
+1-10;20-22;8-28;17-28;6-8;24-38
+13-32;31-46;38-43
+2-3;33-40;6-28;6-11;31-37;5-7
+14-17;8-20;17-18;31-45;9-31;5-32;5-7;40-48
+14-16;11-38;6-11;9-20;5-8;19-20
+1-5;1-8;1-9;17-28;32-42;5-7;3-9
+1-11;20-22;17-29;33-39;16-24;24-31
+1-8;6-11;16-17;24-50;19-41
+1-6;13-32;17-18;18-23
+14-17;8-26;6-25;6-8;31-45;32-42;40-49;19-41
+0-1;31-46;31-37;32-48;48-49;5-8
+17-20;32-44;9-31
+1-6;23-24;6-8;6-34
+1-4;11-17;6-11;31-45;38-43;19-20;19-51
+33-40
+0-1;2-3;1-8;23-24;25-26;8-16;17-25;33-39;6-7;6-17;48-49;7-13;38-43;9-17
+13-32;17-20;17-25;11-38;6-28;31-46;19-20
+2-3;1-10;15-19;17-35;6-17;6-11;32-44;9-30;19-51
+2-3;13-32;17-24;48-49;5-7
+0-1;8-28;21-31;11-17;31-47;7-13;24-31
+20-21;20-22;23-24;8-16;17-20;17-24;17-36;6-11;31-37;5-32;24-50;19-51
+8-20;6-34;31-46;40-49
+1-5;12-13;14-15;27-28;17-25;32-44;9-30
+1-7;15-18;23-24;8-16;17-35;17-36;6-7;6-28;9-31
+1-7;17-28;31-46;32-42;7-13
+17-35;32-44;9-30;24-50
+2-3;12-13;17-28;19-51
+1-6;14-16;23-24;21-31;6-25
+1-10;14-16;20-21;25-26;17-35;11-24;16-24;31-47;32-42;5-32;5-7;40-48;24-38
+11-17;33-39;48-49;24-50;19-51
+1-11;27-28;8-20;17-35;6-34;39-42;18-23
+11-38;32-48;9-17;40-48;24-38
+0-1;12-13;27-28;17-20;16-24;32-42;40-49;19-51
+14-15;17-28;17-25;7-13;19-20
+1-9;15-18;27-28;11-17;33-40;38-43;40-48;3-9
+1-10;14-15;25-26;8-16;8-28;17-26;6-25;31-46;9-31;19-20
+1-9;8-24;8-26;17-26
+6-34;6-11;32-44;9-20;5-8;5-7
+23-24;17-25;6-34;39-42;31-37;24-38;24-45
+1-5;21-31;6-7;7-13;24-45;24-50
+1-4;20-22;8-28;6-8
+8-20;31-45;38-43;9-31;24-31;19-51
+12-13;14-17;8-24;11-38
+1-9;17-36;6-7;5-7;40-49
+15-19;17-28;11-17
+1-7;15-18;33-39;9-19
+1-10;6-7;39-42;9-19;24-45
+13-32;17-35;11-38;6-8;32-42;9-31;9-19;24-38;24-45;3-9;19-51
+1-9;8-24;8-26;17-18;9-30;5-32;24-50
+23-24;6-8;31-37;40-49;24-31
+1-10;8-20;17-28
+12-13;25-26;11-17;7-13;19-20
+1-6;14-17;20-21;8-28;17-35;11-24;6-17;6-11;32-44
+8-24;17-20;11-38;6-25;19-20
+33-39;16-24;31-45;7-13
+21-31;6-34;6-11;31-37;32-42;48-49;40-49;24-50;3-9
+1-5;1-6;1-8;14-15;23-24;8-16;11-17;6-8;5-7
+1-7;15-18;15-19;33-40;39-42
+1-7;11-38;6-11;16-24;16-29;9-30;19-41
+11-17;6-25;19-51
+0-1;1-5;6-7;32-44;9-30;5-8;24-31
+1-6;8-20;17-25;31-47;18-23
+0-1;27-28;8-16;17-20;17-24;24-31
+21-31;32-44;32-42;7-13;9-30;5-32;19-41
+1-4;1-5;14-15;20-21;8-24;11-38;9-17;5-8;24-38
+12-13;8-26;17-29
+17-20;18-23;40-49;19-51
+1-4;17-28;5-8;24-38
+14-16;15-18;13-33;6-28;6-8;5-7
+1-6;11-38;9-15;3-9;19-51
+1-10;17-29;33-40;6-28;6-11;39-42;16-24;16-17;9-20;5-8;24-45
+0-1;17-20;48-49;24-38;19-20
+12-13;33-40;6-17
+1-7;1-10;6-34;16-24;31-47;19-20;19-51
+1-5;8-26;17-36;11-24;39-42;16-29;31-37;5-32;24-38
+20-22;23-24;17-20;24-50
+1-9;14-17;8-16;17-28;6-8;19-51
+1-11;17-25;24-38
+17-25;6-25;5-32
+20-22;6-8;9-17
+1-6;1-10;15-18;15-19;21-31;31-37;38-43;24-31
+2-3;20-22;8-28;16-29;24-45
+17-35;17-29;6-17;31-45;31-46;7-13
+12-13;6-34;31-47;32-42;48-49;5-32;19-51
+25-26;8-16;13-33;17-20;17-26;18-23
+8-26;17-26;7-13
+1-9;13-32;17-26;9-15;9-17;19-51
+1-6;23-24;13-33;11-38;33-40;31-37;32-44;5-32
+17-28;32-48;38-43;9-15;24-38
+12-13;14-17;15-19;8-28;17-25;31-46
+0-1;1-5;17-25;11-17;6-25
+1-4;1-6;1-8;13-32;11-24;9-31;24-38
+2-3;12-13;23-24;25-26;11-24;32-44;48-49
+15-18;8-20;21-31;33-40;32-44
+17-35;17-29
+14-16;32-42;5-7;24-38
+1-6;12-13;14-15;13-33;17-35;16-17;31-37
+1-5;1-11;27-28;17-36;6-25;6-11;7-13
+20-22;23-24;8-16;17-35;11-38;32-44;48-49;9-30;18-23;24-50
+14-17;11-24;16-17
+1-6;25-26;6-11;16-24;3-9;19-41
+8-20;8-28;13-32
+1-11;17-36;32-42;38-43;40-49
+0-1;1-9;14-15;8-24;21-31;33-39;16-17;32-42;9-17;24-38
+8-26;17-29;17-36;11-38;33-40;6-11;31-45;32-48
+1-6;33-39;32-48;9-30
+14-15;23-24;21-31;17-28;6-7;31-37
+1-7;14-16;6-8;31-47;5-7;19-41
+1-7;1-11
+8-28;13-32;33-40;9-19
+12-13;11-17;6-7;6-8;16-17;9-31;9-19;24-45
+1-10;17-35;17-28;9-19;24-45;19-20;19-51
+2-3;1-5;12-13;16-24;9-19;19-20
+8-26;17-20;17-24;31-47;3-9
diff --git a/examples/failures/failures-0.08 b/examples/failures/failures-0.08
new file mode 100644
index 0000000..8465ab0
--- /dev/null
+++ b/examples/failures/failures-0.08
@@ -0,0 +1,1000 @@
+15-18;20-22;27-28;21-31;17-29;6-17
+16-29;9-15;24-31
+1-8;23-24;8-28;11-24;11-17;16-17;5-7
+1-8;20-21;16-24;5-7;3-9
+16-24;18-23
+13-33;17-35;17-29;5-32;24-45
+12-13;14-15;14-17;16-17
+1-8;23-24;17-18;11-24;33-39;31-47
+20-21;25-26;17-20;17-36;38-43;19-51
+15-18;17-28;9-17
+1-11;12-13;8-26;5-32;24-50;19-51
+1-11;33-39;31-37;7-13;40-48;24-31;19-20
+0-1;20-22;27-28;17-25;6-7;6-17;6-11;19-41
+33-40;31-37;32-44;9-17;9-19;18-23
+17-35;17-20;5-8
+1-10;14-15;21-31;17-24;6-25;6-17;16-24;31-47;9-17;5-8
+1-8;12-13;14-17;20-21;17-18;6-25;16-24
+1-10;8-28;8-26;6-34;9-15;9-17
+0-1;1-9;25-26;17-35;5-32
+14-16;17-25;31-37
+15-19;8-28;17-18;17-28;11-24;9-31;9-17;40-49;24-38;19-51
+17-20;31-45;3-9
+12-13;27-28;8-16;8-24;8-26;33-39;6-28;31-37;9-30;19-20
+1-6;1-11;25-26;17-25;17-36;6-17;6-34
+1-9;12-13;20-22;21-31;17-26;33-39;33-40;16-24;16-17;32-44;32-42;9-19;24-38;3-9
+1-5;1-11;14-15;8-28;17-18;17-36;11-38;6-7;9-19;40-48;19-20
+1-9;1-11;20-22;8-24;17-36;9-15;9-19
+1-11;14-16;17-20;17-36;16-17;5-8
+1-7;1-11;14-16;17-26;17-36;6-34;9-31;9-17;19-51
+14-17;20-22;8-24;8-26;17-35;17-26;6-7;6-11;32-42;24-50
+1-4;1-8;27-28;8-20;17-24;6-11;31-37;32-44
+1-10;12-13;15-18;20-21;6-28;39-42;31-47;32-44;24-50
+8-16;17-20
+1-9;33-39
+14-15;6-34;40-49;3-9
+1-6;14-15;20-21;8-24;17-35;17-26;11-17;33-40;6-7;16-24;16-29;31-37;32-44;38-43;9-31;9-19
+1-5;1-6;6-8;9-31;19-20
+2-3;1-11;20-21;8-20;13-32;13-33;17-28;17-24;6-7;6-8;16-24;31-46;32-42
+12-13;17-35;17-20;17-24;17-25;5-32;18-23
+15-19;17-18;6-34;32-42;24-31
+1-7;1-11;23-24;8-28;17-28;31-46;24-45;19-51
+1-11;17-29;6-8;16-29;31-46;9-15
+1-6;17-35;6-8;9-30
+1-10;8-24;17-36;6-8;16-17;31-47;5-8;24-50
+12-13;15-19;20-21;8-28;17-36;16-24
+1-4;17-28;11-38;6-34;16-17;9-15;24-38;24-45;24-50;19-41
+2-3;8-26;13-33;17-20;33-40;32-48;32-44;5-32;18-23
+8-26;33-40;16-29;32-42
+8-28;13-32;33-40;16-17;31-47;24-50
+20-22;17-20;33-39;6-7;9-30
+0-1;1-5;14-17;20-21;9-15;5-7;19-41;19-20
+8-28;17-24;31-47;9-17;5-7;24-45
+1-8;23-24;27-28;17-25;32-44
+1-9;15-18;20-22;25-26;8-26;17-29;32-48;32-44
+14-16;31-46;48-49;24-38;19-51
+1-10;14-15;8-28;13-33;11-24;6-28;31-46;31-47;7-13;9-31;5-32
+21-31;17-35;6-28;31-46;32-42;48-49;9-17
+17-28;17-24;17-36;38-43;19-41
+20-21;8-24;17-36;16-24;18-23;3-9
+14-17;17-24;17-26;17-36;16-24;5-8;5-7
+17-26;5-8
+1-4;1-5;12-13;8-24;13-33;17-35;16-29;19-20
+1-4;1-8;20-22;17-20;17-28;16-17;19-51
+8-16;6-25;31-45;9-31
+0-1;1-6;14-17;13-32;9-15;9-19;24-50;19-51
+8-26;17-20;17-24;11-17;9-19
+15-19;11-38;48-49;9-19;24-50
+0-1;1-7;1-10;21-31;6-25;6-34;31-37
+27-28;8-24;17-36;11-17;3-9
+17-18;39-42;9-15;9-17;18-23
+2-3;8-28;21-31;17-28;11-17;16-24;9-30
+0-1;20-21;17-29;33-39;6-11;16-24;31-47;7-13;9-30
+12-13;8-24;6-25;6-11;40-49;3-9;19-41
+1-7;1-11;14-15;15-19;8-28;32-44;9-15;24-45
+1-11;27-28;13-32;32-44;5-32;19-20
+2-3;1-11;15-18;6-8;31-47;32-44;9-31
+0-1;1-11;8-20;11-17;16-17;32-44;48-49;38-43;3-9;19-51
+1-7;15-19;20-22;8-26;17-18;24-38
+2-3;1-4;20-21;16-17;7-13;38-43;5-8
+15-19;17-35;33-39;31-45;32-48;48-49;5-7;19-20
+1-4;1-8;17-35;17-24;11-17;6-7;9-17;24-45
+23-24;17-28;6-28;39-42;16-17;38-43
+17-18;16-29;31-37;3-9
+14-15;15-18;8-20;31-47;40-49
+20-21;8-26;11-38;11-17;5-7
+1-6;1-7;1-11;12-13;31-46;31-37
+1-6;1-11;17-18;17-28;17-24;33-39;39-42;31-46;7-13;5-32;19-41
+1-11;11-38;11-17;31-46;31-37;24-50;19-20
+1-5;14-16;8-20;21-31;19-51
+1-5;1-7;25-26;8-24;17-20;17-26;32-48;24-50
+1-5;1-10;1-11;12-13;5-32
+0-1;20-22;17-26;11-17;6-11
+1-6;20-21;8-16;17-29;33-39;33-40;6-11;16-24;5-7;24-50
+1-8;6-11;32-48
+0-1;1-10;14-17;17-35;5-8;24-50
+14-16;23-24;13-33;17-18;17-36;6-34;9-31;9-30;3-9;19-41
+14-16;8-20;17-25;6-28;6-25;16-29;9-30;24-50
+1-6;12-13;15-18;23-24;8-28;17-28;17-29;33-39;6-28;6-25;16-17;9-15;9-30
+15-19;17-35;11-24;48-49;5-32;24-38;24-50
+0-1;1-5;20-21;25-26;8-16;9-17;5-7;3-9
+1-5;8-16;13-33;17-20;6-17;16-29;48-49;5-7
+1-9;13-32;11-24;6-7;9-15;18-23;40-49;19-20
+1-11;8-16;17-24;17-29;5-7;40-48
+1-6;14-17;15-19;17-25;33-39;6-17;32-44;9-31;40-48;24-38;24-45
+1-6;25-26;6-7;31-47;32-44;32-42
+1-9;17-18;32-44;9-19;24-31
+12-13;17-29;32-48;32-44;9-19;19-41
+1-5;11-17;33-39;6-28;16-24;24-45
+8-20;17-35;17-36;24-31;19-51
+25-26;8-28;17-36;18-23
+1-4;1-6;1-10;8-24;39-42;31-46;9-31
+1-4;13-33;17-28;31-46
+1-6;14-15;6-17;31-47;40-49;19-51
+1-10;15-18;8-26;9-31;5-8;24-45;19-51
+1-7;1-9;12-13;20-22;8-28;48-49;7-13;9-15;9-17;24-45
+8-20;8-24;13-32;5-32;40-48
+20-21;48-49
+23-24;6-7;6-28;6-25;6-8;39-42;9-17;5-7;40-48
+14-15;15-19;8-28;17-28;17-24;6-25;5-7
+17-35;9-31;5-32;24-31
+14-15;15-18;25-26;8-26;17-26;11-24;39-42;31-45;9-30;5-8;24-38
+1-9;17-26;16-17;7-13;5-8
+1-6;15-19;20-22;8-20;11-17;6-8;6-11
+1-6;20-21;17-28;16-29;9-15;3-9
+15-19;31-45;31-47
+9-17;18-23
+1-7;13-33;17-20;17-24;17-36;31-45;48-49;5-7;24-50
+20-22;8-26;17-36;33-40;9-31;5-32;5-7
+1-6;8-20;21-31;17-36;33-40;6-17;48-49;40-48
+1-6;13-32;17-35;17-36;11-17;33-40;6-8;38-43;9-15;19-51
+1-4;1-7;14-15;25-26;11-24;6-8;6-17;16-24;31-47;32-48;9-17
+20-21;16-24;38-43
+12-13;15-19;8-24;6-17
+1-5;23-24;21-31;17-29;11-24;11-38;11-17;16-29;31-47;32-48;5-7
+2-3;1-5;15-18;33-39;6-17;31-37;7-13;5-7;24-38;19-41
+2-3;1-7;1-9;11-38;11-17;6-28
+20-22;23-24;8-24;17-25;38-43
+20-21;8-28;11-17;6-17;19-20
+17-29;6-25;6-8;16-29;38-43;9-15
+12-13;14-16;17-35;17-20;6-17;18-23
+2-3;1-10;14-15;14-17;25-26;11-17;33-39;31-37
+1-8;8-28;6-17;31-45;32-44;5-7;24-38;19-51
+0-1;15-18;6-28;6-11;32-44;7-13;5-7;40-48
+17-35;17-36;6-25;6-11;40-48
+1-4;8-16;8-28;13-33;6-11;16-24;32-42;9-30;18-23;40-48
+1-4;1-8;12-13;25-26;8-16;13-32;17-28;6-34;9-30;9-19
+13-32;17-28;6-25;7-13;24-31
+27-28;8-24;11-24;6-7;31-45;31-46;9-31;9-19
+8-20;17-35;17-24;11-38;16-29;31-46;9-15;9-19
+31-46;24-45;19-41
+1-8;20-22;23-24;8-24;13-33;33-40;48-49;7-13;9-17
+0-1;14-15;8-26;17-26;11-38;33-40;6-34;16-24;31-45;5-8;19-51
+20-21;17-26;11-24;16-24;16-29
+6-17;9-17;5-8;19-51
+16-17;31-37;32-42;9-31;24-45
+25-26;33-39;9-17
+2-3;1-6;8-26;16-17;9-15
+14-16;13-33;17-25;6-28;9-15;24-45;3-9
+1-9;1-11;20-21;13-33;17-35;6-17;6-34;16-29
+1-5;1-11;12-13;15-19;17-36;6-7;16-17;40-48
+0-1;2-3;1-11;17-29;17-36;31-37;32-48
+1-9;1-11;14-15;8-20;17-36;33-39;9-17;40-49
+0-1;17-36;6-25;6-34;31-37;31-47;48-49;9-31;18-23
+14-16;14-17;8-26;17-35;17-20;6-25;16-17;31-47;7-13;9-17;24-31;24-50
+14-16;21-31;11-17;48-49
+17-28;16-29;5-7;24-50
+1-10;23-24;8-20;33-39;31-45;31-47;9-17;24-31;24-45
+15-19;13-32;17-35;6-34;39-42;31-37;24-50;19-41
+1-5;15-19;8-26;11-38;11-17;31-45;31-37
+2-3;1-6;1-8;1-9;14-17;8-26;13-33;11-38;31-46;32-44
+1-6;21-31;17-29;31-46;32-44;9-31;40-48;24-31;24-50
+25-26;8-24;13-32;17-24;11-24;31-45;31-46;32-44;18-23;19-51
+14-16;15-19;27-28;17-25;6-17;31-46;32-44;40-49
+14-15;20-21;6-34;31-37
+2-3;1-6;1-11;13-33;16-24;48-49;9-30;3-9
+1-6;1-7;1-11;11-38;6-11;9-30
+1-9;6-11;31-45;18-23;24-31
+2-3;1-4;14-17;15-19;33-39;6-28;16-17
+15-18;17-36;33-40;7-13
+0-1;1-7;24-31;24-45
+8-20;6-8;16-29;16-17;32-48;5-8;40-49
+1-5;1-10;6-8;5-8;24-38
+17-28;17-26;16-17;24-45;19-41
+1-7;14-17;15-19;23-24;17-26;32-48;24-31;19-51
+1-9;11-24;3-9
+20-22;23-24;8-20;9-19;18-23;24-38
+1-11;15-18;6-25;6-17;48-49;9-15;9-19;19-20
+1-7;1-11;15-19;8-28;8-26;6-25;6-8;9-19
+1-11;20-21;27-28;8-24;39-42;32-48;3-9
+2-3;1-11;17-25;11-24;6-34
+20-21;25-26;16-24;9-31;19-51
+25-26;17-18
+1-5;1-9;14-17;8-28;32-48;7-13;9-15
+8-20;17-28;11-38;5-32;19-51
+18-23;24-45
+1-4;1-10;27-28;17-18;17-29;6-28;31-37;31-47
+12-13;25-26;8-16;17-29;6-34;6-11;16-17;32-44
+1-7;14-17;23-24;11-24;6-17;6-11;31-45;9-31;9-17;5-32;3-9
+20-22;8-20;8-16;13-33;6-7;16-29;32-44;48-49
+1-9;23-24;17-18;31-47;7-13;9-17;18-23;24-38;24-45;19-20
+15-18;8-16;6-34;16-17;31-45;32-44;48-49;24-50
+17-28;11-38;11-17;6-7;6-25;6-34;31-46;19-20
+1-11;23-24;17-28;9-15;40-49
+1-5;11-24;16-24;32-48;9-30;19-51
+13-33;6-7;24-38
+27-28;8-26;9-31;9-17;5-32
+21-31;6-25;31-45;31-37;32-42
+0-1;20-22;8-16;8-28;17-25;6-25;6-11;5-8
+17-24;6-11;31-46;5-8;18-23
+8-24;39-42;16-24;31-46
+25-26;33-40;6-7;48-49;9-17;19-20
+2-3;1-4;27-28;8-26;21-31;13-33;17-25;17-26;6-28;6-25;3-9
+15-19;23-24;13-33;11-24;6-11;31-46;32-48;9-15;5-8;24-31
+13-32;17-26;11-24;6-28;6-34;16-29;7-13;40-49
+1-7;14-15;18-23
+1-6;1-8;14-16;17-35;17-28;16-17;7-13;38-43
+23-24;25-26;11-24
+1-5;8-26;21-31;17-18;17-29;11-38;16-17;38-43;9-31;19-51
+6-7;16-29;31-45;31-37
+33-39;16-17;38-43
+8-24;17-20;17-28;6-28;32-44;48-49;3-9
+14-17;31-46
+11-17;6-17;31-47;9-30;24-31
+2-3;1-7;8-26;6-11;32-42;5-7
+1-7;8-26;17-25;31-46;18-23
+1-8;6-34;31-45;9-30;19-20
+1-9;1-11;8-16;21-31;17-36;33-40;18-23
+0-1;1-11;8-16;17-28;17-25;17-36;9-19;3-9
+1-11;8-16;17-36;9-19
+1-4;1-8;23-24;17-24;9-19
+0-1;17-29;16-24;16-29;16-17;9-15;9-31;24-31
+1-5;15-18;48-49;7-13
+1-5;1-7
+1-8;1-9;20-22;13-33
+1-10;27-28;8-28;17-35;6-11;16-29;18-23;24-45
+12-13;14-16;14-17;11-38;11-17;33-39
+0-1;17-29;11-38;6-11;39-42
+1-11;13-32;33-39;6-11;31-37;24-31;19-41;19-20
+1-6;1-11;20-22;8-28;17-20;17-25;11-17;9-31
+1-11;8-24;21-31;13-33;17-35;31-37;7-13
+12-13;18-23;24-45;3-9
+14-16;23-24;8-28;11-24;31-45;48-49;38-43;9-17;5-32
+2-3;1-7;14-16;14-17;25-26;17-36;33-39;32-42;19-51
+1-6;23-24;17-20;17-28;17-24;17-26;17-36;32-48;48-49
+1-6;14-15;20-21;17-18;17-25;17-26;17-36;11-17;31-37;5-8
+1-4;15-18;8-20;17-26;6-25;31-45;32-44;9-31;5-8
+1-8;8-20;32-48;32-42;5-32;40-49;24-31
+1-4;1-7;20-22;11-24;32-44;19-41
+1-8;25-26;11-17;16-29;32-44;38-43;40-48;24-50
+1-9;1-10;17-18;5-32;18-23;40-48
+1-6;31-45;38-43;24-50
+2-3;14-17;15-19;8-20;13-32;17-24;9-30;40-49;24-38
+1-8;1-11;21-31;7-13;38-43;9-30;24-45
+1-5;1-11;15-18;6-11;16-17;31-47;9-31;9-30
+14-15;8-26;17-28;6-28;6-11;38-43;9-15;9-17;40-49;3-9
+1-6;12-13;15-19;6-28;16-17;48-49;24-38
+1-9;8-24;17-20;11-38;39-42;31-47;38-43
+2-3;15-18;6-7;6-34;16-29;3-9;19-41
+25-26;8-28;13-33;33-40;5-8;18-23
+1-7;14-16;13-32;17-24;11-17;16-24;31-46;5-8
+2-3;14-17;20-22;8-24;11-38;6-8;16-24;31-46;7-13;9-15;9-17
+1-4;6-7;31-46;9-31;40-48
+1-4;1-6;1-8;11-24;31-46;19-20
+2-3;1-7;1-10;13-33;17-25;17-36;32-48
+1-5;14-17;23-24;32-42;24-31;24-45
+1-5;1-10;6-8;6-11;7-13;38-43;40-49
+1-8;14-15;8-26;6-7;6-8;6-11;16-24;16-29;9-19
+1-6;1-7;1-9;12-13;15-18;17-18;17-24;16-24;9-19
+1-4;20-21;13-33;11-17;9-31
+0-1;1-6;1-11;13-33;17-28;6-34;39-42;32-48;9-31;9-19
+1-11;8-28;17-35;17-20;16-29;31-47;48-49;19-51
+1-11;6-7;7-13;40-48
+1-7;1-8;20-22;6-8;40-48;24-38
+8-26;5-7
+1-6;15-19;8-28;13-33;17-35;17-26;6-34;16-24;31-45;31-47;9-30;24-45;24-50
+1-5;1-9;17-26;17-29;11-17;19-20
+1-5;1-8;27-28;8-20;16-17;5-32;24-50
+1-4;25-26;21-31;17-25;11-38;3-9
+1-4;1-9;15-19;6-8;31-45;7-13
+1-5;1-6;1-10;14-15;20-22;8-16;8-24;21-31;18-23;24-31
+1-6;1-10;13-33;17-28;6-25;6-8;6-34;9-15;19-51
+1-6;20-22;17-20;11-38;6-25;6-17;5-7
+15-18;8-16;6-28;48-49
+0-1;1-9;25-26;27-28;21-31;17-35;31-46;24-50
+15-19;6-11;16-29;31-45;31-46;9-17;5-8
+20-22;17-29;6-17;6-34;31-46;9-15;40-48;19-41
+1-5;1-7;32-44;7-13;40-48;19-20
+1-5;25-26;6-17;32-44;40-49
+15-19;17-28;33-39;6-7;16-29;32-48;32-44
+14-15;8-28;17-35;17-29;32-44;5-7;19-51
+1-6;25-26;8-16;8-26;33-39
+1-7;1-8;8-16;8-26;21-31;17-18;17-24;17-29;33-40;6-34;24-38
+1-6;8-16;7-13;9-17;24-31
+1-6;15-19;8-16;6-8;39-42;16-29;18-23
+1-9;20-22;8-28;17-35;17-20;17-36;33-39;48-49
+1-7;12-13;14-17;17-29;17-36;33-40;31-47;9-15;24-31;19-41
+0-1;1-10;15-18;8-20;8-26;17-36;33-40;48-49;40-48;24-45
+16-17;9-17;5-7;40-48
+1-6;21-31;5-7;40-49;24-45;19-20
+23-24;17-20;17-28;33-39;16-17;31-47;7-13;3-9;19-51
+6-25;31-37
+12-13;39-42
+2-3;1-9;12-13;8-24;17-25;11-38;6-28;6-34;16-17;24-31
+25-26;8-26;9-17
+15-18;20-21;21-31;13-33;17-26;16-24;31-45;9-31;9-30;24-45
+13-32;17-28;17-26;6-25;24-31;3-9
+1-9;17-25;17-26;38-43;9-19
+27-28;31-47;7-13;9-19
+1-5;1-10;12-13;8-20;13-32;9-19;5-32;24-31
+1-5;1-8;1-9;14-17;9-15;40-49;24-38;24-50;3-9;19-41
+0-1;2-3;1-4;1-10;17-28;33-39;38-43;5-8;40-48
+1-4;1-7;20-21;21-31;11-38;16-24;31-37;9-31;19-20
+27-28;17-18;11-17;6-28;9-17;24-31;19-51
+1-10;6-11;16-24;31-45
+2-3;17-35;17-18;6-17;6-11;39-42;5-7;24-45;3-9
+8-20;8-26;13-33;5-7
+0-1;6-17;5-32;18-23
+25-26;6-7
+15-18;23-24;17-35;17-20;17-18;6-17;6-34;32-44
+2-3;20-21;17-28;32-44;9-31;19-41;19-51
+23-24;11-24;6-25;16-17;31-47;32-44;48-49;40-49
+17-24;5-7
+14-15;25-26;8-24;13-32;13-33;17-35;17-18;11-38;33-40;6-17
+0-1;1-7;6-7;6-28;31-45
+1-8;17-20;11-24;33-40;6-34;31-47;9-30;5-8;40-48
+0-1;1-9;1-10;27-28;6-25;6-17;31-46;40-48
+1-4;27-28;8-24;33-40;7-13;38-43;9-30;24-38;24-45
+1-10;20-21;17-25;31-46;9-31
+1-9;8-20;6-28;31-46;32-48;32-42;38-43
+12-13;8-28;6-28;31-46;24-31;19-41;19-51
+17-24;6-28;31-46;24-38;24-50
+2-3;14-17;5-7
+15-19;27-28;8-28;8-26;11-38;48-49;24-38
+20-22;13-32;13-33;11-24;6-8;16-24;31-45;31-37;7-13
+0-1;1-4;8-20;13-33;6-17;6-11
+1-8;21-31;17-26;33-40;16-24;32-44;5-7;24-38
+14-15;23-24;21-31;17-26;6-7;6-34;39-42;16-24
+8-16;17-28;17-26;9-17
+11-24;33-39;6-28;31-37;24-45;3-9;19-20
+1-7;15-19;17-25
+0-1;1-6;1-10;31-45;9-31;40-49
+1-11;12-13;15-18;8-24;17-20;17-18;31-47
+1-11;14-16;8-16;13-33;11-17;5-32;5-8
+0-1;17-24;17-29;6-7;31-46;32-44;5-8;24-45
+1-4;14-15;15-19;20-22;8-28;31-46;32-44;9-15;19-51
+2-3;1-4;1-6;8-26;11-17;31-46;32-44;18-23
+25-26;8-26;13-33;17-20;17-26;17-29;11-24;11-38;11-17;6-8;32-44;32-42;48-49;5-7;24-31;19-41
+21-31;17-20;17-36;33-40;32-42
+12-13;23-24;8-20;13-32;11-38;33-39;16-24;38-43;9-31;9-19;19-20
+0-1;1-7;15-18;25-26;27-28;8-28;17-29;6-7;16-24;9-19
+14-16;23-24;17-25;6-25;6-11;16-29;7-13;9-30
+13-32;17-24;11-24;11-38;18-23;40-49
+1-10;8-26;19-41
+1-11;14-17;11-17;33-39;6-28;48-49
+1-9;12-13;20-21;20-22;25-26;6-25;16-17;38-43;9-17
+27-28;8-20;8-24;13-33;6-7;6-25;5-32
+1-5;1-8;11-17;32-42;5-8;24-38
+8-16;8-28;32-44;9-15
+0-1;6-34;31-37;9-30;5-7
+25-26;8-24;13-32;17-28;17-24;33-39;39-42;9-15
+16-29;9-17
+0-1;12-13;17-36;11-17;16-29
+1-4;1-6;23-24;8-20;19-20
+8-16;8-28;13-33;6-7;6-17;48-49
+8-16;17-24;17-25;6-34;32-42
+17-35;11-38;33-40;6-17;32-44
+1-6;1-7;1-9;15-19;17-26;6-8;32-44
+1-6;20-21;8-20;21-31;17-26;11-24;32-44;9-31
+1-9;12-13;15-19;17-28;17-24;9-30;5-32
+16-24;32-48;32-44
+0-1;1-5;33-40;6-34;40-49
+12-13;15-18;27-28;8-16;16-29;18-23
+2-3;14-15;15-19;6-17
+8-24;21-31;39-42;31-45;5-32
+1-5;25-26;8-20;6-17;31-46;19-20
+0-1;20-21;13-32;6-34;16-29;16-17;48-49;9-31;5-8;19-20
+8-24;17-35;17-20;39-42
+14-16;14-17;17-36;11-24;31-45;31-46;31-37;9-15
+0-1;1-4;1-7;1-8;23-24;6-28
+14-15;14-17;23-24;8-20;11-38;11-17;33-40;6-7;31-47;9-30;40-48;24-38
+11-38;9-30
+20-21;16-24;16-29;9-17;19-51
+13-32;32-48;32-42;38-43;5-7;18-23;24-31
+20-22;17-28;17-29;7-13
+1-5;12-13
+13-32;33-39;48-49;24-45
+6-25;6-17;6-34;9-15;19-20
+1-5;1-11;39-42;31-37;32-44
+2-3;1-6;1-11;17-35;11-24;33-40;6-7;6-17;32-44;9-19;5-7;24-31
+1-6;1-11;25-26;33-40;16-17;31-37;32-44;9-19;5-7
+14-15;8-16;17-36;6-17;40-49;19-51
+1-11;12-13;23-24;33-39;33-40;39-42;32-44;5-7;18-23
+1-8;6-34;31-46;32-42
+20-22;27-28;17-35;17-20;6-17
+8-20;21-31;6-7;3-9
+1-6;1-9;8-26;13-33;16-29;31-37
+1-8;6-8;39-42;32-48;18-23
+2-3;12-13;17-25;17-26;11-24;6-34;6-11;48-49;5-7
+1-5;14-17;15-19;17-20;17-26;17-36;6-11;7-13
+8-20;17-28;31-45;40-49;19-20
+2-3;1-6;15-18;27-28;13-33;17-24;31-37;31-47;24-45
+1-6;1-9;14-16;15-18;23-24;11-24;33-39;33-40;6-25;6-8;9-30
+20-21;8-16;8-28;32-42;19-41
+1-9;1-10;1-11;14-15;15-19;8-16;6-8;6-34;16-24;40-49;19-51
+1-11;8-16;17-35;17-25;16-24;31-45;7-13
+8-24;39-42;31-47;32-48;9-30;5-7;18-23
+2-3;1-8;17-18;9-30;5-7;40-48
+14-17;23-24;8-20;21-31;11-24;40-48
+8-24;17-35;17-24;6-34;5-8
+2-3;12-13;23-24;6-8;48-49
+0-1;1-4;1-8;1-9;8-16;17-18;17-28;6-28;6-8;9-15;5-32;19-20
+1-4;14-17;8-16;6-28;19-41
+1-6;1-7;14-16;8-26;17-18;17-25;33-40;31-45;32-48;9-30;9-19
+14-15;15-19;8-20;8-26;17-35;6-25;5-7;24-50;19-20
+17-29;6-34;16-29;9-17;5-7;18-23;24-38
+1-7;1-8;15-18;17-18;17-24;17-25;9-31;24-50
+0-1;12-13;9-15
+1-10;20-21;27-28;33-39;33-40;39-42;32-44;9-17;24-50
+14-16;15-19;11-38;6-7
+14-16;20-22;8-26;17-18;48-49;7-13;18-23;24-50
+13-32;31-45;31-37
+14-15;23-24;13-33;17-28;17-24;40-49
+2-3;1-9;15-18;8-24;21-31;17-35;11-17;39-42;16-17;40-48;19-20
+1-4;20-21;23-24;17-20;33-40;6-7;6-28;9-31;9-30;9-19
+14-15;23-24;27-28;13-32;17-18;16-24;16-29;5-32;24-45;24-50
+0-1;8-28;11-38;16-24;31-45;38-43;19-51
+17-25;11-17;31-37
+14-17;13-33;17-35;16-17;7-13;19-51
+1-4;1-8;21-31;17-26;9-30;9-19;5-32
+1-10;12-13;17-26;11-24;38-43;9-19
+20-21;17-29;6-7;31-45;9-30;9-19;24-38
+2-3;6-11;32-48;32-42;48-49;9-30
+8-20;8-28;17-18;17-28;6-11
+0-1;14-15;18-23
+1-4;21-31;13-32;6-28;31-37;9-30
+1-5;1-6;39-42;32-48;9-15
+23-24;8-28;17-35;6-28;6-34;24-50
+14-17;8-24;11-24;33-40;16-24;19-20
+17-28;33-40;16-24;32-48;40-48;24-50
+2-3;27-28;8-20;8-16;11-38;33-39;6-25;32-44;32-42;5-7;18-23;40-48;24-38;19-51
+25-26;8-16;8-28;8-24;13-33;6-25;6-8;39-42;31-37;32-44;24-50;3-9
+1-10;1-11;17-35;11-17;6-8;32-48;48-49;5-32
+1-11;14-15;11-38;7-13;9-31;5-8;24-50
+1-11;17-24;16-17
+2-3;1-4;15-18;15-19;8-20;13-32;11-17;33-39;31-46;24-50
+1-4;1-9;1-10;17-28;17-25;17-29
+1-10;25-26;8-20
+13-33;17-18;16-17;31-46;31-37
+1-7;17-36;31-45;5-7;24-50
+2-3;13-32;17-25;17-36;11-17;6-8;16-29;5-7;18-23;19-41;19-20
+1-5;32-42;19-51
+17-18;19-20
+1-9;14-17;20-21;6-28
+12-13;14-15;20-22;23-24;8-20;17-29;6-28;32-48;40-48;24-45
+1-10;1-11;14-16;13-33;6-34;48-49;9-15;9-30;5-32;18-23;40-48
+1-11;14-16;15-19;17-18;17-28;6-11;9-30;5-7
+1-10;1-11;14-17;8-26;11-24;6-17;9-30;5-8;5-7
+1-6;15-19;13-33;17-18;17-24;33-39;39-42;32-44;9-15;18-23;24-45
+0-1;2-3;1-11;17-29;38-43;9-30
+8-20;8-24;17-29;31-47;24-38
+15-18;15-19;20-21;8-28;13-32;17-24;17-26;38-43;19-51
+1-5;17-26;11-38;16-17
+39-42;32-48;38-43;5-32;19-20
+14-16;11-17;16-29;16-17;5-7;18-23;40-49
+1-6;14-15;17-18;17-36;33-40;6-25;31-46;3-9
+17-36;33-40;6-25;6-34;16-17;31-46;32-48;24-38
+12-13;14-17;25-26;33-39;31-37;31-47;32-44;9-17
+1-9;15-18;8-28;39-42;32-44;40-48
+14-17;8-26;16-17;31-45;40-49;19-20
+1-10;8-26;17-18;6-7;6-17;31-45;32-48;9-15;9-19;18-23;40-48
+1-6;14-16;23-24;17-20;11-24;6-28;32-42;9-19
+1-5;1-6;1-10;14-16;27-28;21-31;17-35;6-28;6-34;9-31;9-19;24-45
+0-1;1-5;14-16;23-24;25-26;8-20;6-28;5-8;5-7
+17-25;11-17;6-7;5-7;3-9;19-20
+8-26;17-24;31-37;9-17
+0-1;1-8;1-9;17-35;17-20;6-11;5-32
+25-26;11-17;33-39;24-50
+17-25;33-39;16-29;18-23
+1-4;8-20;13-33
+1-9;14-16;15-18;11-38;11-17;6-8;6-34;16-24
+2-3;1-8;17-35;17-29;39-42;16-17;32-48;32-42;7-13;24-38;24-31
+0-1;20-21;8-26;17-20;40-48
+15-18;8-16;17-36;16-17;9-30;40-48;19-51
+1-10;32-48;9-15;18-23;40-48
+40-48;19-51
+8-20;33-40;31-45;38-43;40-48;19-41
+12-13;14-17;20-21;27-28;13-33;17-20;17-18;11-24;33-40;6-8;32-48;19-20
+33-39;33-40;7-13;3-9
+1-9;16-29;18-23;24-38;19-20
+15-18;17-35;17-26;31-45;5-8
+1-7;12-13;27-28;8-24;6-8
+20-22;8-24;17-18;17-26;39-42;32-44;9-31
+15-19;25-26;21-31;13-33;17-20;17-26;31-37;32-44;9-17
+2-3;1-6;1-8;14-15;27-28;6-25;6-34;5-32;40-49
+1-4;20-21;17-35;17-28;6-25
+1-10;1-11;17-18;17-36;6-28;31-45;7-13;9-17
+2-3;1-7;1-9;1-11;17-36;11-38;19-51
+17-20;17-36;31-37;9-15;9-17;18-23;3-9
+1-6;23-24;8-20;17-35;6-34;31-46;32-48;48-49;9-31;5-7
+21-31;17-28;17-36;31-37;31-47;32-42;5-32;24-50
+15-19;17-18;7-13;18-23;19-20
+1-5;14-15;20-22;17-18;11-24;5-8;40-48;24-38
+20-21;11-24;31-46;24-50;3-9
+17-24;11-38;16-24;31-47;38-43;9-15;9-17;24-31
+0-1;15-18;33-39;6-28;31-45;40-49;24-50;19-51
+2-3;1-6;12-13;14-15;21-31;17-28;11-24;5-8
+15-19;17-25;17-29;11-38;39-42;16-29;9-31;18-23;24-50
+0-1;1-8;31-47;9-30;24-38
+1-7;1-11;8-24;13-32;33-39
+1-6;1-10;1-11;14-17;6-34;32-48;9-19;24-31
+1-6;1-11;27-28;17-20;17-24;6-7;6-11;9-19;19-20
+1-10;1-11;15-18;8-24;17-29;9-19;24-45
+14-17;13-33;17-28;11-17;9-15
+1-11;21-31;6-17;48-49;9-15
+2-3;17-35;17-18;6-25;9-31;19-41
+8-24;6-25;6-17;39-42;32-48;18-23
+20-22;17-29;9-17;5-8
+2-3;1-6;1-7;14-15;23-24;25-26;5-8
+1-5;27-28;8-28
+31-45;32-42;3-9
+17-26;11-38;6-34;16-29;31-46;18-23
+1-6;1-8;8-28;13-33;17-20;17-26;6-28;31-46
+1-11;14-16;20-21;25-26;8-16;13-32;17-35;17-18;6-7;5-7
+17-25
+1-10;14-17;8-26;39-42;16-24;7-13
+17-24;33-39;31-45;31-37;5-32;3-9
+1-8;15-18;20-22;8-28;13-32;6-34;24-38;19-51
+0-1;1-7;1-9;17-18;6-8;6-17
+21-31;6-7;32-44;19-41
+8-24;8-26;13-32;31-45;32-44;32-42;7-13;18-23;3-9
+1-8;12-13;14-16;20-21;20-22;8-20;33-39;6-11;16-24;31-37;5-7
+1-7;14-16;8-16;6-34;16-24;31-47
+1-5;14-17;25-26;17-24;17-29;17-36;39-42;24-38;24-45
+15-18;23-24;11-24;6-8;9-31;40-49
+1-11;8-26;13-32;17-36;11-24;6-17;38-43;3-9
+27-28;17-20
+0-1;14-15;17-18;6-8;6-17;16-17;32-48;19-20
+12-13;15-19;11-24;5-7;19-41
+1-10;14-16;17-29;6-25;5-7
+2-3;1-7;9-17
+20-22;27-28;17-18;33-39;33-40;24-45
+17-35;11-38;31-45;19-41
+25-26;11-17;6-34;31-37;32-48;32-44;24-31
+1-4;1-6;1-8;20-21;8-24;17-28;16-24;3-9
+1-7;14-15;8-28;21-31;17-29;11-24;6-28;48-49;40-49
+1-10;23-24;25-26;16-29;32-42;9-31;40-49
+1-5;23-24;17-35;17-24;17-36;11-17;6-28;9-31;24-45
+1-5;8-24;17-36;6-28;32-42
+0-1;1-8;14-17;6-7;6-25;6-34;31-37;19-20
+1-7;17-18;11-17;9-19
+20-22;17-25;17-29;6-17;9-15;9-19;19-41;19-20;19-51
+17-26;31-47;32-48;9-19;5-32;5-8
+14-17;21-31;17-26;11-17;32-44;7-13
+1-7;20-22;13-32;32-44;24-38
+17-28;17-29;16-17;31-46
+2-3;1-9;15-18;11-38;39-42;31-47;24-38
+1-8;12-13;20-21;32-48;7-13;9-15;9-31;18-23;24-38
+12-13;20-21;27-28;11-17;33-39;6-7;6-17;6-11;31-37;38-43
+1-5;12-13;14-15;27-28;17-25;16-17;32-42;48-49
+17-18;9-30
+8-16;6-17;31-47
+1-4;23-24;8-16;8-26;17-28;11-17;6-7;31-47;40-48
+1-5;1-11;8-24;33-40;6-17;40-48
+0-1;1-10;1-11;14-17;23-24;8-20;17-20;17-18;17-36;33-40;6-28;31-45;9-17;24-38;19-51
+1-9;20-22;27-28;8-28;17-36;11-24;11-17;6-28;5-32;40-49
+23-24;27-28;8-16;8-24;13-32;17-29;6-11
+1-7;8-26;17-35;17-36;11-38;6-11;9-15
+1-8;14-15;14-17;13-33;11-17;33-39;33-40;6-25;6-11;31-45;32-42;40-49
+1-10;8-20;13-32;17-28;5-32;24-38
+1-5;25-26;33-40;6-25
+48-49;19-41
+31-37
+1-11;17-28;17-25;6-28;6-11;16-17;31-47;5-8
+1-6;1-11;8-26;17-29;32-48
+1-11;12-13;21-31;33-39;6-8;39-42;31-37;38-43;9-31;19-41;19-20
+1-11;13-32;13-33;11-17;40-48;40-49
+1-8;1-9;14-15;8-28;17-18;7-13;38-43;40-48;19-20
+0-1;1-4;1-10;14-17;23-24;17-28;17-29;6-34;32-44;5-32;24-38
+1-4;15-18;8-26;13-32;11-17;6-7;32-48;32-44;18-23;40-49
+1-8;31-37;3-9;19-20
+1-9;1-10;23-24;6-8;32-44;24-45;24-50
+1-7;20-21;17-28;11-38;32-44;38-43;9-15;5-8
+1-8;23-24;27-28;6-34;31-47;32-44;7-13;9-17
+12-13;14-16;8-24;17-26;17-36;11-24;6-28;38-43;19-51
+8-28;17-26;17-36;11-38;33-39;31-37;5-32;24-31
+1-7;14-17;17-24;6-8;40-48
+2-3;8-24;17-35;17-28;24-45
+11-38;6-25;6-34;18-23;24-31
+15-19;27-28;8-28;11-17;6-17;9-30;19-20
+14-15;21-31;33-39;31-37;9-30;40-49
+13-33;17-20;17-18;11-38;11-17;16-29;31-46;48-49;5-7;19-41
+1-11;14-16;14-17;20-22;8-26;6-17;9-19;24-31
+1-11;13-33;17-28;17-29;11-17;9-19;24-45
+1-11;15-18;15-19;17-24;6-34;9-19
+1-4;1-10;17-25;48-49;24-38;24-31;19-41
+1-4;12-13;11-17;6-7;16-17;31-37;32-48;7-13
+0-1;1-8;1-10;20-21;8-26;17-29;16-29;48-49;18-23
+1-7;33-40;16-17;31-45;9-31
+1-9;23-24;11-17;33-40;6-34;6-11;40-48;24-38
+27-28;33-40;32-42
+1-8;17-24;17-25;6-7
+14-15;8-28;39-42;31-46;9-15;18-23;19-20
+12-13;11-24
+1-6;1-9;1-11;11-17;31-45;19-41
+1-6;1-11;20-22;8-24;13-32;17-20;3-9
+1-5;1-8;14-17;27-28;8-16;21-31;13-33;17-35;11-24;33-39;6-34;9-31;5-7
+1-9;1-11;27-28;31-47
+14-16;8-16;13-32;17-24;39-42;24-45
+1-10;14-16;8-28;11-38;48-49;9-30;5-8;40-49;24-50;3-9
+1-6;20-21;25-26;11-17;32-44;5-8;24-45
+0-1;13-32;16-29;31-47;32-44;9-15;18-23;24-50;19-20
+2-3;1-4;1-7;8-28;17-20;17-25;6-25
+1-4;14-17;33-39
+20-22;27-28;21-31;17-26;11-17;6-7;6-25;9-31;40-48;24-50;19-41;19-20;19-51
+1-9;25-26;17-26
+1-6;14-16;15-18;23-24;8-16;17-24;17-26;31-46;31-47;9-17;24-50
+0-1;1-6;1-7;14-16;8-16;13-33;17-35;11-17;31-46;7-13
+2-3;1-5;20-21;17-20;17-29;31-37;5-32;24-50
+13-32;17-25;6-7;6-11;32-48;3-9
+1-11;11-17;6-17;32-42;18-23;24-45
+1-7;1-11;8-20;21-31;33-39;6-34;16-17;48-49;9-15;9-31;5-8
+1-11;14-17;24-31
+17-28;11-17;16-17;3-9;19-41;19-51
+12-13;15-18;27-28;6-7;6-17;16-24
+1-5;14-15;27-28;8-28;17-24;5-32;40-48
+1-5;1-7;1-8;20-22;17-20;19-20
+1-4;14-17;17-35;17-28;40-49;24-45
+1-10;8-16;8-26;13-33;6-25;31-47;3-9
+1-4;1-6;8-28;8-24;33-40;6-28;9-31;9-17;18-23;24-31
+1-8;12-13;15-18;25-26;11-17;7-13
+27-28;17-36;31-37;38-43;9-19;40-49
+17-24;17-29;17-36;33-39;6-34;39-42;31-45;31-47;9-19;24-45
+2-3;1-7;14-16;20-21;8-26;13-32;17-29;11-38;6-25;6-8;16-24;48-49;38-43;9-19;19-51
+1-6;1-8;14-15;23-24;8-20;21-31;16-24;9-17;40-49
+1-7;8-28;17-18;17-25;17-26;6-25;16-17;19-51
+38-43;9-15;24-31
+12-13;14-17;13-32;11-24;11-38;31-37;31-47;5-8;24-38
+1-7;17-29;33-39;6-34;7-13;18-23;40-48
+2-3;31-46;32-48;9-30;40-48
+1-5;1-10;20-22;8-26;21-31;17-28;11-24;16-17;31-47;32-44;32-42;38-43;40-48
+14-16;13-33;17-35;11-17;6-8;9-15;3-9
+14-17;17-20;33-39;6-8;32-48;40-49;24-31
+12-13;15-19;8-24;16-29;18-23
+1-4;17-26;6-28;6-34;16-29;31-47
+8-26;17-28;17-24;17-26;11-17;32-48;5-7;24-38;24-31;19-51
+1-5;20-22;25-26;17-28;17-26;32-42;9-15;9-30;9-17
+20-21;8-20;17-36;5-7;3-9;19-41
+1-7;27-28;17-20;17-36;33-39
+15-19;23-24;17-25;11-17;6-7;31-45;9-31;18-23;24-31
+1-5;12-13;17-35;6-34;39-42;32-42;9-15;5-32
+1-5;14-17;23-24;11-38;6-11;5-8;24-50;3-9;19-20
+1-7;15-18;8-28;8-26;18-23
+1-9;15-19;20-22;17-20;33-39;31-45;24-50
+1-10;17-18;17-24;11-38
+14-15;25-26;8-28;17-25;11-17;33-40;6-34;16-24;9-15;24-45;24-50;19-51
+33-40;16-24;9-31;19-41
+2-3;1-11;17-26;17-29;33-40;16-17;9-30;5-7;40-48
+1-8;8-26;6-25;16-29;18-23;24-38
+15-19;8-16;16-29;16-17;31-45
+1-4;15-18;9-15;24-38;3-9
+1-11;8-20;8-24;21-31;6-25;9-31;9-30;40-49
+1-6;1-11;17-28;6-25;9-30;24-31
+1-6;1-11;20-22;8-28;17-36;11-17;9-30;9-17;5-32;19-20
+2-3;8-24;8-26;13-32;17-36;39-42;9-30;24-38;3-9
+23-24
+12-13;14-17;8-20;8-28;11-24;24-38;24-45
+20-21;17-24;6-7;48-49;38-43;24-50;19-51
+1-7;1-10;14-16;8-28;21-31;17-20;11-24;38-43;19-41
+1-8;1-11;8-24;33-39;33-40;31-47;9-30;5-7
+1-6;21-31;32-48;9-17
+1-7;8-26;38-43;5-8;24-50;3-9;19-41
+14-17;25-26;27-28;9-19
+11-38;31-46;32-48;38-43;9-19;24-50
+13-33;17-28;6-7;6-11;31-46;9-19
+1-9;1-11;14-15;15-18;21-31;6-11;38-43;9-15;24-50
+1-5;1-11;20-21;17-24;17-26;11-38;16-17;5-32
+1-11;14-15;20-22;17-18;17-26;39-42;16-24;9-31;24-45
+1-11;16-24;31-47;5-7;19-51
+1-7;1-11;27-28;8-20;8-28;13-32;31-45;38-43;5-7;3-9
+1-9;17-18;6-7;6-28;31-45;19-41
+1-11;11-17;39-42;16-17;9-15;5-8;5-7
+1-6;1-8;1-10;6-28;38-43;5-8;18-23
+0-1;8-24;13-32;6-28;16-17;48-49;9-17
+20-21;8-28;17-36;33-40;6-25;6-8;38-43;5-32;24-38
+1-9;23-24;13-33;17-24;17-36;33-40;6-11;16-24;9-31
+2-3;8-24;16-24;32-48;9-15;9-30;19-51
+1-6;8-20;5-7
+1-6;12-13;17-28;11-24;7-13;5-7
+15-18;20-22;8-26;33-40;6-34;39-42;24-50
+21-31;13-32;13-33;6-7;6-8;18-23;24-31;19-41
+0-1;1-11;11-24;11-38;11-17;33-40;31-37;38-43;9-30;18-23;40-49;24-38;24-31;19-41
+0-1;1-7;1-11;20-21;17-29;11-24;11-17;33-39;6-8;16-29
+1-9;1-11;8-20;17-24;17-25;9-31
+1-4;17-24;11-24;11-17;6-17;16-24;7-13;24-38
+1-4;8-26;16-24
+1-7;1-8;17-18;17-29;6-7;5-7
+27-28;13-32;17-20;17-28;11-24;11-38;6-8
+1-10;11-17;6-8;31-46;31-37;40-49;19-51
+14-15;15-19;20-21;20-22;23-24;17-24;6-28;16-17;19-41;19-20
+1-8;1-9;21-31;17-18;9-15;9-31;24-31
+23-24;25-26;11-17;39-42;24-45
+14-15;15-18;25-26;8-20;13-33;17-20;17-25;16-24;9-31
+6-25;31-47;24-38
+1-11;14-17;13-33;32-44;7-13;24-31;24-50
+1-11;17-35;17-18;17-28;6-11;31-45;32-44;18-23
+0-1;1-7;21-31;17-26;6-11;16-24;16-29;40-49;24-50
+8-28;17-24;17-26;39-42;16-24;31-47;24-31;24-45;3-9
+2-3;12-13;17-20;17-26;6-25;9-17;24-50
+0-1;1-8;14-16;14-17;8-16;33-40;5-32
+1-4;1-10;14-16;8-16;8-28;17-28;33-40;31-45;31-47;32-42;18-23;24-31;24-50;19-51
+2-3;1-4;15-18;8-16;33-40;31-47;9-30;5-8
+20-22;8-16;33-40;32-48;9-30;9-19;40-48;19-20
+1-5;1-9;1-10;12-13;20-21;13-32;16-24;19-20;19-51
+17-35;17-20;17-18;9-17;9-19;40-48;24-31;19-41
+17-24;6-17;31-45;9-15
+11-17;39-42;9-17;5-32
+14-17;17-25;33-40;7-13;24-45
+23-24;19-41
+14-16;15-18;8-26;21-31;17-20;17-36;6-17;9-17;18-23
+2-3;1-5;20-21;27-28;11-24;6-7;19-51
+14-15;25-26;8-16;8-24;32-48;9-17;24-38;3-9
+1-7;17-24;17-29;38-43
+16-29;19-41
+1-5;1-7;1-8;14-15;21-31;11-17;6-7;6-11;3-9
+39-42;18-23;19-20
+27-28;24-38;3-9
+1-4;20-22;17-18;17-28;6-8;6-11;24-31
+1-7;17-35;17-24;33-39;6-7;6-8;6-11;32-44;40-49
+0-1;1-9;32-44;40-48
+23-24;13-33;17-20;39-42;16-29;31-46;40-48;24-31
+8-26;17-18;6-25;31-45;31-46
+0-1;8-20;17-35;17-28;17-36;24-38
+2-3;15-18;20-21;17-36;33-39;6-7;9-15;24-31
+1-5;21-31;17-36;6-8;16-29;16-17
+1-10;14-16;17-18;48-49;24-38;24-45;19-41
+15-19;8-24;13-33;17-18;17-24;33-40;6-8;24-45
+20-22;25-26;17-35;17-26;6-25;31-45;9-17;5-7;24-31;19-20
+0-1;14-17;8-20;8-26;17-26;6-17;5-7
+17-29;33-39;16-17;48-49;9-17
+21-31;17-18;17-29;11-24;6-17;9-31;24-31
+15-18;20-21;6-8;48-49;5-32;5-8;40-48;19-41
+2-3;25-26;6-8;32-48;5-32;5-8;40-48;19-51
+27-28;8-26;31-47;9-15
+1-4;1-5;1-9;17-29;33-39;9-17;24-38
+2-3;1-5;39-42;24-45
+1-9;14-16;27-28;11-24;33-40;6-17;40-48
+1-11;12-13;14-17;23-24
+7-13;9-15;9-31
+17-20;6-28;16-24;16-29;31-37
+20-22;8-16;17-36;11-24;31-46;19-20
+15-19
+14-16;25-26;32-48;32-44;38-43;9-15;9-19
+14-16;8-24;17-18;17-25;11-24;11-38;32-44;9-19;18-23;24-38;24-31
+1-11;20-21;17-20;17-28;16-29;38-43;9-19
+0-1;2-3;1-6;1-11;6-34;7-13
+8-28;17-24;17-29;11-17;33-40;6-28;38-43;24-31;19-51
+1-4;1-10;20-22;23-24;33-40;31-45;48-49;38-43;5-8
+1-9;8-20;17-18;33-40;6-28;31-45;32-42
+2-3;1-5;33-40;16-29;40-48;24-45;3-9
+14-15;14-16;20-22;17-20;11-17;6-25;5-32;40-48;24-38;24-31
+1-4;14-15;14-17;17-35;17-25;6-11;38-43;5-7;40-49
+1-6;14-16;20-21;8-26;6-11;31-45;9-15;18-23
+1-10;15-18;6-11;16-24;31-47;7-13
+1-8
+6-7;6-25;6-8;6-17;6-11;39-42
+13-32;17-18;11-24;31-37;9-15;24-31
+0-1;14-17;15-19;20-21;25-26;8-24;17-26;11-17;6-17;6-34;16-17;9-31;9-30;3-9;19-41
+2-3;1-4;1-6;15-18;8-26;17-28;33-40;6-7;31-47;9-15;9-17
+14-16;21-31;17-26;39-42;31-37;40-49;19-41
+0-1;12-13;14-15;13-32;9-30
+17-18;17-28;11-17;6-7;31-47;7-13
+27-28;6-8;31-37;9-15;5-32;3-9
+1-9;20-22;16-29;48-49;9-17;40-48
+8-26;21-31;11-17;6-28;39-42;40-48;24-38
+20-21;17-35;6-28;32-48;9-31;5-8;19-20
+1-4;8-20;8-28;7-13;18-23;3-9;19-51
+1-10;23-24;11-17;32-42;19-41
+17-20;6-8;24-38
+1-6;17-24;6-7;6-25;16-17
+17-20;32-44;38-43;9-31
+14-15;8-28;17-35;6-8;32-44;40-49
+2-3;8-16;13-33;9-15;24-38
+0-1;1-8;14-17;17-20;11-17;33-39;32-48;19-41
+12-13;20-22;8-20;8-28;17-29;33-40;6-7;16-24;16-29;31-46;48-49
+1-6;17-18
+15-18;8-24;21-31;17-24;32-48;32-42;9-15;9-17;5-7
+1-7;8-26;17-25;6-11;16-17;31-37;7-13;38-43;5-7
+0-1;15-19;20-22;8-28;17-28;33-39;5-7;18-23;40-49;24-45;19-20
+27-28;8-24;11-17;40-48;19-51
+1-6;1-10;12-13;23-24;6-28;6-25;40-48
+39-42;31-37;32-44;32-42;19-51
+0-1;8-28;13-32;38-43;9-15;9-17;40-48;3-9;19-41;19-51
+23-24;11-38;39-42;31-37
+1-4;15-18;25-26;8-26;17-18;17-28;11-24;11-17;38-43;9-30;9-19;24-45
+2-3;1-7;1-11;14-16;27-28;6-25;16-29;7-13;9-19
+1-11;14-16;8-28;21-31;31-45;32-42;38-43;9-31;9-19
+0-1;1-11;12-13;14-16;20-21;11-17;9-17
+2-3;20-22;17-18;17-25;33-39;39-42;16-24
+1-9;25-26;8-28;8-26;17-26;6-28;31-46;24-45
+0-1;14-15;17-24;17-26;17-29;31-46;9-15;19-20
+31-46;3-9
+21-31;6-25;31-47;38-43;40-49
+1-10;17-18;6-8;32-44;7-13;19-20
+8-24;17-36;33-40;6-7;6-8;5-32;24-31;19-51
+23-24;33-40;24-38
+1-11;8-26;48-49
+1-6;8-28;21-31;17-28;17-24;11-38;39-42;24-38
+15-18;13-32;13-33;18-23
+14-15;8-16;9-17
+27-28;8-28;17-20;6-17;16-24;24-45
+15-19;6-7;31-47;5-7
+1-7;1-10;21-31;17-28;17-25;17-29;6-17;6-11;39-42;5-7
+27-28;13-33;6-34;16-29;9-19;19-51
+1-8;14-16;14-17;20-22;8-28;17-29;6-11;31-45;31-46;48-49;19-20
+12-13;8-24;33-39;6-17;16-29;31-46;38-43;5-8
+15-18;15-19;13-33;31-46;48-49;9-31;9-30;19-51
+1-7;8-16;6-25;31-46;9-30;5-32;24-31
+1-6;27-28;8-16;8-24;17-35;6-25;16-24;31-46;7-13;9-30;40-49
+1-6;25-26;8-16;13-32;6-25;16-24;31-46;9-30
+2-3;12-13;15-19;17-25;17-36;9-17;3-9
+13-33;17-24;5-7
+17-35;17-29;31-45;18-23;24-45
+1-8;20-21;17-20;11-24;32-42;24-31
+1-5;1-11;14-15;8-16;13-32;17-18;31-46;9-19;19-20
+33-40;39-42;31-37;32-44
+13-32;32-48;48-49
+6-25;9-17
+0-1;1-4;1-6;17-25;11-17;6-8;7-13;9-15;9-31;19-20
+1-4;1-6;20-21;32-48
+8-26;17-26;39-42
+1-11;12-13;23-24;17-26;11-17;32-42
+27-28;8-24;17-26;32-48
+1-6;21-31;6-17
+11-24;16-17;9-19
+1-5;1-11;12-13;14-17;8-16;17-35;31-46;9-19
+1-8;8-16;13-32;11-17;16-29;31-45;31-47;32-48;48-49;7-13;9-19;5-8
+0-1;1-9;1-10;14-15;8-16;13-33;33-39;6-7;6-8;16-17;9-19;40-49;19-41
+12-13;14-17;15-18;15-19;8-16;6-28;6-17
+8-16;6-28;24-45;19-20
+25-26;17-28;6-17;16-29;31-45
+2-3;1-11;17-24
+20-21;11-38;33-40;38-43
+23-24;8-24;11-17;31-46;31-47;9-30;24-50
+1-5;17-35;39-42;31-46;32-44;38-43;9-30;9-17;5-7;18-23;40-49
+1-4;14-15;15-18;6-28;16-29;48-49;24-50
+1-11;15-18;17-24;17-25;6-11;39-42;31-46;31-47;32-48;5-32
+14-16;8-24;17-29;11-17;33-39;6-28;38-43;9-15
+20-22;17-24;17-29;9-31;9-17;24-38;24-50
+0-1;1-10;15-19;17-35;17-25;32-42;38-43
+1-6;1-7;1-9;25-26;8-20;39-42;18-23;24-50;19-41
+11-24;7-13;38-43;5-8
+17-29;33-39;6-11;5-32;5-7;24-45
+15-19;11-17;39-42;16-17;5-7;18-23
+0-1;8-26;21-31;17-36;6-25;19-41;19-51
+1-6;14-15;8-20;17-24;40-49
+1-6;6-17;31-45
+1-11;11-17;16-29;31-46;9-15;9-31;24-45
+0-1;1-9;6-34;16-24;48-49;24-45
+1-8;6-17;32-42;7-13;18-23
+0-1;23-24;8-28;11-38;24-38
+20-22;8-26;17-26;6-17;9-15
+1-4;1-7;17-20;17-24;17-26;6-28;39-42;31-45;31-46;3-9
+0-1;2-3;1-8;20-21;8-28;13-32;6-28;6-17;6-34;31-46;19-20
+12-13;8-24;16-29;31-46;5-32;19-51
+25-26;39-42;16-24;31-46
+1-7;13-32;17-18;31-45;9-15;24-38;3-9
+1-8;14-17;15-18;17-20;6-17
+1-11;20-21;13-33;17-36;16-24;31-46;40-48
+0-1;27-28;8-20;13-33;33-40;6-34;32-42;19-41
+1-5;17-28;17-24;17-36;32-44;9-30
+20-21;17-18;17-36;39-42;32-44;9-30
+0-1
+14-17;8-16;8-26;9-17;19-41
+14-16;8-28;33-39;7-13;40-49
+12-13;15-18;17-25;9-19;24-31;24-50
+2-3;1-8;20-21;13-32;13-33;17-24;6-11;32-42;9-19
+1-4;1-9;27-28;11-24;11-38;16-24;19-20
+1-4;8-24;6-28;16-24;38-43;9-17;18-23;40-48
+14-17;33-39;48-49;40-48
+2-3;1-11;33-39;6-17;39-42;31-46;31-37;48-49;9-15;40-48
+0-1;1-11;12-13;11-38;6-7;38-43;24-45
+14-16;17-25;6-17;7-13;5-32;19-41
+6-25;31-45;32-48;38-43;5-8
+20-21;20-22;17-18;11-38;6-25;31-47;9-17
+2-3;15-19;17-36;31-37;38-43;9-15;3-9
+6-17;16-17;32-48;32-42;5-7;24-45
+1-10;12-13;14-17;13-32;31-47;38-43;5-7
+2-3;1-7;8-20;21-31;17-18;17-25;39-42;16-29;19-20;19-51
+1-10;15-18;15-19;5-32;3-9
+25-26;17-35;17-29;6-25;38-43;40-49
+1-7;9-30;40-48
+1-6;1-8;14-16;23-24;8-26;13-32;33-40;31-37;5-32
+20-21;27-28;17-35;17-24;17-26;33-40;32-48;48-49;40-48;19-41
+1-7;23-24;17-26;16-29;16-17;31-37
+1-11;8-20;8-28;24-38
+1-11;17-28;9-15
+1-6;14-17;17-35;11-24;6-28;32-44;9-30;40-49;24-45
+14-15;14-16;15-18;8-28;8-26;17-20;17-18
+0-1;1-7;20-22;17-24
+1-8;8-24;17-25;11-24;16-24;9-15
+12-13;25-26;27-28;8-20;17-36;33-39;19-20;19-51
+2-3;12-13;20-22;23-24;8-16;11-38;11-17;6-7;9-15;40-48;3-9
+2-3;11-38;48-49;9-17;5-8
+6-8;16-17;9-31;19-20
+8-16;17-25;6-28;6-8;31-47;9-15;3-9
+11-17;6-8;6-17;31-45;7-13
+1-7;1-9;14-15;25-26;6-7
+12-13;27-28;16-17;9-17;5-32;18-23
+8-20;17-28;40-48;3-9
+0-1;1-9;6-8;6-11;32-48;9-17
+14-17;6-7;9-31;5-7;24-50;19-51
+15-18;17-28;16-17;5-8;5-7
+1-8;8-16;8-24;7-13;5-8;40-49;24-45;19-51
+12-13;20-21;6-28;6-34;31-37;5-8;3-9
+1-8;14-16;6-28;24-45
+1-7;27-28;8-16;8-26;39-42;9-17;9-19;5-32;24-38;19-41
+1-5;1-10;25-26;8-16;6-7;6-8;31-47;48-49;7-13;9-19;24-31
+1-5;8-16;8-28;8-24;6-17;31-47;9-17;9-19;3-9
+2-3;14-17;48-49;9-31;9-30;24-45
+1-9;20-22;8-16;13-32;18-23
+1-6;1-10;14-15;8-24;11-24;6-7;6-8;24-45;19-41
+17-20;17-25;17-26;39-42;31-45;7-13
+0-1;1-11;13-32;17-26;6-25;31-46
+1-4;23-24;8-16;17-24;6-34;24-38
+1-7;1-8;14-16;14-17;20-22;17-26;33-40
+33-40;6-11;16-29;9-15;24-38
+15-18;23-24;27-28;8-20;8-16;11-38;6-11;31-37;32-44;9-31;24-45;19-20
+1-9;8-16;33-39;32-44
+1-4;1-5;1-8;12-13;20-21;6-25;32-42;48-49;9-17;5-7
+15-19;11-38;6-25;6-8;7-13
+13-33;16-24;19-51
+2-3;17-29;33-39;6-28;24-45
+1-9;8-20;13-32;6-25;32-48;38-43
+1-7;15-18;20-22;8-26;17-18;6-7;31-45;40-48;24-38;19-41
+1-5;11-38;11-17
+12-13;15-19;6-34;5-32;5-7
+20-21;17-29;5-7
+0-1;8-28;16-24;7-13;38-43;24-50;19-20
+1-5;1-7;14-17;8-24;21-31;17-20;31-45;32-48;32-42
+1-5;14-16;15-19;8-20;8-26;39-42;16-29;38-43;9-15;5-8;24-50;19-20
+12-13;14-16;17-29;40-49
+14-15;25-26;8-28;8-24;17-29;31-47;38-43;24-45;24-50
+20-22;17-25;33-39;5-7
+2-3;11-38;9-30;5-7;24-50;19-41
+1-4;1-10;15-19;8-28;39-42;7-13;3-9
+1-4;1-9;13-33;17-20;17-26;6-28;9-17;24-38
+0-1;8-26;17-35;17-20;6-34;31-47;9-31;40-48;24-50
+1-8;1-10;12-13;14-17;11-38
+15-18;17-28;33-39;32-42;18-23;40-49
+1-6;20-21;27-28;6-28;16-29;31-47;24-45
+14-15;11-24;16-24;16-29;32-44;48-49;9-30;3-9
+8-26;17-24;6-25;16-24;31-37;32-44;19-20
+1-5;8-28;8-24;17-29;6-7;6-34;7-13;19-51
+17-25;17-26;31-47;9-31;9-17
+0-1;1-6;13-32;17-35;17-26;9-19;3-9
+1-8;1-9;15-18;27-28;8-24;17-28;32-48;9-19
+1-8;15-19;8-26;17-25;17-26;6-28;6-8;16-29;9-15;19-20
+20-21;23-24;39-42;31-37;9-19
+13-32;16-24;32-42
+1-10;8-20;8-16;17-35;17-24;31-45;9-17;40-49;24-38
+1-4;1-7;1-8;14-15;11-17;7-13;5-32;24-50
+1-4;6-11
+1-11;14-17;13-33;17-20;6-11;39-42;48-49;24-50
+1-5;1-9;1-11;11-17;33-39;6-34;16-29
+1-7;20-21;8-20;17-28;6-8;32-48;48-49;9-17;24-45;19-20
+2-3;8-16;6-28;6-8
+14-16;6-8;24-50
+12-13;17-35;33-40;6-7;6-8;31-37;32-42;24-45;19-41
+1-7;14-17;13-32;11-17;7-13;18-23
+17-35;24-50
+2-3;1-6;8-24;21-31;17-29;16-29;31-46;19-41
+1-6;1-11;12-13;20-22;27-28;31-46;38-43
+15-19;25-26;8-20;17-28;11-17;6-28;32-44;48-49;9-30
+1-8;17-20;17-18;6-28;31-47;32-44;9-30;18-23
+33-39;6-34;9-17
+20-21;11-38;9-15;24-31
+0-1;27-28;8-26;17-35;17-20;16-24;24-45;19-20
+14-15;15-18;13-32;13-33;16-17;7-13;9-31;5-8;40-49;3-9
+14-17;27-28;33-39;33-40;48-49;5-32
+17-24;17-25;11-38;5-32;18-23
+11-24;33-39;6-34;9-17
+1-5;1-9;1-10;20-22;13-32;31-47;9-15
+1-8;15-19;25-26;8-26;17-18;11-38;3-9
+14-17;20-21;23-24;13-33;32-42
+14-16;8-20;8-16;8-24;17-20;17-26;31-47
+15-18;8-16;21-31;17-26;31-47;9-31
+17-29;31-46;31-37;24-38
+17-29;11-24
+12-13;20-21;8-26;17-36;6-17;24-38;19-20
+2-3;15-18;20-22;21-31;17-28;7-13
+6-11;38-43
+1-7;8-20;13-32;17-35;17-28;11-24;33-39;6-17;6-34;6-11;39-42;16-29;32-42
+1-6;25-26;17-24;6-8;48-49;38-43;9-17;24-31
+1-10;27-28;31-47;24-38
+0-1;1-4;1-5;15-19;17-25;6-25;32-44;38-43;9-15;5-7
+1-11;12-13;23-24;17-35;6-28;6-17;9-19;24-38
+1-11;14-15;21-31;11-38;33-39;6-28;6-34;16-24;31-47;38-43;9-19;5-32;40-49;3-9
+1-6;1-11;23-24;6-7;6-28;16-24;9-17;9-19;19-41
+1-6;14-15;15-19;16-24;16-17;32-48
+1-7;14-16;15-18;17-18;9-17
diff --git a/examples/failures/failures-0.09 b/examples/failures/failures-0.09
new file mode 100644
index 0000000..e1a7d7e
--- /dev/null
+++ b/examples/failures/failures-0.09
@@ -0,0 +1,1000 @@
+13-33;17-35;17-36;33-40;6-7;6-8;16-24;16-17;9-17;19-41
+9-20
+2-3;1-7;25-26;17-18;17-25;16-17;19-41
+0-1;1-4;27-28;16-17;31-47;9-17;19-51
+15-18;21-31;17-28;17-29;38-43;9-17
+1-4;1-6;14-15;15-19;9-31;5-32;24-45
+8-28;6-7;16-29;16-17;31-46;9-19;24-31;24-45;3-9
+1-5;20-22;25-26;17-20;17-24;31-37;9-20;9-19;18-23;24-45
+20-21;13-32;17-29;33-39;31-45;9-19;24-38
+1-6;14-17;17-28;17-24;11-38;6-17;48-49;9-19
+1-10;13-32;17-25;9-20;9-19
+1-11;20-22;17-24;17-25;33-40;24-38;24-31
+23-24;17-29;31-45;9-17;24-50;3-9;19-41
+2-3;1-5;1-7;14-15;13-32;16-24;7-13;9-20;9-17;24-50;3-9
+1-7;8-28;6-25;9-20;5-7
+1-8;8-20;8-26;17-26;11-38;16-24;31-37;38-43;9-30;24-38;24-45;19-41
+1-9;13-32;13-33;17-18;17-26;6-28;7-13;9-15;5-32;18-23;24-45
+1-5;1-11;21-31;17-26;33-39;33-40;16-17;9-20;24-45
+1-10;8-16;8-28;13-32;17-18;17-26;17-29;6-8;38-43
+0-1;1-8;14-16;8-24;6-34;16-24;31-46;31-47;32-44;24-31
+23-24;21-31;17-35;11-17;6-28;9-20;9-30
+1-8;1-9;17-28;6-8;9-17;18-23;19-41;19-20
+6-17
+14-17;13-32;6-25;31-37;9-20;9-31
+1-11;20-21;6-8;9-15;24-38;24-45;19-41
+1-6;33-39;16-29;16-17;18-23;24-38;24-31;24-45
+20-22;8-20;8-16;17-36;11-17;31-45;38-43;24-45;24-50
+12-13;14-15;15-18;15-19;17-36;31-46;32-44;40-48;24-50
+23-24;13-33;9-30;9-17;24-38;3-9
+14-15;6-34;31-47;5-8;19-41
+1-4;1-5;20-22;17-18;17-29;33-40;6-7;39-42;31-37;9-31;40-48
+1-9;27-28;8-28;11-17;7-13;24-38
+14-17;17-18;17-24;11-38;6-28;6-25;6-8;31-46;32-44
+0-1;1-8;20-21;27-28;17-28;11-24;38-43;40-48;24-45
+14-16;8-26;17-24;17-29;31-45;5-32;24-38;24-45
+14-17;8-28;13-32;13-33;16-17;31-46;31-37
+1-7;1-8;23-24;8-28;6-17;39-42;32-48;40-49;19-41
+1-5;1-7;1-9;14-15;8-20;32-48;48-49;38-43;9-20;9-17;5-7
+1-8;1-9;17-20;11-17;31-46;32-44;19-51
+15-18;17-28;17-29;31-37;32-42;9-15;18-23
+8-16;13-33;16-24;16-17;9-20;19-20
+1-10;12-13;15-19;11-24;39-42;5-32;19-51
+17-20;33-39;6-28;6-11;9-31;24-50;3-9;19-41
+2-3;1-9;8-26;11-38;16-17;31-46;31-47;7-13;5-8
+0-1;2-3;1-5;1-8;14-15;17-24;11-17;33-40;16-29;48-49;40-48
+2-3;1-11;20-21;27-28;8-28;13-33;6-25;6-34;32-48;24-50
+17-18;6-11;39-42;9-15;24-50;19-41
+1-8;20-22;8-20;32-48;19-41
+16-24;9-20;24-38;24-31
+1-9;13-32;11-24;31-46;9-31
+15-18;8-28;21-31;17-36;11-24;16-29;9-15;18-23;3-9
+13-32;17-25;31-37;9-20;24-38
+2-3;17-35;17-25;6-7;6-28;39-42;48-49;9-15
+0-1;1-4;8-26;17-28;40-49;24-31
+1-4;1-5;23-24;25-26;8-26;13-32;16-24;9-15;40-48
+12-13;15-19;17-20;17-18;33-40;6-25;6-17;31-47;7-13;9-17
+1-10;14-17;8-20;17-28;31-46
+1-10;12-13;17-28;17-25;6-25;16-29;32-44;5-32;5-7;18-23;24-38
+2-3;1-4;1-11;17-29;17-36;31-37;32-44;40-48
+2-3;21-31;16-24;9-30;18-23;40-49;24-50
+8-16;6-7;9-30;24-50;19-20
+1-8;14-16;13-33;39-42;40-48;19-41
+14-16;15-18;23-24;16-29;31-45;9-17;24-38;19-20
+25-26;8-28;8-26;17-25;33-40;19-41
+20-22;8-24;8-26;17-35;17-20;17-25;17-26;31-37;48-49;24-31;3-9
+1-11;17-28;17-26;6-17;16-24;31-47;32-44;5-7;40-49;24-38
+20-21;17-26;9-30;5-32
+1-5;8-16;17-18;17-26;11-24;9-30;18-23
+0-1;1-9;14-15;8-26;17-18;33-40;48-49;40-48
+17-20;33-40;9-15;24-38
+14-17;23-24;17-29;9-20;24-50
+1-7;20-21;6-28;32-42;9-15;9-19;5-32;40-49
+1-7;1-10;25-26;6-7;48-49;9-19;24-38;24-31
+0-1;1-11;12-13;8-28;8-26;17-35;32-48;32-44;38-43;9-15;9-20;9-19;3-9
+1-9;15-18;17-28;17-25;17-29;6-34;16-17;32-48;7-13;9-31;9-19
+20-21;17-35;33-39;31-45;9-19;24-38
+14-16;11-38;6-7;38-43;19-51
+1-8;14-16;23-24;8-20;7-13;9-17;24-31;19-41
+1-5;32-44;24-38;19-20
+1-11;15-18;25-26;8-16;24-50
+1-8;1-10;14-17;25-26;21-31;17-36;6-8;48-49;5-7;19-51
+1-4;8-28;17-36;11-24;39-42;16-29;9-31;19-20
+0-1;8-16;16-24;5-32;18-23;24-38
+1-4;27-28;8-26;6-25;6-8;6-17;6-34;40-49;19-51
+14-15;20-22;17-29;33-39;6-11;40-48;19-41
+27-28;8-28;13-33;16-29;16-17;31-46;24-38
+14-15;15-18;15-19;17-18;39-42;16-24;9-17;24-50;19-51
+27-28;8-24;33-40;6-28;6-8;31-47
+1-5;20-22;25-26;8-20;21-31;17-24;6-7;31-45;32-48;24-38
+1-9;27-28;8-16;17-35;11-17;39-42;9-20;5-7;40-49;19-51
+1-5;14-15;23-24;31-46;31-47;9-31;24-38
+1-11;17-20;17-24;6-8;6-34;18-23;24-31
+14-16;21-31;17-35;17-25;6-25;31-47;48-49;24-38
+1-7;12-13;14-17;23-24;8-24;8-26;17-24;17-25;11-24;6-17;16-24;16-17;31-46;7-13;9-20;9-17;19-51
+1-7;1-8;11-24;33-39;9-15
+15-19;17-20;17-28;39-42;38-43
+0-1;14-15;20-21;17-29;6-7;31-37;9-15;9-20;24-31;24-50;19-51
+13-33;31-45;5-32
+1-5;1-8;15-18;8-24;33-40;31-46;19-41
+1-10;12-13;6-28;9-20;9-31;18-23;19-20
+20-21;21-31;17-18;17-29;6-7;32-44;24-50;19-41
+14-16;39-42;16-29;32-42;7-13;40-48
+6-25;31-45;9-30;9-17
+8-28;17-36;38-43;9-20;9-30
+0-1;8-16;17-28;6-28;16-29;16-17;5-7;24-31
+1-9;20-21;5-7
+1-9;12-13;11-24;33-40;6-17;31-46;9-20;9-31
+1-10;14-17;20-22;40-49
+23-24;17-20;6-7;6-11;32-44;9-17;18-23
+1-4;15-18;8-20;21-31;17-36;6-34;16-24;31-47;9-20;9-30;24-31
+8-28;17-25;11-38;33-39;6-25;31-45;32-48
+1-5;20-22;8-16;13-32;6-11;16-17;31-37;48-49;7-13
+20-22;11-38;6-17;31-37
+17-28;6-28;16-17;32-44;18-23;19-51
+1-8;8-26;13-33;17-20;17-28;6-7;9-20;40-49;19-41
+17-24;17-26;16-24;31-47;32-44;18-23;24-50
+1-7;1-10;17-35;17-18;17-26;6-11;39-42;19-41
+1-7;1-11;14-16;14-17;17-24;17-26;11-38;6-28;9-20
+14-16;13-32;17-26;17-29;16-29;32-48;38-43;3-9
+14-15;21-31;11-24;33-39;6-11
+1-6;8-20;33-40;6-34;16-17;31-47;32-42;40-48;40-49;24-38
+14-15;14-17;25-26;8-28;6-7;6-17;16-24;5-7;19-20
+1-5;1-9;15-18;20-21;8-24;17-28;17-25;6-11;16-29
+14-15;8-26;13-32;17-25;11-38;6-28;6-25;31-45;40-48;19-20
+1-9;27-28;8-20;13-33;17-24;17-25;11-17;33-39;33-40;6-25;6-34;9-20;9-17;24-31
+1-6;1-11;23-24;11-17;39-42;9-17;24-50
+12-13;27-28;13-32;13-33;6-7;6-11;9-31
+20-21;17-20;40-48;3-9
+27-28;8-24;21-31;31-46;31-37;7-13
+8-16;13-33;11-38;33-39
+1-8;14-17;15-19;25-26;17-35;17-18;11-17;5-7;40-48;19-41
+1-6;1-9;20-21;6-17;16-29;7-13;9-17;5-8;5-7
+23-24;6-25;31-45;32-42;48-49;9-31;18-23;19-41
+14-16;17-25;17-36;6-7;39-42;40-48;3-9
+0-1;15-18;8-16;6-17
+1-5;14-16;17-18;17-36;11-17;33-39;9-15;5-8;19-41
+1-5;1-6;20-21;27-28;11-17;6-28;16-29;31-46
+1-4;1-7;6-34;38-43;9-15;9-19;5-32;40-48
+1-7;1-9;25-26;13-33;17-24;33-39;6-7;16-24;9-19;40-49;24-50
+1-4;1-10;12-13;13-32;17-36;6-25;39-42;9-31;9-30;9-19;19-41
+1-6;21-31;17-24;17-29;17-36;48-49;9-30;9-17;9-19;40-48;19-20
+14-15;17-35;17-25;6-8;16-29;31-46;9-19
+0-1;1-11;8-20;8-26;6-7;16-24;24-31;19-51
+1-5;1-9;23-24;17-35;17-28;7-13;9-15;9-20;5-32;5-7;19-20
+15-19;21-31;17-20;33-39;39-42;31-47;9-30;24-38
+12-13;20-22;25-26;11-24;11-38;6-28;6-34;9-15;9-30;19-51
+15-19;11-24;32-44;40-48;24-50
+1-10;14-16;15-18;13-32;11-24;33-39;6-7;16-29;16-17;31-45;31-46;9-20;18-23
+1-11;20-21;21-31;33-40;48-49;24-38;3-9
+1-8;8-16;17-18;17-29;6-25;9-17;19-51
+1-7;13-33;32-44;9-20;9-17;40-49
+8-28;8-24;17-25;11-38;19-41
+15-19;20-21;8-20;8-26;17-25;6-28;6-8;32-44;48-49;5-32;24-50;19-51
+1-9;14-17;17-20;9-30;40-48;19-41
+25-26;33-39;6-7;16-17;31-47;32-48
+1-6;17-35;17-28;6-34;9-17;18-23;3-9;19-51
+0-1;1-5;14-16;20-21;8-16;8-24;40-48;40-49
+12-13;14-17;25-26;8-24;17-18;17-26;11-24;9-17;3-9
+0-1;17-35;17-20;6-28;6-25;32-44;9-31
+1-7;1-10;15-18;39-42;16-29;31-45;19-51
+1-6;1-7;31-37;48-49;9-15;5-7;40-48
+15-19;20-21;21-31;17-18;17-29;32-48;5-7;19-20
+1-4;17-36;33-39;6-7;6-17;16-17;7-13;38-43;9-15;40-49;19-51
+14-15;25-26;27-28;8-20;8-26;17-18;17-24;40-48
+2-3;8-28;17-28;17-26;11-24;33-39;6-28;31-47;9-15;9-31;18-23;3-9
+1-4;1-8;14-15;27-28;13-33;17-24;17-26;16-24;24-50
+1-5;1-10;23-24;17-26;6-7
+1-8;1-11;14-17;17-26;17-36;48-49
+1-10;17-26;5-8;5-7;18-23;19-20
+1-9;20-22;8-28;33-40;24-38
+15-18;17-25;16-24;18-23
+2-3;1-6;15-18;17-20;9-31;9-17;3-9
+0-1;14-16;8-26;17-35;31-45;9-17;24-38
+39-42;16-17;38-43
+1-10;6-7;6-34;32-44
+14-15;14-17;27-28;13-32;17-18;11-17;9-20;24-50;19-51
+2-3;12-13;11-24;6-28;6-11;16-24
+0-1;1-6;1-11;14-15;27-28;6-7;16-17;9-31;9-17
+1-9;21-31;17-35;6-25;9-15;9-20
+0-1;17-25;17-26;16-17;31-46;48-49;5-32
+1-5;1-7;8-24;6-11;48-49;24-31;3-9
+1-7;14-17;17-35;17-25;33-39;6-28;16-17;31-45;7-13;38-43
+1-10;15-18;20-21;23-24;9-30;5-32;24-38
+14-15;20-22;8-26;21-31;17-35;6-7;6-8;6-34;31-46;9-31;5-7;19-20
+1-5;14-16;20-22;17-18;17-29;11-17;6-28;39-42;16-24;32-42;5-32;18-23;19-20;19-51
+1-7;1-10;23-24;27-28;11-38;32-48;9-30;40-49;24-50
+1-7;1-9;12-13;17-18;17-36;31-46;32-48;7-13;5-7;3-9
+1-7;1-9;14-17;25-26;31-45;31-37
+1-4;8-16;17-18;6-7;32-44;5-8;24-50
+20-21;21-31;17-24;16-29;9-30;5-32
+2-3;15-18;17-26;17-36;6-28;7-13
+1-4;15-19;20-22;17-18;17-36;9-20;40-49
+1-4;1-5;1-6;13-33;17-35;17-24;17-25;17-36;31-45;31-46;32-42;9-17;5-8
+1-9;15-18;8-20;13-32;6-7
+1-11;12-13;25-26;8-16;17-35;16-29;32-44;38-43;9-20
+13-32;7-13;9-31;18-23
+1-6;14-15;17-28;11-38;6-25;31-37
+1-8;6-7;6-17;31-46;31-37;9-20;24-31
+1-5;1-9;17-25;48-49;7-13;5-7
+1-8;1-9;1-11;27-28;8-16;16-29;32-42
+1-6;1-7;12-13;8-26;13-32;11-24;6-8;39-42;9-15;9-20;9-19;5-32;3-9
+1-4;1-6;1-7;1-8;17-35;17-28;17-29;17-36;6-17;5-8;24-31
+20-22;25-26;21-31;6-8;48-49;9-20;9-19;19-20
+1-11;8-16;17-35;17-25;9-19;40-49
+0-1;1-5;12-13;15-18;8-20;33-39;16-24;31-47;7-13;9-19
+17-35;11-24;6-11;9-19
+1-7;15-19;13-33;11-17;33-40;31-46;32-48;18-23
+1-9;1-10;11-17;6-8;9-17;24-38
+20-22;27-28;17-20;17-25;6-7;39-42;40-49
+14-16;20-21;25-26;8-28;17-28;17-24;33-40;16-17;31-46;9-20;24-31
+14-17;23-24;8-26;21-31;17-36;32-42;5-32
+8-20;8-24;13-33;17-26;17-29;11-38;33-39;16-24;5-7;19-51
+1-7;13-33;33-40;9-31;40-49
+1-4;1-6;1-7;15-19;8-16;17-26;6-17;6-11;16-17;32-44;48-49;9-31
+1-7;14-16;17-25;17-26;31-37;18-23;40-49;3-9
+0-1;2-3;13-32;17-26;31-46;38-43;19-51
+2-3;1-4;15-18;17-29;17-36;6-34;6-11;16-24
+2-3;1-6;15-19;8-24;13-32;6-28;6-17;24-31
+1-10;25-26;8-16;21-31;17-28;33-40;32-44;32-42;38-43;9-17
+20-22;8-26;13-32;17-24;31-45;9-30;19-20
+27-28;31-47;48-49;9-20;24-38
+14-17;20-21;23-24;8-20;33-39;39-42;38-43;9-15;3-9
+1-5;12-13;21-31;11-17;6-7;5-32;5-7
+1-6;14-17;15-19;8-20;8-16;7-13;9-30;40-49;24-38
+1-4;1-7;1-8;12-13;14-15;8-20;17-35;38-43;9-15;18-23;3-9
+6-34;16-24;16-29;16-17;31-46;9-30
+1-11;14-16;17-20;6-28;31-45;9-31;18-23
+20-22;25-26;8-28;13-33;31-37;9-15;24-50
+15-18;17-29;11-38;33-40;16-17;31-47;32-44;7-13;24-31
+0-1;1-9;6-7;6-25;9-20;9-30
+1-6;1-10;17-20;31-46;32-42;9-30
+1-5;1-11;21-31;7-13;9-17;40-49;24-50
+8-20;17-29;48-49;9-20
+1-8;15-19;23-24;17-28;33-40;6-34;39-42;24-31
+1-6;20-21;25-26;8-20;17-35;17-20;16-29;32-42
+23-24;25-26;11-38;6-17;31-45;31-46;9-20
+1-8;27-28;13-33;6-28;31-46;31-37;9-20;5-7
+17-35;17-29;31-37;5-8
+1-10;12-13;14-17;33-39;6-8;32-48
+1-6;14-16;15-18;8-28;8-26;17-20;17-28;17-36;11-24;33-40;6-25;39-42;16-24;16-17;32-48;9-20;19-20
+8-24;6-17;16-29;31-45;31-47;9-17;5-32;5-8
+1-4;31-46
+1-4;25-26;8-16;6-34;9-20
+0-1;1-4;1-7;1-11;21-31;6-11;31-46;31-37;3-9
+1-9;12-13;17-18;48-49;9-31;5-32;24-50
+1-10;8-24;17-35;17-36;11-38;9-20
+1-8;27-28;17-35;9-17
+14-17;15-19;17-36;6-11;16-17;32-42;7-13;9-17;24-31
+17-28;6-28;6-25;39-42;38-43;9-15
+1-11;14-15;17-24;31-45;9-20
+1-6;1-8;6-17;6-11;16-24;31-47;32-44;9-15;40-49
+12-13;15-18;25-26;13-33;17-24;11-38;9-31;5-7
+1-6;14-16;23-24;31-47;24-45
+12-13;32-44;24-45;19-51
+0-1;14-15;8-16;6-11;16-29;31-45;31-37;24-45
+11-17;33-39;33-40;7-13;40-48;40-49
+2-3;1-6;1-9;8-24;13-33;17-28;11-38;6-17;31-47;19-51
+2-3;8-26;17-28;11-17;6-25;32-42
+1-11;20-22;25-26;8-26;5-8;19-41;19-20
+14-17;17-28;17-24;6-25;6-8;31-47
+14-15;21-31;17-26;6-7;31-45;5-7;40-48
+12-13;8-28;13-32;17-26;6-34;39-42;16-17;5-7;40-49
+1-7;14-15;15-18;8-24;17-26
+0-1;1-8;20-21;17-26;6-7;32-48;9-20;9-31;9-19;24-50
+1-10;14-16;8-20;17-20;17-26;33-40;16-29;31-37;32-48;32-44;7-13;9-19
+1-4;1-8;8-16;8-28;13-33;17-25;17-29;6-28;32-42;9-15;9-30;9-19;18-23
+39-42;9-19;40-48;24-50;3-9
+12-13;14-17;20-21;8-24;11-38;6-7;6-25;7-13;9-15;9-17;9-19;5-32;24-50
+0-1;2-3;14-16;20-21;27-28;21-31;33-40;9-20
+1-6;14-17;16-17;9-31;19-51
+17-29;33-40;6-34;16-29;32-44;32-42;40-48
+23-24;13-32;17-28;31-47;48-49;9-30;18-23;24-38
+0-1;1-10;17-18;6-7;16-24;9-30
+14-17;8-20;8-28;8-24;17-35;17-20;31-45;31-37;40-48;40-49;3-9
+1-5;1-9;15-18;13-33;17-18;17-29;6-25;9-15;5-7;24-38
+17-24;6-28;6-8;16-29;9-31;19-51
+15-19;13-32;6-17;16-24;16-17;9-17;40-48;19-41
+14-16;20-22;17-20;24-38;24-31;19-20
+14-16;23-24;31-46;40-49;19-41;19-51
+2-3;8-28;24-31
+0-1;1-10;14-15;8-16;17-28;33-39;32-48;7-13;38-43;18-23;40-48;3-9;19-20
+1-11;8-28;33-40;39-42;32-48;5-8;24-38
+17-20;17-25;11-17;31-37
+17-25;40-48
+1-7;1-8;1-9;27-28;17-25;6-7;39-42;16-17
+1-7;15-19;19-51
+0-1;15-18;20-22;23-24;27-28;17-20;17-18;17-29;6-25;6-17;6-11;31-46;32-48;32-44;9-20
+1-5;1-10;12-13;8-16;16-29;38-43
+20-21;17-18;17-28;31-37;9-15;3-9;19-51
+21-31;13-33;33-39;6-11;32-42;9-20
+15-19;13-32;33-39;6-28;6-34;31-46;24-45
+14-17;25-26;8-28;17-20;17-36;6-17;48-49;9-15;5-7
+2-3;17-28;17-36;6-7;16-17;19-51
+2-3;20-21;6-11;9-15;9-20;19-41
+1-9;14-15;23-24;17-35;31-45;31-46;32-44
+1-4;14-16;14-17;17-25;31-37;38-43;19-41;19-51
+8-20;8-16;8-24;17-35;6-7;6-34;6-11;9-20
+2-3;15-19;20-21;33-39;18-23
+2-3;1-8;15-18;21-31;17-36;7-13;9-17;24-38;19-51
+1-5;1-10;20-22;17-20;17-36;11-24;6-7;16-17;5-8;19-20
+0-1;8-28;17-18;17-28;6-28;6-17;16-29;5-7
+14-17;20-22;13-33;9-20;5-7
+23-24;33-40;32-42;7-13;9-30;5-32;24-38;24-31;19-51
+17-18;17-24;6-11;16-17;31-47;48-49;9-20;40-49
+14-15;6-17;16-24;3-9
+2-3;1-7;20-22;13-33;17-24;6-25;24-38
+2-3;1-7;12-13;8-26;33-39;6-11;16-29;32-42;9-20
+1-10;8-26;21-31;17-24;11-38;33-40;31-45;31-46;32-48;32-44;9-15;9-31;24-31;19-41
+0-1;1-11;8-28;17-20;17-29;6-7;6-8;9-30;40-49;24-38
+15-18;23-24;8-16;6-11;39-42;9-20
+1-5;21-31;17-26;16-24;16-17
+2-3;17-26;6-8;31-37;18-23;24-38
+1-5;1-9;15-18;20-21;23-24;25-26;8-20;8-16;17-28;6-7;7-13;24-50
+17-26;11-24;11-38;6-28;39-42;31-47
+14-15;17-26;33-39;6-25;6-17;32-42;9-31;9-17
+1-9;8-20;6-34;9-30;5-7;24-38;24-31
+25-26;9-15;9-20;19-41
+1-8;23-24;8-20;13-33;17-18;7-13;5-32
+2-3;14-16;14-17;20-21;8-16;39-42;32-42;24-38
+2-3;1-4;1-8;12-13;20-22;27-28;17-18;17-36;9-20;19-20
+1-4;1-5;17-36;6-7;31-46;38-43;9-31;18-23;24-31
+15-18;27-28;17-35;17-28;24-38;24-50;19-20
+1-4;33-39;6-28;32-48;9-20;9-17
+8-28;6-25
+20-22;27-28;17-25;6-25;16-29
+2-3;23-24;8-24;31-47;24-38
+27-28;8-16;8-28;13-32;17-20;11-24;33-40;32-42
+1-7;14-17;8-26;17-36;6-17;16-24;31-37;40-49
+1-11;15-19;27-28;21-31;6-7;6-17;31-46;32-48;38-43;40-48
+13-33;17-29;6-28;31-45;32-48;32-44;9-17;9-19;18-23
+1-5;1-9;1-10;8-24;17-20;17-28;32-42;48-49;9-19;5-7;19-41
+0-1;2-3;8-16;33-40;6-34;16-24;38-43;9-19
+23-24;33-39;6-7;6-25;9-15;9-19;5-32;40-49
+1-8;1-11;14-16;15-18;13-32;17-18;17-29;16-17;31-46;9-19;24-31
+1-5;14-15;17-20;17-36;6-28;6-11;9-15;3-9;19-41
+17-25;32-48;32-42;48-49;9-17;19-51
+17-20;11-38;32-44;18-23;24-50
+14-15;8-20;8-26;17-35;7-13
+33-40
+0-1;1-10;14-15;8-20;11-24;39-42;16-24;31-45;32-42;40-48
+13-32;17-28;38-43;9-31;24-31
+1-9;14-15;14-17;23-24;25-26;21-31;33-39;6-7;6-11;5-7;3-9
+1-11;13-33;11-38;6-28;6-17;6-34;16-17;40-48
+20-22;17-25;16-29;31-45;31-37;32-44;32-42;19-20
+20-21;32-48;9-30;18-23
+13-32;33-40;6-7;9-30;9-17;40-48;24-50;19-41
+8-26;21-31;11-38;31-46;32-48;9-30;5-32;5-8
+0-1;1-4;1-9;1-10;15-18;6-28;9-31;9-17
+1-4;1-6;11-38;6-11;39-42;19-41
+1-7;20-21;23-24;25-26;8-16;17-20;17-18;17-28;40-48
+25-26;21-31;16-17;31-37;32-48;9-15;24-38;3-9
+1-4;1-8;12-13;14-16;15-19;17-36;6-11;32-48;32-44;32-42;48-49
+1-6;17-24;17-29;11-24;6-25;31-45;7-13;9-30;40-48;40-49
+1-8;13-32;17-20;17-25;39-42;16-17;18-23;24-31
+1-5;1-11;8-24;17-24;17-25;6-11;38-43
+14-17;6-17;16-24;32-42;5-7;40-48
+8-28;8-26;17-29;33-40;31-45;9-15
+1-10;14-17;33-40;6-11;16-24;24-31
+12-13;25-26;8-20;8-26;13-33;6-7;6-11;31-47;40-49;19-51
+14-15;15-18;6-28;6-8;48-49;9-15;40-48;24-50
+15-19;8-20;17-35;33-39;24-50
+0-1;14-15;17-26;6-25;6-34;16-29;16-17;19-51
+1-11;8-28;17-20;17-26;16-24;38-43;5-8;18-23;19-41
+1-6;17-18;17-26;32-42;48-49
+23-24;17-26;17-29;11-38;6-25;31-45;40-49;24-31;19-41
+8-16;17-25;6-7;6-28;6-17;31-37;5-8;3-9
+1-10;20-22;25-26;27-28;8-28;8-26;17-20;16-24;31-37
+0-1;1-5;1-8;8-26;21-31;33-39;31-47;32-44;9-17;19-51
+6-7;31-37
+14-17;15-19;27-28;17-29;6-34;16-17;9-17
+1-8;12-13;13-33;33-40;6-7;6-8
+15-18;27-28;11-17;48-49;18-23;19-51
+8-28;8-24;17-35;33-40;31-37;32-42
+14-15;27-28;8-16;13-33;6-7;6-25;16-24;31-45;31-46;31-37
+1-4;1-6;1-10;17-35;17-36;16-29;7-13;19-51
+1-4;14-15;27-28;17-18;17-36;33-39;32-44;48-49;24-45
+14-16;8-26;21-31;11-17;39-42;16-17;5-32
+1-4;14-17;8-24;17-18;33-40;6-7;6-28;6-8;31-45;9-15;24-31;19-51
+1-5;1-6;20-21;8-20;31-46;9-31;3-9
+17-35;33-39;6-34;31-45;5-8;19-20
+1-11;17-18;17-36;6-25;16-29;16-17;31-47;32-42
+8-20;17-36;6-8;32-44;5-7;19-51
+1-10;15-18;15-19;13-33;17-28;11-38;39-42;31-37;40-49
+15-18;20-21;8-24;11-24;48-49;24-31;24-50
+1-8;8-28;17-20;17-25;33-39;9-17
+1-6;13-33;17-28;17-29;6-7;6-11;39-42;31-47;9-31;24-45
+31-45;31-46
+1-9;1-11;23-24;8-16;8-26;11-38;6-34;16-17;32-42;5-32;40-49;3-9
+1-5;1-9;8-24;17-20;33-40;9-30
+0-1;1-6;1-10;13-32;6-7;6-28;16-24;31-47;7-13;9-30
+12-13;20-21;25-26;27-28;21-31;17-25;9-30;9-19;19-20
+0-1;14-16;15-19;17-28;39-42;48-49;24-31
+1-7;14-17;8-28;31-46;32-42
+11-38;6-17;16-29;32-48;7-13
+1-6;15-18;17-18;6-28;16-24;32-48;18-23;3-9
+20-21;27-28;16-17;32-42;9-19;5-8;40-48
+1-5;15-19;8-26;11-17;6-25;6-11;9-19
+6-28;16-24;9-31;9-19;24-38
+23-24;25-26;17-18;11-38;48-49;9-19;5-8;40-48;24-31
+8-20;8-24;13-33;11-24;6-7;16-29;9-19;5-32;40-49;24-45;19-51
+1-4;1-10;33-39;31-46;24-31;24-45;3-9
+1-7;8-16;17-20;17-29;11-38;7-13;9-19
+2-3;15-19;20-22;23-24;17-28;6-8;6-17;16-17;48-49;38-43;24-45;19-20
+2-3;1-4;17-36;31-37;9-31;5-8;40-48;24-45
+0-1;2-3;1-6;14-17;17-24
+15-18;23-24;8-26;13-33;48-49;19-41
+8-26;33-40;6-25
+20-21;27-28;13-32;17-18;11-24;31-45;7-13
+1-6;8-16;8-28;13-33;17-36;11-24;24-31;3-9
+8-20;13-32;17-20;17-18;17-26;16-24;16-17;48-49;9-31;5-7
+8-24;17-28;17-26;6-8;24-38
+0-1;1-11;15-19;17-25;17-26;31-45;31-46;31-37
+1-7;17-36;11-17;6-8;9-19
+1-6;1-7;21-31;17-26;31-37;24-50
+1-7;12-13;14-17;8-16;17-20;11-38;6-34;16-24;24-38
+8-26;13-32;17-35;17-29;11-38;16-29;32-48;32-44;32-42;3-9
+15-19;8-24;6-25;38-43;5-32;18-23
+1-6;1-11;15-18;20-22;13-32;13-33;33-40;31-46;48-49;24-38
+1-5;14-16;17-20;17-24;17-25;32-42;19-51
+1-10;20-21;13-32;38-43
+0-1;12-13;23-24;8-20;8-28;17-24;16-17;32-44;24-38
+1-6;14-15;8-24;6-17;31-37;9-31;18-23;19-51
+1-11;20-22;17-20;33-40;6-25;6-34;31-46;32-42;5-32;5-7;3-9;19-20
+15-18;23-24;8-28;17-35;17-36;16-29;9-19
+14-17;8-26;11-17;16-24;16-17;32-48;19-41
+1-8;8-26;13-32;17-28;17-29;16-29;48-49
+1-6;15-19;31-45;32-44;19-41
+1-4;1-7;1-8;1-10;8-24;17-20;17-36;6-8;9-15;9-30
+1-7;15-18;16-24;31-46;40-49
+1-4;1-8;12-13;14-15;25-26;6-28;6-25
+14-16;8-20;8-28;17-24;11-17;6-11;32-42;3-9;19-41
+0-1;1-8;15-19;23-24;8-16;17-36;33-40;6-7;16-17;31-45;9-30;24-31;24-50
+1-5;8-24;18-23
+1-8;20-22;31-37;32-48;32-42;9-31;5-7;40-49;24-38;19-51
+8-24;17-18;31-45;32-48;32-44;38-43;9-19
+2-3;14-15;14-17;16-17;32-48;5-32;24-50;19-41
+20-21;11-38;6-7;6-25;6-8
+12-13;14-15;8-16;17-35;17-18;33-40;38-43;9-30;24-38;19-41;19-51
+1-6;1-10;25-26;8-24;32-42;9-15;3-9
+0-1;14-15;23-24;8-20;17-20;17-28;6-28;6-8;5-32
+0-1;15-18;17-25;7-13;9-15;9-31;24-38;19-51
+2-3;27-28;21-31;19-20
+1-5;1-7;1-9;8-28;33-40;16-24;16-17;9-15
+2-3;8-24;13-33;31-47;48-49
+14-15;14-17;8-28;17-29;11-17;6-11;9-15;5-8
+1-4;1-10;20-21;21-31;17-28;17-25;17-36;11-24;33-40;6-25;6-34;24-50
+8-26;11-24;9-20;9-19;3-9
+12-13;21-31;17-25;33-40;32-42;9-31;9-17;5-7
+1-7;1-11;15-19;16-29;31-45;32-44;9-17;24-31
+14-15;17-35;17-18;11-24;16-24
+1-8;27-28;11-24;33-40;6-8;16-17;9-17;5-8;18-23;24-31;19-51
+15-18;17-18;17-24;17-25;33-39;6-28;39-42;32-44;19-41
+1-4;1-8;17-29;17-36
+1-4;15-19;25-26;8-16;8-26;17-24;17-36;11-17;16-24;31-45;5-8;19-41;19-51
+0-1;23-24;6-25;5-32
+1-4;32-48;48-49;7-13;38-43;18-23
+12-13;14-15;20-21;17-29;39-42;32-48;32-44;24-38
+0-1;1-4;1-5;1-6;12-13;17-28;11-24;11-38;6-25;31-46
+1-6;14-16;14-17;20-22;23-24;17-25;17-26;17-36;11-24;6-17;6-34;31-37;9-19;24-31;19-41;19-20
+17-26;11-24;33-40;6-8;31-45;31-37;38-43;9-31;9-19
+1-6;1-9;15-19;8-20;8-24;17-18;17-26;31-45;32-44;9-19;5-7;24-31;19-41
+1-8;17-26;17-36;31-37;32-42;9-19
+14-15;17-28;11-17;38-43;9-17;9-19;19-41
+15-18;8-26;17-25;6-11;31-46
+1-6;1-11;20-21;13-33;6-8;6-17;16-17;7-13
+17-20;6-7;16-29;32-48;24-31;19-51
+11-24;6-11;32-48;5-32;18-23
+1-5;33-39;6-8;31-47;9-30;24-50
+0-1;20-22;11-17;6-17;31-37
+1-7;15-19;20-21;17-35;9-30;24-50;19-51
+1-7;14-16;17-20;6-7;6-11;16-29
+8-20;21-31;17-35;9-31;9-17;24-45
+1-11;8-26;16-17;19-51
+0-1;14-17;20-21;20-22;6-11;39-42;31-45;32-42;38-43;24-31
+8-28;17-18;17-25;6-17;3-9
+1-6;1-9;17-29;33-40;6-28;6-8;6-34;9-30;18-23;40-49;19-51
+23-24;8-16;13-33;17-18;6-11;31-46;31-37;9-15
+1-5;17-24;6-17;32-42;9-31;5-32
+1-4;20-22;17-18;6-7;39-42;48-49;19-20
+25-26;21-31;13-33;9-20
+1-4;1-6;1-8;17-24;17-29;11-24;11-17;6-11;7-13
+17-25;11-38;33-40;6-28;32-48;18-23;24-45;19-41;19-20
+0-1;1-4;1-7;1-8;1-9;8-20;8-16;8-26;17-36;31-46;32-48;24-45;3-9
+1-7;14-16;14-17;15-19;6-7;9-15;24-38;24-45
+1-6;14-16;23-24;33-39;6-34;38-43
+13-33;6-28;24-50
+15-18;8-28;11-38;33-40;6-7;6-11;16-24;31-45;48-49;9-17
+39-42;32-44
+8-24;13-33;16-29
+2-3;1-7;6-7;6-8;32-44;3-9
+1-4;1-9;8-16;13-32;17-36;6-28;6-8;48-49
+2-3;1-5;1-6;1-7;1-9;12-13;15-19;17-18;11-17;39-42;48-49;24-38
+2-3;1-7;1-10;20-22;23-24;8-20;8-26;21-31;17-28;17-25;11-24;11-38;6-17;6-34;24-31
+20-22;8-20;33-39;6-34;39-42;32-44;32-42;24-45
+25-26;8-24;17-24;17-29;6-17;48-49;24-31
+1-5;1-10;6-28;31-37
+15-19;8-16;17-24;16-24;32-48;9-31
+14-16;13-33;17-18;17-25;11-38;32-48;32-42;19-51
+0-1;15-18;20-22;17-29;39-42;32-48;32-44;38-43;5-32;40-49;19-20
+14-15;8-24;17-18
+12-13;8-28;33-40;32-42;5-7;18-23
+1-4;1-7;1-8;1-11;14-17;23-24;32-48
+20-21;8-26;17-18;31-45;48-49;38-43;5-8;40-48;24-31;19-20
+1-5;14-17;8-20;13-33;17-28;17-25;11-38
+27-28;17-20;17-18;16-24;31-46;40-49;24-50;3-9
+8-24;17-35;6-28;31-37;32-42;5-8;40-48;24-50
+1-4;27-28;13-32;17-24;17-26;17-36;11-17;33-40;31-45;18-23
+14-15;17-35;17-26;32-48;9-17
+27-28;8-28;17-24;17-26;17-29;11-24;11-38;31-47;9-31;5-8;40-48
+1-8;14-16;15-18;17-26;11-24;6-11;39-42;48-49;40-49
+1-7;8-24;9-30;3-9
+1-6;13-32;17-28;11-17;31-46;9-30;5-8;40-48
+14-16;14-17;17-24;31-46;5-32;24-31
+1-5;17-29;17-36;6-7;6-25;6-11;38-43;19-41
+20-22;8-16;13-32;6-17;31-37;5-7
+12-13;13-33;6-28;39-42;9-15;5-32
+1-6;1-11;8-24;6-11;7-13
+14-17;17-29;33-40;6-7;31-46;48-49;9-15;9-30
+20-21;25-26;11-17
+13-32;33-39;6-34;6-11;31-45;7-13;5-32
+1-6;15-19;8-28;8-26;21-31;17-18;17-25;16-17;31-47;32-42;18-23
+1-9;1-11;12-13;15-18;23-24;8-24;13-32;17-29;6-7;9-19;40-49;24-50;19-20
+2-3;14-16;20-21;8-20;17-18;17-24;33-40;31-46;31-37;32-48;9-19;24-31;19-51
+20-22;6-25;7-13;9-31;3-9;19-51
+2-3;13-32;13-33;16-17;32-48;9-15;9-19
+1-6;14-15;15-19;17-24;11-38;32-42;48-49;9-19
+25-26;33-39;6-7;9-19;5-32;24-45;19-51
+1-9;1-11;14-17;27-28;38-43;9-31;5-7;24-45
+21-31;32-42;7-13;24-45
+1-10;8-26;40-48
+2-3;8-26;11-24;11-17;6-17
+14-17;27-28;6-28;6-17;16-17;7-13;9-17
+0-1;1-4;1-8;15-18;8-28;17-36;31-47;48-49
+1-6;20-22;25-26;8-20;8-16;33-40;16-24;16-29;31-45;9-31;40-49;3-9
+1-5;1-11;12-13;23-24;8-26;13-33;17-20;11-24;6-11;18-23;24-50
+1-8;14-15;15-19;17-28;33-39;6-25;39-42;32-44;18-23
+13-33;11-17;5-7;24-31;24-45
+2-3;1-10;14-16;21-31;13-32;17-35;17-25;6-34;24-45
+14-16;20-22;17-28;17-25;6-7;6-25;19-20
+1-11;8-26;17-18;17-36;31-37;40-49
+1-6;14-17;8-26;17-36;16-24;9-15;9-31;19-20
+12-13;8-16;11-17;38-43;5-8;24-31
+1-9;25-26;13-32;11-24;31-45;32-44
+1-5;8-20;17-29;6-28;18-23
+1-6;15-18;23-24;8-24;33-39;6-17;6-34;32-48;48-49;5-8;24-45
+1-7;1-10;15-18;8-24;17-28;17-29;33-39;6-7;6-34;32-44;9-17;24-38;19-41
+1-7;21-31;17-24;32-48;24-45
+0-1;1-11;14-15;15-19;17-28;11-17;33-40;6-25;16-29;7-13;9-17
+12-13;20-21;17-24;17-29;9-17;5-8;24-50
+1-6;24-31
+8-28;8-24;17-24;6-7;7-13
+1-8;13-33;17-35;6-11;16-29;9-30;5-8;5-7
+1-11;14-16;20-22;8-20;17-29;33-40;32-42;48-49;38-43;9-31
+17-18;11-38;24-45
+0-1;1-5;14-17;8-20;21-31;6-8;6-11;16-17;31-37;31-47;5-8;24-31;24-45;19-41
+0-1;8-16;8-24;17-18;17-25;17-26;11-24;31-45;5-32;24-45;3-9
+12-13;14-15;17-18;11-24;48-49;24-38
+1-7;20-21;25-26;33-40;9-20;40-49
+1-4;14-15;15-18;15-19;17-26;17-29;11-24;16-29;31-46;32-44;32-42;9-30;9-17;24-45
+2-3;1-6;20-22;25-26;27-28;13-32;17-18;17-26;16-17;18-23;19-20
+1-9;25-26;8-26;17-28;17-26;9-31
+1-4;27-28;13-33;17-20;17-36;31-45;32-48;48-49;19-20
+1-5;15-19;8-16;8-24;6-17;16-29;32-48;19-41;19-51
+27-28;17-35;7-13;3-9
+0-1;23-24;8-20;33-40;6-25;31-37;38-43
+2-3;1-9;14-17;20-21;17-35;17-20;17-28;17-24;11-38;31-37;5-7;24-50;19-51
+2-3;14-16;13-32;17-36;9-17;40-48
+25-26;17-24;17-36;31-47;5-32
+0-1;1-7;27-28;8-28;6-28;32-42;24-45;24-50
+1-10;48-49;19-51
+1-6;1-7;15-18;20-21;11-24;39-42;31-45;32-42
+1-8;1-11;15-19;8-28;8-26;11-38;33-39;6-28;31-46;32-44;9-15
+20-22;6-17;6-11;38-43;5-32;5-8;24-38;3-9;19-51
+13-33;17-18;6-25;6-34;9-15;9-17
+1-6;14-17;17-28;17-25
+1-5;1-9;17-29;6-11;16-29;24-38;24-45;19-51
+14-16;25-26;11-38;40-49;19-41
+14-16;17-35;17-28;33-40;31-47;32-42
+0-1;1-11;14-17;8-16;33-39;6-11;39-42;16-24;31-46;32-44;7-13;24-38;3-9;19-41;19-51
+6-8;16-29;31-45;38-43;5-32;24-38
+14-15;15-19;23-24;8-24;8-26;17-35;17-29;24-50;19-20
+1-6;1-10;12-13;8-26;48-49
+11-38;6-25;32-48;32-42;7-13;18-23;40-49;24-38;24-31;19-20;19-51
+17-20;11-24;33-40;6-28;16-24;31-45;32-48
+24-45
+1-6;8-20;8-24;17-25;16-17;9-31;24-38;24-45
+1-4;1-5;6-8;9-19
+0-1;23-24;17-20;33-39;6-28;9-19
+1-4;14-17;17-29;17-36;6-17;48-49;9-19;40-49
+27-28;8-16;8-26;39-42;31-46;31-37;32-42;9-19;40-48;24-31
+2-3;1-8;1-11;15-19;27-28;17-29;6-7;6-25;9-20;5-7;18-23;24-31
+20-21;8-28;8-24;17-25;11-24;11-17;6-34;16-29;7-13;9-30;9-17;9-19
+1-10;17-28;11-24;33-40;6-17;31-47
+1-9;15-18;20-22;17-36;32-48;32-42;5-7;18-23
+14-16;6-7;32-48;40-49;3-9;19-51
+15-19;33-39;6-17;16-24;9-30;5-32;24-38
+8-20;21-31;17-24;17-25;5-8
+1-5;1-11;8-28;39-42;9-31;40-48
+20-21;6-17;6-34;31-46;31-47;18-23
+25-26;8-28;6-34;6-11;16-17;38-43
+0-1;14-17;15-19;21-31;33-40;5-32
+2-3;8-24;21-31;17-28;32-44;19-20
+23-24;17-25;6-17
+1-10;1-11;39-42;32-48;9-17;24-45
+1-6;15-18;17-35;17-20;17-26;11-38;31-45;31-46;32-48;5-7;18-23
+1-5;14-16;8-16;17-26;17-29;33-39;32-44;24-50
+14-16;17-28;17-26;33-40
+1-8;17-26;11-24;6-34;16-17;48-49;38-43
+1-5;20-22;8-26;17-26;3-9
+14-17;15-19;23-24;21-31;11-38;6-25;16-24;9-31
+1-6;1-7;14-15;16-29;40-48;24-45
+1-4;1-7;12-13;13-33;6-17;39-42;31-46;7-13;9-15;24-45
+2-3;1-5;17-24;11-24;7-13;19-41
+1-7;8-28;8-24;21-31;17-24;17-25;33-39;32-44;18-23;24-31;19-41
+1-4;15-19;20-22
+1-5;14-17;20-21;6-28;6-17;31-47;48-49
+14-15;15-18;25-26;17-36;6-7;6-25;6-8;6-34;6-11;9-15;19-51
+23-24;8-28;17-36;39-42;31-45;31-46;40-49
+1-10;14-15;8-24;8-26;16-17;32-48;32-44;38-43;9-15;5-7;18-23;24-50
+14-16;8-16;17-25;6-11;16-24;32-48;19-41;19-20;19-51
+12-13;23-24;13-33;11-38;6-7;6-28;31-37;9-17;5-8;24-31
+27-28;17-20;17-36;16-17;38-43;9-17;40-48;24-38;24-50
+1-5;1-9;17-24;6-25;31-45;48-49;9-15;40-49
+1-10;20-22;8-20;17-25;16-17;31-45;31-46;9-20;5-8
+1-11;14-15;18-23;19-41
+14-17;8-16;17-24;6-7;6-28;6-34;9-15;40-48;24-38
+14-17;13-33;17-28;11-38;33-40;6-34;24-45
+15-18;20-21;24-45
+0-1;8-16;6-28;16-29;32-42;38-43;5-7;40-49;24-45;24-50;19-41
+1-6;14-15;14-16;21-31;7-13;40-48;24-45;3-9
+1-5;1-7;14-16;20-22;19-41
+1-7;14-15;23-24;25-26;16-24
+17-29;7-13
+14-15
+1-8;14-16;25-26;8-26;21-31;17-24;17-26;17-29;33-39;6-7;6-34;16-29;9-17
+0-1;2-3;1-8;12-13;14-17;20-22;8-20;8-24;17-28;17-25;6-28;6-17;40-49
+17-18;32-44;32-42;38-43;9-30;24-45
+1-4;1-8;1-10;8-26;17-24;17-29;11-24;33-40;31-45;24-45
+1-4;15-19;8-26;13-33;17-35;6-25;16-24;31-37;48-49;18-23;24-50
+15-18;23-24;8-28;17-24;39-42;31-37;9-17;5-32
+1-4;1-5;27-28;8-24;17-35;17-36;16-17;32-42;9-31;19-20
+21-31;17-25;17-29;31-47;32-44;9-30;24-50;19-51
+8-16;17-35;17-20;11-38;33-40;6-11;5-7;40-48
+12-13;14-16;15-19;20-21;17-28;6-34;16-17;32-42;18-23;24-31
+1-6;1-10;14-16;14-17;6-28;6-25;6-8;39-42;32-48;7-13;3-9;19-51
+1-11;23-24;17-26;9-31;9-17
+8-24;17-36;6-11;32-48;48-49;40-48;40-49
+25-26;8-20;8-26;13-33;17-20;17-29;33-39;32-44
+20-21;25-26;11-38;6-8;31-37;7-13;9-17;24-45;19-51
+1-6;6-11;40-48;24-31;19-41
+15-18;20-22;11-17;39-42;38-43;9-19
+0-1;14-15;8-28;6-17;6-34;16-29;16-17;9-19;3-9;19-41
+17-26;6-34;32-44;9-19;3-9
+1-6;17-24;17-26;33-40;31-47;48-49;9-19
+21-31;17-26;6-28;6-17;9-19;5-8;24-38
+20-22;8-20;13-32;13-33;17-20;17-26;17-29;6-7;39-42;31-45;5-32;5-7;19-41;19-20
+0-1;1-8;15-18;8-24;17-20;17-26;6-25
+1-9;15-19;17-18;17-26;16-24;31-37;5-7
+1-5;1-6;1-11;14-16;23-24;17-28;17-25;11-24;31-46;31-47;9-17;5-8;18-23;40-49;24-38;24-50;19-20
+14-15;17-18;11-24;11-38;33-40;16-17;9-31;3-9
+14-17;20-21;27-28;17-20;17-29;6-7
+8-28;17-18;6-34;39-42;48-49;24-50
+0-1;15-18;8-24;21-31;33-39;16-17;5-32
+1-4;1-10;25-26;17-18;17-25;11-17;6-11;40-49;19-51
+14-15;13-33;11-38;6-25;16-24;24-50
+2-3;1-4;8-20;8-16;8-26;17-18;6-8;16-17;7-13;5-8
+2-3;20-22;21-31;31-46;5-7;19-41
+1-4;1-6;15-18;8-28;8-26;11-17;6-11;16-17;31-45;9-31
+2-3;1-9;17-18;17-26;17-36;33-40;6-17;24-45;3-9
+2-3;8-28;8-24;17-18;17-36;16-29;5-32;24-38;24-50
+23-24;17-28;17-25;6-34;40-49
+17-25;32-44;9-30
+1-8;1-11;14-17;8-16;6-25;31-45;38-43;9-31;24-38
+14-15;20-21;20-22;27-28;6-28;31-46;48-49;3-9
+2-3;1-5;1-7;15-18;8-24;13-33;33-40;24-45
+2-3;1-7;14-15;27-28;11-24;9-15;18-23;24-38;24-45
+8-28;8-26;11-24;11-38;31-45;32-44;9-30
+1-11;6-17
+15-19;17-24;11-17;6-34;16-29;31-46;7-13;19-20
+2-3;20-22;17-29;11-38;6-7;16-29;40-49;24-45
+8-24;16-24;31-37;32-42;9-17;5-32
+1-8;14-15;23-24;6-17;48-49;9-30;18-23;3-9
+1-6;17-20;17-29;31-37;9-17
+1-10;1-11;14-15;13-33;33-40;6-28;32-48;19-51
+8-16;11-24;6-7;6-11;16-29;31-46;9-31
+15-18;20-21;8-24;8-26;11-17
+8-26;17-35;31-45;38-43;19-51
+14-16;25-26;8-20;17-28;11-38;6-34;6-11;31-47;32-44;32-42
+13-32;13-33;6-11;16-17
+1-9;20-22;39-42;24-45
+1-7;14-15;8-28;17-18;17-25;24-45
+1-4;8-24;6-28;32-44;24-31;24-45;24-50
+12-13;23-24;11-38;6-11;18-23;24-45
+0-1;14-17;11-24;6-25;32-48;9-15
+1-7;1-10;15-19;8-26;13-32;31-47
+1-7;20-22;25-26;6-34;6-11;39-42;19-20
+1-5;25-26;8-24;21-31;17-18;16-24;16-17;48-49
+15-18;8-20;17-36;33-40;5-7;19-20
+12-13;14-16;17-18;17-25;6-11;5-32;40-49
+6-25;16-17;9-15;19-41
+13-33;17-29;6-17;31-46;31-37;9-17;24-45
+1-7;17-20;6-8;6-17;16-17;32-48
+0-1;1-10;20-21;8-24;13-32;17-28;17-26;6-11;9-15;24-45;19-41;19-51
+1-5;14-17;17-20;17-24;17-26;33-40;32-42;9-31;3-9
+0-1;14-15;14-17;25-26;17-25;17-26;16-24;31-46;38-43;9-15;5-32
+1-10;8-16;17-18;6-8;6-34;7-13
+12-13;13-32;13-33;11-17;6-25;39-42;9-15;24-31;19-41
+1-6;1-11;8-20;8-24;6-7;6-17;48-49
+1-9;15-18;21-31;11-24;31-47;32-44;7-13;5-7
+15-19;11-24;6-11;31-46
+8-16;17-25;6-17;16-17;9-15;5-32;40-49;19-41
+25-26;13-33;17-18;16-24;32-44;9-30
+1-5;14-15;14-17;25-26;8-20;9-31
+17-28;33-39;31-45;32-48;9-30;9-19;5-8
+14-16;23-24;8-26;6-8;6-17;39-42;16-17;9-19;18-23;24-38;19-51
+0-1;1-4;1-5;1-7;14-17;15-19;33-40;31-37;31-47;9-17;9-19;19-41;19-20
+1-7;1-10;17-25;16-24;9-19;5-32;40-49;24-31
+1-4;14-15;6-7;6-17;32-44;9-30;9-19;3-9
+25-26;31-45;32-42;48-49;5-7;19-20
+2-3;15-18;18-23;19-41
+1-11;21-31;9-31;24-50
+20-21;8-28;17-35;11-17;6-7;6-34;9-15;19-41
+1-5;8-26;17-24;17-36;6-8;31-45;32-48;32-44;9-30;5-32
+1-4;20-21;23-24;8-16;17-36;33-39;6-34;38-43;9-15;5-7
+13-32;17-35;33-40;32-48;5-8;24-31;24-50
+12-13;14-16;23-24;11-38;16-17;18-23;3-9
+0-1;1-6;14-17;8-16;13-32;6-28;32-42;48-49;9-17;19-41
+2-3;8-20;17-28;9-31;5-8;40-49
+2-3;1-8;20-22;21-31;11-17;32-44;38-43;9-15;19-41
+13-33;33-39;33-40;31-47
+1-7;14-17;11-38;6-7;6-34;39-42;16-24;9-15
+1-11;12-13;15-18;13-32;17-25;5-7;3-9
+1-8;27-28;8-26;17-28;6-17;31-45;19-51
+2-3;8-16;8-28;11-17;6-17;31-37;32-42;5-32;18-23
+1-9;1-10;15-19;8-26;17-29;11-17;16-29;7-13;9-17;18-23;24-50
+2-3;27-28;8-24;17-35;17-18;6-7
+2-3;8-20;39-42;16-17;19-20;19-51
+1-11;17-35;17-18;17-24;6-17;31-45;31-46;9-15;24-38
+1-9;12-13;8-20;6-28;32-48;32-42;7-13;3-9;19-20
+14-16;15-19;13-32;17-24;6-25;6-34;32-48;38-43;9-31;40-49;19-51
+1-5;14-15;14-17;8-24;11-17;33-40;24-38;24-50
+1-4;13-32;13-33;11-38;39-42;31-47;32-42;48-49
+2-3;1-4;1-7;14-15;15-18;20-21;20-22;6-28;6-8;31-37;9-17;19-51
+1-7;1-9;15-19;23-24;25-26;31-37;5-32;24-38
+1-7;1-9;21-31;16-24;5-7;24-31
+0-1;1-4;1-11;17-20;9-30;5-32;24-31;3-9;19-51
+8-20;17-29;17-36;6-28;31-37;32-44;5-32;40-48;24-45
+23-24;27-28;13-33;17-28;17-24;11-38;6-34;16-17;7-13;24-31;3-9
+21-31;17-35;17-18;17-26;6-34;6-11;31-37;19-51
+1-7;14-16;8-16;17-20;17-26;11-17;6-7
+1-7;1-11;15-19;20-21;20-22;25-26;8-28;17-26;17-36;11-24;6-25;16-17;9-30;18-23;40-49;24-38
+1-7;17-26;11-24;6-11;31-46;9-31;5-32;19-51
+1-5;1-9;14-17;33-40;6-8;39-42;48-49;9-15;3-9
+2-3;1-10;14-16;15-18;6-28;40-48;19-20
+8-16;33-39;24-31
+1-6;1-11;12-13;8-20;13-33;17-28;11-17;7-13;9-30;18-23;19-20
+27-28;17-24;31-47;48-49;19-20
+21-31;16-24;31-45;32-44;32-42;9-30;24-38
+25-26;8-20;8-28;17-20;11-38;6-7;32-48;19-20
+6-17;16-29;32-48
+2-3;1-6;15-19;8-26;48-49;5-7;40-48
+2-3;1-11;14-15;21-31;17-28;9-30;18-23
+2-3;14-17;20-21;27-28;6-17;31-46;31-47;5-8;24-31
+17-35;6-28;6-25;39-42;9-31
+0-1;1-9;1-10;12-13;8-28;6-8;16-24;7-13
+14-16;15-18;15-19;25-26;8-20;17-35;17-29;6-17;32-44;9-15
+1-4;1-5;1-6;14-15;20-22;11-24;33-40;18-23;24-38;19-51
+12-13;14-15;6-28;6-11;39-42;16-24;31-37;9-15;9-20;5-8;24-50
+17-35;11-24;6-7;9-17;40-48;3-9
+1-4;1-7;23-24;17-24;6-17;31-47
+1-7;20-21;8-16;8-26;13-33;17-35;17-20;6-8;16-29;31-37;9-15;5-32;5-8;5-7
+1-7;15-19;17-36;11-17;6-28;39-42;31-46;48-49
+27-28;8-24;17-35;17-28;6-17;16-24;16-17;32-42;18-23;24-31
+25-26;7-13;19-20
+1-5;1-11;14-15;20-21;25-26;27-28;8-28;17-20
+0-1;8-20;8-16;11-24;16-29;9-31;9-19;24-50;19-41;19-20
+14-16;15-18;17-25;17-36;39-42;16-24;31-46;9-15;9-19;5-32
+1-8;14-16;8-20;17-18;17-25;17-36;31-45;38-43;9-17;9-19;19-41
+23-24;8-16;13-33;17-20;17-18;6-8;9-30;24-50
+15-18;8-16;17-28;17-24;17-29;16-29;19-20
+8-28;13-33;17-20;31-37;32-48;9-19
+1-8;1-11;23-24;8-26;17-18;32-48;9-19
+12-13;15-19;21-31;17-24;33-40;6-28;16-24;16-29;38-43
+1-5;14-15;17-18;6-8;6-11;39-42;31-46;5-7;40-48;19-41
+1-6;1-10;20-22;8-24;17-25;11-24;31-45;31-47;18-23
+14-17;17-18;11-24;38-43
+1-7;1-11;15-19;6-11;16-29;7-13;40-48;19-51
+2-3;1-8;20-21;33-40;16-17;48-49;5-32
+2-3;1-6;15-18;8-20;8-16;13-33;33-39;6-17;39-42;31-46;31-47;9-31;24-31;24-45
+2-3;1-5;1-8;12-13;14-16;20-22;8-28;8-24;8-26;21-31;32-48;9-17;24-45;19-41
+1-5;1-9;14-15;17-20;11-38;33-39;9-15;18-23
+14-15;25-26;11-38;6-34;32-48;24-45
+1-10;6-28;16-24;16-29;40-49
+1-4;1-6;14-15
+2-3;1-4;14-17;17-25;24-38;24-31;19-20
+2-3;1-9;27-28;32-44;48-49;9-31;9-30
+2-3;1-4;1-9;12-13;15-19;17-28;17-24;11-38;16-24;16-29;32-42;38-43;5-7;24-50
+1-6;8-20;13-33;17-26;33-39;6-25;19-20
+25-26;17-26;11-17;31-45;9-17;18-23
+1-7;1-10;14-17;23-24;25-26;17-26;6-7;6-8;24-45
+1-5;1-7;15-18;15-19;17-20;17-25;17-26;31-47;32-44;32-42;9-30;24-45
+1-6;1-11;25-26;11-17;6-11;31-47;9-20;9-30;5-8
+1-6;1-9;1-11;8-28;17-36;6-28;16-29;5-8;24-31
+1-10;14-16;21-31;48-49;40-49
+14-16;20-21;20-22;17-18;11-17;33-40;6-7
+17-20;11-24;6-17;32-48;5-8;3-9
+25-26;17-18;11-24;6-28;16-24;16-29;16-17;32-48;32-44
+23-24;25-26;17-35;31-37;38-43;9-31
+20-21;8-20;8-16;8-26;6-7;39-42;5-8;19-41
+14-17;20-22;13-33;17-35;17-20;6-17;9-15;5-7;24-31
+1-5;1-8;14-15;5-7;19-41
+21-31;31-45;9-15;5-8;3-9
+1-10;8-28;17-35;6-34;16-17;9-15;9-30;3-9
+1-7;1-8;15-18;17-24;11-38;6-7;31-47;18-23;24-50
+1-7;27-28;8-16;8-28;17-20;17-28;39-42;9-31;40-48
+1-11;23-24;25-26;21-31;17-24;33-40;9-17;5-8;24-31
+27-28;11-17;32-42
+2-3;1-6;1-9;17-28;17-24;16-24
+0-1;14-16;14-17;27-28;8-24;17-25;17-29;11-24;6-28;6-34;38-43;5-8;19-51
+1-4;8-20;8-26;11-24;6-8;5-32
+14-15;33-40;32-44;32-42;40-48
+1-6;8-16;13-33;11-17;5-8;18-23;40-49;19-51
+1-4;1-9;25-26;17-18;17-28;17-29;33-39;6-25;6-8;6-17;39-42;48-49
+0-1;17-29;11-24;6-25;9-17
+1-9;12-13;15-18;15-19;20-22;8-24;9-17;5-7;40-48
+1-11;20-21;17-18;31-47
+17-35;33-40;7-13;24-50
+0-1;17-29;6-34;16-24;18-23;40-48
+1-5;8-20;21-31;17-36;11-17;6-28;39-42
+1-8;20-21;8-24;17-36;16-29;38-43;19-41
+12-13;13-33;11-38;48-49;5-32;40-48
+1-8;14-16;21-31;17-24;33-39;33-40;16-24
+1-11;14-16;14-17;15-19;11-24;31-37;32-42;9-15;9-31
+1-10;14-17;23-24;8-16;8-28;39-42;24-38;19-41
+33-40;6-28;6-17;16-24;31-37;38-43;9-31
+1-9;8-24;31-37;7-13;19-20
+15-18;6-34;6-11;16-24;32-42;24-31;19-41
+17-29;31-47;32-48;5-7;24-38;19-20
+1-8;15-19;27-28;33-39;6-28;32-48;7-13;9-30
+8-20;17-35;11-24;6-8;6-17;6-11;31-45;31-46;32-44;9-15;9-30
+27-28;8-24;17-28;11-24;16-29;32-42;9-19;24-38
+1-10;20-21;8-28;17-35;17-25;17-29;11-38;31-47;9-17;9-19
+6-28;6-17;9-17;9-19;24-45;3-9;19-41
+0-1;20-22;17-18;16-17;38-43;9-19;24-38
+1-4;14-16;21-31;6-34;16-29;31-46;32-44;9-30;9-19;40-49
+1-8;11-38
+1-4;14-16;20-21;17-26;48-49
+15-19;17-26;11-38;24-38
+1-7;15-18;20-22;17-26;33-39;6-25;31-45;32-42;9-17
+1-4;1-5;1-7;1-10;23-24;17-20;17-28;17-26;24-31
+1-7;8-20;17-24;40-49;19-51
+1-9;12-13;13-33;17-25;31-37;9-31;5-32;5-7
+0-1;14-17;23-24;24-45
+21-31;17-20;11-24;48-49;7-13;19-20;19-51
+1-8;17-28;17-36;6-7;6-28;6-25;16-17;19-41
+1-11;15-19;8-16;17-35;17-36;5-32;18-23;24-50;19-20
+14-17;27-28;17-18;31-45;31-47;40-49;24-38
+1-10;14-17;21-31;33-39;16-24;9-17;19-41;19-51
+12-13;20-22;17-35;31-46;9-31;9-17
+14-16;15-18;8-20;17-25;33-40;6-7;6-8;32-44;24-50
+0-1;23-24;17-35;31-37;32-42
+1-11;8-16;6-11;38-43;24-45
+1-7;20-21;17-18;6-8;5-32;40-49;24-45
+1-7;20-22;25-26;13-33;11-38;33-39;6-7;31-46;24-45;19-41
+1-10;12-13;6-11;39-42;3-9
+14-15;7-13;5-7
+0-1;1-9;20-21;17-35;11-24;6-7;6-28;31-37;32-44;5-32
+15-19;13-33;17-28;17-25;24-50
+14-15;20-22;23-24;8-26;17-29;6-11;16-29;32-42
+1-6;27-28;8-24;17-35;17-24;17-25;11-38;6-17;7-13;9-15
+15-19;8-20;21-31;33-40;6-25;39-42;16-17;9-31;18-23;24-31
+1-4;15-18;25-26;17-35;11-17;16-24;40-48;24-38
+1-4;1-9;1-10;25-26;17-29;6-34;32-44;32-42;38-43;9-30;24-45;24-50
+1-6;14-16;11-24;16-29;24-45;19-20
+1-4;15-19;8-24;11-24;40-48;40-49;24-38
+0-1;1-4;1-8;23-24;8-16;8-28;13-33;17-28;6-7;31-37;31-47;32-48;24-31;19-20
+1-5;17-29;11-17;6-28;31-46;31-37;9-31
+1-6;1-8;20-22;8-26;16-29;32-44;9-15;9-30;40-48;24-38
+2-3;12-13;23-24;25-26;27-28;17-20;11-24;32-44;48-49;24-50
+1-9;6-8;5-8;3-9
+1-10;25-26;8-24;6-7;6-25;31-45;40-49
+14-17;8-20;8-16;17-18;17-28;17-29;17-36;6-28;6-34;16-17;48-49;7-13;40-48;24-38
+1-6;15-18;6-8;31-46;5-8;19-41;19-51
+20-21;20-22;17-18;17-24;11-17;16-29;32-44;9-30;5-32
+1-5;1-9;15-19;16-17;32-48;9-15;9-17
+12-13;8-24;17-24;11-38;6-17;31-37;3-9;19-51
+1-6;14-16;23-24;8-16;21-31;33-40;6-25;38-43;40-49
+27-28;31-46
+11-17;33-39;48-49;24-50;19-51
+2-3;1-7;1-11;14-16;27-28;13-32;17-29;40-48;19-20;19-51
+0-1;2-3;1-9;14-15;8-24;21-31;33-39;16-17;32-42;9-17;24-38
+14-17;6-8;31-46;32-48;24-50
+8-28;11-38;33-39;32-48;9-17;40-48;24-38
+1-11;15-19;20-21;11-38;6-7;31-37;9-15;5-32;24-45;19-20;19-51
+14-15;17-28;17-25;7-13;19-20
+1-9;15-18;27-28;11-17;33-40;38-43;40-48;24-38;3-9
+1-10;14-15;25-26;8-16;8-28;21-31;17-26;6-25;31-46;9-31;19-20
+8-26;13-33;17-20;17-26;48-49;7-13;24-31
+1-4;15-19;20-22;17-26;33-39;32-44;38-43
+1-4;1-7;1-8;12-13;21-31;17-26;6-17;39-42;9-15;5-32;18-23
+0-1;1-7;1-9;14-17;17-18;31-47;9-17
+15-18;11-38;31-45;9-31;5-32
+0-1;1-4;1-8;14-16;8-20;8-16;17-35;17-20;11-17;9-17;5-7
+23-24;17-18;11-38;6-25;6-8;6-17
+8-28;11-38;6-28;6-17;19-41
+1-5;20-21;39-42;48-49;9-19;18-23;40-49;24-31
+14-15;14-17;13-33;17-20;9-15;9-19;5-8;24-50
+1-9;1-10;15-18;8-16;8-26;17-36;33-39;16-24;9-19
+6-34;6-11;9-31;9-19;19-41
+33-40;6-25;31-45;32-44;9-19;24-50
+27-28;8-28;17-29;9-15;18-23;40-49
+2-3;6-11;16-24;16-17
+14-16;11-17;6-25
+1-7;8-20;21-31;6-25;16-29;31-47;32-42;48-49;5-8
+1-7;1-11;12-13;17-36;6-28;19-20
+14-17;8-24;9-31
+1-5;1-6;14-16;8-16;8-28;8-26;6-34;5-8;5-7;3-9;19-20
+27-28;16-29;31-47;32-44;9-30
+13-33;17-35;16-24;9-30
+27-28;17-18;16-17;5-8;18-23
+1-8;15-19;8-24;6-28;32-42;24-50
+1-11;27-28;21-31;17-25;11-24;6-25;31-45;9-31
+1-6;8-20;17-25;31-47;9-15;18-23
+1-5;1-7;14-16;20-22;17-20;32-48;7-13;24-38
+0-1;27-28;8-16;17-20;17-24;24-31
+33-39;33-40;39-42;16-29;31-46;48-49;9-15
+14-16;23-24;27-28;8-26;17-24;6-34;9-30
+1-10;14-16;8-26;13-32;11-24;6-17;6-11;9-15;9-30
+1-4;1-5;14-17;27-28;17-24;32-48;7-13;9-31
+15-19;25-26;32-48;5-32;40-49;24-31
+15-18;20-21;6-17;39-42;16-29;31-45;31-46
+1-6;11-38;9-15;5-7;3-9;19-51
+1-9;17-35;6-28;32-42;9-17
+1-7;1-11;15-19;8-20;8-28;21-31;13-33;17-18;33-39;24-50
+20-21;8-20;8-26;17-36;32-44;24-31
+1-7;1-10;11-24;6-34;16-24;31-45;31-47;38-43;19-20;19-51
+11-17;33-40
+1-8;25-26;8-26;17-36;11-38;6-28;32-42;18-23;24-31;19-20
+0-1;1-6;12-13;14-15;25-26;17-36;31-46;19-51
+1-5;17-29;39-42
+14-15;20-22;8-16;13-32;11-24;6-17
+1-11;14-16;23-24;17-35;17-20;17-28;11-17;33-39;16-24;32-44;5-7;19-41;19-51
+1-6;1-10;15-18;15-19;21-31;13-32;31-37;38-43;24-31
+17-35;17-29;6-17;31-45;31-46;7-13
+12-13;6-34;31-47;32-42;48-49;5-32;19-51
+1-9;8-24;33-40;31-46;38-43
+20-22;25-26;8-16;8-26;13-33;17-20;17-26;16-24;18-23
+0-1;1-6;1-11;17-28;17-24;17-26;33-40;32-44;9-31;40-49;24-50;3-9
+1-7;14-17;15-19;27-28;17-35;17-26;11-38;6-7;48-49
+0-1;1-7;8-16;33-39;16-24;31-45;38-43
+1-7;1-9;1-11;17-35;11-17;33-40;6-8;6-17;6-11;16-29;32-44;19-41
+1-4;14-15;13-33
+2-3;1-4;6-7;6-34;7-13;40-49;19-41;19-20
+2-3;1-5;1-10;14-15;25-26;6-25;6-8;6-11;16-24;24-50
+1-4;12-13;8-20;21-31;17-24;31-37;32-48
+1-9;23-24;8-28;8-26;16-29;32-48;32-44;48-49;9-30;19-20
+2-3;15-19;23-24;17-28;6-28;48-49;9-15;5-7;24-38
+1-9;14-16;11-17;5-7;24-50;19-41;19-51
+1-5;1-11;27-28;8-28;17-36;6-25;6-11;31-37;7-13
+20-22;23-24;8-16;8-24;17-35;11-38;32-44;48-49;9-30;18-23;24-50
+0-1;27-28;13-32;6-28;6-34;32-42;38-43;9-30;5-8;24-31;24-50
+1-6;25-26;6-11;16-24;7-13;3-9;19-41
+8-20;8-28;13-32;6-7
+12-13;15-19;20-22;39-42;31-46;5-8;19-41
+1-10;14-17;8-20;8-26;17-29;17-36;11-38;33-40;6-28;6-11;31-45;32-48
+1-6;15-18;33-39;16-24;32-48;9-30
+14-15;23-24;21-31;17-28;6-7;31-37
+0-1;17-20;17-25;11-17;6-17;39-42;16-29;9-31;18-23;3-9;19-20
+1-9;13-32;17-25;33-39;6-11;16-17;18-23;24-31;3-9
+1-7;1-11;9-19;19-51
+1-7;14-17;8-16;11-38;6-34;31-45;7-13;9-19
+12-13;20-21;11-17;6-7;6-8;16-17;9-31;9-19;24-45
+1-10;17-35;17-28;31-47;9-19;24-45;19-20;19-51
+17-25;9-19;24-45
+1-11;14-15;8-20;21-31;13-33;17-35;31-45;32-48;48-49;9-17;5-8
+1-5;20-21;11-38;6-7;16-24;31-37;5-32;40-49;24-31;3-9;19-51
+15-18;25-26;8-28;17-35;17-24;6-8;32-44
+23-24;25-26;27-28;11-17;38-43;5-8
+33-39;6-8;31-47;9-17;40-49
+2-3;1-4;15-19;17-24;33-40;6-34;16-17;24-38;24-50
+0-1;2-3;12-13;14-16;20-22;17-18;17-25;6-8;5-7
+14-16;17-24;11-24;9-15;5-8;5-7
+1-7;1-8;11-24;48-49;7-13;24-38
+1-5;1-7;1-10;8-20;8-26;13-33;9-31;9-17;24-31;24-50;3-9
+15-19;8-20;8-26;17-18;17-29;6-25;38-43;40-48
+17-25;17-36;6-7;39-42;16-17;32-48;9-17;5-8;24-31;24-50
+14-17;8-28;8-24;21-31;17-18;17-24;6-34;32-48;32-42;40-49
+1-5;1-11;14-15;15-18;27-28;13-32;7-13;38-43;19-51
+1-6;1-7;1-9;13-33;17-18;31-47;9-31;24-45;24-50
+1-4;1-5;14-15;23-24;17-24;17-36;32-44
+1-7;12-13;13-32;17-36;24-45;3-9
+0-1;1-8;8-28;17-36;6-25;39-42;32-42;7-13
+25-26;8-24;33-39;6-11;19-20
+25-26;8-20;8-16;17-26;33-40;16-29;32-44
+12-13;27-28;17-26;7-13;9-15;9-30;40-48;19-51
+1-6;1-11;14-17;20-22;21-31;17-25;17-26;6-17;38-43;9-31
+23-24;17-20;17-26
+1-5;11-24;16-29;31-37;24-45
+1-7;1-9;31-47;32-42;5-32;24-31;24-50
+1-6;15-18;20-21;17-35;33-39;6-25;9-30
diff --git a/examples/failures/failures-0.1 b/examples/failures/failures-0.1
new file mode 100644
index 0000000..08cb6a4
--- /dev/null
+++ b/examples/failures/failures-0.1
@@ -0,0 +1,1000 @@
+17-18;17-25;17-36;11-17;7-13
+1-7;12-13;14-16;21-31;33-39;9-17
+1-4;14-16;25-26;17-35;6-8;16-17;31-46;32-42;38-43;9-19
+20-21;23-24;8-20;17-20;11-38;6-28;9-19;19-51
+1-6;27-28;8-28;21-31;17-36;31-45;31-37;9-19;40-49;24-38
+1-11;8-26;13-32;17-18;17-28;6-25;16-17;31-45;32-42;9-19;5-32;24-50
+20-21;20-22;25-26;17-36;6-34;16-29;31-45;31-47;32-44;9-15;9-19;24-45
+2-3;15-18;20-22;25-26;27-28;6-28;6-8;6-17;6-34;7-13;38-43;9-31;9-19
+1-10;20-22;17-25;33-40;16-29;32-48;5-32
+1-11;14-15;20-21;20-22;8-28;17-35;17-28;11-24
+0-1;14-16;20-22;27-28;13-33;17-18;16-29;24-50;3-9
+20-22;23-24;11-38;11-17;31-47;32-42;5-32
+14-15;14-16;20-21;20-22;11-17;33-40;6-7;6-17;16-24;16-29;38-43;9-17;40-49;19-51
+1-4;13-32;11-24;11-38;6-7;16-24;7-13;9-30;9-19;40-48
+20-22;27-28;8-16;21-31;31-37;5-8
+20-22;17-35;33-39;16-29;5-32;24-31
+15-18;20-21;17-18;17-25;17-26;33-39;48-49;19-41
+12-13;27-28;13-32;17-26;17-29;6-28;6-25;16-17;9-31;24-31
+8-16;17-24;17-26;6-8;6-17;5-32
+2-3;1-6;20-21;25-26;17-29;7-13
+1-10;27-28;8-26;17-35;6-11;32-48;9-15;5-7;19-51
+0-1;17-18;17-24;17-29;6-28;6-8;7-13;5-32;5-8
+2-3;1-7;20-21;8-16;16-24;16-17;9-17;5-7;40-49
+23-24;27-28;21-31;17-20;11-24;6-17;32-42;9-30
+1-4;14-15;17-20;17-25;6-7;9-17;19-41
+1-8;15-19;17-24;6-25
+15-19;20-21;8-20;17-35;17-25;11-24;9-30
+1-5;15-19;8-20;8-28;13-33;17-18;6-34;9-31;19-41
+14-15;17-28;6-34;6-11;48-49;9-30;24-38;3-9;19-20
+1-7;1-9;1-10;20-21;13-32;5-8;19-20
+1-4;1-8;17-20;32-42;38-43;9-30;19-20;19-51
+1-4;1-9;14-16;17-35;33-40;6-7;6-28;40-49;24-31;24-45;19-20
+14-15;15-19;11-38;11-17;39-42;31-37;31-47;38-43
+1-9;12-13;14-16;21-31;7-13;24-31
+1-7;15-18;17-28;11-17;6-7;32-44
+1-4;1-8;8-24;21-31;17-28;11-24;6-17;6-34;9-31
+6-17;16-24;7-13;40-49;19-41
+1-5;11-24;6-8;6-11;39-42
+1-9;17-18;11-17;31-45;19-41;19-51
+17-28;11-24;6-28;6-25;32-42;24-50
+14-17;11-24;16-17;31-47;48-49;18-23;40-48
+1-8;1-10;1-11;14-17;23-24;13-32;38-43;5-7;40-49;24-50;19-41
+1-5;14-17;17-36;11-24;16-24;32-48;32-42;9-17;18-23
+0-1;14-15;14-17;15-18;21-31;13-33;17-20;17-18;17-25;48-49;5-7;24-38
+25-26;8-28;17-36;6-25;31-37;32-48;18-23;3-9
+1-11;13-33;6-28;31-47;7-13;3-9
+0-1;6-34;31-46;32-48
+14-15;17-29;17-36;6-8;38-43;18-23;24-45;24-50
+1-9;27-28;6-7;31-47;24-45
+12-13;17-18;17-29;17-36;6-17;6-34;32-44;32-42;9-15;18-23
+2-3;1-6;1-7;1-11;8-20;8-28;8-26;6-7;6-28;40-49;24-31
+8-20;8-26;9-31;24-38
+14-16;8-16;16-24;16-17;31-46;9-17;24-50;19-41
+1-10;15-18;23-24;21-31;13-32;17-25;32-44;9-19
+14-15;15-19;27-28;8-24;17-20;17-26;6-11;16-29;9-15;9-17;9-19;40-48;24-38;24-50
+15-19;20-21;17-26;6-34;31-37;38-43;9-30;9-19;24-45;19-51
+0-1;1-10;15-19;21-31;17-35;17-26;6-28;6-8;16-29;9-31;9-19;3-9
+1-5;23-24;17-35;31-37;38-43;40-49
+1-7;1-8;14-15;8-20;8-26;13-32;13-33;32-48;7-13;9-30;9-19;5-8;3-9;19-41
+1-5;8-20;8-24;8-26;16-24;16-29;48-49;19-20
+15-19;13-32;13-33;17-18;17-28;6-28;6-17;16-29;7-13
+1-5;15-19;6-8;31-46;32-42;9-31
+2-3;14-15;15-18;15-19;23-24;13-33;17-24;16-24;16-29;32-44;5-7;24-45;3-9
+1-7;21-31;17-35;11-17;6-11;9-15;9-17;40-48;3-9;19-41
+14-16;25-26;31-45;32-42;9-30;9-17;40-49
+1-10;1-11;17-36;6-7;31-45;9-15;5-8;24-50
+2-3;1-5;8-16;21-31;17-25;9-31;9-30
+0-1;12-13;8-24;17-20;17-36;11-17;33-40;6-17
+8-20;16-29;32-42;5-32;5-8;24-38;24-31
+12-13;17-24;17-29;11-17;16-24;9-15;24-31;19-41
+1-11;14-15;8-28;13-32;17-36;11-17;6-25;6-11;32-48;7-13;40-48;24-38
+8-16;17-29;6-28;6-8;32-42;48-49
+1-7;8-24;17-24;5-7
+14-15;8-26;17-29;6-17;5-8;40-49;19-51
+1-5;1-11;23-24;8-26;13-33;11-24;5-7;3-9
+8-16;8-28;17-24;9-17;3-9
+25-26;8-24;21-31;13-33;17-28;17-25;11-24;6-34;31-37;31-47;32-44
+14-17;8-28;11-24;6-28;31-46;31-37
+14-17;20-21;27-28;17-18;17-28;5-32;18-23;40-49;24-50
+8-20;8-16;8-28;8-24;17-28;33-40;9-15
+1-7;1-8;14-17;21-31;17-25;11-24;39-42;5-8
+15-18;8-24;17-28;32-44;5-8;19-51
+27-28;8-26;17-35;17-24;11-38;6-7;16-17;31-46;7-13;5-32;5-7;24-45
+20-22;23-24;8-20;33-39;32-42;9-15;40-49
+14-15;15-19;17-18;17-36;6-8;6-34;39-42;31-47;5-7;40-48
+1-8;1-11;15-19;8-16;8-24;17-20;17-24;16-24;9-15;18-23;19-41
+12-13;23-24;13-32;17-36;6-17;31-46;32-42;48-49;9-31;3-9
+12-13;17-35;6-25;16-17;31-37;38-43;9-30;18-23;40-49;24-31
+17-24;17-36;33-39;6-11;39-42;24-38;19-51
+1-6;1-10;1-11;8-16;8-24;21-31;17-18;17-25;33-39;31-45;31-47;48-49;9-30;24-45
+1-8;8-20;8-26;13-33;17-29;16-29;31-46;40-48
+1-5;8-20;13-33;17-36;11-38;31-45;31-46;19-20
+0-1;8-20;17-20;6-28;6-17;31-45;9-30;40-48;19-20
+1-10;17-26;17-29;39-42;32-42;38-43;19-20
+1-11;8-16;17-26;11-24;7-13;9-30;5-8;19-20
+2-3;14-16;23-24;8-28;17-18;17-26;17-29;6-8;16-24;31-46;31-47;32-48
+25-26;8-26;6-11;7-13;9-31;9-30;19-41
+14-16;8-26;17-28;17-29;6-17;39-42;9-17;40-49;24-45
+2-3;1-5;13-32;17-20;11-17;16-29;38-43;9-30;19-51
+14-15;15-18;21-31;11-38;11-17;33-40;6-7;16-17;31-46;9-15;40-48
+1-7;8-28;17-18;11-17;6-7;16-29
+1-10;12-13;15-18;17-36;11-38;6-25;48-49;5-32
+0-1;1-10;17-28;39-42;48-49;5-8
+12-13;16-29;5-7
+0-1;8-16;8-26;11-38;11-17;39-42;9-19;5-32
+1-10;1-11;14-16;8-26;13-33;17-36;11-17;6-17;48-49;9-15;9-19
+17-18;6-28;39-42;9-31;9-19;40-49;19-51
+1-5;14-16;23-24;17-35;17-36;38-43;9-19;5-32;24-38
+15-18;25-26;33-39;31-37;32-44;7-13;9-19
+1-11;27-28;17-36;31-37;9-17
+14-15;6-17;5-32
+15-19;17-36;6-34;16-24
+0-1;1-11;12-13;14-15;15-18;17-35;17-36;16-17;32-48;48-49;7-13;38-43;9-15;5-32
+2-3;1-11;17-35;17-29;6-8;16-24;16-29;38-43
+1-5;1-8;8-26;13-32;17-20;6-7;6-17;31-45;5-32;40-48
+1-11;15-19;11-24;40-48;24-45;19-51
+1-4;14-17;20-21;17-24;11-24;5-8
+2-3;1-4;14-17;21-31;17-35;17-28;17-29;32-44;7-13;38-43;9-31;5-32;40-49
+1-6;1-10;17-29;33-40;39-42;31-45;48-49
+15-18;17-28;31-45;7-13
+1-6;14-16;23-24;13-33;17-20;17-18;6-28;6-34;5-32;18-23
+27-28;17-28;32-44;48-49;40-48
+14-15;20-21;25-26;17-35;33-40;6-11;31-37;32-48;38-43;9-15;9-17;18-23;19-51
+8-16;8-28;33-39;5-32;5-7
+2-3;12-13;14-16;8-24
+1-7;1-8;27-28;6-28;6-17;18-23
+1-11;12-13;20-21;13-32;17-18;32-44;9-15;5-7;40-49
+1-6;8-24;6-17;6-34;9-31;24-45
+15-18;27-28;8-16;8-26;17-35;38-43;24-31;3-9
+0-1;23-24;8-28;8-26;17-36;16-24;31-47;40-48;3-9
+1-5;1-8;14-16;21-31;13-32;33-39;6-7;16-29;9-30;24-38;24-31;19-51
+1-7;20-22;27-28;17-18;17-36;33-40;6-25;32-42;7-13
+2-3;1-5;20-22;8-20;17-26;11-24;6-7;31-37;9-17;19-51
+20-22;8-20;17-35;17-26;17-36;6-8;48-49;5-32;24-45;19-41
+1-9;1-11;20-22;27-28;17-26;11-24;6-28;31-47;32-48;24-38
+1-7;12-13;14-15;17-18;39-42;32-44;48-49;7-13;9-15;9-31;24-45
+1-4;8-26;17-26;6-7;39-42;18-23
+1-9;20-22;21-31;13-33;17-18;17-25;11-17;48-49;9-15;9-31;5-32;40-48;24-50
+0-1;1-4;23-24;18-23;40-48
+1-9;14-16;17-35;6-28;6-25;16-24
+0-1;1-5;17-28;6-34;16-29;31-47;9-15;5-32;19-51
+1-9;14-15;14-16;15-19;23-24;27-28;6-34;24-45
+1-10;12-13;15-19;17-18;17-29;16-29;31-37;9-17;24-50
+1-9;15-19;8-26;33-39;7-13
+2-3;17-28;17-25;17-29;11-38;33-39;6-8;16-29;31-45;5-7;40-48;40-49;24-31;19-41
+1-6;1-9;6-11;31-45;7-13;38-43;5-8;3-9
+1-5;11-38;38-43;9-17
+1-11;15-18;15-19;20-22;23-24;17-28;6-28;16-24;32-42;9-31;5-8
+15-19;20-22;8-20;17-29;6-17;16-29;31-46;7-13;38-43;24-38;24-45
+17-28;33-39;31-37;9-17
+1-5;14-16;15-19;20-22;8-20;17-29;16-29;31-45;32-44;19-51
+1-7;1-10;1-11;20-22;8-26;17-35;17-20;17-28;17-36;31-45;31-37;3-9
+14-16;20-22;13-32;16-29;31-45;31-46;3-9
+20-22;21-31;17-36;6-7;6-25;6-17;39-42;32-42;40-48;19-41
+25-26;6-7;6-34;16-29;32-44;5-8
+1-4;1-5;1-8;15-18;13-33;6-17;9-19;19-41;19-20
+17-35;11-17;33-39;6-28;16-24;31-46;9-19;24-31
+8-20;8-28;6-25;40-48
+1-5;1-7;13-33;17-20;11-17;33-39;9-19;5-7
+2-3;23-24;17-25;11-17;6-11;32-44;9-19;40-49;24-31
+0-1;33-40;6-8;7-13;9-15;9-19;19-51
+14-15;6-28;31-46;31-37;31-47;48-49;9-31;9-17;40-48
+8-28;17-35;11-24;16-17;5-8
+1-10;11-17;33-39;6-28;16-24;31-47;9-30;40-49;3-9
+8-28;17-18;33-39;48-49;24-45
+15-18;11-24;6-11;16-17;9-15;9-30;5-7
+1-10;8-20;8-24;8-26;13-32;17-24;17-29;11-24;11-38;11-17;6-7;9-31;40-48;24-50
+17-28;6-28;5-7;40-48;19-51
+2-3;15-19;20-22;17-20;31-46;9-17;24-50
+6-7;31-47;32-44;32-42
+21-31;13-33;17-35;17-28;33-39;7-13;18-23;24-38
+15-19;23-24;8-24;17-26;33-39;31-47;38-43;9-15
+1-5;1-8;14-16;15-19;27-28;8-16;8-28;17-26;6-8;6-11;31-45;32-48;32-42;5-32;18-23;19-41
+1-6;15-19;17-26;31-45;31-46
+1-11;23-24;25-26;8-20;8-28;8-26;17-26;16-29;38-43;5-32;24-50;19-20
+1-6;1-7;8-24;17-20;17-36;6-34;32-48;32-42
+2-3;1-4;12-13;8-16;6-25;31-47;9-31;18-23
+17-18;33-39;16-17;5-32;19-41
+1-10;1-11;14-15;17-35;6-11;16-29;31-47
+15-19;20-22;23-24;8-28;17-28;17-36;6-34;6-11;3-9
+12-13;27-28;8-28;8-24;17-24;11-38;48-49;7-13;38-43;24-50
+2-3;12-13;17-25;6-28;16-29;32-44;5-32;5-8
+1-7;14-16;13-33;17-20;6-7;6-25;6-8;6-17;16-24;32-42;40-49;24-31
+1-8;14-15;23-24;11-24;6-8;19-51
+14-16;15-18;13-33;17-35;31-47;5-32;24-31;24-45
+1-6;32-48;32-44;38-43;24-50
+25-26;27-28;8-16;17-28;11-24;31-37;9-31;9-17;3-9
+0-1;6-17;5-32;5-7;3-9
+1-5;17-20;17-18;11-38;5-8;19-41
+27-28;8-26;17-35;6-25;32-44;5-7
+0-1;1-11;15-19;20-22;27-28;13-33;17-35;11-38;6-17;6-34;9-15;9-31;3-9
+1-6;1-10;8-16;17-28;17-25;17-29;9-15;5-32;19-51
+20-22;39-42;16-24;7-13;40-49;24-45
+2-3;15-18;20-22;27-28;21-31;17-29;6-17
+1-8;14-15;20-22;17-18;32-42;7-13;5-32
+20-22;8-16;13-32;17-35;33-40;6-28;16-17;48-49
+15-19;21-31;13-33;17-25;17-36;31-45;9-15;9-30;5-32;40-49
+1-4;20-22;8-20;8-28;11-38;11-17;33-39;6-34;32-48;5-32
+0-1;1-4;20-22;8-20;13-33;11-17;6-17;6-11;31-45;31-46;24-31
+1-4;1-8;15-19;20-22;25-26;27-28;17-18;33-40;31-45;24-45
+1-4;1-6;15-19;13-33;17-25;6-7;39-42;31-45;32-42;5-32;40-49;24-31;19-51
+1-5;14-16;8-16;21-31;6-8;39-42;16-24;24-38
+15-19;6-7;6-25
+1-7;1-10;14-16;8-28;21-31;17-20;11-24;31-46;38-43;19-41
+1-5;23-24;5-8;24-38;3-9
+1-8;14-16;8-26;17-18;39-42;9-15;3-9
+25-26;8-20;21-31;17-20;11-24;6-8;6-17;9-31;5-32;18-23
+14-17;13-32;6-8;31-46;31-47;48-49;9-17;9-19;24-45
+2-3;14-17;17-25;38-43;9-19;5-7;19-51
+0-1;1-7;14-15;14-17;17-20;17-28;17-26;6-28;6-25;39-42;32-48;9-19
+1-8;1-11;14-17;17-18;17-24;17-26;6-8;48-49;9-19;24-50
+1-5;12-13;14-17;15-18;25-26;17-26;17-36;31-46;24-38
+13-33;17-25;6-25;31-46;32-48;18-23
+12-13;14-15;23-24;21-31;17-26;16-17;31-47;32-42
+17-28;17-24;17-36;6-11;39-42;38-43;19-41
+1-10;1-11;8-28;11-38;18-23;24-31;24-45
+1-6;17-20;17-18;17-36;16-24;31-46;31-37;9-15;9-31;24-50
+13-33;17-24;11-24;33-39;6-34;9-17;18-23;24-31;19-20
+17-28;17-25;17-29;17-36;33-40;6-34;39-42;31-47;7-13;9-30;19-20;19-51
+1-9;1-11;13-32;11-24;6-7;32-42;38-43;9-15;18-23;40-49;19-20
+0-1;15-18;8-16;8-28;8-26;17-29;6-7;31-46;7-13;9-30;19-20
+1-4;1-5;23-24;6-17;16-17;24-45
+2-3;17-25;6-7;6-8;7-13;19-41
+1-5;1-8;6-28;6-25;32-44;5-8
+1-6;14-16;27-28;17-28;40-48;24-45
+1-10;17-35;17-29;18-23;40-49
+25-26;8-16;11-17;31-46;9-30;19-41
+1-9;14-16;16-24;31-37;9-31;5-8;19-51
+17-35;17-18;39-42;9-30;9-17;5-7;24-50
+1-5;15-19;8-26;11-38;11-17;31-45;31-37;38-43
+1-9;15-19;8-20;13-32;11-17;39-42;16-29;9-17;5-32;24-50
+1-5;1-7;15-18;16-29;16-17;9-15
+0-1;1-6;13-32;39-42;31-45;32-42;24-31
+1-8;17-36;6-11;16-24;5-8
+0-1;1-6;1-9;23-24;17-20;39-42;16-17;40-49;3-9;19-51
+1-4;1-7;21-31;11-38;9-30;5-7;24-38
+1-11;8-16;17-28;17-36;6-7;6-28;6-8;32-48;32-42;24-50
+1-5;1-9;14-16;21-31;13-32;33-40;6-7;9-15;9-31;24-31
+1-6;1-7;25-26;17-28;33-39;16-29;32-44;38-43;9-17
+1-5;8-28;17-35;17-18;33-39;6-7;6-28;6-34;31-46;32-42;48-49;40-49
+2-3;1-4;15-18;6-7;6-34;16-29;3-9;19-41
+1-4;6-17;39-42;40-48
+13-32;17-25;32-42;24-45
+8-26;17-18;17-29;6-17;39-42;16-24;7-13;40-49
+1-6;25-26;8-16;8-26;33-39;19-51
+2-3;1-5;14-17;27-28;17-25;33-40;6-8;32-44;32-42;5-32;3-9
+1-4;17-29;33-40;6-11;32-48;9-15;24-50
+0-1;1-6;1-9;14-16;14-17;23-24;13-32;13-33;17-35;31-46;9-31;40-48;3-9
+12-13;17-20;6-25;6-34;39-42;32-48;40-48
+1-9;14-16;14-17;27-28;8-28;5-32;40-49;24-50
+1-6;17-25;17-26;6-28;6-8;31-47;9-17;24-45;19-20
+1-9;1-11;12-13;14-15;25-26;17-26;11-38;33-39;31-46;31-37;32-48;24-45
+17-26;39-42;16-17;38-43;3-9;19-20;19-51
+1-5;6-25;6-34;31-45
+1-7;20-22;8-16;17-36;6-34;31-45;48-49;18-23;40-48;24-50
+1-11;20-22;27-28;17-25;31-45;7-13;5-32;24-31
+0-1;2-3;14-17;8-20;21-31;11-17;39-42;9-31;19-41
+1-10;8-16;8-28;6-34;9-30;5-8;5-7;19-51
+14-16;14-17;25-26;16-17;7-13;38-43;9-30;9-19;24-45
+1-8;14-15;14-17;15-18;8-26;17-35;17-28;31-45;31-37;9-19;5-7
+1-6;1-7;14-16;8-26;17-18;17-25;33-40;6-28;6-25;6-17;31-45;32-48;9-30;9-19
+1-4;1-10;13-32;6-8;39-42;31-45;31-47;32-44;32-42;9-19;5-7
+1-4;17-24;9-30;9-19;40-49;19-51
+1-4;1-5;17-28;16-24;38-43;5-8;18-23;40-48;24-38
+1-4;1-8;12-13;15-19;8-28;17-35;11-38;33-39;6-28
+1-6;15-19;13-33;17-18;17-24;33-39;39-42;32-44;9-15;18-23;24-45
+12-13;14-15;8-28;8-26;38-43;9-31;24-45
+12-13;14-16;23-24;8-26;17-29;6-17;6-11;16-29;7-13
+17-20;17-18;17-25;17-29;6-17;39-42;16-24;19-41
+0-1;1-5;11-38;33-40;31-47
+14-15;14-16;8-24;21-31;17-29;16-24;16-29;48-49;7-13;5-8;40-48;19-51
+13-32;33-39;6-7;6-28;31-37;9-15;5-7
+8-28;17-20;11-24;33-39;16-29;38-43;9-17;24-31
+2-3;17-25;33-40;6-25;6-17;32-48;5-7;19-41
+8-24;11-24;6-8;6-34;16-29;24-38;24-45
+1-11;8-26;13-32;17-20;17-36;11-24;6-17;38-43;3-9
+1-7;1-10;27-28;16-24;31-46;32-48;9-15;9-31;5-8;40-48;24-38;24-31
+1-6;15-18;11-38;38-43;5-8;40-48;19-51
+8-24;17-20;17-24;16-17
+1-8;17-35;11-24;9-30
+1-11;14-16;23-24;27-28;13-33;17-36;32-42;7-13
+14-15;6-17;31-45;31-46;38-43;5-32;5-7;40-49
+0-1;14-16;8-16;17-28;17-36;11-38;33-40;6-34;6-11;16-17;31-45;32-44
+1-7;25-26;27-28;8-24;21-31;6-34;31-45;31-37;5-7
+1-11;17-18;6-8;9-17;5-32;5-8;40-48
+1-5;17-24;31-46;48-49;19-51
+12-13;15-18;27-28;6-7;6-17;16-24;32-48;32-42;38-43;9-31
+15-19;8-24;13-32;16-17;9-15;5-32
+1-10;15-19;23-24;17-24;17-26;32-48
+2-3;1-6;15-19;8-26;17-18;17-26;11-17;31-46;19-41
+1-10;15-18;11-24;6-8;31-46;9-31
+8-26;17-26;11-38;11-17;6-25;9-15;5-32;40-49;24-31
+14-17;8-28;8-24;17-24;17-29;11-24;11-17;6-28;6-17;40-48
+0-1;1-5;14-15;14-17;21-31;31-37;24-38;24-31;24-45;3-9
+14-17;13-33;17-29;31-46;31-47;7-13
+14-17;17-18;17-24;9-17;19-51
+14-15;14-17;15-18;25-26;8-20;8-24;13-33;17-20;17-25;16-24;9-31
+1-10;23-24;8-16;8-26;17-29;17-36;31-47;32-48;32-44;48-49;24-38
+33-39;6-25;6-8;31-46;32-48;32-42;24-50
+13-32;11-38;33-39;16-17;31-47;40-48;40-49
+1-10;14-16;23-24;8-24;17-18;33-40;48-49;24-38;24-45;19-41
+1-9;20-21;13-32;6-28;16-29;9-17
+1-5;1-6;17-24;17-25;6-7;31-47;32-48;32-42;18-23;24-45
+1-4;1-8;12-13;14-16;8-16;21-31;17-20;6-34;31-46;31-37;19-51
+1-11;27-28;8-20;13-32;11-38;6-25;39-42;48-49;7-13;3-9
+1-7;12-13;15-18;8-20;17-24;33-39;6-17;31-37;32-44;5-8;3-9
+1-4;8-26;17-18;17-25;6-28;16-24;7-13;9-31;5-8;18-23
+8-16;31-46;40-48;24-31
+1-8;25-26;11-24;11-38;18-23;24-38;24-45
+1-5;17-25;11-24;6-34;31-45;32-44;9-19;5-32;24-45
+14-16;27-28;13-33;6-34;16-29;9-19;19-51
+11-24;9-19;5-7;24-31;24-50
+1-6;1-7;14-15;13-33;17-24;11-24;6-11;32-44
+1-10;14-16;23-24;8-26;11-38;6-28;39-42;16-24;16-29;31-47;9-19;5-32;5-8
+27-28;8-26;17-29;33-40;32-48;32-44;5-7;40-48;40-49
+15-18;20-22;25-26;16-29;31-37
+1-8;1-10;48-49;7-13;9-30;3-9
+17-35;11-38;6-7;6-34;16-17;3-9
+0-1;14-15;17-24;6-7;6-17;6-34;9-30;9-17;5-32;40-49;19-51
+1-11;8-28;21-31;17-18;17-36;6-28;39-42;16-24;31-46;48-49;5-8
+1-7;8-26;31-47;9-30;40-48
+25-26;8-26;17-24;17-36;6-25;6-8;9-31;5-32;5-7;24-38
+2-3;14-16;13-33;17-35;9-30;19-41
+6-8;6-34;16-29;32-42;48-49;5-8;24-50;19-41
+1-11;12-13;15-18;17-20;17-28;17-36;6-28;39-42;31-46;32-44;32-42;5-7
+12-13;27-28;8-28;13-33;17-18;11-17;9-30;5-32;24-50
+1-5;13-32;11-38;11-17
+1-7;17-26;11-17;33-40;31-37;32-48;9-15;9-30;5-8
+1-10;1-11;14-17;27-28;17-35;17-28;17-26;39-42;31-46;32-44;7-13;5-32;40-48;40-49;19-20
+0-1;1-6;14-17;21-31;17-26;11-24;6-25;16-24;16-17;9-17;19-20
+14-17;17-20;17-18;32-42;24-31;24-50;19-20
+14-17;27-28;33-39;33-40;48-49;5-32;19-20
+14-17;17-25;33-39;6-8;39-42;32-44;38-43
+1-5;1-7;14-15;23-24;17-35;6-28;3-9;19-41
+23-24;25-26;8-16;17-36;6-11;31-37;9-31;18-23;24-45
+1-6;1-9;1-11;14-16;20-21;23-24;25-26;8-16;8-26;17-36;6-25;6-17;16-17;9-30;19-20;19-51
+1-9;25-26;27-28;11-38;6-11;16-17;31-45;5-32;3-9
+1-8;1-9;1-11;21-31;17-24;6-25;6-17;6-11;31-47;32-48;9-15;9-31
+1-10;12-13;17-25;33-40;6-8;9-17;40-48
+0-1;12-13;14-15;14-17;16-17;19-51
+1-9;21-31;6-34;16-24;32-48;9-17
+0-1;12-13;8-16;17-29;18-23
+1-5;1-8;1-9;27-28;13-33;17-18;6-25;39-42;32-44;9-15;5-32;24-50
+15-18;23-24;8-28;17-25;17-29;6-11;32-42;7-13;5-7;18-23
+1-9;14-16;11-38;6-17;31-47;48-49;38-43;40-48;24-45
+1-4;1-6;15-19;27-28;8-16;13-32;5-32;5-7;18-23
+0-1;2-3;1-5;17-24;17-26;16-29;40-49;24-31;24-45
+1-10;21-31;17-35;17-24;17-29;17-36;33-39;31-46;32-42;9-31;19-20;19-51
+17-25;11-17;6-17;31-47;9-17;19-20
+1-6;11-38;11-17;6-8;39-42;32-48
+0-1;2-3;11-17;9-30;18-23
+2-3;13-32;17-25;33-40;6-11;39-42
+1-9;16-29;31-47;32-44;9-31;9-17;40-49;24-31
+1-8;14-15;17-18;17-24;11-38;11-17;33-39;6-28;16-29;16-17
+0-1;1-9;14-16;25-26;17-35;31-46;5-32;19-41
+1-7;33-40;6-7;6-17;39-42;16-29;31-47;7-13
+1-11;12-13;17-28;17-24;6-7;9-15;9-31;40-49
+17-26;32-44;5-7;40-48
+12-13;13-32;16-29;31-37;5-8
+1-8;13-33;17-20;17-18
+12-13;27-28;8-16;8-24;8-26;17-35;33-39;33-40;6-28;31-37;9-30;19-20
+14-15;33-39;6-8;32-44;9-19;5-32;24-45;24-50;19-20
+1-10;15-18;17-20;31-45;9-15;9-31;9-17;9-19;19-20;19-51
+1-6;27-28;21-31;17-24;17-29;6-17;31-45;31-46;48-49;9-19;19-20
+1-8;14-15;23-24;8-16;8-24;11-24;33-40;31-45;9-19;5-32;5-8;3-9;19-20
+1-11;14-16;17-20;17-36;16-17;5-8
+1-4;1-5;27-28;17-24;17-25;17-26;11-24;11-38;6-34;16-24;24-31
+14-16;8-26;17-26;17-36;6-28;31-45;31-37;38-43;24-45
+1-6;20-21;21-31;13-32;17-28;17-26;11-38;16-29;24-31
+1-4;8-28;8-24;17-20;17-28;17-26;6-17;16-17;24-31;24-45
+1-11;21-31;13-32;17-18;16-24;31-45;7-13;3-9
+2-3;15-18;8-20;5-32;40-49
+17-35;17-20;48-49;19-51
+1-6;27-28;8-24;21-31;13-33;17-28;17-24;9-15;24-38
+1-5;1-10;17-25;6-28;6-17;16-17;32-44;5-32;5-7
+1-8;14-16;14-17;15-19;8-26;11-38;6-25;48-49
+0-1;1-11;12-13;14-17;15-19;23-24;27-28;16-24;31-46;9-15;5-7;24-45;19-41
+1-7;14-16;14-17;15-19;20-22;8-24;17-28;6-11;32-48;5-32
+1-6;14-17;20-22
+12-13;17-20;17-26;11-17;33-40;31-46;32-48;24-50
+14-15;14-17;20-22;25-26;13-32;33-39;6-17;31-37;7-13;40-49;19-51
+1-8;1-11;20-22;11-24;33-39;31-46;31-47;5-32;24-38;3-9
+1-5;20-22;8-24;17-36;38-43;9-17;3-9
+2-3;20-22;21-31;11-24;11-17;33-40;24-31
+1-7;20-22;17-25;17-36;11-38;11-17;32-42
+1-6;17-35;6-8;9-30;40-49;24-31
+1-8;25-26;8-24;21-31;17-20;33-39;5-32;5-7;18-23
+2-3;1-4;14-16;27-28;13-33;17-29;11-17;33-39;6-7;6-17;32-42;9-30;24-31;24-45;19-51
+1-4;23-24;8-28;17-18;11-17;6-7;31-47;32-44;18-23
+0-1;1-4;1-10;14-16;15-18;17-29;11-17;31-45;9-30;5-32
+1-8;15-18;25-26;11-17;32-42;9-31
+8-24;8-26;17-29;6-7;32-42;48-49;9-15;18-23;19-41
+12-13;8-28;13-32;13-33;33-40;16-17;31-47;24-50
+17-20;6-25;6-17;16-24;32-44;9-15;5-32;5-8;3-9;19-41;19-20
+27-28;8-28;17-18;17-28;16-29;31-47;32-42;48-49;9-17;40-49;3-9;19-20
+12-13;8-24;6-28;6-34;16-17;24-45;19-20
+21-31;13-32;33-40;6-8;6-34;16-29;38-43;5-32
+1-8;23-24;27-28;17-25;32-44
+12-13;15-19;6-25;16-17;9-15;5-32;5-7;19-41
+14-16;15-18;15-19;17-35;16-24;5-8
+1-7;15-19;23-24;13-32;6-17
+1-9;12-13;20-21;8-24;17-18;17-36;6-34;40-49
+0-1;1-10;14-15;8-16;8-28;13-33;11-24;6-28;6-34;31-46;31-47;7-13;9-31;5-32
+8-20;17-36;16-24;32-48;5-32;24-45
+15-19;27-28;8-20;13-33;6-11;7-13;40-49;24-31
+1-11;15-19;17-18;17-26;17-36;5-7;24-50;19-51
+1-5;1-6;1-7;14-15;15-19;23-24;21-31;13-33;17-26;33-39;6-7;32-44;32-42;48-49;5-32
+17-25;17-26;17-36;33-39;9-15;5-7;19-41
+14-16;15-18;8-16;13-32;17-26;5-8
+1-4;23-24;21-31;33-40;6-8;16-24;32-42;48-49;19-41
+1-4;8-20;17-35;17-20;17-25;6-11;38-43;24-38
+1-4;27-28;8-20;17-29;9-31;9-19;5-32;24-45
+1-10;15-19;8-20;17-28;9-15
+1-7;8-16;6-25;16-24;16-17;32-42;9-19;5-32;40-49
+8-26;17-20;17-24;11-17;9-19
+1-5;12-13;14-17;27-28;17-28;9-30;9-19;5-32
+1-6;21-31;17-18;11-17;6-34;9-31;24-50
+15-18;8-16;8-28;17-28;17-24;17-29;11-24;6-34
+1-6;14-16;23-24;25-26;27-28;13-33;11-24;11-17;6-25;6-11;31-45;5-32;24-38;24-50
+17-29;33-40;6-11;31-46
+1-11;14-15;14-16;13-33;17-25;11-24;11-17;39-42;32-44
+1-7;27-28;8-26;6-7;16-17;48-49;9-31;9-30;5-32
+1-5;1-10;8-16;6-7;6-34;24-31;3-9
+1-11;14-15;23-24;11-17;33-40;6-8;6-11;32-42;9-17;40-48
+14-17;20-21;17-24;11-38;33-40;6-28;6-17;31-45;31-46;24-38
+1-5;1-9;14-15;14-17;25-26;17-25;6-7;6-25;6-8;32-42;38-43;9-17;40-48
+14-17;21-31;17-28;9-31;5-7;24-45
+1-7;1-9;12-13;15-18;20-21;23-24;8-20;17-20;17-18;33-39;6-11;16-24;32-48
+8-16;13-32;17-28;11-24;11-38;6-7;31-45;32-42;24-50
+14-15;17-25;17-36;6-34;31-45;31-37
+2-3;1-4;20-21;16-17;7-13;38-43;5-8
+1-4;1-6;1-9;14-16;11-24;31-37;32-42;40-49;24-38
+0-1;1-5;13-32;17-18;11-38;6-25;31-46;40-48;19-41;19-51
+1-7;1-8;20-21;17-35;17-20;11-24;31-47;48-49;24-45
+1-5;1-6;20-21;17-29;11-17;6-7;7-13;5-7;24-45
+1-10;8-28;6-17;9-17;24-31
+15-18;23-24;21-31;38-43;9-15;9-31;18-23
+1-6;20-21;25-26;6-34;16-24;31-46;32-48;24-31
+15-19;17-18;6-28;6-34;5-8;18-23
+1-8;15-19;13-33;17-35;6-8;6-11;24-38;19-20
+1-5;1-7;14-15;15-19;20-21;8-28;11-17;18-23;40-48;40-49;19-20;19-51
+1-11;11-38;11-17;31-46;31-37;24-50;19-20
+2-3;8-16;17-25;33-40;18-23;19-20
+1-6;20-22;25-26;17-26;17-29;6-34;16-24;31-37
+1-8;20-22;17-20;17-26;11-17;6-28;6-34;16-29;38-43;5-8
+12-13;15-19;17-35;17-25;11-17;31-47;32-48;48-49;9-30;3-9;19-51
+1-4;1-8;14-16;8-16;17-20;33-39;6-28;40-49
+0-1;12-13;20-22;17-26;11-17;6-11;40-49
+1-5;1-9;14-15;13-32;17-35;17-24;17-26;17-36;9-15;9-30;5-32
+23-24;17-35;17-25;6-17;19-51
+1-9;1-11;12-13;27-28;13-33;17-36;11-17;39-42;31-46;9-30;9-17
+1-4;1-8;20-21;6-25;31-45;38-43;24-38
+1-9;14-16;23-24;13-33;17-18;17-36;11-17;6-28;6-34;9-31;9-30;5-8;3-9;19-41
+1-4;8-26;32-48;9-15;5-8;24-45
+1-9;1-11;14-16;39-42;31-46;32-48;38-43;9-30;5-32;40-48;24-45
+15-18;33-39;7-13;40-48;40-49
+1-6;27-28;6-7;6-28;6-25;6-17;16-24;9-30;19-20;19-51
+25-26;13-33;17-25;17-29;6-25;16-17;31-37;31-47;5-7;24-50
+1-7;17-18;6-7;32-44;32-42;5-32;19-20
+39-42;31-46;9-15;9-30;24-31;19-20
+0-1;1-10;14-17;27-28;8-26;13-32;6-8;38-43;9-17
+14-17;23-24;8-26;33-39;6-11;16-17;5-32;24-31
+1-8;1-11;8-20;8-16;13-32;6-11
+1-5;14-15;14-17;15-19;27-28;8-28;21-31;17-18;6-8;39-42;31-46;9-19
+2-3;14-17;15-18;15-19;25-26;17-28;17-29;6-25;9-19;5-32
+1-5;1-6;17-35;17-20;17-24;6-34;39-42;31-47;32-48;48-49;9-19;40-49
+1-11;8-16;17-28;17-25;11-24;6-34;32-42;9-31;9-19;24-38;24-50;19-51
+14-15;15-19;20-21;8-26;17-36;9-15
+0-1;1-7;20-21;13-32;17-35;33-40;9-15;5-8
+8-20;8-28;13-33;17-18;17-28;17-29;48-49
+14-17;15-19;23-24;25-26;21-31;17-29;17-36;39-42;16-17;7-13
+1-11;14-15;14-17;15-19;20-21;25-26;13-33;17-35;17-28;6-25;31-47;9-15;40-48;19-20
+14-17;17-24;17-29;17-36;11-17;24-50;19-41;19-20
+1-5;14-17;11-38;11-17;32-42;24-31;19-20
+14-17;15-18;20-21;13-32;17-36;33-39;6-28;6-11;39-42;16-24;31-37;38-43;40-49;19-20
+2-3;1-6;1-11;17-28;17-24;33-39;6-8;16-17;32-48;5-8;3-9
+17-25;31-47;9-31;24-45;3-9;19-51
+20-21;32-44;48-49;24-50
+23-24;8-28;6-7;6-28;6-25;6-8;39-42;9-30;9-17;5-7;40-48
+15-18;8-28;8-26;13-33;17-20;17-24;48-49
+2-3;17-35;17-18;17-25;7-13;9-17;18-23;24-50
+20-21;8-16;8-28;8-24;33-39;6-28;6-11;39-42;16-24;48-49
+0-1;1-5;1-11;12-13;14-15;23-24;17-24;33-39;5-8;18-23
+12-13;15-18;21-31;17-20;17-26;38-43
+1-8;1-10;20-21;13-32;17-26;6-25;18-23;19-51
+12-13;14-16;8-24;17-28;17-25;17-26;32-44
+1-7;21-31;17-20;17-26;31-47;9-30;5-32
+1-5;1-10;27-28;6-8;6-11;16-24;16-17;31-37;24-50;19-20
+8-28;13-32;17-29;33-39;9-30;5-8;24-38;19-20
+1-6;1-8;14-15;8-24;17-28;11-24;6-25;32-44;5-32;19-20
+0-1;20-22;27-28;8-24;17-25;6-11;31-45;9-19;18-23;40-48;3-9;19-51
+20-21;27-28;17-29;9-30;19-20
+15-19;17-24;11-38;6-7;6-28;32-48;32-42;7-13;9-31;9-17;40-48
+1-4;14-15;15-18;15-19;31-46;9-15;5-32;40-49;24-50
+0-1;1-4;15-19;20-21;23-24;27-28;8-28;8-24;32-44;24-31;19-41
+1-4;1-8;8-16;17-24;6-11
+2-3;1-10;25-26;21-31;48-49;5-32;5-8;24-38;24-31
+20-21;16-24;31-46;38-43
+14-17;27-28;17-35;17-18;17-25;6-28;31-45;9-15;5-32;40-48;40-49;24-31
+8-16;8-26;13-33;16-17;5-32;40-48;3-9;19-51
+1-7;1-8;20-21;8-20;13-32;6-34;5-7
+20-21;8-20;11-38;6-11;16-24;9-19;40-48
+12-13;15-18;20-22;8-20;13-33;33-40;6-25;6-8;6-34;31-46;9-31
+20-22;23-24;8-20;8-24;17-25;38-43;9-17;5-32;5-7;40-49
+20-21;20-22;8-16;31-45;32-48;7-13;24-38;24-45;24-50
+0-1;1-6;14-15;20-22;17-35;16-17;31-45;19-41
+1-8;1-11;14-16;14-17;20-22;8-28;21-31;11-24;33-40;6-28;31-45;31-46
+1-7;14-17;20-21;20-22;8-24;17-20;11-17;16-24;9-15;40-48
+2-3;1-10;14-15;14-17;20-22;25-26;11-17;33-39;31-37;38-43;19-41
+14-17;20-22;17-36;6-7;31-47;19-51
+1-11;14-17;15-18;20-21;17-35;6-7;31-46;32-42;5-8;24-31
+2-3;8-28;8-24;17-36;6-17;48-49;9-31;40-49;24-45
+13-32;17-24;6-25;48-49;9-19;5-32;18-23
+1-4;1-7;1-9;14-15;21-31;17-18;11-38;6-7;31-47;32-48;9-30
+0-1;1-4;6-7;6-28;6-8;16-17;32-44;32-42;9-19;19-41
+1-4;1-8;1-9;12-13;14-16;25-26;8-16;13-32;17-28;6-34;9-30;9-19
+1-4;14-17;20-22;8-24;17-24;33-40;6-25;6-34;6-11;31-37;9-15;9-31;9-19;40-48;40-49;24-50
+1-9;1-10;14-16;14-17;20-22;8-20;17-20;17-25;6-8;38-43;9-30;9-19;24-38
+2-3;1-7;6-8;39-42;16-24;19-20
+27-28;8-28;21-31;17-35;38-43;9-17;24-50;19-20;19-51
+1-8;14-17;15-18;20-22;23-24;8-24;13-32;13-33;33-40;16-24;48-49;7-13;9-17
+20-22;8-26;17-26;17-29;11-38;33-39;9-30;24-50
+2-3;1-11;20-22;21-31;17-24;17-26;32-44;38-43;3-9
+14-16;14-17;33-39;31-45;9-17;9-19
+1-5;1-6;20-22;17-20;17-18;17-26;17-29;6-11;48-49;40-48
+0-1;20-22;8-24;17-25;17-26;32-48;24-38;24-31
+1-8;17-24;16-17;31-37;32-42;9-31;40-49;24-45
+1-11;25-26;27-28;8-28;13-32;32-44;5-8;24-31;24-50;19-51
+14-15;25-26;6-28;6-25;6-8;38-43;19-41
+1-10;15-18;8-24;17-18;11-17
+17-25;6-11;7-13;40-48;40-49;19-41
+1-8;16-29;38-43;18-23
+1-6;1-9;1-10;13-33;17-36;31-45;32-42;5-8
+20-21;8-20;17-28;16-24;5-7
+1-11;14-15;20-21;8-24;31-47;9-19;5-8
+1-9;1-11;14-15;8-20;17-36;33-39;9-17;40-49;19-51
+1-7;12-13;23-24;17-35;17-25;33-39;6-17;24-45;19-41
+1-9;12-13;14-16;20-21;8-28;8-26;17-36;6-8;40-48
+0-1;8-16;6-8;16-29;31-45;31-37;32-48;40-48
+1-11;14-16;15-18;21-31;11-17;6-25;32-42;48-49
+0-1;2-3;20-21;25-26;17-29;11-24;11-38;31-37;38-43
+13-32;17-35;6-28;6-17;32-48;9-15;9-31
+17-24;17-29;33-40;48-49;7-13;19-51
+20-21;8-16;17-25;16-24;16-17
+2-3;1-6;1-8;1-9;14-17;8-26;13-33;11-38;11-17;31-46;32-44
+23-24;21-31;17-24;17-36;16-17;31-46;32-48;9-31;9-17;5-32;19-41
+1-5;17-24;38-43;3-9
+1-9;14-16;14-17;20-21;25-26;13-33;17-18;16-17;9-17;5-32;24-45
+1-6;15-18;8-16;24-31;24-50
+1-9;14-16;15-19;27-28;17-25;6-17;31-46;32-44;40-49;24-38
+14-15;20-21;6-34;31-37
+1-7;15-19;33-40;31-37;9-31;40-48;19-20
+27-28;17-18;6-25;7-13;9-30;24-31;19-41;19-20
+1-5;1-8;14-15;14-17;25-26;13-32;17-25;16-24;32-48;40-49;24-50
+1-4;14-17;15-19;8-28;33-39;48-49;7-13;9-17;5-8;5-7;24-38
+2-3;1-4;14-17;15-19;33-39;6-28;16-17
+1-6;1-11;14-17;17-26;17-36;18-23;24-38
+14-17;31-37;18-23;24-31
+1-4;1-7;1-10;14-17;15-18;15-19;11-24;6-11;31-47
+1-7;13-32;17-18;17-36;11-24;6-34;31-45;32-44;48-49;9-15;3-9
+1-11;17-28;17-24;39-42;31-45;31-47;40-49;3-9
+1-6;20-21;25-26;8-26;17-26;11-24;6-7;16-24;31-45;38-43;5-32;19-51
+1-5;17-28;17-26;33-40;16-17;24-45;19-41
+1-5;20-22;8-16;8-28;21-31;17-24;17-26;11-38;33-39;6-28;5-7;24-45
+1-6;1-7;17-26;6-7;16-24;31-45;40-49;3-9
+1-8;11-17;6-11;31-45;9-19;24-31;24-50;3-9
+1-10;14-15;23-24;25-26;13-32;13-33;17-28;11-17;33-40;6-8;32-48;9-31;9-17;9-19;19-20
+1-11;15-18;25-26;6-25;6-17;31-46;48-49;9-15;9-19;19-20
+12-13;14-17;20-21;20-22;6-8;31-47;24-50
+2-3;8-26;17-29;9-19;19-20
+12-13;14-15;21-31;32-44;7-13;24-45;19-20
+1-7;17-29;6-28;31-37;32-42;48-49;5-8;24-38;19-51
+2-3;1-11;17-25;11-24;6-34;31-46
+8-28;17-20;17-29;6-17;6-34;18-23;40-49;19-41
+0-1;17-36;11-24;16-17;32-44;5-7
+0-1;17-18;11-24;33-40;16-29
+1-4;1-6;1-8;15-18;8-26;17-20;6-8;3-9
+0-1;2-3;20-21;27-28;8-16;21-31;17-36;6-7;16-24;32-44;32-42;7-13
+23-24;13-33;11-24;6-25;9-15;9-30
+1-8;1-11;15-18;8-20;8-24;17-24;33-39;6-28;31-37;32-42;5-32;5-7;24-31
+1-11;15-19;25-26;8-24;17-20;17-36;39-42;31-46;9-17;5-32;24-45
+1-7;14-16;15-19;20-21;27-28;13-32;17-28;17-25;32-48;9-30;24-50;19-41
+1-10;15-19;8-16;17-36;32-44;9-31;19-20
+14-16;8-28;6-11;9-30;5-32;40-49;19-20
+20-21;8-24;8-26;6-28;39-42;31-46;31-37;32-42;19-20
+17-28;11-38;31-45;9-30;24-38;19-20
+15-18;8-16;6-34;16-17;31-45;32-44;48-49;5-32;24-31;24-50
+1-7;20-21;17-35;6-34;16-24;31-45;9-30
+0-1;1-6;8-28;8-24;33-40;6-28;39-42;31-46;24-31;3-9
+2-3;17-29;33-39;6-8;48-49;9-17;5-32
+1-5;1-6;20-22;25-26;8-16;13-32;11-38;6-17;32-44;9-31;24-45;19-51
+12-13;14-17;20-21;23-24;17-25;33-39;6-25;6-11
+12-13;14-15;14-17;17-29;16-17;7-13;9-31;40-49;24-50
+1-8;14-17;25-26;8-24;13-32;17-35;33-40;39-42;31-46;32-48;9-15;5-32;24-38
+1-10;14-17;20-21;11-38;31-37;5-7;19-51
+1-5;14-17;15-18;13-33;11-24;6-7;19-41
+6-7;31-47;32-42;5-7
+1-4;8-24;39-42;16-24;31-46
+27-28;17-36;11-24;11-38;9-15;5-32;24-45
+0-1;1-4;23-24;8-20;8-26;6-17
+1-4;8-20;17-20;17-25;17-26;11-17;6-8;9-17;24-38
+20-21;20-22;16-24;18-23
+14-16;8-24;17-26;11-17;39-42;31-46;31-47;48-49;9-31;40-49
+1-5;17-26;11-38;6-28;32-42;24-31
+1-6;1-8;14-16;17-35;17-28;16-17;7-13;38-43;9-15;19-51
+2-3;15-18;25-26;13-32;6-17;32-48;24-31;3-9
+1-10;25-26;8-28;8-24;21-31;31-46;5-8;3-9;19-41
+12-13;14-15;17-20;17-24;6-34;16-24;31-47;9-15
+1-7;12-13;23-24;17-28;17-25;6-34;24-38
+1-7;1-10;15-19;8-20;13-32;13-33;6-28;16-29;31-47;32-44;9-15;18-23
+12-13;15-19;20-21;8-24;21-31;17-20;17-18;6-7;9-30
+23-24;25-26;6-7;16-29;9-31;5-32;24-38;19-41
+1-6;17-35;17-18;17-24;17-36;39-42;9-30
+24-45
+14-16;15-18;20-21;8-28;17-25;17-29;6-8;6-34;16-24;16-29;31-45;32-44;24-45;19-20
+1-8;8-24;11-24;6-34;31-45;31-47;9-30;5-32;19-20
+1-6;1-7;14-16;17-18;17-29;11-38;33-39;6-25;16-29;31-37;7-13;9-19;19-20
+20-21;33-39;6-11;48-49;9-30;9-19;40-48;3-9;19-20
+1-4;1-10;14-15;17-35;6-17;32-48;32-44;32-42;38-43;9-19;5-32;3-9
+1-4;1-5;8-24;9-30;9-19;24-38;19-51
+1-4;1-8;23-24;17-24;33-40;9-19;5-8
+2-3;1-4;13-32;17-18;9-31;5-32;24-45
+8-26;9-17;19-41
+1-11;27-28;8-24;13-33;19-20
+0-1;1-9;17-35;17-24;6-28;6-25;6-17;16-24;38-43;9-15;24-31
+20-22;25-26;17-20;17-28;11-38;33-40;6-8;6-11;32-42;5-7;40-48;40-49
+1-8;1-9;12-13;20-22;13-33;31-37
+1-5;12-13;20-22;17-18;17-24;5-7;24-38
+1-9;20-22;13-33;6-8;7-13
+20-22;17-35;17-28;11-24;6-7;6-17;48-49;24-45;19-51
+25-26;8-26;13-33;33-39;6-25;31-47;7-13;9-17;19-20
+1-6;1-8;1-11;20-22;8-28;17-20;17-25;11-24;11-17;9-31
+1-9;15-18;20-22;23-24;8-20;17-18;11-17;6-11;48-49;9-17;40-48
+6-7;6-11;32-44;32-42;40-48;24-50
+20-21;13-32;9-30;40-49;24-38;19-20
+1-6;1-8;17-20;33-40;31-37
+1-11;33-39;6-25;6-34;31-37;24-50;3-9
+2-3;1-7;14-15;14-16;14-17;25-26;8-26;17-36;33-39;32-42;24-45;19-41;19-51
+14-17;25-26;8-26;17-20;17-18;6-28;16-24;31-47;9-15
+1-4;15-19;27-28;8-28;17-26;16-17;31-45;40-48;40-49;19-41
+1-4;1-9;20-21;8-20;13-33;17-24;17-26;17-29;16-24;31-45;31-47;32-42;7-13;5-32
+1-4;15-18;8-20;17-26;6-25;31-45;32-44;9-31;5-8
+1-5;1-10;12-13;15-19;13-33;11-38;32-48;7-13;9-17;5-8
+1-7;15-19;17-18;17-29;17-36;33-40;31-47;32-42;40-49
+1-11;15-19;13-33;17-20;31-45;31-46;48-49;24-45
+14-16;15-19;25-26;21-31;6-11;16-29;31-47;32-42;9-31;9-17;40-48;24-50;19-20
+0-1;13-32;17-29;11-24;31-45;5-7
+0-1;14-16;11-38;32-42;9-30;5-32;40-48;3-9;19-20
+1-8;14-15;31-37;48-49;18-23;40-49;19-20
+1-6;8-16;17-35;11-24;6-25;9-30;5-8;24-50
+2-3;13-32;17-28;16-24;32-44;5-32;18-23
+1-5;1-11;15-18;8-28;6-11;16-17;31-47;9-31;9-30
+1-7;6-8;7-13;18-23
+2-3;1-8;23-24;8-16;21-31;16-29;9-30;5-32;24-38;19-41
+1-10;17-35;17-28;17-25;7-13;9-17;18-23;40-48;24-50;19-51
+1-11;17-20;11-38;16-29;32-48;38-43;5-7
+1-10;15-19;25-26;27-28;17-20;17-29;39-42;9-30;3-9;19-41;19-20
+25-26;8-28;13-33;33-40;16-17;5-8;18-23
+0-1;8-16;16-29;31-37;9-15;5-7;40-49
+1-8;14-15;8-28;17-20;31-47;32-48;5-32;3-9
+0-1;1-4;1-7;15-18;20-21;27-28;13-32;17-25;17-29;11-38;16-17;31-37;32-44
+1-4;1-6;6-7;6-17;31-46;9-31;40-48;24-31
+12-13;23-24;13-32;17-20;17-36;11-17;16-29;40-48;19-51
+1-4;20-21;25-26;27-28;8-16;48-49;9-15;5-8;24-31
+1-6;1-11;8-20;17-36;11-38;33-39;6-7;6-34;16-24;9-17;3-9;19-41
+2-3;1-7;14-16;8-20;17-35;17-29;11-24;32-42;24-50
+1-5;1-10;6-8;6-11;7-13;38-43;9-19;40-49
+17-26;33-39;6-8;9-30;9-19;40-49
+1-11;14-16;15-18;15-19;20-21;23-24;8-24;17-35;17-18;11-24;6-8;16-24;16-29;32-48;48-49;9-15;3-9;19-51
+14-16;17-29;31-37;32-48;9-19
+0-1;25-26;17-20;16-17;9-19
+2-3;1-8;1-10;15-18;33-39;33-40;6-28;6-34;31-46;31-37;38-43;9-19;19-41;19-51
+0-1;1-6;1-11;13-33;17-28;33-39;6-34;39-42;32-48;9-31;9-19
+15-19;17-25;31-45;9-15;19-51
+8-20;13-33;17-18;6-11;32-44;24-50
+14-15;14-17;23-24;8-20;17-35;33-40;31-46;9-15;9-30
+1-5;1-11;14-17;25-26;17-28;39-42;48-49;38-43;5-32;3-9
+1-6;14-17;25-26;8-28;21-31;6-8;7-13;9-30;9-17;40-48;3-9;19-20
+14-16;14-17;17-25;17-26;11-38;16-17;32-44;9-15;5-8;24-31;19-20
+2-3;1-5;17-29;6-34;31-37;7-13;9-30;5-8
+1-8;1-10;14-15;15-18;8-16;17-26;6-17;7-13;5-8;5-7;24-45;19-41
+0-1;8-28;17-26;11-24;33-40;31-47;32-48;19-51
+2-3;1-4;6-25;9-31;3-9
+1-4;14-15;25-26;21-31;17-25;11-24;11-38;3-9
+1-5;8-26;17-36;11-24;31-46;9-30
+1-11;8-26;17-18;17-24;6-28;39-42;40-48
+2-3;17-35;17-36;6-11;9-30;5-8
+1-6;20-22;21-31;17-20;11-38;6-25;6-17;5-7
+1-7;15-18;20-22;17-24;17-36;6-8;31-46;31-47;32-42;24-45;19-51
+20-22;25-26;39-42;9-15;5-7;24-38
+1-7;14-15;17-25;11-24;6-34;16-29
+14-16;21-31;17-20;31-47;38-43
+15-19;8-20;8-24;6-11;16-29;31-45;31-46;9-17;5-8;40-49
+15-19;8-28;17-18;33-40;31-47;19-20
+20-21;21-31;13-32;17-35;17-20;6-7;38-43;5-32;19-20
+1-10;17-28;31-37;32-42;48-49;24-38;24-50;19-20
+8-24;11-38;31-46;19-20
+14-15;20-21;8-16;17-25;33-40;5-32
+1-5;1-7;1-8;15-18;17-18;6-28;6-25;31-47;32-48;48-49;40-48
+23-24;8-26;6-11;7-13;38-43;5-8
+14-16;20-21;8-24;8-26;6-8;16-24;31-46;9-15;5-32;40-49;24-45;24-50;3-9
+20-21;17-29;39-42;38-43;24-50
+1-6;8-16;7-13;9-17;24-31
+1-4;12-13;25-26;27-28;13-33;11-17;16-17;24-38
+2-3;1-4;1-8;12-13;20-21;21-31;17-18;11-17;31-47;5-32;19-41;19-51
+1-4;1-7;8-28;8-24;17-25;11-24;11-38;11-17;33-39;31-37;38-43
+1-4;1-5;27-28;8-16;13-32;6-34;40-48;24-50
+1-10;20-21;11-24;6-34;6-11;32-42;5-32
+0-1;23-24;17-24;16-17;24-45
+25-26;11-38;11-17;6-7;32-44;24-45
+0-1;1-10;14-16;20-21;13-32;17-25;11-24;33-40;6-7;6-8;32-42;9-30
+23-24;17-20;17-28;33-39;16-17;31-47;32-48;7-13;3-9;19-51
+25-26;8-16;17-24;31-46;32-44;40-48;24-45;19-41
+14-16;8-28;33-39;9-30;40-48;3-9
+1-6;20-21;17-35;6-34;32-48;48-49;38-43;9-17;24-38;24-50
+6-34;9-30;40-49
+15-19;25-26;8-26;17-25;9-17;24-38
+15-18;8-28;17-24;11-17;6-17;32-42;48-49;9-15;9-31;9-17;18-23;19-41;19-51
+20-22;17-26;33-39;31-37;24-45
+8-16;17-25;17-26;11-38;6-8;39-42;9-19;24-38;3-9
+17-26;16-29;31-46;31-37;9-19;5-7
+27-28;17-35;6-7;31-47;7-13;9-19
+1-6;1-7;1-8;25-26;8-28;6-7;6-28;6-25;6-17;9-19;5-7
+2-3;25-26;17-25;11-24;39-42;31-47;9-15;24-50
+1-4;23-24;8-16;8-26;21-31;6-11;39-42;16-17;32-42;9-19
+1-4;27-28;13-32;17-29;33-39;31-46;40-49
+1-10;14-15;17-36;39-42;19-20
+2-3;1-5;1-11;15-18;23-24;21-31;13-33;17-24;16-17;32-44;32-42;19-20
+0-1;8-24;17-28;17-36;6-25;19-20
+25-26;13-32;17-20;6-28;31-47;9-17;40-49;24-31
+1-8;31-45;32-42;24-50
+2-3;1-6;14-16;15-19;8-20;21-31;33-40;6-8;31-47;7-13;9-17;5-8;40-48;24-45
+1-7;15-19;8-20;8-28;8-24;17-20;31-46;32-48;9-31;24-38;19-51
+12-13;14-16;15-19;6-25;31-37;24-31
+0-1;1-5;1-6;1-11;20-21;27-28;33-40;31-45;5-32
+25-26;6-7
+1-8;15-18;25-26;11-24;33-40;6-7;6-28;16-17;48-49;24-50;19-41
+1-9;12-13;8-16;13-33;6-17;3-9
+1-11;17-25
+1-9;23-24;13-33;11-24;6-25;16-17;31-47;32-44;48-49;40-49
+1-7;8-20;17-29;33-40;16-29;38-43;9-30;18-23;24-45;19-51
+1-5;1-8;1-9;1-10;25-26;8-20;8-16;11-38;6-8;7-13;5-32;19-41;19-20
+1-11;6-8;6-34;32-42;9-31;5-7;3-9;19-51
+2-3;17-24;17-29;6-34;31-37;7-13;40-49
+8-28;17-28;17-36;6-11;32-48
+1-8;14-16;13-33;17-26;6-7;31-45;9-31;5-8;24-38;19-51
+1-4;14-16;15-18;33-39;16-24;31-37;32-42;5-8;40-48
+1-4;1-8;8-26;17-28;17-24;33-39;16-29;9-30;18-23
+2-3;1-4;14-15;32-48;40-49
+1-4;1-5;1-6;17-35;17-18;6-34;16-29;9-30;24-50
+20-22;17-20;17-24;11-38;6-7;6-34;19-51
+20-22;23-24;6-7;6-25;48-49;9-30;24-38
+2-3;17-35;17-36;33-39;16-24;9-31;40-48
+14-16;13-33;17-20;33-39;33-40;31-46;32-44;7-13;5-32;40-49
+15-19;27-28;8-28;8-26;11-38;48-49;24-38;24-31
+0-1;1-7;12-13;14-16;15-19;8-16;32-42;9-17
+8-28;17-35;17-20;17-26;17-36;6-7;6-34;16-17;31-45;31-46
+1-10;15-19;17-25;17-26;11-24;6-25;6-34;5-32;24-31;24-50
+1-8;1-11;20-22;8-28;17-26;11-17;32-48;40-49;19-51
+1-6;17-26;11-38;6-25;9-15;24-38
+14-17;8-16;8-28;13-32;17-20;17-24;17-26;5-32
+1-6;14-17;25-26;11-17;32-48;9-15
+1-7;14-17;17-29;11-17;6-11;16-24;31-46;32-44;9-31;5-7;40-49;24-38;24-50
+1-8;14-17;23-24;17-35;17-28;17-24;11-38;6-28;5-32
+0-1;1-6;14-16;15-18;8-20;21-31;32-42
+1-10;8-20;17-18;17-28;33-39;16-24;31-37
+1-11;14-15;14-16;8-16;33-39;6-8;48-49;40-49;19-41
+1-7;14-16;20-21;27-28;13-33;17-28;17-26;6-25;6-8;39-42;9-17;5-32;24-31
+1-4;21-31;13-33;17-28;31-37;32-42;24-50
+1-4;1-7;1-8;1-10;17-35;19-41
+1-11;14-15;8-16;13-32;17-25;6-28;6-25;31-37;48-49;24-50
+1-5;21-31;17-20;17-36;33-40;39-42;32-42;9-19
+27-28;9-19;5-32;5-7
+1-6;15-18;17-18;17-24;17-36;48-49;9-19;5-8;24-38;19-51
+12-13;8-16;6-28;16-17;32-48;9-19;5-7;19-41
+12-13;27-28;6-8;39-42;7-13;5-32;24-31;24-45;24-50
+1-6;14-16;33-40;6-25;9-30;19-20
+1-7;8-26;17-20;31-45;31-47;32-42;7-13;9-17;3-9
+1-5;1-6;1-8;1-10;14-16;17-26;33-39;6-25;6-17;9-19
+1-10;25-26;8-16;17-18;33-39;6-7;6-17;31-37;9-15
+27-28;8-16;17-18;6-8;16-24;16-29;31-45;5-32;18-23
+0-1;25-26;8-28;17-24;17-25;33-39;39-42;31-37
+2-3;1-10;25-26;8-20;21-31;16-29;32-44;9-15;5-8;18-23;24-38;24-50
+27-28;8-20;8-24;13-32;13-33;6-7;6-25;9-31;5-32
+15-18;15-19;17-35;17-24;6-7;16-29;31-47;18-23;24-45
+1-7;15-19;23-24;13-33;17-20;17-18;17-28;6-28;6-34;39-42
+1-8;14-15;15-19;27-28;8-28;11-38;6-34;16-29;32-44;48-49;5-32;18-23;40-49;19-41
+14-16;15-19;8-24;17-29;16-17;32-48;38-43
+1-4;16-29;9-17
+8-20;8-16;6-8;48-49;24-50;3-9;19-20
+12-13;23-24;8-26;11-17;6-28;31-37;24-31;24-45;3-9
+1-11;8-20;17-24;17-36;9-17;3-9;19-20
+8-24;6-28;39-42;31-47;5-32;40-49;19-41;19-20
+0-1;15-18;17-36;6-34;19-20
+1-8;14-17;25-26;8-26;33-39;33-40;6-25;31-37;31-47;32-44
+0-1;20-21;13-33;33-39;6-11;5-7;24-38
+14-15;8-24;6-7;6-17;31-46;40-49;24-45
+1-10;12-13;23-24;13-33;17-35;17-26;32-42;24-31;24-50;19-41;19-51
+1-6;20-21;8-20;21-31;17-18;17-26;11-24;16-24;32-44;9-31
+1-8;8-20;17-20;17-25;17-26;6-8;6-34;16-17;31-45;31-47;24-31
+17-24;11-24;6-34;31-45;31-46;7-13
+14-15;20-21;27-28;13-32;17-36;6-8;31-46;32-48;32-42;7-13;5-32
+1-7;1-11;11-17;6-25;31-45;3-9
+2-3;15-18;17-35;11-17;6-28;6-8;6-11;32-44;9-17;24-50;3-9
+8-16;13-32;17-18;17-28;17-24;11-17;31-37;32-48;32-42;24-45
+1-5;16-17;31-46;48-49
+8-20;17-28;11-17;16-29;31-37;24-38;19-20
+14-15;8-20;11-17;33-40;6-25;6-34;31-47;32-42;5-7;18-23;19-20
+0-1;20-21;8-20;13-32;11-17;6-34;16-29;16-17;48-49;9-31;5-8;19-20
+1-10;14-16;15-19;23-24;8-26;17-18;17-36;31-46;5-8
+1-4;1-5;1-6;1-8;8-28;16-29;7-13;40-49;24-50
+14-15;14-16;15-18;13-33;17-36;24-45
+11-38;6-8;31-45;38-43;9-15
+1-4;17-25;6-7;6-8;16-29;32-44;9-15;24-45
+25-26;17-24;18-23;24-38;3-9;19-41
+14-15;20-21;8-20;21-31;17-36;6-34;9-15;5-8;5-7;40-48;40-49
+27-28;8-20;33-40;6-28;6-11;9-30;19-41
+17-18;17-36;6-17;16-17;31-46;5-7;24-38
+1-7;14-15;20-21;8-28;13-32;17-25;31-37;32-48;9-31;9-30
+1-5;12-13
+2-3;25-26;17-20;33-40;32-48;24-31
+0-1;15-18;20-21;23-24;11-24;16-24;31-45;31-46
+0-1;12-13;14-16;8-20;13-32;11-24;6-28;6-34;9-19;24-31;19-20
+1-11;17-25;17-36;48-49;5-8;24-38;19-41
+1-8;27-28;8-20;13-33;17-20;17-29;39-42;9-31;9-19;19-20
+1-7;1-10;20-21;8-26;21-31;6-25;9-19;40-49;24-38
+1-7;14-15;15-19;8-16;8-28;17-29;32-42;9-19
+15-19;25-26;27-28;11-38;6-28;48-49;9-19;5-7
+15-19;20-21;20-22;8-24;39-42;16-24;9-17
+1-11;14-15;20-22;33-40;32-44;5-8;40-48;40-49
+20-22;27-28;8-16;17-35;17-20;6-25;6-17;19-51
+20-21;20-22;17-25;17-36
+1-4;14-16;8-20;8-24;21-31;7-13;3-9
+1-4;1-5;25-26;6-28;6-11;31-46;38-43;9-31;24-45
+20-21;27-28;6-11;9-15;5-32;24-50
+1-8;6-8;39-42;16-29;32-48;18-23;40-49
+0-1;8-16;13-33;17-26;6-25;32-42;40-48
+1-11;23-24;8-24;13-32;17-26;17-36;6-7;6-34;16-24;32-44;38-43;19-20
+13-33;17-26;33-40;6-17;31-46;24-38;19-41;19-51
+13-32;17-35;17-26;39-42;16-29;5-7;18-23
+1-10;15-18;25-26;8-20;17-18;17-25;17-29;6-28;6-11;31-45;9-30;19-20
+8-20;8-24;6-25;24-38;19-20
+2-3;1-7;14-16;17-29;7-13;38-43;9-15;9-30;9-17;40-48;24-45
+12-13;31-37;9-31;24-50;3-9;19-41
+12-13;17-20;17-29;11-38;6-8;9-30;3-9
+0-1;2-3;25-26;31-46;38-43;9-31;19-51
+2-3;21-31;17-18;11-24;48-49;9-15;24-31
+33-40;16-24;9-30;5-7
+1-5;1-9;1-11;14-17;8-20;8-16;13-33;17-20;9-15;5-32;5-8;24-31
+0-1;1-6;1-7;15-19;8-26;13-32;33-39;6-25;9-30;5-8;5-7;24-38
+15-19;13-33;17-25;16-17;31-47;32-48;40-48;24-45
+1-4;1-8;14-15;15-19;17-20;17-18;11-17;33-40;6-17;32-42;9-30
+1-4;1-10;25-26;13-33;11-17;9-17
+1-4;8-28;11-38;31-37;9-31;19-51
+14-16;33-39;6-25;6-8;32-42;7-13;9-17;5-32
+1-5;1-10;8-28;8-26;17-28;17-36;11-17;33-39;31-37;32-44;5-8;3-9
+15-18;33-39;39-42
+1-8;14-17;17-18;6-7;6-17;6-34;7-13;9-15;5-8;24-38
+2-3;1-5;14-17;23-24;17-20;6-34;32-42;48-49;40-48;40-49
+14-17;15-18;8-16;6-8
+17-28;17-36;33-40;32-44;24-38;19-41
+1-6;6-28;32-42;48-49;5-32;19-51
+0-1;2-3;12-13;14-15;9-15;40-49
+0-1;2-3;1-6;1-11;20-22;27-28;8-26;17-29;16-29;5-32;40-48
+1-7;1-10;13-33;17-28;17-29;33-40;6-34;31-45;32-44;9-17;5-32;40-48;24-31
+13-32;11-24;31-45;31-37
+12-13;20-22;27-28;17-35;11-24;31-46;9-17;5-32;5-7;18-23;3-9
+0-1;1-4;14-16;8-26;17-20;17-29;33-40
+1-8;1-10;15-18;24-38
+17-25;11-24;6-7;9-31;5-7;18-23;24-31;19-51
+14-15;23-24;27-28;13-32;17-18;16-24;16-29;5-32;5-8;24-45;24-50
+1-5;1-7;8-26;6-7;16-17;5-8;19-41;19-20
+1-4;25-26;8-20;8-26;6-7;9-30;40-48;40-49;19-20
+0-1;1-4;1-8;14-16;8-20;8-16;8-28;17-25;16-29;32-42;48-49;9-31;18-23;3-9
+2-3;1-4;20-22;17-26;6-25;6-11;9-30;9-17;9-19
+1-4;14-16;20-22;17-20;17-26;11-38;33-39;6-28;6-17;16-29;31-37;32-48;9-19;18-23;24-38
+1-6;1-10;20-22;17-24;17-26;16-17;48-49;9-15;9-30;9-19;24-45
+14-15;15-18;15-19;20-22;8-16;13-32;17-26;16-29;9-19;5-7;18-23
+0-1;1-5;11-17;6-7;6-25;16-17;31-46;7-13;5-8;5-7
+1-8;12-13;15-19;20-22;23-24;8-28;21-31;7-13;9-30;19-51
+12-13;15-19;20-22;17-24;11-24;16-29;32-42;38-43;5-7;18-23;40-48
+15-19;20-22;13-33;17-25;6-17;7-13;9-30;40-49;24-31
+20-22;8-16;17-20;11-24;11-17;6-11;16-29;18-23;19-41
+0-1;20-22;13-33;17-28;17-24;11-17;33-40;6-8;9-31;9-30;24-38;24-31
+1-8;1-11;25-26;11-38;6-34;24-45
+6-34;31-37;38-43;9-17;19-41
+1-7;15-18;17-18;17-25;11-17;9-17;5-32;40-48;24-38;19-51
+1-5;8-16;11-17;6-7;31-37;32-44;5-7;19-41
+1-10;1-11;21-31;17-20;16-17;48-49;19-51
+8-24;17-28;6-28;9-30;9-19;5-8;24-38
+2-3;1-4;15-19;13-33;17-29;9-15;9-17;5-32;5-8
+1-8;17-24;16-24;5-32;5-7
+2-3;23-24;25-26;17-29;7-13
+1-10;14-17;8-16;21-31;17-18;6-25;6-34;16-17;31-45;32-44;48-49;5-8
+1-4;1-7;14-17;17-24;17-29;6-8;6-34;31-45;31-46;9-31;5-32;24-45
+0-1;14-16;20-21;17-29;6-25;6-8;16-17
+1-4;1-5;1-8;14-17;8-26;13-33;32-42;40-49
+0-1;1-4;14-17;15-18;8-16;17-24;33-40;6-28;32-44;9-15;5-32
+12-13;13-33;17-18;16-17;31-46;31-37
+12-13;8-28
+14-15;8-24;17-25;17-36;6-34;6-11;5-7;40-49
+1-5;15-19;13-32;11-24;6-28;6-8;6-11;32-44;32-42;7-13;18-23;3-9
+1-6;1-11;12-13;27-28;8-28;11-24;16-17;40-48
+15-19;8-26;17-28;17-36;6-17;39-42;31-47;32-48;9-15;5-32
+15-19;23-24;8-26;17-35;17-20;17-24;11-24;6-7;6-28;7-13;38-43
+1-5;1-10;15-19;27-28;8-24;13-32;6-7;24-31;19-41
+15-18;8-20;31-47;7-13
+2-3;1-8;14-16;8-20;13-32;17-20;11-38;6-7;31-46;9-30;24-50
+0-1;14-15;15-19;6-8;31-37;9-17;5-8
+1-11;14-16;15-19;17-18;17-28;6-11;9-30;5-7
+15-19;8-26;16-17;40-48
+2-3;25-26;8-16;13-32;39-42;32-44
+1-8;14-15;25-26;21-31;13-33;17-18;11-38;6-7;31-37;24-50
+1-5;1-8;23-24;13-33;16-29;5-32;18-23;19-51
+8-20;8-24;17-29;6-17;31-47;9-15;24-38
+1-4;8-20;17-35;17-26;33-40;16-29;32-48;38-43;5-8;18-23;24-50;3-9
+1-4;1-7;14-15;15-18;8-16;21-31;17-26;17-29;6-11;39-42;32-44;7-13;5-32
+1-9;25-26;8-28;17-26;17-29;11-24;6-11;48-49
+1-11;20-21;8-24;17-36;31-37;7-13;9-17;40-48;24-50
+0-1;2-3;1-9;13-32;17-29;24-38;24-31
+1-6;14-15;17-18;17-36;33-40;6-25;16-29;31-46;48-49;3-9
+1-7;1-9;20-21;23-24;17-35;17-29;32-42;18-23;3-9
+2-3;1-5;8-16;8-28;8-24;21-31;17-36;33-39;6-8;39-42;16-29;19-51
+1-7;33-39;7-13;5-32;19-51
+14-15;33-39;38-43;9-31;18-23;40-49
+15-18;20-21;17-36;11-38;33-40;16-24;16-29;31-45;31-46;19-41
+1-10;8-26;17-18;6-7;6-28;6-17;31-45;32-48;9-15;9-19;18-23;40-48
+8-16;8-24;17-35;39-42;16-29;31-45;9-19;24-38
+1-7;14-16;20-21;17-24;16-17;31-37;9-17;9-19;18-23
+1-8;1-9;1-10;1-11;13-32;13-33;33-39;39-42;32-44;9-19;40-49
+8-28;17-28;33-39;31-37;7-13;9-17;19-41;19-51
+1-9;14-15;8-24;17-20;16-24;9-15;24-50
+0-1;1-6;6-28;6-8;40-48;3-9;19-20
+1-9;1-11;12-13;15-18;23-24;8-26;33-40;39-42;9-31;19-20
+1-10;1-11;17-20;33-39;32-48;38-43;24-38
+2-3;20-21;17-20;17-24;6-34;16-24;31-47;38-43;24-38;24-45
+8-24;21-31;13-32;6-11;48-49;24-45;19-20
+1-7;15-19;20-22;25-26;6-28;16-17;31-47;32-42;9-30;5-8
+1-6;1-10;1-11;14-16;15-19;20-22;8-20;17-20;17-25;33-40;6-25;39-42;38-43;40-49;24-31
+2-3;14-17;15-19;20-22;8-20;17-36;6-17;32-48;9-30
+8-28;8-24;11-17;6-28;39-42;31-47;32-44;32-42;9-15;19-51
+0-1;20-21;27-28;8-26;17-20;11-17;40-48
+1-11;14-17;20-22;23-24;8-28;6-7;6-34;39-42;31-47;7-13;9-15;5-7
+0-1;1-7;14-17;15-18;20-22;17-29;17-36;6-11;32-42;38-43;9-31;9-30;24-45
+15-19;20-21;27-28;8-24;6-7;6-28;6-25;6-11;39-42;16-24;32-44;48-49;7-13
+14-15;32-44;9-31
+8-28;16-17;31-47;5-8
+1-5;17-35;6-8;39-42
+1-6;20-21;8-28;13-32;13-33;17-24;31-47;48-49;9-30;40-48;19-51
+25-26;8-24;8-26;38-43
+1-6;14-16;8-28;17-18;11-17;6-34;6-11;31-47;5-7
+17-28;17-25;48-49;5-32;5-8
+1-5;12-13;14-16;15-18;31-37;32-48;32-44;38-43;9-17;5-7;40-49;24-45
+1-10;1-11;12-13;17-26
+23-24;17-24;17-26;11-24;7-13;5-32
+0-1;2-3;25-26;8-16;17-18;17-28;17-26;31-47;19-51
+17-25;16-24;5-32;24-31;24-45
+8-26;33-39;6-7;6-8;32-44;24-31
+1-11;13-32;17-24;33-39;6-7;6-28;6-17;6-11;16-24;16-17;38-43;19-41
+21-31;16-29;32-42;24-31
+1-6;8-16;13-33;17-36;18-23
+1-5;15-19;38-43;24-31
+1-6;1-8;14-16;15-18;15-19;25-26;21-31;13-32;17-29;31-46;32-42;5-7
+27-28;33-39;31-37;31-47;5-32;24-50;19-41;19-51
+8-26;17-25;17-29;33-39;6-28;7-13;9-17;5-7
+1-10;17-35;17-20;11-38;32-48
+1-5;14-17;13-32;16-24;9-17
+1-8;20-21;17-18;17-36;16-17;5-7;24-50
+1-7;14-15;14-17;8-16;3-9
+1-10;14-17;25-26;17-18;33-40;6-8;31-45;32-48;9-31;5-32;19-41
+14-16;14-17;23-24;17-28;17-25;11-38;33-39;6-7;16-17;31-45;48-49;38-43;9-30;24-38
+15-18;17-35;17-24;6-17;31-46;32-44;24-45
+2-3;1-6;12-13;14-15;21-31;17-20;17-28;11-24;6-7;38-43;5-8
+1-11;6-7;31-45;5-32;3-9
+8-16;13-32;13-33;17-24;17-25;11-24;11-38;16-24;31-45;9-17;3-9;19-41
+25-26;8-28;31-45;31-46;32-44;40-49
+2-3;16-24;7-13;9-30;9-17;9-19;24-50
+1-4;1-10;27-28;8-28;9-19;24-38
+0-1;1-5;1-11;12-13;17-28;6-11;31-47;48-49;24-31
+1-4;1-8;23-24;13-32;11-38;9-31;9-30;9-19;5-32;5-8
+1-4;17-35;17-18;6-8;9-19;24-31;24-45;19-41;19-20
+1-4;15-18;25-26;27-28;17-24;32-48;38-43;9-30;9-19;19-20
+0-1;1-7;25-26;48-49;5-32;19-20
+14-15;20-22;8-28;17-20;6-11;19-20
+1-8;20-22;27-28;17-24;17-29;11-17;6-17;6-34;32-42;9-15
+1-5;20-22;21-31;17-35;17-18;11-17;6-28;6-34;31-37;48-49;5-32;24-38;3-9
+20-22;17-29;9-17;5-8
+20-22;23-24;27-28;8-20;8-26;17-24;17-25;11-38;16-17;9-15;24-45
+2-3;1-7;15-19;20-22;8-20;13-33;17-29;6-7;31-47;7-13;9-31;5-32;19-51
+1-7;12-13;8-20;17-36;32-44;38-43;9-17;5-32;5-7;19-41
+1-10;15-18;17-29;32-48
+12-13;15-19;20-22;27-28;13-32;13-33;17-35;17-18;33-39;6-11;16-24;32-42;19-41
+15-19;17-26;11-24;33-40;5-32
+0-1;1-5;1-11;14-16;8-16;17-28;17-26;16-17;32-48;5-7
+25-26;17-26;6-25;6-8;31-47;5-8;19-41
+1-7;8-28;21-31;6-17;16-29;31-37;5-32;5-7;24-45
+17-35;17-20;17-18;11-38;33-40;9-17;24-31
+1-11;8-16;17-28;17-25;16-29;48-49
+14-15;15-18;32-44;9-15;9-31;5-32;18-23;40-49
+23-24;6-28;16-29;31-47
diff --git a/examples/failures/latency.orig b/examples/failures/latency.orig
new file mode 100644
index 0000000..7c3fd07
--- /dev/null
+++ b/examples/failures/latency.orig
@@ -0,0 +1,84 @@
+0 1 0.312
+2 3 10.786
+1 4 0.222
+1 5 1.035
+1 6 1.414
+1 7 1.24
+1 8 0.814
+1 9 19.532
+1 10 0.352
+1 11 4.593
+12 13 2.622
+14 15 0.207
+14 16 12.098
+14 17 13.941
+15 18 7.791
+15 19 38.946
+20 21 19.775
+20 22 0.345
+23 24 5.337
+25 26 0.276
+27 28 0.645
+8 20 19.787
+8 16 8.352
+8 28 1.578
+8 24 10.459
+8 26 5.005
+21 31 20.741
+13 32 4.737
+13 33 1.424
+17 35 2.091
+17 20 14.409
+17 18 7.13
+17 28 6.214
+17 24 6.437
+17 25 1.315
+17 26 1.176
+17 29 3.282
+17 36 2.478
+11 24 5.751
+11 38 3.235
+11 17 4.718
+33 39 1.817
+33 40 2.035
+6 7 0.327
+6 28 0.97
+6 25 5.176
+6 8 0.612
+6 17 5.725
+6 34 0.802
+6 11 6.007
+39 42 0.699
+16 24 3.655
+16 29 0.135
+16 17 3.286
+31 45 0.268
+31 46 0.268
+31 37 3.375
+31 47 2.708
+32 48 1.712
+32 44 2.329
+32 42 1.595
+48 49 3.201
+7 13 31.13
+38 43 1.643
+9 15 5.513
+9 20 0.437
+9 31 2.648
+9 30 0.124
+9 17 14.774
+9 19 42.03
+5 32 28.338
+5 8 0.359
+5 7 0.316
+18 23 0.779
+40 48 2.34
+40 49 2.529
+24 38 7.706
+24 31 9.827
+24 45 10.045
+24 50 0.092
+3 9 59.812
+19 41 26.19
+19 20 42.057
+19 51 14.125
diff --git a/examples/failures/weight.orig b/examples/failures/weight.orig
new file mode 100644
index 0000000..387a37f
--- /dev/null
+++ b/examples/failures/weight.orig
@@ -0,0 +1,84 @@
+0 1 312
+2 3 10786
+1 4 222
+1 5 2500
+1 6 4000
+1 7 2500
+1 8 3860
+1 9 11769
+1 10 352
+1 11 3500
+12 13 2622
+14 15 500
+14 16 14192
+14 17 8909
+15 18 11747
+15 19 44530
+20 21 19775
+20 22 345
+23 24 5337
+25 26 2184
+27 28 645
+8 20 11409
+8 16 8282
+8 28 3000
+8 24 7735
+8 26 5500
+21 31 20741
+13 32 7552
+13 33 1500
+17 35 2091
+17 20 14409
+17 18 4337
+17 28 4000
+17 24 5735
+17 25 1315
+17 26 2500
+17 29 3282
+17 36 2478
+11 24 5096
+11 38 3235
+11 17 4360
+33 39 2000
+33 40 3000
+6 7 2500
+6 28 6860
+6 25 5176
+6 8 5860
+6 17 3860
+6 34 802
+6 11 5500
+39 42 699
+16 24 1547
+16 29 3000
+16 17 5282
+31 45 500
+31 46 268
+31 37 3375
+31 47 2708
+32 48 1712
+32 44 2329
+32 42 3352
+48 49 3201
+7 13 30890
+38 43 1643
+9 15 5500
+9 20 2500
+9 31 4735
+9 30 124
+9 17 13909
+9 19 42030
+5 32 28338
+5 8 2360
+5 7 2000
+18 23 5735
+40 48 2340
+40 49 2529
+24 38 2860
+24 31 9909
+24 45 10409
+24 50 92
+3 9 59812
+19 41 26190
+19 20 39530
+19 51 14125
diff --git a/examples/interest-header-example.cc b/examples/interest-header-example.cc
deleted file mode 100644
index e068feb..0000000
--- a/examples/interest-header-example.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- */
-#include "ns3/test.h"
-#include "ns3/annotated-topology-reader.h"
-#include "ns3/ccnx-interest-header.h"
-#include "ns3/uinteger.h"
-#include "ns3/random-variable.h"
-#include <limits> 
-#include "ns3/ccnx-header-helper.h"
-#include "ns3/header.h"
-#include "ns3/ccnx-name-components.h"
-#include "ns3/nstime.h"
-#include "ns3/buffer.h"
-#include "ns3/log.h"
-#include "ns3/packet.h"
-
-using namespace ns3;
-#include <fstream>
-
-NS_LOG_COMPONENT_DEFINE ("InterestHeaderExample");
-
-int
-main (int argc, char *argv[])
-{
-  // LogComponentEnable ("InterestHeaderExample", LOG_ALL);
-  // LogComponentEnable ("Packet", LOG_ALL);
-	
-  NS_LOG_INFO ("Test started");
-
-  Packet::EnablePrinting ();
-  Packet::EnableChecking (); 
-  Packet packet (0);
-
-  CcnxInterestHeader interestHeader;
-	
-  Ptr<CcnxNameComponents> testname = Create<CcnxNameComponents> ();
-  (*testname) ("first") ("second");
-  interestHeader.SetName(testname);
-	
-  uint32_t minSuffixComponents = 20;
-  interestHeader.SetMinSuffixComponents(minSuffixComponents);
-	
-  uint32_t maxSuffixComponents = 40;
-  interestHeader.SetMaxSuffixComponents(maxSuffixComponents);
-	
-  Time lifetime = Seconds(661777) + MicroSeconds(1234);
-  interestHeader.SetInterestLifetime(lifetime);
-
-  bool child = true;
-  interestHeader.SetChildSelector(child);
-
-  Ptr<CcnxNameComponents> exclude = Create<CcnxNameComponents> ();
-  (*exclude) ("exclude1") ("exclude2");
-  interestHeader.SetExclude(exclude);
-
-  UniformVariable random(1, std::numeric_limits<uint32_t>::max ());
-  uint32_t randomNonce = static_cast<uint32_t> (random.GetValue());
-  interestHeader.SetNonce(randomNonce);
-    
-  interestHeader.SetNack(CcnxInterestHeader::NACK_CONGESTION);
-  NS_LOG_INFO ("Source: \n" << interestHeader);
-    
-  packet.AddHeader (interestHeader);
-  NS_LOG_INFO ("Deserialized packet: " << packet);
-
-  NS_LOG_INFO ("Removing and deserializing individual headers");
-	
-  CcnxInterestHeader target;
-  packet.RemoveHeader (target);
-
-  // NS_LOG_INFO ("Target: \n" << target);
-
-  return 0;
-}
diff --git a/examples/link-failure-base.cc b/examples/link-failure-base.cc
new file mode 100644
index 0000000..a499f8d
--- /dev/null
+++ b/examples/link-failure-base.cc
@@ -0,0 +1,261 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+ 
+ 
+#include "ns3/core-module.h"
+#include "ns3/network-module.h"
+#include "ns3/point-to-point-module.h"
+#include "ns3/NDNabstraction-module.h"
+#include "ns3/point-to-point-grid.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/random-variable.h"
+#include "ns3/ccnx.h"
+#include "ns3/topology-reader.h"
+#include "../model/ccnx-net-device-face.h"
+
+#include <iostream>
+#include <sstream>
+#include <map>
+#include <list>
+#include <set>
+#include "ns3/rocketfuel-topology-reader.h"
+
+#include <boost/lexical_cast.hpp>
+#include <boost/foreach.hpp>
+
+using namespace ns3;
+using namespace std;
+using namespace boost;
+
+NS_LOG_COMPONENT_DEFINE ("LinkFailureSprint");
+
+#include "base-experiment.h"
+
+class Experiment : public BaseExperiment
+{
+public:
+  typedef tuple<string, string> failure_t;
+  typedef list<failure_t> failures_t;
+  
+  Experiment (const string &file)
+  {
+    ifstream failures (("./src/NDNabstraction/examples/failures/failures-"+file).c_str ());
+    for(std::string line; std::getline(failures, line); )
+      {
+        if (line == "")
+          {
+            m_failures.push_back (failures_t ());
+            continue;
+          }
+
+        failures_t failures;
+        istringstream run (line);
+        while (!run.eof () && !run.bad ())
+          {
+            int32_t link1 = -1;
+            int32_t link2 = -1;
+            run >> link1;
+            run.get ();
+            run >> link2;
+            run.get ();
+            if (link1 < 0 || link2 < 0) continue;
+
+            // cout << link1 << " <-> " << link2 << "   ";
+            failures.push_back (failure_t (lexical_cast<string> (link1), lexical_cast<string> (link2)));
+          }
+        m_failures.push_back (failures);
+      }
+  }
+  
+  // hijacker is more than an application. just disable all faces
+  void
+  FailLinks (uint32_t failId)
+  {
+    failures_t failures = m_failures [failId];
+    BOOST_FOREACH (failure_t failure, failures)
+      {
+        Ptr<Node> node1 = Names::Find<Node> ("/sprint", failure.get<0> ());
+        Ptr<Node> node2 = Names::Find<Node> ("/sprint", failure.get<1> ());
+        // cout << failure.get<0> () << " <-> " << failure.get<1> () << "   ";
+        // cout << node1 << ", " << node2 << "\n";
+
+        Ptr<Ccnx> ccnx1 = node1->GetObject<Ccnx> ();
+        Ptr<Ccnx> ccnx2 = node2->GetObject<Ccnx> ();
+        for (uint32_t faceId = 0; faceId < ccnx1->GetNFaces (); faceId++)
+          {
+            Ptr<CcnxFace> face = ccnx1->GetFace (faceId);
+            Ptr<CcnxNetDeviceFace> ndFace = face->GetObject<CcnxNetDeviceFace> ();
+            if (ndFace == 0) continue;
+
+            Ptr<PointToPointNetDevice> nd1 = ndFace->GetNetDevice ()->GetObject<PointToPointNetDevice> ();
+            if (nd1 == 0) continue;
+
+            Ptr<Channel> channel = nd1->GetChannel ();
+            if (channel == 0) continue;
+
+            Ptr<PointToPointChannel> ppChannel = DynamicCast<PointToPointChannel> (channel);
+
+            Ptr<NetDevice> nd2 = ppChannel->GetDevice (0);
+            if (nd2->GetNode () == node1)
+              nd2 = ppChannel->GetDevice (1);
+
+            if (Names::FindName (nd2->GetNode ()) == failure.get<1> ())
+              {
+                cout << "Failing " << failure.get<0> () << " <-> " << failure.get<1> () << " link\n";
+
+                Ptr<CcnxFace> face1 = ccnx1->GetFaceByNetDevice (nd1);
+                Ptr<CcnxFace> face2 = ccnx2->GetFaceByNetDevice (nd2);
+
+                face1->SetUp (false);
+                face2->SetUp (false);
+
+                // set metric to max (for GlobalRouter to know what we want)
+                Ptr<Ipv4> ipv4_1 = ccnx1->GetObject<Ipv4> ();
+                Ptr<Ipv4> ipv4_2 = ccnx2->GetObject<Ipv4> ();
+
+                uint32_t if1 = ipv4_1->GetInterfaceForDevice (nd1);
+                uint32_t if2 = ipv4_2->GetInterfaceForDevice (nd2);
+
+                ipv4_1->SetMetric (if1, std::numeric_limits<uint16_t>::max ());
+                ipv4_2->SetMetric (if2, std::numeric_limits<uint16_t>::max ());
+                break;
+              }
+          }
+      }
+  }
+
+  //We are creating "everybody-to-everybody" usage pattern
+  ApplicationContainer
+  AddApplications()
+  {
+    NS_LOG_INFO ("Adding applications");
+    NS_LOG_INFO ("GetN = " << reader->GetNodes().GetN());
+
+    double delay = 0;
+    
+    ApplicationContainer apps;
+    for (uint32_t i = 0; i<reader->GetNodes().GetN(); i++)
+    {
+      NS_LOG_INFO("i="<<i);
+      Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (i));
+        
+      CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+      producerHelper.SetPrefix ("/" + lexical_cast<string> (node1->GetId ()));
+        
+      apps.Add (producerHelper.Install (node1));
+            
+      CcnxAppHelper consumerHelper ("ns3::CcnxConsumerBatches");
+      consumerHelper.SetAttribute ("LifeTime", StringValue("100s"));
+      consumerHelper.SetAttribute ("Batches", StringValue("2s 1"));
+      
+      for(uint32_t j = 0; j<reader->GetNodes().GetN();j++)
+      {
+        NS_LOG_INFO("j="<<j);
+        if(i==j)
+          continue;
+        
+        Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (j));
+          
+        consumerHelper.SetPrefix ("/" + lexical_cast<string> (node1->GetId ()) + "/" + lexical_cast<string> (node2->GetId ()));
+        ApplicationContainer consumer = consumerHelper.Install (node2);
+        consumer.Start (Seconds (delay));
+        apps.Add (consumer);
+
+        delay += 0.0001;
+      }
+    }
+    
+    return apps;
+  }
+
+private:
+  vector<failures_t> m_failures;
+};
+
+int 
+main (int argc, char *argv[])
+{
+  cout << "Begin link failure scenario\n";
+
+  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("100Mbps"));
+  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("2000"));
+  Config::SetDefault ("ns3::RttEstimator::InitialEstimation", StringValue ("0.5s"));
+  // Config::SetDefault ("ns3::RttEstimator::MaxMultiplier", StringValue ("16.0")); // original default is 64.0
+
+  Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
+  Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
+  Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
+
+  // Config::SetDefault ("ns3::CcnxConsumer::LifeTime", StringValue ("100s"));
+  
+  uint32_t maxRuns = 1;
+  uint32_t startRun = 0;
+  std::string failures = "";
+  CommandLine cmd;
+  cmd.AddValue ("start", "Initial run number", startRun);
+  cmd.AddValue ("runs", "Number of runs", maxRuns);
+  cmd.AddValue ("failures", "File with failures", failures);
+  cmd.Parse (argc, argv);
+
+  if (failures == "")
+    {
+      std::cerr << "--failures=<file> parameter has to be specified" << std::endl;
+      return 1;
+    }
+
+  // ConfigStore config;
+  // config.ConfigureDefaults ();
+
+  Experiment experiment (failures);
+  for (uint32_t run = startRun; run < startRun + maxRuns; run++)
+    {
+      Config::SetGlobal ("RngRun", IntegerValue (run));
+      cout << "seed = " << SeedManager::GetSeed () << ", run = " << SeedManager::GetRun () << endl;
+
+      cout << "Run " << run << endl;
+      string prefix = "link-failure-"+ failures +"-base-" + lexical_cast<string> (run) + "-";
+
+      experiment.ConfigureTopology ();
+      experiment.InstallCcnxStackImpl ();
+
+      CcnxStackHelper ccnxHelper;
+      ccnxHelper.InstallFakeGlobalRoutesImpl ();
+
+      experiment.FailLinks (run);
+
+      Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+      ccnxHelper.InstallRoutesToAll ();
+      
+      ApplicationContainer apps = experiment.AddApplications ();
+      cout << "Total number of applications: " << apps.GetN () << "\n";
+
+      //tracing
+      CcnxTraceHelper traceHelper;
+      // Simulator::Schedule (Seconds (4.5), &CcnxTraceHelper::EnableSeqsAppAll, &traceHelper,
+      //                      "ns3::CcnxConsumerBatches", prefix + "consumers-seqs.log");
+      Simulator::Schedule (Seconds (0.1), &CcnxTraceHelper::EnablePathWeights, &traceHelper,
+                           prefix + "weights.log");
+
+      experiment.Run (Seconds(10.0));
+    }
+
+  cout << "Finish link failure scenario\n";
+  return 0;
+}
diff --git a/examples/link-failure-sprint.cc b/examples/link-failure-sprint.cc
new file mode 100644
index 0000000..88f2344
--- /dev/null
+++ b/examples/link-failure-sprint.cc
@@ -0,0 +1,311 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+ 
+ 
+#include "ns3/core-module.h"
+#include "ns3/network-module.h"
+#include "ns3/point-to-point-module.h"
+#include "ns3/NDNabstraction-module.h"
+#include "ns3/point-to-point-grid.h"
+#include "ns3/ipv4-global-routing-helper.h"
+#include "ns3/random-variable.h"
+#include "ns3/ccnx.h"
+#include "ns3/topology-reader.h"
+#include "../model/ccnx-net-device-face.h"
+
+#include <iostream>
+#include <sstream>
+#include <map>
+#include <list>
+#include <set>
+#include "ns3/rocketfuel-topology-reader.h"
+
+#include <boost/lexical_cast.hpp>
+#include <boost/foreach.hpp>
+
+using namespace ns3;
+using namespace std;
+using namespace boost;
+
+NS_LOG_COMPONENT_DEFINE ("LinkFailureSprint");
+
+#include "base-experiment.h"
+
+class Experiment : public BaseExperiment
+{
+public:
+  typedef tuple<string, string> failure_t;
+  typedef list<failure_t> failures_t;
+  
+  Experiment (const string &file)
+  {
+    ifstream failures (("./src/NDNabstraction/examples/failures/failures-"+file).c_str ());
+    for(std::string line; std::getline(failures, line); )
+      {
+        if (line == "")
+          {
+            m_failures.push_back (failures_t ());
+            continue;
+          }
+
+        failures_t failures;
+        istringstream run (line);
+        while (!run.eof () && !run.bad ())
+          {
+            int32_t link1 = -1;
+            int32_t link2 = -1;
+            run >> link1;
+            run.get ();
+            run >> link2;
+            run.get ();
+            if (link1 < 0 || link2 < 0) continue;
+
+            // cout << link1 << " <-> " << link2 << "   ";
+            failures.push_back (failure_t (lexical_cast<string> (link1), lexical_cast<string> (link2)));
+          }
+        m_failures.push_back (failures);
+      }
+  }
+  
+  // hijacker is more than an application. just disable all faces
+  void
+  FailLinks (uint32_t failId)
+  {
+    failures_t failures = m_failures [failId];
+    BOOST_FOREACH (failure_t failure, failures)
+      {
+        Ptr<Node> node1 = Names::Find<Node> ("/sprint", failure.get<0> ());
+        Ptr<Node> node2 = Names::Find<Node> ("/sprint", failure.get<1> ());
+        // cout << failure.get<0> () << " <-> " << failure.get<1> () << "   ";
+        // cout << node1 << ", " << node2 << "\n";
+
+        Ptr<Ccnx> ccnx1 = node1->GetObject<Ccnx> ();
+        Ptr<Ccnx> ccnx2 = node2->GetObject<Ccnx> ();
+        for (uint32_t faceId = 0; faceId < ccnx1->GetNFaces (); faceId++)
+          {
+            Ptr<CcnxFace> face = ccnx1->GetFace (faceId);
+            Ptr<CcnxNetDeviceFace> ndFace = face->GetObject<CcnxNetDeviceFace> ();
+            if (ndFace == 0) continue;
+
+            Ptr<PointToPointNetDevice> nd1 = ndFace->GetNetDevice ()->GetObject<PointToPointNetDevice> ();
+            if (nd1 == 0) continue;
+
+            Ptr<Channel> channel = nd1->GetChannel ();
+            if (channel == 0) continue;
+
+            Ptr<PointToPointChannel> ppChannel = DynamicCast<PointToPointChannel> (channel);
+
+            Ptr<NetDevice> nd2 = ppChannel->GetDevice (0);
+            if (nd2->GetNode () == node1)
+              nd2 = ppChannel->GetDevice (1);
+
+            if (Names::FindName (nd2->GetNode ()) == failure.get<1> ())
+              {
+                cout << "Failing " << failure.get<0> () << " <-> " << failure.get<1> () << " link\n";
+
+                Ptr<CcnxFace> face1 = ccnx1->GetFaceByNetDevice (nd1);
+                Ptr<CcnxFace> face2 = ccnx2->GetFaceByNetDevice (nd2);
+
+                face1->SetUp (false);
+                face2->SetUp (false);
+
+                // set metric to max (for GlobalRouter to know what we want)
+                Ptr<Ipv4> ipv4_1 = ccnx1->GetObject<Ipv4> ();
+                Ptr<Ipv4> ipv4_2 = ccnx2->GetObject<Ipv4> ();
+
+                uint32_t if1 = ipv4_1->GetInterfaceForDevice (nd1);
+                uint32_t if2 = ipv4_2->GetInterfaceForDevice (nd2);
+
+                ipv4_1->SetMetric (if1, std::numeric_limits<uint16_t>::max ());
+                ipv4_2->SetMetric (if2, std::numeric_limits<uint16_t>::max ());
+                break;
+              }
+          }
+      }
+  }
+
+  // void
+  // FailLinks(double threshold)
+  // {
+  //   NS_LOG_INFO("Failing links");
+  //   m_linkRand = UniformVariable(0, 1.0);
+  //   double probability = 0.0;
+    
+  //   BOOST_FOREACH (const TopologyReader::Link &link, m_reader.GetLinks())
+  //     {
+  //       probability = m_linkRand.GetValue();
+  //       NS_LOG_INFO ("Probability = " << probability);
+        
+  //       if(probability <= threshold)
+  //         {
+  //           Ptr<Node> fromNode = link.GetFromNode ();
+  //           Ptr<Node> toNode = link.GetToNode ();
+  //           NS_LOG_INFO("From node id = " << fromNode->GetId());
+  //           NS_LOG_INFO("To node id = " << toNode->GetId());
+            
+  //           Ptr<CcnxL3Protocol> fromCcnx = fromNode->GetObject<CcnxL3Protocol> ();
+  //           Ptr<CcnxL3Protocol> toCcnx = toNode->GetObject<CcnxL3Protocol> (); 
+          
+  //           Ptr<NetDevice> fromDevice = link.GetFromNetDevice ();
+  //           Ptr<NetDevice> toDevice = link.GetToNetDevice ();
+          
+  //           Ptr<CcnxFace> fromFace = fromCcnx->GetFaceByNetDevice (fromDevice);
+  //           Ptr<CcnxFace> toFace = toCcnx->GetFaceByNetDevice (toDevice);
+          
+  //           NS_LOG_INFO("From face id = " << fromFace->GetId());
+  //           NS_LOG_INFO("To face id = " << toFace->GetId());
+  //           fromFace->SetUp (false);
+  //           toFace->SetUp (false);
+            
+  //           NS_LOG_INFO(fromFace->IsUp());
+  //           NS_LOG_INFO(toFace->IsUp());
+  //         }
+
+  //     }
+  //   /*
+  //   uint32_t nodeId = m_rand.GetValue ();
+  //   Ptr<Node> node = Names::Find<Node> ("/sprint", lexical_cast<string> (nodeId));
+    
+  //   Ptr<CcnxL3Protocol> ccnx = node->GetObject<CcnxL3Protocol> ();
+  //   UniformVariable faceRandom = UniformVariable (0, ccnx->GetNFaces ());
+  //   uint32_t faceId = faceRandom.GetValue();
+  //   Ptr<CcnxFace> face = ccnx->GetFace (faceId);
+  //   face->SetUp(false);
+  //   */
+  // }
+
+  //We are creating "everybody-to-everybody" usage pattern
+  ApplicationContainer
+  AddApplications()
+  {
+    NS_LOG_INFO ("Adding applications");
+    NS_LOG_INFO ("GetN = " << reader->GetNodes().GetN());
+
+    double delay = 0;
+    
+    ApplicationContainer apps;
+    for (uint32_t i = 0; i<reader->GetNodes().GetN(); i++)
+    {
+      NS_LOG_INFO("i="<<i);
+      Ptr<Node> node1 = Names::Find<Node> ("/sprint", lexical_cast<string> (i));
+        
+      CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+      producerHelper.SetPrefix ("/" + lexical_cast<string> (node1->GetId ()));
+        
+      apps.Add (producerHelper.Install (node1));
+            
+      CcnxAppHelper consumerHelper ("ns3::CcnxConsumerBatches");
+      consumerHelper.SetAttribute ("LifeTime", StringValue("100s"));
+      consumerHelper.SetAttribute ("Batches", StringValue("0s 1 1s 1 2s 1 3s 1 6s 1 20s 1"));
+      
+      for(uint32_t j = 0; j<reader->GetNodes().GetN();j++)
+      {
+        NS_LOG_INFO("j="<<j);
+        if(i==j)
+          continue;
+        
+        Ptr<Node> node2 = Names::Find<Node> ("/sprint", lexical_cast<string> (j));
+          
+        consumerHelper.SetPrefix ("/" + lexical_cast<string> (node1->GetId ()) + "/" + lexical_cast<string> (node2->GetId ()));
+        ApplicationContainer consumer = consumerHelper.Install (node2);
+        consumer.Start (Seconds (delay));
+        apps.Add (consumer);
+
+        delay += 0.0001;
+      }
+    }
+    
+    return apps;
+  }
+
+  void
+  RecalculateRouting ()
+  {
+    Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
+  }
+
+private:
+  vector<failures_t> m_failures;
+};
+
+int 
+main (int argc, char *argv[])
+{
+  cout << "Begin link failure scenario\n";
+
+  Config::SetDefault ("ns3::PointToPointNetDevice::DataRate", StringValue ("100Mbps"));
+  Config::SetDefault ("ns3::DropTailQueue::MaxPackets", StringValue ("2000"));
+  Config::SetDefault ("ns3::RttEstimator::InitialEstimation", StringValue ("0.5s"));
+  // Config::SetDefault ("ns3::RttEstimator::MaxMultiplier", StringValue ("16.0")); // original default is 64.0
+
+  Config::SetDefault ("ns3::ConfigStore::Filename", StringValue ("attributes.xml"));
+  Config::SetDefault ("ns3::ConfigStore::Mode", StringValue ("Save"));
+  Config::SetDefault ("ns3::ConfigStore::FileFormat", StringValue ("Xml"));
+
+  // Config::SetDefault ("ns3::CcnxConsumer::LifeTime", StringValue ("100s"));
+  
+  uint32_t maxRuns = 1;
+  uint32_t startRun = 0;
+  std::string failures = "";
+  CommandLine cmd;
+  cmd.AddValue ("start", "Initial run number", startRun);
+  cmd.AddValue ("runs", "Number of runs", maxRuns);
+  cmd.AddValue ("failures", "File with failures", failures);
+  cmd.Parse (argc, argv);
+
+  if (failures == "")
+    {
+      std::cerr << "--failures=<file> parameter has to be specified" << std::endl;
+      return 1;
+    }
+
+  // ConfigStore config;
+  // config.ConfigureDefaults ();
+
+  Experiment experiment (failures);
+  for (uint32_t run = startRun; run < startRun + maxRuns; run++)
+    {
+      Config::SetGlobal ("RngRun", IntegerValue (run));
+      cout << "seed = " << SeedManager::GetSeed () << ", run = " << SeedManager::GetRun () << endl;
+
+      cout << "Run " << run << endl;
+      string prefix = "link-failure-" + lexical_cast<string> (run) + "-";
+  
+      experiment.ConfigureTopology ();
+      experiment.InstallCcnxStack (true);
+      ApplicationContainer apps = experiment.AddApplications ();
+      cout << "Total number of applications: " << apps.GetN () << "\n";
+
+      Simulator::Schedule (Seconds (10.0), &Experiment::FailLinks, &experiment, run);
+      Simulator::Schedule (Seconds (39.0), &Experiment::RecalculateRouting, &experiment);
+
+      //tracing
+      CcnxTraceHelper traceHelper;
+      Simulator::Schedule (Seconds (4.5), &CcnxTraceHelper::EnableSeqsAppAll, &traceHelper,
+                           "ns3::CcnxConsumerBatches", prefix + "consumers-seqs.log");
+      Simulator::Schedule (Seconds (4.5), &CcnxTraceHelper::EnablePathWeights, &traceHelper,
+                           prefix + "weights.log");
+
+      experiment.Run (Seconds(60.0));
+    }
+
+  cout << "Finish link failure scenario\n";
+  return 0;
+}
diff --git a/examples/syntactic-topology-ndnabstraction.cc b/examples/syntactic-topology-ndnabstraction.cc
deleted file mode 100644
index 3fc04a1..0000000
--- a/examples/syntactic-topology-ndnabstraction.cc
+++ /dev/null
@@ -1,226 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 University of California, Los Angeles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
- */
-
-#include "ns3/core-module.h"
-#include "ns3/network-module.h"
-#include "ns3/point-to-point-module.h"
-#include "ns3/NDNabstraction-module.h"
-#include <ns3/point-to-point-grid.h>
-#include "ns3/ipv4-global-routing-helper.h"
-
-#include <iostream>
-#include <sstream>
-
-#include "ns3/ccnx.h"
-
-
-using namespace ns3;
-
-NS_LOG_COMPONENT_DEFINE ("SyncTopologyNDNabstraction");
-
-int 
-main (int argc, char *argv[])
-{
-  // Set up some default values for the simulation.  Use the 
-  
-  Config::SetDefault ("ns3::OnOffApplication::PacketSize", UintegerValue (210));
-  Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue ("448kb/s"));
-  
-  Packet::EnableChecking();
-  Packet::EnablePrinting();
-
-  // Allow the user to override any of the defaults and the above
-  // DefaultValue::Bind ()s at run-time, via command-line arguments
-  CommandLine cmd;
-  cmd.Parse (argc, argv);
-  
-  // Here, we will explicitly create seven nodes. 
-  NS_LOG_INFO ("Create nodes.");
-  NodeContainer c;
-  c.Create (7);
-  Names::Add ("1", c.Get (0));
-  Names::Add ("2", c.Get (1));
-  Names::Add ("3", c.Get (2));
-  Names::Add ("4", c.Get (3));
-  Names::Add ("5", c.Get (4));
-  Names::Add ("6", c.Get (5));
-  Names::Add ("7", c.Get (6));
-    
-    
-  NodeContainer n13 = NodeContainer (c.Get (0), c.Get (2));
-  NodeContainer n23 = NodeContainer (c.Get (1), c.Get (2));
-  NodeContainer n35 = NodeContainer (c.Get (2), c.Get (4));
-  NodeContainer n34 = NodeContainer (c.Get (2), c.Get (3));
-  NodeContainer n45 = NodeContainer (c.Get (3), c.Get (4));
-  NodeContainer n56 = NodeContainer (c.Get (4), c.Get (5));
-  NodeContainer n57 = NodeContainer (c.Get (4), c.Get (6));
-  
-  //Ipv4StaticRoutingHelper staticRouting;
-  
-  //Ipv4ListRoutingHelper list;
-  //list.Add (staticRouting, 1);
-  
-  //Add static routing
-  //InternetStackHelper internet;
-  //internet.SetRoutingHelper (list); // has effect on the next Install ()
-  //internet.Install (c);
-  
-  // We create the channels first without any IP addressing information
-  NS_LOG_INFO ("Create channels.");
-  PointToPointHelper p2p;
-  p2p.SetDeviceAttribute ("DataRate", StringValue ("10Mbps"));
-  p2p.SetChannelAttribute ("Delay", StringValue ("1ms"));
-  NetDeviceContainer nd13 = p2p.Install (n13);
-  NetDeviceContainer nd23 = p2p.Install (n23);
-  NetDeviceContainer nd56 = p2p.Install (n56);
-  
-  p2p.SetDeviceAttribute ("DataRate", StringValue ("10Mbps"));
-  p2p.SetChannelAttribute ("Delay", StringValue ("50ms"));
-  NetDeviceContainer nd57 = p2p.Install (n57);
-  
-  p2p.SetDeviceAttribute ("DataRate", StringValue ("1Mbps"));
-  p2p.SetChannelAttribute ("Delay", StringValue ("1ms"));
-  NetDeviceContainer nd34 = p2p.Install (n34);
-  NetDeviceContainer nd45 = p2p.Install (n45);
-  
-  p2p.SetDeviceAttribute ("DataRate", StringValue ("1Mbps"));
-  p2p.SetChannelAttribute ("Delay", StringValue ("50ms"));
-  NetDeviceContainer nd35 = p2p.Install (n35);
-  
-  InternetStackHelper stack;
-  Ipv4GlobalRoutingHelper ipv4RoutingHelper;
-  // Ptr<Ipv4RoutingHelper> ipv4RoutingHelper = stack.GetRoutingHelper ();
-  stack.SetRoutingHelper (ipv4RoutingHelper);
-  stack.Install(c);
-  // // Create router nodes, initialize routing database and set up the routing
-  // // tables in the nodes.
-  Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
-    
-  // Later, we add IP addresses.
-  NS_LOG_INFO ("Assign IP Addresses.");
-  Ipv4AddressHelper ipv4;
-  ipv4.SetBase ("192.168.1.0", "255.255.255.0");
-  Ipv4InterfaceContainer i13 = ipv4.Assign (nd13);
-  Ipv4InterfaceContainer i23 = ipv4.Assign (nd23);
-  Ipv4InterfaceContainer i35 = ipv4.Assign (nd35);
-  Ipv4InterfaceContainer i34 = ipv4.Assign (nd34);
-  Ipv4InterfaceContainer i45 = ipv4.Assign (nd45);
-  Ipv4InterfaceContainer i56 = ipv4.Assign (nd56);
-  Ipv4InterfaceContainer i57 = ipv4.Assign (nd57);
-  
-    
-    
-    
-  CcnxStackHelper ccnx;
-  ccnx.SetForwardingStrategy ("ns3::CcnxFloodingStrategy");
-  ccnx.EnableLimits (false);
-  Ptr<CcnxFaceContainer> cf = ccnx.Install (c);
-    
-  NS_LOG_INFO ("Installing Applications");
-  CcnxConsumerHelper helper ("/3");
-  ApplicationContainer app = helper.Install (c.Get(1));
-  app.Start (Seconds (1.0));
-  app.Stop (Seconds (1000.05));
-    
-  /*CcnxConsumerHelper helper2 ("/4");
-    ApplicationContainer app2 = helper2.Install(c.Get(5));
-    app2.Start (Seconds (1.0));
-    app2.Stop (Seconds (1000.05));
-  */
-  CcnxProducerHelper helper3 ("/3",120);
-  ApplicationContainer app3 = helper3.Install(c.Get(6));
-  app3.Start(Seconds(0.0));
-  app3.Stop(Seconds(1500.0));
-  /*
-    CcnxProducerHelper helper4 ("/4",150);
-    ApplicationContainer app4 = helper4.Install(c.Get(0));
-    app4.Start(Seconds(0.0));
-    app4.Stop(Seconds(1500.0));
-  */
-    
-  ccnx.AddRoute("1","/3",0,1);
-  ccnx.AddRoute("3","/3",2,1);
-  ccnx.AddRoute("3","/3",3,1);
-  ccnx.AddRoute("4","/3",1,1);
-  ccnx.AddRoute("5","/3",2,1);
-    
-  /*ccnx.AddRoute ("1", "/3", 0, 1);
-    ccnx.AddRoute ("1", "/3", 1, 1);
-    
-    ccnx.AddRoute ("2", "/3", 1, 1);
-    
-    ccnx.AddRoute ("3", "/3", 1, 1);
-    
-    ccnx.AddRoute ("4", "/3", 2, 1);
-    
-    ccnx.AddRoute ("6", "/3", 2, 1);
-    
-    ccnx.AddRoute ("7", "/3", 1, 1);
-    
-    ccnx.AddRoute ("8", "/3", 1, 1);
-  */
-    
-  // Create the OnOff application to send UDP datagrams of size
-  // 210 bytes at a rate of 448 Kb/s from n0 to n4
-  /*NS_LOG_INFO ("Create Applications.");
-    uint16_t port = 9;   // Discard port (RFC 863)
-  
-    std::string sendsizeattr = "SendSize";
-    //flow2 7-->2
-    BulkSendHelper bulksend0 ("ns3::UdpSocketFactory", InetSocketAddress (i23.GetAddress (0), port));
-    //bulksend0.SetAttribute(sendsizeattr, AttributeValue(ConstantVariable(2560)));
-    bulksend0.SetAttribute("MaxBytes", UintegerValue(2560));
-    ApplicationContainer apps = bulksend0.Install(c.Get(6));
-    apps.Start(Seconds (1.0));
-    apps.Stop(Seconds (10.0));
-  
-    // Create a packet sink to receive these packets
-    PacketSinkHelper sink0 ("ns3::UdpSocketFactory", InetSocketAddress(Ipv4Address::GetAny (), port));
-    apps = sink0.Install(c.Get(1));
-    apps.Start(Seconds(0.0));
-    apps.Stop(Seconds(20.0));
-  
-    //flow1 1-->6
-    BulkSendHelper bulksend ("ns3::UdpSocketFactory", InetSocketAddress (i56.GetAddress (1), port));
-    //bulksend.SetAttribute(sendsizeattr, AttributeValue( ConstantVariable(2560)));
-    bulksend0.SetAttribute("MaxBytes", UintegerValue(2560));
-    apps = bulksend.Install (c.Get (0));
-    apps.Start (Seconds (6.0));
-    apps.Stop (Seconds (20.0));
-  
-    // Create a packet sink to receive these packets
-    PacketSinkHelper sink ("ns3::UdpSocketFactory", InetSocketAddress (Ipv4Address::GetAny (), port));
-    apps = sink.Install (c.Get (5));
-    apps.Start(Seconds(0.0));
-    apps.Stop(Seconds(20.0));
-  
-    AsciiTraceHelper ascii;
-    p2p.EnableAsciiAll (ascii.CreateFileStream ("sync-topology-ndnabstraction.tr"));
-    p2p.EnablePcapAll ("sync-topology-ndnabstraction");*/
-  
-  Simulator::Stop (Seconds (2000));
-  
-  NS_LOG_INFO ("Run Simulation.");
-  Simulator::Run ();
-  Simulator::Destroy ();
-  NS_LOG_INFO ("Done.");
-  
-  return 0;
-}
diff --git a/examples/synthetic-topology.cc b/examples/synthetic-topology.cc
index 971bbe1..250a936 100644
--- a/examples/synthetic-topology.cc
+++ b/examples/synthetic-topology.cc
@@ -89,7 +89,7 @@
   ccnxHelper.InstallAll ();
     
   NS_LOG_INFO ("Installing Applications");
-  CcnxAppHelper consumerHelper ("ns3::CcnxConsumer");
+  CcnxAppHelper consumerHelper ("ns3::CcnxConsumerCbr");
 
   consumerHelper.SetPrefix ("/6");
   consumerHelper.SetAttribute ("MeanRate", StringValue ("2Mbps"));
@@ -142,13 +142,13 @@
   Simulator::Stop (finishTime);
 
   CcnxTraceHelper traceHelper;
-  // traceHelper.EnableAggregateAppAll ("ns3::CcnxConsumer");
+  // traceHelper.EnableAggregateAppAll ("ns3::CcnxConsumerCbr");
   // traceHelper.EnableAggregateAppAll ("ns3::CcnxProducer");
   // traceHelper.EnableAggregateL3All ();
   // traceHelper.SetL3TraceFile ("trace-l3.log");
   // traceHelper.SetAppTraceFile ("trace-app.log");
   // traceHelper.EnableRateL3All ("rate-trace.log");
-  traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumer", "consumers-seqs.log");
+  traceHelper.EnableSeqsAppAll ("ns3::CcnxConsumerCbr", "consumers-seqs.log");
 
   NS_LOG_INFO ("Run Simulation.");
   Simulator::Run ();
diff --git a/examples/vanet-ccnx.cc b/examples/vanet-ccnx.cc
new file mode 100644
index 0000000..54f8fa8
--- /dev/null
+++ b/examples/vanet-ccnx.cc
@@ -0,0 +1,140 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2005-2009 Old Dominion University [ARBABI]
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as 
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Hadi Arbabi <marbabi@cs.odu.edu>
+ */
+
+/*
+  This the starting point of the simulation and experiments.
+  The main function will parse the input and parameter settings.
+  Creates a highway and set the highway parameters. then bind the events (callbacks)
+  to the created controller and designed handlers. Sets the highway start and end time,
+  and eventually runs the simulation which is basically running a highway with a controller.
+  You can add your functions to controller to create various scenarios.
+*/
+
+#include <fstream>
+#include <iostream>
+#include <iomanip>
+#include "ns3/core-module.h"
+#include "ns3/network-module.h"
+#include "ns3/mobility-module.h"
+#include "ns3/wifi-module.h"
+
+#include "math.h"
+
+#include "ns3/model.h"
+#include "ns3/highway.h"
+#include "ns3/vehicle-generator.h"
+#include "ns3/tinyxml.h"
+#include "ns3/highway-project-xml.h"
+#include "ns3/highway-xml.h"
+#include "ns3/wifi-configuration-xml.h"
+#include "ns3/highway-project.h"
+
+#include "ns3/ccnx-stack-helper.h"
+#include "ns3/ccnx-face-container.h"
+#include "ns3/ccnx-app-helper.h"
+
+NS_LOG_COMPONENT_DEFINE ("VanetCcnx");
+
+using namespace ns3;
+using namespace std;
+
+void
+EquipVehicle (Ptr<Vehicle> vehicle, Ptr<Highway> highway, double probability)
+{
+  NS_LOG_FUNCTION (vehicle->GetNode ()->GetId () << highway << probability);
+
+  CcnxStackHelper ccnxHelper;
+  ccnxHelper.SetDefaultRoutes (true);
+  Ptr<CcnxFaceContainer> faces = ccnxHelper.Install (vehicle->GetNode ());
+  NS_LOG_DEBUG ("Install CCNx stack. " << faces->GetN () << " faces available");
+
+
+  if (probability < 30)
+    {
+      CcnxAppHelper producerHelper ("ns3::CcnxProducer");
+      producerHelper.SetPrefix ("/");
+      producerHelper.Install (vehicle->GetNode ());
+    }
+  else
+    {
+      CcnxAppHelper consumerHelper ("ns3::CcnxConsumerCbr");
+      consumerHelper.SetAttribute ("LifeTime", StringValue("100s"));
+      consumerHelper.SetAttribute ("Frequency", StringValue("10"));
+      consumerHelper.SetPrefix ("/");
+      consumerHelper.Install (vehicle->GetNode ());
+    }
+}
+
+int
+main (int argc, char *argv[])
+{
+  string projectXmlFile = "";
+
+  CommandLine cmd;
+  cmd.AddValue ("project", "highway xml description", projectXmlFile);
+  cmd.Parse (argc, argv);
+  if (projectXmlFile == "")
+    {
+      std::cerr << "ERROR: --project option MUST be specified\n";
+      return 1;
+    }
+
+  std::ifstream testProjectFile (projectXmlFile.c_str ());
+  if (testProjectFile.bad ())
+    {
+      std::cerr << "ERROR: Cannot open project file\n";
+      return 2;
+    }
+  testProjectFile.close ();
+  
+  TiXmlDocument doc (projectXmlFile.c_str ());
+  doc.LoadFile ();
+  TiXmlHandle hDoc (&doc);
+  TiXmlElement* root = hDoc.FirstChildElement ().Element ();
+  TiXmlHandle hroot = TiXmlHandle (root);
+  HighwayProjectXml xml;
+  xml.LoadFromXml (hroot);
+
+  ns3::PacketMetadata::Enable ();
+  Config::SetDefault ("ns3::WifiRemoteStationManager::FragmentationThreshold", StringValue ("2200"));
+  Config::SetDefault ("ns3::WifiRemoteStationManager::RtsCtsThreshold", StringValue ("2200"));
+  
+  HighwayProject project (xml);
+  // project.SetVehTraceFile (vehicleTraceFile);
+  // project.SetNetTraceFile (networkTraceFile);
+  
+  for (std::list<ns3::Ptr<ns3::VehicleGenerator> >::iterator generator = project.GetVehicleGenerators ().begin ();
+       generator != project.GetVehicleGenerators ().end ();
+       generator++)
+    {
+      (*generator)->TraceConnectWithoutContext ("NewVehicle", MakeCallback (EquipVehicle));
+    }
+  
+  project.Start ();
+
+  Simulator::Run ();
+  Simulator::Destroy ();
+
+  // Ptr<Highway> highway = project.getHighways ()[0];
+  // Simulator::Schedule (Seconds (10), &addCustomVehicle, highway);
+  // project.SetVehicleControlCallback (MakeCallback (&controlVehicle));
+
+  return 0;
+}
diff --git a/helper/ccnx-stack-helper.cc b/helper/ccnx-stack-helper.cc
index ff73cae..b7c8a01 100644
--- a/helper/ccnx-stack-helper.cc
+++ b/helper/ccnx-stack-helper.cc
@@ -19,41 +19,6 @@
  *          Ilya Moiseenko <iliamo@cs.ucla.edu> 
  */
 
-/**
- * \ingroup ccnx
- * \defgroup CcnxStackModel Ccnx Stack Model
- *
- * \section CcnxStackTracingModel Tracing in the Ccnx Stack
- *
- * The ccnx stack provides a number of trace sources in its various
- * protocol implementations.  These trace sources can be hooked using your own 
- * custom trace code, or you can use our helper functions in some cases to 
- * arrange for tracing to be enabled.
- *
- * \subsection CcnxStackCcnxTracingModel Tracing in Ccnx
- *
- * The Ccnx layer three protocol provides three trace hooks.  These are the 
- * "Tx" (ns3::CcnxL3Protocol::m_txTrace), "Rx" (ns3::CcnxL3Protocol::m_rxTrace) 
- * and "Drop" (ns3::CcnxL3Protocol::m_dropTrace) trace sources.
- *
- * The "Tx" trace is fired in a number of situations, all of which indicate that
- * a given packet is about to be sent down to a given ns3::CcnxFace.
- *
- * - \todo list Tx trace events
- *
- * The "Rx" trace is fired when a packet is passed from the device up to the
- * ns3::CcnxL3Protocol::Receive function.
- *
- * - In the receive function, the CcnxFaceList is iterated, and if the
- *   CcnxFace corresponding to the receiving device is found to be in the
- *   UP state, the trace is fired.
- *
- * The "Drop" trace is fired in any case where the packet is dropped (in both
- * the transmit and receive paths).
- *
- * - \todo list Drop trace events
- */
-
 #include "ns3/assert.h"
 #include "ns3/log.h"
 #include "ns3/object.h"
@@ -91,43 +56,11 @@
 #include <limits>
 #include <map>
 #include <boost/foreach.hpp>
-
-#define NDN_DEFAULT_DATA_SIZE      1024
+#include <boost/lexical_cast.hpp>
 
 NS_LOG_COMPONENT_DEFINE ("CcnxStackHelper");
 
 namespace ns3 {
-
-// Things are going to work differently here with respect to trace
-// file handling than in most places because the Tx and Rx trace
-// sources we are interested in are going to multiplex receive and
-// transmit callbacks for all Ccnx and face pairs through one
-// callback.  We want packets to or from each distinct pair to go to
-// an individual file, so we have got to demultiplex the Ccnx and face
-// pair into a corresponding Ptr<PcapFileWrapper> at the callback.
-//
-// A complication in this situation is that the trace sources are
-// hooked on a protocol basis.  There is no trace source hooked by an
-// Ccnx and face pair.  This means that if we naively proceed to hook,
-// say, a drop trace for a given Ccnx with face 0, and then hook for
-// Ccnx with face 1 we will hook the drop trace twice and get two
-// callbacks per event.  What we need to do is to hook the event once,
-// and that will result in a single callback per drop event, and the
-// trace source will provide the face which we filter on in the trace
-// sink.
-// 
-// This has got to continue to work properly after the helper has been
-// destroyed; but must be cleaned up at the end of time to avoid
-// leaks.  Global maps of protocol/face pairs to file objects seems to
-// fit the bill.
-//
-// typedef std::pair<Ptr<Ccnx>, uint32_t> FacePairCcnx; 
-// typedef std::map<FacePairCcnx, Ptr<PcapFileWrapper> > FaceFileMapCcnx;
-// typedef std::map<FacePairCcnx, Ptr<OutputStreamWrapper> > FaceStreamMapCcnx;
-
-// static FaceFileMapCcnx g_faceFileMapCcnx; /**< A mapping of Ccnx/face pairs to pcap files */
-// static FaceStreamMapCcnx g_faceStreamMapCcnx; /**< A mapping of Ccnx/face pairs to ascii streams */
-
     
 CcnxStackHelper::CcnxStackHelper ()
   : m_limitsEnabled (false)
@@ -155,7 +88,10 @@
 }
 
 void
-CcnxStackHelper::EnableLimits (bool enable/* = true*/, Time avgRtt/*=Seconds(0.1)*/, uint32_t avgContentObject/*=1100*/, uint32_t avgInterest/*=40*/)
+CcnxStackHelper::EnableLimits (bool enable/* = true*/,
+                               Time avgRtt/*=Seconds(0.1)*/,
+                               uint32_t avgContentObject/*=1100*/,
+                               uint32_t avgInterest/*=40*/)
 {
   NS_LOG_INFO ("EnableLimits: " << enable);
   m_limitsEnabled = enable;
@@ -223,27 +159,24 @@
         {
           NS_LOG_INFO ("Limits are enabled");
           Ptr<PointToPointNetDevice> p2p = DynamicCast<PointToPointNetDevice> (device);
-          if (p2p == 0)
+          if (p2p != 0)
             {
-              NS_LOG_INFO ("Non p2p interface");
-              continue; // only PointToPointNetDevice supports limits
-            }
-
-          // Setup bucket filtering
-          // Assume that we know average data packet size, and this size is equal default size
-          // Set maximum buckets (averaging over 1 second)
+              // Setup bucket filtering
+              // Assume that we know average data packet size, and this size is equal default size
+              // Set maximum buckets (averaging over 1 second)
       
-          DataRateValue dataRate; device->GetAttribute ("DataRate", dataRate);
+              DataRateValue dataRate; device->GetAttribute ("DataRate", dataRate);
           
-          NS_LOG_INFO("DataRate for this link is " << dataRate.Get());
+              NS_LOG_INFO("DataRate for this link is " << dataRate.Get());
 
-          double maxInterestPackets = 1.0  * dataRate.Get ().GetBitRate () / 8.0 / m_avgContentObjectSize;
-          NS_LOG_INFO ("Max packets per second: " << maxInterestPackets);
-          NS_LOG_INFO ("Max burst: " << m_avgRtt.ToDouble (Time::S) * maxInterestPackets);
+              double maxInterestPackets = 1.0  * dataRate.Get ().GetBitRate () / 8.0 / (m_avgContentObjectSize + m_avgInterestSize);
+              NS_LOG_INFO ("Max packets per second: " << maxInterestPackets);
+              NS_LOG_INFO ("Max burst: " << m_avgRtt.ToDouble (Time::S) * maxInterestPackets);
 
-          // Set bucket max to BDP
-          face->SetBucketMax (m_avgRtt.ToDouble (Time::S) * maxInterestPackets); // number of interests allowed
-          face->SetBucketLeak (maxInterestPackets);
+              // Set bucket max to BDP
+              face->SetBucketMax (m_avgRtt.ToDouble (Time::S) * maxInterestPackets); // number of interests allowed
+              face->SetBucketLeak (maxInterestPackets);
+            }
         }
         
       face->SetUp ();
@@ -262,7 +195,7 @@
 
 
 void
-CcnxStackHelper::AddRoute (Ptr<Node> node, std::string prefix, Ptr<CcnxFace> face, int32_t metric) const
+CcnxStackHelper::AddRoute (Ptr<Node> node, std::string prefix, Ptr<CcnxFace> face, int32_t metric)
 {
   NS_LOG_LOGIC ("[" << node->GetId () << "]$ route add " << prefix << " via " << *face << " metric " << metric);
 
@@ -274,7 +207,7 @@
 }
 
 void
-CcnxStackHelper::AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric) const
+CcnxStackHelper::AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric)
 {
   Ptr<Node> node = Names::Find<Node> (nodeName);
   NS_ASSERT_MSG (node != 0, "Node [" << nodeName << "] does not exist");
@@ -288,275 +221,6 @@
   AddRoute (node, prefix, face, metric);
 }
 
-/*
-  void
-  CcnxStackHelper::AddRoute (Ptr<Node> node, std::string prefix, uint32_t faceId, int32_t metric)
-  {
-  NS_LOG_LOGIC ("[" << nodeName << "]$ route add " << prefix << " via " << faceId << " metric " << metric);
-    
-  NS_ASSERT_MSG (node != 0, "Node does not exist");
-        
-  Ptr<Ccnx>     ccnx = node->GetObject<Ccnx> ();
-  Ptr<CcnxFib>  fib  = node->GetObject<CcnxFib> ();
-  Ptr<CcnxFace> face = ccnx->GetFace (faceId);
-  NS_ASSERT_MSG (node != 0, "Face with ID [" << faceId << "] does not exist on node [" << nodeName << "]");
-        
-  CcnxNameComponentsValue prefixValue;
-  prefixValue.DeserializeFromString (prefix, MakeCcnxNameComponentsChecker ());
-  fib->Add (prefixValue.Get (), face, metric);
-  }
-*/
-
-// static void
-// CcnxL3ProtocolRxTxSink (Ptr<const Packet> p, Ptr<Ccnx> ccnx, uint32_t face)
-// {
-//   NS_LOG_FUNCTION (p << ccnx << face);
-
-//   //
-//   // Since trace sources are independent of face, if we hook a source
-//   // on a particular protocol we will get traces for all of its faces.
-//   // We need to filter this to only report faces for which the user 
-//   // has expressed interest.
-//   //
-//   FacePairCcnx pair = std::make_pair (ccnx, face);
-//   if (g_faceFileMapCcnx.find (pair) == g_faceFileMapCcnx.end ())
-//     {
-//       NS_LOG_INFO ("Ignoring packet to/from face " << face);
-//       return;
-//     }
-
-//   Ptr<PcapFileWrapper> file = g_faceFileMapCcnx[pair];
-//   file->Write (Simulator::Now (), p);
-// }
-
-// bool
-// CcnxStackHelper::PcapHooked (Ptr<Ccnx> ccnx)
-// {
-//   for (FaceFileMapCcnx::const_iterator i = g_faceFileMapCcnx.begin (); 
-//        i != g_faceFileMapCcnx.end (); 
-//        ++i)
-//     {
-//       if ((*i).first.first == ccnx)
-//         {
-//           return true;
-//         }
-//     }
-//   return false;
-// }
-
-// void 
-// CcnxStackHelper::EnablePcapCcnxInternal (std::string prefix, Ptr<Ccnx> ccnx, uint32_t face, bool explicitFilename)
-// {
-//   NS_LOG_FUNCTION (prefix << ccnx << face);
-
-//   //
-//   // We have to create a file and a mapping from protocol/face to file 
-//   // irrespective of how many times we want to trace a particular protocol.
-//   //
-//   PcapHelper pcapHelper;
-
-//   std::string filename;
-//   if (explicitFilename)
-//     {
-//       filename = prefix;
-//     }
-//   else
-//     {
-//       filename = pcapHelper.GetFilenameFromInterfacePair (prefix, ccnx, face);
-//     }
-
-//   Ptr<PcapFileWrapper> file = pcapHelper.CreateFile (filename, std::ios::out, PcapHelper::DLT_RAW);
-
-//   //
-//   // However, we only hook the trace source once to avoid multiple trace sink
-//   // calls per event (connect is independent of face).
-//   //
-//   if (!PcapHooked (ccnx))
-//     {
-//       //
-//       // Ptr<Ccnx> is aggregated to node and CcnxL3Protocol is aggregated to 
-//       // node so we can get to CcnxL3Protocol through Ccnx.
-//       //
-//       Ptr<CcnxL3Protocol> ccnxL3Protocol = ccnx->GetObject<CcnxL3Protocol> ();
-//       NS_ASSERT_MSG (ccnxL3Protocol, "CcnxStackHelper::EnablePcapCcnxInternal(): "
-//                      "m_ccnxEnabled and ccnxL3Protocol inconsistent");
-
-//       bool result = ccnxL3Protocol->TraceConnectWithoutContext ("Tx", MakeCallback (&CcnxL3ProtocolRxTxSink));
-//       NS_ASSERT_MSG (result == true, "CcnxStackHelper::EnablePcapCcnxInternal():  "
-//                      "Unable to connect ccnxL3Protocol \"Tx\"");
-
-//       result = ccnxL3Protocol->TraceConnectWithoutContext ("Rx", MakeCallback (&CcnxL3ProtocolRxTxSink));
-//       NS_ASSERT_MSG (result == true, "CcnxStackHelper::EnablePcapCcnxInternal():  "
-//                      "Unable to connect ccnxL3Protocol \"Rx\"");
-//       // cast result to void, to suppress ‘result’ set but not used compiler-warning
-//       // for optimized builds
-//       (void) result;
-//     }
-
-//   g_faceFileMapCcnx[std::make_pair (ccnx, face)] = file;
-// }
-
-// static void
-// CcnxL3ProtocolDropSinkWithoutContext (
-//   Ptr<OutputStreamWrapper> stream,
-//   Ptr<const Packet> packet,
-//   CcnxL3Protocol::DropReason reason, 
-//   Ptr<Ccnx> ccnx, 
-//   uint32_t face)
-// {
-//   //
-//   // Since trace sources are independent of face, if we hook a source
-//   // on a particular protocol we will get traces for all of its faces.
-//   // We need to filter this to only report faces for which the user 
-//   // has expressed interest.
-//   //
-//   FacePairCcnx pair = std::make_pair (ccnx, face);
-//   if (g_faceStreamMapCcnx.find (pair) == g_faceStreamMapCcnx.end ())
-//     {
-//       NS_LOG_INFO ("Ignoring packet to/from face " << face);
-//       return;
-//     }
-
-//   *stream->GetStream () << "d " << Simulator::Now ().GetSeconds () << " " << *packet << std::endl;
-// }
-
-// static void
-// CcnxL3ProtocolDropSinkWithContext (
-//   Ptr<OutputStreamWrapper> stream,
-//   std::string context,
-//   Ptr<const Packet> packet,
-//   CcnxL3Protocol::DropReason reason, 
-//   Ptr<Ccnx> ccnx, 
-//   uint32_t face)
-// {
-//   //
-//   // Since trace sources are independent of face, if we hook a source
-//   // on a particular protocol we will get traces for all of its faces.
-//   // We need to filter this to only report faces for which the user 
-//   // has expressed interest.
-//   //
-//   FacePairCcnx pair = std::make_pair (ccnx, face);
-//   if (g_faceStreamMapCcnx.find (pair) == g_faceStreamMapCcnx.end ())
-//     {
-//       NS_LOG_INFO ("Ignoring packet to/from face " << face);
-//       return;
-//     }
-
-//   *stream->GetStream () << "d " << Simulator::Now ().GetSeconds () << " " << context << "(" << face << ") " 
-//                         << *packet << std::endl;
-// }
-
-// bool
-// CcnxStackHelper::AsciiHooked (Ptr<Ccnx> ccnx)
-// {
-//   for (  FaceStreamMapCcnx::const_iterator i = g_faceStreamMapCcnx.begin (); 
-//          i != g_faceStreamMapCcnx.end (); 
-//          ++i)
-//     {
-//       if ((*i).first.first == ccnx)
-//         {
-//           return true;
-//         }
-//     }
-//   return false;
-// }
-
-// void 
-// CcnxStackHelper::EnableAsciiCcnxInternal (
-//   Ptr<OutputStreamWrapper> stream, 
-//   std::string prefix, 
-//   Ptr<Ccnx> ccnx, 
-//   uint32_t face,
-//   bool explicitFilename)
-// {
-//   //
-//   // Our trace sinks are going to use packet printing, so we have to 
-//   // make sure that is turned on.
-//   //
-//   Packet::EnablePrinting ();
-
-//   //
-//   // If we are not provided an OutputStreamWrapper, we are expected to create 
-//   // one using the usual trace filename conventions and hook WithoutContext
-//   // since there will be one file per context and therefore the context would
-//   // be redundant.
-//   //
-//   if (stream == 0)
-//     {
-//       //
-//       // Set up an output stream object to deal with private ofstream copy 
-//       // constructor and lifetime issues.  Let the helper decide the actual
-//       // name of the file given the prefix.
-//       //
-//       // We have to create a stream and a mapping from protocol/face to 
-//       // stream irrespective of how many times we want to trace a particular 
-//       // protocol.
-//       //
-//       AsciiTraceHelper asciiTraceHelper;
-
-//       std::string filename;
-//       if (explicitFilename)
-//         {
-//           filename = prefix;
-//         }
-//       else
-//         {
-//           filename = asciiTraceHelper.GetFilenameFromInterfacePair (prefix, ccnx, face);
-//         }
-
-//       Ptr<OutputStreamWrapper> theStream = asciiTraceHelper.CreateFileStream (filename);
-
-//       //
-//       // However, we only hook the trace sources once to avoid multiple trace sink
-//       // calls per event (connect is independent of face).
-//       //
-//       if (!AsciiHooked (ccnx))
-//         {
-//           //
-//           // The drop sink for the CcnxL3Protocol uses a different signature than
-//           // the default sink, so we have to cook one up for ourselves.  We can get
-//           // to the Ptr<CcnxL3Protocol> through our Ptr<Ccnx> since they must both 
-//           // be aggregated to the same node.
-//           //
-//           Ptr<CcnxL3Protocol> ccnxL3Protocol = ccnx->GetObject<CcnxL3Protocol> ();
-//           bool __attribute__ ((unused)) result = ccnxL3Protocol->TraceConnectWithoutContext ("Drop", 
-//                                                                                              MakeBoundCallback (&CcnxL3ProtocolDropSinkWithoutContext, theStream));
-//           NS_ASSERT_MSG (result == true, "CcnxStackHelper::EanableAsciiCcnxInternal():  "
-//                          "Unable to connect ccnxL3Protocol \"Drop\"");
-//         }
-
-//       g_faceStreamMapCcnx[std::make_pair (ccnx, face)] = theStream;
-//       return;
-//     }
-
-//   //
-//   // If we are provided an OutputStreamWrapper, we are expected to use it, and
-//   // to provide a context.  We are free to come up with our own context if we
-//   // want, and use the AsciiTraceHelper Hook*WithContext functions, but for 
-//   // compatibility and simplicity, we just use Config::Connect and let it deal
-//   // with the context.
-//   //
-//   // We need to associate the ccnx/face with a stream to express interest
-//   // in tracing events on that pair, however, we only hook the trace sources 
-//   // once to avoid multiple trace sink calls per event (connect is independent
-//   // of face).
-//   //
-//   if (!AsciiHooked (ccnx))
-//     {
-//       Ptr<Node> node = ccnx->GetObject<Node> ();
-//       std::ostringstream oss;
-
-//       //
-//       // This has all kinds of parameters coming with, so we have to cook up our
-//       // own sink.
-//       //
-//       oss.str ("");
-//       oss << "/NodeList/" << node->GetId () << "/$ns3::CcnxL3Protocol/Drop";
-//       Config::Connect (oss.str (), MakeBoundCallback (&CcnxL3ProtocolDropSinkWithContext, stream));
-//     }
-
-//   g_faceStreamMapCcnx[std::make_pair (ccnx, face)] = stream;
-// }
 
 void
 CcnxStackHelper::InstallFakeGlobalRoutesImpl ()
@@ -596,9 +260,12 @@
 void
 CcnxStackHelper::InstallRouteTo (Ptr<Node> destNode)
 {
-  std::ostringstream destPrefix;
-  destPrefix << "/" << destNode->GetId ();
+  InstallRouteTo (boost::lexical_cast<std::string> (destNode->GetId ()), destNode);
+}
 
+void
+CcnxStackHelper::InstallRouteTo (const std::string &prefix, Ptr<Node> destNode)
+{
   Ipv4Address destIpv4 = Ipv4Address(destNode->GetId ());
   
   for (NodeList::Iterator node = NodeList::Begin ();
@@ -631,7 +298,7 @@
           Ptr<CcnxFace> face = ccnx->GetFaceByNetDevice (netDevice);
           NS_ASSERT_MSG (face != 0, "Definitely should never happen. Call the president");
             
-          AddRoute (*node, destPrefix.str(), face, entry.GetMetric ());
+          AddRoute (*node, prefix, face, entry.GetMetric ());
         }
     }
 }
diff --git a/helper/ccnx-stack-helper.h b/helper/ccnx-stack-helper.h
index b4cdbc6..6cd3745 100644
--- a/helper/ccnx-stack-helper.h
+++ b/helper/ccnx-stack-helper.h
@@ -151,8 +151,8 @@
    * \param faceId Face index
    * \param metric Routing metric
    */
-  void
-  AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric) const;
+  static void
+  AddRoute (std::string nodeName, std::string prefix, uint32_t faceId, int32_t metric);
 
   /**
    * \brief Add forwarding entry in FIB
@@ -162,8 +162,8 @@
    * \param face   Face
    * \param metric Routing metric
    */
-  void
-  AddRoute (Ptr<Node> node, std::string prefix, Ptr<CcnxFace> face, int32_t metric) const;
+  static void
+  AddRoute (Ptr<Node> node, std::string prefix, Ptr<CcnxFace> face, int32_t metric);
 
   /**
    * \brief Set flag indicating necessity to install default routes in FIB
@@ -177,28 +177,36 @@
    * This method adds fake routes to all nodes, where each route is /32 and IPv4 address equal to node number.
    * For example, node 5 will have direct route to 0.0.0.5.
    */
-  void
+  static void
   InstallFakeGlobalRoutes ();
 
-  void
+  static void
   InstallFakeGlobalRoutesImpl ();
   
   /**
-   * \brief Installs CCNx route to `node` based on fake IPv4 routes
+   * \brief Install CCNx route to `node` based on fake IPv4 routes
    *
    * Actual route is "/<nodeId>"
    *
    * \param node Pointer to a node, which should be reached from all other nodes
    */
-  void
+  static void
   InstallRouteTo (Ptr<Node> node);
 
   /**
-   * \brief Installs CCNx route to all nodes based on fake IPv4 routes
+   * \brief Install CCNx route to /prefix which is installed on `node'
+   *
+   * Normally, prefix is  /<node->GetId()>.  Other values may be used in black-holing scenarios
+   */
+  static void
+  InstallRouteTo (const std::string &prefix, Ptr<Node> node);
+
+  /**
+   * \brief Install CCNx route to all nodes based on fake IPv4 routes
    *
    * \see InstallRouteTo
    */
-  void
+  static void
   InstallRoutesToAll ();
 
 private:
diff --git a/helper/ccnx-trace-helper.cc b/helper/ccnx-trace-helper.cc
index 1742462..a153862 100644
--- a/helper/ccnx-trace-helper.cc
+++ b/helper/ccnx-trace-helper.cc
@@ -31,6 +31,8 @@
 #include "ns3/object-vector.h"
 #include "ns3/simulator.h"
 #include "ns3/names.h"
+#include "ns3/tcp-l4-protocol.h"
+#include "ns3/node.h"
 
 #include <boost/ref.hpp>
 #include <boost/lexical_cast.hpp>
@@ -39,7 +41,10 @@
 #include "tracers/ccnx-aggregate-l3-tracer.h"
 #include "tracers/ccnx-rate-l3-tracer.h"
 #include "tracers/ccnx-seqs-app-tracer.h"
+#include "tracers/ipv4-rate-l3-tracer.h"
 #include "tracers/ipv4-seqs-app-tracer.h"
+#include "tracers/ccnx-consumer-window-tracer.h"
+#include "tracers/ccnx-path-weight-tracer.h"
 
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/ccnx-content-object-header.h"
@@ -56,7 +61,11 @@
 CcnxTraceHelper::CcnxTraceHelper ()
   : m_l3RateTrace (0)
   , m_appSeqsTrace (0)
+  , m_ipv4RateTrace (0)
   , m_ipv4AppSeqsTrace (0)
+  , m_windowsTrace (0)
+  , m_windowsTcpTrace (0)
+  , m_pathWeightsTrace (0)
 {
 }
 
@@ -66,6 +75,10 @@
   if (m_l3RateTrace != 0) delete m_l3RateTrace;
   if (m_appSeqsTrace != 0) delete m_appSeqsTrace;
   if (m_ipv4AppSeqsTrace != 0) delete m_ipv4AppSeqsTrace;
+  if (m_windowsTrace != 0) delete m_windowsTrace;
+  if (m_windowsTcpTrace != 0) delete m_windowsTcpTrace;
+  if (m_pathWeightsTrace != 0) delete m_pathWeightsTrace;
+  if (m_ipv4RateTrace != 0) delete m_ipv4RateTrace;
   
   if (m_apps.size () > 0)
     {
@@ -193,7 +206,7 @@
       NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
 
       Ptr<CcnxRateL3Tracer> trace = Create<CcnxRateL3Tracer> (boost::ref(*m_l3RateTrace), *node);
-      trace->SetAveragingPeriod (Seconds (0.5));
+      trace->SetAveragingPeriod (Seconds (0.2));
       m_l3Rates.push_back (trace);
     }
 
@@ -206,6 +219,32 @@
 }
 
 void
+CcnxTraceHelper::EnableIpv4RateL3All (const std::string &file)
+{
+  NS_LOG_FUNCTION (this);
+  m_ipv4RateTrace = new ofstream (file.c_str (), ios::trunc);
+
+  for (NodeList::Iterator node = NodeList::Begin ();
+       node != NodeList::End ();
+       node++)
+    {
+      NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
+
+      Ptr<Ipv4RateL3Tracer> trace = Create<Ipv4RateL3Tracer> (boost::ref(*m_ipv4RateTrace), *node);
+      trace->SetAveragingPeriod (Seconds (0.2));
+      m_ipv4Rates.push_back (trace);
+    }
+
+  if (m_ipv4Rates.size () > 0)
+    {
+      // *m_ipv4RateTrace << "# "; // not necessary for R's read.table
+      m_ipv4Rates.front ()->PrintHeader (*m_ipv4RateTrace);
+      *m_ipv4RateTrace << "\n";
+    }
+}
+
+
+void
 CcnxTraceHelper::EnableSeqsAppAll (const std::string &appName, const std::string &trace)
 {
   NS_LOG_FUNCTION (this);
@@ -286,5 +325,91 @@
     }
 }
 
+void
+CcnxTraceHelper::EnableWindowsAll (const std::string &windowTrace)
+{
+  NS_LOG_FUNCTION (this);
+  m_windowsTrace = new ofstream (windowTrace.c_str (), ios::trunc);
+
+  for (NodeList::Iterator node = NodeList::Begin ();
+       node != NodeList::End ();
+       node++)
+    {
+      ObjectVectorValue apps;
+      (*node)->GetAttribute ("ApplicationList", apps);
+
+      NS_LOG_DEBUG ("Node: " << lexical_cast<string> ((*node)->GetId ()));
+      
+      uint32_t appId = 0;
+      for (ObjectVectorValue::Iterator app = apps.Begin ();
+           app != apps.End ();
+           app++, appId++)
+        {
+          if ((*app)->GetInstanceTypeId ().GetName () == "ns3::CcnxConsumerWindow")
+            {
+              Ptr<CcnxConsumerWindowTracer> trace = Create<CcnxConsumerWindowTracer> (boost::ref(*m_windowsTrace),
+                                                                                      *node,
+                                                                                      lexical_cast<string> (appId));
+              m_windows.push_back (trace);
+            }
+        }
+      
+    }
+
+  if (m_windows.size () > 0)
+    {
+      m_windows.front ()->PrintHeader (*m_windowsTrace);
+      *m_windowsTrace << "\n";
+    }
+}
+
+void
+CcnxTraceHelper::TcpConnect (Ptr<Node> node)
+{
+  ObjectVectorValue sockets;
+  node->GetObject<TcpL4Protocol> ()->GetAttribute ("SocketList", sockets);
+  
+  uint32_t sockId = 0;      
+  for (ObjectVectorValue::Iterator socket = sockets.Begin ();
+       socket != sockets.End ();
+       socket++, sockId++)
+    {
+      // std::cout << "Node: " << node->GetId () << ", Socket " << sockId << "\n";
+          
+      Ptr<TcpCongestionWindowTracer> trace = Create<TcpCongestionWindowTracer> (boost::ref(*m_windowsTcpTrace),
+                                                                                node,
+                                                                                lexical_cast<string> (sockId));
+      m_windowsTcp.push_back (trace);
+    }
+}
+
+void
+CcnxTraceHelper::EnableWindowsTcpAll (const std::string &windowTrace)
+{
+  NS_LOG_FUNCTION (this);
+  m_windowsTcpTrace = new ofstream (windowTrace.c_str (), ios::trunc);
+
+  WindowTracer::PrintHeader (*m_windowsTcpTrace);
+  *m_windowsTcpTrace << "\n";
+}
+
+void
+CcnxTraceHelper::EnablePathWeights (const std::string &pathWeights)
+{
+  NS_LOG_FUNCTION (this);
+  m_pathWeightsTrace = new ofstream (pathWeights.c_str (), ios::trunc);
+
+  CcnxPathWeightTracer::PrintHeader (*m_pathWeightsTrace);
+  *m_pathWeightsTrace << "\n";
+
+  for (NodeList::Iterator node = NodeList::Begin ();
+       node != NodeList::End ();
+       node++)
+    {
+      Ptr<CcnxPathWeightTracer> trace = Create<CcnxPathWeightTracer> (boost::ref(*m_pathWeightsTrace),
+                                                                      *node);
+      m_pathWeights.push_back (trace);
+    }
+}
 
 } // namespace ns3
diff --git a/helper/ccnx-trace-helper.h b/helper/ccnx-trace-helper.h
index 4079f9c..aa9cd30 100644
--- a/helper/ccnx-trace-helper.h
+++ b/helper/ccnx-trace-helper.h
@@ -28,9 +28,14 @@
 
 namespace ns3 {
 
+class Node;
 class CcnxAppTracer;
 class CcnxL3Tracer;
+class Ipv4L3Tracer;
 class Ipv4AppTracer;
+class WindowTracer;
+class CcnxPathWeightTracer;
+class Application;
 
 class CcnxTraceHelper
 {
@@ -93,7 +98,38 @@
    */
   void
   EnableIpv4SeqsAppAll (const std::string &appSeqsTrace = "app-seqs.log");
-  
+
+  /**
+   * @brief Enable network-level IPv4 rate tracing on all IPv4-enabled nodes
+   */
+  void
+  EnableIpv4RateL3All (const std::string &ipv4RateTrace = "ipv4-rate.log");
+
+  /**
+   * @brief Enable tracing of window changes in CcnxConsumerWindow
+   */
+  void
+  EnableWindowsAll (const std::string &windowTrace = "windows.log");
+
+  /**
+   * @brief Enable tracing of congestion window changes in TcpNewReno
+   */
+  void
+  EnableWindowsTcpAll (const std::string &windowTrace);
+
+  /**
+   * @brief Should be called with node pointer after TCP application
+   *
+   * Workaround because NS-3 needs object to exist before connecting trace
+   */
+  void TcpConnect (Ptr<Node> node);
+
+  /**
+   * @brief Enable tracing of path weights
+   */
+  void
+  EnablePathWeights (const std::string &pathWeights);
+
 private:
   std::string m_appTrace;
   std::list<Ptr<CcnxAppTracer> > m_apps;
@@ -107,8 +143,20 @@
   std::list<Ptr<CcnxAppTracer> > m_appSeqs;
   std::ostream *m_appSeqsTrace;
 
+  std::list<Ptr<Ipv4L3Tracer> > m_ipv4Rates;
+  std::ostream *m_ipv4RateTrace;
+
   std::list<Ptr<Ipv4AppTracer> > m_ipv4AppSeqs;
   std::ostream *m_ipv4AppSeqsTrace;
+
+  std::list<Ptr<WindowTracer> > m_windows;
+  std::ostream *m_windowsTrace;
+
+  std::list<Ptr<WindowTracer> > m_windowsTcp;
+  std::ostream *m_windowsTcpTrace;
+
+  std::list<Ptr<CcnxPathWeightTracer> > m_pathWeights;
+  std::ostream *m_pathWeightsTrace;
 };
 
 
diff --git a/helper/tracers/ccnx-consumer-window-tracer.cc b/helper/tracers/ccnx-consumer-window-tracer.cc
new file mode 100644
index 0000000..eea664a
--- /dev/null
+++ b/helper/tracers/ccnx-consumer-window-tracer.cc
@@ -0,0 +1,88 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ccnx-consumer-window-tracer.h"
+#include "ns3/node.h"
+#include "ns3/packet.h"
+#include "ns3/config.h"
+#include "ns3/callback.h"
+#include "ns3/names.h"
+#include "ns3/simulator.h"
+
+#include <boost/lexical_cast.hpp>
+
+using namespace std;
+using namespace boost;
+
+namespace ns3 {
+
+void
+CcnxConsumerWindowTracer::Connect ()
+{
+  Config::Connect ("/NodeList/"+m_node+"/ApplicationList/"+m_appId+"/$ns3::CcnxConsumerWindow/WindowTrace",
+                   MakeCallback (&WindowTracer::OnWindowChange, this));
+}
+
+void
+TcpCongestionWindowTracer::Connect ()
+{
+  Config::Connect ("/NodeList/"+m_node+"/$ns3::TcpL4Protocol/SocketList/*/CongestionWindow",
+                   MakeCallback (&WindowTracer::OnWindowChange, this));
+}
+
+
+WindowTracer::WindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId)
+  : m_appId (appId)
+  , m_nodePtr (node)
+  , m_os (os)
+{
+  m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
+
+  string name = Names::FindName (node);
+  if (!name.empty ())
+    {
+      m_nodeName = name;
+    }
+  else
+    m_nodeName = m_node;
+}
+
+
+void
+WindowTracer::PrintHeader (std::ostream &os)
+{
+  os << "Time\t"
+     << "Node\t"
+     << "AppId\t"
+     << "Window";
+}
+
+void
+WindowTracer::OnWindowChange (std::string context,
+                              uint32_t oldValue, uint32_t newValue)
+{
+  m_os                                                             
+    << Simulator::Now ().ToDouble (Time::S) << "\t"                   
+    << m_nodeName << "\t"                                                 
+    << m_appId << "\t"
+    << newValue << endl;
+}
+
+} // namespace ns3
diff --git a/helper/tracers/ccnx-consumer-window-tracer.h b/helper/tracers/ccnx-consumer-window-tracer.h
new file mode 100644
index 0000000..c538931
--- /dev/null
+++ b/helper/tracers/ccnx-consumer-window-tracer.h
@@ -0,0 +1,77 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2012 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef CCNX_CONSUMER_WINDOW_TRACER_H
+#define CCNX_CONSUMER_WINDOW_TRACER_H
+
+#include "ns3/ptr.h"
+#include "ns3/simple-ref-count.h"
+
+namespace ns3 {
+
+class Node;
+
+class WindowTracer : public SimpleRefCount<WindowTracer>
+{
+public:
+  WindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*");
+  virtual ~WindowTracer () { };
+                
+  static void
+  PrintHeader (std::ostream &os);
+  
+  virtual void
+  OnWindowChange (std::string context,
+                  uint32_t oldValue, uint32_t newValue);
+
+protected:
+  std::string m_appId;
+  std::string m_node;
+  std::string m_nodeName;
+  Ptr<Node> m_nodePtr;
+  std::ostream& m_os;
+};
+
+class CcnxConsumerWindowTracer : public WindowTracer
+{
+public:
+  CcnxConsumerWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*")
+    : WindowTracer (os, node, appId)
+  { Connect (); }
+
+  void
+  Connect ();
+};
+
+class TcpCongestionWindowTracer : public WindowTracer
+{
+public:
+  TcpCongestionWindowTracer (std::ostream &os, Ptr<Node> node, const std::string &appId = "*")
+    : WindowTracer (os, node, appId)
+  { Connect (); }
+
+  void
+  Connect ();
+};
+
+
+} // namespace ns3
+
+#endif // CCNX_CONSUMER_WINDOW_TRACER_H
diff --git a/helper/tracers/ccnx-path-weight-tracer.cc b/helper/tracers/ccnx-path-weight-tracer.cc
new file mode 100644
index 0000000..b2685bd
--- /dev/null
+++ b/helper/tracers/ccnx-path-weight-tracer.cc
@@ -0,0 +1,91 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ccnx-path-weight-tracer.h"
+#include "ns3/node.h"
+#include "ns3/packet.h"
+#include "ns3/config.h"
+#include "ns3/names.h"
+#include "ns3/callback.h"
+#include "ns3/ccnx-app.h"
+#include "ns3/ccnx-face.h"
+#include "ns3/boolean.h"
+#include "ns3/simulator.h"
+
+#include <boost/lexical_cast.hpp>
+#include <boost/foreach.hpp>
+
+using namespace std;
+
+namespace ns3 {
+    
+CcnxPathWeightTracer::CcnxPathWeightTracer (std::ostream &os, Ptr<Node> node)
+  : m_os (os)
+  , m_nodePtr (node)
+{
+  m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
+
+  Connect ();
+
+  string name = Names::FindName (node);
+  if (!name.empty ())
+    {
+      m_node = name;
+    }
+}
+
+void
+CcnxPathWeightTracer::Connect ()
+{
+  Config::Set ("/NodeList/"+m_node+"/$ns3::CcnxL3Protocol/FaceList/*/MetricTagging",
+               BooleanValue (true));
+
+  Config::Connect ("/NodeList/"+m_node+"/ApplicationList/*/PathWeightsTrace",
+                   MakeCallback (&CcnxPathWeightTracer::InLocalFace, this));
+}
+
+void
+CcnxPathWeightTracer::PrintHeader (std::ostream &os)
+{
+  os << "Time\t"
+     << "Src\t"
+     << "Dst\t"
+     << "SeqNo\t"
+     << "Weight";
+}
+
+void
+CcnxPathWeightTracer::InLocalFace (std::string context,
+                                   Ptr<Node> src, Ptr<Node> dst, uint32_t seqno, uint32_t weight)
+{
+  std::string srcName = Names::FindName (src);
+  std::string dstName = Names::FindName (dst);
+  if (srcName == "") srcName = boost::lexical_cast<std::string> (src->GetId ());
+  if (dstName == "") srcName = boost::lexical_cast<std::string> (dst->GetId ());
+  // std::cout << "Path weights from " << Names::FindName (src) << " to "<< Names::FindName (dst) <<" : " << weight << "\n";
+
+  m_os << Simulator::Now ().ToDouble (Time::S) << "\t"
+       << srcName << "\t"
+       << dstName << "\t"
+       << seqno << "\t"
+       << weight << "\n";
+}
+
+} // namespace ns3
diff --git a/helper/tracers/ccnx-path-weight-tracer.h b/helper/tracers/ccnx-path-weight-tracer.h
new file mode 100644
index 0000000..f4bd187
--- /dev/null
+++ b/helper/tracers/ccnx-path-weight-tracer.h
@@ -0,0 +1,62 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef CCNX_PATH_WEIGHT_TRACER_H
+#define CCNX_PATH_WEIGHT_TRACER_H
+
+#include "ns3/ptr.h"
+#include "ns3/simple-ref-count.h"
+#include "ns3/ccnx-path-stretch-tag.h"
+#include <list>
+
+namespace ns3 {
+
+class Node;
+class Packet;
+class CcnxApp;
+
+class CcnxPathWeightTracer : public SimpleRefCount<CcnxPathWeightTracer>
+{
+public:
+  CcnxPathWeightTracer (std::ostream &os, Ptr<Node> node);
+  virtual ~CcnxPathWeightTracer () { };
+
+  void
+  Connect ();
+  
+  static void
+  PrintHeader (std::ostream &os);
+
+  /**
+   * \brief Process packet weight upon reception of packet on a local face
+   */
+  virtual void
+  InLocalFace (std::string context,
+               Ptr<Node> src, Ptr<Node> dst, uint32_t seqno, uint32_t weight);
+
+protected:
+  std::ostream &m_os;
+  std::string m_node;
+  Ptr<Node> m_nodePtr;
+};
+
+} // namespace ns3
+
+#endif // CCNX_PATH_WEIGHT_TRACER_H
diff --git a/helper/tracers/ipv4-l3-tracer.cc b/helper/tracers/ipv4-l3-tracer.cc
new file mode 100644
index 0000000..ed2cb9c
--- /dev/null
+++ b/helper/tracers/ipv4-l3-tracer.cc
@@ -0,0 +1,61 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ipv4-l3-tracer.h"
+#include "ns3/node.h"
+#include "ns3/packet.h"
+#include "ns3/config.h"
+#include "ns3/names.h"
+#include "ns3/callback.h"
+#include "ns3/ccnx-app.h"
+#include "ns3/ccnx-face.h"
+
+#include <boost/lexical_cast.hpp>
+
+using namespace std;
+
+namespace ns3 {
+    
+Ipv4L3Tracer::Ipv4L3Tracer (Ptr<Node> node)
+: m_nodePtr (node)
+{
+  m_node = boost::lexical_cast<string> (m_nodePtr->GetId ());
+
+  Connect ();
+
+  string name = Names::FindName (node);
+  if (!name.empty ())
+    {
+      m_node = name;
+    }
+}
+
+void
+Ipv4L3Tracer::Connect ()
+{
+  Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Tx",
+                   MakeCallback (&Ipv4L3Tracer::Tx, this));
+  Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Rx",
+                   MakeCallback (&Ipv4L3Tracer::Rx, this));
+  Config::Connect ("/NodeList/"+m_node+"/$ns3::Ipv4L3Protocol/Drop",
+                   MakeCallback (&Ipv4L3Tracer::Drop, this));
+}
+
+} // namespace ns3
diff --git a/helper/tracers/ipv4-l3-tracer.h b/helper/tracers/ipv4-l3-tracer.h
new file mode 100644
index 0000000..e5f3c74
--- /dev/null
+++ b/helper/tracers/ipv4-l3-tracer.h
@@ -0,0 +1,90 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef IPV4_L3_TRACER_H
+#define IPV4_L3_TRACER_H
+
+#include "ns3/ptr.h"
+#include "ns3/simple-ref-count.h"
+#include "ns3/ipv4-l3-protocol.h"
+
+namespace ns3 {
+
+class Node;
+
+class Ipv4L3Tracer : public SimpleRefCount<Ipv4L3Tracer>
+{
+public:
+  Ipv4L3Tracer (Ptr<Node> node);
+  virtual ~Ipv4L3Tracer () { };
+
+  void
+  Connect ();
+  
+  virtual void
+  PrintHeader (std::ostream &os) const = 0;
+
+  virtual void
+  Print (std::ostream &os) const = 0;
+  
+  virtual void
+  Rx  (std::string context,
+       Ptr<const Packet>, Ptr<Ipv4>,  uint32_t) = 0;
+
+  virtual void
+  Tx   (std::string context,
+        Ptr<const Packet>, Ptr<Ipv4>,  uint32_t) = 0;
+
+  virtual void
+  Drop (std::string context,
+        const Ipv4Header &, Ptr<const Packet>, Ipv4L3Protocol::DropReason, Ptr<Ipv4>, uint32_t) = 0;
+
+protected:
+  std::string m_node;
+  Ptr<Node> m_nodePtr;
+
+  struct Stats
+  {
+    void Reset ()
+    {
+      m_in = 0;
+      m_out = 0;
+      m_drop = 0;
+    }
+    
+    uint64_t m_in;
+    uint64_t m_out;
+    uint64_t m_drop;
+  };
+};
+
+inline std::ostream&
+operator << (std::ostream &os, const Ipv4L3Tracer &tracer)
+{
+  os << "# ";
+  tracer.PrintHeader (os);
+  os << "\n";
+  tracer.Print (os);
+  return os;
+}
+
+} // namespace ns3
+
+#endif // IPV4_L3_TRACER_H
diff --git a/helper/tracers/ipv4-rate-l3-tracer.cc b/helper/tracers/ipv4-rate-l3-tracer.cc
new file mode 100644
index 0000000..e97ba18
--- /dev/null
+++ b/helper/tracers/ipv4-rate-l3-tracer.cc
@@ -0,0 +1,142 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ipv4-rate-l3-tracer.h"
+#include "ns3/node.h"
+#include "ns3/packet.h"
+#include "ns3/config.h"
+#include "ns3/callback.h"
+#include "ns3/simulator.h"
+
+#include "ns3/ipv4-header.h"
+
+namespace ns3 {
+    
+Ipv4RateL3Tracer::Ipv4RateL3Tracer (std::ostream &os, Ptr<Node> node)
+  : Ipv4L3Tracer (node)
+  , m_os (os)
+{
+  SetAveragingPeriod (Seconds (1.0));
+}
+
+Ipv4RateL3Tracer::~Ipv4RateL3Tracer ()
+{
+  m_printEvent.Cancel ();
+}
+
+void
+Ipv4RateL3Tracer::SetAveragingPeriod (const Time &period)
+{
+  m_period = period;
+  m_printEvent.Cancel ();
+  m_printEvent = Simulator::Schedule (m_period, &Ipv4RateL3Tracer::PeriodicPrinter, this);
+}
+
+void
+Ipv4RateL3Tracer::PeriodicPrinter ()
+{
+  Print (m_os);
+  Reset ();
+  
+  m_printEvent = Simulator::Schedule (m_period, &Ipv4RateL3Tracer::PeriodicPrinter, this);
+}
+
+void
+Ipv4RateL3Tracer::PrintHeader (std::ostream &os) const
+{
+  os << "Time" << "\t"
+
+     << "Node" << "\t"
+     << "Interface" << "\t"
+
+     << "Type" << "\t"
+     << "Packets" << "\t"
+     << "Kilobytes";
+}
+
+void
+Ipv4RateL3Tracer::Reset ()
+{
+  for (std::map<uint32_t, boost::tuple<Stats, Stats, Stats, Stats> >::iterator stats = m_stats.begin ();
+       stats != m_stats.end ();
+       stats++)
+    {
+      stats->second.get<0> ().Reset ();
+      stats->second.get<1> ().Reset ();
+    }
+}
+
+const double alpha = 0.8;
+
+#define STATS(INDEX) stats->second.get<INDEX> ()
+#define RATE(INDEX, fieldName) STATS(INDEX).fieldName / m_period.ToDouble (Time::S)
+
+#define PRINTER(printName, fieldName) \
+STATS(2).fieldName = /*new value*/alpha * RATE(0, fieldName) + /*old value*/(1-alpha) * STATS(2).fieldName; \
+STATS(3).fieldName = /*new value*/alpha * RATE(1, fieldName) / 1024.0 + /*old value*/(1-alpha) * STATS(3).fieldName; \
+                                                                        \
+os << time.ToDouble (Time::S) << "\t"                                   \
+ << m_node << "\t"                                                      \
+ << stats->first << "\t"                                      \
+ << printName << "\t"                                                   \
+ << STATS(2).fieldName  << "\t"                                        \
+ << STATS(3).fieldName << "\n";
+
+void
+Ipv4RateL3Tracer::Print (std::ostream &os) const
+{
+  for (std::map<uint32_t, boost::tuple<Stats, Stats, Stats, Stats> >::iterator stats = m_stats.begin ();
+       stats != m_stats.end ();
+       stats++)
+    {
+      Time time = Simulator::Now ();
+
+      PRINTER ("In",   m_in);
+      PRINTER ("Out",  m_out);
+      PRINTER ("Drop", m_drop);
+    }
+}
+
+void
+Ipv4RateL3Tracer::Rx  (std::string context,
+                       Ptr<const Packet> packet, Ptr<Ipv4> ipv4,  uint32_t iface)
+{
+  m_stats[iface].get<0> ().m_in ++;
+  m_stats[iface].get<1> ().m_in += packet->GetSize ();
+}
+
+void
+Ipv4RateL3Tracer::Tx   (std::string context,
+                        Ptr<const Packet> packet, Ptr<Ipv4> ipv4,  uint32_t iface)
+{
+  m_stats[iface].get<0> ().m_out ++;
+  m_stats[iface].get<1> ().m_out += packet->GetSize ();
+}
+
+void
+Ipv4RateL3Tracer::Drop (std::string context,
+                        const Ipv4Header &header, Ptr<const Packet> packet, Ipv4L3Protocol::DropReason, Ptr<Ipv4> ipv4, uint32_t iface)
+{
+  m_stats[iface].get<0> ().m_drop ++;
+  m_stats[iface].get<1> ().m_drop += packet->GetSize ();
+}
+
+
+} // namespace ns3
diff --git a/helper/tracers/ipv4-rate-l3-tracer.h b/helper/tracers/ipv4-rate-l3-tracer.h
new file mode 100644
index 0000000..454ac14
--- /dev/null
+++ b/helper/tracers/ipv4-rate-l3-tracer.h
@@ -0,0 +1,85 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011 UCLA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author:  Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef IPV4_RATE_L3_TRACER_H
+#define IPV4_RATE_L3_TRACER_H
+
+#include "ipv4-l3-tracer.h"
+
+#include "ns3/nstime.h"
+#include "ns3/event-id.h"
+
+#include <boost/tuple/tuple.hpp>
+#include <map>
+
+namespace ns3 {
+
+/**
+ * @ingroup ccnx
+ * @brief CCNx network-layer rate tracer
+ */
+class Ipv4RateL3Tracer : public Ipv4L3Tracer
+{
+public:
+  /**
+   * @brief Network layer tracer constructor
+   */
+  Ipv4RateL3Tracer (std::ostream &os, Ptr<Node> node);
+  virtual ~Ipv4RateL3Tracer ();
+
+  void
+  SetAveragingPeriod (const Time &period);
+  
+  virtual void
+  PrintHeader (std::ostream &os) const;
+
+  virtual void
+  Print (std::ostream &os) const;
+
+  virtual void
+  Rx  (std::string context,
+       Ptr<const Packet>, Ptr<Ipv4>,  uint32_t);
+
+  virtual void
+  Tx   (std::string context,
+        Ptr<const Packet>, Ptr<Ipv4>,  uint32_t);
+
+  virtual void
+  Drop (std::string context,
+        const Ipv4Header &, Ptr<const Packet>, Ipv4L3Protocol::DropReason, Ptr<Ipv4>, uint32_t);
+
+private:
+  void
+  PeriodicPrinter ();
+  
+  void
+  Reset ();
+
+private:
+  std::ostream& m_os;
+  Time m_period;
+  EventId m_printEvent;
+
+  mutable std::map<uint32_t, boost::tuple<Stats, Stats, Stats, Stats> > m_stats;
+};
+
+} // namespace ns3
+
+#endif // IPV4_RATE_L3_TRACER_H
diff --git a/model/annotated-topology-reader.cc b/model/annotated-topology-reader.cc
index 194a90c..d6bbad1 100644
--- a/model/annotated-topology-reader.cc
+++ b/model/annotated-topology-reader.cc
@@ -37,6 +37,8 @@
 #include "ns3/pointer.h"
 #include "ns3/uinteger.h"
 #include "ns3/ipv4-address.h"
+#include "ns3/ccnx.h"
+#include "ns3/ccnx-face.h"
 
 #include "ns3/constant-position-mobility-model.h"
 
@@ -112,6 +114,11 @@
   return m_nodes;
 }
 
+const std::list<TopologyReader::Link>&
+AnnotatedTopologyReader::GetLinks () const
+{
+  return m_linksList;
+}
 
 NodeContainer
 AnnotatedTopologyReader::Read (void)
@@ -214,8 +221,6 @@
       base = Ipv4Address (base.Get () + 256);
       address.SetBase (base, Ipv4Mask ("/24"));
     }
-        
-  ApplyOspfMetric ();
 }
         
 void
@@ -228,22 +233,42 @@
         
       {
         Ptr<Ipv4> ipv4 = link.GetFromNode ()->GetObject<Ipv4> ();
-        NS_ASSERT (ipv4 != 0);
+        if (ipv4 != 0)
+          {
+            int32_t interfaceId = ipv4->GetInterfaceForDevice (link.GetFromNetDevice ());
+            NS_ASSERT (interfaceId >= 0);
         
-        int32_t interfaceId = ipv4->GetInterfaceForDevice (link.GetFromNetDevice ());
-        NS_ASSERT (interfaceId >= 0);
-        
-        ipv4->SetMetric (interfaceId,metric);
+            ipv4->SetMetric (interfaceId,metric);
+          }
+
+        Ptr<Ccnx> ccnx = link.GetFromNode ()->GetObject<Ccnx> ();
+        if (ccnx != 0)
+          {
+            Ptr<CcnxFace> face = ccnx->GetFaceByNetDevice (link.GetFromNetDevice ());
+            NS_ASSERT (face != 0);
+            
+            face->SetMetric (metric);
+          }
       }
         
       {
         Ptr<Ipv4> ipv4 = link.GetToNode ()->GetObject<Ipv4> ();
-        NS_ASSERT (ipv4 != 0);
-        
-        int32_t interfaceId = ipv4->GetInterfaceForDevice (link.GetToNetDevice ());
-        NS_ASSERT (interfaceId >= 0);
+        if (ipv4 != 0)
+          {
+            int32_t interfaceId = ipv4->GetInterfaceForDevice (link.GetToNetDevice ());
+            NS_ASSERT (interfaceId >= 0);
 
-        ipv4->SetMetric (interfaceId,metric);
+            ipv4->SetMetric (interfaceId,metric);
+          }
+        
+        Ptr<Ccnx> ccnx = link.GetToNode ()->GetObject<Ccnx> ();
+        if (ccnx != 0)
+          {
+            Ptr<CcnxFace> face = ccnx->GetFaceByNetDevice (link.GetToNetDevice ());
+            NS_ASSERT (face != 0);
+            
+            face->SetMetric (metric);
+          }
       }
     }
 }
@@ -290,4 +315,22 @@
     }
 }
 
+void
+AnnotatedTopologyReader::SavePositions (const std::string &file) const
+{
+  ofstream os (file.c_str (), ios::trunc);
+  os << "router\n";
+  
+  for (NodeContainer::Iterator node = m_nodes.Begin ();
+       node != m_nodes.End ();
+       node++)
+    {
+      std::string name = Names::FindName (*node);
+      Ptr<MobilityModel> mobility = (*node)->GetObject<MobilityModel> ();
+      Vector position = mobility->GetPosition ();
+
+      os << name << "\t" << "unknown" << "\t" << -position.y << "\t" << position.x << "\n";
+    }
+}
+
 }
diff --git a/model/annotated-topology-reader.h b/model/annotated-topology-reader.h
index b9268b8..95ce123 100644
--- a/model/annotated-topology-reader.h
+++ b/model/annotated-topology-reader.h
@@ -63,6 +63,12 @@
   GetNodes () const;
     
   /**
+   * \brief Get links read by the reader
+   */  
+  const std::list<Link>&
+  GetLinks () const;
+  
+  /**
    * \brief Assign IPv4 addresses to all links
    *
    * Note, IPv4 stack should be installed on all nodes prior this call
@@ -74,12 +80,34 @@
   void
   AssignIpv4Addresses (Ipv4Address base);
 
+  /**
+   * \brief Set bounding box where nodes will be randomly places (if positions are unspecified)
+   * \param ulx Upper left x coordinate
+   * \param uly Upper left y coordinate
+   * \param lrx Lower right x coordinate
+   * \param lry Lower right y coordinate
+   */
   void
   SetBoundingBox (double ulx, double uly, double lrx, double lry);
 
+  /**
+   * \brief Set mobility model to be used on nodes
+   * \param model class name of the model
+   */
   void
   SetMobilityModel (const std::string &model);
 
+  /**
+   * \brief Apply OSPF metric on Ipv4 (if exists) and Ccnx (if exists) stacks
+   */
+  void ApplyOspfMetric ();
+
+  /**
+   * \brief Save positions (e.g., after manual modification using visualizer)
+   */
+  void
+  SavePositions (const std::string &file) const;
+
 protected:
   Ptr<Node>
   CreateNode (const std::string name);
@@ -94,7 +122,6 @@
    * NodeContainer from Read method
    */
   void ApplySettings ();
-  void ApplyOspfMetric ();
     
 protected:
   std::string m_path;
diff --git a/model/batches.cc b/model/batches.cc
new file mode 100644
index 0000000..1dbccfa
--- /dev/null
+++ b/model/batches.cc
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011,2012 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#include "ns3/batches.h"
+
+namespace ns3 {
+
+ATTRIBUTE_HELPER_CPP (Batches);
+
+std::ostream &
+operator << (std::ostream &os, const Batches &batch)
+{
+  for (Batches::const_iterator i = batch.begin (); i != batch.end (); i++)
+    os << i->get<0> () << " " << i->get<1> () << " ";
+
+  return os;
+}
+
+/**
+ * \brief Read components from input and add them to components. Will read input stream till eof
+ * Substrings separated by slashes will become separate components
+ */
+std::istream &
+operator >> (std::istream &is, Batches &batch)
+{
+  Time time;
+  uint32_t amount;
+  while (!is.eof ())
+    {
+      is >> time >> amount;
+      batch.Add (time, amount);
+      // std::cout << time << ", " << amount << ". \n";
+    }
+  
+  is.clear ();
+  return is;
+}
+
+
+}
diff --git a/model/batches.h b/model/batches.h
new file mode 100644
index 0000000..d481a47
--- /dev/null
+++ b/model/batches.h
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
+/*
+ * Copyright (c) 2011,2012 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
+ */
+
+#ifndef _BATCHES_H_
+#define _BATCHES_H_
+
+#include "ns3/attribute.h"
+#include "ns3/attribute-helper.h"
+#include "ns3/nstime.h"
+#include <list>
+#include <boost/tuple/tuple.hpp>
+
+namespace ns3 {
+
+class Batches : public std::list<boost::tuple<Time, uint32_t> >
+{
+public:
+  Batches () { };
+
+  void
+  Add (const Time &when, uint32_t amount)
+  {
+    push_back (boost::make_tuple<Time, uint32_t> (when, amount));
+  }
+};
+
+ATTRIBUTE_HELPER_HEADER (Batches);
+
+std::ostream &
+operator << (std::ostream &os, const Batches &batch);
+
+/**
+ * \brief Read components from input and add them to components. Will read input stream till eof
+ * Substrings separated by slashes will become separate components
+ */
+std::istream &
+operator >> (std::istream &is, Batches &batch);
+
+} // namespace ns3
+
+#endif // _BATCHES_H_
diff --git a/model/ccnx-bestroute-strategy.cc b/model/ccnx-bestroute-strategy.cc
index 2bbe287..2f3057f 100644
--- a/model/ccnx-bestroute-strategy.cc
+++ b/model/ccnx-bestroute-strategy.cc
@@ -23,6 +23,7 @@
 #include "ccnx-interest-header.h"
 #include "ccnx-pit.h"
 #include "ccnx-pit-entry.h"
+#include "ccnx-path-stretch-tag.h"
 
 #include "ns3/assert.h"
 #include "ns3/log.h"
@@ -62,6 +63,8 @@
 {
   NS_LOG_FUNCTION (this);
 
+  
+
   // Try to work out with just green faces
   bool greenOk = PropagateInterestViaGreen (pitEntry, incomingFace, header, packet);
   if (greenOk)
@@ -99,7 +102,10 @@
       m_pit->modify (m_pit->iterator_to (pitEntry),
                      ll::bind(&CcnxPitEntry::AddOutgoing, ll::_1, metricFace.m_face));
 
-      metricFace.m_face->Send (packet->Copy ());
+      Ptr<Packet> packetToSend = packet->Copy ();
+
+      //transmission
+      metricFace.m_face->Send (packetToSend);
       m_transmittedInterestsTrace (header, metricFace.m_face);
       
       propagatedCount++;
diff --git a/model/ccnx-face.cc b/model/ccnx-face.cc
index 3c88e1c..78266fe 100644
--- a/model/ccnx-face.cc
+++ b/model/ccnx-face.cc
@@ -27,8 +27,11 @@
 #include "ns3/assert.h"
 #include "ns3/uinteger.h"
 #include "ns3/double.h"
+#include "ns3/boolean.h"
 #include "ns3/simulator.h"
 
+#include "ccnx-path-stretch-tag.h"
+
 #include <boost/ref.hpp>
 
 NS_LOG_COMPONENT_DEFINE ("CcnxFace");
@@ -56,6 +59,10 @@
                    MakeDoubleAccessor (&CcnxFace::m_bucketLeak),
                    MakeDoubleChecker<double> ())
                    
+    .AddAttribute ("MetricTagging", "Enable metric tagging (path-stretch calculation)",
+                   BooleanValue (false),
+                   MakeBooleanAccessor (&CcnxFace::m_enableMetricTagging),
+                   MakeBooleanChecker ())
     ;
   return tid;
 }
@@ -74,6 +81,8 @@
   , m_ifup (false)
   , m_id ((uint32_t)-1)
   , m_lastLeakTime (0)
+  , m_metric (0)
+  , m_enableMetricTagging (false)
 {
   NS_LOG_FUNCTION (this);
 
@@ -94,6 +103,12 @@
   return *this;
 }
 
+Ptr<Node>
+CcnxFace::GetNode () const
+{
+  return m_node;
+}
+
 void
 CcnxFace::RegisterProtocolHandler (ProtocolHandler handler)
 {
@@ -141,6 +156,24 @@
   if (!IsUp ())
     return false;
 
+  if (m_enableMetricTagging)
+    {
+      // update path information
+      Ptr<const WeightsPathStretchTag> origTag = packet->RemovePacketTag<WeightsPathStretchTag> ();
+      Ptr<WeightsPathStretchTag> tag;
+      if (origTag == 0)
+        {
+          tag = CreateObject<WeightsPathStretchTag> (); // create a new tag
+        }
+      else
+        {
+          tag = CreateObject<WeightsPathStretchTag> (*origTag); // will update existing tag
+        }
+
+      tag->AddPathInfo (m_node, GetMetric ());
+      packet->AddPacketTag (tag);
+    }
+  
   SendImpl (packet);
   return true;
 }
@@ -194,19 +227,19 @@
   m_bucketLeak = leak;
 }
 
-// void
-// CcnxFace::SetMetric (uint16_t metric)
-// {
-//   NS_LOG_FUNCTION (metric);
-//   m_metric = metric;
-// }
+void
+CcnxFace::SetMetric (uint16_t metric)
+{
+  NS_LOG_FUNCTION (metric);
+  m_metric = metric;
+}
 
-// uint16_t
-// CcnxFace::GetMetric (void) const
-// {
-//   NS_LOG_FUNCTION_NOARGS ();
-//   return m_metric;
-// }
+uint16_t
+CcnxFace::GetMetric (void) const
+{
+  NS_LOG_FUNCTION_NOARGS ();
+  return m_metric;
+}
 
 /**
  * These are face states and may be distinct from 
diff --git a/model/ccnx-face.h b/model/ccnx-face.h
index df488dc..e2100c6 100644
--- a/model/ccnx-face.h
+++ b/model/ccnx-face.h
@@ -67,6 +67,9 @@
   CcnxFace (Ptr<Node> node);
   virtual ~CcnxFace();
 
+  Ptr<Node>
+  GetNode () const;
+
   ////////////////////////////////////////////////////////////////////
   
   /**
@@ -108,19 +111,19 @@
   Receive (const Ptr<const Packet> &p);
   ////////////////////////////////////////////////////////////////////
 
-  // /**
-  //  * \Brief Assign routing/forwarding metric with face
-  //  *
-  //  * \param metric configured routing metric (cost) of this face
-  //  */
-  // virtual void SetMetric (uint16_t metric);
+  /**
+   * \Brief Assign routing/forwarding metric with face
+   *
+   * \param metric configured routing metric (cost) of this face
+   */
+  virtual void SetMetric (uint16_t metric);
 
-  // /**
-  //  * \brief Get routing/forwarding metric assigned to the face
-  //  *
-  //  * \returns configured routing/forwarding metric (cost) of this face
-  //  */
-  // virtual uint16_t GetMetric (void) const;
+  /**
+   * \brief Get routing/forwarding metric assigned to the face
+   *
+   * \returns configured routing/forwarding metric (cost) of this face
+   */
+  virtual uint16_t GetMetric (void) const;
 
   /**
    * These are face states and may be distinct from actual lower-layer
@@ -225,7 +228,10 @@
   ProtocolHandler m_protocolHandler; ///< Callback via which packets are getting send to CCNx stack
   bool m_ifup; ///< \brief flag indicating that the interface is UP 
   uint32_t m_id; ///< \brief id of the interface in CCNx stack (per-node uniqueness)
-  Time m_lastLeakTime; 
+  Time m_lastLeakTime;
+  uint32_t m_metric; ///< \brief metric of the face
+
+  bool m_enableMetricTagging; 
 };
 
 std::ostream& operator<< (std::ostream& os, const CcnxFace &face);
diff --git a/model/ccnx-fib.cc b/model/ccnx-fib.cc
index 24f236f..b068954 100644
--- a/model/ccnx-fib.cc
+++ b/model/ccnx-fib.cc
@@ -289,7 +289,7 @@
 {
   static const std::string statusString[] = {"","g","y","r"};
 
-  os << *metric.m_face << "(" << metric.m_routingCost << ","<< statusString [metric.m_status] << ")";
+  os << *metric.m_face << "(" << metric.m_routingCost << ","<< statusString [metric.m_status] << "," << metric.m_face->GetMetric () << ")";
   return os;
 }
 
diff --git a/model/ccnx-fib.h b/model/ccnx-fib.h
index f383961..318bc54 100644
--- a/model/ccnx-fib.h
+++ b/model/ccnx-fib.h
@@ -60,7 +60,7 @@
    * \param face Face for which metric
    * \param cost Initial value for routing cost
    */
-  CcnxFibFaceMetric (Ptr<CcnxFace> face, int cost)
+  CcnxFibFaceMetric (Ptr<CcnxFace> face, int32_t cost)
     : m_face (face)
     , m_status (NDN_FIB_YELLOW)
     , m_routingCost (cost)
diff --git a/model/ccnx-flooding-strategy.cc b/model/ccnx-flooding-strategy.cc
index 5b8542d..182381e 100644
--- a/model/ccnx-flooding-strategy.cc
+++ b/model/ccnx-flooding-strategy.cc
@@ -22,6 +22,7 @@
 #include "ccnx-interest-header.h"
 #include "ccnx-pit.h"
 #include "ccnx-pit-entry.h"
+#include "ccnx-path-stretch-tag.h"
 
 #include "ns3/assert.h"
 #include "ns3/log.h"
@@ -116,7 +117,10 @@
       //     NS_LOG_ERROR ("size: " << pitEntry.m_outgoing.size ());
       //   }
 
-      metricFace.m_face->Send (packet->Copy ());
+      Ptr<Packet> packetToSend = packet->Copy ();
+
+      //transmission
+      metricFace.m_face->Send (packetToSend);
       m_transmittedInterestsTrace (header, metricFace.m_face);
       
       propagatedCount++;
diff --git a/model/ccnx-forwarding-strategy.cc b/model/ccnx-forwarding-strategy.cc
index fbd4613..a856577 100644
--- a/model/ccnx-forwarding-strategy.cc
+++ b/model/ccnx-forwarding-strategy.cc
@@ -22,9 +22,9 @@
 #include "ns3/assert.h"
 
 #include "ccnx-forwarding-strategy.h"
+#include "ns3/ptr.h"
 #include "ns3/log.h"
 #include "ns3/simulator.h"
-#include "ns3/double.h"
 
 #include "ccnx-pit.h"
 #include "ccnx-pit-entry.h"
@@ -109,22 +109,18 @@
         }
 
       m_pit->modify (m_pit->iterator_to (pitEntry),
-                     ll::bind(&CcnxPitEntry::AddOutgoing, ll::_1, metricFace.m_face));
+                     ll::bind (&CcnxPitEntry::AddOutgoing, ll::_1, metricFace.m_face));
 
-      metricFace.m_face->Send (packet->Copy ());
+      Ptr<Packet> packetToSend = packet->Copy ();
+
+      //transmission
+      metricFace.m_face->Send (packetToSend);
       m_transmittedInterestsTrace (header, metricFace.m_face);
       
       propagatedCount++;
       break; // propagate only one interest
     }
 
-  // if (Simulator::GetContext ()==1)
-  //   {
-  //     if (propagatedCount > 0)
-  //       NS_LOG_DEBUG ("Propagate via a green face");
-  //     else 
-  //       NS_LOG_DEBUG ("Can't :(");
-  //   }
   return propagatedCount > 0;
 }
 
diff --git a/model/ccnx-forwarding-strategy.h b/model/ccnx-forwarding-strategy.h
index 23c15a5..ea9f692 100644
--- a/model/ccnx-forwarding-strategy.h
+++ b/model/ccnx-forwarding-strategy.h
@@ -32,6 +32,7 @@
 class CcnxInterestHeader;
 class CcnxPit;
 class CcnxPitEntry;
+class CcnxFibFaceMetric;
 
 /**
  * \ingroup ccnx
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index 223c578..87c0881 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -75,12 +75,10 @@
                    MakePointerAccessor (&CcnxL3Protocol::SetForwardingStrategy, &CcnxL3Protocol::GetForwardingStrategy),
                    MakePointerChecker<CcnxForwardingStrategy> ())
     
-    // .AddAttribute ("BucketLeakInterval",
-    //                "Interval to leak buckets",
-    //                StringValue ("100ms"),
-    //                MakeTimeAccessor (&CcnxL3Protocol::GetBucketLeakInterval,
-    //                                  &CcnxL3Protocol::SetBucketLeakInterval),
-    //                MakeTimeChecker ())
+    .AddAttribute ("EnableNACKs", "Enabling support of NACKs",
+                   BooleanValue (true),
+                   MakeBooleanAccessor (&CcnxL3Protocol::m_nacksEnabled),
+                   MakeBooleanChecker ())
   ;
   return tid;
 }
@@ -410,14 +408,17 @@
        * Every time interest is satisfied, PIT entry (with empty incoming and outgoing faces)
        * is kept for another small chunk of time.
        */
-      
-      NS_LOG_DEBUG ("Sending NACK_LOOP");
-      header->SetNack (CcnxInterestHeader::NACK_LOOP);
-      Ptr<Packet> nack = Create<Packet> ();
-      nack->AddHeader (*header);
 
-      incomingFace->Send (nack);
-      m_outNacks (header, incomingFace);
+      if (m_nacksEnabled)
+        {
+          NS_LOG_DEBUG ("Sending NACK_LOOP");
+          header->SetNack (CcnxInterestHeader::NACK_LOOP);
+          Ptr<Packet> nack = Create<Packet> ();
+          nack->AddHeader (*header);
+
+          incomingFace->Send (nack);
+          m_outNacks (header, incomingFace);
+        }
       
       return;
     }
@@ -610,16 +611,20 @@
 CcnxL3Protocol::GiveUpInterest (const CcnxPitEntry &pitEntry,
                                 Ptr<CcnxInterestHeader> header)
 {
-  Ptr<Packet> packet = Create<Packet> ();
-  header->SetNack (CcnxInterestHeader::NACK_GIVEUP_PIT);
-  packet->AddHeader (*header);
-
-  BOOST_FOREACH (const CcnxPitEntryIncomingFace &incoming, pitEntry.m_incoming)
+  if (m_nacksEnabled)
     {
-      incoming.m_face->Send (packet->Copy ());
+      Ptr<Packet> packet = Create<Packet> ();
+      header->SetNack (CcnxInterestHeader::NACK_GIVEUP_PIT);
+      packet->AddHeader (*header);
 
-      m_outNacks (header, incoming.m_face);
+      BOOST_FOREACH (const CcnxPitEntryIncomingFace &incoming, pitEntry.m_incoming)
+        {
+          incoming.m_face->Send (packet->Copy ());
+
+          m_outNacks (header, incoming.m_face);
+        }
     }
+  
   // All incoming interests cannot be satisfied. Remove them
   m_pit->modify (m_pit->iterator_to (pitEntry),
                  ll::bind (&CcnxPitEntry::ClearIncoming, ll::_1));
@@ -634,37 +639,4 @@
                            Simulator::Now () + m_pit->GetPitEntryPruningTimeout ()));
 }
 
-// void
-// CcnxL3Protocol::SetBucketLeakInterval (Time interval)
-// {
-//   m_bucketLeakInterval = interval;
-  
-//   if (m_bucketLeakEvent.IsRunning ())
-//     m_bucketLeakEvent.Cancel ();
-
-//   m_bucketLeakEvent = Simulator::Schedule (m_bucketLeakInterval,
-//                                            &CcnxL3Protocol::LeakBuckets, this);
-// }
-
-// Time
-// CcnxL3Protocol::GetBucketLeakInterval () const
-// {
-//   return m_bucketLeakInterval;
-// }
-
-// void 
-// CcnxL3Protocol::LeakBuckets ()
-// {
-//   // NS_LOG_FUNCTION (this);
-
-//   BOOST_FOREACH (const Ptr<CcnxFace> &face, m_faces)
-//     {
-//       face->LeakBucket (m_bucketLeakInterval);
-//     }
-
-//   m_bucketLeakEvent = Simulator::Schedule (m_bucketLeakInterval,
-//                                            &CcnxL3Protocol::LeakBuckets,
-//                                            this);
-// }
-
 } //namespace ns3
diff --git a/model/ccnx-l3-protocol.h b/model/ccnx-l3-protocol.h
index d3e1b44..1da29b7 100644
--- a/model/ccnx-l3-protocol.h
+++ b/model/ccnx-l3-protocol.h
@@ -207,6 +207,8 @@
   Ptr<CcnxPit> m_pit; ///< \brief PIT (pending interest table)
   Ptr<CcnxFib> m_fib; ///< \brief FIB  
   Ptr<CcnxContentStore> m_contentStore; ///< \brief Content store (for caching purposes only)
+
+  bool m_nacksEnabled;
   
   // Time    m_bucketLeakInterval;
   // EventId m_bucketLeakEvent;
diff --git a/model/ccnx-local-face.cc b/model/ccnx-local-face.cc
index 7b4413c..f3abba9 100644
--- a/model/ccnx-local-face.cc
+++ b/model/ccnx-local-face.cc
@@ -26,12 +26,14 @@
 #include "ns3/packet.h"
 #include "ns3/node.h"
 #include "ns3/assert.h"
+#include "ns3/simulator.h"
 
 #include "ns3/ccnx-header-helper.h"
 #include "ns3/ccnx-app.h"
 
 #include "ccnx-interest-header.h"
 #include "ccnx-content-object-header.h"
+#include "ccnx-path-stretch-tag.h"
 
 NS_LOG_COMPONENT_DEFINE ("CcnxLocalFace");
 
@@ -87,7 +89,7 @@
 
   m_app->RegisterProtocolHandler (MakeCallback (&CcnxFace::Receive, this));
 }
-    
+
 void
 CcnxLocalFace::SendImpl (Ptr<Packet> p)
 {
@@ -104,9 +106,9 @@
             p->RemoveHeader (*header);
 
             if (header->GetNack () > 0)
-              m_app->OnNack (header);
+              m_app->OnNack (header, p);
             else
-              m_app->OnInterest (header);
+              m_app->OnInterest (header, p);
           
             break;
           }
diff --git a/model/ccnx-local-face.h b/model/ccnx-local-face.h
index 63458f2..327199d 100644
--- a/model/ccnx-local-face.h
+++ b/model/ccnx-local-face.h
@@ -23,6 +23,7 @@
 #define CCNX_LOCAL_FACE_H
 
 #include "ccnx-face.h"
+#include "ns3/traced-callback.h"
 
 namespace ns3 
 {
diff --git a/model/ccnx-path-stretch-tag.cc b/model/ccnx-path-stretch-tag.cc
new file mode 100644
index 0000000..31adca1
--- /dev/null
+++ b/model/ccnx-path-stretch-tag.cc
@@ -0,0 +1,119 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+ 
+#include "ccnx-path-stretch-tag.h"
+#include "ns3/node.h"
+#include "ns3/names.h"
+
+namespace ns3 {
+
+WeightsPathStretchTag::WeightsPathStretchTag ()
+{
+}
+
+void
+WeightsPathStretchTag::AddPathInfo (Ptr<Node> node, uint32_t weight)
+{
+  m_infos.push_back (NodeWeightPair (node, weight));
+}
+
+
+TypeId WeightsPathStretchTag::GetTypeId ()
+{
+  static TypeId tid = TypeId("ns3::WeightsPathStretchTag")
+    .SetParent<Tag>()
+    .AddConstructor<WeightsPathStretchTag>()
+    ;
+  return tid;
+}
+
+// TypeId
+// WeightsPathStretchTag::GetInstanceTypeId () const
+// {
+//   return GetTypeId ();
+// }
+
+uint64_t
+WeightsPathStretchTag::GetTotalWeight () const
+{
+  uint64_t total = 0;
+  for (std::list<NodeWeightPair>::const_iterator info = m_infos.begin (); info != m_infos.end (); info++)
+    {
+      total += info->weight;
+    }
+  return total;
+}
+
+Ptr<Node>
+WeightsPathStretchTag::GetSourceNode () const
+{
+  NS_ASSERT (m_infos.size () > 0);
+  return m_infos.front ().node;
+}
+
+Ptr<Node>
+WeightsPathStretchTag::GetDestinationNode () const
+{
+  NS_ASSERT (m_infos.size () > 0);
+  return m_infos.back ().node;
+}
+
+uint32_t WeightsPathStretchTag::GetSerializedSize (void) const
+{
+  return 0;
+  // return sizeof (GetPointer (m_value.node)) + sizeof (m_value.weight);
+}
+
+void WeightsPathStretchTag::Serialize (TagBuffer i) const
+{
+  NS_FATAL_ERROR ("Serialization is not supported for this tag");
+  // m_value.node->Ref ();
+  // i.WriteU64 (reinterpret_cast<uint64_t> (GetPointer (m_value.node)));
+  // i.WriteU32 (m_value.weight);
+}
+
+void WeightsPathStretchTag::Deserialize (TagBuffer i)
+{
+  NS_FATAL_ERROR ("Deserialization is not supported for this tag");
+  // m_value.node = Ptr<Node> (reinterpret_cast<Node*> (i.ReadU64 ()), false);
+  // m_value.weight = i.ReadU32 ();
+}
+
+void WeightsPathStretchTag::Print (std::ostream &os) const
+{
+  for (std::list<NodeWeightPair>::const_iterator info = m_infos.begin ();
+       info != m_infos.end ();
+       info ++)
+    {
+      if (info != m_infos.begin ()) os << ",";
+      NS_ASSERT (info->node != 0);
+
+      os << info->node->GetId () << "(" << Names::FindName (info->node) << ")";
+      // std::string name = Names::FindName (info->node);
+      // if (!name.empty ())
+      //   os << name;
+      // else
+      //   os << info->node->GetId ();
+      os << ":" << info->weight;
+    }
+}
+
+} // namespace ns3
+
diff --git a/model/ccnx-path-stretch-tag.h b/model/ccnx-path-stretch-tag.h
new file mode 100644
index 0000000..644871f
--- /dev/null
+++ b/model/ccnx-path-stretch-tag.h
@@ -0,0 +1,118 @@
+/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2011 University of California, Los Angeles
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Ilya Moiseenko <iliamo@cs.ucla.edu>
+ */
+ 
+#include "ns3/tag.h"
+ 
+#ifndef PATH_STRETCH_TAG_H
+#define PATH_STRETCH_TAG_H
+
+namespace ns3 {
+
+class Node;
+class Packet;
+
+//#define PATH_SPLICING_MAX_N_HOPS 38
+//#define PATH_SPLICING_MAX_SLICE_INDEX 16
+
+class WeightsPathStretchTag : public Tag
+{
+public:
+  struct NodeWeightPair
+  {
+    NodeWeightPair () : node (0), weight (0) { }
+    NodeWeightPair (Ptr<Node> _node, uint32_t _weight) : node (_node), weight (_weight) { }
+    
+    Ptr<Node> node;
+    uint32_t  weight;
+  };
+  
+  static TypeId
+  GetTypeId ();
+
+  WeightsPathStretchTag ();
+  virtual ~WeightsPathStretchTag () { };
+
+  void
+  AddPathInfo (Ptr<Node> node, uint32_t weight);
+
+  uint64_t
+  GetTotalWeight () const;
+
+  Ptr<Node>
+  GetSourceNode () const;
+
+  Ptr<Node>
+  GetDestinationNode () const;
+
+  const std::list<NodeWeightPair> &
+  GetInfos () const
+  { return m_infos; }
+
+  // from Tag
+  virtual uint32_t
+  GetSerializedSize (void) const;
+  
+  virtual void
+  Serialize (TagBuffer i) const;
+
+  virtual void
+  Deserialize (TagBuffer i);
+
+  virtual void
+  Print (std::ostream &os) const;
+  
+private:
+  std::list<NodeWeightPair> m_infos;
+};
+
+// class DelaysPathStretchTag : public Tag
+// {
+// public:
+//   DelaysPathStretchTag();
+
+//   static TypeId GetTypeId(void);
+//   virtual TypeId GetInstanceTypeId(void) const;
+
+//   virtual uint32_t GetSerializedSize(void) const;
+//   virtual void Serialize(TagBuffer i) const;
+//   virtual void Deserialize(TagBuffer i);
+//   virtual void Print(std::ostream &os) const;
+
+//   int GetNHops();
+//   void AddNewHop(double delay);
+//   int GetCurrentHop();
+//   void RemoveCurrentHop();
+//   //void RandomizeTags(UniformVariable &rand, uint32_t max);
+
+// private:
+//   //PathSplicingPathTag(const PathSplicingPathTag &o);
+//   //PathSplicingPathTag &operator = (const PathSplicingPathTag &o);
+
+//   //bool operator == (PathSplicingPathTag const &o) const;
+
+// private:
+//   std::list<double> m_delays;
+// };
+
+
+} // namespace ns3
+
+
+#endif /* PATH_STRETCH_TAG_H */
diff --git a/model/ccnx-pit.cc b/model/ccnx-pit.cc
index d9667cf..ca2c3f3 100644
--- a/model/ccnx-pit.cc
+++ b/model/ccnx-pit.cc
@@ -170,7 +170,7 @@
     {
       CcnxFibEntryContainer::type::iterator fibEntry = m_fib->LongestPrefixMatch (header);
       NS_ASSERT_MSG (fibEntry != m_fib->m_fib.end (),
-                     "There should be at least default route set");
+                     "There should be at least default route set" << " Prefix = "<<header.GetName() << "NodeID == " << m_fib->GetObject<Node>()->GetId() << "\n" << *m_fib);
 
       entry = insert (end (),
                       CcnxPitEntry (Create<CcnxNameComponents> (header.GetName ()),
diff --git a/model/rocketfuel-weights-reader.cc b/model/rocketfuel-weights-reader.cc
index 4681e4e..acd3235 100644
--- a/model/rocketfuel-weights-reader.cc
+++ b/model/rocketfuel-weights-reader.cc
@@ -177,22 +177,4 @@
   SpringMobilityHelper::InstallSprings (LinksBegin (), LinksEnd ());
 }
 
-void
-RocketfuelWeightsReader::SavePositions (const std::string &file) const
-{
-  ofstream os (file.c_str (), ios::trunc);
-  os << "router\n";
-  
-  for (NodeContainer::Iterator node = m_nodes.Begin ();
-       node != m_nodes.End ();
-       node++)
-    {
-      std::string name = Names::FindName (*node);
-      Ptr<MobilityModel> mobility = (*node)->GetObject<MobilityModel> ();
-      Vector position = mobility->GetPosition ();
-
-      os << name << "\t" << "unknown" << "\t" << -position.y << "\t" << position.x << "\n";
-    }
-}
-
 } /* namespace ns3 */
diff --git a/model/rocketfuel-weights-reader.h b/model/rocketfuel-weights-reader.h
index cf6a784..e93ca32 100644
--- a/model/rocketfuel-weights-reader.h
+++ b/model/rocketfuel-weights-reader.h
@@ -67,9 +67,6 @@
       LATENCIES,
       POSITIONS
     };
-
-  void
-  SavePositions (const std::string &file) const;
   
 private:
   RocketfuelWeightsReader (const RocketfuelWeightsReader&);
diff --git a/test/basic-regression-test.cc b/test/basic-regression-test.cc
index b4625bb..2edac36 100644
--- a/test/basic-regression-test.cc
+++ b/test/basic-regression-test.cc
@@ -86,59 +86,59 @@
     // -- Read topology data.
     // --------------------------------------------
     
-    string input = NS_TEST_SOURCEDIR;
-    input += "/testtopology.txt";
+    // string input = NS_TEST_SOURCEDIR;
+    // input += "/testtopology.txt";
     
-    Ptr<AnnotatedTopologyReader> reader = CreateObject<AnnotatedTopologyReader> ();
-    reader->SetFileName (input);
+    // Ptr<AnnotatedTopologyReader> reader = CreateObject<AnnotatedTopologyReader> ();
+    // reader->SetFileName (input);
     
-    NodeContainer nodes;
-    if (reader != 0)
-    {
-        nodes = reader->Read ();
-    }
-    else
-    {
-        NS_TEST_ASSERT_MSG_EQ (true, false, "file not found");
-    }
+    // NodeContainer nodes;
+    // if (reader != 0)
+    // {
+    //     nodes = reader->Read ();
+    // }
+    // else
+    // {
+    //     NS_TEST_ASSERT_MSG_EQ (true, false, "file not found");
+    // }
     
-    NS_TEST_ASSERT_MSG_EQ (7, reader->LinksSize (), "link count is wrong");
+    // NS_TEST_ASSERT_MSG_EQ (7, reader->LinksSize (), "link count is wrong");
     
     
-    // ------------------------------------------------------------
-    // -- Create nodes and network stacks
-    // --------------------------------------------
-    NS_LOG_INFO ("creating internet stack");
-    InternetStackHelper stack;
+    // // ------------------------------------------------------------
+    // // -- Create nodes and network stacks
+    // // --------------------------------------------
+    // NS_LOG_INFO ("creating internet stack");
+    // InternetStackHelper stack;
     
     
-    //routing
-    /*Ipv4StaticRoutingHelper staticRouting;
-    Ipv4ListRoutingHelper listRH;
-    listRH.Add (staticRouting, 0);
-    stack.SetRoutingHelper (listRH);  // has effect on the next Install ()
-    stack.Install (nodes);
+    // //routing
+    // /*Ipv4StaticRoutingHelper staticRouting;
+    // Ipv4ListRoutingHelper listRH;
+    // listRH.Add (staticRouting, 0);
+    // stack.SetRoutingHelper (listRH);  // has effect on the next Install ()
+    // stack.Install (nodes);
     
-    NS_LOG_INFO ("creating ip4 addresses");
-    Ipv4AddressHelper address;
-    address.SetBase ("10.0.0.0", "255.255.255.252");*/
+    // NS_LOG_INFO ("creating ip4 addresses");
+    // Ipv4AddressHelper address;
+    // address.SetBase ("10.0.0.0", "255.255.255.252");*/
     
-    int totlinks = reader->LinksSize ();
+    // int totlinks = reader->LinksSize ();
     
     
-    /// applying settings
-    NS_LOG_INFO ("creating node containers");
-    NodeContainer* nc = new NodeContainer[totlinks];
-    TopologyReader::ConstLinksIterator iter;
-    int i = 0;
-    for ( iter = reader->LinksBegin (); iter != reader->LinksEnd (); iter++, i++ )
-    {
-        nc[i] = NodeContainer (iter->GetFromNode (), iter->GetToNode ());
-    }
+    // /// applying settings
+    // NS_LOG_INFO ("creating node containers");
+    // NodeContainer* nc = new NodeContainer[totlinks];
+    // TopologyReader::ConstLinksIterator iter;
+    // int i = 0;
+    // for ( iter = reader->LinksBegin (); iter != reader->LinksEnd (); iter++, i++ )
+    // {
+    //     nc[i] = NodeContainer (iter->GetFromNode (), iter->GetToNode ());
+    // }
     
-    NetDeviceContainer* ndc = new NetDeviceContainer[totlinks];
-    reader->ApplySettings(ndc,nc);
-    /// settings applied
+    // NetDeviceContainer* ndc = new NetDeviceContainer[totlinks];
+    // reader->ApplySettings(ndc,nc);
+    // /// settings applied
     
     
     
diff --git a/test/content-object-test.cc b/test/content-object-test.cc
index eff1304..cbb5811 100644
--- a/test/content-object-test.cc
+++ b/test/content-object-test.cc
@@ -23,6 +23,7 @@
 #include "ns3/ccnx-interest-header.h"
 #include "ns3/uinteger.h"
 #include "ns3/random-variable.h"
+#include "ns3/packet.h"
 #include <limits> 
 #include "ns3/ccnx-header-helper.h"
 #include "ns3/header.h"
diff --git a/test/interest-header-serialization-test.cc b/test/interest-header-serialization-test.cc
index 62d83a4..5c73bfc 100644
--- a/test/interest-header-serialization-test.cc
+++ b/test/interest-header-serialization-test.cc
@@ -30,6 +30,7 @@
 #include "ns3/nstime.h"
 #include "ns3/buffer.h"
 #include "ns3/log.h"
+#include "ns3/packet.h"
 
 #include <iostream>
 #include <fstream>
diff --git a/examples/packet-sizes.cc b/test/packet-sizes.cc
similarity index 100%
rename from examples/packet-sizes.cc
rename to test/packet-sizes.cc
diff --git a/utils/highway-position-allocator.cc b/utils/highway-position-allocator.cc
new file mode 100644
index 0000000..9ad52ba
--- /dev/null
+++ b/utils/highway-position-allocator.cc
@@ -0,0 +1,103 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Lucas Wang <lucas@cs.ucla.edu>
+ */
+
+
+#include "highway-position-allocator.h"
+#include "ns3/random-variable.h"
+#include "ns3/log.h"
+#include "ns3/double.h"
+#include <math.h>
+
+NS_LOG_COMPONENT_DEFINE ("HighwayPositionAllocator");
+
+namespace ns3 {
+
+NS_OBJECT_ENSURE_REGISTERED (HighwayPositionAllocator);
+
+TypeId HighwayPositionAllocator::GetTypeId (void){
+  static TypeId tid = TypeId("ns3::HighwayPositionAllocator").
+    SetParent<PositionAllocator> ().
+    SetGroupName("Mobility").
+    AddConstructor<HighwayPositionAllocator>().
+    AddAttribute("Start", "the start position of the highway",
+		 VectorValue (Vector(0.0, 0.0, 0.0)),
+		 MakeVectorAccessor(&HighwayPositionAllocator::SetStartPosition,
+				    &HighwayPositionAllocator::GetStartPosition),
+                 MakeVectorChecker ()).
+    AddAttribute("Direction", "the direction of the highway",
+		 DoubleValue (0.0),
+		 MakeDoubleAccessor(&HighwayPositionAllocator::SetDirection,
+				    &HighwayPositionAllocator::GetDirection),
+                 MakeDoubleChecker<double> ()).
+    AddAttribute("Length", "the length of the highway",
+		 DoubleValue (0.0),
+		 MakeDoubleAccessor(&HighwayPositionAllocator::SetLength,
+				    &HighwayPositionAllocator::GetLength),
+                 MakeDoubleChecker<double> ());
+
+  return tid;
+}
+
+HighwayPositionAllocator::HighwayPositionAllocator (){
+  m_previous_position = Vector(0.0, 0.0, 0.0);
+}
+
+Vector HighwayPositionAllocator::GetNext (void) const{
+  UniformVariable random_gap_var (1.0, 10.0);
+  double random_gap = random_gap_var.GetValue();
+  
+  double delta_x = random_gap * cos(m_direction);
+  double delta_y = random_gap * sin(m_direction);
+  
+  
+  Vector new_position(m_previous_position.x - delta_x, m_previous_position.y - delta_y, m_previous_position.z);
+  m_previous_position.x = new_position.x;
+  m_previous_position.y = new_position.y;
+  m_previous_position.z = new_position.z;
+
+  return new_position;
+}
+
+void HighwayPositionAllocator::SetStartPosition(Vector start){
+  m_start = start;
+  m_previous_position = m_start; // initialize the m_previous_position to be start of the highway
+}
+
+Vector HighwayPositionAllocator::GetStartPosition(void) const {
+  return m_start;
+}
+
+void HighwayPositionAllocator::SetDirection(double direction){
+  m_direction = direction;
+}
+
+double HighwayPositionAllocator::GetDirection(void) const {
+  return m_direction;
+}
+
+void HighwayPositionAllocator::SetLength(double length){
+  m_length = length;
+}
+
+double HighwayPositionAllocator::GetLength(void) const {
+  return m_length;
+}
+
+}
diff --git a/utils/highway-position-allocator.h b/utils/highway-position-allocator.h
new file mode 100644
index 0000000..4028b4a
--- /dev/null
+++ b/utils/highway-position-allocator.h
@@ -0,0 +1,53 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2007 INRIA
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * Author: Lucas Wang <lucas@cs.ucla.edu>
+ */
+#ifndef HIGHWAY_POSITION_ALLOCATOR_H
+#define HIGHWAY_POSITION_ALLOCATOR_H
+
+#include "ns3/position-allocator.h"
+
+namespace ns3 {
+  
+/**
+ * This position allocator is used to generate positions for cars 
+ * on a highway.
+ */
+
+class HighwayPositionAllocator : public PositionAllocator
+{
+public:
+  static TypeId GetTypeId (void);
+  HighwayPositionAllocator ();
+  virtual Vector GetNext (void) const;
+  void SetStartPosition(Vector start);
+  Vector GetStartPosition(void) const;
+  void SetDirection(double direction); // the angle in terms of radian degrees
+  double GetDirection(void) const ;
+  void SetLength(double length);
+  double GetLength(void) const ;
+
+private:
+  mutable Vector m_previous_position; // previously generated vehicle position
+  Vector m_start; // highway starting point
+  double m_direction; //highway direction
+  double m_length; // highway length
+};
+}
+
+#endif
diff --git a/wscript b/wscript
index 80bc42c..2643c67 100644
--- a/wscript
+++ b/wscript
@@ -59,8 +59,11 @@
         "helper/ccnx-header-helper.h",
         "helper/ccnx-trace-helper.h",
         "helper/tracers/ipv4-app-tracer.h",
+        "helper/tracers/ipv4-l3-tracer.h",
         "helper/tracers/ccnx-app-tracer.h",
         "helper/tracers/ccnx-l3-tracer.h",
+        "helper/tracers/ccnx-consumer-window-tracer.h",
+        "helper/tracers/ccnx-path-weight-tracer.h",
         "helper/ccnx-face-container.h",
 
         "apps/ccnx-app.h",
@@ -72,6 +75,7 @@
         "model/ccnx-interest-header.h",
         "model/ccnx-content-object-header.h",
         "model/ccnx-name-components.h",
+        "model/ccnx-path-stretch-tag.h",
         "model/ccnx-fib.h",
 
         "utils/spring-mobility-model.h",
@@ -79,29 +83,22 @@
 
         "model/rocketfuel-weights-reader.h",
         "model/annotated-topology-reader.h",
+
+        "model/batches.h"
         ]
 
     tests.source = bld.path.ant_glob('test/*.cc');
 
     if True or bld.env['ENABLE_EXAMPLES']:
-        obj = bld.create_ns3_program('ccnx-test', ['NDNabstraction', 'internet'])
-        obj.source = 'examples/ccnx-test.cc'
-        
-        obj = bld.create_ns3_program('ccnx-routing-simple', ['NDNabstraction', 'point-to-point-layout'])
+        obj = bld.create_ns3_program('ccnx-routing-simple', ['NDNabstraction'])
         obj.source = 'examples/ccnx-routing-simple.cc'
         
-        obj = bld.create_ns3_program('ccnx-grid', ['NDNabstraction', 'point-to-point-layout'])
+        obj = bld.create_ns3_program('ccnx-grid', ['NDNabstraction'])
         obj.source = 'examples/ccnx-grid.cc'
 
-        obj = bld.create_ns3_program('annotated-topology', ['NDNabstraction', 'point-to-point-layout'])
+        obj = bld.create_ns3_program('annotated-topology', ['NDNabstraction'])
         obj.source = 'examples/annotated-topology-read-example.cc'
 
-        obj = bld.create_ns3_program('interest-header-example', ['NDNabstraction'])
-        obj.source = 'examples/interest-header-example.cc'
-
-        obj = bld.create_ns3_program('packet-sizes', ['NDNabstraction'])
-        obj.source = 'examples/packet-sizes.cc'
-
         obj = bld.create_ns3_program('ccnx-sprint-topology', ['NDNabstraction'])
         obj.source = 'examples/sprint-topology.cc'
 
@@ -114,8 +111,20 @@
         obj = bld.create_ns3_program('congestion-pop', ['NDNabstraction'])
         obj.source = 'examples/congestion-pop.cc'
 
-        obj = bld.create_ns3_program('congestion-tcp-pop', ['NDNabstraction'])
-        obj.source = 'examples/congestion-tcp-pop.cc'
+        obj = bld.create_ns3_program('link-failure', ['NDNabstraction'])
+        obj.source = 'examples/link-failure-sprint.cc'
+
+        obj = bld.create_ns3_program('link-failure-base', ['NDNabstraction'])
+        obj.source = 'examples/link-failure-base.cc'
+
+        obj = bld.create_ns3_program('blackhole-sprint', ['NDNabstraction'])
+        obj.source = 'examples/blackhole-sprint.cc'
+        
+        obj = bld.create_ns3_program('congestion-zoom', ['NDNabstraction'])
+        obj.source = 'examples/congestion-zoom.cc'
+
+        obj = bld.create_ns3_program('vanet-ccnx', ['NDNabstraction', 'highway-mobility'])
+        obj.source = 'examples/vanet-ccnx.cc'
 
         obj = bld.create_ns3_program('car2car-wifi', ['internet', 'applications', 'visualizer', 'NDNabstraction'])
         obj.source = 'examples/car2car-wifi.cc'
