Commits

Jing Conan Wang  committed 265ed62

small revision of doc

  • Participants
  • Parent commits 1f59582

Comments (0)

Files changed (30)

File .DS_Store

Binary file added.
     1. going to NS3 path and type:
         $ ./waf shell
        you will enter ns3 waf-sh. Then in this shell, go back to this folder and type
-        $ ./simulator.py
+        $ ./simulate.py
     2. if you are lazy. just update the NS3_PATH value in settings.py and type
         $ ./sim

File core/.DS_Store

Binary file added.

File core/ns3/.DS_Store

Binary file added.

File core/ns3/Experiment.py

 NODE_NUM = 0
 
 class ImalseExperiment(object):
+    """ Base class for all ImalseExperiment
+    """
     server_id_set = [0]
     botmaster_id_set = [1]
     client_id_set = [2, 3, 4]
         node.cmd_set._trigger(*args, **kwargs)
 
     def start_nodes(self):
+        """specify when each node should start"""
         # start servers
         for i in self.server_id_set:
             print 'node [%i] type [%s] start at [%f]s'%(i, 'server', 0)
 # are clients
 import optparse
 class ImalseNetnsExperiment(ImalseExperiment, NetnsExperiment):
-    """Base Class for Imalse Experiment
-    It is based on the NetnsExperiment
+    """Base Class for Imalse Experiment in netns3 mode
     """
     def __init__(self, *args, **kwargs):
         # super(ImalseNetnsExperiment, self).__init__(*args, **kwargs)
-        NetnsExperiment.__init__(*args, **kwargs)
-        ImalseExperiment.__init__()
+        NetnsExperiment.__init__(self, *args, **kwargs)
+        ImalseExperiment.__init__(self)
         self._init()
 
     def initparser(self, parser):
 
     @staticmethod
     def event(time, func, *args, **kwds):
+        """schedule an event to simulator"""
         def run():
             func(*args, **kwds)
         ns.core.Simulator.Schedule(ns.core.Time(str(time)), run)
         for i in xrange(self.node_num):
             n = self.get_node(i)
             n.stop()
-
-

File core/ns3/Network.py

-from core.ns3.netns3 import *
-class Network:
-    def __init__(self, path):
-        print 'network config file [%s] loading...'%(path)
-        pass
-
-    def install(self, core):
-        print 'network installing...'
-        self.core = core
-        core.network = self

File core/ns3/SocketAdapter.py

Empty file removed.

File core/ns3/csma-ping.py

-#!/usr/bin/env python
-
-# Create a N node CSMA network and broadcast ping from the first node.
-
-from netns3 import *
-import sys
-
-class PingCsmaExperiment(CsmaExperiment):
-
-    @staticmethod
-    def ping(node, dst, count = 3):
-        cmd = ["ping", "-b", "-c", str(count), str(dst)]
-        print "%s: ping: %s" % (node.name, " ".join(cmd))
-        p, stdin, stdout, stderr = node.popen(cmd)
-        err = stderr.read()
-        out = stdout.read()
-        sys.stderr.write(err)
-        sys.stdout.write(out)
-
-    @staticmethod
-    def config(node):
-        node.cmd(["sysctl", "-w", "net.ipv4.icmp_echo_ignore_broadcasts=0"])
-        node.cmd(["ip", "route", "add", "default", "dev", "eth0"])
-
-    def initparser(self, parser):
-        CsmaExperiment.initparser(self, parser)
-        parser.set_defaults(simtime = 10, pingcount = 3)
-        parser.add_option("-c", "--pingcount", dest = "pingcount",
-                          help = "ping count; default = %s" %
-                          parser.defaults["pingcount"])
-
-    def setup(self):
-        CsmaExperiment.setup(self)
-        for n in self.nodes:
-            self.event(0, self.config, n)
-        if self.nodes:
-            self.event(1, self.ping, self.nodes[0],
-                       "255.255.255.255", self.options.pingcount)
-
-
-if __name__ == "__main__":
-    x = PingCsmaExperiment()
-    x.main()

File core/real/Node.py

 
     # def bind(self, sock, port):
     def bind(self, sock, addr_port):
+        print 'addr_port, ', addr_port
         sock.bind(addr_port)
         # sock.bind(("", port))
 
         ftp = FTP(host, user, password)
         print 'try to upload file %s'%(f)
         ftp.storbinary('STOR %s'%(os.path.basename(f)), open(f, 'rb'))
+        self.sleep(0.1)
+        print 'upload file finish %s'%(f)
+
 
     def stop_app(self, sock, app_name):
         if app_name == 'ping':

File doc/build/html/.doctrees/API.doctree

Binary file modified.

File doc/build/html/.doctrees/environment.pickle

Binary file modified.

File doc/build/html/.doctrees/index.doctree

Binary file modified.

File doc/build/html/API.html

 <p>This section contains the functions for NS3 support.</p>
 <dl class="class">
 <dt id="core.ns3.Experiment.ImalseExperiment">
-<em class="property">class </em><tt class="descclassname">core.ns3.Experiment.</tt><tt class="descname">ImalseExperiment</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="_modules/core/ns3/Experiment.html#ImalseExperiment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#core.ns3.Experiment.ImalseExperiment" title="Permalink to this definition">¶</a></dt>
-<dd><p>Base Class for Imalse Experiment
-It is based on the NetnsExperiment</p>
+<em class="property">class </em><tt class="descclassname">core.ns3.Experiment.</tt><tt class="descname">ImalseExperiment</tt><a class="reference internal" href="_modules/core/ns3/Experiment.html#ImalseExperiment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#core.ns3.Experiment.ImalseExperiment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Base class for all ImalseExperiment</p>
 <dl class="method">
 <dt id="core.ns3.Experiment.ImalseExperiment.get_node">
 <tt class="descname">get_node</tt><big>(</big><em>i</em><big>)</big><a class="reference internal" href="_modules/core/ns3/Experiment.html#ImalseExperiment.get_node"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#core.ns3.Experiment.ImalseExperiment.get_node" title="Permalink to this definition">¶</a></dt>
 <dd><p>print out the address of the server</p>
 </dd></dl>
 
+<dl class="method">
+<dt id="core.ns3.Experiment.ImalseExperiment.start_nodes">
+<tt class="descname">start_nodes</tt><big>(</big><big>)</big><a class="headerlink" href="#core.ns3.Experiment.ImalseExperiment.start_nodes" title="Permalink to this definition">¶</a></dt>
+<dd><p>specify when each node should start</p>
+</dd></dl>
+
+</dd></dl>
+
+<dl class="class">
+<dt id="core.ns3.Experiment.ImalseNetnsExperiment">
+<em class="property">class </em><tt class="descclassname">core.ns3.Experiment.</tt><tt class="descname">ImalseNetnsExperiment</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#core.ns3.Experiment.ImalseNetnsExperiment" title="Permalink to this definition">¶</a></dt>
+<dd><p>Base Class for Imalse Experiment in netns3 mode</p>
+<dl class="method">
+<dt id="core.ns3.Experiment.ImalseNetnsExperiment.get_node">
+<tt class="descname">get_node</tt><big>(</big><em>i</em><big>)</big><a class="headerlink" href="#core.ns3.Experiment.ImalseNetnsExperiment.get_node" title="Permalink to this definition">¶</a></dt>
+<dd><p>get ith nodes</p>
+</dd></dl>
+
 </dd></dl>
 
 <dl class="class">
 </dd></dl>
 
 <dl class="class">
-<dt id="core.ns3.PureSimExperiment.ImalsePureSimExperiment">
-<em class="property">class </em><tt class="descclassname">core.ns3.PureSimExperiment.</tt><tt class="descname">ImalsePureSimExperiment</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="reference internal" href="_modules/core/ns3/PureSimExperiment.html#ImalsePureSimExperiment"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#core.ns3.PureSimExperiment.ImalsePureSimExperiment" title="Permalink to this definition">¶</a></dt>
+<dt id="core.ns3.Experiment.ImalsePureSimExperiment">
+<em class="property">class </em><tt class="descclassname">core.ns3.Experiment.</tt><tt class="descname">ImalsePureSimExperiment</tt><a class="headerlink" href="#core.ns3.Experiment.ImalsePureSimExperiment" title="Permalink to this definition">¶</a></dt>
 <dd><p>Pure Sim Experiemtn Doesn&#8217;t depend on netns3 can run in simulated time</p>
+<dl class="staticmethod">
+<dt id="core.ns3.Experiment.ImalsePureSimExperiment.event">
+<em class="property">static </em><tt class="descname">event</tt><big>(</big><em>time</em>, <em>func</em>, <em>*args</em>, <em>**kwds</em><big>)</big><a class="headerlink" href="#core.ns3.Experiment.ImalsePureSimExperiment.event" title="Permalink to this definition">¶</a></dt>
+<dd><p>schedule an event to simulator</p>
+</dd></dl>
+
 </dd></dl>
 
 <div class="toctree-wrapper compound">

File doc/build/html/_images/client_fsm13.svg

+<?xml version="1.0" standalone="yes"?>
+
+<svg version="1.1" viewBox="0.0 0.0 653.0 379.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" clip-path="url(#p.0)" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="p.0"><path d="m0 0l653.0 0l0 379.0l-653.0 0l0 -379.0z" clip-rule="nonzero"></path></clipPath><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m80.0 104.0l0 0c0 -17.673111 37.50937 -32.0 83.779526 -32.0l0 0c46.270157 0 83.779526 14.326889 83.779526 32.0l0 0c0 17.673111 -37.50937 32.0 -83.779526 32.0l0 0c-46.270157 0 -83.779526 -14.326889 -83.779526 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m147.48627 105.39844l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.2229462 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183304 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.472946 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0z" fill-rule="nonzero"></path><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m407.7624 103.64357l0 0c0 -17.673111 37.50937 -32.0 83.77951 -32.0l0 0c46.270172 0 83.77951 14.326889 83.77951 32.0l0 0c0 17.673111 -37.50934 32.0 -83.77951 32.0l0 0c-46.27014 0 -83.77951 -14.326889 -83.77951 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m449.9956 109.80763l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm11.972961 1.609375l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.2770386 -4.375l1.6875 -0.140625q0.125 1.015625 0.5625 1.671875q0.4375 0.65625 1.359375 1.0625q0.9375 0.40625 2.09375 0.40625q1.03125 0 1.8125 -0.3125q0.796875 -0.3125 1.1875 -0.84375q0.390625 -0.53125 0.390625 -1.15625q0 -0.640625 -0.375 -1.109375q-0.375 -0.484375 -1.234375 -0.8125q-0.546875 -0.21875 -2.421875 -0.65625q-1.875 -0.453125 -2.625 -0.859375q-0.96875 -0.515625 -1.453125 -1.265625q-0.46875 -0.75 -0.46875 -1.6875q0 -1.03125 0.578125 -1.921875q0.59375 -0.90625 1.703125 -1.359375q1.125 -0.46875 2.5 -0.46875q1.515625 0 2.671875 0.484375q1.15625 0.484375 1.765625 1.4375q0.625 0.9375 0.671875 2.140625l-1.71875 0.125q-0.140625 -1.28125 -0.953125 -1.9375q-0.796875 -0.671875 -2.359375 -0.671875q-1.625 0 -2.375 0.609375q-0.75 0.59375 -0.75 1.4375q0 0.734375 0.53125 1.203125q0.515625 0.46875 2.703125 0.96875q2.203125 0.5 3.015625 0.875q1.1875 0.546875 1.75 1.390625q0.578125 0.828125 0.578125 1.921875q0 1.09375 -0.625 2.0625q-0.625 0.953125 -1.796875 1.484375q-1.15625 0.53125 -2.609375 0.53125q-1.84375 0 -3.09375 -0.53125q-1.25 -0.546875 -1.96875 -1.625q-0.703125 -1.078125 -0.734375 -2.453125zm22.756073 -0.390625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.2229614 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183289 6.59375l0 -13.59375l1.84375 0l7.1406555 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.1406555 -10.6875l0 10.6875l-1.71875 0zm13.472931 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m223.02061 81.37259l197.28023 -0.33599854" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m420.3065 84.34005l9.070557 -3.3189163l-9.081787 -3.288002z" fill-rule="evenodd"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.30084 126.27099l-197.28026 0.33599854" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m235.01497 123.30352l-9.070557 3.3189163l9.081802 3.2880096z" fill-rule="evenodd"></path><path fill="#000000" d="m253.14636 70.16406l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm11.972961 1.609375l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.2770386 -4.375l1.6875 -0.140625q0.125 1.015625 0.5625 1.671875q0.4375 0.65625 1.359375 1.0625q0.9375 0.40625 2.09375 0.40625q1.03125 0 1.8125 -0.3125q0.796875 -0.3125 1.1875 -0.84375q0.390625 -0.53125 0.390625 -1.15625q0 -0.640625 -0.375 -1.109375q-0.375 -0.484375 -1.234375 -0.8125q-0.546875 -0.21875 -2.421875 -0.65625q-1.875 -0.453125 -2.625 -0.859375q-0.96875 -0.515625 -1.453125 -1.265625q-0.46875 -0.75 -0.46875 -1.6875q0 -1.03125 0.578125 -1.921875q0.59375 -0.90625 1.703125 -1.359375q1.125 -0.46875 2.5 -0.46875q1.515625 0 2.671875 0.484375q1.15625 0.484375 1.765625 1.4375q0.625 0.9375 0.671875 2.140625l-1.71875 0.125q-0.140625 -1.28125 -0.953125 -1.9375q-0.796875 -0.671875 -2.359375 -0.671875q-1.625 0 -2.375 0.609375q-0.75 0.59375 -0.75 1.4375q0 0.734375 0.53125 1.203125q0.515625 0.46875 2.703125 0.96875q2.203125 0.5 3.015625 0.875q1.1875 0.546875 1.75 1.390625q0.578125 0.828125 0.578125 1.921875q0 1.09375 -0.625 2.0625q-0.625 0.953125 -1.796875 1.484375q-1.15625 0.53125 -2.609375 0.53125q-1.84375 0 -3.09375 -0.53125q-1.25 -0.546875 -1.96875 -1.625q-0.703125 -1.078125 -0.734375 -2.453125zm22.756073 -0.390625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.222931 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183319 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.472931 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm11.738586 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm12.156982 -3.78125l0 -13.59375l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34375 1.09375 0.671875q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.265625 -0.8125 -0.359375q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.046875l-1.796875 0zm1.796875 -7.59375l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.676056 7.59375l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm22.709198 -1.453125q1.265625 0.859375 2.3125 1.265625l-0.53125 1.25q-1.453125 -0.53125 -2.921875 -1.671875q-1.5 0.84375 -3.328125 0.84375q-1.84375 0 -3.359375 -0.890625q-1.5 -0.890625 -2.3125 -2.5q-0.8125 -1.625 -0.8125 -3.640625q0 -2.015625 0.8125 -3.65625q0.828125 -1.65625 2.328125 -2.515625q1.515625 -0.875 3.375 -0.875q1.890625 0 3.390625 0.90625q1.515625 0.890625 2.3125 2.5q0.796875 1.609375 0.796875 3.625q0 1.6875 -0.515625 3.03125q-0.515625 1.328125 -1.546875 2.328125zm-3.953125 -2.296875q1.5625 0.421875 2.5625 1.296875q1.59375 -1.453125 1.59375 -4.359375q0 -1.65625 -0.5625 -2.875q-0.5625 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-2.015625 0 -3.34375 1.390625q-1.328125 1.375 -1.328125 4.109375q0 2.65625 1.3125 4.078125q1.3125 1.40625 3.359375 1.40625q0.953125 0 1.8125 -0.359375q-0.84375 -0.546875 -1.78125 -0.78125l0.4375 -1.296875z" fill-rule="nonzero"></path><path fill="#000000" d="m271.82492 150.4809l0 -13.59375l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34375 1.09375 0.671875q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.265625 -0.8125 -0.359375q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.046875l-1.796875 0zm1.796875 -7.59375l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.676056 7.59375l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm22.115448 -4.765625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm7.6604614 4.765625l-5.28125 -13.59375l1.953125 0l3.53125 9.875q0.4375 1.1875 0.71875 2.21875q0.3125 -1.109375 0.734375 -2.21875l3.671875 -9.875l1.84375 0l-5.328125 13.59375l-1.84375 0zm6.802948 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm10.625702 -3.78125l5.234375 -13.59375l1.9375 0l5.5625 13.59375l-2.046875 0l-1.59375 -4.125l-5.6875 0l-1.484375 4.125l-1.921875 0zm3.921875 -5.578125l4.609375 0l-1.40625 -3.78125q-0.65625 -1.703125 -0.96875 -2.8125q-0.265625 1.3125 -0.734375 2.59375l-1.5 4.0zm19.724823 0.8125l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.691681 4.765625l0 -13.59375l1.796875 0l0 6.734375l6.765625 -6.734375l2.4375 0l-5.703125 5.5l5.953125 8.09375l-2.375 0l-4.84375 -6.890625l-2.234375 2.171875l0 4.71875l-1.796875 0z" fill-rule="nonzero"></path><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m87.89474 288.3158l0 0c0 -17.673126 37.50937 -32.0 83.77953 -32.0l0 0c46.27014 0 83.779526 14.326874 83.779526 32.0l0 0c0 17.673096 -37.509384 32.0 -83.779526 32.0l0 0c-46.270164 0 -83.77953 -14.326904 -83.77953 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m130.43056 283.75327l-3.609375 -13.59375l1.84375 0l2.0625 8.90625q0.34375 1.40625 0.578125 2.78125q0.515625 -2.171875 0.609375 -2.515625l2.59375 -9.171875l2.171875 0l1.953125 6.875q0.734375 2.5625 1.046875 4.8125q0.265625 -1.28125 0.6875 -2.953125l2.125 -8.734375l1.8125 0l-3.734375 13.59375l-1.734375 0l-2.859375 -10.359375q-0.359375 -1.296875 -0.421875 -1.59375q-0.21875 0.9375 -0.40625 1.59375l-2.890625 10.359375l-1.828125 0zm13.733658 0l5.234375 -13.59375l1.9375 0l5.5625 13.59375l-2.046875 0l-1.59375 -4.125l-5.6875 0l-1.484375 4.125l-1.921875 0zm3.921875 -5.578125l4.609375 0l-1.40625 -3.78125q-0.65625 -1.703125 -0.96875 -2.8125q-0.265625 1.3125 -0.734375 2.59375l-1.5 4.0zm10.318573 5.578125l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm8.339554 0l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm8.239731 0l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.870804 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm19.847946 -5.328125l0 -1.609375l5.765625 0l0 5.046875q-1.328125 1.0625 -2.75 1.59375q-1.40625 0.53125 -2.890625 0.53125q-2.0 0 -3.640625 -0.859375q-1.625 -0.859375 -2.46875 -2.484375q-0.828125 -1.625 -0.828125 -3.625q0 -1.984375 0.828125 -3.703125q0.828125 -1.71875 2.390625 -2.546875q1.5625 -0.84375 3.59375 -0.84375q1.46875 0 2.65625 0.484375q1.203125 0.46875 1.875 1.328125q0.671875 0.84375 1.03125 2.21875l-1.625 0.4375q-0.3125 -1.03125 -0.765625 -1.625q-0.453125 -0.59375 -1.296875 -0.953125q-0.84375 -0.359375 -1.875 -0.359375q-1.234375 0 -2.140625 0.375q-0.890625 0.375 -1.453125 1.0q-0.546875 0.609375 -0.84375 1.34375q-0.53125 1.25 -0.53125 2.734375q0 1.8125 0.625 3.046875q0.640625 1.21875 1.828125 1.8125q1.203125 0.59375 2.546875 0.59375q1.171875 0 2.28125 -0.453125q1.109375 -0.453125 1.6875 -0.953125l0 -2.53125l-4.0 0zm6.402054 9.109375l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0z" fill-rule="nonzero"></path><path fill="#000000" d="m161.6028 300.4408l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.7073212 4.765625l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.603302 0l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625z" fill-rule="nonzero"></path><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m400.44095 288.0l0 0c0 -17.673126 37.50937 -32.0 83.77951 -32.0l0 0c46.27014 0 83.77954 14.326874 83.77954 32.0l0 0c0 17.673126 -37.5094 32.0 -83.77954 32.0l0 0c-46.27014 0 -83.77951 -14.326874 -83.77951 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m440.6239 294.16406l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm11.021698 0l5.265625 -7.09375l-4.640625 -6.5l2.140625 0l2.46875 3.484375q0.78125 1.078125 1.09375 1.671875q0.453125 -0.75 1.078125 -1.546875l2.734375 -3.609375l1.96875 0l-4.78125 6.40625l5.140625 7.1875l-2.21875 0l-3.421875 -4.859375q-0.296875 -0.40625 -0.59375 -0.90625q-0.453125 0.75 -0.65625 1.03125l-3.40625 4.734375l-2.171875 0zm13.865448 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm10.662323 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm21.828857 -8.546875l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.707306 4.765625l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.6033325 0l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m167.98923 144.00082l3.2915344 100.32141" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m167.97906 244.43056l3.5993195 8.962997l3.0040588 -9.179642z" fill-rule="evenodd"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m230.91533 265.68835l182.06407 -0.29626465" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m412.9848 268.69556l9.070801 -3.3182068l-9.081543 -3.2886963z" fill-rule="evenodd"></path><path fill="#000000" d="m293.3628 261.84827l0 -13.593735l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34373474 1.09375 0.67185974q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.26560974 -0.8125 -0.35935974q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.0468597l-1.796875 0zm1.796875 -7.5937347l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.676086 7.5937347l0 -13.593735l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.6249847l8.359375 0l0 1.609375l-10.15625 0zm22.115448 -4.765625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.6562347q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.7343597 0.5 3.0312347q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm7.660431 4.765625l-5.28125 -13.593735l1.953125 0l3.53125 9.874985q0.4375 1.1875 0.71875 2.21875q0.3125 -1.109375 0.734375 -2.21875l3.671875 -9.874985l1.84375 0l-5.328125 13.593735l-1.84375 0zm6.802948 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm21.828857 -8.546875l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.6562347q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.7343597 0.5 3.0312347q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.707306 4.765625l0 -13.593735l2.71875 0l3.21875 9.624985q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.45311l2.421875 0l0 13.593735l-1.734375 0l0 -11.39061l-3.953125 11.39061l-1.625 0l-3.9375 -11.57811l0 11.57811l-1.734375 0zm15.603302 0l0 -13.593735l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.5468597 -0.359375 2.7499847q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.6249847q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.39061z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m230.91533 265.68835l249.88905 -124.68707" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m482.2793 143.9572l6.6464233 -7.0082245l-9.596283 1.0963745z" fill-rule="evenodd"></path><path fill="#000000" d="m393.89685 203.12172l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm8.239716 0l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.823944 0l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.634552 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm10.662323 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm11.578827 -10.40625q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm22.120789 -7.0l1.796875 0l0 7.84375q0 2.0625 -0.46875 3.265625q-0.453125 1.203125 -1.671875 1.96875q-1.203125 0.75 -3.171875 0.75q-1.90625 0 -3.125 -0.65625q-1.21875 -0.65625 -1.734375 -1.90625q-0.515625 -1.25 -0.515625 -3.421875l0 -7.84375l1.796875 0l0 7.84375q0 1.765625 0.328125 2.609375q0.328125 0.84375 1.125 1.296875q0.8125 0.453125 1.96875 0.453125q1.984375 0 2.828125 -0.890625q0.84375 -0.90625 0.84375 -3.46875l0 -7.84375zm8.004211 13.59375l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm13.40741 4.0l0 -17.828125l1.453125 0l0 17.828125l-1.453125 0z" fill-rule="nonzero"></path><path fill="#000000" d="m368.3547 219.80922l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.222931 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183319 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.472931 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.519836 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm22.115448 -4.765625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm7.222931 4.765625l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm6.192871 3.78125l0 -1.21875l11.0624695 0l0 1.21875l-11.0624695 0zm12.047577 -3.78125l0 -13.59375l5.109375 0q1.546875 0 2.484375 0.40625q0.953125 0.40625 1.484375 1.265625q0.53125 0.859375 0.53125 1.796875q0 0.875 -0.46875 1.65625q-0.46875 0.765625 -1.4375 1.234375q1.234375 0.359375 1.890625 1.234375q0.671875 0.875 0.671875 2.0625q0 0.953125 -0.40625 1.78125q-0.390625 0.8125 -0.984375 1.265625q-0.59375 0.4375 -1.5 0.671875q-0.890625 0.21875 -2.1875 0.21875l-5.1875 0zm1.796875 -7.890625l2.9375 0q1.203125 0 1.71875 -0.15625q0.6875 -0.203125 1.03125 -0.671875q0.359375 -0.46875 0.359375 -1.1875q0 -0.671875 -0.328125 -1.1875q-0.328125 -0.515625 -0.9375 -0.703125q-0.59375 -0.203125 -2.0625 -0.203125l-2.71875 0l0 4.109375zm0 6.28125l3.390625 0q0.875 0 1.21875 -0.0625q0.625 -0.109375 1.046875 -0.359375q0.421875 -0.265625 0.6875 -0.765625q0.265625 -0.5 0.265625 -1.140625q0 -0.765625 -0.390625 -1.328125q-0.390625 -0.5625 -1.078125 -0.78125q-0.6875 -0.234375 -1.984375 -0.234375l-3.15625 0l0 4.671875zm10.756073 1.609375l0 -13.59375l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34375 1.09375 0.671875q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.265625 -0.8125 -0.359375q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.046875l-1.796875 0zm1.796875 -7.59375l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.097931 0.96875q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.120819 6.59375l0 -13.59375l1.796875 0l0 6.734375l6.765625 -6.734375l2.4375 0l-5.703125 5.5l5.953125 8.09375l-2.375 0l-4.84375 -6.890625l-2.234375 2.171875l0 4.71875l-1.796875 0zm12.5529785 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m424.9794 310.6274l-182.06409 0.29626465" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m242.90994 307.6202l-9.070801 3.3182373l9.081558 3.2886963z" fill-rule="evenodd"></path><path fill="#000000" d="m310.00076 329.39844l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.707306 4.765625l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.603302 0l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm9.926086 5.390625l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm12.125702 -3.78125l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm11.129211 -5.015625q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183289 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.519836 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0z" fill-rule="nonzero"></path></svg>
+

File doc/build/html/_images/client_fsm14.svg

+<?xml version="1.0" standalone="yes"?>
+
+<svg version="1.1" viewBox="0.0 0.0 653.0 379.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" clip-path="url(#p.0)" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="p.0"><path d="m0 0l653.0 0l0 379.0l-653.0 0l0 -379.0z" clip-rule="nonzero"></path></clipPath><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m80.0 104.0l0 0c0 -17.673111 37.50937 -32.0 83.779526 -32.0l0 0c46.270157 0 83.779526 14.326889 83.779526 32.0l0 0c0 17.673111 -37.50937 32.0 -83.779526 32.0l0 0c-46.270157 0 -83.779526 -14.326889 -83.779526 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m147.48627 105.39844l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.2229462 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183304 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.472946 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0z" fill-rule="nonzero"></path><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m407.7624 103.64357l0 0c0 -17.673111 37.50937 -32.0 83.77951 -32.0l0 0c46.270172 0 83.77951 14.326889 83.77951 32.0l0 0c0 17.673111 -37.50934 32.0 -83.77951 32.0l0 0c-46.27014 0 -83.77951 -14.326889 -83.77951 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m449.9956 109.80763l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm11.972961 1.609375l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.2770386 -4.375l1.6875 -0.140625q0.125 1.015625 0.5625 1.671875q0.4375 0.65625 1.359375 1.0625q0.9375 0.40625 2.09375 0.40625q1.03125 0 1.8125 -0.3125q0.796875 -0.3125 1.1875 -0.84375q0.390625 -0.53125 0.390625 -1.15625q0 -0.640625 -0.375 -1.109375q-0.375 -0.484375 -1.234375 -0.8125q-0.546875 -0.21875 -2.421875 -0.65625q-1.875 -0.453125 -2.625 -0.859375q-0.96875 -0.515625 -1.453125 -1.265625q-0.46875 -0.75 -0.46875 -1.6875q0 -1.03125 0.578125 -1.921875q0.59375 -0.90625 1.703125 -1.359375q1.125 -0.46875 2.5 -0.46875q1.515625 0 2.671875 0.484375q1.15625 0.484375 1.765625 1.4375q0.625 0.9375 0.671875 2.140625l-1.71875 0.125q-0.140625 -1.28125 -0.953125 -1.9375q-0.796875 -0.671875 -2.359375 -0.671875q-1.625 0 -2.375 0.609375q-0.75 0.59375 -0.75 1.4375q0 0.734375 0.53125 1.203125q0.515625 0.46875 2.703125 0.96875q2.203125 0.5 3.015625 0.875q1.1875 0.546875 1.75 1.390625q0.578125 0.828125 0.578125 1.921875q0 1.09375 -0.625 2.0625q-0.625 0.953125 -1.796875 1.484375q-1.15625 0.53125 -2.609375 0.53125q-1.84375 0 -3.09375 -0.53125q-1.25 -0.546875 -1.96875 -1.625q-0.703125 -1.078125 -0.734375 -2.453125zm22.756073 -0.390625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.2229614 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183289 6.59375l0 -13.59375l1.84375 0l7.1406555 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.1406555 -10.6875l0 10.6875l-1.71875 0zm13.472931 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m223.02061 81.37259l197.28023 -0.33599854" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m420.3065 84.34005l9.070557 -3.3189163l-9.081787 -3.288002z" fill-rule="evenodd"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m432.30084 126.27099l-197.28026 0.33599854" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m235.01497 123.30352l-9.070557 3.3189163l9.081802 3.2880096z" fill-rule="evenodd"></path><path fill="#000000" d="m253.14636 70.16406l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm11.972961 1.609375l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.2770386 -4.375l1.6875 -0.140625q0.125 1.015625 0.5625 1.671875q0.4375 0.65625 1.359375 1.0625q0.9375 0.40625 2.09375 0.40625q1.03125 0 1.8125 -0.3125q0.796875 -0.3125 1.1875 -0.84375q0.390625 -0.53125 0.390625 -1.15625q0 -0.640625 -0.375 -1.109375q-0.375 -0.484375 -1.234375 -0.8125q-0.546875 -0.21875 -2.421875 -0.65625q-1.875 -0.453125 -2.625 -0.859375q-0.96875 -0.515625 -1.453125 -1.265625q-0.46875 -0.75 -0.46875 -1.6875q0 -1.03125 0.578125 -1.921875q0.59375 -0.90625 1.703125 -1.359375q1.125 -0.46875 2.5 -0.46875q1.515625 0 2.671875 0.484375q1.15625 0.484375 1.765625 1.4375q0.625 0.9375 0.671875 2.140625l-1.71875 0.125q-0.140625 -1.28125 -0.953125 -1.9375q-0.796875 -0.671875 -2.359375 -0.671875q-1.625 0 -2.375 0.609375q-0.75 0.59375 -0.75 1.4375q0 0.734375 0.53125 1.203125q0.515625 0.46875 2.703125 0.96875q2.203125 0.5 3.015625 0.875q1.1875 0.546875 1.75 1.390625q0.578125 0.828125 0.578125 1.921875q0 1.09375 -0.625 2.0625q-0.625 0.953125 -1.796875 1.484375q-1.15625 0.53125 -2.609375 0.53125q-1.84375 0 -3.09375 -0.53125q-1.25 -0.546875 -1.96875 -1.625q-0.703125 -1.078125 -0.734375 -2.453125zm22.756073 -0.390625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.222931 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183319 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.472931 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm11.738586 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm12.156982 -3.78125l0 -13.59375l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34375 1.09375 0.671875q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.265625 -0.8125 -0.359375q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.046875l-1.796875 0zm1.796875 -7.59375l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.676056 7.59375l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm22.709198 -1.453125q1.265625 0.859375 2.3125 1.265625l-0.53125 1.25q-1.453125 -0.53125 -2.921875 -1.671875q-1.5 0.84375 -3.328125 0.84375q-1.84375 0 -3.359375 -0.890625q-1.5 -0.890625 -2.3125 -2.5q-0.8125 -1.625 -0.8125 -3.640625q0 -2.015625 0.8125 -3.65625q0.828125 -1.65625 2.328125 -2.515625q1.515625 -0.875 3.375 -0.875q1.890625 0 3.390625 0.90625q1.515625 0.890625 2.3125 2.5q0.796875 1.609375 0.796875 3.625q0 1.6875 -0.515625 3.03125q-0.515625 1.328125 -1.546875 2.328125zm-3.953125 -2.296875q1.5625 0.421875 2.5625 1.296875q1.59375 -1.453125 1.59375 -4.359375q0 -1.65625 -0.5625 -2.875q-0.5625 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-2.015625 0 -3.34375 1.390625q-1.328125 1.375 -1.328125 4.109375q0 2.65625 1.3125 4.078125q1.3125 1.40625 3.359375 1.40625q0.953125 0 1.8125 -0.359375q-0.84375 -0.546875 -1.78125 -0.78125l0.4375 -1.296875z" fill-rule="nonzero"></path><path fill="#000000" d="m271.82492 150.4809l0 -13.59375l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34375 1.09375 0.671875q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.265625 -0.8125 -0.359375q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.046875l-1.796875 0zm1.796875 -7.59375l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.676056 7.59375l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm22.115448 -4.765625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm7.6604614 4.765625l-5.28125 -13.59375l1.953125 0l3.53125 9.875q0.4375 1.1875 0.71875 2.21875q0.3125 -1.109375 0.734375 -2.21875l3.671875 -9.875l1.84375 0l-5.328125 13.59375l-1.84375 0zm6.802948 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm10.625702 -3.78125l5.234375 -13.59375l1.9375 0l5.5625 13.59375l-2.046875 0l-1.59375 -4.125l-5.6875 0l-1.484375 4.125l-1.921875 0zm3.921875 -5.578125l4.609375 0l-1.40625 -3.78125q-0.65625 -1.703125 -0.96875 -2.8125q-0.265625 1.3125 -0.734375 2.59375l-1.5 4.0zm19.724823 0.8125l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.691681 4.765625l0 -13.59375l1.796875 0l0 6.734375l6.765625 -6.734375l2.4375 0l-5.703125 5.5l5.953125 8.09375l-2.375 0l-4.84375 -6.890625l-2.234375 2.171875l0 4.71875l-1.796875 0z" fill-rule="nonzero"></path><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m87.89474 288.3158l0 0c0 -17.673126 37.50937 -32.0 83.77953 -32.0l0 0c46.27014 0 83.779526 14.326874 83.779526 32.0l0 0c0 17.673096 -37.509384 32.0 -83.779526 32.0l0 0c-46.270164 0 -83.77953 -14.326904 -83.77953 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m130.43056 283.75327l-3.609375 -13.59375l1.84375 0l2.0625 8.90625q0.34375 1.40625 0.578125 2.78125q0.515625 -2.171875 0.609375 -2.515625l2.59375 -9.171875l2.171875 0l1.953125 6.875q0.734375 2.5625 1.046875 4.8125q0.265625 -1.28125 0.6875 -2.953125l2.125 -8.734375l1.8125 0l-3.734375 13.59375l-1.734375 0l-2.859375 -10.359375q-0.359375 -1.296875 -0.421875 -1.59375q-0.21875 0.9375 -0.40625 1.59375l-2.890625 10.359375l-1.828125 0zm13.733658 0l5.234375 -13.59375l1.9375 0l5.5625 13.59375l-2.046875 0l-1.59375 -4.125l-5.6875 0l-1.484375 4.125l-1.921875 0zm3.921875 -5.578125l4.609375 0l-1.40625 -3.78125q-0.65625 -1.703125 -0.96875 -2.8125q-0.265625 1.3125 -0.734375 2.59375l-1.5 4.0zm10.318573 5.578125l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm8.339554 0l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm8.239731 0l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.870804 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm19.847946 -5.328125l0 -1.609375l5.765625 0l0 5.046875q-1.328125 1.0625 -2.75 1.59375q-1.40625 0.53125 -2.890625 0.53125q-2.0 0 -3.640625 -0.859375q-1.625 -0.859375 -2.46875 -2.484375q-0.828125 -1.625 -0.828125 -3.625q0 -1.984375 0.828125 -3.703125q0.828125 -1.71875 2.390625 -2.546875q1.5625 -0.84375 3.59375 -0.84375q1.46875 0 2.65625 0.484375q1.203125 0.46875 1.875 1.328125q0.671875 0.84375 1.03125 2.21875l-1.625 0.4375q-0.3125 -1.03125 -0.765625 -1.625q-0.453125 -0.59375 -1.296875 -0.953125q-0.84375 -0.359375 -1.875 -0.359375q-1.234375 0 -2.140625 0.375q-0.890625 0.375 -1.453125 1.0q-0.546875 0.609375 -0.84375 1.34375q-0.53125 1.25 -0.53125 2.734375q0 1.8125 0.625 3.046875q0.640625 1.21875 1.828125 1.8125q1.203125 0.59375 2.546875 0.59375q1.171875 0 2.28125 -0.453125q1.109375 -0.453125 1.6875 -0.953125l0 -2.53125l-4.0 0zm6.402054 9.109375l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0z" fill-rule="nonzero"></path><path fill="#000000" d="m161.6028 300.4408l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.7073212 4.765625l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.603302 0l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625z" fill-rule="nonzero"></path><path fill="#cfe2f3" stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m400.44095 288.0l0 0c0 -17.673126 37.50937 -32.0 83.77951 -32.0l0 0c46.27014 0 83.77954 14.326874 83.77954 32.0l0 0c0 17.673126 -37.5094 32.0 -83.77954 32.0l0 0c-46.27014 0 -83.77951 -14.326874 -83.77951 -32.0z" fill-rule="nonzero"></path><path fill="#000000" d="m440.6239 294.16406l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm11.021698 0l5.265625 -7.09375l-4.640625 -6.5l2.140625 0l2.46875 3.484375q0.78125 1.078125 1.09375 1.671875q0.453125 -0.75 1.078125 -1.546875l2.734375 -3.609375l1.96875 0l-4.78125 6.40625l5.140625 7.1875l-2.21875 0l-3.421875 -4.859375q-0.296875 -0.40625 -0.59375 -0.90625q-0.453125 0.75 -0.65625 1.03125l-3.40625 4.734375l-2.171875 0zm13.865448 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm10.662323 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm21.828857 -8.546875l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.707306 4.765625l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.6033325 0l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m167.98923 144.00082l3.2915344 100.32141" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m167.97906 244.43056l3.5993195 8.962997l3.0040588 -9.179642z" fill-rule="evenodd"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m230.91533 265.68835l182.06407 -0.29626465" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m412.9848 268.69556l9.070801 -3.3182068l-9.081543 -3.2886963z" fill-rule="evenodd"></path><path fill="#000000" d="m293.3628 261.84827l0 -13.593735l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34373474 1.09375 0.67185974q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.26560974 -0.8125 -0.35935974q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.0468597l-1.796875 0zm1.796875 -7.5937347l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.676086 7.5937347l0 -13.593735l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.6249847l8.359375 0l0 1.609375l-10.15625 0zm22.115448 -4.765625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.6562347q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.7343597 0.5 3.0312347q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm7.660431 4.765625l-5.28125 -13.593735l1.953125 0l3.53125 9.874985q0.4375 1.1875 0.71875 2.21875q0.3125 -1.109375 0.734375 -2.21875l3.671875 -9.874985l1.84375 0l-5.328125 13.593735l-1.84375 0zm6.802948 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm21.828857 -8.546875l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.6562347q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.7343597 0.5 3.0312347q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.707306 4.765625l0 -13.593735l2.71875 0l3.21875 9.624985q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.45311l2.421875 0l0 13.593735l-1.734375 0l0 -11.39061l-3.953125 11.39061l-1.625 0l-3.9375 -11.57811l0 11.57811l-1.734375 0zm15.603302 0l0 -13.593735l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.5468597 -0.359375 2.7499847q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.6249847q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.39061z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m230.91533 265.68835l249.88905 -124.68707" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m482.2793 143.9572l6.6464233 -7.0082245l-9.596283 1.0963745z" fill-rule="evenodd"></path><path fill="#000000" d="m393.89685 203.12172l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm8.239716 0l0 -13.59375l1.8125 0l0 13.59375l-1.8125 0zm4.823944 0l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.634552 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm10.662323 3.78125l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm11.578827 -10.40625q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm22.120789 -7.0l1.796875 0l0 7.84375q0 2.0625 -0.46875 3.265625q-0.453125 1.203125 -1.671875 1.96875q-1.203125 0.75 -3.171875 0.75q-1.90625 0 -3.125 -0.65625q-1.21875 -0.65625 -1.734375 -1.90625q-0.515625 -1.25 -0.515625 -3.421875l0 -7.84375l1.796875 0l0 7.84375q0 1.765625 0.328125 2.609375q0.328125 0.84375 1.125 1.296875q0.8125 0.453125 1.96875 0.453125q1.984375 0 2.828125 -0.890625q0.84375 -0.90625 0.84375 -3.46875l0 -7.84375zm8.004211 13.59375l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm13.40741 4.0l0 -17.828125l1.453125 0l0 17.828125l-1.453125 0z" fill-rule="nonzero"></path><path fill="#000000" d="m368.3547 219.80922l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.222931 -1.859375q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183319 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.472931 0l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.519836 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0zm22.115448 -4.765625l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm7.222931 4.765625l0 -12.0l-4.46875 0l0 -1.59375l10.765625 0l0 1.59375l-4.5 0l0 12.0l-1.796875 0zm6.192871 3.78125l0 -1.21875l11.0624695 0l0 1.21875l-11.0624695 0zm12.047577 -3.78125l0 -13.59375l5.109375 0q1.546875 0 2.484375 0.40625q0.953125 0.40625 1.484375 1.265625q0.53125 0.859375 0.53125 1.796875q0 0.875 -0.46875 1.65625q-0.46875 0.765625 -1.4375 1.234375q1.234375 0.359375 1.890625 1.234375q0.671875 0.875 0.671875 2.0625q0 0.953125 -0.40625 1.78125q-0.390625 0.8125 -0.984375 1.265625q-0.59375 0.4375 -1.5 0.671875q-0.890625 0.21875 -2.1875 0.21875l-5.1875 0zm1.796875 -7.890625l2.9375 0q1.203125 0 1.71875 -0.15625q0.6875 -0.203125 1.03125 -0.671875q0.359375 -0.46875 0.359375 -1.1875q0 -0.671875 -0.328125 -1.1875q-0.328125 -0.515625 -0.9375 -0.703125q-0.59375 -0.203125 -2.0625 -0.203125l-2.71875 0l0 4.109375zm0 6.28125l3.390625 0q0.875 0 1.21875 -0.0625q0.625 -0.109375 1.046875 -0.359375q0.421875 -0.265625 0.6875 -0.765625q0.265625 -0.5 0.265625 -1.140625q0 -0.765625 -0.390625 -1.328125q-0.390625 -0.5625 -1.078125 -0.78125q-0.6875 -0.234375 -1.984375 -0.234375l-3.15625 0l0 4.671875zm10.756073 1.609375l0 -13.59375l6.03125 0q1.8125 0 2.75 0.359375q0.953125 0.359375 1.515625 1.296875q0.5625 0.921875 0.5625 2.046875q0 1.453125 -0.9375 2.453125q-0.921875 0.984375 -2.890625 1.25q0.71875 0.34375 1.09375 0.671875q0.78125 0.734375 1.484375 1.8125l2.375 3.703125l-2.265625 0l-1.796875 -2.828125q-0.796875 -1.21875 -1.3125 -1.875q-0.5 -0.65625 -0.90625 -0.90625q-0.40625 -0.265625 -0.8125 -0.359375q-0.3125 -0.078125 -1.015625 -0.078125l-2.078125 0l0 6.046875l-1.796875 0zm1.796875 -7.59375l3.859375 0q1.234375 0 1.921875 -0.25q0.703125 -0.265625 1.0625 -0.828125q0.375 -0.5625 0.375 -1.21875q0 -0.96875 -0.703125 -1.578125q-0.703125 -0.625 -2.21875 -0.625l-4.296875 0l0 4.5zm11.097931 0.96875q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.120819 6.59375l0 -13.59375l1.796875 0l0 6.734375l6.765625 -6.734375l2.4375 0l-5.703125 5.5l5.953125 8.09375l-2.375 0l-4.84375 -6.890625l-2.234375 2.171875l0 4.71875l-1.796875 0zm12.5529785 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0z" fill-rule="nonzero"></path><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m424.9794 310.6274l-182.06409 0.29626465" fill-rule="evenodd"></path><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m242.90994 307.6202l-9.070801 3.3182373l9.081558 3.2886963z" fill-rule="evenodd"></path><path fill="#000000" d="m310.00076 329.39844l1.796875 0.453125q-0.5625 2.21875 -2.03125 3.390625q-1.46875 1.15625 -3.59375 1.15625q-2.203125 0 -3.578125 -0.890625q-1.375 -0.90625 -2.09375 -2.59375q-0.71875 -1.703125 -0.71875 -3.65625q0 -2.125 0.796875 -3.703125q0.8125 -1.578125 2.3125 -2.390625q1.5 -0.828125 3.296875 -0.828125q2.046875 0 3.4375 1.046875q1.390625 1.03125 1.9375 2.90625l-1.765625 0.421875q-0.46875 -1.484375 -1.375 -2.15625q-0.90625 -0.6875 -2.265625 -0.6875q-1.5625 0 -2.625 0.75q-1.046875 0.75 -1.484375 2.03125q-0.421875 1.265625 -0.421875 2.609375q0 1.734375 0.5 3.03125q0.515625 1.28125 1.578125 1.921875q1.078125 0.640625 2.3125 0.640625q1.515625 0 2.5625 -0.859375q1.046875 -0.875 1.421875 -2.59375zm3.707306 4.765625l0 -13.59375l2.71875 0l3.21875 9.625q0.4375 1.34375 0.640625 2.015625q0.234375 -0.75 0.734375 -2.1875l3.25 -9.453125l2.421875 0l0 13.59375l-1.734375 0l0 -11.390625l-3.953125 11.390625l-1.625 0l-3.9375 -11.578125l0 11.578125l-1.734375 0zm15.603302 0l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm9.926086 5.390625l0 -1.21875l11.0625 0l0 1.21875l-11.0625 0zm12.125702 -3.78125l0 -13.59375l4.6875 0q1.578125 0 2.421875 0.1875q1.15625 0.265625 1.984375 0.96875q1.078125 0.921875 1.609375 2.34375q0.53125 1.40625 0.53125 3.21875q0 1.546875 -0.359375 2.75q-0.359375 1.1875 -0.921875 1.984375q-0.5625 0.78125 -1.234375 1.234375q-0.671875 0.4375 -1.625 0.671875q-0.953125 0.234375 -2.1875 0.234375l-4.90625 0zm1.796875 -1.609375l2.90625 0q1.34375 0 2.109375 -0.25q0.765625 -0.25 1.21875 -0.703125q0.640625 -0.640625 1.0 -1.71875q0.359375 -1.078125 0.359375 -2.625q0 -2.125 -0.703125 -3.265625q-0.703125 -1.15625 -1.703125 -1.546875q-0.71875 -0.28125 -2.328125 -0.28125l-2.859375 0l0 10.390625zm11.129211 -5.015625q0 -3.390625 1.8125 -5.296875q1.828125 -1.921875 4.703125 -1.921875q1.875 0 3.390625 0.90625q1.515625 0.890625 2.296875 2.5q0.796875 1.609375 0.796875 3.65625q0 2.0625 -0.84375 3.703125q-0.828125 1.625 -2.359375 2.46875q-1.53125 0.84375 -3.296875 0.84375q-1.921875 0 -3.4375 -0.921875q-1.5 -0.9375 -2.28125 -2.53125q-0.78125 -1.609375 -0.78125 -3.40625zm1.859375 0.03125q0 2.453125 1.3125 3.875q1.328125 1.40625 3.3125 1.40625q2.03125 0 3.34375 -1.421875q1.3125 -1.4375 1.3125 -4.0625q0 -1.65625 -0.5625 -2.890625q-0.546875 -1.234375 -1.640625 -1.921875q-1.078125 -0.6875 -2.421875 -0.6875q-1.90625 0 -3.28125 1.3125q-1.375 1.3125 -1.375 4.390625zm13.183289 6.59375l0 -13.59375l1.84375 0l7.140625 10.671875l0 -10.671875l1.71875 0l0 13.59375l-1.84375 0l-7.140625 -10.6875l0 10.6875l-1.71875 0zm13.519836 0l0 -13.59375l9.84375 0l0 1.59375l-8.046875 0l0 4.171875l7.53125 0l0 1.59375l-7.53125 0l0 4.625l8.359375 0l0 1.609375l-10.15625 0z" fill-rule="nonzero"></path></svg>
+

File doc/build/html/_images/genearal-structure22.png

Added
New image

File doc/build/html/_images/genearal-structure23.png

Added
New image

File doc/build/html/_images/imalse-abstract24.png

Added
New image

File doc/build/html/_images/imalse-abstract25.png

Added
New image

File doc/build/html/_sources/API.txt

 .. autoclass:: core.ns3.Experiment.ImalseExperiment
     :members:
 
+.. autoclass:: core.ns3.Experiment.ImalseNetnsExperiment
+    :members:
+
 .. autoclass:: core.ns3.Node.ImalseNetnsNode
     :members:
 
 .. autoclass:: core.ns3.Node.ImalseNetnsSimNode
     :members:
 
-.. autoclass:: core.ns3.PureSimExperiment.ImalsePureSimExperiment
+.. autoclass:: core.ns3.Experiment.ImalsePureSimExperiment
     :members:
 
-
 .. toctree::
    :maxdepth: 2
 
 * :ref:`genindex`
 * :ref:`modindex`
 * :ref:`search`
-

File doc/build/html/_sources/index.txt

 virtual functions.
 
 a command is a basic event in the botnet. **C**\ ommand **M**\ eta **D**\ escription defines a set of
-commands for a node, namely it defines what event a node can generate. There are three types of **CMD**\ s: 
+commands for a node, namely it defines what event a node can generate. There are three types of **CMD**\ s:
     1. Server **CMD**
     2. Client **CMD**
     3. Botmaster **CMD**
 support to real network, netns3 and NS3. User can create their own flavor of
 botnet by subclassing **ServerCMD**, **ClientCMD** and **BotmasterCMD**, each
 flavor is called a new **scenario**.
-implement
+
+The basic botnet mechanism can be described as **F**\ inite **S**\ tate **M**\
+achine. The **FSM** for the **ClientCMD** is as follows:
 
 .. image:: ./figure/client_fsm.svg
     :align: center 
     :height: 400px
 
+Scenario:
+++++++++++++++++++++++++++++++
+
+As a noted above, user can create their own flavor of **Botnet**, which is so
+called **scenario**. Currently, Imalse provides two sample **scenarios**: 
+
+    1. **ddos_ping_flooding**: in this scenario, botmaster can issue **send_pings** 
+           command to initiate a ddos ping flooding attack to a specific server.
+    2. **file_exfiltration**: in this scenario, botmaster can request bots to search
+           in the file system with any file that contains a certain pattern,
+           like **password**. Whenver an interesting is found, the bot will
+           upload the file to a ftp server.
+
+Experiment
+++++++++++++++++++++++++++++++
+
+Experiment is only used in **simulation mode**. Experiments need to do Topology and network
+configuration, user behaviour specification. This is usually the only part user need to code if he is 
+using an existing scenario. 
+
+Two types of experiments are avaliable in Imalse. 1. **ImalseNetnsExperiment** and 2. **ImalsePureSimExperiment**. 
+**ImalseNetnsExperiment** is for **netns3 mode** simulation. **ImalsePureSimExperiment** is
+for pure simulation. For both experiments, you can load topology. If you want to implement your own experiment, 
+you can subclass corresponding classes to implement different **mode**.
+
+The experiments folder contains several examples of experiment
+    1. **StaticRouteExperiment**
+    2. **TopoExperiment.py**
+
+Demo:
+------------------------------
+this is the link for a demo
+`video <http://www.youtube.com/watch?v=CZ91McFlIvo&feature=plcp>`_
+
+
 
 
 Extension:
 .. toctree::
    :maxdepth: 3
 
-    api
-
 Contents:
 
 Indices and tables

File doc/build/html/genindex.html

 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
     <dt><a href="API.html#core.Client.ClientCMD.echo">echo() (core.Client.ClientCMD method)</a></dt>
+    <dt><a href="API.html#core.Server.ServerCMD.echo_bots">echo_bots() (core.Server.ServerCMD method)</a></dt>
 </dl></td>
   <td style="width: 33%" valign="top"><dl>
-    <dt><a href="API.html#core.Server.ServerCMD.echo_bots">echo_bots() (core.Server.ServerCMD method)</a></dt>
+    <dt><a href="API.html#core.ns3.Experiment.ImalsePureSimExperiment.event">event() (core.ns3.Experiment.ImalsePureSimExperiment static method)</a></dt>
 </dl></td>
 </tr></table>
 
 </dl></td>
   <td style="width: 33%" valign="top"><dl>
     <dt><a href="API.html#core.ns3.Experiment.ImalseExperiment.get_node">get_node() (core.ns3.Experiment.ImalseExperiment method)</a></dt>
+    <dd><dl>
+      <dt><a href="API.html#core.ns3.Experiment.ImalseNetnsExperiment.get_node">(core.ns3.Experiment.ImalseNetnsExperiment method)</a></dt>
+  </dl></dd>
 </dl></td>
 </tr></table>
 
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
     <dt><a href="API.html#core.ns3.Experiment.ImalseExperiment">ImalseExperiment (class in core.ns3.Experiment)</a></dt>
+    <dt><a href="API.html#core.ns3.Experiment.ImalseNetnsExperiment">ImalseNetnsExperiment (class in core.ns3.Experiment)</a></dt>
     <dt><a href="API.html#core.ns3.Node.ImalseNetnsNode">ImalseNetnsNode (class in core.ns3.Node)</a></dt>
     <dt><a href="API.html#core.ns3.Node.ImalseNetnsSimNode">ImalseNetnsSimNode (class in core.ns3.Node)</a></dt>
-    <dt><a href="API.html#core.ns3.PureSimExperiment.ImalsePureSimExperiment">ImalsePureSimExperiment (class in core.ns3.PureSimExperiment)</a></dt>
 </dl></td>
   <td style="width: 33%" valign="top"><dl>
+    <dt><a href="API.html#core.ns3.Experiment.ImalsePureSimExperiment">ImalsePureSimExperiment (class in core.ns3.Experiment)</a></dt>
     <dt><a href="API.html#core.ns3.Topology.InetTopologyReader">InetTopologyReader (class in core.ns3.Topology)</a>, <a href="API.html#core.ns3.Topology.InetTopologyReader">[1]</a></dt>
     <dt><a href="API.html#core.Server.ServerCMD.initialize">initialize() (core.Server.ServerCMD method)</a></dt>
     <dt><a href="API.html#core.CMD.install">install() (core.CMD method)</a></dt>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%" valign="top"><dl>
     <dt><a href="API.html#core.Server.ServerCMD">ServerCMD (class in core.Server)</a></dt>
+    <dt><a href="API.html#core.CMD.start">start() (core.CMD method)</a></dt>
 </dl></td>
   <td style="width: 33%" valign="top"><dl>
-    <dt><a href="API.html#core.CMD.start">start() (core.CMD method)</a></dt>
+    <dt><a href="API.html#core.ns3.Experiment.ImalseExperiment.start_nodes">start_nodes() (core.ns3.Experiment.ImalseExperiment method)</a></dt>
 </dl></td>
 </tr></table>
 

File doc/build/html/index.html

 <li><strong>hybrid approach</strong>: of pure ns3 mode and netns3 mode</li>
 </ul>
 </div></blockquote>
-<img alt="_images/imalse-abstract23.png" class="align-center" src="_images/imalse-abstract23.png" />
+<img alt="_images/imalse-abstract25.png" class="align-center" src="_images/imalse-abstract25.png" />
 <div class="section" id="typical-use-case">
 <h3>Typical Use Case<a class="headerlink" href="#typical-use-case" title="Permalink to this headline">¶</a></h3>
 <p>Suppose Conan is a Ph.D student who has proposed a novel anomaly
 <p>To support the variety of modes noted above, Imalse design in a way that to
 seperate the botnet mechanism and the network.</p>
 <p>The general structure of Imalse is shown in the following figure:</p>
-<img alt="_images/genearal-structure21.png" class="align-center" src="_images/genearal-structure21.png" />
+<img alt="_images/genearal-structure23.png" class="align-center" src="_images/genearal-structure23.png" />
 <p><strong>Node</strong> and <strong>C</strong>ommand <strong>M</strong>eta <strong>D</strong>escription are the two key concepts in the design.
 <strong>Node</strong> is the abstraction of a real computer. A node should support:</p>
 <blockquote>
 <p>In <strong>core</strong> module, imalse provides a basic framework for the botnet and the
 support to real network, netns3 and NS3. User can create their own flavor of
 botnet by subclassing <strong>ServerCMD</strong>, <strong>ClientCMD</strong> and <strong>BotmasterCMD</strong>, each
-flavor is called a new <strong>scenario</strong>.
-implement</p>
-<div align="center" class="align-center"><object data="_images/client_fsm12.svg" height="400px" type="image/svg+xml"><embed height="400px" src="_images/client_fsm12.svg" type="image/svg+xml" /></object>
+flavor is called a new <strong>scenario</strong>.</p>
+<p>The basic botnet mechanism can be described as <strong>F</strong>inite <strong>S</strong>tate <strong>M</strong>achine. The <strong>FSM</strong> for the <strong>ClientCMD</strong> is as follows:</p>
+<div align="center" class="align-center"><object data="_images/client_fsm14.svg" height="400px" type="image/svg+xml"><embed height="400px" src="_images/client_fsm14.svg" type="image/svg+xml" /></object>
 </div>
 </div>
+<div class="section" id="scenario">
+<h3>Scenario:<a class="headerlink" href="#scenario" title="Permalink to this headline">¶</a></h3>
+<p>As a noted above, user can create their own flavor of <strong>Botnet</strong>, which is so
+called <strong>scenario</strong>. Currently, Imalse provides two sample <strong>scenarios</strong>:</p>
+<blockquote>
+<div><ol class="arabic">
+<li><dl class="first docutils">
+<dt><strong>ddos_ping_flooding</strong>: in this scenario, botmaster can issue <strong>send_pings</strong></dt>
+<dd><p class="first last">command to initiate a ddos ping flooding attack to a specific server.</p>
+</dd>
+</dl>
+</li>
+<li><dl class="first docutils">
+<dt><strong>file_exfiltration</strong>: in this scenario, botmaster can request bots to search</dt>
+<dd><p class="first last">in the file system with any file that contains a certain pattern,
+like <strong>password</strong>. Whenver an interesting is found, the bot will
+upload the file to a ftp server.</p>
+</dd>
+</dl>
+</li>
+</ol>
+</div></blockquote>
+</div>
+<div class="section" id="experiment">
+<h3>Experiment<a class="headerlink" href="#experiment" title="Permalink to this headline">¶</a></h3>
+<p>Experiment is only used in <strong>simulation mode</strong>. Experiments need to do Topology and network
+configuration, user behaviour specification. This is usually the only part user need to code if he is
+using an existing scenario.</p>
+<p>Two types of experiments are avaliable in Imalse. 1. <strong>ImalseNetnsExperiment</strong> and 2. <strong>ImalsePureSimExperiment</strong>.
+<strong>ImalseNetnsExperiment</strong> is for <strong>netns3 mode</strong> simulation. <strong>ImalsePureSimExperiment</strong> is
+for pure simulation. For both experiments, you can load topology. If you want to implement your own experiment,
+you can subclass corresponding classes to implement different <strong>mode</strong>.</p>
+<dl class="docutils">
+<dt>The experiments folder contains several examples of experiment</dt>
+<dd><ol class="first last arabic simple">
+<li><strong>StaticRouteExperiment</strong></li>
+<li><strong>TopoExperiment.py</strong></li>
+</ol>
+</dd>
+</dl>
+</div>
+</div>
+<div class="section" id="demo">
+<h2>Demo:<a class="headerlink" href="#demo" title="Permalink to this headline">¶</a></h2>
+<p>this is the link for a demo
+<a class="reference external" href="http://www.youtube.com/watch?v=CZ91McFlIvo&amp;feature=plcp">video</a></p>
 </div>
 <div class="section" id="extension">
 <h2>Extension:<a class="headerlink" href="#extension" title="Permalink to this headline">¶</a></h2>
 </li>
 <li><a class="reference internal" href="#description">Description:</a><ul>
 <li><a class="reference internal" href="#basic-botnet-mechanism">Basic Botnet Mechanism:</a></li>
+<li><a class="reference internal" href="#scenario">Scenario:</a></li>
+<li><a class="reference internal" href="#experiment">Experiment</a></li>
 </ul>
 </li>
+<li><a class="reference internal" href="#demo">Demo:</a></li>
 <li><a class="reference internal" href="#extension">Extension:</a><ul>
 </ul>
 </li>

File doc/build/html/objects.inv

Binary file modified.

File doc/build/html/searchindex.js

-Search.setIndex({objects:{core:{CMD:[1,2,1]},"core.Server":{ServerCMD:[1,2,1]},"core.Client.ClientCMD":{recv_disconn_req:[1,1,1],request_connect:[1,1,1],recv_ack:[1,1,1],echo:[1,1,1],request_time_out:[1,1,1],connection_refused:[1,1,1]},"core.ns3":{Topology:[1,0,1]},"core.ns3.Topology":{TopologyReaderHelper:[1,2,1],TopologyNet:[1,2,1],TopologyReader:[1,2,1],InetTopologyReader:[1,2,1]},"core.CMD":{start:[1,1,1],dispatcher:[1,1,1],install:[1,1,1]},"core.BaseNode.BaseNode":{close_socks:[1,1,1]},"core.ns3.Experiment":{ImalseExperiment:[1,2,1]},"core.BaseNode":{BaseNode:[1,2,1]},"core.Server.ServerCMD":{initialize:[1,1,1],echo_bots:[1,1,1],recv_request_conn:[1,1,1],dispatcher:[1,1,1],verify_master:[1,1,1]},"core.ns3.Node":{ImalseNetnsNode:[1,2,1],ImalseNetnsSimNode:[1,2,1],PhyNode:[1,2,1]},"core.ns3.PureSimExperiment":{ImalsePureSimExperiment:[1,2,1]},"core.Client":{ClientCMD:[1,2,1]},"core.ns3.Node.ImalseNetnsSimNode":{add_msg:[1,3,1],dispatcher:[1,1,1],after:[1,1,1],connect:[1,1,1],get_msg:[1,3,1]},"core.ns3.Experiment.ImalseExperiment":{print_srv_addr:[1,1,1],node_run:[1,1,1],get_node:[1,1,1]},"core.ns3.Node.PhyNode":{close_socks:[1,1,1]}},terms:{all:[0,1],concept:0,botmastercmd:0,consum:0,tapbridg:0,code:0,sleep:0,edu:1,follow:0,request_timeout:1,decid:0,depend:1,set_master_sock:[],send:[0,1],under:0,"_type":1,sourc:1,string:1,far:1,phynod:1,reader:1,imalsenetnsnod:1,util:0,ident:1,mechan:0,veri:0,level:[0,1],cmd:[0,1],escript:0,emul:[0,1],pleas:0,fortun:0,request_connect:1,seper:0,past:0,second:[0,1],puresimexperi:1,design:0,port:[],even:1,index:[0,1],what:0,botmast:0,addr:[],section:1,overload:0,access:0,"new":0,method:[0,1],iteritem:[],gener:[0,1],behaviour:0,connection_refus:1,address:[0,1],sinc:0,wait:1,search:[0,1],bot:1,behav:0,implement:[0,1],socks_seq_set:1,modul:[0,1],add_msg:1,api:[0,1],instal:[0,1],select:0,plot:0,from:[0,1],describ:0,commun:0,two:[0,1],few:0,music:0,msg:1,type:[0,1],inet:1,more:[0,1],peopl:0,umich:1,accept:1,ommand:0,compani:0,ware:0,none:1,join:0,alia:[],work:0,netsecur:0,del:[],can:[0,1],def:[],control:0,claim:1,process:0,indic:[0,1],want:0,cours:0,ping:0,write:0,how:0,"__init__":[],pure:[0,1],verifi:1,sim:[0,1],confid:0,after:[0,1],usabl:1,befor:0,mai:[0,1],data:[0,1],mal:0,physic:1,welcom:0,clientcmd:[0,1],read:[0,1],bind:1,abstract_method:[],maintain:1,combin:0,secnario:0,includ:0,netn:1,least:0,help:0,ith:1,echo_bot:1,imul:0,paper:0,through:0,still:0,paramet:0,setacceptcallback:1,disconnect:1,nodecr:1,unknowneventexcept:1,"return":1,machinc:0,thei:0,python:[0,1],dai:0,initi:[0,1],framework:0,botnet:[0,1],instead:0,now:0,introduct:0,name:[0,1],realist:0,good:0,mode:[0,1],each:[0,1],debug:[],complet:0,netns3:[0,1],approari:1,meta:1,"static":1,connect:[0,1],verify_mast:1,event:[0,1],out:[0,1],ftp:[],shown:0,network:[0,1],research:0,content:[0,1],netnsexperi:1,adapt:1,internet:0,print:1,srv_port:1,forth:0,base:[0,1],ask:0,recv:1,care:0,client_sock:1,thread:[],launch:0,refus:1,turn:0,think:0,first:0,softwar:0,reimplement:1,onc:0,independ:0,echo:1,request_time_out:1,alreadi:0,done:0,messag:1,open:0,topologyreaderhelp:1,differ:0,system:0,construct:[0,1],attack:0,master:1,scheme:0,listen:[],malwar:0,namespac:[0,1],tool:0,copi:0,pars:1,recv_ack:1,exactli:0,than:0,serv:0,enjoi:0,recv_disconn_req:1,provid:[0,1],structur:0,exampl:1,project:0,imals:[0,1],comput:0,have:0,tabl:[0,1],need:0,close_sock:1,techniqu:0,callback:1,self:1,note:0,pybindgen:1,take:0,which:0,call_back:[],deploy:0,who:0,deploi:0,"class":[0,1],"_set_logg":[],don:0,setlevel:[],request:[0,1],schedu:1,base_nod:[],socks_set:[],hack:1,onli:0,ns3:[0,1],"_input":1,"_format":1,solut:0,forev:0,should:[0,1],suppos:0,analyz:0,rich:0,folder:0,get:[0,1],becaus:0,cannot:1,mulat:0,requir:[0,1],topolog:[0,1],whether:0,common:0,contain:1,set:[0,1],packet:1,result:0,arg:1,close:1,detect:0,kei:[0,1],figur:0,enclosur:1,experi:1,approach:0,servercmd:[0,1],extend:0,get_msg:1,extens:0,lazi:0,succeed:1,recv_request_conn:1,satisfi:0,eta:0,whole:0,compromis:0,simpli:1,point:0,schedul:0,topologyread:1,dispatch:1,linux:[0,1],imalsepuresimexperi:1,quit:0,anomali:0,three:0,been:[0,1],json:1,much:[0,1],basic:[0,1],"abstract":[0,1],node_run:1,"case":0,novel:0,properti:[],defin:[0,1],outcom:0,abov:0,intranet:0,imalsetoposimexperi:0,addr_port:1,convinc:0,worri:0,kwarg:1,incom:0,sever:0,demostr:0,perform:0,make:0,format:1,start_act:1,member:[],create_sock:[],create_tim:[],document:[0,1],higher:0,finish:0,http:1,imalseexperi:1,experiemtn:1,rais:1,user:0,student:0,typic:0,scenario:0,ntegrat:0,client:[0,1],command:[0,1],thi:[0,1],model:0,propos:0,just:[0,1],less:0,print_srv_addr:1,topologynet:1,flavor:0,characterist:0,had:0,littl:0,sock_seq_set:1,logger:[],save:0,botmster:0,transit:1,real:[0,1],applic:[0,1],transpar:0,handl:1,testb:0,traffic:0,bit:0,password:1,inettopologyread:1,desc:1,like:0,specif:1,filenam:1,imalsenetnssimnod:1,server:[0,1],collect:0,specifii:0,page:[0,1],eec:1,srv_addr:1,some:0,back:1,though:0,subclass:0,when:1,ddo:0,refer:0,machin:[0,1],core:[0,1],object:[],run:[0,1],sendto:[],get_nod:1,about:0,actual:0,socket:[0,1],ack:1,simul:[0,1],backlog:[],fals:[],block:1,own:0,ddos_ping_attack:0,encod:1,automat:0,bufsiz:[],log:[],wai:[0,1],support:[0,1],question:0,start:1,techiniqu:0,lot:[0,1],call:[0,1],"function":[0,1],enough:0,translat:0,icmp:[],basicconfig:[],"default":0,basenod:[0,1],autoclass:[],record:0,otherwis:1,inform:0,app_nam:[],creat:0,classic:0,flow:0,dure:0,doesn:[0,1],conan:0,file:[0,1],hybrid:0,virtual:[0,1],other:0,varieti:0,test:0,you:0,stop_app:[],node:[0,1],matur:[0,1],relat:[],sequenc:1,receiv:1,sock:1,descript:[0,1],potenti:0,time:[0,1],getlogg:[],prototyp:0},objtypes:{"0":"py:module","1":"py:method","2":"py:class","3":"py:staticmethod"},titles:["Welcome to IMALSE&#8217;s documentation!","API Documentation"],objnames:{"0":"Python module","1":"Python method","2":"Python class","3":"Python static method"},filenames:["index","API"]})
+Search.setIndex({objects:{core:{CMD:[1,2,1]},"core.ns3.Experiment.ImalseNetnsExperiment":{get_node:[1,1,1]},"core.Client.ClientCMD":{recv_disconn_req:[1,1,1],request_connect:[1,1,1],recv_ack:[1,1,1],echo:[1,1,1],request_time_out:[1,1,1],connection_refused:[1,1,1]},"core.ns3.Experiment.ImalsePureSimExperiment":{event:[1,3,1]},"core.ns3":{Topology:[1,0,1]},"core.ns3.Topology":{TopologyReaderHelper:[1,2,1],TopologyNet:[1,2,1],TopologyReader:[1,2,1],InetTopologyReader:[1,2,1]},"core.CMD":{start:[1,1,1],dispatcher:[1,1,1],install:[1,1,1]},"core.BaseNode.BaseNode":{close_socks:[1,1,1]},"core.ns3.Experiment":{ImalseExperiment:[1,2,1],ImalsePureSimExperiment:[1,2,1],ImalseNetnsExperiment:[1,2,1]},"core.BaseNode":{BaseNode:[1,2,1]},"core.Server.ServerCMD":{initialize:[1,1,1],echo_bots:[1,1,1],recv_request_conn:[1,1,1],dispatcher:[1,1,1],verify_master:[1,1,1]},"core.ns3.Node":{ImalseNetnsNode:[1,2,1],ImalseNetnsSimNode:[1,2,1],PhyNode:[1,2,1]},"core.Client":{ClientCMD:[1,2,1]},"core.ns3.Node.ImalseNetnsSimNode":{add_msg:[1,3,1],dispatcher:[1,1,1],after:[1,1,1],connect:[1,1,1],get_msg:[1,3,1]},"core.ns3.Experiment.ImalseExperiment":{print_srv_addr:[1,1,1],node_run:[1,1,1],get_node:[1,1,1],start_nodes:[1,1,1]},"core.ns3.Node.PhyNode":{close_socks:[1,1,1]},"core.Server":{ServerCMD:[1,2,1]}},terms:{all:[0,1],concept:0,botmastercmd:0,consum:0,tapbridg:0,code:0,sleep:0,edu:1,follow:0,topoexperi:0,request_timeout:1,decid:0,depend:1,set_master_sock:[],send:[0,1],init:0,under:0,"_type":1,sourc:1,string:1,far:1,phynod:1,reader:1,imalsenetnsnod:1,util:0,ident:1,mechan:0,veri:0,level:[0,1],cmd:[0,1],upload:0,escript:0,emul:[0,1],pleas:0,fortun:0,request_connect:1,seper:0,past:0,second:[0,1],puresimexperi:[],design:0,port:[],even:1,index:[0,1],what:0,botmast:0,addr:[],section:1,overload:0,access:0,"new":0,method:[0,1],iteritem:[],gener:[0,1],behaviour:0,connection_refus:1,address:[0,1],sinc:0,wait:1,search:[0,1],bot:[0,1],behav:0,implement:[0,1],socks_seq_set:1,modul:[0,1],ask:0,api:[0,1],instal:[0,1],select:0,plot:0,from:[0,1],describ:0,commun:0,two:[0,1],few:0,music:0,handl:1,msg:1,type:[0,1],inet:1,more:[0,1],peopl:0,umich:1,accept:1,ommand:0,compani:0,ware:0,none:1,join:0,alia:[],work:0,netsecur:0,del:[],can:[0,1],def:[],control:0,claim:1,process:0,indic:[0,1],want:0,cours:0,ping:0,write:0,how:0,"__init__":[],pure:[0,1],verifi:1,sim:[0,1],confid:0,after:[0,1],usabl:1,befor:0,mai:[0,1],data:[0,1],mal:0,physic:1,welcom:0,clientcmd:[0,1],bind:1,file_exfiltr:0,issu:0,abstract_method:[],maintain:1,combin:0,secnario:0,includ:0,netn:1,least:0,help:0,ith:1,echo_bot:1,imul:0,paper:0,through:0,still:0,paramet:0,setacceptcallback:1,disconnect:1,onc:0,nodecr:1,unknowneventexcept:1,"return":1,machinc:0,thei:0,python:[0,1],dai:0,initi:[0,1],framework:0,botnet:[0,1],instead:0,now:0,introduct:0,name:[0,1],realist:0,good:0,mode:[0,1],each:[0,1],debug:[],found:0,complet:0,netns3:[0,1],approari:1,meta:1,"static":1,connect:[0,1],verify_mast:1,event:[0,1],out:[0,1],ftp:0,shown:0,network:[0,1],research:0,content:[0,1],netnsexperi:[],adapt:1,internet:0,print:1,srv_port:1,forth:0,base:[0,1],achin:0,recv:1,care:0,client_sock:1,thread:[],launch:0,imalsenetnsexperi:[0,1],refus:1,turn:0,think:0,first:0,softwar:0,reimplement:1,staticrouteexperi:0,independ:0,echo:1,request_time_out:1,alreadi:0,done:0,messag:1,open:0,topologyreaderhelp:1,differ:0,start_nod:1,tate:0,system:0,construct:[0,1],attack:0,master:1,scheme:0,listen:[],malwar:0,namespac:[0,1],tool:0,copi:0,specifi:1,part:0,pars:1,recv_ack:1,exactli:0,than:0,serv:0,enjoi:0,recv_disconn_req:1,provid:[0,1],structur:0,exampl:[0,1],project:0,video:0,comput:0,ani:0,correspond:0,have:0,tabl:[0,1],need:0,close_sock:1,techniqu:0,callback:1,self:1,note:0,pybindgen:1,take:0,which:0,call_back:[],addr_port:1,deploy:0,who:0,deploi:0,"class":[0,1],"_set_logg":[],don:0,setlevel:[],request:[0,1],schedu:1,usual:0,base_nod:[],socks_set:[],hack:1,current:0,onli:0,ns3:[0,1],"_input":1,"_format":1,configur:0,solut:0,forev:0,should:[0,1],suppos:0,analyz:0,rich:0,folder:0,get:[0,1],becaus:0,cannot:1,mulat:0,requir:[0,1],topolog:[0,1],whether:0,common:0,contain:[0,1],set:[0,1],packet:1,result:0,arg:1,close:1,detect:0,kei:[0,1],pattern:0,figur:0,enclosur:1,experi:[0,1],approach:0,servercmd:[0,1],extend:0,get_msg:1,extens:0,lazi:0,succeed:1,imals:[0,1],recv_request_conn:1,satisfi:0,eta:0,whole:0,compromis:0,simpli:1,kwd:1,point:0,schedul:[0,1],topologyread:1,dispatch:1,linux:[0,1],imalsepuresimexperi:[0,1],quit:0,anomali:0,three:0,been:[0,1],json:1,much:[0,1],interest:0,basic:[0,1],"abstract":[0,1],both:0,func:1,node_run:1,"case":0,novel:0,properti:[],defin:[0,1],outcom:0,abov:0,intranet:0,imalsetoposimexperi:0,ddos_ping_flood:0,demo:0,convinc:0,worri:0,kwarg:1,incom:0,sever:0,demostr:0,perform:0,make:0,format:1,start_act:1,member:[],create_sock:[],create_tim:[],document:[0,1],higher:0,finish:0,http:1,imalseexperi:1,experiemtn:1,rais:1,user:0,student:0,whenver:0,typic:0,scenario:0,ntegrat:0,client:[0,1],command:[0,1],thi:[0,1],model:0,propos:0,load:0,just:[0,1],less:0,print_srv_addr:1,topologynet:1,flavor:0,characterist:0,had:0,littl:0,sock_seq_set:1,logger:[],save:0,botmster:0,transit:1,real:[0,1],applic:[0,1],transpar:0,read:[0,1],avali:0,testb:0,traffic:0,send_p:0,bit:0,password:[0,1],add_msg:1,inettopologyread:1,desc:1,like:0,specif:[0,1],filenam:1,imalsenetnssimnod:1,server:[0,1],collect:0,specifii:0,page:[0,1],eec:1,srv_addr:1,some:0,back:1,certain:0,sampl:0,though:0,subclass:0,when:1,ddo:0,refer:0,machin:[0,1],core:[0,1],object:[],run:[0,1],sendto:[],get_nod:1,about:0,actual:0,socket:[0,1],ack:1,simul:[0,1],backlog:[],fals:[],block:1,own:0,ddos_ping_attack:0,encod:1,automat:0,bufsiz:[],your:0,log:[],wai:[0,1],support:[0,1],question:0,start:1,techiniqu:0,lot:[0,1],call:[0,1],"function":[0,1],enough:0,link:0,translat:0,icmp:[],basicconfig:[],"default":0,basenod:[0,1],autoclass:[],record:0,otherwis:1,inform:0,app_nam:[],creat:0,classic:0,flow:0,dure:0,doesn:[0,1],conan:0,file:[0,1],exist:0,hybrid:0,virtual:[0,1],flood:0,other:0,varieti:0,test:0,you:0,stop_app:[],node:[0,1],matur:[0,1],relat:[],sequenc:1,receiv:1,sock:1,descript:[0,1],fsm:0,potenti:0,time:[0,1],getlogg:[],prototyp:0},objtypes:{"0":"py:module","1":"py:method","2":"py:class","3":"py:staticmethod"},titles:["Welcome to IMALSE&#8217;s documentation!","API Documentation"],objnames:{"0":"Python module","1":"Python method","2":"Python class","3":"Python static method"},filenames:["index","API"]})

File doc/source/.DS_Store

Binary file added.

File doc/source/API.rst

 .. autoclass:: core.ns3.Experiment.ImalseExperiment
     :members:
 
+.. autoclass:: core.ns3.Experiment.ImalseNetnsExperiment
+    :members:
+
 .. autoclass:: core.ns3.Node.ImalseNetnsNode
     :members:
 
 .. autoclass:: core.ns3.Node.ImalseNetnsSimNode
     :members:
 
-.. autoclass:: core.ns3.PureSimExperiment.ImalsePureSimExperiment
+.. autoclass:: core.ns3.Experiment.ImalsePureSimExperiment
     :members:
 
-
 .. toctree::
    :maxdepth: 2
 
 * :ref:`genindex`
 * :ref:`modindex`
 * :ref:`search`
-

File doc/source/index.rst

 virtual functions.
 
 a command is a basic event in the botnet. **C**\ ommand **M**\ eta **D**\ escription defines a set of
-commands for a node, namely it defines what event a node can generate. There are three types of **CMD**\ s: 
+commands for a node, namely it defines what event a node can generate. There are three types of **CMD**\ s:
     1. Server **CMD**
     2. Client **CMD**
     3. Botmaster **CMD**
 configuration, user behaviour specification. This is usually the only part user need to code if he is 
 using an existing scenario. 
 
-Two types of experiments are avaliable in Imalse. 1. **NetnsExperiment** and 2. **PureSimExeperiment**. 
-**NetnsExperiment** is for **netns3 mode** simulation. **PureSimExeperiment** is
+Two types of experiments are avaliable in Imalse. 1. **ImalseNetnsExperiment** and 2. **ImalsePureSimExperiment**. 
+**ImalseNetnsExperiment** is for **netns3 mode** simulation. **ImalsePureSimExperiment** is
 for pure simulation. For both experiments, you can load topology. If you want to implement your own experiment, 
 you can subclass corresponding classes to implement different **mode**.
 
 The experiments folder contains several examples of experiment
-    1. **ImalseTopoSimExperiment**
-    2. **ImalseTopoExperiment**
-    3. **ImalseStaticRouteExperiment**
-    4. **ImalseStaticRouteSimExperiment**
-    5. **ImalsePingCsmaExperiment**
+    1. **StaticRouteExperiment**
+    2. **TopoExperiment.py**
 
-
-
+Demo:
+------------------------------
+this is the link for a demo
+`video <http://www.youtube.com/watch?v=CZ91McFlIvo&feature=plcp>`_
 
 
 
 .. toctree::
    :maxdepth: 3
 
-    api
-
 Contents:
 
 Indices and tables

File experiments/.DS_Store

Binary file added.

File experiments/TopoExperiment.py

 import os
 
 NETWORK_BASE = "10.0.0.0"
-SERVER_ADDR = "10.0.0.1"
+# SERVER_ADDR = "10.0.0.1"
+SERVER_ADDR = "127.0.0.1"
 IP_MASK = "255.255.255.0"
 
 class TopoExperiment(BaseClass):