aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlloyd <[email protected]>2013-03-19 15:17:27 +0000
committerlloyd <[email protected]>2013-03-19 15:17:27 +0000
commitff784ce30d2bdcf8b7d3143be2ecf1c2dc6b8957 (patch)
tree587a0f6b33b84c9cc45218093a408e434bead2ac
parent827f2983a1e6efae6141e9b7ab148a3ae44e671b (diff)
Remove the Turing and WiderWAKE4+1 stream cipher implementations.
Both never saw much deployment or analysis.
-rw-r--r--checks/validate.dat1706
-rw-r--r--doc/algos.rst5
-rw-r--r--doc/examples/bench.cpp2
-rw-r--r--doc/relnotes/1_11_3.rst2
-rw-r--r--src/engine/core_engine/lookup_stream.cpp18
-rw-r--r--src/stream/turing/info.txt1
-rw-r--r--src/stream/turing/tur_tab.cpp81
-rw-r--r--src/stream/turing/turing.cpp333
-rw-r--r--src/stream/turing/turing.h53
-rw-r--r--src/stream/wid_wake/info.txt1
-rw-r--r--src/stream/wid_wake/wid_wake.cpp159
-rw-r--r--src/stream/wid_wake/wid_wake.h53
12 files changed, 6 insertions, 2408 deletions
diff --git a/checks/validate.dat b/checks/validate.dat
index e7526e817..978703ecb 100644
--- a/checks/validate.dat
+++ b/checks/validate.dat
@@ -44310,1712 +44310,6 @@ F9B436F31C85F34FF890B5AD3299EDA2B8642D:\
3070F0DB09C523507D36404DAC79038A393E9F0E3CF5F870B16D2A06DA68DCD3:\
4AFE87BF79EB938D786BA54C26FD6D7E62261EEAE8B62202
-[Turing]
-0000000000000000000000000000000000000000:\
-696626BBDC6E09F6DA9ABAB5B56C14878246DF18:\
-74657374206B65792031323862697473:00000000
-
-000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000\
-00000000000000000000000000000000000000000000000000000000:\
-B64B97325A32BBAA3A967545D99A50889D7EFAC385A4A20E3C30C87D799DD84173802D01\
-6513022FE0FDCAF79625DA0FF7F66E76DA56926D3115D9F87A939E1C1B27A87386006244\
-B1A5360B0E5BAE03FC64C766B348A4FC18C9D95516B4BBE0F4BBAE2B:\
-42A6B922EC35FC7709EAE8CA0F6AA212DFBC0D6C:FFAA3441
-
-000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000\
-00000000000000000000000000000000000000000000000000000000:\
-0847AA490901FC9BFB07F12590622DC3E672ADBD42813B79BB28B4C4DDE2A519751363EC\
-00EBEDBB684E4D1FFC02CBDD1FA2E3F8E593AFEE8648461DCC054D32192A6517F41AA4D6\
-C3B75DFFBED80CEEA3D28397D6B86722185CA6BABB64088D13A75DFB:\
-53A6B922EC35FC6609EAE8CA0F6AA212DFBC0D7B:FFAA3441F4BBAE2B
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000:\
-833E62C8D5E8B0B723F8ADAC68340288319D6F73762E7655EE35F2AA8E2E21DDEC2C1D2F9C48A1\
-BC05DA8E7A87A650114C6A065E21DCE06142D4E6C40B4616AEE65E869C1D3A1040C7DA1A44E6AD\
-F49C51B12058824D79B7622614C0F8E1B968F7F99A94959ADF845B7BED3B5771B6F7E30C32C2BB\
-A8463B2FFDEE4C4623CB69C66A7AA4E1CFADD429DFFA3F9BFAE9C9CBBA44246765699B2F7211E5\
-4AB6793969835AE9F5EB2F66DA83EE07701031DA84F357B2DE473D7A7952462AB42940294E6349\
-C73F6B91BD769E07B0FD9A212D551A66E7D9B7C6F8077D16DEDEF30EA0AF61226DBA8333293870\
-C8693C8AF52E5D097CCD94AD9BE287139A5F5AC9E3448A1CA781B068F76B64D362AD99080B38F7\
-5506A5E81BAC8F4BD82A4F35A8526909D35023C3C7D9F13F54CAB1D16413774815F20D07CD98DA\
-EA8200D4399C43494F769000C84752A9B95561B23626E8DE135FF44651C7243488C1DCDCEC0A6E\
-C8FA9A1A6FF8706EFA6AA8A664727A4BD2EA3416E0631F4911F1D135CA96A227004930D8BD4135\
-56697B941F03519489DEEF118E44F54EADA077F1E253C33740CC79305F869CE1E857D368A7E0AD\
-8F1714FAF0BF4756295E9A5A57BA1CE7DF4CB44C324B62A78534CAA2FE00913638A740AD9225C1\
-6D29096DA4DE452AC6C1A2BF0CF1C5F135A1D214E2730246724A1FB37D7AE6BCFB19F3D191E1C7\
-5B024B8442:\
-C3B75DFFBED80CEEA3D28397D6B86722185CA6BABB64088D:\
-0847AA490901FC9BFB07F125
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-A1D8F7780442DCF29F883A8379319273C91B3297E87441290B3121B7FE0F72E68D9D507703159E\
-457942A4F6A7E6C5C0D6B82204FC70605B16641376AD819C8268F208A3E727DE352FC57CAB0DC4\
-2FC9863C9952BEEA6A79D059FA52DCE5BC1815C1E3B2018E3A5CC93E86D162787C9A38B30808:\
-510D879D383902C3A1287F58ABC5FB35
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-8D8EA275C14DB64CB19760D598A38073E3BE840A016889DCCD5387B3052483E8B72AF6FC590FB7\
-C2365AE8F64EACDF07163D24EC80F390A714BFD910A15A7187CFFF1CEBB7F9A07E187C5E7D24BE\
-21B468CC90F6387D63FCD4EB8244921395C5104964AD85B8A4815BE83EA6D77DBEC292F50F8B:\
-0F57C4CDFE6F6317EC7C50CBE8100603
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-3D220053B6F702E7CAEB74DB867FA24D792968D4C2A59CCA308F806C3A5C00147A00293309248B\
-8A6EF0C50B7214B442E440E44991E419D4723CB59B6E42C53864A9AB62ABAF837DB330A5E1FA86\
-3FD5EF5D2ECACC9F04382807E537859E97D2615A9FA70B1BA046C006A37EA20FF3DF6123D0D2:\
-197F3A50A197CCB854AA6C85D608F93D
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-DF9C919108DA643347B191C2332715F4AC01AA13CAFF0CA525E214659E928F8C2903673BADF322\
-C52BA8C60E6D682BF4447704C8B653AA386562B7F20D880B23A73E573FC5E6E1FA797307B0541D\
-42BA1DA70A7096235F28F059325F4B02A178360D14CCA63E1ECF4F24DCB06872416D72E8BCD2:\
-743C96AD88706814461A15FB11EBCA52
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-54B42471FFFD76D364CEE2013A5FB8B145915408860C3E3F6F56F75E41031CCEB973FA92C9E67F\
-DE4A0FBA7AEABFAF65DDAD8C6CA7AF13656867BA72ADCA70373F304E4CE9081367F179FC65988F\
-5224E6A4ECE1C3299C9ED1D0B699E4C5481D907877441F5E4B02526A91EB134DC7BE551137E5:\
-AFB5E81BC51672AB968B33AAB54E40FC
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-35108EA6DFCB3251ACFEA14C7978A1AE729E3E20D1AED75FCC26713DD2416855C1F03F0121A0DE\
-010C1CCA302706DFDBC5F0DFF3E6B3F6C0A6C90BA96DEC940616FCBD4406662B822ED87A5F826D\
-14C612C8A5BAA10A4757BC278C0C3638C8AEFBDE11608E30087B08D957B23A0FA7C73FBC4981:\
-ACCADB90F6DBC430AF5B9CACC069C58C
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-C77753E149061AC705815FBC5E6DF1E6B022BF45CEA31959D671A1938A0FA7622ABB2FFA8687F2\
-05A7DB417F61CA5968A88E6E5447CF2639BB8813C66DD0A12A8FCE3C4FC893AEC2B2A5786AA1DD\
-27BE50633198341E224BB3761381F8E5CED9B17CEECB08D2017D4800B584F4E078A33BC75BC1:\
-76DAC1C77B73EC50F7380129345991BF
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-E3D437F8F4E2B5C79BED77075E618682EE2823BA800F59FCE2E6F18C355314903FE3CD41349931\
-323413F3B85248D0EE4F79BB4AA67DA37CAF06902C99EFA396A79DE4AA2CB3B0E67A0B87356D63\
-261ED20287425AB3E7455375AF21453536085D529D3D07525FC578455D9E43D529A7230A2510:\
-6E35E3D8E6D332E27C0BE03C8A5471A7
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-334554121BFE766D9E1D99C66E66E9580C9362D6A239A8A392153FB052BC9D5BDA4AA20B28C90A\
-16A40BB68240A41A55D5FC245FD5CEDEBABAE81E92171B850E50695CFE6E0AF004FEBE4D8AFBC7\
-8DC82D270CF66176F0B00BEB5F14D2FD261AFEE2A2B49370E6298EAE5DEBB86750E8EFF5974F:\
-C8E48F6BBCB573B8006B0A6B0523FAE5
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-631D5CF348368BC46C49DEF8FC8BE88FB53A3D0D8B6B19D9B4296D556B9DAF82D9D3830DBDFA74\
-6E09EABAC61E54878916966ED13F55570A76794B52366494D46B0418927116B5F466BC262F1655\
-FE2325D89FF2087F6545F0CE710CA99F603DB5B7D967A3EF00694F07EEF4D19920E30DFE3640:\
-39B1805E219B7784D334E1DA137B71ED
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-44CDEDD31F2EB9D7E5C52BB62E3D89272472981B6A56B0D0056A6210A836F4C7CE02BCE4120FDC\
-B1F8346810D4273CE45A957FDB4534B332D05DF7BD67D2B116FC0355AD416C77D8A42FEFF6CD9C\
-D4986F5CFFA6E85F30B5968D2D11BC407309B7908C7EA28451B85B3EDF3B1081596E300890AE:\
-A783DB338CA910BC771BE1BDFFF3D7D1
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-8F5BF391BB2FA4A3D727122BC05DEF4473C936FFBFE6E0A37276657418F18235A84C9B1B817BD1\
-63DC8D414F61AF31E1CFA51CF692952CBB501F117643F2EBC7470C3F870CB173C55D93CF810D4B\
-BA9AC41570A93ECA91CBB204A006A484956AF9473C50FE281BE39EF0A23E324137BABD00C4C6:\
-DE89AD958277237ABF4143BCA129B902
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-92A18810C64D4598C7CE3FF3D2CBAB42CB3DFE4976DE40D95621134C4BE3C066D11220B2E68DC3\
-054CAF977838AB5684214FAA05D27E5E110ABC7B719F184A64EE825A730D9B390D35195E452FA3\
-362B0E6880E547F983ED4C7199D321680497C9722C930D61EB11FE15807CFCBD81036D4AB6B6:\
-9BAFD22926AFE2BB782E07E3E9713A47
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-BDC0B3934130AB769D5FA9A2D43BCF3B3BFBA90CD76F04AB3955B287058298C4E627C2AB7F3951\
-B5BC44DEBAB33E3DCCC471E17162338C3BB42E418B7E33D5275547715BC7AFB94669BC5E3D30DD\
-A55C91D2BA23396ACCF20094D2CBD425CE273BACD304EFE61A01768C077DE5D4BD38307C25F0:\
-9AE5CEA10D25D4980E0D848D14166BD3
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-BB0FC7E77790B8922EC54D8EE7B74764C057B6066CA342FD2BA2FF5945EC9EEFF49F568011C64A\
-039CA7256ED642EC7CA86715293D8A94D3ED32E6EA74B4E437948187C29B5EDA90468FD52B6AE2\
-711D9B72B97534914D73C6E4F24D8B8D4B78328C891801FA94C6058EE687BCC0FAC6AB3E0775:\
-5DC3289BDF8E0AC2E11A6A846D6D3555
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-749223E6659B4990E3FBD44C422131460CDFDDDA81A0A90426114C09183B308FDDA2668540E468\
-3F0D2DA5BA5225CE30BBF4BA350441123E390D85C0A90CA5C34BA7D4624024807BC42666894A00\
-D2A3AECC60308117F3C7E14859CEC97553145FAE37796DC3DD869AF7CCD112450DE85A13FE5F:\
-9028DC083356F6539CAB46B85943CD28
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-7F55CF196A7704A73CAD784B3C9747615CF0AE344F576614CD5C4448979D1F2F58787B25DEE890\
-4A6DA1907ECD3B9BF7CA2399C794FA099380D1E9396D170B2CA89D1540469003405160DE22F403\
-E09D75DBB55AF8C8F346260569D7B09242EE7AAD06BE1B46C26DD9F72E6B7F99C83DB9B7C194:\
-119830CB54051CF9515FFA349A97EAC9FCD97433
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-66881BEF696C04B312B95D664FE71EEBDC95EE998C85B57D6237769EFE0D7D471DA4D2FE41053D\
-4DFDE1442C8A3EFD14F22C41292749375A902746A86B117929F46BED63F16D94073836DFAB3201\
-419E728F2A8901E4E543A5C7C021FFB321F275A4921FEA3F3A2CC54E05CCC985AE50BA731B6A:\
-1A1412B8FB13AEA84475FB158B5EE83A99DC560D
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-FD771ED1DBF5BC652A502E75BF74251FB72F67DD83276D6238C8A88A9BC667BFE7FF46AE6B62A5\
-BDA67499001617893DE1CB83BC08793DC6DAEF2A294315D53F3F6E7AC704350C456460A4FDAF4A\
-6F683664CBE88C476F2AE6F47C7B23AA1F024D13AA1DAB8F952D4142B51C984E55C2899862E8:\
-A6E318E21447AAB02FE846D51CD0CAFE6D020F6C
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-0523E8B622F04A650A50AEE32CDDBD3A4B25DF714094A6CB5783898C7323DCA8986477FE389AF9\
-42668A44CFA42ECEE4652A1709BED798154E5131F6840726E3EDD8F7A5374ACB66B25B60E193CF\
-6D2D7E1212FB04E841ED5595B9C38020433D9CB390BBA523118206A0BFF01DC67E0D46AFEDF6:\
-28845F13275E38336B32B99554E6F3A195D1AB28
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-1142B12772A584401A94ADF193D301C320382C62038452064C10B06B8A1B311678CCC4D0D2BBCE\
-25DD343DD733D4D7FD5EFB6D9456C7F690F9EFCB28862E2789316CF649A3D868A6273B915EEED7\
-A5EB401E59740D7899A7E7306E2563F086FF419A4827143DB9550E145D468876C67F33BFD092:\
-FFB05F0DC00FF74F159CFC3CE7B1BA5A09779483
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-02B4201C31F165C497154DB1EAFE1C082F88931B9010FCAF8E110926985C37A9BEC4DBC680ECB7\
-B9F45D024D521299466AB9246E7F4E40F8C5B402B5DA0A318248675B6A006B67E5B02198EF6063\
-24CAD5173E6A6684715CA91479B352E1A5711F6DABDA6C835BC1674E74504E02717EEFEB26E6:\
-FD79C0D751B8B9DA3C40C85B944EC105EB3BDC1B
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-5E3AA5F59F746A8481F1F1CB6D63822AB4ED3D4B7F94304A1C0E9DDD9646C617287038AEF0933E\
-90C523BBD736905EC5FD0332356C24E4D6B006D0FABCE86C09EFDC958EE748926D6AA9BC37B1EC\
-879FDA063FD134705AB21439768CA8791A6F7D996A722B45707904BD13984D61A4E5DCD587B2:\
-18A0DCE520BF4DD0724F5173022106C8EB370B5A
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-6CE98801210B00DE4F71DE0CB62E2D281C98D932C96CB34A009E1F3430F50FE287D66CA2FFCBED\
-C97EEA7CF2FAB70E3592C5CBB8625723B91A13D078C8DE1279F393D277419FF78E84B49180E7B4\
-E9B3E48F0F66579AC34566A271CE963581D7DE48E747D79660C78ADC308347597DD7862FC72F:\
-7480690DA8C0E3393A161E29C312139B007131A8
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-32E8CE4394B86237E45BF3CBE2AE3355FECE63BAFADB0ADE19C6EBA100ABA5FC1777688CA8FF0A\
-79F3657688458E4BAA47E9D7AFD9A4C1243F5F083809E367C59DDEF9A515D3CF395FB5C0AC44B5\
-F5D96884AF0BF1368C4D00EB8E06F0D805496219D9D8E8866E901C592D60E1449CF50D20E983:\
-0E31E26B5374E9DE11F528A6E7E57B03CB6B983B
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F76855E776AF2E29D139ACFF506BA0C1C917265A172242A2A5652FBF9D8A90872503A12F9A4620\
-11E0894D9E34CFF08D979F37CB2553889A2CD0B8932C2B7A47130C0F724DDA8EA904F8D9FA5127\
-498ECAFA9D94D392642EABE1BDD8433A1CEC7ABB0BD065D9AA0FD04B68368E49A0FF08D10117:\
-B4B6FA36F7F42D89DBDB51D887475D5376CC27FA
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-7E42E03FDB2966552705EB79ECF02C652B2A62EFB7DC204E25439E7BC5C41D80F90D756C14A6AC\
-F0C79C15975B713E547623F71F225A073FFA501202031C6AEFD6D794B093A56E1F88A5BD8E76D3\
-E25921E1BD75B33D9604820A5F92415A3BE2C028BE60D4C764890F7FA8F89E9911DA716E36C8:\
-C2D17692AEBC93A9CD87248FA0496EE027B354CA
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-295C77B2D2CFCF4376DF06D4CB168A5FD315A46816986A024030685D35D6BBB62E0519B8753ED9\
-E6919BB94A828A172B9C01DCB6058915DF9889D1AA0AEEFDA89724D25FAC07BBE1208BEE8A3CB3\
-5509CB9A12AAB14B75C4B0FF0A8C0F444AA96D6C9E3457669C3BFE0AED6E17599A53F614EAC4:\
-1DC5682D883D41FFB9C6D9146A19DE5596351DAE
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-D2252875127726975223224C5B4E66ADFB573582539A796770B84C86FCE47B886A1CFBAD755C15\
-C49EDDC9932D3C0CF4FD41EBBA79D46C1A883F1B3B2B1626BEFD26B4708A26995C896B90354300\
-F1BBA09945D441C7DFD1EF152154520C1FA86D435C6B3205AE6FBE012F835C6B621A73A98B71:\
-DBAD2FE9A4B89C17AA39AC48BA3A1709543ACA62
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-9CFB54F9B1D66A5A96EDF432EF62841E52D33E90E399E049C554DE679B887E056A8F78D0653206\
-B6B80E0DB45C0AF1A36303159F4D1EF034B28A4835D04EDF61251F9C40493CAE5695EEC6E10AA0\
-91B760B7146159A491CAB476CCA1E39DD1D1B3A08FBCF327C15122D83197909B8BE0F72485A2:\
-E4C4AA2357758D79D8528C833607FA757CA50D6D
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-8F0A8C023B79F012A1A2788B5A20E5861397481AAAAF72E70467C06209B0049E7C3FB8762A31CC\
-F8D2C939C49FB5A0D31D8C64C78B2412EEE0185A846A8AE5974A1A0D55DFCEDEFEF3644845BA9D\
-17229FBC258C59605F75071F356C01C4959F7F1BD8FA294D65037C077AB2CF6C58B62759E8D5:\
-3264792868880D91C28949655BF9EBF87779DE78
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-FA183B4B91F78B2D16E8B7289D2D86259362F253CDB65B0D1C2FE45CF7B78921EA7BBB516327B7\
-454EAB0E3138AFFC09BD0DC6BD85D264321D33429496098DBA7B5F7F677077FC907A717E93E141\
-732FAE7E4B68DB130A928CEFC90062865FD8F83B071C3F22539AFA812955CE00B156E34426EE:\
-1D297636D3B1B64BC13420645E9A6CE6C6699289
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-AEA85A57F3F752FACE718C71531426067D6FC70DA997D59AB23013635D77F65D92864D76272491\
-71B2E655CDEF807E85D86A42B7722047DD38434975FCD6BB71A56292938FF230C75FDB57D9161E\
-DD6C64252AF0B39930DC8E38748B0BF399B93728189AEC248F9322455DCE6E9555B9EA097E42:\
-F0E946A71123EB5A6DE6B8BC44F843FD45285564ECC20881
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-B36A7DB00583F48EEC653314FA1C7D2B052F34251507FD176F12D955F31528A6E9FAE66DF4BA7F\
-2787982E95CCF1FC600F2C3DD7546CF2B0ECEF1A4E02111F391C99E6E9C51BA359F8BD211D2554\
-89F1C85D57D867CE43377B4674EF4C626CD7F40AE55584C390D4CB226DD71C379A0D0C930425:\
-BBDE3BFB69D2301556CDDC0C34DA8827D10217F607DAE9A1
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-6D608E00EBD99EBD4E2CB2C8159969EF2E9B21212FF4A1FC4165E4E048A4569BC1EAD2D943EB96\
-19D68BBB806F72A5C0ECD1584CE7B0CA6F322AB0467B64318E3041E5B0468D88234BEDFB91FDA8\
-026551BB4585E423D6C2D6AD0A0909B9849A6C329F9F44CB53B8AE2A7C00E3C3AA1F42DCBA84:\
-D09DEE33E299290B4FF3262A259BB29BB52F584A25723F0E
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-95CFA8627DF9A518B3ED1A5DC93BB27AF30A9B37C46E1313FEA680F94B434B5A39A4DD74C75C9F\
-9D1B2EBB7F154436027F3A6C6EDF84DBCFF604536409CA6B8FF2A66501B02AB95BA0268A41B511\
-0342976B9DC96E5F2B4F7E32979B4F6C275D3BD0CBF7871AD03FBF78E383A8EA9E7C9E9082A9:\
-65298E00B106B798D808647F16572A09C15927E24B8F7DB6
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-94D2C237DBF27F6D25B1F22735AC74BF4F92D0A7F8378DE493F82153DD3A28EFEA69B99A4EE1EF\
-ADDE786134327D0AC17585C66F1245466FF98F6B41F69D84333121603DBBF76B654135BD4271D7\
-19DA93196511B5DE8B5256A906EB4341C029A016382C40B726B30BC46B6CBDE97CE6F13739EF:\
-0681EB738C45B44BC134112E8CB420A1C3780D71A8413422
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-160B99E09742B020BFF397E0FB1890052D1A03B145C8905FF61A604B19AE0F5F7FE6A8AE1E75B6\
-502AD879DA2D081F5C6CCEF60C2B1E4B3C5023D9271857BA043585E87F2B480556295410C0AA55\
-642DC4B3426210D7899369976E11F4D5CFA86C27FF10A5C261EEB6D70A093F20733C34EB3C76:\
-75E916E939A8B762371C349082B56F7CA5342D240FC310FA
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-2E8039CFD8E4BDC9BF718E5FF80E19723F9E67042D4160106E50620362550632C08DBEED7B2CDC\
-71DC56C452ABC0766D883B657A04538F7353D9ED5B5BCB65FF035D8CB97051D2A5FD2C96EE1BF6\
-AECAD901E005D2B6A62F9FCEA63FF6CEE0E1AD27468D175217C50FE00F44C23F777CF551009C:\
-B76EDE68222C46E013F96F2112E6ECC52C079050BDC7BDFD
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-200B3DA16D1089B0EAE8814400688690E611FA120459AC843EF81AC08FFF4589B5DEB62944C851\
-667E6CFA21323B1BB063B4F803A11AB28856FC81D11C4097E2FA710B2AAD0AA0101F7E8B575F63\
-E74960AD851D055039411CA2F3029AFAF2E8A8B85EFB677958BB66D7F8D28483DC2F3AAD2ADD:\
-C119544812869B717339FCA3EBC5DDFEE645DB6193E6010F
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F3B0AC1ADB198D82D68845EC4C0F354948FA2834A3739C8C8BF95B674A5D7A2C811AF0B517BCEE\
-62D9D5365F44A0A5B5C3B75F952383AF0248CE8E728E64959B672162D44E15CCAD0DF0D80EA2C5\
-1BC163F25AECB4E49359C93BA9338DC57C5AFA50FD7371EEDA38EC1BD0D77913C64BCFC93D5C:\
-E866DA8B4439CEE798D394FADEEC2108C5C2802829C1486F
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-E01640C6FB90ADE04D5F4BC99A42EC5C25E27E4EB59B2991FEE3B3B90119357A5F6E6FD4EF2EA7\
-52A79FB92A3133541EF6DF00E8B243A47F93485BF4110DD61AFBDE83EA7C0EB4A338849130D9FF\
-FE2F18EE7E32F3359464A488128559A7A61DAD85DFB909D4A4C95D321656D2C7F3B6D9876453:\
-B1A1E8A1CDD487E053E8EA1A85366A956116B0BBF3DBA2D0
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F94EE0B40A4E97A792FB8CE1A09E0E2F1577D29FA6A7EB0517DA02AAED5A952150F57E105B9D55\
-EF9440F591A19931965F78D326A0F45E6BC179AC8B826872D3BBD1478F43B62C22B471EDF82BF4\
-E6ACDAF260BE3CB14F4A70BF947F0F70ED5C133FCFE06A805F06CE41FD4340A02CCED54C46FB:\
-D7C76ECF8F3E333986D0727FEB74A933FB078ACDA732E8A5
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-0194823D67E3D53DFAADE5625420EB0BE7E58C254E47A54858C52F42427005D6DE162DC1FDAC14\
-3780C202F6E1A0573250C2B050B4985B147440F024E0F7222794D70EDE913CAEDCF4F997E32402\
-25B5EBF179D179E1F1B35146250D42FF59431BDCD213DC2E0E7AE0FA4C20B1483B72A225C9E5:\
-4043315440250D9D80D6CDD850AE06BB000B2CAE4CF3E4EC
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-DCA07BDA8327FFAF65A6200C0163ABAF7B267BF00665319154CE603BCF1D971923D8F6A877D3C3\
-C991CE741F92AD78DAE00B6FA8A07F4B5521E9607D248B25EE2A6ED0A2E62032E3536FF5D420D4\
-C3197D24F79019ED6F98D0A91D424738E82FE4DD2F6EC8C35C5DF2A36D0A5F6911C3247F3FD2:\
-2B9B3D6C5CCA6FF1CB13E304A3E33E359AE5698C43BAF498
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-4ED372793A4B85C9D0FF69654D4BBE78DB2B4258A385DC046C094629AE232F136E63EF18FD3150\
-E9EB93504D06B5B2D354D1D3DBDBAF1B99599435B4DCC0419F278868465B43658ADA435E6492C2\
-0438DCE19435323B5E6485F384CBFF46D166E6E3CF97F32095C03F388BBF4E627A26BF35B9A2:\
-6D7A73687DEFAA9FA22344CCD67BAD74B4BA6A058DC7BA9C
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F3D3E04261645CEDD6B423A102168281535EFB7B43EE0F07B925B710FD6171E8C38F815992A133\
-DC16B6EC99FDE8BECBB29205C185DDACEFABBEBA824424C1F910DF7FFFB81D934FA2FD1D41344D\
-7397BCA30D26BA0EE1CD7A430FCBFEE31483C6EFC9D577A2E3CC0B8C5A1F6619A1C0F85B0B16:\
-C49C6CFB09608BD78CDD826009220526AA030F2216DC6229
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-FD3866800048B2E0BD760ACDA846843D421B61204EBD31097EC45C6CAACE840CF611F01A9F5EE7\
-DEF380269A1C805239080B88549F19FC30365129B8B75117C2FE3C8B8F98D85CFA9FEC85BF5D95\
-D196F939E8A6140EAF06834DF13F0D1D4A3630E350666BAB04582DC7C6DDB08A6CEB8C54DAB3:\
-55D7A1004D57B763ADAE222CC95C90D91453EC7A006D922E
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-647281CBDEC5661CF5B3BDDA1E711505F4422309C4079F9D1B3AE4A49866D9DE180402A5300CA4\
-F65603DE7A797F497C326342B6F1DFB91B247094C99358C0BC875367F3407ED1E7BEEAB674E575\
-9ED55ABF01FED9AA360F4F049C4DFB60EE680C6AADF6880C5A52AC4592A6BD8A02653231900B:\
-9E232577306C0F1B81125646AE9D18C4C9CB5A41BD1F49C2E7213C31
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-5657DD6E9316DE1934E7C04681F88549FF92BBDC43E1DE589C08AE609119E05357EE5A5FA205C2\
-ED588E7EF53C316E3C5023923E1185352DF17605E0AD8CFDE15BF56B2B3C4015142B3D9B3B4893\
-241150ED83E5B956034F91033FC7C83749A77B08C37AED9E919781265E7A41CBC32154E45FE0:\
-64FC422E55B6DE470C8EFD59F894D238F566B94BDA07916ED9A7EC97
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-53368F208092A0D7B842B885D2E910F22E9BAFA33DFAD2548139B6FFD845C1AF579B77D40840A6\
-95A6BC0FFF8FFDA411A42153D7A349C6C61C21C78D9F664ED84AD1FDA1CA7FAC8676525E8011E0\
-CB22E89F8BA394B962F84CCB0C7117388CDB6B0F6C4C1E0A466F48395472F3BF02363C24E81F:\
-5834B00FEC3DD4650BFAE554545628CF93E2C4CB47310082888295BC
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-4E4E29CE1CE2A1BB216F6BD85844244731E8E2998886BC15234DB5E95DA1FDF09DA6F8491590A9\
-AF2719ECA6860F7BD1D2DB7FE6BB05C1C38DC2402A95DCC6EE556524E373EBC003D56EF2A03B91\
-DBEFDB3EB0BAF3BD0058B9BD77AAD361655B42229791D6C6684D1DC62BBB8A69E0B9B3577DEA:\
-AB02C30031CB74190E31F994D3EED4CB516002717F7F259BFC8CAA00
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-358996611F1464D8F0EC63833E3354C9258D358EAAC807DB66841FD48F5711495FF4C4A278018D\
-3AD15E14613B4EC54AC78DCF4A7EDC299AC237213882F10BCB027B01DB9B453BD0D33BD88531B4\
-0F9977FA9BB54B9448E1BA9EEFA984C826A65CF0D241863B945B8684F59E006449A740C92D58:\
-9C697CAA308F7E76DFDDA9588D9002E9B28C8FF79858C7E02D4BDDC5
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-873EF326CFBDEE5506BA5BD86EF7C37CFE5F649A4064716E38135C9FFE206C1267CBF14A1646B8\
-3CA770B1F86D1EA1438C216E753234C2AA08475B42883DAD3A2B67892E01D6D2DBB8CAA21D1A1C\
-87B66B895842D4E3F3A2E3753FF936AC8AE734D9A2EFE9789830DEEC38ED8AB0F15F1A91ECAF:\
-B2F3D97249C90040B9D09F0CF30DAA31BF586A7717E911D1333060A8
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-FAD37FCF8378422A2257170B1B87DB04076E366910CBB6381B822A8F66CF6FDAEE1953F4A5B36B\
-211B0B73B7E93E3566DD9CE06004F49B683E803D443E601938E8C84C6E2757E4C1666002B9C915\
-412CB719129DDBFF748E1D379B724C09082DCA39B056691B9ED21F47A4E3857C498C63E9E91F:\
-39D944EDA34DE7D3E92BCB1996196BDBE7D0D6AEA85F540333252008
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-A63D061A64D62DB78C51E8DD7A293BF15CDC65FB4A182296B8804A902D039925F13D5D9DE52702\
-7A116D581D2F77FD306C6D675D13526A4C3505364670C16139FD5D479F9B9363919E86B6C33A56\
-28FCCA1970EDBDF2B683FB9E54BFEEAFEC001551266133F0A5E72FDB8A0D8670EEE71F21BBE1:\
-59ED6E2136849971FEE7F5DDC529B7CE30C18A05A2308480FD792A5D
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F8B9AC6B917837E768DAD946B8274C1A1623846A88ADB68D5A75934E8C3BF3447971FA635FBD24\
-0E626F226E5F00E5F5A11F5297BFC67711C557B308FEAD4A9FBE170793814F0E78FCE0FD18A91C\
-88B93E38BA31EA1AF2A173582DC432C5A00D1B08BD87D6AD25A11A902A9AA761911E894C8E15:\
-60BD44AD1B7E9895CF569D087BE7F8AC9EE737169C0861A0B0097A5F
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-417152A3907586B9E8F59D2F62CCEA5FF9556A6B286B61FABA146B067FB56A1B549D9E9409228D\
-5C5FE54B577F6902ABC9D4D5F0258D6ECFBB214E0A08A361DA479DADDA854C96EF80CFBE8BD277\
-A1D01D801F7079F94B4B92F3A42587104B44259F894CA375C0E4597926EBF769203C922AFB0E:\
-7F050CD0C1D36397C06231716434969D8D0514E92FCC1D550B4B2933
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-B2EB626B3C6A8485425F75273E8B771B263F1CBFAA40A0786ABB5042D04C7D6AF7FF96B63842F8\
-E8FBACF665538964881BC1BD0A0F0D33CB038DBCBCBEE96459282054BDE39AB31E82E7409CC564\
-B2166E6C03DCABBDA449E99BD094A32942ED21BA03A3BFD93620DEC36A86F299B7B018F4D325:\
-63320839C85CE863EE1FBC962C057C623EA2531B9854B58C3AB10216
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-076777CB3F25CB914EC32439031667DDFAD29EA5EC4DAD2A8CE97134966A4B21CC2374D4C31103\
-6CFC8175C55A9C4D1647589B73A8866EFC30BA1E3F7B7688F2F819B868B884111A12E90D78B3BC\
-350C41BF9EE79DA16D27C1C28ABF12932AF23E6F57F50DEB79682829A5FB4D95CCBCEE8BF01E:\
-09292F664BC64AE5A21DBBE7DA2E2EDBE3F6D87446A0BBEA9CE7E6E1
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-A4ABC46FC552EC00DA3745959C1198733C064521B7BB0E8F7F5384051A4A23C6FA5CACB2A762E7\
-5E8FF44DC41DB1B1B3A72BFF0116DCECEEA3257E88FC863E562C32B9BD55112CE7B2825DA8BA6F\
-ABE9458BE0ECA65901A671FBB7369B62A3579C47029F6212F775E01ED3BB9E2A70284D49C9E3:\
-56D4718FEFD691064778EAB35BCAC749ED62931F9A5B46137BF6C4CD
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-8D8AB1E9E8385824E18C6560872C73D7B2D567B9B4061EC447B0694B3109D05D89955A4AB47541\
-2223BE082AF95066146D77E22EAA042DFE360AAE8000FA375B4185DC1A056E48DE3E6282F4FC2D\
-9BE215BF09C7C5ECAB95CD29E9286542C35654AB23982221C2BF5352358D8FF27A6BBAA34AB6:\
-E48054A763E7A3EA9CD093B565D664248218A872E58DEBBBE1419B91
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-9287CF8EF16BFCECA5ECEAD6AFCEF50FEB39FB637DD78E0C875EB68B162A70EFF53C08FCF888E4\
-14E4EF0AF8793BDB5F5641671BD8616E1610264B364E4BC5584EFF564FFCBCED53A9AFCBCD205F\
-8A7C60F2125550D93102121A25E233DA212FAEFBC7A453DC8CE2F2BAB2D3D02CC1F41F7B677D:\
-F0549B6B0B6F1382593F986E3AD9BBC541AE11D1ED9A2C4D7CECD236
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-2DC8D0716265CBCBFE491B26B0CE8144C51636D7A5E45F4558DB6EA78AFE5CC65EABB4CE1D3E4F\
-D2D1C7266767DB75B331635DF7CF3E46432C2D37ACF08BEFC73C9A544B121AF5B48FAF56944357\
-2FA4B3B4F9FCFF215D0D813116E398C1945F2B072251A92FF2ACC078DD82E298B63AC9FDF2CE:\
-81580051D3030AD104AB6D1D0A03E00AD011BD5A2C48B407DFE79188
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-6188BAF16DE19FFCE9051A868B3746988E699825AFDDA484C242FE08867E19F2BD27C3AAFC51E3\
-856BD6ECCD5CAF43F79B4192ADF5EC7B13CD476D6F8566044646DB685B32AE0E83F23A33E31DAB\
-A93585272646A9CFEE0626AC517DF92642DFBFAA26BA5E2158D7101A7E3E319AA200DBD0ADAE:\
-7BC01C35F8977BE59CAF0D4139A65D1D52A3088482C72B3DCDFB30558B1BFE0F
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-35F87088FDE70BEDAFF51621580A0032902AE95DFC7BF73466EFA2CC5FD2ABC72F4B958352FEA3\
-3CDCFE675A0E971A9CFE809794E1DD4C951548BDD9A6EF3A2ECBF2C404E291BEF95A42A1A4EF22\
-85304E7F23157F4509BE3B482F59067143BD503210208C6D0AA05DBED3640F30926C04D0CEFD:\
-B0E8BF51536BA3FEAB51E6480730F80114F50DE1A41EF73A477DC524809CDB98
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-91682FF67AF5D75F08768D1385CE7257FDD619992DD1634F6E6118BA4CE94EF9D8F6D620E94296\
-C523B8C780BC50F2761EB35B0F243788EAB761951FAB2F7742DB766E80E96D1080E5C0C6513D68\
-25885B9F865398D7A5CC7CCF1A9A976302B4933EACC4CE9E1E213C7D95326D70BDD34CDED8CF:\
-EBBE1D35F01304D1CB6B400664B70E57C80FAF6B630A6719826DD79E4FA8200F
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-607A183B7C5F03BAC0D00D7DADC446255AEB8C78078DFAE6B167CB43A25815C295FD4D134EF8EB\
-9A5858240E39CEC6D4C9519D681BF884274248346639CE90DCCFD55990174B960817ACEA2508B4\
-9C9263ADD321F11F794C681CD8D191F57911C60D9B7AC6018837A8A13651E6BA4DEF8E890070:\
-F9BA1DFA6B93C46AA579CA6BA81AAD50B1E9B1EBD81D26FD36B20C0EE2C251B7
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-82137497F0E3EDB4C6AAC483924F051E5460B8E91947E0A3FF9CEECC7645E519D262A4F1E0611B\
-CD3760C4D1E8293E814713C61A07AA7C12F1C0F206C97DBEFE191170FBA988347B52DB7241594B\
-252800B7667BD1DE9042F4B88A51B13F507925254C0A03C7AE3C704A7B4F9AD96AD5992E9997:\
-DCC24C1F5D2C7240EDD9BAA530E1BDD68739F0CFE59226977C508AE8D4C87323
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-CCF9B2CC2419FAE9D04C92E246385E4CDD87E29213092C677B9D699B7905AAE392AA270DC013B3\
-FB7DE8AE837C81023C8EDFB0F03DB6A548D4D460075490507AF6DB17A32F48C1F99A6069CA94E9\
-75D1FDD78271EA47AC9EC196F37286B53A8B540E44A8B8835709DBEBC7A7EB246971DD0F4722:\
-917D882FEF03ADFD6669CE45EC62CDDF5FF1C03721FF3193C21C5930CF1272EE
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-05164B3F11E848547D665D426B1145559B69322F8FBF7D28B4E0E96E59390132AEAD0D39375B38\
-3C216728DADAE7279CB9059E725D3EE4772CC41BA8058B88C5A0DDC3B5E8F710C2D4CB55B4A680\
-7243B569440FD548A13F2996269F1BCD38911F7B811AD2204D35DE8E99FF129E9248CBCDE2FC:\
-1FE748157BE5CF6DA0AEC0DCA0E7720BC1EFEA43BD409F719FD2A7BADF8794CC
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-6ED1A789681A608231E66A5E07023C61DC71901C4EBE810A22D1416C011702CC66D33C06365F65\
-055ED9CC152B7F6729F9A69FC5957D89FDFDCF7955156D0C688D94588FB73DFBCD5B7CDF9E0FC7\
-8BE9389158A395028ECD0D91353E3692192481C676503FB1849082FF38BB90DA4FDE760FE5BE:\
-2C6825ED9252193DD2F4F96CCDD9223DAB33524EBA2DD3D254852D8F40A4FC6D
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F4B7357D06DB0100897B838AF028EA1148D7D955653E1ACCC1FD919BDDAC4981329DFF1288E06F\
-0E2805468F6BBBE88F3E27ED6C5B73ECC63D946C4B90D841BE5D3007AA205E2685EB112C7D10D3\
-6E3F0449A4D2F773379722846F4CFBD85060025C41650E7AAFD97D348959AE3652A8E93F80DB:\
-0ABBCDAA3E91D88CBF4C38CB284BA3306FE470A1388C2B96E46936BBECE1CC3D
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-0CD874631E7080D093A47992DF9816EB03F83A23D9CFF79FE7FD068403FF3E0DC3D4D881952B10\
-7BABE1C83FA226A0D37DA5621161F478BE0E986E76D477ADDC2CBCCE3CA94BB29DF6E4387AD9D6\
-2CB8550553EC5D19A24BE2E7E386AFF65331483662E155F38EB3DDE79F54A1C75B0AB9F83E7D:\
-800A51F252F9E6D431FA3DCDB426E3D4BC3E1A34AD5706385F8D063FF5B716B6
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-1B907B35122B8E5D9CB6EC43BB6BF6F0F5C2FD7B65E98AE1F4360E4B4A9EA3165CDD59342B0A22\
-54AF793A09E2AC76F6230413ED204ED47B9836EAB4DF6D82469CFD1B5393E39DFF9E0DA74EB56C\
-99BA357439F1B01C158742C9CBEE4F7CC8E15AB181DAC526380A2CC650F7125C93D20AF80640:\
-E14E65EBFD403DE7EF39C663AD4E08B99ADB01D00B2AD024176E0EE35CF11A42
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-FCFFF45F031BE2C3D6B85032C754D39B83688D3470587ED1D13D9DFBC74CDE191F33D5567BEA4E\
-3665F0058AF27C7C8FFC45EE5F012CF340B836824D508EAE7145BA2067B6BC926C5007F7803FD4\
-67084B06EE858F1A1059C9EF0CBC85E9BD7C454010AFF2B0CA04A9AEEEC54F07AA48634A5F53:\
-8FA304D1DFF976D5649AF564FC3E3917AAFFA59F0E4D560D415F27490FBBEC37
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-0F34E8E8517206BB8EB2426A684694052AFCD7DBCDD3419303973A24113B58CD08530000527098\
-E72A0EDDDDD78380DBDFD60EBE30D5150475ED2C95CCFBE860DDD94BB45F6E40E81C5263C7B2CC\
-B79F1C6CE75AF6D2F1E572B43823EE63A3CA73E1256AF44FFD6F0C67E396348D489CA663E478:\
-FB9E93C4F43B223837F9EA773DA68A03842496B8E2BBE7141673855DC3F73114
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-32EEF5793FC730D20B8A8B9DAF7E54BEFC79B9713F8B19FE252194831E8A2DDFBDE392C5190573\
-62EE1171331F1256120D693CE463D187A5ED1F8FDAF5D5BB9D483C3E912DE8ABECD2E70EF9D921\
-E1DEBA85FE051BF3D25297AA9EFA0C8A836982184254703ACF1694C65A1B2BAD491D9395FA1F:\
-C506703121027BCAC2DC90AAB30B5CD30AA87773B98D3B182115B8F1E32F4BE7
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-5E779BE50FD31E25442C0B04D5FBF92E83FDB492F22EA12899A435E468C9CBE839CE66A349B299\
-1DE381389A310F653D85D972B9D9F2C875468EF1ABBE2C9F8DECFE452055164A1EAEFF4DE0962F\
-B3E34848672D1D1CC1F91CD4332D520254C0A9B49525608C462292CC4F189B15F4FCE120555A:\
-18CF7B4A85C5D9901E1D92DEB6487B6292C0A94589183151575207C4F776F4C6
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-3586BB52787EBFE1033261802E9C88E29933425EDFBB199C7650FBC56A2223EF0F12A7450DA282\
-93812ADAA43E5EF663440EC16905BF2EB9E4626F539D94D41D0CB11231D1BBBB145A3A19E384FD\
-645667CA2104A0C1D56F90848508B2D37D194AF882EE2C198EBA68A10B112A3EC9E6265B6726:\
-45DE118319AA726809A10C56D46915A88595811603B9A146DDF183D24DD0EF1B
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-9ECF899E3F58E481103B201C076C52EB93148CDE72B6EBDA0EFCF452E13195D89FC48BEF1A9117\
-7364C49DAA87F296CB8B91B67E40635648445984928207379C85E8126D94015A223F2DBF696FF5\
-3958AE5FD52E9CB8F5575730A874CFABB1E097F85E69177A47776EFB1C1CF90C1A1D62CA34BD40\
-10006E432403F8F16012F6F4B440854A19A208629AE54BDDD860A4BE4A1159BAF061E3FA861339\
-636815C3DE489782D7895BF4472AE48DCEB1D3836EDEDFED8EEE4F86879E4A9864100BDDFBB854\
-8CD4C7109FB0DEA6E8709A89F6704D0741E69538D11F151D67C991B84A257710A8A22E42BE4E68\
-065E77FA1F2A6F5F2CE7C09FB221C86CFE8299501E547ABC79AB1EB9F7C3BD2418E2EA3205BD51\
-51163CDACE8E334EF82E8970164D0CDE7E0A86817387078B10FA562A09820E0BA2ECB8D6342227\
-0E18370B0DE7F5D5B875B226A365A3CA40835E84C3743A50632615AF9ADD11B8D2FA4D0E4DD885\
-2DAE6FD3C24CEC2CEAFBE759627B59FC7AF5CF91A5DF974ECD1FCA9B062DABC4A1809D80C18931\
-C713820DD4C5F6FB09E02D419E4E461E4419C20686E7269A2BFAC1F114D9943B96E26D4509A44F\
-E5D9EA4E2D50F0AF4B7AA476AD21EEECDEB09DC1CD19B3E501C2C42EDFC830DC94E35EFD7C461A\
-21E05A3EA4EA83D7496CFEEB0D44A25D756A09367D353F1D0B694533D57801AD0D9CB03D3B4072\
-EAEF914C46CEE34201C25DFAE244612AC425B5F1E932A0E4FCB73EE2209872BC107F77DF5828C9\
-58E22CFD979DB435337F6FBF85133A5534E685E3C07EC607F92CB8FA7AA5CF2E1A8C52F69462F0\
-07BF759DCC4E51D183D88A541829A279AE3B4EC70822B6E6A3C6CF08E9145B84AF7FA76C6A792E\
-35C6F39992C568D6846C5987C9CA1EB7E730F6E298D199A6F0609D6BEA3473321261253EC5B276\
-0FCD458B6766123F0BAEC522ED99AA9AFFEF817A491F41CFCFCC0882D3E0C3E7E6E1E3F948464F\
-95CC9C9BC8E4543BD50C305A1822063224697AB2AA2FB210F776FB705C326530E50AA5CAB2929E\
-5F972BC45A3F8056078BDB203E75531A58AA279A3EE84615DA808E2018EA49A3FCE1CF6AB487CF\
-ED6EEB611182D1FB2D5B6E050C443F6C61833B0A16CED574DC2A72676F55AED91CBD5B3D518D06\
-678BBF5300CFDE4E39A35A3291A270D5442EEA2459B76EB8611F37388ACB558A76E8CE5C5C08D4\
-21809FC3A15BEAA37361A80D58D5CE60E5119D6B8173E464EC4F01EDE72F3D1BA6D4E7089A606D\
-CEEC5CB5181C7AEC6ED1CBB84F1779D3CCC2F54C341B96F96A8E2042AD7BD3FC5819EE1B741179\
-211588106D5561334180B4EF9476ED01B44140C4594D2C0D6EFEB0C167BDCB20772505B894A2:\
-71CFE52667B4A931A046532C71D60787
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-24660DFE3352E0C6FBC9FBB3A981589A2873679C88693EA1D12022A3BD95F693FE99CDEED2B828\
-347414BC75DB4907D60AA1DD9C54DAD229F29351BBA0646A668FA57FC06FDC44E04E40CF9CCD47\
-1A82976F14AE7CE835F89E27BD607CFDCE54464C4871BE8CC4A2CB9D62760CD08F7896648BB032\
-18EE30D5855A20114081CFB5B402461E098B5B2F561E628EA3FE0E8313CB955B077BA58B756522\
-3ADC84576F10BDC0608800003EB5E5D705A563399341550047C1265FD9A30C4E5A3A8B603CE2F7\
-7D6EC6168A6598278FE662FF3B7B923F54348E12FDEBE2A74E070D4F4A7A75A3949FD36F393D83\
-D48B80604A5CC32762E72916EA951C4D8FC4114B9699C092F316078C1AD390CB8374653F0F3977\
-15FC80908894FF89FCA4FD3E27F8CB15CFF26239FD79F212B91084031C45110C23BE81BFF98180\
-25ABD3190C767075B4284A433FB87ED5C551DCDC30F9FF937918BE347FA95DAD0C5BEA42C24C61\
-22F476253A0C976874F57E824C3C15FDCCDC225CB2B74D4CF0C9439ECE94417A805C91FCB399AE\
-5127B28D6B5FD82C24496CCC901F265EC169AFE8B5ABB4BE5BF98831EA1D5BBD95CD30194FF346\
-1E04353450DC7B82E48A796B1C5A5871A1DF22E5558887556CDE9FB342D420F338E5C5E0FE9DCC\
-F97679FC22F743F4E853FE459E3C8FE402BC05B22F2E429511D3EEE94F422037527140CB914C58\
-0FE1E0AD937869A4E246A83DEE4E65D63DC109EA44F6081F45D08590D0CC30397251BFAF74F981\
-09D052C92EBA9C3C1DF373B52A5DE581A212405AD9AB62B2BFF1395DD26BE790A9591C21238881\
-AE8E4F034E389CEA9E7960AE05A097C4AF623B4EB14017E42940ECA45483D78F40BE6BF986FE7E\
-7CF75AF15E5840CA3DB75B9877D2895435252395C1659DFB195335FCF2DB3DBB6400077D9860D3\
-8F9D93984136BDF8542C46ADC71434B17B9D5FED0785D282C44FE6D08C5CFEC856DE0EA33D6A92\
-CB313D17074966436A757F94402164D3883A7353D65AADFA2B39EC9E979E574AF9964A34BA636D\
-761B448CEA9A10B5B7114B3B1B53AF5F5793FADD06BE1465114519C2829F3D23329D11F99018F0\
-1FF9F9855A744A97494B90282288022ACCCC58D6AC48BEF73B7504715B6565578EF875A9ADB904\
-CF1B53B933FF6F0F19FCBB3FFB87443B64DBAF472A16FF3A29ED5CEFC6179AFC478707D7C4E58E\
-8F3C82A9AB4696FB14C4403CDB6F2F5D423F39A346F809E7EC5CB2A21C9A5949E4C4F888FA0A98\
-4A5F2324C1A810887D0E960BE3728173F9B8BDCAEB471B8CCE8B837C6D424468D92831C06DA69A\
-4505F2CD98DA06F73326839FA913974172E4EF2BF1D8BC9CBEBC8943768EEA1D49FF05C2D86C:\
-98DBAC0E4C2624FBC6474652ECEFB1E7
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-9633FD518CFCD7EE436ADAAF7276B57B740D98BB4395362FF04485A69735B816A59C1237481A70\
-948E0948F354DD4EF220A1D066975A00E758D87159D5A5A9B0F76BED463F27A7E2F9628E38A749\
-F96A446CCCA40A70E387D39CCE3192A6C090FDD3C70160B51EE3B2FFC39B46E6B443C778776CC9\
-65D691D35E61298F41ECEDC4D80C28CF72484D79782336B56A95B282279EB2DBE7F1300E0509F2\
-55BFC7ABEAD61C6628F4EE410D12D1A8B48FFCF3021D95A6002D8E2C0E1E8F4291855D941AFD86\
-6F5D93E43EF630AF63AF7DE546B518BB8FA0E7936CD2CD59FF48F542B1795B1AAA36800ECB054C\
-CEEA862418E33AC76697996B627B8F9A15344685E2BC087FC9DFFE48C8A842AC70E5BFEF0A8D32\
-5E86C7BE2A217A2581D37F2D185D07E09C4B859D98B325D03C399C0B36D1FC8B46BC20DE9F1985\
-EE87362797B984E3E5D5B5DB580CDC916012BB40F3C97DA934DED61996882A00A0EA65C2C3DCC9\
-4B5E88733EE2E8664275FE26810707EE2D8C8BCC3E4A42614AA1DAAA7DDAE0434F9137A9B4B88F\
-E89D12B99684C58906260DA869EAA396BFBC71F9367F191E475AAF4A0CB8831CD39BE94C51D95B\
-2ED63987DB37E4FA59E48DD7FC4B9E524208EDA0D5896199DAF89A645D6B419EC27899AA1A64DD\
-496B2F7914B69952DBD6927D191FA74A7561EC6C577F47CC115D8F24C738406E1E51698AA45266\
-2DFFFF81807CF1429C754C6ABC3CFED8E7697F08267A4AB6F403EB167FD42A2BC386A07BDB3ED8\
-D59D98E8AA85A92B5EFA2B9D3801B81AF1A12F351DB4F275A30CE635276068AC86597337AA1AC6\
-810EE0658EAEBA4CB872C5CCC2FD5525B81EAA690498DE590BF4ACE022E9AFF53C533D40A938A2\
-C9459E0EE809F9ABE118E143CD40C284E986E053F7250D2DA54E77139E2BB248EAC2403AED1E46\
-0C4CCBA8AAFE729478F180754A9330F8CCF999580D63B9AD63142DD865A94920E1F37B974EBD18\
-F6246820370B0E85E9FB9BB27FA4F98F48B10E659F9849B51DBE89E62A545EBAC0E91087928643\
-4E303518E0F19B19293D7F70A91CC0FA7EBE39C0A4DF4D142D9060451D6D4EE029473441C20C06\
-81CC5ED84AD7F8E0712DFFA9D3FDFC319030253AE11330023B3C74990DB102523234562664DCFF\
-AD0A26B3AC1418E97C08AEC16EF934A61FF508593360275021294969A0BB17EEBDEDF8A63FB4B6\
-C2C64FD875D472CD6CAE8B6085F3FD30237D3B31297A4BFD1235296CB0146DCCB8526BCBC776D8\
-347C21BF4D716FE3070227D72C3C70B3F0BDD0172FDC73F69C37DB9512D1323FE57D60CD1B99D7\
-7BC95FC0021F9D98FFE142CE8CC764549039520F7479F092AE10A2CAFA06AEC496FA24331F5F:\
-FBCAE48796A9AE72E0A4D218BDC0859B
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-A14B6E9A9551094EB317924F60FF52AABC369053AACF65FC84B5A49A1CA7EA17F874EEDB3B622B\
-04415EA80821203CFA4C6E7F5C0F88CE49DC7E49DC58FDF15DAACE114BF7FFC13666F3C5954795\
-4A664FD9DD0BCC5779EE33B858B767B155A167DF2A3C93A5735C8D54F0E29E1037386EA2BE9277\
-CF1E1618F96F1164DEAFD2F6FFE62E550B1D7DCDC737AE66E2DB6032559946110742036201CAA3\
-6E3A0897AC470DF4CA78134266302F15307EF18A0E21146F3404B5BEFD22ADF97E5888A2207D9C\
-F9A16E329171558C83D5270A3BAB99CB941E36C4B308A4F27FE98FB8AA84818B63FCB44DD6FA97\
-C30A86D87E8B7656CD05D722A7B3483C9C338FB12D7581EF94FCE7639221DF785C9CC52DC27CB6\
-CD2FB396066AF964065ED0A9FDAE5A8B202336378EAE2B5CBFA463C9F7668B0656B0DE6EED47BF\
-B062DE72E8E721EA5C3363CE2749FD0F3A67899E532B19EC5E54FDD399CB2BECF16CF0A91FC404\
-364C0A8E46D52389D7D1B2B7CA0270A650713D8F6F812DBAA7F06CCFA24E200B7C8438B04323F9\
-D29C163E0F734B40B0389B1AB5D0EA77265B2F189650164661AC14B1B49287AFEEF33014D52C59\
-FA06540E5F7090DCE8C77ECA6CAEF38E9293A79875E9E04DC2B79C8B2FD9A7419A9522DF5FE5C6\
-66D6EFDFD8253EB54E6FFB41AB6ABF957784FD88646AED00672DCF495A777AD8A0A4F91C9F4FAC\
-F930949F2B59008C2A1CBB2D3E5FE0D4A8E0CEB63AF23E4758C995382178C4FD07D0777906DCA8\
-A919FF9B38CF2F9F7CD9FE276F12FC7B0DE1DD31F3042DC74654ABCEADFF0D196644FF8175854F\
-8EE3C65178C45AF19E6E43659CF1DC46409336A48EC5935E941593300FDEB7FD738232A5417F1A\
-2B3CFA16CD08A3835FA08FF233208A385723D566952C7385192BBF1C2E73A2B1376015B7484998\
-9CBAD04866DF8D5EF484C09B640D543635852DDB3A80F2F85926D4154575F999714C4C88AE7435\
-EAFB151BC90A5BC7951BD6E4A1CDD568B5D0AB42F9B1E1CDE0E7D42F6C29337359AC383168F001\
-F43A79DC440E153EC16E62D5218EA23C2F8CB80201EAD61131BBE1EE5C85414FBF0D0BF50F2B74\
-B89A94C391E567229745C15B8E7459BE663C6AC83DA708F5BA562608F5814A3713D040A7452513\
-C8EB36A3F5088F09C9CCBF9A1B26F1211ED41F33DDFDB77CA9E5319DDE52A749C88CC7E0907BE5\
-0802C63EBDF5702B93E09CA89EF9FDEF41A8A47352D166401FAF92A8B35DDF43ED66B98417E304\
-29DBB317C8718D39BA5C364597F6C034B20F585271958AB284D184DA758650AE8C9DA359BB922E\
-DE4450DA14666AD5F02ED6135DCEDB532ECD6CEA61B071FDD364421B941E03DE48ED1DBD73DE:\
-BB1B359766D442D2E9FF3F7995A26473329055F8
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-5ABDB1C683F4DC2946F45916427260563A2B99D6A45693A684DCB02ED3FAEA19867E3D4199CBC5\
-906A4416E1AF936E3277F5B46722A7EB85DB2502C830C49C39B526DBA34EFB08B96C161ABC60AF\
-3466751BF5F1974E29DA846F9FE0A77A7528CD2EC911673301A5FD70708A088739D4D2CD991515\
-4BD06BBA1A0CC682CCE16BD1D0C68A72D2C85CCA0B33F6091DE098A599C3444FAECF15E7DA5769\
-1B7BAB3E458069D5F03FB5BC7C068B80B47DB1EFBCB075CD860D3B391158F615935EE977193625\
-61C99D06F0763F9DB85C987801CA9D44D66E8EF8B64B45289BDFEA52B514DA12A2359451B92641\
-983991F17F4F9DDD0AC174054CAB0F70171083A18A103405D861BB4F2530D077BA68C528058C46\
-E497006CA82E7FD407A3B78EF7C7A8FBC4359ED109337083DC8EA9F6CDC9AA694C353642CCD20A\
-344A5B47C42F31F25EEB82EB1368A2171B5DB13E4CADFA21558D0DDF10EF45E7E79E8143C556EC\
-DAAD047CEF149404902521DD965CCD0BC9B8354967CEF3C1C50779443B08BFA82AE49BE9927330\
-609AADDFB49E7DE339447B73BFDE525DF8A4D54D2D7C4FF0FA285D39DF0F2DA25E66F0A77DDA50\
-913CC00E5531B449D8499198E0D326D07740A29D438E2393D9D6F49606573F35F924F3125A3727\
-F5C3BC485CCFE6DBA28CC7688B6D8B88C7AA62F405F38887F2970FAE4BB38DDA60531011DF615B\
-B58207BF10BB0E3087E0F1736A1192BDE595668AE6B4D7A370ED2572C388901C23122A8684E025\
-6BA3AC3F7F547028E31AB28EC0EDB31E922F3FC3BA1265ADB8C19A87774A89DEFE0D51B0B70047\
-0321993E671224CB07D017C4C0C057AD7DC2DCD634CD88C53E74454248C4D562707EA3299E6C14\
-5C4A86EFCFC3567678B24E5B8D7481CAF2BC6D2194490B29C0F2A6A19CD33240114F44D5AA852C\
-69B12951B89E599A36E42C32020DC5D45E1080B510E898BD08784FA7418D6DC1BF8D089206684A\
-EB0513A0F4D431C44423B4E2666B9BBDAE879C0F1DEFCABFFDA4A45DA816AC4C6CAF1DE1F35D19\
-5C88F05733D60509E20301CC64FFC1AC3B07DEFFB364A65B6C58EC10E588FD5420189FC3D5A3D6\
-7CAAAA3C6B85986F29984B11A81CCD904E96290EE31DC937D26C84C0E19BE0097952E8F5D0312E\
-D44AAA311C09EB98D275268AB6FA7075D60C8881AB1CC3516DC79563F7E04D4136221E41827589\
-DA880A812D85D91AC9A8DB37B547524CEB835F033B1A452587A39DCEA47C26C9AD418749C82786\
-C96927B8BDEF0DC2149F38836D3A3522904E08288300A69B16F0F5E7F5DA6B6248D7D2800786E0\
-CAD44E36E32F89870A28B8D9D6685DA341A85F9DA2AC526B39E9A9326E5AF5D3E38D8C99976C:\
-05C3DCC6D59016C8A56E2A005CDC423B9E79B2E1
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-66E3E90396ADD580D0CAB8120EBA8B827B94F8EB5CF151E6DE08F163F540E902C98F6B069D4952\
-B8F0D4469C3B90D67FF87A60DC75063B69AF405A72B3045A7A878820804ABB23ADCB1D4717C9E8\
-9BB90ADA72714255F3DFADE1CFDCAC240F4AFA5D5AC955106390AED2E72E673EA8B45E2A92A166\
-C6131B5EDC7F3FAE3C256E586C56ED9CEACC32CDC249E6F812D4EDB4783ADF31CE6C83BC81F77B\
-6705C1ED1C37061A9D3BC91D7C0F889F5C91E574D80E3CFCF19754201CE5FD4379EF087369CEC7\
-F68587907915FAA2195544490DAB9D3434AE49832556232A77CAA32A1D6FB6D797F0E388DE8A98\
-D7A7B2D5FD71BB4983BC4790A652F8FB99D4A7D0E18DF328BF376FCEBD2FE8EBEB67AAAB608881\
-85706F0E320765BFF8516280F45F53677BCEBDA244DF9F5604FB8C816E21478F25E44DF83903D2\
-A3CA94BD8AB15565B60A4D41B08A155C42E7AB92922505C793C1796EF03CDE688F1FD0E4527888\
-6F0098A72FE0AA2FBE87F56DE1D2F2B8A3EA2533FEACD41880067FB69FEB8DDB8C9B7276ADDF0F\
-5DCDFF1FEE3D4A9DC8E66361AA16931D1C737F08CFB7F5A874F1294B25BC2DCA5757F65603B8C7\
-2E7985723628AE7A6D9A0B5BA1BBA655F639410C681C80B0A9C3FEE24752FCDDCE948314E3D341\
-22270608F563A623569412F5BA073E54B59EB379672DCC5A85D6247648397804EBE8311FA5070E\
-1DE5CD66EF2FD736D5598791BDFB0F6EE30C617B3471E9BCB49759A679D8BD1D8FA86748F54C7E\
-A97556AFF98F0F49A1EDEC49F97652C197C5D6618E227306DED51DD5F44D800B23DB2FA2BA2599\
-A215B7DE3F34AFF7ED3911A5C6F7F57CCFEC6A47C7DAF1F2728FB58AE10400C3D8B29E4B1DC819\
-14D3890C1D09B6F52019D4D28A1701A9CC86EC9150ED845BBC5DBBD1DC26318B0420C64A1825DD\
-9AA0C8E1B47836F5C8C4C2B70F6B758476E9BE624FB42EF954DD94F8E326B8EF51666861702A5D\
-1D65D62135F89E3564D3A913061AD00A3EBC3C5AD3C52CB732304792D0FD2F14BD0644A5E3BEDA\
-6491E35EB1B0CD52FA3FF75228F55230FA20444C272AB54DC0C0DBA7971C923AB8CD6E72148284\
-019321302E2B1A3580A20A4923BB6B6E104529D948B5770E18BD2C6CF34B389F1A4A9BDBC464CF\
-8FCE544891145D980293DF4F0FE6F35DF22117939BC26C89735D027541B562A93D0C611BD7CB87\
-1B556A3E3F0FCDF1F5DBC7A9D795C1B45E1DF6D91E6C7AFEA00E00E44CB6D25CB6C2D658D0032D\
-67C7609A8598BB427FA9B8767FE3E3BE1733CB352318E6099F7EBD3B1025DDA5FEF1F4BBB7B173\
-5828D291B77236E7660A23393F116EDFEF8CFDE2DDDC3017480B4E6D8A16AFC5EB4955AE855C:\
-0C68CEDDD3BFF23048B47C9BD966A19E46F7E2D4
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-99350D7C2BCCB1F021C0E1269D7B764B0C3015839F0645127820CD4A8413E987892E8704AB3C3A\
-E99150F2BDBF9FB7745E7BBD3FC99B573C5DCED0E842D98242D8F31E5DD69B6A8100C7DA0C0E33\
-ADDEE224B9A7ADD35ED065743ECDE4D38A47D67B3553FBA06C4D2F5B7A53B423C367DEE0AC3CF9\
-4B9A7C620743609E27F16EF8AADBE74FED3A727B00F8666562461D126038067B44B3CF1D7D41AB\
-BFCEEF122F6BAB5403EC7AD66B8B60F790DF1DBAF330A040B1E542E783DDED48C1D8E196A9FE32\
-A5B7EA6F63446E9BFF93B0B3892CAF044F87002381F92D9CCD7FF554E07EA42CA7A44577C47B54\
-97A212157EABCC342D650A41F3CEDEC99E5207FD0AB916697D85A619BFDE3AC899FF424AB3EFE1\
-7C9C8B96F58AAA9362DE3DDCF097D7E88EA3006BE01FEF9BD9481CF9E1DA674FA133D114D5910C\
-4D61523CF20FE135CA48F3379C0A29D0B05AD4A41E782968A1520BA8DC6268830C55BC92D19232\
-EFFCC65F351194430EC4F25DF2413DFFC08783876B87A0F6AC630CDF04A4FE19EC6C56CCE07515\
-4866E7CB687FF5537C880679DF8DEB23D7278ABD4AD260D445388132F6848D8B6191FCF90D0D66\
-D4B95B3EAC5439D6C6303CAAA73B968FC385EBB727B6A5526B0162E2AAC32401C62B3FB150C598\
-846241854996E412E99873BA2CAF040B137250F7706EF5376ADAD52FF13B812DD74A8792E2474D\
-ADB993C2239494C9CFBF860F1216EF02246911AA8FEE28042A22A5BFE311406E9C1F4EF8233587\
-10A6E55C07A31F59B19D70500835FE15B3B36BB119A4971A67D66F3BE04E27175069C21EAB2F28\
-737C5F564552CAAF7D45CA4BD7FFCBA429E7593E603975EE81A97E8BDBD2C5CADB1C18818DD494\
-D7186D36B36F289118A834297C2B8C3BEA35F716435F49E32559DDF80910C3767CDBAD107070F7\
-37EC37DC47F5E3529F863096FCAFFA389E848D8F411B54CAF289C382C0AAAC6C781C03E78BAB1F\
-D299C8C14D2A37916F2287D6B5B1195D0A176613065D8C3038096A5ED63DCA5F9EFA2E3A5D5445\
-87DE1BCD995CE4CF371873D0F5032AED6B1A08686E4134B1EC63BD9E755863771B885CA610E03C\
-86DB96CA77E9E7CC0C4D97A185297501C20A5953D70664CE9712D4143B0F8CA7941BF6F114F8A9\
-2ED16C5ACAE4B2BDB940CC573B86AA7918167BA3AEA93AF833B51590A09D4CA299DFF975C2F1CC\
-B2E3112CF5684C60344917F6400D1B1B6FF0A986A1CB955987354EA8B69B4203A664882F6F1544\
-F71B5E89D104CBE8AC412E4FFE927F9181F54F1DC4A06B488D7058FF1B59D67A47B42276E9E4F5\
-5807CB1131340C5C7D5FA901A75999B3EEA02E853868E6DC4DA82A2DEF303E2473A8D7D6C0DA:\
-D9A5B1BDEAA3E8DEF14E7692D97F502C48A9ED21C2429BE6
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-354FBDA4E986570038B707CD6A79CCB72E00640B07DD1418643F2EC5BD5B281D022EBA2413CB38\
-0D061EA457CD4F60208F7A99412F0CC511005371CA55BDCEEA21DFC3AB42CC654E0A5E0BDE063D\
-63E4080AB120959D0B298273F02A070BE9355CE28583844CB85049FA9813DCB0A1762322501073\
-4578E48A543AFC3BAB1F7D50E3A2FA561440D08488BC6135EE12047E89EA92A22E175F1FBF370B\
-E1C4B596E14F77BB4462F34418F6BCC1526173FC8F030A0604F24ADB94AA01C9602745803BA767\
-255721F0907B2F387A5F31C3B45780CB1F8F526169E5D710CA88901C5585CA980B4B39D8DC6EE3\
-D563EFF3725E3E149D6EBA1B2239662304D504FDFD53619D17F35D6C2597BBEF1257CF40608548\
-4540FE0FC2FBAEA3955F49A6BC71028D984804F7DB46C6E2ACCF9CEA144781D795BD4F65332E3B\
-0FCCE28A63028ABA2EA2D03C8BBF76BCD8DCF50343FA40D53C133736A632E78B11D3D5CFE6A990\
-4CD9598CE9DED58F3350BE38937867F59B66115248946F701998A9A3724185595B114E696742DB\
-0EB92398CD9E93BD93AEEC0006B9449EE5EF94D7DDDFF9221336ABF8280738617170D89D2B6B5B\
-8BE4570430F6721C2DF50A94679A7FBC3D6D5E32953D93F8C2192C70CF945B2EFC73D3BF5AB1E5\
-EBA34EEE60B755918E2C3E71CF61D666607FF099D2594AE8EC91B9882DBC27FCD235C4AD01A568\
-CA39B426624948D732F7DB11F277EABE1F53AB877F9841B4DDC3C1886FD6F37B20F3D80BDCB874\
-8E99F3A30F12E5D3FC5407D40D95BFCEEBB41515C4120267A543892D115C1830220964F841AEC9\
-563368DDE3E837C3721DB4B5E082073FDCCD87914D495AAF07890B1673FD8A614E5873634EFCE9\
-E223C2F5B83DE8453B773A86E4346DCEEA885D7BBD5D9B50EA3275A7C7A9459F5FF974AC0296FD\
-6F2B7DDB178E123112D56463F2B048829D3680020B549D16AF318C8FEBAB7CC6798AFD96F67347\
-BA86EFF75BA5425833F1FB581E9BBB3EB668F80A441C69F61FE290D03830AC59E2B9805677995A\
-DBBE6ECB0DF9166385ED4F896D4F4A8A12B94EB26001D7429D4A81EC3FE613DF395E08D2A59D56\
-ABA82F9E7196EF2B9CD024CFD3DBA7D50863344BE7E291B8295B46E8DCB765078DAD3C3C2DF539\
-84BDD216BB5BB596A5CE204762737AF55328AD03D0CC0BD11823E89A59802FD2D774C830DBB16B\
-2AC25EF359454F853FB85142BE2745A6A325F421FBBB41F6EFA4F4F931B01707E137B5E66F96B2\
-C76A34F866940F0C34CC8B6560D55C18B468BACBE4220440B5A07228F4BC635CAA92325BC5F670\
-BF0BF3F1C48AF93A85A7A245FC4EF214ABA06CDA6351920C3229468C547B0BF9C7CE3CC7142F:\
-57426DC52887DADEDA58D6297A1680E85C1E65EFB9285D99
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-B01557E5B83A7C68993572EC916B133F1EFD32358EBAA3ABF519CE1FF7BAC100E603DA5A16DC49\
-FD5ACF9B04DE9C4ED5A862AEE3C9E301392D32246461D3DA41DD69240B47C4554D6B036CFFE7A8\
-3C67D32785D77049A056A4BB9AAC1B94A43516D56C2B23DC4F0F8BC203614144E296F48065ECFB\
-812FE28B0622A24EA973B6BA4D35F9CC1263D6B6DE14FEDA3A2B62B7608A84BE07743F1C911806\
-EAD62CBC130C55DD6465960C8041D17AB27A2EB0661D2D6FE03B284773D84EEFD68AE37BAAE934\
-0621D3656785CC409846E61D7D44B327F2D5CE6247740929C42C193EF515A283365A6C22368518\
-9F32522C12F8D6FD67BBCCA7D5BFA7275E0E1877C3A16033CBD35CF07C7655C9D1AAB6F08F984D\
-5FC420F07B498BCCF77C310DB9358BA43E015780F0C79E42CAFE0AFFA5F7A47ACBF79D5921EA8D\
-3869E74D7A56CF05A3BAA75C8E6A38F78BD7638AD9842CD095A9E6D5140184C99A35AB3DC6A0BB\
-CA717014ED032FA09C4AE182183113594BC6D78731A0211D82C91F41F6262FBEF6D1EDD2FF973C\
-1173C70071A6F516DFC34FBF6EDA87CD097EEA24A693F19D8474E6E53B02B5B682B4B77D25E159\
-2DDC9B9EAA12B19D166F78F3990A1F557CB6DC795754C00E8066A7607861779237798C100D0BD9\
-75354F1E307BA6E10870817482E4DBF633293B67670E27E81C88BE245C0FDFBBECD2668B1300E9\
-1D53D0011BD0F67399EEE363FD6B63C8BA86807A866F3B5A00A2C0224C40CD6838B717BD2A58A2\
-4115CCC0D8CF174C3ACEAB7D98482AA1E29F29DE27F7C3B60BD5D991B73803345EC59347C1922E\
-CE2896A6D8772BC7451D665B210E7A7CD1631EE2C55893214111CFD2CC3944080F212AC85CAA45\
-9D44C669B36CB59D6A09E15B2146A0739EA5AEC2275000E5CE45A3EC36921C2917DB20042A7635\
-2C28B32D912665FA5857C7D6961BDE4FC9F9279EF39D9EB2B826D77293280730231B0F530BABF3\
-C3A25DFDBB5E5348C5AF8690844DC8CBCB55754F5E5D5BF3C6B0EB639038D58BE4F631299600F8\
-781906ED42D6603A432037BCB72FF07592497A288F9AA7AA379358395F7BE07602E547D6C37DA0\
-C3F22C395068BBC799E2BD00BC306CC5624D00CC55CF46C0BA5CE9D722051C9BE866BD244197FA\
-CB9DC70A124AF897396877B92DBD891C57E6439F51168D9F43EF740A7E810966EF6009F8973663\
-E695FC97946184BCD39D13130B4DCF218087F16A7344036AC7FE0111C7050464A4D32EDE1081CC\
-EAB6A15777D9CCA0BC644CC82EC660BEA8F416B53DC14421E811436C4088A37CB1B46B83A95A35\
-3BBC54FBB836618D1640AC53A2BF916965A81F6E1149C0EA89D50D182B652D97A810F5B43819:\
-55255DE499962F4597F5C976155D223EEA3740A7544D6BD9
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-23AC39460E6746D760C584C6B35EE1F579B43161AFB94B725AE5E3D1DB9B5E85D70068A81161F9\
-CCEC724CE1D2ACCC9C5CF21AE056BF733F9134AD16B2121F16644E43CF1D38C498DB715F134FF2\
-677DEEB796B43641C9C508103016F94B91EAB0311DD2C8E81D4E1F4115CB329B63F34F68D62314\
-BA4C77EBCA6DEA17438B9689537CD849CC08AA11665FF59BE715E2341072DCD3BD6FC12E21E176\
-FDF969CBA0FC63705250609BB745E8578BE290B74E990993E2D09F8B3EAB2DD36F360734EACC54\
-E03A4A588ECE8C622DB610C0CA883A699EE4E97E31F6BFA1F0771AE380A1502D178AEFC0916BED\
-F4A0BF876B18C23245C9FAA024CAF00832A60A083052D17E6BB8A6FAAA99CA1272CA2D166A3CFE\
-60D19AC01F1A0101E8E39508BA99E10D66D0611F01E4F212434642A2742A6B454E948EA7B55BAA\
-AD242420C052EFBFB531BEAD83C60B7015B4FE943FD6962B08B1FD6CF2767D5E045EB1F223011D\
-83B061F0AE6653F7BFA64C0774AC423C74F17877C7BE62669B095DEFE73F389D4C25C8BD78CD4A\
-C76DF63C36A19082C97473B08B3F2FE8C5D89143F4D8177E9372414673D340B301A85C5D9200FF\
-B36D5BB12ECE203CF00181AA5034C09A7BCF3843F98E22A02EDFC1A50F896774252D1CAC93F578\
-9BA684431BDF3C7978F3647696DEF4489DA921B76E56D46E208E31F2B320DEB6196E723698CBF4\
-3204E68EC8B86DF48344E2575F3E9F1818A334C66A942EC3C3D6439CDDF970D4419EFD0206E413\
-C99ADD9D48527676672C96B268683F49832EC8C1B5750B900715A7955DBCF06A2AA6995475D15C\
-7D5EB440E228899315101E6A8A45842EDBE41785AA4B2808956731BEE81AC9ED8741884052DC10\
-090FF82CD9CCCB2CBCDAEF343143C5D7ABD58A730AF8229825EF2591A253FB52F1A21C8E5CD64F\
-E327FDD55BA792CB1E8AE92A3EF84F035D72F808976350165ABA7675D8A520B9EF9CA7D04F3D26\
-B8ECD7E5CD61A19D0CC13DAFEF2283808B808B4C5DD01E9A6DE54662D4FD21083120723D84EE76\
-2C197D33277E0D87E777FB2B619A597DBDEC83A93F87ECCAAF64D3223CA1E2CD2F7A46092EC5FB\
-0CA5350D575828AA20D60DA75379C7D883D662A0F66880C7170E11BAFCFCA74556A180F140E173\
-6612FF94CA2B5782FB8990408CC77D39FA68262C738A607F27CB5247A00482A7C17C19CE01147E\
-536898826372F81157939C70BF693C9A194619BFD5F9D56B5C63C0C61B3AD6AFA5F03BA313E4DC\
-69C6E0F1DB8FF4A3019C5A4E990886197D5C1A31A7C108D94B285FAC00C617D68B177C26576CDE\
-8F621A6FDB021FC25C9534BF7E7E1755611200C59193D8C28C7B2CDF47A05CE9D7A3D89E6103:\
-2AE43BAFF61783491A33341B26F65F7CBA8E393B19C1E97BE420FE58
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-040AD7CC43206F37EF55970D545AB43710E0BB8AB6FB66F7E7CF60869F5C61C018E869CA7FC0E6\
-E3798649BA2A1B7CBEFB1C59EAD2A3117AD370CC3CC9D5714430429A002BB092098BCC6DFDB593\
-E1DE2546D8E410773F3EEB2E10A15AD39D51F7A87EB244818BDF53DC3536C955982A733B5121B7\
-2BD5FCBA34D479F246F505BDABFC6A0D95CB0FA64EF6287052A0BC26133718958D19C7387BA152\
-10DAF602037E407A731B918F681FC2005A6CDDE141E405493BA0987978424C7B189C94B13BA8A3\
-0865241C1D6EF06A8E3EF3DFB9D0E2443B7F47A4FDB1D02B5FE31BCEC51086CC38BFC7CFA2ADE3\
-A75ECDC3B4D01F3A9FD71EAD8E5A0E9870C605DC4A6F1BC3932937EDF7F4C72794978C582A4819\
-2C12156B142D9F8D00D837057296D2E1263BD7939D56F56D31FBE031BC7B1194E2B19A7E3A83B4\
-82BB57AADF5FC8FCC653227ABD1C895CB3CC7FCD5B7BDF86FEF7C55B78323DE51E2BCFC370880F\
-A872BFFD4CFC0909A9F79B8089EF50E7E93239E679E158D6D518F7C5555F325953A36221C1269A\
-E5F235CF338BA7A8615EB1D0B54CDE65291F6EDB3C2FE41FCBDE0457CF050E5E30149C857A91FA\
-F767743C968C56B94FF79A4CD6F798356F20091174187EF169210706E84FCFADF57D96B7077433\
-CAB883C73C060475C207E611E679B9A795428FDD891626CFD6B868203714F71BB158086F93D86C\
-A5499C0B9B8109E1CD0F7E6FDA5B0840CC3FF0C1EBB4CEA6DC5562BD64BF08EA6E675EC6298C9D\
-5E1296B327B4EC150C0373580011D105DB11CD4E8FC8F3E49A64E2AD9D1D2261C85FAD9A31BAB8\
-6C7D92837FC297CA387E945DC82CD10255D14ACC503606C0A9BA7E2F4F1C72A5E17801091ED1BC\
-B2B9BBE91EC4EDEE5A908EB3BDC51EC443BECA0E99F5BB8A2656702B49723B0A3B37F6C7443BF3\
-E85F77CD3DDC39A7B016F1F53683E75C103A4C78217D2CF5D5E156E2293507E25E17CDC7B22136\
-92E0A15C0ECDAD687DA2ADD96D59B609A7A9956DB3705C22E38460933FF5302343C5B36ACE8DDF\
-022127C5F1046EB03B4CF2BA625989C2EE484D365D04D69DE3612D3961491FEE3F101A9CC66543\
-BD52D0BBA41819CA542E56C58F1B2861C224EF4A9A50AA4CA7CEEFBD3BFFEDBE82D5FDACB315A6\
-B9A4F99A01BA7B09FB9D826DAF4AC7B913D8A9EE93894B834B8F2A9B242F515D7D6C3A2FE9FE59\
-7583497785A299DA86185235FF8D255A17BF45851C67DCCADDDBADB5D5B49D1E357793AF60FC39\
-E15F201B6082999E5252B6C34B542003C209A8F28DDAA58BEA27763AB060510D132219BFBB5CE7\
-D8F6759D64E2D25604156E4657E3EA764B2C3D2A0710EE44D5AD6EB9C7407FF852C2DC161D46:\
-2372F9B0FF27B8B5FCF2735FA58AEE77083942303E1378D777407E0C
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-063AAC01A9FD95C649CB7891779D91D9DD1EE283A256083007C910D584A8A967412B486E9C302F\
-EFA2E4B3EAB48160CDFB924C3E4818315C2E8939BE010349D20A80E34886BE789BEB3403CCBB3D\
-A87FAC97F60EE091656565843AAC43EBDE6B7A65FA71AFE86DD8B00431A75A84F7B40231061806\
-491AE5E20143F09949FF991997C93950E209313E28D1B1F17FD790AA03F6E9530C934566A44FFA\
-4F059C681DD6C9018E1FADD0DE1D3F48E6CAE065013B1CDE175A6714DC64ADC360700D2E36C120\
-70BC591FD06A4DD02E5555B26E9A319F9AFCF1FB446183DA03C53631D97DA89925ADFAADDBABBE\
-11B118FADEC43A6B726F3FA10087E6FF75AF9DBE1D0BCDC29F88CF2C31492CCD38C834F237FF58\
-709ECFAEAB5688C3287D1632CCECA70ED625840256F93BF7D21F05E7AA3E4F10117C980826B9A9\
-6CA135C510BC1413A1A2ABE79DCC335667771EB5D327DD9FD8659D8385A79526AFCF88D15529AB\
-76955E6D5D4C3E452CD22EEDA7576ED1ABDEE5D75A003D24307F861DF68335A2E071010F5F74E9\
-C5CCB0ABCA73B474E7EFFDFE50F8171B4BF4322E7B5E1B555E50B16F27F078BFBD7EDCC55E7E4A\
-D0752925226E2EF083AF2BDDAF3F49AE3E4BE98D174F9EFDB42FF413B336248FB6551ED9AD42EA\
-2F619B25E9BC3C26F7C29733692A091C754C23B60925EC99E013D002EAC4234BFD35BC420B7AB2\
-69419BF731E1680E6715D7B268C463298FE1CFC554CE6A0875D09177E679035A9E4980E828B894\
-87CA9D8AEE9406943EEB4AF2B715EAE982C0B129655B392F765C4BC59CE9AF4049FCDD52C50600\
-D4423045D61D4F917B2BBA7D20CE7086ADA6786000CFCE344BCFB937F829FFBD9388553B5F4E90\
-71BF8AAD6326859B78E4BB9F96FED01D84E0C22AA6FF48FD3A2171DA8BD32556E010E8FD120C65\
-02EFCBC0FE8F3BCF58A021B1CDE9156EFE82DA463805504309D515A7DF571BA206508CAD4B9715\
-8130576BBEEB5757F166E7ABD74CCA2F68417DF7076E2F7DA29AB4A4242545B41EAF240F1018FC\
-12E581A9C023FE555AFD6FB4E08D6016A465B03566EAAA4FC5B6583366639DA696CEB701B446BB\
-B320E649536C14454B091840C0DED9BF51111E3EDC26E7644CB8CD342FE5F19E8D81D9F21FAB9B\
-5B4C0FCB020E4468C8D5C4C6C42312745827DF00E8BAC1DCE0838BCBDEF39C05A50489D8E0B9D1\
-230729F544C5ECFE071F67900A394C2B5F3E993F0B1EFE487DF0C92B0C9C378D6ED097C4DD09CF\
-59A5470EA59E0CECD91129D26BB8FF8A145E2FA70C1F2AF7AA615712797E24546B22ABF8542FEB\
-F3C7948C328E7D8470AAE32E44A4E71FEA0974CB76B7775617CC450999BDBABEB98CECCD756B:\
-6951EF357C02124B4D1E31E956FB7A3E1F8EECAEA99C2E3F379D9F10
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-5E45AD93CA54638C779AA42B69C9CA40E659E8169C53F968126C05D39F08C5794136E206FC9CCA\
-51F496C6E781AAD51424188D80CC2AB68745A5B277538ACC82AF5F9C2F7E24A2FBA1801DDD7E2D\
-FB8D1C0A599E6E7DB9EE28483E9A2F1E02CF0C0640988C66B57F4B60018D1A7E251D4FD87D8D15\
-2BCC74BDDACBA9AF2460C3738505DB119029B4261A96BF5A95F385420713C283E843BE2797DC28\
-1C3F1A77548E97BF9B6D764C523D2C462F77DFE2121A9BE7B436CC4B4D6D00D8810E1B80DA3D53\
-C28D20B06272CC48E665150A309DC80B8E4B2C8457C73E0A81B734F82F0431877167F116306954\
-6FCBB7D0C828A8F92C60F28B679825CCDB9AD1FE0C20B184753AA2357B04DB9EE3AFC26615DC80\
-B7A080748709D2237CC22ADF374D74B3B4A1CD4265FD247E4B138C9E8AA4FEE4DAB218090D9C4F\
-6CE5CA6C092F109C5D0740F0D9BD298FE75979B5EB122E3EDC0F1B5829F87E3D92EF91895B00B1\
-5CBB36CA712BF71FBAE7D5FA4F912C324C6BF8C7E2F35441F9F38982E6D33299160B058843CECD\
-911A64473CFB46683B3AC23AC940E2B4E253F47B160522A76558CB8F487C87CE670DAF81E5650F\
-FF511DBE2DAA34344B1133E57DF8E7455569FD89C2763D7D3214E7B158320E795FCCC78AB535ED\
-A3FBEACB25CDC81EF7DDCB0A7C7579F78D6585DDBF6EB1234357495EB8A36B7B7F81F50B3CB7C4\
-185C208425DF40950363DC9917D129A681466B1C8F0F02ABD5A45BF240ACBD2263C74E8AA2D9E0\
-DEF480ED29773AA0D6BF518C0FCB8B6B005A2A41A04FAEC5C650EB280B3E92326244902DCEF85A\
-581517EC6CC917BCB2A69F2A070F9D8E0AC15F79790B0DCE9E508A8C55512E2C1476BB63018D01\
-4E101F13FA8B0B5CE0D5D6531DB60BF1E0C709C5154BEBA3CB74D8A7FB21C65857E692B2438722\
-8E48CC4EF259E94C2BFBD7B8D6EEF502E5B30227D08F8D9B31F61804220CD7C0B36FAE7567E664\
-FDEDFF60C3021B1E4FBC8234EEE749E01F0E3E4D6AB2AEFE5B170C01CE7C7875F12D8DF551EC46\
-46D9AFEB43D5A47C8D9CDCC2200BAD5D32624492444BD7552B7E0077292AD15CE6B26A8FA036C6\
-7CB71338BEDEB6E9AB0A17C1452256AFCC6F9E457525F9D285DE4BD16FC66309A047260C932EBF\
-F33E2E3E6EE3C0B3E54301E0FB5382498995E9C5D8078560A539CEB8BD22600486BEF999F8C506\
-E3B40BF2062D3DFA98A3303C52423C8134D713B2E7F5DF254237460655B4FC668AF7B3886EFF4B\
-9214ABBCDA6D33DC7E7C9FB9D67B056B9ED2ED7FB31892EDDAA32BD99C77C533223B4E85808F3A\
-0C50A2B196A6B091C1E876587E9631959BC0FE1A6711242D52AFB80664397C4F00A14017A2A7:\
-3CA260A152BCE7AFBC673137B4B258DFCBCE5E4946B909468F727B54AE3171B6
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-85DE284F504C0C624AE145B4AB67FB7D91EC26D0E9C3873106C16D5C09BC7CE453B4D495199873\
-BC375B31ED963978074F6F28ADCEFEF618DDD53B2393D4C99F6FE8F09B307403538EEBAC5B7647\
-449323301689751FADA050BD6C8B8AC14C0B645B0847957C803D9F336229D9C59D3A276491D4C6\
-06FE6CC1F936A97246F1EEBF398A4109D75DE8BCF372F8966579CAAC9A254C14DCB573F6868C08\
-E8D932A63905C8E318E28DEB26134CCA2CDD631389B130B1D0469B86C462BAF826EBD48CC9B775\
-CC5D0002D87CCFA7DF9F0E90A80B1DCC0F0741A3CD6F39E51FC10CA683DF6611D3ABE6C453CC27\
-675F825AC3DFF2F7A521D132C71E230E84C520BFCC1437905624C398B4C5908A0260E7C17D8C7A\
-DFBF75B059EEA93B87CA731D82A0505C590587796C7FDD614DBCEEC4A984E0612EDDCC055B63BA\
-DD66DA0541D35E4AAC9E766CD67CEE5CD75177387C5C8D94C86434ABC1B14639FA2599812532CC\
-CF2D72B3443145F5DBF2312C74263A48D8B7D09E8E622D9FA1723029C84C6D904609C253AF8FC3\
-0D574559247BE10029265C2DE89E12C4C4505434969E8703AF5906A278AC9F3E7E01D2A8FE09F5\
-2C121CB3A97C7C3A4B9BE17D146E8BC2213189A356E4D9959DB4170F1D004BB2D4FAA7B56FF489\
-8AF5DEAA337B1807B52C63B474E1FEF110AFACC1D57ECA33A2DD248BD830A16309CD9549BA44BF\
-D33724FD447D217E5E543AFE7DBE74C503383C5BAC4CE75D20632BBB92FF02DB888DA566BD7E59\
-4B613C3754E1FFCEB7D53C0BBE678399BA448B9E35F0F2BB0477B767B1488EC90CB4733F1956E9\
-6E1845535BA97224E569799551F07B8CEA084FA8852B17A9D8B34C0047A15F8D2754011C3B523E\
-3E5F5763EDF6A06269AA3FD281B8F9F1B263705A9F5170C34B9E7C46F40A3048E7B98D21CDBC6F\
-721250670E82DC60DA8326427708105C297BC05D8BDE97B0F78E55E00D5B65C65DB5B11849290A\
-6D58FF4F3B88697879993509FC7A5092AD6E194C35BBBAA74C2452FA12150CE3B6F1ED8DCEA0BD\
-600F529EE4D4A84400EB8E756770E7BCB7E279626F9EE6B30B9E9F952DEC4150CC71B0F9939809\
-C7D2DEDF98D01112A9A58821A0BC96D267AB9A2B77C21AE53F1135F9FD390FEDACCFA9A6817121\
-FA5719ACE8C079DBC8391C1B4BE6AF67ACDD52016933A99C9F2BF62093D5299D093EEE7226C49D\
-5BD519ABCDE8AD8230E3B3652F374ECDA7F0A6BDB84A8EBC9C657213B402EEA5EA5FF2F426BF8E\
-189517255E38E19ACC793971CB4492E8D346D25C10EB626CD709DD670631B2F19C95752879DAF3\
-DCD2A07109625F4D8403B6E153E3536521B78B6D6AA7ACCAA42B0A2CF47048099441A5823F64:\
-003776133C69B7D16F80023FFA5657C44DE96400BCF49A7F7ACE7BA18B224F21
-
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-000000000000000000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-09CDB68A29150A0DABA207A6515339A0AA10470318DD7C6C9CFE89F8DD520B6E5DC9A612C6E365\
-91159E162592D695B03300A2C5C4C28C8912DAD980E9AE05533ED8D7F05A5B55A8DBE01418C1A7\
-1F01FFC89ECE38B0B457FFE586AB48780E0F297EFBC7A27F713FC54D0E8217D760D545C6A384F7\
-5865C02F0DDF49B0FDFA7D920F57D988B3220DC1BDAFE0325EDCBB37E94C09EBD0E17E42FD0E91\
-F86B958D9BCDCCF525F8FC4F16ECF2404077257EE35C6E86DE6264910E33621535316C30752500\
-EC0D52BF3256BBE976B38390BEB6F960A6EB1954356F8D94EE248AB021CA09192F808F8026C34C\
-C95DB1C5FAC16255C518A2E3B0283EAF066F6B31A03B2170377C08C1D83D350762347E61365B04\
-D8DADA99FBADBAEF87D8008BF09EFA3153CA0C79321C0EEA989E74252CCE2E2A34F0FDE7AF1394\
-D94E2DC52E98B25680E5DF6A1F99E6178580F3FC6FB1217385E5BAEE4AAD33B434CD74F56CB95A\
-8F9F263A0CB5CE04D5939AB62077A5852F7F1EF8E7AC72A8DB2C7B13616B061262BB6A18970CAA\
-340A469BA8F86EE8D1776B3B5E2F20F64E4D02F6A3571C7B5DB810746252B6C51E584787925164\
-67B0B564A6C92935C7F05A856AA6080AF0BDB0639921A281983FCC406E3612B0A3626805ABDBD9\
-01C7E0E93B69505170CAEDD8B811AAB18698F3ECC6B6B0856FAE92B7D72CFE805931CC3C8BB65C\
-784162C1B88D53C50BEC2370982C0F4F0419D26D17CFA4E6757C782605B9419134FDA2F09C568E\
-50BCF07626B9E6B401F55B43036C72A339570652EA50EE4BA5CE3AC1E098F61AD23300D51F95F3\
-AF334CCFBBE3413D418A1009137CB9EF22ED141680CDA3FF7727BAEE26C2E35780F9FA8B63F122\
-9B24CAC1DEE900F52C03B734F54CE6F5E5F32D89E4C991D3788786DAAFDAC3C262906DADE08612\
-FB9F8EF1364ACD2EDF23416F1AD0BC3E23D5A5EFD11C3838D3E4694D065E04C349F97AB5B9B4D8\
-C0272CBA7AFE0998BC6CD51F1614476285F11163D20470073BBCE0A06EABD199EDD2523C9D595D\
-47D211D844929E3D614C26A75F7CB90734DC3B9DC7005DFBB66101D9B0C3DFDCB03F972087D093\
-4EBFCDD1C9BAC0F62D50C5437E5A9834DA80FCD750D8C577DF7703A63B847D75B9505C522FD241\
-10C1237F7A2DA2C6610661E154FCA6326A0272BDD16BB78C9891D3F94B1BCF064A1E0DA24B582C\
-962FB807C3A69B4489AF0EF8488C59530EA5D92A95A12B7C00F28889AAB6A91E0D9D6593944AB4\
-C89CF11AAFDCA2D72A1C0C793CB4C18ABA658207517B041C7830B3799BA802841623F3EC6C3D6E\
-2E1A11E0E33A1D1F97A4E6D771D120B11C52736AFF0AD3FEBA59FF03FCC087F50E36839B4119:\
-085A85EFA966BC844824B45AE82708DB927709623911A1FD7877636C62EEF2C5
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-0C79B2CE647574C631FD55BCCB1DB3BE69BA847E0F23AFB00C21B7D41794C10F3B8F61929227:\
-1510BFDF958D2C4BEC1EDBFD675ACE6F:6D1DDDEEC1BA73C15CE4851DE0B6CB0E
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-DC61600D30CAE1E33CCB50E4F7CBFCF7C889CE9DC780B264CEACDD1C21133B49F9E1BC4EB879:\
-0ABF45AC5AB91F794B98DFA5FA0CD894:00DA828DA37D94E0841A484A2EFA4C19
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-6072A1F5D942825E92CD02CD362FD79B209801622723A30DD7F99AB5D7830DD88DF4BBB29E24:\
-A6787289DDC9376947BB930EFD48CCC6:FD020136FC6D6B8BDFE9C13CC6E3F2F7
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-846C5C3DD0BE453FDA15DE04706DF957036BF8771305D35A99D57E5EEC0276A0F8C69928D05C:\
-15175F1FC90E93CF104366657D8BC80C:874B703E2D1AFA6A9DB2CE90DC30F76D
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-A134A7EA12EFCA03BB8B0D2420A2234C7CAB5F9D990A83D9C2E014F6DD6427F25044FAA47977:\
-51846E247DD72812FD39BE78E1B2F50AC36EA2E3:7487C24E287E5BCD87B20A15B9A5B7B7
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-69A0D15F8D18562FA4754B77601184755E99E3C42E618D497F8A165F25B393CEB6B00FC7B723:\
-3803A2009424E2AE8581075A53ED058A274EA8B3:E359E0E5888FE70D570BCF0AF6E89E0F
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-7876DE9ECF5FE512ED7E96B24466CB3C642EB6AF65FF7BC6151A92F08DA4BD8CF110866E698F:\
-936225367409CF84A999E6FEF051FD5E75882295:99EB3466CC3DD02A69420C158FB77159
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-BB7D4F56219322E943A1F8B23EDAE9D510760CD9F9F6DBFD8F4D88DCF237980B64AAD59747D8:\
-0EEFE7FA570C584A0A256B8192C964D86D37C3ED:4AFC9814F82675F50C84CC306E758A8C
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-C47122CD6BE53F777B20E91324A92307589A731711BC29FE6902935C307CB61BE8380E261794:\
-0DB2B86717F826082435438568139119BC66B0BCBEC2BE20:\
-B254D36F8AA0429EF8E197245B6B92CF
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-1050A35FD348E0EB6FF6FAC7CCA1A342B471FE1085B3B7928239E1926735E3832627FACEAC22:\
-31A10A2F283FBC4B9723794D41C935B03395746408A69787:\
-B69D21D86FE5C58FE8936043477CFCD7
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-F9D965BA84542E60148704BF612E95BEAA5F6E1747E22EA8F59DCA7FED5D4888431B1C0CF164:\
-8A8062489A1A70F9BE06B6FE1567CECACAE292DD7D7AD296:\
-B030A9DCFAF8393C46696F79D6599428
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-CF2485D29FB99F8ABB7BA07CCCA2982945BC033427EAB654711318911750AF51B560DB75B9AF:\
-1A738B670621D0F433D38AE8C527E3A534002882D5487EBA:\
-0B1211AB1B6266EEC19B7CE5EB1B2612
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-C5D1027641C9731930CBC636D34C027A561D787E008859E2C97FF3CDFADCE02A126298842372:\
-2273D359BE54CD6C8F5F3D5E0D5CF19D9247DFD19F5CC7F5F09076F8:\
-C9B2B798B7B4C57EF9EBC67C2DC036C4
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-1C50895355461A627EC16B84FE6B8490AE09CDA0DC6312FAC2402CEDCD7C3B211745083CEF54:\
-BECDF3EF2461DDC8BB7153C4DA7047CDB396DB9060A8C23746CE6089:\
-DE503503CB0418F161D46E03EF29FB53
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-E042BB60BDD972CBE0E76304378A5763AAD9E142FEDD3FF7501FA2EC0B49EEFAAA91F5ABCBB4:\
-0FF69687B5BAB2235F7F00BA631ABAA80623F7998C643B2C3CAEE314:\
-272EF1CC3DE16447EBC186209B8BC4B8
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-79A412224B54CC67A462A02A97E800CF052F39B083F628A6C2F2CFD3BD2028704426EE7ADF4C:\
-1CF78658191C43325399D78B8F88128629FD623ABC455944FED3EEC9:\
-B13E3072909CA56B16C01F27F5DE34A1
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-AFF10AD6FBD068C28D5E1F7A29149A49D6C29768996FBBB61142D6AD74C9C399A9133F3498D9:\
-FA90065E64D8493DB9C16ADD882D3BB51CA0C0B9C06B3FFBA5E04A2284D3AEF6:\
-95784AE2EAEEDD1AB38C40C810E66EEF
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-7E2060D913D10A1A1C936B7357A65449D590DF4E75DF36E4271F244E4A492A8EEE05475F8834:\
-4F0D8A0D3E14455A155BFFB5FE4ABEC0067C01E943FAE93E81983A0A76EAD0CD:\
-F919E073CE8C9205FD228079DB3F8BB6
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-C441EEAA8FA7661E14AD10F2B38D1210DA891FC230D298EEF4D9504C4C950B753D9D33E05961:\
-B2A5718C5A08671772836723C357A15BD6FDFAE38EE748ED2E94B5921DCFC1A7:\
-0A8B2DFFB1D0534252D8F20A35FC28B6
-
-0000000000000000000000000000000000000000000000000000000000000000000000000000:\
-1B7713FA6B8D47BB8EBFCF6F154788C0A47C5FA71A6EC061AE6D84EEC62649DB8DA7D8651CC8:\
-35758E318556EAF61FCF8B83E9C10F70DA4C1BD85336E087E3A2E72540B83177:\
-926F710B6040C8E755AA2F30F5A1F093
-
-[WiderWake4+1-BE]
-1234ABCDA0B1C2D31A2B3C4D55667788:0DF79CF5E34C6DCD0596ACEDD702AAD9:\
-1234567898765432ABCDEF0110FEDCBA:BABEFACEF0E1D2C3
-
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000:\
-0987CA45C360D114EB012D9E47459ED88C0B95B927E5B3B6D0A34A13C20A7A3C\
-B9B5A2BBFAA44A1924B40BF469E7CFEAE869CD443717A45F01AFC0A8231F8BE4\
-C6175BEC707A80826A73CCD57A2207C93B2A22C86DF66CB4823F11BF8C60F48C\
-16E1C18B95097CF2B4A762102D13E3F40D230FE8C183303AF32E43A6E4641B5B\
-792CEC33CCC1351E194899D7F6D9B35E921F1ADEB65C103717B3DF71792C4426\
-9DBFD7F7F76678F355ADBC402B1F4BC0AEE90ACC054888596CABC597EF56D8A5\
-2B0CAACB3147E5E450429990BE7D4267412600B4E700FBB3D0D3E5AE542FE5FF\
-46E5FB796080F4E03FEDB133D598CA782ED9353AC777BB7CD457A525A8163D68:\
-F234567898765432ABCDEF0110FEDCBA:CAFEBABEDEADBEEF
-
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000:\
-5C2AB1625BC271890886964C53FE7B994896042A9047059316035D4ADAB67AFC\
-C18414F17EF8891D3D49952D31CC01A4BCB98F2A81EB3D82602FD2AF18430681\
-E21DC6ED32E6F2A45FFAACD4BB81898FFFB504DFFA1E8B1953C474AA61FFFA97\
-0BE71A02E9ACC64DE7F2EECD5E7C1965548E290DB3108F79620B3F2E381143D9\
-D5ED2A7EE66C32D697E10ECDE7C7907FB011EB9E9862094B9384490484F3B3FF\
-E4B82648D57D9F22F2410F603BB12C3D22B48A9AA72215BDD62E849755A33B75\
-025252D67C80BA5FF8EAED75B62669428F791D1FA9B39789266E41C2848AF99C\
-90E10A1DAF45A4E1EBBE00C9E1E436D550DBC547BD0818E8E6E580BF911E879D:\
-00000000000000010000000200000003:0000000000000001
-
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000\
-0000000000000000000000000000000000000000000000000000000000000000:\
-C65409182C9BE91884D6DA11EF91971717C3FBBA228B4088E616478FD11C5D74\
-076B8226F824AD7DB07B7F4FC38B8A442BC51F6AA51496911D9DA5E21083A7C3\
-DC45860D0385BFF75404A641581E2F87EC2BE542A2F70A075A10F4A2AE8DCDAD\
-4BD1396978866C9497F4DAAFBAF75A7B8437D09686800C0F819A6E7DE6BAEBF9\
-DBDFB5C4B3493AFB55311E06EFDE37C848CF99C0DC3832D2BE701FE121E1F27C\
-32563D559CA5E2CED8B66E4000FD280C8BE9116E91DE032E8D3C20760AC5FA5F\
-0611667720ADBF0DE5CA79A8DA58D5EF9237C2E722840AA596444BDA66B15AE7\
-C513431DDD22D67ED170ABE6A3E7CCB9EF8D7D5D44897C5916FE0EFAA827E86B\
-0C3FCA6A413F8C7D8BC7735A649AFE06CD64DD4086A6F3E80FE6CD663D61C0D4\
-00BA48E6FFDD1C971DBD4BAF46B5D6502A6EAA6096C48D5DAB484CB9095F5942\
-199B35DDFCEDAB9E573B19417829347087C111D2F87D3FBBA5EA2160055B1F56\
-234254251868D5EADE48F0DF21C1182ECBD201220251B080342B4AAC08C1AE8F\
-9F8410D93E732360ECCBB3D2105C3273CBF4772A4477E95BA924DD2C61AA8719\
-1FF467AF970B323BA61DEC5E08FF012E51F3E6D5EB8599C76E29BCF6B07190E3\
-E37FEFEAF3A1D0B0431A0795F319A1C9DC09500D648481C645F7C268691D465D\
-46BA742B49241BE0E46E7164493F78E523DCEFD1063487133D7D10C408AB5655:\
-771C23C6FE5A4873C5185CFFF61F58EC:59C17CCD08C4D7AB
-
-107C217F5AF5E15ED2C0AC85FE26742C53A70D8ABBB47DFC319F2E307A3327ED\
-C74ADD0C982C5D438852743889CA15742B5A1272F1FA85889F100D294D3A0C36\
-3F7052CBCF23E9FBA30FC8CB0AD7757FFB40166AF2A1509611AC6EC8438D2FDE\
-66046532C346EA79CB1840BACB9850050368FF5EE1790011244522A20B1C3B30\
-61FEF9DC132E74BDB37E835298E698FDFA60DDB9FE72DE583494621734609855\
-C5C99B58E863A0B3CD6A82BBF59D2F3EE03AC6464AB98EA087D33B978C505E55\
-2210EEFBA7D0F81B7435BD4FB9340C0BC75F7AABC90DE789CE3FF899058CA40B\
-F57502AC6ECE700381443577C6F807809212CE91E70DE4A5272A5FF11E403F9C\
-7CDE160D7A14C13BEA47C8CFEE4E6E6576A7B7A93C0E203D947ED5CD9A124434\
-914A0907B68A5DE1061D537956FC3A3C3E2CFB82641F2C33000361DC665FAA61\
-5EDDA3862DC54B463D5138E2CE68AFD0DF520F999FB0A0CDA0B09455BBD7BDE0\
-ABBE9939479EDBDCD2B9812207400EBD486234FA19ACD819F2DBA6C09F930EC0\
-4665EE163597B69C6B5C13B1026517836BB23679E9C308B1AB119D52DB48682C\
-2776E2524C00233D69435A201BC7E01AAAAE6CECF70F25F26D253AAD23B15DF3\
-79A48EB973434FBBCF807AFC7BB6C5B5CED51F8E8BD47C45A26594F89E32F36B\
-2A8D28791625DAC0993548A49C2011B4CDF4730D7C85C93CCEE16C5926A9D67D:\
-CF329218A3A3B6B08B89B0D9D8889F488B0CE31E621EBFE7EAFC5E45814E82A6\
-A2FBDB762922BEF71F969E5FB2F0C81060AD765E86A4A664B77C4E028535809C\
-3D6B78CBCE1D5D4F9D75D0198D3A7E7BC9F5B24D617821DD5B5386DA2E629FD6\
-0DA58E4810380E18D3D6F056B5117F29067AF8AAE29BC6E591DC2F7D38C3EBC7\
-6760A297D351EE92513D2296F3B2656C7B360717D51BA235B3C6581AE6264FE4\
-0494C2DD159935A7F36F040252DE647C0688B1DAB9853A47DA378A04065B3E72\
-CD57D1C52085C3E7EE99A33BDD305E318184A1E132BB8C673ACEBBCE7DBBB261\
-B66039AB388D3D94DD625058B0B582D1C261A61DFF23D6078E7B4114958AE0E9\
-7FE3F4E9D88289F57C9B31B31CE8F8B8F72EEA086314F9B117F3EAA024393125\
-298BE358444E34BDDF2B4DAE77870588F8C92199AFDB218A15E8D88361483B65\
-DEEBB0C33C0B5E0674CA4296996E756439BA809A180FE192A3ED89BDB5207956\
-1D2E935E5AAABDF04F7C5562BD371C41844CE9A29CEB6E5D3E1781C86689C59D\
-E57276567EE3F08D0EAB63B67DD949B58E47C22162E263B84EFA4EC6534AB0D2\
-2931F5F89B405147B2057BD37C1C93F45BC65EC64019D70F6BA6BC684239E12F\
-E164DECAE9A2640F47E0A1D8C0F4CB70B4C2B1417CF1D4E82CD79599BD4208CB\
-786EC8499954410D58756D21551223987BAA744DCBD4DC1709F392ECD3FF30FC:\
-50E3C199E9D556552E79026253E2E9FD:69EF9A725A8DC78C
-
-83A1729A280FEEB72DDCFBAB631C322C6A5FC558A49879F144A35FBF8B0636A9\
-CED7D1C96B6E86C406387C67A2395675FA362408F088811AF5EDDC95BB2190BF\
-2E06E34D00BC54058E4BA434F8DD1FC932CF1FA4C06EACD36938631FE67A7EF4\
-7542F6B566F6819C3D77FEF2CA072ED30F8A98D7CDD8D292190C61CF27BCC49D\
-5407E2C84F7B24148AD89ED31ECFF089ADE4DD97D7D23DDB13A980D9CD54759F\
-3B7FC287D63BEAAAD241CF4C3237E4751D5FC96BFF9EDD91514D1A598D5B7056\
-AF1EBAD0F908841D07B0D848316C181BB48212034E5FF696CD3212C605720A6A\
-B7606370BD2996C80FE30E924D2A9AE0D6F432446CC9033740A41A9F749E49BE\
-9E1307F7F1012F13DED442835C6E961F47879D259871E763EBC1F8EAEE02853A\
-5409E6E207C48F16AEE1973F517ACD71990CA26888B71621EC7B4435649E9277\
-1F842DBB87F52C6C0AF908B99050C4C5BD774F40AC9055CA2D869DF5D837A484\
-8C43F70600297A4BFE9D5D91077557C9C67D186473DABD022483CDC96890A8C6\
-AA1411048B646BC3499597BD6AA8BF9BFE2FDCB050CF2F2701C6F06ABFD4FF7D\
-80A6074511E975B628A3C185D76864D198383B69312536831889714CDAF904B8\
-A518B47B5FD89C0D5900A1043BEA33351929710F4ED6F85A0FB03607942C48EA\
-047371A191EEA22447D88C200D5A0D10C62528C83329D0BDCF9122DDA3C01C65:\
-AEC06F99E3408F738F040C16DD934157ADBDD9489B19727298BB426433A5D1F4\
-2CFD9CA4D5C946D31C069DEBC1BD9BCA52FB28BCA8EC84A32218DE629231D46D\
-F052558743E60F3A7042AC71D917C979EFEB8794006F0929B853F5C8D9C1741E\
-44EB8B85880BAD4C013F2047FD2ABCD06708D5A1483E9AE03B48F197D1BBECAA\
-B7C18F7F8332CF797A4E969AA032827D37BC63F49A64644DDDA852FCE8BBF890\
-A0E03DB5EA89CA05B11466A40322E2A1DB398120A8C84C522871357E92F954B8\
-87F86E14841A127E74D102178CCA7F83F2D5B142A9D05A9F224F27E93CB70C33\
-24D7C783FF0D3C475195CCD7535B9631DD1B520924EF14EA0A9BD5EC8380C39A\
-774234E41624D3A7E89FC2051F3EAD8DDB37DC8D9350452887DA9E7585949D6B\
-BA846A6AE0F3F2B469DB68F3EFFB3D52F828D91ED02234A17F4AF974B9DBEC92\
-B11813F0CB8289CA2F4465DD1A6182C3570AAEADCAF50632754986FF2B550780\
-DD069775FCEF49156422A63DA7CCDDA14DDAB1FC0DE5DAC3D8793F605E093B11\
-76407E3EF5B326DD3361BC4AE824B96237E34B67BE42BDBFEB7332D19DF1CFE6\
-ADE42FE5ED3CC3460FE6D1046A38E83B7FFC3BCBD26A49AF2FE5EE09C558D474\
-D0A2EEC22DCCF56BF208D7A1DA1CDBCDEE3A71CFFE3C205A8913D555363E3362\
-31D766F1DD3E0C78931F8D5FA9CBD3213BAB06929A5D9EE04E772646D32832DD:\
-ED507AEA3196727632963F503ED26A50:D5A58B8F626130C7
-
# Checksum format is input:checksum
# Randomly generated by reference code in RFC 1950
diff --git a/doc/algos.rst b/doc/algos.rst
index 5e4579a83..8b2f14b36 100644
--- a/doc/algos.rst
+++ b/doc/algos.rst
@@ -57,8 +57,9 @@ Block ciphers
Stream Ciphers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- * RC4, Salsa20/XSalsa20
- * Obsolete designs Turing and WiderWake4+1
+ * RC4 of course
+ * Salsa20/XSalsa20
+ * CTR and OFB modes also present a stream cipher interface
Authentication Codes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/doc/examples/bench.cpp b/doc/examples/bench.cpp
index 5378b3e6a..48ba5b48c 100644
--- a/doc/examples/bench.cpp
+++ b/doc/examples/bench.cpp
@@ -28,7 +28,7 @@ const std::string algos[] = {
"GOST",
"IDEA",
"KASUMI",
- "Lion(SHA-256,Turing,8192)",
+ "Lion(SHA-256,Salsa20,8192)",
"Luby-Rackoff(SHA-512)",
"MARS",
"MISTY1",
diff --git a/doc/relnotes/1_11_3.rst b/doc/relnotes/1_11_3.rst
index 277b670da..50ef471cf 100644
--- a/doc/relnotes/1_11_3.rst
+++ b/doc/relnotes/1_11_3.rst
@@ -8,6 +8,8 @@ Version 1.11.3, Not Yet Released
:cpp:class:`Key_Length_Specification` so the full details of what
keylengths are supported is now available in keyed filters.
+* The
+
* New functions for symmetric encryption are included in cryptobox.h
* A new function :cpp:func:`algorithm_kat_detailed` returns a string
diff --git a/src/engine/core_engine/lookup_stream.cpp b/src/engine/core_engine/lookup_stream.cpp
index 50e246756..683ee6b8c 100644
--- a/src/engine/core_engine/lookup_stream.cpp
+++ b/src/engine/core_engine/lookup_stream.cpp
@@ -16,14 +16,6 @@
#include <botan/salsa20.h>
#endif
-#if defined(BOTAN_HAS_TURING)
- #include <botan/turing.h>
-#endif
-
-#if defined(BOTAN_HAS_WID_WAKE)
- #include <botan/wid_wake.h>
-#endif
-
namespace Botan {
/*
@@ -45,16 +37,6 @@ Core_Engine::find_stream_cipher(const SCAN_Name& request,
return new Salsa20;
#endif
-#if defined(BOTAN_HAS_TURING)
- if(request.algo_name() == "Turing")
- return new Turing;
-#endif
-
-#if defined(BOTAN_HAS_WID_WAKE)
- if(request.algo_name() == "WiderWake4+1-BE")
- return new WiderWake_41_BE;
-#endif
-
return nullptr;
}
diff --git a/src/stream/turing/info.txt b/src/stream/turing/info.txt
deleted file mode 100644
index feb00a92d..000000000
--- a/src/stream/turing/info.txt
+++ /dev/null
@@ -1 +0,0 @@
-define TURING
diff --git a/src/stream/turing/tur_tab.cpp b/src/stream/turing/tur_tab.cpp
deleted file mode 100644
index a2edd5a5e..000000000
--- a/src/stream/turing/tur_tab.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-* Tables for Turing
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/turing.h>
-
-namespace Botan {
-
-const byte Turing::SBOX[256] = {
- 0x61, 0x51, 0xEB, 0x19, 0xB9, 0x5D, 0x60, 0x38, 0x7C, 0xB2, 0x06, 0x12,
- 0xC4, 0x5B, 0x16, 0x3B, 0x2B, 0x18, 0x83, 0xB0, 0x7F, 0x75, 0xFA, 0xA0,
- 0xE9, 0xDD, 0x6D, 0x7A, 0x6B, 0x68, 0x2D, 0x49, 0xB5, 0x1C, 0x90, 0xF7,
- 0xED, 0x9F, 0xE8, 0xCE, 0xAE, 0x77, 0xC2, 0x13, 0xFD, 0xCD, 0x3E, 0xCF,
- 0x37, 0x6A, 0xD4, 0xDB, 0x8E, 0x65, 0x1F, 0x1A, 0x87, 0xCB, 0x40, 0x15,
- 0x88, 0x0D, 0x35, 0xB3, 0x11, 0x0F, 0xD0, 0x30, 0x48, 0xF9, 0xA8, 0xAC,
- 0x85, 0x27, 0x0E, 0x8A, 0xE0, 0x50, 0x64, 0xA7, 0xCC, 0xE4, 0xF1, 0x98,
- 0xFF, 0xA1, 0x04, 0xDA, 0xD5, 0xBC, 0x1B, 0xBB, 0xD1, 0xFE, 0x31, 0xCA,
- 0xBA, 0xD9, 0x2E, 0xF3, 0x1D, 0x47, 0x4A, 0x3D, 0x71, 0x4C, 0xAB, 0x7D,
- 0x8D, 0xC7, 0x59, 0xB8, 0xC1, 0x96, 0x1E, 0xFC, 0x44, 0xC8, 0x7B, 0xDC,
- 0x5C, 0x78, 0x2A, 0x9D, 0xA5, 0xF0, 0x73, 0x22, 0x89, 0x05, 0xF4, 0x07,
- 0x21, 0x52, 0xA6, 0x28, 0x9A, 0x92, 0x69, 0x8F, 0xC5, 0xC3, 0xF5, 0xE1,
- 0xDE, 0xEC, 0x09, 0xF2, 0xD3, 0xAF, 0x34, 0x23, 0xAA, 0xDF, 0x7E, 0x82,
- 0x29, 0xC0, 0x24, 0x14, 0x03, 0x32, 0x4E, 0x39, 0x6F, 0xC6, 0xB1, 0x9B,
- 0xEA, 0x72, 0x79, 0x41, 0xD8, 0x26, 0x6C, 0x5E, 0x2C, 0xB4, 0xA2, 0x53,
- 0x57, 0xE2, 0x9C, 0x86, 0x54, 0x95, 0xB6, 0x80, 0x8C, 0x36, 0x67, 0xBD,
- 0x08, 0x93, 0x2F, 0x99, 0x5A, 0xF8, 0x3A, 0xD7, 0x56, 0x84, 0xD2, 0x01,
- 0xF6, 0x66, 0x4D, 0x55, 0x8B, 0x0C, 0x0B, 0x46, 0xB7, 0x3C, 0x45, 0x91,
- 0xA4, 0xE3, 0x70, 0xD6, 0xFB, 0xE6, 0x10, 0xA9, 0xC9, 0x00, 0x9E, 0xE7,
- 0x4F, 0x76, 0x25, 0x3F, 0x5F, 0xA3, 0x33, 0x20, 0x02, 0xEF, 0x62, 0x74,
- 0xEE, 0x17, 0x81, 0x42, 0x58, 0x0A, 0x4B, 0x63, 0xE5, 0xBE, 0x6E, 0xAD,
- 0xBF, 0x43, 0x94, 0x97 };
-
-const u32bit Turing::Q_BOX[256] = {
- 0x1FAA1887, 0x4E5E435C, 0x9165C042, 0x250E6EF4, 0x5957EE20, 0xD484FED3,
- 0xA666C502, 0x7E54E8AE, 0xD12EE9D9, 0xFC1F38D4, 0x49829B5D, 0x1B5CDF3C,
- 0x74864249, 0xDA2E3963, 0x28F4429F, 0xC8432C35, 0x4AF40325, 0x9FC0DD70,
- 0xD8973DED, 0x1A02DC5E, 0xCD175B42, 0xF10012BF, 0x6694D78C, 0xACAAB26B,
- 0x4EC11B9A, 0x3F168146, 0xC0EA8EC5, 0xB38AC28F, 0x1FED5C0F, 0xAAB4101C,
- 0xEA2DB082, 0x470929E1, 0xE71843DE, 0x508299FC, 0xE72FBC4B, 0x2E3915DD,
- 0x9FA803FA, 0x9546B2DE, 0x3C233342, 0x0FCEE7C3, 0x24D607EF, 0x8F97EBAB,
- 0xF37F859B, 0xCD1F2E2F, 0xC25B71DA, 0x75E2269A, 0x1E39C3D1, 0xEDA56B36,
- 0xF8C9DEF2, 0x46C9FC5F, 0x1827B3A3, 0x70A56DDF, 0x0D25B510, 0x000F85A7,
- 0xB2E82E71, 0x68CB8816, 0x8F951E2A, 0x72F5F6AF, 0xE4CBC2B3, 0xD34FF55D,
- 0x2E6B6214, 0x220B83E3, 0xD39EA6F5, 0x6FE041AF, 0x6B2F1F17, 0xAD3B99EE,
- 0x16A65EC0, 0x757016C6, 0xBA7709A4, 0xB0326E01, 0xF4B280D9, 0x4BFB1418,
- 0xD6AFF227, 0xFD548203, 0xF56B9D96, 0x6717A8C0, 0x00D5BF6E, 0x10EE7888,
- 0xEDFCFE64, 0x1BA193CD, 0x4B0D0184, 0x89AE4930, 0x1C014F36, 0x82A87088,
- 0x5EAD6C2A, 0xEF22C678, 0x31204DE7, 0xC9C2E759, 0xD200248E, 0x303B446B,
- 0xB00D9FC2, 0x9914A895, 0x906CC3A1, 0x54FEF170, 0x34C19155, 0xE27B8A66,
- 0x131B5E69, 0xC3A8623E, 0x27BDFA35, 0x97F068CC, 0xCA3A6ACD, 0x4B55E936,
- 0x86602DB9, 0x51DF13C1, 0x390BB16D, 0x5A80B83C, 0x22B23763, 0x39D8A911,
- 0x2CB6BC13, 0xBF5579D7, 0x6C5C2FA8, 0xA8F4196E, 0xBCDB5476, 0x6864A866,
- 0x416E16AD, 0x897FC515, 0x956FEB3C, 0xF6C8A306, 0x216799D9, 0x171A9133,
- 0x6C2466DD, 0x75EB5DCD, 0xDF118F50, 0xE4AFB226, 0x26B9CEF3, 0xADB36189,
- 0x8A7A19B1, 0xE2C73084, 0xF77DED5C, 0x8B8BC58F, 0x06DDE421, 0xB41E47FB,
- 0xB1CC715E, 0x68C0FF99, 0x5D122F0F, 0xA4D25184, 0x097A5E6C, 0x0CBF18BC,
- 0xC2D7C6E0, 0x8BB7E420, 0xA11F523F, 0x35D9B8A2, 0x03DA1A6B, 0x06888C02,
- 0x7DD1E354, 0x6BBA7D79, 0x32CC7753, 0xE52D9655, 0xA9829DA1, 0x301590A7,
- 0x9BC1C149, 0x13537F1C, 0xD3779B69, 0x2D71F2B7, 0x183C58FA, 0xACDC4418,
- 0x8D8C8C76, 0x2620D9F0, 0x71A80D4D, 0x7A74C473, 0x449410E9, 0xA20E4211,
- 0xF9C8082B, 0x0A6B334A, 0xB5F68ED2, 0x8243CC1B, 0x453C0FF3, 0x9BE564A0,
- 0x4FF55A4F, 0x8740F8E7, 0xCCA7F15F, 0xE300FE21, 0x786D37D6, 0xDFD506F1,
- 0x8EE00973, 0x17BBDE36, 0x7A670FA8, 0x5C31AB9E, 0xD4DAB618, 0xCC1F52F5,
- 0xE358EB4F, 0x19B9E343, 0x3A8D77DD, 0xCDB93DA6, 0x140FD52D, 0x395412F8,
- 0x2BA63360, 0x37E53AD0, 0x80700F1C, 0x7624ED0B, 0x703DC1EC, 0xB7366795,
- 0xD6549D15, 0x66CE46D7, 0xD17ABE76, 0xA448E0A0, 0x28F07C02, 0xC31249B7,
- 0x6E9ED6BA, 0xEAA47F78, 0xBBCFFFBD, 0xC507CA84, 0xE965F4DA, 0x8E9F35DA,
- 0x6AD2AA44, 0x577452AC, 0xB5D674A7, 0x5461A46A, 0x6763152A, 0x9C12B7AA,
- 0x12615927, 0x7B4FB118, 0xC351758D, 0x7E81687B, 0x5F52F0B3, 0x2D4254ED,
- 0xD4C77271, 0x0431ACAB, 0xBEF94AEC, 0xFEE994CD, 0x9C4D9E81, 0xED623730,
- 0xCF8A21E8, 0x51917F0B, 0xA7A9B5D6, 0xB297ADF8, 0xEED30431, 0x68CAC921,
- 0xF1B35D46, 0x7A430A36, 0x51194022, 0x9ABCA65E, 0x85EC70BA, 0x39AEA8CC,
- 0x737BAE8B, 0x582924D5, 0x03098A5A, 0x92396B81, 0x18DE2522, 0x745C1CB8,
- 0xA1B8FE1D, 0x5DB3C697, 0x29164F83, 0x97C16376, 0x8419224C, 0x21203B35,
- 0x833AC0FE, 0xD966A19A, 0xAAF0B24F, 0x40FDA998, 0xE7D52D71, 0x390896A8,
- 0xCEE6053F, 0xD0B0D300, 0xFF99CBCC, 0x065E3D40 };
-
-}
diff --git a/src/stream/turing/turing.cpp b/src/stream/turing/turing.cpp
deleted file mode 100644
index 8d9b6f090..000000000
--- a/src/stream/turing/turing.cpp
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
-* Turing
-* (C) 1999-2008 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/turing.h>
-#include <botan/loadstor.h>
-#include <botan/rotate.h>
-#include <botan/internal/xor_buf.h>
-
-namespace Botan {
-
-namespace {
-
-/*
-* Perform an N-way PHT
-*/
-inline void PHT(secure_vector<u32bit>& B)
- {
- u32bit sum = 0;
- for(size_t i = 0; i < B.size() - 1; ++i)
- sum += B[i];
-
- B[B.size()-1] += sum;
-
- sum = B[B.size()-1];
- for(size_t i = 0; i < B.size() - 1; ++i)
- B[i] += sum;
- }
-
-}
-
-/*
-* Combine cipher stream with message
-*/
-void Turing::cipher(const byte in[], byte out[], size_t length)
- {
- while(length >= buffer.size() - position)
- {
- xor_buf(out, in, &buffer[position], buffer.size() - position);
- length -= (buffer.size() - position);
- in += (buffer.size() - position);
- out += (buffer.size() - position);
- generate();
- }
- xor_buf(out, in, &buffer[position], length);
- position += length;
- }
-
-/*
-* Generate cipher stream
-*/
-void Turing::generate()
- {
- // Table for Turing's polynomial multiplication
- static const u32bit MULT_TAB[256] = {
- 0x00000000, 0xD02B4367, 0xED5686CE, 0x3D7DC5A9, 0x97AC41D1, 0x478702B6,
- 0x7AFAC71F, 0xAAD18478, 0x631582EF, 0xB33EC188, 0x8E430421, 0x5E684746,
- 0xF4B9C33E, 0x24928059, 0x19EF45F0, 0xC9C40697, 0xC62A4993, 0x16010AF4,
- 0x2B7CCF5D, 0xFB578C3A, 0x51860842, 0x81AD4B25, 0xBCD08E8C, 0x6CFBCDEB,
- 0xA53FCB7C, 0x7514881B, 0x48694DB2, 0x98420ED5, 0x32938AAD, 0xE2B8C9CA,
- 0xDFC50C63, 0x0FEE4F04, 0xC154926B, 0x117FD10C, 0x2C0214A5, 0xFC2957C2,
- 0x56F8D3BA, 0x86D390DD, 0xBBAE5574, 0x6B851613, 0xA2411084, 0x726A53E3,
- 0x4F17964A, 0x9F3CD52D, 0x35ED5155, 0xE5C61232, 0xD8BBD79B, 0x089094FC,
- 0x077EDBF8, 0xD755989F, 0xEA285D36, 0x3A031E51, 0x90D29A29, 0x40F9D94E,
- 0x7D841CE7, 0xADAF5F80, 0x646B5917, 0xB4401A70, 0x893DDFD9, 0x59169CBE,
- 0xF3C718C6, 0x23EC5BA1, 0x1E919E08, 0xCEBADD6F, 0xCFA869D6, 0x1F832AB1,
- 0x22FEEF18, 0xF2D5AC7F, 0x58042807, 0x882F6B60, 0xB552AEC9, 0x6579EDAE,
- 0xACBDEB39, 0x7C96A85E, 0x41EB6DF7, 0x91C02E90, 0x3B11AAE8, 0xEB3AE98F,
- 0xD6472C26, 0x066C6F41, 0x09822045, 0xD9A96322, 0xE4D4A68B, 0x34FFE5EC,
- 0x9E2E6194, 0x4E0522F3, 0x7378E75A, 0xA353A43D, 0x6A97A2AA, 0xBABCE1CD,
- 0x87C12464, 0x57EA6703, 0xFD3BE37B, 0x2D10A01C, 0x106D65B5, 0xC04626D2,
- 0x0EFCFBBD, 0xDED7B8DA, 0xE3AA7D73, 0x33813E14, 0x9950BA6C, 0x497BF90B,
- 0x74063CA2, 0xA42D7FC5, 0x6DE97952, 0xBDC23A35, 0x80BFFF9C, 0x5094BCFB,
- 0xFA453883, 0x2A6E7BE4, 0x1713BE4D, 0xC738FD2A, 0xC8D6B22E, 0x18FDF149,
- 0x258034E0, 0xF5AB7787, 0x5F7AF3FF, 0x8F51B098, 0xB22C7531, 0x62073656,
- 0xABC330C1, 0x7BE873A6, 0x4695B60F, 0x96BEF568, 0x3C6F7110, 0xEC443277,
- 0xD139F7DE, 0x0112B4B9, 0xD31DD2E1, 0x03369186, 0x3E4B542F, 0xEE601748,
- 0x44B19330, 0x949AD057, 0xA9E715FE, 0x79CC5699, 0xB008500E, 0x60231369,
- 0x5D5ED6C0, 0x8D7595A7, 0x27A411DF, 0xF78F52B8, 0xCAF29711, 0x1AD9D476,
- 0x15379B72, 0xC51CD815, 0xF8611DBC, 0x284A5EDB, 0x829BDAA3, 0x52B099C4,
- 0x6FCD5C6D, 0xBFE61F0A, 0x7622199D, 0xA6095AFA, 0x9B749F53, 0x4B5FDC34,
- 0xE18E584C, 0x31A51B2B, 0x0CD8DE82, 0xDCF39DE5, 0x1249408A, 0xC26203ED,
- 0xFF1FC644, 0x2F348523, 0x85E5015B, 0x55CE423C, 0x68B38795, 0xB898C4F2,
- 0x715CC265, 0xA1778102, 0x9C0A44AB, 0x4C2107CC, 0xE6F083B4, 0x36DBC0D3,
- 0x0BA6057A, 0xDB8D461D, 0xD4630919, 0x04484A7E, 0x39358FD7, 0xE91ECCB0,
- 0x43CF48C8, 0x93E40BAF, 0xAE99CE06, 0x7EB28D61, 0xB7768BF6, 0x675DC891,
- 0x5A200D38, 0x8A0B4E5F, 0x20DACA27, 0xF0F18940, 0xCD8C4CE9, 0x1DA70F8E,
- 0x1CB5BB37, 0xCC9EF850, 0xF1E33DF9, 0x21C87E9E, 0x8B19FAE6, 0x5B32B981,
- 0x664F7C28, 0xB6643F4F, 0x7FA039D8, 0xAF8B7ABF, 0x92F6BF16, 0x42DDFC71,
- 0xE80C7809, 0x38273B6E, 0x055AFEC7, 0xD571BDA0, 0xDA9FF2A4, 0x0AB4B1C3,
- 0x37C9746A, 0xE7E2370D, 0x4D33B375, 0x9D18F012, 0xA06535BB, 0x704E76DC,
- 0xB98A704B, 0x69A1332C, 0x54DCF685, 0x84F7B5E2, 0x2E26319A, 0xFE0D72FD,
- 0xC370B754, 0x135BF433, 0xDDE1295C, 0x0DCA6A3B, 0x30B7AF92, 0xE09CECF5,
- 0x4A4D688D, 0x9A662BEA, 0xA71BEE43, 0x7730AD24, 0xBEF4ABB3, 0x6EDFE8D4,
- 0x53A22D7D, 0x83896E1A, 0x2958EA62, 0xF973A905, 0xC40E6CAC, 0x14252FCB,
- 0x1BCB60CF, 0xCBE023A8, 0xF69DE601, 0x26B6A566, 0x8C67211E, 0x5C4C6279,
- 0x6131A7D0, 0xB11AE4B7, 0x78DEE220, 0xA8F5A147, 0x958864EE, 0x45A32789,
- 0xEF72A3F1, 0x3F59E096, 0x0224253F, 0xD20F6658 };
-
- /*
- I tried an implementation without precomputed LFSR offsets, since
- I thought that might allow (especially on x86-64) the use of leal to
- compute all the offsets.. However on my Core2 with GCC 4.3 it
- turned out significantly slower (238 Mib/s, versus 300 Mib/s
- with precomputed offsets)
-
- I also tried using byte vs u32bit for the offset variable (since
- x86 memory addressing modes can be odd), but it made things even
- slower (186 Mib/s)
- */
- static const byte OFFSETS[221] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 15, 16,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 2, 3, 4,
- 10, 11, 12, 13, 14, 15, 16, 0, 1, 5, 7, 8, 9,
- 15, 16, 0, 1, 2, 3, 4, 5, 6, 10, 12, 13, 14,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 0, 1, 2,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 3, 5, 6, 7,
- 13, 14, 15, 16, 0, 1, 2, 3, 4, 8, 10, 11, 12,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 15, 16, 0,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 1, 3, 4, 5,
- 11, 12, 13, 14, 15, 16, 0, 1, 2, 6, 8, 9, 10,
- 16, 0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 1, 2, 3,
- 9, 10, 11, 12, 13, 14, 15, 16, 0, 4, 6, 7, 8,
- 14, 15, 16, 0, 1, 2, 3, 4, 5, 9, 11, 12, 13,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 16, 0, 1,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 2, 4, 5, 6,
- 12, 13, 14, 15, 16, 0, 1, 2, 3, 7, 9, 10, 11 };
-
- for(size_t i = 0; i != 17; ++i)
- {
- const byte* R_off = OFFSETS + 13*i;
-
- u32bit R0 = R[R_off[0]];
- u32bit R1 = R[R_off[1]];
- u32bit R2 = R[R_off[2]];
- u32bit R3 = R[R_off[3]];
- u32bit R4 = R[R_off[4]];
-
- const u32bit R5 = R[R_off[5]];
- const u32bit R6 = R[R_off[6]];
- const u32bit R7 = R[R_off[7]];
- const u32bit R8 = R[R_off[8]];
- const u32bit R9 = R[R_off[9]];
- const u32bit R10 = R[R_off[10]];
- const u32bit R11 = R[R_off[11]];
- const u32bit R12 = R[R_off[12]];
-
- R[R_off[0]] = R0 = ((R0 << 8) ^ MULT_TAB[(R0 >> 24) & 0xFF]) ^ R11 ^ R4;
-
- u32bit A = R0;
- u32bit B = R10;
- u32bit C = R7;
- u32bit D = R2;
- u32bit E = R1;
-
- E += A + B + C + D;
-
- A += E;
- B += E;
- C += E;
- D += E;
-
- A = S0[get_byte(0, A)] ^ S1[get_byte(1, A)] ^
- S2[get_byte(2, A)] ^ S3[get_byte(3, A)];
- B = S0[get_byte(1, B)] ^ S1[get_byte(2, B)] ^
- S2[get_byte(3, B)] ^ S3[get_byte(0, B)];
- C = S0[get_byte(2, C)] ^ S1[get_byte(3, C)] ^
- S2[get_byte(0, C)] ^ S3[get_byte(1, C)];
- D = S0[get_byte(3, D)] ^ S1[get_byte(0, D)] ^
- S2[get_byte(1, D)] ^ S3[get_byte(2, D)];
- E = S0[get_byte(0, E)] ^ S1[get_byte(1, E)] ^
- S2[get_byte(2, E)] ^ S3[get_byte(3, E)];
-
- E += A + B + C + D;
-
- A += E;
- B += E;
- C += E;
- D += E;
-
- R[R_off[1]] = R1 = ((R1 << 8) ^ MULT_TAB[(R1 >> 24) & 0xFF]) ^ R12 ^ R5;
- R[R_off[2]] = R2 = ((R2 << 8) ^ MULT_TAB[(R2 >> 24) & 0xFF]) ^ R0 ^ R6;
- R[R_off[3]] = ((R3 << 8) ^ MULT_TAB[(R3 >> 24) & 0xFF]) ^ R1 ^ R7;
-
- E += R4;
-
- R[R_off[4]] = ((R4 << 8) ^ MULT_TAB[(R4 >> 24) & 0xFF]) ^ R2 ^ R8;
-
- A += R1;
- B += R12;
- C += R9;
- D += R5;
-
- store_be(A, &buffer[20*i + 0]);
- store_be(B, &buffer[20*i + 4]);
- store_be(C, &buffer[20*i + 8]);
- store_be(D, &buffer[20*i + 12]);
- store_be(E, &buffer[20*i + 16]);
- }
-
- position = 0;
- }
-
-/*
-* Turing's byte mixing step
-*/
-u32bit Turing::fixedS(u32bit W)
- {
- byte B = SBOX[get_byte(0, W)];
- W ^= Q_BOX[B];
- W &= 0x00FFFFFF;
- W |= B << 24;
-
- B = SBOX[get_byte(1, W)];
- W ^= rotate_left(Q_BOX[B], 8);
- W &= 0xFF00FFFF;
- W |= B << 16;
-
- B = SBOX[get_byte(2, W)];
- W ^= rotate_left(Q_BOX[B], 16);
- W &= 0xFFFF00FF;
- W |= B << 8;
-
- B = SBOX[get_byte(3, W)];
- W ^= rotate_left(Q_BOX[B], 24);
- W &= 0xFFFFFF00;
- W |= B;
-
- return W;
- }
-
-/*
-* Turing Key Schedule
-*/
-void Turing::key_schedule(const byte key[], size_t length)
- {
- K.resize(length / 4);
- for(size_t i = 0; i != length; ++i)
- K[i/4] = (K[i/4] << 8) + key[i];
-
- for(size_t i = 0; i != K.size(); ++i)
- K[i] = fixedS(K[i]);
-
- PHT(K);
-
- R.resize(17);
- S0.resize(256);
- S1.resize(256);
- S2.resize(256);
- S3.resize(256);
- buffer.resize(17*20);
-
- for(u32bit i = 0; i != 256; ++i)
- {
- u32bit W0 = 0, C0 = i;
- u32bit W1 = 0, C1 = i;
- u32bit W2 = 0, C2 = i;
- u32bit W3 = 0, C3 = i;
-
- for(size_t j = 0; j < K.size(); ++j)
- {
- C0 = SBOX[get_byte(0, K[j]) ^ C0];
- C1 = SBOX[get_byte(1, K[j]) ^ C1];
- C2 = SBOX[get_byte(2, K[j]) ^ C2];
- C3 = SBOX[get_byte(3, K[j]) ^ C3];
-
- W0 ^= rotate_left(Q_BOX[C0], j);
- W1 ^= rotate_left(Q_BOX[C1], j + 8);
- W2 ^= rotate_left(Q_BOX[C2], j + 16);
- W3 ^= rotate_left(Q_BOX[C3], j + 24);
- }
-
- S0[i] = (W0 & 0x00FFFFFF) | (C0 << 24);
- S1[i] = (W1 & 0xFF00FFFF) | (C1 << 16);
- S2[i] = (W2 & 0xFFFF00FF) | (C2 << 8);
- S3[i] = (W3 & 0xFFFFFF00) | C3;
- }
-
- set_iv(nullptr, 0);
- }
-
-/*
-* Resynchronization
-*/
-void Turing::set_iv(const byte iv[], size_t length)
- {
- if(!valid_iv_length(length))
- throw Invalid_IV_Length(name(), length);
-
- secure_vector<u32bit> IV(length / 4);
- for(size_t i = 0; i != length; ++i)
- IV[i/4] = (IV[i/4] << 8) + iv[i];
-
- for(size_t i = 0; i != IV.size(); ++i)
- R[i] = IV[i] = fixedS(IV[i]);
-
- for(size_t i = 0; i != K.size(); ++i)
- R[i+IV.size()] = K[i];
-
- R[K.size() + IV.size()] = (0x010203 << 8) | (K.size() << 4) | IV.size();
-
- for(size_t i = K.size() + IV.size() + 1; i != 17; ++i)
- {
- const u32bit W = R[i-K.size()-IV.size()-1] + R[i-1];
- R[i] = S0[get_byte(0, W)] ^ S1[get_byte(1, W)] ^
- S2[get_byte(2, W)] ^ S3[get_byte(3, W)];
- }
-
- PHT(R);
-
- generate();
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void Turing::clear()
- {
- zap(S0);
- zap(S1);
- zap(S2);
- zap(S3);
- zap(R);
- zap(K);
- buffer.clear();
- position = 0;
- }
-
-}
diff --git a/src/stream/turing/turing.h b/src/stream/turing/turing.h
deleted file mode 100644
index f2453127a..000000000
--- a/src/stream/turing/turing.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* Turing
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#ifndef BOTAN_TURING_H__
-#define BOTAN_TURING_H__
-
-#include <botan/stream_cipher.h>
-
-namespace Botan {
-
-/**
-* Turing
-*/
-class BOTAN_DLL Turing : public StreamCipher
- {
- public:
- void cipher(const byte in[], byte out[], size_t length);
- void set_iv(const byte iv[], size_t iv_length);
-
- bool valid_iv_length(size_t iv_len) const
- { return (iv_len % 4 == 0 && iv_len <= 16); }
-
- Key_Length_Specification key_spec() const
- {
- return Key_Length_Specification(4, 32, 4);
- }
-
- void clear();
- std::string name() const { return "Turing"; }
- StreamCipher* clone() const { return new Turing; }
-
- private:
- void key_schedule(const byte[], size_t);
- void generate();
-
- static u32bit fixedS(u32bit);
-
- static const u32bit Q_BOX[256];
- static const byte SBOX[256];
-
- secure_vector<u32bit> S0, S1, S2, S3;
- secure_vector<u32bit> R, K;
- secure_vector<byte> buffer;
- size_t position;
- };
-
-}
-
-#endif
diff --git a/src/stream/wid_wake/info.txt b/src/stream/wid_wake/info.txt
deleted file mode 100644
index f7333dede..000000000
--- a/src/stream/wid_wake/info.txt
+++ /dev/null
@@ -1 +0,0 @@
-define WID_WAKE
diff --git a/src/stream/wid_wake/wid_wake.cpp b/src/stream/wid_wake/wid_wake.cpp
deleted file mode 100644
index 317613404..000000000
--- a/src/stream/wid_wake/wid_wake.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
-* WiderWake
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/wid_wake.h>
-#include <botan/loadstor.h>
-#include <botan/internal/xor_buf.h>
-#include <botan/internal/rounding.h>
-
-namespace Botan {
-
-/*
-* Combine cipher stream with message
-*/
-void WiderWake_41_BE::cipher(const byte in[], byte out[], size_t length)
- {
- while(length >= buffer.size() - position)
- {
- xor_buf(out, in, &buffer[position], buffer.size() - position);
- length -= (buffer.size() - position);
- in += (buffer.size() - position);
- out += (buffer.size() - position);
- generate(buffer.size());
- }
- xor_buf(out, in, &buffer[position], length);
- position += length;
- }
-
-/*
-* Generate cipher stream
-*/
-void WiderWake_41_BE::generate(size_t length)
- {
- u32bit R0 = state[0], R1 = state[1],
- R2 = state[2], R3 = state[3],
- R4 = state[4];
-
- for(size_t i = 0; i != length; i += 8)
- {
- u32bit R0a;
-
- store_be(R3, &buffer[i]);
-
- R0a = R4 + R3; R3 += R2; R2 += R1; R1 += R0;
- R0a = (R0a >> 8) ^ T[(R0a & 0xFF)];
- R1 = (R1 >> 8) ^ T[(R1 & 0xFF)];
- R2 = (R2 >> 8) ^ T[(R2 & 0xFF)];
- R3 = (R3 >> 8) ^ T[(R3 & 0xFF)];
- R4 = R0; R0 = R0a;
-
- store_be(R3, &buffer[i + 4]);
-
- R0a = R4 + R3; R3 += R2; R2 += R1; R1 += R0;
- R0a = (R0a >> 8) ^ T[(R0a & 0xFF)];
- R1 = (R1 >> 8) ^ T[(R1 & 0xFF)];
- R2 = (R2 >> 8) ^ T[(R2 & 0xFF)];
- R3 = (R3 >> 8) ^ T[(R3 & 0xFF)];
- R4 = R0; R0 = R0a;
- }
-
- state[0] = R0;
- state[1] = R1;
- state[2] = R2;
- state[3] = R3;
- state[4] = R4;
-
- position = 0;
- }
-
-/*
-* WiderWake Key Schedule
-*/
-void WiderWake_41_BE::key_schedule(const byte key[], size_t)
- {
- t_key.resize(4);
- state.resize(5);
- buffer.resize(
- round_up<size_t>(std::max<size_t>(8*4, DEFAULT_BUFFERSIZE), 8));
-
- for(size_t i = 0; i != 4; ++i)
- t_key[i] = load_be<u32bit>(key, i);
-
- static const u32bit MAGIC[8] = {
- 0x726A8F3B, 0xE69A3B5C, 0xD3C71FE5, 0xAB3C73D2,
- 0x4D3A8EB3, 0x0396D6E8, 0x3D4C2F7A, 0x9EE27CF3 };
-
- T.resize(256);
- for(size_t i = 0; i != 4; ++i)
- T[i] = t_key[i];
-
- for(size_t i = 4; i != 256; ++i)
- {
- u32bit X = T[i-1] + T[i-4];
- T[i] = (X >> 3) ^ MAGIC[X % 8];
- }
-
- for(size_t i = 0; i != 23; ++i)
- T[i] += T[i+89];
-
- u32bit X = T[33];
- u32bit Z = (T[59] | 0x01000001) & 0xFF7FFFFF;
- for(size_t i = 0; i != 256; ++i)
- {
- X = (X & 0xFF7FFFFF) + Z;
- T[i] = (T[i] & 0x00FFFFFF) ^ X;
- }
-
- X = (T[X & 0xFF] ^ X) & 0xFF;
- Z = T[0];
- T[0] = T[X];
- for(size_t i = 1; i != 256; ++i)
- {
- T[X] = T[i];
- X = (T[i ^ X] ^ X) & 0xFF;
- T[i] = T[X];
- }
- T[X] = Z;
-
- position = 0;
-
- const byte ZEROS[8] = { 0 };
- set_iv(ZEROS, sizeof(ZEROS));
- }
-
-/*
-* Resynchronization
-*/
-void WiderWake_41_BE::set_iv(const byte iv[], size_t length)
- {
- if(!valid_iv_length(length))
- throw Invalid_IV_Length(name(), length);
-
- for(size_t i = 0; i != 4; ++i)
- state[i] = t_key[i];
-
- state[4] = load_be<u32bit>(iv, 0);
- state[0] ^= state[4];
- state[2] ^= load_be<u32bit>(iv, 1);
-
- generate(8*4);
- generate(buffer.size());
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void WiderWake_41_BE::clear()
- {
- zap(t_key);
- zap(state);
- zap(T);
- zap(buffer);
- position = 0;
- }
-
-}
diff --git a/src/stream/wid_wake/wid_wake.h b/src/stream/wid_wake/wid_wake.h
deleted file mode 100644
index 501345011..000000000
--- a/src/stream/wid_wake/wid_wake.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* WiderWake
-* (C) 1999-2008 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#ifndef BOTAN_WIDER_WAKE_H__
-#define BOTAN_WIDER_WAKE_H__
-
-#include <botan/stream_cipher.h>
-
-namespace Botan {
-
-/**
-* WiderWake4+1-BE
-*
-* Note: quite old and possibly not safe; use XSalsa20 or a block
-* cipher in counter mode.
-*/
-class BOTAN_DLL WiderWake_41_BE : public StreamCipher
- {
- public:
- void cipher(const byte[], byte[], size_t);
- void set_iv(const byte[], size_t);
-
- bool valid_iv_length(size_t iv_len) const
- { return (iv_len == 8); }
-
- Key_Length_Specification key_spec() const
- {
- return Key_Length_Specification(16);
- }
-
- void clear();
- std::string name() const { return "WiderWake4+1-BE"; }
- StreamCipher* clone() const { return new WiderWake_41_BE; }
-
- private:
- void key_schedule(const byte[], size_t);
-
- void generate(size_t);
-
- secure_vector<u32bit> T;
- secure_vector<u32bit> state;
- secure_vector<u32bit> t_key;
- secure_vector<byte> buffer;
- size_t position;
- };
-
-}
-
-#endif