diff --git a/data/sorting-loc-new-comps.csv b/data/sorting-loc-new-comps.csv new file mode 100644 index 0000000000000000000000000000000000000000..e5f6e075515dde7ff0d187fe767e0e00abc7d47f --- /dev/null +++ b/data/sorting-loc-new-comps.csv @@ -0,0 +1,32 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +1e-05;3.3110000000000004;0.9997999999999998 +0.01001;9.695700000000002;10.025450000000001 +0.02001;10.85029;11.63291 +0.03001;11.54132;12.58502 +0.040010000000000004;12.00077;13.229379999999999 +0.050010000000000006;12.386989999999999;13.76429 +0.06001;12.68024;14.18097 +0.07001;12.901870000000002;14.504279999999998 +0.08001;13.10722;14.776249999999997 +0.09000999999999999;13.286290000000001;15.04036 +0.10001;13.454849999999999;15.25796 +0.11001;13.583470000000002;15.44508 +0.12000999999999999;13.70061;15.617080000000001 +0.13001000000000001;13.79743;15.745219999999998 +0.14001000000000002;13.926459999999999;15.91376 +0.15001;14.00538;16.05316 +0.16001;14.084409999999998;16.14607 +0.17001000000000002;14.157020000000001;16.25582 +0.18001;14.223750000000003;16.3467 +0.19001;14.300799999999999;16.46123 +0.20001000000000002;14.33816;16.52597 +0.21001;14.4027;16.58205 +0.22001;14.437909999999999;16.66046 +0.23001000000000002;14.500430000000001;16.726419999999997 +0.24001;14.531600000000001;16.78245 +0.25001;14.58332;16.8614 +0.26001;14.613059999999997;16.90503 +0.27001000000000003;14.6482;16.94697 +0.28001000000000004;14.68594;17.00532 +0.29001;14.715880000000002;17.047040000000003 diff --git a/data/sorting-loc-new-links.csv b/data/sorting-loc-new-links.csv new file mode 100644 index 0000000000000000000000000000000000000000..ce73ae8e4921a0a6e31d6debb099f1ffab5224ff --- /dev/null +++ b/data/sorting-loc-new-links.csv @@ -0,0 +1,32 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +1e-05;3.3110000000000004;0.9997999999999998 +0.01001;9.695700000000002;6.3199499999999995 +0.02001;10.85029;7.162200000000001 +0.03001;11.54132;7.654059999999999 +0.040010000000000004;12.00077;7.984989999999999 +0.050010000000000006;12.386989999999999;8.26281 +0.06001;12.68024;8.46781 +0.07001;12.901870000000002;8.63679 +0.08001;13.10722;8.77514 +0.09000999999999999;13.286290000000001;8.90821 +0.10001;13.454849999999999;9.01913 +0.11001;13.583470000000002;9.11216 +0.12000999999999999;13.70061;9.2018 +0.13001000000000001;13.79743;9.27063 +0.14001000000000002;13.926459999999999;9.354729999999998 +0.15001;14.00538;9.421119999999998 +0.16001;14.084409999999998;9.46995 +0.17001000000000002;14.157020000000001;9.527839999999998 +0.18001;14.223750000000003;9.57139 +0.19001;14.300799999999999;9.629190000000001 +0.20001000000000002;14.33816;9.65897 +0.21001;14.4027;9.688220000000001 +0.22001;14.437909999999999;9.73125 +0.23001000000000002;14.500430000000001;9.761690000000002 +0.24001;14.531600000000001;9.79034 +0.25001;14.58332;9.8314 +0.26001;14.613059999999997;9.85144 +0.27001000000000003;14.6482;9.87486 +0.28001000000000004;14.68594;9.90154 +0.29001;14.715880000000002;9.924119999999998 diff --git a/data/sorting-random-new-comps.csv b/data/sorting-random-new-comps.csv new file mode 100644 index 0000000000000000000000000000000000000000..3bffdd2b4363d5810c149b687bdf750984d50e1b --- /dev/null +++ b/data/sorting-random-new-comps.csv @@ -0,0 +1,16 @@ +randomness parameter value;Pairing;Smooth;Smooth18 +randomness parameter value;0;12;14 +2;0.5;1.0;0.5 +4;1.35;1.6;1.15 +8;2.025;2.6999999999999997;2.1500000000000004 +16;3.5125;4.050000000000001;3.3875 +32;5.05;5.3125;4.5625 +64;6.4624999999999995;6.878125000000001;6.05625 +128;7.93125;8.309375;7.4609375 +256;9.46328125;9.95703125;9.011718750000002 +512;10.770703125;11.534765625;10.562890625 +1024;12.1029296875;13.253320312500001;12.276562499999999 +2048;13.376953125;14.994335937499999;13.99287109375 +4096;14.676660156250001;16.67939453125;15.68359375 +8192;15.946264648437499;18.4197021484375;17.4177490234375 +16384;17.20384521484375;20.120104980468753;19.1246826171875 diff --git a/data/sorting-random-new-links.csv b/data/sorting-random-new-links.csv new file mode 100644 index 0000000000000000000000000000000000000000..5091ba8c75e84fc3a90699392863653e09ebe121 --- /dev/null +++ b/data/sorting-random-new-links.csv @@ -0,0 +1,16 @@ +randomness parameter value;Pairing;Smooth;Smooth18 +randomness parameter value;0;12;14 +2;0.5;0.0;0.5 +4;1.35;0.6;1.0499999999999998 +8;2.025;1.3;1.65 +16;3.5125;2.2125000000000004;2.45 +32;5.05;3.0250000000000004;3.18125 +64;6.4624999999999995;4.034375;4.121875 +128;7.93125;4.8203125;4.8984375 +256;9.46328125;5.690625000000001;5.715624999999999 +512;10.770703125;6.578125;6.59453125 +1024;12.1029296875;7.459765625;7.472460937500001 +2048;13.376953125;8.35986328125;8.36083984375 +4096;14.676660156250001;9.222314453125;9.225439453125 +8192;15.946264648437499;10.109228515625;10.107202148437498 +16384;17.20384521484375;10.96829833984375;10.96964111328125 diff --git a/data/sorting-sep-new-comps.csv b/data/sorting-sep-new-comps.csv new file mode 100644 index 0000000000000000000000000000000000000000..11bd24471e58dcb3c3ecf837dd88339bb91f0912 --- /dev/null +++ b/data/sorting-sep-new-comps.csv @@ -0,0 +1,19 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +2;0.0;0.0 +4;0.65;0.6375 +8;1.23125;1.2812499999999998 +16;1.6718750000000004;1.7125000000000001 +32;2.2546875;2.109375 +64;2.5328125;2.51640625 +128;2.7156249999999997;2.7628906250000003 +256;3.0244140624999996;2.932421875 +512;3.17080078125;3.091015625 +1024;3.230126953125;3.182617187499999 +2048;3.3331298828125;3.2513427734374996 +4096;3.3716308593749997;3.2977294921875004 +8192;3.4386779785156256;3.3528076171875 +16384;3.4799468994140628;3.3715332031249994 +32768;3.4966629028320315;3.3828002929687506 +65536;3.5240753173828128;3.3962371826171878 +131072;3.5682422637939446;3.4042907714843755 diff --git a/data/sorting-sep-new-links.csv b/data/sorting-sep-new-links.csv new file mode 100644 index 0000000000000000000000000000000000000000..157b162a9329940028570179ae1ab11c138609ed --- /dev/null +++ b/data/sorting-sep-new-links.csv @@ -0,0 +1,19 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +2;0.0;0.0 +4;0.65;0.5625000000000002 +8;1.23125;1.0187499999999998 +16;1.6718750000000004;1.3375 +32;2.2546875;1.55 +64;2.5328125;1.80078125 +128;2.7156249999999997;1.9242187499999999 +256;3.0244140624999996;1.9865234375000003 +512;3.17080078125;2.07734375 +1024;3.230126953125;2.1288574218750007 +2048;3.3331298828125;2.155859375 +4096;3.3716308593749997;2.1764892578125 +8192;3.4386779785156256;2.2006591796875 +16384;3.4799468994140628;2.2073852539062497 +32768;3.4966629028320315;2.211355590820313 +65536;3.5240753173828128;2.215667724609375 +131072;3.5682422637939446;2.218004608154297 diff --git a/data/sorting-subseq-new-comps.csv b/data/sorting-subseq-new-comps.csv new file mode 100644 index 0000000000000000000000000000000000000000..c9f3891a50ff0ddc197d6bcafa2ab96f3bab5073 --- /dev/null +++ b/data/sorting-subseq-new-comps.csv @@ -0,0 +1,21 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +1900;7.140770000000002;6.0651 +1800;7.261944999999999;6.198515 +1700;7.313929999999999;6.256444999999999 +1600;7.462670000000001;6.48028 +1500;7.5541849999999995;6.535635000000001 +1400;7.711180000000001;6.737559999999998 +1300;7.786554999999999;6.852745 +1200;7.948655000000001;7.065579999999999 +1100;8.04499;7.18305 +1000;8.25514;7.484164999999999 +900;8.48538;7.764014999999999 +800;8.644215;7.9804650000000015 +700;8.897675;8.31422 +600;9.121414999999999;8.6109 +500;9.441964999999998;9.036955 +400;9.87564;9.61485 +300;10.334719999999999;10.22929 +200;10.993725;11.170739999999999 +100;12.144270000000002;12.770485 diff --git a/data/sorting-subseq-new-links.csv b/data/sorting-subseq-new-links.csv new file mode 100644 index 0000000000000000000000000000000000000000..a9d195fc52f22e036688c6ae5071f94e99d80b26 --- /dev/null +++ b/data/sorting-subseq-new-links.csv @@ -0,0 +1,21 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +1900;7.140770000000002;4.111149999999999 +1800;7.261944999999999;4.206099999999998 +1700;7.313929999999999;4.23051 +1600;7.462670000000001;4.356905000000001 +1500;7.5541849999999995;4.397234999999999 +1400;7.711180000000001;4.501015000000001 +1300;7.786554999999999;4.575859999999999 +1200;7.948655000000001;4.6985 +1100;8.04499;4.7659400000000005 +1000;8.25514;4.933224999999999 +900;8.48538;5.093285 +800;8.644215;5.216295 +700;8.897675;5.39767 +600;9.121414999999999;5.562875000000001 +500;9.441964999999998;5.790405 +400;9.87564;6.099679999999998 +300;10.334719999999999;6.429255 +200;10.993725;6.9218 +100;12.144270000000002;7.751835000000001 diff --git a/data/sorting-uniform-new-comps.csv b/data/sorting-uniform-new-comps.csv new file mode 100644 index 0000000000000000000000000000000000000000..351c71724640ceaf366d3c7bff0b3c58e4201175 --- /dev/null +++ b/data/sorting-uniform-new-comps.csv @@ -0,0 +1,19 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +2;0.0;0.0 +4;0.7000000000000001;0.6000000000000001 +8;1.6749999999999998;1.6500000000000001 +16;2.9875;3.025 +32;4.05625;4.14375 +64;5.71875;5.665625 +128;7.171875;7.395312499999999 +256;8.4984375;8.960156249999999 +512;9.845703125;10.61015625 +1024;11.176171875;12.24921875 +2048;12.404296875000002;13.93369140625 +4096;13.6794921875;15.63544921875 +8192;14.9508056640625;17.39541015625 +16384;16.2085693359375;19.12520751953125 +32768;17.44716796875;20.857037353515626 +65536;18.6917236328125;22.592379760742183 +131072;19.929542541503906;24.330378723144527 diff --git a/data/sorting-uniform-new-links.csv b/data/sorting-uniform-new-links.csv new file mode 100644 index 0000000000000000000000000000000000000000..72aaf46c7abc2e5f5d7f12f1299ce12457e7f62b --- /dev/null +++ b/data/sorting-uniform-new-links.csv @@ -0,0 +1,19 @@ +randomness parameter value;Pairing;Smooth +randomness parameter value;0;12 +2;0.0;0.0 +4;0.7000000000000001;0.55 +8;1.6749999999999998;1.25 +16;2.9875;2.1624999999999996 +32;4.05625;2.8999999999999995 +64;5.71875;3.8562499999999997 +128;7.171875;4.846875 +256;8.4984375;5.70703125 +512;9.845703125;6.605078125 +1024;11.176171875;7.468554687500001 +2048;12.404296875000002;8.33544921875 +4096;13.6794921875;9.20283203125 +8192;14.9508056640625;10.0988037109375 +16384;16.2085693359375;10.96561279296875 +32768;17.44716796875;11.841461181640625 +65536;18.6917236328125;12.714126586914062 +131072;19.929542541503906;13.582135009765626 diff --git a/node.py b/node.py new file mode 100755 index 0000000000000000000000000000000000000000..14dce07ca7bf368c6af514ed46df043611ea2912 --- /dev/null +++ b/node.py @@ -0,0 +1,16 @@ +#!/usr/bin/python3 +class Node: + def __init__(self, key): + #for now contains all pointers that might be needed in any implementation + #idea is to use only necessary ones in each implementation + self.key = key + self.parent = None + self.leftChild = None + self.rightChild=None + self.nextSibling=None + self.prevSibling=None + self.leftOnly=False + self.rightOnly=False + + self.vertex=None #for testing with Dijkstra's algorithm + diff --git a/pairing_heap.py b/pairing_heap.py new file mode 100644 index 0000000000000000000000000000000000000000..93b4aeb393cac54c45aa263a0a9cacb479801789 --- /dev/null +++ b/pairing_heap.py @@ -0,0 +1,98 @@ +#!/usr/bin/python3 +from node import Node +from pairing_heap_interface import PairingHeapInterface +from pairing_heap_standard import PairingHeapStandard +from smooth_heap import SmoothHeap +from pairing_heap_l import PairingHeapL +from smooth_heap_l import SmoothHeapL + +COUNT_TYPE_LINKS=-1 +COUNT_TYPE_COMPS=-2 +COUNT_TYPE_BOTH=0 + +class PairingHeap(PairingHeapInterface): + MODES={21:"Pairing_L", 22:"Smooth_L"} + mode=0 + countType=COUNT_TYPE_COMPS + heap=None + def __init__(self, mode=0, countType=COUNT_TYPE_COMPS): + self.mode=mode + self.countType=countType + + def make_heap(self): + if self.mode==0: + self.heap=PairingHeapStandard() + elif self.mode==12: + self.heap=SmoothHeap() + elif self.mode==21:#root list version, everything lazy, to be used for Dijkstra test in paper + self.heap=PairingHeapL() + elif self.mode==22:#root list version, everything lazy, to be used for Dijkstra test in paper + self.heap=SmoothHeapL() + else: + raise Exception("Invalid heap ID! No heap of type ID {} is implemented.") + + def find_min(self): + #Careful! Implementation is inconsistent across pairing heap types. + return self.heap.find_min() + + def insert(self, node): + #inserts node; returns number of linking operations performed + result=self.heap.insert(node) + if isinstance(result, tuple): + if self.countType==COUNT_TYPE_BOTH: + return (result[0], result[1])#(comps, links) + else: + return result[2+self.countType] + else:#result should be single number iff link count and comp count are the same + if self.countType==COUNT_TYPE_BOTH: + return (result, result) + else: + return result + + def delete_min(self): + #deletes min; returns number of linking operations/comparisons performed + result=self.heap.delete_min() + if len(result)==3: + if self.countType==COUNT_TYPE_BOTH: + return (result[0], result[1], result[2])#min, comps, links + else: + return (result[0],result[3+self.countType]) + else:#result should be 2-tuple iff link count and comp count are the same + if self.countType==COUNT_TYPE_BOTH: + return (result[0], result[1], result[1]) + else: + return result + + def merge(self, heap2): + #merges this heap and heap 2; returns number of linking operations performed + result = self.heap.merge(heap2) + if isinstance(result, tuple): + if self.countType==COUNT_TYPE_BOTH: + return (result[0], result[1])#(comps, links) + else: + return result[2+self.countType] + else:#result should be single number iff link count and comp count are the same + if self.countType==COUNT_TYPE_BOTH: + return (result, result) + else: + return result + + def delete(self, node): + self.heap.delete(node) + + def decrease_key(self, node, diff): + result = self.heap.decrease_key(node, diff) + if isinstance(result, tuple): + if self.countType==COUNT_TYPE_BOTH: + if result[0]==None or result[1]==None: + print("heap {} returns None".format(self.MODES[self.mode])) + return (result[0], result[1])#(comps, links) + else: + return result[2+self.countType] + else:#result should be single number iff link count and comp count are the same + if self.countType==COUNT_TYPE_BOTH: + if result==None: + print("heap {} returns None".format(self.MODES[self.mode])) + return (result, result) + else: + return result diff --git a/pairing_heap_interface.py b/pairing_heap_interface.py new file mode 100755 index 0000000000000000000000000000000000000000..bd14710d93ee86b345d9b9433f2b297a9c3d0706 --- /dev/null +++ b/pairing_heap_interface.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 +from node import Node +class PairingHeapInterface: + def __init__(self): + self.count = 0 + + def make_heap(self): + pass + + def find_min(self): + pass + + def insert(self, node): + pass + + def delete_min(self): + pass + + def merge(self, heap2): + pass + + def delete(self, node): + pass diff --git a/pairing_heap_l.py b/pairing_heap_l.py new file mode 100644 index 0000000000000000000000000000000000000000..38c02c8e18871eef04a704819753961bc9281911 --- /dev/null +++ b/pairing_heap_l.py @@ -0,0 +1,181 @@ +#!/usr/bin/python3 +from node import Node +from pairing_heap_interface import PairingHeapInterface + +class PairingHeapL(PairingHeapInterface): + # lazy variant of standard pairing heap (maintaining root-list and consolidating only upon extract-min) + forest=[] #list storing roots of all top-level trees + def __init__(self, root=None): + self.forest=[] + if root!=None: + root.parent=None + self.forest+=[root] + + def listInorder(self): + forestList=[] + for root in self.forest: + forestList+=[self.listInorderTree(root)] + return forestList + + def listInorderTree(self, root): + if root==None: + return [] + else: + return self.listInorderTree(root.leftChild)+[root.key]+self.listInorderTree(root.nextSibling) + + def insert(self, node): + #concatenates node to list of trees; returns number of linking ops (always 0) for sake of consistency + #print("trying to insert {}...".format(node.key)) + if node==None: + return 0 + node.parent=None + self.forest+=[node] + return 0 + + def pairing(self): + fs = len(self.forest) + #performs pairing pass and returns number of linking operations + linkCount=0 + if fs<2: + return 0 + else: + pairedForest=[] + index=-1 + for i in range(0, fs, 2): # pairing pass + if i==fs-1: #last tree if length of forest is odd-numbered + pairedForest+=[self.forest[i]]#concatenate to new forest (no linking required) + else:#pair trees + if self.forest[i].key<=self.forest[i+1].key: + if self.forest[i].leftChild==None: + self.forest[i+1].parent=self.forest[i] + else: + self.forest[i+1].nextSibling=self.forest[i].leftChild + self.forest[i].leftChild=self.forest[i+1] + pairedForest+=[self.forest[i]] + else: + if self.forest[i+1].leftChild==None: + self.forest[i].parent=self.forest[i+1] + else: + self.forest[i].nextSibling=self.forest[i+1].leftChild + self.forest[i+1].leftChild=self.forest[i] + pairedForest+=[self.forest[i+1]] + self.forest=pairedForest + ##print("Result of 1st round {}.".format(self.listInorder())) + index = len(self.forest)-1 + for i in range(len(self.forest)-2, -1, -1): # combining pass + if self.forest[index].key<=self.forest[i].key: + if self.forest[index].leftChild==None: + self.forest[i].parent=self.forest[index] + else: + self.forest[i].nextSibling=self.forest[index].leftChild + self.forest[index].leftChild=self.forest[i] + else: + if self.forest[i].leftChild==None: + self.forest[index].parent=self.forest[i] + else: + self.forest[index].nextSibling=self.forest[i].leftChild + self.forest[i].leftChild=self.forest[index] + index=i + + self.forest=[self.forest[index]] + ##print("Result of 2nd round {}.".format(self.listInorder())) + return (fs-1) + + def delete_min(self): + #finds and deletes min; restructures forest; returns number of linking operations + linkCount=0 + compCount=0 + cn = self.pairing() + assert len(self.forest)==1 + #if (len(self.forest)==0): + # print("Cannot delete min of empty heap") + # return (None,0,0) + currentSibling=self.forest[0].leftChild + while currentSibling!=None: + nextSibling=currentSibling.nextSibling + self.forest+=[currentSibling] + currentSibling.nextSibling=None + currentSibling=nextSibling + self.forest[-1].parent=None #only for the last concatenated sibling as only this one carried parent pointer + minNode = self.forest[0] + self.forest=self.forest[1:] + ##print("Result of delete-min {}.".format(self.listInorder())) + ###print('**') + ###print(minNode.key) + return (minNode, cn, cn) + + def decrease_key(self, node, diff): + linkCount=0 + if node==None or diff<=0: + return 0 + elif node.parent==None and node.nextSibling==None: #node is root + node.key=node.key-diff + else: + self.unlink_node(node) + node.key=node.key-diff + self.forest+=[node] + return 0 + + def merge(self, heap2): + #concatenates forests of this heap and heap2; returns number of link operations (always 0) for consistency + #print("Trying to merge {} and {}.".format(self.listInorder(), heap2.listInorder())) + self.forest+=heap2.forest + #print("Result of merge is {}.".format(self.listInorder())) + return 0 + + def delete(self, node): + if node==None: + print("Cannot delete None") + return + elif node.parent==None and node.nextSibling==None: #node is root + print("Trying to delete {}...".format(node.key)) + index=self.forest.index(node)#slight cheating; would be nicer to use a linked list as forest instead + #remove node from forest list + self.forest=self.forest[:index]+self.forest[index+1:] + else: #node is a child somewhere + print("Trying to delete {}...".format(node.key)) + self.unlink_node(node) + #concatenate potential children to forest list + sibling=node.leftChild + while sibling!=None: + self.forest+=[sibling] + sibling=sibling.nextSibling + if sibling!=None: + self.forest[-1].nextSibling=None + else: + self.forest[-1].parent=None + print("Result of deletion of {} is {}.".format(node.key, self.listInorder())) + + + def unlink_node(self, node): + #for non-root nodes only (does nothing about forest list, only tree-internal links) + if node==None: + return + else: + if node.nextSibling!=None: + temp=node.nextSibling + while temp.nextSibling!=None:#find rightmost child + temp=temp.nextSibling + if temp.parent.leftChild==node:#node is leftmost child + #link parent to next sibling + temp.parent.leftChild=node.nextSibling + node.nextSibling=None + else: + #node is neither first nor last child of parent + prevSibling=temp.parent.leftChild + while prevSibling.nextSibling!=node:#find left (previous) sibling + prevSibling=prevSibling.nextSibling + prevSibling.nextSibling=node.nextSibling #cut out node, link left and right sibling + node.nextSibling=None + else: + #node is rightmost child of parent + if node.parent.leftChild==node: + #node is only child: just remove + node.parent.leftChild=None + else: + prevSibling=node.parent.leftChild + while prevSibling.nextSibling!=node:#find left (previous) sibling + prevSibling=prevSibling.nextSibling + prevSibling.parent=node.parent + prevSibling.nextSibling=None + node.parent=None diff --git a/pairing_heap_standard.py b/pairing_heap_standard.py new file mode 100644 index 0000000000000000000000000000000000000000..f1abe256cb512def1a8459b979d96e02c140e52d --- /dev/null +++ b/pairing_heap_standard.py @@ -0,0 +1,171 @@ +#!/usr/bin/python3 +from node import Node +from pairing_heap_interface import PairingHeapInterface + +class PairingHeapStandard(PairingHeapInterface): + #performs a left-to-right forward pass, then a backward combining pass + #TODO: left/right child (page 115) + def __init__(self, root=None): + self.root=root + + def make_heap(self): + #this is equivalent to init + pass + + def listInorder(self, root): + if(root==None): + return [] + return self.listInorder(root.leftChild)+[root.key]+self.listInorder(root.nextSibling) + + def find_min(self): + if self.root==None: + return None + else: + return self.root + + def insert(self, node): + #inserts node as child of root, returns number of link operations + linkCount=0 + #print("trying to insert {}...".format(node.key)) + if self.root==None: + #heap was empty before + self.root=node + else: + newheap=PairingHeapStandard(node) + linkCount=self.merge(newheap) + #print(self.listInorder(self.root)) + return linkCount + + def delete_min(self): + #print("trying to delete min...") + linkCount=0 #counts number of linking operations + minKey=None + minNode=None + if self.root==None: + print("Heap was already empty.") + return (minNode,linkCount) + elif self.root.leftChild==None: + #heap contained only one element + minNode=self.root + self.root=None + return (minNode, linkCount) + elif self.root.leftChild.nextSibling==None: + #first child has no siblings->first child becomes root + minNode=self.root + self.root=self.root.leftChild + self.root.parent=None + return (minNode, linkCount) + else: + minNode=self.root + self.root=self.root.leftChild + current=self.root + nextSibling=None + heaps=[] + paired=[] + #left-to-right pairing pass v2 + while current!=None:#create heaps of all orphaned children + nextSibling=current.nextSibling + heaps+=[PairingHeapStandard(current)] + current.nextSibling=None + current=nextSibling + for j in range(0,len(heaps),2): + if(j==len(heaps)-1):#last one + paired+=[heaps[j]] + else: + heap=heaps[j] + linkCount+=heap.merge(heaps[j+1])#merge returns its number of link operations + paired+=[heap] + #combining backwards pass v2 + combined=paired[-1]#start with last tree + for i in range(len(paired)-2, -1, -1): + linkCount+=combined.merge(paired[i])#merge returns its number of link operations + self.root=combined.root + self.root.parent=None + #print("result is {}".format(self.listInorder(self.root))) + return (minNode, linkCount) + + def merge(self, heap2): + linkCount=0 #counts number of linking operations + #print("Trying to merge {} and {}...".format(self.listInorder(self.root), self.listInorder(heap2.root))) + if self.root==None:#heap is empty + self.root=heap2.root + elif heap2.root==None:#heap 2 is empty + pass #this heap is the result + else: + if self.root.key<=heap2.root.key: + heap2.root.nextSibling=self.root.leftChild + if heap2.root.nextSibling==None: + heap2.root.parent=self.root + self.root.leftChild=heap2.root + linkCount=1 + else: + self.root.nextSibling=heap2.root.leftChild + if self.root.nextSibling==None: + self.root.parent=heap2.root + heap2.root.leftChild=self.root + self.root=heap2.root + linkCount=1 + #TODO check for only children? + #print("Result is {}".format(self.listInorder(self.root))) + return linkCount + + def decrease_key(self, node, diff):#TODO more testing + linkCount=0 + if self.root==node: + self.root.key=self.root.key-diff + else: + #first step: cut node from heap + self.unlink_node(node)#helper function + #second step: decrease key + subheap=PairingHeapStandard(node) + subheap.root.key=subheap.root.key-diff + #third step: merge back in + linkCount = self.merge(subheap) + return linkCount + + def delete(self, node): #TODO more testing? + print("trying to delete {} from {}".format(node.key, self.listInorder(self.root))) + if self.root.key==node.key: + self.delete_min() + else: + self.unlink_node(node)#helper function + + subheap=PairingHeapStandard(node) + subheap.delete_min() + self.merge(subheap) + print("result is {}".format(self.listInorder(self.root))) + pass + + def unlink_node(self, node): + #removes node from heap updating pointers + if self.root==node:#remove the whole heap + self.root=None + else: + if node.nextSibling!=None: + temp=node.nextSibling + while temp.nextSibling!=None: + temp=temp.nextSibling + if temp.parent.leftChild==node:#node is leftmost child + #link parent to next sibling + temp.parent.leftChild=node.nextSibling + node.nextSibling=None + else: + #node is neither first nor last child of parent + prevSibling=temp.parent.leftChild + while prevSibling.nextSibling!=node:#find left (previous) sibling + prevSibling=prevSibling.nextSibling + prevSibling.nextSibling=node.nextSibling #cut out node, link left and right sibling + else: + #node is rightmost child of parent + if node.parent.leftChild==node: + #node is only child: just remove + node.parent.leftChild=None + else: + prevSibling=node.parent.leftChild + while prevSibling.nextSibling!=node:#find left (previous) sibling + prevSibling=prevSibling.nextSibling + prevSibling.parent=node.parent + prevSibling.nextSibling=None + node.parent=None + + diff --git a/paper-dijkstra-test-new.py b/paper-dijkstra-test-new.py new file mode 100755 index 0000000000000000000000000000000000000000..412551919286766960e526ed4c77236f52c223ca --- /dev/null +++ b/paper-dijkstra-test-new.py @@ -0,0 +1,210 @@ +#!/usr/bin/python3 +from node import Node +from pairing_heap_interface import PairingHeapInterface +from pairing_heap import PairingHeap +import networkx as nx +import sys +import random +import math +import numpy as np +import matplotlib.pyplot as plt +import os +import psutil +import csv + +COUNT_TYPE_BOTH = 0 +COUNT_TYPE_LINKS = -1 +COUNT_TYPE_COMPS = -2 + +TYPES = {21: "Pairing", 22: "Smooth"} +MAX_TYPE_KEY = max(TYPES.keys()) +#COLOURS = ['xkcd:fire engine red', 'xkcd:dusty orange', 'xkcd:clear blue', 'xkcd:cool green', +# 'xkcd:macaroni and cheese', 'xkcd:fire engine red', 'xkcd:dusty orange', 'xkcd:clear blue', +# 'xkcd:cool green', 'xkcd:macaroni and cheese', 'xkcd:bright sky blue', 'xkcd:bright sky blue', 'xkcd:green', +# 'xkcd:ochre', 'xkcd:sea blue', 'xkcd:sea green', 'xkcd:sea blue', 'xkcd:warm grey', +# 'xkcd:bright sky blue', 'xkcd:bright sky blue'] +LINETYPES = 5 * ['-'] + 5 * ['--'] + ['--', '-'] + ['--', '--', '--', '--', '--', '--', '-', '-'] +FIG_LABELS = ["comparisons", "links"] +MAX_TYPE_KEY = max(TYPES.keys()) + +COLOURS = {21:'xkcd:fire engine red', 22:'xkcd:sea green'} +SHADE_COLOURS = {21:'#fe4d4e', 22:'#58ab8e'} + +NUMBER_TESTS = 10 # number of tests to run +TEST_SIZE = 500 # ,6000,7000,8000,9000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000 +EDGE_PROBABILITY = 0.05 +WEIGHT_RANGE = 10000 + + +def plot_avg_counts_old(avgCounts): + # colours from https://xkcd.com/color/rgb/ + linetypes = 5 * ["-"] + 5 * ["--"] + ["--", "-"] + ["-, -"] + plt.figure('Dijkstra with variable connectivity') + for k in TYPES.keys(): + avgComps = [acounts[k] for acounts in avgCounts[0]] + plt.plot([factor * EDGE_PROBABILITY for factor in range(1, 101, 1)], avgComps, color=COLOURS[k], linestyle='-', + label=TYPES[k] + " comparisons") + avgLinks = [acounts[k] for acounts in avgCounts[1]] + plt.plot([factor * EDGE_PROBABILITY for factor in range(1, 101, 1)], avgLinks, color=COLOURS[k], linestyle='--', + label=TYPES[k] + " links") + plt.grid(True) + plt.legend(loc='best') + plt.show() + +def plot_avg_counts(avgCounts): + # colours from https://xkcd.com/color/rgb/ + MARKERS_COMP = {21:"o", 12:"d", 22:"^"}#https://matplotlib.org/3.1.1/api/markers_api.html + MARKERS_LINK = {21:"o", 12:"D", 22:"D"} + plt.figure('avg number of operations in Dijkstra\'s algorithm') + deviations = [factor * EDGE_PROBABILITY for factor in range(1, 21, 1)] + for k in TYPES.keys(): + #print(k) + avgComps = [acounts[k] for acounts in avgCounts[0]] + maxComps = [acounts[k] for acounts in avgCounts[2]] + minComps = [acounts[k] for acounts in avgCounts[4]] + plt.plot(deviations, avgComps, color=COLOURS[k], linestyle="-", marker=MARKERS_COMP[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " comparisons") + plt.fill_between(deviations, minComps, maxComps, color=SHADE_COLOURS[k], alpha=.3) + avgLinks = [acounts[k] for acounts in avgCounts[1]] + maxLinks = [acounts[k] for acounts in avgCounts[3]] + minLinks = [acounts[k] for acounts in avgCounts[5]] + plt.plot(deviations, avgLinks, color=COLOURS[k], linestyle="--", marker=MARKERS_LINK[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " links") + plt.fill_between(deviations, minLinks, maxLinks, color=SHADE_COLOURS[k], alpha=.3) + + + plt.xlabel('Edge probability', fontsize=26) + plt.ylabel('Avg. number of operations / size', fontsize=26) + plt.xticks(fontsize=20) + plt.yticks(fontsize=20) + plt.rc('legend',fontsize=26) # using a size in points + plt.legend() + plt.grid(True) + #plt.gca().invert_xaxis() + figure = plt.gcf() # get current figure + figure.set_size_inches(16, 18) # set figure's size manually to full screen + plt.savefig('plots/paper-dijkstra-new.svg', bbox_inches='tight') # bbox_inches removes extra white spaces + plt.legend(loc='best') + plt.show() + + +def export_results(xs, results, countType, heapTypes, filename="dijkstra"): + # parse data as randomness parameter; counts per heap type + if countType == COUNT_TYPE_BOTH: + with open("data/" + filename + '-comps.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[0])): + row = [xs[i]] + [results[0][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + with open("data/" + filename + '-links.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[1])): + row = [xs[i]] + [results[1][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + else: + fn = "data/" + filename + '-links.csv' if countType == COUNT_TYPE_LINKS else "data/" + filename + '-comps.csv' + with open(fn, 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results)): + row = [xs[i]]+[results[i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + + +if __name__ == "__main__": + + testOutputCount = [] + avgLinksPerSize = [] + avgCompsPerSize = [] + maxLinksPerSize = [] + maxCompsPerSize = [] + minLinksPerSize = [] + minCompsPerSize = [] + + xs = [factor * EDGE_PROBABILITY for factor in range(1, 21, 1)] + for x in xs: + avgCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + avgCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + minCountsLinks = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + minCountsComps = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + + + for _ in range(NUMBER_TESTS): + # some nice graph generators here: https://networkx.github.io/documentation/stable/reference/generators.html + graph = nx.fast_gnp_random_graph(TEST_SIZE, x) + # graph = nx.random_regular_graph(10, 1000) + for (u, v) in graph.edges(): + graph.edges[u, v]['w'] = random.randint(1, WEIGHT_RANGE) + for heapType in TYPES.keys(): + for v in graph.nodes(): + graph.nodes[v]['v'] = False # "visited" marker + linkCount = 0 + compCount = 0 + vertex2qnode = {} + dist = [888888888 for _ in range(len(graph.nodes()))] + prev = [None for _ in range(len(graph.nodes()))] + + heap = PairingHeap(heapType, COUNT_TYPE_BOTH) + heap.make_heap() + + source = graph.nodes()[0] + dist[0] = 0 + for idx, v in enumerate(graph.nodes()): + #qnode = Node(dist[idx]) + qnode = Node(dist[v]) + qnode.vertex = v + vertex2qnode[v] = qnode + (cc, lc) = heap.insert(qnode) + linkCount += lc + compCount += cc + + for s in range(len(graph.nodes())): + (minNode, cc, lc) = heap.delete_min() + linkCount += lc + compCount += cc + if minNode is None: + raise Exception( + "delete-min on heap of type {} returned None with {} nodes removed".format(TYPES[heapType], + s)) + u = minNode.vertex + uk = minNode.key + #print(uk) + #print('extracted {}'.format(minNode.key)) + graph.nodes[u]['v'] = True # minNode has been visited + for idx, v in enumerate(graph.neighbors(u)): + alt = uk + graph.edges[u, v]['w'] + if alt < dist[v] and not graph.nodes[v]['v']: + (cc, lc) = heap.decrease_key(vertex2qnode[v], dist[v] - alt) + #print('decreased from {} to {}'.format(dist[v],alt)) + linkCount += lc + compCount += cc + dist[v] = alt + prev[v] = u + avgCountsLinks[heapType] += (linkCount / NUMBER_TESTS)/TEST_SIZE + avgCountsComps[heapType] += (compCount / NUMBER_TESTS)/TEST_SIZE + maxCountsLinks[heapType] = max(maxCountsLinks[heapType],linkCount/TEST_SIZE) + maxCountsComps[heapType] = max(maxCountsComps[heapType],compCount/TEST_SIZE) + minCountsLinks[heapType] = min(minCountsLinks[heapType],linkCount/TEST_SIZE) + minCountsComps[heapType] = min(minCountsComps[heapType],compCount/TEST_SIZE) + + for heapType in TYPES.keys(): + pid = os.getpid() + py = psutil.Process(pid) + memoryUse = py.memory_info()[0] / 2. ** 30 # memory use in GB + print( + "[{}] \t avgComp: {} \t avgLink: {} \t RAM: {} \t |V|={} \t |E|={}".format( + TYPES[heapType], avgCountsComps[heapType], avgCountsLinks[heapType], memoryUse, len(graph.nodes()), len(graph.edges()))) + avgLinksPerSize += [avgCountsLinks] + avgCompsPerSize += [avgCountsComps] + maxLinksPerSize += [maxCountsLinks] + maxCompsPerSize += [maxCountsComps] + minLinksPerSize += [minCountsLinks] + minCompsPerSize += [minCountsComps] + # plot_avg_counts([avgCompsPerSize, avgLinksPerSize]) + plot_avg_counts([avgCompsPerSize, avgLinksPerSize, maxCompsPerSize, maxLinksPerSize, minCompsPerSize, minLinksPerSize]) + export_results(xs, [avgCompsPerSize, avgLinksPerSize], COUNT_TYPE_BOTH, TYPES, "dijkstra") diff --git a/paper-dijkstra-test2-new.py b/paper-dijkstra-test2-new.py new file mode 100755 index 0000000000000000000000000000000000000000..9f71a2c14c683e9ec3d170782bf23389246267d4 --- /dev/null +++ b/paper-dijkstra-test2-new.py @@ -0,0 +1,214 @@ +#!/usr/bin/python3 +from node import Node +from pairing_heap_interface import PairingHeapInterface +from pairing_heap import PairingHeap +import networkx as nx +import sys +import random +import math +import numpy as np +import matplotlib.pyplot as plt +import os +import psutil +import csv + +COUNT_TYPE_BOTH = 0 +COUNT_TYPE_LINKS = -1 +COUNT_TYPE_COMPS = -2 + +TYPES = {21: "Pairing", 22: "Smooth"} +MAX_TYPE_KEY = max(TYPES.keys()) +#COLOURS = ['xkcd:fire engine red', 'xkcd:dusty orange', 'xkcd:clear blue', 'xkcd:cool green', +# 'xkcd:macaroni and cheese', 'xkcd:fire engine red', 'xkcd:dusty orange', 'xkcd:clear blue', +# 'xkcd:cool green', 'xkcd:macaroni and cheese', 'xkcd:bright sky blue', 'xkcd:bright sky blue', 'xkcd:green', +# 'xkcd:ochre', 'xkcd:sea blue', 'xkcd:sea green', 'xkcd:sea blue', 'xkcd:warm grey', +# 'xkcd:bright sky blue', 'xkcd:bright sky blue'] +LINETYPES = 5 * ['-'] + 5 * ['--'] + ['--', '-'] + ['--', '--', '--', '--', '--', '--', '-', '-'] +FIG_LABELS = ["comparisons", "links"] +MAX_TYPE_KEY = max(TYPES.keys()) + +COLOURS = {21:'xkcd:fire engine red', 22:'xkcd:sea green'} +SHADE_COLOURS = {21:'#fe4d4e', 22:'#58ab8e'} + +NUMBER_TESTS = 10 # number of tests to run +TEST_SIZE = 500 # ,6000,7000,8000,9000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000 +EDGE_PROBABILITY = 0.05 +WEIGHT_RANGE = 10000 + + +def plot_avg_counts_old(avgCounts): + # colours from https://xkcd.com/color/rgb/ + linetypes = 5 * ["-"] + 5 * ["--"] + ["--", "-"] + ["-, -"] + plt.figure('Dijkstra with variable connectivity') + for k in TYPES.keys(): + avgComps = [acounts[k] for acounts in avgCounts[0]] + plt.plot([factor * EDGE_PROBABILITY for factor in range(1, 101, 1)], avgComps, color=COLOURS[k], linestyle='-', + label=TYPES[k] + " comparisons") + avgLinks = [acounts[k] for acounts in avgCounts[1]] + plt.plot([factor * EDGE_PROBABILITY for factor in range(1, 101, 1)], avgLinks, color=COLOURS[k], linestyle='--', + label=TYPES[k] + " links") + plt.grid(True) + plt.legend(loc='best') + plt.show() + +def plot_avg_counts(avgCounts): + # colours from https://xkcd.com/color/rgb/ + MARKERS_COMP = {21:"o", 12:"d", 22:"^"}#https://matplotlib.org/3.1.1/api/markers_api.html + MARKERS_LINK = {21:"o", 12:"D", 22:"D"} + plt.figure('avg number of operations in Dijkstra\'s algorithm') + deviations = [ 10+round(TEST_SIZE*20*factor * EDGE_PROBABILITY) for factor in range(1, 21, 1)] + for k in TYPES.keys(): + #print(k) + avgComps = [acounts[k] for acounts in avgCounts[0]] + maxComps = [acounts[k] for acounts in avgCounts[2]] + minComps = [acounts[k] for acounts in avgCounts[4]] + plt.plot(deviations, avgComps, color=COLOURS[k], linestyle="-", marker=MARKERS_COMP[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " comparisons") + plt.fill_between(deviations, minComps, maxComps, color=SHADE_COLOURS[k], alpha=.3) + avgLinks = [acounts[k] for acounts in avgCounts[1]] + maxLinks = [acounts[k] for acounts in avgCounts[3]] + minLinks = [acounts[k] for acounts in avgCounts[5]] + plt.plot(deviations, avgLinks, color=COLOURS[k], linestyle="--", marker=MARKERS_LINK[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " links") + plt.fill_between(deviations, minLinks, maxLinks, color=SHADE_COLOURS[k], alpha=.3) + + + plt.xlabel('Graph size', fontsize=26) + plt.ylabel('Avg. number of operations / size', fontsize=26) + plt.xticks(fontsize=20) + plt.yticks(fontsize=20) + plt.rc('legend',fontsize=26) # using a size in points + plt.legend() + plt.grid(True) + #plt.gca().invert_xaxis() + figure = plt.gcf() # get current figure + figure.set_size_inches(16, 18) # set figure's size manually to full screen + plt.savefig('plots/paper-dijkstra2-new.svg', bbox_inches='tight') # bbox_inches removes extra white spaces + plt.legend(loc='best') + plt.show() + + +def export_results(xs, results, countType, heapTypes, filename="dijkstra2"): + # parse data as randomness parameter; counts per heap type + if countType == COUNT_TYPE_BOTH: + with open("data/" + filename + '-comps.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[0])): + row = [xs[i]] + [results[0][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + with open("data/" + filename + '-links.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[1])): + row = [xs[i]] + [results[1][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + else: + fn = "data/" + filename + '-links.csv' if countType == COUNT_TYPE_LINKS else "data/" + filename + '-comps.csv' + with open(fn, 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results)): + row = [xs[i]]+[results[i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + + +if __name__ == "__main__": + + testOutputCount = [] + avgLinksPerSize = [] + avgCompsPerSize = [] + maxLinksPerSize = [] + maxCompsPerSize = [] + minLinksPerSize = [] + minCompsPerSize = [] + + xs = [factor * EDGE_PROBABILITY for factor in range(1, 21, 1)] + for x in xs: + avgCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + avgCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + minCountsLinks = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + minCountsComps = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + + + for _ in range(NUMBER_TESTS): + # some nice graph generators here: https://networkx.github.io/documentation/stable/reference/generators.html + ##graph = nx.fast_gnp_random_graph(100, 0.1) + graph = nx.random_regular_graph(10,10+round(TEST_SIZE*x*20)) + ##graph = nx.random_regular_graph(10,100) + for (u, v) in graph.edges(): + graph.edges[u, v]['w'] = random.randint(1, WEIGHT_RANGE) + for heapType in TYPES.keys(): + #print('---') + for v in graph.nodes(): + graph.nodes[v]['v'] = False # "visited" marker + linkCount = 0 + compCount = 0 + vertex2qnode = {} + dist = [888888888 for _ in range(len(graph.nodes()))] + prev = [None for _ in range(len(graph.nodes()))] + + heap = PairingHeap(heapType, COUNT_TYPE_BOTH) + heap.make_heap() + + source = graph.nodes()[0] + dist[0] = 0 + for idx, v in enumerate(graph.nodes()): +# qnode = Node(dist[idx]) + qnode = Node(dist[v]) + qnode.vertex = v + vertex2qnode[v] = qnode + (cc, lc) = heap.insert(qnode) + #print('inserted key {}',qnode.key) + linkCount += lc + compCount += cc + + for s in range(len(graph.nodes())): + (minNode, cc, lc) = heap.delete_min() + linkCount += lc + compCount += cc + if minNode is None: + raise Exception( + "delete-min on heap of type {} returned None with {} nodes removed".format(TYPES[heapType], + s)) + u = minNode.vertex + uk = minNode.key + #print(uk) + #print('extracted {}'.format(minNode.key)) + graph.nodes[u]['v'] = True # minNode has been visited + for idx, v in enumerate(graph.neighbors(u)): + alt = uk + graph.edges[u, v]['w'] + if alt < dist[v] and not graph.nodes[v]['v']: + (cc, lc) = heap.decrease_key(vertex2qnode[v], dist[v] - alt) + #print('decreased from {} to {}'.format(dist[v],alt)) + linkCount += lc + compCount += cc + dist[v] = alt + prev[v] = u + TSIZE = 10+round(TEST_SIZE*x*20) + avgCountsLinks[heapType] += (linkCount / NUMBER_TESTS)/TSIZE + avgCountsComps[heapType] += (compCount / NUMBER_TESTS)/TSIZE + maxCountsLinks[heapType] = max(maxCountsLinks[heapType],linkCount/TSIZE) + maxCountsComps[heapType] = max(maxCountsComps[heapType],compCount/TSIZE) + minCountsLinks[heapType] = min(minCountsLinks[heapType],linkCount/TSIZE) + minCountsComps[heapType] = min(minCountsComps[heapType],compCount/TSIZE) + + for heapType in TYPES.keys(): + pid = os.getpid() + py = psutil.Process(pid) + memoryUse = py.memory_info()[0] / 2. ** 30 # memory use in GB + print( + "[{}] \t avgComp: {} \t avgLink: {} \t RAM: {} \t |V|={} \t |E|={}".format( + TYPES[heapType], avgCountsComps[heapType], avgCountsLinks[heapType], memoryUse, len(graph.nodes()), len(graph.edges()))) + avgLinksPerSize += [avgCountsLinks] + avgCompsPerSize += [avgCountsComps] + maxLinksPerSize += [maxCountsLinks] + maxCompsPerSize += [maxCountsComps] + minLinksPerSize += [minCountsLinks] + minCompsPerSize += [minCountsComps] + # plot_avg_counts([avgCompsPerSize, avgLinksPerSize]) + plot_avg_counts([avgCompsPerSize, avgLinksPerSize, maxCompsPerSize, maxLinksPerSize, minCompsPerSize, minLinksPerSize]) + export_results(xs, [avgCompsPerSize, avgLinksPerSize], COUNT_TYPE_BOTH, TYPES, "dijkstra") diff --git a/paper-permutations.py b/paper-permutations.py new file mode 100755 index 0000000000000000000000000000000000000000..e384830e2a6337afa30e9f26875d452789e18b31 --- /dev/null +++ b/paper-permutations.py @@ -0,0 +1,91 @@ +#!/usr/bin/python3 +import random +import copy +import matplotlib.pyplot as plt +import math +import numpy as np + +"""This file generates visualizations of the different random permutation classes""" + +def plot_permutation(permutation, title, filename): + # visualizing given permutation as element index in permutation over element index in sorted list + # colours from https://xkcd.com/color/rgb/ + plt.figure(title) + sortedList = copy.copy(permutation) + sortedList.sort() + indices = [i for i in range(len(sortedList))] + pindices = [permutation.index(x) for x in sortedList] + plt.plot(indices, pindices, color='xkcd:charcoal', marker='o', linestyle="", label="(sorted index, permuted index)") + plt.xlabel('Index in sorted list', fontsize=26) + plt.ylabel('Index in permutation', fontsize=26) + plt.xticks(fontsize=20) + plt.yticks(fontsize=20) + plt.rc('legend',fontsize=26) # using a size in points + plt.legend() + plt.grid(True) + figure = plt.gcf() # get current figure + figure.set_size_inches(16, 18) # set figure's size manually to full screen + plt.savefig('plots/paper-permutation-{}.svg'.format(filename), bbox_inches='tight') # bbox_inches removes extra white spaces + plt.legend(loc='best') + plt.show() + +def localizedShuffleByIndex(llist, sdev): + tuples = [] + for element in llist: + key = np.random.normal(llist.index(element) * 1.0 / len(llist), + sdev) # generate key using gaussian distribution over sorted index + tuples += [(key, element)] # store element with key + sortedTuples = sorted(tuples, key=lambda x: x[0]) # sort key-element tuples by keys + sortedList = [tup[1] for tup in sortedTuples] # discard keys + return sortedList + + +def separablePermutation(n): + assert (n & (n - 1) == 0) and n != 0 and n > 1, "n must be a power of two > 1" # bit magic + + def generateSepPermutation(l, r): + flip = random.random() >= 0.5 + if r - l == 1: + if flip == 0: + return [r, l] + else: + return [l, r] + else: + m = math.floor((l + r) / 2) + if flip == 0: + return generateSepPermutation(m + 1, r) + generateSepPermutation(l, m) + else: + return generateSepPermutation(l, m) + generateSepPermutation(m + 1, r) + + return generateSepPermutation(0, n - 1) + + +def generateContSortedSubseq(llist, sublen): + listcopy = copy.copy(llist) + random.shuffle(listcopy) + res = [] + l = 0 + while l < len(llist): + clen = random.randint(1, sublen) +# clen = sublen + sublist = copy.copy(listcopy[l:min(l + clen, len(listcopy))]) + sublist.sort() + res += sublist + l += clen + return res + +sortedList = [x for x in range(512)] +# generating uniformly random permutation +randomPermutation = copy.copy(sortedList) +random.shuffle(randomPermutation) +plot_permutation(randomPermutation, "Uniformly Random Permutation", "uniform") +# generating random separable permutation +separablePermutation = separablePermutation(512) +plot_permutation(separablePermutation, "Random Separable Permutation", "separable") +# generating random localized permutation +localizedPermutation = localizedShuffleByIndex(sortedList, 0.15) +plot_permutation(localizedPermutation, "Random Localized Permutation", "localized") +# generating random permutation with continuous sorted subsequences +subseqPermutation = generateContSortedSubseq(sortedList, 30) +plot_permutation(subseqPermutation, "Random Subsequence Permutation", "subseq") + diff --git a/paper-sorting-loc-new.py b/paper-sorting-loc-new.py new file mode 100644 index 0000000000000000000000000000000000000000..3a3d68699be19fa1510e931e1086395d76ff7c4b --- /dev/null +++ b/paper-sorting-loc-new.py @@ -0,0 +1,176 @@ +#!/usr/bin/python3 +from random import shuffle +import random +import numpy as np +import matplotlib.pyplot as plt +import sys +import signal +import copy +import math +import csv +from node import Node +from pairing_heap import PairingHeap + +COUNT_TYPE_BOTH = 0 +COUNT_TYPE_LINKS = -1 +COUNT_TYPE_COMPS = -2 +MAXSIZE = 17 +NUMBER_TESTS = 10 # number of tests to run +TEST_SIZES = [j for j in range(MAXSIZE)] +LIST_LEN = 10000 # number of elements in test list +TEST_SIZE = 10000 # number of elements in test list +STEP_SIZE = 100 +INCREMENT_LOC = 0.01 +INCREMENT_SUBSEQS = 100 +TYPES = {0: "Pairing", 12: "Smooth"} +MAX_TYPE_KEY = max(TYPES.keys()) +COLOURS = {0:'xkcd:fire engine red', 12:'xkcd:green'} +SHADE_COLOURS = {0:'#fe4d4e', 12:'#58ab8e'} + + +def isSorted(list0): + return all(list0[i] < list0[i + 1] for i in range(len(list0) - 1)) + + +def localizedShuffleByIndex(llist, sdev): + tuples = [] + for element in llist: + key = np.random.normal(llist.index(element) * 1.0 / len(llist), + sdev) # generate key using gaussian distribution over sorted index + tuples += [(key, element)] # store element with key + sortedTuples = sorted(tuples, key=lambda x: x[0]) # sort key-element tuples by keys + sortedList = [tup[1] for tup in sortedTuples] # discard keys + # print(sortedList) + return sortedList + + +def plot_avg_counts(avgCounts): + # colours from https://xkcd.com/color/rgb/ + MARKERS_COMP = {0:"o", 12:"^"}#https://matplotlib.org/3.1.1/api/markers_api.html + MARKERS_LINK = {0:"o", 12:"D"} + + plt.figure('avg number of operations by heap type') + deviations = [fac * INCREMENT_LOC for fac in range(0, math.ceil(0.3 / INCREMENT_LOC), 1)] + for k in TYPES.keys(): + #print(k) + avgComps = [acounts[k] for acounts in avgCounts[0]] + maxComps = [acounts[k] for acounts in avgCounts[2]] + minComps = [acounts[k] for acounts in avgCounts[4]] + plt.plot(deviations, avgComps, color=COLOURS[k], linestyle="-", marker=MARKERS_COMP[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " comparisons") + plt.fill_between(deviations, minComps, maxComps, color=SHADE_COLOURS[k], alpha=.3) + avgLinks = [acounts[k] for acounts in avgCounts[1]] + maxLinks = [acounts[k] for acounts in avgCounts[3]] + minLinks = [acounts[k] for acounts in avgCounts[5]] + plt.plot(deviations, avgLinks, color=COLOURS[k], linestyle="--", marker=MARKERS_LINK[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " links") + plt.fill_between(deviations, minLinks, maxLinks, color=SHADE_COLOURS[k], alpha=.3) + + #plt.title('Sorting random separable permutations', fontsize=25) + plt.xlabel('Locality parameter', fontsize=26) + plt.ylabel('Avg. number of operations / size', fontsize=26) + plt.xticks(fontsize=20) + plt.yticks(fontsize=20) + plt.rc('legend',fontsize=26) # using a size in points + plt.legend() + plt.grid(True) + figure = plt.gcf() # get current figure + figure.set_size_inches(16, 18) # set figure's size manually to your full screen (32x18) + plt.savefig('plots/paper-sorting-loc-new.svg', bbox_inches='tight') # bbox_inches removes extra white spaces + plt.legend(loc='best') + plt.show() + + + +def export_results(params, results, countType, heapTypes, filename="dijkstra"): + # exports results of simulation as separate .csv files, one for links and one for comparisons, into /data directory + # each row contains randomness parameter value; plus one column containing the number of operations for each heap type + if countType == COUNT_TYPE_BOTH: + with open("data/" + filename + '-comps.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[0])): + row = [params[i]] + [results[0][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + with open("data/" + filename + '-links.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[1])): + row = [params[i]] + [results[1][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + else: + fn = "data/" + filename + '-links.csv' if countType == COUNT_TYPE_LINKS else "data/" + filename + '-comps.csv' + with open(fn, 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results)): + row = [params[i]] + [results[i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + + +if __name__ == "__main__": + testOutputCount = [] + avgLinksPerSize = [] + avgCompsPerSize = [] + maxLinksPerSize = [] + maxCompsPerSize = [] + minLinksPerSize = [] + minCompsPerSize = [] + + sortedInput = [] + #testInput = [] + + # ----------localised permutation inputs-------------- + # randomness parameter: standard deviation + params = [fac * INCREMENT_LOC+0.00001 for fac in range(0, math.ceil(0.3 / INCREMENT_LOC), 1)] + + for x in params: + sortedInput = [k for k in range(10000)] + avgCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + avgCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + minCountsLinks = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + minCountsComps = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + + for zz in range(NUMBER_TESTS): + testInput = localizedShuffleByIndex(sortedInput, x) + print(len(testInput)) + for heapType in TYPES.keys(): + linkCount = 0 + compCount = 0 + testOutput = [] + heap = PairingHeap(heapType, COUNT_TYPE_BOTH) + heap.make_heap() + for element in testInput: + node = Node(element) + (cc, lc) = heap.insert(node) + for i in range(len(testInput)): + (minNode, cc, lc) = heap.delete_min() + testOutput += [minNode.key] + compCount += cc + linkCount += lc + if isSorted(testOutput): # sanity check + #divide by size for visualization + avgCountsLinks[heapType] += (linkCount/10000) / NUMBER_TESTS + avgCountsComps[heapType] += (compCount/10000) / NUMBER_TESTS + maxCountsLinks[heapType] = max(maxCountsLinks[heapType],linkCount/10000) + maxCountsComps[heapType] = max(maxCountsComps[heapType],compCount/10000) + minCountsLinks[heapType] = min(minCountsLinks[heapType],linkCount/10000) + minCountsComps[heapType] = min(minCountsComps[heapType],compCount/10000) + else: + raise Exception("Invalid result for {}".format(TYPES[heapType])) + print("[{}: {}, {}/{}] \t Links: {} \t Comps: {}".format( + TYPES[heapType], x, zz+1, NUMBER_TESTS, linkCount, compCount))# diagnostics + for heapType in TYPES.keys(): + print("[{}: {}, avg] \t Links: {} \t Comps: {}".format(TYPES[heapType], x, avgCountsLinks[heapType], avgCountsComps[heapType])) + avgLinksPerSize += [avgCountsLinks] + avgCompsPerSize += [avgCountsComps] + maxLinksPerSize += [maxCountsLinks] + maxCompsPerSize += [maxCountsComps] + minLinksPerSize += [minCountsLinks] + minCompsPerSize += [minCountsComps] + plot_avg_counts([avgCompsPerSize, avgLinksPerSize, maxCompsPerSize, maxLinksPerSize, minCompsPerSize, minLinksPerSize]) + export_results(params, [avgCompsPerSize, avgLinksPerSize], COUNT_TYPE_BOTH, TYPES, "sorting-loc-new") + diff --git a/paper-sorting-sep-new.py b/paper-sorting-sep-new.py new file mode 100644 index 0000000000000000000000000000000000000000..00b11c98eb78a656fe20f1b335d8984ab11a48c7 --- /dev/null +++ b/paper-sorting-sep-new.py @@ -0,0 +1,183 @@ +#!/usr/bin/python3 +from random import shuffle +import random +import numpy as np +import matplotlib.pyplot as plt +import sys +import signal +import copy +import math +import csv +from node import Node +from pairing_heap import PairingHeap + +COUNT_TYPE_BOTH = 0 +COUNT_TYPE_LINKS = -1 +COUNT_TYPE_COMPS = -2 +MAXSIZE = 18 +NUMBER_TESTS = 20 # number of tests to run +TEST_SIZES = [j for j in range(MAXSIZE)] +LIST_LEN = 10000 # number of elements in test list +TEST_SIZE = 10000 # number of elements in test list +STEP_SIZE = 100 +INCREMENT_LOC = 0.005 +INCREMENT_SUBSEQS = 100 +TYPES = {0: "Pairing", 12: "Smooth"} +MAX_TYPE_KEY = max(TYPES.keys()) +COLOURS = {0:'xkcd:fire engine red', 12:'xkcd:green'} +SHADE_COLOURS = {0:'#fe4d4e', 12:'#58ab8e'} + + +def isSorted(list0): + return all(list0[i] < list0[i + 1] for i in range(len(list0) - 1)) + + +def plot_avg_counts(avgCounts): + # colours from https://xkcd.com/color/rgb/ + MARKERS_COMP = {0:"o", 12:"^"}#https://matplotlib.org/3.1.1/api/markers_api.html + MARKERS_LINK = {0:"o", 12:"D"} + + plt.figure('avg number of operations by heap type') + for k in TYPES.keys(): + print(k) + avgComps = [acounts[k] for acounts in avgCounts[0]] + maxComps = [acounts[k] for acounts in avgCounts[2]] + minComps = [acounts[k] for acounts in avgCounts[4]] + plt.plot([2**p for p in range(4, MAXSIZE)], avgComps[3:MAXSIZE-1], color=COLOURS[k], linestyle="-", marker=MARKERS_COMP[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " comparisons") + plt.fill_between([2**p for p in range(4, MAXSIZE)], minComps[3:MAXSIZE-1], maxComps[3:MAXSIZE-1], color=SHADE_COLOURS[k], alpha=.3) + avgLinks = [acounts[k] for acounts in avgCounts[1]] + maxLinks = [acounts[k] for acounts in avgCounts[3]] + minLinks = [acounts[k] for acounts in avgCounts[5]] + plt.plot([2**p for p in range(4, MAXSIZE)], avgLinks[3:MAXSIZE-1], color=COLOURS[k], linestyle="--", marker=MARKERS_LINK[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " links") + plt.fill_between([2**p for p in range(4, MAXSIZE)], minLinks[3:MAXSIZE-1], maxLinks[3:MAXSIZE-1], color=SHADE_COLOURS[k], alpha=.3) + + #plt.title('Sorting random separable permutations', fontsize=25) + plt.xlabel('Input size', fontsize=26) + plt.ylabel('Avg. number of operations / size', fontsize=26) + plt.xticks(fontsize=20) + plt.yticks(fontsize=20) + plt.rc('legend',fontsize=26) # using a size in points + plt.legend() + plt.grid(True) + figure = plt.gcf() # get current figure + figure.set_size_inches(16, 18) # set figure's size manually to full screen + plt.savefig('plots/paper-sorting-sep-new.svg', bbox_inches='tight') # bbox_inches removes extra white spaces + plt.legend(loc='best') + plt.show() + + +def export_results(params, results, countType, heapTypes, filename="dijkstra"): + # exports results of simulation as separate .csv files, one for links and one for comparisons, into /data directory + # each row contains randomness parameter value; plus one column containing the number of operations for each heap type + if countType == COUNT_TYPE_BOTH: + with open("data/" + filename + '-comps.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[0])): + row = [params[i]] + [results[0][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + with open("data/" + filename + '-links.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[1])): + row = [params[i]] + [results[1][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + else: + fn = "data/" + filename + '-links.csv' if countType == COUNT_TYPE_LINKS else "data/" + filename + '-comps.csv' + with open(fn, 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results)): + row = [params[i]] + [results[i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + + +def separablePermutation(n): + assert (n & (n - 1) == 0) and n != 0 and n > 1, "n must be a power of two > 1" # bit magic + + def generateSepPermutation(l, r): + flip = random.random() >= 0.5 + if r - l == 1: + if flip == 0: + return [r, l] + else: + return [l, r] + else: + m = math.floor((l + r) / 2) + if flip == 0: + return generateSepPermutation(m + 1, r) + generateSepPermutation(l, m) + else: + return generateSepPermutation(l, m) + generateSepPermutation(m + 1, r) + + return generateSepPermutation(0, n - 1) + + +if __name__ == "__main__": + testOutputCount = [] + avgLinksPerSize = [] + avgCompsPerSize = [] + maxLinksPerSize = [] + maxCompsPerSize = [] + minLinksPerSize = [] + minCompsPerSize = [] + + sortedInput = [] + # testInput = [] + + # ----------separable permutation--------------------- + # parameter: length (must be power of two) + params = [2**p for p in range(1, MAXSIZE)] + + for x in params: + sortedInput = [k for k in range(x)] + avgCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + avgCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + minCountsLinks = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + minCountsComps = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + + for zz in range(NUMBER_TESTS): + testInput = copy.copy(sortedInput) + testInput = separablePermutation(x) + testInput[0] = -1 + for heapType in TYPES.keys(): + linkCount = 0 + compCount = 0 + testOutput = [] + heap = PairingHeap(heapType, COUNT_TYPE_BOTH) + heap.make_heap() + for element in testInput: + node = Node(element) + (cc, lc) = heap.insert(node) + for i in range(len(testInput)): + (minNode, cc, lc) = heap.delete_min() + testOutput += [minNode.key] + compCount += cc + linkCount += lc + if isSorted(testOutput): # sanity check + #divide by size for visualization + avgCountsLinks[heapType] += (linkCount/x) / NUMBER_TESTS + avgCountsComps[heapType] += (compCount/x) / NUMBER_TESTS + maxCountsLinks[heapType] = max(maxCountsLinks[heapType],linkCount/x) + maxCountsComps[heapType] = max(maxCountsComps[heapType],compCount/x) + minCountsLinks[heapType] = min(minCountsLinks[heapType],linkCount/x) + minCountsComps[heapType] = min(minCountsComps[heapType],compCount/x) + else: + raise Exception("Invalid result for {}".format(TYPES[heapType])) + print("[{}: {}, {}/{}] \t Links: {} \t Comps: {}".format( + TYPES[heapType], x, zz+1, NUMBER_TESTS, linkCount, compCount)) + for heapType in TYPES.keys(): + print("[{}: {}, avg] \t Links: {} \t Comps: {}".format(TYPES[heapType], x, avgCountsLinks[heapType], avgCountsComps[heapType])) + avgLinksPerSize += [avgCountsLinks] + avgCompsPerSize += [avgCountsComps] + maxLinksPerSize += [maxCountsLinks] + maxCompsPerSize += [maxCountsComps] + minLinksPerSize += [minCountsLinks] + minCompsPerSize += [minCountsComps] + plot_avg_counts([avgCompsPerSize, avgLinksPerSize, maxCompsPerSize, maxLinksPerSize, minCompsPerSize, minLinksPerSize]) + export_results(params, [avgCompsPerSize, avgLinksPerSize], COUNT_TYPE_BOTH, TYPES, "sorting-sep-new") + diff --git a/paper-sorting-subseq-new.py b/paper-sorting-subseq-new.py new file mode 100644 index 0000000000000000000000000000000000000000..f21db3d2392e9e60d96072fd260d53d2bc76ce80 --- /dev/null +++ b/paper-sorting-subseq-new.py @@ -0,0 +1,191 @@ +#!/usr/bin/python3 +from random import shuffle +import random +import numpy as np +import matplotlib.pyplot as plt +import sys +import signal +import copy +import math +import csv +from node import Node +from pairing_heap import PairingHeap +from pairing_heap_interface import PairingHeapInterface +from pairing_heap_standard import PairingHeapStandard +from variants.pairing_heap_multipass import PairingHeapMultipass +from variants.pairing_heap_ftb import PairingHeapFTB +from variants.pairing_heap_btf import PairingHeapBTF +from variants.pairing_heap_lazy import PairingHeapLazy +from variants.pairing_heap_standard_stable import PairingHeapStandardStable +from variants.pairing_heap_ftb_stable import PairingHeapFTBStable +from variants.pairing_heap_btf_stable import PairingHeapBTFStable +from variants.pairing_heap_multipass_stable import PairingHeapMultipassStable +from variants.pairing_heap_lazy_stable import PairingHeapLazyStable +from pairing_heap_smooth import PairingHeapSmooth +from variants.pairing_heap_smooth_unstable import PairingHeapSmoothUnstable +from smooth_heap_corey import SmoothHeapCorey + +COUNT_TYPE_BOTH = 0 +COUNT_TYPE_LINKS = -1 +COUNT_TYPE_COMPS = -2 +MAXSIZE = 17 +NUMBER_TESTS = 20 # number of tests to run +TEST_SIZES = [j for j in range(MAXSIZE)] +LIST_LEN = 10000 # number of elements in test list +TEST_SIZE = 10000 # number of elements in test list +STEP_SIZE = 100 +INCREMENT_SUBSEQS = 100 +TYPES = {0: "Pairing", 12: "Smooth"} +MAX_TYPE_KEY = max(TYPES.keys()) +COLOURS = {0:'xkcd:fire engine red', 12:'xkcd:green'} +SHADE_COLOURS = {0:'#fe4d4e', 12:'#58ab8e'} + + +def isSorted(list0): + return all(list0[i] < list0[i + 1] for i in range(len(list0) - 1)) + + +def generateContSortedSubseq(llist, sublen): + listcopy = copy.copy(llist) + shuffle(listcopy) + res = [] + l = 0 + while l < len(llist): + clen = random.randint(1, sublen) + sublist = copy.copy(listcopy[l:min(l + clen, len(listcopy))]) + sublist.sort() + res += sublist + l += clen + return res + + +def plot_avg_counts(avgCounts): + # colours from https://xkcd.com/color/rgb/ + MARKERS_COMP = {0:"o", 12:"^"}#https://matplotlib.org/3.1.1/api/markers_api.html + MARKERS_LINK = {0:"o", 12:"D"} + plt.figure('avg number of operations by heap type') + deviations = [fac*INCREMENT_SUBSEQS/200 for fac in range(1, math.ceil((TEST_SIZE/5)/INCREMENT_SUBSEQS), 1)] + deviations.reverse() + for k in TYPES.keys(): + print(k) + avgComps = [acounts[k] for acounts in avgCounts[0]] + maxComps = [acounts[k] for acounts in avgCounts[2]] + minComps = [acounts[k] for acounts in avgCounts[4]] + plt.plot(deviations, avgComps, color=COLOURS[k], linestyle="-", marker=MARKERS_COMP[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " comparisons") + plt.fill_between(deviations, minComps, maxComps, color=SHADE_COLOURS[k], alpha=.3) + avgLinks = [acounts[k] for acounts in avgCounts[1]] + maxLinks = [acounts[k] for acounts in avgCounts[3]] + minLinks = [acounts[k] for acounts in avgCounts[5]] + plt.plot(deviations, avgLinks, color=COLOURS[k], linestyle="--", marker=MARKERS_LINK[k], markerfacecolor=COLOURS[k], markersize=9, markeredgewidth=1, markeredgecolor='black', label=TYPES[k] + " links") + plt.fill_between(deviations, minLinks, maxLinks, color=SHADE_COLOURS[k], alpha=.3) + + + plt.xlabel('Avg. length of sorted blocks, % of size', fontsize=26) + plt.ylabel('Avg. number of operations / size', fontsize=26) + plt.xticks(fontsize=20) + plt.yticks(fontsize=20) + plt.rc('legend',fontsize=26) # using a size in points + plt.legend() + plt.grid(True) + plt.gca().invert_xaxis() + figure = plt.gcf() # get current figure + figure.set_size_inches(16, 18) # set figure's size manually to full screen + plt.savefig('plots/paper-sorting-subseq-new.svg', bbox_inches='tight') # bbox_inches removes extra white spaces + plt.legend(loc='best') + plt.show() + + +def export_results(params, results, countType, heapTypes, filename="dijkstra"): + # exports results of simulation as separate .csv files, one for links and one for comparisons, into /data directory + # each row contains randomness parameter value; plus one column containing the number of operations for each heap type + if countType == COUNT_TYPE_BOTH: + with open("data/" + filename + '-comps.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[0])): + row = [params[i]] + [results[0][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + with open("data/" + filename + '-links.csv', 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results[1])): + row = [params[i]] + [results[1][i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + else: + fn = "data/" + filename + '-links.csv' if countType == COUNT_TYPE_LINKS else "data/" + filename + '-comps.csv' + with open(fn, 'w', newline='') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=';', quotechar='|', quoting=csv.QUOTE_MINIMAL) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.values()]) + csvwriter.writerow(["randomness parameter value"] + [name for name in TYPES.keys()]) + for i in range(len(results)): + row = [params[i]] + [results[i][k] for k in TYPES.keys()] + csvwriter.writerow(row) + + +if __name__ == "__main__": + testOutputCount = [] + avgLinksPerSize = [] + avgCompsPerSize = [] + maxLinksPerSize = [] + maxCompsPerSize = [] + minLinksPerSize = [] + minCompsPerSize = [] + + sortedInput = [] + # testInput = [] + # ----------continuous sorted subsequences inputs----- + # randomness parameter: subsequence lengths + params = [fac*INCREMENT_SUBSEQS for fac in range(1, math.ceil((TEST_SIZE/5)/INCREMENT_SUBSEQS), 1)] + params.reverse() + + for x in params: + sortedInput = [k for k in range(LIST_LEN)] + avgCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + avgCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsLinks = [0 for _ in range(MAX_TYPE_KEY + 1)] + maxCountsComps = [0 for _ in range(MAX_TYPE_KEY + 1)] + minCountsLinks = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + minCountsComps = [1000000000000 for _ in range(MAX_TYPE_KEY + 1)] + + for zz in range(NUMBER_TESTS): + testInput = generateContSortedSubseq(sortedInput, x) + #print(len(testInput)) + for heapType in TYPES.keys(): + linkCount = 0 + compCount = 0 + testOutput = [] + heap = PairingHeap(heapType, COUNT_TYPE_BOTH) + heap.make_heap() + for element in testInput: + node = Node(element) + (cc, lc) = heap.insert(node) + for i in range(len(testInput)): + (minNode, cc, lc) = heap.delete_min() + testOutput += [minNode.key] + compCount += cc + linkCount += lc + if isSorted(testOutput): # sanity check + #divide by size for visualization + avgCountsLinks[heapType] += (linkCount/LIST_LEN) / NUMBER_TESTS + avgCountsComps[heapType] += (compCount/LIST_LEN) / NUMBER_TESTS + maxCountsLinks[heapType] = max(maxCountsLinks[heapType],linkCount/LIST_LEN) + maxCountsComps[heapType] = max(maxCountsComps[heapType],compCount/LIST_LEN) + minCountsLinks[heapType] = min(minCountsLinks[heapType],linkCount/LIST_LEN) + minCountsComps[heapType] = min(minCountsComps[heapType],compCount/LIST_LEN) + else: + raise Exception("Invalid result for {}".format(TYPES[heapType])) + print("[{}: {}, {}/{}] \t Links: {} \t Comps: {}".format( + TYPES[heapType], x, zz+1, NUMBER_TESTS, linkCount, compCount)) + for heapType in TYPES.keys(): + print("[{}: {}, avg] \t Links: {} \t Comps: {}".format(TYPES[heapType], x, avgCountsLinks[heapType], avgCountsComps[heapType])) + avgLinksPerSize += [avgCountsLinks] + avgCompsPerSize += [avgCountsComps] + maxLinksPerSize += [maxCountsLinks] + maxCompsPerSize += [maxCountsComps] + minLinksPerSize += [minCountsLinks] + minCompsPerSize += [minCountsComps] + plot_avg_counts([avgCompsPerSize, avgLinksPerSize, maxCompsPerSize, maxLinksPerSize, minCompsPerSize, minLinksPerSize]) + export_results(params, [avgCompsPerSize, avgLinksPerSize], COUNT_TYPE_BOTH, TYPES, "sorting-subseq-new") + diff --git a/plots/paper-dijkstra-new.svg b/plots/paper-dijkstra-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..b5815278cf63aeb8643be6d0b23bdffdd9bc0d44 --- /dev/null +++ b/plots/paper-dijkstra-new.svg @@ -0,0 +1,1570 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 968.813125 1067.839375" width="968.813125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 968.813125 1067.839375 +L 968.813125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +L 961.613125 7.2 +L 68.813125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="PolyCollection_1"> + <defs> + <path d="M 109.394943 -289.696418 +L 109.394943 -245.288027 +L 152.112647 -297.958445 +L 194.83035 -347.530603 +L 237.548053 -377.923057 +L 280.265757 -390.316096 +L 322.98346 -402.266527 +L 365.701163 -419.085652 +L 408.418867 -423.069129 +L 451.13657 -443.724195 +L 493.854273 -437.675212 +L 536.571977 -459.658103 +L 579.28968 -463.64158 +L 622.007383 -465.559551 +L 664.725087 -470.870853 +L 707.44279 -473.083896 +L 750.160493 -469.247955 +L 792.878197 -494.476643 +L 835.5959 -486.362153 +L 878.313603 -493.44389 +L 921.031307 -488.870268 +L 921.031307 -543.606192 +L 921.031307 -543.606192 +L 878.313603 -543.31112 +L 835.5959 -526.049386 +L 792.878197 -530.475472 +L 750.160493 -532.836051 +L 707.44279 -522.508518 +L 664.725087 -514.394028 +L 622.007383 -514.246492 +L 579.28968 -499.640409 +L 536.571977 -487.394906 +L 493.854273 -483.558965 +L 451.13657 -464.82187 +L 408.418867 -466.73984 +L 365.701163 -470.280709 +L 322.98346 -437.675212 +L 280.265757 -419.233189 +L 237.548053 -404.332034 +L 194.83035 -375.562478 +L 152.112647 -324.514958 +L 109.394943 -289.696418 +z +" id="md8d6ab8d83" style="stroke:#fe4d4e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#md8d6ab8d83" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_2"> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#md8d6ab8d83" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_3"> + <defs> + <path d="M 109.394943 -592.145597 +L 109.394943 -568.83488 +L 152.112647 -653.373114 +L 194.83035 -717.403818 +L 237.548053 -746.468446 +L 280.265757 -779.073943 +L 322.98346 -795.597996 +L 365.701163 -823.334799 +L 408.418867 -840.006388 +L 451.13657 -854.907542 +L 493.854273 -869.366088 +L 536.571977 -881.906664 +L 579.28968 -893.26695 +L 622.007383 -892.676805 +L 664.725087 -911.266365 +L 707.44279 -909.053322 +L 750.160493 -926.019983 +L 792.878197 -946.084904 +L 835.5959 -942.691572 +L 878.313603 -940.035921 +L 921.031307 -950.806062 +L 921.031307 -1015.279375 +L 921.031307 -1015.279375 +L 878.313603 -998.017641 +L 835.5959 -984.296776 +L 792.878197 -1000.083148 +L 750.160493 -973.231562 +L 707.44279 -961.428668 +L 664.725087 -941.806355 +L 622.007383 -951.691279 +L 579.28968 -932.216503 +L 536.571977 -920.266072 +L 493.854273 -910.233611 +L 451.13657 -904.922309 +L 408.418867 -884.414779 +L 365.701163 -861.841743 +L 322.98346 -830.121463 +L 280.265757 -809.023789 +L 237.548053 -790.876838 +L 194.83035 -749.861779 +L 152.112647 -685.831074 +L 109.394943 -592.145597 +z +" id="m8d64b95721" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m8d64b95721" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_4"> + <defs> + <path d="M 109.394943 -119.439661 +L 109.394943 -108.079375 +L 152.112647 -149.241971 +L 194.83035 -182.732684 +L 237.548053 -198.961665 +L 280.265757 -217.69876 +L 322.98346 -223.305135 +L 365.701163 -241.747158 +L 408.418867 -249.123968 +L 451.13657 -253.992662 +L 493.854273 -266.090629 +L 536.571977 -270.074106 +L 579.28968 -273.76251 +L 622.007383 -274.795264 +L 664.725087 -287.335839 +L 707.44279 -282.172073 +L 750.160493 -293.237287 +L 792.878197 -307.548297 +L 835.5959 -306.515543 +L 878.313603 -303.56482 +L 921.031307 -305.630326 +L 921.031307 -339.858721 +L 921.031307 -339.858721 +L 878.313603 -332.776984 +L 835.5959 -322.154379 +L 792.878197 -332.924521 +L 750.160493 -317.138149 +L 707.44279 -310.056412 +L 664.725087 -305.630326 +L 622.007383 -307.105688 +L 579.28968 -294.27004 +L 536.571977 -290.434099 +L 493.854273 -282.319609 +L 451.13657 -284.23758 +L 408.418867 -273.02483 +L 365.701163 -260.336718 +L 322.98346 -243.074984 +L 280.265757 -231.419625 +L 237.548053 -223.600208 +L 194.83035 -200.437027 +L 152.112647 -168.716747 +L 109.394943 -119.439661 +z +" id="m0c41550db6" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m0c41550db6" y="1067.839375"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p35bd1010cb)" d="M 237.548053 1005.12 +L 237.548053 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m7931de0360" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="237.548053" xlink:href="#m7931de0360" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0.2 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="DejaVuSans-46"/> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(221.644928 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p35bd1010cb)" d="M 408.418867 1005.12 +L 408.418867 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="408.418867" xlink:href="#m7931de0360" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 0.4 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(392.515742 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p35bd1010cb)" d="M 579.28968 1005.12 +L 579.28968 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="579.28968" xlink:href="#m7931de0360" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 0.6 --> + <defs> + <path d="M 33.015625 40.375 +Q 26.375 40.375 22.484375 35.828125 +Q 18.609375 31.296875 18.609375 23.390625 +Q 18.609375 15.53125 22.484375 10.953125 +Q 26.375 6.390625 33.015625 6.390625 +Q 39.65625 6.390625 43.53125 10.953125 +Q 47.40625 15.53125 47.40625 23.390625 +Q 47.40625 31.296875 43.53125 35.828125 +Q 39.65625 40.375 33.015625 40.375 +z +M 52.59375 71.296875 +L 52.59375 62.3125 +Q 48.875 64.0625 45.09375 64.984375 +Q 41.3125 65.921875 37.59375 65.921875 +Q 27.828125 65.921875 22.671875 59.328125 +Q 17.53125 52.734375 16.796875 39.40625 +Q 19.671875 43.65625 24.015625 45.921875 +Q 28.375 48.1875 33.59375 48.1875 +Q 44.578125 48.1875 50.953125 41.515625 +Q 57.328125 34.859375 57.328125 23.390625 +Q 57.328125 12.15625 50.6875 5.359375 +Q 44.046875 -1.421875 33.015625 -1.421875 +Q 20.359375 -1.421875 13.671875 8.265625 +Q 6.984375 17.96875 6.984375 36.375 +Q 6.984375 53.65625 15.1875 63.9375 +Q 23.390625 74.21875 37.203125 74.21875 +Q 40.921875 74.21875 44.703125 73.484375 +Q 48.484375 72.75 52.59375 71.296875 +z +" id="DejaVuSans-54"/> + </defs> + <g transform="translate(563.386555 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p35bd1010cb)" d="M 750.160493 1005.12 +L 750.160493 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="750.160493" xlink:href="#m7931de0360" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 0.8 --> + <defs> + <path d="M 31.78125 34.625 +Q 24.75 34.625 20.71875 30.859375 +Q 16.703125 27.09375 16.703125 20.515625 +Q 16.703125 13.921875 20.71875 10.15625 +Q 24.75 6.390625 31.78125 6.390625 +Q 38.8125 6.390625 42.859375 10.171875 +Q 46.921875 13.96875 46.921875 20.515625 +Q 46.921875 27.09375 42.890625 30.859375 +Q 38.875 34.625 31.78125 34.625 +z +M 21.921875 38.8125 +Q 15.578125 40.375 12.03125 44.71875 +Q 8.5 49.078125 8.5 55.328125 +Q 8.5 64.0625 14.71875 69.140625 +Q 20.953125 74.21875 31.78125 74.21875 +Q 42.671875 74.21875 48.875 69.140625 +Q 55.078125 64.0625 55.078125 55.328125 +Q 55.078125 49.078125 51.53125 44.71875 +Q 48 40.375 41.703125 38.8125 +Q 48.828125 37.15625 52.796875 32.3125 +Q 56.78125 27.484375 56.78125 20.515625 +Q 56.78125 9.90625 50.3125 4.234375 +Q 43.84375 -1.421875 31.78125 -1.421875 +Q 19.734375 -1.421875 13.25 4.234375 +Q 6.78125 9.90625 6.78125 20.515625 +Q 6.78125 27.484375 10.78125 32.3125 +Q 14.796875 37.15625 21.921875 38.8125 +z +M 18.3125 54.390625 +Q 18.3125 48.734375 21.84375 45.5625 +Q 25.390625 42.390625 31.78125 42.390625 +Q 38.140625 42.390625 41.71875 45.5625 +Q 45.3125 48.734375 45.3125 54.390625 +Q 45.3125 60.0625 41.71875 63.234375 +Q 38.140625 66.40625 31.78125 66.40625 +Q 25.390625 66.40625 21.84375 63.234375 +Q 18.3125 60.0625 18.3125 54.390625 +z +" id="DejaVuSans-56"/> + </defs> + <g transform="translate(734.257368 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p35bd1010cb)" d="M 921.031307 1005.12 +L 921.031307 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="921.031307" xlink:href="#m7931de0360" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 1.0 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(905.128182 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_6"> + <!-- Edge probability --> + <defs> + <path d="M 9.8125 72.90625 +L 55.90625 72.90625 +L 55.90625 64.59375 +L 19.671875 64.59375 +L 19.671875 43.015625 +L 54.390625 43.015625 +L 54.390625 34.71875 +L 19.671875 34.71875 +L 19.671875 8.296875 +L 56.78125 8.296875 +L 56.78125 0 +L 9.8125 0 +z +" id="DejaVuSans-69"/> + <path d="M 45.40625 46.390625 +L 45.40625 75.984375 +L 54.390625 75.984375 +L 54.390625 0 +L 45.40625 0 +L 45.40625 8.203125 +Q 42.578125 3.328125 38.25 0.953125 +Q 33.9375 -1.421875 27.875 -1.421875 +Q 17.96875 -1.421875 11.734375 6.484375 +Q 5.515625 14.40625 5.515625 27.296875 +Q 5.515625 40.1875 11.734375 48.09375 +Q 17.96875 56 27.875 56 +Q 33.9375 56 38.25 53.625 +Q 42.578125 51.265625 45.40625 46.390625 +z +M 14.796875 27.296875 +Q 14.796875 17.390625 18.875 11.75 +Q 22.953125 6.109375 30.078125 6.109375 +Q 37.203125 6.109375 41.296875 11.75 +Q 45.40625 17.390625 45.40625 27.296875 +Q 45.40625 37.203125 41.296875 42.84375 +Q 37.203125 48.484375 30.078125 48.484375 +Q 22.953125 48.484375 18.875 42.84375 +Q 14.796875 37.203125 14.796875 27.296875 +z +" id="DejaVuSans-100"/> + <path d="M 45.40625 27.984375 +Q 45.40625 37.75 41.375 43.109375 +Q 37.359375 48.484375 30.078125 48.484375 +Q 22.859375 48.484375 18.828125 43.109375 +Q 14.796875 37.75 14.796875 27.984375 +Q 14.796875 18.265625 18.828125 12.890625 +Q 22.859375 7.515625 30.078125 7.515625 +Q 37.359375 7.515625 41.375 12.890625 +Q 45.40625 18.265625 45.40625 27.984375 +z +M 54.390625 6.78125 +Q 54.390625 -7.171875 48.1875 -13.984375 +Q 42 -20.796875 29.203125 -20.796875 +Q 24.46875 -20.796875 20.265625 -20.09375 +Q 16.0625 -19.390625 12.109375 -17.921875 +L 12.109375 -9.1875 +Q 16.0625 -11.328125 19.921875 -12.34375 +Q 23.78125 -13.375 27.78125 -13.375 +Q 36.625 -13.375 41.015625 -8.765625 +Q 45.40625 -4.15625 45.40625 5.171875 +L 45.40625 9.625 +Q 42.625 4.78125 38.28125 2.390625 +Q 33.9375 0 27.875 0 +Q 17.828125 0 11.671875 7.65625 +Q 5.515625 15.328125 5.515625 27.984375 +Q 5.515625 40.671875 11.671875 48.328125 +Q 17.828125 56 27.875 56 +Q 33.9375 56 38.28125 53.609375 +Q 42.625 51.21875 45.40625 46.390625 +L 45.40625 54.6875 +L 54.390625 54.6875 +z +" id="DejaVuSans-103"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + <path id="DejaVuSans-32"/> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +M 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +z +" id="DejaVuSans-98"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 32.171875 -5.078125 +Q 28.375 -14.84375 24.75 -17.8125 +Q 21.140625 -20.796875 15.09375 -20.796875 +L 7.90625 -20.796875 +L 7.90625 -13.28125 +L 13.1875 -13.28125 +Q 16.890625 -13.28125 18.9375 -11.515625 +Q 21 -9.765625 23.484375 -3.21875 +L 25.09375 0.875 +L 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 11.921875 +L 46.6875 54.6875 +L 56.203125 54.6875 +z +" id="DejaVuSans-121"/> + </defs> + <g transform="translate(409.005156 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-69"/> + <use x="63.183594" xlink:href="#DejaVuSans-100"/> + <use x="126.660156" xlink:href="#DejaVuSans-103"/> + <use x="190.136719" xlink:href="#DejaVuSans-101"/> + <use x="251.660156" xlink:href="#DejaVuSans-32"/> + <use x="283.447266" xlink:href="#DejaVuSans-112"/> + <use x="346.923828" xlink:href="#DejaVuSans-114"/> + <use x="385.787109" xlink:href="#DejaVuSans-111"/> + <use x="446.96875" xlink:href="#DejaVuSans-98"/> + <use x="510.445312" xlink:href="#DejaVuSans-97"/> + <use x="571.724609" xlink:href="#DejaVuSans-98"/> + <use x="635.201172" xlink:href="#DejaVuSans-105"/> + <use x="662.984375" xlink:href="#DejaVuSans-108"/> + <use x="690.767578" xlink:href="#DejaVuSans-105"/> + <use x="718.550781" xlink:href="#DejaVuSans-116"/> + <use x="757.759766" xlink:href="#DejaVuSans-121"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_11"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 943.235947 +L 961.613125 943.235947 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m2b5c01c411" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="943.235947"/> + </g> + </g> + <g id="text_7"> + <!-- 10 --> + <g transform="translate(36.363125 950.834385)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_13"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 795.699763 +L 961.613125 795.699763 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="795.699763"/> + </g> + </g> + <g id="text_8"> + <!-- 12 --> + <g transform="translate(36.363125 803.2982)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_15"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 648.163578 +L 961.613125 648.163578 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="648.163578"/> + </g> + </g> + <g id="text_9"> + <!-- 14 --> + <g transform="translate(36.363125 655.762015)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_17"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 500.627393 +L 961.613125 500.627393 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="500.627393"/> + </g> + </g> + <g id="text_10"> + <!-- 16 --> + <g transform="translate(36.363125 508.225831)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_19"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 353.091208 +L 961.613125 353.091208 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="353.091208"/> + </g> + </g> + <g id="text_11"> + <!-- 18 --> + <g transform="translate(36.363125 360.689646)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_21"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 205.555024 +L 961.613125 205.555024 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="205.555024"/> + </g> + </g> + <g id="text_12"> + <!-- 20 --> + <g transform="translate(36.363125 213.153461)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_23"> + <path clip-path="url(#p35bd1010cb)" d="M 68.813125 58.018839 +L 961.613125 58.018839 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b5c01c411" y="58.018839"/> + </g> + </g> + <g id="text_13"> + <!-- 22 --> + <g transform="translate(36.363125 65.617276)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Avg. number of operations / size --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="DejaVuSans-65"/> + <path d="M 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 8.796875 +L 46.6875 54.6875 +L 56.203125 54.6875 +L 35.6875 0 +L 23.484375 0 +z +" id="DejaVuSans-118"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 37.109375 75.984375 +L 37.109375 68.5 +L 28.515625 68.5 +Q 23.6875 68.5 21.796875 66.546875 +Q 19.921875 64.59375 19.921875 59.515625 +L 19.921875 54.6875 +L 34.71875 54.6875 +L 34.71875 47.703125 +L 19.921875 47.703125 +L 19.921875 0 +L 10.890625 0 +L 10.890625 47.703125 +L 2.296875 47.703125 +L 2.296875 54.6875 +L 10.890625 54.6875 +L 10.890625 58.5 +Q 10.890625 67.625 15.140625 71.796875 +Q 19.390625 75.984375 28.609375 75.984375 +z +" id="DejaVuSans-102"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 25.390625 72.90625 +L 33.6875 72.90625 +L 8.296875 -9.28125 +L 0 -9.28125 +z +" id="DejaVuSans-47"/> + <path d="M 5.515625 54.6875 +L 48.1875 54.6875 +L 48.1875 46.484375 +L 14.40625 7.171875 +L 48.1875 7.171875 +L 48.1875 0 +L 4.296875 0 +L 4.296875 8.203125 +L 38.09375 47.515625 +L 5.515625 47.515625 +z +" id="DejaVuSans-122"/> + </defs> + <g transform="translate(26.955938 717.06875)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-110"/> + <use x="312.142578" xlink:href="#DejaVuSans-117"/> + <use x="375.521484" xlink:href="#DejaVuSans-109"/> + <use x="472.933594" xlink:href="#DejaVuSans-98"/> + <use x="536.410156" xlink:href="#DejaVuSans-101"/> + <use x="597.933594" xlink:href="#DejaVuSans-114"/> + <use x="639.046875" xlink:href="#DejaVuSans-32"/> + <use x="670.833984" xlink:href="#DejaVuSans-111"/> + <use x="732.015625" xlink:href="#DejaVuSans-102"/> + <use x="767.220703" xlink:href="#DejaVuSans-32"/> + <use x="799.007812" xlink:href="#DejaVuSans-111"/> + <use x="860.189453" xlink:href="#DejaVuSans-112"/> + <use x="923.666016" xlink:href="#DejaVuSans-101"/> + <use x="985.189453" xlink:href="#DejaVuSans-114"/> + <use x="1026.302734" xlink:href="#DejaVuSans-97"/> + <use x="1087.582031" xlink:href="#DejaVuSans-116"/> + <use x="1126.791016" xlink:href="#DejaVuSans-105"/> + <use x="1154.574219" xlink:href="#DejaVuSans-111"/> + <use x="1215.755859" xlink:href="#DejaVuSans-110"/> + <use x="1279.134766" xlink:href="#DejaVuSans-115"/> + <use x="1331.234375" xlink:href="#DejaVuSans-32"/> + <use x="1363.021484" xlink:href="#DejaVuSans-47"/> + <use x="1396.712891" xlink:href="#DejaVuSans-32"/> + <use x="1428.5" xlink:href="#DejaVuSans-115"/> + <use x="1480.599609" xlink:href="#DejaVuSans-105"/> + <use x="1508.382812" xlink:href="#DejaVuSans-122"/> + <use x="1560.873047" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="line2d_25"> + <path clip-path="url(#p35bd1010cb)" d="M 109.394943 810.128801 +L 152.112647 751.556936 +L 194.83035 711.368079 +L 237.548053 681.03464 +L 280.265757 664.953196 +L 322.98346 647.440651 +L 365.701163 633.837814 +L 408.418867 618.744863 +L 451.13657 615.381038 +L 493.854273 601.025767 +L 536.571977 596.51116 +L 579.28968 585.755772 +L 622.007383 578.260933 +L 664.725087 571.075921 +L 707.44279 566.531807 +L 750.160493 562.149982 +L 792.878197 552.427348 +L 835.5959 560.172997 +L 878.313603 544.091553 +L 921.031307 548.945494 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 4.5 +C 1.193414 4.5 2.338109 4.025852 3.181981 3.181981 +C 4.025852 2.338109 4.5 1.193414 4.5 0 +C 4.5 -1.193414 4.025852 -2.338109 3.181981 -3.181981 +C 2.338109 -4.025852 1.193414 -4.5 0 -4.5 +C -1.193414 -4.5 -2.338109 -4.025852 -3.181981 -3.181981 +C -4.025852 -2.338109 -4.5 -1.193414 -4.5 0 +C -4.5 1.193414 -4.025852 2.338109 -3.181981 3.181981 +C -2.338109 4.025852 -1.193414 4.5 0 4.5 +z +" id="mfe51d5f693" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#mfe51d5f693" y="810.128801"/> + <use style="fill:#fe0002;stroke:#000000;" x="152.112647" xlink:href="#mfe51d5f693" y="751.556936"/> + <use style="fill:#fe0002;stroke:#000000;" x="194.83035" xlink:href="#mfe51d5f693" y="711.368079"/> + <use style="fill:#fe0002;stroke:#000000;" x="237.548053" xlink:href="#mfe51d5f693" y="681.03464"/> + <use style="fill:#fe0002;stroke:#000000;" x="280.265757" xlink:href="#mfe51d5f693" y="664.953196"/> + <use style="fill:#fe0002;stroke:#000000;" x="322.98346" xlink:href="#mfe51d5f693" y="647.440651"/> + <use style="fill:#fe0002;stroke:#000000;" x="365.701163" xlink:href="#mfe51d5f693" y="633.837814"/> + <use style="fill:#fe0002;stroke:#000000;" x="408.418867" xlink:href="#mfe51d5f693" y="618.744863"/> + <use style="fill:#fe0002;stroke:#000000;" x="451.13657" xlink:href="#mfe51d5f693" y="615.381038"/> + <use style="fill:#fe0002;stroke:#000000;" x="493.854273" xlink:href="#mfe51d5f693" y="601.025767"/> + <use style="fill:#fe0002;stroke:#000000;" x="536.571977" xlink:href="#mfe51d5f693" y="596.51116"/> + <use style="fill:#fe0002;stroke:#000000;" x="579.28968" xlink:href="#mfe51d5f693" y="585.755772"/> + <use style="fill:#fe0002;stroke:#000000;" x="622.007383" xlink:href="#mfe51d5f693" y="578.260933"/> + <use style="fill:#fe0002;stroke:#000000;" x="664.725087" xlink:href="#mfe51d5f693" y="571.075921"/> + <use style="fill:#fe0002;stroke:#000000;" x="707.44279" xlink:href="#mfe51d5f693" y="566.531807"/> + <use style="fill:#fe0002;stroke:#000000;" x="750.160493" xlink:href="#mfe51d5f693" y="562.149982"/> + <use style="fill:#fe0002;stroke:#000000;" x="792.878197" xlink:href="#mfe51d5f693" y="552.427348"/> + <use style="fill:#fe0002;stroke:#000000;" x="835.5959" xlink:href="#mfe51d5f693" y="560.172997"/> + <use style="fill:#fe0002;stroke:#000000;" x="878.313603" xlink:href="#mfe51d5f693" y="544.091553"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#mfe51d5f693" y="548.945494"/> + </g> + </g> + <g id="line2d_26"> + <path clip-path="url(#p35bd1010cb)" d="M 109.394943 810.128801 +L 152.112647 751.556936 +L 194.83035 711.368079 +L 237.548053 681.03464 +L 280.265757 664.953196 +L 322.98346 647.440651 +L 365.701163 633.837814 +L 408.418867 618.744863 +L 451.13657 615.381038 +L 493.854273 601.025767 +L 536.571977 596.51116 +L 579.28968 585.755772 +L 622.007383 578.260933 +L 664.725087 571.075921 +L 707.44279 566.531807 +L 750.160493 562.149982 +L 792.878197 552.427348 +L 835.5959 560.172997 +L 878.313603 544.091553 +L 921.031307 548.945494 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#mfe51d5f693" y="810.128801"/> + <use style="fill:#fe0002;stroke:#000000;" x="152.112647" xlink:href="#mfe51d5f693" y="751.556936"/> + <use style="fill:#fe0002;stroke:#000000;" x="194.83035" xlink:href="#mfe51d5f693" y="711.368079"/> + <use style="fill:#fe0002;stroke:#000000;" x="237.548053" xlink:href="#mfe51d5f693" y="681.03464"/> + <use style="fill:#fe0002;stroke:#000000;" x="280.265757" xlink:href="#mfe51d5f693" y="664.953196"/> + <use style="fill:#fe0002;stroke:#000000;" x="322.98346" xlink:href="#mfe51d5f693" y="647.440651"/> + <use style="fill:#fe0002;stroke:#000000;" x="365.701163" xlink:href="#mfe51d5f693" y="633.837814"/> + <use style="fill:#fe0002;stroke:#000000;" x="408.418867" xlink:href="#mfe51d5f693" y="618.744863"/> + <use style="fill:#fe0002;stroke:#000000;" x="451.13657" xlink:href="#mfe51d5f693" y="615.381038"/> + <use style="fill:#fe0002;stroke:#000000;" x="493.854273" xlink:href="#mfe51d5f693" y="601.025767"/> + <use style="fill:#fe0002;stroke:#000000;" x="536.571977" xlink:href="#mfe51d5f693" y="596.51116"/> + <use style="fill:#fe0002;stroke:#000000;" x="579.28968" xlink:href="#mfe51d5f693" y="585.755772"/> + <use style="fill:#fe0002;stroke:#000000;" x="622.007383" xlink:href="#mfe51d5f693" y="578.260933"/> + <use style="fill:#fe0002;stroke:#000000;" x="664.725087" xlink:href="#mfe51d5f693" y="571.075921"/> + <use style="fill:#fe0002;stroke:#000000;" x="707.44279" xlink:href="#mfe51d5f693" y="566.531807"/> + <use style="fill:#fe0002;stroke:#000000;" x="750.160493" xlink:href="#mfe51d5f693" y="562.149982"/> + <use style="fill:#fe0002;stroke:#000000;" x="792.878197" xlink:href="#mfe51d5f693" y="552.427348"/> + <use style="fill:#fe0002;stroke:#000000;" x="835.5959" xlink:href="#mfe51d5f693" y="560.172997"/> + <use style="fill:#fe0002;stroke:#000000;" x="878.313603" xlink:href="#mfe51d5f693" y="544.091553"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#mfe51d5f693" y="548.945494"/> + </g> + </g> + <g id="line2d_27"> + <path clip-path="url(#p35bd1010cb)" d="M 109.394943 487.850759 +L 152.112647 395.448847 +L 194.83035 337.334344 +L 237.548053 299.712617 +L 280.265757 274.410161 +L 322.98346 250.583067 +L 365.701163 224.941278 +L 408.418867 209.612269 +L 451.13657 195.124215 +L 493.854273 182.126277 +L 536.571977 167.520195 +L 579.28968 154.345214 +L 622.007383 139.901421 +L 664.725087 136.22777 +L 707.44279 125.914991 +L 750.160493 124.233079 +L 792.878197 101.940361 +L 835.5959 105.510737 +L 878.313603 100.332217 +L 921.031307 95.965146 +" style="fill:none;stroke:#53fca1;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 -4.5 +L -4.5 4.5 +L 4.5 4.5 +z +" id="m1a26e1fe63" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m1a26e1fe63" y="487.850759"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="152.112647" xlink:href="#m1a26e1fe63" y="395.448847"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="194.83035" xlink:href="#m1a26e1fe63" y="337.334344"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="237.548053" xlink:href="#m1a26e1fe63" y="299.712617"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="280.265757" xlink:href="#m1a26e1fe63" y="274.410161"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="322.98346" xlink:href="#m1a26e1fe63" y="250.583067"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="365.701163" xlink:href="#m1a26e1fe63" y="224.941278"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="408.418867" xlink:href="#m1a26e1fe63" y="209.612269"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="451.13657" xlink:href="#m1a26e1fe63" y="195.124215"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="493.854273" xlink:href="#m1a26e1fe63" y="182.126277"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="536.571977" xlink:href="#m1a26e1fe63" y="167.520195"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="579.28968" xlink:href="#m1a26e1fe63" y="154.345214"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="622.007383" xlink:href="#m1a26e1fe63" y="139.901421"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="664.725087" xlink:href="#m1a26e1fe63" y="136.22777"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="707.44279" xlink:href="#m1a26e1fe63" y="125.914991"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="750.160493" xlink:href="#m1a26e1fe63" y="124.233079"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="792.878197" xlink:href="#m1a26e1fe63" y="101.940361"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="835.5959" xlink:href="#m1a26e1fe63" y="105.510737"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="878.313603" xlink:href="#m1a26e1fe63" y="100.332217"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m1a26e1fe63" y="95.965146"/> + </g> + </g> + <g id="line2d_28"> + <path clip-path="url(#p35bd1010cb)" d="M 109.394943 953.681509 +L 152.112647 906.425669 +L 194.83035 876.490577 +L 237.548053 856.868265 +L 280.265757 844.150646 +L 322.98346 831.97891 +L 365.701163 817.269553 +L 408.418867 808.49115 +L 451.13657 802.014311 +L 493.854273 794.829299 +L 536.571977 787.673794 +L 579.28968 780.916637 +L 622.007383 774.779132 +L 664.725087 770.544843 +L 707.44279 766.605627 +L 750.160493 764.436845 +L 792.878197 752.545429 +L 835.5959 754.50766 +L 878.313603 751.173342 +L 921.031307 749.402908 +" style="fill:none;stroke:#53fca1;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <defs> + <path d="M -0 6.363961 +L 6.363961 0 +L 0 -6.363961 +L -6.363961 -0 +z +" id="md7b534b111" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p35bd1010cb)"> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#md7b534b111" y="953.681509"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="152.112647" xlink:href="#md7b534b111" y="906.425669"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="194.83035" xlink:href="#md7b534b111" y="876.490577"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="237.548053" xlink:href="#md7b534b111" y="856.868265"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="280.265757" xlink:href="#md7b534b111" y="844.150646"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="322.98346" xlink:href="#md7b534b111" y="831.97891"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="365.701163" xlink:href="#md7b534b111" y="817.269553"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="408.418867" xlink:href="#md7b534b111" y="808.49115"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="451.13657" xlink:href="#md7b534b111" y="802.014311"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="493.854273" xlink:href="#md7b534b111" y="794.829299"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="536.571977" xlink:href="#md7b534b111" y="787.673794"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="579.28968" xlink:href="#md7b534b111" y="780.916637"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="622.007383" xlink:href="#md7b534b111" y="774.779132"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="664.725087" xlink:href="#md7b534b111" y="770.544843"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="707.44279" xlink:href="#md7b534b111" y="766.605627"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="750.160493" xlink:href="#md7b534b111" y="764.436845"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="792.878197" xlink:href="#md7b534b111" y="752.545429"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="835.5959" xlink:href="#md7b534b111" y="754.50766"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="878.313603" xlink:href="#md7b534b111" y="751.173342"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#md7b534b111" y="749.402908"/> + </g> + </g> + <g id="patch_3"> + <path d="M 68.813125 1005.12 +L 68.813125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 961.613125 1005.12 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 68.813125 7.2 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 87.013125 180.6525 +L 444.151563 180.6525 +Q 449.351563 180.6525 449.351563 175.4525 +L 449.351563 25.4 +Q 449.351563 20.2 444.151563 20.2 +L 87.013125 20.2 +Q 81.813125 20.2 81.813125 25.4 +L 81.813125 175.4525 +Q 81.813125 180.6525 87.013125 180.6525 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_29"> + <path d="M 92.213125 41.255937 +L 144.213125 41.255937 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_30"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="118.213125" xlink:href="#mfe51d5f693" y="41.255937"/> + </g> + </g> + <g id="text_15"> + <!-- Pairing comparisons --> + <defs> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-80"/> + <path d="M 48.78125 52.59375 +L 48.78125 44.1875 +Q 44.96875 46.296875 41.140625 47.34375 +Q 37.3125 48.390625 33.40625 48.390625 +Q 24.65625 48.390625 19.8125 42.84375 +Q 14.984375 37.3125 14.984375 27.296875 +Q 14.984375 17.28125 19.8125 11.734375 +Q 24.65625 6.203125 33.40625 6.203125 +Q 37.3125 6.203125 41.140625 7.25 +Q 44.96875 8.296875 48.78125 10.40625 +L 48.78125 2.09375 +Q 45.015625 0.34375 40.984375 -0.53125 +Q 36.96875 -1.421875 32.421875 -1.421875 +Q 20.0625 -1.421875 12.78125 6.34375 +Q 5.515625 14.109375 5.515625 27.296875 +Q 5.515625 40.671875 12.859375 48.328125 +Q 20.21875 56 33.015625 56 +Q 37.15625 56 41.109375 55.140625 +Q 45.0625 54.296875 48.78125 52.59375 +z +" id="DejaVuSans-99"/> + </defs> + <g transform="translate(165.013125 50.355937)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-99"/> + <use x="427.384766" xlink:href="#DejaVuSans-111"/> + <use x="488.566406" xlink:href="#DejaVuSans-109"/> + <use x="585.978516" xlink:href="#DejaVuSans-112"/> + <use x="649.455078" xlink:href="#DejaVuSans-97"/> + <use x="710.734375" xlink:href="#DejaVuSans-114"/> + <use x="751.847656" xlink:href="#DejaVuSans-105"/> + <use x="779.630859" xlink:href="#DejaVuSans-115"/> + <use x="831.730469" xlink:href="#DejaVuSans-111"/> + <use x="892.912109" xlink:href="#DejaVuSans-110"/> + <use x="956.291016" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_31"> + <path d="M 92.213125 79.419063 +L 144.213125 79.419063 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_32"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="118.213125" xlink:href="#mfe51d5f693" y="79.419063"/> + </g> + </g> + <g id="text_16"> + <!-- Pairing links --> + <defs> + <path d="M 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 31.109375 +L 44.921875 54.6875 +L 56.390625 54.6875 +L 27.390625 29.109375 +L 57.625 0 +L 45.90625 0 +L 18.109375 26.703125 +L 18.109375 0 +L 9.078125 0 +z +" id="DejaVuSans-107"/> + </defs> + <g transform="translate(165.013125 88.519063)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-108"/> + <use x="400.1875" xlink:href="#DejaVuSans-105"/> + <use x="427.970703" xlink:href="#DejaVuSans-110"/> + <use x="491.349609" xlink:href="#DejaVuSans-107"/> + <use x="549.259766" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_33"> + <path d="M 92.213125 117.582187 +L 144.213125 117.582187 +" style="fill:none;stroke:#53fca1;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_34"> + <g> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="118.213125" xlink:href="#m1a26e1fe63" y="117.582187"/> + </g> + </g> + <g id="text_17"> + <!-- Smooth comparisons --> + <defs> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +z +" id="DejaVuSans-83"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-104"/> + </defs> + <g transform="translate(165.013125 126.682187)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-99"/> + <use x="472.607422" xlink:href="#DejaVuSans-111"/> + <use x="533.789062" xlink:href="#DejaVuSans-109"/> + <use x="631.201172" xlink:href="#DejaVuSans-112"/> + <use x="694.677734" xlink:href="#DejaVuSans-97"/> + <use x="755.957031" xlink:href="#DejaVuSans-114"/> + <use x="797.070312" xlink:href="#DejaVuSans-105"/> + <use x="824.853516" xlink:href="#DejaVuSans-115"/> + <use x="876.953125" xlink:href="#DejaVuSans-111"/> + <use x="938.134766" xlink:href="#DejaVuSans-110"/> + <use x="1001.513672" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_35"> + <path d="M 92.213125 155.745312 +L 144.213125 155.745312 +" style="fill:none;stroke:#53fca1;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_36"> + <g> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="118.213125" xlink:href="#md7b534b111" y="155.745312"/> + </g> + </g> + <g id="text_18"> + <!-- Smooth links --> + <g transform="translate(165.013125 164.845312)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-108"/> + <use x="445.410156" xlink:href="#DejaVuSans-105"/> + <use x="473.193359" xlink:href="#DejaVuSans-110"/> + <use x="536.572266" xlink:href="#DejaVuSans-107"/> + <use x="594.482422" xlink:href="#DejaVuSans-115"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p35bd1010cb"> + <rect height="997.92" width="892.8" x="68.813125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-dijkstra2-new.svg b/plots/paper-dijkstra2-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..0c0abd2a11bd17137d990c4c652c6c1751d97fb2 --- /dev/null +++ b/plots/paper-dijkstra2-new.svg @@ -0,0 +1,1539 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 968.813125 1067.839375" width="968.813125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 968.813125 1067.839375 +L 968.813125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +L 961.613125 7.2 +L 68.813125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="PolyCollection_1"> + <defs> + <path d="M 109.394943 -297.948337 +L 109.394943 -237.447718 +L 152.112647 -308.669449 +L 194.83035 -374.461969 +L 237.548053 -390.864529 +L 280.265757 -424.821164 +L 322.98346 -450.179216 +L 365.701163 -455.145424 +L 408.418867 -474.802619 +L 451.13657 -491.149299 +L 493.854273 -498.415119 +L 536.571977 -513.667605 +L 579.28968 -514.890827 +L 622.007383 -523.761748 +L 664.725087 -534.457698 +L 707.44279 -548.62473 +L 750.160493 -550.089689 +L 792.878197 -568.647346 +L 835.5959 -570.696587 +L 878.313603 -575.174278 +L 921.031307 -583.192156 +L 921.031307 -645.339576 +L 921.031307 -645.339576 +L 878.313603 -639.153307 +L 835.5959 -625.01599 +L 792.878197 -623.743644 +L 750.160493 -615.255735 +L 707.44279 -608.338774 +L 664.725087 -603.450659 +L 622.007383 -587.596159 +L 579.28968 -584.636707 +L 536.571977 -569.571045 +L 493.854273 -562.387451 +L 451.13657 -551.573139 +L 408.418867 -528.222736 +L 365.701163 -518.681525 +L 322.98346 -498.140507 +L 280.265757 -481.473375 +L 237.548053 -437.929745 +L 194.83035 -419.242827 +L 152.112647 -373.474061 +L 109.394943 -297.948337 +z +" id="m13e135a40e" style="stroke:#fe4d4e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m13e135a40e" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_2"> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m13e135a40e" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_3"> + <defs> + <path d="M 109.394943 -473.400129 +L 109.394943 -423.454938 +L 152.112647 -547.608019 +L 194.83035 -618.887195 +L 237.548053 -681.780474 +L 280.265757 -702.066516 +L 322.98346 -749.986359 +L 365.701163 -773.218705 +L 408.418867 -798.040983 +L 451.13657 -810.474228 +L 493.854273 -829.847357 +L 536.571977 -850.27971 +L 579.28968 -872.828651 +L 622.007383 -883.987495 +L 664.725087 -892.074801 +L 707.44279 -907.354813 +L 750.160493 -912.957442 +L 792.878197 -923.216939 +L 835.5959 -938.735133 +L 878.313603 -944.738076 +L 921.031307 -958.503286 +L 921.031307 -1015.279375 +L 921.031307 -1015.279375 +L 878.313603 -1012.348197 +L 835.5959 -1003.685255 +L 792.878197 -975.034614 +L 750.160493 -981.205167 +L 707.44279 -961.255676 +L 664.725087 -952.863902 +L 622.007383 -944.988182 +L 579.28968 -928.854746 +L 536.571977 -912.104721 +L 493.854273 -895.13006 +L 451.13657 -879.326255 +L 408.418867 -851.542957 +L 365.701163 -837.877022 +L 322.98346 -796.180999 +L 280.265757 -762.877407 +L 237.548053 -739.98326 +L 194.83035 -672.145982 +L 152.112647 -610.007645 +L 109.394943 -473.400129 +z +" id="m248d3e8500" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m248d3e8500" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_4"> + <defs> + <path d="M 109.394943 -127.645532 +L 109.394943 -108.079375 +L 152.112647 -183.2202 +L 194.83035 -222.902677 +L 237.548053 -252.053171 +L 280.265757 -272.100823 +L 322.98346 -291.180666 +L 365.701163 -304.170031 +L 408.418867 -318.013021 +L 451.13657 -328.029677 +L 493.854273 -338.327046 +L 536.571977 -347.661076 +L 579.28968 -356.883911 +L 622.007383 -362.138668 +L 664.725087 -370.736381 +L 707.44279 -374.640159 +L 750.160493 -381.252997 +L 792.878197 -386.193897 +L 835.5959 -392.364275 +L 878.313603 -396.940082 +L 921.031307 -402.619666 +L 921.031307 -407.400741 +L 921.031307 -407.400741 +L 878.313603 -402.87685 +L 835.5959 -397.726996 +L 792.878197 -391.331692 +L 750.160493 -386.088611 +L 707.44279 -380.540756 +L 664.725087 -374.604183 +L 622.007383 -366.706912 +L 579.28968 -361.733898 +L 536.571977 -353.30861 +L 493.854273 -342.756101 +L 451.13657 -334.230726 +L 408.418867 -323.939495 +L 365.701163 -311.483136 +L 322.98346 -297.898301 +L 280.265757 -279.162733 +L 237.548053 -262.243558 +L 194.83035 -231.076271 +L 152.112647 -193.16514 +L 109.394943 -127.645532 +z +" id="mc397cc52bd" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#mc397cc52bd" y="1067.839375"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p65dd5189cc)" d="M 236.693699 1005.12 +L 236.693699 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m47305c18bf" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="236.693699" xlink:href="#m47305c18bf" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 2000 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(211.243699 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p65dd5189cc)" d="M 407.564513 1005.12 +L 407.564513 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="407.564513" xlink:href="#m47305c18bf" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 4000 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(382.114513 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p65dd5189cc)" d="M 578.435326 1005.12 +L 578.435326 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="578.435326" xlink:href="#m47305c18bf" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 6000 --> + <defs> + <path d="M 33.015625 40.375 +Q 26.375 40.375 22.484375 35.828125 +Q 18.609375 31.296875 18.609375 23.390625 +Q 18.609375 15.53125 22.484375 10.953125 +Q 26.375 6.390625 33.015625 6.390625 +Q 39.65625 6.390625 43.53125 10.953125 +Q 47.40625 15.53125 47.40625 23.390625 +Q 47.40625 31.296875 43.53125 35.828125 +Q 39.65625 40.375 33.015625 40.375 +z +M 52.59375 71.296875 +L 52.59375 62.3125 +Q 48.875 64.0625 45.09375 64.984375 +Q 41.3125 65.921875 37.59375 65.921875 +Q 27.828125 65.921875 22.671875 59.328125 +Q 17.53125 52.734375 16.796875 39.40625 +Q 19.671875 43.65625 24.015625 45.921875 +Q 28.375 48.1875 33.59375 48.1875 +Q 44.578125 48.1875 50.953125 41.515625 +Q 57.328125 34.859375 57.328125 23.390625 +Q 57.328125 12.15625 50.6875 5.359375 +Q 44.046875 -1.421875 33.015625 -1.421875 +Q 20.359375 -1.421875 13.671875 8.265625 +Q 6.984375 17.96875 6.984375 36.375 +Q 6.984375 53.65625 15.1875 63.9375 +Q 23.390625 74.21875 37.203125 74.21875 +Q 40.921875 74.21875 44.703125 73.484375 +Q 48.484375 72.75 52.59375 71.296875 +z +" id="DejaVuSans-54"/> + </defs> + <g transform="translate(552.985326 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-54"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p65dd5189cc)" d="M 749.306139 1005.12 +L 749.306139 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="749.306139" xlink:href="#m47305c18bf" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 8000 --> + <defs> + <path d="M 31.78125 34.625 +Q 24.75 34.625 20.71875 30.859375 +Q 16.703125 27.09375 16.703125 20.515625 +Q 16.703125 13.921875 20.71875 10.15625 +Q 24.75 6.390625 31.78125 6.390625 +Q 38.8125 6.390625 42.859375 10.171875 +Q 46.921875 13.96875 46.921875 20.515625 +Q 46.921875 27.09375 42.890625 30.859375 +Q 38.875 34.625 31.78125 34.625 +z +M 21.921875 38.8125 +Q 15.578125 40.375 12.03125 44.71875 +Q 8.5 49.078125 8.5 55.328125 +Q 8.5 64.0625 14.71875 69.140625 +Q 20.953125 74.21875 31.78125 74.21875 +Q 42.671875 74.21875 48.875 69.140625 +Q 55.078125 64.0625 55.078125 55.328125 +Q 55.078125 49.078125 51.53125 44.71875 +Q 48 40.375 41.703125 38.8125 +Q 48.828125 37.15625 52.796875 32.3125 +Q 56.78125 27.484375 56.78125 20.515625 +Q 56.78125 9.90625 50.3125 4.234375 +Q 43.84375 -1.421875 31.78125 -1.421875 +Q 19.734375 -1.421875 13.25 4.234375 +Q 6.78125 9.90625 6.78125 20.515625 +Q 6.78125 27.484375 10.78125 32.3125 +Q 14.796875 37.15625 21.921875 38.8125 +z +M 18.3125 54.390625 +Q 18.3125 48.734375 21.84375 45.5625 +Q 25.390625 42.390625 31.78125 42.390625 +Q 38.140625 42.390625 41.71875 45.5625 +Q 45.3125 48.734375 45.3125 54.390625 +Q 45.3125 60.0625 41.71875 63.234375 +Q 38.140625 66.40625 31.78125 66.40625 +Q 25.390625 66.40625 21.84375 63.234375 +Q 18.3125 60.0625 18.3125 54.390625 +z +" id="DejaVuSans-56"/> + </defs> + <g transform="translate(723.856139 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-56"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p65dd5189cc)" d="M 920.176953 1005.12 +L 920.176953 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="920.176953" xlink:href="#m47305c18bf" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 10000 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(888.364453 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_6"> + <!-- Graph size --> + <defs> + <path d="M 59.515625 10.40625 +L 59.515625 29.984375 +L 43.40625 29.984375 +L 43.40625 38.09375 +L 69.28125 38.09375 +L 69.28125 6.78125 +Q 63.578125 2.734375 56.6875 0.65625 +Q 49.8125 -1.421875 42 -1.421875 +Q 24.90625 -1.421875 15.25 8.5625 +Q 5.609375 18.5625 5.609375 36.375 +Q 5.609375 54.25 15.25 64.234375 +Q 24.90625 74.21875 42 74.21875 +Q 49.125 74.21875 55.546875 72.453125 +Q 61.96875 70.703125 67.390625 67.28125 +L 67.390625 56.78125 +Q 61.921875 61.421875 55.765625 63.765625 +Q 49.609375 66.109375 42.828125 66.109375 +Q 29.4375 66.109375 22.71875 58.640625 +Q 16.015625 51.171875 16.015625 36.375 +Q 16.015625 21.625 22.71875 14.15625 +Q 29.4375 6.6875 42.828125 6.6875 +Q 48.046875 6.6875 52.140625 7.59375 +Q 56.25 8.5 59.515625 10.40625 +z +" id="DejaVuSans-71"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-104"/> + <path id="DejaVuSans-32"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 5.515625 54.6875 +L 48.1875 54.6875 +L 48.1875 46.484375 +L 14.40625 7.171875 +L 48.1875 7.171875 +L 48.1875 0 +L 4.296875 0 +L 4.296875 8.203125 +L 38.09375 47.515625 +L 5.515625 47.515625 +z +" id="DejaVuSans-122"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + </defs> + <g transform="translate(446.000313 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-71"/> + <use x="77.490234" xlink:href="#DejaVuSans-114"/> + <use x="118.603516" xlink:href="#DejaVuSans-97"/> + <use x="179.882812" xlink:href="#DejaVuSans-112"/> + <use x="243.359375" xlink:href="#DejaVuSans-104"/> + <use x="306.738281" xlink:href="#DejaVuSans-32"/> + <use x="338.525391" xlink:href="#DejaVuSans-115"/> + <use x="390.625" xlink:href="#DejaVuSans-105"/> + <use x="418.408203" xlink:href="#DejaVuSans-122"/> + <use x="470.898438" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_11"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 881.109196 +L 961.613125 881.109196 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="mea981df77e" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="881.109196"/> + </g> + </g> + <g id="text_7"> + <!-- 10 --> + <g transform="translate(36.363125 888.707634)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_13"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 749.809982 +L 961.613125 749.809982 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="749.809982"/> + </g> + </g> + <g id="text_8"> + <!-- 12 --> + <g transform="translate(36.363125 757.40842)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_15"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 618.510768 +L 961.613125 618.510768 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="618.510768"/> + </g> + </g> + <g id="text_9"> + <!-- 14 --> + <g transform="translate(36.363125 626.109206)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_17"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 487.211554 +L 961.613125 487.211554 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="487.211554"/> + </g> + </g> + <g id="text_10"> + <!-- 16 --> + <g transform="translate(36.363125 494.809992)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_19"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 355.91234 +L 961.613125 355.91234 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="355.91234"/> + </g> + </g> + <g id="text_11"> + <!-- 18 --> + <g transform="translate(36.363125 363.510778)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_21"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 224.613126 +L 961.613125 224.613126 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="224.613126"/> + </g> + </g> + <g id="text_12"> + <!-- 20 --> + <g transform="translate(36.363125 232.211563)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_23"> + <path clip-path="url(#p65dd5189cc)" d="M 68.813125 93.313912 +L 961.613125 93.313912 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#mea981df77e" y="93.313912"/> + </g> + </g> + <g id="text_13"> + <!-- 22 --> + <g transform="translate(36.363125 100.912349)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Avg. number of operations / size --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="DejaVuSans-65"/> + <path d="M 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 8.796875 +L 46.6875 54.6875 +L 56.203125 54.6875 +L 35.6875 0 +L 23.484375 0 +z +" id="DejaVuSans-118"/> + <path d="M 45.40625 27.984375 +Q 45.40625 37.75 41.375 43.109375 +Q 37.359375 48.484375 30.078125 48.484375 +Q 22.859375 48.484375 18.828125 43.109375 +Q 14.796875 37.75 14.796875 27.984375 +Q 14.796875 18.265625 18.828125 12.890625 +Q 22.859375 7.515625 30.078125 7.515625 +Q 37.359375 7.515625 41.375 12.890625 +Q 45.40625 18.265625 45.40625 27.984375 +z +M 54.390625 6.78125 +Q 54.390625 -7.171875 48.1875 -13.984375 +Q 42 -20.796875 29.203125 -20.796875 +Q 24.46875 -20.796875 20.265625 -20.09375 +Q 16.0625 -19.390625 12.109375 -17.921875 +L 12.109375 -9.1875 +Q 16.0625 -11.328125 19.921875 -12.34375 +Q 23.78125 -13.375 27.78125 -13.375 +Q 36.625 -13.375 41.015625 -8.765625 +Q 45.40625 -4.15625 45.40625 5.171875 +L 45.40625 9.625 +Q 42.625 4.78125 38.28125 2.390625 +Q 33.9375 0 27.875 0 +Q 17.828125 0 11.671875 7.65625 +Q 5.515625 15.328125 5.515625 27.984375 +Q 5.515625 40.671875 11.671875 48.328125 +Q 17.828125 56 27.875 56 +Q 33.9375 56 38.28125 53.609375 +Q 42.625 51.21875 45.40625 46.390625 +L 45.40625 54.6875 +L 54.390625 54.6875 +z +" id="DejaVuSans-103"/> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="DejaVuSans-46"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +M 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +z +" id="DejaVuSans-98"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 37.109375 75.984375 +L 37.109375 68.5 +L 28.515625 68.5 +Q 23.6875 68.5 21.796875 66.546875 +Q 19.921875 64.59375 19.921875 59.515625 +L 19.921875 54.6875 +L 34.71875 54.6875 +L 34.71875 47.703125 +L 19.921875 47.703125 +L 19.921875 0 +L 10.890625 0 +L 10.890625 47.703125 +L 2.296875 47.703125 +L 2.296875 54.6875 +L 10.890625 54.6875 +L 10.890625 58.5 +Q 10.890625 67.625 15.140625 71.796875 +Q 19.390625 75.984375 28.609375 75.984375 +z +" id="DejaVuSans-102"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 25.390625 72.90625 +L 33.6875 72.90625 +L 8.296875 -9.28125 +L 0 -9.28125 +z +" id="DejaVuSans-47"/> + </defs> + <g transform="translate(26.955938 717.06875)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-110"/> + <use x="312.142578" xlink:href="#DejaVuSans-117"/> + <use x="375.521484" xlink:href="#DejaVuSans-109"/> + <use x="472.933594" xlink:href="#DejaVuSans-98"/> + <use x="536.410156" xlink:href="#DejaVuSans-101"/> + <use x="597.933594" xlink:href="#DejaVuSans-114"/> + <use x="639.046875" xlink:href="#DejaVuSans-32"/> + <use x="670.833984" xlink:href="#DejaVuSans-111"/> + <use x="732.015625" xlink:href="#DejaVuSans-102"/> + <use x="767.220703" xlink:href="#DejaVuSans-32"/> + <use x="799.007812" xlink:href="#DejaVuSans-111"/> + <use x="860.189453" xlink:href="#DejaVuSans-112"/> + <use x="923.666016" xlink:href="#DejaVuSans-101"/> + <use x="985.189453" xlink:href="#DejaVuSans-114"/> + <use x="1026.302734" xlink:href="#DejaVuSans-97"/> + <use x="1087.582031" xlink:href="#DejaVuSans-116"/> + <use x="1126.791016" xlink:href="#DejaVuSans-105"/> + <use x="1154.574219" xlink:href="#DejaVuSans-111"/> + <use x="1215.755859" xlink:href="#DejaVuSans-110"/> + <use x="1279.134766" xlink:href="#DejaVuSans-115"/> + <use x="1331.234375" xlink:href="#DejaVuSans-32"/> + <use x="1363.021484" xlink:href="#DejaVuSans-47"/> + <use x="1396.712891" xlink:href="#DejaVuSans-32"/> + <use x="1428.5" xlink:href="#DejaVuSans-115"/> + <use x="1480.599609" xlink:href="#DejaVuSans-105"/> + <use x="1508.382812" xlink:href="#DejaVuSans-122"/> + <use x="1560.873047" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="line2d_25"> + <path clip-path="url(#p65dd5189cc)" d="M 109.394943 803.4367 +L 152.112647 732.045589 +L 194.83035 671.695645 +L 237.548053 655.764471 +L 280.265757 613.269262 +L 322.98346 592.975034 +L 365.701163 585.175357 +L 408.418867 565.192155 +L 451.13657 546.874092 +L 493.854273 543.611249 +L 536.571977 516.013979 +L 579.28968 511.659206 +L 622.007383 510.596327 +L 664.725087 501.157179 +L 707.44279 486.989517 +L 750.160493 478.957407 +L 792.878197 470.800695 +L 835.5959 467.48024 +L 878.313603 472.033448 +L 921.031307 460.284722 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 4.5 +C 1.193414 4.5 2.338109 4.025852 3.181981 3.181981 +C 4.025852 2.338109 4.5 1.193414 4.5 0 +C 4.5 -1.193414 4.025852 -2.338109 3.181981 -3.181981 +C 2.338109 -4.025852 1.193414 -4.5 0 -4.5 +C -1.193414 -4.5 -2.338109 -4.025852 -3.181981 -3.181981 +C -4.025852 -2.338109 -4.5 -1.193414 -4.5 0 +C -4.5 1.193414 -4.025852 2.338109 -3.181981 3.181981 +C -2.338109 4.025852 -1.193414 4.5 0 4.5 +z +" id="m6c43c69ac6" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#m6c43c69ac6" y="803.4367"/> + <use style="fill:#fe0002;stroke:#000000;" x="152.112647" xlink:href="#m6c43c69ac6" y="732.045589"/> + <use style="fill:#fe0002;stroke:#000000;" x="194.83035" xlink:href="#m6c43c69ac6" y="671.695645"/> + <use style="fill:#fe0002;stroke:#000000;" x="237.548053" xlink:href="#m6c43c69ac6" y="655.764471"/> + <use style="fill:#fe0002;stroke:#000000;" x="280.265757" xlink:href="#m6c43c69ac6" y="613.269262"/> + <use style="fill:#fe0002;stroke:#000000;" x="322.98346" xlink:href="#m6c43c69ac6" y="592.975034"/> + <use style="fill:#fe0002;stroke:#000000;" x="365.701163" xlink:href="#m6c43c69ac6" y="585.175357"/> + <use style="fill:#fe0002;stroke:#000000;" x="408.418867" xlink:href="#m6c43c69ac6" y="565.192155"/> + <use style="fill:#fe0002;stroke:#000000;" x="451.13657" xlink:href="#m6c43c69ac6" y="546.874092"/> + <use style="fill:#fe0002;stroke:#000000;" x="493.854273" xlink:href="#m6c43c69ac6" y="543.611249"/> + <use style="fill:#fe0002;stroke:#000000;" x="536.571977" xlink:href="#m6c43c69ac6" y="516.013979"/> + <use style="fill:#fe0002;stroke:#000000;" x="579.28968" xlink:href="#m6c43c69ac6" y="511.659206"/> + <use style="fill:#fe0002;stroke:#000000;" x="622.007383" xlink:href="#m6c43c69ac6" y="510.596327"/> + <use style="fill:#fe0002;stroke:#000000;" x="664.725087" xlink:href="#m6c43c69ac6" y="501.157179"/> + <use style="fill:#fe0002;stroke:#000000;" x="707.44279" xlink:href="#m6c43c69ac6" y="486.989517"/> + <use style="fill:#fe0002;stroke:#000000;" x="750.160493" xlink:href="#m6c43c69ac6" y="478.957407"/> + <use style="fill:#fe0002;stroke:#000000;" x="792.878197" xlink:href="#m6c43c69ac6" y="470.800695"/> + <use style="fill:#fe0002;stroke:#000000;" x="835.5959" xlink:href="#m6c43c69ac6" y="467.48024"/> + <use style="fill:#fe0002;stroke:#000000;" x="878.313603" xlink:href="#m6c43c69ac6" y="472.033448"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#m6c43c69ac6" y="460.284722"/> + </g> + </g> + <g id="line2d_26"> + <path clip-path="url(#p65dd5189cc)" d="M 109.394943 803.4367 +L 152.112647 732.045589 +L 194.83035 671.695645 +L 237.548053 655.764471 +L 280.265757 613.269262 +L 322.98346 592.975034 +L 365.701163 585.175357 +L 408.418867 565.192155 +L 451.13657 546.874092 +L 493.854273 543.611249 +L 536.571977 516.013979 +L 579.28968 511.659206 +L 622.007383 510.596327 +L 664.725087 501.157179 +L 707.44279 486.989517 +L 750.160493 478.957407 +L 792.878197 470.800695 +L 835.5959 467.48024 +L 878.313603 472.033448 +L 921.031307 460.284722 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#m6c43c69ac6" y="803.4367"/> + <use style="fill:#fe0002;stroke:#000000;" x="152.112647" xlink:href="#m6c43c69ac6" y="732.045589"/> + <use style="fill:#fe0002;stroke:#000000;" x="194.83035" xlink:href="#m6c43c69ac6" y="671.695645"/> + <use style="fill:#fe0002;stroke:#000000;" x="237.548053" xlink:href="#m6c43c69ac6" y="655.764471"/> + <use style="fill:#fe0002;stroke:#000000;" x="280.265757" xlink:href="#m6c43c69ac6" y="613.269262"/> + <use style="fill:#fe0002;stroke:#000000;" x="322.98346" xlink:href="#m6c43c69ac6" y="592.975034"/> + <use style="fill:#fe0002;stroke:#000000;" x="365.701163" xlink:href="#m6c43c69ac6" y="585.175357"/> + <use style="fill:#fe0002;stroke:#000000;" x="408.418867" xlink:href="#m6c43c69ac6" y="565.192155"/> + <use style="fill:#fe0002;stroke:#000000;" x="451.13657" xlink:href="#m6c43c69ac6" y="546.874092"/> + <use style="fill:#fe0002;stroke:#000000;" x="493.854273" xlink:href="#m6c43c69ac6" y="543.611249"/> + <use style="fill:#fe0002;stroke:#000000;" x="536.571977" xlink:href="#m6c43c69ac6" y="516.013979"/> + <use style="fill:#fe0002;stroke:#000000;" x="579.28968" xlink:href="#m6c43c69ac6" y="511.659206"/> + <use style="fill:#fe0002;stroke:#000000;" x="622.007383" xlink:href="#m6c43c69ac6" y="510.596327"/> + <use style="fill:#fe0002;stroke:#000000;" x="664.725087" xlink:href="#m6c43c69ac6" y="501.157179"/> + <use style="fill:#fe0002;stroke:#000000;" x="707.44279" xlink:href="#m6c43c69ac6" y="486.989517"/> + <use style="fill:#fe0002;stroke:#000000;" x="750.160493" xlink:href="#m6c43c69ac6" y="478.957407"/> + <use style="fill:#fe0002;stroke:#000000;" x="792.878197" xlink:href="#m6c43c69ac6" y="470.800695"/> + <use style="fill:#fe0002;stroke:#000000;" x="835.5959" xlink:href="#m6c43c69ac6" y="467.48024"/> + <use style="fill:#fe0002;stroke:#000000;" x="878.313603" xlink:href="#m6c43c69ac6" y="472.033448"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#m6c43c69ac6" y="460.284722"/> + </g> + </g> + <g id="line2d_27"> + <path clip-path="url(#p65dd5189cc)" d="M 109.394943 618.060232 +L 152.112647 486.061061 +L 194.83035 423.848814 +L 237.548053 355.922138 +L 280.265757 332.317714 +L 322.98346 297.181024 +L 365.701163 257.265856 +L 408.418867 239.530812 +L 451.13657 223.206973 +L 493.854273 194.17844 +L 536.571977 194.190312 +L 579.28968 172.819846 +L 622.007383 152.29368 +L 664.725087 138.874365 +L 707.44279 136.820982 +L 750.160493 126.064952 +L 792.878197 114.904224 +L 835.5959 99.641339 +L 878.313603 80.754887 +L 921.031307 78.278775 +" style="fill:none;stroke:#53fca1;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 -4.5 +L -4.5 4.5 +L 4.5 4.5 +z +" id="m3352ae4cfa" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m3352ae4cfa" y="618.060232"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="152.112647" xlink:href="#m3352ae4cfa" y="486.061061"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="194.83035" xlink:href="#m3352ae4cfa" y="423.848814"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="237.548053" xlink:href="#m3352ae4cfa" y="355.922138"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="280.265757" xlink:href="#m3352ae4cfa" y="332.317714"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="322.98346" xlink:href="#m3352ae4cfa" y="297.181024"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="365.701163" xlink:href="#m3352ae4cfa" y="257.265856"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="408.418867" xlink:href="#m3352ae4cfa" y="239.530812"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="451.13657" xlink:href="#m3352ae4cfa" y="223.206973"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="493.854273" xlink:href="#m3352ae4cfa" y="194.17844"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="536.571977" xlink:href="#m3352ae4cfa" y="194.190312"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="579.28968" xlink:href="#m3352ae4cfa" y="172.819846"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="622.007383" xlink:href="#m3352ae4cfa" y="152.29368"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="664.725087" xlink:href="#m3352ae4cfa" y="138.874365"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="707.44279" xlink:href="#m3352ae4cfa" y="136.820982"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="750.160493" xlink:href="#m3352ae4cfa" y="126.064952"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="792.878197" xlink:href="#m3352ae4cfa" y="114.904224"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="835.5959" xlink:href="#m3352ae4cfa" y="99.641339"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="878.313603" xlink:href="#m3352ae4cfa" y="80.754887"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m3352ae4cfa" y="78.278775"/> + </g> + </g> + <g id="line2d_28"> + <path clip-path="url(#p65dd5189cc)" d="M 109.394943 948.805526 +L 152.112647 878.665211 +L 194.83035 840.484698 +L 237.548053 812.980582 +L 280.265757 792.775165 +L 322.98346 773.928034 +L 365.701163 758.91302 +L 408.418867 746.555333 +L 451.13657 736.873662 +L 493.854273 726.865379 +L 536.571977 717.524911 +L 579.28968 709.186967 +L 622.007383 703.344985 +L 664.725087 695.485635 +L 707.44279 691.110842 +L 750.160493 684.181685 +L 792.878197 678.555858 +L 835.5959 672.345632 +L 878.313603 667.980612 +L 921.031307 663.166929 +" style="fill:none;stroke:#53fca1;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <defs> + <path d="M -0 6.363961 +L 6.363961 0 +L 0 -6.363961 +L -6.363961 -0 +z +" id="m3254b320ea" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p65dd5189cc)"> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m3254b320ea" y="948.805526"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="152.112647" xlink:href="#m3254b320ea" y="878.665211"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="194.83035" xlink:href="#m3254b320ea" y="840.484698"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="237.548053" xlink:href="#m3254b320ea" y="812.980582"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="280.265757" xlink:href="#m3254b320ea" y="792.775165"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="322.98346" xlink:href="#m3254b320ea" y="773.928034"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="365.701163" xlink:href="#m3254b320ea" y="758.91302"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="408.418867" xlink:href="#m3254b320ea" y="746.555333"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="451.13657" xlink:href="#m3254b320ea" y="736.873662"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="493.854273" xlink:href="#m3254b320ea" y="726.865379"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="536.571977" xlink:href="#m3254b320ea" y="717.524911"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="579.28968" xlink:href="#m3254b320ea" y="709.186967"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="622.007383" xlink:href="#m3254b320ea" y="703.344985"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="664.725087" xlink:href="#m3254b320ea" y="695.485635"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="707.44279" xlink:href="#m3254b320ea" y="691.110842"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="750.160493" xlink:href="#m3254b320ea" y="684.181685"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="792.878197" xlink:href="#m3254b320ea" y="678.555858"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="835.5959" xlink:href="#m3254b320ea" y="672.345632"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="878.313603" xlink:href="#m3254b320ea" y="667.980612"/> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m3254b320ea" y="663.166929"/> + </g> + </g> + <g id="patch_3"> + <path d="M 68.813125 1005.12 +L 68.813125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 961.613125 1005.12 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 68.813125 7.2 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 87.013125 180.6525 +L 444.151563 180.6525 +Q 449.351563 180.6525 449.351563 175.4525 +L 449.351563 25.4 +Q 449.351563 20.2 444.151563 20.2 +L 87.013125 20.2 +Q 81.813125 20.2 81.813125 25.4 +L 81.813125 175.4525 +Q 81.813125 180.6525 87.013125 180.6525 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_29"> + <path d="M 92.213125 41.255937 +L 144.213125 41.255937 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_30"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="118.213125" xlink:href="#m6c43c69ac6" y="41.255937"/> + </g> + </g> + <g id="text_15"> + <!-- Pairing comparisons --> + <defs> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-80"/> + <path d="M 48.78125 52.59375 +L 48.78125 44.1875 +Q 44.96875 46.296875 41.140625 47.34375 +Q 37.3125 48.390625 33.40625 48.390625 +Q 24.65625 48.390625 19.8125 42.84375 +Q 14.984375 37.3125 14.984375 27.296875 +Q 14.984375 17.28125 19.8125 11.734375 +Q 24.65625 6.203125 33.40625 6.203125 +Q 37.3125 6.203125 41.140625 7.25 +Q 44.96875 8.296875 48.78125 10.40625 +L 48.78125 2.09375 +Q 45.015625 0.34375 40.984375 -0.53125 +Q 36.96875 -1.421875 32.421875 -1.421875 +Q 20.0625 -1.421875 12.78125 6.34375 +Q 5.515625 14.109375 5.515625 27.296875 +Q 5.515625 40.671875 12.859375 48.328125 +Q 20.21875 56 33.015625 56 +Q 37.15625 56 41.109375 55.140625 +Q 45.0625 54.296875 48.78125 52.59375 +z +" id="DejaVuSans-99"/> + </defs> + <g transform="translate(165.013125 50.355937)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-99"/> + <use x="427.384766" xlink:href="#DejaVuSans-111"/> + <use x="488.566406" xlink:href="#DejaVuSans-109"/> + <use x="585.978516" xlink:href="#DejaVuSans-112"/> + <use x="649.455078" xlink:href="#DejaVuSans-97"/> + <use x="710.734375" xlink:href="#DejaVuSans-114"/> + <use x="751.847656" xlink:href="#DejaVuSans-105"/> + <use x="779.630859" xlink:href="#DejaVuSans-115"/> + <use x="831.730469" xlink:href="#DejaVuSans-111"/> + <use x="892.912109" xlink:href="#DejaVuSans-110"/> + <use x="956.291016" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_31"> + <path d="M 92.213125 79.419063 +L 144.213125 79.419063 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_32"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="118.213125" xlink:href="#m6c43c69ac6" y="79.419063"/> + </g> + </g> + <g id="text_16"> + <!-- Pairing links --> + <defs> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + <path d="M 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 31.109375 +L 44.921875 54.6875 +L 56.390625 54.6875 +L 27.390625 29.109375 +L 57.625 0 +L 45.90625 0 +L 18.109375 26.703125 +L 18.109375 0 +L 9.078125 0 +z +" id="DejaVuSans-107"/> + </defs> + <g transform="translate(165.013125 88.519063)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-108"/> + <use x="400.1875" xlink:href="#DejaVuSans-105"/> + <use x="427.970703" xlink:href="#DejaVuSans-110"/> + <use x="491.349609" xlink:href="#DejaVuSans-107"/> + <use x="549.259766" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_33"> + <path d="M 92.213125 117.582187 +L 144.213125 117.582187 +" style="fill:none;stroke:#53fca1;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_34"> + <g> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="118.213125" xlink:href="#m3352ae4cfa" y="117.582187"/> + </g> + </g> + <g id="text_17"> + <!-- Smooth comparisons --> + <defs> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +z +" id="DejaVuSans-83"/> + </defs> + <g transform="translate(165.013125 126.682187)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-99"/> + <use x="472.607422" xlink:href="#DejaVuSans-111"/> + <use x="533.789062" xlink:href="#DejaVuSans-109"/> + <use x="631.201172" xlink:href="#DejaVuSans-112"/> + <use x="694.677734" xlink:href="#DejaVuSans-97"/> + <use x="755.957031" xlink:href="#DejaVuSans-114"/> + <use x="797.070312" xlink:href="#DejaVuSans-105"/> + <use x="824.853516" xlink:href="#DejaVuSans-115"/> + <use x="876.953125" xlink:href="#DejaVuSans-111"/> + <use x="938.134766" xlink:href="#DejaVuSans-110"/> + <use x="1001.513672" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_35"> + <path d="M 92.213125 155.745312 +L 144.213125 155.745312 +" style="fill:none;stroke:#53fca1;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_36"> + <g> + <use style="fill:#53fca1;stroke:#000000;stroke-linejoin:miter;" x="118.213125" xlink:href="#m3254b320ea" y="155.745312"/> + </g> + </g> + <g id="text_18"> + <!-- Smooth links --> + <g transform="translate(165.013125 164.845312)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-108"/> + <use x="445.410156" xlink:href="#DejaVuSans-105"/> + <use x="473.193359" xlink:href="#DejaVuSans-110"/> + <use x="536.572266" xlink:href="#DejaVuSans-107"/> + <use x="594.482422" xlink:href="#DejaVuSans-115"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p65dd5189cc"> + <rect height="997.92" width="892.8" x="68.813125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-permutation-localized.pdf b/plots/paper-permutation-localized.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8d505533bfe44e09607a7d2ccd91142fd5e6d16f Binary files /dev/null and b/plots/paper-permutation-localized.pdf differ diff --git a/plots/paper-permutation-localized.svg b/plots/paper-permutation-localized.svg new file mode 100644 index 0000000000000000000000000000000000000000..da6e58d4555ed1b913ea1bcee31f203b345d9d79 --- /dev/null +++ b/plots/paper-permutation-localized.svg @@ -0,0 +1,1427 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 981.538125 1067.839375" width="981.538125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 981.538125 1067.839375 +L 981.538125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +L 974.338125 7.2 +L 81.538125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p14d06b49f5)" d="M 122.119943 1005.12 +L 122.119943 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m2dd20174dd" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="122.119943" xlink:href="#m2dd20174dd" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(115.757443 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p14d06b49f5)" d="M 280.952891 1005.12 +L 280.952891 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="280.952891" xlink:href="#m2dd20174dd" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 100 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(261.865391 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p14d06b49f5)" d="M 439.785839 1005.12 +L 439.785839 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="439.785839" xlink:href="#m2dd20174dd" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 200 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(420.698339 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p14d06b49f5)" d="M 598.618787 1005.12 +L 598.618787 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="598.618787" xlink:href="#m2dd20174dd" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 300 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +z +" id="DejaVuSans-51"/> + </defs> + <g transform="translate(579.531287 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p14d06b49f5)" d="M 757.451735 1005.12 +L 757.451735 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="757.451735" xlink:href="#m2dd20174dd" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 400 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(738.364235 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#p14d06b49f5)" d="M 916.284683 1005.12 +L 916.284683 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="916.284683" xlink:href="#m2dd20174dd" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 500 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(897.197183 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_7"> + <!-- Index in sorted list --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-73"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 45.40625 46.390625 +L 45.40625 75.984375 +L 54.390625 75.984375 +L 54.390625 0 +L 45.40625 0 +L 45.40625 8.203125 +Q 42.578125 3.328125 38.25 0.953125 +Q 33.9375 -1.421875 27.875 -1.421875 +Q 17.96875 -1.421875 11.734375 6.484375 +Q 5.515625 14.40625 5.515625 27.296875 +Q 5.515625 40.1875 11.734375 48.09375 +Q 17.96875 56 27.875 56 +Q 33.9375 56 38.25 53.625 +Q 42.578125 51.265625 45.40625 46.390625 +z +M 14.796875 27.296875 +Q 14.796875 17.390625 18.875 11.75 +Q 22.953125 6.109375 30.078125 6.109375 +Q 37.203125 6.109375 41.296875 11.75 +Q 45.40625 17.390625 45.40625 27.296875 +Q 45.40625 37.203125 41.296875 42.84375 +Q 37.203125 48.484375 30.078125 48.484375 +Q 22.953125 48.484375 18.875 42.84375 +Q 14.796875 37.203125 14.796875 27.296875 +z +" id="DejaVuSans-100"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + <path d="M 54.890625 54.6875 +L 35.109375 28.078125 +L 55.90625 0 +L 45.3125 0 +L 29.390625 21.484375 +L 13.484375 0 +L 2.875 0 +L 24.125 28.609375 +L 4.6875 54.6875 +L 15.28125 54.6875 +L 29.78125 35.203125 +L 44.28125 54.6875 +z +" id="DejaVuSans-120"/> + <path id="DejaVuSans-32"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + </defs> + <g transform="translate(407.389531 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-115"/> + <use x="482.136719" xlink:href="#DejaVuSans-111"/> + <use x="543.318359" xlink:href="#DejaVuSans-114"/> + <use x="584.431641" xlink:href="#DejaVuSans-116"/> + <use x="623.640625" xlink:href="#DejaVuSans-101"/> + <use x="685.164062" xlink:href="#DejaVuSans-100"/> + <use x="748.640625" xlink:href="#DejaVuSans-32"/> + <use x="780.427734" xlink:href="#DejaVuSans-108"/> + <use x="808.210938" xlink:href="#DejaVuSans-105"/> + <use x="835.994141" xlink:href="#DejaVuSans-115"/> + <use x="888.09375" xlink:href="#DejaVuSans-116"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_13"> + <path clip-path="url(#p14d06b49f5)" d="M 81.538125 959.76 +L 974.338125 959.76 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m17bf04ec07" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m17bf04ec07" y="959.76"/> + </g> + </g> + <g id="text_8"> + <!-- 0 --> + <g transform="translate(61.813125 967.358438)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_15"> + <path clip-path="url(#p14d06b49f5)" d="M 81.538125 782.225753 +L 974.338125 782.225753 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m17bf04ec07" y="782.225753"/> + </g> + </g> + <g id="text_9"> + <!-- 100 --> + <g transform="translate(36.363125 789.824191)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_17"> + <path clip-path="url(#p14d06b49f5)" d="M 81.538125 604.691507 +L 974.338125 604.691507 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m17bf04ec07" y="604.691507"/> + </g> + </g> + <g id="text_10"> + <!-- 200 --> + <g transform="translate(36.363125 612.289944)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_19"> + <path clip-path="url(#p14d06b49f5)" d="M 81.538125 427.15726 +L 974.338125 427.15726 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m17bf04ec07" y="427.15726"/> + </g> + </g> + <g id="text_11"> + <!-- 300 --> + <g transform="translate(36.363125 434.755698)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_21"> + <path clip-path="url(#p14d06b49f5)" d="M 81.538125 249.623014 +L 974.338125 249.623014 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m17bf04ec07" y="249.623014"/> + </g> + </g> + <g id="text_12"> + <!-- 400 --> + <g transform="translate(36.363125 257.221451)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_23"> + <path clip-path="url(#p14d06b49f5)" d="M 81.538125 72.088767 +L 974.338125 72.088767 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m17bf04ec07" y="72.088767"/> + </g> + </g> + <g id="text_13"> + <!-- 500 --> + <g transform="translate(36.363125 79.687205)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Index in permutation --> + <defs> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + </defs> + <g transform="translate(26.955938 642.300469)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-112"/> + <use x="493.513672" xlink:href="#DejaVuSans-101"/> + <use x="555.037109" xlink:href="#DejaVuSans-114"/> + <use x="594.400391" xlink:href="#DejaVuSans-109"/> + <use x="691.8125" xlink:href="#DejaVuSans-117"/> + <use x="755.191406" xlink:href="#DejaVuSans-116"/> + <use x="794.400391" xlink:href="#DejaVuSans-97"/> + <use x="855.679688" xlink:href="#DejaVuSans-116"/> + <use x="894.888672" xlink:href="#DejaVuSans-105"/> + <use x="922.671875" xlink:href="#DejaVuSans-111"/> + <use x="983.853516" xlink:href="#DejaVuSans-110"/> + </g> + </g> + </g> + <g id="line2d_25"> + <defs> + <path d="M 0 3 +C 0.795609 3 1.55874 2.683901 2.12132 2.12132 +C 2.683901 1.55874 3 0.795609 3 0 +C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 +C 1.55874 -2.683901 0.795609 -3 0 -3 +C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 +C -2.683901 -1.55874 -3 -0.795609 -3 0 +C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 +C -1.55874 2.683901 -0.795609 3 0 3 +z +" id="m7fa192c7b8" style="stroke:#343837;"/> + </defs> + <g clip-path="url(#p14d06b49f5)"> + <use style="fill:#343837;stroke:#343837;" x="122.119943" xlink:href="#m7fa192c7b8" y="902.949041"/> + <use style="fill:#343837;stroke:#343837;" x="123.708273" xlink:href="#m7fa192c7b8" y="922.477808"/> + <use style="fill:#343837;stroke:#343837;" x="125.296602" xlink:href="#m7fa192c7b8" y="954.433973"/> + <use style="fill:#343837;stroke:#343837;" x="126.884932" xlink:href="#m7fa192c7b8" y="952.65863"/> + <use style="fill:#343837;stroke:#343837;" x="128.473261" xlink:href="#m7fa192c7b8" y="874.543562"/> + <use style="fill:#343837;stroke:#343837;" x="130.061591" xlink:href="#m7fa192c7b8" y="839.036712"/> + <use style="fill:#343837;stroke:#343837;" x="131.64992" xlink:href="#m7fa192c7b8" y="942.006575"/> + <use style="fill:#343837;stroke:#343837;" x="133.23825" xlink:href="#m7fa192c7b8" y="819.507945"/> + <use style="fill:#343837;stroke:#343837;" x="134.826579" xlink:href="#m7fa192c7b8" y="956.209315"/> + <use style="fill:#343837;stroke:#343837;" x="136.414908" xlink:href="#m7fa192c7b8" y="654.401096"/> + <use style="fill:#343837;stroke:#343837;" x="138.003238" xlink:href="#m7fa192c7b8" y="943.781918"/> + <use style="fill:#343837;stroke:#343837;" x="139.591567" xlink:href="#m7fa192c7b8" y="929.579178"/> + <use style="fill:#343837;stroke:#343837;" x="141.179897" xlink:href="#m7fa192c7b8" y="828.384658"/> + <use style="fill:#343837;stroke:#343837;" x="142.768226" xlink:href="#m7fa192c7b8" y="769.798356"/> + <use style="fill:#343837;stroke:#343837;" x="144.356556" xlink:href="#m7fa192c7b8" y="906.499726"/> + <use style="fill:#343837;stroke:#343837;" x="145.944885" xlink:href="#m7fa192c7b8" y="947.332603"/> + <use style="fill:#343837;stroke:#343837;" x="147.533215" xlink:href="#m7fa192c7b8" y="760.921644"/> + <use style="fill:#343837;stroke:#343837;" x="149.121544" xlink:href="#m7fa192c7b8" y="920.702466"/> + <use style="fill:#343837;stroke:#343837;" x="150.709874" xlink:href="#m7fa192c7b8" y="835.486027"/> + <use style="fill:#343837;stroke:#343837;" x="152.298203" xlink:href="#m7fa192c7b8" y="787.551781"/> + <use style="fill:#343837;stroke:#343837;" x="153.886533" xlink:href="#m7fa192c7b8" y="865.666849"/> + <use style="fill:#343837;stroke:#343837;" x="155.474862" xlink:href="#m7fa192c7b8" y="938.45589"/> + <use style="fill:#343837;stroke:#343837;" x="157.063192" xlink:href="#m7fa192c7b8" y="908.275068"/> + <use style="fill:#343837;stroke:#343837;" x="158.651521" xlink:href="#m7fa192c7b8" y="890.521644"/> + <use style="fill:#343837;stroke:#343837;" x="160.239851" xlink:href="#m7fa192c7b8" y="817.732603"/> + <use style="fill:#343837;stroke:#343837;" x="161.82818" xlink:href="#m7fa192c7b8" y="901.173699"/> + <use style="fill:#343837;stroke:#343837;" x="163.41651" xlink:href="#m7fa192c7b8" y="949.107945"/> + <use style="fill:#343837;stroke:#343837;" x="165.004839" xlink:href="#m7fa192c7b8" y="815.95726"/> + <use style="fill:#343837;stroke:#343837;" x="166.593169" xlink:href="#m7fa192c7b8" y="879.869589"/> + <use style="fill:#343837;stroke:#343837;" x="168.181498" xlink:href="#m7fa192c7b8" y="824.833973"/> + <use style="fill:#343837;stroke:#343837;" x="169.769828" xlink:href="#m7fa192c7b8" y="959.76"/> + <use style="fill:#343837;stroke:#343837;" x="171.358157" xlink:href="#m7fa192c7b8" y="926.028493"/> + <use style="fill:#343837;stroke:#343837;" x="172.946487" xlink:href="#m7fa192c7b8" y="934.905205"/> + <use style="fill:#343837;stroke:#343837;" x="174.534816" xlink:href="#m7fa192c7b8" y="940.231233"/> + <use style="fill:#343837;stroke:#343837;" x="176.123145" xlink:href="#m7fa192c7b8" y="830.16"/> + <use style="fill:#343837;stroke:#343837;" x="177.711475" xlink:href="#m7fa192c7b8" y="856.790137"/> + <use style="fill:#343837;stroke:#343837;" x="179.299804" xlink:href="#m7fa192c7b8" y="807.080548"/> + <use style="fill:#343837;stroke:#343837;" x="180.888134" xlink:href="#m7fa192c7b8" y="636.647671"/> + <use style="fill:#343837;stroke:#343837;" x="182.476463" xlink:href="#m7fa192c7b8" y="860.340822"/> + <use style="fill:#343837;stroke:#343837;" x="184.064793" xlink:href="#m7fa192c7b8" y="881.644932"/> + <use style="fill:#343837;stroke:#343837;" x="185.653122" xlink:href="#m7fa192c7b8" y="744.943562"/> + <use style="fill:#343837;stroke:#343837;" x="187.241452" xlink:href="#m7fa192c7b8" y="910.050411"/> + <use style="fill:#343837;stroke:#343837;" x="188.829781" xlink:href="#m7fa192c7b8" y="878.094247"/> + <use style="fill:#343837;stroke:#343837;" x="190.418111" xlink:href="#m7fa192c7b8" y="917.151781"/> + <use style="fill:#343837;stroke:#343837;" x="192.00644" xlink:href="#m7fa192c7b8" y="913.601096"/> + <use style="fill:#343837;stroke:#343837;" x="193.59477" xlink:href="#m7fa192c7b8" y="950.883288"/> + <use style="fill:#343837;stroke:#343837;" x="195.183099" xlink:href="#m7fa192c7b8" y="936.680548"/> + <use style="fill:#343837;stroke:#343837;" x="196.771429" xlink:href="#m7fa192c7b8" y="826.609315"/> + <use style="fill:#343837;stroke:#343837;" x="198.359758" xlink:href="#m7fa192c7b8" y="915.376438"/> + <use style="fill:#343837;stroke:#343837;" x="199.948088" xlink:href="#m7fa192c7b8" y="924.253151"/> + <use style="fill:#343837;stroke:#343837;" x="201.536417" xlink:href="#m7fa192c7b8" y="799.979178"/> + <use style="fill:#343837;stroke:#343837;" x="203.124747" xlink:href="#m7fa192c7b8" y="897.623014"/> + <use style="fill:#343837;stroke:#343837;" x="204.713076" xlink:href="#m7fa192c7b8" y="931.354521"/> + <use style="fill:#343837;stroke:#343837;" x="206.301406" xlink:href="#m7fa192c7b8" y="791.102466"/> + <use style="fill:#343837;stroke:#343837;" x="207.889735" xlink:href="#m7fa192c7b8" y="784.001096"/> + <use style="fill:#343837;stroke:#343837;" x="209.478065" xlink:href="#m7fa192c7b8" y="844.36274"/> + <use style="fill:#343837;stroke:#343837;" x="211.066394" xlink:href="#m7fa192c7b8" y="876.318904"/> + <use style="fill:#343837;stroke:#343837;" x="212.654723" xlink:href="#m7fa192c7b8" y="810.631233"/> + <use style="fill:#343837;stroke:#343837;" x="214.243053" xlink:href="#m7fa192c7b8" y="663.277808"/> + <use style="fill:#343837;stroke:#343837;" x="215.831382" xlink:href="#m7fa192c7b8" y="870.992877"/> + <use style="fill:#343837;stroke:#343837;" x="217.419712" xlink:href="#m7fa192c7b8" y="899.398356"/> + <use style="fill:#343837;stroke:#343837;" x="219.008041" xlink:href="#m7fa192c7b8" y="473.316164"/> + <use style="fill:#343837;stroke:#343837;" x="220.596371" xlink:href="#m7fa192c7b8" y="736.066849"/> + <use style="fill:#343837;stroke:#343837;" x="222.1847" xlink:href="#m7fa192c7b8" y="768.023014"/> + <use style="fill:#343837;stroke:#343837;" x="223.77303" xlink:href="#m7fa192c7b8" y="855.014795"/> + <use style="fill:#343837;stroke:#343837;" x="225.361359" xlink:href="#m7fa192c7b8" y="746.718904"/> + <use style="fill:#343837;stroke:#343837;" x="226.949689" xlink:href="#m7fa192c7b8" y="849.688767"/> + <use style="fill:#343837;stroke:#343837;" x="228.538018" xlink:href="#m7fa192c7b8" y="762.696986"/> + <use style="fill:#343837;stroke:#343837;" x="230.126348" xlink:href="#m7fa192c7b8" y="808.85589"/> + <use style="fill:#343837;stroke:#343837;" x="231.714677" xlink:href="#m7fa192c7b8" y="672.154521"/> + <use style="fill:#343837;stroke:#343837;" x="233.303007" xlink:href="#m7fa192c7b8" y="823.05863"/> + <use style="fill:#343837;stroke:#343837;" x="234.891336" xlink:href="#m7fa192c7b8" y="886.970959"/> + <use style="fill:#343837;stroke:#343837;" x="236.479666" xlink:href="#m7fa192c7b8" y="652.625753"/> + <use style="fill:#343837;stroke:#343837;" x="238.067995" xlink:href="#m7fa192c7b8" y="412.954521"/> + <use style="fill:#343837;stroke:#343837;" x="239.656325" xlink:href="#m7fa192c7b8" y="918.927123"/> + <use style="fill:#343837;stroke:#343837;" x="241.244654" xlink:href="#m7fa192c7b8" y="794.653151"/> + <use style="fill:#343837;stroke:#343837;" x="242.832984" xlink:href="#m7fa192c7b8" y="853.239452"/> + <use style="fill:#343837;stroke:#343837;" x="244.421313" xlink:href="#m7fa192c7b8" y="933.129863"/> + <use style="fill:#343837;stroke:#343837;" x="246.009643" xlink:href="#m7fa192c7b8" y="693.45863"/> + <use style="fill:#343837;stroke:#343837;" x="247.597972" xlink:href="#m7fa192c7b8" y="725.414795"/> + <use style="fill:#343837;stroke:#343837;" x="249.186301" xlink:href="#m7fa192c7b8" y="894.072329"/> + <use style="fill:#343837;stroke:#343837;" x="250.774631" xlink:href="#m7fa192c7b8" y="885.195616"/> + <use style="fill:#343837;stroke:#343837;" x="252.36296" xlink:href="#m7fa192c7b8" y="766.247671"/> + <use style="fill:#343837;stroke:#343837;" x="253.95129" xlink:href="#m7fa192c7b8" y="883.420274"/> + <use style="fill:#343837;stroke:#343837;" x="255.539619" xlink:href="#m7fa192c7b8" y="638.423014"/> + <use style="fill:#343837;stroke:#343837;" x="257.127949" xlink:href="#m7fa192c7b8" y="773.349041"/> + <use style="fill:#343837;stroke:#343837;" x="258.716278" xlink:href="#m7fa192c7b8" y="803.529863"/> + <use style="fill:#343837;stroke:#343837;" x="260.304608" xlink:href="#m7fa192c7b8" y="469.765479"/> + <use style="fill:#343837;stroke:#343837;" x="261.892937" xlink:href="#m7fa192c7b8" y="782.225753"/> + <use style="fill:#343837;stroke:#343837;" x="263.481267" xlink:href="#m7fa192c7b8" y="869.217534"/> + <use style="fill:#343837;stroke:#343837;" x="265.069596" xlink:href="#m7fa192c7b8" y="764.472329"/> + <use style="fill:#343837;stroke:#343837;" x="266.657926" xlink:href="#m7fa192c7b8" y="748.494247"/> + <use style="fill:#343837;stroke:#343837;" x="268.246255" xlink:href="#m7fa192c7b8" y="565.633973"/> + <use style="fill:#343837;stroke:#343837;" x="269.834585" xlink:href="#m7fa192c7b8" y="707.66137"/> + <use style="fill:#343837;stroke:#343837;" x="271.422914" xlink:href="#m7fa192c7b8" y="727.190137"/> + <use style="fill:#343837;stroke:#343837;" x="273.011244" xlink:href="#m7fa192c7b8" y="911.825753"/> + <use style="fill:#343837;stroke:#343837;" x="274.599573" xlink:href="#m7fa192c7b8" y="892.296986"/> + <use style="fill:#343837;stroke:#343837;" x="276.187903" xlink:href="#m7fa192c7b8" y="872.768219"/> + <use style="fill:#343837;stroke:#343837;" x="277.776232" xlink:href="#m7fa192c7b8" y="945.55726"/> + <use style="fill:#343837;stroke:#343837;" x="279.364562" xlink:href="#m7fa192c7b8" y="798.203836"/> + <use style="fill:#343837;stroke:#343837;" x="280.952891" xlink:href="#m7fa192c7b8" y="814.181918"/> + <use style="fill:#343837;stroke:#343837;" x="282.541221" xlink:href="#m7fa192c7b8" y="846.138082"/> + <use style="fill:#343837;stroke:#343837;" x="284.12955" xlink:href="#m7fa192c7b8" y="700.56"/> + <use style="fill:#343837;stroke:#343837;" x="285.717879" xlink:href="#m7fa192c7b8" y="851.46411"/> + <use style="fill:#343837;stroke:#343837;" x="287.306209" xlink:href="#m7fa192c7b8" y="888.746301"/> + <use style="fill:#343837;stroke:#343837;" x="288.894538" xlink:href="#m7fa192c7b8" y="757.370959"/> + <use style="fill:#343837;stroke:#343837;" x="290.482868" xlink:href="#m7fa192c7b8" y="709.436712"/> + <use style="fill:#343837;stroke:#343837;" x="292.071197" xlink:href="#m7fa192c7b8" y="812.406575"/> + <use style="fill:#343837;stroke:#343837;" x="293.659527" xlink:href="#m7fa192c7b8" y="867.442192"/> + <use style="fill:#343837;stroke:#343837;" x="295.247856" xlink:href="#m7fa192c7b8" y="739.617534"/> + <use style="fill:#343837;stroke:#343837;" x="296.836186" xlink:href="#m7fa192c7b8" y="833.710685"/> + <use style="fill:#343837;stroke:#343837;" x="298.424515" xlink:href="#m7fa192c7b8" y="689.907945"/> + <use style="fill:#343837;stroke:#343837;" x="300.012845" xlink:href="#m7fa192c7b8" y="904.724384"/> + <use style="fill:#343837;stroke:#343837;" x="301.601174" xlink:href="#m7fa192c7b8" y="563.85863"/> + <use style="fill:#343837;stroke:#343837;" x="303.189504" xlink:href="#m7fa192c7b8" y="755.595616"/> + <use style="fill:#343837;stroke:#343837;" x="304.777833" xlink:href="#m7fa192c7b8" y="597.590137"/> + <use style="fill:#343837;stroke:#343837;" x="306.366163" xlink:href="#m7fa192c7b8" y="801.754521"/> + <use style="fill:#343837;stroke:#343837;" x="307.954492" xlink:href="#m7fa192c7b8" y="668.603836"/> + <use style="fill:#343837;stroke:#343837;" x="309.542822" xlink:href="#m7fa192c7b8" y="831.935342"/> + <use style="fill:#343837;stroke:#343837;" x="311.131151" xlink:href="#m7fa192c7b8" y="716.538082"/> + <use style="fill:#343837;stroke:#343837;" x="312.719481" xlink:href="#m7fa192c7b8" y="957.984658"/> + <use style="fill:#343837;stroke:#343837;" x="314.30781" xlink:href="#m7fa192c7b8" y="483.968219"/> + <use style="fill:#343837;stroke:#343837;" x="315.89614" xlink:href="#m7fa192c7b8" y="862.116164"/> + <use style="fill:#343837;stroke:#343837;" x="317.484469" xlink:href="#m7fa192c7b8" y="704.110685"/> + <use style="fill:#343837;stroke:#343837;" x="319.072799" xlink:href="#m7fa192c7b8" y="531.902466"/> + <use style="fill:#343837;stroke:#343837;" x="320.661128" xlink:href="#m7fa192c7b8" y="641.973699"/> + <use style="fill:#343837;stroke:#343837;" x="322.249458" xlink:href="#m7fa192c7b8" y="796.428493"/> + <use style="fill:#343837;stroke:#343837;" x="323.837787" xlink:href="#m7fa192c7b8" y="837.26137"/> + <use style="fill:#343837;stroke:#343837;" x="325.426116" xlink:href="#m7fa192c7b8" y="535.453151"/> + <use style="fill:#343837;stroke:#343837;" x="327.014446" xlink:href="#m7fa192c7b8" y="858.565479"/> + <use style="fill:#343837;stroke:#343837;" x="328.602775" xlink:href="#m7fa192c7b8" y="741.392877"/> + <use style="fill:#343837;stroke:#343837;" x="330.191105" xlink:href="#m7fa192c7b8" y="776.899726"/> + <use style="fill:#343837;stroke:#343837;" x="331.779434" xlink:href="#m7fa192c7b8" y="847.913425"/> + <use style="fill:#343837;stroke:#343837;" x="333.367764" xlink:href="#m7fa192c7b8" y="720.088767"/> + <use style="fill:#343837;stroke:#343837;" x="334.956093" xlink:href="#m7fa192c7b8" y="792.877808"/> + <use style="fill:#343837;stroke:#343837;" x="336.544423" xlink:href="#m7fa192c7b8" y="595.814795"/> + <use style="fill:#343837;stroke:#343837;" x="338.132752" xlink:href="#m7fa192c7b8" y="634.872329"/> + <use style="fill:#343837;stroke:#343837;" x="339.721082" xlink:href="#m7fa192c7b8" y="677.480548"/> + <use style="fill:#343837;stroke:#343837;" x="341.309411" xlink:href="#m7fa192c7b8" y="753.820274"/> + <use style="fill:#343837;stroke:#343837;" x="342.897741" xlink:href="#m7fa192c7b8" y="785.776438"/> + <use style="fill:#343837;stroke:#343837;" x="344.48607" xlink:href="#m7fa192c7b8" y="640.198356"/> + <use style="fill:#343837;stroke:#343837;" x="346.0744" xlink:href="#m7fa192c7b8" y="629.546301"/> + <use style="fill:#343837;stroke:#343837;" x="347.662729" xlink:href="#m7fa192c7b8" y="620.669589"/> + <use style="fill:#343837;stroke:#343837;" x="349.251059" xlink:href="#m7fa192c7b8" y="688.132603"/> + <use style="fill:#343837;stroke:#343837;" x="350.839388" xlink:href="#m7fa192c7b8" y="673.929863"/> + <use style="fill:#343837;stroke:#343837;" x="352.427718" xlink:href="#m7fa192c7b8" y="491.069589"/> + <use style="fill:#343837;stroke:#343837;" x="354.016047" xlink:href="#m7fa192c7b8" y="743.168219"/> + <use style="fill:#343837;stroke:#343837;" x="355.604377" xlink:href="#m7fa192c7b8" y="697.009315"/> + <use style="fill:#343837;stroke:#343837;" x="357.192706" xlink:href="#m7fa192c7b8" y="721.86411"/> + <use style="fill:#343837;stroke:#343837;" x="358.781036" xlink:href="#m7fa192c7b8" y="574.510685"/> + <use style="fill:#343837;stroke:#343837;" x="360.369365" xlink:href="#m7fa192c7b8" y="517.699726"/> + <use style="fill:#343837;stroke:#343837;" x="361.957694" xlink:href="#m7fa192c7b8" y="821.283288"/> + <use style="fill:#343837;stroke:#343837;" x="363.546024" xlink:href="#m7fa192c7b8" y="624.220274"/> + <use style="fill:#343837;stroke:#343837;" x="365.134353" xlink:href="#m7fa192c7b8" y="579.836712"/> + <use style="fill:#343837;stroke:#343837;" x="366.722683" xlink:href="#m7fa192c7b8" y="657.951781"/> + <use style="fill:#343837;stroke:#343837;" x="368.311012" xlink:href="#m7fa192c7b8" y="519.475068"/> + <use style="fill:#343837;stroke:#343837;" x="369.899342" xlink:href="#m7fa192c7b8" y="656.176438"/> + <use style="fill:#343837;stroke:#343837;" x="371.487671" xlink:href="#m7fa192c7b8" y="505.272329"/> + <use style="fill:#343837;stroke:#343837;" x="373.076001" xlink:href="#m7fa192c7b8" y="675.705205"/> + <use style="fill:#343837;stroke:#343837;" x="374.66433" xlink:href="#m7fa192c7b8" y="553.206575"/> + <use style="fill:#343837;stroke:#343837;" x="376.25266" xlink:href="#m7fa192c7b8" y="606.466849"/> + <use style="fill:#343837;stroke:#343837;" x="377.840989" xlink:href="#m7fa192c7b8" y="691.683288"/> + <use style="fill:#343837;stroke:#343837;" x="379.429319" xlink:href="#m7fa192c7b8" y="732.516164"/> + <use style="fill:#343837;stroke:#343837;" x="381.017648" xlink:href="#m7fa192c7b8" y="778.675068"/> + <use style="fill:#343837;stroke:#343837;" x="382.605978" xlink:href="#m7fa192c7b8" y="514.149041"/> + <use style="fill:#343837;stroke:#343837;" x="384.194307" xlink:href="#m7fa192c7b8" y="386.324384"/> + <use style="fill:#343837;stroke:#343837;" x="385.782637" xlink:href="#m7fa192c7b8" y="750.269589"/> + <use style="fill:#343837;stroke:#343837;" x="387.370966" xlink:href="#m7fa192c7b8" y="416.505205"/> + <use style="fill:#343837;stroke:#343837;" x="388.959296" xlink:href="#m7fa192c7b8" y="649.075068"/> + <use style="fill:#343837;stroke:#343837;" x="390.547625" xlink:href="#m7fa192c7b8" y="599.365479"/> + <use style="fill:#343837;stroke:#343837;" x="392.135955" xlink:href="#m7fa192c7b8" y="842.587397"/> + <use style="fill:#343837;stroke:#343837;" x="393.724284" xlink:href="#m7fa192c7b8" y="583.387397"/> + <use style="fill:#343837;stroke:#343837;" x="395.312614" xlink:href="#m7fa192c7b8" y="407.628493"/> + <use style="fill:#343837;stroke:#343837;" x="396.900943" xlink:href="#m7fa192c7b8" y="789.327123"/> + <use style="fill:#343837;stroke:#343837;" x="398.489272" xlink:href="#m7fa192c7b8" y="437.809315"/> + <use style="fill:#343837;stroke:#343837;" x="400.077602" xlink:href="#m7fa192c7b8" y="698.784658"/> + <use style="fill:#343837;stroke:#343837;" x="401.665931" xlink:href="#m7fa192c7b8" y="681.031233"/> + <use style="fill:#343837;stroke:#343837;" x="403.254261" xlink:href="#m7fa192c7b8" y="723.639452"/> + <use style="fill:#343837;stroke:#343837;" x="404.84259" xlink:href="#m7fa192c7b8" y="618.894247"/> + <use style="fill:#343837;stroke:#343837;" x="406.43092" xlink:href="#m7fa192c7b8" y="608.242192"/> + <use style="fill:#343837;stroke:#343837;" x="408.019249" xlink:href="#m7fa192c7b8" y="533.677808"/> + <use style="fill:#343837;stroke:#343837;" x="409.607579" xlink:href="#m7fa192c7b8" y="604.691507"/> + <use style="fill:#343837;stroke:#343837;" x="411.195908" xlink:href="#m7fa192c7b8" y="780.450411"/> + <use style="fill:#343837;stroke:#343837;" x="412.784238" xlink:href="#m7fa192c7b8" y="627.770959"/> + <use style="fill:#343837;stroke:#343837;" x="414.372567" xlink:href="#m7fa192c7b8" y="840.812055"/> + <use style="fill:#343837;stroke:#343837;" x="415.960897" xlink:href="#m7fa192c7b8" y="539.003836"/> + <use style="fill:#343837;stroke:#343837;" x="417.549226" xlink:href="#m7fa192c7b8" y="611.792877"/> + <use style="fill:#343837;stroke:#343837;" x="419.137556" xlink:href="#m7fa192c7b8" y="601.140822"/> + <use style="fill:#343837;stroke:#343837;" x="420.725885" xlink:href="#m7fa192c7b8" y="728.965479"/> + <use style="fill:#343837;stroke:#343837;" x="422.314215" xlink:href="#m7fa192c7b8" y="684.581918"/> + <use style="fill:#343837;stroke:#343837;" x="423.902544" xlink:href="#m7fa192c7b8" y="542.554521"/> + <use style="fill:#343837;stroke:#343837;" x="425.490874" xlink:href="#m7fa192c7b8" y="895.847671"/> + <use style="fill:#343837;stroke:#343837;" x="427.079203" xlink:href="#m7fa192c7b8" y="659.727123"/> + <use style="fill:#343837;stroke:#343837;" x="428.667533" xlink:href="#m7fa192c7b8" y="759.146301"/> + <use style="fill:#343837;stroke:#343837;" x="430.255862" xlink:href="#m7fa192c7b8" y="863.891507"/> + <use style="fill:#343837;stroke:#343837;" x="431.844192" xlink:href="#m7fa192c7b8" y="499.946301"/> + <use style="fill:#343837;stroke:#343837;" x="433.432521" xlink:href="#m7fa192c7b8" y="679.25589"/> + <use style="fill:#343837;stroke:#343837;" x="435.02085" xlink:href="#m7fa192c7b8" y="590.488767"/> + <use style="fill:#343837;stroke:#343837;" x="436.60918" xlink:href="#m7fa192c7b8" y="927.803836"/> + <use style="fill:#343837;stroke:#343837;" x="438.197509" xlink:href="#m7fa192c7b8" y="695.233973"/> + <use style="fill:#343837;stroke:#343837;" x="439.785839" xlink:href="#m7fa192c7b8" y="436.033973"/> + <use style="fill:#343837;stroke:#343837;" x="441.374168" xlink:href="#m7fa192c7b8" y="503.496986"/> + <use style="fill:#343837;stroke:#343837;" x="442.962498" xlink:href="#m7fa192c7b8" y="805.305205"/> + <use style="fill:#343837;stroke:#343837;" x="444.550827" xlink:href="#m7fa192c7b8" y="752.044932"/> + <use style="fill:#343837;stroke:#343837;" x="446.139157" xlink:href="#m7fa192c7b8" y="304.65863"/> + <use style="fill:#343837;stroke:#343837;" x="447.727486" xlink:href="#m7fa192c7b8" y="457.338082"/> + <use style="fill:#343837;stroke:#343837;" x="449.315816" xlink:href="#m7fa192c7b8" y="670.379178"/> + <use style="fill:#343837;stroke:#343837;" x="450.904145" xlink:href="#m7fa192c7b8" y="633.096986"/> + <use style="fill:#343837;stroke:#343837;" x="452.492475" xlink:href="#m7fa192c7b8" y="554.981918"/> + <use style="fill:#343837;stroke:#343837;" x="454.080804" xlink:href="#m7fa192c7b8" y="617.118904"/> + <use style="fill:#343837;stroke:#343837;" x="455.669134" xlink:href="#m7fa192c7b8" y="645.524384"/> + <use style="fill:#343837;stroke:#343837;" x="457.257463" xlink:href="#m7fa192c7b8" y="570.96"/> + <use style="fill:#343837;stroke:#343837;" x="458.845793" xlink:href="#m7fa192c7b8" y="643.749041"/> + <use style="fill:#343837;stroke:#343837;" x="460.434122" xlink:href="#m7fa192c7b8" y="466.214795"/> + <use style="fill:#343837;stroke:#343837;" x="462.022452" xlink:href="#m7fa192c7b8" y="379.223014"/> + <use style="fill:#343837;stroke:#343837;" x="463.610781" xlink:href="#m7fa192c7b8" y="352.592877"/> + <use style="fill:#343837;stroke:#343837;" x="465.199111" xlink:href="#m7fa192c7b8" y="615.343562"/> + <use style="fill:#343837;stroke:#343837;" x="466.78744" xlink:href="#m7fa192c7b8" y="521.250411"/> + <use style="fill:#343837;stroke:#343837;" x="468.37577" xlink:href="#m7fa192c7b8" y="647.299726"/> + <use style="fill:#343837;stroke:#343837;" x="469.964099" xlink:href="#m7fa192c7b8" y="702.335342"/> + <use style="fill:#343837;stroke:#343837;" x="471.552429" xlink:href="#m7fa192c7b8" y="489.294247"/> + <use style="fill:#343837;stroke:#343837;" x="473.140758" xlink:href="#m7fa192c7b8" y="434.25863"/> + <use style="fill:#343837;stroke:#343837;" x="474.729087" xlink:href="#m7fa192c7b8" y="588.713425"/> + <use style="fill:#343837;stroke:#343837;" x="476.317417" xlink:href="#m7fa192c7b8" y="650.850411"/> + <use style="fill:#343837;stroke:#343837;" x="477.905746" xlink:href="#m7fa192c7b8" y="734.291507"/> + <use style="fill:#343837;stroke:#343837;" x="479.494076" xlink:href="#m7fa192c7b8" y="661.502466"/> + <use style="fill:#343837;stroke:#343837;" x="481.082405" xlink:href="#m7fa192c7b8" y="405.853151"/> + <use style="fill:#343837;stroke:#343837;" x="482.670735" xlink:href="#m7fa192c7b8" y="586.938082"/> + <use style="fill:#343837;stroke:#343837;" x="484.259064" xlink:href="#m7fa192c7b8" y="610.017534"/> + <use style="fill:#343837;stroke:#343837;" x="485.847394" xlink:href="#m7fa192c7b8" y="430.707945"/> + <use style="fill:#343837;stroke:#343837;" x="487.435723" xlink:href="#m7fa192c7b8" y="427.15726"/> + <use style="fill:#343837;stroke:#343837;" x="489.024053" xlink:href="#m7fa192c7b8" y="443.135342"/> + <use style="fill:#343837;stroke:#343837;" x="490.612382" xlink:href="#m7fa192c7b8" y="547.880548"/> + <use style="fill:#343837;stroke:#343837;" x="492.200712" xlink:href="#m7fa192c7b8" y="278.028493"/> + <use style="fill:#343837;stroke:#343837;" x="493.789041" xlink:href="#m7fa192c7b8" y="558.532603"/> + <use style="fill:#343837;stroke:#343837;" x="495.377371" xlink:href="#m7fa192c7b8" y="578.06137"/> + <use style="fill:#343837;stroke:#343837;" x="496.9657" xlink:href="#m7fa192c7b8" y="718.313425"/> + <use style="fill:#343837;stroke:#343837;" x="498.55403" xlink:href="#m7fa192c7b8" y="528.351781"/> + <use style="fill:#343837;stroke:#343837;" x="500.142359" xlink:href="#m7fa192c7b8" y="455.56274"/> + <use style="fill:#343837;stroke:#343837;" x="501.730689" xlink:href="#m7fa192c7b8" y="425.381918"/> + <use style="fill:#343837;stroke:#343837;" x="503.319018" xlink:href="#m7fa192c7b8" y="317.086027"/> + <use style="fill:#343837;stroke:#343837;" x="504.907348" xlink:href="#m7fa192c7b8" y="556.75726"/> + <use style="fill:#343837;stroke:#343837;" x="506.495677" xlink:href="#m7fa192c7b8" y="705.886027"/> + <use style="fill:#343837;stroke:#343837;" x="508.084007" xlink:href="#m7fa192c7b8" y="396.976438"/> + <use style="fill:#343837;stroke:#343837;" x="509.672336" xlink:href="#m7fa192c7b8" y="510.598356"/> + <use style="fill:#343837;stroke:#343837;" x="511.260665" xlink:href="#m7fa192c7b8" y="402.302466"/> + <use style="fill:#343837;stroke:#343837;" x="512.848995" xlink:href="#m7fa192c7b8" y="523.025753"/> + <use style="fill:#343837;stroke:#343837;" x="514.437324" xlink:href="#m7fa192c7b8" y="631.321644"/> + <use style="fill:#343837;stroke:#343837;" x="516.025654" xlink:href="#m7fa192c7b8" y="388.099726"/> + <use style="fill:#343837;stroke:#343837;" x="517.613983" xlink:href="#m7fa192c7b8" y="475.091507"/> + <use style="fill:#343837;stroke:#343837;" x="519.202313" xlink:href="#m7fa192c7b8" y="775.124384"/> + <use style="fill:#343837;stroke:#343837;" x="520.790642" xlink:href="#m7fa192c7b8" y="714.76274"/> + <use style="fill:#343837;stroke:#343837;" x="522.378972" xlink:href="#m7fa192c7b8" y="711.212055"/> + <use style="fill:#343837;stroke:#343837;" x="523.967301" xlink:href="#m7fa192c7b8" y="444.910685"/> + <use style="fill:#343837;stroke:#343837;" x="525.555631" xlink:href="#m7fa192c7b8" y="459.113425"/> + <use style="fill:#343837;stroke:#343837;" x="527.14396" xlink:href="#m7fa192c7b8" y="453.787397"/> + <use style="fill:#343837;stroke:#343837;" x="528.73229" xlink:href="#m7fa192c7b8" y="450.236712"/> + <use style="fill:#343837;stroke:#343837;" x="530.320619" xlink:href="#m7fa192c7b8" y="400.527123"/> + <use style="fill:#343837;stroke:#343837;" x="531.908949" xlink:href="#m7fa192c7b8" y="199.913425"/> + <use style="fill:#343837;stroke:#343837;" x="533.497278" xlink:href="#m7fa192c7b8" y="295.781918"/> + <use style="fill:#343837;stroke:#343837;" x="535.085608" xlink:href="#m7fa192c7b8" y="467.990137"/> + <use style="fill:#343837;stroke:#343837;" x="536.673937" xlink:href="#m7fa192c7b8" y="567.409315"/> + <use style="fill:#343837;stroke:#343837;" x="538.262267" xlink:href="#m7fa192c7b8" y="686.35726"/> + <use style="fill:#343837;stroke:#343837;" x="539.850596" xlink:href="#m7fa192c7b8" y="625.995616"/> + <use style="fill:#343837;stroke:#343837;" x="541.438926" xlink:href="#m7fa192c7b8" y="398.751781"/> + <use style="fill:#343837;stroke:#343837;" x="543.027255" xlink:href="#m7fa192c7b8" y="666.828493"/> + <use style="fill:#343837;stroke:#343837;" x="544.615585" xlink:href="#m7fa192c7b8" y="613.568219"/> + <use style="fill:#343837;stroke:#343837;" x="546.203914" xlink:href="#m7fa192c7b8" y="308.209315"/> + <use style="fill:#343837;stroke:#343837;" x="547.792243" xlink:href="#m7fa192c7b8" y="393.425753"/> + <use style="fill:#343837;stroke:#343837;" x="549.380573" xlink:href="#m7fa192c7b8" y="530.127123"/> + <use style="fill:#343837;stroke:#343837;" x="550.968902" xlink:href="#m7fa192c7b8" y="494.620274"/> + <use style="fill:#343837;stroke:#343837;" x="552.557232" xlink:href="#m7fa192c7b8" y="471.540822"/> + <use style="fill:#343837;stroke:#343837;" x="554.145561" xlink:href="#m7fa192c7b8" y="602.916164"/> + <use style="fill:#343837;stroke:#343837;" x="555.733891" xlink:href="#m7fa192c7b8" y="365.020274"/> + <use style="fill:#343837;stroke:#343837;" x="557.32222" xlink:href="#m7fa192c7b8" y="423.606575"/> + <use style="fill:#343837;stroke:#343837;" x="558.91055" xlink:href="#m7fa192c7b8" y="622.444932"/> + <use style="fill:#343837;stroke:#343837;" x="560.498879" xlink:href="#m7fa192c7b8" y="418.280548"/> + <use style="fill:#343837;stroke:#343837;" x="562.087209" xlink:href="#m7fa192c7b8" y="290.45589"/> + <use style="fill:#343837;stroke:#343837;" x="563.675538" xlink:href="#m7fa192c7b8" y="380.998356"/> + <use style="fill:#343837;stroke:#343837;" x="565.263868" xlink:href="#m7fa192c7b8" y="526.576438"/> + <use style="fill:#343837;stroke:#343837;" x="566.852197" xlink:href="#m7fa192c7b8" y="187.486027"/> + <use style="fill:#343837;stroke:#343837;" x="568.440527" xlink:href="#m7fa192c7b8" y="320.636712"/> + <use style="fill:#343837;stroke:#343837;" x="570.028856" xlink:href="#m7fa192c7b8" y="384.549041"/> + <use style="fill:#343837;stroke:#343837;" x="571.617186" xlink:href="#m7fa192c7b8" y="482.192877"/> + <use style="fill:#343837;stroke:#343837;" x="573.205515" xlink:href="#m7fa192c7b8" y="198.138082"/> + <use style="fill:#343837;stroke:#343837;" x="574.793845" xlink:href="#m7fa192c7b8" y="546.105205"/> + <use style="fill:#343837;stroke:#343837;" x="576.382174" xlink:href="#m7fa192c7b8" y="665.053151"/> + <use style="fill:#343837;stroke:#343837;" x="577.970504" xlink:href="#m7fa192c7b8" y="496.395616"/> + <use style="fill:#343837;stroke:#343837;" x="579.558833" xlink:href="#m7fa192c7b8" y="372.121644"/> + <use style="fill:#343837;stroke:#343837;" x="581.147163" xlink:href="#m7fa192c7b8" y="349.042192"/> + <use style="fill:#343837;stroke:#343837;" x="582.735492" xlink:href="#m7fa192c7b8" y="771.573699"/> + <use style="fill:#343837;stroke:#343837;" x="584.323821" xlink:href="#m7fa192c7b8" y="72.088767"/> + <use style="fill:#343837;stroke:#343837;" x="585.912151" xlink:href="#m7fa192c7b8" y="581.612055"/> + <use style="fill:#343837;stroke:#343837;" x="587.50048" xlink:href="#m7fa192c7b8" y="448.46137"/> + <use style="fill:#343837;stroke:#343837;" x="589.08881" xlink:href="#m7fa192c7b8" y="549.65589"/> + <use style="fill:#343837;stroke:#343837;" x="590.677139" xlink:href="#m7fa192c7b8" y="382.773699"/> + <use style="fill:#343837;stroke:#343837;" x="592.265469" xlink:href="#m7fa192c7b8" y="221.217534"/> + <use style="fill:#343837;stroke:#343837;" x="593.853798" xlink:href="#m7fa192c7b8" y="524.801096"/> + <use style="fill:#343837;stroke:#343837;" x="595.442128" xlink:href="#m7fa192c7b8" y="512.373699"/> + <use style="fill:#343837;stroke:#343837;" x="597.030457" xlink:href="#m7fa192c7b8" y="439.584658"/> + <use style="fill:#343837;stroke:#343837;" x="598.618787" xlink:href="#m7fa192c7b8" y="508.823014"/> + <use style="fill:#343837;stroke:#343837;" x="600.207116" xlink:href="#m7fa192c7b8" y="361.469589"/> + <use style="fill:#343837;stroke:#343837;" x="601.795446" xlink:href="#m7fa192c7b8" y="318.86137"/> + <use style="fill:#343837;stroke:#343837;" x="603.383775" xlink:href="#m7fa192c7b8" y="682.806575"/> + <use style="fill:#343837;stroke:#343837;" x="604.972105" xlink:href="#m7fa192c7b8" y="389.875068"/> + <use style="fill:#343837;stroke:#343837;" x="606.560434" xlink:href="#m7fa192c7b8" y="356.143562"/> + <use style="fill:#343837;stroke:#343837;" x="608.148764" xlink:href="#m7fa192c7b8" y="340.165479"/> + <use style="fill:#343837;stroke:#343837;" x="609.737093" xlink:href="#m7fa192c7b8" y="428.932603"/> + <use style="fill:#343837;stroke:#343837;" x="611.325423" xlink:href="#m7fa192c7b8" y="507.047671"/> + <use style="fill:#343837;stroke:#343837;" x="612.913752" xlink:href="#m7fa192c7b8" y="322.412055"/> + <use style="fill:#343837;stroke:#343837;" x="614.502082" xlink:href="#m7fa192c7b8" y="91.617534"/> + <use style="fill:#343837;stroke:#343837;" x="616.090411" xlink:href="#m7fa192c7b8" y="151.979178"/> + <use style="fill:#343837;stroke:#343837;" x="617.678741" xlink:href="#m7fa192c7b8" y="377.447671"/> + <use style="fill:#343837;stroke:#343837;" x="619.26707" xlink:href="#m7fa192c7b8" y="737.842192"/> + <use style="fill:#343837;stroke:#343837;" x="620.8554" xlink:href="#m7fa192c7b8" y="498.170959"/> + <use style="fill:#343837;stroke:#343837;" x="622.443729" xlink:href="#m7fa192c7b8" y="540.779178"/> + <use style="fill:#343837;stroke:#343837;" x="624.032058" xlink:href="#m7fa192c7b8" y="329.513425"/> + <use style="fill:#343837;stroke:#343837;" x="625.620388" xlink:href="#m7fa192c7b8" y="395.201096"/> + <use style="fill:#343837;stroke:#343837;" x="627.208717" xlink:href="#m7fa192c7b8" y="370.346301"/> + <use style="fill:#343837;stroke:#343837;" x="628.797047" xlink:href="#m7fa192c7b8" y="485.743562"/> + <use style="fill:#343837;stroke:#343837;" x="630.385376" xlink:href="#m7fa192c7b8" y="247.847671"/> + <use style="fill:#343837;stroke:#343837;" x="631.973706" xlink:href="#m7fa192c7b8" y="146.653151"/> + <use style="fill:#343837;stroke:#343837;" x="633.562035" xlink:href="#m7fa192c7b8" y="420.05589"/> + <use style="fill:#343837;stroke:#343837;" x="635.150365" xlink:href="#m7fa192c7b8" y="551.431233"/> + <use style="fill:#343837;stroke:#343837;" x="636.738694" xlink:href="#m7fa192c7b8" y="730.740822"/> + <use style="fill:#343837;stroke:#343837;" x="638.327024" xlink:href="#m7fa192c7b8" y="480.417534"/> + <use style="fill:#343837;stroke:#343837;" x="639.915353" xlink:href="#m7fa192c7b8" y="576.286027"/> + <use style="fill:#343837;stroke:#343837;" x="641.503683" xlink:href="#m7fa192c7b8" y="286.905205"/> + <use style="fill:#343837;stroke:#343837;" x="643.092012" xlink:href="#m7fa192c7b8" y="594.039452"/> + <use style="fill:#343837;stroke:#343837;" x="644.680342" xlink:href="#m7fa192c7b8" y="432.483288"/> + <use style="fill:#343837;stroke:#343837;" x="646.268671" xlink:href="#m7fa192c7b8" y="189.26137"/> + <use style="fill:#343837;stroke:#343837;" x="647.857001" xlink:href="#m7fa192c7b8" y="460.888767"/> + <use style="fill:#343837;stroke:#343837;" x="649.44533" xlink:href="#m7fa192c7b8" y="560.307945"/> + <use style="fill:#343837;stroke:#343837;" x="651.03366" xlink:href="#m7fa192c7b8" y="592.26411"/> + <use style="fill:#343837;stroke:#343837;" x="652.621989" xlink:href="#m7fa192c7b8" y="544.329863"/> + <use style="fill:#343837;stroke:#343837;" x="654.210319" xlink:href="#m7fa192c7b8" y="272.702466"/> + <use style="fill:#343837;stroke:#343837;" x="655.798648" xlink:href="#m7fa192c7b8" y="391.650411"/> + <use style="fill:#343837;stroke:#343837;" x="657.386978" xlink:href="#m7fa192c7b8" y="712.987397"/> + <use style="fill:#343837;stroke:#343837;" x="658.975307" xlink:href="#m7fa192c7b8" y="178.609315"/> + <use style="fill:#343837;stroke:#343837;" x="660.563636" xlink:href="#m7fa192c7b8" y="302.883288"/> + <use style="fill:#343837;stroke:#343837;" x="662.151966" xlink:href="#m7fa192c7b8" y="276.253151"/> + <use style="fill:#343837;stroke:#343837;" x="663.740295" xlink:href="#m7fa192c7b8" y="285.129863"/> + <use style="fill:#343837;stroke:#343837;" x="665.328625" xlink:href="#m7fa192c7b8" y="324.187397"/> + <use style="fill:#343837;stroke:#343837;" x="666.916954" xlink:href="#m7fa192c7b8" y="441.36"/> + <use style="fill:#343837;stroke:#343837;" x="668.505284" xlink:href="#m7fa192c7b8" y="562.083288"/> + <use style="fill:#343837;stroke:#343837;" x="670.093613" xlink:href="#m7fa192c7b8" y="476.866849"/> + <use style="fill:#343837;stroke:#343837;" x="671.681943" xlink:href="#m7fa192c7b8" y="585.16274"/> + <use style="fill:#343837;stroke:#343837;" x="673.270272" xlink:href="#m7fa192c7b8" y="572.735342"/> + <use style="fill:#343837;stroke:#343837;" x="674.858602" xlink:href="#m7fa192c7b8" y="153.754521"/> + <use style="fill:#343837;stroke:#343837;" x="676.446931" xlink:href="#m7fa192c7b8" y="212.340822"/> + <use style="fill:#343837;stroke:#343837;" x="678.035261" xlink:href="#m7fa192c7b8" y="160.85589"/> + <use style="fill:#343837;stroke:#343837;" x="679.62359" xlink:href="#m7fa192c7b8" y="315.310685"/> + <use style="fill:#343837;stroke:#343837;" x="681.21192" xlink:href="#m7fa192c7b8" y="175.05863"/> + <use style="fill:#343837;stroke:#343837;" x="682.800249" xlink:href="#m7fa192c7b8" y="375.672329"/> + <use style="fill:#343837;stroke:#343837;" x="684.388579" xlink:href="#m7fa192c7b8" y="292.231233"/> + <use style="fill:#343837;stroke:#343837;" x="685.976908" xlink:href="#m7fa192c7b8" y="478.642192"/> + <use style="fill:#343837;stroke:#343837;" x="687.565238" xlink:href="#m7fa192c7b8" y="411.179178"/> + <use style="fill:#343837;stroke:#343837;" x="689.153567" xlink:href="#m7fa192c7b8" y="487.518904"/> + <use style="fill:#343837;stroke:#343837;" x="690.741897" xlink:href="#m7fa192c7b8" y="368.570959"/> + <use style="fill:#343837;stroke:#343837;" x="692.330226" xlink:href="#m7fa192c7b8" y="515.924384"/> + <use style="fill:#343837;stroke:#343837;" x="693.918556" xlink:href="#m7fa192c7b8" y="128.899726"/> + <use style="fill:#343837;stroke:#343837;" x="695.506885" xlink:href="#m7fa192c7b8" y="363.244932"/> + <use style="fill:#343837;stroke:#343837;" x="697.095214" xlink:href="#m7fa192c7b8" y="294.006575"/> + <use style="fill:#343837;stroke:#343837;" x="698.683544" xlink:href="#m7fa192c7b8" y="144.877808"/> + <use style="fill:#343837;stroke:#343837;" x="700.271873" xlink:href="#m7fa192c7b8" y="338.390137"/> + <use style="fill:#343837;stroke:#343837;" x="701.860203" xlink:href="#m7fa192c7b8" y="404.077808"/> + <use style="fill:#343837;stroke:#343837;" x="703.448532" xlink:href="#m7fa192c7b8" y="219.442192"/> + <use style="fill:#343837;stroke:#343837;" x="705.036862" xlink:href="#m7fa192c7b8" y="203.46411"/> + <use style="fill:#343837;stroke:#343837;" x="706.625191" xlink:href="#m7fa192c7b8" y="333.06411"/> + <use style="fill:#343837;stroke:#343837;" x="708.213521" xlink:href="#m7fa192c7b8" y="357.918904"/> + <use style="fill:#343837;stroke:#343837;" x="709.80185" xlink:href="#m7fa192c7b8" y="231.869589"/> + <use style="fill:#343837;stroke:#343837;" x="711.39018" xlink:href="#m7fa192c7b8" y="207.014795"/> + <use style="fill:#343837;stroke:#343837;" x="712.978509" xlink:href="#m7fa192c7b8" y="452.012055"/> + <use style="fill:#343837;stroke:#343837;" x="714.566839" xlink:href="#m7fa192c7b8" y="281.579178"/> + <use style="fill:#343837;stroke:#343837;" x="716.155168" xlink:href="#m7fa192c7b8" y="341.940822"/> + <use style="fill:#343837;stroke:#343837;" x="717.743498" xlink:href="#m7fa192c7b8" y="251.398356"/> + <use style="fill:#343837;stroke:#343837;" x="719.331827" xlink:href="#m7fa192c7b8" y="235.420274"/> + <use style="fill:#343837;stroke:#343837;" x="720.920157" xlink:href="#m7fa192c7b8" y="157.305205"/> + <use style="fill:#343837;stroke:#343837;" x="722.508486" xlink:href="#m7fa192c7b8" y="269.151781"/> + <use style="fill:#343837;stroke:#343837;" x="724.096816" xlink:href="#m7fa192c7b8" y="283.354521"/> + <use style="fill:#343837;stroke:#343837;" x="725.685145" xlink:href="#m7fa192c7b8" y="288.680548"/> + <use style="fill:#343837;stroke:#343837;" x="727.273475" xlink:href="#m7fa192c7b8" y="240.746301"/> + <use style="fill:#343837;stroke:#343837;" x="728.861804" xlink:href="#m7fa192c7b8" y="446.686027"/> + <use style="fill:#343837;stroke:#343837;" x="730.450134" xlink:href="#m7fa192c7b8" y="125.349041"/> + <use style="fill:#343837;stroke:#343837;" x="732.038463" xlink:href="#m7fa192c7b8" y="82.740822"/> + <use style="fill:#343837;stroke:#343837;" x="733.626792" xlink:href="#m7fa192c7b8" y="569.184658"/> + <use style="fill:#343837;stroke:#343837;" x="735.215122" xlink:href="#m7fa192c7b8" y="265.601096"/> + <use style="fill:#343837;stroke:#343837;" x="736.803451" xlink:href="#m7fa192c7b8" y="464.439452"/> + <use style="fill:#343837;stroke:#343837;" x="738.391781" xlink:href="#m7fa192c7b8" y="345.491507"/> + <use style="fill:#343837;stroke:#343837;" x="739.98011" xlink:href="#m7fa192c7b8" y="354.368219"/> + <use style="fill:#343837;stroke:#343837;" x="741.56844" xlink:href="#m7fa192c7b8" y="274.477808"/> + <use style="fill:#343837;stroke:#343837;" x="743.156769" xlink:href="#m7fa192c7b8" y="301.107945"/> + <use style="fill:#343837;stroke:#343837;" x="744.745099" xlink:href="#m7fa192c7b8" y="343.716164"/> + <use style="fill:#343837;stroke:#343837;" x="746.333428" xlink:href="#m7fa192c7b8" y="166.181918"/> + <use style="fill:#343837;stroke:#343837;" x="747.921758" xlink:href="#m7fa192c7b8" y="238.970959"/> + <use style="fill:#343837;stroke:#343837;" x="749.510087" xlink:href="#m7fa192c7b8" y="492.844932"/> + <use style="fill:#343837;stroke:#343837;" x="751.098417" xlink:href="#m7fa192c7b8" y="350.817534"/> + <use style="fill:#343837;stroke:#343837;" x="752.686746" xlink:href="#m7fa192c7b8" y="59.66137"/> + <use style="fill:#343837;stroke:#343837;" x="754.275076" xlink:href="#m7fa192c7b8" y="137.776438"/> + <use style="fill:#343837;stroke:#343837;" x="755.863405" xlink:href="#m7fa192c7b8" y="254.949041"/> + <use style="fill:#343837;stroke:#343837;" x="757.451735" xlink:href="#m7fa192c7b8" y="414.729863"/> + <use style="fill:#343837;stroke:#343837;" x="759.040064" xlink:href="#m7fa192c7b8" y="130.675068"/> + <use style="fill:#343837;stroke:#343837;" x="760.628394" xlink:href="#m7fa192c7b8" y="95.168219"/> + <use style="fill:#343837;stroke:#343837;" x="762.216723" xlink:href="#m7fa192c7b8" y="359.694247"/> + <use style="fill:#343837;stroke:#343837;" x="763.805053" xlink:href="#m7fa192c7b8" y="148.428493"/> + <use style="fill:#343837;stroke:#343837;" x="765.393382" xlink:href="#m7fa192c7b8" y="182.16"/> + <use style="fill:#343837;stroke:#343837;" x="766.981712" xlink:href="#m7fa192c7b8" y="297.55726"/> + <use style="fill:#343837;stroke:#343837;" x="768.570041" xlink:href="#m7fa192c7b8" y="228.318904"/> + <use style="fill:#343837;stroke:#343837;" x="770.158371" xlink:href="#m7fa192c7b8" y="56.110685"/> + <use style="fill:#343837;stroke:#343837;" x="771.7467" xlink:href="#m7fa192c7b8" y="226.543562"/> + <use style="fill:#343837;stroke:#343837;" x="773.335029" xlink:href="#m7fa192c7b8" y="159.080548"/> + <use style="fill:#343837;stroke:#343837;" x="774.923359" xlink:href="#m7fa192c7b8" y="306.433973"/> + <use style="fill:#343837;stroke:#343837;" x="776.511688" xlink:href="#m7fa192c7b8" y="537.228493"/> + <use style="fill:#343837;stroke:#343837;" x="778.100018" xlink:href="#m7fa192c7b8" y="421.831233"/> + <use style="fill:#343837;stroke:#343837;" x="779.688347" xlink:href="#m7fa192c7b8" y="249.623014"/> + <use style="fill:#343837;stroke:#343837;" x="781.276677" xlink:href="#m7fa192c7b8" y="270.927123"/> + <use style="fill:#343837;stroke:#343837;" x="782.865006" xlink:href="#m7fa192c7b8" y="331.288767"/> + <use style="fill:#343837;stroke:#343837;" x="784.453336" xlink:href="#m7fa192c7b8" y="262.050411"/> + <use style="fill:#343837;stroke:#343837;" x="786.041665" xlink:href="#m7fa192c7b8" y="143.102466"/> + <use style="fill:#343837;stroke:#343837;" x="787.629995" xlink:href="#m7fa192c7b8" y="366.795616"/> + <use style="fill:#343837;stroke:#343837;" x="789.218324" xlink:href="#m7fa192c7b8" y="309.984658"/> + <use style="fill:#343837;stroke:#343837;" x="790.806654" xlink:href="#m7fa192c7b8" y="84.516164"/> + <use style="fill:#343837;stroke:#343837;" x="792.394983" xlink:href="#m7fa192c7b8" y="118.247671"/> + <use style="fill:#343837;stroke:#343837;" x="793.983313" xlink:href="#m7fa192c7b8" y="167.95726"/> + <use style="fill:#343837;stroke:#343837;" x="795.571642" xlink:href="#m7fa192c7b8" y="336.614795"/> + <use style="fill:#343837;stroke:#343837;" x="797.159972" xlink:href="#m7fa192c7b8" y="244.296986"/> + <use style="fill:#343837;stroke:#343837;" x="798.748301" xlink:href="#m7fa192c7b8" y="185.710685"/> + <use style="fill:#343837;stroke:#343837;" x="800.336631" xlink:href="#m7fa192c7b8" y="299.332603"/> + <use style="fill:#343837;stroke:#343837;" x="801.92496" xlink:href="#m7fa192c7b8" y="501.721644"/> + <use style="fill:#343837;stroke:#343837;" x="803.51329" xlink:href="#m7fa192c7b8" y="246.072329"/> + <use style="fill:#343837;stroke:#343837;" x="805.101619" xlink:href="#m7fa192c7b8" y="192.812055"/> + <use style="fill:#343837;stroke:#343837;" x="806.689949" xlink:href="#m7fa192c7b8" y="325.96274"/> + <use style="fill:#343837;stroke:#343837;" x="808.278278" xlink:href="#m7fa192c7b8" y="279.803836"/> + <use style="fill:#343837;stroke:#343837;" x="809.866607" xlink:href="#m7fa192c7b8" y="173.283288"/> + <use style="fill:#343837;stroke:#343837;" x="811.454937" xlink:href="#m7fa192c7b8" y="256.724384"/> + <use style="fill:#343837;stroke:#343837;" x="813.043266" xlink:href="#m7fa192c7b8" y="77.414795"/> + <use style="fill:#343837;stroke:#343837;" x="814.631596" xlink:href="#m7fa192c7b8" y="462.66411"/> + <use style="fill:#343837;stroke:#343837;" x="816.219925" xlink:href="#m7fa192c7b8" y="100.494247"/> + <use style="fill:#343837;stroke:#343837;" x="817.808255" xlink:href="#m7fa192c7b8" y="194.587397"/> + <use style="fill:#343837;stroke:#343837;" x="819.396584" xlink:href="#m7fa192c7b8" y="258.499726"/> + <use style="fill:#343837;stroke:#343837;" x="820.984914" xlink:href="#m7fa192c7b8" y="93.392877"/> + <use style="fill:#343837;stroke:#343837;" x="822.573243" xlink:href="#m7fa192c7b8" y="57.886027"/> + <use style="fill:#343837;stroke:#343837;" x="824.161573" xlink:href="#m7fa192c7b8" y="79.190137"/> + <use style="fill:#343837;stroke:#343837;" x="825.749902" xlink:href="#m7fa192c7b8" y="347.266849"/> + <use style="fill:#343837;stroke:#343837;" x="827.338232" xlink:href="#m7fa192c7b8" y="224.768219"/> + <use style="fill:#343837;stroke:#343837;" x="828.926561" xlink:href="#m7fa192c7b8" y="311.76"/> + <use style="fill:#343837;stroke:#343837;" x="830.514891" xlink:href="#m7fa192c7b8" y="267.376438"/> + <use style="fill:#343837;stroke:#343837;" x="832.10322" xlink:href="#m7fa192c7b8" y="253.173699"/> + <use style="fill:#343837;stroke:#343837;" x="833.69155" xlink:href="#m7fa192c7b8" y="162.631233"/> + <use style="fill:#343837;stroke:#343837;" x="835.279879" xlink:href="#m7fa192c7b8" y="260.275068"/> + <use style="fill:#343837;stroke:#343837;" x="836.868209" xlink:href="#m7fa192c7b8" y="136.001096"/> + <use style="fill:#343837;stroke:#343837;" x="838.456538" xlink:href="#m7fa192c7b8" y="114.696986"/> + <use style="fill:#343837;stroke:#343837;" x="840.044868" xlink:href="#m7fa192c7b8" y="120.023014"/> + <use style="fill:#343837;stroke:#343837;" x="841.633197" xlink:href="#m7fa192c7b8" y="208.790137"/> + <use style="fill:#343837;stroke:#343837;" x="843.221527" xlink:href="#m7fa192c7b8" y="88.066849"/> + <use style="fill:#343837;stroke:#343837;" x="844.809856" xlink:href="#m7fa192c7b8" y="112.921644"/> + <use style="fill:#343837;stroke:#343837;" x="846.398185" xlink:href="#m7fa192c7b8" y="61.436712"/> + <use style="fill:#343837;stroke:#343837;" x="847.986515" xlink:href="#m7fa192c7b8" y="237.195616"/> + <use style="fill:#343837;stroke:#343837;" x="849.574844" xlink:href="#m7fa192c7b8" y="116.472329"/> + <use style="fill:#343837;stroke:#343837;" x="851.163174" xlink:href="#m7fa192c7b8" y="96.943562"/> + <use style="fill:#343837;stroke:#343837;" x="852.751503" xlink:href="#m7fa192c7b8" y="169.732603"/> + <use style="fill:#343837;stroke:#343837;" x="854.339833" xlink:href="#m7fa192c7b8" y="201.688767"/> + <use style="fill:#343837;stroke:#343837;" x="855.928162" xlink:href="#m7fa192c7b8" y="205.239452"/> + <use style="fill:#343837;stroke:#343837;" x="857.516492" xlink:href="#m7fa192c7b8" y="132.450411"/> + <use style="fill:#343837;stroke:#343837;" x="859.104821" xlink:href="#m7fa192c7b8" y="121.798356"/> + <use style="fill:#343837;stroke:#343837;" x="860.693151" xlink:href="#m7fa192c7b8" y="233.644932"/> + <use style="fill:#343837;stroke:#343837;" x="862.28148" xlink:href="#m7fa192c7b8" y="134.225753"/> + <use style="fill:#343837;stroke:#343837;" x="863.86981" xlink:href="#m7fa192c7b8" y="183.935342"/> + <use style="fill:#343837;stroke:#343837;" x="865.458139" xlink:href="#m7fa192c7b8" y="222.992877"/> + <use style="fill:#343837;stroke:#343837;" x="867.046469" xlink:href="#m7fa192c7b8" y="215.891507"/> + <use style="fill:#343837;stroke:#343837;" x="868.634798" xlink:href="#m7fa192c7b8" y="155.529863"/> + <use style="fill:#343837;stroke:#343837;" x="870.223128" xlink:href="#m7fa192c7b8" y="214.116164"/> + <use style="fill:#343837;stroke:#343837;" x="871.811457" xlink:href="#m7fa192c7b8" y="141.327123"/> + <use style="fill:#343837;stroke:#343837;" x="873.399787" xlink:href="#m7fa192c7b8" y="54.335342"/> + <use style="fill:#343837;stroke:#343837;" x="874.988116" xlink:href="#m7fa192c7b8" y="107.595616"/> + <use style="fill:#343837;stroke:#343837;" x="876.576446" xlink:href="#m7fa192c7b8" y="102.269589"/> + <use style="fill:#343837;stroke:#343837;" x="878.164775" xlink:href="#m7fa192c7b8" y="176.833973"/> + <use style="fill:#343837;stroke:#343837;" x="879.753105" xlink:href="#m7fa192c7b8" y="373.896986"/> + <use style="fill:#343837;stroke:#343837;" x="881.341434" xlink:href="#m7fa192c7b8" y="210.565479"/> + <use style="fill:#343837;stroke:#343837;" x="882.929763" xlink:href="#m7fa192c7b8" y="409.403836"/> + <use style="fill:#343837;stroke:#343837;" x="884.518093" xlink:href="#m7fa192c7b8" y="80.965479"/> + <use style="fill:#343837;stroke:#343837;" x="886.106422" xlink:href="#m7fa192c7b8" y="105.820274"/> + <use style="fill:#343837;stroke:#343837;" x="887.694752" xlink:href="#m7fa192c7b8" y="127.124384"/> + <use style="fill:#343837;stroke:#343837;" x="889.283081" xlink:href="#m7fa192c7b8" y="123.573699"/> + <use style="fill:#343837;stroke:#343837;" x="890.871411" xlink:href="#m7fa192c7b8" y="196.36274"/> + <use style="fill:#343837;stroke:#343837;" x="892.45974" xlink:href="#m7fa192c7b8" y="242.521644"/> + <use style="fill:#343837;stroke:#343837;" x="894.04807" xlink:href="#m7fa192c7b8" y="230.094247"/> + <use style="fill:#343837;stroke:#343837;" x="895.636399" xlink:href="#m7fa192c7b8" y="180.384658"/> + <use style="fill:#343837;stroke:#343837;" x="897.224729" xlink:href="#m7fa192c7b8" y="64.987397"/> + <use style="fill:#343837;stroke:#343837;" x="898.813058" xlink:href="#m7fa192c7b8" y="70.313425"/> + <use style="fill:#343837;stroke:#343837;" x="900.401388" xlink:href="#m7fa192c7b8" y="111.146301"/> + <use style="fill:#343837;stroke:#343837;" x="901.989717" xlink:href="#m7fa192c7b8" y="89.842192"/> + <use style="fill:#343837;stroke:#343837;" x="903.578047" xlink:href="#m7fa192c7b8" y="63.212055"/> + <use style="fill:#343837;stroke:#343837;" x="905.166376" xlink:href="#m7fa192c7b8" y="313.535342"/> + <use style="fill:#343837;stroke:#343837;" x="906.754706" xlink:href="#m7fa192c7b8" y="191.036712"/> + <use style="fill:#343837;stroke:#343837;" x="908.343035" xlink:href="#m7fa192c7b8" y="73.86411"/> + <use style="fill:#343837;stroke:#343837;" x="909.931365" xlink:href="#m7fa192c7b8" y="98.718904"/> + <use style="fill:#343837;stroke:#343837;" x="911.519694" xlink:href="#m7fa192c7b8" y="86.291507"/> + <use style="fill:#343837;stroke:#343837;" x="913.108024" xlink:href="#m7fa192c7b8" y="327.738082"/> + <use style="fill:#343837;stroke:#343837;" x="914.696353" xlink:href="#m7fa192c7b8" y="217.666849"/> + <use style="fill:#343837;stroke:#343837;" x="916.284683" xlink:href="#m7fa192c7b8" y="66.76274"/> + <use style="fill:#343837;stroke:#343837;" x="917.873012" xlink:href="#m7fa192c7b8" y="75.639452"/> + <use style="fill:#343837;stroke:#343837;" x="919.461342" xlink:href="#m7fa192c7b8" y="109.370959"/> + <use style="fill:#343837;stroke:#343837;" x="921.049671" xlink:href="#m7fa192c7b8" y="150.203836"/> + <use style="fill:#343837;stroke:#343837;" x="922.638" xlink:href="#m7fa192c7b8" y="171.507945"/> + <use style="fill:#343837;stroke:#343837;" x="924.22633" xlink:href="#m7fa192c7b8" y="52.56"/> + <use style="fill:#343837;stroke:#343837;" x="925.814659" xlink:href="#m7fa192c7b8" y="164.406575"/> + <use style="fill:#343837;stroke:#343837;" x="927.402989" xlink:href="#m7fa192c7b8" y="104.044932"/> + <use style="fill:#343837;stroke:#343837;" x="928.991318" xlink:href="#m7fa192c7b8" y="139.551781"/> + <use style="fill:#343837;stroke:#343837;" x="930.579648" xlink:href="#m7fa192c7b8" y="263.825753"/> + <use style="fill:#343837;stroke:#343837;" x="932.167977" xlink:href="#m7fa192c7b8" y="334.839452"/> + <use style="fill:#343837;stroke:#343837;" x="933.756307" xlink:href="#m7fa192c7b8" y="68.538082"/> + </g> + </g> + <g id="patch_3"> + <path d="M 81.538125 1005.12 +L 81.538125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 974.338125 1005.12 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 81.538125 7.2 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 99.738125 66.163125 +L 588.631562 66.163125 +Q 593.831563 66.163125 593.831563 60.963125 +L 593.831563 25.4 +Q 593.831563 20.2 588.631562 20.2 +L 99.738125 20.2 +Q 94.538125 20.2 94.538125 25.4 +L 94.538125 60.963125 +Q 94.538125 66.163125 99.738125 66.163125 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_26"/> + <g id="line2d_27"> + <g> + <use style="fill:#343837;stroke:#343837;" x="130.938125" xlink:href="#m7fa192c7b8" y="41.255938"/> + </g> + </g> + <g id="text_15"> + <!-- (sorted index, permuted index) --> + <defs> + <path d="M 31 75.875 +Q 24.46875 64.65625 21.28125 53.65625 +Q 18.109375 42.671875 18.109375 31.390625 +Q 18.109375 20.125 21.3125 9.0625 +Q 24.515625 -2 31 -13.1875 +L 23.1875 -13.1875 +Q 15.875 -1.703125 12.234375 9.375 +Q 8.59375 20.453125 8.59375 31.390625 +Q 8.59375 42.28125 12.203125 53.3125 +Q 15.828125 64.359375 23.1875 75.875 +z +" id="DejaVuSans-40"/> + <path d="M 11.71875 12.40625 +L 22.015625 12.40625 +L 22.015625 4 +L 14.015625 -11.625 +L 7.71875 -11.625 +L 11.71875 4 +z +" id="DejaVuSans-44"/> + <path d="M 8.015625 75.875 +L 15.828125 75.875 +Q 23.140625 64.359375 26.78125 53.3125 +Q 30.421875 42.28125 30.421875 31.390625 +Q 30.421875 20.453125 26.78125 9.375 +Q 23.140625 -1.703125 15.828125 -13.1875 +L 8.015625 -13.1875 +Q 14.5 -2 17.703125 9.0625 +Q 20.90625 20.125 20.90625 31.390625 +Q 20.90625 42.671875 17.703125 53.65625 +Q 14.5 64.65625 8.015625 75.875 +z +" id="DejaVuSans-41"/> + </defs> + <g transform="translate(177.738125 50.355938)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-40"/> + <use x="39.013672" xlink:href="#DejaVuSans-115"/> + <use x="91.113281" xlink:href="#DejaVuSans-111"/> + <use x="152.294922" xlink:href="#DejaVuSans-114"/> + <use x="193.408203" xlink:href="#DejaVuSans-116"/> + <use x="232.617188" xlink:href="#DejaVuSans-101"/> + <use x="294.140625" xlink:href="#DejaVuSans-100"/> + <use x="357.617188" xlink:href="#DejaVuSans-32"/> + <use x="389.404297" xlink:href="#DejaVuSans-105"/> + <use x="417.1875" xlink:href="#DejaVuSans-110"/> + <use x="480.566406" xlink:href="#DejaVuSans-100"/> + <use x="544.042969" xlink:href="#DejaVuSans-101"/> + <use x="603.816406" xlink:href="#DejaVuSans-120"/> + <use x="662.996094" xlink:href="#DejaVuSans-44"/> + <use x="694.783203" xlink:href="#DejaVuSans-32"/> + <use x="726.570312" xlink:href="#DejaVuSans-112"/> + <use x="790.046875" xlink:href="#DejaVuSans-101"/> + <use x="851.570312" xlink:href="#DejaVuSans-114"/> + <use x="890.933594" xlink:href="#DejaVuSans-109"/> + <use x="988.345703" xlink:href="#DejaVuSans-117"/> + <use x="1051.724609" xlink:href="#DejaVuSans-116"/> + <use x="1090.933594" xlink:href="#DejaVuSans-101"/> + <use x="1152.457031" xlink:href="#DejaVuSans-100"/> + <use x="1215.933594" xlink:href="#DejaVuSans-32"/> + <use x="1247.720703" xlink:href="#DejaVuSans-105"/> + <use x="1275.503906" xlink:href="#DejaVuSans-110"/> + <use x="1338.882812" xlink:href="#DejaVuSans-100"/> + <use x="1402.359375" xlink:href="#DejaVuSans-101"/> + <use x="1462.132812" xlink:href="#DejaVuSans-120"/> + <use x="1521.3125" xlink:href="#DejaVuSans-41"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p14d06b49f5"> + <rect height="997.92" width="892.8" x="81.538125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-permutation-separable.pdf b/plots/paper-permutation-separable.pdf new file mode 100644 index 0000000000000000000000000000000000000000..795d531336c1e4073b26f0add60f675e7b2f4830 Binary files /dev/null and b/plots/paper-permutation-separable.pdf differ diff --git a/plots/paper-permutation-separable.svg b/plots/paper-permutation-separable.svg new file mode 100644 index 0000000000000000000000000000000000000000..dfb85491d139df53c2b9163d956f890db03d2aef --- /dev/null +++ b/plots/paper-permutation-separable.svg @@ -0,0 +1,1427 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 981.538125 1067.839375" width="981.538125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 981.538125 1067.839375 +L 981.538125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +L 974.338125 7.2 +L 81.538125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p12a1606b12)" d="M 122.119943 1005.12 +L 122.119943 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m6e531635e8" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="122.119943" xlink:href="#m6e531635e8" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(115.757443 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p12a1606b12)" d="M 280.952891 1005.12 +L 280.952891 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="280.952891" xlink:href="#m6e531635e8" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 100 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(261.865391 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p12a1606b12)" d="M 439.785839 1005.12 +L 439.785839 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="439.785839" xlink:href="#m6e531635e8" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 200 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(420.698339 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p12a1606b12)" d="M 598.618787 1005.12 +L 598.618787 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="598.618787" xlink:href="#m6e531635e8" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 300 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +z +" id="DejaVuSans-51"/> + </defs> + <g transform="translate(579.531287 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p12a1606b12)" d="M 757.451735 1005.12 +L 757.451735 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="757.451735" xlink:href="#m6e531635e8" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 400 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(738.364235 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#p12a1606b12)" d="M 916.284683 1005.12 +L 916.284683 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="916.284683" xlink:href="#m6e531635e8" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 500 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(897.197183 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_7"> + <!-- Index in sorted list --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-73"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 45.40625 46.390625 +L 45.40625 75.984375 +L 54.390625 75.984375 +L 54.390625 0 +L 45.40625 0 +L 45.40625 8.203125 +Q 42.578125 3.328125 38.25 0.953125 +Q 33.9375 -1.421875 27.875 -1.421875 +Q 17.96875 -1.421875 11.734375 6.484375 +Q 5.515625 14.40625 5.515625 27.296875 +Q 5.515625 40.1875 11.734375 48.09375 +Q 17.96875 56 27.875 56 +Q 33.9375 56 38.25 53.625 +Q 42.578125 51.265625 45.40625 46.390625 +z +M 14.796875 27.296875 +Q 14.796875 17.390625 18.875 11.75 +Q 22.953125 6.109375 30.078125 6.109375 +Q 37.203125 6.109375 41.296875 11.75 +Q 45.40625 17.390625 45.40625 27.296875 +Q 45.40625 37.203125 41.296875 42.84375 +Q 37.203125 48.484375 30.078125 48.484375 +Q 22.953125 48.484375 18.875 42.84375 +Q 14.796875 37.203125 14.796875 27.296875 +z +" id="DejaVuSans-100"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + <path d="M 54.890625 54.6875 +L 35.109375 28.078125 +L 55.90625 0 +L 45.3125 0 +L 29.390625 21.484375 +L 13.484375 0 +L 2.875 0 +L 24.125 28.609375 +L 4.6875 54.6875 +L 15.28125 54.6875 +L 29.78125 35.203125 +L 44.28125 54.6875 +z +" id="DejaVuSans-120"/> + <path id="DejaVuSans-32"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + </defs> + <g transform="translate(407.389531 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-115"/> + <use x="482.136719" xlink:href="#DejaVuSans-111"/> + <use x="543.318359" xlink:href="#DejaVuSans-114"/> + <use x="584.431641" xlink:href="#DejaVuSans-116"/> + <use x="623.640625" xlink:href="#DejaVuSans-101"/> + <use x="685.164062" xlink:href="#DejaVuSans-100"/> + <use x="748.640625" xlink:href="#DejaVuSans-32"/> + <use x="780.427734" xlink:href="#DejaVuSans-108"/> + <use x="808.210938" xlink:href="#DejaVuSans-105"/> + <use x="835.994141" xlink:href="#DejaVuSans-115"/> + <use x="888.09375" xlink:href="#DejaVuSans-116"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_13"> + <path clip-path="url(#p12a1606b12)" d="M 81.538125 959.76 +L 974.338125 959.76 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m86b25c27e2" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m86b25c27e2" y="959.76"/> + </g> + </g> + <g id="text_8"> + <!-- 0 --> + <g transform="translate(61.813125 967.358438)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_15"> + <path clip-path="url(#p12a1606b12)" d="M 81.538125 782.225753 +L 974.338125 782.225753 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m86b25c27e2" y="782.225753"/> + </g> + </g> + <g id="text_9"> + <!-- 100 --> + <g transform="translate(36.363125 789.824191)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_17"> + <path clip-path="url(#p12a1606b12)" d="M 81.538125 604.691507 +L 974.338125 604.691507 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m86b25c27e2" y="604.691507"/> + </g> + </g> + <g id="text_10"> + <!-- 200 --> + <g transform="translate(36.363125 612.289944)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_19"> + <path clip-path="url(#p12a1606b12)" d="M 81.538125 427.15726 +L 974.338125 427.15726 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m86b25c27e2" y="427.15726"/> + </g> + </g> + <g id="text_11"> + <!-- 300 --> + <g transform="translate(36.363125 434.755698)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_21"> + <path clip-path="url(#p12a1606b12)" d="M 81.538125 249.623014 +L 974.338125 249.623014 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m86b25c27e2" y="249.623014"/> + </g> + </g> + <g id="text_12"> + <!-- 400 --> + <g transform="translate(36.363125 257.221451)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_23"> + <path clip-path="url(#p12a1606b12)" d="M 81.538125 72.088767 +L 974.338125 72.088767 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m86b25c27e2" y="72.088767"/> + </g> + </g> + <g id="text_13"> + <!-- 500 --> + <g transform="translate(36.363125 79.687205)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Index in permutation --> + <defs> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + </defs> + <g transform="translate(26.955938 642.300469)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-112"/> + <use x="493.513672" xlink:href="#DejaVuSans-101"/> + <use x="555.037109" xlink:href="#DejaVuSans-114"/> + <use x="594.400391" xlink:href="#DejaVuSans-109"/> + <use x="691.8125" xlink:href="#DejaVuSans-117"/> + <use x="755.191406" xlink:href="#DejaVuSans-116"/> + <use x="794.400391" xlink:href="#DejaVuSans-97"/> + <use x="855.679688" xlink:href="#DejaVuSans-116"/> + <use x="894.888672" xlink:href="#DejaVuSans-105"/> + <use x="922.671875" xlink:href="#DejaVuSans-111"/> + <use x="983.853516" xlink:href="#DejaVuSans-110"/> + </g> + </g> + </g> + <g id="line2d_25"> + <defs> + <path d="M 0 3 +C 0.795609 3 1.55874 2.683901 2.12132 2.12132 +C 2.683901 1.55874 3 0.795609 3 0 +C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 +C 1.55874 -2.683901 0.795609 -3 0 -3 +C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 +C -2.683901 -1.55874 -3 -0.795609 -3 0 +C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 +C -1.55874 2.683901 -0.795609 3 0 3 +z +" id="m015a5ef506" style="stroke:#343837;"/> + </defs> + <g clip-path="url(#p12a1606b12)"> + <use style="fill:#343837;stroke:#343837;" x="122.119943" xlink:href="#m015a5ef506" y="428.932603"/> + <use style="fill:#343837;stroke:#343837;" x="123.708273" xlink:href="#m015a5ef506" y="430.707945"/> + <use style="fill:#343837;stroke:#343837;" x="125.296602" xlink:href="#m015a5ef506" y="432.483288"/> + <use style="fill:#343837;stroke:#343837;" x="126.884932" xlink:href="#m015a5ef506" y="434.25863"/> + <use style="fill:#343837;stroke:#343837;" x="128.473261" xlink:href="#m015a5ef506" y="425.381918"/> + <use style="fill:#343837;stroke:#343837;" x="130.061591" xlink:href="#m015a5ef506" y="427.15726"/> + <use style="fill:#343837;stroke:#343837;" x="131.64992" xlink:href="#m015a5ef506" y="421.831233"/> + <use style="fill:#343837;stroke:#343837;" x="133.23825" xlink:href="#m015a5ef506" y="423.606575"/> + <use style="fill:#343837;stroke:#343837;" x="134.826579" xlink:href="#m015a5ef506" y="448.46137"/> + <use style="fill:#343837;stroke:#343837;" x="136.414908" xlink:href="#m015a5ef506" y="446.686027"/> + <use style="fill:#343837;stroke:#343837;" x="138.003238" xlink:href="#m015a5ef506" y="444.910685"/> + <use style="fill:#343837;stroke:#343837;" x="139.591567" xlink:href="#m015a5ef506" y="443.135342"/> + <use style="fill:#343837;stroke:#343837;" x="141.179897" xlink:href="#m015a5ef506" y="437.809315"/> + <use style="fill:#343837;stroke:#343837;" x="142.768226" xlink:href="#m015a5ef506" y="436.033973"/> + <use style="fill:#343837;stroke:#343837;" x="144.356556" xlink:href="#m015a5ef506" y="441.36"/> + <use style="fill:#343837;stroke:#343837;" x="145.944885" xlink:href="#m015a5ef506" y="439.584658"/> + <use style="fill:#343837;stroke:#343837;" x="147.533215" xlink:href="#m015a5ef506" y="412.954521"/> + <use style="fill:#343837;stroke:#343837;" x="149.121544" xlink:href="#m015a5ef506" y="411.179178"/> + <use style="fill:#343837;stroke:#343837;" x="150.709874" xlink:href="#m015a5ef506" y="407.628493"/> + <use style="fill:#343837;stroke:#343837;" x="152.298203" xlink:href="#m015a5ef506" y="409.403836"/> + <use style="fill:#343837;stroke:#343837;" x="153.886533" xlink:href="#m015a5ef506" y="414.729863"/> + <use style="fill:#343837;stroke:#343837;" x="155.474862" xlink:href="#m015a5ef506" y="416.505205"/> + <use style="fill:#343837;stroke:#343837;" x="157.063192" xlink:href="#m015a5ef506" y="418.280548"/> + <use style="fill:#343837;stroke:#343837;" x="158.651521" xlink:href="#m015a5ef506" y="420.05589"/> + <use style="fill:#343837;stroke:#343837;" x="160.239851" xlink:href="#m015a5ef506" y="404.077808"/> + <use style="fill:#343837;stroke:#343837;" x="161.82818" xlink:href="#m015a5ef506" y="405.853151"/> + <use style="fill:#343837;stroke:#343837;" x="163.41651" xlink:href="#m015a5ef506" y="400.527123"/> + <use style="fill:#343837;stroke:#343837;" x="165.004839" xlink:href="#m015a5ef506" y="402.302466"/> + <use style="fill:#343837;stroke:#343837;" x="166.593169" xlink:href="#m015a5ef506" y="398.751781"/> + <use style="fill:#343837;stroke:#343837;" x="168.181498" xlink:href="#m015a5ef506" y="396.976438"/> + <use style="fill:#343837;stroke:#343837;" x="169.769828" xlink:href="#m015a5ef506" y="393.425753"/> + <use style="fill:#343837;stroke:#343837;" x="171.358157" xlink:href="#m015a5ef506" y="395.201096"/> + <use style="fill:#343837;stroke:#343837;" x="172.946487" xlink:href="#m015a5ef506" y="453.787397"/> + <use style="fill:#343837;stroke:#343837;" x="174.534816" xlink:href="#m015a5ef506" y="455.56274"/> + <use style="fill:#343837;stroke:#343837;" x="176.123145" xlink:href="#m015a5ef506" y="450.236712"/> + <use style="fill:#343837;stroke:#343837;" x="177.711475" xlink:href="#m015a5ef506" y="452.012055"/> + <use style="fill:#343837;stroke:#343837;" x="179.299804" xlink:href="#m015a5ef506" y="459.113425"/> + <use style="fill:#343837;stroke:#343837;" x="180.888134" xlink:href="#m015a5ef506" y="457.338082"/> + <use style="fill:#343837;stroke:#343837;" x="182.476463" xlink:href="#m015a5ef506" y="460.888767"/> + <use style="fill:#343837;stroke:#343837;" x="184.064793" xlink:href="#m015a5ef506" y="462.66411"/> + <use style="fill:#343837;stroke:#343837;" x="185.653122" xlink:href="#m015a5ef506" y="469.765479"/> + <use style="fill:#343837;stroke:#343837;" x="187.241452" xlink:href="#m015a5ef506" y="467.990137"/> + <use style="fill:#343837;stroke:#343837;" x="188.829781" xlink:href="#m015a5ef506" y="464.439452"/> + <use style="fill:#343837;stroke:#343837;" x="190.418111" xlink:href="#m015a5ef506" y="466.214795"/> + <use style="fill:#343837;stroke:#343837;" x="192.00644" xlink:href="#m015a5ef506" y="475.091507"/> + <use style="fill:#343837;stroke:#343837;" x="193.59477" xlink:href="#m015a5ef506" y="476.866849"/> + <use style="fill:#343837;stroke:#343837;" x="195.183099" xlink:href="#m015a5ef506" y="473.316164"/> + <use style="fill:#343837;stroke:#343837;" x="196.771429" xlink:href="#m015a5ef506" y="471.540822"/> + <use style="fill:#343837;stroke:#343837;" x="198.359758" xlink:href="#m015a5ef506" y="485.743562"/> + <use style="fill:#343837;stroke:#343837;" x="199.948088" xlink:href="#m015a5ef506" y="487.518904"/> + <use style="fill:#343837;stroke:#343837;" x="201.536417" xlink:href="#m015a5ef506" y="489.294247"/> + <use style="fill:#343837;stroke:#343837;" x="203.124747" xlink:href="#m015a5ef506" y="491.069589"/> + <use style="fill:#343837;stroke:#343837;" x="204.713076" xlink:href="#m015a5ef506" y="480.417534"/> + <use style="fill:#343837;stroke:#343837;" x="206.301406" xlink:href="#m015a5ef506" y="478.642192"/> + <use style="fill:#343837;stroke:#343837;" x="207.889735" xlink:href="#m015a5ef506" y="482.192877"/> + <use style="fill:#343837;stroke:#343837;" x="209.478065" xlink:href="#m015a5ef506" y="483.968219"/> + <use style="fill:#343837;stroke:#343837;" x="211.066394" xlink:href="#m015a5ef506" y="505.272329"/> + <use style="fill:#343837;stroke:#343837;" x="212.654723" xlink:href="#m015a5ef506" y="503.496986"/> + <use style="fill:#343837;stroke:#343837;" x="214.243053" xlink:href="#m015a5ef506" y="501.721644"/> + <use style="fill:#343837;stroke:#343837;" x="215.831382" xlink:href="#m015a5ef506" y="499.946301"/> + <use style="fill:#343837;stroke:#343837;" x="217.419712" xlink:href="#m015a5ef506" y="494.620274"/> + <use style="fill:#343837;stroke:#343837;" x="219.008041" xlink:href="#m015a5ef506" y="492.844932"/> + <use style="fill:#343837;stroke:#343837;" x="220.596371" xlink:href="#m015a5ef506" y="498.170959"/> + <use style="fill:#343837;stroke:#343837;" x="222.1847" xlink:href="#m015a5ef506" y="496.395616"/> + <use style="fill:#343837;stroke:#343837;" x="223.77303" xlink:href="#m015a5ef506" y="331.288767"/> + <use style="fill:#343837;stroke:#343837;" x="225.361359" xlink:href="#m015a5ef506" y="329.513425"/> + <use style="fill:#343837;stroke:#343837;" x="226.949689" xlink:href="#m015a5ef506" y="333.06411"/> + <use style="fill:#343837;stroke:#343837;" x="228.538018" xlink:href="#m015a5ef506" y="334.839452"/> + <use style="fill:#343837;stroke:#343837;" x="230.126348" xlink:href="#m015a5ef506" y="324.187397"/> + <use style="fill:#343837;stroke:#343837;" x="231.714677" xlink:href="#m015a5ef506" y="322.412055"/> + <use style="fill:#343837;stroke:#343837;" x="233.303007" xlink:href="#m015a5ef506" y="327.738082"/> + <use style="fill:#343837;stroke:#343837;" x="234.891336" xlink:href="#m015a5ef506" y="325.96274"/> + <use style="fill:#343837;stroke:#343837;" x="236.479666" xlink:href="#m015a5ef506" y="318.86137"/> + <use style="fill:#343837;stroke:#343837;" x="238.067995" xlink:href="#m015a5ef506" y="320.636712"/> + <use style="fill:#343837;stroke:#343837;" x="239.656325" xlink:href="#m015a5ef506" y="315.310685"/> + <use style="fill:#343837;stroke:#343837;" x="241.244654" xlink:href="#m015a5ef506" y="317.086027"/> + <use style="fill:#343837;stroke:#343837;" x="242.832984" xlink:href="#m015a5ef506" y="313.535342"/> + <use style="fill:#343837;stroke:#343837;" x="244.421313" xlink:href="#m015a5ef506" y="311.76"/> + <use style="fill:#343837;stroke:#343837;" x="246.009643" xlink:href="#m015a5ef506" y="309.984658"/> + <use style="fill:#343837;stroke:#343837;" x="247.597972" xlink:href="#m015a5ef506" y="308.209315"/> + <use style="fill:#343837;stroke:#343837;" x="249.186301" xlink:href="#m015a5ef506" y="290.45589"/> + <use style="fill:#343837;stroke:#343837;" x="250.774631" xlink:href="#m015a5ef506" y="292.231233"/> + <use style="fill:#343837;stroke:#343837;" x="252.36296" xlink:href="#m015a5ef506" y="288.680548"/> + <use style="fill:#343837;stroke:#343837;" x="253.95129" xlink:href="#m015a5ef506" y="286.905205"/> + <use style="fill:#343837;stroke:#343837;" x="255.539619" xlink:href="#m015a5ef506" y="279.803836"/> + <use style="fill:#343837;stroke:#343837;" x="257.127949" xlink:href="#m015a5ef506" y="281.579178"/> + <use style="fill:#343837;stroke:#343837;" x="258.716278" xlink:href="#m015a5ef506" y="285.129863"/> + <use style="fill:#343837;stroke:#343837;" x="260.304608" xlink:href="#m015a5ef506" y="283.354521"/> + <use style="fill:#343837;stroke:#343837;" x="261.892937" xlink:href="#m015a5ef506" y="299.332603"/> + <use style="fill:#343837;stroke:#343837;" x="263.481267" xlink:href="#m015a5ef506" y="297.55726"/> + <use style="fill:#343837;stroke:#343837;" x="265.069596" xlink:href="#m015a5ef506" y="295.781918"/> + <use style="fill:#343837;stroke:#343837;" x="266.657926" xlink:href="#m015a5ef506" y="294.006575"/> + <use style="fill:#343837;stroke:#343837;" x="268.246255" xlink:href="#m015a5ef506" y="301.107945"/> + <use style="fill:#343837;stroke:#343837;" x="269.834585" xlink:href="#m015a5ef506" y="302.883288"/> + <use style="fill:#343837;stroke:#343837;" x="271.422914" xlink:href="#m015a5ef506" y="306.433973"/> + <use style="fill:#343837;stroke:#343837;" x="273.011244" xlink:href="#m015a5ef506" y="304.65863"/> + <use style="fill:#343837;stroke:#343837;" x="274.599573" xlink:href="#m015a5ef506" y="377.447671"/> + <use style="fill:#343837;stroke:#343837;" x="276.187903" xlink:href="#m015a5ef506" y="375.672329"/> + <use style="fill:#343837;stroke:#343837;" x="277.776232" xlink:href="#m015a5ef506" y="373.896986"/> + <use style="fill:#343837;stroke:#343837;" x="279.364562" xlink:href="#m015a5ef506" y="372.121644"/> + <use style="fill:#343837;stroke:#343837;" x="280.952891" xlink:href="#m015a5ef506" y="370.346301"/> + <use style="fill:#343837;stroke:#343837;" x="282.541221" xlink:href="#m015a5ef506" y="368.570959"/> + <use style="fill:#343837;stroke:#343837;" x="284.12955" xlink:href="#m015a5ef506" y="366.795616"/> + <use style="fill:#343837;stroke:#343837;" x="285.717879" xlink:href="#m015a5ef506" y="365.020274"/> + <use style="fill:#343837;stroke:#343837;" x="287.306209" xlink:href="#m015a5ef506" y="386.324384"/> + <use style="fill:#343837;stroke:#343837;" x="288.894538" xlink:href="#m015a5ef506" y="388.099726"/> + <use style="fill:#343837;stroke:#343837;" x="290.482868" xlink:href="#m015a5ef506" y="389.875068"/> + <use style="fill:#343837;stroke:#343837;" x="292.071197" xlink:href="#m015a5ef506" y="391.650411"/> + <use style="fill:#343837;stroke:#343837;" x="293.659527" xlink:href="#m015a5ef506" y="382.773699"/> + <use style="fill:#343837;stroke:#343837;" x="295.247856" xlink:href="#m015a5ef506" y="384.549041"/> + <use style="fill:#343837;stroke:#343837;" x="296.836186" xlink:href="#m015a5ef506" y="380.998356"/> + <use style="fill:#343837;stroke:#343837;" x="298.424515" xlink:href="#m015a5ef506" y="379.223014"/> + <use style="fill:#343837;stroke:#343837;" x="300.012845" xlink:href="#m015a5ef506" y="340.165479"/> + <use style="fill:#343837;stroke:#343837;" x="301.601174" xlink:href="#m015a5ef506" y="341.940822"/> + <use style="fill:#343837;stroke:#343837;" x="303.189504" xlink:href="#m015a5ef506" y="338.390137"/> + <use style="fill:#343837;stroke:#343837;" x="304.777833" xlink:href="#m015a5ef506" y="336.614795"/> + <use style="fill:#343837;stroke:#343837;" x="306.366163" xlink:href="#m015a5ef506" y="345.491507"/> + <use style="fill:#343837;stroke:#343837;" x="307.954492" xlink:href="#m015a5ef506" y="343.716164"/> + <use style="fill:#343837;stroke:#343837;" x="309.542822" xlink:href="#m015a5ef506" y="349.042192"/> + <use style="fill:#343837;stroke:#343837;" x="311.131151" xlink:href="#m015a5ef506" y="347.266849"/> + <use style="fill:#343837;stroke:#343837;" x="312.719481" xlink:href="#m015a5ef506" y="356.143562"/> + <use style="fill:#343837;stroke:#343837;" x="314.30781" xlink:href="#m015a5ef506" y="354.368219"/> + <use style="fill:#343837;stroke:#343837;" x="315.89614" xlink:href="#m015a5ef506" y="350.817534"/> + <use style="fill:#343837;stroke:#343837;" x="317.484469" xlink:href="#m015a5ef506" y="352.592877"/> + <use style="fill:#343837;stroke:#343837;" x="319.072799" xlink:href="#m015a5ef506" y="361.469589"/> + <use style="fill:#343837;stroke:#343837;" x="320.661128" xlink:href="#m015a5ef506" y="363.244932"/> + <use style="fill:#343837;stroke:#343837;" x="322.249458" xlink:href="#m015a5ef506" y="359.694247"/> + <use style="fill:#343837;stroke:#343837;" x="323.837787" xlink:href="#m015a5ef506" y="357.918904"/> + <use style="fill:#343837;stroke:#343837;" x="325.426116" xlink:href="#m015a5ef506" y="66.76274"/> + <use style="fill:#343837;stroke:#343837;" x="327.014446" xlink:href="#m015a5ef506" y="68.538082"/> + <use style="fill:#343837;stroke:#343837;" x="328.602775" xlink:href="#m015a5ef506" y="72.088767"/> + <use style="fill:#343837;stroke:#343837;" x="330.191105" xlink:href="#m015a5ef506" y="70.313425"/> + <use style="fill:#343837;stroke:#343837;" x="331.779434" xlink:href="#m015a5ef506" y="77.414795"/> + <use style="fill:#343837;stroke:#343837;" x="333.367764" xlink:href="#m015a5ef506" y="79.190137"/> + <use style="fill:#343837;stroke:#343837;" x="334.956093" xlink:href="#m015a5ef506" y="75.639452"/> + <use style="fill:#343837;stroke:#343837;" x="336.544423" xlink:href="#m015a5ef506" y="73.86411"/> + <use style="fill:#343837;stroke:#343837;" x="338.132752" xlink:href="#m015a5ef506" y="54.335342"/> + <use style="fill:#343837;stroke:#343837;" x="339.721082" xlink:href="#m015a5ef506" y="52.56"/> + <use style="fill:#343837;stroke:#343837;" x="341.309411" xlink:href="#m015a5ef506" y="56.110685"/> + <use style="fill:#343837;stroke:#343837;" x="342.897741" xlink:href="#m015a5ef506" y="57.886027"/> + <use style="fill:#343837;stroke:#343837;" x="344.48607" xlink:href="#m015a5ef506" y="63.212055"/> + <use style="fill:#343837;stroke:#343837;" x="346.0744" xlink:href="#m015a5ef506" y="64.987397"/> + <use style="fill:#343837;stroke:#343837;" x="347.662729" xlink:href="#m015a5ef506" y="61.436712"/> + <use style="fill:#343837;stroke:#343837;" x="349.251059" xlink:href="#m015a5ef506" y="59.66137"/> + <use style="fill:#343837;stroke:#343837;" x="350.839388" xlink:href="#m015a5ef506" y="100.494247"/> + <use style="fill:#343837;stroke:#343837;" x="352.427718" xlink:href="#m015a5ef506" y="98.718904"/> + <use style="fill:#343837;stroke:#343837;" x="354.016047" xlink:href="#m015a5ef506" y="96.943562"/> + <use style="fill:#343837;stroke:#343837;" x="355.604377" xlink:href="#m015a5ef506" y="95.168219"/> + <use style="fill:#343837;stroke:#343837;" x="357.192706" xlink:href="#m015a5ef506" y="102.269589"/> + <use style="fill:#343837;stroke:#343837;" x="358.781036" xlink:href="#m015a5ef506" y="104.044932"/> + <use style="fill:#343837;stroke:#343837;" x="360.369365" xlink:href="#m015a5ef506" y="107.595616"/> + <use style="fill:#343837;stroke:#343837;" x="361.957694" xlink:href="#m015a5ef506" y="105.820274"/> + <use style="fill:#343837;stroke:#343837;" x="363.546024" xlink:href="#m015a5ef506" y="93.392877"/> + <use style="fill:#343837;stroke:#343837;" x="365.134353" xlink:href="#m015a5ef506" y="91.617534"/> + <use style="fill:#343837;stroke:#343837;" x="366.722683" xlink:href="#m015a5ef506" y="88.066849"/> + <use style="fill:#343837;stroke:#343837;" x="368.311012" xlink:href="#m015a5ef506" y="89.842192"/> + <use style="fill:#343837;stroke:#343837;" x="369.899342" xlink:href="#m015a5ef506" y="84.516164"/> + <use style="fill:#343837;stroke:#343837;" x="371.487671" xlink:href="#m015a5ef506" y="86.291507"/> + <use style="fill:#343837;stroke:#343837;" x="373.076001" xlink:href="#m015a5ef506" y="82.740822"/> + <use style="fill:#343837;stroke:#343837;" x="374.66433" xlink:href="#m015a5ef506" y="80.965479"/> + <use style="fill:#343837;stroke:#343837;" x="376.25266" xlink:href="#m015a5ef506" y="150.203836"/> + <use style="fill:#343837;stroke:#343837;" x="377.840989" xlink:href="#m015a5ef506" y="148.428493"/> + <use style="fill:#343837;stroke:#343837;" x="379.429319" xlink:href="#m015a5ef506" y="146.653151"/> + <use style="fill:#343837;stroke:#343837;" x="381.017648" xlink:href="#m015a5ef506" y="144.877808"/> + <use style="fill:#343837;stroke:#343837;" x="382.605978" xlink:href="#m015a5ef506" y="141.327123"/> + <use style="fill:#343837;stroke:#343837;" x="384.194307" xlink:href="#m015a5ef506" y="143.102466"/> + <use style="fill:#343837;stroke:#343837;" x="385.782637" xlink:href="#m015a5ef506" y="137.776438"/> + <use style="fill:#343837;stroke:#343837;" x="387.370966" xlink:href="#m015a5ef506" y="139.551781"/> + <use style="fill:#343837;stroke:#343837;" x="388.959296" xlink:href="#m015a5ef506" y="162.631233"/> + <use style="fill:#343837;stroke:#343837;" x="390.547625" xlink:href="#m015a5ef506" y="164.406575"/> + <use style="fill:#343837;stroke:#343837;" x="392.135955" xlink:href="#m015a5ef506" y="160.85589"/> + <use style="fill:#343837;stroke:#343837;" x="393.724284" xlink:href="#m015a5ef506" y="159.080548"/> + <use style="fill:#343837;stroke:#343837;" x="395.312614" xlink:href="#m015a5ef506" y="157.305205"/> + <use style="fill:#343837;stroke:#343837;" x="396.900943" xlink:href="#m015a5ef506" y="155.529863"/> + <use style="fill:#343837;stroke:#343837;" x="398.489272" xlink:href="#m015a5ef506" y="151.979178"/> + <use style="fill:#343837;stroke:#343837;" x="400.077602" xlink:href="#m015a5ef506" y="153.754521"/> + <use style="fill:#343837;stroke:#343837;" x="401.665931" xlink:href="#m015a5ef506" y="127.124384"/> + <use style="fill:#343837;stroke:#343837;" x="403.254261" xlink:href="#m015a5ef506" y="128.899726"/> + <use style="fill:#343837;stroke:#343837;" x="404.84259" xlink:href="#m015a5ef506" y="123.573699"/> + <use style="fill:#343837;stroke:#343837;" x="406.43092" xlink:href="#m015a5ef506" y="125.349041"/> + <use style="fill:#343837;stroke:#343837;" x="408.019249" xlink:href="#m015a5ef506" y="136.001096"/> + <use style="fill:#343837;stroke:#343837;" x="409.607579" xlink:href="#m015a5ef506" y="134.225753"/> + <use style="fill:#343837;stroke:#343837;" x="411.195908" xlink:href="#m015a5ef506" y="130.675068"/> + <use style="fill:#343837;stroke:#343837;" x="412.784238" xlink:href="#m015a5ef506" y="132.450411"/> + <use style="fill:#343837;stroke:#343837;" x="414.372567" xlink:href="#m015a5ef506" y="118.247671"/> + <use style="fill:#343837;stroke:#343837;" x="415.960897" xlink:href="#m015a5ef506" y="116.472329"/> + <use style="fill:#343837;stroke:#343837;" x="417.549226" xlink:href="#m015a5ef506" y="120.023014"/> + <use style="fill:#343837;stroke:#343837;" x="419.137556" xlink:href="#m015a5ef506" y="121.798356"/> + <use style="fill:#343837;stroke:#343837;" x="420.725885" xlink:href="#m015a5ef506" y="112.921644"/> + <use style="fill:#343837;stroke:#343837;" x="422.314215" xlink:href="#m015a5ef506" y="114.696986"/> + <use style="fill:#343837;stroke:#343837;" x="423.902544" xlink:href="#m015a5ef506" y="111.146301"/> + <use style="fill:#343837;stroke:#343837;" x="425.490874" xlink:href="#m015a5ef506" y="109.370959"/> + <use style="fill:#343837;stroke:#343837;" x="427.079203" xlink:href="#m015a5ef506" y="242.521644"/> + <use style="fill:#343837;stroke:#343837;" x="428.667533" xlink:href="#m015a5ef506" y="240.746301"/> + <use style="fill:#343837;stroke:#343837;" x="430.255862" xlink:href="#m015a5ef506" y="238.970959"/> + <use style="fill:#343837;stroke:#343837;" x="431.844192" xlink:href="#m015a5ef506" y="237.195616"/> + <use style="fill:#343837;stroke:#343837;" x="433.432521" xlink:href="#m015a5ef506" y="247.847671"/> + <use style="fill:#343837;stroke:#343837;" x="435.02085" xlink:href="#m015a5ef506" y="249.623014"/> + <use style="fill:#343837;stroke:#343837;" x="436.60918" xlink:href="#m015a5ef506" y="246.072329"/> + <use style="fill:#343837;stroke:#343837;" x="438.197509" xlink:href="#m015a5ef506" y="244.296986"/> + <use style="fill:#343837;stroke:#343837;" x="439.785839" xlink:href="#m015a5ef506" y="235.420274"/> + <use style="fill:#343837;stroke:#343837;" x="441.374168" xlink:href="#m015a5ef506" y="233.644932"/> + <use style="fill:#343837;stroke:#343837;" x="442.962498" xlink:href="#m015a5ef506" y="231.869589"/> + <use style="fill:#343837;stroke:#343837;" x="444.550827" xlink:href="#m015a5ef506" y="230.094247"/> + <use style="fill:#343837;stroke:#343837;" x="446.139157" xlink:href="#m015a5ef506" y="224.768219"/> + <use style="fill:#343837;stroke:#343837;" x="447.727486" xlink:href="#m015a5ef506" y="222.992877"/> + <use style="fill:#343837;stroke:#343837;" x="449.315816" xlink:href="#m015a5ef506" y="228.318904"/> + <use style="fill:#343837;stroke:#343837;" x="450.904145" xlink:href="#m015a5ef506" y="226.543562"/> + <use style="fill:#343837;stroke:#343837;" x="452.492475" xlink:href="#m015a5ef506" y="269.151781"/> + <use style="fill:#343837;stroke:#343837;" x="454.080804" xlink:href="#m015a5ef506" y="270.927123"/> + <use style="fill:#343837;stroke:#343837;" x="455.669134" xlink:href="#m015a5ef506" y="267.376438"/> + <use style="fill:#343837;stroke:#343837;" x="457.257463" xlink:href="#m015a5ef506" y="265.601096"/> + <use style="fill:#343837;stroke:#343837;" x="458.845793" xlink:href="#m015a5ef506" y="272.702466"/> + <use style="fill:#343837;stroke:#343837;" x="460.434122" xlink:href="#m015a5ef506" y="274.477808"/> + <use style="fill:#343837;stroke:#343837;" x="462.022452" xlink:href="#m015a5ef506" y="276.253151"/> + <use style="fill:#343837;stroke:#343837;" x="463.610781" xlink:href="#m015a5ef506" y="278.028493"/> + <use style="fill:#343837;stroke:#343837;" x="465.199111" xlink:href="#m015a5ef506" y="256.724384"/> + <use style="fill:#343837;stroke:#343837;" x="466.78744" xlink:href="#m015a5ef506" y="254.949041"/> + <use style="fill:#343837;stroke:#343837;" x="468.37577" xlink:href="#m015a5ef506" y="251.398356"/> + <use style="fill:#343837;stroke:#343837;" x="469.964099" xlink:href="#m015a5ef506" y="253.173699"/> + <use style="fill:#343837;stroke:#343837;" x="471.552429" xlink:href="#m015a5ef506" y="262.050411"/> + <use style="fill:#343837;stroke:#343837;" x="473.140758" xlink:href="#m015a5ef506" y="263.825753"/> + <use style="fill:#343837;stroke:#343837;" x="474.729087" xlink:href="#m015a5ef506" y="260.275068"/> + <use style="fill:#343837;stroke:#343837;" x="476.317417" xlink:href="#m015a5ef506" y="258.499726"/> + <use style="fill:#343837;stroke:#343837;" x="477.905746" xlink:href="#m015a5ef506" y="194.587397"/> + <use style="fill:#343837;stroke:#343837;" x="479.494076" xlink:href="#m015a5ef506" y="196.36274"/> + <use style="fill:#343837;stroke:#343837;" x="481.082405" xlink:href="#m015a5ef506" y="199.913425"/> + <use style="fill:#343837;stroke:#343837;" x="482.670735" xlink:href="#m015a5ef506" y="198.138082"/> + <use style="fill:#343837;stroke:#343837;" x="484.259064" xlink:href="#m015a5ef506" y="201.688767"/> + <use style="fill:#343837;stroke:#343837;" x="485.847394" xlink:href="#m015a5ef506" y="203.46411"/> + <use style="fill:#343837;stroke:#343837;" x="487.435723" xlink:href="#m015a5ef506" y="205.239452"/> + <use style="fill:#343837;stroke:#343837;" x="489.024053" xlink:href="#m015a5ef506" y="207.014795"/> + <use style="fill:#343837;stroke:#343837;" x="490.612382" xlink:href="#m015a5ef506" y="214.116164"/> + <use style="fill:#343837;stroke:#343837;" x="492.200712" xlink:href="#m015a5ef506" y="212.340822"/> + <use style="fill:#343837;stroke:#343837;" x="493.789041" xlink:href="#m015a5ef506" y="210.565479"/> + <use style="fill:#343837;stroke:#343837;" x="495.377371" xlink:href="#m015a5ef506" y="208.790137"/> + <use style="fill:#343837;stroke:#343837;" x="496.9657" xlink:href="#m015a5ef506" y="221.217534"/> + <use style="fill:#343837;stroke:#343837;" x="498.55403" xlink:href="#m015a5ef506" y="219.442192"/> + <use style="fill:#343837;stroke:#343837;" x="500.142359" xlink:href="#m015a5ef506" y="215.891507"/> + <use style="fill:#343837;stroke:#343837;" x="501.730689" xlink:href="#m015a5ef506" y="217.666849"/> + <use style="fill:#343837;stroke:#343837;" x="503.319018" xlink:href="#m015a5ef506" y="171.507945"/> + <use style="fill:#343837;stroke:#343837;" x="504.907348" xlink:href="#m015a5ef506" y="169.732603"/> + <use style="fill:#343837;stroke:#343837;" x="506.495677" xlink:href="#m015a5ef506" y="167.95726"/> + <use style="fill:#343837;stroke:#343837;" x="508.084007" xlink:href="#m015a5ef506" y="166.181918"/> + <use style="fill:#343837;stroke:#343837;" x="509.672336" xlink:href="#m015a5ef506" y="173.283288"/> + <use style="fill:#343837;stroke:#343837;" x="511.260665" xlink:href="#m015a5ef506" y="175.05863"/> + <use style="fill:#343837;stroke:#343837;" x="512.848995" xlink:href="#m015a5ef506" y="176.833973"/> + <use style="fill:#343837;stroke:#343837;" x="514.437324" xlink:href="#m015a5ef506" y="178.609315"/> + <use style="fill:#343837;stroke:#343837;" x="516.025654" xlink:href="#m015a5ef506" y="180.384658"/> + <use style="fill:#343837;stroke:#343837;" x="517.613983" xlink:href="#m015a5ef506" y="182.16"/> + <use style="fill:#343837;stroke:#343837;" x="519.202313" xlink:href="#m015a5ef506" y="183.935342"/> + <use style="fill:#343837;stroke:#343837;" x="520.790642" xlink:href="#m015a5ef506" y="185.710685"/> + <use style="fill:#343837;stroke:#343837;" x="522.378972" xlink:href="#m015a5ef506" y="189.26137"/> + <use style="fill:#343837;stroke:#343837;" x="523.967301" xlink:href="#m015a5ef506" y="187.486027"/> + <use style="fill:#343837;stroke:#343837;" x="525.555631" xlink:href="#m015a5ef506" y="191.036712"/> + <use style="fill:#343837;stroke:#343837;" x="527.14396" xlink:href="#m015a5ef506" y="192.812055"/> + <use style="fill:#343837;stroke:#343837;" x="528.73229" xlink:href="#m015a5ef506" y="858.565479"/> + <use style="fill:#343837;stroke:#343837;" x="530.320619" xlink:href="#m015a5ef506" y="860.340822"/> + <use style="fill:#343837;stroke:#343837;" x="531.908949" xlink:href="#m015a5ef506" y="856.790137"/> + <use style="fill:#343837;stroke:#343837;" x="533.497278" xlink:href="#m015a5ef506" y="855.014795"/> + <use style="fill:#343837;stroke:#343837;" x="535.085608" xlink:href="#m015a5ef506" y="847.913425"/> + <use style="fill:#343837;stroke:#343837;" x="536.673937" xlink:href="#m015a5ef506" y="849.688767"/> + <use style="fill:#343837;stroke:#343837;" x="538.262267" xlink:href="#m015a5ef506" y="851.46411"/> + <use style="fill:#343837;stroke:#343837;" x="539.850596" xlink:href="#m015a5ef506" y="853.239452"/> + <use style="fill:#343837;stroke:#343837;" x="541.438926" xlink:href="#m015a5ef506" y="869.217534"/> + <use style="fill:#343837;stroke:#343837;" x="543.027255" xlink:href="#m015a5ef506" y="870.992877"/> + <use style="fill:#343837;stroke:#343837;" x="544.615585" xlink:href="#m015a5ef506" y="872.768219"/> + <use style="fill:#343837;stroke:#343837;" x="546.203914" xlink:href="#m015a5ef506" y="874.543562"/> + <use style="fill:#343837;stroke:#343837;" x="547.792243" xlink:href="#m015a5ef506" y="862.116164"/> + <use style="fill:#343837;stroke:#343837;" x="549.380573" xlink:href="#m015a5ef506" y="863.891507"/> + <use style="fill:#343837;stroke:#343837;" x="550.968902" xlink:href="#m015a5ef506" y="867.442192"/> + <use style="fill:#343837;stroke:#343837;" x="552.557232" xlink:href="#m015a5ef506" y="865.666849"/> + <use style="fill:#343837;stroke:#343837;" x="554.145561" xlink:href="#m015a5ef506" y="885.195616"/> + <use style="fill:#343837;stroke:#343837;" x="555.733891" xlink:href="#m015a5ef506" y="883.420274"/> + <use style="fill:#343837;stroke:#343837;" x="557.32222" xlink:href="#m015a5ef506" y="888.746301"/> + <use style="fill:#343837;stroke:#343837;" x="558.91055" xlink:href="#m015a5ef506" y="886.970959"/> + <use style="fill:#343837;stroke:#343837;" x="560.498879" xlink:href="#m015a5ef506" y="878.094247"/> + <use style="fill:#343837;stroke:#343837;" x="562.087209" xlink:href="#m015a5ef506" y="876.318904"/> + <use style="fill:#343837;stroke:#343837;" x="563.675538" xlink:href="#m015a5ef506" y="881.644932"/> + <use style="fill:#343837;stroke:#343837;" x="565.263868" xlink:href="#m015a5ef506" y="879.869589"/> + <use style="fill:#343837;stroke:#343837;" x="566.852197" xlink:href="#m015a5ef506" y="897.623014"/> + <use style="fill:#343837;stroke:#343837;" x="568.440527" xlink:href="#m015a5ef506" y="899.398356"/> + <use style="fill:#343837;stroke:#343837;" x="570.028856" xlink:href="#m015a5ef506" y="902.949041"/> + <use style="fill:#343837;stroke:#343837;" x="571.617186" xlink:href="#m015a5ef506" y="901.173699"/> + <use style="fill:#343837;stroke:#343837;" x="573.205515" xlink:href="#m015a5ef506" y="895.847671"/> + <use style="fill:#343837;stroke:#343837;" x="574.793845" xlink:href="#m015a5ef506" y="894.072329"/> + <use style="fill:#343837;stroke:#343837;" x="576.382174" xlink:href="#m015a5ef506" y="890.521644"/> + <use style="fill:#343837;stroke:#343837;" x="577.970504" xlink:href="#m015a5ef506" y="892.296986"/> + <use style="fill:#343837;stroke:#343837;" x="579.558833" xlink:href="#m015a5ef506" y="938.45589"/> + <use style="fill:#343837;stroke:#343837;" x="581.147163" xlink:href="#m015a5ef506" y="936.680548"/> + <use style="fill:#343837;stroke:#343837;" x="582.735492" xlink:href="#m015a5ef506" y="933.129863"/> + <use style="fill:#343837;stroke:#343837;" x="584.323821" xlink:href="#m015a5ef506" y="934.905205"/> + <use style="fill:#343837;stroke:#343837;" x="585.912151" xlink:href="#m015a5ef506" y="942.006575"/> + <use style="fill:#343837;stroke:#343837;" x="587.50048" xlink:href="#m015a5ef506" y="940.231233"/> + <use style="fill:#343837;stroke:#343837;" x="589.08881" xlink:href="#m015a5ef506" y="943.781918"/> + <use style="fill:#343837;stroke:#343837;" x="590.677139" xlink:href="#m015a5ef506" y="945.55726"/> + <use style="fill:#343837;stroke:#343837;" x="592.265469" xlink:href="#m015a5ef506" y="957.984658"/> + <use style="fill:#343837;stroke:#343837;" x="593.853798" xlink:href="#m015a5ef506" y="959.76"/> + <use style="fill:#343837;stroke:#343837;" x="595.442128" xlink:href="#m015a5ef506" y="956.209315"/> + <use style="fill:#343837;stroke:#343837;" x="597.030457" xlink:href="#m015a5ef506" y="954.433973"/> + <use style="fill:#343837;stroke:#343837;" x="598.618787" xlink:href="#m015a5ef506" y="949.107945"/> + <use style="fill:#343837;stroke:#343837;" x="600.207116" xlink:href="#m015a5ef506" y="947.332603"/> + <use style="fill:#343837;stroke:#343837;" x="601.795446" xlink:href="#m015a5ef506" y="950.883288"/> + <use style="fill:#343837;stroke:#343837;" x="603.383775" xlink:href="#m015a5ef506" y="952.65863"/> + <use style="fill:#343837;stroke:#343837;" x="604.972105" xlink:href="#m015a5ef506" y="911.825753"/> + <use style="fill:#343837;stroke:#343837;" x="606.560434" xlink:href="#m015a5ef506" y="913.601096"/> + <use style="fill:#343837;stroke:#343837;" x="608.148764" xlink:href="#m015a5ef506" y="917.151781"/> + <use style="fill:#343837;stroke:#343837;" x="609.737093" xlink:href="#m015a5ef506" y="915.376438"/> + <use style="fill:#343837;stroke:#343837;" x="611.325423" xlink:href="#m015a5ef506" y="904.724384"/> + <use style="fill:#343837;stroke:#343837;" x="612.913752" xlink:href="#m015a5ef506" y="906.499726"/> + <use style="fill:#343837;stroke:#343837;" x="614.502082" xlink:href="#m015a5ef506" y="908.275068"/> + <use style="fill:#343837;stroke:#343837;" x="616.090411" xlink:href="#m015a5ef506" y="910.050411"/> + <use style="fill:#343837;stroke:#343837;" x="617.678741" xlink:href="#m015a5ef506" y="927.803836"/> + <use style="fill:#343837;stroke:#343837;" x="619.26707" xlink:href="#m015a5ef506" y="926.028493"/> + <use style="fill:#343837;stroke:#343837;" x="620.8554" xlink:href="#m015a5ef506" y="929.579178"/> + <use style="fill:#343837;stroke:#343837;" x="622.443729" xlink:href="#m015a5ef506" y="931.354521"/> + <use style="fill:#343837;stroke:#343837;" x="624.032058" xlink:href="#m015a5ef506" y="920.702466"/> + <use style="fill:#343837;stroke:#343837;" x="625.620388" xlink:href="#m015a5ef506" y="918.927123"/> + <use style="fill:#343837;stroke:#343837;" x="627.208717" xlink:href="#m015a5ef506" y="924.253151"/> + <use style="fill:#343837;stroke:#343837;" x="628.797047" xlink:href="#m015a5ef506" y="922.477808"/> + <use style="fill:#343837;stroke:#343837;" x="630.385376" xlink:href="#m015a5ef506" y="775.124384"/> + <use style="fill:#343837;stroke:#343837;" x="631.973706" xlink:href="#m015a5ef506" y="773.349041"/> + <use style="fill:#343837;stroke:#343837;" x="633.562035" xlink:href="#m015a5ef506" y="769.798356"/> + <use style="fill:#343837;stroke:#343837;" x="635.150365" xlink:href="#m015a5ef506" y="771.573699"/> + <use style="fill:#343837;stroke:#343837;" x="636.738694" xlink:href="#m015a5ef506" y="764.472329"/> + <use style="fill:#343837;stroke:#343837;" x="638.327024" xlink:href="#m015a5ef506" y="762.696986"/> + <use style="fill:#343837;stroke:#343837;" x="639.915353" xlink:href="#m015a5ef506" y="768.023014"/> + <use style="fill:#343837;stroke:#343837;" x="641.503683" xlink:href="#m015a5ef506" y="766.247671"/> + <use style="fill:#343837;stroke:#343837;" x="643.092012" xlink:href="#m015a5ef506" y="776.899726"/> + <use style="fill:#343837;stroke:#343837;" x="644.680342" xlink:href="#m015a5ef506" y="778.675068"/> + <use style="fill:#343837;stroke:#343837;" x="646.268671" xlink:href="#m015a5ef506" y="780.450411"/> + <use style="fill:#343837;stroke:#343837;" x="647.857001" xlink:href="#m015a5ef506" y="782.225753"/> + <use style="fill:#343837;stroke:#343837;" x="649.44533" xlink:href="#m015a5ef506" y="785.776438"/> + <use style="fill:#343837;stroke:#343837;" x="651.03366" xlink:href="#m015a5ef506" y="784.001096"/> + <use style="fill:#343837;stroke:#343837;" x="652.621989" xlink:href="#m015a5ef506" y="789.327123"/> + <use style="fill:#343837;stroke:#343837;" x="654.210319" xlink:href="#m015a5ef506" y="787.551781"/> + <use style="fill:#343837;stroke:#343837;" x="655.798648" xlink:href="#m015a5ef506" y="748.494247"/> + <use style="fill:#343837;stroke:#343837;" x="657.386978" xlink:href="#m015a5ef506" y="750.269589"/> + <use style="fill:#343837;stroke:#343837;" x="658.975307" xlink:href="#m015a5ef506" y="752.044932"/> + <use style="fill:#343837;stroke:#343837;" x="660.563636" xlink:href="#m015a5ef506" y="753.820274"/> + <use style="fill:#343837;stroke:#343837;" x="662.151966" xlink:href="#m015a5ef506" y="755.595616"/> + <use style="fill:#343837;stroke:#343837;" x="663.740295" xlink:href="#m015a5ef506" y="757.370959"/> + <use style="fill:#343837;stroke:#343837;" x="665.328625" xlink:href="#m015a5ef506" y="759.146301"/> + <use style="fill:#343837;stroke:#343837;" x="666.916954" xlink:href="#m015a5ef506" y="760.921644"/> + <use style="fill:#343837;stroke:#343837;" x="668.505284" xlink:href="#m015a5ef506" y="734.291507"/> + <use style="fill:#343837;stroke:#343837;" x="670.093613" xlink:href="#m015a5ef506" y="736.066849"/> + <use style="fill:#343837;stroke:#343837;" x="671.681943" xlink:href="#m015a5ef506" y="737.842192"/> + <use style="fill:#343837;stroke:#343837;" x="673.270272" xlink:href="#m015a5ef506" y="739.617534"/> + <use style="fill:#343837;stroke:#343837;" x="674.858602" xlink:href="#m015a5ef506" y="746.718904"/> + <use style="fill:#343837;stroke:#343837;" x="676.446931" xlink:href="#m015a5ef506" y="744.943562"/> + <use style="fill:#343837;stroke:#343837;" x="678.035261" xlink:href="#m015a5ef506" y="741.392877"/> + <use style="fill:#343837;stroke:#343837;" x="679.62359" xlink:href="#m015a5ef506" y="743.168219"/> + <use style="fill:#343837;stroke:#343837;" x="681.21192" xlink:href="#m015a5ef506" y="828.384658"/> + <use style="fill:#343837;stroke:#343837;" x="682.800249" xlink:href="#m015a5ef506" y="826.609315"/> + <use style="fill:#343837;stroke:#343837;" x="684.388579" xlink:href="#m015a5ef506" y="831.935342"/> + <use style="fill:#343837;stroke:#343837;" x="685.976908" xlink:href="#m015a5ef506" y="830.16"/> + <use style="fill:#343837;stroke:#343837;" x="687.565238" xlink:href="#m015a5ef506" y="823.05863"/> + <use style="fill:#343837;stroke:#343837;" x="689.153567" xlink:href="#m015a5ef506" y="824.833973"/> + <use style="fill:#343837;stroke:#343837;" x="690.741897" xlink:href="#m015a5ef506" y="821.283288"/> + <use style="fill:#343837;stroke:#343837;" x="692.330226" xlink:href="#m015a5ef506" y="819.507945"/> + <use style="fill:#343837;stroke:#343837;" x="693.918556" xlink:href="#m015a5ef506" y="840.812055"/> + <use style="fill:#343837;stroke:#343837;" x="695.506885" xlink:href="#m015a5ef506" y="842.587397"/> + <use style="fill:#343837;stroke:#343837;" x="697.095214" xlink:href="#m015a5ef506" y="846.138082"/> + <use style="fill:#343837;stroke:#343837;" x="698.683544" xlink:href="#m015a5ef506" y="844.36274"/> + <use style="fill:#343837;stroke:#343837;" x="700.271873" xlink:href="#m015a5ef506" y="839.036712"/> + <use style="fill:#343837;stroke:#343837;" x="701.860203" xlink:href="#m015a5ef506" y="837.26137"/> + <use style="fill:#343837;stroke:#343837;" x="703.448532" xlink:href="#m015a5ef506" y="833.710685"/> + <use style="fill:#343837;stroke:#343837;" x="705.036862" xlink:href="#m015a5ef506" y="835.486027"/> + <use style="fill:#343837;stroke:#343837;" x="706.625191" xlink:href="#m015a5ef506" y="808.85589"/> + <use style="fill:#343837;stroke:#343837;" x="708.213521" xlink:href="#m015a5ef506" y="810.631233"/> + <use style="fill:#343837;stroke:#343837;" x="709.80185" xlink:href="#m015a5ef506" y="805.305205"/> + <use style="fill:#343837;stroke:#343837;" x="711.39018" xlink:href="#m015a5ef506" y="807.080548"/> + <use style="fill:#343837;stroke:#343837;" x="712.978509" xlink:href="#m015a5ef506" y="814.181918"/> + <use style="fill:#343837;stroke:#343837;" x="714.566839" xlink:href="#m015a5ef506" y="812.406575"/> + <use style="fill:#343837;stroke:#343837;" x="716.155168" xlink:href="#m015a5ef506" y="815.95726"/> + <use style="fill:#343837;stroke:#343837;" x="717.743498" xlink:href="#m015a5ef506" y="817.732603"/> + <use style="fill:#343837;stroke:#343837;" x="719.331827" xlink:href="#m015a5ef506" y="796.428493"/> + <use style="fill:#343837;stroke:#343837;" x="720.920157" xlink:href="#m015a5ef506" y="794.653151"/> + <use style="fill:#343837;stroke:#343837;" x="722.508486" xlink:href="#m015a5ef506" y="791.102466"/> + <use style="fill:#343837;stroke:#343837;" x="724.096816" xlink:href="#m015a5ef506" y="792.877808"/> + <use style="fill:#343837;stroke:#343837;" x="725.685145" xlink:href="#m015a5ef506" y="799.979178"/> + <use style="fill:#343837;stroke:#343837;" x="727.273475" xlink:href="#m015a5ef506" y="798.203836"/> + <use style="fill:#343837;stroke:#343837;" x="728.861804" xlink:href="#m015a5ef506" y="803.529863"/> + <use style="fill:#343837;stroke:#343837;" x="730.450134" xlink:href="#m015a5ef506" y="801.754521"/> + <use style="fill:#343837;stroke:#343837;" x="732.038463" xlink:href="#m015a5ef506" y="670.379178"/> + <use style="fill:#343837;stroke:#343837;" x="733.626792" xlink:href="#m015a5ef506" y="672.154521"/> + <use style="fill:#343837;stroke:#343837;" x="735.215122" xlink:href="#m015a5ef506" y="673.929863"/> + <use style="fill:#343837;stroke:#343837;" x="736.803451" xlink:href="#m015a5ef506" y="675.705205"/> + <use style="fill:#343837;stroke:#343837;" x="738.391781" xlink:href="#m015a5ef506" y="666.828493"/> + <use style="fill:#343837;stroke:#343837;" x="739.98011" xlink:href="#m015a5ef506" y="668.603836"/> + <use style="fill:#343837;stroke:#343837;" x="741.56844" xlink:href="#m015a5ef506" y="663.277808"/> + <use style="fill:#343837;stroke:#343837;" x="743.156769" xlink:href="#m015a5ef506" y="665.053151"/> + <use style="fill:#343837;stroke:#343837;" x="744.745099" xlink:href="#m015a5ef506" y="652.625753"/> + <use style="fill:#343837;stroke:#343837;" x="746.333428" xlink:href="#m015a5ef506" y="654.401096"/> + <use style="fill:#343837;stroke:#343837;" x="747.921758" xlink:href="#m015a5ef506" y="649.075068"/> + <use style="fill:#343837;stroke:#343837;" x="749.510087" xlink:href="#m015a5ef506" y="650.850411"/> + <use style="fill:#343837;stroke:#343837;" x="751.098417" xlink:href="#m015a5ef506" y="661.502466"/> + <use style="fill:#343837;stroke:#343837;" x="752.686746" xlink:href="#m015a5ef506" y="659.727123"/> + <use style="fill:#343837;stroke:#343837;" x="754.275076" xlink:href="#m015a5ef506" y="657.951781"/> + <use style="fill:#343837;stroke:#343837;" x="755.863405" xlink:href="#m015a5ef506" y="656.176438"/> + <use style="fill:#343837;stroke:#343837;" x="757.451735" xlink:href="#m015a5ef506" y="631.321644"/> + <use style="fill:#343837;stroke:#343837;" x="759.040064" xlink:href="#m015a5ef506" y="633.096986"/> + <use style="fill:#343837;stroke:#343837;" x="760.628394" xlink:href="#m015a5ef506" y="627.770959"/> + <use style="fill:#343837;stroke:#343837;" x="762.216723" xlink:href="#m015a5ef506" y="629.546301"/> + <use style="fill:#343837;stroke:#343837;" x="763.805053" xlink:href="#m015a5ef506" y="624.220274"/> + <use style="fill:#343837;stroke:#343837;" x="765.393382" xlink:href="#m015a5ef506" y="625.995616"/> + <use style="fill:#343837;stroke:#343837;" x="766.981712" xlink:href="#m015a5ef506" y="622.444932"/> + <use style="fill:#343837;stroke:#343837;" x="768.570041" xlink:href="#m015a5ef506" y="620.669589"/> + <use style="fill:#343837;stroke:#343837;" x="770.158371" xlink:href="#m015a5ef506" y="638.423014"/> + <use style="fill:#343837;stroke:#343837;" x="771.7467" xlink:href="#m015a5ef506" y="640.198356"/> + <use style="fill:#343837;stroke:#343837;" x="773.335029" xlink:href="#m015a5ef506" y="636.647671"/> + <use style="fill:#343837;stroke:#343837;" x="774.923359" xlink:href="#m015a5ef506" y="634.872329"/> + <use style="fill:#343837;stroke:#343837;" x="776.511688" xlink:href="#m015a5ef506" y="645.524384"/> + <use style="fill:#343837;stroke:#343837;" x="778.100018" xlink:href="#m015a5ef506" y="647.299726"/> + <use style="fill:#343837;stroke:#343837;" x="779.688347" xlink:href="#m015a5ef506" y="643.749041"/> + <use style="fill:#343837;stroke:#343837;" x="781.276677" xlink:href="#m015a5ef506" y="641.973699"/> + <use style="fill:#343837;stroke:#343837;" x="782.865006" xlink:href="#m015a5ef506" y="720.088767"/> + <use style="fill:#343837;stroke:#343837;" x="784.453336" xlink:href="#m015a5ef506" y="721.86411"/> + <use style="fill:#343837;stroke:#343837;" x="786.041665" xlink:href="#m015a5ef506" y="723.639452"/> + <use style="fill:#343837;stroke:#343837;" x="787.629995" xlink:href="#m015a5ef506" y="725.414795"/> + <use style="fill:#343837;stroke:#343837;" x="789.218324" xlink:href="#m015a5ef506" y="727.190137"/> + <use style="fill:#343837;stroke:#343837;" x="790.806654" xlink:href="#m015a5ef506" y="728.965479"/> + <use style="fill:#343837;stroke:#343837;" x="792.394983" xlink:href="#m015a5ef506" y="732.516164"/> + <use style="fill:#343837;stroke:#343837;" x="793.983313" xlink:href="#m015a5ef506" y="730.740822"/> + <use style="fill:#343837;stroke:#343837;" x="795.571642" xlink:href="#m015a5ef506" y="714.76274"/> + <use style="fill:#343837;stroke:#343837;" x="797.159972" xlink:href="#m015a5ef506" y="712.987397"/> + <use style="fill:#343837;stroke:#343837;" x="798.748301" xlink:href="#m015a5ef506" y="718.313425"/> + <use style="fill:#343837;stroke:#343837;" x="800.336631" xlink:href="#m015a5ef506" y="716.538082"/> + <use style="fill:#343837;stroke:#343837;" x="801.92496" xlink:href="#m015a5ef506" y="705.886027"/> + <use style="fill:#343837;stroke:#343837;" x="803.51329" xlink:href="#m015a5ef506" y="707.66137"/> + <use style="fill:#343837;stroke:#343837;" x="805.101619" xlink:href="#m015a5ef506" y="711.212055"/> + <use style="fill:#343837;stroke:#343837;" x="806.689949" xlink:href="#m015a5ef506" y="709.436712"/> + <use style="fill:#343837;stroke:#343837;" x="808.278278" xlink:href="#m015a5ef506" y="698.784658"/> + <use style="fill:#343837;stroke:#343837;" x="809.866607" xlink:href="#m015a5ef506" y="700.56"/> + <use style="fill:#343837;stroke:#343837;" x="811.454937" xlink:href="#m015a5ef506" y="704.110685"/> + <use style="fill:#343837;stroke:#343837;" x="813.043266" xlink:href="#m015a5ef506" y="702.335342"/> + <use style="fill:#343837;stroke:#343837;" x="814.631596" xlink:href="#m015a5ef506" y="693.45863"/> + <use style="fill:#343837;stroke:#343837;" x="816.219925" xlink:href="#m015a5ef506" y="691.683288"/> + <use style="fill:#343837;stroke:#343837;" x="817.808255" xlink:href="#m015a5ef506" y="695.233973"/> + <use style="fill:#343837;stroke:#343837;" x="819.396584" xlink:href="#m015a5ef506" y="697.009315"/> + <use style="fill:#343837;stroke:#343837;" x="820.984914" xlink:href="#m015a5ef506" y="677.480548"/> + <use style="fill:#343837;stroke:#343837;" x="822.573243" xlink:href="#m015a5ef506" y="679.25589"/> + <use style="fill:#343837;stroke:#343837;" x="824.161573" xlink:href="#m015a5ef506" y="682.806575"/> + <use style="fill:#343837;stroke:#343837;" x="825.749902" xlink:href="#m015a5ef506" y="681.031233"/> + <use style="fill:#343837;stroke:#343837;" x="827.338232" xlink:href="#m015a5ef506" y="686.35726"/> + <use style="fill:#343837;stroke:#343837;" x="828.926561" xlink:href="#m015a5ef506" y="684.581918"/> + <use style="fill:#343837;stroke:#343837;" x="830.514891" xlink:href="#m015a5ef506" y="688.132603"/> + <use style="fill:#343837;stroke:#343837;" x="832.10322" xlink:href="#m015a5ef506" y="689.907945"/> + <use style="fill:#343837;stroke:#343837;" x="833.69155" xlink:href="#m015a5ef506" y="558.532603"/> + <use style="fill:#343837;stroke:#343837;" x="835.279879" xlink:href="#m015a5ef506" y="556.75726"/> + <use style="fill:#343837;stroke:#343837;" x="836.868209" xlink:href="#m015a5ef506" y="562.083288"/> + <use style="fill:#343837;stroke:#343837;" x="838.456538" xlink:href="#m015a5ef506" y="560.307945"/> + <use style="fill:#343837;stroke:#343837;" x="840.044868" xlink:href="#m015a5ef506" y="551.431233"/> + <use style="fill:#343837;stroke:#343837;" x="841.633197" xlink:href="#m015a5ef506" y="549.65589"/> + <use style="fill:#343837;stroke:#343837;" x="843.221527" xlink:href="#m015a5ef506" y="554.981918"/> + <use style="fill:#343837;stroke:#343837;" x="844.809856" xlink:href="#m015a5ef506" y="553.206575"/> + <use style="fill:#343837;stroke:#343837;" x="846.398185" xlink:href="#m015a5ef506" y="540.779178"/> + <use style="fill:#343837;stroke:#343837;" x="847.986515" xlink:href="#m015a5ef506" y="539.003836"/> + <use style="fill:#343837;stroke:#343837;" x="849.574844" xlink:href="#m015a5ef506" y="537.228493"/> + <use style="fill:#343837;stroke:#343837;" x="851.163174" xlink:href="#m015a5ef506" y="535.453151"/> + <use style="fill:#343837;stroke:#343837;" x="852.751503" xlink:href="#m015a5ef506" y="544.329863"/> + <use style="fill:#343837;stroke:#343837;" x="854.339833" xlink:href="#m015a5ef506" y="542.554521"/> + <use style="fill:#343837;stroke:#343837;" x="855.928162" xlink:href="#m015a5ef506" y="546.105205"/> + <use style="fill:#343837;stroke:#343837;" x="857.516492" xlink:href="#m015a5ef506" y="547.880548"/> + <use style="fill:#343837;stroke:#343837;" x="859.104821" xlink:href="#m015a5ef506" y="531.902466"/> + <use style="fill:#343837;stroke:#343837;" x="860.693151" xlink:href="#m015a5ef506" y="533.677808"/> + <use style="fill:#343837;stroke:#343837;" x="862.28148" xlink:href="#m015a5ef506" y="530.127123"/> + <use style="fill:#343837;stroke:#343837;" x="863.86981" xlink:href="#m015a5ef506" y="528.351781"/> + <use style="fill:#343837;stroke:#343837;" x="865.458139" xlink:href="#m015a5ef506" y="524.801096"/> + <use style="fill:#343837;stroke:#343837;" x="867.046469" xlink:href="#m015a5ef506" y="526.576438"/> + <use style="fill:#343837;stroke:#343837;" x="868.634798" xlink:href="#m015a5ef506" y="521.250411"/> + <use style="fill:#343837;stroke:#343837;" x="870.223128" xlink:href="#m015a5ef506" y="523.025753"/> + <use style="fill:#343837;stroke:#343837;" x="871.811457" xlink:href="#m015a5ef506" y="517.699726"/> + <use style="fill:#343837;stroke:#343837;" x="873.399787" xlink:href="#m015a5ef506" y="519.475068"/> + <use style="fill:#343837;stroke:#343837;" x="874.988116" xlink:href="#m015a5ef506" y="514.149041"/> + <use style="fill:#343837;stroke:#343837;" x="876.576446" xlink:href="#m015a5ef506" y="515.924384"/> + <use style="fill:#343837;stroke:#343837;" x="878.164775" xlink:href="#m015a5ef506" y="508.823014"/> + <use style="fill:#343837;stroke:#343837;" x="879.753105" xlink:href="#m015a5ef506" y="507.047671"/> + <use style="fill:#343837;stroke:#343837;" x="881.341434" xlink:href="#m015a5ef506" y="512.373699"/> + <use style="fill:#343837;stroke:#343837;" x="882.929763" xlink:href="#m015a5ef506" y="510.598356"/> + <use style="fill:#343837;stroke:#343837;" x="884.518093" xlink:href="#m015a5ef506" y="599.365479"/> + <use style="fill:#343837;stroke:#343837;" x="886.106422" xlink:href="#m015a5ef506" y="601.140822"/> + <use style="fill:#343837;stroke:#343837;" x="887.694752" xlink:href="#m015a5ef506" y="602.916164"/> + <use style="fill:#343837;stroke:#343837;" x="889.283081" xlink:href="#m015a5ef506" y="604.691507"/> + <use style="fill:#343837;stroke:#343837;" x="890.871411" xlink:href="#m015a5ef506" y="595.814795"/> + <use style="fill:#343837;stroke:#343837;" x="892.45974" xlink:href="#m015a5ef506" y="597.590137"/> + <use style="fill:#343837;stroke:#343837;" x="894.04807" xlink:href="#m015a5ef506" y="592.26411"/> + <use style="fill:#343837;stroke:#343837;" x="895.636399" xlink:href="#m015a5ef506" y="594.039452"/> + <use style="fill:#343837;stroke:#343837;" x="897.224729" xlink:href="#m015a5ef506" y="615.343562"/> + <use style="fill:#343837;stroke:#343837;" x="898.813058" xlink:href="#m015a5ef506" y="613.568219"/> + <use style="fill:#343837;stroke:#343837;" x="900.401388" xlink:href="#m015a5ef506" y="617.118904"/> + <use style="fill:#343837;stroke:#343837;" x="901.989717" xlink:href="#m015a5ef506" y="618.894247"/> + <use style="fill:#343837;stroke:#343837;" x="903.578047" xlink:href="#m015a5ef506" y="606.466849"/> + <use style="fill:#343837;stroke:#343837;" x="905.166376" xlink:href="#m015a5ef506" y="608.242192"/> + <use style="fill:#343837;stroke:#343837;" x="906.754706" xlink:href="#m015a5ef506" y="611.792877"/> + <use style="fill:#343837;stroke:#343837;" x="908.343035" xlink:href="#m015a5ef506" y="610.017534"/> + <use style="fill:#343837;stroke:#343837;" x="909.931365" xlink:href="#m015a5ef506" y="579.836712"/> + <use style="fill:#343837;stroke:#343837;" x="911.519694" xlink:href="#m015a5ef506" y="578.06137"/> + <use style="fill:#343837;stroke:#343837;" x="913.108024" xlink:href="#m015a5ef506" y="583.387397"/> + <use style="fill:#343837;stroke:#343837;" x="914.696353" xlink:href="#m015a5ef506" y="581.612055"/> + <use style="fill:#343837;stroke:#343837;" x="916.284683" xlink:href="#m015a5ef506" y="590.488767"/> + <use style="fill:#343837;stroke:#343837;" x="917.873012" xlink:href="#m015a5ef506" y="588.713425"/> + <use style="fill:#343837;stroke:#343837;" x="919.461342" xlink:href="#m015a5ef506" y="585.16274"/> + <use style="fill:#343837;stroke:#343837;" x="921.049671" xlink:href="#m015a5ef506" y="586.938082"/> + <use style="fill:#343837;stroke:#343837;" x="922.638" xlink:href="#m015a5ef506" y="565.633973"/> + <use style="fill:#343837;stroke:#343837;" x="924.22633" xlink:href="#m015a5ef506" y="563.85863"/> + <use style="fill:#343837;stroke:#343837;" x="925.814659" xlink:href="#m015a5ef506" y="567.409315"/> + <use style="fill:#343837;stroke:#343837;" x="927.402989" xlink:href="#m015a5ef506" y="569.184658"/> + <use style="fill:#343837;stroke:#343837;" x="928.991318" xlink:href="#m015a5ef506" y="576.286027"/> + <use style="fill:#343837;stroke:#343837;" x="930.579648" xlink:href="#m015a5ef506" y="574.510685"/> + <use style="fill:#343837;stroke:#343837;" x="932.167977" xlink:href="#m015a5ef506" y="572.735342"/> + <use style="fill:#343837;stroke:#343837;" x="933.756307" xlink:href="#m015a5ef506" y="570.96"/> + </g> + </g> + <g id="patch_3"> + <path d="M 81.538125 1005.12 +L 81.538125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 974.338125 1005.12 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 81.538125 7.2 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 467.244687 66.163125 +L 956.138125 66.163125 +Q 961.338125 66.163125 961.338125 60.963125 +L 961.338125 25.4 +Q 961.338125 20.2 956.138125 20.2 +L 467.244687 20.2 +Q 462.044687 20.2 462.044687 25.4 +L 462.044687 60.963125 +Q 462.044687 66.163125 467.244687 66.163125 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_26"/> + <g id="line2d_27"> + <g> + <use style="fill:#343837;stroke:#343837;" x="498.444687" xlink:href="#m015a5ef506" y="41.255938"/> + </g> + </g> + <g id="text_15"> + <!-- (sorted index, permuted index) --> + <defs> + <path d="M 31 75.875 +Q 24.46875 64.65625 21.28125 53.65625 +Q 18.109375 42.671875 18.109375 31.390625 +Q 18.109375 20.125 21.3125 9.0625 +Q 24.515625 -2 31 -13.1875 +L 23.1875 -13.1875 +Q 15.875 -1.703125 12.234375 9.375 +Q 8.59375 20.453125 8.59375 31.390625 +Q 8.59375 42.28125 12.203125 53.3125 +Q 15.828125 64.359375 23.1875 75.875 +z +" id="DejaVuSans-40"/> + <path d="M 11.71875 12.40625 +L 22.015625 12.40625 +L 22.015625 4 +L 14.015625 -11.625 +L 7.71875 -11.625 +L 11.71875 4 +z +" id="DejaVuSans-44"/> + <path d="M 8.015625 75.875 +L 15.828125 75.875 +Q 23.140625 64.359375 26.78125 53.3125 +Q 30.421875 42.28125 30.421875 31.390625 +Q 30.421875 20.453125 26.78125 9.375 +Q 23.140625 -1.703125 15.828125 -13.1875 +L 8.015625 -13.1875 +Q 14.5 -2 17.703125 9.0625 +Q 20.90625 20.125 20.90625 31.390625 +Q 20.90625 42.671875 17.703125 53.65625 +Q 14.5 64.65625 8.015625 75.875 +z +" id="DejaVuSans-41"/> + </defs> + <g transform="translate(545.244687 50.355938)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-40"/> + <use x="39.013672" xlink:href="#DejaVuSans-115"/> + <use x="91.113281" xlink:href="#DejaVuSans-111"/> + <use x="152.294922" xlink:href="#DejaVuSans-114"/> + <use x="193.408203" xlink:href="#DejaVuSans-116"/> + <use x="232.617188" xlink:href="#DejaVuSans-101"/> + <use x="294.140625" xlink:href="#DejaVuSans-100"/> + <use x="357.617188" xlink:href="#DejaVuSans-32"/> + <use x="389.404297" xlink:href="#DejaVuSans-105"/> + <use x="417.1875" xlink:href="#DejaVuSans-110"/> + <use x="480.566406" xlink:href="#DejaVuSans-100"/> + <use x="544.042969" xlink:href="#DejaVuSans-101"/> + <use x="603.816406" xlink:href="#DejaVuSans-120"/> + <use x="662.996094" xlink:href="#DejaVuSans-44"/> + <use x="694.783203" xlink:href="#DejaVuSans-32"/> + <use x="726.570312" xlink:href="#DejaVuSans-112"/> + <use x="790.046875" xlink:href="#DejaVuSans-101"/> + <use x="851.570312" xlink:href="#DejaVuSans-114"/> + <use x="890.933594" xlink:href="#DejaVuSans-109"/> + <use x="988.345703" xlink:href="#DejaVuSans-117"/> + <use x="1051.724609" xlink:href="#DejaVuSans-116"/> + <use x="1090.933594" xlink:href="#DejaVuSans-101"/> + <use x="1152.457031" xlink:href="#DejaVuSans-100"/> + <use x="1215.933594" xlink:href="#DejaVuSans-32"/> + <use x="1247.720703" xlink:href="#DejaVuSans-105"/> + <use x="1275.503906" xlink:href="#DejaVuSans-110"/> + <use x="1338.882812" xlink:href="#DejaVuSans-100"/> + <use x="1402.359375" xlink:href="#DejaVuSans-101"/> + <use x="1462.132812" xlink:href="#DejaVuSans-120"/> + <use x="1521.3125" xlink:href="#DejaVuSans-41"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p12a1606b12"> + <rect height="997.92" width="892.8" x="81.538125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-permutation-subseq.pdf b/plots/paper-permutation-subseq.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8cbeacae8211819e484980843d6d93af1e59be4e Binary files /dev/null and b/plots/paper-permutation-subseq.pdf differ diff --git a/plots/paper-permutation-subseq.svg b/plots/paper-permutation-subseq.svg new file mode 100644 index 0000000000000000000000000000000000000000..d32674f3d7f4e3023fea6a69790c5067c9824787 --- /dev/null +++ b/plots/paper-permutation-subseq.svg @@ -0,0 +1,1427 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 981.538125 1067.839375" width="981.538125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 981.538125 1067.839375 +L 981.538125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +L 974.338125 7.2 +L 81.538125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p066c296600)" d="M 122.119943 1005.12 +L 122.119943 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m64930681d0" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="122.119943" xlink:href="#m64930681d0" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(115.757443 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p066c296600)" d="M 280.952891 1005.12 +L 280.952891 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="280.952891" xlink:href="#m64930681d0" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 100 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(261.865391 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p066c296600)" d="M 439.785839 1005.12 +L 439.785839 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="439.785839" xlink:href="#m64930681d0" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 200 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(420.698339 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p066c296600)" d="M 598.618787 1005.12 +L 598.618787 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="598.618787" xlink:href="#m64930681d0" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 300 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +z +" id="DejaVuSans-51"/> + </defs> + <g transform="translate(579.531287 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p066c296600)" d="M 757.451735 1005.12 +L 757.451735 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="757.451735" xlink:href="#m64930681d0" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 400 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(738.364235 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#p066c296600)" d="M 916.284683 1005.12 +L 916.284683 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="916.284683" xlink:href="#m64930681d0" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 500 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(897.197183 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_7"> + <!-- Index in sorted list --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-73"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 45.40625 46.390625 +L 45.40625 75.984375 +L 54.390625 75.984375 +L 54.390625 0 +L 45.40625 0 +L 45.40625 8.203125 +Q 42.578125 3.328125 38.25 0.953125 +Q 33.9375 -1.421875 27.875 -1.421875 +Q 17.96875 -1.421875 11.734375 6.484375 +Q 5.515625 14.40625 5.515625 27.296875 +Q 5.515625 40.1875 11.734375 48.09375 +Q 17.96875 56 27.875 56 +Q 33.9375 56 38.25 53.625 +Q 42.578125 51.265625 45.40625 46.390625 +z +M 14.796875 27.296875 +Q 14.796875 17.390625 18.875 11.75 +Q 22.953125 6.109375 30.078125 6.109375 +Q 37.203125 6.109375 41.296875 11.75 +Q 45.40625 17.390625 45.40625 27.296875 +Q 45.40625 37.203125 41.296875 42.84375 +Q 37.203125 48.484375 30.078125 48.484375 +Q 22.953125 48.484375 18.875 42.84375 +Q 14.796875 37.203125 14.796875 27.296875 +z +" id="DejaVuSans-100"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + <path d="M 54.890625 54.6875 +L 35.109375 28.078125 +L 55.90625 0 +L 45.3125 0 +L 29.390625 21.484375 +L 13.484375 0 +L 2.875 0 +L 24.125 28.609375 +L 4.6875 54.6875 +L 15.28125 54.6875 +L 29.78125 35.203125 +L 44.28125 54.6875 +z +" id="DejaVuSans-120"/> + <path id="DejaVuSans-32"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + </defs> + <g transform="translate(407.389531 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-115"/> + <use x="482.136719" xlink:href="#DejaVuSans-111"/> + <use x="543.318359" xlink:href="#DejaVuSans-114"/> + <use x="584.431641" xlink:href="#DejaVuSans-116"/> + <use x="623.640625" xlink:href="#DejaVuSans-101"/> + <use x="685.164062" xlink:href="#DejaVuSans-100"/> + <use x="748.640625" xlink:href="#DejaVuSans-32"/> + <use x="780.427734" xlink:href="#DejaVuSans-108"/> + <use x="808.210938" xlink:href="#DejaVuSans-105"/> + <use x="835.994141" xlink:href="#DejaVuSans-115"/> + <use x="888.09375" xlink:href="#DejaVuSans-116"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_13"> + <path clip-path="url(#p066c296600)" d="M 81.538125 959.76 +L 974.338125 959.76 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="mac4c9718f7" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#mac4c9718f7" y="959.76"/> + </g> + </g> + <g id="text_8"> + <!-- 0 --> + <g transform="translate(61.813125 967.358438)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_15"> + <path clip-path="url(#p066c296600)" d="M 81.538125 782.225753 +L 974.338125 782.225753 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#mac4c9718f7" y="782.225753"/> + </g> + </g> + <g id="text_9"> + <!-- 100 --> + <g transform="translate(36.363125 789.824191)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_17"> + <path clip-path="url(#p066c296600)" d="M 81.538125 604.691507 +L 974.338125 604.691507 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#mac4c9718f7" y="604.691507"/> + </g> + </g> + <g id="text_10"> + <!-- 200 --> + <g transform="translate(36.363125 612.289944)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_19"> + <path clip-path="url(#p066c296600)" d="M 81.538125 427.15726 +L 974.338125 427.15726 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#mac4c9718f7" y="427.15726"/> + </g> + </g> + <g id="text_11"> + <!-- 300 --> + <g transform="translate(36.363125 434.755698)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_21"> + <path clip-path="url(#p066c296600)" d="M 81.538125 249.623014 +L 974.338125 249.623014 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#mac4c9718f7" y="249.623014"/> + </g> + </g> + <g id="text_12"> + <!-- 400 --> + <g transform="translate(36.363125 257.221451)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_23"> + <path clip-path="url(#p066c296600)" d="M 81.538125 72.088767 +L 974.338125 72.088767 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#mac4c9718f7" y="72.088767"/> + </g> + </g> + <g id="text_13"> + <!-- 500 --> + <g transform="translate(36.363125 79.687205)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Index in permutation --> + <defs> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + </defs> + <g transform="translate(26.955938 642.300469)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-112"/> + <use x="493.513672" xlink:href="#DejaVuSans-101"/> + <use x="555.037109" xlink:href="#DejaVuSans-114"/> + <use x="594.400391" xlink:href="#DejaVuSans-109"/> + <use x="691.8125" xlink:href="#DejaVuSans-117"/> + <use x="755.191406" xlink:href="#DejaVuSans-116"/> + <use x="794.400391" xlink:href="#DejaVuSans-97"/> + <use x="855.679688" xlink:href="#DejaVuSans-116"/> + <use x="894.888672" xlink:href="#DejaVuSans-105"/> + <use x="922.671875" xlink:href="#DejaVuSans-111"/> + <use x="983.853516" xlink:href="#DejaVuSans-110"/> + </g> + </g> + </g> + <g id="line2d_25"> + <defs> + <path d="M 0 3 +C 0.795609 3 1.55874 2.683901 2.12132 2.12132 +C 2.683901 1.55874 3 0.795609 3 0 +C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 +C 1.55874 -2.683901 0.795609 -3 0 -3 +C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 +C -2.683901 -1.55874 -3 -0.795609 -3 0 +C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 +C -1.55874 2.683901 -0.795609 3 0 3 +z +" id="m2304820e09" style="stroke:#343837;"/> + </defs> + <g clip-path="url(#p066c296600)"> + <use style="fill:#343837;stroke:#343837;" x="122.119943" xlink:href="#m2304820e09" y="720.088767"/> + <use style="fill:#343837;stroke:#343837;" x="123.708273" xlink:href="#m2304820e09" y="885.195616"/> + <use style="fill:#343837;stroke:#343837;" x="125.296602" xlink:href="#m2304820e09" y="235.420274"/> + <use style="fill:#343837;stroke:#343837;" x="126.884932" xlink:href="#m2304820e09" y="286.905205"/> + <use style="fill:#343837;stroke:#343837;" x="128.473261" xlink:href="#m2304820e09" y="682.806575"/> + <use style="fill:#343837;stroke:#343837;" x="130.061591" xlink:href="#m2304820e09" y="883.420274"/> + <use style="fill:#343837;stroke:#343837;" x="131.64992" xlink:href="#m2304820e09" y="343.716164"/> + <use style="fill:#343837;stroke:#343837;" x="133.23825" xlink:href="#m2304820e09" y="938.45589"/> + <use style="fill:#343837;stroke:#343837;" x="134.826579" xlink:href="#m2304820e09" y="75.639452"/> + <use style="fill:#343837;stroke:#343837;" x="136.414908" xlink:href="#m2304820e09" y="526.576438"/> + <use style="fill:#343837;stroke:#343837;" x="138.003238" xlink:href="#m2304820e09" y="881.644932"/> + <use style="fill:#343837;stroke:#343837;" x="139.591567" xlink:href="#m2304820e09" y="73.86411"/> + <use style="fill:#343837;stroke:#343837;" x="141.179897" xlink:href="#m2304820e09" y="837.26137"/> + <use style="fill:#343837;stroke:#343837;" x="142.768226" xlink:href="#m2304820e09" y="508.823014"/> + <use style="fill:#343837;stroke:#343837;" x="144.356556" xlink:href="#m2304820e09" y="835.486027"/> + <use style="fill:#343837;stroke:#343837;" x="145.944885" xlink:href="#m2304820e09" y="794.653151"/> + <use style="fill:#343837;stroke:#343837;" x="147.533215" xlink:href="#m2304820e09" y="629.546301"/> + <use style="fill:#343837;stroke:#343837;" x="149.121544" xlink:href="#m2304820e09" y="233.644932"/> + <use style="fill:#343837;stroke:#343837;" x="150.709874" xlink:href="#m2304820e09" y="594.039452"/> + <use style="fill:#343837;stroke:#343837;" x="152.298203" xlink:href="#m2304820e09" y="231.869589"/> + <use style="fill:#343837;stroke:#343837;" x="153.886533" xlink:href="#m2304820e09" y="230.094247"/> + <use style="fill:#343837;stroke:#343837;" x="155.474862" xlink:href="#m2304820e09" y="409.403836"/> + <use style="fill:#343837;stroke:#343837;" x="157.063192" xlink:href="#m2304820e09" y="675.705205"/> + <use style="fill:#343837;stroke:#343837;" x="158.651521" xlink:href="#m2304820e09" y="462.66411"/> + <use style="fill:#343837;stroke:#343837;" x="160.239851" xlink:href="#m2304820e09" y="792.877808"/> + <use style="fill:#343837;stroke:#343837;" x="161.82818" xlink:href="#m2304820e09" y="91.617534"/> + <use style="fill:#343837;stroke:#343837;" x="163.41651" xlink:href="#m2304820e09" y="159.080548"/> + <use style="fill:#343837;stroke:#343837;" x="165.004839" xlink:href="#m2304820e09" y="123.573699"/> + <use style="fill:#343837;stroke:#343837;" x="166.593169" xlink:href="#m2304820e09" y="407.628493"/> + <use style="fill:#343837;stroke:#343837;" x="168.181498" xlink:href="#m2304820e09" y="673.929863"/> + <use style="fill:#343837;stroke:#343837;" x="169.769828" xlink:href="#m2304820e09" y="833.710685"/> + <use style="fill:#343837;stroke:#343837;" x="171.358157" xlink:href="#m2304820e09" y="405.853151"/> + <use style="fill:#343837;stroke:#343837;" x="172.946487" xlink:href="#m2304820e09" y="228.318904"/> + <use style="fill:#343837;stroke:#343837;" x="174.534816" xlink:href="#m2304820e09" y="672.154521"/> + <use style="fill:#343837;stroke:#343837;" x="176.123145" xlink:href="#m2304820e09" y="879.869589"/> + <use style="fill:#343837;stroke:#343837;" x="177.711475" xlink:href="#m2304820e09" y="285.129863"/> + <use style="fill:#343837;stroke:#343837;" x="179.299804" xlink:href="#m2304820e09" y="620.669589"/> + <use style="fill:#343837;stroke:#343837;" x="180.888134" xlink:href="#m2304820e09" y="72.088767"/> + <use style="fill:#343837;stroke:#343837;" x="182.476463" xlink:href="#m2304820e09" y="670.379178"/> + <use style="fill:#343837;stroke:#343837;" x="184.064793" xlink:href="#m2304820e09" y="89.842192"/> + <use style="fill:#343837;stroke:#343837;" x="185.653122" xlink:href="#m2304820e09" y="283.354521"/> + <use style="fill:#343837;stroke:#343837;" x="187.241452" xlink:href="#m2304820e09" y="315.310685"/> + <use style="fill:#343837;stroke:#343837;" x="188.829781" xlink:href="#m2304820e09" y="668.603836"/> + <use style="fill:#343837;stroke:#343837;" x="190.418111" xlink:href="#m2304820e09" y="791.102466"/> + <use style="fill:#343837;stroke:#343837;" x="192.00644" xlink:href="#m2304820e09" y="718.313425"/> + <use style="fill:#343837;stroke:#343837;" x="193.59477" xlink:href="#m2304820e09" y="666.828493"/> + <use style="fill:#343837;stroke:#343837;" x="195.183099" xlink:href="#m2304820e09" y="716.538082"/> + <use style="fill:#343837;stroke:#343837;" x="196.771429" xlink:href="#m2304820e09" y="121.798356"/> + <use style="fill:#343837;stroke:#343837;" x="198.359758" xlink:href="#m2304820e09" y="460.888767"/> + <use style="fill:#343837;stroke:#343837;" x="199.948088" xlink:href="#m2304820e09" y="592.26411"/> + <use style="fill:#343837;stroke:#343837;" x="201.536417" xlink:href="#m2304820e09" y="176.833973"/> + <use style="fill:#343837;stroke:#343837;" x="203.124747" xlink:href="#m2304820e09" y="665.053151"/> + <use style="fill:#343837;stroke:#343837;" x="204.713076" xlink:href="#m2304820e09" y="175.05863"/> + <use style="fill:#343837;stroke:#343837;" x="206.301406" xlink:href="#m2304820e09" y="70.313425"/> + <use style="fill:#343837;stroke:#343837;" x="207.889735" xlink:href="#m2304820e09" y="404.077808"/> + <use style="fill:#343837;stroke:#343837;" x="209.478065" xlink:href="#m2304820e09" y="402.302466"/> + <use style="fill:#343837;stroke:#343837;" x="211.066394" xlink:href="#m2304820e09" y="120.023014"/> + <use style="fill:#343837;stroke:#343837;" x="212.654723" xlink:href="#m2304820e09" y="831.935342"/> + <use style="fill:#343837;stroke:#343837;" x="214.243053" xlink:href="#m2304820e09" y="507.047671"/> + <use style="fill:#343837;stroke:#343837;" x="215.831382" xlink:href="#m2304820e09" y="524.801096"/> + <use style="fill:#343837;stroke:#343837;" x="217.419712" xlink:href="#m2304820e09" y="936.680548"/> + <use style="fill:#343837;stroke:#343837;" x="219.008041" xlink:href="#m2304820e09" y="380.998356"/> + <use style="fill:#343837;stroke:#343837;" x="220.596371" xlink:href="#m2304820e09" y="663.277808"/> + <use style="fill:#343837;stroke:#343837;" x="222.1847" xlink:href="#m2304820e09" y="590.488767"/> + <use style="fill:#343837;stroke:#343837;" x="223.77303" xlink:href="#m2304820e09" y="588.713425"/> + <use style="fill:#343837;stroke:#343837;" x="225.361359" xlink:href="#m2304820e09" y="586.938082"/> + <use style="fill:#343837;stroke:#343837;" x="226.949689" xlink:href="#m2304820e09" y="661.502466"/> + <use style="fill:#343837;stroke:#343837;" x="228.538018" xlink:href="#m2304820e09" y="789.327123"/> + <use style="fill:#343837;stroke:#343837;" x="230.126348" xlink:href="#m2304820e09" y="934.905205"/> + <use style="fill:#343837;stroke:#343837;" x="231.714677" xlink:href="#m2304820e09" y="379.223014"/> + <use style="fill:#343837;stroke:#343837;" x="233.303007" xlink:href="#m2304820e09" y="313.535342"/> + <use style="fill:#343837;stroke:#343837;" x="234.891336" xlink:href="#m2304820e09" y="933.129863"/> + <use style="fill:#343837;stroke:#343837;" x="236.479666" xlink:href="#m2304820e09" y="281.579178"/> + <use style="fill:#343837;stroke:#343837;" x="238.067995" xlink:href="#m2304820e09" y="118.247671"/> + <use style="fill:#343837;stroke:#343837;" x="239.656325" xlink:href="#m2304820e09" y="695.233973"/> + <use style="fill:#343837;stroke:#343837;" x="241.244654" xlink:href="#m2304820e09" y="787.551781"/> + <use style="fill:#343837;stroke:#343837;" x="242.832984" xlink:href="#m2304820e09" y="585.16274"/> + <use style="fill:#343837;stroke:#343837;" x="244.421313" xlink:href="#m2304820e09" y="377.447671"/> + <use style="fill:#343837;stroke:#343837;" x="246.009643" xlink:href="#m2304820e09" y="191.036712"/> + <use style="fill:#343837;stroke:#343837;" x="247.597972" xlink:href="#m2304820e09" y="618.894247"/> + <use style="fill:#343837;stroke:#343837;" x="249.186301" xlink:href="#m2304820e09" y="830.16"/> + <use style="fill:#343837;stroke:#343837;" x="250.774631" xlink:href="#m2304820e09" y="400.527123"/> + <use style="fill:#343837;stroke:#343837;" x="252.36296" xlink:href="#m2304820e09" y="459.113425"/> + <use style="fill:#343837;stroke:#343837;" x="253.95129" xlink:href="#m2304820e09" y="606.466849"/> + <use style="fill:#343837;stroke:#343837;" x="255.539619" xlink:href="#m2304820e09" y="931.354521"/> + <use style="fill:#343837;stroke:#343837;" x="257.127949" xlink:href="#m2304820e09" y="157.305205"/> + <use style="fill:#343837;stroke:#343837;" x="258.716278" xlink:href="#m2304820e09" y="785.776438"/> + <use style="fill:#343837;stroke:#343837;" x="260.304608" xlink:href="#m2304820e09" y="88.066849"/> + <use style="fill:#343837;stroke:#343837;" x="261.892937" xlink:href="#m2304820e09" y="693.45863"/> + <use style="fill:#343837;stroke:#343837;" x="263.481267" xlink:href="#m2304820e09" y="929.579178"/> + <use style="fill:#343837;stroke:#343837;" x="265.069596" xlink:href="#m2304820e09" y="457.338082"/> + <use style="fill:#343837;stroke:#343837;" x="266.657926" xlink:href="#m2304820e09" y="828.384658"/> + <use style="fill:#343837;stroke:#343837;" x="268.246255" xlink:href="#m2304820e09" y="659.727123"/> + <use style="fill:#343837;stroke:#343837;" x="269.834585" xlink:href="#m2304820e09" y="226.543562"/> + <use style="fill:#343837;stroke:#343837;" x="271.422914" xlink:href="#m2304820e09" y="375.672329"/> + <use style="fill:#343837;stroke:#343837;" x="273.011244" xlink:href="#m2304820e09" y="691.683288"/> + <use style="fill:#343837;stroke:#343837;" x="274.599573" xlink:href="#m2304820e09" y="249.623014"/> + <use style="fill:#343837;stroke:#343837;" x="276.187903" xlink:href="#m2304820e09" y="784.001096"/> + <use style="fill:#343837;stroke:#343837;" x="277.776232" xlink:href="#m2304820e09" y="826.609315"/> + <use style="fill:#343837;stroke:#343837;" x="279.364562" xlink:href="#m2304820e09" y="748.494247"/> + <use style="fill:#343837;stroke:#343837;" x="280.952891" xlink:href="#m2304820e09" y="878.094247"/> + <use style="fill:#343837;stroke:#343837;" x="282.541221" xlink:href="#m2304820e09" y="68.538082"/> + <use style="fill:#343837;stroke:#343837;" x="284.12955" xlink:href="#m2304820e09" y="540.779178"/> + <use style="fill:#343837;stroke:#343837;" x="285.717879" xlink:href="#m2304820e09" y="824.833973"/> + <use style="fill:#343837;stroke:#343837;" x="287.306209" xlink:href="#m2304820e09" y="308.209315"/> + <use style="fill:#343837;stroke:#343837;" x="288.894538" xlink:href="#m2304820e09" y="373.896986"/> + <use style="fill:#343837;stroke:#343837;" x="290.482868" xlink:href="#m2304820e09" y="539.003836"/> + <use style="fill:#343837;stroke:#343837;" x="292.071197" xlink:href="#m2304820e09" y="306.433973"/> + <use style="fill:#343837;stroke:#343837;" x="293.659527" xlink:href="#m2304820e09" y="657.951781"/> + <use style="fill:#343837;stroke:#343837;" x="295.247856" xlink:href="#m2304820e09" y="746.718904"/> + <use style="fill:#343837;stroke:#343837;" x="296.836186" xlink:href="#m2304820e09" y="927.803836"/> + <use style="fill:#343837;stroke:#343837;" x="298.424515" xlink:href="#m2304820e09" y="247.847671"/> + <use style="fill:#343837;stroke:#343837;" x="300.012845" xlink:href="#m2304820e09" y="823.05863"/> + <use style="fill:#343837;stroke:#343837;" x="301.601174" xlink:href="#m2304820e09" y="821.283288"/> + <use style="fill:#343837;stroke:#343837;" x="303.189504" xlink:href="#m2304820e09" y="505.272329"/> + <use style="fill:#343837;stroke:#343837;" x="304.777833" xlink:href="#m2304820e09" y="455.56274"/> + <use style="fill:#343837;stroke:#343837;" x="306.366163" xlink:href="#m2304820e09" y="656.176438"/> + <use style="fill:#343837;stroke:#343837;" x="307.954492" xlink:href="#m2304820e09" y="926.028493"/> + <use style="fill:#343837;stroke:#343837;" x="309.542822" xlink:href="#m2304820e09" y="372.121644"/> + <use style="fill:#343837;stroke:#343837;" x="311.131151" xlink:href="#m2304820e09" y="224.768219"/> + <use style="fill:#343837;stroke:#343837;" x="312.719481" xlink:href="#m2304820e09" y="583.387397"/> + <use style="fill:#343837;stroke:#343837;" x="314.30781" xlink:href="#m2304820e09" y="189.26137"/> + <use style="fill:#343837;stroke:#343837;" x="315.89614" xlink:href="#m2304820e09" y="116.472329"/> + <use style="fill:#343837;stroke:#343837;" x="317.484469" xlink:href="#m2304820e09" y="114.696986"/> + <use style="fill:#343837;stroke:#343837;" x="319.072799" xlink:href="#m2304820e09" y="782.225753"/> + <use style="fill:#343837;stroke:#343837;" x="320.661128" xlink:href="#m2304820e09" y="924.253151"/> + <use style="fill:#343837;stroke:#343837;" x="322.249458" xlink:href="#m2304820e09" y="222.992877"/> + <use style="fill:#343837;stroke:#343837;" x="323.837787" xlink:href="#m2304820e09" y="581.612055"/> + <use style="fill:#343837;stroke:#343837;" x="325.426116" xlink:href="#m2304820e09" y="876.318904"/> + <use style="fill:#343837;stroke:#343837;" x="327.014446" xlink:href="#m2304820e09" y="819.507945"/> + <use style="fill:#343837;stroke:#343837;" x="328.602775" xlink:href="#m2304820e09" y="922.477808"/> + <use style="fill:#343837;stroke:#343837;" x="330.191105" xlink:href="#m2304820e09" y="86.291507"/> + <use style="fill:#343837;stroke:#343837;" x="331.779434" xlink:href="#m2304820e09" y="817.732603"/> + <use style="fill:#343837;stroke:#343837;" x="333.367764" xlink:href="#m2304820e09" y="173.283288"/> + <use style="fill:#343837;stroke:#343837;" x="334.956093" xlink:href="#m2304820e09" y="143.102466"/> + <use style="fill:#343837;stroke:#343837;" x="336.544423" xlink:href="#m2304820e09" y="503.496986"/> + <use style="fill:#343837;stroke:#343837;" x="338.132752" xlink:href="#m2304820e09" y="959.76"/> + <use style="fill:#343837;stroke:#343837;" x="339.721082" xlink:href="#m2304820e09" y="780.450411"/> + <use style="fill:#343837;stroke:#343837;" x="341.309411" xlink:href="#m2304820e09" y="304.65863"/> + <use style="fill:#343837;stroke:#343837;" x="342.897741" xlink:href="#m2304820e09" y="84.516164"/> + <use style="fill:#343837;stroke:#343837;" x="344.48607" xlink:href="#m2304820e09" y="617.118904"/> + <use style="fill:#343837;stroke:#343837;" x="346.0744" xlink:href="#m2304820e09" y="874.543562"/> + <use style="fill:#343837;stroke:#343837;" x="347.662729" xlink:href="#m2304820e09" y="302.883288"/> + <use style="fill:#343837;stroke:#343837;" x="349.251059" xlink:href="#m2304820e09" y="141.327123"/> + <use style="fill:#343837;stroke:#343837;" x="350.839388" xlink:href="#m2304820e09" y="221.217534"/> + <use style="fill:#343837;stroke:#343837;" x="352.427718" xlink:href="#m2304820e09" y="112.921644"/> + <use style="fill:#343837;stroke:#343837;" x="354.016047" xlink:href="#m2304820e09" y="341.940822"/> + <use style="fill:#343837;stroke:#343837;" x="355.604377" xlink:href="#m2304820e09" y="815.95726"/> + <use style="fill:#343837;stroke:#343837;" x="357.192706" xlink:href="#m2304820e09" y="814.181918"/> + <use style="fill:#343837;stroke:#343837;" x="358.781036" xlink:href="#m2304820e09" y="920.702466"/> + <use style="fill:#343837;stroke:#343837;" x="360.369365" xlink:href="#m2304820e09" y="625.995616"/> + <use style="fill:#343837;stroke:#343837;" x="361.957694" xlink:href="#m2304820e09" y="370.346301"/> + <use style="fill:#343837;stroke:#343837;" x="363.546024" xlink:href="#m2304820e09" y="778.675068"/> + <use style="fill:#343837;stroke:#343837;" x="365.134353" xlink:href="#m2304820e09" y="501.721644"/> + <use style="fill:#343837;stroke:#343837;" x="366.722683" xlink:href="#m2304820e09" y="776.899726"/> + <use style="fill:#343837;stroke:#343837;" x="368.311012" xlink:href="#m2304820e09" y="957.984658"/> + <use style="fill:#343837;stroke:#343837;" x="369.899342" xlink:href="#m2304820e09" y="301.107945"/> + <use style="fill:#343837;stroke:#343837;" x="371.487671" xlink:href="#m2304820e09" y="654.401096"/> + <use style="fill:#343837;stroke:#343837;" x="373.076001" xlink:href="#m2304820e09" y="453.787397"/> + <use style="fill:#343837;stroke:#343837;" x="374.66433" xlink:href="#m2304820e09" y="246.072329"/> + <use style="fill:#343837;stroke:#343837;" x="376.25266" xlink:href="#m2304820e09" y="219.442192"/> + <use style="fill:#343837;stroke:#343837;" x="377.840989" xlink:href="#m2304820e09" y="452.012055"/> + <use style="fill:#343837;stroke:#343837;" x="379.429319" xlink:href="#m2304820e09" y="299.332603"/> + <use style="fill:#343837;stroke:#343837;" x="381.017648" xlink:href="#m2304820e09" y="812.406575"/> + <use style="fill:#343837;stroke:#343837;" x="382.605978" xlink:href="#m2304820e09" y="523.025753"/> + <use style="fill:#343837;stroke:#343837;" x="384.194307" xlink:href="#m2304820e09" y="155.529863"/> + <use style="fill:#343837;stroke:#343837;" x="385.782637" xlink:href="#m2304820e09" y="956.209315"/> + <use style="fill:#343837;stroke:#343837;" x="387.370966" xlink:href="#m2304820e09" y="368.570959"/> + <use style="fill:#343837;stroke:#343837;" x="388.959296" xlink:href="#m2304820e09" y="198.138082"/> + <use style="fill:#343837;stroke:#343837;" x="390.547625" xlink:href="#m2304820e09" y="918.927123"/> + <use style="fill:#343837;stroke:#343837;" x="392.135955" xlink:href="#m2304820e09" y="217.666849"/> + <use style="fill:#343837;stroke:#343837;" x="393.724284" xlink:href="#m2304820e09" y="689.907945"/> + <use style="fill:#343837;stroke:#343837;" x="395.312614" xlink:href="#m2304820e09" y="153.754521"/> + <use style="fill:#343837;stroke:#343837;" x="396.900943" xlink:href="#m2304820e09" y="604.691507"/> + <use style="fill:#343837;stroke:#343837;" x="398.489272" xlink:href="#m2304820e09" y="872.768219"/> + <use style="fill:#343837;stroke:#343837;" x="400.077602" xlink:href="#m2304820e09" y="499.946301"/> + <use style="fill:#343837;stroke:#343837;" x="401.665931" xlink:href="#m2304820e09" y="498.170959"/> + <use style="fill:#343837;stroke:#343837;" x="403.254261" xlink:href="#m2304820e09" y="954.433973"/> + <use style="fill:#343837;stroke:#343837;" x="404.84259" xlink:href="#m2304820e09" y="215.891507"/> + <use style="fill:#343837;stroke:#343837;" x="406.43092" xlink:href="#m2304820e09" y="398.751781"/> + <use style="fill:#343837;stroke:#343837;" x="408.019249" xlink:href="#m2304820e09" y="396.976438"/> + <use style="fill:#343837;stroke:#343837;" x="409.607579" xlink:href="#m2304820e09" y="171.507945"/> + <use style="fill:#343837;stroke:#343837;" x="411.195908" xlink:href="#m2304820e09" y="917.151781"/> + <use style="fill:#343837;stroke:#343837;" x="412.784238" xlink:href="#m2304820e09" y="139.551781"/> + <use style="fill:#343837;stroke:#343837;" x="414.372567" xlink:href="#m2304820e09" y="579.836712"/> + <use style="fill:#343837;stroke:#343837;" x="415.960897" xlink:href="#m2304820e09" y="366.795616"/> + <use style="fill:#343837;stroke:#343837;" x="417.549226" xlink:href="#m2304820e09" y="537.228493"/> + <use style="fill:#343837;stroke:#343837;" x="419.137556" xlink:href="#m2304820e09" y="952.65863"/> + <use style="fill:#343837;stroke:#343837;" x="420.725885" xlink:href="#m2304820e09" y="279.803836"/> + <use style="fill:#343837;stroke:#343837;" x="422.314215" xlink:href="#m2304820e09" y="775.124384"/> + <use style="fill:#343837;stroke:#343837;" x="423.902544" xlink:href="#m2304820e09" y="450.236712"/> + <use style="fill:#343837;stroke:#343837;" x="425.490874" xlink:href="#m2304820e09" y="744.943562"/> + <use style="fill:#343837;stroke:#343837;" x="427.079203" xlink:href="#m2304820e09" y="297.55726"/> + <use style="fill:#343837;stroke:#343837;" x="428.667533" xlink:href="#m2304820e09" y="652.625753"/> + <use style="fill:#343837;stroke:#343837;" x="430.255862" xlink:href="#m2304820e09" y="773.349041"/> + <use style="fill:#343837;stroke:#343837;" x="431.844192" xlink:href="#m2304820e09" y="521.250411"/> + <use style="fill:#343837;stroke:#343837;" x="433.432521" xlink:href="#m2304820e09" y="870.992877"/> + <use style="fill:#343837;stroke:#343837;" x="435.02085" xlink:href="#m2304820e09" y="496.395616"/> + <use style="fill:#343837;stroke:#343837;" x="436.60918" xlink:href="#m2304820e09" y="214.116164"/> + <use style="fill:#343837;stroke:#343837;" x="438.197509" xlink:href="#m2304820e09" y="869.217534"/> + <use style="fill:#343837;stroke:#343837;" x="439.785839" xlink:href="#m2304820e09" y="365.020274"/> + <use style="fill:#343837;stroke:#343837;" x="441.374168" xlink:href="#m2304820e09" y="111.146301"/> + <use style="fill:#343837;stroke:#343837;" x="442.962498" xlink:href="#m2304820e09" y="519.475068"/> + <use style="fill:#343837;stroke:#343837;" x="444.550827" xlink:href="#m2304820e09" y="311.76"/> + <use style="fill:#343837;stroke:#343837;" x="446.139157" xlink:href="#m2304820e09" y="82.740822"/> + <use style="fill:#343837;stroke:#343837;" x="447.727486" xlink:href="#m2304820e09" y="278.028493"/> + <use style="fill:#343837;stroke:#343837;" x="449.315816" xlink:href="#m2304820e09" y="80.965479"/> + <use style="fill:#343837;stroke:#343837;" x="450.904145" xlink:href="#m2304820e09" y="276.253151"/> + <use style="fill:#343837;stroke:#343837;" x="452.492475" xlink:href="#m2304820e09" y="915.376438"/> + <use style="fill:#343837;stroke:#343837;" x="454.080804" xlink:href="#m2304820e09" y="771.573699"/> + <use style="fill:#343837;stroke:#343837;" x="455.669134" xlink:href="#m2304820e09" y="650.850411"/> + <use style="fill:#343837;stroke:#343837;" x="457.257463" xlink:href="#m2304820e09" y="494.620274"/> + <use style="fill:#343837;stroke:#343837;" x="458.845793" xlink:href="#m2304820e09" y="714.76274"/> + <use style="fill:#343837;stroke:#343837;" x="460.434122" xlink:href="#m2304820e09" y="602.916164"/> + <use style="fill:#343837;stroke:#343837;" x="462.022452" xlink:href="#m2304820e09" y="274.477808"/> + <use style="fill:#343837;stroke:#343837;" x="463.610781" xlink:href="#m2304820e09" y="743.168219"/> + <use style="fill:#343837;stroke:#343837;" x="465.199111" xlink:href="#m2304820e09" y="535.453151"/> + <use style="fill:#343837;stroke:#343837;" x="466.78744" xlink:href="#m2304820e09" y="492.844932"/> + <use style="fill:#343837;stroke:#343837;" x="468.37577" xlink:href="#m2304820e09" y="491.069589"/> + <use style="fill:#343837;stroke:#343837;" x="469.964099" xlink:href="#m2304820e09" y="295.781918"/> + <use style="fill:#343837;stroke:#343837;" x="471.552429" xlink:href="#m2304820e09" y="448.46137"/> + <use style="fill:#343837;stroke:#343837;" x="473.140758" xlink:href="#m2304820e09" y="810.631233"/> + <use style="fill:#343837;stroke:#343837;" x="474.729087" xlink:href="#m2304820e09" y="867.442192"/> + <use style="fill:#343837;stroke:#343837;" x="476.317417" xlink:href="#m2304820e09" y="196.36274"/> + <use style="fill:#343837;stroke:#343837;" x="477.905746" xlink:href="#m2304820e09" y="649.075068"/> + <use style="fill:#343837;stroke:#343837;" x="479.494076" xlink:href="#m2304820e09" y="489.294247"/> + <use style="fill:#343837;stroke:#343837;" x="481.082405" xlink:href="#m2304820e09" y="712.987397"/> + <use style="fill:#343837;stroke:#343837;" x="482.670735" xlink:href="#m2304820e09" y="446.686027"/> + <use style="fill:#343837;stroke:#343837;" x="484.259064" xlink:href="#m2304820e09" y="79.190137"/> + <use style="fill:#343837;stroke:#343837;" x="485.847394" xlink:href="#m2304820e09" y="187.486027"/> + <use style="fill:#343837;stroke:#343837;" x="487.435723" xlink:href="#m2304820e09" y="272.702466"/> + <use style="fill:#343837;stroke:#343837;" x="489.024053" xlink:href="#m2304820e09" y="340.165479"/> + <use style="fill:#343837;stroke:#343837;" x="490.612382" xlink:href="#m2304820e09" y="137.776438"/> + <use style="fill:#343837;stroke:#343837;" x="492.200712" xlink:href="#m2304820e09" y="338.390137"/> + <use style="fill:#343837;stroke:#343837;" x="493.789041" xlink:href="#m2304820e09" y="517.699726"/> + <use style="fill:#343837;stroke:#343837;" x="495.377371" xlink:href="#m2304820e09" y="913.601096"/> + <use style="fill:#343837;stroke:#343837;" x="496.9657" xlink:href="#m2304820e09" y="487.518904"/> + <use style="fill:#343837;stroke:#343837;" x="498.55403" xlink:href="#m2304820e09" y="169.732603"/> + <use style="fill:#343837;stroke:#343837;" x="500.142359" xlink:href="#m2304820e09" y="136.001096"/> + <use style="fill:#343837;stroke:#343837;" x="501.730689" xlink:href="#m2304820e09" y="741.392877"/> + <use style="fill:#343837;stroke:#343837;" x="503.319018" xlink:href="#m2304820e09" y="444.910685"/> + <use style="fill:#343837;stroke:#343837;" x="504.907348" xlink:href="#m2304820e09" y="336.614795"/> + <use style="fill:#343837;stroke:#343837;" x="506.495677" xlink:href="#m2304820e09" y="578.06137"/> + <use style="fill:#343837;stroke:#343837;" x="508.084007" xlink:href="#m2304820e09" y="151.979178"/> + <use style="fill:#343837;stroke:#343837;" x="509.672336" xlink:href="#m2304820e09" y="769.798356"/> + <use style="fill:#343837;stroke:#343837;" x="511.260665" xlink:href="#m2304820e09" y="294.006575"/> + <use style="fill:#343837;stroke:#343837;" x="512.848995" xlink:href="#m2304820e09" y="647.299726"/> + <use style="fill:#343837;stroke:#343837;" x="514.437324" xlink:href="#m2304820e09" y="363.244932"/> + <use style="fill:#343837;stroke:#343837;" x="516.025654" xlink:href="#m2304820e09" y="808.85589"/> + <use style="fill:#343837;stroke:#343837;" x="517.613983" xlink:href="#m2304820e09" y="167.95726"/> + <use style="fill:#343837;stroke:#343837;" x="519.202313" xlink:href="#m2304820e09" y="361.469589"/> + <use style="fill:#343837;stroke:#343837;" x="520.790642" xlink:href="#m2304820e09" y="711.212055"/> + <use style="fill:#343837;stroke:#343837;" x="522.378972" xlink:href="#m2304820e09" y="950.883288"/> + <use style="fill:#343837;stroke:#343837;" x="523.967301" xlink:href="#m2304820e09" y="911.825753"/> + <use style="fill:#343837;stroke:#343837;" x="525.555631" xlink:href="#m2304820e09" y="807.080548"/> + <use style="fill:#343837;stroke:#343837;" x="527.14396" xlink:href="#m2304820e09" y="910.050411"/> + <use style="fill:#343837;stroke:#343837;" x="528.73229" xlink:href="#m2304820e09" y="949.107945"/> + <use style="fill:#343837;stroke:#343837;" x="530.320619" xlink:href="#m2304820e09" y="109.370959"/> + <use style="fill:#343837;stroke:#343837;" x="531.908949" xlink:href="#m2304820e09" y="485.743562"/> + <use style="fill:#343837;stroke:#343837;" x="533.497278" xlink:href="#m2304820e09" y="66.76274"/> + <use style="fill:#343837;stroke:#343837;" x="535.085608" xlink:href="#m2304820e09" y="270.927123"/> + <use style="fill:#343837;stroke:#343837;" x="536.673937" xlink:href="#m2304820e09" y="739.617534"/> + <use style="fill:#343837;stroke:#343837;" x="538.262267" xlink:href="#m2304820e09" y="737.842192"/> + <use style="fill:#343837;stroke:#343837;" x="539.850596" xlink:href="#m2304820e09" y="645.524384"/> + <use style="fill:#343837;stroke:#343837;" x="541.438926" xlink:href="#m2304820e09" y="64.987397"/> + <use style="fill:#343837;stroke:#343837;" x="543.027255" xlink:href="#m2304820e09" y="736.066849"/> + <use style="fill:#343837;stroke:#343837;" x="544.615585" xlink:href="#m2304820e09" y="395.201096"/> + <use style="fill:#343837;stroke:#343837;" x="546.203914" xlink:href="#m2304820e09" y="334.839452"/> + <use style="fill:#343837;stroke:#343837;" x="547.792243" xlink:href="#m2304820e09" y="686.35726"/> + <use style="fill:#343837;stroke:#343837;" x="549.380573" xlink:href="#m2304820e09" y="333.06411"/> + <use style="fill:#343837;stroke:#343837;" x="550.968902" xlink:href="#m2304820e09" y="805.305205"/> + <use style="fill:#343837;stroke:#343837;" x="552.557232" xlink:href="#m2304820e09" y="443.135342"/> + <use style="fill:#343837;stroke:#343837;" x="554.145561" xlink:href="#m2304820e09" y="947.332603"/> + <use style="fill:#343837;stroke:#343837;" x="555.733891" xlink:href="#m2304820e09" y="768.023014"/> + <use style="fill:#343837;stroke:#343837;" x="557.32222" xlink:href="#m2304820e09" y="766.247671"/> + <use style="fill:#343837;stroke:#343837;" x="558.91055" xlink:href="#m2304820e09" y="359.694247"/> + <use style="fill:#343837;stroke:#343837;" x="560.498879" xlink:href="#m2304820e09" y="441.36"/> + <use style="fill:#343837;stroke:#343837;" x="562.087209" xlink:href="#m2304820e09" y="439.584658"/> + <use style="fill:#343837;stroke:#343837;" x="563.675538" xlink:href="#m2304820e09" y="437.809315"/> + <use style="fill:#343837;stroke:#343837;" x="565.263868" xlink:href="#m2304820e09" y="107.595616"/> + <use style="fill:#343837;stroke:#343837;" x="566.852197" xlink:href="#m2304820e09" y="709.436712"/> + <use style="fill:#343837;stroke:#343837;" x="568.440527" xlink:href="#m2304820e09" y="684.581918"/> + <use style="fill:#343837;stroke:#343837;" x="570.028856" xlink:href="#m2304820e09" y="734.291507"/> + <use style="fill:#343837;stroke:#343837;" x="571.617186" xlink:href="#m2304820e09" y="576.286027"/> + <use style="fill:#343837;stroke:#343837;" x="573.205515" xlink:href="#m2304820e09" y="732.516164"/> + <use style="fill:#343837;stroke:#343837;" x="574.793845" xlink:href="#m2304820e09" y="945.55726"/> + <use style="fill:#343837;stroke:#343837;" x="576.382174" xlink:href="#m2304820e09" y="764.472329"/> + <use style="fill:#343837;stroke:#343837;" x="577.970504" xlink:href="#m2304820e09" y="357.918904"/> + <use style="fill:#343837;stroke:#343837;" x="579.558833" xlink:href="#m2304820e09" y="134.225753"/> + <use style="fill:#343837;stroke:#343837;" x="581.147163" xlink:href="#m2304820e09" y="803.529863"/> + <use style="fill:#343837;stroke:#343837;" x="582.735492" xlink:href="#m2304820e09" y="643.749041"/> + <use style="fill:#343837;stroke:#343837;" x="584.323821" xlink:href="#m2304820e09" y="681.031233"/> + <use style="fill:#343837;stroke:#343837;" x="585.912151" xlink:href="#m2304820e09" y="801.754521"/> + <use style="fill:#343837;stroke:#343837;" x="587.50048" xlink:href="#m2304820e09" y="194.587397"/> + <use style="fill:#343837;stroke:#343837;" x="589.08881" xlink:href="#m2304820e09" y="63.212055"/> + <use style="fill:#343837;stroke:#343837;" x="590.677139" xlink:href="#m2304820e09" y="641.973699"/> + <use style="fill:#343837;stroke:#343837;" x="592.265469" xlink:href="#m2304820e09" y="393.425753"/> + <use style="fill:#343837;stroke:#343837;" x="593.853798" xlink:href="#m2304820e09" y="244.296986"/> + <use style="fill:#343837;stroke:#343837;" x="595.442128" xlink:href="#m2304820e09" y="707.66137"/> + <use style="fill:#343837;stroke:#343837;" x="597.030457" xlink:href="#m2304820e09" y="391.650411"/> + <use style="fill:#343837;stroke:#343837;" x="598.618787" xlink:href="#m2304820e09" y="389.875068"/> + <use style="fill:#343837;stroke:#343837;" x="600.207116" xlink:href="#m2304820e09" y="705.886027"/> + <use style="fill:#343837;stroke:#343837;" x="601.795446" xlink:href="#m2304820e09" y="533.677808"/> + <use style="fill:#343837;stroke:#343837;" x="603.383775" xlink:href="#m2304820e09" y="77.414795"/> + <use style="fill:#343837;stroke:#343837;" x="604.972105" xlink:href="#m2304820e09" y="105.820274"/> + <use style="fill:#343837;stroke:#343837;" x="606.560434" xlink:href="#m2304820e09" y="865.666849"/> + <use style="fill:#343837;stroke:#343837;" x="608.148764" xlink:href="#m2304820e09" y="212.340822"/> + <use style="fill:#343837;stroke:#343837;" x="609.737093" xlink:href="#m2304820e09" y="531.902466"/> + <use style="fill:#343837;stroke:#343837;" x="611.325423" xlink:href="#m2304820e09" y="436.033973"/> + <use style="fill:#343837;stroke:#343837;" x="612.913752" xlink:href="#m2304820e09" y="615.343562"/> + <use style="fill:#343837;stroke:#343837;" x="614.502082" xlink:href="#m2304820e09" y="574.510685"/> + <use style="fill:#343837;stroke:#343837;" x="616.090411" xlink:href="#m2304820e09" y="762.696986"/> + <use style="fill:#343837;stroke:#343837;" x="617.678741" xlink:href="#m2304820e09" y="483.968219"/> + <use style="fill:#343837;stroke:#343837;" x="619.26707" xlink:href="#m2304820e09" y="331.288767"/> + <use style="fill:#343837;stroke:#343837;" x="620.8554" xlink:href="#m2304820e09" y="863.891507"/> + <use style="fill:#343837;stroke:#343837;" x="622.443729" xlink:href="#m2304820e09" y="613.568219"/> + <use style="fill:#343837;stroke:#343837;" x="624.032058" xlink:href="#m2304820e09" y="862.116164"/> + <use style="fill:#343837;stroke:#343837;" x="625.620388" xlink:href="#m2304820e09" y="434.25863"/> + <use style="fill:#343837;stroke:#343837;" x="627.208717" xlink:href="#m2304820e09" y="943.781918"/> + <use style="fill:#343837;stroke:#343837;" x="628.797047" xlink:href="#m2304820e09" y="908.275068"/> + <use style="fill:#343837;stroke:#343837;" x="630.385376" xlink:href="#m2304820e09" y="185.710685"/> + <use style="fill:#343837;stroke:#343837;" x="631.973706" xlink:href="#m2304820e09" y="860.340822"/> + <use style="fill:#343837;stroke:#343837;" x="633.562035" xlink:href="#m2304820e09" y="601.140822"/> + <use style="fill:#343837;stroke:#343837;" x="635.150365" xlink:href="#m2304820e09" y="906.499726"/> + <use style="fill:#343837;stroke:#343837;" x="636.738694" xlink:href="#m2304820e09" y="482.192877"/> + <use style="fill:#343837;stroke:#343837;" x="638.327024" xlink:href="#m2304820e09" y="183.935342"/> + <use style="fill:#343837;stroke:#343837;" x="639.915353" xlink:href="#m2304820e09" y="480.417534"/> + <use style="fill:#343837;stroke:#343837;" x="641.503683" xlink:href="#m2304820e09" y="904.724384"/> + <use style="fill:#343837;stroke:#343837;" x="643.092012" xlink:href="#m2304820e09" y="132.450411"/> + <use style="fill:#343837;stroke:#343837;" x="644.680342" xlink:href="#m2304820e09" y="269.151781"/> + <use style="fill:#343837;stroke:#343837;" x="646.268671" xlink:href="#m2304820e09" y="572.735342"/> + <use style="fill:#343837;stroke:#343837;" x="647.857001" xlink:href="#m2304820e09" y="104.044932"/> + <use style="fill:#343837;stroke:#343837;" x="649.44533" xlink:href="#m2304820e09" y="356.143562"/> + <use style="fill:#343837;stroke:#343837;" x="651.03366" xlink:href="#m2304820e09" y="388.099726"/> + <use style="fill:#343837;stroke:#343837;" x="652.621989" xlink:href="#m2304820e09" y="704.110685"/> + <use style="fill:#343837;stroke:#343837;" x="654.210319" xlink:href="#m2304820e09" y="329.513425"/> + <use style="fill:#343837;stroke:#343837;" x="655.798648" xlink:href="#m2304820e09" y="515.924384"/> + <use style="fill:#343837;stroke:#343837;" x="657.386978" xlink:href="#m2304820e09" y="478.642192"/> + <use style="fill:#343837;stroke:#343837;" x="658.975307" xlink:href="#m2304820e09" y="102.269589"/> + <use style="fill:#343837;stroke:#343837;" x="660.563636" xlink:href="#m2304820e09" y="242.521644"/> + <use style="fill:#343837;stroke:#343837;" x="662.151966" xlink:href="#m2304820e09" y="432.483288"/> + <use style="fill:#343837;stroke:#343837;" x="663.740295" xlink:href="#m2304820e09" y="476.866849"/> + <use style="fill:#343837;stroke:#343837;" x="665.328625" xlink:href="#m2304820e09" y="799.979178"/> + <use style="fill:#343837;stroke:#343837;" x="666.916954" xlink:href="#m2304820e09" y="150.203836"/> + <use style="fill:#343837;stroke:#343837;" x="668.505284" xlink:href="#m2304820e09" y="148.428493"/> + <use style="fill:#343837;stroke:#343837;" x="670.093613" xlink:href="#m2304820e09" y="858.565479"/> + <use style="fill:#343837;stroke:#343837;" x="671.681943" xlink:href="#m2304820e09" y="430.707945"/> + <use style="fill:#343837;stroke:#343837;" x="673.270272" xlink:href="#m2304820e09" y="210.565479"/> + <use style="fill:#343837;stroke:#343837;" x="674.858602" xlink:href="#m2304820e09" y="702.335342"/> + <use style="fill:#343837;stroke:#343837;" x="676.446931" xlink:href="#m2304820e09" y="570.96"/> + <use style="fill:#343837;stroke:#343837;" x="678.035261" xlink:href="#m2304820e09" y="700.56"/> + <use style="fill:#343837;stroke:#343837;" x="679.62359" xlink:href="#m2304820e09" y="856.790137"/> + <use style="fill:#343837;stroke:#343837;" x="681.21192" xlink:href="#m2304820e09" y="327.738082"/> + <use style="fill:#343837;stroke:#343837;" x="682.800249" xlink:href="#m2304820e09" y="475.091507"/> + <use style="fill:#343837;stroke:#343837;" x="684.388579" xlink:href="#m2304820e09" y="208.790137"/> + <use style="fill:#343837;stroke:#343837;" x="685.976908" xlink:href="#m2304820e09" y="207.014795"/> + <use style="fill:#343837;stroke:#343837;" x="687.565238" xlink:href="#m2304820e09" y="640.198356"/> + <use style="fill:#343837;stroke:#343837;" x="689.153567" xlink:href="#m2304820e09" y="855.014795"/> + <use style="fill:#343837;stroke:#343837;" x="690.741897" xlink:href="#m2304820e09" y="386.324384"/> + <use style="fill:#343837;stroke:#343837;" x="692.330226" xlink:href="#m2304820e09" y="237.195616"/> + <use style="fill:#343837;stroke:#343837;" x="693.918556" xlink:href="#m2304820e09" y="325.96274"/> + <use style="fill:#343837;stroke:#343837;" x="695.506885" xlink:href="#m2304820e09" y="611.792877"/> + <use style="fill:#343837;stroke:#343837;" x="697.095214" xlink:href="#m2304820e09" y="942.006575"/> + <use style="fill:#343837;stroke:#343837;" x="698.683544" xlink:href="#m2304820e09" y="324.187397"/> + <use style="fill:#343837;stroke:#343837;" x="700.271873" xlink:href="#m2304820e09" y="569.184658"/> + <use style="fill:#343837;stroke:#343837;" x="701.860203" xlink:href="#m2304820e09" y="760.921644"/> + <use style="fill:#343837;stroke:#343837;" x="703.448532" xlink:href="#m2304820e09" y="902.949041"/> + <use style="fill:#343837;stroke:#343837;" x="705.036862" xlink:href="#m2304820e09" y="322.412055"/> + <use style="fill:#343837;stroke:#343837;" x="706.625191" xlink:href="#m2304820e09" y="182.16"/> + <use style="fill:#343837;stroke:#343837;" x="708.213521" xlink:href="#m2304820e09" y="100.494247"/> + <use style="fill:#343837;stroke:#343837;" x="709.80185" xlink:href="#m2304820e09" y="320.636712"/> + <use style="fill:#343837;stroke:#343837;" x="711.39018" xlink:href="#m2304820e09" y="61.436712"/> + <use style="fill:#343837;stroke:#343837;" x="712.978509" xlink:href="#m2304820e09" y="730.740822"/> + <use style="fill:#343837;stroke:#343837;" x="714.566839" xlink:href="#m2304820e09" y="567.409315"/> + <use style="fill:#343837;stroke:#343837;" x="716.155168" xlink:href="#m2304820e09" y="267.376438"/> + <use style="fill:#343837;stroke:#343837;" x="717.743498" xlink:href="#m2304820e09" y="265.601096"/> + <use style="fill:#343837;stroke:#343837;" x="719.331827" xlink:href="#m2304820e09" y="473.316164"/> + <use style="fill:#343837;stroke:#343837;" x="720.920157" xlink:href="#m2304820e09" y="98.718904"/> + <use style="fill:#343837;stroke:#343837;" x="722.508486" xlink:href="#m2304820e09" y="565.633973"/> + <use style="fill:#343837;stroke:#343837;" x="724.096816" xlink:href="#m2304820e09" y="59.66137"/> + <use style="fill:#343837;stroke:#343837;" x="725.685145" xlink:href="#m2304820e09" y="728.965479"/> + <use style="fill:#343837;stroke:#343837;" x="727.273475" xlink:href="#m2304820e09" y="901.173699"/> + <use style="fill:#343837;stroke:#343837;" x="728.861804" xlink:href="#m2304820e09" y="679.25589"/> + <use style="fill:#343837;stroke:#343837;" x="730.450134" xlink:href="#m2304820e09" y="240.746301"/> + <use style="fill:#343837;stroke:#343837;" x="732.038463" xlink:href="#m2304820e09" y="563.85863"/> + <use style="fill:#343837;stroke:#343837;" x="733.626792" xlink:href="#m2304820e09" y="530.127123"/> + <use style="fill:#343837;stroke:#343837;" x="735.215122" xlink:href="#m2304820e09" y="130.675068"/> + <use style="fill:#343837;stroke:#343837;" x="736.803451" xlink:href="#m2304820e09" y="638.423014"/> + <use style="fill:#343837;stroke:#343837;" x="738.391781" xlink:href="#m2304820e09" y="471.540822"/> + <use style="fill:#343837;stroke:#343837;" x="739.98011" xlink:href="#m2304820e09" y="57.886027"/> + <use style="fill:#343837;stroke:#343837;" x="741.56844" xlink:href="#m2304820e09" y="853.239452"/> + <use style="fill:#343837;stroke:#343837;" x="743.156769" xlink:href="#m2304820e09" y="899.398356"/> + <use style="fill:#343837;stroke:#343837;" x="744.745099" xlink:href="#m2304820e09" y="292.231233"/> + <use style="fill:#343837;stroke:#343837;" x="746.333428" xlink:href="#m2304820e09" y="263.825753"/> + <use style="fill:#343837;stroke:#343837;" x="747.921758" xlink:href="#m2304820e09" y="562.083288"/> + <use style="fill:#343837;stroke:#343837;" x="749.510087" xlink:href="#m2304820e09" y="759.146301"/> + <use style="fill:#343837;stroke:#343837;" x="751.098417" xlink:href="#m2304820e09" y="851.46411"/> + <use style="fill:#343837;stroke:#343837;" x="752.686746" xlink:href="#m2304820e09" y="636.647671"/> + <use style="fill:#343837;stroke:#343837;" x="754.275076" xlink:href="#m2304820e09" y="560.307945"/> + <use style="fill:#343837;stroke:#343837;" x="755.863405" xlink:href="#m2304820e09" y="558.532603"/> + <use style="fill:#343837;stroke:#343837;" x="757.451735" xlink:href="#m2304820e09" y="698.784658"/> + <use style="fill:#343837;stroke:#343837;" x="759.040064" xlink:href="#m2304820e09" y="897.623014"/> + <use style="fill:#343837;stroke:#343837;" x="760.628394" xlink:href="#m2304820e09" y="688.132603"/> + <use style="fill:#343837;stroke:#343837;" x="762.216723" xlink:href="#m2304820e09" y="849.688767"/> + <use style="fill:#343837;stroke:#343837;" x="763.805053" xlink:href="#m2304820e09" y="469.765479"/> + <use style="fill:#343837;stroke:#343837;" x="765.393382" xlink:href="#m2304820e09" y="128.899726"/> + <use style="fill:#343837;stroke:#343837;" x="766.981712" xlink:href="#m2304820e09" y="528.351781"/> + <use style="fill:#343837;stroke:#343837;" x="768.570041" xlink:href="#m2304820e09" y="428.932603"/> + <use style="fill:#343837;stroke:#343837;" x="770.158371" xlink:href="#m2304820e09" y="96.943562"/> + <use style="fill:#343837;stroke:#343837;" x="771.7467" xlink:href="#m2304820e09" y="262.050411"/> + <use style="fill:#343837;stroke:#343837;" x="773.335029" xlink:href="#m2304820e09" y="205.239452"/> + <use style="fill:#343837;stroke:#343837;" x="774.923359" xlink:href="#m2304820e09" y="318.86137"/> + <use style="fill:#343837;stroke:#343837;" x="776.511688" xlink:href="#m2304820e09" y="309.984658"/> + <use style="fill:#343837;stroke:#343837;" x="778.100018" xlink:href="#m2304820e09" y="95.168219"/> + <use style="fill:#343837;stroke:#343837;" x="779.688347" xlink:href="#m2304820e09" y="127.124384"/> + <use style="fill:#343837;stroke:#343837;" x="781.276677" xlink:href="#m2304820e09" y="467.990137"/> + <use style="fill:#343837;stroke:#343837;" x="782.865006" xlink:href="#m2304820e09" y="895.847671"/> + <use style="fill:#343837;stroke:#343837;" x="784.453336" xlink:href="#m2304820e09" y="610.017534"/> + <use style="fill:#343837;stroke:#343837;" x="786.041665" xlink:href="#m2304820e09" y="260.275068"/> + <use style="fill:#343837;stroke:#343837;" x="787.629995" xlink:href="#m2304820e09" y="354.368219"/> + <use style="fill:#343837;stroke:#343837;" x="789.218324" xlink:href="#m2304820e09" y="757.370959"/> + <use style="fill:#343837;stroke:#343837;" x="790.806654" xlink:href="#m2304820e09" y="258.499726"/> + <use style="fill:#343837;stroke:#343837;" x="792.394983" xlink:href="#m2304820e09" y="599.365479"/> + <use style="fill:#343837;stroke:#343837;" x="793.983313" xlink:href="#m2304820e09" y="93.392877"/> + <use style="fill:#343837;stroke:#343837;" x="795.571642" xlink:href="#m2304820e09" y="940.231233"/> + <use style="fill:#343837;stroke:#343837;" x="797.159972" xlink:href="#m2304820e09" y="755.595616"/> + <use style="fill:#343837;stroke:#343837;" x="798.748301" xlink:href="#m2304820e09" y="427.15726"/> + <use style="fill:#343837;stroke:#343837;" x="800.336631" xlink:href="#m2304820e09" y="753.820274"/> + <use style="fill:#343837;stroke:#343837;" x="801.92496" xlink:href="#m2304820e09" y="352.592877"/> + <use style="fill:#343837;stroke:#343837;" x="803.51329" xlink:href="#m2304820e09" y="256.724384"/> + <use style="fill:#343837;stroke:#343837;" x="805.101619" xlink:href="#m2304820e09" y="634.872329"/> + <use style="fill:#343837;stroke:#343837;" x="806.689949" xlink:href="#m2304820e09" y="180.384658"/> + <use style="fill:#343837;stroke:#343837;" x="808.278278" xlink:href="#m2304820e09" y="425.381918"/> + <use style="fill:#343837;stroke:#343837;" x="809.866607" xlink:href="#m2304820e09" y="847.913425"/> + <use style="fill:#343837;stroke:#343837;" x="811.454937" xlink:href="#m2304820e09" y="423.606575"/> + <use style="fill:#343837;stroke:#343837;" x="813.043266" xlink:href="#m2304820e09" y="846.138082"/> + <use style="fill:#343837;stroke:#343837;" x="814.631596" xlink:href="#m2304820e09" y="125.349041"/> + <use style="fill:#343837;stroke:#343837;" x="816.219925" xlink:href="#m2304820e09" y="798.203836"/> + <use style="fill:#343837;stroke:#343837;" x="817.808255" xlink:href="#m2304820e09" y="894.072329"/> + <use style="fill:#343837;stroke:#343837;" x="819.396584" xlink:href="#m2304820e09" y="752.044932"/> + <use style="fill:#343837;stroke:#343837;" x="820.984914" xlink:href="#m2304820e09" y="350.817534"/> + <use style="fill:#343837;stroke:#343837;" x="822.573243" xlink:href="#m2304820e09" y="892.296986"/> + <use style="fill:#343837;stroke:#343837;" x="824.161573" xlink:href="#m2304820e09" y="727.190137"/> + <use style="fill:#343837;stroke:#343837;" x="825.749902" xlink:href="#m2304820e09" y="178.609315"/> + <use style="fill:#343837;stroke:#343837;" x="827.338232" xlink:href="#m2304820e09" y="627.770959"/> + <use style="fill:#343837;stroke:#343837;" x="828.926561" xlink:href="#m2304820e09" y="56.110685"/> + <use style="fill:#343837;stroke:#343837;" x="830.514891" xlink:href="#m2304820e09" y="796.428493"/> + <use style="fill:#343837;stroke:#343837;" x="832.10322" xlink:href="#m2304820e09" y="556.75726"/> + <use style="fill:#343837;stroke:#343837;" x="833.69155" xlink:href="#m2304820e09" y="146.653151"/> + <use style="fill:#343837;stroke:#343837;" x="835.279879" xlink:href="#m2304820e09" y="166.181918"/> + <use style="fill:#343837;stroke:#343837;" x="836.868209" xlink:href="#m2304820e09" y="421.831233"/> + <use style="fill:#343837;stroke:#343837;" x="838.456538" xlink:href="#m2304820e09" y="890.521644"/> + <use style="fill:#343837;stroke:#343837;" x="840.044868" xlink:href="#m2304820e09" y="238.970959"/> + <use style="fill:#343837;stroke:#343837;" x="841.633197" xlink:href="#m2304820e09" y="420.05589"/> + <use style="fill:#343837;stroke:#343837;" x="843.221527" xlink:href="#m2304820e09" y="418.280548"/> + <use style="fill:#343837;stroke:#343837;" x="844.809856" xlink:href="#m2304820e09" y="416.505205"/> + <use style="fill:#343837;stroke:#343837;" x="846.398185" xlink:href="#m2304820e09" y="349.042192"/> + <use style="fill:#343837;stroke:#343837;" x="847.986515" xlink:href="#m2304820e09" y="633.096986"/> + <use style="fill:#343837;stroke:#343837;" x="849.574844" xlink:href="#m2304820e09" y="554.981918"/> + <use style="fill:#343837;stroke:#343837;" x="851.163174" xlink:href="#m2304820e09" y="347.266849"/> + <use style="fill:#343837;stroke:#343837;" x="852.751503" xlink:href="#m2304820e09" y="414.729863"/> + <use style="fill:#343837;stroke:#343837;" x="854.339833" xlink:href="#m2304820e09" y="164.406575"/> + <use style="fill:#343837;stroke:#343837;" x="855.928162" xlink:href="#m2304820e09" y="203.46411"/> + <use style="fill:#343837;stroke:#343837;" x="857.516492" xlink:href="#m2304820e09" y="384.549041"/> + <use style="fill:#343837;stroke:#343837;" x="859.104821" xlink:href="#m2304820e09" y="201.688767"/> + <use style="fill:#343837;stroke:#343837;" x="860.693151" xlink:href="#m2304820e09" y="888.746301"/> + <use style="fill:#343837;stroke:#343837;" x="862.28148" xlink:href="#m2304820e09" y="553.206575"/> + <use style="fill:#343837;stroke:#343837;" x="863.86981" xlink:href="#m2304820e09" y="886.970959"/> + <use style="fill:#343837;stroke:#343837;" x="865.458139" xlink:href="#m2304820e09" y="192.812055"/> + <use style="fill:#343837;stroke:#343837;" x="867.046469" xlink:href="#m2304820e09" y="551.431233"/> + <use style="fill:#343837;stroke:#343837;" x="868.634798" xlink:href="#m2304820e09" y="677.480548"/> + <use style="fill:#343837;stroke:#343837;" x="870.223128" xlink:href="#m2304820e09" y="412.954521"/> + <use style="fill:#343837;stroke:#343837;" x="871.811457" xlink:href="#m2304820e09" y="608.242192"/> + <use style="fill:#343837;stroke:#343837;" x="873.399787" xlink:href="#m2304820e09" y="345.491507"/> + <use style="fill:#343837;stroke:#343837;" x="874.988116" xlink:href="#m2304820e09" y="54.335342"/> + <use style="fill:#343837;stroke:#343837;" x="876.576446" xlink:href="#m2304820e09" y="844.36274"/> + <use style="fill:#343837;stroke:#343837;" x="878.164775" xlink:href="#m2304820e09" y="549.65589"/> + <use style="fill:#343837;stroke:#343837;" x="879.753105" xlink:href="#m2304820e09" y="624.220274"/> + <use style="fill:#343837;stroke:#343837;" x="881.341434" xlink:href="#m2304820e09" y="547.880548"/> + <use style="fill:#343837;stroke:#343837;" x="882.929763" xlink:href="#m2304820e09" y="199.913425"/> + <use style="fill:#343837;stroke:#343837;" x="884.518093" xlink:href="#m2304820e09" y="725.414795"/> + <use style="fill:#343837;stroke:#343837;" x="886.106422" xlink:href="#m2304820e09" y="697.009315"/> + <use style="fill:#343837;stroke:#343837;" x="887.694752" xlink:href="#m2304820e09" y="723.639452"/> + <use style="fill:#343837;stroke:#343837;" x="889.283081" xlink:href="#m2304820e09" y="290.45589"/> + <use style="fill:#343837;stroke:#343837;" x="890.871411" xlink:href="#m2304820e09" y="597.590137"/> + <use style="fill:#343837;stroke:#343837;" x="892.45974" xlink:href="#m2304820e09" y="254.949041"/> + <use style="fill:#343837;stroke:#343837;" x="894.04807" xlink:href="#m2304820e09" y="842.587397"/> + <use style="fill:#343837;stroke:#343837;" x="895.636399" xlink:href="#m2304820e09" y="546.105205"/> + <use style="fill:#343837;stroke:#343837;" x="897.224729" xlink:href="#m2304820e09" y="382.773699"/> + <use style="fill:#343837;stroke:#343837;" x="898.813058" xlink:href="#m2304820e09" y="162.631233"/> + <use style="fill:#343837;stroke:#343837;" x="900.401388" xlink:href="#m2304820e09" y="144.877808"/> + <use style="fill:#343837;stroke:#343837;" x="901.989717" xlink:href="#m2304820e09" y="466.214795"/> + <use style="fill:#343837;stroke:#343837;" x="903.578047" xlink:href="#m2304820e09" y="411.179178"/> + <use style="fill:#343837;stroke:#343837;" x="905.166376" xlink:href="#m2304820e09" y="514.149041"/> + <use style="fill:#343837;stroke:#343837;" x="906.754706" xlink:href="#m2304820e09" y="464.439452"/> + <use style="fill:#343837;stroke:#343837;" x="908.343035" xlink:href="#m2304820e09" y="160.85589"/> + <use style="fill:#343837;stroke:#343837;" x="909.931365" xlink:href="#m2304820e09" y="52.56"/> + <use style="fill:#343837;stroke:#343837;" x="911.519694" xlink:href="#m2304820e09" y="721.86411"/> + <use style="fill:#343837;stroke:#343837;" x="913.108024" xlink:href="#m2304820e09" y="595.814795"/> + <use style="fill:#343837;stroke:#343837;" x="914.696353" xlink:href="#m2304820e09" y="631.321644"/> + <use style="fill:#343837;stroke:#343837;" x="916.284683" xlink:href="#m2304820e09" y="253.173699"/> + <use style="fill:#343837;stroke:#343837;" x="917.873012" xlink:href="#m2304820e09" y="622.444932"/> + <use style="fill:#343837;stroke:#343837;" x="919.461342" xlink:href="#m2304820e09" y="288.680548"/> + <use style="fill:#343837;stroke:#343837;" x="921.049671" xlink:href="#m2304820e09" y="544.329863"/> + <use style="fill:#343837;stroke:#343837;" x="922.638" xlink:href="#m2304820e09" y="840.812055"/> + <use style="fill:#343837;stroke:#343837;" x="924.22633" xlink:href="#m2304820e09" y="317.086027"/> + <use style="fill:#343837;stroke:#343837;" x="925.814659" xlink:href="#m2304820e09" y="512.373699"/> + <use style="fill:#343837;stroke:#343837;" x="927.402989" xlink:href="#m2304820e09" y="839.036712"/> + <use style="fill:#343837;stroke:#343837;" x="928.991318" xlink:href="#m2304820e09" y="251.398356"/> + <use style="fill:#343837;stroke:#343837;" x="930.579648" xlink:href="#m2304820e09" y="750.269589"/> + <use style="fill:#343837;stroke:#343837;" x="932.167977" xlink:href="#m2304820e09" y="510.598356"/> + <use style="fill:#343837;stroke:#343837;" x="933.756307" xlink:href="#m2304820e09" y="542.554521"/> + </g> + </g> + <g id="patch_3"> + <path d="M 81.538125 1005.12 +L 81.538125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 974.338125 1005.12 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 81.538125 7.2 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 99.738125 66.163125 +L 588.631562 66.163125 +Q 593.831563 66.163125 593.831563 60.963125 +L 593.831563 25.4 +Q 593.831563 20.2 588.631562 20.2 +L 99.738125 20.2 +Q 94.538125 20.2 94.538125 25.4 +L 94.538125 60.963125 +Q 94.538125 66.163125 99.738125 66.163125 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_26"/> + <g id="line2d_27"> + <g> + <use style="fill:#343837;stroke:#343837;" x="130.938125" xlink:href="#m2304820e09" y="41.255938"/> + </g> + </g> + <g id="text_15"> + <!-- (sorted index, permuted index) --> + <defs> + <path d="M 31 75.875 +Q 24.46875 64.65625 21.28125 53.65625 +Q 18.109375 42.671875 18.109375 31.390625 +Q 18.109375 20.125 21.3125 9.0625 +Q 24.515625 -2 31 -13.1875 +L 23.1875 -13.1875 +Q 15.875 -1.703125 12.234375 9.375 +Q 8.59375 20.453125 8.59375 31.390625 +Q 8.59375 42.28125 12.203125 53.3125 +Q 15.828125 64.359375 23.1875 75.875 +z +" id="DejaVuSans-40"/> + <path d="M 11.71875 12.40625 +L 22.015625 12.40625 +L 22.015625 4 +L 14.015625 -11.625 +L 7.71875 -11.625 +L 11.71875 4 +z +" id="DejaVuSans-44"/> + <path d="M 8.015625 75.875 +L 15.828125 75.875 +Q 23.140625 64.359375 26.78125 53.3125 +Q 30.421875 42.28125 30.421875 31.390625 +Q 30.421875 20.453125 26.78125 9.375 +Q 23.140625 -1.703125 15.828125 -13.1875 +L 8.015625 -13.1875 +Q 14.5 -2 17.703125 9.0625 +Q 20.90625 20.125 20.90625 31.390625 +Q 20.90625 42.671875 17.703125 53.65625 +Q 14.5 64.65625 8.015625 75.875 +z +" id="DejaVuSans-41"/> + </defs> + <g transform="translate(177.738125 50.355938)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-40"/> + <use x="39.013672" xlink:href="#DejaVuSans-115"/> + <use x="91.113281" xlink:href="#DejaVuSans-111"/> + <use x="152.294922" xlink:href="#DejaVuSans-114"/> + <use x="193.408203" xlink:href="#DejaVuSans-116"/> + <use x="232.617188" xlink:href="#DejaVuSans-101"/> + <use x="294.140625" xlink:href="#DejaVuSans-100"/> + <use x="357.617188" xlink:href="#DejaVuSans-32"/> + <use x="389.404297" xlink:href="#DejaVuSans-105"/> + <use x="417.1875" xlink:href="#DejaVuSans-110"/> + <use x="480.566406" xlink:href="#DejaVuSans-100"/> + <use x="544.042969" xlink:href="#DejaVuSans-101"/> + <use x="603.816406" xlink:href="#DejaVuSans-120"/> + <use x="662.996094" xlink:href="#DejaVuSans-44"/> + <use x="694.783203" xlink:href="#DejaVuSans-32"/> + <use x="726.570312" xlink:href="#DejaVuSans-112"/> + <use x="790.046875" xlink:href="#DejaVuSans-101"/> + <use x="851.570312" xlink:href="#DejaVuSans-114"/> + <use x="890.933594" xlink:href="#DejaVuSans-109"/> + <use x="988.345703" xlink:href="#DejaVuSans-117"/> + <use x="1051.724609" xlink:href="#DejaVuSans-116"/> + <use x="1090.933594" xlink:href="#DejaVuSans-101"/> + <use x="1152.457031" xlink:href="#DejaVuSans-100"/> + <use x="1215.933594" xlink:href="#DejaVuSans-32"/> + <use x="1247.720703" xlink:href="#DejaVuSans-105"/> + <use x="1275.503906" xlink:href="#DejaVuSans-110"/> + <use x="1338.882812" xlink:href="#DejaVuSans-100"/> + <use x="1402.359375" xlink:href="#DejaVuSans-101"/> + <use x="1462.132812" xlink:href="#DejaVuSans-120"/> + <use x="1521.3125" xlink:href="#DejaVuSans-41"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p066c296600"> + <rect height="997.92" width="892.8" x="81.538125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-permutation-uniform.pdf b/plots/paper-permutation-uniform.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3c3c0af51f8810939b8db3fe5ba1e78dcf3e77c7 Binary files /dev/null and b/plots/paper-permutation-uniform.pdf differ diff --git a/plots/paper-permutation-uniform.svg b/plots/paper-permutation-uniform.svg new file mode 100644 index 0000000000000000000000000000000000000000..e8d104420cf0e3815ed0256b0ace97e226538303 --- /dev/null +++ b/plots/paper-permutation-uniform.svg @@ -0,0 +1,1427 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 981.538125 1067.839375" width="981.538125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 981.538125 1067.839375 +L 981.538125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +L 974.338125 7.2 +L 81.538125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#pa3cb603142)" d="M 122.119943 1005.12 +L 122.119943 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="mbac6de5ca3" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="122.119943" xlink:href="#mbac6de5ca3" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(115.757443 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#pa3cb603142)" d="M 280.952891 1005.12 +L 280.952891 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="280.952891" xlink:href="#mbac6de5ca3" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 100 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(261.865391 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#pa3cb603142)" d="M 439.785839 1005.12 +L 439.785839 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="439.785839" xlink:href="#mbac6de5ca3" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 200 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(420.698339 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#pa3cb603142)" d="M 598.618787 1005.12 +L 598.618787 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="598.618787" xlink:href="#mbac6de5ca3" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 300 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +z +" id="DejaVuSans-51"/> + </defs> + <g transform="translate(579.531287 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#pa3cb603142)" d="M 757.451735 1005.12 +L 757.451735 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="757.451735" xlink:href="#mbac6de5ca3" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 400 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(738.364235 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#pa3cb603142)" d="M 916.284683 1005.12 +L 916.284683 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="916.284683" xlink:href="#mbac6de5ca3" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 500 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(897.197183 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_7"> + <!-- Index in sorted list --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-73"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 45.40625 46.390625 +L 45.40625 75.984375 +L 54.390625 75.984375 +L 54.390625 0 +L 45.40625 0 +L 45.40625 8.203125 +Q 42.578125 3.328125 38.25 0.953125 +Q 33.9375 -1.421875 27.875 -1.421875 +Q 17.96875 -1.421875 11.734375 6.484375 +Q 5.515625 14.40625 5.515625 27.296875 +Q 5.515625 40.1875 11.734375 48.09375 +Q 17.96875 56 27.875 56 +Q 33.9375 56 38.25 53.625 +Q 42.578125 51.265625 45.40625 46.390625 +z +M 14.796875 27.296875 +Q 14.796875 17.390625 18.875 11.75 +Q 22.953125 6.109375 30.078125 6.109375 +Q 37.203125 6.109375 41.296875 11.75 +Q 45.40625 17.390625 45.40625 27.296875 +Q 45.40625 37.203125 41.296875 42.84375 +Q 37.203125 48.484375 30.078125 48.484375 +Q 22.953125 48.484375 18.875 42.84375 +Q 14.796875 37.203125 14.796875 27.296875 +z +" id="DejaVuSans-100"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + <path d="M 54.890625 54.6875 +L 35.109375 28.078125 +L 55.90625 0 +L 45.3125 0 +L 29.390625 21.484375 +L 13.484375 0 +L 2.875 0 +L 24.125 28.609375 +L 4.6875 54.6875 +L 15.28125 54.6875 +L 29.78125 35.203125 +L 44.28125 54.6875 +z +" id="DejaVuSans-120"/> + <path id="DejaVuSans-32"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + </defs> + <g transform="translate(407.389531 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-115"/> + <use x="482.136719" xlink:href="#DejaVuSans-111"/> + <use x="543.318359" xlink:href="#DejaVuSans-114"/> + <use x="584.431641" xlink:href="#DejaVuSans-116"/> + <use x="623.640625" xlink:href="#DejaVuSans-101"/> + <use x="685.164062" xlink:href="#DejaVuSans-100"/> + <use x="748.640625" xlink:href="#DejaVuSans-32"/> + <use x="780.427734" xlink:href="#DejaVuSans-108"/> + <use x="808.210938" xlink:href="#DejaVuSans-105"/> + <use x="835.994141" xlink:href="#DejaVuSans-115"/> + <use x="888.09375" xlink:href="#DejaVuSans-116"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_13"> + <path clip-path="url(#pa3cb603142)" d="M 81.538125 959.76 +L 974.338125 959.76 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m0454baa55b" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m0454baa55b" y="959.76"/> + </g> + </g> + <g id="text_8"> + <!-- 0 --> + <g transform="translate(61.813125 967.358438)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_15"> + <path clip-path="url(#pa3cb603142)" d="M 81.538125 782.225753 +L 974.338125 782.225753 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m0454baa55b" y="782.225753"/> + </g> + </g> + <g id="text_9"> + <!-- 100 --> + <g transform="translate(36.363125 789.824191)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_17"> + <path clip-path="url(#pa3cb603142)" d="M 81.538125 604.691507 +L 974.338125 604.691507 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m0454baa55b" y="604.691507"/> + </g> + </g> + <g id="text_10"> + <!-- 200 --> + <g transform="translate(36.363125 612.289944)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_19"> + <path clip-path="url(#pa3cb603142)" d="M 81.538125 427.15726 +L 974.338125 427.15726 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m0454baa55b" y="427.15726"/> + </g> + </g> + <g id="text_11"> + <!-- 300 --> + <g transform="translate(36.363125 434.755698)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_21"> + <path clip-path="url(#pa3cb603142)" d="M 81.538125 249.623014 +L 974.338125 249.623014 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m0454baa55b" y="249.623014"/> + </g> + </g> + <g id="text_12"> + <!-- 400 --> + <g transform="translate(36.363125 257.221451)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_23"> + <path clip-path="url(#pa3cb603142)" d="M 81.538125 72.088767 +L 974.338125 72.088767 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="81.538125" xlink:href="#m0454baa55b" y="72.088767"/> + </g> + </g> + <g id="text_13"> + <!-- 500 --> + <g transform="translate(36.363125 79.687205)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Index in permutation --> + <defs> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + </defs> + <g transform="translate(26.955938 642.300469)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-100"/> + <use x="156.347656" xlink:href="#DejaVuSans-101"/> + <use x="216.121094" xlink:href="#DejaVuSans-120"/> + <use x="275.300781" xlink:href="#DejaVuSans-32"/> + <use x="307.087891" xlink:href="#DejaVuSans-105"/> + <use x="334.871094" xlink:href="#DejaVuSans-110"/> + <use x="398.25" xlink:href="#DejaVuSans-32"/> + <use x="430.037109" xlink:href="#DejaVuSans-112"/> + <use x="493.513672" xlink:href="#DejaVuSans-101"/> + <use x="555.037109" xlink:href="#DejaVuSans-114"/> + <use x="594.400391" xlink:href="#DejaVuSans-109"/> + <use x="691.8125" xlink:href="#DejaVuSans-117"/> + <use x="755.191406" xlink:href="#DejaVuSans-116"/> + <use x="794.400391" xlink:href="#DejaVuSans-97"/> + <use x="855.679688" xlink:href="#DejaVuSans-116"/> + <use x="894.888672" xlink:href="#DejaVuSans-105"/> + <use x="922.671875" xlink:href="#DejaVuSans-111"/> + <use x="983.853516" xlink:href="#DejaVuSans-110"/> + </g> + </g> + </g> + <g id="line2d_25"> + <defs> + <path d="M 0 3 +C 0.795609 3 1.55874 2.683901 2.12132 2.12132 +C 2.683901 1.55874 3 0.795609 3 0 +C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 +C 1.55874 -2.683901 0.795609 -3 0 -3 +C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 +C -2.683901 -1.55874 -3 -0.795609 -3 0 +C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 +C -1.55874 2.683901 -0.795609 3 0 3 +z +" id="m4a1a34e5a4" style="stroke:#343837;"/> + </defs> + <g clip-path="url(#pa3cb603142)"> + <use style="fill:#343837;stroke:#343837;" x="122.119943" xlink:href="#m4a1a34e5a4" y="757.370959"/> + <use style="fill:#343837;stroke:#343837;" x="123.708273" xlink:href="#m4a1a34e5a4" y="787.551781"/> + <use style="fill:#343837;stroke:#343837;" x="125.296602" xlink:href="#m4a1a34e5a4" y="656.176438"/> + <use style="fill:#343837;stroke:#343837;" x="126.884932" xlink:href="#m4a1a34e5a4" y="862.116164"/> + <use style="fill:#343837;stroke:#343837;" x="128.473261" xlink:href="#m4a1a34e5a4" y="524.801096"/> + <use style="fill:#343837;stroke:#343837;" x="130.061591" xlink:href="#m4a1a34e5a4" y="689.907945"/> + <use style="fill:#343837;stroke:#343837;" x="131.64992" xlink:href="#m4a1a34e5a4" y="412.954521"/> + <use style="fill:#343837;stroke:#343837;" x="133.23825" xlink:href="#m4a1a34e5a4" y="775.124384"/> + <use style="fill:#343837;stroke:#343837;" x="134.826579" xlink:href="#m4a1a34e5a4" y="711.212055"/> + <use style="fill:#343837;stroke:#343837;" x="136.414908" xlink:href="#m4a1a34e5a4" y="494.620274"/> + <use style="fill:#343837;stroke:#343837;" x="138.003238" xlink:href="#m4a1a34e5a4" y="191.036712"/> + <use style="fill:#343837;stroke:#343837;" x="139.591567" xlink:href="#m4a1a34e5a4" y="947.332603"/> + <use style="fill:#343837;stroke:#343837;" x="141.179897" xlink:href="#m4a1a34e5a4" y="361.469589"/> + <use style="fill:#343837;stroke:#343837;" x="142.768226" xlink:href="#m4a1a34e5a4" y="890.521644"/> + <use style="fill:#343837;stroke:#343837;" x="144.356556" xlink:href="#m4a1a34e5a4" y="686.35726"/> + <use style="fill:#343837;stroke:#343837;" x="145.944885" xlink:href="#m4a1a34e5a4" y="441.36"/> + <use style="fill:#343837;stroke:#343837;" x="147.533215" xlink:href="#m4a1a34e5a4" y="839.036712"/> + <use style="fill:#343837;stroke:#343837;" x="149.121544" xlink:href="#m4a1a34e5a4" y="150.203836"/> + <use style="fill:#343837;stroke:#343837;" x="150.709874" xlink:href="#m4a1a34e5a4" y="263.825753"/> + <use style="fill:#343837;stroke:#343837;" x="152.298203" xlink:href="#m4a1a34e5a4" y="558.532603"/> + <use style="fill:#343837;stroke:#343837;" x="153.886533" xlink:href="#m4a1a34e5a4" y="222.992877"/> + <use style="fill:#343837;stroke:#343837;" x="155.474862" xlink:href="#m4a1a34e5a4" y="483.968219"/> + <use style="fill:#343837;stroke:#343837;" x="157.063192" xlink:href="#m4a1a34e5a4" y="132.450411"/> + <use style="fill:#343837;stroke:#343837;" x="158.651521" xlink:href="#m4a1a34e5a4" y="663.277808"/> + <use style="fill:#343837;stroke:#343837;" x="160.239851" xlink:href="#m4a1a34e5a4" y="881.644932"/> + <use style="fill:#343837;stroke:#343837;" x="161.82818" xlink:href="#m4a1a34e5a4" y="203.46411"/> + <use style="fill:#343837;stroke:#343837;" x="163.41651" xlink:href="#m4a1a34e5a4" y="327.738082"/> + <use style="fill:#343837;stroke:#343837;" x="165.004839" xlink:href="#m4a1a34e5a4" y="57.886027"/> + <use style="fill:#343837;stroke:#343837;" x="166.593169" xlink:href="#m4a1a34e5a4" y="281.579178"/> + <use style="fill:#343837;stroke:#343837;" x="168.181498" xlink:href="#m4a1a34e5a4" y="144.877808"/> + <use style="fill:#343837;stroke:#343837;" x="169.769828" xlink:href="#m4a1a34e5a4" y="512.373699"/> + <use style="fill:#343837;stroke:#343837;" x="171.358157" xlink:href="#m4a1a34e5a4" y="187.486027"/> + <use style="fill:#343837;stroke:#343837;" x="172.946487" xlink:href="#m4a1a34e5a4" y="624.220274"/> + <use style="fill:#343837;stroke:#343837;" x="174.534816" xlink:href="#m4a1a34e5a4" y="201.688767"/> + <use style="fill:#343837;stroke:#343837;" x="176.123145" xlink:href="#m4a1a34e5a4" y="457.338082"/> + <use style="fill:#343837;stroke:#343837;" x="177.711475" xlink:href="#m4a1a34e5a4" y="306.433973"/> + <use style="fill:#343837;stroke:#343837;" x="179.299804" xlink:href="#m4a1a34e5a4" y="815.95726"/> + <use style="fill:#343837;stroke:#343837;" x="180.888134" xlink:href="#m4a1a34e5a4" y="544.329863"/> + <use style="fill:#343837;stroke:#343837;" x="182.476463" xlink:href="#m4a1a34e5a4" y="432.483288"/> + <use style="fill:#343837;stroke:#343837;" x="184.064793" xlink:href="#m4a1a34e5a4" y="672.154521"/> + <use style="fill:#343837;stroke:#343837;" x="185.653122" xlink:href="#m4a1a34e5a4" y="180.384658"/> + <use style="fill:#343837;stroke:#343837;" x="187.241452" xlink:href="#m4a1a34e5a4" y="59.66137"/> + <use style="fill:#343837;stroke:#343837;" x="188.829781" xlink:href="#m4a1a34e5a4" y="185.710685"/> + <use style="fill:#343837;stroke:#343837;" x="190.418111" xlink:href="#m4a1a34e5a4" y="869.217534"/> + <use style="fill:#343837;stroke:#343837;" x="192.00644" xlink:href="#m4a1a34e5a4" y="515.924384"/> + <use style="fill:#343837;stroke:#343837;" x="193.59477" xlink:href="#m4a1a34e5a4" y="627.770959"/> + <use style="fill:#343837;stroke:#343837;" x="195.183099" xlink:href="#m4a1a34e5a4" y="650.850411"/> + <use style="fill:#343837;stroke:#343837;" x="196.771429" xlink:href="#m4a1a34e5a4" y="116.472329"/> + <use style="fill:#343837;stroke:#343837;" x="198.359758" xlink:href="#m4a1a34e5a4" y="377.447671"/> + <use style="fill:#343837;stroke:#343837;" x="199.948088" xlink:href="#m4a1a34e5a4" y="902.949041"/> + <use style="fill:#343837;stroke:#343837;" x="201.536417" xlink:href="#m4a1a34e5a4" y="175.05863"/> + <use style="fill:#343837;stroke:#343837;" x="203.124747" xlink:href="#m4a1a34e5a4" y="439.584658"/> + <use style="fill:#343837;stroke:#343837;" x="204.713076" xlink:href="#m4a1a34e5a4" y="517.699726"/> + <use style="fill:#343837;stroke:#343837;" x="206.301406" xlink:href="#m4a1a34e5a4" y="391.650411"/> + <use style="fill:#343837;stroke:#343837;" x="207.889735" xlink:href="#m4a1a34e5a4" y="407.628493"/> + <use style="fill:#343837;stroke:#343837;" x="209.478065" xlink:href="#m4a1a34e5a4" y="164.406575"/> + <use style="fill:#343837;stroke:#343837;" x="211.066394" xlink:href="#m4a1a34e5a4" y="120.023014"/> + <use style="fill:#343837;stroke:#343837;" x="212.654723" xlink:href="#m4a1a34e5a4" y="308.209315"/> + <use style="fill:#343837;stroke:#343837;" x="214.243053" xlink:href="#m4a1a34e5a4" y="938.45589"/> + <use style="fill:#343837;stroke:#343837;" x="215.831382" xlink:href="#m4a1a34e5a4" y="290.45589"/> + <use style="fill:#343837;stroke:#343837;" x="217.419712" xlink:href="#m4a1a34e5a4" y="304.65863"/> + <use style="fill:#343837;stroke:#343837;" x="219.008041" xlink:href="#m4a1a34e5a4" y="210.565479"/> + <use style="fill:#343837;stroke:#343837;" x="220.596371" xlink:href="#m4a1a34e5a4" y="370.346301"/> + <use style="fill:#343837;stroke:#343837;" x="222.1847" xlink:href="#m4a1a34e5a4" y="420.05589"/> + <use style="fill:#343837;stroke:#343837;" x="223.77303" xlink:href="#m4a1a34e5a4" y="649.075068"/> + <use style="fill:#343837;stroke:#343837;" x="225.361359" xlink:href="#m4a1a34e5a4" y="194.587397"/> + <use style="fill:#343837;stroke:#343837;" x="226.949689" xlink:href="#m4a1a34e5a4" y="865.666849"/> + <use style="fill:#343837;stroke:#343837;" x="228.538018" xlink:href="#m4a1a34e5a4" y="613.568219"/> + <use style="fill:#343837;stroke:#343837;" x="230.126348" xlink:href="#m4a1a34e5a4" y="249.623014"/> + <use style="fill:#343837;stroke:#343837;" x="231.714677" xlink:href="#m4a1a34e5a4" y="780.450411"/> + <use style="fill:#343837;stroke:#343837;" x="233.303007" xlink:href="#m4a1a34e5a4" y="700.56"/> + <use style="fill:#343837;stroke:#343837;" x="234.891336" xlink:href="#m4a1a34e5a4" y="183.935342"/> + <use style="fill:#343837;stroke:#343837;" x="236.479666" xlink:href="#m4a1a34e5a4" y="267.376438"/> + <use style="fill:#343837;stroke:#343837;" x="238.067995" xlink:href="#m4a1a34e5a4" y="901.173699"/> + <use style="fill:#343837;stroke:#343837;" x="239.656325" xlink:href="#m4a1a34e5a4" y="501.721644"/> + <use style="fill:#343837;stroke:#343837;" x="241.244654" xlink:href="#m4a1a34e5a4" y="102.269589"/> + <use style="fill:#343837;stroke:#343837;" x="242.832984" xlink:href="#m4a1a34e5a4" y="823.05863"/> + <use style="fill:#343837;stroke:#343837;" x="244.421313" xlink:href="#m4a1a34e5a4" y="398.751781"/> + <use style="fill:#343837;stroke:#343837;" x="246.009643" xlink:href="#m4a1a34e5a4" y="755.595616"/> + <use style="fill:#343837;stroke:#343837;" x="247.597972" xlink:href="#m4a1a34e5a4" y="670.379178"/> + <use style="fill:#343837;stroke:#343837;" x="249.186301" xlink:href="#m4a1a34e5a4" y="443.135342"/> + <use style="fill:#343837;stroke:#343837;" x="250.774631" xlink:href="#m4a1a34e5a4" y="242.521644"/> + <use style="fill:#343837;stroke:#343837;" x="252.36296" xlink:href="#m4a1a34e5a4" y="682.806575"/> + <use style="fill:#343837;stroke:#343837;" x="253.95129" xlink:href="#m4a1a34e5a4" y="954.433973"/> + <use style="fill:#343837;stroke:#343837;" x="255.539619" xlink:href="#m4a1a34e5a4" y="917.151781"/> + <use style="fill:#343837;stroke:#343837;" x="257.127949" xlink:href="#m4a1a34e5a4" y="679.25589"/> + <use style="fill:#343837;stroke:#343837;" x="258.716278" xlink:href="#m4a1a34e5a4" y="219.442192"/> + <use style="fill:#343837;stroke:#343837;" x="260.304608" xlink:href="#m4a1a34e5a4" y="379.223014"/> + <use style="fill:#343837;stroke:#343837;" x="261.892937" xlink:href="#m4a1a34e5a4" y="778.675068"/> + <use style="fill:#343837;stroke:#343837;" x="263.481267" xlink:href="#m4a1a34e5a4" y="192.812055"/> + <use style="fill:#343837;stroke:#343837;" x="265.069596" xlink:href="#m4a1a34e5a4" y="79.190137"/> + <use style="fill:#343837;stroke:#343837;" x="266.657926" xlink:href="#m4a1a34e5a4" y="833.710685"/> + <use style="fill:#343837;stroke:#343837;" x="268.246255" xlink:href="#m4a1a34e5a4" y="707.66137"/> + <use style="fill:#343837;stroke:#343837;" x="269.834585" xlink:href="#m4a1a34e5a4" y="237.195616"/> + <use style="fill:#343837;stroke:#343837;" x="271.422914" xlink:href="#m4a1a34e5a4" y="251.398356"/> + <use style="fill:#343837;stroke:#343837;" x="273.011244" xlink:href="#m4a1a34e5a4" y="466.214795"/> + <use style="fill:#343837;stroke:#343837;" x="274.599573" xlink:href="#m4a1a34e5a4" y="594.039452"/> + <use style="fill:#343837;stroke:#343837;" x="276.187903" xlink:href="#m4a1a34e5a4" y="915.376438"/> + <use style="fill:#343837;stroke:#343837;" x="277.776232" xlink:href="#m4a1a34e5a4" y="128.899726"/> + <use style="fill:#343837;stroke:#343837;" x="279.364562" xlink:href="#m4a1a34e5a4" y="840.812055"/> + <use style="fill:#343837;stroke:#343837;" x="280.952891" xlink:href="#m4a1a34e5a4" y="146.653151"/> + <use style="fill:#343837;stroke:#343837;" x="282.541221" xlink:href="#m4a1a34e5a4" y="661.502466"/> + <use style="fill:#343837;stroke:#343837;" x="284.12955" xlink:href="#m4a1a34e5a4" y="858.565479"/> + <use style="fill:#343837;stroke:#343837;" x="285.717879" xlink:href="#m4a1a34e5a4" y="448.46137"/> + <use style="fill:#343837;stroke:#343837;" x="287.306209" xlink:href="#m4a1a34e5a4" y="436.033973"/> + <use style="fill:#343837;stroke:#343837;" x="288.894538" xlink:href="#m4a1a34e5a4" y="535.453151"/> + <use style="fill:#343837;stroke:#343837;" x="290.482868" xlink:href="#m4a1a34e5a4" y="388.099726"/> + <use style="fill:#343837;stroke:#343837;" x="292.071197" xlink:href="#m4a1a34e5a4" y="375.672329"/> + <use style="fill:#343837;stroke:#343837;" x="293.659527" xlink:href="#m4a1a34e5a4" y="849.688767"/> + <use style="fill:#343837;stroke:#343837;" x="295.247856" xlink:href="#m4a1a34e5a4" y="73.86411"/> + <use style="fill:#343837;stroke:#343837;" x="296.836186" xlink:href="#m4a1a34e5a4" y="373.896986"/> + <use style="fill:#343837;stroke:#343837;" x="298.424515" xlink:href="#m4a1a34e5a4" y="681.031233"/> + <use style="fill:#343837;stroke:#343837;" x="300.012845" xlink:href="#m4a1a34e5a4" y="299.332603"/> + <use style="fill:#343837;stroke:#343837;" x="301.601174" xlink:href="#m4a1a34e5a4" y="130.675068"/> + <use style="fill:#343837;stroke:#343837;" x="303.189504" xlink:href="#m4a1a34e5a4" y="785.776438"/> + <use style="fill:#343837;stroke:#343837;" x="304.777833" xlink:href="#m4a1a34e5a4" y="510.598356"/> + <use style="fill:#343837;stroke:#343837;" x="306.366163" xlink:href="#m4a1a34e5a4" y="338.390137"/> + <use style="fill:#343837;stroke:#343837;" x="307.954492" xlink:href="#m4a1a34e5a4" y="460.888767"/> + <use style="fill:#343837;stroke:#343837;" x="309.542822" xlink:href="#m4a1a34e5a4" y="959.76"/> + <use style="fill:#343837;stroke:#343837;" x="311.131151" xlink:href="#m4a1a34e5a4" y="324.187397"/> + <use style="fill:#343837;stroke:#343837;" x="312.719481" xlink:href="#m4a1a34e5a4" y="585.16274"/> + <use style="fill:#343837;stroke:#343837;" x="314.30781" xlink:href="#m4a1a34e5a4" y="519.475068"/> + <use style="fill:#343837;stroke:#343837;" x="315.89614" xlink:href="#m4a1a34e5a4" y="927.803836"/> + <use style="fill:#343837;stroke:#343837;" x="317.484469" xlink:href="#m4a1a34e5a4" y="750.269589"/> + <use style="fill:#343837;stroke:#343837;" x="319.072799" xlink:href="#m4a1a34e5a4" y="416.505205"/> + <use style="fill:#343837;stroke:#343837;" x="320.661128" xlink:href="#m4a1a34e5a4" y="562.083288"/> + <use style="fill:#343837;stroke:#343837;" x="322.249458" xlink:href="#m4a1a34e5a4" y="647.299726"/> + <use style="fill:#343837;stroke:#343837;" x="323.837787" xlink:href="#m4a1a34e5a4" y="270.927123"/> + <use style="fill:#343837;stroke:#343837;" x="325.426116" xlink:href="#m4a1a34e5a4" y="810.631233"/> + <use style="fill:#343837;stroke:#343837;" x="327.014446" xlink:href="#m4a1a34e5a4" y="595.814795"/> + <use style="fill:#343837;stroke:#343837;" x="328.602775" xlink:href="#m4a1a34e5a4" y="496.395616"/> + <use style="fill:#343837;stroke:#343837;" x="330.191105" xlink:href="#m4a1a34e5a4" y="498.170959"/> + <use style="fill:#343837;stroke:#343837;" x="331.779434" xlink:href="#m4a1a34e5a4" y="207.014795"/> + <use style="fill:#343837;stroke:#343837;" x="333.367764" xlink:href="#m4a1a34e5a4" y="828.384658"/> + <use style="fill:#343837;stroke:#343837;" x="334.956093" xlink:href="#m4a1a34e5a4" y="107.595616"/> + <use style="fill:#343837;stroke:#343837;" x="336.544423" xlink:href="#m4a1a34e5a4" y="817.732603"/> + <use style="fill:#343837;stroke:#343837;" x="338.132752" xlink:href="#m4a1a34e5a4" y="418.280548"/> + <use style="fill:#343837;stroke:#343837;" x="339.721082" xlink:href="#m4a1a34e5a4" y="654.401096"/> + <use style="fill:#343837;stroke:#343837;" x="341.309411" xlink:href="#m4a1a34e5a4" y="341.940822"/> + <use style="fill:#343837;stroke:#343837;" x="342.897741" xlink:href="#m4a1a34e5a4" y="567.409315"/> + <use style="fill:#343837;stroke:#343837;" x="344.48607" xlink:href="#m4a1a34e5a4" y="934.905205"/> + <use style="fill:#343837;stroke:#343837;" x="346.0744" xlink:href="#m4a1a34e5a4" y="799.979178"/> + <use style="fill:#343837;stroke:#343837;" x="347.662729" xlink:href="#m4a1a34e5a4" y="507.047671"/> + <use style="fill:#343837;stroke:#343837;" x="349.251059" xlink:href="#m4a1a34e5a4" y="428.932603"/> + <use style="fill:#343837;stroke:#343837;" x="350.839388" xlink:href="#m4a1a34e5a4" y="478.642192"/> + <use style="fill:#343837;stroke:#343837;" x="352.427718" xlink:href="#m4a1a34e5a4" y="728.965479"/> + <use style="fill:#343837;stroke:#343837;" x="354.016047" xlink:href="#m4a1a34e5a4" y="762.696986"/> + <use style="fill:#343837;stroke:#343837;" x="355.604377" xlink:href="#m4a1a34e5a4" y="940.231233"/> + <use style="fill:#343837;stroke:#343837;" x="357.192706" xlink:href="#m4a1a34e5a4" y="957.984658"/> + <use style="fill:#343837;stroke:#343837;" x="358.781036" xlink:href="#m4a1a34e5a4" y="894.072329"/> + <use style="fill:#343837;stroke:#343837;" x="360.369365" xlink:href="#m4a1a34e5a4" y="842.587397"/> + <use style="fill:#343837;stroke:#343837;" x="361.957694" xlink:href="#m4a1a34e5a4" y="796.428493"/> + <use style="fill:#343837;stroke:#343837;" x="363.546024" xlink:href="#m4a1a34e5a4" y="91.617534"/> + <use style="fill:#343837;stroke:#343837;" x="365.134353" xlink:href="#m4a1a34e5a4" y="139.551781"/> + <use style="fill:#343837;stroke:#343837;" x="366.722683" xlink:href="#m4a1a34e5a4" y="579.836712"/> + <use style="fill:#343837;stroke:#343837;" x="368.311012" xlink:href="#m4a1a34e5a4" y="950.883288"/> + <use style="fill:#343837;stroke:#343837;" x="369.899342" xlink:href="#m4a1a34e5a4" y="821.283288"/> + <use style="fill:#343837;stroke:#343837;" x="371.487671" xlink:href="#m4a1a34e5a4" y="514.149041"/> + <use style="fill:#343837;stroke:#343837;" x="373.076001" xlink:href="#m4a1a34e5a4" y="734.291507"/> + <use style="fill:#343837;stroke:#343837;" x="374.66433" xlink:href="#m4a1a34e5a4" y="695.233973"/> + <use style="fill:#343837;stroke:#343837;" x="376.25266" xlink:href="#m4a1a34e5a4" y="505.272329"/> + <use style="fill:#343837;stroke:#343837;" x="377.840989" xlink:href="#m4a1a34e5a4" y="606.466849"/> + <use style="fill:#343837;stroke:#343837;" x="379.429319" xlink:href="#m4a1a34e5a4" y="380.998356"/> + <use style="fill:#343837;stroke:#343837;" x="381.017648" xlink:href="#m4a1a34e5a4" y="402.302466"/> + <use style="fill:#343837;stroke:#343837;" x="382.605978" xlink:href="#m4a1a34e5a4" y="366.795616"/> + <use style="fill:#343837;stroke:#343837;" x="384.194307" xlink:href="#m4a1a34e5a4" y="863.891507"/> + <use style="fill:#343837;stroke:#343837;" x="385.782637" xlink:href="#m4a1a34e5a4" y="721.86411"/> + <use style="fill:#343837;stroke:#343837;" x="387.370966" xlink:href="#m4a1a34e5a4" y="851.46411"/> + <use style="fill:#343837;stroke:#343837;" x="388.959296" xlink:href="#m4a1a34e5a4" y="453.787397"/> + <use style="fill:#343837;stroke:#343837;" x="390.547625" xlink:href="#m4a1a34e5a4" y="476.866849"/> + <use style="fill:#343837;stroke:#343837;" x="392.135955" xlink:href="#m4a1a34e5a4" y="318.86137"/> + <use style="fill:#343837;stroke:#343837;" x="393.724284" xlink:href="#m4a1a34e5a4" y="684.581918"/> + <use style="fill:#343837;stroke:#343837;" x="395.312614" xlink:href="#m4a1a34e5a4" y="475.091507"/> + <use style="fill:#343837;stroke:#343837;" x="396.900943" xlink:href="#m4a1a34e5a4" y="592.26411"/> + <use style="fill:#343837;stroke:#343837;" x="398.489272" xlink:href="#m4a1a34e5a4" y="784.001096"/> + <use style="fill:#343837;stroke:#343837;" x="400.077602" xlink:href="#m4a1a34e5a4" y="111.146301"/> + <use style="fill:#343837;stroke:#343837;" x="401.665931" xlink:href="#m4a1a34e5a4" y="870.992877"/> + <use style="fill:#343837;stroke:#343837;" x="403.254261" xlink:href="#m4a1a34e5a4" y="322.412055"/> + <use style="fill:#343837;stroke:#343837;" x="404.84259" xlink:href="#m4a1a34e5a4" y="537.228493"/> + <use style="fill:#343837;stroke:#343837;" x="406.43092" xlink:href="#m4a1a34e5a4" y="72.088767"/> + <use style="fill:#343837;stroke:#343837;" x="408.019249" xlink:href="#m4a1a34e5a4" y="98.718904"/> + <use style="fill:#343837;stroke:#343837;" x="409.607579" xlink:href="#m4a1a34e5a4" y="886.970959"/> + <use style="fill:#343837;stroke:#343837;" x="411.195908" xlink:href="#m4a1a34e5a4" y="212.340822"/> + <use style="fill:#343837;stroke:#343837;" x="412.784238" xlink:href="#m4a1a34e5a4" y="169.732603"/> + <use style="fill:#343837;stroke:#343837;" x="414.372567" xlink:href="#m4a1a34e5a4" y="258.499726"/> + <use style="fill:#343837;stroke:#343837;" x="415.960897" xlink:href="#m4a1a34e5a4" y="153.754521"/> + <use style="fill:#343837;stroke:#343837;" x="417.549226" xlink:href="#m4a1a34e5a4" y="52.56"/> + <use style="fill:#343837;stroke:#343837;" x="419.137556" xlink:href="#m4a1a34e5a4" y="688.132603"/> + <use style="fill:#343837;stroke:#343837;" x="420.725885" xlink:href="#m4a1a34e5a4" y="645.524384"/> + <use style="fill:#343837;stroke:#343837;" x="422.314215" xlink:href="#m4a1a34e5a4" y="389.875068"/> + <use style="fill:#343837;stroke:#343837;" x="423.902544" xlink:href="#m4a1a34e5a4" y="347.266849"/> + <use style="fill:#343837;stroke:#343837;" x="425.490874" xlink:href="#m4a1a34e5a4" y="771.573699"/> + <use style="fill:#343837;stroke:#343837;" x="427.079203" xlink:href="#m4a1a34e5a4" y="452.012055"/> + <use style="fill:#343837;stroke:#343837;" x="428.667533" xlink:href="#m4a1a34e5a4" y="521.250411"/> + <use style="fill:#343837;stroke:#343837;" x="430.255862" xlink:href="#m4a1a34e5a4" y="226.543562"/> + <use style="fill:#343837;stroke:#343837;" x="431.844192" xlink:href="#m4a1a34e5a4" y="464.439452"/> + <use style="fill:#343837;stroke:#343837;" x="433.432521" xlink:href="#m4a1a34e5a4" y="487.518904"/> + <use style="fill:#343837;stroke:#343837;" x="435.02085" xlink:href="#m4a1a34e5a4" y="929.579178"/> + <use style="fill:#343837;stroke:#343837;" x="436.60918" xlink:href="#m4a1a34e5a4" y="718.313425"/> + <use style="fill:#343837;stroke:#343837;" x="438.197509" xlink:href="#m4a1a34e5a4" y="895.847671"/> + <use style="fill:#343837;stroke:#343837;" x="439.785839" xlink:href="#m4a1a34e5a4" y="127.124384"/> + <use style="fill:#343837;stroke:#343837;" x="441.374168" xlink:href="#m4a1a34e5a4" y="450.236712"/> + <use style="fill:#343837;stroke:#343837;" x="442.962498" xlink:href="#m4a1a34e5a4" y="666.828493"/> + <use style="fill:#343837;stroke:#343837;" x="444.550827" xlink:href="#m4a1a34e5a4" y="837.26137"/> + <use style="fill:#343837;stroke:#343837;" x="446.139157" xlink:href="#m4a1a34e5a4" y="286.905205"/> + <use style="fill:#343837;stroke:#343837;" x="447.727486" xlink:href="#m4a1a34e5a4" y="231.869589"/> + <use style="fill:#343837;stroke:#343837;" x="449.315816" xlink:href="#m4a1a34e5a4" y="368.570959"/> + <use style="fill:#343837;stroke:#343837;" x="450.904145" xlink:href="#m4a1a34e5a4" y="84.516164"/> + <use style="fill:#343837;stroke:#343837;" x="452.492475" xlink:href="#m4a1a34e5a4" y="883.420274"/> + <use style="fill:#343837;stroke:#343837;" x="454.080804" xlink:href="#m4a1a34e5a4" y="546.105205"/> + <use style="fill:#343837;stroke:#343837;" x="455.669134" xlink:href="#m4a1a34e5a4" y="583.387397"/> + <use style="fill:#343837;stroke:#343837;" x="457.257463" xlink:href="#m4a1a34e5a4" y="539.003836"/> + <use style="fill:#343837;stroke:#343837;" x="458.845793" xlink:href="#m4a1a34e5a4" y="269.151781"/> + <use style="fill:#343837;stroke:#343837;" x="460.434122" xlink:href="#m4a1a34e5a4" y="942.006575"/> + <use style="fill:#343837;stroke:#343837;" x="462.022452" xlink:href="#m4a1a34e5a4" y="924.253151"/> + <use style="fill:#343837;stroke:#343837;" x="463.610781" xlink:href="#m4a1a34e5a4" y="82.740822"/> + <use style="fill:#343837;stroke:#343837;" x="465.199111" xlink:href="#m4a1a34e5a4" y="830.16"/> + <use style="fill:#343837;stroke:#343837;" x="466.78744" xlink:href="#m4a1a34e5a4" y="611.792877"/> + <use style="fill:#343837;stroke:#343837;" x="468.37577" xlink:href="#m4a1a34e5a4" y="88.066849"/> + <use style="fill:#343837;stroke:#343837;" x="469.964099" xlink:href="#m4a1a34e5a4" y="240.746301"/> + <use style="fill:#343837;stroke:#343837;" x="471.552429" xlink:href="#m4a1a34e5a4" y="254.949041"/> + <use style="fill:#343837;stroke:#343837;" x="473.140758" xlink:href="#m4a1a34e5a4" y="904.724384"/> + <use style="fill:#343837;stroke:#343837;" x="474.729087" xlink:href="#m4a1a34e5a4" y="563.85863"/> + <use style="fill:#343837;stroke:#343837;" x="476.317417" xlink:href="#m4a1a34e5a4" y="956.209315"/> + <use style="fill:#343837;stroke:#343837;" x="477.905746" xlink:href="#m4a1a34e5a4" y="549.65589"/> + <use style="fill:#343837;stroke:#343837;" x="479.494076" xlink:href="#m4a1a34e5a4" y="228.318904"/> + <use style="fill:#343837;stroke:#343837;" x="481.082405" xlink:href="#m4a1a34e5a4" y="569.184658"/> + <use style="fill:#343837;stroke:#343837;" x="482.670735" xlink:href="#m4a1a34e5a4" y="798.203836"/> + <use style="fill:#343837;stroke:#343837;" x="484.259064" xlink:href="#m4a1a34e5a4" y="230.094247"/> + <use style="fill:#343837;stroke:#343837;" x="485.847394" xlink:href="#m4a1a34e5a4" y="926.028493"/> + <use style="fill:#343837;stroke:#343837;" x="487.435723" xlink:href="#m4a1a34e5a4" y="565.633973"/> + <use style="fill:#343837;stroke:#343837;" x="489.024053" xlink:href="#m4a1a34e5a4" y="604.691507"/> + <use style="fill:#343837;stroke:#343837;" x="490.612382" xlink:href="#m4a1a34e5a4" y="467.990137"/> + <use style="fill:#343837;stroke:#343837;" x="492.200712" xlink:href="#m4a1a34e5a4" y="615.343562"/> + <use style="fill:#343837;stroke:#343837;" x="493.789041" xlink:href="#m4a1a34e5a4" y="641.973699"/> + <use style="fill:#343837;stroke:#343837;" x="495.377371" xlink:href="#m4a1a34e5a4" y="597.590137"/> + <use style="fill:#343837;stroke:#343837;" x="496.9657" xlink:href="#m4a1a34e5a4" y="737.842192"/> + <use style="fill:#343837;stroke:#343837;" x="498.55403" xlink:href="#m4a1a34e5a4" y="803.529863"/> + <use style="fill:#343837;stroke:#343837;" x="500.142359" xlink:href="#m4a1a34e5a4" y="668.603836"/> + <use style="fill:#343837;stroke:#343837;" x="501.730689" xlink:href="#m4a1a34e5a4" y="610.017534"/> + <use style="fill:#343837;stroke:#343837;" x="503.319018" xlink:href="#m4a1a34e5a4" y="581.612055"/> + <use style="fill:#343837;stroke:#343837;" x="504.907348" xlink:href="#m4a1a34e5a4" y="540.779178"/> + <use style="fill:#343837;stroke:#343837;" x="506.495677" xlink:href="#m4a1a34e5a4" y="340.165479"/> + <use style="fill:#343837;stroke:#343837;" x="508.084007" xlink:href="#m4a1a34e5a4" y="121.798356"/> + <use style="fill:#343837;stroke:#343837;" x="509.672336" xlink:href="#m4a1a34e5a4" y="608.242192"/> + <use style="fill:#343837;stroke:#343837;" x="511.260665" xlink:href="#m4a1a34e5a4" y="434.25863"/> + <use style="fill:#343837;stroke:#343837;" x="512.848995" xlink:href="#m4a1a34e5a4" y="878.094247"/> + <use style="fill:#343837;stroke:#343837;" x="514.437324" xlink:href="#m4a1a34e5a4" y="911.825753"/> + <use style="fill:#343837;stroke:#343837;" x="516.025654" xlink:href="#m4a1a34e5a4" y="741.392877"/> + <use style="fill:#343837;stroke:#343837;" x="517.613983" xlink:href="#m4a1a34e5a4" y="430.707945"/> + <use style="fill:#343837;stroke:#343837;" x="519.202313" xlink:href="#m4a1a34e5a4" y="634.872329"/> + <use style="fill:#343837;stroke:#343837;" x="520.790642" xlink:href="#m4a1a34e5a4" y="716.538082"/> + <use style="fill:#343837;stroke:#343837;" x="522.378972" xlink:href="#m4a1a34e5a4" y="691.683288"/> + <use style="fill:#343837;stroke:#343837;" x="523.967301" xlink:href="#m4a1a34e5a4" y="744.943562"/> + <use style="fill:#343837;stroke:#343837;" x="525.555631" xlink:href="#m4a1a34e5a4" y="759.146301"/> + <use style="fill:#343837;stroke:#343837;" x="527.14396" xlink:href="#m4a1a34e5a4" y="766.247671"/> + <use style="fill:#343837;stroke:#343837;" x="528.73229" xlink:href="#m4a1a34e5a4" y="167.95726"/> + <use style="fill:#343837;stroke:#343837;" x="530.320619" xlink:href="#m4a1a34e5a4" y="748.494247"/> + <use style="fill:#343837;stroke:#343837;" x="531.908949" xlink:href="#m4a1a34e5a4" y="70.313425"/> + <use style="fill:#343837;stroke:#343837;" x="533.497278" xlink:href="#m4a1a34e5a4" y="590.488767"/> + <use style="fill:#343837;stroke:#343837;" x="535.085608" xlink:href="#m4a1a34e5a4" y="677.480548"/> + <use style="fill:#343837;stroke:#343837;" x="536.673937" xlink:href="#m4a1a34e5a4" y="253.173699"/> + <use style="fill:#343837;stroke:#343837;" x="538.262267" xlink:href="#m4a1a34e5a4" y="66.76274"/> + <use style="fill:#343837;stroke:#343837;" x="539.850596" xlink:href="#m4a1a34e5a4" y="943.781918"/> + <use style="fill:#343837;stroke:#343837;" x="541.438926" xlink:href="#m4a1a34e5a4" y="89.842192"/> + <use style="fill:#343837;stroke:#343837;" x="543.027255" xlink:href="#m4a1a34e5a4" y="96.943562"/> + <use style="fill:#343837;stroke:#343837;" x="544.615585" xlink:href="#m4a1a34e5a4" y="636.647671"/> + <use style="fill:#343837;stroke:#343837;" x="546.203914" xlink:href="#m4a1a34e5a4" y="789.327123"/> + <use style="fill:#343837;stroke:#343837;" x="547.792243" xlink:href="#m4a1a34e5a4" y="455.56274"/> + <use style="fill:#343837;stroke:#343837;" x="549.380573" xlink:href="#m4a1a34e5a4" y="720.088767"/> + <use style="fill:#343837;stroke:#343837;" x="550.968902" xlink:href="#m4a1a34e5a4" y="425.381918"/> + <use style="fill:#343837;stroke:#343837;" x="552.557232" xlink:href="#m4a1a34e5a4" y="807.080548"/> + <use style="fill:#343837;stroke:#343837;" x="554.145561" xlink:href="#m4a1a34e5a4" y="80.965479"/> + <use style="fill:#343837;stroke:#343837;" x="555.733891" xlink:href="#m4a1a34e5a4" y="643.749041"/> + <use style="fill:#343837;stroke:#343837;" x="557.32222" xlink:href="#m4a1a34e5a4" y="773.349041"/> + <use style="fill:#343837;stroke:#343837;" x="558.91055" xlink:href="#m4a1a34e5a4" y="256.724384"/> + <use style="fill:#343837;stroke:#343837;" x="560.498879" xlink:href="#m4a1a34e5a4" y="574.510685"/> + <use style="fill:#343837;stroke:#343837;" x="562.087209" xlink:href="#m4a1a34e5a4" y="906.499726"/> + <use style="fill:#343837;stroke:#343837;" x="563.675538" xlink:href="#m4a1a34e5a4" y="885.195616"/> + <use style="fill:#343837;stroke:#343837;" x="565.263868" xlink:href="#m4a1a34e5a4" y="824.833973"/> + <use style="fill:#343837;stroke:#343837;" x="566.852197" xlink:href="#m4a1a34e5a4" y="198.138082"/> + <use style="fill:#343837;stroke:#343837;" x="568.440527" xlink:href="#m4a1a34e5a4" y="395.201096"/> + <use style="fill:#343837;stroke:#343837;" x="570.028856" xlink:href="#m4a1a34e5a4" y="215.891507"/> + <use style="fill:#343837;stroke:#343837;" x="571.617186" xlink:href="#m4a1a34e5a4" y="363.244932"/> + <use style="fill:#343837;stroke:#343837;" x="573.205515" xlink:href="#m4a1a34e5a4" y="578.06137"/> + <use style="fill:#343837;stroke:#343837;" x="574.793845" xlink:href="#m4a1a34e5a4" y="352.592877"/> + <use style="fill:#343837;stroke:#343837;" x="576.382174" xlink:href="#m4a1a34e5a4" y="922.477808"/> + <use style="fill:#343837;stroke:#343837;" x="577.970504" xlink:href="#m4a1a34e5a4" y="872.768219"/> + <use style="fill:#343837;stroke:#343837;" x="579.558833" xlink:href="#m4a1a34e5a4" y="411.179178"/> + <use style="fill:#343837;stroke:#343837;" x="581.147163" xlink:href="#m4a1a34e5a4" y="208.790137"/> + <use style="fill:#343837;stroke:#343837;" x="582.735492" xlink:href="#m4a1a34e5a4" y="867.442192"/> + <use style="fill:#343837;stroke:#343837;" x="584.323821" xlink:href="#m4a1a34e5a4" y="491.069589"/> + <use style="fill:#343837;stroke:#343837;" x="585.912151" xlink:href="#m4a1a34e5a4" y="620.669589"/> + <use style="fill:#343837;stroke:#343837;" x="587.50048" xlink:href="#m4a1a34e5a4" y="125.349041"/> + <use style="fill:#343837;stroke:#343837;" x="589.08881" xlink:href="#m4a1a34e5a4" y="56.110685"/> + <use style="fill:#343837;stroke:#343837;" x="590.677139" xlink:href="#m4a1a34e5a4" y="171.507945"/> + <use style="fill:#343837;stroke:#343837;" x="592.265469" xlink:href="#m4a1a34e5a4" y="714.76274"/> + <use style="fill:#343837;stroke:#343837;" x="593.853798" xlink:href="#m4a1a34e5a4" y="675.705205"/> + <use style="fill:#343837;stroke:#343837;" x="595.442128" xlink:href="#m4a1a34e5a4" y="743.168219"/> + <use style="fill:#343837;stroke:#343837;" x="597.030457" xlink:href="#m4a1a34e5a4" y="888.746301"/> + <use style="fill:#343837;stroke:#343837;" x="598.618787" xlink:href="#m4a1a34e5a4" y="659.727123"/> + <use style="fill:#343837;stroke:#343837;" x="600.207116" xlink:href="#m4a1a34e5a4" y="776.899726"/> + <use style="fill:#343837;stroke:#343837;" x="601.795446" xlink:href="#m4a1a34e5a4" y="908.275068"/> + <use style="fill:#343837;stroke:#343837;" x="603.383775" xlink:href="#m4a1a34e5a4" y="276.253151"/> + <use style="fill:#343837;stroke:#343837;" x="604.972105" xlink:href="#m4a1a34e5a4" y="794.653151"/> + <use style="fill:#343837;stroke:#343837;" x="606.560434" xlink:href="#m4a1a34e5a4" y="382.773699"/> + <use style="fill:#343837;stroke:#343837;" x="608.148764" xlink:href="#m4a1a34e5a4" y="182.16"/> + <use style="fill:#343837;stroke:#343837;" x="609.737093" xlink:href="#m4a1a34e5a4" y="652.625753"/> + <use style="fill:#343837;stroke:#343837;" x="611.325423" xlink:href="#m4a1a34e5a4" y="196.36274"/> + <use style="fill:#343837;stroke:#343837;" x="612.913752" xlink:href="#m4a1a34e5a4" y="114.696986"/> + <use style="fill:#343837;stroke:#343837;" x="614.502082" xlink:href="#m4a1a34e5a4" y="100.494247"/> + <use style="fill:#343837;stroke:#343837;" x="616.090411" xlink:href="#m4a1a34e5a4" y="698.784658"/> + <use style="fill:#343837;stroke:#343837;" x="617.678741" xlink:href="#m4a1a34e5a4" y="173.283288"/> + <use style="fill:#343837;stroke:#343837;" x="619.26707" xlink:href="#m4a1a34e5a4" y="556.75726"/> + <use style="fill:#343837;stroke:#343837;" x="620.8554" xlink:href="#m4a1a34e5a4" y="279.803836"/> + <use style="fill:#343837;stroke:#343837;" x="622.443729" xlink:href="#m4a1a34e5a4" y="294.006575"/> + <use style="fill:#343837;stroke:#343837;" x="624.032058" xlink:href="#m4a1a34e5a4" y="354.368219"/> + <use style="fill:#343837;stroke:#343837;" x="625.620388" xlink:href="#m4a1a34e5a4" y="897.623014"/> + <use style="fill:#343837;stroke:#343837;" x="627.208717" xlink:href="#m4a1a34e5a4" y="847.913425"/> + <use style="fill:#343837;stroke:#343837;" x="628.797047" xlink:href="#m4a1a34e5a4" y="459.113425"/> + <use style="fill:#343837;stroke:#343837;" x="630.385376" xlink:href="#m4a1a34e5a4" y="311.76"/> + <use style="fill:#343837;stroke:#343837;" x="631.973706" xlink:href="#m4a1a34e5a4" y="95.168219"/> + <use style="fill:#343837;stroke:#343837;" x="633.562035" xlink:href="#m4a1a34e5a4" y="860.340822"/> + <use style="fill:#343837;stroke:#343837;" x="635.150365" xlink:href="#m4a1a34e5a4" y="93.392877"/> + <use style="fill:#343837;stroke:#343837;" x="636.738694" xlink:href="#m4a1a34e5a4" y="160.85589"/> + <use style="fill:#343837;stroke:#343837;" x="638.327024" xlink:href="#m4a1a34e5a4" y="709.436712"/> + <use style="fill:#343837;stroke:#343837;" x="639.915353" xlink:href="#m4a1a34e5a4" y="143.102466"/> + <use style="fill:#343837;stroke:#343837;" x="641.503683" xlink:href="#m4a1a34e5a4" y="853.239452"/> + <use style="fill:#343837;stroke:#343837;" x="643.092012" xlink:href="#m4a1a34e5a4" y="553.206575"/> + <use style="fill:#343837;stroke:#343837;" x="644.680342" xlink:href="#m4a1a34e5a4" y="657.951781"/> + <use style="fill:#343837;stroke:#343837;" x="646.268671" xlink:href="#m4a1a34e5a4" y="560.307945"/> + <use style="fill:#343837;stroke:#343837;" x="647.857001" xlink:href="#m4a1a34e5a4" y="725.414795"/> + <use style="fill:#343837;stroke:#343837;" x="649.44533" xlink:href="#m4a1a34e5a4" y="123.573699"/> + <use style="fill:#343837;stroke:#343837;" x="651.03366" xlink:href="#m4a1a34e5a4" y="365.020274"/> + <use style="fill:#343837;stroke:#343837;" x="652.621989" xlink:href="#m4a1a34e5a4" y="814.181918"/> + <use style="fill:#343837;stroke:#343837;" x="654.210319" xlink:href="#m4a1a34e5a4" y="404.077808"/> + <use style="fill:#343837;stroke:#343837;" x="655.798648" xlink:href="#m4a1a34e5a4" y="262.050411"/> + <use style="fill:#343837;stroke:#343837;" x="657.386978" xlink:href="#m4a1a34e5a4" y="297.55726"/> + <use style="fill:#343837;stroke:#343837;" x="658.975307" xlink:href="#m4a1a34e5a4" y="846.138082"/> + <use style="fill:#343837;stroke:#343837;" x="660.563636" xlink:href="#m4a1a34e5a4" y="265.601096"/> + <use style="fill:#343837;stroke:#343837;" x="662.151966" xlink:href="#m4a1a34e5a4" y="105.820274"/> + <use style="fill:#343837;stroke:#343837;" x="663.740295" xlink:href="#m4a1a34e5a4" y="349.042192"/> + <use style="fill:#343837;stroke:#343837;" x="665.328625" xlink:href="#m4a1a34e5a4" y="769.798356"/> + <use style="fill:#343837;stroke:#343837;" x="666.916954" xlink:href="#m4a1a34e5a4" y="224.768219"/> + <use style="fill:#343837;stroke:#343837;" x="668.505284" xlink:href="#m4a1a34e5a4" y="221.217534"/> + <use style="fill:#343837;stroke:#343837;" x="670.093613" xlink:href="#m4a1a34e5a4" y="712.987397"/> + <use style="fill:#343837;stroke:#343837;" x="671.681943" xlink:href="#m4a1a34e5a4" y="791.102466"/> + <use style="fill:#343837;stroke:#343837;" x="673.270272" xlink:href="#m4a1a34e5a4" y="499.946301"/> + <use style="fill:#343837;stroke:#343837;" x="674.858602" xlink:href="#m4a1a34e5a4" y="554.981918"/> + <use style="fill:#343837;stroke:#343837;" x="676.446931" xlink:href="#m4a1a34e5a4" y="189.26137"/> + <use style="fill:#343837;stroke:#343837;" x="678.035261" xlink:href="#m4a1a34e5a4" y="665.053151"/> + <use style="fill:#343837;stroke:#343837;" x="679.62359" xlink:href="#m4a1a34e5a4" y="746.718904"/> + <use style="fill:#343837;stroke:#343837;" x="681.21192" xlink:href="#m4a1a34e5a4" y="625.995616"/> + <use style="fill:#343837;stroke:#343837;" x="682.800249" xlink:href="#m4a1a34e5a4" y="874.543562"/> + <use style="fill:#343837;stroke:#343837;" x="684.388579" xlink:href="#m4a1a34e5a4" y="936.680548"/> + <use style="fill:#343837;stroke:#343837;" x="685.976908" xlink:href="#m4a1a34e5a4" y="199.913425"/> + <use style="fill:#343837;stroke:#343837;" x="687.565238" xlink:href="#m4a1a34e5a4" y="333.06411"/> + <use style="fill:#343837;stroke:#343837;" x="689.153567" xlink:href="#m4a1a34e5a4" y="892.296986"/> + <use style="fill:#343837;stroke:#343837;" x="690.741897" xlink:href="#m4a1a34e5a4" y="760.921644"/> + <use style="fill:#343837;stroke:#343837;" x="692.330226" xlink:href="#m4a1a34e5a4" y="309.984658"/> + <use style="fill:#343837;stroke:#343837;" x="693.918556" xlink:href="#m4a1a34e5a4" y="572.735342"/> + <use style="fill:#343837;stroke:#343837;" x="695.506885" xlink:href="#m4a1a34e5a4" y="400.527123"/> + <use style="fill:#343837;stroke:#343837;" x="697.095214" xlink:href="#m4a1a34e5a4" y="469.765479"/> + <use style="fill:#343837;stroke:#343837;" x="698.683544" xlink:href="#m4a1a34e5a4" y="409.403836"/> + <use style="fill:#343837;stroke:#343837;" x="700.271873" xlink:href="#m4a1a34e5a4" y="421.831233"/> + <use style="fill:#343837;stroke:#343837;" x="701.860203" xlink:href="#m4a1a34e5a4" y="285.129863"/> + <use style="fill:#343837;stroke:#343837;" x="703.448532" xlink:href="#m4a1a34e5a4" y="437.809315"/> + <use style="fill:#343837;stroke:#343837;" x="705.036862" xlink:href="#m4a1a34e5a4" y="508.823014"/> + <use style="fill:#343837;stroke:#343837;" x="706.625191" xlink:href="#m4a1a34e5a4" y="357.918904"/> + <use style="fill:#343837;stroke:#343837;" x="708.213521" xlink:href="#m4a1a34e5a4" y="63.212055"/> + <use style="fill:#343837;stroke:#343837;" x="709.80185" xlink:href="#m4a1a34e5a4" y="489.294247"/> + <use style="fill:#343837;stroke:#343837;" x="711.39018" xlink:href="#m4a1a34e5a4" y="325.96274"/> + <use style="fill:#343837;stroke:#343837;" x="712.978509" xlink:href="#m4a1a34e5a4" y="819.507945"/> + <use style="fill:#343837;stroke:#343837;" x="714.566839" xlink:href="#m4a1a34e5a4" y="155.529863"/> + <use style="fill:#343837;stroke:#343837;" x="716.155168" xlink:href="#m4a1a34e5a4" y="235.420274"/> + <use style="fill:#343837;stroke:#343837;" x="717.743498" xlink:href="#m4a1a34e5a4" y="856.790137"/> + <use style="fill:#343837;stroke:#343837;" x="719.331827" xlink:href="#m4a1a34e5a4" y="551.431233"/> + <use style="fill:#343837;stroke:#343837;" x="720.920157" xlink:href="#m4a1a34e5a4" y="278.028493"/> + <use style="fill:#343837;stroke:#343837;" x="722.508486" xlink:href="#m4a1a34e5a4" y="302.883288"/> + <use style="fill:#343837;stroke:#343837;" x="724.096816" xlink:href="#m4a1a34e5a4" y="588.713425"/> + <use style="fill:#343837;stroke:#343837;" x="725.685145" xlink:href="#m4a1a34e5a4" y="586.938082"/> + <use style="fill:#343837;stroke:#343837;" x="727.273475" xlink:href="#m4a1a34e5a4" y="633.096986"/> + <use style="fill:#343837;stroke:#343837;" x="728.861804" xlink:href="#m4a1a34e5a4" y="732.516164"/> + <use style="fill:#343837;stroke:#343837;" x="730.450134" xlink:href="#m4a1a34e5a4" y="272.702466"/> + <use style="fill:#343837;stroke:#343837;" x="732.038463" xlink:href="#m4a1a34e5a4" y="54.335342"/> + <use style="fill:#343837;stroke:#343837;" x="733.626792" xlink:href="#m4a1a34e5a4" y="528.351781"/> + <use style="fill:#343837;stroke:#343837;" x="735.215122" xlink:href="#m4a1a34e5a4" y="77.414795"/> + <use style="fill:#343837;stroke:#343837;" x="736.803451" xlink:href="#m4a1a34e5a4" y="918.927123"/> + <use style="fill:#343837;stroke:#343837;" x="738.391781" xlink:href="#m4a1a34e5a4" y="618.894247"/> + <use style="fill:#343837;stroke:#343837;" x="739.98011" xlink:href="#m4a1a34e5a4" y="136.001096"/> + <use style="fill:#343837;stroke:#343837;" x="741.56844" xlink:href="#m4a1a34e5a4" y="75.639452"/> + <use style="fill:#343837;stroke:#343837;" x="743.156769" xlink:href="#m4a1a34e5a4" y="141.327123"/> + <use style="fill:#343837;stroke:#343837;" x="744.745099" xlink:href="#m4a1a34e5a4" y="260.275068"/> + <use style="fill:#343837;stroke:#343837;" x="746.333428" xlink:href="#m4a1a34e5a4" y="542.554521"/> + <use style="fill:#343837;stroke:#343837;" x="747.921758" xlink:href="#m4a1a34e5a4" y="547.880548"/> + <use style="fill:#343837;stroke:#343837;" x="749.510087" xlink:href="#m4a1a34e5a4" y="673.929863"/> + <use style="fill:#343837;stroke:#343837;" x="751.098417" xlink:href="#m4a1a34e5a4" y="176.833973"/> + <use style="fill:#343837;stroke:#343837;" x="752.686746" xlink:href="#m4a1a34e5a4" y="315.310685"/> + <use style="fill:#343837;stroke:#343837;" x="754.275076" xlink:href="#m4a1a34e5a4" y="631.321644"/> + <use style="fill:#343837;stroke:#343837;" x="755.863405" xlink:href="#m4a1a34e5a4" y="753.820274"/> + <use style="fill:#343837;stroke:#343837;" x="757.451735" xlink:href="#m4a1a34e5a4" y="118.247671"/> + <use style="fill:#343837;stroke:#343837;" x="759.040064" xlink:href="#m4a1a34e5a4" y="86.291507"/> + <use style="fill:#343837;stroke:#343837;" x="760.628394" xlink:href="#m4a1a34e5a4" y="295.781918"/> + <use style="fill:#343837;stroke:#343837;" x="762.216723" xlink:href="#m4a1a34e5a4" y="112.921644"/> + <use style="fill:#343837;stroke:#343837;" x="763.805053" xlink:href="#m4a1a34e5a4" y="629.546301"/> + <use style="fill:#343837;stroke:#343837;" x="765.393382" xlink:href="#m4a1a34e5a4" y="427.15726"/> + <use style="fill:#343837;stroke:#343837;" x="766.981712" xlink:href="#m4a1a34e5a4" y="576.286027"/> + <use style="fill:#343837;stroke:#343837;" x="768.570041" xlink:href="#m4a1a34e5a4" y="292.231233"/> + <use style="fill:#343837;stroke:#343837;" x="770.158371" xlink:href="#m4a1a34e5a4" y="159.080548"/> + <use style="fill:#343837;stroke:#343837;" x="771.7467" xlink:href="#m4a1a34e5a4" y="693.45863"/> + <use style="fill:#343837;stroke:#343837;" x="773.335029" xlink:href="#m4a1a34e5a4" y="414.729863"/> + <use style="fill:#343837;stroke:#343837;" x="774.923359" xlink:href="#m4a1a34e5a4" y="622.444932"/> + <use style="fill:#343837;stroke:#343837;" x="776.511688" xlink:href="#m4a1a34e5a4" y="233.644932"/> + <use style="fill:#343837;stroke:#343837;" x="778.100018" xlink:href="#m4a1a34e5a4" y="638.423014"/> + <use style="fill:#343837;stroke:#343837;" x="779.688347" xlink:href="#m4a1a34e5a4" y="480.417534"/> + <use style="fill:#343837;stroke:#343837;" x="781.276677" xlink:href="#m4a1a34e5a4" y="301.107945"/> + <use style="fill:#343837;stroke:#343837;" x="782.865006" xlink:href="#m4a1a34e5a4" y="933.129863"/> + <use style="fill:#343837;stroke:#343837;" x="784.453336" xlink:href="#m4a1a34e5a4" y="831.935342"/> + <use style="fill:#343837;stroke:#343837;" x="786.041665" xlink:href="#m4a1a34e5a4" y="64.987397"/> + <use style="fill:#343837;stroke:#343837;" x="787.629995" xlink:href="#m4a1a34e5a4" y="137.776438"/> + <use style="fill:#343837;stroke:#343837;" x="789.218324" xlink:href="#m4a1a34e5a4" y="104.044932"/> + <use style="fill:#343837;stroke:#343837;" x="790.806654" xlink:href="#m4a1a34e5a4" y="384.549041"/> + <use style="fill:#343837;stroke:#343837;" x="792.394983" xlink:href="#m4a1a34e5a4" y="372.121644"/> + <use style="fill:#343837;stroke:#343837;" x="793.983313" xlink:href="#m4a1a34e5a4" y="157.305205"/> + <use style="fill:#343837;stroke:#343837;" x="795.571642" xlink:href="#m4a1a34e5a4" y="162.631233"/> + <use style="fill:#343837;stroke:#343837;" x="797.159972" xlink:href="#m4a1a34e5a4" y="531.902466"/> + <use style="fill:#343837;stroke:#343837;" x="798.748301" xlink:href="#m4a1a34e5a4" y="446.686027"/> + <use style="fill:#343837;stroke:#343837;" x="800.336631" xlink:href="#m4a1a34e5a4" y="343.716164"/> + <use style="fill:#343837;stroke:#343837;" x="801.92496" xlink:href="#m4a1a34e5a4" y="217.666849"/> + <use style="fill:#343837;stroke:#343837;" x="803.51329" xlink:href="#m4a1a34e5a4" y="945.55726"/> + <use style="fill:#343837;stroke:#343837;" x="805.101619" xlink:href="#m4a1a34e5a4" y="697.009315"/> + <use style="fill:#343837;stroke:#343837;" x="806.689949" xlink:href="#m4a1a34e5a4" y="492.844932"/> + <use style="fill:#343837;stroke:#343837;" x="808.278278" xlink:href="#m4a1a34e5a4" y="782.225753"/> + <use style="fill:#343837;stroke:#343837;" x="809.866607" xlink:href="#m4a1a34e5a4" y="523.025753"/> + <use style="fill:#343837;stroke:#343837;" x="811.454937" xlink:href="#m4a1a34e5a4" y="704.110685"/> + <use style="fill:#343837;stroke:#343837;" x="813.043266" xlink:href="#m4a1a34e5a4" y="805.305205"/> + <use style="fill:#343837;stroke:#343837;" x="814.631596" xlink:href="#m4a1a34e5a4" y="617.118904"/> + <use style="fill:#343837;stroke:#343837;" x="816.219925" xlink:href="#m4a1a34e5a4" y="702.335342"/> + <use style="fill:#343837;stroke:#343837;" x="817.808255" xlink:href="#m4a1a34e5a4" y="952.65863"/> + <use style="fill:#343837;stroke:#343837;" x="819.396584" xlink:href="#m4a1a34e5a4" y="705.886027"/> + <use style="fill:#343837;stroke:#343837;" x="820.984914" xlink:href="#m4a1a34e5a4" y="345.491507"/> + <use style="fill:#343837;stroke:#343837;" x="822.573243" xlink:href="#m4a1a34e5a4" y="876.318904"/> + <use style="fill:#343837;stroke:#343837;" x="824.161573" xlink:href="#m4a1a34e5a4" y="359.694247"/> + <use style="fill:#343837;stroke:#343837;" x="825.749902" xlink:href="#m4a1a34e5a4" y="313.535342"/> + <use style="fill:#343837;stroke:#343837;" x="827.338232" xlink:href="#m4a1a34e5a4" y="288.680548"/> + <use style="fill:#343837;stroke:#343837;" x="828.926561" xlink:href="#m4a1a34e5a4" y="533.677808"/> + <use style="fill:#343837;stroke:#343837;" x="830.514891" xlink:href="#m4a1a34e5a4" y="879.869589"/> + <use style="fill:#343837;stroke:#343837;" x="832.10322" xlink:href="#m4a1a34e5a4" y="317.086027"/> + <use style="fill:#343837;stroke:#343837;" x="833.69155" xlink:href="#m4a1a34e5a4" y="393.425753"/> + <use style="fill:#343837;stroke:#343837;" x="835.279879" xlink:href="#m4a1a34e5a4" y="396.976438"/> + <use style="fill:#343837;stroke:#343837;" x="836.868209" xlink:href="#m4a1a34e5a4" y="812.406575"/> + <use style="fill:#343837;stroke:#343837;" x="838.456538" xlink:href="#m4a1a34e5a4" y="739.617534"/> + <use style="fill:#343837;stroke:#343837;" x="840.044868" xlink:href="#m4a1a34e5a4" y="462.66411"/> + <use style="fill:#343837;stroke:#343837;" x="841.633197" xlink:href="#m4a1a34e5a4" y="238.970959"/> + <use style="fill:#343837;stroke:#343837;" x="843.221527" xlink:href="#m4a1a34e5a4" y="826.609315"/> + <use style="fill:#343837;stroke:#343837;" x="844.809856" xlink:href="#m4a1a34e5a4" y="444.910685"/> + <use style="fill:#343837;stroke:#343837;" x="846.398185" xlink:href="#m4a1a34e5a4" y="247.847671"/> + <use style="fill:#343837;stroke:#343837;" x="847.986515" xlink:href="#m4a1a34e5a4" y="386.324384"/> + <use style="fill:#343837;stroke:#343837;" x="849.574844" xlink:href="#m4a1a34e5a4" y="768.023014"/> + <use style="fill:#343837;stroke:#343837;" x="851.163174" xlink:href="#m4a1a34e5a4" y="482.192877"/> + <use style="fill:#343837;stroke:#343837;" x="852.751503" xlink:href="#m4a1a34e5a4" y="855.014795"/> + <use style="fill:#343837;stroke:#343837;" x="854.339833" xlink:href="#m4a1a34e5a4" y="913.601096"/> + <use style="fill:#343837;stroke:#343837;" x="855.928162" xlink:href="#m4a1a34e5a4" y="274.477808"/> + <use style="fill:#343837;stroke:#343837;" x="857.516492" xlink:href="#m4a1a34e5a4" y="808.85589"/> + <use style="fill:#343837;stroke:#343837;" x="859.104821" xlink:href="#m4a1a34e5a4" y="730.740822"/> + <use style="fill:#343837;stroke:#343837;" x="860.693151" xlink:href="#m4a1a34e5a4" y="910.050411"/> + <use style="fill:#343837;stroke:#343837;" x="862.28148" xlink:href="#m4a1a34e5a4" y="61.436712"/> + <use style="fill:#343837;stroke:#343837;" x="863.86981" xlink:href="#m4a1a34e5a4" y="764.472329"/> + <use style="fill:#343837;stroke:#343837;" x="865.458139" xlink:href="#m4a1a34e5a4" y="148.428493"/> + <use style="fill:#343837;stroke:#343837;" x="867.046469" xlink:href="#m4a1a34e5a4" y="331.288767"/> + <use style="fill:#343837;stroke:#343837;" x="868.634798" xlink:href="#m4a1a34e5a4" y="336.614795"/> + <use style="fill:#343837;stroke:#343837;" x="870.223128" xlink:href="#m4a1a34e5a4" y="350.817534"/> + <use style="fill:#343837;stroke:#343837;" x="871.811457" xlink:href="#m4a1a34e5a4" y="405.853151"/> + <use style="fill:#343837;stroke:#343837;" x="873.399787" xlink:href="#m4a1a34e5a4" y="329.513425"/> + <use style="fill:#343837;stroke:#343837;" x="874.988116" xlink:href="#m4a1a34e5a4" y="471.540822"/> + <use style="fill:#343837;stroke:#343837;" x="876.576446" xlink:href="#m4a1a34e5a4" y="640.198356"/> + <use style="fill:#343837;stroke:#343837;" x="878.164775" xlink:href="#m4a1a34e5a4" y="334.839452"/> + <use style="fill:#343837;stroke:#343837;" x="879.753105" xlink:href="#m4a1a34e5a4" y="949.107945"/> + <use style="fill:#343837;stroke:#343837;" x="881.341434" xlink:href="#m4a1a34e5a4" y="920.702466"/> + <use style="fill:#343837;stroke:#343837;" x="882.929763" xlink:href="#m4a1a34e5a4" y="752.044932"/> + <use style="fill:#343837;stroke:#343837;" x="884.518093" xlink:href="#m4a1a34e5a4" y="320.636712"/> + <use style="fill:#343837;stroke:#343837;" x="886.106422" xlink:href="#m4a1a34e5a4" y="602.916164"/> + <use style="fill:#343837;stroke:#343837;" x="887.694752" xlink:href="#m4a1a34e5a4" y="835.486027"/> + <use style="fill:#343837;stroke:#343837;" x="889.283081" xlink:href="#m4a1a34e5a4" y="244.296986"/> + <use style="fill:#343837;stroke:#343837;" x="890.871411" xlink:href="#m4a1a34e5a4" y="283.354521"/> + <use style="fill:#343837;stroke:#343837;" x="892.45974" xlink:href="#m4a1a34e5a4" y="899.398356"/> + <use style="fill:#343837;stroke:#343837;" x="894.04807" xlink:href="#m4a1a34e5a4" y="844.36274"/> + <use style="fill:#343837;stroke:#343837;" x="895.636399" xlink:href="#m4a1a34e5a4" y="109.370959"/> + <use style="fill:#343837;stroke:#343837;" x="897.224729" xlink:href="#m4a1a34e5a4" y="736.066849"/> + <use style="fill:#343837;stroke:#343837;" x="898.813058" xlink:href="#m4a1a34e5a4" y="151.979178"/> + <use style="fill:#343837;stroke:#343837;" x="900.401388" xlink:href="#m4a1a34e5a4" y="601.140822"/> + <use style="fill:#343837;stroke:#343837;" x="901.989717" xlink:href="#m4a1a34e5a4" y="801.754521"/> + <use style="fill:#343837;stroke:#343837;" x="903.578047" xlink:href="#m4a1a34e5a4" y="599.365479"/> + <use style="fill:#343837;stroke:#343837;" x="905.166376" xlink:href="#m4a1a34e5a4" y="356.143562"/> + <use style="fill:#343837;stroke:#343837;" x="906.754706" xlink:href="#m4a1a34e5a4" y="214.116164"/> + <use style="fill:#343837;stroke:#343837;" x="908.343035" xlink:href="#m4a1a34e5a4" y="931.354521"/> + <use style="fill:#343837;stroke:#343837;" x="909.931365" xlink:href="#m4a1a34e5a4" y="246.072329"/> + <use style="fill:#343837;stroke:#343837;" x="911.519694" xlink:href="#m4a1a34e5a4" y="423.606575"/> + <use style="fill:#343837;stroke:#343837;" x="913.108024" xlink:href="#m4a1a34e5a4" y="134.225753"/> + <use style="fill:#343837;stroke:#343837;" x="914.696353" xlink:href="#m4a1a34e5a4" y="205.239452"/> + <use style="fill:#343837;stroke:#343837;" x="916.284683" xlink:href="#m4a1a34e5a4" y="723.639452"/> + <use style="fill:#343837;stroke:#343837;" x="917.873012" xlink:href="#m4a1a34e5a4" y="485.743562"/> + <use style="fill:#343837;stroke:#343837;" x="919.461342" xlink:href="#m4a1a34e5a4" y="530.127123"/> + <use style="fill:#343837;stroke:#343837;" x="921.049671" xlink:href="#m4a1a34e5a4" y="473.316164"/> + <use style="fill:#343837;stroke:#343837;" x="922.638" xlink:href="#m4a1a34e5a4" y="727.190137"/> + <use style="fill:#343837;stroke:#343837;" x="924.22633" xlink:href="#m4a1a34e5a4" y="178.609315"/> + <use style="fill:#343837;stroke:#343837;" x="925.814659" xlink:href="#m4a1a34e5a4" y="570.96"/> + <use style="fill:#343837;stroke:#343837;" x="927.402989" xlink:href="#m4a1a34e5a4" y="792.877808"/> + <use style="fill:#343837;stroke:#343837;" x="928.991318" xlink:href="#m4a1a34e5a4" y="166.181918"/> + <use style="fill:#343837;stroke:#343837;" x="930.579648" xlink:href="#m4a1a34e5a4" y="68.538082"/> + <use style="fill:#343837;stroke:#343837;" x="932.167977" xlink:href="#m4a1a34e5a4" y="526.576438"/> + <use style="fill:#343837;stroke:#343837;" x="933.756307" xlink:href="#m4a1a34e5a4" y="503.496986"/> + </g> + </g> + <g id="patch_3"> + <path d="M 81.538125 1005.12 +L 81.538125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 974.338125 1005.12 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 81.538125 1005.12 +L 974.338125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 81.538125 7.2 +L 974.338125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 467.244687 992.12 +L 956.138125 992.12 +Q 961.338125 992.12 961.338125 986.92 +L 961.338125 951.356875 +Q 961.338125 946.156875 956.138125 946.156875 +L 467.244687 946.156875 +Q 462.044687 946.156875 462.044687 951.356875 +L 462.044687 986.92 +Q 462.044687 992.12 467.244687 992.12 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_26"/> + <g id="line2d_27"> + <g> + <use style="fill:#343837;stroke:#343837;" x="498.444687" xlink:href="#m4a1a34e5a4" y="967.212813"/> + </g> + </g> + <g id="text_15"> + <!-- (sorted index, permuted index) --> + <defs> + <path d="M 31 75.875 +Q 24.46875 64.65625 21.28125 53.65625 +Q 18.109375 42.671875 18.109375 31.390625 +Q 18.109375 20.125 21.3125 9.0625 +Q 24.515625 -2 31 -13.1875 +L 23.1875 -13.1875 +Q 15.875 -1.703125 12.234375 9.375 +Q 8.59375 20.453125 8.59375 31.390625 +Q 8.59375 42.28125 12.203125 53.3125 +Q 15.828125 64.359375 23.1875 75.875 +z +" id="DejaVuSans-40"/> + <path d="M 11.71875 12.40625 +L 22.015625 12.40625 +L 22.015625 4 +L 14.015625 -11.625 +L 7.71875 -11.625 +L 11.71875 4 +z +" id="DejaVuSans-44"/> + <path d="M 8.015625 75.875 +L 15.828125 75.875 +Q 23.140625 64.359375 26.78125 53.3125 +Q 30.421875 42.28125 30.421875 31.390625 +Q 30.421875 20.453125 26.78125 9.375 +Q 23.140625 -1.703125 15.828125 -13.1875 +L 8.015625 -13.1875 +Q 14.5 -2 17.703125 9.0625 +Q 20.90625 20.125 20.90625 31.390625 +Q 20.90625 42.671875 17.703125 53.65625 +Q 14.5 64.65625 8.015625 75.875 +z +" id="DejaVuSans-41"/> + </defs> + <g transform="translate(545.244687 976.312813)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-40"/> + <use x="39.013672" xlink:href="#DejaVuSans-115"/> + <use x="91.113281" xlink:href="#DejaVuSans-111"/> + <use x="152.294922" xlink:href="#DejaVuSans-114"/> + <use x="193.408203" xlink:href="#DejaVuSans-116"/> + <use x="232.617188" xlink:href="#DejaVuSans-101"/> + <use x="294.140625" xlink:href="#DejaVuSans-100"/> + <use x="357.617188" xlink:href="#DejaVuSans-32"/> + <use x="389.404297" xlink:href="#DejaVuSans-105"/> + <use x="417.1875" xlink:href="#DejaVuSans-110"/> + <use x="480.566406" xlink:href="#DejaVuSans-100"/> + <use x="544.042969" xlink:href="#DejaVuSans-101"/> + <use x="603.816406" xlink:href="#DejaVuSans-120"/> + <use x="662.996094" xlink:href="#DejaVuSans-44"/> + <use x="694.783203" xlink:href="#DejaVuSans-32"/> + <use x="726.570312" xlink:href="#DejaVuSans-112"/> + <use x="790.046875" xlink:href="#DejaVuSans-101"/> + <use x="851.570312" xlink:href="#DejaVuSans-114"/> + <use x="890.933594" xlink:href="#DejaVuSans-109"/> + <use x="988.345703" xlink:href="#DejaVuSans-117"/> + <use x="1051.724609" xlink:href="#DejaVuSans-116"/> + <use x="1090.933594" xlink:href="#DejaVuSans-101"/> + <use x="1152.457031" xlink:href="#DejaVuSans-100"/> + <use x="1215.933594" xlink:href="#DejaVuSans-32"/> + <use x="1247.720703" xlink:href="#DejaVuSans-105"/> + <use x="1275.503906" xlink:href="#DejaVuSans-110"/> + <use x="1338.882812" xlink:href="#DejaVuSans-100"/> + <use x="1402.359375" xlink:href="#DejaVuSans-101"/> + <use x="1462.132812" xlink:href="#DejaVuSans-120"/> + <use x="1521.3125" xlink:href="#DejaVuSans-41"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="pa3cb603142"> + <rect height="997.92" width="892.8" x="81.538125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-sorting-loc-new.pdf b/plots/paper-sorting-loc-new.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cc9157b0975ff8e3070809c34b536838327f0819 Binary files /dev/null and b/plots/paper-sorting-loc-new.pdf differ diff --git a/plots/paper-sorting-loc-new.svg b/plots/paper-sorting-loc-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..00bb5b9886a1ad3a928c70d268af3ab01c27aa60 --- /dev/null +++ b/plots/paper-sorting-loc-new.svg @@ -0,0 +1,1804 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 978.484393 1067.839375" width="978.484393pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 978.484393 1067.839375 +L 978.484393 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +L 961.613125 7.2 +L 68.813125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="PolyCollection_1"> + <defs> + <path d="M 109.394943 -238.274889 +L 109.394943 -238.274889 +L 137.382404 -596.075957 +L 165.369865 -661.145548 +L 193.357326 -700.499384 +L 221.344786 -725.871511 +L 249.332247 -747.3567 +L 277.319708 -763.586074 +L 305.307169 -777.488918 +L 333.29463 -788.361077 +L 361.282091 -799.329001 +L 389.269551 -808.646385 +L 417.257012 -815.434443 +L 445.244473 -821.518346 +L 473.231934 -827.010758 +L 501.219395 -833.843882 +L 529.206855 -838.147679 +L 557.194316 -843.656991 +L 585.181777 -845.786357 +L 613.169238 -850.704178 +L 641.156699 -856.207857 +L 669.144159 -857.323239 +L 697.13162 -861.108778 +L 725.119081 -862.65792 +L 753.106542 -866.657523 +L 781.094003 -867.829237 +L 809.081464 -872.403431 +L 837.068924 -873.175185 +L 865.056385 -874.949656 +L 893.043846 -876.476265 +L 921.031307 -879.185855 +L 921.031307 -882.830563 +L 921.031307 -882.830563 +L 893.043846 -881.687015 +L 865.056385 -878.830961 +L 837.068924 -877.101555 +L 809.081464 -874.865158 +L 781.094003 -872.014737 +L 753.106542 -870.133234 +L 725.119081 -867.43491 +L 697.13162 -864.70842 +L 669.144159 -861.249609 +L 641.156699 -858.652684 +L 613.169238 -854.495351 +L 585.181777 -851.4196 +L 557.194316 -846.270816 +L 529.206855 -842.462744 +L 501.219395 -838.491307 +L 473.231934 -830.373804 +L 445.244473 -826.109439 +L 417.257012 -819.61431 +L 389.269551 -811.136279 +L 361.282091 -801.182338 +L 333.29463 -791.538226 +L 305.307169 -780.378771 +L 277.319708 -767.878605 +L 249.332247 -751.181673 +L 221.344786 -729.668317 +L 193.357326 -703.608935 +L 165.369865 -664.204399 +L 137.382404 -599.962895 +L 109.394943 -238.274889 +z +" id="m092f3572ec" style="stroke:#fe4d4e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m092f3572ec" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_2"> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m092f3572ec" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_3"> + <defs> + <path d="M 109.394943 -108.079375 +L 109.394943 -108.079375 +L 137.382404 -613.967137 +L 165.369865 -703.085043 +L 193.357326 -757.58667 +L 221.344786 -794.495679 +L 249.332247 -825.213753 +L 277.319708 -847.977689 +L 305.307169 -866.353327 +L 333.29463 -882.222173 +L 361.282091 -896.953104 +L 389.269551 -909.227941 +L 417.257012 -919.688873 +L 445.244473 -928.273935 +L 473.231934 -935.354922 +L 501.219395 -946.750973 +L 529.206855 -951.049137 +L 557.194316 -958.197723 +L 585.181777 -964.506955 +L 613.169238 -970.951385 +L 641.156699 -973.700408 +L 669.144159 -979.857542 +L 697.13162 -980.916592 +L 725.119081 -987.563819 +L 753.106542 -991.670453 +L 781.094003 -991.428224 +L 809.081464 -999.725991 +L 837.068924 -1001.173734 +L 865.056385 -1005.302901 +L 893.043846 -1006.728112 +L 921.031307 -1010.333388 +L 921.031307 -1015.279375 +L 921.031307 -1015.279375 +L 893.043846 -1012.704983 +L 865.056385 -1008.057557 +L 837.068924 -1007.882927 +L 809.081464 -1003.314367 +L 781.094003 -1000.492112 +L 753.106542 -998.993669 +L 725.119081 -993.112563 +L 697.13162 -989.327024 +L 669.144159 -985.344321 +L 641.156699 -982.212238 +L 613.169238 -975.052386 +L 585.181777 -970.675356 +L 557.194316 -963.769 +L 529.206855 -960.873513 +L 501.219395 -950.159085 +L 473.231934 -942.328877 +L 445.244473 -933.721282 +L 417.257012 -926.414965 +L 389.269551 -913.20501 +L 361.282091 -901.96669 +L 333.29463 -885.96828 +L 305.307169 -871.462679 +L 277.319708 -852.884243 +L 249.332247 -829.286588 +L 221.344786 -801.469634 +L 193.357326 -762.915718 +L 165.369865 -710.734987 +L 137.382404 -618.727228 +L 109.394943 -108.079375 +z +" id="mb5ce13b59b" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#mb5ce13b59b" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_4"> + <defs> + <path d="M 109.394943 -108.079375 +L 109.394943 -108.079375 +L 137.382404 -406.151167 +L 165.369865 -452.957783 +L 193.357326 -481.597191 +L 221.344786 -500.660086 +L 249.332247 -516.286702 +L 277.319708 -527.440524 +L 305.307169 -536.712842 +L 333.29463 -545.5683 +L 361.282091 -552.457756 +L 389.269551 -558.586725 +L 417.257012 -564.039704 +L 445.244473 -568.906826 +L 473.231934 -572.083975 +L 501.219395 -578.111545 +L 529.206855 -579.626887 +L 557.194316 -583.502559 +L 585.181777 -586.583943 +L 613.169238 -590.206118 +L 641.156699 -591.912991 +L 669.144159 -594.48175 +L 697.13162 -594.65638 +L 725.119081 -598.441919 +L 753.106542 -600.481153 +L 781.094003 -600.757182 +L 809.081464 -604.22726 +L 837.068924 -604.700452 +L 865.056385 -607.415676 +L 893.043846 -607.78747 +L 921.031307 -610.0464 +L 921.031307 -612.248998 +L 921.031307 -612.248998 +L 893.043846 -611.184315 +L 865.056385 -609.00425 +L 837.068924 -608.531058 +L 809.081464 -606.71152 +L 781.094003 -605.072247 +L 753.106542 -604.097695 +L 725.119081 -601.050111 +L 697.13162 -598.977077 +L 669.144159 -597.213872 +L 641.156699 -595.918226 +L 613.169238 -592.414349 +L 585.181777 -590.318783 +L 557.194316 -586.426212 +L 529.206855 -584.606674 +L 501.219395 -579.581822 +L 473.231934 -575.661084 +L 445.244473 -571.509384 +L 417.257012 -567.306985 +L 389.269551 -560.862555 +L 361.282091 -555.398309 +L 333.29463 -546.863946 +L 305.307169 -539.884357 +L 277.319708 -529.947317 +L 249.332247 -518.179472 +L 221.344786 -503.409108 +L 193.357326 -483.692758 +L 165.369865 -456.805288 +L 137.382404 -408.877656 +L 109.394943 -108.079375 +z +" id="m9e9ada3ebe" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m9e9ada3ebe" y="1067.839375"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p5cf37d5ae6)" d="M 109.394943 1005.12 +L 109.394943 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m452366937e" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="109.394943" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0.00 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="DejaVuSans-46"/> + </defs> + <g transform="translate(87.129318 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-48"/> + <use x="159.033203" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p5cf37d5ae6)" d="M 249.332247 1005.12 +L 249.332247 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="249.332247" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 0.05 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(227.066622 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-48"/> + <use x="159.033203" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p5cf37d5ae6)" d="M 389.269551 1005.12 +L 389.269551 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="389.269551" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 0.10 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(367.003926 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-49"/> + <use x="159.033203" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p5cf37d5ae6)" d="M 529.206855 1005.12 +L 529.206855 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="529.206855" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 0.15 --> + <g transform="translate(506.94123 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-49"/> + <use x="159.033203" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p5cf37d5ae6)" d="M 669.144159 1005.12 +L 669.144159 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="669.144159" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 0.20 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(646.878534 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-50"/> + <use x="159.033203" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#p5cf37d5ae6)" d="M 809.081464 1005.12 +L 809.081464 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="809.081464" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 0.25 --> + <g transform="translate(786.815839 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-50"/> + <use x="159.033203" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="xtick_7"> + <g id="line2d_13"> + <path clip-path="url(#p5cf37d5ae6)" d="M 949.018768 1005.12 +L 949.018768 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="949.018768" xlink:href="#m452366937e" y="1005.12"/> + </g> + </g> + <g id="text_7"> + <!-- 0.30 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +z +" id="DejaVuSans-51"/> + </defs> + <g transform="translate(926.753143 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-51"/> + <use x="159.033203" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_8"> + <!-- Locality parameter --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 8.296875 +L 55.171875 8.296875 +L 55.171875 0 +L 9.8125 0 +z +" id="DejaVuSans-76"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 48.78125 52.59375 +L 48.78125 44.1875 +Q 44.96875 46.296875 41.140625 47.34375 +Q 37.3125 48.390625 33.40625 48.390625 +Q 24.65625 48.390625 19.8125 42.84375 +Q 14.984375 37.3125 14.984375 27.296875 +Q 14.984375 17.28125 19.8125 11.734375 +Q 24.65625 6.203125 33.40625 6.203125 +Q 37.3125 6.203125 41.140625 7.25 +Q 44.96875 8.296875 48.78125 10.40625 +L 48.78125 2.09375 +Q 45.015625 0.34375 40.984375 -0.53125 +Q 36.96875 -1.421875 32.421875 -1.421875 +Q 20.0625 -1.421875 12.78125 6.34375 +Q 5.515625 14.109375 5.515625 27.296875 +Q 5.515625 40.671875 12.859375 48.328125 +Q 20.21875 56 33.015625 56 +Q 37.15625 56 41.109375 55.140625 +Q 45.0625 54.296875 48.78125 52.59375 +z +" id="DejaVuSans-99"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 32.171875 -5.078125 +Q 28.375 -14.84375 24.75 -17.8125 +Q 21.140625 -20.796875 15.09375 -20.796875 +L 7.90625 -20.796875 +L 7.90625 -13.28125 +L 13.1875 -13.28125 +Q 16.890625 -13.28125 18.9375 -11.515625 +Q 21 -9.765625 23.484375 -3.21875 +L 25.09375 0.875 +L 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 11.921875 +L 46.6875 54.6875 +L 56.203125 54.6875 +z +" id="DejaVuSans-121"/> + <path id="DejaVuSans-32"/> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + </defs> + <g transform="translate(392.350937 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-76"/> + <use x="53.962891" xlink:href="#DejaVuSans-111"/> + <use x="115.144531" xlink:href="#DejaVuSans-99"/> + <use x="170.125" xlink:href="#DejaVuSans-97"/> + <use x="231.404297" xlink:href="#DejaVuSans-108"/> + <use x="259.1875" xlink:href="#DejaVuSans-105"/> + <use x="286.970703" xlink:href="#DejaVuSans-116"/> + <use x="326.179688" xlink:href="#DejaVuSans-121"/> + <use x="385.359375" xlink:href="#DejaVuSans-32"/> + <use x="417.146484" xlink:href="#DejaVuSans-112"/> + <use x="480.623047" xlink:href="#DejaVuSans-97"/> + <use x="541.902344" xlink:href="#DejaVuSans-114"/> + <use x="583.015625" xlink:href="#DejaVuSans-97"/> + <use x="644.294922" xlink:href="#DejaVuSans-109"/> + <use x="741.707031" xlink:href="#DejaVuSans-101"/> + <use x="803.230469" xlink:href="#DejaVuSans-116"/> + <use x="842.439453" xlink:href="#DejaVuSans-101"/> + <use x="903.962891" xlink:href="#DejaVuSans-114"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_15"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 903.416303 +L 961.613125 903.416303 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m1a89c52516" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="903.416303"/> + </g> + </g> + <g id="text_9"> + <!-- 2 --> + <g transform="translate(49.088125 911.01474)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_17"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 790.751441 +L 961.613125 790.751441 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="790.751441"/> + </g> + </g> + <g id="text_10"> + <!-- 4 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(49.088125 798.349878)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_19"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 678.086579 +L 961.613125 678.086579 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="678.086579"/> + </g> + </g> + <g id="text_11"> + <!-- 6 --> + <defs> + <path d="M 33.015625 40.375 +Q 26.375 40.375 22.484375 35.828125 +Q 18.609375 31.296875 18.609375 23.390625 +Q 18.609375 15.53125 22.484375 10.953125 +Q 26.375 6.390625 33.015625 6.390625 +Q 39.65625 6.390625 43.53125 10.953125 +Q 47.40625 15.53125 47.40625 23.390625 +Q 47.40625 31.296875 43.53125 35.828125 +Q 39.65625 40.375 33.015625 40.375 +z +M 52.59375 71.296875 +L 52.59375 62.3125 +Q 48.875 64.0625 45.09375 64.984375 +Q 41.3125 65.921875 37.59375 65.921875 +Q 27.828125 65.921875 22.671875 59.328125 +Q 17.53125 52.734375 16.796875 39.40625 +Q 19.671875 43.65625 24.015625 45.921875 +Q 28.375 48.1875 33.59375 48.1875 +Q 44.578125 48.1875 50.953125 41.515625 +Q 57.328125 34.859375 57.328125 23.390625 +Q 57.328125 12.15625 50.6875 5.359375 +Q 44.046875 -1.421875 33.015625 -1.421875 +Q 20.359375 -1.421875 13.671875 8.265625 +Q 6.984375 17.96875 6.984375 36.375 +Q 6.984375 53.65625 15.1875 63.9375 +Q 23.390625 74.21875 37.203125 74.21875 +Q 40.921875 74.21875 44.703125 73.484375 +Q 48.484375 72.75 52.59375 71.296875 +z +" id="DejaVuSans-54"/> + </defs> + <g transform="translate(49.088125 685.685017)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_21"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 565.421717 +L 961.613125 565.421717 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="565.421717"/> + </g> + </g> + <g id="text_12"> + <!-- 8 --> + <defs> + <path d="M 31.78125 34.625 +Q 24.75 34.625 20.71875 30.859375 +Q 16.703125 27.09375 16.703125 20.515625 +Q 16.703125 13.921875 20.71875 10.15625 +Q 24.75 6.390625 31.78125 6.390625 +Q 38.8125 6.390625 42.859375 10.171875 +Q 46.921875 13.96875 46.921875 20.515625 +Q 46.921875 27.09375 42.890625 30.859375 +Q 38.875 34.625 31.78125 34.625 +z +M 21.921875 38.8125 +Q 15.578125 40.375 12.03125 44.71875 +Q 8.5 49.078125 8.5 55.328125 +Q 8.5 64.0625 14.71875 69.140625 +Q 20.953125 74.21875 31.78125 74.21875 +Q 42.671875 74.21875 48.875 69.140625 +Q 55.078125 64.0625 55.078125 55.328125 +Q 55.078125 49.078125 51.53125 44.71875 +Q 48 40.375 41.703125 38.8125 +Q 48.828125 37.15625 52.796875 32.3125 +Q 56.78125 27.484375 56.78125 20.515625 +Q 56.78125 9.90625 50.3125 4.234375 +Q 43.84375 -1.421875 31.78125 -1.421875 +Q 19.734375 -1.421875 13.25 4.234375 +Q 6.78125 9.90625 6.78125 20.515625 +Q 6.78125 27.484375 10.78125 32.3125 +Q 14.796875 37.15625 21.921875 38.8125 +z +M 18.3125 54.390625 +Q 18.3125 48.734375 21.84375 45.5625 +Q 25.390625 42.390625 31.78125 42.390625 +Q 38.140625 42.390625 41.71875 45.5625 +Q 45.3125 48.734375 45.3125 54.390625 +Q 45.3125 60.0625 41.71875 63.234375 +Q 38.140625 66.40625 31.78125 66.40625 +Q 25.390625 66.40625 21.84375 63.234375 +Q 18.3125 60.0625 18.3125 54.390625 +z +" id="DejaVuSans-56"/> + </defs> + <g transform="translate(49.088125 573.020155)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_23"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 452.756856 +L 961.613125 452.756856 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="452.756856"/> + </g> + </g> + <g id="text_13"> + <!-- 10 --> + <g transform="translate(36.363125 460.355293)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_25"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 340.091994 +L 961.613125 340.091994 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_26"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="340.091994"/> + </g> + </g> + <g id="text_14"> + <!-- 12 --> + <g transform="translate(36.363125 347.690431)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_27"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 227.427132 +L 961.613125 227.427132 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_28"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="227.427132"/> + </g> + </g> + <g id="text_15"> + <!-- 14 --> + <g transform="translate(36.363125 235.025569)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="ytick_8"> + <g id="line2d_29"> + <path clip-path="url(#p5cf37d5ae6)" d="M 68.813125 114.76227 +L 961.613125 114.76227 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_30"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m1a89c52516" y="114.76227"/> + </g> + </g> + <g id="text_16"> + <!-- 16 --> + <g transform="translate(36.363125 122.360708)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="text_17"> + <!-- Avg. number of operations / size --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="DejaVuSans-65"/> + <path d="M 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 8.796875 +L 46.6875 54.6875 +L 56.203125 54.6875 +L 35.6875 0 +L 23.484375 0 +z +" id="DejaVuSans-118"/> + <path d="M 45.40625 27.984375 +Q 45.40625 37.75 41.375 43.109375 +Q 37.359375 48.484375 30.078125 48.484375 +Q 22.859375 48.484375 18.828125 43.109375 +Q 14.796875 37.75 14.796875 27.984375 +Q 14.796875 18.265625 18.828125 12.890625 +Q 22.859375 7.515625 30.078125 7.515625 +Q 37.359375 7.515625 41.375 12.890625 +Q 45.40625 18.265625 45.40625 27.984375 +z +M 54.390625 6.78125 +Q 54.390625 -7.171875 48.1875 -13.984375 +Q 42 -20.796875 29.203125 -20.796875 +Q 24.46875 -20.796875 20.265625 -20.09375 +Q 16.0625 -19.390625 12.109375 -17.921875 +L 12.109375 -9.1875 +Q 16.0625 -11.328125 19.921875 -12.34375 +Q 23.78125 -13.375 27.78125 -13.375 +Q 36.625 -13.375 41.015625 -8.765625 +Q 45.40625 -4.15625 45.40625 5.171875 +L 45.40625 9.625 +Q 42.625 4.78125 38.28125 2.390625 +Q 33.9375 0 27.875 0 +Q 17.828125 0 11.671875 7.65625 +Q 5.515625 15.328125 5.515625 27.984375 +Q 5.515625 40.671875 11.671875 48.328125 +Q 17.828125 56 27.875 56 +Q 33.9375 56 38.28125 53.609375 +Q 42.625 51.21875 45.40625 46.390625 +L 45.40625 54.6875 +L 54.390625 54.6875 +z +" id="DejaVuSans-103"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +M 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +z +" id="DejaVuSans-98"/> + <path d="M 37.109375 75.984375 +L 37.109375 68.5 +L 28.515625 68.5 +Q 23.6875 68.5 21.796875 66.546875 +Q 19.921875 64.59375 19.921875 59.515625 +L 19.921875 54.6875 +L 34.71875 54.6875 +L 34.71875 47.703125 +L 19.921875 47.703125 +L 19.921875 0 +L 10.890625 0 +L 10.890625 47.703125 +L 2.296875 47.703125 +L 2.296875 54.6875 +L 10.890625 54.6875 +L 10.890625 58.5 +Q 10.890625 67.625 15.140625 71.796875 +Q 19.390625 75.984375 28.609375 75.984375 +z +" id="DejaVuSans-102"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 25.390625 72.90625 +L 33.6875 72.90625 +L 8.296875 -9.28125 +L 0 -9.28125 +z +" id="DejaVuSans-47"/> + <path d="M 5.515625 54.6875 +L 48.1875 54.6875 +L 48.1875 46.484375 +L 14.40625 7.171875 +L 48.1875 7.171875 +L 48.1875 0 +L 4.296875 0 +L 4.296875 8.203125 +L 38.09375 47.515625 +L 5.515625 47.515625 +z +" id="DejaVuSans-122"/> + </defs> + <g transform="translate(26.955938 717.06875)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-110"/> + <use x="312.142578" xlink:href="#DejaVuSans-117"/> + <use x="375.521484" xlink:href="#DejaVuSans-109"/> + <use x="472.933594" xlink:href="#DejaVuSans-98"/> + <use x="536.410156" xlink:href="#DejaVuSans-101"/> + <use x="597.933594" xlink:href="#DejaVuSans-114"/> + <use x="639.046875" xlink:href="#DejaVuSans-32"/> + <use x="670.833984" xlink:href="#DejaVuSans-111"/> + <use x="732.015625" xlink:href="#DejaVuSans-102"/> + <use x="767.220703" xlink:href="#DejaVuSans-32"/> + <use x="799.007812" xlink:href="#DejaVuSans-111"/> + <use x="860.189453" xlink:href="#DejaVuSans-112"/> + <use x="923.666016" xlink:href="#DejaVuSans-101"/> + <use x="985.189453" xlink:href="#DejaVuSans-114"/> + <use x="1026.302734" xlink:href="#DejaVuSans-97"/> + <use x="1087.582031" xlink:href="#DejaVuSans-116"/> + <use x="1126.791016" xlink:href="#DejaVuSans-105"/> + <use x="1154.574219" xlink:href="#DejaVuSans-111"/> + <use x="1215.755859" xlink:href="#DejaVuSans-110"/> + <use x="1279.134766" xlink:href="#DejaVuSans-115"/> + <use x="1331.234375" xlink:href="#DejaVuSans-32"/> + <use x="1363.021484" xlink:href="#DejaVuSans-47"/> + <use x="1396.712891" xlink:href="#DejaVuSans-32"/> + <use x="1428.5" xlink:href="#DejaVuSans-115"/> + <use x="1480.599609" xlink:href="#DejaVuSans-105"/> + <use x="1508.382812" xlink:href="#DejaVuSans-122"/> + <use x="1560.873047" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="line2d_31"> + <path clip-path="url(#p5cf37d5ae6)" d="M 109.394943 829.564486 +L 137.382404 469.898814 +L 165.369865 404.857953 +L 193.357326 365.930553 +L 221.344786 340.048618 +L 249.332247 318.291906 +L 277.319708 301.772421 +L 305.307169 289.287464 +L 333.29463 277.7196 +L 361.282091 267.632151 +L 389.269551 258.136757 +L 417.257012 250.891279 +L 445.244473 244.292498 +L 473.231934 238.838392 +L 501.219395 231.569819 +L 529.206855 227.124063 +L 557.194316 222.672111 +L 585.181777 218.581814 +L 613.169238 214.822751 +L 641.156699 210.482337 +L 669.144159 208.377757 +L 697.13162 204.742062 +L 725.119081 202.758597 +L 753.106542 199.236694 +L 781.094003 197.480812 +L 809.081464 194.567298 +L 837.068924 192.891972 +L 865.056385 190.91245 +L 893.043846 188.786464 +L 921.031307 187.099871 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 4.5 +C 1.193414 4.5 2.338109 4.025852 3.181981 3.181981 +C 4.025852 2.338109 4.5 1.193414 4.5 0 +C 4.5 -1.193414 4.025852 -2.338109 3.181981 -3.181981 +C 2.338109 -4.025852 1.193414 -4.5 0 -4.5 +C -1.193414 -4.5 -2.338109 -4.025852 -3.181981 -3.181981 +C -4.025852 -2.338109 -4.5 -1.193414 -4.5 0 +C -4.5 1.193414 -4.025852 2.338109 -3.181981 3.181981 +C -2.338109 4.025852 -1.193414 4.5 0 4.5 +z +" id="m485fd9da67" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#m485fd9da67" y="829.564486"/> + <use style="fill:#fe0002;stroke:#000000;" x="137.382404" xlink:href="#m485fd9da67" y="469.898814"/> + <use style="fill:#fe0002;stroke:#000000;" x="165.369865" xlink:href="#m485fd9da67" y="404.857953"/> + <use style="fill:#fe0002;stroke:#000000;" x="193.357326" xlink:href="#m485fd9da67" y="365.930553"/> + <use style="fill:#fe0002;stroke:#000000;" x="221.344786" xlink:href="#m485fd9da67" y="340.048618"/> + <use style="fill:#fe0002;stroke:#000000;" x="249.332247" xlink:href="#m485fd9da67" y="318.291906"/> + <use style="fill:#fe0002;stroke:#000000;" x="277.319708" xlink:href="#m485fd9da67" y="301.772421"/> + <use style="fill:#fe0002;stroke:#000000;" x="305.307169" xlink:href="#m485fd9da67" y="289.287464"/> + <use style="fill:#fe0002;stroke:#000000;" x="333.29463" xlink:href="#m485fd9da67" y="277.7196"/> + <use style="fill:#fe0002;stroke:#000000;" x="361.282091" xlink:href="#m485fd9da67" y="267.632151"/> + <use style="fill:#fe0002;stroke:#000000;" x="389.269551" xlink:href="#m485fd9da67" y="258.136757"/> + <use style="fill:#fe0002;stroke:#000000;" x="417.257012" xlink:href="#m485fd9da67" y="250.891279"/> + <use style="fill:#fe0002;stroke:#000000;" x="445.244473" xlink:href="#m485fd9da67" y="244.292498"/> + <use style="fill:#fe0002;stroke:#000000;" x="473.231934" xlink:href="#m485fd9da67" y="238.838392"/> + <use style="fill:#fe0002;stroke:#000000;" x="501.219395" xlink:href="#m485fd9da67" y="231.569819"/> + <use style="fill:#fe0002;stroke:#000000;" x="529.206855" xlink:href="#m485fd9da67" y="227.124063"/> + <use style="fill:#fe0002;stroke:#000000;" x="557.194316" xlink:href="#m485fd9da67" y="222.672111"/> + <use style="fill:#fe0002;stroke:#000000;" x="585.181777" xlink:href="#m485fd9da67" y="218.581814"/> + <use style="fill:#fe0002;stroke:#000000;" x="613.169238" xlink:href="#m485fd9da67" y="214.822751"/> + <use style="fill:#fe0002;stroke:#000000;" x="641.156699" xlink:href="#m485fd9da67" y="210.482337"/> + <use style="fill:#fe0002;stroke:#000000;" x="669.144159" xlink:href="#m485fd9da67" y="208.377757"/> + <use style="fill:#fe0002;stroke:#000000;" x="697.13162" xlink:href="#m485fd9da67" y="204.742062"/> + <use style="fill:#fe0002;stroke:#000000;" x="725.119081" xlink:href="#m485fd9da67" y="202.758597"/> + <use style="fill:#fe0002;stroke:#000000;" x="753.106542" xlink:href="#m485fd9da67" y="199.236694"/> + <use style="fill:#fe0002;stroke:#000000;" x="781.094003" xlink:href="#m485fd9da67" y="197.480812"/> + <use style="fill:#fe0002;stroke:#000000;" x="809.081464" xlink:href="#m485fd9da67" y="194.567298"/> + <use style="fill:#fe0002;stroke:#000000;" x="837.068924" xlink:href="#m485fd9da67" y="192.891972"/> + <use style="fill:#fe0002;stroke:#000000;" x="865.056385" xlink:href="#m485fd9da67" y="190.91245"/> + <use style="fill:#fe0002;stroke:#000000;" x="893.043846" xlink:href="#m485fd9da67" y="188.786464"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#m485fd9da67" y="187.099871"/> + </g> + </g> + <g id="line2d_32"> + <path clip-path="url(#p5cf37d5ae6)" d="M 109.394943 829.564486 +L 137.382404 469.898814 +L 165.369865 404.857953 +L 193.357326 365.930553 +L 221.344786 340.048618 +L 249.332247 318.291906 +L 277.319708 301.772421 +L 305.307169 289.287464 +L 333.29463 277.7196 +L 361.282091 267.632151 +L 389.269551 258.136757 +L 417.257012 250.891279 +L 445.244473 244.292498 +L 473.231934 238.838392 +L 501.219395 231.569819 +L 529.206855 227.124063 +L 557.194316 222.672111 +L 585.181777 218.581814 +L 613.169238 214.822751 +L 641.156699 210.482337 +L 669.144159 208.377757 +L 697.13162 204.742062 +L 725.119081 202.758597 +L 753.106542 199.236694 +L 781.094003 197.480812 +L 809.081464 194.567298 +L 837.068924 192.891972 +L 865.056385 190.91245 +L 893.043846 188.786464 +L 921.031307 187.099871 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#m485fd9da67" y="829.564486"/> + <use style="fill:#fe0002;stroke:#000000;" x="137.382404" xlink:href="#m485fd9da67" y="469.898814"/> + <use style="fill:#fe0002;stroke:#000000;" x="165.369865" xlink:href="#m485fd9da67" y="404.857953"/> + <use style="fill:#fe0002;stroke:#000000;" x="193.357326" xlink:href="#m485fd9da67" y="365.930553"/> + <use style="fill:#fe0002;stroke:#000000;" x="221.344786" xlink:href="#m485fd9da67" y="340.048618"/> + <use style="fill:#fe0002;stroke:#000000;" x="249.332247" xlink:href="#m485fd9da67" y="318.291906"/> + <use style="fill:#fe0002;stroke:#000000;" x="277.319708" xlink:href="#m485fd9da67" y="301.772421"/> + <use style="fill:#fe0002;stroke:#000000;" x="305.307169" xlink:href="#m485fd9da67" y="289.287464"/> + <use style="fill:#fe0002;stroke:#000000;" x="333.29463" xlink:href="#m485fd9da67" y="277.7196"/> + <use style="fill:#fe0002;stroke:#000000;" x="361.282091" xlink:href="#m485fd9da67" y="267.632151"/> + <use style="fill:#fe0002;stroke:#000000;" x="389.269551" xlink:href="#m485fd9da67" y="258.136757"/> + <use style="fill:#fe0002;stroke:#000000;" x="417.257012" xlink:href="#m485fd9da67" y="250.891279"/> + <use style="fill:#fe0002;stroke:#000000;" x="445.244473" xlink:href="#m485fd9da67" y="244.292498"/> + <use style="fill:#fe0002;stroke:#000000;" x="473.231934" xlink:href="#m485fd9da67" y="238.838392"/> + <use style="fill:#fe0002;stroke:#000000;" x="501.219395" xlink:href="#m485fd9da67" y="231.569819"/> + <use style="fill:#fe0002;stroke:#000000;" x="529.206855" xlink:href="#m485fd9da67" y="227.124063"/> + <use style="fill:#fe0002;stroke:#000000;" x="557.194316" xlink:href="#m485fd9da67" y="222.672111"/> + <use style="fill:#fe0002;stroke:#000000;" x="585.181777" xlink:href="#m485fd9da67" y="218.581814"/> + <use style="fill:#fe0002;stroke:#000000;" x="613.169238" xlink:href="#m485fd9da67" y="214.822751"/> + <use style="fill:#fe0002;stroke:#000000;" x="641.156699" xlink:href="#m485fd9da67" y="210.482337"/> + <use style="fill:#fe0002;stroke:#000000;" x="669.144159" xlink:href="#m485fd9da67" y="208.377757"/> + <use style="fill:#fe0002;stroke:#000000;" x="697.13162" xlink:href="#m485fd9da67" y="204.742062"/> + <use style="fill:#fe0002;stroke:#000000;" x="725.119081" xlink:href="#m485fd9da67" y="202.758597"/> + <use style="fill:#fe0002;stroke:#000000;" x="753.106542" xlink:href="#m485fd9da67" y="199.236694"/> + <use style="fill:#fe0002;stroke:#000000;" x="781.094003" xlink:href="#m485fd9da67" y="197.480812"/> + <use style="fill:#fe0002;stroke:#000000;" x="809.081464" xlink:href="#m485fd9da67" y="194.567298"/> + <use style="fill:#fe0002;stroke:#000000;" x="837.068924" xlink:href="#m485fd9da67" y="192.891972"/> + <use style="fill:#fe0002;stroke:#000000;" x="865.056385" xlink:href="#m485fd9da67" y="190.91245"/> + <use style="fill:#fe0002;stroke:#000000;" x="893.043846" xlink:href="#m485fd9da67" y="188.786464"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#m485fd9da67" y="187.099871"/> + </g> + </g> + <g id="line2d_33"> + <path clip-path="url(#p5cf37d5ae6)" d="M 109.394943 959.76 +L 137.382404 451.323195 +L 165.369865 360.771066 +L 193.357326 307.136395 +L 221.344786 270.83803 +L 249.332247 240.705249 +L 277.319708 217.232652 +L 305.307169 199.019814 +L 333.29463 183.699082 +L 361.282091 168.821124 +L 389.269551 156.563187 +L 417.257012 146.022263 +L 445.244473 136.333085 +L 473.231934 129.114647 +L 501.219395 119.620379 +L 529.206855 111.767638 +L 557.194316 106.533792 +L 585.181777 100.351308 +L 613.169238 95.231816 +L 641.156699 88.780063 +L 669.144159 85.133102 +L 697.13162 81.973979 +L 725.119081 77.556953 +L 753.106542 73.841266 +L 781.094003 70.68496 +L 809.081464 66.237514 +L 837.068924 63.77973 +L 865.056385 61.417148 +L 893.043846 58.130151 +L 921.031307 55.779962 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 -4.5 +L -4.5 4.5 +L 4.5 4.5 +z +" id="m3f71208ad6" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m3f71208ad6" y="959.76"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="137.382404" xlink:href="#m3f71208ad6" y="451.323195"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="165.369865" xlink:href="#m3f71208ad6" y="360.771066"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="193.357326" xlink:href="#m3f71208ad6" y="307.136395"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="221.344786" xlink:href="#m3f71208ad6" y="270.83803"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="249.332247" xlink:href="#m3f71208ad6" y="240.705249"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="277.319708" xlink:href="#m3f71208ad6" y="217.232652"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="305.307169" xlink:href="#m3f71208ad6" y="199.019814"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="333.29463" xlink:href="#m3f71208ad6" y="183.699082"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="361.282091" xlink:href="#m3f71208ad6" y="168.821124"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="389.269551" xlink:href="#m3f71208ad6" y="156.563187"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="417.257012" xlink:href="#m3f71208ad6" y="146.022263"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="445.244473" xlink:href="#m3f71208ad6" y="136.333085"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="473.231934" xlink:href="#m3f71208ad6" y="129.114647"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="501.219395" xlink:href="#m3f71208ad6" y="119.620379"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="529.206855" xlink:href="#m3f71208ad6" y="111.767638"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="557.194316" xlink:href="#m3f71208ad6" y="106.533792"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="585.181777" xlink:href="#m3f71208ad6" y="100.351308"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="613.169238" xlink:href="#m3f71208ad6" y="95.231816"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="641.156699" xlink:href="#m3f71208ad6" y="88.780063"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="669.144159" xlink:href="#m3f71208ad6" y="85.133102"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="697.13162" xlink:href="#m3f71208ad6" y="81.973979"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="725.119081" xlink:href="#m3f71208ad6" y="77.556953"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="753.106542" xlink:href="#m3f71208ad6" y="73.841266"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="781.094003" xlink:href="#m3f71208ad6" y="70.68496"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="809.081464" xlink:href="#m3f71208ad6" y="66.237514"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="837.068924" xlink:href="#m3f71208ad6" y="63.77973"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="865.056385" xlink:href="#m3f71208ad6" y="61.417148"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="893.043846" xlink:href="#m3f71208ad6" y="58.130151"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m3f71208ad6" y="55.779962"/> + </g> + </g> + <g id="line2d_34"> + <path clip-path="url(#p5cf37d5ae6)" d="M 109.394943 959.76 +L 137.382404 660.063018 +L 165.369865 612.617028 +L 193.357326 584.909358 +L 221.344786 566.267267 +L 249.332247 550.616991 +L 277.319708 539.068843 +L 305.307169 529.549789 +L 333.29463 521.756197 +L 361.282091 514.26004 +L 389.269551 508.011647 +L 417.257012 502.771041 +L 445.244473 497.721402 +L 473.231934 493.844041 +L 501.219395 489.106483 +L 529.206855 485.366573 +L 557.194316 482.615861 +L 585.181777 479.354776 +L 613.169238 476.901499 +L 641.156699 473.645484 +L 669.144159 471.967904 +L 697.13162 470.320181 +L 725.119081 467.896196 +L 753.106542 466.181437 +L 781.094003 464.567513 +L 809.081464 462.254503 +L 837.068924 461.125601 +L 865.056385 459.806296 +L 893.043846 458.303347 +L 921.031307 457.03136 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <defs> + <path d="M -0 6.363961 +L 6.363961 0 +L 0 -6.363961 +L -6.363961 -0 +z +" id="m03aac7ac32" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p5cf37d5ae6)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m03aac7ac32" y="959.76"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="137.382404" xlink:href="#m03aac7ac32" y="660.063018"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="165.369865" xlink:href="#m03aac7ac32" y="612.617028"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="193.357326" xlink:href="#m03aac7ac32" y="584.909358"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="221.344786" xlink:href="#m03aac7ac32" y="566.267267"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="249.332247" xlink:href="#m03aac7ac32" y="550.616991"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="277.319708" xlink:href="#m03aac7ac32" y="539.068843"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="305.307169" xlink:href="#m03aac7ac32" y="529.549789"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="333.29463" xlink:href="#m03aac7ac32" y="521.756197"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="361.282091" xlink:href="#m03aac7ac32" y="514.26004"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="389.269551" xlink:href="#m03aac7ac32" y="508.011647"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="417.257012" xlink:href="#m03aac7ac32" y="502.771041"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="445.244473" xlink:href="#m03aac7ac32" y="497.721402"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="473.231934" xlink:href="#m03aac7ac32" y="493.844041"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="501.219395" xlink:href="#m03aac7ac32" y="489.106483"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="529.206855" xlink:href="#m03aac7ac32" y="485.366573"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="557.194316" xlink:href="#m03aac7ac32" y="482.615861"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="585.181777" xlink:href="#m03aac7ac32" y="479.354776"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="613.169238" xlink:href="#m03aac7ac32" y="476.901499"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="641.156699" xlink:href="#m03aac7ac32" y="473.645484"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="669.144159" xlink:href="#m03aac7ac32" y="471.967904"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="697.13162" xlink:href="#m03aac7ac32" y="470.320181"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="725.119081" xlink:href="#m03aac7ac32" y="467.896196"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="753.106542" xlink:href="#m03aac7ac32" y="466.181437"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="781.094003" xlink:href="#m03aac7ac32" y="464.567513"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="809.081464" xlink:href="#m03aac7ac32" y="462.254503"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="837.068924" xlink:href="#m03aac7ac32" y="461.125601"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="865.056385" xlink:href="#m03aac7ac32" y="459.806296"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="893.043846" xlink:href="#m03aac7ac32" y="458.303347"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m03aac7ac32" y="457.03136"/> + </g> + </g> + <g id="patch_3"> + <path d="M 68.813125 1005.12 +L 68.813125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 961.613125 1005.12 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 68.813125 7.2 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 586.274688 992.12 +L 943.413125 992.12 +Q 948.613125 992.12 948.613125 986.92 +L 948.613125 836.8675 +Q 948.613125 831.6675 943.413125 831.6675 +L 586.274688 831.6675 +Q 581.074687 831.6675 581.074687 836.8675 +L 581.074687 986.92 +Q 581.074687 992.12 586.274688 992.12 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_35"> + <path d="M 591.474687 852.723437 +L 643.474687 852.723437 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_36"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="617.474687" xlink:href="#m485fd9da67" y="852.723437"/> + </g> + </g> + <g id="text_18"> + <!-- Pairing comparisons --> + <defs> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-80"/> + </defs> + <g transform="translate(664.274687 861.823437)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-99"/> + <use x="427.384766" xlink:href="#DejaVuSans-111"/> + <use x="488.566406" xlink:href="#DejaVuSans-109"/> + <use x="585.978516" xlink:href="#DejaVuSans-112"/> + <use x="649.455078" xlink:href="#DejaVuSans-97"/> + <use x="710.734375" xlink:href="#DejaVuSans-114"/> + <use x="751.847656" xlink:href="#DejaVuSans-105"/> + <use x="779.630859" xlink:href="#DejaVuSans-115"/> + <use x="831.730469" xlink:href="#DejaVuSans-111"/> + <use x="892.912109" xlink:href="#DejaVuSans-110"/> + <use x="956.291016" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_37"> + <path d="M 591.474687 890.886562 +L 643.474687 890.886562 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_38"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="617.474687" xlink:href="#m485fd9da67" y="890.886562"/> + </g> + </g> + <g id="text_19"> + <!-- Pairing links --> + <defs> + <path d="M 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 31.109375 +L 44.921875 54.6875 +L 56.390625 54.6875 +L 27.390625 29.109375 +L 57.625 0 +L 45.90625 0 +L 18.109375 26.703125 +L 18.109375 0 +L 9.078125 0 +z +" id="DejaVuSans-107"/> + </defs> + <g transform="translate(664.274687 899.986562)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-108"/> + <use x="400.1875" xlink:href="#DejaVuSans-105"/> + <use x="427.970703" xlink:href="#DejaVuSans-110"/> + <use x="491.349609" xlink:href="#DejaVuSans-107"/> + <use x="549.259766" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_39"> + <path d="M 591.474687 929.049688 +L 643.474687 929.049688 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_40"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="617.474687" xlink:href="#m3f71208ad6" y="929.049688"/> + </g> + </g> + <g id="text_20"> + <!-- Smooth comparisons --> + <defs> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +z +" id="DejaVuSans-83"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-104"/> + </defs> + <g transform="translate(664.274687 938.149688)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-99"/> + <use x="472.607422" xlink:href="#DejaVuSans-111"/> + <use x="533.789062" xlink:href="#DejaVuSans-109"/> + <use x="631.201172" xlink:href="#DejaVuSans-112"/> + <use x="694.677734" xlink:href="#DejaVuSans-97"/> + <use x="755.957031" xlink:href="#DejaVuSans-114"/> + <use x="797.070312" xlink:href="#DejaVuSans-105"/> + <use x="824.853516" xlink:href="#DejaVuSans-115"/> + <use x="876.953125" xlink:href="#DejaVuSans-111"/> + <use x="938.134766" xlink:href="#DejaVuSans-110"/> + <use x="1001.513672" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_41"> + <path d="M 591.474687 967.212813 +L 643.474687 967.212813 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_42"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="617.474687" xlink:href="#m03aac7ac32" y="967.212813"/> + </g> + </g> + <g id="text_21"> + <!-- Smooth links --> + <g transform="translate(664.274687 976.312813)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-108"/> + <use x="445.410156" xlink:href="#DejaVuSans-105"/> + <use x="473.193359" xlink:href="#DejaVuSans-110"/> + <use x="536.572266" xlink:href="#DejaVuSans-107"/> + <use x="594.482422" xlink:href="#DejaVuSans-115"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p5cf37d5ae6"> + <rect height="997.92" width="892.8" x="68.813125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-sorting-sep-new.pdf b/plots/paper-sorting-sep-new.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dc44e2660adf3a3a31377af06dda7766f3b978d8 Binary files /dev/null and b/plots/paper-sorting-sep-new.pdf differ diff --git a/plots/paper-sorting-sep-new.svg b/plots/paper-sorting-sep-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..afc1a0c462ddea1321bc3cdcc99373c4abd1c618 --- /dev/null +++ b/plots/paper-sorting-sep-new.svg @@ -0,0 +1,1533 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 975.169375 1067.839375" width="975.169375pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 975.169375 1067.839375 +L 975.169375 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 75.169375 1005.12 +L 967.969375 1005.12 +L 967.969375 7.2 +L 75.169375 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="PolyCollection_1"> + <defs> + <path d="M 115.751193 -411.068509 +L 115.751193 -173.005618 +L 115.850282 -281.216023 +L 116.04846 -324.500185 +L 116.444815 -451.647411 +L 117.237525 -631.547209 +L 118.822946 -717.439218 +L 121.993788 -739.419456 +L 128.335471 -791.495714 +L 141.018837 -816.012133 +L 166.38557 -861.959286 +L 217.119036 -850.905762 +L 318.585967 -868.976054 +L 521.519831 -876.352115 +L 927.387557 -869.713132 +L 927.387557 -1015.279375 +L 927.387557 -1015.279375 +L 521.519831 -1013.073426 +L 318.585967 -1012.936049 +L 217.119036 -986.633735 +L 166.38557 -996.841865 +L 141.018837 -965.393216 +L 128.335471 -944.511989 +L 121.993788 -909.174529 +L 118.822946 -889.899551 +L 117.237525 -831.736458 +L 116.444815 -770.868105 +L 116.04846 -697.826082 +L 115.850282 -584.205157 +L 115.751193 -411.068509 +z +" id="mcd7d55bcb6" style="stroke:#fe4d4e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#mcd7d55bcb6" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_2"> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#mcd7d55bcb6" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_3"> + <defs> + <path d="M 115.751193 -411.068509 +L 115.751193 -173.005618 +L 115.850282 -237.931861 +L 116.04846 -481.405272 +L 116.444815 -532.805214 +L 117.237525 -623.431428 +L 118.822946 -739.081299 +L 121.993788 -727.922101 +L 128.335471 -799.273336 +L 141.018837 -833.511785 +L 166.38557 -870.117336 +L 217.119036 -870.159606 +L 318.585967 -883.305479 +L 521.519831 -890.010509 +L 927.387557 -894.578277 +L 927.387557 -899.801225 +L 927.387557 -899.801225 +L 521.519831 -897.30203 +L 318.585967 -894.115952 +L 217.119036 -893.217721 +L 166.38557 -889.350045 +L 141.018837 -883.897255 +L 128.335471 -866.566682 +L 121.993788 -845.939074 +L 118.822946 -818.210157 +L 117.237525 -784.394406 +L 116.444815 -749.226024 +L 116.04846 -638.310359 +L 115.850282 -573.384116 +L 115.751193 -411.068509 +z +" id="m04a5b8eb3d" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m04a5b8eb3d" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_4"> + <defs> + <path d="M 115.751193 -237.931861 +L 115.751193 -108.079375 +L 115.850282 -118.900415 +L 116.04846 -264.984462 +L 116.444815 -313.679144 +L 117.237525 -359.668566 +L 118.822946 -400.247468 +L 121.993788 -409.039564 +L 128.335471 -442.179 +L 141.018837 -459.594112 +L 166.38557 -474.303964 +L 217.119036 -476.565393 +L 318.585967 -481.204491 +L 521.519831 -482.858293 +L 927.387557 -485.777543 +L 927.387557 -487.293968 +L 927.387557 -487.293968 +L 521.519831 -487.391717 +L 318.585967 -486.139477 +L 217.119036 -486.604444 +L 166.38557 -485.674511 +L 141.018837 -482.926981 +L 128.335471 -477.516461 +L 121.993788 -468.555286 +L 118.822946 -460.439506 +L 117.237525 -443.53163 +L 116.444815 -424.594809 +L 116.04846 -384.015908 +L 115.850282 -346.142266 +L 115.751193 -237.931861 +z +" id="m4a97fdd758" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m4a97fdd758" y="1067.839375"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p6dc0f1428c)" d="M 115.652104 1005.12 +L 115.652104 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m7b6a80f6d4" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="115.652104" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(109.289604 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p6dc0f1428c)" d="M 239.513105 1005.12 +L 239.513105 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="239.513105" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 20000 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(207.700605 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p6dc0f1428c)" d="M 363.374105 1005.12 +L 363.374105 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="363.374105" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 40000 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(331.561605 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p6dc0f1428c)" d="M 487.235106 1005.12 +L 487.235106 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="487.235106" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 60000 --> + <defs> + <path d="M 33.015625 40.375 +Q 26.375 40.375 22.484375 35.828125 +Q 18.609375 31.296875 18.609375 23.390625 +Q 18.609375 15.53125 22.484375 10.953125 +Q 26.375 6.390625 33.015625 6.390625 +Q 39.65625 6.390625 43.53125 10.953125 +Q 47.40625 15.53125 47.40625 23.390625 +Q 47.40625 31.296875 43.53125 35.828125 +Q 39.65625 40.375 33.015625 40.375 +z +M 52.59375 71.296875 +L 52.59375 62.3125 +Q 48.875 64.0625 45.09375 64.984375 +Q 41.3125 65.921875 37.59375 65.921875 +Q 27.828125 65.921875 22.671875 59.328125 +Q 17.53125 52.734375 16.796875 39.40625 +Q 19.671875 43.65625 24.015625 45.921875 +Q 28.375 48.1875 33.59375 48.1875 +Q 44.578125 48.1875 50.953125 41.515625 +Q 57.328125 34.859375 57.328125 23.390625 +Q 57.328125 12.15625 50.6875 5.359375 +Q 44.046875 -1.421875 33.015625 -1.421875 +Q 20.359375 -1.421875 13.671875 8.265625 +Q 6.984375 17.96875 6.984375 36.375 +Q 6.984375 53.65625 15.1875 63.9375 +Q 23.390625 74.21875 37.203125 74.21875 +Q 40.921875 74.21875 44.703125 73.484375 +Q 48.484375 72.75 52.59375 71.296875 +z +" id="DejaVuSans-54"/> + </defs> + <g transform="translate(455.422606 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-54"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p6dc0f1428c)" d="M 611.096106 1005.12 +L 611.096106 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="611.096106" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 80000 --> + <defs> + <path d="M 31.78125 34.625 +Q 24.75 34.625 20.71875 30.859375 +Q 16.703125 27.09375 16.703125 20.515625 +Q 16.703125 13.921875 20.71875 10.15625 +Q 24.75 6.390625 31.78125 6.390625 +Q 38.8125 6.390625 42.859375 10.171875 +Q 46.921875 13.96875 46.921875 20.515625 +Q 46.921875 27.09375 42.890625 30.859375 +Q 38.875 34.625 31.78125 34.625 +z +M 21.921875 38.8125 +Q 15.578125 40.375 12.03125 44.71875 +Q 8.5 49.078125 8.5 55.328125 +Q 8.5 64.0625 14.71875 69.140625 +Q 20.953125 74.21875 31.78125 74.21875 +Q 42.671875 74.21875 48.875 69.140625 +Q 55.078125 64.0625 55.078125 55.328125 +Q 55.078125 49.078125 51.53125 44.71875 +Q 48 40.375 41.703125 38.8125 +Q 48.828125 37.15625 52.796875 32.3125 +Q 56.78125 27.484375 56.78125 20.515625 +Q 56.78125 9.90625 50.3125 4.234375 +Q 43.84375 -1.421875 31.78125 -1.421875 +Q 19.734375 -1.421875 13.25 4.234375 +Q 6.78125 9.90625 6.78125 20.515625 +Q 6.78125 27.484375 10.78125 32.3125 +Q 14.796875 37.15625 21.921875 38.8125 +z +M 18.3125 54.390625 +Q 18.3125 48.734375 21.84375 45.5625 +Q 25.390625 42.390625 31.78125 42.390625 +Q 38.140625 42.390625 41.71875 45.5625 +Q 45.3125 48.734375 45.3125 54.390625 +Q 45.3125 60.0625 41.71875 63.234375 +Q 38.140625 66.40625 31.78125 66.40625 +Q 25.390625 66.40625 21.84375 63.234375 +Q 18.3125 60.0625 18.3125 54.390625 +z +" id="DejaVuSans-56"/> + </defs> + <g transform="translate(579.283606 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-56"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#p6dc0f1428c)" d="M 734.957107 1005.12 +L 734.957107 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="734.957107" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 100000 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(696.782107 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + <use x="318.115234" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_7"> + <g id="line2d_13"> + <path clip-path="url(#p6dc0f1428c)" d="M 858.818107 1005.12 +L 858.818107 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="858.818107" xlink:href="#m7b6a80f6d4" y="1005.12"/> + </g> + </g> + <g id="text_7"> + <!-- 120000 --> + <g transform="translate(820.643107 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + <use x="318.115234" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_8"> + <!-- Input size --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-73"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path id="DejaVuSans-32"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 5.515625 54.6875 +L 48.1875 54.6875 +L 48.1875 46.484375 +L 14.40625 7.171875 +L 48.1875 7.171875 +L 48.1875 0 +L 4.296875 0 +L 4.296875 8.203125 +L 38.09375 47.515625 +L 5.515625 47.515625 +z +" id="DejaVuSans-122"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + </defs> + <g transform="translate(458.570156 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-112"/> + <use x="156.347656" xlink:href="#DejaVuSans-117"/> + <use x="219.726562" xlink:href="#DejaVuSans-116"/> + <use x="258.935547" xlink:href="#DejaVuSans-32"/> + <use x="290.722656" xlink:href="#DejaVuSans-115"/> + <use x="342.822266" xlink:href="#DejaVuSans-105"/> + <use x="370.605469" xlink:href="#DejaVuSans-122"/> + <use x="423.095703" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_15"> + <path clip-path="url(#p6dc0f1428c)" d="M 75.169375 1003.044162 +L 967.969375 1003.044162 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="mbeef1ee9fb" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="75.169375" xlink:href="#mbeef1ee9fb" y="1003.044162"/> + </g> + </g> + <g id="text_9"> + <!-- 1.0 --> + <defs> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="DejaVuSans-46"/> + </defs> + <g transform="translate(36.363125 1010.642599)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_17"> + <path clip-path="url(#p6dc0f1428c)" d="M 75.169375 829.907514 +L 967.969375 829.907514 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="75.169375" xlink:href="#mbeef1ee9fb" y="829.907514"/> + </g> + </g> + <g id="text_10"> + <!-- 1.5 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(36.363125 837.505952)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_19"> + <path clip-path="url(#p6dc0f1428c)" d="M 75.169375 656.770866 +L 967.969375 656.770866 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="75.169375" xlink:href="#mbeef1ee9fb" y="656.770866"/> + </g> + </g> + <g id="text_11"> + <!-- 2.0 --> + <g transform="translate(36.363125 664.369304)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_21"> + <path clip-path="url(#p6dc0f1428c)" d="M 75.169375 483.634218 +L 967.969375 483.634218 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="75.169375" xlink:href="#mbeef1ee9fb" y="483.634218"/> + </g> + </g> + <g id="text_12"> + <!-- 2.5 --> + <g transform="translate(36.363125 491.232656)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_23"> + <path clip-path="url(#p6dc0f1428c)" d="M 75.169375 310.49757 +L 967.969375 310.49757 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="75.169375" xlink:href="#mbeef1ee9fb" y="310.49757"/> + </g> + </g> + <g id="text_13"> + <!-- 3.0 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +z +" id="DejaVuSans-51"/> + </defs> + <g transform="translate(36.363125 318.096008)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_25"> + <path clip-path="url(#p6dc0f1428c)" d="M 75.169375 137.360923 +L 967.969375 137.360923 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_26"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="75.169375" xlink:href="#mbeef1ee9fb" y="137.360923"/> + </g> + </g> + <g id="text_14"> + <!-- 3.5 --> + <g transform="translate(36.363125 144.95936)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-51"/> + <use x="63.623047" xlink:href="#DejaVuSans-46"/> + <use x="95.410156" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="text_15"> + <!-- Avg. number of operations / size --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="DejaVuSans-65"/> + <path d="M 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 8.796875 +L 46.6875 54.6875 +L 56.203125 54.6875 +L 35.6875 0 +L 23.484375 0 +z +" id="DejaVuSans-118"/> + <path d="M 45.40625 27.984375 +Q 45.40625 37.75 41.375 43.109375 +Q 37.359375 48.484375 30.078125 48.484375 +Q 22.859375 48.484375 18.828125 43.109375 +Q 14.796875 37.75 14.796875 27.984375 +Q 14.796875 18.265625 18.828125 12.890625 +Q 22.859375 7.515625 30.078125 7.515625 +Q 37.359375 7.515625 41.375 12.890625 +Q 45.40625 18.265625 45.40625 27.984375 +z +M 54.390625 6.78125 +Q 54.390625 -7.171875 48.1875 -13.984375 +Q 42 -20.796875 29.203125 -20.796875 +Q 24.46875 -20.796875 20.265625 -20.09375 +Q 16.0625 -19.390625 12.109375 -17.921875 +L 12.109375 -9.1875 +Q 16.0625 -11.328125 19.921875 -12.34375 +Q 23.78125 -13.375 27.78125 -13.375 +Q 36.625 -13.375 41.015625 -8.765625 +Q 45.40625 -4.15625 45.40625 5.171875 +L 45.40625 9.625 +Q 42.625 4.78125 38.28125 2.390625 +Q 33.9375 0 27.875 0 +Q 17.828125 0 11.671875 7.65625 +Q 5.515625 15.328125 5.515625 27.984375 +Q 5.515625 40.671875 11.671875 48.328125 +Q 17.828125 56 27.875 56 +Q 33.9375 56 38.28125 53.609375 +Q 42.625 51.21875 45.40625 46.390625 +L 45.40625 54.6875 +L 54.390625 54.6875 +z +" id="DejaVuSans-103"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +M 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +z +" id="DejaVuSans-98"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 37.109375 75.984375 +L 37.109375 68.5 +L 28.515625 68.5 +Q 23.6875 68.5 21.796875 66.546875 +Q 19.921875 64.59375 19.921875 59.515625 +L 19.921875 54.6875 +L 34.71875 54.6875 +L 34.71875 47.703125 +L 19.921875 47.703125 +L 19.921875 0 +L 10.890625 0 +L 10.890625 47.703125 +L 2.296875 47.703125 +L 2.296875 54.6875 +L 10.890625 54.6875 +L 10.890625 58.5 +Q 10.890625 67.625 15.140625 71.796875 +Q 19.390625 75.984375 28.609375 75.984375 +z +" id="DejaVuSans-102"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + <path d="M 25.390625 72.90625 +L 33.6875 72.90625 +L 8.296875 -9.28125 +L 0 -9.28125 +z +" id="DejaVuSans-47"/> + </defs> + <g transform="translate(26.955937 717.06875)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-110"/> + <use x="312.142578" xlink:href="#DejaVuSans-117"/> + <use x="375.521484" xlink:href="#DejaVuSans-109"/> + <use x="472.933594" xlink:href="#DejaVuSans-98"/> + <use x="536.410156" xlink:href="#DejaVuSans-101"/> + <use x="597.933594" xlink:href="#DejaVuSans-114"/> + <use x="639.046875" xlink:href="#DejaVuSans-32"/> + <use x="670.833984" xlink:href="#DejaVuSans-111"/> + <use x="732.015625" xlink:href="#DejaVuSans-102"/> + <use x="767.220703" xlink:href="#DejaVuSans-32"/> + <use x="799.007812" xlink:href="#DejaVuSans-111"/> + <use x="860.189453" xlink:href="#DejaVuSans-112"/> + <use x="923.666016" xlink:href="#DejaVuSans-101"/> + <use x="985.189453" xlink:href="#DejaVuSans-114"/> + <use x="1026.302734" xlink:href="#DejaVuSans-97"/> + <use x="1087.582031" xlink:href="#DejaVuSans-116"/> + <use x="1126.791016" xlink:href="#DejaVuSans-105"/> + <use x="1154.574219" xlink:href="#DejaVuSans-111"/> + <use x="1215.755859" xlink:href="#DejaVuSans-110"/> + <use x="1279.134766" xlink:href="#DejaVuSans-115"/> + <use x="1331.234375" xlink:href="#DejaVuSans-32"/> + <use x="1363.021484" xlink:href="#DejaVuSans-47"/> + <use x="1396.712891" xlink:href="#DejaVuSans-32"/> + <use x="1428.5" xlink:href="#DejaVuSans-115"/> + <use x="1480.599609" xlink:href="#DejaVuSans-105"/> + <use x="1508.382812" xlink:href="#DejaVuSans-122"/> + <use x="1560.873047" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="line2d_27"> + <path clip-path="url(#p6dc0f1428c)" d="M 115.751193 770.391791 +L 115.850282 568.579386 +L 116.04846 472.272126 +L 116.444815 408.969039 +L 117.237525 302.043633 +L 118.822946 251.353821 +L 121.993788 230.810752 +L 128.335471 195.143588 +L 141.018837 181.811728 +L 166.38557 158.595101 +L 217.119036 144.304776 +L 318.585967 138.51647 +L 521.519831 129.024283 +L 927.387557 113.730449 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 4.5 +C 1.193414 4.5 2.338109 4.025852 3.181981 3.181981 +C 4.025852 2.338109 4.5 1.193414 4.5 0 +C 4.5 -1.193414 4.025852 -2.338109 3.181981 -3.181981 +C 2.338109 -4.025852 1.193414 -4.5 0 -4.5 +C -1.193414 -4.5 -2.338109 -4.025852 -3.181981 -3.181981 +C -4.025852 -2.338109 -4.5 -1.193414 -4.5 0 +C -4.5 1.193414 -4.025852 2.338109 -3.181981 3.181981 +C -2.338109 4.025852 -1.193414 4.5 0 4.5 +z +" id="mafa4823ef7" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#fe0002;stroke:#000000;" x="115.751193" xlink:href="#mafa4823ef7" y="770.391791"/> + <use style="fill:#fe0002;stroke:#000000;" x="115.850282" xlink:href="#mafa4823ef7" y="568.579386"/> + <use style="fill:#fe0002;stroke:#000000;" x="116.04846" xlink:href="#mafa4823ef7" y="472.272126"/> + <use style="fill:#fe0002;stroke:#000000;" x="116.444815" xlink:href="#mafa4823ef7" y="408.969039"/> + <use style="fill:#fe0002;stroke:#000000;" x="117.237525" xlink:href="#mafa4823ef7" y="302.043633"/> + <use style="fill:#fe0002;stroke:#000000;" x="118.822946" xlink:href="#mafa4823ef7" y="251.353821"/> + <use style="fill:#fe0002;stroke:#000000;" x="121.993788" xlink:href="#mafa4823ef7" y="230.810752"/> + <use style="fill:#fe0002;stroke:#000000;" x="128.335471" xlink:href="#mafa4823ef7" y="195.143588"/> + <use style="fill:#fe0002;stroke:#000000;" x="141.018837" xlink:href="#mafa4823ef7" y="181.811728"/> + <use style="fill:#fe0002;stroke:#000000;" x="166.38557" xlink:href="#mafa4823ef7" y="158.595101"/> + <use style="fill:#fe0002;stroke:#000000;" x="217.119036" xlink:href="#mafa4823ef7" y="144.304776"/> + <use style="fill:#fe0002;stroke:#000000;" x="318.585967" xlink:href="#mafa4823ef7" y="138.51647"/> + <use style="fill:#fe0002;stroke:#000000;" x="521.519831" xlink:href="#mafa4823ef7" y="129.024283"/> + <use style="fill:#fe0002;stroke:#000000;" x="927.387557" xlink:href="#mafa4823ef7" y="113.730449"/> + </g> + </g> + <g id="line2d_28"> + <path clip-path="url(#p6dc0f1428c)" d="M 115.751193 770.391791 +L 115.850282 568.579386 +L 116.04846 472.272126 +L 116.444815 408.969039 +L 117.237525 302.043633 +L 118.822946 251.353821 +L 121.993788 230.810752 +L 128.335471 195.143588 +L 141.018837 181.811728 +L 166.38557 158.595101 +L 217.119036 144.304776 +L 318.585967 138.51647 +L 521.519831 129.024283 +L 927.387557 113.730449 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#fe0002;stroke:#000000;" x="115.751193" xlink:href="#mafa4823ef7" y="770.391791"/> + <use style="fill:#fe0002;stroke:#000000;" x="115.850282" xlink:href="#mafa4823ef7" y="568.579386"/> + <use style="fill:#fe0002;stroke:#000000;" x="116.04846" xlink:href="#mafa4823ef7" y="472.272126"/> + <use style="fill:#fe0002;stroke:#000000;" x="116.444815" xlink:href="#mafa4823ef7" y="408.969039"/> + <use style="fill:#fe0002;stroke:#000000;" x="117.237525" xlink:href="#mafa4823ef7" y="302.043633"/> + <use style="fill:#fe0002;stroke:#000000;" x="118.822946" xlink:href="#mafa4823ef7" y="251.353821"/> + <use style="fill:#fe0002;stroke:#000000;" x="121.993788" xlink:href="#mafa4823ef7" y="230.810752"/> + <use style="fill:#fe0002;stroke:#000000;" x="128.335471" xlink:href="#mafa4823ef7" y="195.143588"/> + <use style="fill:#fe0002;stroke:#000000;" x="141.018837" xlink:href="#mafa4823ef7" y="181.811728"/> + <use style="fill:#fe0002;stroke:#000000;" x="166.38557" xlink:href="#mafa4823ef7" y="158.595101"/> + <use style="fill:#fe0002;stroke:#000000;" x="217.119036" xlink:href="#mafa4823ef7" y="144.304776"/> + <use style="fill:#fe0002;stroke:#000000;" x="318.585967" xlink:href="#mafa4823ef7" y="138.51647"/> + <use style="fill:#fe0002;stroke:#000000;" x="521.519831" xlink:href="#mafa4823ef7" y="129.024283"/> + <use style="fill:#fe0002;stroke:#000000;" x="927.387557" xlink:href="#mafa4823ef7" y="113.730449"/> + </g> + </g> + <g id="line2d_29"> + <path clip-path="url(#p6dc0f1428c)" d="M 115.751193 756.324439 +L 115.850282 618.897224 +L 116.04846 477.953172 +L 116.444815 392.602215 +L 117.237525 333.898071 +L 118.822946 278.98129 +L 121.993788 247.262115 +L 128.335471 223.46428 +L 141.018837 207.401798 +L 166.38557 188.329714 +L 217.119036 181.845544 +L 318.585967 177.944051 +L 521.519831 173.291215 +L 927.387557 170.502473 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 -4.5 +L -4.5 4.5 +L 4.5 4.5 +z +" id="md490b725f3" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="115.751193" xlink:href="#md490b725f3" y="756.324439"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="115.850282" xlink:href="#md490b725f3" y="618.897224"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="116.04846" xlink:href="#md490b725f3" y="477.953172"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="116.444815" xlink:href="#md490b725f3" y="392.602215"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="117.237525" xlink:href="#md490b725f3" y="333.898071"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="118.822946" xlink:href="#md490b725f3" y="278.98129"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="121.993788" xlink:href="#md490b725f3" y="247.262115"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="128.335471" xlink:href="#md490b725f3" y="223.46428"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="141.018837" xlink:href="#md490b725f3" y="207.401798"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="166.38557" xlink:href="#md490b725f3" y="188.329714"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="217.119036" xlink:href="#md490b725f3" y="181.845544"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="318.585967" xlink:href="#md490b725f3" y="177.944051"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="521.519831" xlink:href="#md490b725f3" y="173.291215"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="927.387557" xlink:href="#md490b725f3" y="170.502473"/> + </g> + </g> + <g id="line2d_30"> + <path clip-path="url(#p6dc0f1428c)" d="M 115.751193 886.176925 +L 115.850282 812.593849 +L 116.04846 725.754999 +L 116.444815 683.011889 +L 117.237525 661.43744 +L 118.822946 629.988791 +L 121.993788 612.150982 +L 128.335471 602.800927 +L 141.018837 595.657349 +L 166.38557 587.287951 +L 217.119036 584.958891 +L 318.585967 583.584069 +L 521.519831 582.090892 +L 927.387557 581.281692 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <defs> + <path d="M -0 6.363961 +L 6.363961 0 +L 0 -6.363961 +L -6.363961 -0 +z +" id="m551d150f30" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p6dc0f1428c)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="115.751193" xlink:href="#m551d150f30" y="886.176925"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="115.850282" xlink:href="#m551d150f30" y="812.593849"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="116.04846" xlink:href="#m551d150f30" y="725.754999"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="116.444815" xlink:href="#m551d150f30" y="683.011889"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="117.237525" xlink:href="#m551d150f30" y="661.43744"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="118.822946" xlink:href="#m551d150f30" y="629.988791"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="121.993788" xlink:href="#m551d150f30" y="612.150982"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="128.335471" xlink:href="#m551d150f30" y="602.800927"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="141.018837" xlink:href="#m551d150f30" y="595.657349"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="166.38557" xlink:href="#m551d150f30" y="587.287951"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="217.119036" xlink:href="#m551d150f30" y="584.958891"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="318.585967" xlink:href="#m551d150f30" y="583.584069"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="521.519831" xlink:href="#m551d150f30" y="582.090892"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="927.387557" xlink:href="#m551d150f30" y="581.281692"/> + </g> + </g> + <g id="patch_3"> + <path d="M 75.169375 1005.12 +L 75.169375 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 967.969375 1005.12 +L 967.969375 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 75.169375 1005.12 +L 967.969375 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 75.169375 7.2 +L 967.969375 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 592.630937 992.12 +L 949.769375 992.12 +Q 954.969375 992.12 954.969375 986.92 +L 954.969375 836.8675 +Q 954.969375 831.6675 949.769375 831.6675 +L 592.630937 831.6675 +Q 587.430937 831.6675 587.430937 836.8675 +L 587.430937 986.92 +Q 587.430937 992.12 592.630937 992.12 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_31"> + <path d="M 597.830937 852.723437 +L 649.830937 852.723437 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_32"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="623.830937" xlink:href="#mafa4823ef7" y="852.723437"/> + </g> + </g> + <g id="text_16"> + <!-- Pairing comparisons --> + <defs> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-80"/> + <path d="M 48.78125 52.59375 +L 48.78125 44.1875 +Q 44.96875 46.296875 41.140625 47.34375 +Q 37.3125 48.390625 33.40625 48.390625 +Q 24.65625 48.390625 19.8125 42.84375 +Q 14.984375 37.3125 14.984375 27.296875 +Q 14.984375 17.28125 19.8125 11.734375 +Q 24.65625 6.203125 33.40625 6.203125 +Q 37.3125 6.203125 41.140625 7.25 +Q 44.96875 8.296875 48.78125 10.40625 +L 48.78125 2.09375 +Q 45.015625 0.34375 40.984375 -0.53125 +Q 36.96875 -1.421875 32.421875 -1.421875 +Q 20.0625 -1.421875 12.78125 6.34375 +Q 5.515625 14.109375 5.515625 27.296875 +Q 5.515625 40.671875 12.859375 48.328125 +Q 20.21875 56 33.015625 56 +Q 37.15625 56 41.109375 55.140625 +Q 45.0625 54.296875 48.78125 52.59375 +z +" id="DejaVuSans-99"/> + </defs> + <g transform="translate(670.630937 861.823437)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-99"/> + <use x="427.384766" xlink:href="#DejaVuSans-111"/> + <use x="488.566406" xlink:href="#DejaVuSans-109"/> + <use x="585.978516" xlink:href="#DejaVuSans-112"/> + <use x="649.455078" xlink:href="#DejaVuSans-97"/> + <use x="710.734375" xlink:href="#DejaVuSans-114"/> + <use x="751.847656" xlink:href="#DejaVuSans-105"/> + <use x="779.630859" xlink:href="#DejaVuSans-115"/> + <use x="831.730469" xlink:href="#DejaVuSans-111"/> + <use x="892.912109" xlink:href="#DejaVuSans-110"/> + <use x="956.291016" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_33"> + <path d="M 597.830937 890.886562 +L 649.830937 890.886562 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_34"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="623.830937" xlink:href="#mafa4823ef7" y="890.886562"/> + </g> + </g> + <g id="text_17"> + <!-- Pairing links --> + <defs> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + <path d="M 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 31.109375 +L 44.921875 54.6875 +L 56.390625 54.6875 +L 27.390625 29.109375 +L 57.625 0 +L 45.90625 0 +L 18.109375 26.703125 +L 18.109375 0 +L 9.078125 0 +z +" id="DejaVuSans-107"/> + </defs> + <g transform="translate(670.630937 899.986562)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-108"/> + <use x="400.1875" xlink:href="#DejaVuSans-105"/> + <use x="427.970703" xlink:href="#DejaVuSans-110"/> + <use x="491.349609" xlink:href="#DejaVuSans-107"/> + <use x="549.259766" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_35"> + <path d="M 597.830937 929.049688 +L 649.830937 929.049688 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_36"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="623.830937" xlink:href="#md490b725f3" y="929.049688"/> + </g> + </g> + <g id="text_18"> + <!-- Smooth comparisons --> + <defs> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +z +" id="DejaVuSans-83"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-104"/> + </defs> + <g transform="translate(670.630937 938.149688)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-99"/> + <use x="472.607422" xlink:href="#DejaVuSans-111"/> + <use x="533.789062" xlink:href="#DejaVuSans-109"/> + <use x="631.201172" xlink:href="#DejaVuSans-112"/> + <use x="694.677734" xlink:href="#DejaVuSans-97"/> + <use x="755.957031" xlink:href="#DejaVuSans-114"/> + <use x="797.070312" xlink:href="#DejaVuSans-105"/> + <use x="824.853516" xlink:href="#DejaVuSans-115"/> + <use x="876.953125" xlink:href="#DejaVuSans-111"/> + <use x="938.134766" xlink:href="#DejaVuSans-110"/> + <use x="1001.513672" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_37"> + <path d="M 597.830937 967.212813 +L 649.830937 967.212813 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_38"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="623.830937" xlink:href="#m551d150f30" y="967.212813"/> + </g> + </g> + <g id="text_19"> + <!-- Smooth links --> + <g transform="translate(670.630937 976.312813)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-108"/> + <use x="445.410156" xlink:href="#DejaVuSans-105"/> + <use x="473.193359" xlink:href="#DejaVuSans-110"/> + <use x="536.572266" xlink:href="#DejaVuSans-107"/> + <use x="594.482422" xlink:href="#DejaVuSans-115"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p6dc0f1428c"> + <rect height="997.92" width="892.8" x="75.169375" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-sorting-subseq-new.pdf b/plots/paper-sorting-subseq-new.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ce1f9e424fb1cedb1b0c2b6e211d8d844d5fd4ad Binary files /dev/null and b/plots/paper-sorting-subseq-new.pdf differ diff --git a/plots/paper-sorting-subseq-new.svg b/plots/paper-sorting-subseq-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..914ebc9bf5497aff1dd8a61f9507bae94e5ca743 --- /dev/null +++ b/plots/paper-sorting-subseq-new.svg @@ -0,0 +1,1532 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 968.813125 1067.839375" width="968.813125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 968.813125 1067.839375 +L 968.813125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +L 961.613125 7.2 +L 68.813125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="PolyCollection_1"> + <defs> + <path d="M 109.394943 -481.408464 +L 109.394943 -405.619023 +L 154.485852 -396.545922 +L 199.576761 -422.513419 +L 244.66767 -418.367432 +L 289.75858 -447.609658 +L 334.849489 -461.21931 +L 379.940398 -463.893171 +L 425.031307 -479.4256 +L 470.122216 -498.863669 +L 515.213125 -522.187348 +L 560.304034 -530.379177 +L 605.394943 -559.741577 +L 650.485852 -594.181308 +L 695.576761 -614.029969 +L 740.66767 -652.28521 +L 785.75858 -685.82364 +L 830.849489 -745.960478 +L 875.940398 -813.387843 +L 921.031307 -925.750094 +L 921.031307 -945.979305 +L 921.031307 -945.979305 +L 875.940398 -828.820127 +L 830.849489 -774.681951 +L 785.75858 -740.021902 +L 740.66767 -689.52899 +L 695.576761 -653.146454 +L 650.485852 -642.981776 +L 605.394943 -607.981235 +L 560.304034 -601.521908 +L 515.213125 -581.072379 +L 470.122216 -561.273789 +L 425.031307 -556.937528 +L 379.940398 -567.392625 +L 334.849489 -535.847073 +L 289.75858 -531.991506 +L 244.66767 -524.710993 +L 199.576761 -496.029576 +L 154.485852 -488.408572 +L 109.394943 -481.408464 +z +" id="m0f102e16dd" style="stroke:#fe4d4e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m0f102e16dd" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_2"> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m0f102e16dd" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_3"> + <defs> + <path d="M 109.394943 -391.538691 +L 109.394943 -292.776078 +L 154.485852 -293.607278 +L 199.576761 -294.748926 +L 244.66767 -298.995058 +L 289.75858 -335.127233 +L 334.849489 -358.300695 +L 379.940398 -356.007384 +L 425.031307 -373.873182 +L 470.122216 -400.091041 +L 515.213125 -430.925566 +L 560.304034 -441.831314 +L 605.394943 -475.850438 +L 650.485852 -526.483552 +L 695.576761 -555.815908 +L 740.66767 -603.61493 +L 785.75858 -656.581414 +L 830.849489 -721.965829 +L 875.940398 -826.907365 +L 921.031307 -975.051285 +L 921.031307 -1015.279375 +L 921.031307 -1015.279375 +L 875.940398 -851.653098 +L 830.849489 -767.301294 +L 785.75858 -725.921541 +L 740.66767 -658.494176 +L 695.576761 -607.961206 +L 650.485852 -595.993925 +L 605.394943 -552.591252 +L 560.304034 -532.171766 +L 515.213125 -514.776647 +L 470.122216 -484.352715 +L 425.031307 -483.191038 +L 379.940398 -497.792122 +L 334.849489 -447.279181 +L 289.75858 -448.120395 +L 244.66767 -439.047294 +L 199.576761 -408.342957 +L 154.485852 -393.721844 +L 109.394943 -391.538691 +z +" id="mc4c843beec" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#mc4c843beec" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_4"> + <defs> + <path d="M 109.394943 -170.7699 +L 109.394943 -111.934942 +L 154.485852 -108.079375 +L 199.576761 -116.62171 +L 244.66767 -113.09662 +L 289.75858 -138.533351 +L 334.849489 -150.791051 +L 379.940398 -146.865382 +L 425.031307 -162.267623 +L 470.122216 -176.878721 +L 515.213125 -191.940471 +L 560.304034 -198.92055 +L 605.394943 -218.69911 +L 650.485852 -246.419138 +L 695.576761 -263.8443 +L 740.66767 -288.900481 +L 785.75858 -317.191333 +L 830.849489 -353.413639 +L 875.940398 -407.912335 +L 921.031307 -485.063742 +L 921.031307 -505.513271 +L 921.031307 -505.513271 +L 875.940398 -421.241582 +L 830.849489 -376.647188 +L 785.75858 -355.386487 +L 740.66767 -317.782187 +L 695.576761 -292.095094 +L 650.485852 -284.644335 +L 605.394943 -260.900049 +L 560.304034 -251.015776 +L 515.213125 -239.078538 +L 470.122216 -224.347266 +L 425.031307 -222.434504 +L 379.940398 -233.280165 +L 334.849489 -202.455655 +L 289.75858 -202.125177 +L 244.66767 -197.899075 +L 199.576761 -180.283638 +L 154.485852 -170.549582 +L 109.394943 -170.7699 +z +" id="m4cc88fefd8" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m4cc88fefd8" y="1067.839375"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p3c6318dfca)" d="M 785.75858 1005.12 +L 785.75858 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m1314806446" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="785.75858" xlink:href="#m1314806446" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 2 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(779.39608 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p3c6318dfca)" d="M 605.394943 1005.12 +L 605.394943 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="605.394943" xlink:href="#m1314806446" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 4 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(599.032443 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p3c6318dfca)" d="M 425.031307 1005.12 +L 425.031307 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="425.031307" xlink:href="#m1314806446" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 6 --> + <defs> + <path d="M 33.015625 40.375 +Q 26.375 40.375 22.484375 35.828125 +Q 18.609375 31.296875 18.609375 23.390625 +Q 18.609375 15.53125 22.484375 10.953125 +Q 26.375 6.390625 33.015625 6.390625 +Q 39.65625 6.390625 43.53125 10.953125 +Q 47.40625 15.53125 47.40625 23.390625 +Q 47.40625 31.296875 43.53125 35.828125 +Q 39.65625 40.375 33.015625 40.375 +z +M 52.59375 71.296875 +L 52.59375 62.3125 +Q 48.875 64.0625 45.09375 64.984375 +Q 41.3125 65.921875 37.59375 65.921875 +Q 27.828125 65.921875 22.671875 59.328125 +Q 17.53125 52.734375 16.796875 39.40625 +Q 19.671875 43.65625 24.015625 45.921875 +Q 28.375 48.1875 33.59375 48.1875 +Q 44.578125 48.1875 50.953125 41.515625 +Q 57.328125 34.859375 57.328125 23.390625 +Q 57.328125 12.15625 50.6875 5.359375 +Q 44.046875 -1.421875 33.015625 -1.421875 +Q 20.359375 -1.421875 13.671875 8.265625 +Q 6.984375 17.96875 6.984375 36.375 +Q 6.984375 53.65625 15.1875 63.9375 +Q 23.390625 74.21875 37.203125 74.21875 +Q 40.921875 74.21875 44.703125 73.484375 +Q 48.484375 72.75 52.59375 71.296875 +z +" id="DejaVuSans-54"/> + </defs> + <g transform="translate(418.668807 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p3c6318dfca)" d="M 244.66767 1005.12 +L 244.66767 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="244.66767" xlink:href="#m1314806446" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 8 --> + <defs> + <path d="M 31.78125 34.625 +Q 24.75 34.625 20.71875 30.859375 +Q 16.703125 27.09375 16.703125 20.515625 +Q 16.703125 13.921875 20.71875 10.15625 +Q 24.75 6.390625 31.78125 6.390625 +Q 38.8125 6.390625 42.859375 10.171875 +Q 46.921875 13.96875 46.921875 20.515625 +Q 46.921875 27.09375 42.890625 30.859375 +Q 38.875 34.625 31.78125 34.625 +z +M 21.921875 38.8125 +Q 15.578125 40.375 12.03125 44.71875 +Q 8.5 49.078125 8.5 55.328125 +Q 8.5 64.0625 14.71875 69.140625 +Q 20.953125 74.21875 31.78125 74.21875 +Q 42.671875 74.21875 48.875 69.140625 +Q 55.078125 64.0625 55.078125 55.328125 +Q 55.078125 49.078125 51.53125 44.71875 +Q 48 40.375 41.703125 38.8125 +Q 48.828125 37.15625 52.796875 32.3125 +Q 56.78125 27.484375 56.78125 20.515625 +Q 56.78125 9.90625 50.3125 4.234375 +Q 43.84375 -1.421875 31.78125 -1.421875 +Q 19.734375 -1.421875 13.25 4.234375 +Q 6.78125 9.90625 6.78125 20.515625 +Q 6.78125 27.484375 10.78125 32.3125 +Q 14.796875 37.15625 21.921875 38.8125 +z +M 18.3125 54.390625 +Q 18.3125 48.734375 21.84375 45.5625 +Q 25.390625 42.390625 31.78125 42.390625 +Q 38.140625 42.390625 41.71875 45.5625 +Q 45.3125 48.734375 45.3125 54.390625 +Q 45.3125 60.0625 41.71875 63.234375 +Q 38.140625 66.40625 31.78125 66.40625 +Q 25.390625 66.40625 21.84375 63.234375 +Q 18.3125 60.0625 18.3125 54.390625 +z +" id="DejaVuSans-56"/> + </defs> + <g transform="translate(238.30517 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="text_5"> + <!-- Avg. length of sorted blocks, % of size --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="DejaVuSans-65"/> + <path d="M 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 8.796875 +L 46.6875 54.6875 +L 56.203125 54.6875 +L 35.6875 0 +L 23.484375 0 +z +" id="DejaVuSans-118"/> + <path d="M 45.40625 27.984375 +Q 45.40625 37.75 41.375 43.109375 +Q 37.359375 48.484375 30.078125 48.484375 +Q 22.859375 48.484375 18.828125 43.109375 +Q 14.796875 37.75 14.796875 27.984375 +Q 14.796875 18.265625 18.828125 12.890625 +Q 22.859375 7.515625 30.078125 7.515625 +Q 37.359375 7.515625 41.375 12.890625 +Q 45.40625 18.265625 45.40625 27.984375 +z +M 54.390625 6.78125 +Q 54.390625 -7.171875 48.1875 -13.984375 +Q 42 -20.796875 29.203125 -20.796875 +Q 24.46875 -20.796875 20.265625 -20.09375 +Q 16.0625 -19.390625 12.109375 -17.921875 +L 12.109375 -9.1875 +Q 16.0625 -11.328125 19.921875 -12.34375 +Q 23.78125 -13.375 27.78125 -13.375 +Q 36.625 -13.375 41.015625 -8.765625 +Q 45.40625 -4.15625 45.40625 5.171875 +L 45.40625 9.625 +Q 42.625 4.78125 38.28125 2.390625 +Q 33.9375 0 27.875 0 +Q 17.828125 0 11.671875 7.65625 +Q 5.515625 15.328125 5.515625 27.984375 +Q 5.515625 40.671875 11.671875 48.328125 +Q 17.828125 56 27.875 56 +Q 33.9375 56 38.28125 53.609375 +Q 42.625 51.21875 45.40625 46.390625 +L 45.40625 54.6875 +L 54.390625 54.6875 +z +" id="DejaVuSans-103"/> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="DejaVuSans-46"/> + <path id="DejaVuSans-32"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-104"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 37.109375 75.984375 +L 37.109375 68.5 +L 28.515625 68.5 +Q 23.6875 68.5 21.796875 66.546875 +Q 19.921875 64.59375 19.921875 59.515625 +L 19.921875 54.6875 +L 34.71875 54.6875 +L 34.71875 47.703125 +L 19.921875 47.703125 +L 19.921875 0 +L 10.890625 0 +L 10.890625 47.703125 +L 2.296875 47.703125 +L 2.296875 54.6875 +L 10.890625 54.6875 +L 10.890625 58.5 +Q 10.890625 67.625 15.140625 71.796875 +Q 19.390625 75.984375 28.609375 75.984375 +z +" id="DejaVuSans-102"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 45.40625 46.390625 +L 45.40625 75.984375 +L 54.390625 75.984375 +L 54.390625 0 +L 45.40625 0 +L 45.40625 8.203125 +Q 42.578125 3.328125 38.25 0.953125 +Q 33.9375 -1.421875 27.875 -1.421875 +Q 17.96875 -1.421875 11.734375 6.484375 +Q 5.515625 14.40625 5.515625 27.296875 +Q 5.515625 40.1875 11.734375 48.09375 +Q 17.96875 56 27.875 56 +Q 33.9375 56 38.25 53.625 +Q 42.578125 51.265625 45.40625 46.390625 +z +M 14.796875 27.296875 +Q 14.796875 17.390625 18.875 11.75 +Q 22.953125 6.109375 30.078125 6.109375 +Q 37.203125 6.109375 41.296875 11.75 +Q 45.40625 17.390625 45.40625 27.296875 +Q 45.40625 37.203125 41.296875 42.84375 +Q 37.203125 48.484375 30.078125 48.484375 +Q 22.953125 48.484375 18.875 42.84375 +Q 14.796875 37.203125 14.796875 27.296875 +z +" id="DejaVuSans-100"/> + <path d="M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +M 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +z +" id="DejaVuSans-98"/> + <path d="M 48.78125 52.59375 +L 48.78125 44.1875 +Q 44.96875 46.296875 41.140625 47.34375 +Q 37.3125 48.390625 33.40625 48.390625 +Q 24.65625 48.390625 19.8125 42.84375 +Q 14.984375 37.3125 14.984375 27.296875 +Q 14.984375 17.28125 19.8125 11.734375 +Q 24.65625 6.203125 33.40625 6.203125 +Q 37.3125 6.203125 41.140625 7.25 +Q 44.96875 8.296875 48.78125 10.40625 +L 48.78125 2.09375 +Q 45.015625 0.34375 40.984375 -0.53125 +Q 36.96875 -1.421875 32.421875 -1.421875 +Q 20.0625 -1.421875 12.78125 6.34375 +Q 5.515625 14.109375 5.515625 27.296875 +Q 5.515625 40.671875 12.859375 48.328125 +Q 20.21875 56 33.015625 56 +Q 37.15625 56 41.109375 55.140625 +Q 45.0625 54.296875 48.78125 52.59375 +z +" id="DejaVuSans-99"/> + <path d="M 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 31.109375 +L 44.921875 54.6875 +L 56.390625 54.6875 +L 27.390625 29.109375 +L 57.625 0 +L 45.90625 0 +L 18.109375 26.703125 +L 18.109375 0 +L 9.078125 0 +z +" id="DejaVuSans-107"/> + <path d="M 11.71875 12.40625 +L 22.015625 12.40625 +L 22.015625 4 +L 14.015625 -11.625 +L 7.71875 -11.625 +L 11.71875 4 +z +" id="DejaVuSans-44"/> + <path d="M 72.703125 32.078125 +Q 68.453125 32.078125 66.03125 28.46875 +Q 63.625 24.859375 63.625 18.40625 +Q 63.625 12.0625 66.03125 8.421875 +Q 68.453125 4.78125 72.703125 4.78125 +Q 76.859375 4.78125 79.265625 8.421875 +Q 81.6875 12.0625 81.6875 18.40625 +Q 81.6875 24.8125 79.265625 28.4375 +Q 76.859375 32.078125 72.703125 32.078125 +z +M 72.703125 38.28125 +Q 80.421875 38.28125 84.953125 32.90625 +Q 89.5 27.546875 89.5 18.40625 +Q 89.5 9.28125 84.9375 3.921875 +Q 80.375 -1.421875 72.703125 -1.421875 +Q 64.890625 -1.421875 60.34375 3.921875 +Q 55.8125 9.28125 55.8125 18.40625 +Q 55.8125 27.59375 60.375 32.9375 +Q 64.9375 38.28125 72.703125 38.28125 +z +M 22.3125 68.015625 +Q 18.109375 68.015625 15.6875 64.375 +Q 13.28125 60.75 13.28125 54.390625 +Q 13.28125 47.953125 15.671875 44.328125 +Q 18.0625 40.71875 22.3125 40.71875 +Q 26.5625 40.71875 28.96875 44.328125 +Q 31.390625 47.953125 31.390625 54.390625 +Q 31.390625 60.6875 28.953125 64.34375 +Q 26.515625 68.015625 22.3125 68.015625 +z +M 66.40625 74.21875 +L 74.21875 74.21875 +L 28.609375 -1.421875 +L 20.796875 -1.421875 +z +M 22.3125 74.21875 +Q 30.03125 74.21875 34.609375 68.875 +Q 39.203125 63.53125 39.203125 54.390625 +Q 39.203125 45.171875 34.640625 39.84375 +Q 30.078125 34.515625 22.3125 34.515625 +Q 14.546875 34.515625 10.03125 39.859375 +Q 5.515625 45.21875 5.515625 54.390625 +Q 5.515625 63.484375 10.046875 68.84375 +Q 14.59375 74.21875 22.3125 74.21875 +z +" id="DejaVuSans-37"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 5.515625 54.6875 +L 48.1875 54.6875 +L 48.1875 46.484375 +L 14.40625 7.171875 +L 48.1875 7.171875 +L 48.1875 0 +L 4.296875 0 +L 4.296875 8.203125 +L 38.09375 47.515625 +L 5.515625 47.515625 +z +" id="DejaVuSans-122"/> + </defs> + <g transform="translate(267.209687 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-108"/> + <use x="276.546875" xlink:href="#DejaVuSans-101"/> + <use x="338.070312" xlink:href="#DejaVuSans-110"/> + <use x="401.449219" xlink:href="#DejaVuSans-103"/> + <use x="464.925781" xlink:href="#DejaVuSans-116"/> + <use x="504.134766" xlink:href="#DejaVuSans-104"/> + <use x="567.513672" xlink:href="#DejaVuSans-32"/> + <use x="599.300781" xlink:href="#DejaVuSans-111"/> + <use x="660.482422" xlink:href="#DejaVuSans-102"/> + <use x="695.6875" xlink:href="#DejaVuSans-32"/> + <use x="727.474609" xlink:href="#DejaVuSans-115"/> + <use x="779.574219" xlink:href="#DejaVuSans-111"/> + <use x="840.755859" xlink:href="#DejaVuSans-114"/> + <use x="881.869141" xlink:href="#DejaVuSans-116"/> + <use x="921.078125" xlink:href="#DejaVuSans-101"/> + <use x="982.601562" xlink:href="#DejaVuSans-100"/> + <use x="1046.078125" xlink:href="#DejaVuSans-32"/> + <use x="1077.865234" xlink:href="#DejaVuSans-98"/> + <use x="1141.341797" xlink:href="#DejaVuSans-108"/> + <use x="1169.125" xlink:href="#DejaVuSans-111"/> + <use x="1230.306641" xlink:href="#DejaVuSans-99"/> + <use x="1285.287109" xlink:href="#DejaVuSans-107"/> + <use x="1343.197266" xlink:href="#DejaVuSans-115"/> + <use x="1395.296875" xlink:href="#DejaVuSans-44"/> + <use x="1427.083984" xlink:href="#DejaVuSans-32"/> + <use x="1458.871094" xlink:href="#DejaVuSans-37"/> + <use x="1553.890625" xlink:href="#DejaVuSans-32"/> + <use x="1585.677734" xlink:href="#DejaVuSans-111"/> + <use x="1646.859375" xlink:href="#DejaVuSans-102"/> + <use x="1682.064453" xlink:href="#DejaVuSans-32"/> + <use x="1713.851562" xlink:href="#DejaVuSans-115"/> + <use x="1765.951172" xlink:href="#DejaVuSans-105"/> + <use x="1793.734375" xlink:href="#DejaVuSans-122"/> + <use x="1846.224609" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_9"> + <path clip-path="url(#p3c6318dfca)" d="M 68.813125 945.809856 +L 961.613125 945.809856 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="maf26862e4d" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#maf26862e4d" y="945.809856"/> + </g> + </g> + <g id="text_6"> + <!-- 4 --> + <g transform="translate(49.088125 953.408293)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_11"> + <path clip-path="url(#p3c6318dfca)" d="M 68.813125 745.520638 +L 961.613125 745.520638 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#maf26862e4d" y="745.520638"/> + </g> + </g> + <g id="text_7"> + <!-- 6 --> + <g transform="translate(49.088125 753.119075)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-54"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_13"> + <path clip-path="url(#p3c6318dfca)" d="M 68.813125 545.231419 +L 961.613125 545.231419 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#maf26862e4d" y="545.231419"/> + </g> + </g> + <g id="text_8"> + <!-- 8 --> + <g transform="translate(49.088125 552.829857)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_15"> + <path clip-path="url(#p3c6318dfca)" d="M 68.813125 344.942201 +L 961.613125 344.942201 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#maf26862e4d" y="344.942201"/> + </g> + </g> + <g id="text_9"> + <!-- 10 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(36.363125 352.540638)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_17"> + <path clip-path="url(#p3c6318dfca)" d="M 68.813125 144.652983 +L 961.613125 144.652983 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#maf26862e4d" y="144.652983"/> + </g> + </g> + <g id="text_10"> + <!-- 12 --> + <g transform="translate(36.363125 152.25142)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + </g> + </g> + </g> + <g id="text_11"> + <!-- Avg. number of operations / size --> + <defs> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + <path d="M 25.390625 72.90625 +L 33.6875 72.90625 +L 8.296875 -9.28125 +L 0 -9.28125 +z +" id="DejaVuSans-47"/> + </defs> + <g transform="translate(26.955938 717.06875)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-110"/> + <use x="312.142578" xlink:href="#DejaVuSans-117"/> + <use x="375.521484" xlink:href="#DejaVuSans-109"/> + <use x="472.933594" xlink:href="#DejaVuSans-98"/> + <use x="536.410156" xlink:href="#DejaVuSans-101"/> + <use x="597.933594" xlink:href="#DejaVuSans-114"/> + <use x="639.046875" xlink:href="#DejaVuSans-32"/> + <use x="670.833984" xlink:href="#DejaVuSans-111"/> + <use x="732.015625" xlink:href="#DejaVuSans-102"/> + <use x="767.220703" xlink:href="#DejaVuSans-32"/> + <use x="799.007812" xlink:href="#DejaVuSans-111"/> + <use x="860.189453" xlink:href="#DejaVuSans-112"/> + <use x="923.666016" xlink:href="#DejaVuSans-101"/> + <use x="985.189453" xlink:href="#DejaVuSans-114"/> + <use x="1026.302734" xlink:href="#DejaVuSans-97"/> + <use x="1087.582031" xlink:href="#DejaVuSans-116"/> + <use x="1126.791016" xlink:href="#DejaVuSans-105"/> + <use x="1154.574219" xlink:href="#DejaVuSans-111"/> + <use x="1215.755859" xlink:href="#DejaVuSans-110"/> + <use x="1279.134766" xlink:href="#DejaVuSans-115"/> + <use x="1331.234375" xlink:href="#DejaVuSans-32"/> + <use x="1363.021484" xlink:href="#DejaVuSans-47"/> + <use x="1396.712891" xlink:href="#DejaVuSans-32"/> + <use x="1428.5" xlink:href="#DejaVuSans-115"/> + <use x="1480.599609" xlink:href="#DejaVuSans-105"/> + <use x="1508.382812" xlink:href="#DejaVuSans-122"/> + <use x="1560.873047" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="line2d_19"> + <path clip-path="url(#p3c6318dfca)" d="M 109.394943 631.278672 +L 154.485852 619.143649 +L 199.576761 613.937631 +L 244.66767 599.042122 +L 289.75858 589.877388 +L 334.849489 574.155185 +L 379.940398 566.606785 +L 425.031307 550.373344 +L 470.122216 540.725913 +L 515.213125 519.680524 +L 560.304034 496.623229 +L 605.394943 480.71676 +L 650.485852 455.334107 +L 695.576761 432.927752 +L 740.66767 400.826398 +L 785.75858 357.396185 +L 830.849489 311.421797 +L 875.940398 245.425999 +L 921.031307 130.20512 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 4.5 +C 1.193414 4.5 2.338109 4.025852 3.181981 3.181981 +C 4.025852 2.338109 4.5 1.193414 4.5 0 +C 4.5 -1.193414 4.025852 -2.338109 3.181981 -3.181981 +C 2.338109 -4.025852 1.193414 -4.5 0 -4.5 +C -1.193414 -4.5 -2.338109 -4.025852 -3.181981 -3.181981 +C -4.025852 -2.338109 -4.5 -1.193414 -4.5 0 +C -4.5 1.193414 -4.025852 2.338109 -3.181981 3.181981 +C -2.338109 4.025852 -1.193414 4.5 0 4.5 +z +" id="m40f36e4815" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#m40f36e4815" y="631.278672"/> + <use style="fill:#fe0002;stroke:#000000;" x="154.485852" xlink:href="#m40f36e4815" y="619.143649"/> + <use style="fill:#fe0002;stroke:#000000;" x="199.576761" xlink:href="#m40f36e4815" y="613.937631"/> + <use style="fill:#fe0002;stroke:#000000;" x="244.66767" xlink:href="#m40f36e4815" y="599.042122"/> + <use style="fill:#fe0002;stroke:#000000;" x="289.75858" xlink:href="#m40f36e4815" y="589.877388"/> + <use style="fill:#fe0002;stroke:#000000;" x="334.849489" xlink:href="#m40f36e4815" y="574.155185"/> + <use style="fill:#fe0002;stroke:#000000;" x="379.940398" xlink:href="#m40f36e4815" y="566.606785"/> + <use style="fill:#fe0002;stroke:#000000;" x="425.031307" xlink:href="#m40f36e4815" y="550.373344"/> + <use style="fill:#fe0002;stroke:#000000;" x="470.122216" xlink:href="#m40f36e4815" y="540.725913"/> + <use style="fill:#fe0002;stroke:#000000;" x="515.213125" xlink:href="#m40f36e4815" y="519.680524"/> + <use style="fill:#fe0002;stroke:#000000;" x="560.304034" xlink:href="#m40f36e4815" y="496.623229"/> + <use style="fill:#fe0002;stroke:#000000;" x="605.394943" xlink:href="#m40f36e4815" y="480.71676"/> + <use style="fill:#fe0002;stroke:#000000;" x="650.485852" xlink:href="#m40f36e4815" y="455.334107"/> + <use style="fill:#fe0002;stroke:#000000;" x="695.576761" xlink:href="#m40f36e4815" y="432.927752"/> + <use style="fill:#fe0002;stroke:#000000;" x="740.66767" xlink:href="#m40f36e4815" y="400.826398"/> + <use style="fill:#fe0002;stroke:#000000;" x="785.75858" xlink:href="#m40f36e4815" y="357.396185"/> + <use style="fill:#fe0002;stroke:#000000;" x="830.849489" xlink:href="#m40f36e4815" y="311.421797"/> + <use style="fill:#fe0002;stroke:#000000;" x="875.940398" xlink:href="#m40f36e4815" y="245.425999"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#m40f36e4815" y="130.20512"/> + </g> + </g> + <g id="line2d_20"> + <path clip-path="url(#p3c6318dfca)" d="M 109.394943 631.278672 +L 154.485852 619.143649 +L 199.576761 613.937631 +L 244.66767 599.042122 +L 289.75858 589.877388 +L 334.849489 574.155185 +L 379.940398 566.606785 +L 425.031307 550.373344 +L 470.122216 540.725913 +L 515.213125 519.680524 +L 560.304034 496.623229 +L 605.394943 480.71676 +L 650.485852 455.334107 +L 695.576761 432.927752 +L 740.66767 400.826398 +L 785.75858 357.396185 +L 830.849489 311.421797 +L 875.940398 245.425999 +L 921.031307 130.20512 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#m40f36e4815" y="631.278672"/> + <use style="fill:#fe0002;stroke:#000000;" x="154.485852" xlink:href="#m40f36e4815" y="619.143649"/> + <use style="fill:#fe0002;stroke:#000000;" x="199.576761" xlink:href="#m40f36e4815" y="613.937631"/> + <use style="fill:#fe0002;stroke:#000000;" x="244.66767" xlink:href="#m40f36e4815" y="599.042122"/> + <use style="fill:#fe0002;stroke:#000000;" x="289.75858" xlink:href="#m40f36e4815" y="589.877388"/> + <use style="fill:#fe0002;stroke:#000000;" x="334.849489" xlink:href="#m40f36e4815" y="574.155185"/> + <use style="fill:#fe0002;stroke:#000000;" x="379.940398" xlink:href="#m40f36e4815" y="566.606785"/> + <use style="fill:#fe0002;stroke:#000000;" x="425.031307" xlink:href="#m40f36e4815" y="550.373344"/> + <use style="fill:#fe0002;stroke:#000000;" x="470.122216" xlink:href="#m40f36e4815" y="540.725913"/> + <use style="fill:#fe0002;stroke:#000000;" x="515.213125" xlink:href="#m40f36e4815" y="519.680524"/> + <use style="fill:#fe0002;stroke:#000000;" x="560.304034" xlink:href="#m40f36e4815" y="496.623229"/> + <use style="fill:#fe0002;stroke:#000000;" x="605.394943" xlink:href="#m40f36e4815" y="480.71676"/> + <use style="fill:#fe0002;stroke:#000000;" x="650.485852" xlink:href="#m40f36e4815" y="455.334107"/> + <use style="fill:#fe0002;stroke:#000000;" x="695.576761" xlink:href="#m40f36e4815" y="432.927752"/> + <use style="fill:#fe0002;stroke:#000000;" x="740.66767" xlink:href="#m40f36e4815" y="400.826398"/> + <use style="fill:#fe0002;stroke:#000000;" x="785.75858" xlink:href="#m40f36e4815" y="357.396185"/> + <use style="fill:#fe0002;stroke:#000000;" x="830.849489" xlink:href="#m40f36e4815" y="311.421797"/> + <use style="fill:#fe0002;stroke:#000000;" x="875.940398" xlink:href="#m40f36e4815" y="245.425999"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#m40f36e4815" y="130.20512"/> + </g> + </g> + <g id="line2d_21"> + <path clip-path="url(#p3c6318dfca)" d="M 109.394943 739.001224 +L 154.485852 725.640431 +L 199.576761 719.839053 +L 244.66767 697.423185 +L 289.75858 691.87968 +L 334.849489 671.65798 +L 379.940398 660.122823 +L 425.031307 638.808545 +L 470.122216 627.044558 +L 515.213125 596.889514 +L 560.304034 568.864045 +L 605.394943 547.187744 +L 650.485852 513.76398 +L 695.576761 484.053078 +L 740.66767 441.385966 +L 785.75858 383.512897 +L 830.849489 321.980043 +L 875.940398 227.698901 +L 921.031307 67.493063 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 -4.5 +L -4.5 4.5 +L 4.5 4.5 +z +" id="m3a333e63d4" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m3a333e63d4" y="739.001224"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="154.485852" xlink:href="#m3a333e63d4" y="725.640431"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="199.576761" xlink:href="#m3a333e63d4" y="719.839053"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="244.66767" xlink:href="#m3a333e63d4" y="697.423185"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="289.75858" xlink:href="#m3a333e63d4" y="691.87968"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="334.849489" xlink:href="#m3a333e63d4" y="671.65798"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="379.940398" xlink:href="#m3a333e63d4" y="660.122823"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="425.031307" xlink:href="#m3a333e63d4" y="638.808545"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="470.122216" xlink:href="#m3a333e63d4" y="627.044558"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="515.213125" xlink:href="#m3a333e63d4" y="596.889514"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="560.304034" xlink:href="#m3a333e63d4" y="568.864045"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="605.394943" xlink:href="#m3a333e63d4" y="547.187744"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="650.485852" xlink:href="#m3a333e63d4" y="513.76398"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="695.576761" xlink:href="#m3a333e63d4" y="484.053078"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="740.66767" xlink:href="#m3a333e63d4" y="441.385966"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="785.75858" xlink:href="#m3a333e63d4" y="383.512897"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="830.849489" xlink:href="#m3a333e63d4" y="321.980043"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="875.940398" xlink:href="#m3a333e63d4" y="227.698901"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m3a333e63d4" y="67.493063"/> + </g> + </g> + <g id="line2d_22"> + <path clip-path="url(#p3c6318dfca)" d="M 109.394943 934.678783 +L 154.485852 925.170052 +L 199.576761 922.725522 +L 244.66767 910.067744 +L 289.75858 906.028912 +L 334.849489 895.635905 +L 379.940398 888.140581 +L 425.031307 875.858846 +L 470.122216 869.105094 +L 515.213125 852.352403 +L 560.304034 836.323257 +L 605.394943 824.004469 +L 650.485852 805.84074 +L 695.576761 789.29635 +L 740.66767 766.510447 +L 785.75858 735.538223 +L 830.849489 702.533063 +L 875.940398 653.207337 +L 921.031307 570.083806 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <defs> + <path d="M -0 6.363961 +L 6.363961 0 +L 0 -6.363961 +L -6.363961 -0 +z +" id="m03fa8da67b" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p3c6318dfca)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m03fa8da67b" y="934.678783"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="154.485852" xlink:href="#m03fa8da67b" y="925.170052"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="199.576761" xlink:href="#m03fa8da67b" y="922.725522"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="244.66767" xlink:href="#m03fa8da67b" y="910.067744"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="289.75858" xlink:href="#m03fa8da67b" y="906.028912"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="334.849489" xlink:href="#m03fa8da67b" y="895.635905"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="379.940398" xlink:href="#m03fa8da67b" y="888.140581"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="425.031307" xlink:href="#m03fa8da67b" y="875.858846"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="470.122216" xlink:href="#m03fa8da67b" y="869.105094"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="515.213125" xlink:href="#m03fa8da67b" y="852.352403"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="560.304034" xlink:href="#m03fa8da67b" y="836.323257"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="605.394943" xlink:href="#m03fa8da67b" y="824.004469"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="650.485852" xlink:href="#m03fa8da67b" y="805.84074"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="695.576761" xlink:href="#m03fa8da67b" y="789.29635"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="740.66767" xlink:href="#m03fa8da67b" y="766.510447"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="785.75858" xlink:href="#m03fa8da67b" y="735.538223"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="830.849489" xlink:href="#m03fa8da67b" y="702.533063"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="875.940398" xlink:href="#m03fa8da67b" y="653.207337"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m03fa8da67b" y="570.083806"/> + </g> + </g> + <g id="patch_3"> + <path d="M 68.813125 1005.12 +L 68.813125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 961.613125 1005.12 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 68.813125 7.2 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 87.013125 180.6525 +L 444.151563 180.6525 +Q 449.351563 180.6525 449.351563 175.4525 +L 449.351563 25.4 +Q 449.351563 20.2 444.151563 20.2 +L 87.013125 20.2 +Q 81.813125 20.2 81.813125 25.4 +L 81.813125 175.4525 +Q 81.813125 180.6525 87.013125 180.6525 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_23"> + <path d="M 92.213125 41.255937 +L 144.213125 41.255937 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_24"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="118.213125" xlink:href="#m40f36e4815" y="41.255937"/> + </g> + </g> + <g id="text_12"> + <!-- Pairing comparisons --> + <defs> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-80"/> + </defs> + <g transform="translate(165.013125 50.355937)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-99"/> + <use x="427.384766" xlink:href="#DejaVuSans-111"/> + <use x="488.566406" xlink:href="#DejaVuSans-109"/> + <use x="585.978516" xlink:href="#DejaVuSans-112"/> + <use x="649.455078" xlink:href="#DejaVuSans-97"/> + <use x="710.734375" xlink:href="#DejaVuSans-114"/> + <use x="751.847656" xlink:href="#DejaVuSans-105"/> + <use x="779.630859" xlink:href="#DejaVuSans-115"/> + <use x="831.730469" xlink:href="#DejaVuSans-111"/> + <use x="892.912109" xlink:href="#DejaVuSans-110"/> + <use x="956.291016" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_25"> + <path d="M 92.213125 79.419063 +L 144.213125 79.419063 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_26"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="118.213125" xlink:href="#m40f36e4815" y="79.419063"/> + </g> + </g> + <g id="text_13"> + <!-- Pairing links --> + <g transform="translate(165.013125 88.519063)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-108"/> + <use x="400.1875" xlink:href="#DejaVuSans-105"/> + <use x="427.970703" xlink:href="#DejaVuSans-110"/> + <use x="491.349609" xlink:href="#DejaVuSans-107"/> + <use x="549.259766" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_27"> + <path d="M 92.213125 117.582187 +L 144.213125 117.582187 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_28"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="118.213125" xlink:href="#m3a333e63d4" y="117.582187"/> + </g> + </g> + <g id="text_14"> + <!-- Smooth comparisons --> + <defs> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +z +" id="DejaVuSans-83"/> + </defs> + <g transform="translate(165.013125 126.682187)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-99"/> + <use x="472.607422" xlink:href="#DejaVuSans-111"/> + <use x="533.789062" xlink:href="#DejaVuSans-109"/> + <use x="631.201172" xlink:href="#DejaVuSans-112"/> + <use x="694.677734" xlink:href="#DejaVuSans-97"/> + <use x="755.957031" xlink:href="#DejaVuSans-114"/> + <use x="797.070312" xlink:href="#DejaVuSans-105"/> + <use x="824.853516" xlink:href="#DejaVuSans-115"/> + <use x="876.953125" xlink:href="#DejaVuSans-111"/> + <use x="938.134766" xlink:href="#DejaVuSans-110"/> + <use x="1001.513672" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_29"> + <path d="M 92.213125 155.745312 +L 144.213125 155.745312 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_30"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="118.213125" xlink:href="#m03fa8da67b" y="155.745312"/> + </g> + </g> + <g id="text_15"> + <!-- Smooth links --> + <g transform="translate(165.013125 164.845312)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-108"/> + <use x="445.410156" xlink:href="#DejaVuSans-105"/> + <use x="473.193359" xlink:href="#DejaVuSans-110"/> + <use x="536.572266" xlink:href="#DejaVuSans-107"/> + <use x="594.482422" xlink:href="#DejaVuSans-115"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p3c6318dfca"> + <rect height="997.92" width="892.8" x="68.813125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/plots/paper-sorting-uniform-new.pdf b/plots/paper-sorting-uniform-new.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a0c1f20d8a9a364972521f3e5901d737d477d05a Binary files /dev/null and b/plots/paper-sorting-uniform-new.pdf differ diff --git a/plots/paper-sorting-uniform-new.svg b/plots/paper-sorting-uniform-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..6d180a1fa8495b3be4a50edb47d12f8c24e0183f --- /dev/null +++ b/plots/paper-sorting-uniform-new.svg @@ -0,0 +1,1471 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="1067.839375pt" version="1.1" viewBox="0 0 968.813125 1067.839375" width="968.813125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 1067.839375 +L 968.813125 1067.839375 +L 968.813125 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +L 961.613125 7.2 +L 68.813125 7.2 +z +" style="fill:#ffffff;"/> + </g> + <g id="PolyCollection_1"> + <defs> + <path d="M 109.394943 -168.498282 +L 109.394943 -140.806283 +L 109.494032 -194.931554 +L 109.69221 -254.721098 +L 110.088565 -319.860233 +L 110.881275 -369.422618 +L 112.466696 -429.212162 +L 115.637538 -483.61278 +L 121.979221 -532.880151 +L 134.662587 -584.723979 +L 160.02932 -636.489136 +L 210.762786 -686.78414 +L 312.229717 -737.052101 +L 515.163581 -787.55177 +L 921.031307 -837.542233 +L 921.031307 -838.128881 +L 921.031307 -838.128881 +L 515.163581 -788.336631 +L 312.229717 -738.11784 +L 210.762786 -688.809904 +L 160.02932 -637.915038 +L 134.662587 -588.588665 +L 121.979221 -535.633616 +L 115.637538 -486.602257 +L 112.466696 -434.719094 +L 110.881275 -382.796595 +L 110.088565 -330.559415 +L 109.69221 -273.602007 +L 109.494032 -203.742645 +L 109.394943 -168.498282 +z +" id="m829da9b52d" style="stroke:#fe4d4e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m829da9b52d" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_2"> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#fe4d4e;fill-opacity:0.3;stroke:#fe4d4e;stroke-opacity:0.3;" x="0" xlink:href="#m829da9b52d" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_3"> + <defs> + <path d="M 109.394943 -165.980828 +L 109.394943 -148.358647 +L 109.494032 -191.155373 +L 109.69221 -259.756007 +L 110.088565 -321.433642 +L 110.881275 -390.191617 +L 112.466696 -461.073695 +L 115.637538 -524.796762 +L 121.979221 -593.948089 +L 134.662587 -663.394431 +L 160.02932 -734.522354 +L 210.762786 -804.344839 +L 312.229717 -874.414398 +L 515.163581 -944.615485 +L 921.031307 -1014.986819 +L 921.031307 -1015.279375 +L 921.031307 -1015.279375 +L 515.163581 -945.516507 +L 312.229717 -876.290197 +L 210.762786 -806.604156 +L 160.02932 -736.936554 +L 134.662587 -665.675874 +L 121.979221 -599.415686 +L 115.637538 -535.181261 +L 112.466696 -463.276468 +L 110.881275 -403.722935 +L 110.088565 -339.999869 +L 109.69221 -271.713916 +L 109.494032 -211.295009 +L 109.394943 -165.980828 +z +" id="m459b331398" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#m459b331398" y="1067.839375"/> + </g> + </g> + <g id="PolyCollection_4"> + <defs> + <path d="M 109.394943 -133.25392 +L 109.394943 -108.079375 +L 109.494032 -142.06501 +L 109.69221 -186.120464 +L 110.088565 -223.882281 +L 110.881275 -261.644098 +L 112.466696 -300.035279 +L 115.637538 -334.728948 +L 121.979221 -369.501288 +L 134.662587 -405.542189 +L 160.02932 -440.845555 +L 210.762786 -476.279219 +L 312.229717 -511.586272 +L 515.163581 -547.02854 +L 921.031307 -582.062705 +L 921.031307 -582.248625 +L 921.031307 -582.248625 +L 515.163581 -547.407756 +L 312.229717 -512.513108 +L 210.762786 -477.395356 +L 160.02932 -442.581222 +L 134.662587 -406.004378 +L 121.979221 -372.45143 +L 115.637538 -339.40984 +L 112.466696 -302.080711 +L 110.881275 -268.095075 +L 110.088565 -235.525508 +L 109.69221 -194.302191 +L 109.494032 -158.428465 +L 109.394943 -133.25392 +z +" id="mc7d9a595ba" style="stroke:#58ab8e;stroke-opacity:0.3;"/> + </defs> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#58ab8e;fill-opacity:0.3;stroke:#58ab8e;stroke-opacity:0.3;" x="0" xlink:href="#mc7d9a595ba" y="1067.839375"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <path clip-path="url(#p3d8ae046f8)" d="M 109.295854 1005.12 +L 109.295854 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_2"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m4216a9f8ac" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="109.295854" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_1"> + <!-- 0 --> + <defs> + <path d="M 31.78125 66.40625 +Q 24.171875 66.40625 20.328125 58.90625 +Q 16.5 51.421875 16.5 36.375 +Q 16.5 21.390625 20.328125 13.890625 +Q 24.171875 6.390625 31.78125 6.390625 +Q 39.453125 6.390625 43.28125 13.890625 +Q 47.125 21.390625 47.125 36.375 +Q 47.125 51.421875 43.28125 58.90625 +Q 39.453125 66.40625 31.78125 66.40625 +z +M 31.78125 74.21875 +Q 44.046875 74.21875 50.515625 64.515625 +Q 56.984375 54.828125 56.984375 36.375 +Q 56.984375 17.96875 50.515625 8.265625 +Q 44.046875 -1.421875 31.78125 -1.421875 +Q 19.53125 -1.421875 13.0625 8.265625 +Q 6.59375 17.96875 6.59375 36.375 +Q 6.59375 54.828125 13.0625 64.515625 +Q 19.53125 74.21875 31.78125 74.21875 +z +" id="DejaVuSans-48"/> + </defs> + <g transform="translate(102.933354 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_3"> + <path clip-path="url(#p3d8ae046f8)" d="M 233.156855 1005.12 +L 233.156855 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="233.156855" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_2"> + <!-- 20000 --> + <defs> + <path d="M 19.1875 8.296875 +L 53.609375 8.296875 +L 53.609375 0 +L 7.328125 0 +L 7.328125 8.296875 +Q 12.9375 14.109375 22.625 23.890625 +Q 32.328125 33.6875 34.8125 36.53125 +Q 39.546875 41.84375 41.421875 45.53125 +Q 43.3125 49.21875 43.3125 52.78125 +Q 43.3125 58.59375 39.234375 62.25 +Q 35.15625 65.921875 28.609375 65.921875 +Q 23.96875 65.921875 18.8125 64.3125 +Q 13.671875 62.703125 7.8125 59.421875 +L 7.8125 69.390625 +Q 13.765625 71.78125 18.9375 73 +Q 24.125 74.21875 28.421875 74.21875 +Q 39.75 74.21875 46.484375 68.546875 +Q 53.21875 62.890625 53.21875 53.421875 +Q 53.21875 48.921875 51.53125 44.890625 +Q 49.859375 40.875 45.40625 35.40625 +Q 44.1875 33.984375 37.640625 27.21875 +Q 31.109375 20.453125 19.1875 8.296875 +z +" id="DejaVuSans-50"/> + </defs> + <g transform="translate(201.344355 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_5"> + <path clip-path="url(#p3d8ae046f8)" d="M 357.017855 1005.12 +L 357.017855 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="357.017855" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_3"> + <!-- 40000 --> + <defs> + <path d="M 37.796875 64.3125 +L 12.890625 25.390625 +L 37.796875 25.390625 +z +M 35.203125 72.90625 +L 47.609375 72.90625 +L 47.609375 25.390625 +L 58.015625 25.390625 +L 58.015625 17.1875 +L 47.609375 17.1875 +L 47.609375 0 +L 37.796875 0 +L 37.796875 17.1875 +L 4.890625 17.1875 +L 4.890625 26.703125 +z +" id="DejaVuSans-52"/> + </defs> + <g transform="translate(325.205355 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-52"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_7"> + <path clip-path="url(#p3d8ae046f8)" d="M 480.878856 1005.12 +L 480.878856 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="480.878856" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_4"> + <!-- 60000 --> + <defs> + <path d="M 33.015625 40.375 +Q 26.375 40.375 22.484375 35.828125 +Q 18.609375 31.296875 18.609375 23.390625 +Q 18.609375 15.53125 22.484375 10.953125 +Q 26.375 6.390625 33.015625 6.390625 +Q 39.65625 6.390625 43.53125 10.953125 +Q 47.40625 15.53125 47.40625 23.390625 +Q 47.40625 31.296875 43.53125 35.828125 +Q 39.65625 40.375 33.015625 40.375 +z +M 52.59375 71.296875 +L 52.59375 62.3125 +Q 48.875 64.0625 45.09375 64.984375 +Q 41.3125 65.921875 37.59375 65.921875 +Q 27.828125 65.921875 22.671875 59.328125 +Q 17.53125 52.734375 16.796875 39.40625 +Q 19.671875 43.65625 24.015625 45.921875 +Q 28.375 48.1875 33.59375 48.1875 +Q 44.578125 48.1875 50.953125 41.515625 +Q 57.328125 34.859375 57.328125 23.390625 +Q 57.328125 12.15625 50.6875 5.359375 +Q 44.046875 -1.421875 33.015625 -1.421875 +Q 20.359375 -1.421875 13.671875 8.265625 +Q 6.984375 17.96875 6.984375 36.375 +Q 6.984375 53.65625 15.1875 63.9375 +Q 23.390625 74.21875 37.203125 74.21875 +Q 40.921875 74.21875 44.703125 73.484375 +Q 48.484375 72.75 52.59375 71.296875 +z +" id="DejaVuSans-54"/> + </defs> + <g transform="translate(449.066356 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-54"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_9"> + <path clip-path="url(#p3d8ae046f8)" d="M 604.739856 1005.12 +L 604.739856 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="604.739856" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_5"> + <!-- 80000 --> + <defs> + <path d="M 31.78125 34.625 +Q 24.75 34.625 20.71875 30.859375 +Q 16.703125 27.09375 16.703125 20.515625 +Q 16.703125 13.921875 20.71875 10.15625 +Q 24.75 6.390625 31.78125 6.390625 +Q 38.8125 6.390625 42.859375 10.171875 +Q 46.921875 13.96875 46.921875 20.515625 +Q 46.921875 27.09375 42.890625 30.859375 +Q 38.875 34.625 31.78125 34.625 +z +M 21.921875 38.8125 +Q 15.578125 40.375 12.03125 44.71875 +Q 8.5 49.078125 8.5 55.328125 +Q 8.5 64.0625 14.71875 69.140625 +Q 20.953125 74.21875 31.78125 74.21875 +Q 42.671875 74.21875 48.875 69.140625 +Q 55.078125 64.0625 55.078125 55.328125 +Q 55.078125 49.078125 51.53125 44.71875 +Q 48 40.375 41.703125 38.8125 +Q 48.828125 37.15625 52.796875 32.3125 +Q 56.78125 27.484375 56.78125 20.515625 +Q 56.78125 9.90625 50.3125 4.234375 +Q 43.84375 -1.421875 31.78125 -1.421875 +Q 19.734375 -1.421875 13.25 4.234375 +Q 6.78125 9.90625 6.78125 20.515625 +Q 6.78125 27.484375 10.78125 32.3125 +Q 14.796875 37.15625 21.921875 38.8125 +z +M 18.3125 54.390625 +Q 18.3125 48.734375 21.84375 45.5625 +Q 25.390625 42.390625 31.78125 42.390625 +Q 38.140625 42.390625 41.71875 45.5625 +Q 45.3125 48.734375 45.3125 54.390625 +Q 45.3125 60.0625 41.71875 63.234375 +Q 38.140625 66.40625 31.78125 66.40625 +Q 25.390625 66.40625 21.84375 63.234375 +Q 18.3125 60.0625 18.3125 54.390625 +z +" id="DejaVuSans-56"/> + </defs> + <g transform="translate(572.927356 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-56"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_11"> + <path clip-path="url(#p3d8ae046f8)" d="M 728.600857 1005.12 +L 728.600857 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="728.600857" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_6"> + <!-- 100000 --> + <defs> + <path d="M 12.40625 8.296875 +L 28.515625 8.296875 +L 28.515625 63.921875 +L 10.984375 60.40625 +L 10.984375 69.390625 +L 28.421875 72.90625 +L 38.28125 72.90625 +L 38.28125 8.296875 +L 54.390625 8.296875 +L 54.390625 0 +L 12.40625 0 +z +" id="DejaVuSans-49"/> + </defs> + <g transform="translate(690.425857 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + <use x="318.115234" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="xtick_7"> + <g id="line2d_13"> + <path clip-path="url(#p3d8ae046f8)" d="M 852.461857 1005.12 +L 852.461857 7.2 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="852.461857" xlink:href="#m4216a9f8ac" y="1005.12"/> + </g> + </g> + <g id="text_7"> + <!-- 120000 --> + <g transform="translate(814.286857 1027.316875)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-50"/> + <use x="127.246094" xlink:href="#DejaVuSans-48"/> + <use x="190.869141" xlink:href="#DejaVuSans-48"/> + <use x="254.492188" xlink:href="#DejaVuSans-48"/> + <use x="318.115234" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="text_8"> + <!-- Input size --> + <defs> + <path d="M 9.8125 72.90625 +L 19.671875 72.90625 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-73"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-110"/> + <path d="M 18.109375 8.203125 +L 18.109375 -20.796875 +L 9.078125 -20.796875 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +z +M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +" id="DejaVuSans-112"/> + <path d="M 8.5 21.578125 +L 8.5 54.6875 +L 17.484375 54.6875 +L 17.484375 21.921875 +Q 17.484375 14.15625 20.5 10.265625 +Q 23.53125 6.390625 29.59375 6.390625 +Q 36.859375 6.390625 41.078125 11.03125 +Q 45.3125 15.671875 45.3125 23.6875 +L 45.3125 54.6875 +L 54.296875 54.6875 +L 54.296875 0 +L 45.3125 0 +L 45.3125 8.40625 +Q 42.046875 3.421875 37.71875 1 +Q 33.40625 -1.421875 27.6875 -1.421875 +Q 18.265625 -1.421875 13.375 4.4375 +Q 8.5 10.296875 8.5 21.578125 +z +M 31.109375 56 +z +" id="DejaVuSans-117"/> + <path d="M 18.3125 70.21875 +L 18.3125 54.6875 +L 36.8125 54.6875 +L 36.8125 47.703125 +L 18.3125 47.703125 +L 18.3125 18.015625 +Q 18.3125 11.328125 20.140625 9.421875 +Q 21.96875 7.515625 27.59375 7.515625 +L 36.8125 7.515625 +L 36.8125 0 +L 27.59375 0 +Q 17.1875 0 13.234375 3.875 +Q 9.28125 7.765625 9.28125 18.015625 +L 9.28125 47.703125 +L 2.6875 47.703125 +L 2.6875 54.6875 +L 9.28125 54.6875 +L 9.28125 70.21875 +z +" id="DejaVuSans-116"/> + <path id="DejaVuSans-32"/> + <path d="M 44.28125 53.078125 +L 44.28125 44.578125 +Q 40.484375 46.53125 36.375 47.5 +Q 32.28125 48.484375 27.875 48.484375 +Q 21.1875 48.484375 17.84375 46.4375 +Q 14.5 44.390625 14.5 40.28125 +Q 14.5 37.15625 16.890625 35.375 +Q 19.28125 33.59375 26.515625 31.984375 +L 29.59375 31.296875 +Q 39.15625 29.25 43.1875 25.515625 +Q 47.21875 21.78125 47.21875 15.09375 +Q 47.21875 7.46875 41.1875 3.015625 +Q 35.15625 -1.421875 24.609375 -1.421875 +Q 20.21875 -1.421875 15.453125 -0.5625 +Q 10.6875 0.296875 5.421875 2 +L 5.421875 11.28125 +Q 10.40625 8.6875 15.234375 7.390625 +Q 20.0625 6.109375 24.8125 6.109375 +Q 31.15625 6.109375 34.5625 8.28125 +Q 37.984375 10.453125 37.984375 14.40625 +Q 37.984375 18.0625 35.515625 20.015625 +Q 33.0625 21.96875 24.703125 23.78125 +L 21.578125 24.515625 +Q 13.234375 26.265625 9.515625 29.90625 +Q 5.8125 33.546875 5.8125 39.890625 +Q 5.8125 47.609375 11.28125 51.796875 +Q 16.75 56 26.8125 56 +Q 31.78125 56 36.171875 55.265625 +Q 40.578125 54.546875 44.28125 53.078125 +z +" id="DejaVuSans-115"/> + <path d="M 9.421875 54.6875 +L 18.40625 54.6875 +L 18.40625 0 +L 9.421875 0 +z +M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 64.59375 +L 9.421875 64.59375 +z +" id="DejaVuSans-105"/> + <path d="M 5.515625 54.6875 +L 48.1875 54.6875 +L 48.1875 46.484375 +L 14.40625 7.171875 +L 48.1875 7.171875 +L 48.1875 0 +L 4.296875 0 +L 4.296875 8.203125 +L 38.09375 47.515625 +L 5.515625 47.515625 +z +" id="DejaVuSans-122"/> + <path d="M 56.203125 29.59375 +L 56.203125 25.203125 +L 14.890625 25.203125 +Q 15.484375 15.921875 20.484375 11.0625 +Q 25.484375 6.203125 34.421875 6.203125 +Q 39.59375 6.203125 44.453125 7.46875 +Q 49.3125 8.734375 54.109375 11.28125 +L 54.109375 2.78125 +Q 49.265625 0.734375 44.1875 -0.34375 +Q 39.109375 -1.421875 33.890625 -1.421875 +Q 20.796875 -1.421875 13.15625 6.1875 +Q 5.515625 13.8125 5.515625 26.8125 +Q 5.515625 40.234375 12.765625 48.109375 +Q 20.015625 56 32.328125 56 +Q 43.359375 56 49.78125 48.890625 +Q 56.203125 41.796875 56.203125 29.59375 +z +M 47.21875 32.234375 +Q 47.125 39.59375 43.09375 43.984375 +Q 39.0625 48.390625 32.421875 48.390625 +Q 24.90625 48.390625 20.390625 44.140625 +Q 15.875 39.890625 15.1875 32.171875 +z +" id="DejaVuSans-101"/> + </defs> + <g transform="translate(452.213906 1055.232188)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-73"/> + <use x="29.492188" xlink:href="#DejaVuSans-110"/> + <use x="92.871094" xlink:href="#DejaVuSans-112"/> + <use x="156.347656" xlink:href="#DejaVuSans-117"/> + <use x="219.726562" xlink:href="#DejaVuSans-116"/> + <use x="258.935547" xlink:href="#DejaVuSans-32"/> + <use x="290.722656" xlink:href="#DejaVuSans-115"/> + <use x="342.822266" xlink:href="#DejaVuSans-105"/> + <use x="370.605469" xlink:href="#DejaVuSans-122"/> + <use x="423.095703" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_15"> + <path clip-path="url(#p3d8ae046f8)" d="M 68.813125 831.369822 +L 961.613125 831.369822 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_16"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m2b2e86ba2c" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b2e86ba2c" y="831.369822"/> + </g> + </g> + <g id="text_9"> + <!-- 5 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="DejaVuSans-53"/> + </defs> + <g transform="translate(49.088125 838.968259)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_17"> + <path clip-path="url(#p3d8ae046f8)" d="M 68.813125 629.973463 +L 961.613125 629.973463 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b2e86ba2c" y="629.973463"/> + </g> + </g> + <g id="text_10"> + <!-- 10 --> + <g transform="translate(36.363125 637.571901)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_19"> + <path clip-path="url(#p3d8ae046f8)" d="M 68.813125 428.577105 +L 961.613125 428.577105 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b2e86ba2c" y="428.577105"/> + </g> + </g> + <g id="text_11"> + <!-- 15 --> + <g transform="translate(36.363125 436.175543)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-49"/> + <use x="63.623047" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_21"> + <path clip-path="url(#p3d8ae046f8)" d="M 68.813125 227.180747 +L 961.613125 227.180747 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b2e86ba2c" y="227.180747"/> + </g> + </g> + <g id="text_12"> + <!-- 20 --> + <g transform="translate(36.363125 234.779184)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_23"> + <path clip-path="url(#p3d8ae046f8)" d="M 68.813125 25.784389 +L 961.613125 25.784389 +" style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/> + </g> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="68.813125" xlink:href="#m2b2e86ba2c" y="25.784389"/> + </g> + </g> + <g id="text_13"> + <!-- 25 --> + <g transform="translate(36.363125 33.382826)scale(0.2 -0.2)"> + <use xlink:href="#DejaVuSans-50"/> + <use x="63.623047" xlink:href="#DejaVuSans-53"/> + </g> + </g> + </g> + <g id="text_14"> + <!-- Avg. number of operations / size --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="DejaVuSans-65"/> + <path d="M 2.984375 54.6875 +L 12.5 54.6875 +L 29.59375 8.796875 +L 46.6875 54.6875 +L 56.203125 54.6875 +L 35.6875 0 +L 23.484375 0 +z +" id="DejaVuSans-118"/> + <path d="M 45.40625 27.984375 +Q 45.40625 37.75 41.375 43.109375 +Q 37.359375 48.484375 30.078125 48.484375 +Q 22.859375 48.484375 18.828125 43.109375 +Q 14.796875 37.75 14.796875 27.984375 +Q 14.796875 18.265625 18.828125 12.890625 +Q 22.859375 7.515625 30.078125 7.515625 +Q 37.359375 7.515625 41.375 12.890625 +Q 45.40625 18.265625 45.40625 27.984375 +z +M 54.390625 6.78125 +Q 54.390625 -7.171875 48.1875 -13.984375 +Q 42 -20.796875 29.203125 -20.796875 +Q 24.46875 -20.796875 20.265625 -20.09375 +Q 16.0625 -19.390625 12.109375 -17.921875 +L 12.109375 -9.1875 +Q 16.0625 -11.328125 19.921875 -12.34375 +Q 23.78125 -13.375 27.78125 -13.375 +Q 36.625 -13.375 41.015625 -8.765625 +Q 45.40625 -4.15625 45.40625 5.171875 +L 45.40625 9.625 +Q 42.625 4.78125 38.28125 2.390625 +Q 33.9375 0 27.875 0 +Q 17.828125 0 11.671875 7.65625 +Q 5.515625 15.328125 5.515625 27.984375 +Q 5.515625 40.671875 11.671875 48.328125 +Q 17.828125 56 27.875 56 +Q 33.9375 56 38.28125 53.609375 +Q 42.625 51.21875 45.40625 46.390625 +L 45.40625 54.6875 +L 54.390625 54.6875 +z +" id="DejaVuSans-103"/> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="DejaVuSans-46"/> + <path d="M 52 44.1875 +Q 55.375 50.25 60.0625 53.125 +Q 64.75 56 71.09375 56 +Q 79.640625 56 84.28125 50.015625 +Q 88.921875 44.046875 88.921875 33.015625 +L 88.921875 0 +L 79.890625 0 +L 79.890625 32.71875 +Q 79.890625 40.578125 77.09375 44.375 +Q 74.3125 48.1875 68.609375 48.1875 +Q 61.625 48.1875 57.5625 43.546875 +Q 53.515625 38.921875 53.515625 30.90625 +L 53.515625 0 +L 44.484375 0 +L 44.484375 32.71875 +Q 44.484375 40.625 41.703125 44.40625 +Q 38.921875 48.1875 33.109375 48.1875 +Q 26.21875 48.1875 22.15625 43.53125 +Q 18.109375 38.875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 21.1875 51.21875 25.484375 53.609375 +Q 29.78125 56 35.6875 56 +Q 41.65625 56 45.828125 52.96875 +Q 50 49.953125 52 44.1875 +z +" id="DejaVuSans-109"/> + <path d="M 48.6875 27.296875 +Q 48.6875 37.203125 44.609375 42.84375 +Q 40.53125 48.484375 33.40625 48.484375 +Q 26.265625 48.484375 22.1875 42.84375 +Q 18.109375 37.203125 18.109375 27.296875 +Q 18.109375 17.390625 22.1875 11.75 +Q 26.265625 6.109375 33.40625 6.109375 +Q 40.53125 6.109375 44.609375 11.75 +Q 48.6875 17.390625 48.6875 27.296875 +z +M 18.109375 46.390625 +Q 20.953125 51.265625 25.265625 53.625 +Q 29.59375 56 35.59375 56 +Q 45.5625 56 51.78125 48.09375 +Q 58.015625 40.1875 58.015625 27.296875 +Q 58.015625 14.40625 51.78125 6.484375 +Q 45.5625 -1.421875 35.59375 -1.421875 +Q 29.59375 -1.421875 25.265625 0.953125 +Q 20.953125 3.328125 18.109375 8.203125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +z +" id="DejaVuSans-98"/> + <path d="M 41.109375 46.296875 +Q 39.59375 47.171875 37.8125 47.578125 +Q 36.03125 48 33.890625 48 +Q 26.265625 48 22.1875 43.046875 +Q 18.109375 38.09375 18.109375 28.8125 +L 18.109375 0 +L 9.078125 0 +L 9.078125 54.6875 +L 18.109375 54.6875 +L 18.109375 46.1875 +Q 20.953125 51.171875 25.484375 53.578125 +Q 30.03125 56 36.53125 56 +Q 37.453125 56 38.578125 55.875 +Q 39.703125 55.765625 41.0625 55.515625 +z +" id="DejaVuSans-114"/> + <path d="M 30.609375 48.390625 +Q 23.390625 48.390625 19.1875 42.75 +Q 14.984375 37.109375 14.984375 27.296875 +Q 14.984375 17.484375 19.15625 11.84375 +Q 23.34375 6.203125 30.609375 6.203125 +Q 37.796875 6.203125 41.984375 11.859375 +Q 46.1875 17.53125 46.1875 27.296875 +Q 46.1875 37.015625 41.984375 42.703125 +Q 37.796875 48.390625 30.609375 48.390625 +z +M 30.609375 56 +Q 42.328125 56 49.015625 48.375 +Q 55.71875 40.765625 55.71875 27.296875 +Q 55.71875 13.875 49.015625 6.21875 +Q 42.328125 -1.421875 30.609375 -1.421875 +Q 18.84375 -1.421875 12.171875 6.21875 +Q 5.515625 13.875 5.515625 27.296875 +Q 5.515625 40.765625 12.171875 48.375 +Q 18.84375 56 30.609375 56 +z +" id="DejaVuSans-111"/> + <path d="M 37.109375 75.984375 +L 37.109375 68.5 +L 28.515625 68.5 +Q 23.6875 68.5 21.796875 66.546875 +Q 19.921875 64.59375 19.921875 59.515625 +L 19.921875 54.6875 +L 34.71875 54.6875 +L 34.71875 47.703125 +L 19.921875 47.703125 +L 19.921875 0 +L 10.890625 0 +L 10.890625 47.703125 +L 2.296875 47.703125 +L 2.296875 54.6875 +L 10.890625 54.6875 +L 10.890625 58.5 +Q 10.890625 67.625 15.140625 71.796875 +Q 19.390625 75.984375 28.609375 75.984375 +z +" id="DejaVuSans-102"/> + <path d="M 34.28125 27.484375 +Q 23.390625 27.484375 19.1875 25 +Q 14.984375 22.515625 14.984375 16.5 +Q 14.984375 11.71875 18.140625 8.90625 +Q 21.296875 6.109375 26.703125 6.109375 +Q 34.1875 6.109375 38.703125 11.40625 +Q 43.21875 16.703125 43.21875 25.484375 +L 43.21875 27.484375 +z +M 52.203125 31.203125 +L 52.203125 0 +L 43.21875 0 +L 43.21875 8.296875 +Q 40.140625 3.328125 35.546875 0.953125 +Q 30.953125 -1.421875 24.3125 -1.421875 +Q 15.921875 -1.421875 10.953125 3.296875 +Q 6 8.015625 6 15.921875 +Q 6 25.140625 12.171875 29.828125 +Q 18.359375 34.515625 30.609375 34.515625 +L 43.21875 34.515625 +L 43.21875 35.40625 +Q 43.21875 41.609375 39.140625 45 +Q 35.0625 48.390625 27.6875 48.390625 +Q 23 48.390625 18.546875 47.265625 +Q 14.109375 46.140625 10.015625 43.890625 +L 10.015625 52.203125 +Q 14.9375 54.109375 19.578125 55.046875 +Q 24.21875 56 28.609375 56 +Q 40.484375 56 46.34375 49.84375 +Q 52.203125 43.703125 52.203125 31.203125 +z +" id="DejaVuSans-97"/> + <path d="M 25.390625 72.90625 +L 33.6875 72.90625 +L 8.296875 -9.28125 +L 0 -9.28125 +z +" id="DejaVuSans-47"/> + </defs> + <g transform="translate(26.955938 717.06875)rotate(-90)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-65"/> + <use x="62.533203" xlink:href="#DejaVuSans-118"/> + <use x="121.712891" xlink:href="#DejaVuSans-103"/> + <use x="185.189453" xlink:href="#DejaVuSans-46"/> + <use x="216.976562" xlink:href="#DejaVuSans-32"/> + <use x="248.763672" xlink:href="#DejaVuSans-110"/> + <use x="312.142578" xlink:href="#DejaVuSans-117"/> + <use x="375.521484" xlink:href="#DejaVuSans-109"/> + <use x="472.933594" xlink:href="#DejaVuSans-98"/> + <use x="536.410156" xlink:href="#DejaVuSans-101"/> + <use x="597.933594" xlink:href="#DejaVuSans-114"/> + <use x="639.046875" xlink:href="#DejaVuSans-32"/> + <use x="670.833984" xlink:href="#DejaVuSans-111"/> + <use x="732.015625" xlink:href="#DejaVuSans-102"/> + <use x="767.220703" xlink:href="#DejaVuSans-32"/> + <use x="799.007812" xlink:href="#DejaVuSans-111"/> + <use x="860.189453" xlink:href="#DejaVuSans-112"/> + <use x="923.666016" xlink:href="#DejaVuSans-101"/> + <use x="985.189453" xlink:href="#DejaVuSans-114"/> + <use x="1026.302734" xlink:href="#DejaVuSans-97"/> + <use x="1087.582031" xlink:href="#DejaVuSans-116"/> + <use x="1126.791016" xlink:href="#DejaVuSans-105"/> + <use x="1154.574219" xlink:href="#DejaVuSans-111"/> + <use x="1215.755859" xlink:href="#DejaVuSans-110"/> + <use x="1279.134766" xlink:href="#DejaVuSans-115"/> + <use x="1331.234375" xlink:href="#DejaVuSans-32"/> + <use x="1363.021484" xlink:href="#DejaVuSans-47"/> + <use x="1396.712891" xlink:href="#DejaVuSans-32"/> + <use x="1428.5" xlink:href="#DejaVuSans-115"/> + <use x="1480.599609" xlink:href="#DejaVuSans-105"/> + <use x="1508.382812" xlink:href="#DejaVuSans-122"/> + <use x="1560.873047" xlink:href="#DejaVuSans-101"/> + </g> + </g> + </g> + <g id="line2d_25"> + <path clip-path="url(#p3d8ae046f8)" d="M 109.394943 912.431856 +L 109.494032 869.383384 +L 109.69221 802.419095 +L 110.088565 743.888278 +L 110.881275 690.455307 +L 112.466696 636.188429 +L 115.637538 582.598117 +L 121.979221 533.130136 +L 134.662587 481.766198 +L 160.02932 430.558617 +L 210.762786 379.896813 +L 312.229717 330.006962 +L 515.163581 279.877166 +L 921.031307 230.018722 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 4.5 +C 1.193414 4.5 2.338109 4.025852 3.181981 3.181981 +C 4.025852 2.338109 4.5 1.193414 4.5 0 +C 4.5 -1.193414 4.025852 -2.338109 3.181981 -3.181981 +C 2.338109 -4.025852 1.193414 -4.5 0 -4.5 +C -1.193414 -4.5 -2.338109 -4.025852 -3.181981 -3.181981 +C -4.025852 -2.338109 -4.5 -1.193414 -4.5 0 +C -4.5 1.193414 -4.025852 2.338109 -3.181981 3.181981 +C -2.338109 4.025852 -1.193414 4.5 0 4.5 +z +" id="mafb4c47c91" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#mafb4c47c91" y="912.431856"/> + <use style="fill:#fe0002;stroke:#000000;" x="109.494032" xlink:href="#mafb4c47c91" y="869.383384"/> + <use style="fill:#fe0002;stroke:#000000;" x="109.69221" xlink:href="#mafb4c47c91" y="802.419095"/> + <use style="fill:#fe0002;stroke:#000000;" x="110.088565" xlink:href="#mafb4c47c91" y="743.888278"/> + <use style="fill:#fe0002;stroke:#000000;" x="110.881275" xlink:href="#mafb4c47c91" y="690.455307"/> + <use style="fill:#fe0002;stroke:#000000;" x="112.466696" xlink:href="#mafb4c47c91" y="636.188429"/> + <use style="fill:#fe0002;stroke:#000000;" x="115.637538" xlink:href="#mafb4c47c91" y="582.598117"/> + <use style="fill:#fe0002;stroke:#000000;" x="121.979221" xlink:href="#mafb4c47c91" y="533.130136"/> + <use style="fill:#fe0002;stroke:#000000;" x="134.662587" xlink:href="#mafb4c47c91" y="481.766198"/> + <use style="fill:#fe0002;stroke:#000000;" x="160.02932" xlink:href="#mafb4c47c91" y="430.558617"/> + <use style="fill:#fe0002;stroke:#000000;" x="210.762786" xlink:href="#mafb4c47c91" y="379.896813"/> + <use style="fill:#fe0002;stroke:#000000;" x="312.229717" xlink:href="#mafb4c47c91" y="330.006962"/> + <use style="fill:#fe0002;stroke:#000000;" x="515.163581" xlink:href="#mafb4c47c91" y="279.877166"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#mafb4c47c91" y="230.018722"/> + </g> + </g> + <g id="line2d_26"> + <path clip-path="url(#p3d8ae046f8)" d="M 109.394943 912.431856 +L 109.494032 869.383384 +L 109.69221 802.419095 +L 110.088565 743.888278 +L 110.881275 690.455307 +L 112.466696 636.188429 +L 115.637538 582.598117 +L 121.979221 533.130136 +L 134.662587 481.766198 +L 160.02932 430.558617 +L 210.762786 379.896813 +L 312.229717 330.006962 +L 515.163581 279.877166 +L 921.031307 230.018722 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#fe0002;stroke:#000000;" x="109.394943" xlink:href="#mafb4c47c91" y="912.431856"/> + <use style="fill:#fe0002;stroke:#000000;" x="109.494032" xlink:href="#mafb4c47c91" y="869.383384"/> + <use style="fill:#fe0002;stroke:#000000;" x="109.69221" xlink:href="#mafb4c47c91" y="802.419095"/> + <use style="fill:#fe0002;stroke:#000000;" x="110.088565" xlink:href="#mafb4c47c91" y="743.888278"/> + <use style="fill:#fe0002;stroke:#000000;" x="110.881275" xlink:href="#mafb4c47c91" y="690.455307"/> + <use style="fill:#fe0002;stroke:#000000;" x="112.466696" xlink:href="#mafb4c47c91" y="636.188429"/> + <use style="fill:#fe0002;stroke:#000000;" x="115.637538" xlink:href="#mafb4c47c91" y="582.598117"/> + <use style="fill:#fe0002;stroke:#000000;" x="121.979221" xlink:href="#mafb4c47c91" y="533.130136"/> + <use style="fill:#fe0002;stroke:#000000;" x="134.662587" xlink:href="#mafb4c47c91" y="481.766198"/> + <use style="fill:#fe0002;stroke:#000000;" x="160.02932" xlink:href="#mafb4c47c91" y="430.558617"/> + <use style="fill:#fe0002;stroke:#000000;" x="210.762786" xlink:href="#mafb4c47c91" y="379.896813"/> + <use style="fill:#fe0002;stroke:#000000;" x="312.229717" xlink:href="#mafb4c47c91" y="330.006962"/> + <use style="fill:#fe0002;stroke:#000000;" x="515.163581" xlink:href="#mafb4c47c91" y="279.877166"/> + <use style="fill:#fe0002;stroke:#000000;" x="921.031307" xlink:href="#mafb4c47c91" y="230.018722"/> + </g> + </g> + <g id="line2d_27"> + <path clip-path="url(#p3d8ae046f8)" d="M 109.394943 910.921383 +L 109.494032 865.858948 +L 109.69221 804.558931 +L 110.088565 734.888379 +L 110.881275 671.857612 +L 112.466696 605.396814 +L 115.637538 539.37657 +L 121.979221 471.527239 +L 134.662587 402.981673 +L 160.02932 332.091729 +L 210.762786 262.416751 +L 312.229717 192.659906 +L 515.163581 122.761578 +L 921.031307 52.756246 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + <defs> + <path d="M 0 -4.5 +L -4.5 4.5 +L 4.5 4.5 +z +" id="m19b99d2f82" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m19b99d2f82" y="910.921383"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.494032" xlink:href="#m19b99d2f82" y="865.858948"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.69221" xlink:href="#m19b99d2f82" y="804.558931"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="110.088565" xlink:href="#m19b99d2f82" y="734.888379"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="110.881275" xlink:href="#m19b99d2f82" y="671.857612"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="112.466696" xlink:href="#m19b99d2f82" y="605.396814"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="115.637538" xlink:href="#m19b99d2f82" y="539.37657"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="121.979221" xlink:href="#m19b99d2f82" y="471.527239"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="134.662587" xlink:href="#m19b99d2f82" y="402.981673"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="160.02932" xlink:href="#m19b99d2f82" y="332.091729"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="210.762786" xlink:href="#m19b99d2f82" y="262.416751"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="312.229717" xlink:href="#m19b99d2f82" y="192.659906"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="515.163581" xlink:href="#m19b99d2f82" y="122.761578"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m19b99d2f82" y="52.756246"/> + </g> + </g> + <g id="line2d_28"> + <path clip-path="url(#p3d8ae046f8)" d="M 109.394943 945.662255 +L 109.494032 915.956292 +L 109.69221 877.439239 +L 110.088565 837.537585 +L 110.881275 802.891118 +L 112.466696 766.718444 +L 115.637538 731.938237 +L 121.979221 697.020356 +L 134.662587 662.082809 +L 160.02932 625.993722 +L 210.762786 591.079283 +L 312.229717 555.800748 +L 515.163581 520.650421 +L 921.031307 485.687674 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + <defs> + <path d="M -0 6.363961 +L 6.363961 0 +L 0 -6.363961 +L -6.363961 -0 +z +" id="m10060ec369" style="stroke:#000000;stroke-linejoin:miter;"/> + </defs> + <g clip-path="url(#p3d8ae046f8)"> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.394943" xlink:href="#m10060ec369" y="945.662255"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.494032" xlink:href="#m10060ec369" y="915.956292"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="109.69221" xlink:href="#m10060ec369" y="877.439239"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="110.088565" xlink:href="#m10060ec369" y="837.537585"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="110.881275" xlink:href="#m10060ec369" y="802.891118"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="112.466696" xlink:href="#m10060ec369" y="766.718444"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="115.637538" xlink:href="#m10060ec369" y="731.938237"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="121.979221" xlink:href="#m10060ec369" y="697.020356"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="134.662587" xlink:href="#m10060ec369" y="662.082809"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="160.02932" xlink:href="#m10060ec369" y="625.993722"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="210.762786" xlink:href="#m10060ec369" y="591.079283"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="312.229717" xlink:href="#m10060ec369" y="555.800748"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="515.163581" xlink:href="#m10060ec369" y="520.650421"/> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="921.031307" xlink:href="#m10060ec369" y="485.687674"/> + </g> + </g> + <g id="patch_3"> + <path d="M 68.813125 1005.12 +L 68.813125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 961.613125 1005.12 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 68.813125 1005.12 +L 961.613125 1005.12 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 68.813125 7.2 +L 961.613125 7.2 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 586.274688 992.12 +L 943.413125 992.12 +Q 948.613125 992.12 948.613125 986.92 +L 948.613125 836.8675 +Q 948.613125 831.6675 943.413125 831.6675 +L 586.274688 831.6675 +Q 581.074687 831.6675 581.074687 836.8675 +L 581.074687 986.92 +Q 581.074687 992.12 586.274688 992.12 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_29"> + <path d="M 591.474687 852.723437 +L 643.474687 852.723437 +" style="fill:none;stroke:#fe0002;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_30"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="617.474687" xlink:href="#mafb4c47c91" y="852.723437"/> + </g> + </g> + <g id="text_15"> + <!-- Pairing comparisons --> + <defs> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="DejaVuSans-80"/> + <path d="M 48.78125 52.59375 +L 48.78125 44.1875 +Q 44.96875 46.296875 41.140625 47.34375 +Q 37.3125 48.390625 33.40625 48.390625 +Q 24.65625 48.390625 19.8125 42.84375 +Q 14.984375 37.3125 14.984375 27.296875 +Q 14.984375 17.28125 19.8125 11.734375 +Q 24.65625 6.203125 33.40625 6.203125 +Q 37.3125 6.203125 41.140625 7.25 +Q 44.96875 8.296875 48.78125 10.40625 +L 48.78125 2.09375 +Q 45.015625 0.34375 40.984375 -0.53125 +Q 36.96875 -1.421875 32.421875 -1.421875 +Q 20.0625 -1.421875 12.78125 6.34375 +Q 5.515625 14.109375 5.515625 27.296875 +Q 5.515625 40.671875 12.859375 48.328125 +Q 20.21875 56 33.015625 56 +Q 37.15625 56 41.109375 55.140625 +Q 45.0625 54.296875 48.78125 52.59375 +z +" id="DejaVuSans-99"/> + </defs> + <g transform="translate(664.274687 861.823437)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-99"/> + <use x="427.384766" xlink:href="#DejaVuSans-111"/> + <use x="488.566406" xlink:href="#DejaVuSans-109"/> + <use x="585.978516" xlink:href="#DejaVuSans-112"/> + <use x="649.455078" xlink:href="#DejaVuSans-97"/> + <use x="710.734375" xlink:href="#DejaVuSans-114"/> + <use x="751.847656" xlink:href="#DejaVuSans-105"/> + <use x="779.630859" xlink:href="#DejaVuSans-115"/> + <use x="831.730469" xlink:href="#DejaVuSans-111"/> + <use x="892.912109" xlink:href="#DejaVuSans-110"/> + <use x="956.291016" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_31"> + <path d="M 591.474687 890.886562 +L 643.474687 890.886562 +" style="fill:none;stroke:#fe0002;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_32"> + <g> + <use style="fill:#fe0002;stroke:#000000;" x="617.474687" xlink:href="#mafb4c47c91" y="890.886562"/> + </g> + </g> + <g id="text_16"> + <!-- Pairing links --> + <defs> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="DejaVuSans-108"/> + <path d="M 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 31.109375 +L 44.921875 54.6875 +L 56.390625 54.6875 +L 27.390625 29.109375 +L 57.625 0 +L 45.90625 0 +L 18.109375 26.703125 +L 18.109375 0 +L 9.078125 0 +z +" id="DejaVuSans-107"/> + </defs> + <g transform="translate(664.274687 899.986562)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-80"/> + <use x="55.802734" xlink:href="#DejaVuSans-97"/> + <use x="117.082031" xlink:href="#DejaVuSans-105"/> + <use x="144.865234" xlink:href="#DejaVuSans-114"/> + <use x="185.978516" xlink:href="#DejaVuSans-105"/> + <use x="213.761719" xlink:href="#DejaVuSans-110"/> + <use x="277.140625" xlink:href="#DejaVuSans-103"/> + <use x="340.617188" xlink:href="#DejaVuSans-32"/> + <use x="372.404297" xlink:href="#DejaVuSans-108"/> + <use x="400.1875" xlink:href="#DejaVuSans-105"/> + <use x="427.970703" xlink:href="#DejaVuSans-110"/> + <use x="491.349609" xlink:href="#DejaVuSans-107"/> + <use x="549.259766" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_33"> + <path d="M 591.474687 929.049688 +L 643.474687 929.049688 +" style="fill:none;stroke:#15b01a;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_34"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="617.474687" xlink:href="#m19b99d2f82" y="929.049688"/> + </g> + </g> + <g id="text_17"> + <!-- Smooth comparisons --> + <defs> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +z +" id="DejaVuSans-83"/> + <path d="M 54.890625 33.015625 +L 54.890625 0 +L 45.90625 0 +L 45.90625 32.71875 +Q 45.90625 40.484375 42.875 44.328125 +Q 39.84375 48.1875 33.796875 48.1875 +Q 26.515625 48.1875 22.3125 43.546875 +Q 18.109375 38.921875 18.109375 30.90625 +L 18.109375 0 +L 9.078125 0 +L 9.078125 75.984375 +L 18.109375 75.984375 +L 18.109375 46.1875 +Q 21.34375 51.125 25.703125 53.5625 +Q 30.078125 56 35.796875 56 +Q 45.21875 56 50.046875 50.171875 +Q 54.890625 44.34375 54.890625 33.015625 +z +" id="DejaVuSans-104"/> + </defs> + <g transform="translate(664.274687 938.149688)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-99"/> + <use x="472.607422" xlink:href="#DejaVuSans-111"/> + <use x="533.789062" xlink:href="#DejaVuSans-109"/> + <use x="631.201172" xlink:href="#DejaVuSans-112"/> + <use x="694.677734" xlink:href="#DejaVuSans-97"/> + <use x="755.957031" xlink:href="#DejaVuSans-114"/> + <use x="797.070312" xlink:href="#DejaVuSans-105"/> + <use x="824.853516" xlink:href="#DejaVuSans-115"/> + <use x="876.953125" xlink:href="#DejaVuSans-111"/> + <use x="938.134766" xlink:href="#DejaVuSans-110"/> + <use x="1001.513672" xlink:href="#DejaVuSans-115"/> + </g> + </g> + <g id="line2d_35"> + <path d="M 591.474687 967.212813 +L 643.474687 967.212813 +" style="fill:none;stroke:#15b01a;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> + </g> + <g id="line2d_36"> + <g> + <use style="fill:#15b01a;stroke:#000000;stroke-linejoin:miter;" x="617.474687" xlink:href="#m10060ec369" y="967.212813"/> + </g> + </g> + <g id="text_18"> + <!-- Smooth links --> + <g transform="translate(664.274687 976.312813)scale(0.26 -0.26)"> + <use xlink:href="#DejaVuSans-83"/> + <use x="63.476562" xlink:href="#DejaVuSans-109"/> + <use x="160.888672" xlink:href="#DejaVuSans-111"/> + <use x="222.070312" xlink:href="#DejaVuSans-111"/> + <use x="283.251953" xlink:href="#DejaVuSans-116"/> + <use x="322.460938" xlink:href="#DejaVuSans-104"/> + <use x="385.839844" xlink:href="#DejaVuSans-32"/> + <use x="417.626953" xlink:href="#DejaVuSans-108"/> + <use x="445.410156" xlink:href="#DejaVuSans-105"/> + <use x="473.193359" xlink:href="#DejaVuSans-110"/> + <use x="536.572266" xlink:href="#DejaVuSans-107"/> + <use x="594.482422" xlink:href="#DejaVuSans-115"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p3d8ae046f8"> + <rect height="997.92" width="892.8" x="68.813125" y="7.2"/> + </clipPath> + </defs> +</svg> diff --git a/smooth_heap.py b/smooth_heap.py new file mode 100644 index 0000000000000000000000000000000000000000..f1edb871b96cb007a64cfb8757f7e70f9718be5c --- /dev/null +++ b/smooth_heap.py @@ -0,0 +1,313 @@ +#!/usr/bin/python3 +from node import Node +import math +from pairing_heap_interface import PairingHeapInterface + +class SmoothHeapCorey(PairingHeapInterface): + forest=[] #list storing roots of all top-level trees not in buffer + buffer=[] #decrease buffer + minNode=None + size=0 + + def __init__(self, root=None): + self.forest=[] + self.buffer=[] + if root!=None: + root.parent=None + root.nextSibling=root + self.minNode=root + self.forest+=[root] + #self.size=0 + + def make_heap(self): + #this is equivalent to init + pass + + def find_min(self): + return self.minNode + + def listPreOrderHelper(self, root): + res=[] + if root.rightChild==None: + return [root.key] + else: + current=root.rightChild + res+=[root.key, self.listPreOrderHelper(current)] + while current.nextSibling!=root.rightChild: + current=current.nextSibling + res+=[self.listPreOrderHelper(current)] + return [res] + + def listPreOrder(self): + res=[] + buf=[] + for item in self.forest: + res+=self.listPreOrderHelper(item) + print(res) + for elem in self.buffer: + buf+=self.listPreOrderHelper(elem) + print("buffer: {}".format(buf)) + + def stable_link_left(self, left, right): + #left node becomes parent of right node + #print("left-linking nodes {} and {}".format(left.key, right.key)) + if left.rightChild!=None: + right.nextSibling = left.rightChild.nextSibling + left.rightChild.nextSibling=right + else: + right.nextSibling = right + left.rightChild=right + right.parent=left + + def stable_link_right(self, left, right): + #right node becomes parent of left node + if right.rightChild==None: + right.rightChild=left + left.nextSibling=left + else: + left.nextSibling=right.rightChild.nextSibling + right.rightChild.nextSibling=left + left.parent=right + + def insert(self, node): + #concatenates node to list of trees in pool + if node==None: + return (0,0)#no comparisons, no links + node.nextSibling=node + node.parent=None + self.forest+=[node] + self.size+=1 + if self.minNode==None or node.key<=self.minNode.key: + self.minNode=node + #print("Result of insert is {}.".format(self.listInorder())) + return (1, 0)#1 comparison, no links + + def merge(self, heap2): + if heap2==None: + return(0,0) + compCount=0 + linkCount=0 + if len(self.forest)+len(self.buffer)>len(heap2.forest)+len(heap2.buffer): + #first heap larger than second + (cc,lc)=heap2.clean_buffer() + linkCount+=lc + compCount+=cc+1#accounting for minNode comparison (at the end) as well + self.forest+=heap2.forest + else: + (cc,lc)=self.clean_buffer() + linkCount+=lc + compCount+=cc+1#accounting for minNode comparison (at the end) as well + self.forest=heap2.forest+self.forest + self.buffer=heap2.buffer + self.size+=heap2.size + if(self.minNode.key>=heap2.minNode.key): + self.minNode=heap2.minNode + return (compCount, linkCount) + + def delete_min(self): + (compCount, linkCount)=self.clean_buffer() + if self.minNode==None or len(self.forest)+len(self.buffer)==0:#this should be the same + return (None, 0, 0) + minKey = self.minNode.key + minKeyNode = self.minNode + minNodeChildren=[] + + if self.minNode.rightChild!=None: + minNodeChildren+=[self.minNode.rightChild] + self.minNode.rightChild.parent=None + current=self.minNode.rightChild.nextSibling + self.minNode.rightChild.nextSibling=self.minNode.rightChild + + while current!=self.minNode.rightChild: + minNodeChildren+=[current] + tempNode = current + current=current.nextSibling + tempNode.nextSibling = tempNode + tempNode.parent = None + idx = self.forest.index(self.minNode)#should we count this somehow? + self.forest = self.forest[:idx]+minNodeChildren+self.forest[idx+1:]#replace minNode with its children + self.size-=1 + (cc, lc)=self.treapify() + return (minKeyNode, compCount+cc, linkCount+lc) + + def treapify(self): + #links roots in pool (forest) into treap and returns number of links/comparisons + #this uses the pseudocode of delete-min from https://arxiv.org/abs/1802.05471 + linkCount=0#counts only number of links + compCount=0#counts only number of comparisons + if len(self.forest)==0: #pool is empty + self.minNode=None + return (compCount, linkCount) + + elif len(self.forest)==1: + self.minNode=self.forest[0] + return (compCount, linkCount) + + else: + i=0 + curr_forest=self.forest + while i<len(curr_forest)-1: + compCount+=1#first if-else comparison + if curr_forest[i].key<curr_forest[i+1].key: + i=i+1 + else: + skip=False + while i>0: + compCount+=1 + linkCount+=1 + if curr_forest[i-1].key>curr_forest[i+1].key: + #stable-link predecessor as parent of current node + self.stable_link_left(curr_forest[i-1], curr_forest[i]) + #remove node at index i from top-list + curr_forest=curr_forest[:i]+curr_forest[i+1:] + i=i-1 + else: + #stable-link successor as parent of current node + self.stable_link_right(curr_forest[i], curr_forest[i+1]) + #remove node at index i from top-list + curr_forest=curr_forest[:i]+curr_forest[i+1:] + #i=i+1 + skip=True + break + if not skip:#i==0 + #stable-link current as leftmost child of successor + self.stable_link_right(curr_forest[i], curr_forest[i+1]) + #remove node from top-list + curr_forest=curr_forest[i+1:] + linkCount+=1 + + while i>0: + #stable-link predecessor as parent of current node + self.stable_link_left(curr_forest[i-1], curr_forest[i]) + curr_forest=curr_forest[:i] + linkCount+=1 + i=i-1 + self.forest=curr_forest + assert len(self.forest)==1 + self.minNode=self.forest[0] + return (compCount, linkCount) + + + def mergesort(self, llist): + #standard mergesort, implemented to count comparisons properly + if len(llist)<2: + return 0, llist + split_idx = int(math.floor(len(llist)/2)) + compsleft, lleft = self.mergesort(llist[:split_idx]) + compsright, lright = self.mergesort(llist[split_idx:]) + l=0 + r=0 + comps = compsleft+compsright + sorted = [] + while l+r<len(llist): + if r==len(lright) or (l<len(lleft) and lleft[l].key<=lright[r].key): + sorted+=[lleft[l]] + l+=1 + else: + sorted+=[lright[r]] + r+=1 + comps+=1 + return comps, sorted + + def clean_buffer(self): + if len(self.buffer)==0:#buffer is empty + return (0,0) + comps,self.buffer = self.mergesort(self.buffer) + self.buffer.reverse() + n=len(self.buffer) + + while len(self.buffer)>1: + self.stable_link_right(self.buffer[0], self.buffer[1]) + self.buffer=self.buffer[1:] + + treapified = self.buffer[0] + self.buffer=[] + (compCount,linkCount)=self.merge(SmoothHeapCorey(treapified)) + + return (compCount+comps, linkCount+n-1) #(n-1)links while consolidating + + def decrease_key(self, node, diff): + assert node!=None + linkCount=0 + compCount=0 + node.key = node.key-diff + #if self.minNode==None or node.key<self.minNode.key: + # self.minNode=node + #compCount+=1 + + if node.parent==None and node.rightChild==None: #node is root and has no children + #could just leave this in place + if node in self.forest: + idx = self.forest.index(node) + self.forest=self.forest[:idx]+self.forest[idx+1:] + self.buffer+=[node] + elif node in self.buffer: + pass + else: + self.listPreOrder() + raise Exception("node with key {} is not in heap".format(node.key)) + + elif node.parent==None: #node is a root and has children + leftChild=node.rightChild.nextSibling + if leftChild.nextSibling!=leftChild: + node.rightChild.nextSibling=leftChild.nextSibling#cut out leftmost child + else: + node.rightChild=None + leftChild.nextSibling=leftChild + leftChild.parent=None + if node in self.forest: + idx = self.forest.index(node)#remove node from pool and replace with leftChild + self.forest = self.forest[:idx] + [leftChild] + self.forest[idx+1:] + self.buffer+=[node] + elif node in self.buffer: + pass + else: + self.listPreOrder() + raise Exception("node with key {} is not in heap".format(node.key)) + else:#node is not a root + leftChild=None + if node.rightChild!=None: + leftChild=node.rightChild.nextSibling + leftChild.parent=node.parent + current=node.parent.rightChild + + if node.nextSibling==node and leftChild!=None:#node not a leaf and has no siblings + if leftChild.nextSibling!=leftChild: + node.rightChild.nextSibling=leftChild.nextSibling#cut out leftmost child + else: + node.rightChild=None + leftChild.nextSibling=leftChild + node.parent.rightChild = leftChild + + elif leftChild!=None:#node is not a leaf and has siblings + if leftChild.nextSibling!=leftChild: + node.rightChild.nextSibling=leftChild.nextSibling#cut out leftmost child + else: + node.rightChild=None + while current.nextSibling!=node:#find predecessor of node + current=current.nextSibling + current.nextSibling=leftChild + leftChild.nextSibling=node.nextSibling + if node.parent.rightChild==node: + node.parent.rightChild=leftChild + + elif node.nextSibling!=node:#node is leaf and has siblings + while current.nextSibling!=node: + current=current.nextSibling + current.nextSibling=node.nextSibling + if node.parent.rightChild==node: + node.parent.rightChild=current + + else: #node is leaf and has no siblings + node.parent.rightChild=None + + node.parent=None + node.nextSibling=node + self.buffer+=[node] + + if len(self.buffer)>math.ceil(math.log(self.size,2)): + #(cc2, lc2)=self.clean_buffer() + (cc2, lc2)=self.clean_buffer() + compCount+=cc2 + linkCount+=lc2 + return (compCount, linkCount) diff --git a/smooth_heap_l.py b/smooth_heap_l.py new file mode 100644 index 0000000000000000000000000000000000000000..0c62c78bbe63370868a9f392e8eaac97e1ce05ae --- /dev/null +++ b/smooth_heap_l.py @@ -0,0 +1,226 @@ +#!/usr/bin/python3 +from node import Node +import math +from pairing_heap_interface import PairingHeapInterface + +class SmoothHeapL(PairingHeapInterface): + forest=[] #list storing roots of all top-level trees not in buffer + minNode=None + + def __init__(self, root=None): + self.forest=[] + if root!=None: + root.parent=None + root.nextSibling=root + self.minNode=root + self.forest+=[root] + + def make_heap(self): + #this is equivalent to init + pass + + def find_min(self): + return self.minNode + + def listPreOrderHelper(self, root): + res=[] + if root.rightChild==None: + return [root.key] + else: + current=root.rightChild + res+=[root.key, self.listPreOrderHelper(current)] + while current.nextSibling!=root.rightChild: + current=current.nextSibling + res+=[self.listPreOrderHelper(current)] + return [res] + + def listPreOrder(self): + res=[] + buf=[] + for item in self.forest: + res+=self.listPreOrderHelper(item) + print(res) + + def stable_link_left(self, left, right): + #left node becomes parent of right node + #print("left-linking nodes {} and {}".format(left.key, right.key)) + if left.rightChild!=None: + right.nextSibling = left.rightChild.nextSibling + left.rightChild.nextSibling=right + else: + right.nextSibling = right + left.rightChild=right + right.parent=left + + def stable_link_right(self, left, right): + #right node becomes parent of left node + if right.rightChild==None: + right.rightChild=left + left.nextSibling=left + else: + left.nextSibling=right.rightChild.nextSibling + right.rightChild.nextSibling=left + left.parent=right + + def insert(self, node): + #concatenates node to list of trees in pool + if node==None: + return (0,0)#no comparisons, no links + node.nextSibling=node + node.parent=None + self.forest+=[node] + #if self.minNode==None or node.key<self.minNode.key: + # self.minNode=node + #print("Result of insert is {}.".format(self.listInorder())) + return (0, 0)#1 comparison, no links + + def merge(self, heap2): + if heap2==None: + return(0,0) + compCount=0 + linkCount=0 + if len(self.forest)>len(heap2.forest): + #first heap larger than second + self.forest+=heap2.forest + else: + self.forest=heap2.forest+self.forest + #if(self.minNode.key>heap2.minNode.key): + # self.minNode=heap2.minNode + return (compCount, linkCount)#TODO add 1 if comparing minnode + + def delete_min(self): + if (len(self.forest)==0): + return(None,0,0) + (cc, lc)=self.treapify() + assert len(self.forest)==1 + minKey = self.minNode.key + minKeyNode = self.minNode + minNodeChildren=[] + + if self.minNode.rightChild!=None: + minNodeChildren+=[self.minNode.rightChild] + self.minNode.rightChild.parent=None + current=self.minNode.rightChild.nextSibling + self.minNode.rightChild.nextSibling=self.minNode.rightChild + + while current!=self.minNode.rightChild: + minNodeChildren+=[current] + tempNode = current + current=current.nextSibling + tempNode.nextSibling = tempNode + tempNode.parent = None + self.forest = minNodeChildren + #print('###') + #print(minKeyNode.key) + return (minKeyNode, cc, lc) + + def treapify(self): + #links roots in pool (forest) into treap and returns number of links/comparisons + #this uses the pseudocode of delete-min from https://arxiv.org/abs/1802.05471 + linkCount=0#counts only number of links + compCount=0#counts only number of comparisons + fs = len(self.forest) + if len(self.forest)==0: #pool is empty + self.minNode=None + return (compCount, linkCount) + + elif len(self.forest)==1: + self.minNode=self.forest[0] + return (compCount, linkCount) + + else: + i=0 + curr_forest=self.forest + while i<len(curr_forest)-1: + compCount+=1#first if-else comparison + if curr_forest[i].key<curr_forest[i+1].key: + i=i+1 + else: + skip=False + while i>0: + compCount+=1 + linkCount+=1 + if curr_forest[i-1].key>curr_forest[i+1].key: + #stable-link predecessor as parent of current node + self.stable_link_left(curr_forest[i-1], curr_forest[i]) + #remove node at index i from top-list + curr_forest=curr_forest[:i]+curr_forest[i+1:] + i=i-1 + else: + #stable-link successor as parent of current node + self.stable_link_right(curr_forest[i], curr_forest[i+1]) + #remove node at index i from top-list + curr_forest=curr_forest[:i]+curr_forest[i+1:] + #i=i+1 + skip=True + break + if not skip:#i==0 + #stable-link current as leftmost child of successor + self.stable_link_right(curr_forest[i], curr_forest[i+1]) + #remove node from top-list + curr_forest=curr_forest[i+1:] + linkCount+=1 + + while i>0: + #stable-link predecessor as parent of current node + self.stable_link_left(curr_forest[i-1], curr_forest[i]) + curr_forest=curr_forest[:i] + linkCount+=1 + i=i-1 + self.forest=curr_forest + assert len(self.forest)==1 + self.minNode=self.forest[0] + assert(fs-1 == linkCount) + return (compCount, linkCount) + + + def mergesort(self, llist): + #standard mergesort, implemented to count comparisons properly + if len(llist)<2: + return 0, llist + split_idx = int(math.floor(len(llist)/2)) + compsleft, lleft = self.mergesort(llist[:split_idx]) + compsright, lright = self.mergesort(llist[split_idx:]) + l=0 + r=0 + comps = compsleft+compsright + sorted = [] + while l+r<len(llist): + if r==len(lright) or (l<len(lleft) and lleft[l].key<=lright[r].key): + sorted+=[lleft[l]] + l+=1 + else: + sorted+=[lright[r]] + r+=1 + comps+=1 + return comps, sorted + + def decrease_key(self, node, diff): + assert node!=None + node.key = node.key-diff + + #concatenates node to list of trees in pool + + if node.parent==None: #node is a root and has children + if node in self.forest: + pass #leave in-place + else: + self.listPreOrder() + raise Exception("node with key {} is not in heap".format(node.key)) + else:#node is not a root + + if node.nextSibling==node:#node has no siblings + node.parent.rightChild=None + + else:#node has siblings + current=node.nextSibling + while current.nextSibling!=node:#find predecessor of node + current=current.nextSibling + current.nextSibling=node.nextSibling + if node.parent.rightChild==node: + node.parent.rightChild=current + + node.parent=None + node.nextSibling=node + self.forest+=[node] + return (0, 0)