[geos-commits] [SCM] GEOS branch master updated. f14b2da0ff282d1bdd6b3dafd17783acca1c1938

git at osgeo.org git at osgeo.org
Tue Nov 17 11:34:31 PST 2020


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, master has been updated
       via  f14b2da0ff282d1bdd6b3dafd17783acca1c1938 (commit)
      from  4106be37fe1f9b4f0045df676a2dcbc1ed47ddee (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f14b2da0ff282d1bdd6b3dafd17783acca1c1938
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date:   Tue Nov 17 11:33:21 2020 -0800

    Sort STRtree inputs in the X direction before slicing, then
    the Y direction, matching JTS behaviour. Remove old virtual
    method set-up for more direct code on the class in question.
    Strip out old comparator but retain the comment thread on
    why it got so complex.

diff --git a/include/geos/index/strtree/AbstractSTRtree.h b/include/geos/index/strtree/AbstractSTRtree.h
index 6f0f18c..5a5cef2 100644
--- a/include/geos/index/strtree/AbstractSTRtree.h
+++ b/include/geos/index/strtree/AbstractSTRtree.h
@@ -156,7 +156,7 @@ private:
         BoundableList* boundablesOfALevel,
         int level);
 
-    virtual std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input) = 0;
+    std::unique_ptr<BoundableList> sortBoundablesY(const BoundableList* input);
 
     bool remove(const void* searchBounds, AbstractNode& node, void* item);
     bool removeItem(AbstractNode& node, void* item);
@@ -263,16 +263,6 @@ public:
         assert(newNodeCapacity > 1);
     }
 
-    static bool
-    compareDoubles(double a, double b)
-    {
-        // NOTE - strk:
-        // Ternary operation is a workaround for
-        // a probable MingW bug, see
-        // http://trac.osgeo.org/geos/ticket/293
-        return (a < b) ? true : false;
-    }
-
     virtual ~AbstractSTRtree();
 
     /** \brief
diff --git a/include/geos/index/strtree/SIRtree.h b/include/geos/index/strtree/SIRtree.h
index fc8ba26..64be4cf 100644
--- a/include/geos/index/strtree/SIRtree.h
+++ b/include/geos/index/strtree/SIRtree.h
@@ -111,7 +111,7 @@ protected:
         return intersectsOp;
     }
 
-    std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input) override;
+    std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input);
 
 private:
     IntersectsOp* intersectsOp;
diff --git a/include/geos/index/strtree/STRtree.h b/include/geos/index/strtree/STRtree.h
index 1ceddef..6f83c93 100644
--- a/include/geos/index/strtree/STRtree.h
+++ b/include/geos/index/strtree/STRtree.h
@@ -85,7 +85,8 @@ private:
 
     STRIntersectsOp intersectsOp;
 
-    std::unique_ptr<BoundableList> sortBoundables(const BoundableList* input) override;
+    std::unique_ptr<BoundableList> sortBoundablesY(const BoundableList* input);
+    std::unique_ptr<BoundableList> sortBoundablesX(const BoundableList* input);
 
     std::unique_ptr<BoundableList> createParentBoundablesFromVerticalSlice(
         BoundableList* childBoundables,
diff --git a/src/index/strtree/AbstractSTRtree.cpp b/src/index/strtree/AbstractSTRtree.cpp
index ca4722c..1397b56 100644
--- a/src/index/strtree/AbstractSTRtree.cpp
+++ b/src/index/strtree/AbstractSTRtree.cpp
@@ -13,6 +13,7 @@
  *
  **********************************************************************/
 
+#include <geos/geom/Envelope.h>
 #include <geos/index/strtree/AbstractSTRtree.h>
 #include <geos/index/strtree/AbstractNode.h>
 #include <geos/index/strtree/ItemBoundable.h>
@@ -70,7 +71,7 @@ AbstractSTRtree::createParentBoundables(BoundableList* childBoundables,
     std::unique_ptr< BoundableList > parentBoundables(new BoundableList());
     parentBoundables->push_back(createNode(newLevel));
 
-    std::unique_ptr< BoundableList > sortedChildBoundables(sortBoundables(childBoundables));
+    std::unique_ptr< BoundableList > sortedChildBoundables(sortBoundablesY(childBoundables));
 
     for(Boundable* childBoundable: *sortedChildBoundables)
     {
@@ -358,6 +359,29 @@ AbstractSTRtree::itemsTree()
     return valuesTree;
 }
 
+/*private*/
+std::unique_ptr<BoundableList>
+AbstractSTRtree::sortBoundablesY(const BoundableList* input)
+{
+    assert(input);
+    std::unique_ptr<BoundableList> output(new BoundableList(*input));
+    assert(output->size() == input->size());
+
+    struct {
+        bool operator()(Boundable* a, Boundable* b) const
+        {
+            const geom::Envelope* ea = static_cast<const geom::Envelope*>(a->getBounds());
+            const geom::Envelope* eb = static_cast<const geom::Envelope*>(b->getBounds());
+            double ya = (ea->getMinY() + ea->getMaxY()) / 2.0;
+            double yb = (eb->getMinY() + eb->getMaxY()) / 2.0;
+            return ya < yb ? true : false;
+        }
+    } nodeSortByY;
+
+    sort(output->begin(), output->end(), nodeSortByY);
+    return output;
+}
+
 } // namespace geos.index.strtree
 } // namespace geos.index
 } // namespace geos
diff --git a/src/index/strtree/SIRtree.cpp b/src/index/strtree/SIRtree.cpp
index c7692bf..ee3e5d0 100644
--- a/src/index/strtree/SIRtree.cpp
+++ b/src/index/strtree/SIRtree.cpp
@@ -31,8 +31,8 @@ namespace strtree { // geos.index.strtree
 static bool
 compareSIRBoundables(Boundable* a, Boundable* b)
 {
-    return AbstractSTRtree::compareDoubles(((Interval*)a->getBounds())->getCentre(),
-                                           ((Interval*)b->getBounds())->getCentre());
+    return ((Interval*)a->getBounds())->getCentre() <
+           ((Interval*)b->getBounds())->getCentre() ? true : false;
 }
 
 /*protected*/
diff --git a/src/index/strtree/STRtree.cpp b/src/index/strtree/STRtree.cpp
index 7186dbc..ce89b64 100644
--- a/src/index/strtree/STRtree.cpp
+++ b/src/index/strtree/STRtree.cpp
@@ -37,59 +37,6 @@ namespace index { // geos.index
 namespace strtree { // geos.index.strtree
 
 
-static bool
-yComparator(Boundable* a, Boundable* b)
-{
-    assert(a);
-    assert(b);
-    const void* aBounds = a->getBounds();
-    const void* bBounds = b->getBounds();
-    assert(aBounds);
-    assert(bBounds);
-    const Envelope* aEnv = static_cast<const Envelope*>(aBounds);
-    const Envelope* bEnv = static_cast<const Envelope*>(bBounds);
-
-    // NOTE - mloskot:
-    // The problem of instability is directly related to mathematical definition of
-    // "strict weak ordering" as a fundamental requirement for binary predicate:
-    //
-    // if a is less than b then b is not less than a,
-    // if a is less than b and b is less than c
-    // then a is less than c,
-    // and so on.
-    //
-    // For some very low values, this predicate does not fulfill this requiremnet,
-
-    // NOTE - strk:
-    // It seems that the '<' comparison here gives unstable results.
-    // In particular, when inlines are on (for Envelope::getMinY and getMaxY)
-    // things are fine, but when they are off we can even get a memory corruption !!
-    //return STRtree::centreY(aEnv) < STRtree::centreY(bEnv);
-
-    // NOTE - mloskot:
-    // This comparison does not answer if a is "lower" than b
-    // what is required for sorting. This comparison only answeres
-    // if a and b are "almost the same" or different
-
-    /*NOTE - cfis
-      In debug mode VC++ checks the predicate in both directions.
-
-      If !_Pred(_Left, _Right)
-      Then an exception is thrown if _Pred(_Right, _Left).
-      See xutility around line 320:
-
-      	bool __CLRCALL_OR_CDECL _Debug_lt_pred(_Pr _Pred, _Ty1& _Left, _Ty2& _Right,
-    	const wchar_t *_Where, unsigned int _Line)*/
-
-    //return std::fabs( STRtree::centreY(aEnv) - STRtree::centreY(bEnv) ) < 1e-30
-
-    // NOTE - strk:
-    // See http://trac.osgeo.org/geos/ticket/293
-    // as for why simple comparison (<) isn't used here
-    return AbstractSTRtree::compareDoubles(STRtree::centreY(aEnv),
-                                           STRtree::centreY(bEnv));
-}
-
 /*public*/
 STRtree::STRtree(size_t p_nodeCapacity): AbstractSTRtree(p_nodeCapacity)
 {
@@ -108,7 +55,7 @@ STRtree::createParentBoundables(BoundableList* childBoundables, int newLevel)
     assert(!childBoundables->empty());
     int minLeafCount = (int) ceil((double)childBoundables->size() / (double)getNodeCapacity());
 
-    std::unique_ptr<BoundableList> sortedChildBoundables(sortBoundables(childBoundables));
+    std::unique_ptr<BoundableList> sortedChildBoundables(sortBoundablesX(childBoundables));
 
     std::unique_ptr< vector<BoundableList*> > verticalSlicesV(
         verticalSlices(sortedChildBoundables.get(), (int)ceil(sqrt((double)minLeafCount)))
@@ -411,15 +358,95 @@ STRtree::insert(const Envelope* itemEnv, void* item)
     AbstractSTRtree::insert(itemEnv, item);
 }
 
+// HISTORICAL NOTES - pramsey - 2020-11-17
+// http://trac.osgeo.org/geos/ticket/293
+// 10 years ago, a bug in MinGW resulted in a simple < comparison
+// not returning an expected result, and a lot of fiddling
+// with alternatives. I have returned to simpler logic
+// now but am retaining the comment history for posterity.
+
+// NOTE - mloskot:
+// The problem of instability is directly related to mathematical definition of
+// "strict weak ordering" as a fundamental requirement for binary predicate:
+//
+// if a is less than b then b is not less than a,
+// if a is less than b and b is less than c
+// then a is less than c,
+// and so on.
+//
+// For some very low values, this predicate does not fulfill this requiremnet,
+
+// NOTE - strk:
+// It seems that the '<' comparison here gives unstable results.
+// In particular, when inlines are on (for Envelope::getMinY and getMaxY)
+// things are fine, but when they are off we can even get a memory corruption !!
+// return STRtree::centreY(aEnv) < STRtree::centreY(bEnv);
+
+// NOTE - mloskot:
+// This comparison does not answer if a is "lower" than b
+// what is required for sorting. This comparison only answeres
+// if a and b are "almost the same" or different
+
+/*NOTE - cfis
+  In debug mode VC++ checks the predicate in both directions.
+
+  If !_Pred(_Left, _Right)
+  Then an exception is thrown if _Pred(_Right, _Left).
+  See xutility around line 320:
+
+    bool __CLRCALL_OR_CDECL _Debug_lt_pred(_Pr _Pred, _Ty1& _Left, _Ty2& _Right,
+    const wchar_t *_Where, unsigned int _Line)*/
+
+// return std::fabs( STRtree::centreY(aEnv) - STRtree::centreY(bEnv) ) < 1e-30
+
+// NOTE - strk:
+// See http://trac.osgeo.org/geos/ticket/293
+// as for why simple comparison (<) isn't used here
+
+
 /*private*/
 std::unique_ptr<BoundableList>
-STRtree::sortBoundables(const BoundableList* input)
+STRtree::sortBoundablesX(const BoundableList* input)
 {
     assert(input);
     std::unique_ptr<BoundableList> output(new BoundableList(*input));
     assert(output->size() == input->size());
 
-    sort(output->begin(), output->end(), yComparator);
+    struct {
+        bool operator()(Boundable* a, Boundable* b) const
+        {
+            const geom::Envelope* ea = static_cast<const geom::Envelope*>(a->getBounds());
+            const geom::Envelope* eb = static_cast<const geom::Envelope*>(b->getBounds());
+            double xa = (ea->getMinX() + ea->getMaxX()) / 2.0;
+            double xb = (eb->getMinX() + eb->getMaxX()) / 2.0;
+            return xa < xb ? true : false;
+        }
+    } nodeSortByX;
+
+    sort(output->begin(), output->end(), nodeSortByX);
+    return output;
+}
+
+/*private*/
+std::unique_ptr<BoundableList>
+STRtree::sortBoundablesY(const BoundableList* input)
+{
+    assert(input);
+    std::unique_ptr<BoundableList> output(new BoundableList(*input));
+    assert(output->size() == input->size());
+
+    struct {
+        bool operator()(Boundable* a, Boundable* b) const
+        {
+            const geom::Envelope* ea = static_cast<const geom::Envelope*>(a->getBounds());
+            const geom::Envelope* eb = static_cast<const geom::Envelope*>(b->getBounds());
+            double ya = (ea->getMinY() + ea->getMaxY()) / 2.0;
+            double yb = (eb->getMinY() + eb->getMaxY()) / 2.0;
+            return ya < yb ? true : false;
+        }
+    } nodeSortByY;
+
+    sort(output->begin(), output->end(), nodeSortByY);
     return output;
 }
 
diff --git a/tests/xmltester/tests/issue/issue-geos-488.xml b/tests/xmltester/tests/issue/issue-geos-488.xml
index 6c48a41..672322d 100644
--- a/tests/xmltester/tests/issue/issue-geos-488.xml
+++ b/tests/xmltester/tests/issue/issue-geos-488.xml
@@ -37,7 +37,7 @@
     </a>
     <test>
       <op name='union' arg1='A' >
-01060000000300000001030000000100000015000000F2AB10721F3E0340743421EB496E484097F444C11F3E034025AEBCA4586E4840CCF603D2843F0340765174A1586E4840835D0322853F0340C36E0F5B676E484032977910203E034040CD575E676E4840C193AE5F203E0340B791F217766E4840131F0372853F03406E31AA14766E4840803B03C2853F0340759944CE846E484078CC40E84F42034052BF9AC7846E4840EA326D8B504203401D78CE3AA26E48403A6ED4B41A450340E2230334A26E4840477DA8611A4503408878697A936E4840FEC590757F4603403745F776936E4840B66C9A217F4603400C415DBD846E4840458FB734E4470340F1B2E2B9846E4840E76F368BE34703406B9EAD46676E484031E12668194503406C569A4D676E4840156AFC14194503407040FF93586E4840B1D83E04B4430340A00F6997586E48403A83DFB1B34303402A9DCDDD496E4840F2AB10721F3E0340743421EB496E4840010300000001000000050000009351D4474949034027C85FB6846E48406F38609D4949034086C8F96F936E48405C6047B1AE4A0340227F6E6C936E4840B7B2F05AAE4A0340B480D4B2846E48409351D4474949034027C85FB6846E4840010300000008000000340000008DB20FCD273E0340559E0A7ED76F4840676279928D3F0340BA7FE5EDF46F484016998
 B6B283E03406C0E2EF1F46F4840B5E7080A293E03404612506412704840D8D514ACBD4303404A9AFB5612704840806492835842034008445D5A127048408858D22659420340B8D07DCD2F704840F888EA50BE4303404E231CCA2F704840FCEE55A3BE43034025DFAB833E704840AFA238CE23450340B2D241803E7048401F486F21244503408B31D1394D704840CCCD75A45349034040D7602F4D704840167F1C4D89460340FFC55E364D704840C1651EA189460340D4C7EDEF5B704840F71F96CDEE4703402BFD72EC5B704840AB496322EF470340F0A101A66A7048402387A54F5449034021787EA26A704840AAF53DA554490340CABF0C5C7970484060B64AD3B94A0340CD368158797048408A6BAE29BA4A03405C210F1288704840570D33B6E94E0340C9503A078870484009A86E5DE94E03401F6CAC4D797048402CD0AB71485703403F00213779704840E474261448570340A4CC927D6A7048402B536441AD580340F4A0B3796A7048407B7FF321AD5803401C780B916570484063CDDE9B775B0340CD31DC716A704840F24C3EADAA580340574EC66603704840169AEFD40F5A034042D4DE620370484086DEF9DC735B03402ED93A32D76F4840F92E99273E5E03405720422AD76F4840F0AB1DAC07610340ED7A03AFB96F484068C81149076103404DB670F5AA6F48405AC22326A2
 5F0340CEF481F9AA6F484025CD6488A25F0340A0BB14B3B96F48405A59B2EB13530340E0CCA41CAB6F48405AC5D14614530340D2A637D6B96F4840E03957FF495003403886AADDB96F48400F5AE1584A50034036093D97C86F48406384CF0F804D034067788E9EC86F48404F7F9BC7814D0340D9C5653E127048405F22AF17814D03403BEB43CBF46F48406022AF17814D03403BEB43CBF46F4840CB89B9BF804D03405375B211E66F4840655E3A27EC4703406906F11FE66F4840CA89B9BF804D03405375B211E66F4840380346EB1A4C034069A42AA2C86F4840C0D831A25049034034E549A9C86F4840F7F89D4C504903406558B7EFB96F4840C039DB99564203405A14F300BA6F484021D5163D57420340B6E51774D76F48408DB20FCD273E0340559E0A7ED76F4840040000007285047CEC4703400D8482D9F46F4840485227E839470340C4E33FDBF46F4840655E3A27EC4703406906F11FE66F48407285047CEC4703400D8482D9F46F4840040000003F9518A987460340F4658E9603704840409518A987460340F4658E9603704840B888AA59BD43034025CD6A9D037048403F9518A987460340F4658E9603704840040000002798DAC9B64A0340E1F173D2F46F4840EE4C7DB4694B03403D243B8A037048401ADA3A20B74A0340A210058C037048402798DAC9B64A0340E1F173D
 2F46F4840050000003089A0A41D4C0340491EB26E3E7048402EF880CF824D034094E2156B3E70484057E87827834D0340EC35A5244D7048409097CDFB1D4C0340957341284D7048403089A0A41D4C0340491EB26E3E7048400400000023BB365A824D0340CBF1F0C82A7048402AB8160E354E0340DF9EADAF2F70484002218977824D034056A879B12F70484023BB365A824D0340CBF1F0C82A7048400500000070EA1AF0E64E0340E032C13A12704840BCF099184C500340C3421437127048403F7326724C50034076A3A4F020704840DF8DDC48E74E0340949551F42070484070EA1AF0E64E0340E032C13A12704840060000003E0361FAE74E0340AC4971673E704840925A34BFE74E034062EC56963470484078A940254D5003408D53C4633E7048402D5DCE7E4D500340E8A2531D4D70484077A940254D5003408D53C4633E7048403E0361FAE74E0340AC4971673E704840
+01060000000300000001030000000100000015000000CCF603D2843F0340765174A1586E4840835D0322853F0340C36E0F5B676E484032977910203E034040CD575E676E4840C193AE5F203E0340B791F217766E4840131F0372853F03406E31AA14766E4840803B03C2853F0340759944CE846E484078CC40E84F42034052BF9AC7846E4840EA326D8B504203401D78CE3AA26E48403A6ED4B41A450340E2230334A26E4840477DA8611A4503408878697A936E4840FEC590757F4603403745F776936E4840B66C9A217F4603400C415DBD846E4840458FB734E4470340F1B2E2B9846E4840E76F368BE34703406B9EAD46676E484031E12668194503406C569A4D676E4840156AFC14194503407040FF93586E4840B1D83E04B4430340A00F6997586E48403A83DFB1B34303402A9DCDDD496E4840F2AB10721F3E0340743421EB496E484097F444C11F3E034025AEBCA4586E4840CCF603D2843F0340765174A1586E484001030000000800000034000000676279928D3F0340BA7FE5EDF46F484016998B6B283E03406C0E2EF1F46F4840B5E7080A293E03404612506412704840D8D514ACBD4303404A9AFB5612704840806492835842034008445D5A127048408858D22659420340B8D07DCD2F704840F888EA50BE4303404E231CCA2F704840FCEE55A3BE43034025DFAB833E70484
 0AFA238CE23450340B2D241803E7048401F486F21244503408B31D1394D704840CCCD75A45349034040D7602F4D704840167F1C4D89460340FFC55E364D704840C1651EA189460340D4C7EDEF5B704840F71F96CDEE4703402BFD72EC5B704840AB496322EF470340F0A101A66A7048402387A54F5449034021787EA26A704840AAF53DA554490340CABF0C5C7970484060B64AD3B94A0340CD368158797048408A6BAE29BA4A03405C210F1288704840570D33B6E94E0340C9503A078870484009A86E5DE94E03401F6CAC4D797048402CD0AB71485703403F00213779704840E474261448570340A4CC927D6A7048402B536441AD580340F4A0B3796A7048407B7FF321AD5803401C780B916570484063CDDE9B775B0340CD31DC716A704840F24C3EADAA580340574EC66603704840169AEFD40F5A034042D4DE620370484086DEF9DC735B03402ED93A32D76F4840F92E99273E5E03405720422AD76F4840F0AB1DAC07610340ED7A03AFB96F484068C81149076103404DB670F5AA6F48405AC22326A25F0340CEF481F9AA6F484025CD6488A25F0340A0BB14B3B96F48405A59B2EB13530340E0CCA41CAB6F48405AC5D14614530340D2A637D6B96F4840E03957FF495003403886AADDB96F48400F5AE1584A50034036093D97C86F48406384CF0F804D034067788E9EC86F48404F7F
 9BC7814D0340D9C5653E127048405F22AF17814D03403BEB43CBF46F48406022AF17814D03403BEB43CBF46F4840CB89B9BF804D03405375B211E66F4840655E3A27EC4703406906F11FE66F4840CA89B9BF804D03405375B211E66F4840380346EB1A4C034069A42AA2C86F4840C0D831A25049034034E549A9C86F4840F7F89D4C504903406558B7EFB96F4840C039DB99564203405A14F300BA6F484021D5163D57420340B6E51774D76F48408DB20FCD273E0340559E0A7ED76F4840676279928D3F0340BA7FE5EDF46F4840040000007285047CEC4703400D8482D9F46F4840485227E839470340C4E33FDBF46F4840655E3A27EC4703406906F11FE66F48407285047CEC4703400D8482D9F46F484004000000B888AA59BD43034025CD6A9D037048403F9518A987460340F4658E9603704840409518A987460340F4658E9603704840B888AA59BD43034025CD6A9D03704840040000001ADA3A20B74A0340A210058C037048402798DAC9B64A0340E1F173D2F46F4840EE4C7DB4694B03403D243B8A037048401ADA3A20B74A0340A210058C03704840050000003089A0A41D4C0340491EB26E3E7048402EF880CF824D034094E2156B3E70484057E87827834D0340EC35A5244D7048409097CDFB1D4C0340957341284D7048403089A0A41D4C0340491EB26E3E704840040000002
 4BB365A824D0340CBF1F0C82A7048402BB8160E354E0340DF9EADAF2F70484002218977824D034056A879B12F70484024BB365A824D0340CBF1F0C82A7048400500000070EA1AF0E64E0340E032C13A12704840BCF099184C500340C3421437127048403F7326724C50034076A3A4F020704840DF8DDC48E74E0340949551F42070484070EA1AF0E64E0340E032C13A1270484006000000925A34BFE74E034062EC56963470484078A940254D5003408D53C4633E7048402D5DCE7E4D500340E8A2531D4D70484077A940254D5003408D53C4633E7048403E0361FAE74E0340AC4971673E704840925A34BFE74E034062EC569634704840010300000001000000050000006F38609D4949034086C8F96F936E48405C6047B1AE4A0340227F6E6C936E4840B7B2F05AAE4A0340B480D4B2846E48409351D4474949034027C85FB6846E48406F38609D4949034086C8F96F936E4840
       </op>
     </test>
   </case>
diff --git a/tests/xmltester/tests/issue/issue-geos-837.xml b/tests/xmltester/tests/issue/issue-geos-837.xml
index f1b729d..1c3df7f 100644
--- a/tests/xmltester/tests/issue/issue-geos-837.xml
+++ b/tests/xmltester/tests/issue/issue-geos-837.xml
@@ -8,7 +8,7 @@
   </a>
 <test>
   <op name="union" arg1="A">
-01060000002E000000010300000001000000050000009A99999979A329419A999999EAD53B41CDCCCCCC41A4294100000080EBD53B419A99999943A429416766666687D53B41676666667BA329410000008086D53B419A99999979A329419A999999EAD53B410103000000010000000A000000CDCCCCCC7EA32941CDCCCC4CBED43B410000000047A4294133333333BFD43B41333333330FA5294100000000C0D43B419A99999912A52941CDCCCCCCF7D33B419C42A1664AA429412D7333F3F6D33B41333333334CA42941CDCCCCCC92D33B410000000084A329410000000092D33B413333333382A329419A999919F6D33B416766666680A32941333333335AD43B41CDCCCCCC7EA32941CDCCCC4CBED43B41010300000001000000050000009A99999943A429416766666687D53B41CDCCCCCC0BA529413333333388D53B41676666660DA529419A99991924D53B413333333345A42941CDCCCC4C23D53B419A99999943A429416766666687D53B410103000000010000000B00000091066719BBA429413D124827D5D93B41D7A3703D02A529419A999959A2D93B4171465D753BA52941E27218A071D93B416766666632A429410000008070D93B419A99999930A429419A999999D4D93B414C00C769C9A3294112F9D822D4D93B415C8FC2750CA4294167666666F9D93B41EC3D9D1030A
 4294154C1C513F6D93B4185EB51B868A42941A4703DCAF0D93B41A4703D0AA9A42941CDCCCC0CE2D93B4191066719BBA429413D124827D5D93B410103000000010000001600000067666666FCA42941333333330DD93B419A999999FAA42941CDCCCC4C71D93B41B7FF787F3BA529417ADC7C9771D93B410AD7A3704FA52941C3F5289C60D93B410AD7A3705EA52941C3F5289C27D93B41EC51B89EA0A529413E0AD7E321D93B41B044C838C4A52941586FBD2123D93B4185EB51B864A62941AE47E1BA28D93B410D36E6798CA62941B3259AE820D93B410D36E6798CA62941B4259AE820D93B41D7A3703DD7A629413333333312D93B410E28E39554A72941B7EED7D926D93B410000000055A72941CDCCCCCC0FD93B41861AC49B54A729413AE0CFDA26D93B41AE47E1FA6CA72941EC51B8DE2AD93B419A99991905A829413E0AD763B9D83B41333333333AA82941CDCCCC8C7DD83B4194ADAD9392A829413D3C15EF48D83B416766666658A729419A99999947D83B419A99999956A72941333333B3ABD83B4100000000FEA429419A999919A9D83B4167666666FCA42941333333330DD93B410103000000010000000D000000000000000AA52941CDCCCC4CECD53B41676666669AA629419A999919EED53B41333333339CA62941000000008AD53B416766666664A72941CDCCCCCC8AD5
 3B413333333366A72941333333B326D53B41CDCCCCCC67A729419A999999C2D43B419A99999969A72941000000805ED43B4167666666A1A629419A9999995DD43B419A9999999FA62941333333B3C1D43B4167666666D7A52941676666E6C0D43B4100000000D4A529419A99991989D53B41CDCCCCCC0BA529413333333388D53B41000000000AA52941CDCCCC4CECD53B410103000000010000000C0000000000000011A52941676666E65BD43B4133333333D9A52941CDCCCCCC5CD43B4167666666A1A629419A9999995DD43B4100000000A3A6294100000080F9D33B4167666666A6A62941CDCCCC4C31D33B4133333333DEA529410000008030D33B410000000016A529419A9999992FD33B416766666614A52941333333B393D33B4114800080DCA52941F9237C9994D33B41CDCCCCCCDAA52941333333B3F8D33B419A99999912A52941CDCCCCCCF7D33B410000000011A52941676666E65BD43B4101030000000100000005000000CDCCCCCC98A629413333333352D63B410000000061A729410000000053D63B419A99999962A72941676666E6EED53B41676666669AA629419A999919EED53B41CDCCCCCC98A629413333333352D63B410103000000010000000900000000000000AFA62941CDCCCCCC3CD13B41333333338EA32941CDCCCC4C39D13B41CDCCCCCC8AA329419A9
 9999901D23B4167666666E3A529419A99991904D23B4133333333E5A5294100000000A0D13B419A99999975A72941333333B3A1D13B410000000079A7294100000080D9D03B41CDCCCCCCB0A62941333333B3D8D03B4100000000AFA62941CDCCCCCC3CD13B41010300000001000000050000009A999999C9A52941333333B3E1D73B4100000000C8A52941CDCCCCCC45D83B416766666658A729419A99999947D83B41333333335AA7294100000080E3D73B419A999999C9A52941333333B3E1D73B410103000000010000000700000067666666ADA62941676666E6A0D13B419A999999ABA629410000000005D23B4100000000AAA629419A99991969D23B413333333372A72941000000006AD23B41CDCCCCCC73A72941676666E605D23B419A99999975A72941333333B3A1D13B4167666666ADA62941676666E6A0D13B4101030000000100000010000000855BDE9C92A82941148B9CE948D83B4115AE4761A3A82941E17A14EE3ED83B41EC51B89EA5A82941B81E85EB30D83B41CDCCCC4C94A82941CDCCCCCC08D83B41B81E85EBB4A82941676666E6E5D73B4192F27C42B4A82941D19BA9F4E4D73B41AE47E1FA87A8294115AE47A1A5D73B41120E470090A829415E327EAF80D73B41E17A142E97A82941EC51B89E5FD73B4133333333CEA82941A4703DCA28D73B414F6D11BECC
 A82941A9BFB9D91CD73B41CDCCCCCC25A829419A9999191CD73B410000000024A829413333333380D73B416766666622A82941CDCCCC4CE4D73B419A99999920A829416766666648D83B41855BDE9C92A82941148B9CE948D83B4101030000000100000005000000CDCCCCCC8CB5294100000000E9D03B419A999999C4B429419A999919E8D03B4100000000C3B42941333333334CD13B41333333338BB529419A9999194DD13B41CDCCCCCC8CB5294100000000E9D03B410103000000040000003300000037A2DF4EB3B429410B3E6C2A4CD13B41F6285C8F16B529419A99999983D13B41EE3218E488B5294154D3A181CDD13B41EC51B81EA9B52941713D0A57E2D13B41B81E85EBD0B5294152B81E85F0D13B41A13AB048D0B52941616D149715D23B415C8FC275CFB52941C3F5289C45D23B4115AE4761EAB52941CDCCCCCC86D23B41B81E85EB1BB62941CDCCCC0CA5D23B41676666667DB62941295C8F82C9D23B41F6285C8F6CB72941C3F5289C0AD33B4115AE476192B729417B14AEC717D33B41713D0A57B4B72941E17A14EE1CD33B4152B81E85F6B729415C8FC23517D33B4148E17A1402B9294152B81E45CED23B4185EB51B866B92941B81E85ABAFD23B417B14AE47B9B92941EC51B81E09D33B410AD7A370E7B92941F6285C4F02D33B41AE47E1FA4DBA294185EB51B8E9D
 23B417B14AEC7FABA2941B81E856BC7D23B41562CE01DFEBA29410767AFF6CAD23B41676666E62DBB29415C8FC2B5FDD23B41C3F5285C57BB2941B81E85EB20D33B417B14AEC776BB29419A99991945D33B414C01D3677BBB29415F7E392C48D33B410E14BB70C3BB29418A1C7B0678D33B4148E17A94EBBB29410AD7A3B092D33B4183F6941334BC29416210AF0DADD33B4190C2F5A8A0BC2941A4703D8AD4D33B41167FD1F250BD2941F5E2573521D43B419A99999954BD2941333333334AD33B41000000001DBE2941000000004BD33B419A9999991EBE2941676666E6E6D23B416766666620BE2941CDCCCCCC82D23B413333333358BD29410000000082D23B410000000090BC29419A99991981D23B41333333338EBC294133333333E5D23B41676666668CBC2941CDCCCC4C49D33B4133333333C4BB29410000008048D33B419A999999C7BB2941CDCCCC4C80D23B4133333333CBBB294100000000B8D13B410000000003BB294133333333B7D13B419A99999904BB29419A99991953D13B416766666606BB294100000000EFD03B410000000076B92941CDCCCC4CEDD03B4167666666E5B7294100000080EBD03B410715FCB2E3B72941907D15B34FD13B419A9999991BB72941CDCCCCCC4ED13B416766666653B62941676666E64DD13B41333333338BB529419A9999194DD13B41
 37A2DF4EB3B429410B3E6C2A4CD13B410400000067666666FFBA2941676666667FD23B413333333301BB2941CDCCCC4C1BD23B410000000003BB294133333333B7D13B4167666666FFBA2941676666667FD23B4104000000CDCCCCCCA6B82941CDCCCCCC7CD23B419A999999DEB72941000000007CD23B416766666616B729419A9999197BD23B41CDCCCCCCA6B82941CDCCCCCC7CD23B4104000000A099991946B8294134333333B4D13B4133333333AAB829419A999999B4D13B416766666672B9294100000080B5D13B41A099991946B8294134333333B4D13B410103000000010000000500000067666666C9BB2941333333331CD23B419A99999991BC2941000000001DD23B416766666693BC2941676666E6B8D13B4133333333CBBB294100000000B8D13B4167666666C9BB2941333333331CD23B41010300000001000000050000000000000095BC2941CDCCCCCC54D13B41CDCCCCCC96BC2941333333B3F0D03B419A999999CEBB2941CDCCCCCCEFD03B41CDCCCCCCCCBB2941676666E653D13B410000000095BC2941CDCCCCCC54D13B4101030000000100000011000000B81E85EBFEBD2941333333733CD53B41A52BB10510BE294191D58F943FD53B41A72BB10510BE294191D58F943FD53B4152B81E85C8BE29419A99995961D53B411F85EBD126BF2941D7A370BD55D53B4
 15C8FC275EFBF29411F85EB913ED53B41E17A14AE09C02941B81E85AB33D53B410AD7A37062C02941295C8F020DD53B4152B81E05CBC02941E17A146EF2D43B415C19B5701AC12941E1FA5DCFDED43B4167666666A6BF294133333333DDD43B41CDCCCCCCA4BF2941CDCCCC4C41D53B41B250896614BE2941C33711913FD53B410000000016BE294100000080DBD43B4109F5662588BD29413D60BFDCDAD43B4148E17A1469BD29417B14AEC728D53B41B81E85EBFEBD2941333333733CD53B4101030000000F000000000100000000000093C32941CDCCCC4C19D43B419A99999994C3294133333333B5D33B4167666666CCC22941CDCCCC4CB4D33B4133333333CEC229413333333350D33B41CDCCCCCCCFC229419A999919ECD23B419A99999907C2294133333333EBD23B410000000006C22941CDCCCC4C4FD33B41CDCCCCCC3DC12941000000804ED33B41000000003CC129419A999999B2D33B413333333304C2294167666666B3D33B419A99999902C229419A99999917D43B410DA533B3CAC22941AD364C6618D43B4100000000C9C22941000000807CD43B41CDCCCCCC00C22941333333B37BD43B419A99999938C12941CDCCCCCC7AD43B41F27B9CED36C1294183A1BAC5D7D43B4190C2F5289EC1294152B81E45BED43B41333333B3EEC12941713D0A97A3D43B418459F83600
 C22941B59FEE50A0D43B41713D0A5781C22941E17A142E88D43B4113E070BBC8C229415A3D3A418DD43B41713D0A57F9C229415C8FC2B590D43B411F85EB51A9C3294185EB51789DD43B41B56494BE58C4294141BD7536A7D43B4115AE4761A7C4294148E17A94ABD43B411F85EB5165C5294190C2F568BBD43B41F6285C8F85C529417B14AE87AFD43B41AE47E1FA4FC629413E0AD763A5D43B41CDCCCC4C86C629419A99999995D43B41244A09FAB1C62941007D580F88D43B41CDCCCCCCB3C62941333333B31CD43B4133333333B2C62941CDCCCCCC80D43B419DA6E911B2C62941109EF10788D43B4184F15710C9C62941A1E21CE780D43B418FACC04B7BC72941166E53A649D43B410AD7A3F081C72941713D0A9747D43B4100000000E8C729417B14AE074BD43B41295C8F423AC82941EC51B85E41D43B415D3D57AA43C8294176AAA7D83FD43B41B81E856B64C82941A4703D8A3AD43B41295C8F42F6C829410AD7A3304ED43B41F6285C0FF6C829413333333359D43B41579702670BC9294160C7C10A5AD43B41579702670BC9294161C7C10A5AD43B41EC51B81E68C92941333333B35DD43B415C8FC2F589C92941C3F528DC69D43B411F85EBD1B1C92941A4703D0A74D43B41C3F528DC1AC929410AD7A370A2D43B4149C15D8D09C92941228377CAC8D43B41CDCCCCCCFFC8294
 167666666DED43B4124A2ED64FCC8294192207E71E7D43B41EC51B81EF1C8294115AE476105D53B41F6285C8FE4C82941C3F5285C25D53B41D7A3703DC8C82941295C8F4235D53B41AE47E1FA3EC82941D7A370BD75D53B4190AEF26A3EC82941FD06003976D53B41AE47E17A1EC829413E0AD7A391D53B415C8FC2F5E1C7294190C2F568ABD53B419A999919B7C729417B14AE47DAD53B4115AE476186C72941C3F5281C01D63B41A6EE472379C72941790F342012D63B41A9847D4773C729419F4463A719D63B41CDCCCCCC71C729413333333376D63B41676666666EC72941676666663ED73B414E9B2C4673C729415D3014A919D63B41CDCCCC4C2CC72941C3F528DC74D63B41B81E856B0FC72941A4703DCAA6D63B411F85EBD1FAC62941D7A370BDC8D63B415C8FC2F597C62941EC51B85EF3D63B41CB2F566B6AC629413FF2F64B3DD73B419A99999968C629410000004040D73B41AE47E1FA67C62941A4703D4A64D73B41A4703D8A55C62941D7A3703D7DD73B41A47CE0D12DC62941D26BBB2AA1D73B4190C2F5A820C629411F85EB11ADD73B419A99991914C62941CDCCCC0CCDD73B4148E17A941BC62941EC51B81EEBD73B41676666E6A6C6294152B81EC51CD83B41B81E856B2CC729413E0AD76342D83B4169089E8569C729414878F78E56D83B414CBAA863A7C72941303F
 C5FA6AD83B416F80C59830C82941F971D44498D83B4190C2F5A8B2C8294133333333C3D83B41802C2FFBB8C8294111164E51D0D83B41CDCCCCCCCBC82941EC51B85EF7D83B4193EA1022F7C8294171A2D0DEF7D83B41F6285C0FE0C92941F6285C8FFAD83B41D7A370BDF7C92941E17A14AE0FD93B41295C8FC221CA2941C3F528DC10D93B41F6285C8F34CA29413E0AD7E3E3D83B41F6285C8F50CA2941295C8F02E5D83B4185EB51385ACA294148E17A14FAD83B415C8FC27546CB2941713D0A17FCD83B41CDCCCCCC4BCB294190C2F52823D93B41F61B1C4351CB29416C97083637D93B413E0AD7A35ECB29411F85EB5168D93B41B81E85EB7CCB2941E17A146E59D93B4190C2F528BFCB2941333333B34FD93B41F6285C0FE1CB2941C3F528DC58D93B41CDCCCCCC02CC294152B81E056AD93B41713D0AD780CC29411F85EB9170D93B41AE47E17A8ACC294152B81EC5FAD93B4148E17A94CACC2941A4703D0AF9D93B411F85EBD10ACE2941B81E856B01DA3B41AE47E1FA69CE29413E0AD7E338DA3B4198EE89A7EFCE294109E5DA8367DA3B41CDCCCCCC32CF2941CDCCCCCC67DA3B413847E2B3EFCE2941A235298867DA3B417B14AE47FBCE29411F85EB916BDA3B415E73F39332CF29412B3F652974DA3B41F6285C0F8DCF294185EB513882DA3B4190C2F5A819D02941CDCCCCCC6
 8DA3B41B81E85EB9ED02941E17A146E9DDA3B41713D0AD7FBD02941676666E6E2DA3B41F6285C0F3FD129410000004014DB3B4115AE47E156D12941C3F5285C20DB3B415C8FC2F5BAD12941A4703DCA22DB3B41F6285C0F57D2294185EB517827DB3B4152B81E85E7D229411F85EB1116DB3B410AD7A3F00FD3294185EB513801DB3B4185EB513806D3294167666626EFDA3B41D7A370BD41D52941A4703D8ABDDA3B41F6285C0F6CD529415C8FC2B5ADDA3B417B14AEC79CD52941EC51B8DE86DA3B410AD7A370B7D529410AD7A3F061DA3B41E17A14AE20D629411F85EB5121DA3B4148E17A94BED6294115AE47E1BCD93B4190C2F5A839D729419A99995985D93B410AD7A37072D72941A4703D8A5BD93B41676666E6BBD72941295C8FC20BD93B41B81E856BC4D7294152B81EC5EDD83B415C8FC27554D729417B14AE47E3D83B413E0AD7A30AD729410AD7A3F0D3D83B410AD7A3F0D6D62941333333B3BED83B411F85EB51C1D6294148E17A94A7D83B418E1DD7F0C9D62941ECBDC3987BD83B41CDCCCC4CCCD62941F6285C8F6FD83B419A999999D3D62941295C8F8223D83B41323AE4E5D4D62941A57CA18017D83B41313AE4E5D4D62941A57CA18017D83B41D7A370BDDAD629415C8FC275E1D73B41D163D14311D7294184D501C89BD73B413333333314D7294100000080EBD63B
 41047421224CD6294118E1C099EAD63B4115D475A14DD629412035782094D63B41AE47E17A18D62941AE47E13A84D63B4100000080A5D5294190C2F5A840D63B41A7A29C1687D5294113B64C8133D63B413333333382D52941676666E64DD73B41CDCCCCCC83D52941CDCCCCCCE9D63B419A99999985D529419A99999985D63B416D158A1387D52941A97AF87F33D63B41295C8FC27DD5294185EB51782FD63B412C86473887D52941CA7CD1842BD63B416766666687D529410000008021D63B411AD0033A87D52941D4EA17842BD63B41C05006F49ED529413D301B9B21D63B41B81E856BCED529417B14AEC70DD63B411F85EBD128D6294167666626FCD53B410B135E6F50D62941C2789228EED53B4190C2F5A89BD62941713D0A97D3D53B4183658A05B8D629411CF3FBB5BED53B410AD7A370D4D62941A4703DCAA9D53B41D17610E919D72941FA5D36B7A2D53B41676666E674D729413333337399D53B41F6285C8FE1D7294115AE47E17AD53B417116297BE1D72941227750E45BD53B417216297BE1D72941227750E45BD53B41CDCCCC4CE1D7294152B81EC514D53B41FF534E9AE5D72941C1294A32DAD43B4152B81E85E6D729415C8FC2B5CDD43B416BAA39D6E5D7294196DF196ACCD43B41F6285C0FD5D729419A999999ACD43B410F05B8CBB1D72941053C337693D43B410E0
 5B8CBB1D72941053C337693D43B4175CCA98A24D7294158A69BC42ED43B410000000058D62941676666E62DD43B416766666620D72941333333B32ED43B4190D9117220D7294167DE1CD92BD43B41C3F5285C05D72941A4703D8A18D43B415C8FC2F501D72941AE47E17AF4D33B41E42E0F89D5D62941ADE2604BCAD33B41D7A3703DADD629417B14AE07A4D33B41B81E856B79D62941A4703DCA95D33B419259E8B55AD629414BDB791C97D33B41F6285C0FBBD52941AE47E1FA9DD33B419A999999EBD42941A4703D0A71D33B41295C8FC203D529413E0AD72369D33B41F0B2D2AC38D529413B383D6A64D33B41F1B2D2AC38D529413B383D6A64D33B419A99991984D52941E17A14AE5DD33B41DD74569393D529411C4462D159D33B410000000095D52941333333B300D33B41CDCCCCCC96D529419A9999999CD23B419A999999CED42941333333B39BD23B4133333333D0D429419A99999937D23B4100000000D2D4294100000080D3D13B41CDCCCCCC09D429419A999999D2D13B410000000008D42941CDCCCCCC36D23B41333333330DD42941676666660AD13B410000000045D329419A99999909D13B41CDCCCCCC3FD32941676666E635D23B419A99999977D229410000000035D23B41CDCCCCCC75D229419A99991999D23B41A7AB32333ED32941D5711D009AD23B419A999999
 3AD329413333333362D33B41CDCCCCCC02D429419A99991963D33B413333333301D4294133333333C7D33B4167666666C9D4294100000000C8D33B419A999999C7D429419A9999192CD43B41CDCCCCCC8FD52941000000002DD43B41333333338ED529419A99991991D43B41676666668CD5294133333333F5D43B4100000000FCD3294100000080F3D43B41CDCCCCCC33D329419A999999F2D43B416766666630D32941676666E6BAD53B41ECD58888F8D329410EBE21B3BBD53B41CDCCCCCCF6D32941CDCCCCCC1FD63B419A9999992ED32941000000001FD63B41000000002DD329419A99991983D63B419A99999929D32941CDCCCC4C4BD73B413333333361D22941676666664AD73B410000000063D22941CDCCCC4CE6D63B41CDCCCCCC64D229413333333382D63B419A9999999CD129416766666681D63B4167666666D4D029410000008080D63B419A999999D2D029419A999999E4D63B41676666660AD02941333333B3E3D63B41CDCCCCCC0DD02941000000801BD63B419A9999990FD0294167666666B7D53B416766666647CF29419A999999B6D53B419A99999945CF2941333333B31AD63B41CDCCCCCC43CF2941CDCCCCCC7ED63B419A9999997BCE2941676666E67DD63B41676666667DCE2941CDCCCCCC19D63B4133333333B5CD29410000000019D63B41CDCCCCCCB6CD2
 941CDCCCCCCB4D53B419A999999EECC294100000000B4D53B4167666666F0CC2941676666E64FD53B413333333328CC2941000000004FD53B410000000060CB2941333333334ED53B416766666663CB29410000000086D43B41333333339BCA29419A99991985D43B41CDCCCCCC9CCA29410000000021D43B4100000000A2CA2941333333B3F4D23B411139826649C8294154523313F2D23B41CDCCCCCC4CC82941676666E629D23B4167666666BCC629413333333328D23B419A999999BAC62941CDCCCC4C8CD23B4133333333BEC629419A999919C4D13B419A9999992DC52941CDCCCC4CC2D13B41000000002CC529416766666626D23B41333333332AC529419A9999998AD23B412F6EDF9928C52941866F22A2EED23B413333333398C32941676666E6ECD23B410000000093C32941CDCCCC4C19D43B410500000084872122BFD42941921456B320D63B417B90DDDDC0D42941BF0EAB99BCD53B410000000089D5294167666666BDD53B416766666687D529410000008021D63B4184872122BFD42941921456B320D63B410400000000000000B0CD2941CDCCCC4C45D73B4167666666B3CD29419A9999197DD63B4133333333B5CD29410000000019D63B4100000000B0CD2941CDCCCC4C45D73B410500000092B2AD4738C8294157754933DBD63B4154B8AD4738C829412D264833DB
 D63B416766666600C9294100000000DCD63B419A999999C8C92941676666E6DCD63B4192B2AD4738C8294157754933DBD63B410400000000000000CCC92941333333B314D63B4167666666CAC92941CDCCCCCC78D63B419A999999C8C92941676666E6DCD63B4100000000CCC92941333333B314D63B41040000003333333352CB2941000000006FD83B419A999999E2CC2941333333B370D83B41676666661ACC2941676666E66FD83B413333333352CB2941000000006FD83B410400000067666666E4CC29419A9999990CD83B4100000000E1CC2941CDCCCCCCD4D83B419A999999E2CC2941333333B370D83B4167666666E4CC29419A9999990CD83B41050000009A99999939CF294167666666D7D83B416766666671CE29419A999999D6D83B4133333333A9CD2941333333B3D5D83B4100000000E1CC2941CDCCCCCCD4D83B419A99999939CF294167666666D7D83B410400000067666666FECF294100000080A0D93B419A999999FCCF29419A99999904DA3B410000000000D02941676666663CD93B4167666666FECF294100000080A0D93B410500000033333333C8D02941333333333DD93B410571B1FFC9D029419C53AA2AD9D83B41B2D7B5FFC9D029417C58AA2AD9D83B419A999999C6D0294167666666A1D93B4133333333C8D02941333333333DD93B4104000000CDCCCCC
 C8ED1294133333333A2D93B410000000057D229419A999919A3D93B419A999999C6D0294167666666A1D93B41CDCCCCCC8ED1294133333333A2D93B41050000004E1A0E3392D129416C5F8808DAD83B41E848103392D12941D7618808DAD83B419A99999990D129419A9999193ED93B41CDCCCCCC8ED1294133333333A2D93B414E1A0E3392D129416C5F8808DAD83B41040000000000000021D32941CDCCCCCC3FD93B41CDCCCCCC58D22941000000003FD93B419A99999990D129419A9999193ED93B410000000021D32941CDCCCCCC3FD93B41040000009A999999ECD329410000008078D83B416766666624D329419A99999977D83B41333333335CD22941333333B376D83B419A999999ECD329410000008078D83B410600000067666666E7D32941CDCCCCCCA4D93B4100000000E4D32941000000006DDA3B41CDCCCCCC1BD329419A9999196CDA3B41676666661DD329410000000008DA3B41333333331FD32941676666E6A3D93B4167666666E7D32941CDCCCCCCA4D93B410103000000020000000C00000067666666BCC629413333333328D23B419A99999984C729410000000029D23B41CDCCCCCC4CC82941676666E629D23B419A9999994EC82941CDCCCCCCC5D13B410000000052C829419A999999FDD03B41CDCCCCCC89C72941333333B3FCD03B419A999999C1C62941CD
 CCCCCCFBD03B41CDCCCCCCBFC629410000000060D13B419A999999F7C529419A9999195FD13B4100000000F6C5294133333333C3D13B4133333333BEC629419A999919C4D13B4167666666BCC629413333333328D23B41040000006766666686C72941676666E6C4D13B410000000088C72941CDCCCCCC60D13B41CDCCCCCC89C72941333333B3FCD03B416766666686C72941676666E6C4D13B410103000000010000000500000000000000A9CA29413333333364D13B419A999999AACA29419A99991900D13B4167666666E2C92941CDCCCC4CFFD03B419A999999E0C929416766666663D13B4100000000A9CA29413333333364D13B4101030000000100000013000000CDCCCCCC9CCA29410000000021D43B413333333365CB2941CDCCCCCC21D43B41676666662DCC2941333333B322D43B41000000002FCC29419A999999BED33B419A99999987CE294133333333C1D33B410000000086CE2941CDCCCC4C25D43B41333333334ECF29419A99991926D43B416766666653CF2941CDCCCCCCF9D23B41CDCCCCCCC2CD29419A999919F8D23B4167666666C6CD2941676666E62FD23B41CDCCCCCC35CC2941333333332ED23B419A9999996DCB2941CDCCCC4C2DD23B41333333336ACB294100000080F5D23B416766666632CC294167666666F6D23B41CDCCCCCC30CC2941000000805AD
 33B419A99999968CB29419A99999959D33B41CDCCCCCC66CB2941333333B3BDD33B419A9999999ECA2941676666E6BCD33B41CDCCCCCC9CCA29410000000021D43B4101030000000100000005000000CDCCCCCCF3CC2941333333B387D43B4100000000F2CC2941CDCCCCCCEBD43B4167666666BACD29419A999999ECD43B4100000000BCCD29410000008088D43B41CDCCCCCCF3CC2941333333B387D43B410103000000010000000500000000000000BCCD29410000008088D43B413333333384CE29416766666689D43B410000000086CE2941CDCCCC4C25D43B41CDCCCCCCBDCD29416766666624D43B4100000000BCCD29410000008088D43B410103000000010000000500000067666666CBCD29419A99999903D13B41CDCCCCCC72CB29410000000001D13B413333333371CB29419A99991965D13B41CDCCCCCCC9CD2941333333B367D13B4167666666CBCD29419A99999903D13B41010300000001000000090000003685289693D529412111AED059D33B4185EB513851D62941D7A3707D2AD33B4122D6369A5CD62941827E2CE326D33B41EC51B89E8FD62941D7A370BD16D33B41CDEAE2DDB1D62941604B70E101D33B41B94CCC4C5DD62941A1751D8001D33B41000000005FD62941676666669DD23B41CDCCCCCC96D529419A9999999CD23B413685289693D529412111AED0
 59D33B41010300000001000000090000009A99999912D729419A9999994FD73B41E0F49F4E11D72941EE5E32BA9BD73B41AE47E17A26D72941B81E85AB80D73B416064E4EB37D7294102492AC24FD73B416164E4EB37D7294102492AC24FD73B41A4703D8A50D7294185EB51B80AD73B410FBCCEBE6CD729413D6B31E0EBD63B413333333314D7294100000080EBD63B419A99999912D729419A9999994FD73B41010300000001000000060000003333333314D7294100000080EBD63B416F1301C46CD729413C9C82DAEBD63B41676666667BD729419A9999D9DBD63B41295C8FC22DD72941D7A3707DC1D63B4142245A0315D72941C1F76D48BED63B413333333314D7294100000080EBD63B41010300000001000000040000000155CA7220D72941B960A0D92BD43B416766666620D72941333333B32ED43B412826D17824D729415DDDE2B72ED43B410155CA7220D72941B960A0D92BD43B410103000000010000000C0000009A999919E1D72941C3F5281CD8D23B419094A37DEED7294142734CC3D1D23B41EC51B89E19D829411F85EB51BDD23B411F85EBD147D82941295C8F82B4D23B410AD7A3F079D8294185EB51B8B0D23B41A7FBB158F4D8294108CC4349A0D23B4167666666EFD72941333333339FD23B413333333327D72941CDCCCC4C9ED23B414A863DE425D7294160874
 710E7D23B4190C2F5A838D7294190C2F568E5D23B419A99999980D72941AE47E1BAEED23B419A999919E1D72941C3F5281CD8D23B41010300000003000000400000009A999999B7D8294100000000A0D23B4157A6F58CF4D82941E77E3F42A0D23B410AD7A3700AD929411F85EB519DD23B41FFD8CDD939D929417640928DA0D23B410000000048DA2941333333B3A1D23B41EFFDCAE546DA2941B484C7AAE6D23B410AD7A37053DA29411F85EBD1EED23B41E68D68B472DA2941CF93F4FC05D33B41B3AD07BCD6DB2941C0C5ED7F07D33B41F3A807BCD6DB294137D8EE7F07D33B419A9999990EDB2941333333B306D33B41BD1A22D40DDB294151098C9831D33B413E0AD7A32ADB2941F6285CCF2BD33B4185EB51B84EDB29415C8FC2F528D33B41333333B378DB2941676666262DD33B4148E17A148DDB29415C8FC23518D33B411F85EB519DDB294152B81E450CD33B417B14AE47C9DB29415C8FC27510D33B412BACC992D6DB294100A875CE10D33B411F85EB51F7DB294190C2F5A811D33B411F85EB5196DC29417B14AE47E2D23B417B14AE47B6DC2941E17A146EE6D23B410AD7A3F0CFDC2941F6285C8FFCD23B4190C2F528B3DC2941D7A3707D28D33B4152B81E8596DC294190C2F5684BD33B413333333384DC29419A9999595CD33B41C3F528DC95DC29413333337372D33B41
 7A7D08189DDC294130AEA5BF72D33B41333333339DDC2941000000806CD33B416766666686E02941CDCCCCCC70D33B419A9999994EE12941333333B371D33B41CDCCCCCC16E229410000008072D33B41F306326618E2294147FA32730ED33B419A999999E0E22941CDCCCC4C0FD33B4167666666E2E2294133333333ABD23B419A999999AAE3294100000000ACD23B4167666666ACE32941676666E647D23B4133333333E4E229419A99991947D23B41CDCCCCCCE5E2294100000000E3D13B419A9999991DE229419A999919E2D13B41676666661FE22941000000007ED13B413333333357E129419A9999197DD13B41133808CD8EE02941EA70E43F7CD13B419A99999990E029413333333318D13B4167666666C8DF2941CDCCCC4C17D13B413333333300DF29416766666616D13B410000000038DE29419A99999915D13B413333333336DE2941333333B379D13B4167666666FEDE29419A9999997AD13B41CDCCCCCCFCDE2941333333B3DED13B419A99999934DE2941CDCCCCCCDDD13B41CDCCCCCC32DE2941676666E641D23B419A9999996ADD29419A99991941D23B41000000006EDD2941CDCCCCCC78D13B41CDCCCCCCA5DC29410000000078D13B419A999999A7DC2941676666E613D13B413333333317DB29413333333312D13B416766666615DB2941CDCCCC4C76D13B419A999
 999DDDB29419A99991977D13B41CDCCCCCCDBDB294133333333DBD13B41676666664BDA294100000080D9D13B412AAC33B349DA2941ECC67D993DD23B4167666666B9D82941676666E63BD23B419A999999B7D8294100000000A0D23B41040000008CF9ED96D7DB2941AA80441AD6D23B4167666666D8DB294167666666A3D23B4133333333DADB2941CDCCCC4C3FD23B418CF9ED96D7DB2941AA80441AD6D23B41050000009A999999C1DF2941333333B3A7D23B410000000052E1294167666666A9D23B41CDCCCCCC89E029419A999999A8D23B4167666666F9DE2941676666E6A6D23B419A999999C1DF2941333333B3A7D23B4101030000000100000007000000E51FB9333AD9294178F8B393A0D23B410AD7A37068D92941AE47E1BAA3D23B41A4703D0AE0D929417B14AE47C3D23B417B14AEC72FDA29413E0AD7A3D7D23B412DFB58D446DA2941737C709FE6D23B410000000048DA2941333333B3A1D23B41E51FB9333AD9294178F8B393A0D23B4101030000000100000005000000F6285C0F1BE02941E17A146EDDD33B41F26064F12DE029410E77C08DD4D33B41A9DE638EFADF294146332F59D4D33B410000000007E029419A999959E0D33B41F6285C0F1BE02941E17A146EDDD33B410103000000060000003600000000000000DFE229416766666673D33B41751E6E33DDE2
 29413E733373D7D33B410000000015E229419A999999D6D33B41CDCCCCCC4CE12941CDCCCCCCD5D33B41000000004BE12941676666E639D43B41893ECD4C13E22941290A19B33AD43B419A99999911E22941CDCCCCCC9ED43B41CDCCCCCCD9E22941333333B39FD43B419A999999DBE229419A9999993BD43B41B46EE8FF6BE42941346BEB513DD43B41333333336AE4294167666666A1D43B416766666632E52941CDCCCC4CA2D43B419A999999FAE529419A999919A3D43B41CE433766FCE52941CF3C3D0A3FD43B419A999999C4E62941676666E63FD43B41CDCCCCCCC2E6294100000000A4D43B41856556A9C1E629416A9D9F3AEBD43B41713D0A57EAE629415C8FC235F3D43B41295C8F4238E72941CDCCCC8CFDD43B416C30D37D3CE729411D6E9B9F08D53B419A99999951E82941CDCCCCCC09D53B41CDCCCCCC19E92941333333B30AD53B410000000018E92941CDCCCCCC6ED53B4133333333E0E929419A9999996FD53B419A999999DEE92941333333B3D3D53B417CD264D096EA29419CDB3387D4D53B41C758A3EAA6EA2941AC86451ECED53B419A999999A8EA29410000008070D53B4133333333AAEA2941676666660CD53B416766666672EB2941333333330DD53B413333333374EB29419A999919A9D43B41CDCCCCCC75EB29410000000045D43B419A999999ADEA29413
 333333344D43B4167666666AFEA29419A999919E0D33B4100000000B1EA2941000000007CD33B41CDCCCCCCB2EA2941676666E617D33B419A999999B4EA2941333333B3B3D23B4133333333B6EA29419A9999994FD23B41C1279919EEE9294187FCE6CC4ED23B41CDCCCCCCEFE92941333333B3EAD13B419A99999927E92941CDCCCCCCE9D13B413333333329E92941333333B385D13B410000000061E82941676666E684D13B419A9999995DE829419A9999194DD23B41333333335AE82941CDCCCC4C15D33B416766666658E829416766666679D33B41CDCCCCCC56E8294100000080DDD33B41000000001FE9294167666666DED33B419A9999998EE729419A999999DCD33B4167666666C6E62941CDCCCCCCDBD33B419A9999996DE4294133333333D9D33B41676666666FE429419A99991975D33B4133333333A7E329413333333374D33B4100000000DFE229416766666673D33B4104000000000000008BE72941CDCCCCCCA4D43B413333333353E82941333333B3A5D43B41CDCCCCCCC2E6294100000000A4D43B41000000008BE72941CDCCCCCCA4D43B41050000009A99999920E92941333333337AD33B41CDCCCCCCE8E929419A9999197BD33B4133333333E7E9294133333333DFD33B41000000001FE9294167666666DED33B419A99999920E92941333333337AD33B41040000
 003333333334E52941333333333ED43B4155A39919D0E429410B0000C03DD43B4143E6EEEE76E529416E7777773ED43B413333333334E52941333333333ED43B4104000000CDCCCCCC8CE72941333333B340D43B41333333331DE929410000008042D43B410000000055E829419A99999941D43B41CDCCCCCC8CE72941333333B340D43B4104000000CDCCCCCCE3E9294167666666A7D43B4100000000E2E92941000000800BD53B4167666666E5E92941CDCCCC4C43D43B41CDCCCCCCE3E9294167666666A7D43B410103000000010000001500000000000000AEE32941CDCCCCCCE3D13B4167666666ACE32941676666E647D23B419A99999974E42941CDCCCCCC48D23B41CDCCCCCC72E42941676666E6ACD23B410000000071E429410000000011D33B41676666666FE429419A99991975D33B419A99999937E529410000000076D33B41CDCCCCCCFFE52941CDCCCCCC76D33B4100000000C8E62941333333B377D33B416766666658E829416766666679D33B41CDCCCCCC5BE8294133333333B1D23B419A9999995DE829419A9999194DD23B416766666695E72941333333334CD23B4133333333CDE62941CDCCCC4C4BD23B4167666666CBE6294100000080AFD23B413333333303E629419A999999AED23B410000000005E62941000000804AD23B41CDCCCCCC3CE529419A9999994
 9D23B41676666663EE5294100000080E5D13B413333333376E42941333333B3E4D13B4100000000AEE32941CDCCCCCCE3D13B410103000000010000000500000067666666DCE32941676666E654C73B41CDCCCCCC6CE529419A99999956C73B419A9999996EE5294100000080F2C63B4100000000DEE32941CDCCCCCCF0C63B4167666666DCE32941676666E654C73B4101030000000100000008000000CDCCCCCCCEE6294133333333E7D13B413333333397E729419A999919E8D13B419A9999999AE72941676666E61FD13B4167666666D2E62941000000001FD13B41333333330AE62941333333331ED13B416766666608E62941CDCCCC4C82D13B419A999999D0E629419A99991983D13B41CDCCCCCCCEE6294133333333E7D13B4101030000000100000009000000000000002BE929419A99999921D13B413333333329E92941333333B385D13B4167666666F1E929419A99999986D13B41CDCCCCCCEFE92941333333B3EAD13B4100000000B8EA294100000080EBD13B419A999999B9EA29416766666687D13B4167666666BBEA2941CDCCCC4C23D13B4133333333F3E929410000008022D13B41000000002BE929419A99999921D13B4101030000000100000006000000804CAF3638EC2941526A90EE9DD53B411F85EB51ABEC2941333333B392D53B41A956ED7F00ED2941053B2A
 0B9AD53B413333333301ED29419A99991973D53B410000000039EC29413333333372D53B41804CAF3638EC2941526A90EE9DD53B41010300000020000000DC0000001445DF8900ED29412EB9050C9AD53B417B14AE4719ED2941E17A142E9CD53B41C3F528DC64ED29417B14AE87B9D53B4190C2F528B6ED29410AD7A3F0E7D53B4185EB51B8F9ED2941295C8F4206D63B41FE8E2EBA20EE2941836E03823CD63B4190C2F5A828EE2941A4703D8A47D63B411F85EBD169EE2941EC51B8DE7CD63B412EC1654977EE294118680004A1D63B413E0AD72379EE2941D7A370FDA5D63B41BD2783378CEE2941FF99028FACD63B415C8FC27506EF2941676666A6D6D63B411AFE884C53EF294160005F65F3D63B412B5DA5D685EF2941A6489B4D06D73B419A999999ABEF2941E17A146E14D73B4185EB5138FDEF2941F6285CCF2FD73B412DBAF5481AF02941EB8702C73CD73B41000000806EF029419A99995962D73B41CE7AB6AA8AF02941CA615A826BD73B4148E17A14CCF029417B14AEC780D73B41632DB122E1F02941975893F588D73B41D7A3703D63F1294100000080BBD73B41195D796E9CF12941FA34DBD8D0D73B41340A5B1FA8F129411EC0F735D5D73B41D7AC83006FF22941A6499E711FD83B416766666670F22941333333B3D1D73B41952BAF0D6FF2294112B888761FD83B41A
 4703D8AABF22941A4703D0A36D83B41DDE5450736F32941F27BB10B69D83B41F6285C8F66F32941B81E85EB7AD83B41A3AA38FFB6F329417B3D2D629BD83B41676666E6D9F3294185EB5178A9D83B41A58D8AEDFCF3294113744AF4B5D83B4152B81E058DF42941F6285C4FE9D83B411C87B5D6C3F42941BA598B72FED83B41CDCCCC4C10F52941E17A14EE1BD93B413FEEBC828BF52941D106B41C20D93B415C8FC2751EF629419A99991925D93B419142BA4F53F629415C1B0BE439D93B413333333354F62941CDCCCC4C02D93B410000000056F62941333333339ED83B415BF6085B53F6294185D47DE839D93B4103E4CCC5C5F629415744F2EA66D93B41CDCCCCCC1AF72941CDCCCC4C67D93B4182A61DCFC5F629415A639CEE66D93B417945A7351AF729415AEB3A2288D93B41676666E636F72941B81E856B93D93B41291E8C89BAF729419F1CFA15CCD93B4167666666A9F829419A999919CDD93B4133333333E1F72941CDCCCC4CCCD93B416307CBA1BAF729417FFF6920CCD93B410AD7A3F0D1F7294190C2F528D6D93B4185525C03E1F729415815C0FDD7D93B41A74E7FD6A8F829417A578344F0D93B41333333B3C9F82941295C8F42F4D93B418C30C5903DF92941E4B88EDF31DA3B4190C2F5A84CF92941676666E639DA3B4180005DA16FF9294157E173A846DA3B41F6285C
 0FC4F929415C8FC27565DA3B41B50F21852BFA2941642C140D97DA3B4162DE6B5136FA29415677133A9CDA3B416766666636FA29419A99991997DA3B41CDCCCCCC39FA2941CDCCCCCCCED93B41D1205A6136FA29413A48B6419CDA3B419A99999992FA29415C8FC275C8DA3B41676666E6CAFA2941E17A14AEBADA3B41B81E85EB0CFB294185EB51F8BDDA3B41E17A14AE64FB2941EC51B85ED1DA3B410AD7A3F064FB29419A999959C2DA3B41295C8FC2C8FB2941CDCCCCCCD3DA3B41C3F5285C0CFC2941EC51B81EF0DA3B410AD7A37037FC2941EC51B85E28DB3B41CDCCCCCC9AFC2941713D0AD754DB3B41295C8F42D0FC2941C3F5281C77DB3B41EC51B89E07FD294167666666A0DB3B410C26313B1DFD2941BB46D78FC6DB3B41F6285C8F2CFD294115AE47A1E1DB3B410E89AC2551FD2941A434715901DC3B4152B81E0554FD2941713D0AD703DC3B41F6285C0F6FFD294152B81E053DDC3B41713D0AD7C5FD2941AE47E17A8ADC3B41905FB07D12FE2941A4C37FE18FDC3B41694AC41FEBFE2941F1DFF5CC90DC3B419A999919F0FE2941295C8FC28FDC3B41333333332DFF2941333333F352DC3B41AE47E1FA8DFF29411F85EB512CDC3B4190C2F5A81A002A413E0AD7E30DDC3B41B1AE034A72002A4160B347E6F8DB3B416766666676002A410000000002DB3B4133333333780
 02A41676666E69DDA3B41CDCCCCCC74002A419A99991966DB3B4109D4954E72002A4121682FE5F8DB3B41B62D0F573B012A41404082BDC8DB3B41E17A142E3E012A41F6285C0FC8DB3B415559285104022A41D9C503FA95DB3B41CDCCCCCC06022A41333333B303DB3B419A99999908022A419A9999999FDA3B413333333305022A41676666E667DB3B412198275F04022A41E1077AF695DB3B41A4703D8A33022A41A4703D0A8ADB3B4106C9049260022A418AABDE4368DB3B41A4703D0A9F022A4190C2F56839DB3B41F12AE880CE022A41DC5887B827DB3B41AE47E17AD9022A4115AE47A123DB3B41AEB054951B032A4150DCA5F104DB3B415C8FC27546032A41A4703D0AF1DA3B4152B81E8578032A41295C8F42F1DA3B41F0C50F1998032A41ED967BD6D9DA3B417B14AEC7D3032A411F85EB91ADDA3B410CD07853F4032A410610D3C3A1DA3B41A0D9DBE161042A41E927E1067ADA3B419A99999964042A4100000000DAD93B410000000063042A419A9999193EDA3B410850CA06B4042A412F6CD9763EDA3B419A9999192A052A4152B81EC5C8D93B41FC955A532D052A41DCDDF0D6C1D93B419A9999992E052A41CDCCCCCC76D93B416766666666042A41676666E675D93B41CDCCCCCC69042A41333333B3ADD83B419A999999A1032A41CDCCCCCCACD83B4167666666A3032A41
 333333B348D83B4100000000A5032A419A999999E4D73B4167666666A8032A41676666661CD73B410000000018022A41333333B31AD73B4133333333E0022A41000000801BD73B419A999999E3022A41CDCCCC4C53D63B4100000000E2022A4167666666B7D63B419A9999993A052A4100000000BAD63B416766666641052A419A99999929D53B413333333379042A41333333B328D53B413333333374042A410000000055D63B41AAED3300AC032A41746E822654D63B419A999999AD032A419A999919F0D53B4167666666AF032A41000000008CD53B4100000000B1032A41676666E627D53B41CDCCCCCCE8022A410000000027D53B416766666658012A41CDCCCC4C25D53B413333333390002A416766666624D53B410000000092002A41CDCCCC4CC0D43B419A99999993002A41333333335CD43B41CDCCCCCC5B012A419A9999195DD43B419A9999995D012A4100000000F9D33B416766666695002A419A999919F8D33B4133333333CDFF294133333333F7D33B410000000005FF294167666666F6D33B41CDCCCCCC3CFE294100000080F5D33B419A99999974FD2941333333B3F4D33B410FB807CD72FD29410B4000C058D43B419A999999AAFC2941676666E657D43B4167666666E2FB29419A99991957D43B41333333331AFB29413333333356D43B410000000052FA2941CDCCC
 C4C55D43B41CDCCCCCC89F929410000008054D43B410000000088F929419A999999B8D43B41CDCCCCCCBFF82941333333B3B7D43B419A999999F7F72941676666E6B6D43B41CDCCCCCCF5F72941000000001BD53B4100000000BEF82941CDCCCCCC1BD53B413333333386F92941333333B31CD53B41676666664EFA29419A9999991DD53B41CDCCCCCC4CFA2941333333B381D53B419A99999984F92941CDCCCCCC80D53B41CDCCCCCC82F92941676666E6E4D53B41000000004BFA2941CDCCCCCCE5D53B416766666649FA2941676666E649D63B413333333381F929410000000049D63B4100000000B9F829413333333348D63B419A999999BAF829419A999919E4D53B4167666666BCF82941676666E67FD53B4133333333F4F729419A9999197FD53B4167666666F2F7294133333333E3D53B41333333332AF72941CDCCCC4CE2D53B410000000062F6294100000080E1D53B413333333360F629419A99999945D63B419A9999995EF62941333333B3A9D63B4100000000EFF7294167666666ABD63B4133333333EDF72941000000800FD73B419A999999EBF729419A99999973D73B41CDCCCCCCB3F829410000008074D73B416766666623F72941CDCCCCCC72D73B410000000020F72941000000003BD83B41333333331EF729419A9999199FD83B410000000025F72941333333B30E
 D73B41CDCCCCCC5CF62941CDCCCCCC0DD73B416766666659F6294100000000D6D73B413333333391F5294133333333D5D73B410000000093F529410000000071D73B419A99999994F52941676666E60CD73B416766666696F52941CDCCCCCCA8D63B4133333333CEF4294100000000A8D63B41CDCCCCCCCFF42941676666E643D63B41562D33B36BF429412D33337343D63B410000000098F52941333333B344D63B41676666669BF52941000000807CD53B4133333333D3F42941333333B37BD53B4100000000D5F429410000008017D53B41CDCCCCCCD6F4294167666666B3D43B4167666666D8F42941CDCCCC4C4FD43B413333333310F42941000000804ED43B410000000048F329419A9999994DD43B41CDCCCCCC7FF22941CDCCCCCC4CD43B41676666667CF229410000000015D53B4133333333B4F129419A99991914D53B41CDCCCCCCB5F1294100000000B0D43B419A999999EDF029419A999919AFD43B4100000000ECF02941CDCCCC4C13D53B4167666666E8F0294100000080DBD53B413333333320F029419A999999DAD53B410000000022F029410000008076D53B41CDCCCCCC23F029416766666612D53B419A9999995BEF29410000008011D53B41CDCCCCCC59EF29419A99999975D53B41333333335DEF294167666666ADD43B41000000005FEF2941CDCCCC4C49D43B4
 1CDCCCCCC96EE29410000008048D43B410000000095EE29419A999999ACD43B41CDCCCCCCCCED2941333333B3ABD43B4167666666C9ED2941676666E673D53B413333333301ED29419A99991973D53B411445DF8900ED29412EB9050C9AD53B41040000003333333302FB2941333333B3CFD93B4167666666CAFB29419A999999D0D93B41CDCCCCCC39FA2941CDCCCCCCCED93B413333333302FB2941333333B3CFD93B410400000000000000CCFB2941000000806CD93B41CDCCCCCCCDFB2941CDCCCC4C08D93B4167666666CAFB29419A999999D0D93B4100000000CCFB2941000000806CD93B4104000000CDCCCCCC03FB29419A9999996BD93B419A9999993BFA2941333333B36AD93B4100000000CCFB2941000000806CD93B41CDCCCCCC03FB29419A9999996BD93B4105000000CDCCCCCC79002A41CDCCCCCC39DA3B410000000042012A41333333B33ADA3B41E14CCD4C40012A412C57AFCC9EDA3B413333333378002A41676666E69DDA3B41CDCCCCCC79002A41CDCCCCCC39DA3B4105000000D753CC4CD4022A417B9FE84CD8D93B41F45ACC4CD4022A4187FCE64CD8D93B41676666669C032A419A999919D9D93B419A99999964042A4100000000DAD93B41D753CC4CD4022A417B9FE84CD8D93B4104000000333333339E032A410000000075D93B41CDCCCCCC9F032A416766
 66E610D93B419A999999A1032A41CDCCCCCCACD83B41333333339E032A410000000075D93B410400000000000000D6022A413333333374D93B41CDCCCCCC0D022A41CDCCCC4C73D93B41333333339E032A410000000075D93B4100000000D6022A413333333374D93B41040000006766666601FF29419A999999BED43B413333333303FF2941000000805AD43B410000000005FF294167666666F6D33B416766666601FF29419A999999BED43B41040000000000000071FD2941676666E6BCD43B413333333339FE2941333333B3BDD43B416766666601FF29419A999999BED43B410000000071FD2941676666E6BCD43B4104000000676666666FFD29410000000021D53B419A9999996DFD29419A99991985D53B410000000071FD2941676666E6BCD43B41676666666FFD29410000000021D53B4104000000CDCCCCCCFFFE2941333333B322D53B419A99999937FE2941676666E621D53B41676666666FFD29410000000021D53B41CDCCCCCCFFFE2941333333B322D53B410500000000000000C8FF29419A99999923D53B4133333333C6FF2941333333B387D53B4100000000FEFE2941CDCCCCCC86D53B41CDCCCCCCFFFE2941333333B322D53B4100000000C8FF29419A99999923D53B41060000009A999999C4FF2941CDCCCCCCEBD53B41CDCCCCCC8C002A419A999999ECD53B410
 00000008B002A41333333B350D63B41CDCCCCCCC2FF2941676666E64FD63B4133333333C6FF2941333333B387D53B419A999999C4FF2941CDCCCCCCEBD53B41040000000E3B3333DDFB29416F66666683D53B4167666666A5FC29413333333384D53B419A9999996DFD29419A99991985D53B410E3B3333DDFB29416F66666683D53B4104000000FAFFFFFFA7FC294144CECC0CEED43B41CDCCCCCCA8FC294100000000BCD43B419A999999AAFC2941676666E657D43B41FAFFFFFFA7FC294144CECC0CEED43B4104000000CDCCCCCC16FB2941676666661ED53B4100000000DFFB2941CDCCCC4C1FD53B41676666664EFA29419A9999991DD53B41CDCCCCCC16FB2941676666661ED53B41040000006766666628F729416766666646D63B41CDCCCCCCF0F72941CDCCCC4C47D63B413333333360F629419A99999945D63B416766666628F729416766666646D63B4104000000CDCCCCCC3DF32941CDCCCC4CA6D63B410000000006F429419A999919A7D63B4133333333CEF4294100000000A8D63B41CDCCCCCC3DF32941CDCCCC4CA6D63B4104000000CDCCCCCC42F32941676666E679D53B419A99999944F32941CDCCCCCC15D53B41E85F54FD41F329411683449AACD53B41CDCCCCCC42F32941676666E679D53B4104000000333333333AF32941000000806ED73B416766666602F429
 41CDCCCC4C6FD73B41CDCCCCCCCAF429413333333370D73B41333333333AF32941000000806ED73B4105000000000000007CF92941CDCCCC4C75D73B419A9999997DF929413333333311D73B410000000046FA29419A99991912D73B413333333344FA29413333333376D73B41000000007CF92941CDCCCC4C75D73B41070000009A99999947FA294100000000AED63B41CDCCCCCC0FFB2941CDCCCCCCAED63B4100000000D8FB2941333333B3AFD63B4167666666D6FB2941CDCCCCCC13D73B41333333330EFB29410000000013D73B410000000046FA29419A99991912D73B419A99999947FA294100000000AED63B410400000000000000D3FB294100000000DCD73B419A999999D4FB2941676666E677D73B4167666666D6FB2941CDCCCCCC13D73B4100000000D3FB294100000000DCD73B41040000009A99999911FB2941333333B34AD63B4100000000A2FC2941000000804CD63B41CDCCCCCCD9FB29419A9999994BD63B419A99999911FB2941333333B34AD63B41040000000000000096FC29413333333309D93B419A99999997FC29419A999919A5D83B416766666699FC29410000000041D83B410000000096FC29413333333309D93B410400000000000000F2FE29419A99999943D83B41CDCCCCCCF3FE294100000080DFD73B4167666666F0FE2941333333B3A7D83B41000
 00000F2FE29419A99999943D83B410500000000000000BCFF2941CDCCCC4CE0D73B41676666664C012A4100000000E2D73B413333333384002A4133333333E1D73B41CDCCCCCCF3FE294100000080DFD73B4100000000BCFF2941CDCCCC4CE0D73B41080000009A99999914022A41676666E6E2D73B41CDCCCCCCDC022A41333333B3E3D73B4133333333DB022A41676666E647D83B41CDCCCCCC12022A410000000047D83B416766666682002A41CDCCCC4C45D83B419A9999994A012A419A99991946D83B41676666664C012A4100000000E2D73B419A99999914022A41676666E6E2D73B41040000009A999999BDFF2941333333337CD73B4133333333C1FF294100000000B4D63B4167666666BFFF29419A99991918D73B419A999999BDFF2941333333337CD73B4104000000CDCCCCCC4F012A41CDCCCCCC19D73B419A99999987002A410000000019D73B4167666666BFFF29419A99991918D73B41CDCCCCCC4F012A41CDCCCCCC19D73B41040000000000000055012A4100000080EDD53B416766666652012A41666666A683D63B413333333353012A419A99999951D63B410000000055012A4100000080EDD53B41010300000001000000070000009A99999904ED2941676666E6AAD43B413333333306ED2941CDCCCCCC46D43B41000000003EEC2941676666E645D43B41676666
 663CEC294100000000AAD43B419A9999993AEC29419A9999190ED53B41CDCCCCCC02ED2941000000000FD53B419A99999904ED2941676666E6AAD43B4101030000000100000005000000333333339DF529416766666618D53B41676666669BF52941000000807CD53B41000000002CF72941333333337ED53B419A9999992DF729419A9999191AD53B41333333339DF529416766666618D53B4101030000000700000025000000CDCCCCCC7EFD2941000000009CD13B41676666667BFD29413333333364D23B419A99999979FD294167666666C8D23B410000000078FD2941000000802CD33B413333333340FE2941CDCCCC4C2DD33B41CDCCCCCC3CFE294100000080F5D33B4133333333CDFF294133333333F7D33B419A9999995D012A4100000000F9D33B41CDCCCCCC25022A41CDCCCCCCF9D33B410000000024022A41676666E65DD43B4133333333EC022A41CDCCCCCC5ED43B4100000000EE022A41333333B3FAD33B41CDCCCCCCEF022A419A99999996D33B419A99999927022A41333333B395D33B413333333329022A419A99999931D33B4167666666F1022A410000008032D33B4133333333F3022A4167666666CED23B41CDCCCCCCF4022A41CDCCCC4C6AD23B4100000000BD032A419A9999196BD23B41CDCCCCCCBE032A410000000007D23B419A999999F6022A419A99991
 906D23B4167666666F8022A4100000000A2D13B419A999999C0032A41676666E6A2D13B4133333333C2032A41CDCCCCCC3ED13B4100000000FA022A41676666E63DD13B41CDCCCCCCFB022A41CDCCCCCCD9D03B419A99999933022A4100000000D9D03B41676666666B012A419A999919D8D03B419A99999969012A41333333333CD13B4167666666A1002A41676666663BD13B4133333333D9FF2941000000803AD13B4167666666D7FF29419A9999999ED13B41333333330FFF2941333333B39DD13B410000000011FF29419A99999939D13B41CDCCCCCC48FE2941CDCCCCCC38D13B410000000047FE2941676666E69CD13B41CDCCCCCC7EFD2941000000009CD13B41040000006766666645FE29410000000001D23B419A99999943FE29419A99991965D23B410000000047FE2941676666E69CD13B416766666645FE29410000000001D23B4104000000CDCCCCCC0BFF29410000000066D23B416766666608FF2941333333332ED33B41000000000AFF29419A999919CAD23B41CDCCCCCC0BFF29410000000066D23B41040000000000000097002A410000000094D33B41333333335F012A41676666E694D33B4152E665E6CEFF29413B0FB71993D33B410000000097002A410000000094D33B4104000000A2999999D0FF294103FEFFFF2ED33B419A999999D0FF2941000000002FD3
 3B4191999999D0FF2941F40100002FD33B41A2999999D0FF294103FEFFFF2ED33B4104000000000000002B022A4100000080CDD23B419A9999999A002A41CDCCCCCCCBD23B41CDCCCCCC62012A419A999999CCD23B41000000002B022A4100000080CDD23B4104000000676666662E022A41CDCCCC4C05D23B419A9999992C022A416766666669D23B410000000030022A4133333333A1D13B41676666662E022A41CDCCCC4C05D23B41010300000001000000070000006766666658012A41CDCCCC4C25D53B419A99999920022A419A99991926D53B416766666622022A4100000000C2D43B410000000024022A41676666E65DD43B41CDCCCCCC5B012A419A9999195DD43B41333333335A012A4133333333C1D43B416766666658012A41CDCCCC4C25D53B410103000000010000000500000033333333E0022A41000000801BD73B4167666666A8032A41676666661CD73B4133333333AA032A41CDCCCC4CB8D63B4100000000E2022A4167666666B7D63B4133333333E0022A41000000801BD73B41010300000001000000070000009A999999EA022A41676666E6C2D43B41CDCCCCCCE8022A410000000027D53B413333333379042A41333333B328D53B41CDCCCCCC7C042A410000008060D43B4167666666B4032A419A9999995FD43B41CDCCCCCCB2032A41CDCCCCCCC3D43B419A9
 99999EA022A41676666E6C2D43B410103000000010000000700000033333333EC022A41CDCCCCCC5ED43B4167666666B4032A419A9999995FD43B4100000000B8032A416766666697D33B4167666666BB032A4133333333CFD23B4133333333F3022A4167666666CED23B41CDCCCCCCEF022A419A99999996D33B4133333333EC022A41CDCCCCCC5ED43B41
+01060000002E000000010300000001000000050000009A99999979A329419A999999EAD53B41CDCCCCCC41A4294100000080EBD53B419A99999943A429416766666687D53B41676666667BA329410000008086D53B419A99999979A329419A999999EAD53B410103000000010000000A0000003333333382A329419A999919F6D33B416766666680A32941333333335AD43B41CDCCCCCC7EA32941CDCCCC4CBED43B410000000047A4294133333333BFD43B41333333330FA5294100000000C0D43B419A99999912A52941CDCCCCCCF7D33B419C42A1664AA429412D7333F3F6D33B41333333334CA42941CDCCCCCC92D33B410000000084A329410000000092D33B413333333382A329419A999919F6D33B41010300000001000000050000003333333345A42941CDCCCC4C23D53B419A99999943A429416766666687D53B41CDCCCCCC0BA529413333333388D53B41676666660DA529419A99991924D53B413333333345A42941CDCCCC4C23D53B410103000000010000000B000000A4703D0AA9A42941CDCCCC0CE2D93B4191066719BBA429413D124827D5D93B41D7A3703D02A529419A999959A2D93B4171465D753BA52941E27218A071D93B416766666632A429410000008070D93B419A99999930A429419A999999D4D93B414C00C769C9A3294112F9D822D4D93B415C8FC2750CA
 4294167666666F9D93B41EC3D9D1030A4294154C1C513F6D93B4185EB51B868A42941A4703DCAF0D93B41A4703D0AA9A42941CDCCCC0CE2D93B41010300000001000000160000009A999999FAA42941CDCCCC4C71D93B41B7FF787F3BA529417ADC7C9771D93B410AD7A3704FA52941C3F5289C60D93B410AD7A3705EA52941C3F5289C27D93B41EC51B89EA0A529413E0AD7E321D93B41B044C838C4A52941586FBD2123D93B4185EB51B864A62941AE47E1BA28D93B410D36E6798CA62941B3259AE820D93B410D36E6798CA62941B4259AE820D93B41D7A3703DD7A629413333333312D93B410E28E39554A72941B7EED7D926D93B410000000055A72941CDCCCCCC0FD93B41861AC49B54A729413AE0CFDA26D93B41AE47E1FA6CA72941EC51B8DE2AD93B419A99991905A829413E0AD763B9D83B41333333333AA82941CDCCCC8C7DD83B4194ADAD9392A829413D3C15EF48D83B416766666658A729419A99999947D83B419A99999956A72941333333B3ABD83B4100000000FEA429419A999919A9D83B4167666666FCA42941333333330DD93B419A999999FAA42941CDCCCC4C71D93B410103000000010000000D000000000000000AA52941CDCCCC4CECD53B41676666669AA629419A999919EED53B41333333339CA62941000000008AD53B416766666664A72941CDCCCCCC8AD5
 3B413333333366A72941333333B326D53B41CDCCCCCC67A729419A999999C2D43B419A99999969A72941000000805ED43B4167666666A1A629419A9999995DD43B419A9999999FA62941333333B3C1D43B4167666666D7A52941676666E6C0D43B4100000000D4A529419A99991989D53B41CDCCCCCC0BA529413333333388D53B41000000000AA52941CDCCCC4CECD53B410103000000010000000C0000000000000011A52941676666E65BD43B4133333333D9A52941CDCCCCCC5CD43B4167666666A1A629419A9999995DD43B4100000000A3A6294100000080F9D33B4167666666A6A62941CDCCCC4C31D33B4133333333DEA529410000008030D33B410000000016A529419A9999992FD33B416766666614A52941333333B393D33B4114800080DCA52941F9237C9994D33B41CDCCCCCCDAA52941333333B3F8D33B419A99999912A52941CDCCCCCCF7D33B410000000011A52941676666E65BD43B410103000000010000000500000000000000C8A52941CDCCCCCC45D83B416766666658A729419A99999947D83B41333333335AA7294100000080E3D73B419A999999C9A52941333333B3E1D73B4100000000C8A52941CDCCCCCC45D83B4101030000000100000005000000CDCCCCCC98A629413333333352D63B410000000061A729410000000053D63B419A99999962A72941676
 666E6EED53B41676666669AA629419A999919EED53B41CDCCCCCC98A629413333333352D63B410103000000010000000700000000000000AAA629419A99991969D23B413333333372A72941000000006AD23B41CDCCCCCC73A72941676666E605D23B419A99999975A72941333333B3A1D13B4167666666ADA62941676666E6A0D13B419A999999ABA629410000000005D23B4100000000AAA629419A99991969D23B4101030000000100000009000000333333338EA32941CDCCCC4C39D13B41CDCCCCCC8AA329419A99999901D23B4167666666E3A529419A99991904D23B4133333333E5A5294100000000A0D13B419A99999975A72941333333B3A1D13B410000000079A7294100000080D9D03B41CDCCCCCCB0A62941333333B3D8D03B4100000000AFA62941CDCCCCCC3CD13B41333333338EA32941CDCCCC4C39D13B4101030000000100000010000000CDCCCC4C94A82941CDCCCCCC08D83B41B81E85EBB4A82941676666E6E5D73B4192F27C42B4A82941D19BA9F4E4D73B41AE47E1FA87A8294115AE47A1A5D73B41120E470090A829415E327EAF80D73B41E17A142E97A82941EC51B89E5FD73B4133333333CEA82941A4703DCA28D73B414F6D11BECCA82941A9BFB9D91CD73B41CDCCCCCC25A829419A9999191CD73B410000000024A829413333333380D73B416766666622
 A82941CDCCCC4CE4D73B419A99999920A829416766666648D83B41855BDE9C92A82941148B9CE948D83B4115AE4761A3A82941E17A14EE3ED83B41EC51B89EA5A82941B81E85EB30D83B41CDCCCC4C94A82941CDCCCCCC08D83B410103000000040000003300000037A2DF4EB3B429410B3E6C2A4CD13B41F6285C8F16B529419A99999983D13B41EE3218E488B5294154D3A181CDD13B41EC51B81EA9B52941713D0A57E2D13B41B81E85EBD0B5294152B81E85F0D13B41A13AB048D0B52941616D149715D23B415C8FC275CFB52941C3F5289C45D23B4115AE4761EAB52941CDCCCCCC86D23B41B81E85EB1BB62941CDCCCC0CA5D23B41676666667DB62941295C8F82C9D23B41F6285C8F6CB72941C3F5289C0AD33B4115AE476192B729417B14AEC717D33B41713D0A57B4B72941E17A14EE1CD33B4152B81E85F6B729415C8FC23517D33B4148E17A1402B9294152B81E45CED23B4185EB51B866B92941B81E85ABAFD23B417B14AE47B9B92941EC51B81E09D33B410AD7A370E7B92941F6285C4F02D33B41AE47E1FA4DBA294185EB51B8E9D23B417B14AEC7FABA2941B81E856BC7D23B41562CE01DFEBA29410767AFF6CAD23B41676666E62DBB29415C8FC2B5FDD23B41C3F5285C57BB2941B81E85EB20D33B417B14AEC776BB29419A99991945D33B414C01D3677BBB29415F7E3
 92C48D33B410E14BB70C3BB29418A1C7B0678D33B4148E17A94EBBB29410AD7A3B092D33B4183F6941334BC29416210AF0DADD33B4190C2F5A8A0BC2941A4703D8AD4D33B41167FD1F250BD2941F5E2573521D43B419A99999954BD2941333333334AD33B41000000001DBE2941000000004BD33B419A9999991EBE2941676666E6E6D23B416766666620BE2941CDCCCCCC82D23B413333333358BD29410000000082D23B410000000090BC29419A99991981D23B41333333338EBC294133333333E5D23B41676666668CBC2941CDCCCC4C49D33B4133333333C4BB29410000008048D33B419A999999C7BB2941CDCCCC4C80D23B4133333333CBBB294100000000B8D13B410000000003BB294133333333B7D13B419A99999904BB29419A99991953D13B416766666606BB294100000000EFD03B410000000076B92941CDCCCC4CEDD03B4167666666E5B7294100000080EBD03B410715FCB2E3B72941907D15B34FD13B419A9999991BB72941CDCCCCCC4ED13B416766666653B62941676666E64DD13B41333333338BB529419A9999194DD13B4137A2DF4EB3B429410B3E6C2A4CD13B410400000067666666FFBA2941676666667FD23B413333333301BB2941CDCCCC4C1BD23B410000000003BB294133333333B7D13B4167666666FFBA2941676666667FD23B4104000000CDCCCCCCA6
 B82941CDCCCCCC7CD23B419A999999DEB72941000000007CD23B416766666616B729419A9999197BD23B41CDCCCCCCA6B82941CDCCCCCC7CD23B410400000033333333AAB829419A999999B4D13B416766666672B9294100000080B5D13B41A099991946B8294134333333B4D13B4133333333AAB829419A999999B4D13B41010300000001000000050000009A999999C4B429419A999919E8D03B4100000000C3B42941333333334CD13B41333333338BB529419A9999194DD13B41CDCCCCCC8CB5294100000000E9D03B419A999999C4B429419A999919E8D03B410103000000010000000500000067666666C9BB2941333333331CD23B419A99999991BC2941000000001DD23B416766666693BC2941676666E6B8D13B4133333333CBBB294100000000B8D13B4167666666C9BB2941333333331CD23B4101030000000100000005000000CDCCCCCC96BC2941333333B3F0D03B419A999999CEBB2941CDCCCCCCEFD03B41CDCCCCCCCCBB2941676666E653D13B410000000095BC2941CDCCCCCC54D13B41CDCCCCCC96BC2941333333B3F0D03B41010300000001000000110000001F85EBD126BF2941D7A370BD55D53B415C8FC275EFBF29411F85EB913ED53B41E17A14AE09C02941B81E85AB33D53B410AD7A37062C02941295C8F020DD53B4152B81E05CBC02941E17A146EF2D43B4
 15C19B5701AC12941E1FA5DCFDED43B4167666666A6BF294133333333DDD43B41CDCCCCCCA4BF2941CDCCCC4C41D53B41B250896614BE2941C33711913FD53B410000000016BE294100000080DBD43B4109F5662588BD29413D60BFDCDAD43B4148E17A1469BD29417B14AEC728D53B41B81E85EBFEBD2941333333733CD53B41A52BB10510BE294191D58F943FD53B41A72BB10510BE294191D58F943FD53B4152B81E85C8BE29419A99995961D53B411F85EBD126BF2941D7A370BD55D53B4101030000000F000000000100009A99999938C12941CDCCCCCC7AD43B41F27B9CED36C1294183A1BAC5D7D43B4190C2F5289EC1294152B81E45BED43B41333333B3EEC12941713D0A97A3D43B418459F83600C22941B59FEE50A0D43B41713D0A5781C22941E17A142E88D43B4113E070BBC8C229415A3D3A418DD43B41713D0A57F9C229415C8FC2B590D43B411F85EB51A9C3294185EB51789DD43B41B56494BE58C4294141BD7536A7D43B4115AE4761A7C4294148E17A94ABD43B411F85EB5165C5294190C2F568BBD43B41F6285C8F85C529417B14AE87AFD43B41AE47E1FA4FC629413E0AD763A5D43B41CDCCCC4C86C629419A99999995D43B41244A09FAB1C62941007D580F88D43B41CDCCCCCCB3C62941333333B31CD43B4133333333B2C62941CDCCCCCC80D43B419DA6E911B2
 C62941109EF10788D43B4184F15710C9C62941A1E21CE780D43B418FACC04B7BC72941166E53A649D43B410AD7A3F081C72941713D0A9747D43B4100000000E8C729417B14AE074BD43B41295C8F423AC82941EC51B85E41D43B415D3D57AA43C8294176AAA7D83FD43B41B81E856B64C82941A4703D8A3AD43B41295C8F42F6C829410AD7A3304ED43B41F6285C0FF6C829413333333359D43B41579702670BC9294160C7C10A5AD43B41579702670BC9294161C7C10A5AD43B41EC51B81E68C92941333333B35DD43B415C8FC2F589C92941C3F528DC69D43B411F85EBD1B1C92941A4703D0A74D43B41C3F528DC1AC929410AD7A370A2D43B4149C15D8D09C92941228377CAC8D43B41CDCCCCCCFFC8294167666666DED43B4124A2ED64FCC8294192207E71E7D43B41EC51B81EF1C8294115AE476105D53B41F6285C8FE4C82941C3F5285C25D53B41D7A3703DC8C82941295C8F4235D53B41AE47E1FA3EC82941D7A370BD75D53B4190AEF26A3EC82941FD06003976D53B41AE47E17A1EC829413E0AD7A391D53B415C8FC2F5E1C7294190C2F568ABD53B419A999919B7C729417B14AE47DAD53B4115AE476186C72941C3F5281C01D63B41A6EE472379C72941790F342012D63B41A9847D4773C729419F4463A719D63B41CDCCCCCC71C729413333333376D63B41676666666EC7294
 1676666663ED73B414E9B2C4673C729415D3014A919D63B41CDCCCC4C2CC72941C3F528DC74D63B41B81E856B0FC72941A4703DCAA6D63B411F85EBD1FAC62941D7A370BDC8D63B415C8FC2F597C62941EC51B85EF3D63B41CB2F566B6AC629413FF2F64B3DD73B419A99999968C629410000004040D73B41AE47E1FA67C62941A4703D4A64D73B41A4703D8A55C62941D7A3703D7DD73B41A47CE0D12DC62941D26BBB2AA1D73B4190C2F5A820C629411F85EB11ADD73B419A99991914C62941CDCCCC0CCDD73B4148E17A941BC62941EC51B81EEBD73B41676666E6A6C6294152B81EC51CD83B41B81E856B2CC729413E0AD76342D83B4169089E8569C729414878F78E56D83B414CBAA863A7C72941303FC5FA6AD83B416F80C59830C82941F971D44498D83B4190C2F5A8B2C8294133333333C3D83B41802C2FFBB8C8294111164E51D0D83B41CDCCCCCCCBC82941EC51B85EF7D83B4193EA1022F7C8294171A2D0DEF7D83B41F6285C0FE0C92941F6285C8FFAD83B41D7A370BDF7C92941E17A14AE0FD93B41295C8FC221CA2941C3F528DC10D93B41F6285C8F34CA29413E0AD7E3E3D83B41F6285C8F50CA2941295C8F02E5D83B4185EB51385ACA294148E17A14FAD83B415C8FC27546CB2941713D0A17FCD83B41CDCCCCCC4BCB294190C2F52823D93B41F61B1C4351CB29416C97
 083637D93B413E0AD7A35ECB29411F85EB5168D93B41B81E85EB7CCB2941E17A146E59D93B4190C2F528BFCB2941333333B34FD93B41F6285C0FE1CB2941C3F528DC58D93B41CDCCCCCC02CC294152B81E056AD93B41713D0AD780CC29411F85EB9170D93B41AE47E17A8ACC294152B81EC5FAD93B4148E17A94CACC2941A4703D0AF9D93B411F85EBD10ACE2941B81E856B01DA3B41AE47E1FA69CE29413E0AD7E338DA3B4198EE89A7EFCE294109E5DA8367DA3B41CDCCCCCC32CF2941CDCCCCCC67DA3B413847E2B3EFCE2941A235298867DA3B417B14AE47FBCE29411F85EB916BDA3B415E73F39332CF29412B3F652974DA3B41F6285C0F8DCF294185EB513882DA3B4190C2F5A819D02941CDCCCCCC68DA3B41B81E85EB9ED02941E17A146E9DDA3B41713D0AD7FBD02941676666E6E2DA3B41F6285C0F3FD129410000004014DB3B4115AE47E156D12941C3F5285C20DB3B415C8FC2F5BAD12941A4703DCA22DB3B41F6285C0F57D2294185EB517827DB3B4152B81E85E7D229411F85EB1116DB3B410AD7A3F00FD3294185EB513801DB3B4185EB513806D3294167666626EFDA3B41D7A370BD41D52941A4703D8ABDDA3B41F6285C0F6CD529415C8FC2B5ADDA3B417B14AEC79CD52941EC51B8DE86DA3B410AD7A370B7D529410AD7A3F061DA3B41E17A14AE20D629411F85EB512
 1DA3B4148E17A94BED6294115AE47E1BCD93B4190C2F5A839D729419A99995985D93B410AD7A37072D72941A4703D8A5BD93B41676666E6BBD72941295C8FC20BD93B41B81E856BC4D7294152B81EC5EDD83B415C8FC27554D729417B14AE47E3D83B413E0AD7A30AD729410AD7A3F0D3D83B410AD7A3F0D6D62941333333B3BED83B411F85EB51C1D6294148E17A94A7D83B418E1DD7F0C9D62941ECBDC3987BD83B41CDCCCC4CCCD62941F6285C8F6FD83B419A999999D3D62941295C8F8223D83B41323AE4E5D4D62941A57CA18017D83B41313AE4E5D4D62941A57CA18017D83B41D7A370BDDAD629415C8FC275E1D73B41D163D14311D7294184D501C89BD73B413333333314D7294100000080EBD63B41047421224CD6294118E1C099EAD63B4115D475A14DD629412035782094D63B41AE47E17A18D62941AE47E13A84D63B4100000080A5D5294190C2F5A840D63B41A7A29C1687D5294113B64C8133D63B413333333382D52941676666E64DD73B41CDCCCCCC83D52941CDCCCCCCE9D63B419A99999985D529419A99999985D63B416D158A1387D52941A97AF87F33D63B41295C8FC27DD5294185EB51782FD63B412C86473887D52941CA7CD1842BD63B416766666687D529410000008021D63B411AD0033A87D52941D4EA17842BD63B41C05006F49ED529413D301B9B21D63B
 41B81E856BCED529417B14AEC70DD63B411F85EBD128D6294167666626FCD53B410B135E6F50D62941C2789228EED53B4190C2F5A89BD62941713D0A97D3D53B4183658A05B8D629411CF3FBB5BED53B410AD7A370D4D62941A4703DCAA9D53B41D17610E919D72941FA5D36B7A2D53B41676666E674D729413333337399D53B41F6285C8FE1D7294115AE47E17AD53B417116297BE1D72941227750E45BD53B417216297BE1D72941227750E45BD53B41CDCCCC4CE1D7294152B81EC514D53B41FF534E9AE5D72941C1294A32DAD43B4152B81E85E6D729415C8FC2B5CDD43B416BAA39D6E5D7294196DF196ACCD43B41F6285C0FD5D729419A999999ACD43B410F05B8CBB1D72941053C337693D43B410E05B8CBB1D72941053C337693D43B4175CCA98A24D7294158A69BC42ED43B410000000058D62941676666E62DD43B416766666620D72941333333B32ED43B4190D9117220D7294167DE1CD92BD43B41C3F5285C05D72941A4703D8A18D43B415C8FC2F501D72941AE47E17AF4D33B41E42E0F89D5D62941ADE2604BCAD33B41D7A3703DADD629417B14AE07A4D33B41B81E856B79D62941A4703DCA95D33B419259E8B55AD629414BDB791C97D33B41F6285C0FBBD52941AE47E1FA9DD33B419A999999EBD42941A4703D0A71D33B41295C8FC203D529413E0AD72369D33B41F0B
 2D2AC38D529413B383D6A64D33B41F1B2D2AC38D529413B383D6A64D33B419A99991984D52941E17A14AE5DD33B41DD74569393D529411C4462D159D33B410000000095D52941333333B300D33B41CDCCCCCC96D529419A9999999CD23B419A999999CED42941333333B39BD23B4133333333D0D429419A99999937D23B4100000000D2D4294100000080D3D13B41CDCCCCCC09D429419A999999D2D13B410000000008D42941CDCCCCCC36D23B41333333330DD42941676666660AD13B410000000045D329419A99999909D13B41CDCCCCCC3FD32941676666E635D23B419A99999977D229410000000035D23B41CDCCCCCC75D229419A99991999D23B41A7AB32333ED32941D5711D009AD23B419A9999993AD329413333333362D33B41CDCCCCCC02D429419A99991963D33B413333333301D4294133333333C7D33B4167666666C9D4294100000000C8D33B419A999999C7D429419A9999192CD43B41CDCCCCCC8FD52941000000002DD43B41333333338ED529419A99991991D43B41676666668CD5294133333333F5D43B4100000000FCD3294100000080F3D43B41CDCCCCCC33D329419A999999F2D43B416766666630D32941676666E6BAD53B41ECD58888F8D329410EBE21B3BBD53B41CDCCCCCCF6D32941CDCCCCCC1FD63B419A9999992ED32941000000001FD63B4100000000
 2DD329419A99991983D63B419A99999929D32941CDCCCC4C4BD73B413333333361D22941676666664AD73B410000000063D22941CDCCCC4CE6D63B41CDCCCCCC64D229413333333382D63B419A9999999CD129416766666681D63B4167666666D4D029410000008080D63B419A999999D2D029419A999999E4D63B41676666660AD02941333333B3E3D63B41CDCCCCCC0DD02941000000801BD63B419A9999990FD0294167666666B7D53B416766666647CF29419A999999B6D53B419A99999945CF2941333333B31AD63B41CDCCCCCC43CF2941CDCCCCCC7ED63B419A9999997BCE2941676666E67DD63B41676666667DCE2941CDCCCCCC19D63B4133333333B5CD29410000000019D63B41CDCCCCCCB6CD2941CDCCCCCCB4D53B419A999999EECC294100000000B4D53B4167666666F0CC2941676666E64FD53B413333333328CC2941000000004FD53B410000000060CB2941333333334ED53B416766666663CB29410000000086D43B41333333339BCA29419A99991985D43B41CDCCCCCC9CCA29410000000021D43B4100000000A2CA2941333333B3F4D23B411139826649C8294154523313F2D23B41CDCCCCCC4CC82941676666E629D23B4167666666BCC629413333333328D23B419A999999BAC62941CDCCCC4C8CD23B4133333333BEC629419A999919C4D13B419A9999992DC52
 941CDCCCC4CC2D13B41000000002CC529416766666626D23B41333333332AC529419A9999998AD23B412F6EDF9928C52941866F22A2EED23B413333333398C32941676666E6ECD23B410000000093C32941CDCCCC4C19D43B419A99999994C3294133333333B5D33B4167666666CCC22941CDCCCC4CB4D33B4133333333CEC229413333333350D33B41CDCCCCCCCFC229419A999919ECD23B419A99999907C2294133333333EBD23B410000000006C22941CDCCCC4C4FD33B41CDCCCCCC3DC12941000000804ED33B41000000003CC129419A999999B2D33B413333333304C2294167666666B3D33B419A99999902C229419A99999917D43B410DA533B3CAC22941AD364C6618D43B4100000000C9C22941000000807CD43B41CDCCCCCC00C22941333333B37BD43B419A99999938C12941CDCCCCCC7AD43B410500000084872122BFD42941921456B320D63B417B90DDDDC0D42941BF0EAB99BCD53B410000000089D5294167666666BDD53B416766666687D529410000008021D63B4184872122BFD42941921456B320D63B410400000000000000B0CD2941CDCCCC4C45D73B4167666666B3CD29419A9999197DD63B4133333333B5CD29410000000019D63B4100000000B0CD2941CDCCCC4C45D73B410500000092B2AD4738C8294157754933DBD63B4154B8AD4738C829412D264833DB
 D63B416766666600C9294100000000DCD63B419A999999C8C92941676666E6DCD63B4192B2AD4738C8294157754933DBD63B410400000000000000CCC92941333333B314D63B4167666666CAC92941CDCCCCCC78D63B419A999999C8C92941676666E6DCD63B4100000000CCC92941333333B314D63B4104000000676666661ACC2941676666E66FD83B413333333352CB2941000000006FD83B419A999999E2CC2941333333B370D83B41676666661ACC2941676666E66FD83B410400000067666666E4CC29419A9999990CD83B4100000000E1CC2941CDCCCCCCD4D83B419A999999E2CC2941333333B370D83B4167666666E4CC29419A9999990CD83B41050000009A99999939CF294167666666D7D83B416766666671CE29419A999999D6D83B4133333333A9CD2941333333B3D5D83B4100000000E1CC2941CDCCCCCCD4D83B419A99999939CF294167666666D7D83B410400000067666666FECF294100000080A0D93B419A999999FCCF29419A99999904DA3B410000000000D02941676666663CD93B4167666666FECF294100000080A0D93B410500000033333333C8D02941333333333DD93B410571B1FFC9D029419C53AA2AD9D83B41B2D7B5FFC9D029417D58AA2AD9D83B419A999999C6D0294167666666A1D93B4133333333C8D02941333333333DD93B4104000000CDCCCCC
 C8ED1294133333333A2D93B410000000057D229419A999919A3D93B419A999999C6D0294167666666A1D93B41CDCCCCCC8ED1294133333333A2D93B41050000004E1A0E3392D129416C5F8808DAD83B41E848103392D12941D7618808DAD83B419A99999990D129419A9999193ED93B41CDCCCCCC8ED1294133333333A2D93B414E1A0E3392D129416C5F8808DAD83B41040000000000000021D32941CDCCCCCC3FD93B41CDCCCCCC58D22941000000003FD93B419A99999990D129419A9999193ED93B410000000021D32941CDCCCCCC3FD93B4106000000676666661DD329410000000008DA3B41333333331FD32941676666E6A3D93B4167666666E7D32941CDCCCCCCA4D93B4100000000E4D32941000000006DDA3B41CDCCCCCC1BD329419A9999196CDA3B41676666661DD329410000000008DA3B4104000000333333335CD22941333333B376D83B419A999999ECD329410000008078D83B416766666624D329419A99999977D83B41333333335CD22941333333B376D83B410103000000020000000C00000067666666BCC629413333333328D23B419A99999984C729410000000029D23B41CDCCCCCC4CC82941676666E629D23B419A9999994EC82941CDCCCCCCC5D13B410000000052C829419A999999FDD03B41CDCCCCCC89C72941333333B3FCD03B419A999999C1C62941CD
 CCCCCCFBD03B41CDCCCCCCBFC629410000000060D13B419A999999F7C529419A9999195FD13B4100000000F6C5294133333333C3D13B4133333333BEC629419A999919C4D13B4167666666BCC629413333333328D23B41040000006766666686C72941676666E6C4D13B410000000088C72941CDCCCCCC60D13B41CDCCCCCC89C72941333333B3FCD03B416766666686C72941676666E6C4D13B410103000000010000000500000000000000A9CA29413333333364D13B419A999999AACA29419A99991900D13B4167666666E2C92941CDCCCC4CFFD03B419A999999E0C929416766666663D13B4100000000A9CA29413333333364D13B4101030000000100000013000000CDCCCCCC9CCA29410000000021D43B413333333365CB2941CDCCCCCC21D43B41676666662DCC2941333333B322D43B41000000002FCC29419A999999BED33B419A99999987CE294133333333C1D33B410000000086CE2941CDCCCC4C25D43B41333333334ECF29419A99991926D43B416766666653CF2941CDCCCCCCF9D23B41CDCCCCCCC2CD29419A999919F8D23B4167666666C6CD2941676666E62FD23B41CDCCCCCC35CC2941333333332ED23B419A9999996DCB2941CDCCCC4C2DD23B41333333336ACB294100000080F5D23B416766666632CC294167666666F6D23B41CDCCCCCC30CC2941000000805AD
 33B419A99999968CB29419A99999959D33B41CDCCCCCC66CB2941333333B3BDD33B419A9999999ECA2941676666E6BCD33B41CDCCCCCC9CCA29410000000021D43B4101030000000100000005000000CDCCCCCCC9CD2941333333B367D13B4167666666CBCD29419A99999903D13B41CDCCCCCC72CB29410000000001D13B413333333371CB29419A99991965D13B41CDCCCCCCC9CD2941333333B367D13B4101030000000100000005000000CDCCCCCCF3CC2941333333B387D43B4100000000F2CC2941CDCCCCCCEBD43B4167666666BACD29419A999999ECD43B4100000000BCCD29410000008088D43B41CDCCCCCCF3CC2941333333B387D43B410103000000010000000500000000000000BCCD29410000008088D43B413333333384CE29416766666689D43B410000000086CE2941CDCCCC4C25D43B41CDCCCCCCBDCD29416766666624D43B4100000000BCCD29410000008088D43B41010300000001000000090000003685289693D529412111AED059D33B4185EB513851D62941D7A3707D2AD33B4122D6369A5CD62941827E2CE326D33B41EC51B89E8FD62941D7A370BD16D33B41CDEAE2DDB1D62941604B70E101D33B41B94CCC4C5DD62941A1751D8001D33B41000000005FD62941676666669DD23B41CDCCCCCC96D529419A9999999CD23B413685289693D529412111AED0
 59D33B41010300000001000000090000009A99999912D729419A9999994FD73B41E0F49F4E11D72941EE5E32BA9BD73B41AE47E17A26D72941B81E85AB80D73B416064E4EB37D7294102492AC24FD73B416164E4EB37D7294102492AC24FD73B41A4703D8A50D7294185EB51B80AD73B410FBCCEBE6CD729413D6B31E0EBD63B413333333314D7294100000080EBD63B419A99999912D729419A9999994FD73B4101030000000100000006000000295C8FC22DD72941D7A3707DC1D63B4142245A0315D72941C1F76D48BED63B413333333314D7294100000080EBD63B416F1301C46CD729413C9C82DAEBD63B41676666667BD729419A9999D9DBD63B41295C8FC22DD72941D7A3707DC1D63B41010300000001000000040000000155CA7220D72941B960A0D92BD43B416766666620D72941333333B32ED43B412826D17824D729415DDDE2B72ED43B410155CA7220D72941B960A0D92BD43B410103000000010000000C00000090C2F5A838D7294190C2F568E5D23B419A99999980D72941AE47E1BAEED23B419A999919E1D72941C3F5281CD8D23B419094A37DEED7294142734CC3D1D23B41EC51B89E19D829411F85EB51BDD23B411F85EBD147D82941295C8F82B4D23B410AD7A3F079D8294185EB51B8B0D23B41A7FBB158F4D8294108CC4349A0D23B4167666666EFD7294133333
 3339FD23B413333333327D72941CDCCCC4C9ED23B414A863DE425D7294160874710E7D23B4190C2F5A838D7294190C2F568E5D23B4101030000000100000007000000E51FB9333AD9294178F8B393A0D23B410AD7A37068D92941AE47E1BAA3D23B41A4703D0AE0D929417B14AE47C3D23B417B14AEC72FDA29413E0AD7A3D7D23B412DFB58D446DA2941737C709FE6D23B410000000048DA2941333333B3A1D23B41E51FB9333AD9294178F8B393A0D23B4101030000000300000040000000EFFDCAE546DA2941B484C7AAE6D23B410AD7A37053DA29411F85EBD1EED23B41E68D68B472DA2941CF93F4FC05D33B41B3AD07BCD6DB2941C0C5ED7F07D33B41F2A807BCD6DB294137D8EE7F07D33B419A9999990EDB2941333333B306D33B41BD1A22D40DDB294151098C9831D33B413E0AD7A32ADB2941F6285CCF2BD33B4185EB51B84EDB29415C8FC2F528D33B41333333B378DB2941676666262DD33B4148E17A148DDB29415C8FC23518D33B411F85EB519DDB294152B81E450CD33B417B14AE47C9DB29415C8FC27510D33B412BACC992D6DB294100A875CE10D33B411F85EB51F7DB294190C2F5A811D33B411F85EB5196DC29417B14AE47E2D23B417B14AE47B6DC2941E17A146EE6D23B410AD7A3F0CFDC2941F6285C8FFCD23B4190C2F528B3DC2941D7A3707D28D33B4152B81E
 8596DC294190C2F5684BD33B413333333384DC29419A9999595CD33B41C3F528DC95DC29413333337372D33B417A7D08189DDC294130AEA5BF72D33B41333333339DDC2941000000806CD33B416766666686E02941CDCCCCCC70D33B419A9999994EE12941333333B371D33B41CDCCCCCC16E229410000008072D33B41F306326618E2294147FA32730ED33B419A999999E0E22941CDCCCC4C0FD33B4167666666E2E2294133333333ABD23B419A999999AAE3294100000000ACD23B4167666666ACE32941676666E647D23B4133333333E4E229419A99991947D23B41CDCCCCCCE5E2294100000000E3D13B419A9999991DE229419A999919E2D13B41676666661FE22941000000007ED13B413333333357E129419A9999197DD13B41133808CD8EE02941EA70E43F7CD13B419A99999990E029413333333318D13B4167666666C8DF2941CDCCCC4C17D13B413333333300DF29416766666616D13B410000000038DE29419A99999915D13B413333333336DE2941333333B379D13B4167666666FEDE29419A9999997AD13B41CDCCCCCCFCDE2941333333B3DED13B419A99999934DE2941CDCCCCCCDDD13B41CDCCCCCC32DE2941676666E641D23B419A9999996ADD29419A99991941D23B41000000006EDD2941CDCCCCCC78D13B41CDCCCCCCA5DC29410000000078D13B419A999999A7D
 C2941676666E613D13B413333333317DB29413333333312D13B416766666615DB2941CDCCCC4C76D13B419A999999DDDB29419A99991977D13B41CDCCCCCCDBDB294133333333DBD13B41676666664BDA294100000080D9D13B412AAC33B349DA2941ECC67D993DD23B4167666666B9D82941676666E63BD23B419A999999B7D8294100000000A0D23B4157A6F58CF4D82941E77E3F42A0D23B410AD7A3700AD929411F85EB519DD23B41FFD8CDD939D929417640928DA0D23B410000000048DA2941333333B3A1D23B41EFFDCAE546DA2941B484C7AAE6D23B41040000008CF9ED96D7DB2941AA80441AD6D23B4167666666D8DB294167666666A3D23B4133333333DADB2941CDCCCC4C3FD23B418CF9ED96D7DB2941AA80441AD6D23B41050000000000000052E1294167666666A9D23B41CDCCCCCC89E029419A999999A8D23B4167666666F9DE2941676666E6A6D23B419A999999C1DF2941333333B3A7D23B410000000052E1294167666666A9D23B4101030000000100000005000000F6285C0F1BE02941E17A146EDDD33B41F26064F12DE029410E77C08DD4D33B41A9DE638EFADF294146332F59D4D33B410000000007E029419A999959E0D33B41F6285C0F1BE02941E17A146EDDD33B410103000000060000003600000000000000DFE229416766666673D33B41751E6E33DDE2
 29413E733373D7D33B410000000015E229419A999999D6D33B41CDCCCCCC4CE12941CDCCCCCCD5D33B41000000004BE12941676666E639D43B41893ECD4C13E22941290A19B33AD43B419A99999911E22941CDCCCCCC9ED43B41CDCCCCCCD9E22941333333B39FD43B419A999999DBE229419A9999993BD43B41B46EE8FF6BE42941346BEB513DD43B41333333336AE4294167666666A1D43B416766666632E52941CDCCCC4CA2D43B419A999999FAE529419A999919A3D43B41CE433766FCE52941CF3C3D0A3FD43B419A999999C4E62941676666E63FD43B41CDCCCCCCC2E6294100000000A4D43B41856556A9C1E629416A9D9F3AEBD43B41713D0A57EAE629415C8FC235F3D43B41295C8F4238E72941CDCCCC8CFDD43B416C30D37D3CE729411D6E9B9F08D53B419A99999951E82941CDCCCCCC09D53B41CDCCCCCC19E92941333333B30AD53B410000000018E92941CDCCCCCC6ED53B4133333333E0E929419A9999996FD53B419A999999DEE92941333333B3D3D53B417CD264D096EA29419CDB3387D4D53B41C758A3EAA6EA2941AC86451ECED53B419A999999A8EA29410000008070D53B4133333333AAEA2941676666660CD53B416766666672EB2941333333330DD53B413333333374EB29419A999919A9D43B41CDCCCCCC75EB29410000000045D43B419A999999ADEA29413
 333333344D43B4167666666AFEA29419A999919E0D33B4100000000B1EA2941000000007CD33B41CDCCCCCCB2EA2941676666E617D33B419A999999B4EA2941333333B3B3D23B4133333333B6EA29419A9999994FD23B41C1279919EEE9294187FCE6CC4ED23B41CDCCCCCCEFE92941333333B3EAD13B419A99999927E92941CDCCCCCCE9D13B413333333329E92941333333B385D13B410000000061E82941676666E684D13B419A9999995DE829419A9999194DD23B41333333335AE82941CDCCCC4C15D33B416766666658E829416766666679D33B41CDCCCCCC56E8294100000080DDD33B41000000001FE9294167666666DED33B419A9999998EE729419A999999DCD33B4167666666C6E62941CDCCCCCCDBD33B419A9999996DE4294133333333D9D33B41676666666FE429419A99991975D33B4133333333A7E329413333333374D33B4100000000DFE229416766666673D33B4104000000000000008BE72941CDCCCCCCA4D43B413333333353E82941333333B3A5D43B41CDCCCCCCC2E6294100000000A4D43B41000000008BE72941CDCCCCCCA4D43B41050000009A99999920E92941333333337AD33B41CDCCCCCCE8E929419A9999197BD33B4133333333E7E9294133333333DFD33B41000000001FE9294167666666DED33B419A99999920E92941333333337AD33B41040000
 0002E8EEEE76E52941707777773ED43B413333333334E52941333333333ED43B4155A39919D0E429410B0000C03DD43B4102E8EEEE76E52941707777773ED43B4104000000CDCCCCCC8CE72941333333B340D43B41333333331DE929410000008042D43B410000000055E829419A99999941D43B41CDCCCCCC8CE72941333333B340D43B410400000000000000E2E92941000000800BD53B4167666666E5E92941CDCCCC4C43D43B41CDCCCCCCE3E9294167666666A7D43B4100000000E2E92941000000800BD53B410103000000010000001500000067666666ACE32941676666E647D23B419A99999974E42941CDCCCCCC48D23B41CDCCCCCC72E42941676666E6ACD23B410000000071E429410000000011D33B41676666666FE429419A99991975D33B419A99999937E529410000000076D33B41CDCCCCCCFFE52941CDCCCCCC76D33B4100000000C8E62941333333B377D33B416766666658E829416766666679D33B41CDCCCCCC5BE8294133333333B1D23B419A9999995DE829419A9999194DD23B416766666695E72941333333334CD23B4133333333CDE62941CDCCCC4C4BD23B4167666666CBE6294100000080AFD23B413333333303E629419A999999AED23B410000000005E62941000000804AD23B41CDCCCCCC3CE529419A99999949D23B41676666663EE5294100000080E
 5D13B413333333376E42941333333B3E4D13B4100000000AEE32941CDCCCCCCE3D13B4167666666ACE32941676666E647D23B4101030000000100000005000000CDCCCCCC6CE529419A99999956C73B419A9999996EE5294100000080F2C63B4100000000DEE32941CDCCCCCCF0C63B4167666666DCE32941676666E654C73B41CDCCCCCC6CE529419A99999956C73B410103000000010000000800000067666666D2E62941000000001FD13B41333333330AE62941333333331ED13B416766666608E62941CDCCCC4C82D13B419A999999D0E629419A99991983D13B41CDCCCCCCCEE6294133333333E7D13B413333333397E729419A999919E8D13B419A9999999AE72941676666E61FD13B4167666666D2E62941000000001FD13B410103000000010000000900000000000000B8EA294100000080EBD13B419A999999B9EA29416766666687D13B4167666666BBEA2941CDCCCC4C23D13B4133333333F3E929410000008022D13B41000000002BE929419A99999921D13B413333333329E92941333333B385D13B4167666666F1E929419A99999986D13B41CDCCCCCCEFE92941333333B3EAD13B4100000000B8EA294100000080EBD13B41010300000001000000060000000000000039EC29413333333372D53B41804CAF3638EC2941526A90EE9DD53B411F85EB51ABEC2941333333
 B392D53B41A956ED7F00ED2941053B2A0B9AD53B413333333301ED29419A99991973D53B410000000039EC29413333333372D53B4101030000000100000007000000CDCCCCCC02ED2941000000000FD53B419A99999904ED2941676666E6AAD43B413333333306ED2941CDCCCCCC46D43B41000000003EEC2941676666E645D43B41676666663CEC294100000000AAD43B419A9999993AEC29419A9999190ED53B41CDCCCCCC02ED2941000000000FD53B41010300000021000000DC0000001445DF8900ED29412EB9050C9AD53B417B14AE4719ED2941E17A142E9CD53B41C3F528DC64ED29417B14AE87B9D53B4190C2F528B6ED29410AD7A3F0E7D53B4185EB51B8F9ED2941295C8F4206D63B41FE8E2EBA20EE2941836E03823CD63B4190C2F5A828EE2941A4703D8A47D63B411F85EBD169EE2941EC51B8DE7CD63B412EC1654977EE294118680004A1D63B413E0AD72379EE2941D7A370FDA5D63B41BD2783378CEE2941FF99028FACD63B415C8FC27506EF2941676666A6D6D63B411AFE884C53EF294160005F65F3D63B412B5DA5D685EF2941A6489B4D06D73B419A999999ABEF2941E17A146E14D73B4185EB5138FDEF2941F6285CCF2FD73B412DBAF5481AF02941EB8702C73CD73B41000000806EF029419A99995962D73B41CE7AB6AA8AF02941CA615A826BD73B4148E17A1
 4CCF029417B14AEC780D73B41632DB122E1F02941975893F588D73B41D7A3703D63F1294100000080BBD73B41195D796E9CF12941FA34DBD8D0D73B41340A5B1FA8F129411EC0F735D5D73B41D7AC83006FF22941A6499E711FD83B416766666670F22941333333B3D1D73B41952BAF0D6FF2294112B888761FD83B41A4703D8AABF22941A4703D0A36D83B41DDE5450736F32941F27BB10B69D83B41F6285C8F66F32941B81E85EB7AD83B41A3AA38FFB6F329417B3D2D629BD83B41676666E6D9F3294185EB5178A9D83B41A58D8AEDFCF3294113744AF4B5D83B4152B81E058DF42941F6285C4FE9D83B411C87B5D6C3F42941BA598B72FED83B41CDCCCC4C10F52941E17A14EE1BD93B413FEEBC828BF52941D106B41C20D93B415C8FC2751EF629419A99991925D93B419142BA4F53F629415C1B0BE439D93B413333333354F62941CDCCCC4C02D93B410000000056F62941333333339ED83B415BF6085B53F6294185D47DE839D93B4103E4CCC5C5F629415744F2EA66D93B41CDCCCCCC1AF72941CDCCCC4C67D93B4182A61DCFC5F629415A639CEE66D93B417945A7351AF729415AEB3A2288D93B41676666E636F72941B81E856B93D93B41291E8C89BAF729419F1CFA15CCD93B4167666666A9F829419A999919CDD93B4133333333E1F72941CDCCCC4CCCD93B416307CBA1BAF7
 29417FFF6920CCD93B410AD7A3F0D1F7294190C2F528D6D93B4185525C03E1F729415815C0FDD7D93B41A74E7FD6A8F829417A578344F0D93B41333333B3C9F82941295C8F42F4D93B418C30C5903DF92941E4B88EDF31DA3B4190C2F5A84CF92941676666E639DA3B4180005DA16FF9294157E173A846DA3B41F6285C0FC4F929415C8FC27565DA3B41B50F21852BFA2941642C140D97DA3B4162DE6B5136FA29415677133A9CDA3B416766666636FA29419A99991997DA3B41CDCCCCCC39FA2941CDCCCCCCCED93B41D1205A6136FA29413A48B6419CDA3B419A99999992FA29415C8FC275C8DA3B41676666E6CAFA2941E17A14AEBADA3B41B81E85EB0CFB294185EB51F8BDDA3B41E17A14AE64FB2941EC51B85ED1DA3B410AD7A3F064FB29419A999959C2DA3B41295C8FC2C8FB2941CDCCCCCCD3DA3B41C3F5285C0CFC2941EC51B81EF0DA3B410AD7A37037FC2941EC51B85E28DB3B41CDCCCCCC9AFC2941713D0AD754DB3B41295C8F42D0FC2941C3F5281C77DB3B41EC51B89E07FD294167666666A0DB3B410C26313B1DFD2941BB46D78FC6DB3B41F6285C8F2CFD294115AE47A1E1DB3B410E89AC2551FD2941A434715901DC3B4152B81E0554FD2941713D0AD703DC3B41F6285C0F6FFD294152B81E053DDC3B41713D0AD7C5FD2941AE47E17A8ADC3B41905FB07D12FE2941A
 4C37FE18FDC3B41694AC41FEBFE2941F1DFF5CC90DC3B419A999919F0FE2941295C8FC28FDC3B41333333332DFF2941333333F352DC3B41AE47E1FA8DFF29411F85EB512CDC3B4190C2F5A81A002A413E0AD7E30DDC3B41B1AE034A72002A4160B347E6F8DB3B416766666676002A410000000002DB3B413333333378002A41676666E69DDA3B41CDCCCCCC74002A419A99991966DB3B4109D4954E72002A4121682FE5F8DB3B41B62D0F573B012A41404082BDC8DB3B41E17A142E3E012A41F6285C0FC8DB3B415559285104022A41D9C503FA95DB3B41CDCCCCCC06022A41333333B303DB3B419A99999908022A419A9999999FDA3B413333333305022A41676666E667DB3B412198275F04022A41E1077AF695DB3B41A4703D8A33022A41A4703D0A8ADB3B4106C9049260022A418AABDE4368DB3B41A4703D0A9F022A4190C2F56839DB3B41F12AE880CE022A41DC5887B827DB3B41AE47E17AD9022A4115AE47A123DB3B41AEB054951B032A4150DCA5F104DB3B415C8FC27546032A41A4703D0AF1DA3B4152B81E8578032A41295C8F42F1DA3B41F0C50F1998032A41ED967BD6D9DA3B417B14AEC7D3032A411F85EB91ADDA3B410CD07853F4032A410610D3C3A1DA3B41A0D9DBE161042A41E927E1067ADA3B419A99999964042A4100000000DAD93B410000000063042A419A9999
 193EDA3B410850CA06B4042A412F6CD9763EDA3B419A9999192A052A4152B81EC5C8D93B41FC955A532D052A41DCDDF0D6C1D93B419A9999992E052A41CDCCCCCC76D93B416766666666042A41676666E675D93B41CDCCCCCC69042A41333333B3ADD83B419A999999A1032A41CDCCCCCCACD83B4167666666A3032A41333333B348D83B4100000000A5032A419A999999E4D73B4167666666A8032A41676666661CD73B410000000018022A41333333B31AD73B4133333333E0022A41000000801BD73B419A999999E3022A41CDCCCC4C53D63B4100000000E2022A4167666666B7D63B419A9999993A052A4100000000BAD63B416766666641052A419A99999929D53B413333333379042A41333333B328D53B413333333374042A410000000055D63B41AAED3300AC032A41746E822654D63B419A999999AD032A419A999919F0D53B4167666666AF032A41000000008CD53B4100000000B1032A41676666E627D53B41CDCCCCCCE8022A410000000027D53B416766666658012A41CDCCCC4C25D53B413333333390002A416766666624D53B410000000092002A41CDCCCC4CC0D43B419A99999993002A41333333335CD43B41CDCCCCCC5B012A419A9999195DD43B419A9999995D012A4100000000F9D33B416766666695002A419A999919F8D33B4133333333CDFF294133333333F7D
 33B410000000005FF294167666666F6D33B41CDCCCCCC3CFE294100000080F5D33B419A99999974FD2941333333B3F4D33B410FB807CD72FD29410B4000C058D43B419A999999AAFC2941676666E657D43B4167666666E2FB29419A99991957D43B41333333331AFB29413333333356D43B410000000052FA2941CDCCCC4C55D43B41CDCCCCCC89F929410000008054D43B410000000088F929419A999999B8D43B41CDCCCCCCBFF82941333333B3B7D43B419A999999F7F72941676666E6B6D43B41CDCCCCCCF5F72941000000001BD53B4100000000BEF82941CDCCCCCC1BD53B413333333386F92941333333B31CD53B41676666664EFA29419A9999991DD53B41CDCCCCCC4CFA2941333333B381D53B419A99999984F92941CDCCCCCC80D53B41CDCCCCCC82F92941676666E6E4D53B41000000004BFA2941CDCCCCCCE5D53B416766666649FA2941676666E649D63B413333333381F929410000000049D63B4100000000B9F829413333333348D63B419A999999BAF829419A999919E4D53B4167666666BCF82941676666E67FD53B4133333333F4F729419A9999197FD53B4167666666F2F7294133333333E3D53B41333333332AF72941CDCCCC4CE2D53B410000000062F6294100000080E1D53B413333333360F629419A99999945D63B419A9999995EF62941333333B3A9D63B41
 00000000EFF7294167666666ABD63B4133333333EDF72941000000800FD73B419A999999EBF729419A99999973D73B41CDCCCCCCB3F829410000008074D73B416766666623F72941CDCCCCCC72D73B410000000020F72941000000003BD83B41333333331EF729419A9999199FD83B410000000025F72941333333B30ED73B41CDCCCCCC5CF62941CDCCCCCC0DD73B416766666659F6294100000000D6D73B413333333391F5294133333333D5D73B410000000093F529410000000071D73B419A99999994F52941676666E60CD73B416766666696F52941CDCCCCCCA8D63B4133333333CEF4294100000000A8D63B41CDCCCCCCCFF42941676666E643D63B41562D33B36BF429412D33337343D63B410000000098F52941333333B344D63B41676666669BF52941000000807CD53B4133333333D3F42941333333B37BD53B4100000000D5F429410000008017D53B41CDCCCCCCD6F4294167666666B3D43B4167666666D8F42941CDCCCC4C4FD43B413333333310F42941000000804ED43B410000000048F329419A9999994DD43B41CDCCCCCC7FF22941CDCCCCCC4CD43B41676666667CF229410000000015D53B4133333333B4F129419A99991914D53B41CDCCCCCCB5F1294100000000B0D43B419A999999EDF029419A999919AFD43B4100000000ECF02941CDCCCC4C13D53B4167666
 666E8F0294100000080DBD53B413333333320F029419A999999DAD53B410000000022F029410000008076D53B41CDCCCCCC23F029416766666612D53B419A9999995BEF29410000008011D53B41CDCCCCCC59EF29419A99999975D53B41333333335DEF294167666666ADD43B41000000005FEF2941CDCCCC4C49D43B41CDCCCCCC96EE29410000008048D43B410000000095EE29419A999999ACD43B41CDCCCCCCCCED2941333333B3ABD43B4167666666C9ED2941676666E673D53B413333333301ED29419A99991973D53B411445DF8900ED29412EB9050C9AD53B41040000003333333302FB2941333333B3CFD93B4167666666CAFB29419A999999D0D93B41CDCCCCCC39FA2941CDCCCCCCCED93B413333333302FB2941333333B3CFD93B410400000000000000CCFB2941000000806CD93B41CDCCCCCCCDFB2941CDCCCC4C08D93B4167666666CAFB29419A999999D0D93B4100000000CCFB2941000000806CD93B4104000000CDCCCCCC03FB29419A9999996BD93B419A9999993BFA2941333333B36AD93B4100000000CCFB2941000000806CD93B41CDCCCCCC03FB29419A9999996BD93B4105000000CDCCCCCC79002A41CDCCCCCC39DA3B410000000042012A41333333B33ADA3B41E14CCD4C40012A412C57AFCC9EDA3B413333333378002A41676666E69DDA3B41CDCCCCCC79
 002A41CDCCCCCC39DA3B4105000000D653CC4CD4022A417B9FE84CD8D93B41F45ACC4CD4022A4187FCE64CD8D93B41676666669C032A419A999919D9D93B419A99999964042A4100000000DAD93B41D653CC4CD4022A417B9FE84CD8D93B4104000000333333339E032A410000000075D93B41CDCCCCCC9F032A41676666E610D93B419A999999A1032A41CDCCCCCCACD83B41333333339E032A410000000075D93B410400000000000000D6022A413333333374D93B41CDCCCCCC0D022A41CDCCCC4C73D93B41333333339E032A410000000075D93B4100000000D6022A413333333374D93B41040000006766666601FF29419A999999BED43B413333333303FF2941000000805AD43B410000000005FF294167666666F6D33B416766666601FF29419A999999BED43B41040000000000000071FD2941676666E6BCD43B413333333339FE2941333333B3BDD43B416766666601FF29419A999999BED43B410000000071FD2941676666E6BCD43B4104000000676666666FFD29410000000021D53B419A9999996DFD29419A99991985D53B410000000071FD2941676666E6BCD43B41676666666FFD29410000000021D53B4104000000CDCCCCCCFFFE2941333333B322D53B419A99999937FE2941676666E621D53B41676666666FFD29410000000021D53B41CDCCCCCCFFFE2941333333B
 322D53B410500000000000000C8FF29419A99999923D53B4133333333C6FF2941333333B387D53B4100000000FEFE2941CDCCCCCC86D53B41CDCCCCCCFFFE2941333333B322D53B4100000000C8FF29419A99999923D53B41060000009A999999C4FF2941CDCCCCCCEBD53B41CDCCCCCC8C002A419A999999ECD53B41000000008B002A41333333B350D63B41CDCCCCCCC2FF2941676666E64FD63B4133333333C6FF2941333333B387D53B419A999999C4FF2941CDCCCCCCEBD53B41040000000E3B3333DDFB29416F66666683D53B4167666666A5FC29413333333384D53B419A9999996DFD29419A99991985D53B410E3B3333DDFB29416F66666683D53B4104000000FAFFFFFFA7FC294144CECC0CEED43B41CDCCCCCCA8FC294100000000BCD43B419A999999AAFC2941676666E657D43B41FAFFFFFFA7FC294144CECC0CEED43B4104000000CDCCCCCC16FB2941676666661ED53B4100000000DFFB2941CDCCCC4C1FD53B41676666664EFA29419A9999991DD53B41CDCCCCCC16FB2941676666661ED53B41040000006766666628F729416766666646D63B41CDCCCCCCF0F72941CDCCCC4C47D63B413333333360F629419A99999945D63B416766666628F729416766666646D63B4104000000CDCCCCCC3DF32941CDCCCC4CA6D63B410000000006F429419A999919A7D63B413333
 3333CEF4294100000000A8D63B41CDCCCCCC3DF32941CDCCCC4CA6D63B4104000000CDCCCCCC1CF02941CDCCCCCCA2D63B41CFCCCCCC1CF0294164CCCCCCA2D63B41CACCCCCC1CF02941A6CDCCCCA2D63B41CDCCCCCC1CF02941CDCCCCCCA2D63B41040000006766666602F42941CDCCCC4C6FD73B41CDCCCCCCCAF429413333333370D73B41333333333AF32941000000806ED73B416766666602F42941CDCCCC4C6FD73B41040000009A99999944F32941CDCCCCCC15D53B41E85F54FD41F329411683449AACD53B41CDCCCCCC42F32941676666E679D53B419A99999944F32941CDCCCCCC15D53B4105000000000000007CF92941CDCCCC4C75D73B419A9999997DF929413333333311D73B410000000046FA29419A99991912D73B413333333344FA29413333333376D73B41000000007CF92941CDCCCC4C75D73B41070000009A99999947FA294100000000AED63B41CDCCCCCC0FFB2941CDCCCCCCAED63B4100000000D8FB2941333333B3AFD63B4167666666D6FB2941CDCCCCCC13D73B41333333330EFB29410000000013D73B410000000046FA29419A99991912D73B419A99999947FA294100000000AED63B410400000000000000D3FB294100000000DCD73B419A999999D4FB2941676666E677D73B4167666666D6FB2941CDCCCCCC13D73B4100000000D3FB294100000000D
 CD73B410400000000000000A2FC2941000000804CD63B41CDCCCCCCD9FB29419A9999994BD63B419A99999911FB2941333333B34AD63B4100000000A2FC2941000000804CD63B41040000000000000096FC29413333333309D93B419A99999997FC29419A999919A5D83B416766666699FC29410000000041D83B410000000096FC29413333333309D93B410400000000000000F2FE29419A99999943D83B41CDCCCCCCF3FE294100000080DFD73B4167666666F0FE2941333333B3A7D83B4100000000F2FE29419A99999943D83B410500000000000000BCFF2941CDCCCC4CE0D73B41676666664C012A4100000000E2D73B413333333384002A4133333333E1D73B41CDCCCCCCF3FE294100000080DFD73B4100000000BCFF2941CDCCCC4CE0D73B41080000009A99999914022A41676666E6E2D73B41CDCCCCCCDC022A41333333B3E3D73B4133333333DB022A41676666E647D83B41CDCCCCCC12022A410000000047D83B416766666682002A41CDCCCC4C45D83B419A9999994A012A419A99991946D83B41676666664C012A4100000000E2D73B419A99999914022A41676666E6E2D73B41040000009A999999BDFF2941333333337CD73B4133333333C1FF294100000000B4D63B4167666666BFFF29419A99991918D73B419A999999BDFF2941333333337CD73B4104000000CDCCCC
 CC4F012A41CDCCCCCC19D73B419A99999987002A410000000019D73B4167666666BFFF29419A99991918D73B41CDCCCCCC4F012A41CDCCCCCC19D73B41040000006766666652012A41666666A683D63B413333333353012A419A99999951D63B410000000055012A4100000080EDD53B416766666652012A41666666A683D63B41010300000001000000050000009A9999992DF729419A9999191AD53B41333333339DF529416766666618D53B41676666669BF52941000000807CD53B41000000002CF72941333333337ED53B419A9999992DF729419A9999191AD53B4101030000000700000025000000676666667BFD29413333333364D23B419A99999979FD294167666666C8D23B410000000078FD2941000000802CD33B413333333340FE2941CDCCCC4C2DD33B41CDCCCCCC3CFE294100000080F5D33B4133333333CDFF294133333333F7D33B419A9999995D012A4100000000F9D33B41CDCCCCCC25022A41CDCCCCCCF9D33B410000000024022A41676666E65DD43B4133333333EC022A41CDCCCCCC5ED43B4100000000EE022A41333333B3FAD33B41CDCCCCCCEF022A419A99999996D33B419A99999927022A41333333B395D33B413333333329022A419A99999931D33B4167666666F1022A410000008032D33B4133333333F3022A4167666666CED23B41CDCCCCCCF4022A4
 1CDCCCC4C6AD23B4100000000BD032A419A9999196BD23B41CDCCCCCCBE032A410000000007D23B419A999999F6022A419A99991906D23B4167666666F8022A4100000000A2D13B419A999999C0032A41676666E6A2D13B4133333333C2032A41CDCCCCCC3ED13B4100000000FA022A41676666E63DD13B41CDCCCCCCFB022A41CDCCCCCCD9D03B419A99999933022A4100000000D9D03B41676666666B012A419A999919D8D03B419A99999969012A41333333333CD13B4167666666A1002A41676666663BD13B4133333333D9FF2941000000803AD13B4167666666D7FF29419A9999999ED13B41333333330FFF2941333333B39DD13B410000000011FF29419A99999939D13B41CDCCCCCC48FE2941CDCCCCCC38D13B410000000047FE2941676666E69CD13B41CDCCCCCC7EFD2941000000009CD13B41676666667BFD29413333333364D23B41040000006766666645FE29410000000001D23B419A99999943FE29419A99991965D23B410000000047FE2941676666E69CD13B416766666645FE29410000000001D23B41040000006766666608FF2941333333332ED33B41000000000AFF29419A999919CAD23B41CDCCCCCC0BFF29410000000066D23B416766666608FF2941333333332ED33B410400000090999999D0FF29412F0200002FD33B41A3999999D0FF2941D1FDFFFF2ED3
 3B419A999999D0FF2941000000002FD33B4190999999D0FF29412F0200002FD33B4104000000333333335F012A41676666E694D33B4152E665E6CEFF29413B0FB71993D33B410000000097002A410000000094D33B41333333335F012A41676666E694D33B4104000000000000002B022A4100000080CDD23B419A9999999A002A41CDCCCCCCCBD23B41CDCCCCCC62012A419A999999CCD23B41000000002B022A4100000080CDD23B41040000009A9999992C022A416766666669D23B410000000030022A4133333333A1D13B41676666662E022A41CDCCCC4C05D23B419A9999992C022A416766666669D23B4101030000000100000007000000333333335A012A4133333333C1D43B416766666658012A41CDCCCC4C25D53B419A99999920022A419A99991926D53B416766666622022A4100000000C2D43B410000000024022A41676666E65DD43B41CDCCCCCC5B012A419A9999195DD43B41333333335A012A4133333333C1D43B410103000000010000000500000033333333E0022A41000000801BD73B4167666666A8032A41676666661CD73B4133333333AA032A41CDCCCC4CB8D63B4100000000E2022A4167666666B7D63B4133333333E0022A41000000801BD73B4101030000000100000007000000CDCCCCCCB2032A41CDCCCCCCC3D43B419A999999EA022A41676666E6C2D
 43B41CDCCCCCCE8022A410000000027D53B413333333379042A41333333B328D53B41CDCCCCCC7C042A410000008060D43B4167666666B4032A419A9999995FD43B41CDCCCCCCB2032A41CDCCCCCCC3D43B410103000000010000000700000033333333EC022A41CDCCCCCC5ED43B4167666666B4032A419A9999995FD43B4100000000B8032A416766666697D33B4167666666BB032A4133333333CFD23B4133333333F3022A4167666666CED23B41CDCCCCCCEF022A419A99999996D33B4133333333EC022A41CDCCCCCC5ED43B41
 </op>
 </test>
 </case>

-----------------------------------------------------------------------

Summary of changes:
 include/geos/index/strtree/AbstractSTRtree.h   |  12 +--
 include/geos/index/strtree/SIRtree.h           |   2 +-
 include/geos/index/strtree/STRtree.h           |   3 +-
 src/index/strtree/AbstractSTRtree.cpp          |  26 ++++-
 src/index/strtree/SIRtree.cpp                  |   4 +-
 src/index/strtree/STRtree.cpp                  | 139 +++++++++++++++----------
 tests/xmltester/tests/issue/issue-geos-488.xml |   2 +-
 tests/xmltester/tests/issue/issue-geos-837.xml |   2 +-
 8 files changed, 116 insertions(+), 74 deletions(-)


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list