Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfixes in inference from Numpy dtypes #826

Merged
merged 8 commits into from
Oct 8, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions RELEASE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
RELEASE_TYPE: patch

This patch improves the quality of strategies inferred from Numpy dtypes:

* Integer dtypes generated examples with the upper half of their (non-sign) bits
set to zero. The inferred strategies can now produce any representable integer.
* Fixed-width unicode- and byte-string dtypes now cap the internal example
length, which should improve example and shrink quality.
* Numpy arrays can only store fixed-size strings internally, and allow shorter
strings by right-padding them with null bytes. Inferred string strategies
no longer generate such values, as they can never be retrieved from an array.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unclear what impact this has to the user. It's basically just a performance improvement, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep - better shrinking because we know not to try null-terminated strings. I've added a line to that effect below.

This improves shrinking performance by skipping useless values.

This has already been useful in Hypothesis - we found an overflow bug in our
Pandas support, and as a result :func:`~hypothesis.extra.pandas.indexes` and
:func:`~hypothesis.extra.pandas.range_indexes` now check that ``min_size``
and ``max_size`` are at least zero.
14 changes: 7 additions & 7 deletions benchmark-data/arrays10-valid=always-interesting=array_average
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@
# condition "always" and the interestingness condition "array_average".
# See the script for the exact definitions of these criteria.
#
# This benchmark was generated with seed 317
# This benchmark was generated with seed 366
#
# Key statistics for this benchmark:
#
# * 1000 examples
# * Mean size: 1098.88 bytes, standard deviation: 280.97 bytes
# * Mean size: 754.31 bytes, standard deviation: 542.90 bytes
#
# Additional interesting statistics:
#
# * Ranging from 6 [6 times] to 3118 [once] bytes.
# * Median size: 1090
# * 99% of examples had at least 90 bytes
# * 99% of examples had at most 1852 bytes
# * Ranging from 6 [4 times] to 3620 [once] bytes.
# * Median size: 916
# * 99% of examples had at least 41 bytes
# * 99% of examples had at most 1876 bytes
#
# All data after this point is an opaque binary blob. You are not expected
# to understand it.

Data 3264: STARTPCOE3GBZSISTODCEV7JDC5Q33QE4YVIU6I2IN3HRUTIN2VLYBGZL4U6RZXHQKS3GALSL6P3677647L67H57H57KRZOVN6X5VBZ735LNO7B5T4763T3PV7PW36N7RS7DN6F6YM267WGTOYEVTMO65WM6F7LZX7L6VX27WNLDOMWH6PJ767TXWLRHWHULJPUU7QG3J6T4NIN5YTUKZBPN4OULDY3P22PPDW3LJSYUV2UBTGORLMUPA55AVNN3NTR3A376XUVGYMUMAPR5HH7TFQ67W3BV6FMJRG7GA2B6NT74R4H6TIGB2GWYMIRYB4H6DT7RHQVMMFH3NUVOCVZNOV5NLFYHJQYOSBINZ3AN6OYONNY6DW2B4S4NQE23Y4F7ODCGRH7SM3HGG5JOEVCPY2HQDHG3ZFEGYX73I4CI43YEPBZGEWB5SYZSHYS6T6SZW7M3SXYJEONVWOROEUJXKFC4R6OM5ZKT6YSIKE7AR2RZLE3LBXEI5ROTC2YUIACZQNXFQT2YE2PBS64YBQS2JF3WGSFWO2JVDYJO7YKSKIIQDO74L3T4AQU23IDBZ3DL27RE6Q23NVTTBILLR2DXUUXXEO4IDFILM7PM3KNVWOVZMO4CNV3YN3IFIWFL6DJFG7BVSS76DTQLJNA5RY6APRUJCWIDHQC53ZQPAP5OI3FTMHJVYCHBVLZWZLQM64EKJB7ZZ3ZAPRC3DWODCITIQJYLODNB7BSXKRV3SGVXVYARRHD4D4ZCBHH2GVXXX53NFNON3FBF5MLHFE2GLIVRVVXHNWUVNYMOYBIRHITXN5QLW5G5WOMJL2BUBLUX6QZOJXRY3KKOMBDBH4TTYGINQSI5EAVJIGHBLAC3GQW3SCTVRLHZWA4EWBE6BSQFM646EKPUZ4YM52OQ7YSYE5GSSENFWVCAQCWG5LDNVHKEIRDKCKYZJCNAHTRU6AADFS3NBNOGIVX4SGA3BYIZF5P4S3PR3MLQU2IIC32NSKMAZMU7MPC3OAIX75TTAMZF25DE3S4RLTHUH3SH7FM2XLED42GIXHDI7OOXETE4DXFKFQFELVAKOBMTJ6DAICU2JKGECRCEBXDE6SSPUR3KGYQQHPGW5IMYZJYCBYYCIPCJZUUUNJL2KBPVYADLAYT3BQRY5GCWALQ6OJGOQVGOOQKVNIHB36HOJCDKDNSC5QAVIEJEB46RCXBNT7MD4X3NADOFTRR2ALWLMSCHPA2CH6GJOHNMR36YHFG3IDWFKP2VVL4SRWSAWYEJVGJBEKLKCBPVCGSQX637BV22QG3UP77RZZBMGKEIJ5NMYDUTUS53AQSJCM7ISRISHRBFRIPGBUYXLJUB2EIODJJGZQEQU34JGAUFFKYSE7MEZSVONAKQRSYWYLF76FIGGLH6JOUCT47JIZIQC5EBJRAJBWCF4QRPRES4I5IXBOMNF4HCSELQCZE6IOZ6CLPFBHJ7LFPWRS4R24QXDDABFVLH4U7IYRPWOXCDHWYYPLIJDVIYF3FLETQOYK42DDQAL52QG3KINTLL6TMVZKXSJNS3QH5JHQ5FNIPD6XFNA6ZFFCA6JDDXPLQSGAHXGHLOR5RME4BKRKR4J3FN2OCEJZH7CAOMCEDE4FTKTGD5425CZW46UTRYLTUJVYT42C4CUOVLMVHXYSMQZPLTZCUMBDURFBDRECEEJCZFXFVK3NEKVLSPE2UKHZJCPD2BEODOBVFYVAT5C3EF6ASAKNPVIMQZWWJDOOR4VDMZUM57VTKRCX4HDOH6T63EX7JVLXZK3Q7TYEPRNPQESPLZCMLFKS3XKWO4NWZZFBLRJHI2ONHR2LVXBZBHQTZPFDKASUHWT33NDLMMP54V2JSEZI7KAW5SM7LESSK7MBYZN44AKXJNYTCNO4BKK3FZHYVCP6RE7KIMIX7BTYRHCRFV3SGRNXHM66QPVGOXIBI3FJ7GRP6KHDPZN4IS5UOBJ4VMAVRVY5IBJ5VZQTXB4NNE3LM3DKHDS53RPVGWADKNL47BNR2TK7BK6JWNQLZLGKQGGTPYK32RJEJ757LSSULMN75FA4YH3FVGJ2QNUL6IVH53BFIEOKPG24LTSLCZLAYOVJNVNEMOFX7MMEINB5JKI5DVDHOO3HM3DNFJC7FNV7EI7O7VOCPJMAHSB33AJJ7S5MHKATMBTV444QZSKBL6VIIZC5KESM4PI3TDSFXBODSQGZPNWQNAAXQLTVWFQZPKXYESE45XWNQH45Z3JUJKG6R63C4CR2EVJBGSWIWEUI5FWMQ4SVI5BAHUTRJAUEBM7SI62IIF6R5E5SLDFF6REURHDEZONDJWRSA3IRTHFKXARHRMRFGK647ROBRVKXWUFQSYUWDJMG3TW4GGNRINOHGXXJ4C7GUCQNVSEK3LQUHOR5VFFCMVFY2S47GHH3S3OCGTWH5WOB2TV2H6V7EGG5GLGVHN472DNO52FPEDZCHOA2KBKWTB7CIX6UN4YVLHKQG6JBUXZTWMKIUEO2XXQACARQSVG62UD3NIWC5N6MOUNKVCXGWJMOXWKIHXHSW6IZOXTZB7EYJ246S7NC35AXW4DSOU5NDNO43WUUJ7PDUY5TFMFVZFAURUJC4LWYVOOEXR64I2KZV7DCTS65PJE75IANTSAKLNPL4VCE6R7NH373IMPP2XLPI465LY5I2R5XHUEXMUD46G5E3BYJN34QE2ICZGWYH52MVSL64RU2PEY5FVIANAFH4TGIXEZ4AVD5CQOB2HUB63ACJYKJNW74ZV2MF3TRRSLBXARALFH7LITQQG524GGX4RN4TRQKQ4ROQ5KG6NQVHN3LKWIKDZY5DJDV6YEJAXOICLT7LXF2F7BHQNJTOJSRWKUZKKFMOYPC2O4FITHA4OFS2S667D4HDVOOFAO7VM6TICV3JU67WOKR4PAA3OU2AW3F3ZJ5L7KRIT4STPPCOKCGGKNN7STPBNGSKSEPP54PIFXJN73OP6RRAJQDJCVPR5P4ZAS63PFBQ33EMSUNY7W4RJK5LFEQF2KETXXV6UR72EMGH6XKLOUEVBEKJS6WKZPU3LFITZ3XQAPQW27BJSFF5JOXLZ7AATK66I63SMOTJYDKGTP4D6N5LSEYOLN37QNUWOBOTHT3UE3U3IVGCPK56RR3HZ2C3Q4WDYGVJL3IRKZZVTN6KJR5FBFAIVH525KMI2KGUAO2FLANZX3QDNLZHCSTOHY4SSPXH3625CLAIRECJPUFNPUZ24735PT67X77L25PD47J7P33773D7KCCF4EEND
Data 3224: STARTPCOE3GF5SJSSODEEL5SWVYQ3ADRNPL7COLTA2HDPM2L57XPU27ADUOJVOMHSBKOVNKE7HT7XZ67757XR6P53PL67OMUZ7L24M3WGO3T2RT6VR6PTWXTP5N6F7J6JLXH37Z76YNKL5PJNI27NZMY7L762Z44TWB7RWP3O7E7VWLULZUXO32JLJLCV57NYX26QQLDLWVPOCFZ6YE7KW3GUSOPNGWZ6DFBWYZPN3U3Y625LNV5KSVK6WU66HNRWUQPNJE76GXDO7OUVHQS66IFPGKPWT5G7N4Q4POI5NFOFSZ6WUBD6BVHBECSZFM57MWKUGZJGWLZMVXEXKOOSA2D62P2HE5LJ7UNQ22Z5N3Q7JLK76IPUC7PCUG654DWSPMEXNV3CMYHAJRBF4BE34YG3MVA7B45FSVVVJAHK72UUFG3RLTCIBGYK6QOGOGWWEIRV5XU3BALQONYR5MSBYCBZ5NNUZEXIPL35JJETUSQQWE5AWUDMMYW3M6Z2FODZEHBYUJAFODARRTP3JPAEJFIRUFZZDOYEC4HPVCLAABXFLR5AK72ZJPCCCQHXUPPXBF3I6LVZADQCXQHPDJPE7WMMFKEMPHZFPYSATOEEIP2BXWKLA6EAV6OUHN3FNXODZAWBQKRGPLEDHAIUGSRFWVBEYDDH6BOSIHHM6YDG3UYBQXAOL5BE25KQZGGJO3Q75TFEICUS63FG3BFOIYYI4I2DEVSIWHMADUXCDLDVO3CSJ2YB7QTE5KSQEBOFNDDIRWR3M45CTWWLPVEYEAPMRNYC2ATYKTJVHGIHQFAUBSWEAQDIVMBWCC6AMM5VSQQS5ULO4DYLCKZ6FXIHSMNQ7K7UESUUTMUICYAV4U5OJCUO5ALJFBSVDBWVZZ5F5VTIJ5DFHQOJYFXJZWZLIWOOITDODFYSYKIHRBIVRU72W3ITAHSUFNHJKS7HK2Z7BAFXAUC3OKK2OCIGFVSQZARAEUBROC62TJSZ2KWDCZUGZCGO43IMMISZQMZS4IIQF3O7ZYLJVGKDMLPYASWC2PZUAOZCFCRMLWG6AVM2SSHELPERCM2YS2RBOLJCQSJIL6OJU3K5X5IZ7E54FGHWGWGJQEEXWVPVKSIJ2AGC4QT3IITOBI64TISONDV7UJ3LTUAEGUJITZES3FADXM2B4WPM4YK47AUUWNPWTGFKML5MYFXEHAAC3JKJQ52BKXDURHXVFHDIDSILLBCABDSEMM5DBQETIGJLFVTVDNUWXBGDGTSMOPHHZU7BSZO7TZUOFKMWX6TX24PPUTMLCFKN35NUJWHEIZMTF6SUM365RG2W7EF53LT5LFYVH2M7U34XH5CYKU5IBH3YLFFPD2PQIZI5CGVADC2BTJXVMCDJKEGTUHO2FZ3B4PRAHWAUQENGGTIWDIRGCC7ATY7FXZZFUNZI2VNQRFC3LFLUM4V4FJ3Q6SUITCG5CPXHQWU2QWW4WJCIH4I2IDYZ7TUJ7KAEXZHE4JRQD5WSTMQ5QEKWGNHUF43GTCNOALF4C7ZOCJTMKIQNNLV4VSIBPXKPWJOTSJBJRQC2OPLY7FWACXO4YPUDFFL2AHUJDHRVAQ4QOKIOEHISJGXEJMXBPO47ZABCFVJYEEWN4JK5UJMUPXJ7B5V6ALLEGI3TFJJBR5BHYRLCZQDLSVQZMU5J3F54EFDIHKONLXJBZEB2PIXEFA674BK2DFD6VTR2NDPWRAXFJUUCETNSC4MO5QF6GARRHJBD3MD2WS35ZJQL3RCX4TRGGHQDFZH22FVFYUDG5OAILAS5YWA2WEFIRGE3MUXRJPFTYDXLWCTMOVHVFZHSN5A5UAHGMRRMWDJ4HZT47LWJEX4UA3UJBBYKPDWBOJNDGFPEULEEKZD6RZPIVDWRDVV5CJEWT4UZVJ2L2YVEX6TMHHHENEHTLJJNK46MP4KEM6ZNQJQEEBHGLVOUFZUARNW3PJRC5KCOXEY5HU7TBPEK2O47ESY7BUEKVVTR4BL2HIJUTTY6CCMFGARKA3NAZIMGB5PJPFKMI4Z7LUYCHRLFKKBUBZY4Y3DCV6H6SLWWDZLCGSSWHZHALVRILYWRAVU6DAWGTDAR3LH5RM52BOGKSY2JCA6MEBEKM5565VZO6MR5GSD24EJLLGDA7JUUZVX5USRYHG2CEYG4HU5TEKN5YWKCA2TFYH3YIBRYR5NZCMQPYEZO2V5ASCOXXM7OTDBRLXOAZ5M2ZBHHXNRIPCLNCIBJP7AZ2MW2DERY6RHFKLGIQVKXNWKWQF6GFWQGRBHPNBY2R3PBGANR6L3IYM32S6TOK7TTE4EH25Y24Q2NW4I5AAUGOPX4H63O3GHPDZBLTQYDGR22MOGQ63RUYWII5O5H7C5GKUSKIWMQZT7VAO2OPHMZ3UVYWZNNX4HOUOM6EKHF6MPKKW5BHVNJ4P7CAT4EMKG4S4Q2WAFQGKH6OD3T3FLVGUQWDKT3PS3TH7JWF52BTPAWWVQHJRKZV3QS3LTW575BMRYE2FBLC22GR3YFPWI5XYZADC4HZZQAUQSGSJ76M5DJ52SJOVGVURVMQE36QXTQZRO44ZXNWQPK6F5RTITRE22H4POIOSA42CQS5BDC76C5WUMJL5QCFQ5IQU7LLRWPF5DERZONMU2DXZYSWHNIKVW2IA5PSPX2HHZTCC5GJGXHNTUBRE7O4YLOS6EEUW6F6IZ7GKGLRN6VTIAHZXCJQGU5AN2XAHHM4UFJHA75YOFMCGPF6IHHSEYFP3ORE5Z5J44LGS45MG3SHXRRGA4H7ZVUFQJELLCCH35JJGJMDTHATMNWUPDOKNCUR7J2Z6L2IMER3RURI7PYUIB2BY4ELXDLQCVTJ56V5ZXG5NS5ZWJY7K5SIWLDHKTTGJ3KU2YANUBIGVVLP3RZJBA3TRXD6EUCI4XTHDAYPHKNJIWN6XBEFY6A5H6C6QWSPYSCC7K57NWES3S5TA5WYFEGGJPWQXKLHFQ4DK73FNWMCCS5T4UILWZYN7ERXFZQ6BHEPI7CIUGWYLFE3OHGG6IFJOAHOQXGZLXW44LMJ5ZESOWB4LOUWHCEG2YQ3AXF4PRDIE7N7OJ5SH5NFRNXHLJD67E3PH4GDF7RJ2K33LEWZQVP46HTOTE3ORXOD7F5KYTCYT46NUVSH4OYR3AWON7TB4QXGHPULR53X3DXSZKJ2ZVZHHRZ4UGNBSP5OP6PD6P27346HR47367W2LXVP77QGTXFZK7A====END
14 changes: 7 additions & 7 deletions benchmark-data/arrays10-valid=usually-interesting=array_average
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@
# condition "usually" and the interestingness condition "array_average".
# See the script for the exact definitions of these criteria.
#
# This benchmark was generated with seed 319
# This benchmark was generated with seed 368
#
# Key statistics for this benchmark:
#
# * 1000 examples
# * Mean size: 1193.01 bytes, standard deviation: 301.46 bytes
# * Mean size: 822.25 bytes, standard deviation: 593.98 bytes
#
# Additional interesting statistics:
#
# * Ranging from 6 [4 times] to 2487 [once] bytes.
# * Median size: 1203
# * 99% of examples had at least 78 bytes
# * 99% of examples had at most 1923 bytes
# * Ranging from 6 [7 times] to 3593 [once] bytes.
# * Median size: 1006
# * 99% of examples had at least 35 bytes
# * 99% of examples had at most 2047 bytes
#
# All data after this point is an opaque binary blob. You are not expected
# to understand it.

Data 3272: STARTPCOF3GBZWISDSDSEV5JFM4QL3SL35SSYNNJ4FSFFJVN567IC54YRS2NDQTS6PZYCAIHIPA37776P3H77735P346PD774U3PNH57OZ7T4OLFPCLJNXZ27FO2XIZDIZ5HSJROOX6PZ7Q3YM24K4ELCG2PX47N4WYREC3SVIYWOVKY2RRMUZK34IP3LRHUS3RIGPWGDWXQKLODETOMFDU542WGPDKWKW635VREBGKYSCYYSLMNQVQON6HC3EWHKQKMODPGK7G77S2YC4455Y6NDBIZZP6YUG7C33RZMJSSV4PX44HILWPZWNZMMFPS4C3FO2EVXH4CDLMY5F4XY7C3XDAZWLDFE343CGOTJOHSLWNTGITHKQOF4JKTMNQZAPNXHX5VYI6ZQV6GYNV46N5G6D37HH5C36DHM5HDV6BI7OHMCNYFJ3UYDZDRBR3QZ3VAZBHFZ63ZHPD4C4T3OLXX67VRTOMNICTGXYQKF5WQFK5XQM4CYYES2S6SI75MP2IBMN3SBSOVDRCQ6OW6SGO5WJNS2EJXN4GJJVSUNSJMZ7VPF7VRCIDNB3T7JHGPVW3MQRKW22AFM7ZHEX42ZXZAX2IPUDE7WO7YLPMAFOACWRKF66SEPA62CABNI47CH3CCAGPAQVCGAA5TUATATDCXRLLW7RGRQOGMEK7ATV2ZGRZQHKNXVAIEHTTTVAONPZHNVSMAHKQM353NENCBLIHLZK6RR5MAFEOEN6B6FSQE2KSUZDVDLR2X5QVBC76CRUAXNWEZTFJUTBPOPYIEEBRFNACMOFKYECDIMNRLCOEIGLZEVUHFXZJC6KJSATRL4YUAY5LGZIDPIBLLDLYGWBZ64JN5TOMD6W5IYMD3WFJUXY5SQLFDX2KYZTWYEP2NBLXR35WHYXZNPNTPFNAOGH43YTQ6GRXQOFGR4RBOYLZHQJI5T5ZGSBHBJ2N3PJJFXOR5S4JMUTPGJ76KOVRLICPGFZP6A4QH7XBOHOBJ5LSGYPAAMAPABIMAGM36Z34QMN33BXDO4XM3RLSTE4FHQBBPDNU3TJIL3LPO42RGTEFZ6CFI2TAKJLXHG34T45G5VVBIC4H52IXLYIPFJODG2XZLOIIM5MMX763PADC6J4S4WBUCLGFUUPOVF5LOQW6CN4LICLBTBEVSDJR2NWKTXQ7KN7EQS7BNBCJYAAJDT7JESF6KFVEJ4MU65NNL4FUZJOC6VBVBTG6KTOWMOCLFSQL27MLNDBEFK23E4DHE4B2STOBRWJERFXJDAEKWTNILF7YIGEUTKZNAYDKW3JPXNPZRZNAVVS2CJ4LDD6VRKTBLD63MTDTBYQHRX6Q46M4HZLRN2CEUFIR5RKGBBCI7YRMNWM24N2RTUBTTEYIVUKG3WHRSVVKCADCICLCWVI7XGYLOYCYTIXWVC4N2627DDGPZY22E64URLRS5QIN2DC3QRGUDS3LX5KVJ22GSSLQY5WPOFAB3BSWPRITHBTLWBFH4VHWA7G6Z275SXNEEKZKJLBZQIEA6N5LTPJ7BROKN2BESZ4MFX5NOUNJMQRV7BWETMPSB55VEKELAYRPKRXO5ASUOSBWEGJ4XLGCE373JEV4RY2PFRFDPJ3HCKOXUGBJ4HMV5LNGGG4Y2P4EMZJNFJYASRW5XAKDVY2YWGQQTGXGMX2ZDLIQSSK6LFWIJHS7XYMEWYJPLJT3IRFTFV2OGVAKKXK4D76GON3RW2BLNEUGU7SE2S3LPVEZKUNC2WWRGST64THXT552VB5J27BB5KMWMJNZCBCXU5IJDNFXUS2GZHK4ROALL7OGLSFBY2DMYH65HGGNYJJOPZ2LCIEFIMB2FRZNNQFFQNJXKF2XB42DCFCMAV4O6SPMD55N4KDBYZMIGTN3QU522UXIHWMMAQK2M2VHX2UI26B46FKXJRSXBYJXMT2MU67SJDEMFYWGTETAKVZHD6DRK2QDGEENSIEI4WEWNTG6YFA4BHCK34CKRPKC3J3AGBH3C3U72EMFLUIJCFMG7CTAC5LPAT7225T6TG5D25SYJQL5SWUFRJDBRKVUWV236BLR5X7DADKU2FDOH34SDCEH64J4JRGUOVX2FKRQVE53V2YAY5DVDVZVLYE6NU3C5YNBATHXJ4NBMSTASLJ5MVCOSHGI2NWEBQ24KA4HEGHNNGYNGXZUUBRZXUPZ5NVQHC4RQSSULTVP7MIUQT5Q363N7KINGQAZ5VOBXQSEW6U5CSJENATIJJNHGWAKA257ESNJYCIMTUKOQ7G4NSCSGF7QWOJXNDMVNOKST6ZITPPAF4UHVS724FPMFBZULPEZNTALHPGK5SYS73APHDFHO2M636BG3G5RM7F5NFAEMNPN2RFZVI323G5WXU6HHDYCJT2SGPQGCVEYYG3IYPTNNG7NKYVSZWLRQ5GY5AUSUCWFWXJKKX4HYH3GHVB2OJU2VDPHNHZQULXI4ANLD6LVNYVFWK3PR6NFUM4TG6IZ63AIVGQQYHKF2R6D7ACSJV2SQ5YYHR5M3ZU5BKRJQBBZXSSUTPHYC5PFNAZI4O25KTZIGXURHLBBGLWUVDAVEVOOC5IA3HWFAFQIOMU6CFR3I5UFXZZKJK25DNON6XB6HMYPW4PF4B5AMKRSU6BAA3WLJ4MLE3F642U5ZJEAXG2EZOKAWCEAMKDOW7M3DAMK5JBYCIPLVBOLQE6JINIS6A3EFUXNXDE327O3DNWRVB7VLHK36LCI3K5N7JF3TRKQT6I5P46O3AIMR7NM7Z3XP7N2VUHMBWNMGJ6OSYDJ4V6X2SMIDVZIN2NEBTNO75AO32UDM5VPMPFXKJTLKKGKJBMX5VQHNZZGD3MN4R2W4VL7FHPASAQRHYFFJXDWJP2TSNG5NEPSKLAP7I4JC2YZDLHTYTQV2PT6NZJ755G3SQH7GQFSPK5MGYJVIMULDV2RDNSWGITLGAHV27LFSKQVV2FCVVS532QLU7Q4JRJA5KPL4GIZ63MEZY6R4NTXHQOX3NLX3LDY5NVPKUONFQIXQ5SCVJ2TPSWSQ3CIP2TV64I3LPLQPAMD3PNI4HYS7OVFLKZE4LM5I7PLHBGRBN75TZ4OJWJYNWGYQTA4P7KTDAT4TNLZF4ZZMNYWJK6WTHMK7UU657PHJE4SPA6WBGBVAVFGM2PK7PDFPTLOEU2NENWWDFTUGS3OT2MIZPX42GTMIAZJFP343OFHCOKFUZ22GHBYXBJAC37ALKHZBOEJ6SO6S7OSOTJA63Z7OXD47X57X66XV56P77PTSNX7XHP5A7EMX4END
Data 3264: STARTPCOELGB3SLWTMDCEW5ZGXYQJ7AAX63ZLFZTZ5QHRZPWPFXWNHZGUVQNIGS5BICJUDIGUB7367X7PXH4735P36PT7VTY73SLZCZO3H3SX3KL5V5DA2X6P3GP57MJWT3T7Y7UHVKCLNGY27POXPVW7XQO2BNBY62XMI5CY75VGP27J7LPPJ6X7WMXWT4HWY6WU6ZFVUUEWW2X7XB5SWRRU36RFWG36YKBTL7ZWV5QLXKDKZVQCR2VYTJKN3OTYELLZL7D55KSM5QUZG25SJ6ZFVP4XUH7ZW7WS3GI3K5XMIVGQ4BGWDKJYEFJSGPL2SAZSQAKC2XVNOGVR25AZLLNTCNXJWTNB4P5XBHZMYGEBM3TMZGUXK2BU6CFNOJHWCFZ53EXIAVHVOPHADD55MMELUCS6GK3SQEDZ5R7UP2HMUTKQLOF5UFBVZNMLYIBPE3GPTPZKSBZHVYN7IJHI6YBSCLT4BIXDMQC3G7VMJZE4TSRRWBRCZZXM2QGLYCJAYGLGZD3IFRK5GTIIETJAHHNUZGH6ARLWNFJKEOVA33EKCVGDIBKTQKWDXLGYACA7KQZM22F3IJLTDCKBGZEFVCLMZMP5YYOYOQQGIHVRGAZNVUW4WA26AL3UUGBGWHV5UT4ZUPKQC2FZAF45VVYONFBM4T6HYFN4WFGBBAAFLJT22O5IQDTANNSQNNQYQ7DE3SA4LBA2VTMLOYW724FDUS7JPRYE555MYKZEBFEBNHMRWE6HGVEFV43AVFEDOQWBTYRBCZYXPKGTWEQ73BCQEM5YWDIJTVNQIBR3ZLS5KF3WSJEOLEVFYLILNWAXV3BZWNW3EVZ234QXBYAMVJRT3TIUCNRBFEBV4HWLADW2PNBDM7NDJZ6TBGPIKJNQEFET7CRTCEB3P6Z2D73SD2KIJMBOI3DSHTTZHVO5YK2S2IML6UFZAIKCKCRMBE7ZERJJW5SK6Z3GGJO7FWMQMWVRSHESXX3UNR5LJHCL5QK5VNTBFKSCJ56TPILQQVRBETYCZ2AERXOSZVUNDSW44EWMD7MQELT3EDATANIGY7YCM2XL76YUMOULDCEL4AYRCZOJSKBH5BCOISUF5YCFIJZPWISIKQ4YB2F3EUSM2G2BUTRWW7JEDPREAFDRMO7JQVGVGHGXXYZR4YOIVI6YFMBYF2G4QSWOVBFCZRGZ5YRFEGXANAJSCWLV6IHLZOETV4FUOONVEFAQ2IBDIMN7OEBPEB6DTIKCXB6BBRRYR52DWWE4AAKSZDFPWVGRQCCMWEV4QOZT36KM26VXICTKUVEY7VEVPVNKEVT4XQJXHMZDWZ5OGAJIHSVGIPNQLUMUIPSGVKBG2Z4MJKQMRSRQRNQEJE4TTIOVBFXYGQUJBAWAFJIUIC2XXN6MKNL3CA2COFNVGP22KLIMFY4RJHKM3XSNYZ3AC4INO7436OPILRBVUDLAQF6ZCOGGDJRI3IEAW2N7XJ2OUMTOXVRPS4I5IN4LL47CGQMLMFUUBK4ON24O7QLHIFVSS3JXAEI727D4JZ3WSTXIJAHEJB7OJJDA2HVGEMMZWY7DLDRVVE6FXRQ7DEBCIDDST2Y3KWQSH3RQRJFWO3NGII23OVTOEDILGRCD4TAARP5V3R2JZSXFXRUNKRJ7BZWGBIGXS4WBBQ6IQZSENSZVMR5CTEUDPI5MSY5SLY2J56NRNFR2OKUYLRKUS34CJYOIHTUNGIR3JQ35U452UDXQ5NAFOCBSZGBZV3TC5NHEUTJJQXKMKS5JNAM2QZFIV7MTYXJXRE3NHVWDVBEV64P2B2E2ZTAOWCWW5XKMKLNCDV4WU47S2TRHJQSQ6BRVIKSBCJFPC2D4RYRGJ553BKVXDOFYZNG27LSRUQCUKNZBGW3AMFL5GE3G3HWYRQ5KDOTB55YI5NEVRYZJ2AUIKMLOOEFXWYVNRPR3JG4LWTUCGAELLSTQZEAZC3M5HVKSEO2SGDLHFCFJHNFMJ53UO6IOJIYQTYIWSAACZEQCQPG44NLO7YZBV3C45GD6ELRHQOLM7ZNJOBPRKUBNADGZA6BXMVTFH7TLU57PZGUOBRA5HAMNDKPS5V5MCIFSTDFDMXM2SNDPA642LKM66I6O2P7J4WBIHCSOC5KWHRJVPNADDENECJRR5STPA7OFRI3RZEW6WW5SPVWHGONGPNK7353QAA3NSJJM357MIZKHJQNMU5ZK3QBKSTVHI75ENFBTYNEG7U23VBGR4UONLEQ5WGQ456JWN5PUJS2VRVEQDCHLMDVWOTK6LGCHHSJBLXOTCIGDSZHTXRCCXDEFTRHM23REDUFCFC5LTNL5KMVNFYGIYVVNUHAY4TWZ5W64GECXK43G2LFNHILEC3V2F6ODKRCSERJL7DHO3KRB3NEBQ6OWLWKXZRIWC5FSBHQC5P5G6O7DGNWXG5C4VTPK2MYFSDAUZCM6SA6SSV5B2FMOD5GVTVUE4Y7OR6YOP5FOIVJY53WUCRM7ENBV42MYCUTYX7CTYBOJIGEZJ5MMFBMQMMEPUYVOCAWWRNB4DO26TVXGNABPKPOC5W6FWAXTD6OJQMOYC3YTT3LQPUE62ZXP2TJHZVG6SKJ7WO7QKGJSSDA5G5HYWAZEZM6Y6KUOWS2IKOKGLCZELEHA6LMJK6C6LF5L4XXAU2NWL577WTCBKZETHRTMJWCLJUYEDH7L2GYQCBIIHRW45I6YQHFKIZ42BHHYCIGR3Z4V6RSUMMDULIXRTVCOUNG5OUALJ367F4OMVKZZDV5B3BQ3ZNRNSXMXUONWNDRXOGV2PHMYZPS45TPQHL5Z3FULTJXOB2LZS5PYKKTEAZK3FCKS6RSM3M5NU5O2THJTZZPVH3H3GN56YAVCFVUB36UT2V2NF3ACOGJCOXC2LDA3Z7GFMWOHPURAJM6GN4PRMY7GHEZHMSOOTB4W5OFHRJLMTLOOGEOGTMFLMPXOU6AACN3J5JE3HI3HQN3FAEFO2OE5E76ANFYJYHS2QWBUPAIRG5H444DMC7O2O6CJHOW7XKOJ2CQBZ6NEPLILOQDGO4L7JVY4WTFILVZS5H5GH7T3SZFM6ODQH27DAZ4XUAB7MN5YRUW4JYJTKCMVMC5X4YGNGGHE2YNL2TBOZJXM2YF2WUAPEIATKUQ6TDYH3NC2BF6OKFQEPORZZBAANBJTVS4FSYER6MEFK34LMAAVZ5534LYPPEPGN6AWIODTVY76LWDPK5AWNYTYX52NN4L656MFD7747Z6P37XZ7HV6XV36PP7POP2HPTNCS===END
Loading