From 97b49013dd3191fa69550558bc194551204f923d Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Sun, 24 Nov 2024 19:18:34 +0000 Subject: [PATCH 1/2] Add a test --- .../okhttp3/internal/ws/MessageInflater.kt | 7 ++ .../ws/MessageDeflaterInflaterTest.kt | 72 ++++++++++++------- .../internal/ws/inflater_notworking.txt | 1 + .../okhttp3/internal/ws/inflater_working.txt | 1 + 4 files changed, 56 insertions(+), 25 deletions(-) create mode 100644 okhttp/src/test/resources/okhttp3/internal/ws/inflater_notworking.txt create mode 100644 okhttp/src/test/resources/okhttp3/internal/ws/inflater_working.txt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt b/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt index 382a2a4d9e51..ac0f02b475d6 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt +++ b/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt @@ -55,6 +55,13 @@ class MessageInflater( do { inflaterSource.readOrInflate(buffer, Long.MAX_VALUE) } while (inflater.bytesRead < totalBytesToRead && !inflater.finished()) + + println("a") + if (noContextTakeover && inflater.bytesRead < totalBytesToRead) { + val left = totalBytesToRead - inflater.bytesRead + println("b $left") + throw IOException("additional bytes ($left) after inflation") + } } @Throws(IOException::class) diff --git a/okhttp/src/test/java/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt b/okhttp/src/test/java/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt index 0d211115df85..5c14250b6f63 100644 --- a/okhttp/src/test/java/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt +++ b/okhttp/src/test/java/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt @@ -16,6 +16,7 @@ package okhttp3.internal.ws import assertk.assertThat +import assertk.assertions.hasMessage import assertk.assertions.isEqualTo import assertk.assertions.isGreaterThan import assertk.assertions.isLessThan @@ -26,10 +27,14 @@ import okio.Buffer import okio.ByteString import okio.ByteString.Companion.decodeHex import okio.ByteString.Companion.encodeUtf8 +import okio.FileSystem +import okio.IOException +import okio.Path.Companion.toPath import org.junit.jupiter.api.Test internal class MessageDeflaterInflaterTest { - @Test fun `inflate golden value`() { + @Test + fun `inflate golden value`() { val inflater = MessageInflater(false) val message = "f248cdc9c957c8cc4bcb492cc9cccf530400".decodeHex() assertThat(inflater.inflate(message)).isEqualTo("Hello inflation!".encodeUtf8()) @@ -39,19 +44,22 @@ internal class MessageDeflaterInflaterTest { * We had a bug where self-finishing inflater streams would infinite loop! * https://github.com/square/okhttp/issues/8078 */ - @Test fun `inflate returns finished before bytesRead reaches input length`() { + @Test + fun `inflate returns finished before bytesRead reaches input length`() { val inflater = MessageInflater(false) val message = "53621260020000".decodeHex() assertThat(inflater.inflate(message)).isEqualTo("22021002".decodeHex()) } - @Test fun `deflate golden value`() { + @Test + fun `deflate golden value`() { val deflater = MessageDeflater(false) val deflated = deflater.deflate("Hello deflate!".encodeUtf8()) assertThat(deflated.hex()).isEqualTo("f248cdc9c95748494dcb492c49550400") } - @Test fun `inflate deflate`() { + @Test + fun `inflate deflate`() { val deflater = MessageDeflater(false) val inflater = MessageInflater(false) @@ -64,7 +72,8 @@ internal class MessageDeflaterInflaterTest { assertThat(inflated).isEqualTo(goldenValue) } - @Test fun `inflate deflate empty message`() { + @Test + fun `inflate deflate empty message`() { val deflater = MessageDeflater(false) val inflater = MessageInflater(false) @@ -77,7 +86,8 @@ internal class MessageDeflaterInflaterTest { assertThat(inflated).isEqualTo(goldenValue) } - @Test fun `inflate deflate with context takeover`() { + @Test + fun `inflate deflate with context takeover`() { val deflater = MessageDeflater(false) val inflater = MessageInflater(false) @@ -92,7 +102,8 @@ internal class MessageDeflaterInflaterTest { assertThat(deflatedValue2.size).isLessThan(deflatedValue1.size) } - @Test fun `inflate deflate with no context takeover`() { + @Test + fun `inflate deflate with no context takeover`() { val deflater = MessageDeflater(true) val inflater = MessageInflater(true) @@ -107,7 +118,8 @@ internal class MessageDeflaterInflaterTest { assertThat(deflatedValue2).isEqualTo(deflatedValue1) } - @Test fun `deflate after close`() { + @Test + fun `deflate after close`() { val deflater = MessageDeflater(true) deflater.close() @@ -116,7 +128,8 @@ internal class MessageDeflaterInflaterTest { } } - @Test fun `inflate after close`() { + @Test + fun `inflate after close`() { val inflater = MessageInflater(false) inflater.close() @@ -126,26 +139,34 @@ internal class MessageDeflaterInflaterTest { } } - @Test fun `inflater left with deflated bytes`() { - val inflater = MessageInflater(true) - val message = "a49d079c1645b3af4185054ca0226657cc61747aba67a6dbb81851c48c0105b7677ac688110403ba6451322241c21a4882820898080b0292332288b02a12252b18106fd5f4bcbc7b57ee9dfde6e59c1f073fce39fb58535df5afeeeaea53de5f51adc690cac79d436d8b52e95b86296ddf609cb9060f4d66049e085d3770426939f52a45bfae2d6835e5ab99efbf67b5a9bc603efe3abba073fca7230afa55ae5c5cb9f22795e17faf389cf3e335ab2a0f5f35606cd0f1da821f2b37eadd6ec2d1d7dd5bb2b9f2b955dbf4b9eeab46057f553ec796d4322d5b1a4432cf6026b30c2ea463f8dc174e608ac095b4c6c8ff9970c4f4f2849d5fc75f19c291070935ebf47ea5c0fa49cfbf5fd7ac05175f3145b35effe6931bfffe22620d02d37302e21b240cb8c10200969eb40d251c93b94c58ae2b53b0ce99539ef591107fedbda62ceb096457ccfa751db4ebe91f1ca734eb7dc7bd384bb3fe3cf49d19f99f47ac44f120b485302c0f4cca18fcc9b31dd750be6216a3d4546e1abbae585a9e9546bf0e2f6bd767f64efa53b316362dd90cac1fdd77d8359a757d9317166bd616bd4f3ae2de8931ab0c815519be6d390653a16908ce841112cfb33de50be2b314ac5b569567d57f55b32cebe25eb71d5e10b156fa77d746601db7eda8aa9af5ead7bef941b322ea3113342b15b630293502e29806b38863788472c3093c19102b2042a814ac9d4a2bc0dae3b806d5356bf17db3b702eb9feb1a2d56116bc785cb3769d629434eb9ec87f1da5f15f13d1502ab4b815511d7f0a4470d607143c2028f047e0ad6373796676dd5127f1d5b96f5cab7cea819b33ef6cd1660b55fb67a6ad6f5530fecd1ac0576d32f6fd6ac1e15a607c1c0081cc73658188486241c5cc2717cc942d7b4549882b5d7f6f2aca33ec45f35fe2f7f6dd3f278cd5a625e8f6bebabd737dead59abd2a9ff68d64e27ae5ab8ef53cd6a07242422341cd784986583bf72df948619401c70946f858148c13a715f79d67fa35ffbcac681d7f38a6b6bd6a2a5477d07ac792b1a5ca25927bdb9f8f06322d63a807ab7667585cda84994617af0e5992dc107946b1b9632854b2c26fd90d518f63fb36efceac788f5c683acc70f9b0bfffdfc3519d0b1cbf3eb68d0d2df57af05d06ee7e6dda4419fff69696cd47b8f31c60d1a1e814aa542c7b589e1fa3e3198e32a4358be6710669baecd5d5b9a4e0ad069337efc7f24820ce831ed8f39398e000f8f5c8f9efa52bfc7e355b576dd1f1af47e317ef60bc37404701dc7735c661042194456cf3684cb4cf847df76996b33c7e12940fbcc2b0ffa4e7ffc55e520e8f631ef9f1a7ffa0b97a29b5e7ac5a2fe1ab4e19f17eed2a0b53fbee9c7973e88401d65525bd9f0d51d3b30180150ce3d6658927a0a72ab24be4a01fae9d224d0337effe1f41874acf809406f9ad478ba06bdb0ed295b3428acfca30e7b3f02653c14548109a513c2dab7986fc8102481e93a3e18d9f299f2d280ae4a02eddbe7b8fcf8d31fc910b4fb37a55b3568d14f87ffac4127eef96779ab772350213dd765b0840825f0e94dc7021f85bc058854419cf285e9a600fdac3409f4a66fedb33468c1cf4f22e8b2cbaad6d6596a75c3cbbfd7a00796b7da7c9e067520f95b1e1853626e62a60b19954248a5d233a509da824a3305e8e48d49a02f7ff0505d0d5a78abda80a1f4d326576b5077c6e4a56524556c51169a66a8a4c15d071cd50cc0a21804a4ed04420ac99c543e5ab43309b4dee6e967c7f9a94f215af446d5eb190d1ad67b68b6067df904584defe9551f9a14fdd480900fb9141cc0f0a8cd0d3fa0a12f7ce9d0c04e01da755f12e83bbb379d13fbe8d2b31074eee4c6fd35689dd76a4fd5a04f4c6adefb24bdea6189138f111b12a90b16e50a44aa0c218e3a3e737dea8352252940db1d4802fdead823cf8bb3a8dc8de169ebafbda769d0817337c6ca7fec738ff6dca64161b1533f7084416c0ae12910dc10d20a0cfcf25c12c7f2ad34abbe77879f124057da179daf41f3dfe9fe0b802ee875e2660ddaf796bb466bd0b39074a896518e02ef0ce15b7ba0fbc0b40128281e400a05c9ef8346f5022b05e8f75dcb830e2807daf9b27617c48b69dab5f8e9f76d7aeba430026dffceaa620d3ae705507c3a85061e57b6f46131510229940b6670878506f7b8a342e610f88714a01bde4ab2e89007875f18fbe88fd3570268ed16cd0a3468feec37dfd6a0bb9736f46a8ed09f9e9850eec18f86ac0e9f5e86204a3cee81a6167628290f6c37cdaa1fdf3fc9a2c39f0b2e8a577dc76831dddb6d46630dbaab6f9b1e1ad4ab09d95e835a14543dc83ac373c18e8c58209ed165a1a822cc02a1a2c234ab7e787192456bbdd9e9e218f4887db8989a9f32a8ad06adfae8c48e1ab4f097c575bf1fa9037e10babea0ae21010b52a8e420f33c6e50c84bc40921ae7a69403f1b9e04fae0dfc32e8933d3a7db11f4fc85fc430dda533aad35e81d5dfb3e75dca808d4771509a50b651e056342216a1b5e0011d50d3c9b42e6572149b398a67e9c04da7dc34c230e4f5ffd80a0227c6f89069db4acd3f31af4edeb203569500aab1e8a4f050a2f927910eb2583146a0a934375eada106653802e9f9004da60facf97c6eae9ce1710b4e5cedd7f68d0bf36fefe98067da8fbf4df2f181dfb28130131b9410217aa119751f8f40a48a02275cdd071203fa5019d9404ea9ffff765b18fb6aeb709b74f58db331f8940afdfb9b4b04c39aa414d0131dda5ca70a42b01148a3dd04b1284b310f09f385cb85e8d81ff33e8ef33cb83ea2d89bc0c68d1e02153cd383cfd31f567001d4dd7dca341afbc74dedd088a7624b665e30ff4a8076b3d84a0c4518a5aa11f7a96c94ca5d204a5ce0bcae35d1ffdaa7610afe99026240ef31defc70264c3e92f1769bc3eb35ebcb94ce2d476e4a1ef7362c1cf67123f7800528470585184435c0d7c4e799ab5de76797950fda72c684fbf9215aff5b33e44d02ead1eff4883d659b9f26a0d7aabdbb95ee147da335d2b10ae250c09e53158d4b620cc83845220e85dd39752b0344ba8ebf749167d67fcd01834bf766f04bd64f651df6bd0c61755671ab4b1ba62dded1ad42696ed06a0946c47403e3239ca6565810a1590a53c504da92c3af4a7248b5edff0161a2fa1b3db21e80b3f76abf66804fae533c1851af4b8762573dfd5a0a6e5095f29d73003862a9439a09920320556e0fbbea72871d354f3ef6d4e0295e1f618b4e4a25b31711e5d5ad7d1a0579f73ce991ab4e7b657aeb13fd69f9eb8e092f0c16dcb2358d259f0f3152c2bcb0e01d574b99b26cc7fb92309f4b36f8a58bcd65b2e418b9e273f6eaa4167dcb8a0b6063db3c3d63b3fd7a0dc051ecec184cc0450507a86f0ecd0f04c28433c3b307d2ed380ee4d027dfaeef3ed7831f5588aa0fe192bba68d0634f708ed4a0f57f7ce9848fc7681f356dc7f404e87a8945720024dcf51d03fe634ea56331cf4eb33ff2f93f49a0bb362e88410b6f1e87a04d6efae34b0ddafd9cb72a69504cf0edc66a7107e2c38732d3a00c3f3d3aaaa42eac7a5351014e6a87619a4f3fa1fdcf09a057bef4bc13ef382d3a6c4324977fdda4411b5f67ec3d2a024583def489dec6138284dc27060d1d88a39e0015ea5b8ee1084e14a126f5dc349ffef337cb83eaedfc9a0741bfea71b61b67f8cf2ffd1540bfde3df6e4c722d0a7bfdbb64583aebb1d6c3a4e7f7adb152480a0e4da189e6c9f1b9c30d47a92d8ccb14c47a6d1f50b7a95075dfb03fe3afe20e86b55abf0d847db36db06a0758d1beed7a04d8d196b3468b38d7f8fdca541cdd083c80e4b489a5480b813caf0ac2030a8edbaa1c325d6ca2940bfeb571e343268784236333db73306adf4cc3bb88b7f64d539fd35280d6f5ca8417f38a76a9b3e7a5754423af7a56d1a208f20713aa0943d9702097560c1abd0b7cd347b785f0d4a02ad75db47220ef8f58622e83337dcba5083ae18d16bfa515971373ece4c50780640c62d819ac9b60dee836686c203521605dc200d68b7f79240cf68f5f8e5710a9df61c82761e32f9b0c723d0f3baf4997854b648d6e722a132b972611d11c94133db782e224ccf703d4b988a99962bd27cfaadc39240cf3fe6bc2be24fffd9e3083af8de858e06bdb2d1fc0f35a8316ed08ee1fab0c963603f492dc3b1388627dcbe75a86384a6b282d073942fd3a4d055a39240d7f93fc6a0c52b662368a53d3b1fd7a06734ba6188063d033393065526eedb209925e1d353020588c32d8856c285f21997589a3dbc29639340bb7c38e4ca388e76ed82a0d7b1fd4334e8e0bd9ff7d6a0e8a20f7da641a9257d2fa4866912c84c7830227d08022144022142e6f82c4d01b27d7c12e8dfc73c74551c9e16ef47d097daf45bae416f379abfae4171e37e8a060d29377d0fcaf750e0a71710fa3d3ccac30d088b3b9c3b2a4dc05ffa451268ebdf4fbd3af6d1b5b760a574f1d5f56a3c11813ebbe5e4d61af4f3e8db6b8bcac0230ea8100571c8603e887bae2c05829ff0d05366c8599a5264c9d424d066b7aecd801e3b61079e86de36a340832e51bf3eab415f7b7c52f3de3128f15d9b5382bbcb3ed69ec4e002a2950a85f0a44d38b5d264a6b93392407ff9edfb6b621f3def46b4e887d36675d2a0ebbbd5f235e875d9a37b3c0e777c9b199c5117563d142582e1260935413a115b8434cd621a3c2701b4e098e36f2f88e3e853ffa08f367abeee140ddaf6ecb1f769d01a2bdf7fe6aa2ff55988297db06a60d86042544fa12140f1410905eb3e04494d52ed331f5890005a32abda9818b4b8ed9968d1f0b33ff768d029fb47deaa4197d4fdfecf573528f195e52b06d5bc63032887340f7ac9342cdbf142538ad0a16956fddca549165dd2f1d87a7129f25e31aaa7f52f3c75d1935a9454a2d76a505cf443628b2a45022f60862f433cb40109e551cb83802f5c492815d44a7368d3f7bb24d087aab7cd80de7e155ab4cdd2f98f6bd09b4fbcd1fe0fa8042c2ef1a77a21881209c59d0c42dfa09e2740e5719fb3340a7fe59a24d0770efc1483965efc6f14471fbbfc5d0dda78f9651769d061efccc81fab416dcf097d223d43211e73391edac08a321d5b8501fc2538409ad3a51f937cf496bfafbd362e451add8616ddfdd3b66f35687efbb567685008a26774d0cd455e6072c737438352dcc3b3030a291412be345d1532db76682ae1fce686248b16b30f62d092a338fa6878e73d4737d3019f3e71bc06bd06bb1f26e99d7b06e5b2a920c3871453a863e306846b282f144e1050f8ab3435d38cad49a0cb4ea87d5dbcea3b73b4a81ab8e0560dfac17d5f542da34727c5c7605660c900ddd3f6b055077e3e0399673a21610c3771c32005688f9d499ffecfbd2d62d0fcbd2ada7b3ab76e3b0dba3eef8dbf8f8c406fc3ad7b0d0ad9d364603ac3774df8f9a6c70c5855f09b6da2f2972450694007fc9664d1a56f7c138396e45d16ed8a0e9a3756831e76d7de5d4796fff41678a4172a3c490c259e801243ba0c77215c474135e2433c4d01daffcf24d05d375e707dac9edeae8ca02bda4ddda041dbcf2dd87064b6f369b2cef50ef86214e603058b29e0b08e7ca899418e5261bbcab2bd3416ddf94f12e82d0d5f8f414bee7c1a414f7bf4e2d39e8a402f5eefafd6a0d8f1f2b306f5430af51b4426078fea9803099f130f559f0deadef71d926a43fcddb6eb13407bd6d81283963e3b00e3e8f42756dda5418f5ebf66a106c5cdbc1ba6c46721c20b42c734b07bd0600c4589eb480332a70c848701218dccfbab630268c9fdcdebdf102fa6a617a1459b34d8d55183aefcbbe5740d8adba35da76a5088f7d2525085ba104299eb4166928c1a812ffc90bb129658aa52e4cd248b2e397d640c5a5a772882fa577f394983defdd71b138fcc763d96e80d08084dd283724946e189bb0a904d612887815a11cc52244dc0efdd2bc9a20f8d3bf2c67831553b7f2780cefa48edd1a04f2c3ce6430dfacc5520f4342878267c65c20c0a1a047cd494d8aa01ab9e820350e27b2248734abff8ed24d0c15bbac4a0250b1b685172ce154febccd467757f0d3a625603b7f334ad9e84e34b0575bd2f2c0025240079629a06e5be051594434c3f8d1efdf89d24d055276fcf80de733e8232ebd26735688bdef3ba6ad0bbb068d2a01e01f90961dd7084079f9e04e8049e322ce17a80ed868aa69179ab8724815ef2d96d37c5a2a46e7d047dbcceda611a74d2b9256d34687422f575bced286dc161c1438524f0743134b8431ca89e1527c40bc083d384a7dd1f242da6892bc764408542d0d35b6e5ca341b75d3dadc591d94d320dea861c16be074ee9c36f8c82b8972ab00d507e50a02ad30e599a80df6f6479507d4a5ffba045df79b456fd78d59b9b1074e3a94f1dff8ceecb9e79cee31a7411c4fba11a34082d02d5926bf814db098489ab1ebb9d1c6c200e25f5699abda7ee1f1f1af4c483167db87a8b18b4f0d39ad8e47ac79255b768d0165d96353932dbecae41891080e852c373801604283324e5c40809a126332dc1ec347174edb8f2a0fa4f27667df4d61f62d092278762e7f06bcfb76caf41f79c77f31d1af4c5cde7916a33b47a821fc9852f0cdb41f52404faa88d4da4240c154428284c52800efaecd016ad731074dd8f0d6e8ee3e8cc91bb01f4895f474fd3a057763ef15a0dfa0106526d51098a9378908a5c0aa52893e0a81ee1a04785e358b632a569a7d9cd1b3f3909b4baf9630c5a74e477a8f0bf9d33fff86723d057ff3deed2ff5ad453261ed140cd8487b60c7bdc04c70e081faf3f0808b269727db7e949a06e8f7b6e8917d32351b9bc43d5bc5b833ebdb3c1191a14d7d23b1a54588e4302022674030b6b264c4a0e354c854d2f76e85ba91a34d6ce4a002d5859eb9b18b498fb087ad491eff6d4a0eea006c76850dc223b63a6ae421dca20964af04c0740c18406f7890d6b8b332fa4ae6da712258be62559f48bc1bc41bcea0b0620a87374d7451ab4ced7571fa8913d5dd6a0d433456849289299c23e5cee189e459511286e42916f53eea6094fef2d4eb2e85779a362d0d27f2c046525bb8f7e4ed74c37d6deae41dfbd61e29e7ff4a777b91782a4b7810c3b20b0a55d7201a0604f2b805294ca343eba67799245c72d3bf5d6588f1a9f2268b3332e6fa0411bbf35ef070d8ae2e9196d51474a8b05903d03214c6c22824f0fc60499474d17b49374641a1f9db52ac9a28f14778b410b077442d027970ce9ac41afbfe6ba051a341f4f45e24f4f98047d6c012854ca8c4164f27003da0b390fa5e93ba64a93ebc7ae4db2e8e229951ac601ffc8b608da61f9a26f34e8138b6b4eae916d2cd0a09eaf98674ac7e04188c7e082c2b20a4c03ca79c850beed7aa976f3466f4a02fd77d673316841affd07007458878faa3caf9bda2f7a69748d6ccd344b97cb16316d14ceb60ac147a120855c0fc1942bd783cf1f9020554f49df6d49a03d473d7e5ba6a97d1a5af4ec637b76d1a08d4eaed4598336c77a5983823d1da1e0a75a166e9750f8ea5c421e6512d2801041000e90a69d687712e8dde37ec8800e6f8ea07b161d3b4f83ee591bb4d2a0d8e2385b83862e91048a2323a044e0be8e6f08e9822811a0466540c169d39422f3f62681ee6a7ffbed31e8ea1041efadbdab5af30874cdb8aa8fd6c8de10f9266e7413849bf0034de1625d0f7a440a25404285c4e3c41242a4390bfdf0ef24d007f3a7c5a085af45a0e3469f7393061dfcc9fdf76bd0e8ffddec780fdf658113f8861fe261037825847e3cb4355d33908e727c914638b729fae5ff0f5a7c499393ef8803fece1710f4a2b7ea76d0a01d2f685c5f8362bc5f3e3beec8332d909c8141e17fe22541cc4cc2327ce9c37a92a113f254ad83ed13400b8f69705706b47a4b0455c6daaf352879e95aa141f1f466e41c2d4a1c6587c2b30de545a2c4770c893784889021b3380ddd54c5dd88ce09a0f975c59b19d05286a093be9871580b5d33bdfdcc4535b2ad1a73f54e89274cce6c6a10f8d4904271efc90679e2eae2947366a6faf4dd12404b7f7eefeb18b4e0af4eb801f1e277e7d5d3a08bf6ad3cb546f6b0418362fe64cc0f40d20bec150564dda0a5245552baa11da401ddda3b0974fef42a77663a9bfba245db9cdeec0d0d5a72c73f3534683d6c6d9ea7e328d4761e87a4c4a39ac90ca07a92be0d45a93203c7f14049a791796ff74bfaf4dfeebc3a062dd85e07418ff9e9ef391af4dabd53f7578f4031314dd4a026d64c7816e2d8be84388ac29901ad1de23a923638439a80bf6160d2aa1f97df3203bae82d04fde58e0baabd1081bed4f5a6ed1a14cf6c4f9aaf454948946b8300858f0c35136a666ebaae1148655954da01a169d4d3d877932c7ae72d6363d092376d041df0c0ce9b3468f5f35f2cad9e3d6cd0a0a11f40f94988a17c1e625b2608274e40a380cb069e6fdabe9506f4c36149167d74c2a68c459fbf1b41cffa6e72c718f4a63e4bab676ba6f9f139932d43905006917872475ddf906e20208e52d79210ee2d96a60a6d332ac9a2b73f74d65d7166ba388aa38f049b666ad0a68396cca89ead9916e89ac9e2c00ae2de5478cb569ae0a396c90da8f860358528fed204fc75639256fdd05b1ac7a0957ade151dda5ef4559596bab8db34f8b3ead91ee7f8d32b15b8361e36400502e1092293b4438ea7229e09f14049334d29327b7c12e8373b7ac5a0452591c25fb8acce0d1af4e93a977f583d5b8a688b522834956b79860217305868425d1f86bee1622f11e8275fd134a03f4c290faa77f34e39085affdf793168a9f547e58255954f1d7e78070d5a7befa6811ab40136632f883720b8f261d118be8fe1c9b140e6c122c2763290aa4aa950a5d9c87de7ebf2a0faaff20f82ae2b79f0eecc26d98adfc0a28f7d7df779adb4459baf7b598362743a62a14ea1c4869fcff0da22ac2858f5dc901e687d28f988436d28fa53dd5d2cfde6d0163deba028f9a8ce9818b4e88173f70268e98af1ed34e89a252d1ead9e6dd05a181f88a930c02229f4b1d1d585afce43cb326c028bdff499af2c9a02f4d7f9e541a33fcc3f68d1c2e33fcabb272e97ebd745d07a2f2edaa8415b6c7ba59106bdf9a8c32eee145b94daa60b49ddf089c02b813807004f9c5ca895a8134417995280162f39b445b39f9e3a853168a54d77fc0ea0f97dafbbf5457d8be9fcc2ebaa67abd005712799e930d7750cdb53109e7c3c10a7966d84d432a917da2ea36944c9ebdf9607d53744b2a0cb5e9c90b1e8b36bd1471faffbc0471ab4cef3632d0dfafd9faf3e3e697edc3fca19e851d3f01c5c4c36c3e617dccd253603dfc5dd9e34165db9fad0163df3e0a7efb7a75aa3d8a2bf3743d08e6f161ef592f6d1576eaf5b3d7bba3c3f3e6224dc9650d70578c4c430d64bcfa406e83d6cd41044f0341bb9a3d61dda474f3f08fae4a8c6316861adce7b70a7a44d83c734e8f36fe51da74171a4c2ddf3e2f676283a1c2e211f41e28c6eac8b405a884c4c45c071dd34abbecbfa437ffa83a0a59f2c1a1183961e57ed4f00fd69dbc0691a34bfed5d95ab672f02c7c219cf925de918548602af0412a89930a33abee971df15aef26b8ca82028af9c451db02501b5f09f1d47dd1b7be9d61037c7ff6df691f5b26ed6b860c2d66ad9a6b739f1fc0f4a054864dc69c6ab172480dc1440e9e405a1240e2402584e6950776e3fb49f9e76d0aa23dfbc37462de8791aa28e694b3a68d4ee79efafd6a818a14ed4a88a4b4f71ea41250acb88496c71a7583705be52449a8e079a340deae43d87ce4fd944bafd9fc119d40bb763e5d4a1f8a56f35ea61e3fe9853ad7c2dca5d2524eee4faa615b5c0088373811bfb2e073b83dca37e8d4ffe77d49bf51fce2d6835fc8f24e6de137f8a994b9a7d8c7d9a8f343fb6ee2b11f3b2a3867d512d7be6a85717e596f0992090fc0598d7057a8eeb8cc0e282b5e5104e457ae6225ad06afffe04e6c2a78faf7b5f9c5e7f3690f9ed8bf21ed3cc63f6acf85033e359d99bf3e3610b42715b8189436e63770403f56f7bb0da20bdfa52b1c0cfc1ce459717b4faa9cd86847d0ae7e9c298b9b8f13cbc00d1b2a4d5c79af9f93eafbf532ddb7514339bbe635b04043576f430970a9c1085c696c2c20baea00f7260bebaa0d5e88e09ccc55bab0c8c990b0e9f8a5d2873aa37dca599e76c9dd1b55af92a4b98262736c8184b6257b4a410257c100b26054777715b98b839f8734141ab9237ca33ebc896ad6376b79b1733e71f1fd5da45cddf3faf75c43cb27467dbffdad9262494d234a8e360273703314b2c6570266ce5fb612078901bf36fdd0e6de78367aa85278d3bfcfe98797dff3f7078c894ef02cdbc68cd032f54cb9eaecc8f6772d81ee85748c5b821c43c02b8d49646287dc6a8e70b419d1c7c0398e7f73db49d0f32978e3839bc3f73df70374ee6bac7aeb75c335ffddc848735333623d75814c70d42b9edba2071dde862a46308c8d4fa0e822f1d414d9a839df18ee4c004e6fc9dfff48f990bdd73f090fd964bfe39e6d588b9d9d973efa996bd8eb028eef7851fe847952dd48fcca2962184f20dcb25b6c7f1dfc8cec1cec8fc67717966fd57593b37bd7161cc5ce9a4f390f9f8e5d62d9af9be82ef6fae96dd315eac33b56b868ae1955edbc69d0e0a76e69e3028c7fd7866daa192b931cf1d9ac4dcadd7610fc4fe7c450d649e76f1e00e9a79dbee46d754cbf6fe6b66108fdc85b866b810d640039b50a205020a61df04b16eba4c7ab9e441dc9efd308139bfca7027662efaab12329fd2707389666e6c9c659791194be2fe30f82f61bb862b15cae1c0c5f86c1a81b040be7112c05fe7c6bcffe3247ffe6bc4e33173f12f7fe21a2c2e3c75bf6656d5375ea4999fc2aa483333e69b504942a0e0386dcc82aa43b81e5e060bb954a6efa234ca8979e7a709762e9c39707086f9a20bd1cee7376fe8bea65bd9af5f9e5f466f2c8b8f136de2999c1aaeef39d830480dae70b35978c273b9cd432707bd110d22fc3c81b9f8941d4b63e64abf8cc0e273ca19b73faf996f7c64489dff3007c4845a139235247113d6a00d718352d3e0d88e6b31df0d555063782eccff4e4d62feb8d7858d633bef3b05eddce961eb5bcddcb9be9b574d4f2ac031538e5202425a80078a8e32a4823a54f9dcb3b913e2bf496ed6fd794652261934bb494c5ad270337af123b7fe52ab484ffba9d7e79fbcecf6d30aed110ef7980702c31178ca08a904323661606cdbf6b0dc33458ecc2be62430178a777a66acfbf1bfc87cfa5d076ed5cca7dc346c8f66c60dfd3d9ad9a1a1cb41e01ba1cd7dbcd388ede32e287ddf06094a4cd3222437e6de0b933ce2ed013333ccc5f390f9ccab2e7c5d33bf62fa9b3533ce81f9f35b1d95a567894059a02db0e0f7c3d000d5e11bbe27e00b045e20448ecc7f2d4dca242bc99f3173d1abbf2373ff877e9dae9967cc69b42e2f7bb0bb52ab0c65736285a0e17c62617582bb004a192601bb0b4f5153e598b1f7ad4c625e7e9af160eccff91f21f311f9f71cd0cc9f9ef5fd0acdfce1aea50dbdef74af8c45a140213e643f54cd2ef80687786c58a129fcd0164c392a37e6f7d72445e5135b16c6cca55f7d86cc53cc2f799b88f940cf0fe669e67bb0b34b33130764a629205ae0700bc6b1a19b0b1fafe713c68462d2ca710dfe559a94b1bb6de89db173df1790f9e5f545cf6be6d3d6d49c9e97ed3f5ea5ed4c42cf531e312c818755509360ac03651438e033dc57c2c9d137a66d4c5a839397cdca307f74c12edc1decf3f2479af993c6b53fd7cc5175a09955105a82ba38aac182ca5581e6c7764a237471fa05c80f6ae5b806ffdc9ac4dcfc85231f8ad5dcef53d0ceacfba5fb3573e7abf68ecacbde3b5c1dc70ddba361e0193cdad124323404ce3cf23ddb0b49485cc82bb9312fd899a89a7fbb3a662e9cde0a9937eedae0b4d5b7f89bd6792f2fbb67f8bdde89b12554dba08c3c13cf5e4c3ccd001f3794194ae07284c973a95cb1bdf2f7243bfffccbb3193b5ff73432bf3179d1339af9b07d1bfb6a66526df4698dd7c4d58974090d95e1f200ec1c5a011e1a784660868c3233b47d2f97ca15af7afe9964e7c7667c1033178d6981ccab7effe343cd5c34bb6d37cd1ccdbbd576a6022a12d0a050b97af1e69cc4bd022864b9454d0bcaab1cedbce34012f3ec312b33be31f775646e7e3cfb453317fe51b78366c676dbd1dace960a7c6932c730395e4f65421a12db98850fc9c63215f7fc1c9927b4db98e01b4da6d56812c7e7c9ed90f9ee99cf9dd94e6fd69fd7e4e5bcecf1c70f7a0f3c0845407d6ac06f02bb5c206e40bc302ccfb53d87818c263c37e6aeaf273017ae9a7d55cc5ce9b4b6c87cc5eca90f68e6d27d2b9ecdcbb6b9ad8d8fbe852412ab40bc29c042c735bc300499678b403242b94973ac5c57754962aeb5e0990cf39423303effdd71596fcdbcabe1b24734f3a01dc3673558a7738a1380db72dbb0950d4a5f4aa8028503a1cfb285ef58ae2da49d1bf31fbd9298ab978e8f990bf2ee423b37acf5d28f9ab9d9f8a58df3b223014ab59da9e9390a0a408923f299a570449503a243726c91809428586eccebfb263097d669bf31662e1cd2235a83551e3fb57dc4ec75ec7e675ef63656691ceb42879a8c19663456cb0a6c30b1a246a83c6eda9871448e3b04930726adc17b879ed2345e83ab9b2273bdcf7f6da4991be65d5d3f2fbb1313db9931252c418c30c45dba301af10b199184787930b4992b725c837f1727f9c6517ec398b9800e42e677772ce9ae99f7bffbf6d59af994cb7e38a7ea8f9a993bc226c2343c81cd1202df2520d482e21bc246c049c8cd1cf546876149bef1dca0a28c9df78d8b72ca4b3de76ae6c6b7f6b0ffc36c7b0aefec3806b6c6437cc6a9a5cac6fe43eec37f1eba2497dd7d641ef761926f78878f8f99f37f8c7ce3a7e31fafd241ef3a5f7cfd2579d99d18cd6c412cf3f044c20d19e6146ce40e7c66b8b663391665c4f672b4f3476392ec7cceb40d4d33b7cd228d54a35ae36b34f385cb27d4cdcbded5ff29eea680301c400a0c399e483082ddbd10a97df06ca288675a34477fdef269923f3ff6c9c90fc7767efd1564fee29b4f5ed4ccb55eed7a725ef69ad4cf71630525cc76b96129ce70ca1d305b786b42722ea90392dfcd5123edfc22c9375efcf0d698b944edc253c1f14f9e3a5e335f7f74cb9a6534d2cff1ad3e9381dc77f1a01d621df70343e0ad3ee6f9f02f137009ab3037e60d5392988f7aa647cc5c74554bb4f3824fe757eea8bb6a7b353f222fdbb6b65eef86ba1e037d11424e09f0760283ba9bdbd85f276528097314c931777ffe751273a7a65f6798df6c86cc870dbcf84acd3ce735ffefaad9c630cd0c3e404d5706866545f52053385d926097bd25941904d2ce51d7bd3b3b8979b0d89b61be2bf2e72d835bbda0999f9852b8bb6a56d7fd12b75e512f60921854e1fd44df0f516fa0fa57be6d49f01c2747bd51b4208179f159fd4f288ce333ad8fccd685bf8dd5cc38375e33e348fe8b37eadd50e988d0247875de8ca6f839587753030a6e6182b6b66d2fc75de7314b1298c736fad188990b1f3a0f99d7ddb0758b66ee3ca06da966c62d999a9bb4de082c17821bce20c36b4136860c9c7a6f3a8eef4997322bccb186edff6d0273cd717937c5cc25d643c8bcbbef94733ac5f3278ff8ae6a761f49333b0133214d43d1eae029379427066a50c38592967097d8cacfd1cefb5727f9c67abf3066ceefff1c32ff7bc5faa69a79eb47d51655cd9efc68664e80c50f3d284c08be81c3f0425354814b1540ec2694e5b806a7ac4b60ded9fadb1733febce02a6cdb09be78a3bf666ebc63c92ccdbc0c5ce3fecdb1de80aac4371d83e21328cc91d1759cc04041e759ca5582e5b806db6d2ecfac9fc53978af79ecc9778dce308f5b82f79a3bdfb5fee8d77507c4731d276ae6ced8fbbe256ed4b6994d6dcf70a29b3984e1ed311cace842ac93ca659ce49807d76e2bcfacf7cc0f32f7987ff6cc98b9f8a3f9c8fcdce4d36fd2cc474fe8fd71d56ceedeaa3be354401983a2d509503f3bae803ac584c4425c4f318f03728efe3c6e7702b3f9d2ce1f62e64a276f41e6374eb9ba48332fb9a4f5b0aad9bbb9bfea3518862657168a22ec3d0b209d48139ff711606de693d0b373acad06ef4b62eebd7a6f86797c0764eed1eabd2f34f3ae4f9a0cae9acdddbfc6d7cb4217141d28231b5b658519e2e435d0a2cc0bc2c065d4e339daf997bf93986f2a3c56c671a3f547c83c77d9e5bb35f35f85a3deae9aed3edf16df2a778983ba4e5a04a38552905d085ee065ae441f0f72dd63fcbc68d3ff9ff98e19475f9061de330199675c655edc5977cc9fbeb39b663e020f273433acb430a050b9da0487c40600ce6d28c31d28690977029ab346eada2181f999cfbe2e88998b6fee1e0dbbab525d69e6f52b4777ac9aedf7ddae998330741936a173cc298ac2f20b3887e21bfe0b346aa0cc1ccf267eeb9cc05cb3f2dd0f64ecfcc403c8fceefc410335f32b4dc6bc5a357b6ea59943cbb56ccbc18b133891d183ecc225fca309558ae9a8d035cd1cebc1813d1298cd27473f9bb1f3ab97a2e66f73db84e59af93456f28266c606b52777c4f7fc4c5f107cf8cb757d3c99a7500f52658481af3c6211a855723c4f59f656926f3c56bd5786b9e11b913fd70ace7c2362be4cbef56499dcbd53e76e1e0416813c88276ba091203e7bbec4fb6aa1170a19f84e9863ee1edb3fc9373eebfd61cc5cf0ee83c85c50b9f2fd9a79d4dbf355d5ec79caae588b52dbb45c6240d003cdcfad10476461332b27a14b2cc79139fac694c14971e3fe1dd363e6c269d130bf053beeefa1998b9feed44433e3fcf3a6bbe381935438c2c1870171de83b2704f46020a0173bb78eb3257dfd8f35e02f3d8938def3376defb0832efacd27cb6663ef66675af66c6c1dd259ad9a6a6825ac4c4f723383e74c30d113262380af88240b832ccb13b66ccf004e69dc7f6d91333974cbc1f99cfac79a0d29bba71784693dbab6687d4ecd16b90072e780130dbd80b11a26f58a66d9824e08ee26690f33e5297d149769eb5ed482fb673cb68545149f1734233f7eed9a9be66c60ef2977ed37537f832a19e63043ec667eae0b437f82db02cd7979e03e12347e60d6393ec7c55ed7362e6a261ad90f9dc063d9fd5cc85534ebb563347ffd7bfc543d54ce5e36867db74f1062e880e2924c80f2c0721d6e18b48b931cf989014ebd677bd32662e0d2c8ccf1b9eedf9a1663ea5f6995756cddecdfa3dbe35ec62933efc6cd7c6bd2f0f67a9daa161418d2894032931d7dcbdebaba49c3276f7435ee6c24634b2f2b129fb7ed7cc7516ff43ab66cf53f6eaf8cca46786384297805062f85c067720820481b2035799c23473d4485f9424310fadd7c2cb4c0bf2a2dc7d728f4bbb44ccb356ec32aa66bb44f7692dea798c5aaec2f215a729e33886504a23747de6dabe09a5578e7a63c4cc247faef541d7cc1a9c2d917974db7a8f68e6d28dfdceaf9aed12d5ccb61f5a8eeddb86eb8638531f6718130ffe144a1feff3413d98e37e5dffb949765e5d655886f9a901c8fcd9d6dd433473d3fb6f384b33af680585ca1fba1ef421719bcc373cf81d9fd2c0f341db3408b784079143d120c7b8f1c9c2a43558bf784ac69f4f6a8fccd73dd77495667e75ec47a76ae6e835883fe22162ca26b827832fe342ac0b19687eec98f16920891f82b3e4b867fefeb224e6c2735666e2c6aa28d61dd1bfe9715df5fef38086b5cbec15fca9fd59f92ea469cfa08446be611b92d981612b5fd9610889ddce71af60ebca24bd71f9a01d3173e12d25c87ce7dbc737d0cc75aebeed18cd8cf7bc8efa2b1e1e0c1209cf078907d98fb91ec4e700dbb57dc67de24369956b7cfe6e4d521e6cdfa49a1f6bfe6f5e45e69e6eb3f69af9e9c16e5e19bda199952b1c2698302410e26d090b741d67781004dee17801545ab931affe298179718335f93173a5b1b7614e39bfe5b2499af9b3ab2ff8b74ab64bf4efd89f05a338953b7a4d9b0917940755cca0d80d1804be69e55a778fde98c43ceac57a317351f022daf9d313ea57eba6b5e8692ffcae99cfc6eb8afbf5b995eb3248841028021fafd34059c5c159009ce0c52a262c3bc75857fc6b923fd7daf340cc5c50ebf6286e0cab544f335fbcb9f5f62ad98b8bfb635d87a78310372836cb300ac1433a20ee3ce23a8c58caa6418e1dc4ed772530f7a87bed7319e62b9f41e66e951abda8994f3be1cd8d55b2ba2eb67318c23a0b88119a21f6d705d83c8c530108972627d4675e8e7970c5ef49bed174dc1b0799a36994333eeff28966beac7e93759af9517ca9e91fad37a410d40b5dc3f12c88cfe0cb0667d8946483740ec23034ad1ce346bfbf92eac177fe7a2fe3cf8f459affbe46bd366be6c18dc6aeac92edcb8d9995ad6c067183303fba268e150b68a4d00a202932ae4291634fe06f07927ce388bbbf8a994bcf7b281aa6d969dd59ddf56d892bbcc59a397a76e480ae074d069eab2cc3c66e5c663aa0450595867203816f0883f573cc29a5ed3627e4c18bc72ccbc4e7395720f3b5050f36d6cc639abf3e4733e351db2bffea3ac5f6829087606285af5f4a081e120fdc0871a8eb7abea0b9dc1a8cfa375e4f60eef1db96ad3173f16b0ec6e7b3a73fd74b3337fde9d1e955b2674095ee8df7372044e3fcf4209a5c892f52e0648600c783318876b64833e1e2fb6e09a08bf7dc77948a8dbbe08e48e85fd0ee070dbaf9fb4d9f6bd00bf1de9d060595494ce1ba866de3d31904e70372c7321c537230b0eb872ccd54c0febd134077968c3827062d3d8520e89216879dd843ef0a9cd8625c956c076ee50814440ff7f1b146e553c81e5054199273d300f5e6438105814da4197330bc5f9245bf5f75650c5ad0ff5a04dd72f9b1b769d0fc23db8faa926d7538ec5e7de92490cc84b0602b302b931c9b595d01d1987261c94059a91e755a343001b4668bd31a652cdaa909821efbdb1b1d3568ada12f0fd5a0b86db8f1706d51c8bba6e951a8a5b1cfcfc73e1209ff182819309c6666a77a5af4ed77cb83467f987f7002f0cefd2f36cbf8e84f2310b4ffca3e5335a8d774427199247c44048a731f5dc7e206d477d8a4830fb37333c0ab74922b7059708614a0ed879507d5772b0f3e3c56735ddd8e3168a589d194eae7373cffa706bdb649b78155b2772b35a86913eefabe8f97c63d8c540cc76ed9f84e3b75a1fa7751fda67830e7c3f2a0faaf0e5ab4669fa706672cdab7175eb61dbbfe49aba7be64f4cf35fd3428763db5a912810a582c10fc3dc3b5094e0076b01d8730c3922e54178e039136cda79f342601d4bca4f2c418b4f0e11e08fad0a56b1ed3a0ef5dbbffad2ad99e050d2a45207d0a4995a23159e038a0656c1b707ccc0621f7533d75df6b4202688f377b2ec8acfa161fe2a8e25a731e7857835ebbe9865e55b2871d55b58f0a026e883dbe025f9f524e604833da772596ad94275d37cdaa5ffa457950fda7833ebab8d2959b3316fdf319b4e83747bdfd93066dd1664d770dbae71f6caeb837b3b313589e63b8a6c01d347c9d9b06012800a28863c2f7e76986444d9c92b098ccbf46570ae2f0d4a639823e3c7ed3c9bd22d009ab9fe856253bd74683868ef42c0f27000b9cc560e2a420a8170ccb72047589b0ac5423dfb74f4f5af5af9c755206b47223049d72d28d776ad04f66e777d5a078997355d538854a02399d19d236b1f7189f7203216898442997e2c9799026852ef926017467eb172e8b418b9bda087ae92b0fbfae411fdbfe60972ad983a23c9d994808cb3d7a352360788001015fb8b0a22807f3b2904b2bcd90a8e2f987f6d1e30e2ea635a36e8c410b4eff0d9fc46c760b99aa4127b539b54b19c5a7410362020aa42269527cf9dab2b148b48c902aa1a2632d338d8ffebef8d016ad757031fd39a4490c5a52a7e4171c00401efb5d83f62dbd36068d5ea4d0a061602b2242c7c0248497e9a5c12d7c820e1659d4bb46551a51b2664502688f5a85cf672cfacc227c8766c09e5917f4d66757b76d8e41a33e2a0d6a4374e2382426c00603c8eeca1014df4a5241e03237b4a5483315b078759245db5cf67a6631fdd30987443d5ebcf5010d3ae7e8c15dff6351db172ef1719099c4260857c062520a2f3b12212daa944a359b7ecdfa43aba783afa1f6687dcd8418b452c1647c9dbbce2357ccd0a03b766eeaa141479fd6585d91178b92001fc48a5adf71d81e3e50a0a00e748567e31cbec04f35b4f4fdcd87063df620e8e4fdb363d0fc032b3133ddf7cdf4dd1a746da3b9bdfe032a44e0084772c3e20c8533ee6c59385d035f1a972e686a9526d70fdf99003af6abe5eb63d0c22f288276e9703f7b2b02ad34f5873e1a1447819e122f268f99811f4ac34129c242f8f41e58d920be1b4ad30aa567a79966d56d5f0268cd16d52a8571e1ff602d04cd6b7071730d5afb8aa20155b2070d3128352159726150e150cc4cb601a92a306091999ef21cd74bf5e93f3a501e74c776fc75ccc14fbff8e45363d0c22a0d11b4a8d9a04f35e8f40f9f1ef29fc5047566c0028957a4706e862f20859a60601ffee4327c73da4e03daafc39672a0d183bd3f1c7d3033ad089d18b4f4c048cc4c2d6b3cb64783eef9e48eb81489aedec63eca48c005fc689be375617c731034bf8dcd394ee8abc021a99ec41cd1bd3c68100d88aa71303c2daf795be6d3bf7c12ded9f9e2e5772eea13819e73e2920fcbd4f5d5e24fef0a27142eced9c2380a85937040ebf9e0b3d2145c85769a14baa24f7950ddb4977710745ebd6762d082703f06fc732f7ceb250dbafed2ef3fd1a0cf675328512e13a8eb5c11e0a123b50ccfe78141a99296ef4beef3347174e3c0437ffa2a0717937575878c8fee3c721d80fe48078ed2a0cdc8a313ff139e3c152aca1ccbe01e3e9305e9d4e0c49706757d06493fa0264db3ea7b0c2b0faa33d3e66b62d0828b66bc1583965c5eba04405fba64e9220dda6069e52f35e899593d6a3b9e2b49601a903721e00714e40981323ff44deaf952e08b0a3546fecfa0435768d0850741f50bac6bafe957b972a6d5fba6f18362d6fce53b5097184d2efb4ab30eee253ed3acb5710b5817a2506ddabe0991dec321b050da3b8620921abe940026a4e97a410ad6bfbe2f6fd4c8a6fd8f2ec8b2969cfac1a799b5bf8ee080adbfb73df2ba66ad2ee78cd5ac165e45d5ac9608a813e20f0ef07102ce421ca51e1a9428464cdf75427080ff9d75e7cfe55933aab48c5dff5eb134c3da7007aeaad675b65ca35977bdf8e688ffd855b8949ac463866b61cb7110805d99230dbcb06707d20cb9f053b07eb9a93c6ba61ccdb216dd3c7363cc5aa96800b6477ffcf8cc63342b997fdad0ffd8d5818ad37319bea0e2e2db5e38d8c0a6dc20a6f04202e1df112a056bff6d87663db92ceb9c872b3f92192ef3f67660fde5a25796eaf8ff50fd53dfd3ac6f67b7a20217bf33e386c21b2bccf20436948686a32885b224644cd92958dfd85d9e55a7fed3cab0e68fd97b66cc5af0e7dd9854975e72c51b9af5ee01cd62d63a78dd5bb3fa50cf0536f10db09fd26f5480bf5223044d00657fe810f0d721fffb88c8bd87f6d7b2ac85236eb922662ddafd188eb36c1994de1c0b804dbd221f888658e210057c4c5ee201bdcb94c115c1790b12943f583374450a6b7ef6770508bb9ee165acb9dcc484ba67cea81d5a9d2ef878f3186dcdddd98d7297987668e1e0522cf0a15eb2f1e2ae82c2945901040608ba69a26a51d1d644d652bba87dcc5af2580364edf369db62cd7ac4bf977fa559f75ef050f7e9fac0c7c7877288804c4a7c1fcb5213ef829950aa10c24010ba1e61295897b54f662dac5e6778cc5a7a51c43aedd169776ad6a3bbce9f5d253b9a6e7f3cb93a840504c19f9a381518e74c09421ca8fff0e1516e5bcaf152b0fed02d9935ffe18fe6647ce0e9498715acaa7c7bfdee876bd61bcfec111fa49d8fd308e2a60126a0085580e0459acf27504a719000960c389512df754fc1fa75ef0ab09e36e48447e348d5af1fda756da7cf9ae88a7f417d7240b346af7afe1e3f441804168eee0a18c5c628f8e91215b66fe281bc19584e9826aa76ef57011f68b8d88d598be64d42d6bd2b1ad6d4acb35a9f58ab6a76837f4fdce8ce5cc7c4a769b0178ae173059ec7a4113accf3037cc384a6615d33b002aceb6f7e30c37af628641d7fec8e12bd2d79ce8fabe2a6a2d6b8c9bf2bbe6c6973191008fe9ec257fe020f0a54ce0dc7673ca016a8195ba6609dfb6e05582f2e7e3566cdafbd0e59d7cd309ed3ac033a9f1237c7459255375c733f74256e9cb9368b32ab694846e1b75070108314c2599a6c356c58326b71a3a6efc5ac953e5a84acb75eb1295fb30e3ceae17a9a357afa29be38602bc171c01c0da2c627bc40e78aa83bd53195693954593546a59868db63d4a1694f2a4b3be69f99316dc9f2a391f672f7e645fa00a5f7e167dd56353b04f4d7f8fa6ac0a0a6760c1f075c012dc16c80336e6dcf0c48685a905bd3d0ce1e539e56ff5559dafc074ede14d316ec7f1d558b1854b98da67df6b82a8d356d3483595f8c0221a8848d2f7c622a60014eb516389f240c4d25986787b69b8ab6dff864dac246ef557d2c2eb4ea2fc123e9dda2f8724d7bfd9c35bea69d81aeb039bee2a7028aef7a5b961b3db0220cc9a96b589e1f323c5da5a65d637cea63f4f30a5ab5fdb23cb69ec77c6259236fb8fe8218bb52b71528b7863719feab3ea0deef1736ab9a9d95a8b15dc51515f826b58d6fe952e5199eeb61bf72183a9e10509405396053d035530e8d5dbb2c76f353ae8fb10b8e3f0147e21d3776ef288d5d6bcda7cd35369e56d7db14376839c4c5534028b471af3d844ac1c5d74d2045040a240f384f0ed80216e0d7875e80658b86c24e9736cd607fb91f4f305b4ca54f6bec67dfadf272d5ec7c8ff84ea5087c4143628040c089b62e5adb56103d5c7cf880c1c710e9b18bae2a68b5f99b64ece27a17b7cc601f19b5f08d1a53cbd6d893b6f96d34369ec02c8caf0953ee4b5382b5294e43777888d7b17166867004b5a9675b3c076b1714b4fa6e7e3276e9ad23bb679664a5da88fdcf4597eed71d44231bfdd6a96a76db4b63bb81948189675aca7270fa8430b88bcd39aeef43e00e03e9fab9614f5a928c5dd070caf018bbe85b8ed863667699a1b11bdcd4a47bd5ec46edc6f87d0405921da7a4e3abe110b0891eee673a021f8bb7b91be4b0240b007bf78a64ec92b3f74dcd58bbed13882d4e1bd74563576f744a5f8d1dbde8b141f7c549a8892c823328f00d69df0649ec83d6e4810aa9a32c21bd1cb071f2f1a4d5c9d8f9c3bcef62ec923f3a21f6adc32ebe4763173c75637cc5326a8dfb257e792a34a5f0416d28544681cdf0e5a1c0705ddf02b9090667560e4e825b25eb2be0db83b7eccc600f7ae32fc0de5fe5c4533576d79e2f7f5035dbed194f48b06cc7c707fc18ca0d8617ff3cea488c87c4c31bae21a7b9617fb3b9020170f5bfe73e1e63b76e88d67e7fefce21bab1b62e713ead5a7e5009253868ce5386eb53bc080feb325a9224088909981c47d4e784dd767b059ce4fe8657c7d84507a247b28f6dbcf5118ddd707bd5afcadc4dd3336140dc312e5868108ab3a4f099470921c480628fba8e0894f072892480dd714f05e2f6bde3ee8db10b6f8d5a82f3de1a7099c6fe74e6fbd33576f4febc1e734498e3130be755467a4f4282f47c2a0c90ac0e117e00024ae586fdedbe64ec4aef5ffc748c5dfc523fc4eef2c181bdfa3641c7917be694b971a9277781cc0fb870a142f5504a05c08e8f121b8ad82a703de64148cc0dfbddfd15b0f6e9333a65ac7ddfc788fdc0bee3a768ecee8bf99232977ad6c6974d94cf1dcf3128f1f1929aef19e0168161d3d0a3d8f6e306666ed85b8b7e4db6768be78a33d8738721f6a4677f6dafb1e76c56f16c8a8d7f8fdcb554cfa30b7cead850b342fc3071ce03f1f065006104967284694135eee7225c71f6668764ecc26b4efe22c6cebf6d24627f317153038dbd61dcac756546c4e8d17f9e92a64ba030101cc761d9c2823a3cb48dc0264c40b1ab58906324e9fb46327651d7e94b32d8efdf19bd2b52fdc0711afbbd92761bcb4c21d0d8d2f28427153873f4e67a88711b8a32c387a0e8c1bf80503247df9ed62319bb6459b03b833d67325abbeed8e9dfe80b6bf35eacb2bb4cdc8e078782353d025ee13b21e86d9c412014b09390994c4a87f0d0cd0d7b409f64ecd281671ff9445cdd7cf14ea4496ee8dc4d63377cf7c93fab666779e919add4c3b1eaccc7c379137bf5039cf6cd407e87d211441149734cee7ff7af0076a3a967c7d8a5a54f23769385531a69eccdebcfafac4736452fb6c6638709c467064e2271220fc3d7023cce1868128711eccbc677f172c29e33b8024ee25c76658c5d623446ece39a3f7ebac6de7f4195ea6526016a6c1a709f999e69b894e0cd629caa8797a3a5324de59b8eef911cb3e4c8f72bb02455e77b32d6aef64a740965d731bfe80bd12dbf65f150af28ddac8cf772614d529b18d4c4cbf2f834bae0f09be35b4a52692b4be552dd602bec880a04c066559ac5d8c5f37a20768db75f18adb15f3deffd3a1a1b1f747e41cf00b76c456d5bb806c1875198c0c7f36cc90d05b5b1a940cc2a924be58e3be7a32b906ec4db1d324bf2baf7113bf0de7d5e631b05bbced0d858dc5cb622ae6e70a0334829453daedb5038de6333a3679f8529429a23f6d04f2a80fd8a189cb1f6805ba25b6cfddb5faeb1a75fb5f5dc329366976b291558a1e59ac4084c2c13f0f24cd499207ce5809a0a034572d970c01b619f2563179fd87e628c9d7f476d4c370ffe78eb611a7b7597da465eb6b77b79fce09af44305f1835b18b7bde8697a2a7193d2f1856f43547172c31e36a9020170e2c7dfc6d805ebd6450d2b43e77da6676ebcf99174f2b2f7fdf52b0d2e272ee8277c51db8732c131f1da44681a8e699ac4a22049788ed81da72563e7bfdd6d7bc6dabba27110051d861769eccea3a75d5566a461fcb884c34410466f34e0ce3578349e658102149e8005e970c67354809b67266317749a5ff5c9380016d58a4a60f97c7d8ddd7e5ddfebf3b213a896ea83372b60104b80c6c50322e2d938f9d9c3b3822074c0e141a1e4863d716e05ac5d6ded193176c18d1720f6c9b70eaca9b1af6f54af4199a1f14be221272a14982531a4e0805fc79020a80c82035b2c070a369ea394eabca80271fbb6aa6ec6da7f46f7071b4d1ef39d9e8f34aaf09ebbf2b245d9e2f828260c1d65623f2bb6b739402319310dbc85e7dbbee5e4ecdb8b9755c049eab7bc3dc62e5a7e2c62bf74e32f433476f5db17dd9f97bd4a1f3f1205063615b5f09533700d164275630b62383891d1c60727bc1ca5d427df5540939cd6e991183b7f7ab49936e8914b1fd5d8d75fb3f4e1bcecaed4c2789aabc94d5c923440df0ef0a6986f712374a482f82d1d9aeb86c3cc1f2a1000d74e7d2de324dfd7c7a7cf7677187599c6fee9ae30c8cb0ed15a1017653eee4f5a868f0d3bcc0607e78e6486f488c54c65da9e1fe698dc7faa80b5bfac363063eddecdd1da1fcd7e60bb9ebfd77bf8054f9599d53f2f16ae944b8b0706e8576cddf4705b5e2943712ac0e004a7f7e7863d696305acddb0f5f80c76f3685cd251fc97091abbe90f735b68ec328f3d12ca2029b2a85f5b61baf1f07aac075583c77d1f5fd326394692eebf5640934ccf5b106317be18e9ed51fd8e6fadb15b5cf2fb2b79d94911b3e3e42e3cc628085702ba8fe18e9a87470ac474a56b0a2a3d9a2bf6ae0a04c02bbc5f62ec92923311bbcefea36fd0d86b169d1a0fedaf89ca75563cc0d30f4dc7350d4e504a612392f43c65981018039c2de9901c97e4a8df2b906ef6b7f92763ed99e7467393560f3d5a639fb1f4b1ae79d94b5d33f58683e941c1481dc3960c9f2d96b875291c2314d40db98d270d395abbed5f15a86ea60dafdd2c16aefba3b87d45c105dfea71a9c7ef18daa78c029ca1ab1b50ae84706158b6c4633d8e8f557aaee186a18feaca052fca0dfb970315b0f694cf8c183bfff8c8daf68406433476c1c62d83353676d7a9af35360fb1d53b340030882349c80283e24c30e273e90539166593db6d4bce924bd6dc106317bc7a3462cfbcd37a5463af0d4e19a1b13149769fae358919badc7520c9300fb7772055ca30883aed1d47e1848ec0cb71c3a1733276d1ed5b9ac4d8258d4fc632c16c58403476d35d677c5246016a6ca102cfc717c6021bcf7e89f2f4feb6a394cd1d6a0750d7e75894754bc6ae54e5f45733d63eef387c4ff8b289c337c6a3dac79c38392f3b7e4d63bbb604798d2fb2637b13f37dec73039f81e04da058c339ee396a92497d2a60ed3bebbd1763976e8b34c99547e7f7d1d85f769b38b7cc84f9695a4a594af83ecee4c3ab97e019c480ba1777e925449410df51c85101b61b908c5d78cd4b5f669c243819b1a7dfff47138d7df43cb6bccc83471adb12d2258cdb8685f79ba094710d4fda90255d0bea04d70b68ae1bc5df0c4ec6ce1fda7b692600ae8eca04e39eaae76bec57ef6bfd83c6c627e97e2989e73712412166e39d026c7fc39742890fd8d4119eab2c66c91c03e087ef276397bc36694b8c5df8f835883d79e7af3bf4d309a36e9fbea1cc5320250747464b08cfa0fbe037e67b021b3398c1a170a72e946b0ecbb128eb32a202d6def2f7614fc5d63eff44c49e72fc94cf35f61357dcb3b34c9930556b1288249c7ad22001977809921a1e06408b84123e04872a22c725b9797405ac5debb85363ec8227ae44ec8fdd656d34f697ff0cf8332f7be74863870e237e48202dba48e313ec75000508e518b80df70877728cdb1f7c5a8100d8fa361a63975e7557349bf4d1c9b768ecfbeadf7378b5ecbdc3a9f1019f2f4c1baf4a59d82245f0aa9404516531e1d9388859b21cb7e5577c56016bffb1fbee18bba85fb499f6c61b6756d2d8af06cf1fabb1a371e825f16844bcdb47a9011558d4e9eb199e4dc0671857920644c85c93fb9a491548ee3daf7a32e3242ba3896137bcd065b67e9d67f36d0f9ea4b1f14121570740474a8733dbc19d3f8824162ac0109b7e050e6336034c45b961ff55528174f3e8c4f6196b771b8ad87d3b4feaa1b11b7c3ae52c8d7d124e37d659d2762517a1034ad5a10c142062fb3635a46d318a735645ae1bc5db6656c0b7f73d3828c6aed4fd25c4fea6aabc5f63bfd27675fc22ee5faf3e3ea979ac007d06660527f1f0b9560886503028f8477c17d527427834a7162fecb89f5b01ec8edf4ec838c9b375f05e489556cdf335f684f78e60651e2dd77adb73f0804f86868b2f973333b00ccfb243c3f7a83029b724cfa90f108bb24515f0ed7ddb1666ac5d6573e424ebe946fd925aa3196f5da5b13fc06d296d6de2dab6c0f134bec04989becb71dabf874fafe3a3278ee53b3237ec1f9655007bffb71b33be5dbb1762ef19dbf4638dbdedad136ffa0fb647958cce4fb98df799ad10228988f62f3d426c8a27db3906c092ef2a926e1eabf4748c7dfd7318b76f7deeca1734f682e137df512ddbbda39dc47501405070122cc5180b2d8307aec47e12cbe61e87409ea3dedeb7b602d8031a9ef574a63b3f1a1d5cb3c9e5176beceed6b68734364eb79af575fcbc82c0274e7c83e2557c46021c01ca709f045f5950542a92e3aed4e49f2b205ce9041163576a13b5c16ce8f7ec1efdeae5beeb0f041a1b87619fa4ad1d40f5287d4e0cea46af3152281320ee8194e2960f7eaf029e6300ecbda902d8e32fbd2b63ed4fa38721da6cbfeb2b8dbdfacde14f55cb0e9a8b9dc457a1450358884ef454b58b21dbc115ea10ce713a8bc811fbb75f2b10001fadf4448c5dd229ea035cf6d8d36d35f65fdd5bb7fc4f00548e0c011d045480a35a7c9c974ef142bc1b98925a50a9593956375fedaa806fef78a25d8c9ddfa229629f7a49cf5b3476c34acf15fdc749a829dcd057be213d85a3db70495a966ff82621a6a93877549a5b327df726b396aab9efc4ac8573a2717ef98dc71ca7596f2c39a673b56cefcb8c78ec786052cf833c6e73bccfc7a002b640bc52c16580fb805cb82958b7fc5581087de9f1e333ac5da2317e6b6e38ed7bfd84f2d65fb7f6ac96bd2131331e2fa70285cfc898046fa0e10349dc35a501ce412162e00b43696e754dfa3799b5f8cb27e66702c5e84fa30686ea6ddfd7ac875d77c23b9a7508be57372b7ed6c4b1f0856430a4c4edeb009f9d2296414c227d50a80e54be29589774d89e78dfa0383cf39798b5f4e8aab8f7b1edf6aa4f68d6becfd81f542bbf1dc90544b5c0c567cb19063560f50261412cb640e6f98241064cc1fad31be55975b7fe296558cd697d8e7826f681131fc29b1c3d16d63b49b35e59ede3b19a35da14d3ac01be8085e92e70708e0b35211a04381b91e355b9d073b84a7353aa63f7f2acfa12faa965a3eefcaf8f8f590b5a0fc3d43cf4f68f97bca66ff490419fffc75f39e53c04373002898db51496154e733054e88a90d83ef0a5b929f5c65be559f55dd9d3cbfac0cd8f9f93611dd912eff3dc5577783bcdbaf99ea553aa65874d697ff541d9c34f13784a44b097024a13d392860a82c074a82d0297a7605ddcefd0762dcb5abafb473b662d7db021faeb117c1cd1accff65a36a35af6c6863eac604c38a6e5da86cbfce86e37313cd7c4ae549f501e484cd22958470c2acfaaff7446d95c70db65f533feba6a38b21ef9c28fdfbfaaa73bd47d625eb5f2072ba6ab1c26215c051cbc94791681ec0544811b40c944894f889582b5dd7bc9acf917ac6c1cb316db5b90f5e94af3da6bd6293bd62cd3acd173efb3e33e48013f0c1094af20662948084279a0c92ca1acc07685c3d3e4ad79c30eedaff965edda645ab38c0f743f0fef4b3f2c1f3334ebdd3b3bacd3acd1b324195626a21776f4118a80dad97358600416b77d8b2bdbb4d3dcec1b382a99b578dbc6a2ccda5af41d36d87f751859d15adbf5faeabffe871544a109711fdf49b4f1895802f1d5f24cc3214448e19accf5d3f8ebbc4f0ecd7a66d9b535a9e49d0c6bf5c968d71bae68f4a066a53bffa85c3ddb2f181f0412e287cc52060803574f1e03f1651a21096c6973178ab734796bf0c443fb6bd938903fabf59898b5a44737f4d7a98b6e3a5cb3aeec7946edead989a89a15349dcd39350ddf0f02bcd587bd498247dd76a1172a4bca3476ddf465727c2dbdf7a8e919bbeeb290b5ddfa633e792562bdfa853a17542fbfb6401232ac10f4e543e6428ee5f0ffd350ca974cf824102acd3c8a0553cbb3b2ffce4da87fcdf24ccc92cb3017dc7d7fa9a75927cc78e4eaeae5631638a54919a7864bf08a826d4577b4a41152d303292040c5a6c95b23661cda07cae6d8a291c76dc8f840bfcb91f592861b4fd4aca3bad66aa459a1ae39e1e36f0e1e5cc3bfaf6b580e382de403d3406be28437225c2a4d4ed3c4d7fdb30f9db7caeaac826b1beecbc4ace32e433dd0a5d5ae852febd9198de73da959a327ab748e0d8824be2b84e1da01dec6c2761d0c5c66185a26be23c1ad3005ebf40587d6846575567ea357f29e8d7da0e422bccc39e6fe47bb68d61927ddd25eb336c6895433e39bfedc0e39c5b9a378b26e91a85b07df5c568e67faf82a5f1a7f1db4f4d0ac656f70de31a156ed0cebf8d9c87ae1d825f768d682636ee9a759a3a7ed66c45adb3639bec71e60a4625c42e56546cd7ec2778419802a7453ccf9285a5d9ef5abe8d79165fdf5d8bd7533ac0736fe00ac5f9ed6f354cd5aa95fc3d1d5f59c0fc9219b4a58fd00e823978bd3905d10864a855010f8964c33d96df6aeede5261245fb59efff96199d74d2b1cf5c94c12b380b2fc3f63da6dae51a6fc3e5e7bf5b3d3bcf512f273354d464d23488ef9078378909d3b06d4778e00f1c626b0ad0a17b0ffdd9eb648651d51f53e4c6a0256bbfc478ba7ae379cf68d05acf7fd04d837a51eb878e519e65913064b078f05905c538fc7ccc0278ff04729732fd348327f7fd75e89ae5d40c68b56e57dc9201edde0b136aa3071e99a2415b9c54dabc7af68456370451105592f98ee147b7ebb0e34d08460deab80e7c77df83ba3505e8276d76fc3f126a0c3afbf4854d62d04a738e3a00a0afbed7aea68ea4cb5a366eac41a3c735e6c6dbb6d20da8e31b204f711511618036f1f11c9ff85ee0712b48f3e967752a0f9a515419d00dab5f8e418b8798bf0168f3dde3bb69d0fbfacd211a743cde6ad5a0a1b4153085589f46efefd8faec0447e212a56468bb69e6908dec9200fa68c7237bc4a00555de45d0af2ab7ff5983f6e5dd4fac9edd759b1f77700897db1ea4a5406207073e578223081d4a6d2a6ca6084fb3ead7f7280faa7df420e88837477f90b1e8112311f4e653afb9420ba9b5679cb85f0bd4e8dd2bdd22e881e0b389e718cac58d1517070e5878260f7516e3a6f26498662eeea23ee541a3bf293a085abf47a32f62d0d23fbe46d0077f3fe12d0daa1afff053b5ecd9eaa25899841e518e3204c13929ae0a0d0f5b79946f41e5cf7cd761668d1129e638cc19501e55e7fb83a817743e7961663979eb11557d71c7768d5a78e9eab91a156f393da77b73bdc0e650338586ede0fb6704c4a970f011b4105c547208ff92a542dd33f8909f7f431675eb3f3f65827efd79184bb79c7f7483b8462d9e3541a3a284ba49773f5b001490401abef4f0a03d80a01f52585f8284903f856d052415eab4f70f6dd5d332a8afd339bfc7a845fbcfc154dff8e7ca4334ea79674c7bbfccb9698c2a944bb82b0d8297989842541e82a73a760055000337c8e5258f8b20b08e38f4ea3a382379f6270f1efe5c1c069cb350f675de79f91acdfcc4aab57d3533be917e9e66f67c9ced272cbc82051980636fa50aa9e140016b85221456ca57b81a45bfdc82563d3f3974e83a38dcb7daa6578e8f998bb6089cebfceefc3bced35b2c2b3e98dae53fde6bc12fa67048b60f9195790c9f6f50d81ce059dc343dcb17b9bc2a774d41abff43da9bc0fb547dffff2af7a2342a4d944685a333ed7df62e21cda5b96850d967ef739aa88f4695ca109139214368428428f3103216453226493216ae392efdd73afb1ceffbbb7a7c8fff3dbedf6f8f3e0f8fefc7d3beebac61efb55eebcf71ff6d1b4784dd6ff9b5cf053173a98a53f0b974c935e73ca499ef39e5d9b78b5cb524ccc2734360a68117b5b9b8e01c7c190d20481e085f397ec99951ece0cfc9ff1d748f6c76b865d32bd563e6e9614bbc263ef969f6be661e6b0f7cbd6cae3547337b9c7a1242982154103934c80e6cf88f3eb80a3068ce859d61db192a1dcc9bfe9f4e38b7197de8f913bc98796dbf7a78ce6d2a5458a099cb6dbef2f9b2c5a70e3c2070a134349c683b94895b5e4cf0c48165c900b21c2810336cbf46e62eb353983f78eaa11b127bbe3762fee3b6fd79fadaf8fb822b9e3a8a3960b6477c1cc70bd0c529ae0ce1e1aaf13070382ed46159b60523f3bef9c599ddff77ebc78af70edc1d3357b9a821324f7b68591dcdecff7676e322d7718be28d5626b0d98e613a0af55671dade95a839e2508be20a7a37c33758f7babacdbff9e1bfedf9c837f8e425831f4d7cddc6abd19eaf5c37ff55cd3cc7fba681668eb6f72d8a473b2060981ecef562d32a7c71868fbbbb39832a8c29d702ff916d0350d725297ea36cef6f9f4aecf9fd3c0c7fb54bbf3c5a336feef1f29d4731030995ca760d89daa62ef34cb01238718fa16228b3686866dc68357255ca396faa3efff5e49cbffe06a7da2a3eea94d6cf768d5e2ab84e33e3eb52be8e292e7520b364cc40ed60dcb6111ac20db841ad907b58ffc0716763fe674dda39e77ffe4ecc3cc8da87cc9f4f9b75b566ee3f6b093fca9e71dec4956600810fb7b943a586573548cf5dcb7189e07606bf81cc7ffc9172ce2b067cda23b18d6ff3d09ee7f779a69966eebb718059a4e1e9a758e6cc016701e1840a4ce10348927c306d4309479ac2737cca336eb49ab12985795ecb210363e6c6f7f7c4732e35a9eb50cddcecb11bae285b7ce291840e04ecd034183e98bbb83c84530c86901c496252d39219bfc1217fa730efaff6fcf02476ef8d769ddcf7ded36b34f3534bc485455efae3e1522c33145ee3791ca5732c600ec04a3c0a1fa76b3ba66219373bfe5290c6fc59b5f1896d141c40e60fcff5ced42d2c031693b3cbe6441bf539db10ae6dc8350c865a7d50de61652f3cc39104f5502c53f08ccc93f7a6f98d0baef8368983131d647ed8f76fd7cc8bf7db71bb6491215e0ee71bed3d09a3fb9d200c5172d241355f8771c8ee4c9971c3f13b075398871e9cf14362cfbd1eda03cccf8e6ed75233bffdd9b2fca3982ddf4715740b6c43e0ca606e61d7a4657856e8d94e00257fd6ad723fb6d9f17f33977deffcf5495e57eea56877cf9267d669e6cb077fb9efa8d1741fdd33f56d23a078d50bf66b3014b9306dc103823bb1dc8c9b7767b74f61de5471d9f6c49e27b446e63a775c788e6e373cbcabc676cd1c6d49d4ccd2e20afcb33094c3c03f53082710018561b310a51da33e916cccbd3ba7303ff842ef83893dd76985ccd57754be5333b75e7ec6c6a3041702c7864a95807fb6b01d20f020af839acae0d864e1088f5299917951f714e6732a3c58e68598b97521d65675963ff0b666def3d887bf69e6e8bf6e45fc0d3a9025070eea87600b032aea1357e16b36f1ed002865c60dc7337ba59df3fdcbce889907856fe1393f31afd744cd5cefeae35716696a5f1e0f48bb9e2d4860382cda628b23bb219386e75bcc67a68d0f18d9987bf42bce5c2cdf185aa6d7050933f91a99affa6eca76cd5c58e389c5657252839a9953144ba23836c5f0b985a0ac4fc00c28ba3d178cd9515ec6cde87b06a63037bff87fd562e6b5b53f40e6934f6f7cb96e67b7f6cd9a7f945c0bc40ec8ea39337c1ff3e768236ca02c833ac226beeb0a2ebd6ccce33f2dceacef37727ee3ba5a3466aed26c3ade704f9a39b991661e54fa9c994586e7b5328e09b595cf2162fb018f5af005ea3f714371a85e4c1b0a2e967153e9f82f8a330f1f86bf72fef9abc25b9373def82d9e73793165bc66eef90c1f5ba6b808518073e6360ac222a9abb0ed979b602070cea6ebf8a1a2196da3dde89473de3f78cd03c939778e6c63f2d8e6db62db78e685119a19e7b8dbfe12c794109c322edc31396e06231053386ea017be52a1226690357fde3436c59edbff3d4c24beeecf45c8dc75f8c997e989a966f73e355833e327b84f334b4a6d3b04db3039c66e866d702e9e3881ef11b7c5808964631e332985f996c63d9a26ccb58621f3efe7173ea299177bcbe37951d4387f7875d20e077fa0e31a9e540c1febc0b27dcf3204355dbc123585e364631efa4d8a7f6effe693af1ef1cf7391f9f87d1fbfa799a77dd3a67799dc13e8eab89d9a868c526a0412f38d9042747109b811421427f08fd0cf98d7adfb3685798555bf6dcc5c8acf40e629fd9bced7cced562decaa99b1717dcaeaf82e3790506c9b86c3492405ebc11133db808a4bf8b8f6c6c95ac34e9f97621b0ffe50a37bccdc78f060649e51f5b6527abaf5d4d22fb52f22a6a015ee3cea40e60656cc6d6cedc5513a6e81a7467d58c29dc081a3cec6dc65619a6d5c54eac398b9aebf1499377f39806ae6bbee6bd8b24cae0d51330b69e1f00b9c33c3f62309619b79d281a4839bc427810b81251bf3b74b527cddd09fb60c4d6ce3bc6f71d54cad8b3a37d5ccaf2d18dc5c33a3922ad10288d4f64968f2d02002eb411b37d0e32261698343f144e83a2ce339bfb7222ddf787cc18424a6dc3816cff98dcfe78dd3cc9dff792d56acd01b80b4dfb08808c0db412e8af38a42f838af18a2484810581052422f23f3e2d529cc1f1c3f645662cfcd3f41e647763cf3b766aedd6f715826f7deff5bacfce55bae8bc9275e89bad443192a571abe695a5608de99898cb5d5e4df5398e74d6bbe28b10da32d32effdf8a44bb57a42a5831f3c7e14b38ce413a0a212dc075fa72446711a1a96e906f07b0c9f80337e831b52bec15b1eb86675621b731b4777329c3cac9967defe7bc332b9f65a6d1b709a82d8d2373c0ee9be1bc98d1348f3209e046e285c464bf806748479eb96946f904ddcba31617ef14d645ef7ee65dd34f3e0d66fdd5d44154e338bc0b220e1e406c54e505785d4f025fc83f870c43ce0aeeb64bc175dbc3ded1bdc356c5712bbdf7f26aa53f6df3c2756d6f87ded2d9a199710df18fb0d939a8498d4b005b6dde3bcb3807adb50aef22187f62dc233e61b1fec4eabbba736fe3739e7f7c62373cfab6e2bd4cc77fdfcc4759a19bb04ce5c132b4be24667a8ad2cb06add1fc8958fdf200d02c8f94c3fc8788f54b03f2d0ebe53eba41763bfd17226fae71113d7d95a5468e684eefc28ff4c2c299c10f2671e3ab858033c088419d7f085c5b9245c41be978d79e0bf6971706ee5f363e6bab7df18ad299e57b68566fef1999a5769e668fb6fcc4c9419a09c24b77143b5a700254035774f405ee7d9aec333daf3b63605fff7395fd174fae509f3bf0b91b970ddfba335f3f61ecf552d936b6ffc2d9eee131051c09e7dc52d146f0ae088b930980518d2f26c476679efc63bf3f629ccf39a0cb113dbe8320a99f755929b3473dd91bd2f2ca2dda9a5a2a9e543d880cf2f08f19e9f318aea14d848c4b1f3c973023b635e37aa730af37ee7adda31731515d5563bbe5a74811680bb7c47eb5801337aa3ff3d8e2976e0a0909054f87885f2c58c827f0eddd0376d48a7a997b186ddd2bd3873f13bc6f0f6db62e6e9dd6723f34d57957f40337b77bc79aa66c66bd1f25a009d87600e966b1932c0a51bae80d8cd51c5d8f618736c074aef8c7e6356af14e64d356b3648ec79ea23c8dcec91191d35f3a0b57dca14a9bbd7c5bd5b1e6031d72041880ad110077d17a002cba1d4b342df1719e3e0c87e29b6d1fee4d522b1e7d71f4766f545d3199af9950303ffcdcfd5dd7fc4339f9204028a29096907780b2784cc430233f6434328771c9f65acad06a69c33fbbe63d3c4362a466f40371d7e749f662e75e9cdfb8fd2f4878c93e24221433186db4f43bc9db121c478925816958e0833d6b0073e4b39e70f1a347835665e3bde3e08cca77fb2ded002a3bb2eab5ea09951f1b2e3fa785cca628e4b14e4fca8f96b6393ace738864d02db5156e07976467bfe755471e60eedf157eebeee940eef27f63c52e139efbcfb9fe19af9b03de1f7fcdce89c5ef9e005167c72a8a7cc71fada467d79d4a125a16f4907e73ddc8c7e63ded7c599f56fe5ce39b8665062cff316e0fdf3a47b2f5ca7991b9dbc72d551db357c37084c40358885b51536cffbd891cc1897a1e25083677da3df3f218579defc8f86c7cca57a3c8bcc431e3df16cad07fdd4bebe3f6b66ddd7a67d5d10dad4c3dd8d9603f9b3ef41e601bf0c29216a13ca65e63a65f1d414e65b2aac1c1733b73c793232ff957ffced9ab9ab55f58722bb0736c6f7fc143bfbb19100bb2af186943b966350c7f620c0c0ff66adbb3f9a99c25cb62f9d19330fbab539321f1a33fb2dcdecafd835373ff7461f2f4372e03ba3a66378a6e7432e6ae35a2f1f83a10d558aadf0393c1b73c7b9ffed372a1cb9479af6fcc2c46f84ef22f3e3776dfa4a339f3576da0ccd8ca77c50ef9de24cba8238c23015ae4df73c82fbdde043648ad8500cd88a65ac07577d5f9c59f7d71d61be65e7f81589df38e17a64266735d8a4997b14ec9e5c44047f4bfc761c524be0aa6fcb057b76150acebadcb0b1d98051878559f38d698b529837bdb0f28fc436cef80a5715bf7fca3995f4be81edf2ca719af96e6c94d9aa7b4e9443a138e146e8b90ced19c72c886dd88105a1c586f84232c6c155cb5298d9a131db92bcae703e8a9f16567ef14ecd7cc708f7cba3d6d431e9736c5f36b88b831750b71a9c84a161c32943ba01a97456db98fb4b9a6d1c3cfb50621ba356e139b778e8aaee9af9d3974e1c9a9f1bbdd18b0049a0c043086e3802c759387618e0282ed031c7c14cd5cc98f377589b661bf7e6957d298e296dc622f327af6cfa5633b7ec75cac74562ca36cd2c047c6d506d7311e094038e63e08a50461c6eb9947130eb6ccc4bd7a7307f70e6da3362e641537e43e60bae14f16e98179684fd35330a5ebdb32df6758e104a5043b992614f208ebb46775f0c1fbb15232aa36d8cdf9c76ce3b7fac9c301f17ad0b7f7833bd52afe179e0d98f7be5e7044fb7c5e262dcb2840ddfa08f75b70b4e9aa1be76005edaf3a8e37961c638d86b5b0af38417e65e9130ffbd1099c3f19735d2cc0f0f1bd7eda8259c16ea86fa7668582ed6b0be40010f4b1821f33de2f92a80bf4536e6dd3b5398db3f3dd289994b35dd8ccc0fbcb7b98b66eebde7d68e9a1955c54edba1737e6c9451a8d1efe208a40f0516f325356c6e066e18308f67bd7f9eb92f85b9ec459fd44eceb9f14918530a56fe3d4333375bb7bc6d9145863b927cc30e1d7019982fe3fd73b4f0d644f501d7128ecb2c96d13f8f2e4c617e70f1d05b13e6fdb5ff46398759f7eed1cc2f5418d8323fd77b193307b6cd2464a05471f475912eb50f64c4c1b24b5acccd58a72c69bdf3ff661e7ac72d0fc6cc75df2a44db303ad6e77a5fdaf4063b9ae7e7c625f4025c828a9bbe8932eb38ca6b0658c3c28768f210ea14dba1cccd98d7b57f2785f996ce37c998b98a57066da341fdb089667eecd12b5e2892236966ee320a8536e4481671502794a394988f158b82906e51cfcb585b6dee98c2bce28adb9e4dbe413504cf399fbe335033379b7151bc4f349264dda9fd868422159722076eb4de236246c10769078c47abe932de31ceec96c6bcaaf2abc939ff3237f2cf9fcc59ac9947d5adfe447e6e882e660ee098299c33647728a301e9be4f210e12c713ae14b613888cb555e79e29cc4fce3beeed98796dbb83c8fce5576169bd92f315ff05a199a355137af9b41b483354e037207dc6be5cec9871e1931424602611d231c38cf7a2057dd2ceb9e3bf5d12bfd17b2a325798f092a7998f9fdbe5912277329a599aca9436e4cf24c4a5adbeefe8de9e40382636c7335365eca19a3d20cd6f345cd327669efef617c85ceeba8d4f69e6d73a747e40334f8f1aecf43768799263a6af18ce0442b56d300e619130491de1d99e9bf51becfb490a73d9be5f7f9ae4757d2622f3f2b617f6d7cc46f8e05df9b9bedcddfa0dc8f7ad4079a82ec718aefd837336019c821b09c01152dfc998d7f5f93c857942d87d5462cfcf5c8e7313adae7ceb07cd3ceaee5ab76a663ce5439ad9b72d9b8387001485830802e5613c0e3c61801227b69fb55f74ec8834dbe87fe994c4d79dfc0c9ef3af0f9c5d4eaf7c76aea9727d919c5f2fab374d27a010b70d0f6f62a251511fb5bf3dcfe6a1202194b1197ddddfa35398afb864d59ce41b7cb915324fda3b2c5e53dd70c0d25af9392926cdcc02cb96b85bd167a86b4164a485a70c4e4328062924d1597ba87e1d97c2dc7c4ddfc509f34d3da2bc6e70bf26f1daf29bca7a4572febdf17b0a258e655343521ba21f51ca60b81097c3394b9f32e18719ef9fc74c4e619ed74aad4e6cc3ee8acc7f0d59334033fffdf61cabc812df7d3adf908a88682697e19256a5207ff609316c0aa5a16d06501366f4cfada6a7319f576363ccdcb2f9c7916dfc5571b166cebfaa558d226b9ef7c5b6a142624a05f68c5906c73e46e65023a00e97cc762d4633e6cf7fcd4af3750d0f152479dd790f23b3ecf6f209ddf55dc1f71757d5cc58a6fca6997d8f718673e526c165c926aee40a5cdb50666811aa240066cc45a7cd4ffb06d5b0c2c43f9f3d14994faf7309d1cc574ef8f2a2a398c131e05e6100b0b80dd91c816fd043bd06e63982f881635919ef0a3efa212d763ff7669997e338187cb90fefbe26bdfe8466aeb4a76ca52275cafe586a8c70c8377c14d8875cd4e5217c7e5865b914fe970b5b0aa704d3e65fac4801fd6069cd0b63d0415f1ec6c3bde6e277966ad0abee7ae0540d7a2f4e67fea32fe97cc908d42798c7f971f362e0b886ed48483e1d2e942a897443c75f5340371935ab25273ae546ccee69c1c4b2efe9f9fd2a4bca15c9940fe80cce532ea1b80a19e58f5c194215650bf0c48286a1eb13d7f6c312802efe3dad0c297f0f8941ab4c0c10b4e6d881b534e8ba2b9a95d6a0f86279fc41fd8941e87550b04378269e28ba323b0c0d27e43e612c7485cf4a003a78439a8d6e6a5337062d55f693a8965eb1e37f1a74caefedffcd8b40a39d2107e3590853b8a622f00762872d7806c317541a962d5052979acc2c8918c6bb5bd3409b2cbd3d01fda62f82763f3cff330dfaca90970ee4e5b4460be3261dc87202210c6e3a38bce8bae0b4b885c35eaecf9945292fc98f7eebf614d007175cdc30065dfb7857043dfbe715ab346895fc497bf3729dc0fa44a96ffa26de1953d3c2553d0178aa4801497aae238590ca2bc9c7346d779a8db678da4f3ea60b4721e85be3a69cda23021d7dcbb09d793965620dca1d3b20a66319dc87ec20523ee22889e9281572086b26986e09403ff927cdf7979fd934066df965f48ef79c2a7ba306ed588b6ed7a03f62d3efc1f88dd76590675986a5500bc10ca921c210553c1d4e6ca90266970474ccbf6905a6bae2d5c4462fbb0c353b7fed34e2350dfae64b75fed2a0d1a2e2d8464347b8a1cb0ca5a2ada81858093e1cf88e8bda12f87c5002d0ae6fef4af1a37baf6e9fd8689fcff1441fbe62fc0c0d3afd696bb3068d3673c6a0149733400c550e82c20f1c3b9219b8a780b940625155928f6975fb14d015df76ed91fce89ffc02410796bf649f062dfde3c91bf372aabd8571f92ba84943853d8fd8ee4df06951611f6408df93e7329bd112804eec9c027acefe3f07241f53db9908bae3ba0f6bbcafbffac957ff999793c0298ce7ee99ed79b8e385e0ac138e7432db24860a2c65069e0919b8280168e7f78a83ea66c7238217fbafbe7958f2a30f7ec258ff7cf9c77d0d4aba2f5c9f977bc83f140f38295779818bc222a81ce6c389e2f43a9ca660b86edd0b4af2a35fdbebbf41cb1fb1d1a6e6d804f4de375001e5f3191b7b6ad016e605eb8ffad15311840e859ad633298af5fad8354f50ac25b09563f936548b2500ed37a038e8afd1af72471cfed9db6726d9d3818be720e8cd4b9769d0fe357bfd91976b6b3c7c4455c6579605e974e4f0f1dadfc43a40f250c277e659ac244a928767ed2aa67916fd4ecb823a3955b62f5efe6a76ccda987fb51ec7bce7e77fa7594b15b0d84ca3b6d1c3b19a28a4720ee4a0d20cb12c84a2963984428905df93690701645325602df8bef8a15e7231fe3aad88825ca30a272f4a58499b75c0fa4aef6bfac4e7dac78abffd2d3927e53acaf3b8c09a15977e12cf84730d854129c3dd44a64d9d92a835ef5d5c9c35e9e7c9b1961f79e7cae4f39f713d5eefd71ad1bfa966b50ace8f1dea57b9582a0369dbf073c67b6648a398ef003597e0f9433fb403e95abc244a92bf2e2bce9af44be558ffeab2636362afbf3d87ad3cbd0eb5bc42b30e3af5bc2d9af55bbccf889368c7240ea424067c44263685e280a6a50ce5a95082f93a34288912fab25fd259a7bc397457c23a760db2be66542dd0febfe9f266f1b99e84f3989a952b9469a5c4086d135bd24c8902d8f85a65daf80c61b21229f5f65c9bceda6965ef7f9358552e1a4d1a3eecfb099ab56bb9c69b34eb923bfcd31ed45594e538d4c53a5a582adaf4400c9fa20a9e24ca17dcf1202b2801eb81f5e9acf51f7bfda45762e77ac762647df3fa8f5b6ad667fa1f8abfadf3310cc4159fa0b6708567501fdbf4a50f21d5041b6001cefdf8aeab1cb304acbf6f4e67ad95a7ce8e595baeed81ac2d7f78fc16cddae8c573e2732d52463301f5a90f5995158d308a008e14b736c19906f07fe065bd92d8c0cc6de9ac2df61897c4ac837abe8cac55cff9f2b498b5eec7316b916b0a1a062655a6301c11ad3bc2c57ac497100bb0ab08520408072560edb1eb186ca0eee69a890dc8a9c8daeec2bb56ea42a5e0fbe3633f103d57c7d76d10080202ae95e15a2997466acd3624062e21217538375549e2d6effb8ec10676cebd3ab1813b9ec764e0d987eb7da4597fec73e656cd6a60b1a2af3343df822c4a8418595d6c230aa10e34211910ae130466083e829640f974eca174d6c2735add929ceb0fd1c8edad4e8bc69af5cdebe6475500123229431bce90fb28d6282df8a290c3974c42cc0d8482dcbf04a7d96a772a619352f2fe98b0aef813095f38fe852b34e1559dd66cd3a789734575f4853694210164a81e64a721ae1b811a50581c3e30ca02c19cc093b2249e6a76bb74d6f2a31f681cb336fe6228b28e5c74d90e7d37b5b094282852aae8470e4219767f63cf290e8de0758acf42085e21831a0062802891eef1071dd3596b95a9d624662df5f567c85aa1ddf31334ab3f97ec2e52ffed8e07f1b9057f0c314c8ad58a273936150a43929051173b674ba4d5bebfeb31b0fe5ef84a72ae174fc52faa75a7852d35eb9a6bebeed3acd1aa30fd486733255418467a0191823014d526b30c22a15609145eae96847552cf63b0d7e77f699b7cfdbba30180d29ddad5d1accdfe997ba0c82555cc2ae023b7f034698897bfb806d4251c9258ca6d265c1eb825f9b60ef64967fda2c9b4ee4904e837085917bf3caa8c66adf77c8bc39a15d76217ec8cef524910e0366cc9031cb981b8e5a3e2a8256d294ddf22ca2b49d6ba76403a6b8b495d3e4cfcc0b2c1286830ec819b17e9c78b0dfd861d9f9f93ecd5cd1294d936852cda303d071b77e1848500f4d055d222dcf543ab241160e9e074d629ddc8e8c45ee746039c0f5de8bca8596ffae7d4138b3c006c8f9b327d05d109bc2a75b029934295c56d659890ae06d42752f9ecc4e125d0eeec31fc182cf6c5325363dae95f45a3c87717eca9a569b777bf22be518f14d0e33641a8fb85806f8aa2503b64850e7c5df01f3da96c005516b35589685b7f994e5bffce9df362da2a7f378f0699aebe294fd3965e75ff99f9b901484deb28541545494601f1df952154040ad22ca8b414e7a1834b064a44fbc3d7e9b4ab678dfc39a1dd7f18af5a6af77c3d7ef6bea7cbc0738f6ac1f42ccf67011801a4ffa1961c165298506bb98ef49c40413a93615956b5bacdbf9e988efd57dd9a6b1393987c71141c8e5bf581c6ae3ee5df0bf273415777bb2aa64c9fb9906347af6e0227af3cee1814253a9c808b9066d8f2da92d66dde6f5a3af68201df6c4db299a15721f69af3ab498dfd42d9c72ecbcfddbbff153f62812908db341c89abc92cc2706f16e40a1685a296c15f436458bbd7f29abacd17cf3c86f0f642c37d8991ec3b8446b2ec0a61c4a75d7a51f5fc5c78d33ddc400c6c1c7c19815cd19510e3b0d9d5b0bc5079a6f24dcbcfb09cb6651d3092b9c770dacf2e3bbe791c3d2a442358dd6ed8b34fb755b5bb6b8b7554eb39274e086ed8c10d552e6abcbb103db03dc264ca0d946dfa593661a2b4ebe8c5e9d8fdf7b73d25c66efcf6d5ffa0eae87b7d66686cabe1dfde515dfeb85c94e0c8b4273d8ad36ea801ec28c3b16c5c61ccc04767c046d5d14f97a56317b6985e35c65e3bfd413ced572e7cbdbec6aefdf8b81bf373e2929be3412c9bf84a38784b8b39bbc2b66ee21bcab504d46ba1afbc0ccb695178b4d72fc7105c7e6de224a72dae41ec673bdc535163b7687355fdfc9c66f1a6f802872ae2d996112aeca121d23218b370309907dc14d20c6c2bdbb6c069bfa56357ea72629d18bbd46b15117b58b54e6b750bec2be3f2eecbcfc919e831216533a8e3e18f5726caa0e05a46eee00606077ec3e4a81c917137e3c8f5c780fd7dcfdb92d36edc11b17fb8e0d1e11afb9e333b3facb1a305777a22cb232e64ef828155448a6024400f0e1152863c0ca1ee2461c62daffb361d434c7ffd910609f6598d10fbcb0d155fd2d8db6b5ee8e7e7045cfe8c1bdaa4e3581c4e9be383042ed66536b70d2cec85c71c8f655d4e3bfbef63f824db96f363ec2a2f6d46bfddb1d4257562ecd20d9e2ad287b73e9e71a216c14da99ce27b3485ef9251420dc2ac30743c0b2bbe6cd89376a66377aafb66d3c46fd7ef8ba77dbbdffc448d7d5f5ea566f9b90ae58f789405d7439b7829157aba454c443a99b8b1c50627e865dd17dd76df31a452e1edafc6d875e5017cb02c7c7fcb123d19d2f1825be20eefdfee8278a3a7947dc62d7418f821e2f6062bda87005cbe69fbccf31de9643492af0e1d43ddf2c1bcf609f61b369ef6ee77cfe9a4b1579d99d7aa48bf8a1e62a7816b9b38784f0836c5520919a082ccca425533e9b82678c76cd8ed5bef49f724cbc5fb896ddbd155c60bd31b34d0d88b177ef24e9170f37b5c1a86b87cd0371c82250c83aa10ccdd362c9b86ae077f1f6c0ac984bdb95d3a768d1d645062dbc7df8ad81bcbbf70a1c6f64e36bae4e7641cd7c69f241336262196b02c1c03b050b256404ee278a1cb2df81b65dcce3dae633a768b66ab86c7d82de73d112966367a64b39e3c1c7c40beafb11b9c628cf9502b4a9822000f4d39c417544821c2c39d4ebee13108eb4a486666fd240f774dc79ef24097f1899134896ab106e19c31f1c0e4776bfb141900d6e21d01f5b8b404b83d0f9f3d390eb42bd4d3717cdf96b85237e0d9b0ff7c3f1d7b41c7dbbe4dc24da93b10fbf42d37b5d0d8af4de0833436ca478fd1da5b960b7c162e7ec24d04aeeb83076716949024f418e48076e066cc4986f749c72e3ca9e087c4b647de8ed883176cbb5163b73c6ed8671abb07ea5e6b6cea86cab143d3408b40390c1fe5111db014e19ba1495d9575f172ff01e9d8f5ffe8b52ac69ebea1275edc3cf2f18c533576f5722386e7e79482b5a29c7458c86d1b12281395fb7c1a1a511eeb28301a1569bc643492dd9fa56397ffaec6b604fb9ce3f0b4bf5dd0e86b3d901f961af9b5c6beae31de8b24f7a3d4c30d0a8a395094091b0e1a87db5d1b7c78a8200b94193fc93dc3d2b19b3418f14f52260c6988d8e609bfbda9b1af6cf5e9a4225d87abe2ca9de2ce1569d8d82305864e514b1a85bb95e77a9ee55856863201b1478d4ac76e54eda1bc57e34ff23e82d8bd770dbc456377adbc707a7eee3d72657c4fe20482a0b87118bd494bd7100e24261cd583e1e3f49899f5b4bf3a0623f979d769317695ba3b3003fce2ee8fce888de4ecf1738a4ce6af4894803c97d804386d708090f819be29a8610521b551e051918cb6bd60c23104f7ddcf544a4efbf68bf0b4cbb47fe2572d44b275f0890b8b0cf8696cf8b3cc48ee2c7055245acaf0368d18a169dba62d05e48419ee49107be8d463f0db7d0aabc6d86beb3e8bd82d9af41ea2b11bd7dbfe537e4e7769f991798cc0c45a3250b6de17c2956f1ab6eb7b32f442c27946ec2e33d3b16b4dfaca89b14b0dd982463266ee69cd34f6c3f9bfac28321ebc4c57371e0b88454dbc61002371c0488400537758c043093436cf7207887251738e21b89f7c659d04bb6a74e1b0e3a42faed1d83d263fb5a64894d4cae301644c5098e1b24928da5dbc518bae2e3de540a427c4335946ecdd8b8ee1b42f5a7a5b8c3da8da3978bdd36edb7d791a7bcd35b5d76bec2222ef96e42e0b1881d356048784297c92ae8d1bf3b86381a188c0cd86fddbd274ecd5b7ff2d93d35ed5144f3b6c7c7337adcfb576eb81ed1afb756ccad33b2d20a2583683549b08dbc3c4551acc452964c866994dc1d6838cb5e417ab8e019b7dfa5c8c3dfdf5b3119bb45bff90c6eedaebb1bd454658171f69ce64ae051ecfc6324130dca00b4642bdc0f5b9e59b992f1c0ad614c7d6bf557439e994bd57bd9e1849638ed8166d71a9c63ed0fc9643451e9316c789ab6db2d00e0d5c518a0fb51c953e506025249096d816e11953a9257f14c7d63d864577d5961fb2a05d8c5d77791b1ca2fbecbc2fb66951c2971ede7642995c2da9b155e072c11936e9e21e6848bf0d5f9aa8730441125be3999ff1937c7f5371eca357ec7ef15e971e09f6f6b7f1f9f6da039f7ea5b15f59d2f6a4223a6ef17e38cb7720ace3fe5f1f3c892014659b8941a80fa66d3b4a05194be0ee7fffb76d17c5ae7fe23d1f254672ce06c47e6567951735f6e8aa979f592617dcf56a1c8b4ba81f1d280e7c8abdb2a687cb018481cb7c1c0892909a64cc497e2948c7ee5ff186514970bffb49545759bf7191a3b16fad7141658d8da5e476bd8e31f02c02d92994c0f039826d7369700bdc38f35cb010d3e6caccf09a80d85fef4dc75e50bbf9d4e4b4ff3aaf106f5c5fefbc538bde96bb6ee5e545c4587fd0ef7a7620281e2f63f80a898b2e04ee14f41c2aa8ebda28a4900dbb75cbbda9d84daaf758999cf680c36824e10b339b69ec427af0ea32b9968f05b1e6a647951b8450b953d4b20931177414c07961e8118ff8a1970d7be2dbe9d8fd5f7b6f6372da3dcaa391dcf3c7f796c66ee43c7fa3c68ed6117dafb11d0eb60ca936e44f78858637f2d8b460534e1c13b2c280653ced8f3b1cc369cffa604f126eb67f84d88fdd7347815627376ede7c67995c94d45b662101f15dea10c3b450fdd6f150ccc684a089ab952c9401c95ab9afed5c1c5b77db9f5bd4934cd97cc26bf1f5cea636883d6af2b4511a7bf5bfb73c54c46feb75c36628a9e9410529998fc252dc8470e3415549b808945410453362cf79af38b6feada2d89dbeac7e468c5dea9733b151b8f2b98f3cabb1cfebfaa82c932bca3436553e355d5f1924da2f12c2bf71877b0007350e54664c8519f3ed41bdd38da4fc05e3aac4d8756b77c3d31e527364758d3da0c688a665723d987a0b35a516f75d068e1a2f4b5c0835063343cfb07cc94d623a360f3366807ff64b37921ad71eae19635769b412b1cb5f536b8bde2431f6bccdaf1471807a11bd70a52f83a84b003757715cf56c5b8101058f451d9784b6cc7875b97b50ba91d4dafaf4b531f6a077151a49bda93f0ed1d827357ca25511a1648dadc059480245199838768f040e6e2806372e85679b2ae4a693f1a2b8e790f4d3ee6456ae1f634fef3103e75d7bf77d4d69ec5a625fc722bb19f47a7a867a6901ee7d56385c20b1619f71cba02e9321679e72b316655d46a4db76fd596b6462db8d06a091f43fbffb3ebd3ea7c2ecd5fdcbe4de6ebed551d284ca3154ca0027887db04a82278162d8743d66f130842436a3df5e3d3add489aec349e4f1ce03302b1d7b9bbc76aecfefc842165726f3733f5651a178c101c3a17321a36c3767313d9c3907892515f64748093c71dc32739f4b196896d9f7e06daf665d79ff892c6eebdfcc5d1657265c20c6d249c4b4e6c067581006c4b8291f00077464b3fe4028c3b6b09dc6972fa69177eb9b14b827da8279ef69883536d8dbde470ff2965725a481a5b406de39b8a1a0ef69fbb66a4ae1de254a70217e387015519b1fffc26fdb4178cb23f4cc24ddb7d88bd66568302bd9eed81d967cdd5d851753123aedcb1c50f4e5b450b747c074a60dc23eff91cb2569f495b66b4ede9b38e21b83f3f72788cbdf6e7e5887de5e6fc511a7bfa19fde28d56b8a6fdda9971cb7f202d65091c5141e76dfa5a759d4a61fa945b6ee064ccb747ce4ff724531a9d3729c15e390eb127de707e538d6dad6ab8ba4cae7b477b92c0921e91508a390a57a1a31ca3b07c823db53eb52033214ec6eaa6cb0fe9b6fdc5fc97e625d86173fc24b74e16d535f65df5bedf5026f79a302bae6e8430b1974e597a972d031a5b024d6006ca32959d3571edf973ba91543a642d4f6cfb2f828f203f8d6dbd49afd26c7acaea9d1a3bfa2fd0d8a66b72b062d30870c79cebe2e64fe6434e22c1aa51f1d20b331ac99615e9465269f3135b929ce4ce5bf0b43bbfdca9bbc6bee98d534e289b9b6b9c9534ddcac06726ca89da78e180e35726373cc2b8e95a362322634e32f9d774ec1aa795ff27c66e3caf2fdaf6c9d72cbe53635f3afdc953cae6847b662722382e982f105321f0c909b50d70ba0942a583ed257ed65ab2e7ba74db6ef4e243655e8fa3e46befe169f7edf8c1c91a7bf0bdcf9c5bb6782a15861217bcfb868aba2e894771d40195b4b82343cbf77c95f1ed66cb8674dbee3ffae28a3176dd597bf1b46b3ebc61be5ed5ecadbff2528d1dad9d98134fe95a824ad73270f988e1da70ee22c4ae4be9d9c49216f37846db5eb635fdb4a7541870698c3dbdee0f88dde6c74fdfd1d8cb3f5c58b36caeed39c60e85727089377770a800453a22bd1647da70f2be6751a532be02ef38864fd2cd7362ec41d74eda81bde57ee59b34f6a5ddaeb9ba6cee35614edc5b4e810c1b2ec1d3414e02c4422813c20dae18705d8ca1194f7bcf31849b66df5c1f63376ec1f1b41fbff5a4037a3ffda59ff6bcb96c4e976a765c94b9125c9f05e50c93a8dd41700d1aee2631c1b27d6cd3cd98937c79201dfbafab56df939cf67787f0b4d7ae5d3e51633f5369c1bd1a1b07247ed2d82e5701fc0fb659423ee5cac0327c9f08b0ed80314503f84b65fc247ffff7182af7032bfde4939cd4114f7b5697954d34768bb97be22df5916a7f1c257de641fea170b083839130f838b16a90cce4d4b12c3334333ac0b96fef4b3ded2f965fd82c3192cb6623f69e0f9d1a1afbed82cd4dcae6dedc754e0209882028ad8c3dcfb842911abe15da8014a04787528165bc4cfba84371ecfff0db4fb77e2bc65efbea48c41ef8fb655bdf8cb06f5859e3558dbd7dc89cdb3d9db83abeab425468e4ca850c3064c210be909059714e5c3fb01c99d193b4ee928e5d7fc8cacec969d35188dd67c4bbc33476cf5fff6c5b362707f68dc60e4dc54247e02a56ecdfa681c102dccde4591e0d3dd4c3cf68243fbc976e242dea59fd932839ab0e46c9c54fbff794c656b3d677d7d8a856545d630be5b92676775924001ad3c3e1c55018beb47dea87ca2366c6d3feb177fa694fb974f1b018bbcaa73fe1695fddba69558d3df850c301657353a1d374fba2e50815d8aec1b12bd7c58f93bba134a8c768680684e1528a6c6f37fdd3b117bc7cf5c4e4b49f2d8ba73de4b7721bded08fd705d58795cddd4ac5d836115e60420618e23e1b86928d02afa6143e8e0848a6ac8c9fe4fa41e946527ee4b4b989dfaefc349e76b5df667eaab1b7d7b875bcc68ed63c6823b14ce65a26e4ac0e4509635cd6c470e71177a19034a524b6a0259816fb69703aebea29bb96c6aca53ede8f5751fb1ef94869d6c60f7ef26d91883e2d6e2251ae5021de3de1ab9e051c22a0b6a128f104844c549529016bdf11c7c0fad85f7f2781e5bd3a78ae1756fc747f0b3d2f7cdce6159a355a5b39356ee72721fee021ddc0559b367c86909be2a2d0804841b94fdd92cc8cef1c9dce5a58b57c6172ae532ba3e91ebaf2de899ab5e1e2721b346bb466604a2cd12885049760382ef6392b1ba50321129a5c0681c33da278497403968c3b06a796dfefc416b1bdf6bd212ab4da86af68d6eedd6edc593627f73b593f913a1e578af8103850980305f07dec4b8412cb72a57238909480f5ebc9e9ac0beebbf6dc98b5cae15b9175ea43f5896675eed97858b376c0303d49dff886b632b1e35d0a0fefd70937701ecce02693a66906a1e997646a74d737c760aff7aeab9a9cebb82ac8da76ff03bb5e8f58f7bdb9f5a472b93ba58971da693346ecd0f0421bb26570b28640813b0b1f320875a1282f891ec38a59e9ac35463e4f63d6baf5a2dbc6d20f8c1cad591fbb6cc639e5722dd713e3d6bd30e4214a87583636dcd87891245d430953b8144845509273fd707e3a6bfd1f0fde90d8c0aa9ec87ad60f2dfea759ef399d5e7ed4b97a1e2492dcc7574387e8e62016404803e7eabb8c846100a56a09a69c17a6b3369a32e7be9875edb84de85f3f6e67d68ccff5dc7f9d72b9d7b789473af0dd80388647b1acb67062d472717a20088507152a2d91bd6e5a9ace5aeb8551cfc4ac2d07de84e7fa5cef95dfbea673b253a6dfae5923096ded07b08d370c4d69041e4e8f870ec42d13ea0d9b3b9e670526b34849ec75f1aa63f0af33ef7d2db1d7bc45180bce302e68a3595fa37f3f5c2ef786ac594d6673c95d1b3e269cb614b868049c9811b8aee3319b40e42a893ed387bfa5b3f69f3da97dcc5aea7613cf75dca165d76bd61fbfecf274b99cda411c0b4c5328e67383d86eb47a0d959a20297070efa12484bb2562ddf3473a6ba5adf7f64e7c56cfe7f05c07f83d4a6bd6a70e0c79bd5c6ef8766a9ce09acc0b2c69102bc40145ac82a80cc110a4603eae14642561fd69533aeb5f63dffd2cb181dd3e9eebd28b6f9bf7aa7e21f9f1a22e9a355a69a7cf35508209ee31c374f05e336275f0842197e16620b19bad04ac1ffd7d0c39a159ebebc467ad9d1e65e07d5f7857b31e18baf023cd1aa16a56df81e20035c7050455c375208b619ecd0d4a7da6b8e75b9e2a499ed57a6771567da7f6ffd8c0a0fe33137badf719b2dedd68cc9d9af5d4a70ac66ad648125be78402126da288692882d58287ae35c47adea128d82558609644f5e4bbbdc559a37f5950b128eb75db1725feb5ca646c8139fba9fcb3346ba5df4a2f2857bc443081077bcf0ce2fbb8a6336060af34c4b5e0962da4083dbf243eabb0b038abeea03ba3e8c5c8e2056b9273bde466bc87afd6b1c7afcdb59acc09737ed7ac981236d275816dbbb603e93f64826680370c2ed48dd431ccd07484f07c2e784994447ab7d95f8cd58d6ce0f4a2acbb2bec4cbead3e7bff0056defefc6e9af5f8159ffeab5923c9fc59714f3c750285134c16e659a683ddf18189b7d882bb9299362d89bdfefe4e3a6b8deb4e2d4ccef5caa6a8d5f74af34b9fd2acd32ea4a79d58fc325528618736aea8b3a295042e410144dcdcaa94c70321142d89bdb6ed5a9cf5c61bf057e9a2b74c4b6fcc7f2366fdf9c5d5f816d37e511dcd5aafd3b40b356bb40e443711055c0544e01afb50a2f619c77b0fdce715421c30a56bd1b02452d7e307ef2fa68118e9d8cd2ca893809e284f8e411b6fac86978f058baa3e181feaf85b4f3f31f7faf273dc5bc639c50b1ab0584c0851fe9241edad4c0f7cab15ed852c01e8a42f8a1faa7658151355c9f23b3b574e40dbff847da9a79f776e6f0dfa94597f6f91af4a37e63362ba9e4d95c1c3103b25b96b3001b40c8cd409424813bc9228480f1a5d1c547b8023a0b5e82bd5921ffd813bb60068fd55dbe66bd0a557de187ffe1ed62e7af0c10a2d14e637c1e763d78717e2463485aac292498afbd28292a8f3168e2d0eba3076ab09a833c08b415b5ef91afad43fef39ef5f0d7ad71f74a1061d8a4d4c7a1ec6629c0a7c00020c5cdd2688e1637e1d9adc09e0a78f8bbe4b00ba65520a68e1cd8fdc98fce857fc8927da70c7104f3bffdbb73d38b15caed94a9f28c51636ec55822c1a3f26148180af09ab2c4f31dbc45d7f2500edf94d71d0a40f39f150ee0ff7c6a06bdf9881273afbcbc6cf6a5052937c562e7793afe702b8073ff88050c3f3a2a583127ef4cc760cc85e885422409db11280eef8f6bf3fa6f313d04abb46364e4e746865fcea279f5a6e689c525d3db57b9154557ff522305588ed6b504b4122e54119c8fd0067754ce58402d742f9270e2d81c0cd2ff352505bf45bf0bf3792d7917e88faebe1727f69d4ad67fb2dcae55a1f7e8a2b5629a1888aa6fa309ada14b26a290d4fdac251a1e54ad32a11eae70bd34e357cb2558c5af7dc099142efbbcfdb3aa91e7defbc50a346d37c8be3b7558bd981e51a92cb48460e52001fd2403b802c8552c64cee9608b5ef92ff76524750a73c7f43d71875faee8d7b00d538787d538deabfb5ecfe72c5fbce9970a18282580a79293829ea7986cf5144102cd7e14c8a6c6b94aad46dbe74797166fd5b958e58c213353e4b8eb7f706b484caf5aefd4e334f29d58295cbddb7eaa673285ac1cb43a852d13ac1905a78436c19a1a4d808cda515645987624259b83a8579cae133c625cc97ad46e621e5ab55d0f70227bfec5eaa99d1784ffc31d1bf94a1137a8627ec6885b840fd1adc34627b216522b0b2ac4e6dc9ea36ff7b6d0a73e125dbe724716179e902607ee6bcf28d34f3fc6faf3cad5c2ecfd25df23eea096290755043c0a528dd2d6c3b92c5140437beaa0c2b895a5e0b69cc9f69b67170d7f2e49c5f1c86e7dcf2be199f69e6c1bf54292c5b9cd9f3a5aba882c010a02aa26b5a862f0831024f11cbb66c1ad02c2b5cead66dde6f4b9a6d3c376053cc5ca5e774647e6c74d36d9a79c4e06b3697cdd55f9a993a66a884450de97a28e30f6522f3856fd0c0842cd1a75c98195601a3b651c1b614e6d5a51fff27f1c683df46665e7aa1d722ae6f272d3b8ad924122c405023806206df3cc09e03a81c24b5f090433bf032ac514261a35f77fd77e9908b20c3ff28f766ecebdeea8bcc177df54e4bcd5c77fe59b3cbe6860c17ea3c077c1ab304a4b8a8e7e1428e03f62ca11e33712191837d5119ce19993fdfffdf29cf794772b3ea6f9e1733b70c6e45ffbc64c688f99af9e28ecf7ca599afc5b0b7307ec9f314ee4885d8c1b0bb08e20954eb9611d88c481c643655c6d5a9cb0ea7304fe936f7aa98b9f18ce3f09c670e9a5455bf310d38937e58a4fd4233bbc455c007896f180d05e1a032f1b921bc8048e6ba36f132ae05fba0cd3fff99b11d61ae74effc3a0973ef77b703b3bb75ecb39af995e9059d8ef21b52405416d4c5120dd763e26a3ebc0b15a6cf190f2d9434cac6dca37d71661dbb8f302ff8b0cb5d896d941d83cc5f772f3f56332f3f61e01b6573ca8f3aa63017ccd9c1559310c1f1cd89428269e10639874271e148c8ee32ae5cee549c39b91a4baab78f9f783c661e5466200aebb499bef4a066be63f393cf16695f888721a10ec2790e830a2885dc40a06a9e8717cfd4b6951984e0eeb2310fef9ec2bcfab2f1cfc6cca506ccc77bc71d350aebead7f4d6d719a26cf1b95387584c028e612a14710bc149b3c0962861cb08383b5fd819bfc1aebdd29877f77b23665efbd2f3c85cd0b6d9db9a79ca6f63ee2f9b6b828fb365081d3cc4d90e8293c91e0e2f29f837c90455023e4e6e675c0b36af6f0af382ab1ee894d8f35b5d90f96d79eb5ccdfc7dcd31b794cd75092f8905c5a417fa1053423bd241f3a3b793c0203e304225424c2be3fab5e10353983b3d57a95f621b4e13641e54bec389ba8be8b966876b69e66857d092f8ae9f9bdc8794cef1f15d42010f23a169084271cf24e4a25957f38df93ced1becf0d3e789af2b3df95f60aeb88fdca1999d31334dcd1cad21d5cc0a127c1f9238bce907bfe13890d2d904ca135358010b428b7819d744f71899c2dca473e7f93173ddebebe139f75bdef657cd7c7bed97cfd6ccd1f2a82571b75668124f80154bd439a756b4410c3e44e6d9c28613674e46e6c363d2ce7954cd15c937b86f6234add4f0b52aba7b72e6a1d9e58f62f61d8f30d4e052260a2de1a206ae6c2c08197730eff764c6d5a973c6a730170e3b6963cc5ca55ff4de7e65e3cb94666e77e299c769661434f8555f088494b000873808c395cba8d30f795d605005ff19073d38cd68cf9f4c49fb069b7fb927b18d51512b7397db2b0ed1ccb5d65fb557f7bb479b7b62150670742e856f30d01dd8ae69f80aa7ecc1d9b9848281908ce7bc637a0a738d45af967e2bfe060ba621f3ac1baa6cd1ccd3baedd85c26a72cbc2c8e2902db671d83785005ba161c318f8607959281473d4eb3daf3d2d96931e596872ac4cc759d1ec87cfd39db0ddd32fed41d2fae2993eb2a4bb445a8a4caf4a01e44052ec7c42a2b80980295ade379dcb669c67c63d877697e63ddc517c7cc839a7447e6dd9b0afed72ace452ff9a94c4e5b53df16bbd4253614d88662b87702b7a389d052b88edba396306d69668c295d7e4c619ef2c15633662ed5a611be1b759833ff2bcd7cf8be56b335f35b282dacaf3921344362af8421ade88d0bdfba3d9c1974057c7d54d9ae9791f9b3a569cce7df724372ce9bdfc1732edff5e593f4a8cc81f9b5c76ae62bb1012abeecb67c295d8293bb5ef426e3c337c8282e52f0b88292d06219fdc68e95697ee3b4f2f7c5ccd3bf8f064ebe3ae5993b35733de7c4cf35334ef794d7f255411840c0037b0e08be27e34b1d0b09c3160348f9a9f47d2b63cebf6c4d9a3dbffca58899ab4c7e03991b6e3ddc4d33cf197eff879ab9f0f3829fee4824b7984f71104952cc45f10a49500aae0fe223b31503bbc9e8ebc6ff911653ee7bee7f89df78f420be2fd7bf3bef67cdbcf89237ba97c9f57069661bfcb0c0f7653bc4a95d05503e54db501e3a6e203d7c5eceb872b9e5a614e6fec7fffd66ccdcf2b613f09ca7ecde71961e6b5cfaf7beb64586ff57c5c348a14fc03e709b4a74ce804220c4d8b8c1cc228e6056465f57f8579a7f1ef26ce78479e635519d32a65d43cddce29aeeaf96c9e5a2bfc4d7ce84534b451e8e633f0f94afae2f81cc72a805dfa5efb8d9982715a43057ea50be7ff20db26830a667d7f3fa6a66ebd64b9e2d9393b5d5827d0c1c03f73d9cf3c7ad7b21d833e72e9cb3f450c22f08dcacebe5fbee4d616ef1d90bc392735ed86413e6a28fccff4533fb8b4f91479d33e46f8e2704be92a0ae42e8da287b87d912e479387b6cd30cf7487a4e2385b956f961e3927ca36e2bccf90ff9ef54d023e8bb6e98f3d0d1cc103904838f8e305461230a5070321a120d11988ead6c95f11becfaf681946fb07ef56589afeb722edaf309f3dff84433d7fe88d42b93eb4dfa35ae619562d2c7c134ecf26138f410f96742a07c312d059c19fd468714e62f2a4c589fd8c67bc390f9b5afaa6dd0cc9f8af95e99dc7c9a5629a516b5c17538c08cb9a8c091511ae05e8ec0b6b0ad8e3a19e3e0f79d5398ff6ad47957ccbc565447e6cf76f16a5ac3e2ae718d0dcd1cedbbd282b04c314b9ae0dcc2d053e83700c5816a963a5e000e853bb66b67631efd5e0af3b676a71fd732b6e7b69bd06f5c76d59e269af9eddfbfb8b84c4e9e4f335b0e0f0285ef291c25cc2409517b17ea412fb42d6c0231bd8c7ea34bef14e69b86de5e36669efeb488244e06de122bb33cf67dc7733433b686dea3f582fd205a1f86fb39021495c6be15c732b1add5a2269836c06463feae5f0af3dee33f3d3566aefb613564eef3e3b89d9af9d20a779ea299b12de8e7b5b17aa33089c4a79400fd06c52606d7370dcb0f7c496d5f394146e6cf06a59df3b06d1563e64187ef44e6d14b7b12ad3754e98e7d2714c94535b3c2474b08d486e332f0cfcc21b80c1ddc355110d4a908899be54d13985b7d9666cf4fd5bb20665e6b57c79cbfffe6cecd35f3aca5a5ffc9cff5386b096c255ddba18a1b4148a30d5928a5caa03c0c2c48abfdc036b3e61bfd87a7303f76c28aaa31739566916d7436562cd2cccf1d78f1affcdc8bbc16490f5de6411de51a24b4504406a20b8bd23c5729619ba6f4b2daf3b65129cc83075e7c55c23c7707fa8d8273e657d082657326d75f979fcb45d7c59d1982fa0c872a51a8d645a91e0e7f0b83f8dcf3f185d0f232e6484bbf4e617e76f16334662ef5b981e75ca6c5cd0d34f3e6afc258d333baaffb2356bd714dd3710243d9d112111c8b5232303c28c1a150914264cd91164f4c611e79cdb06b93733e7b1b9ef3cd731eefa399bdb9dd7ed0cc168ac7e8750532e0d20e5107c4b6e11bf4d13f53c73542c7870ad167810a32c6eefd5353985f9ef1e70d2d939c7f2e32d75b5961b56636fadc313b3fd7b3bb3eee830db81f803d5b968bd3ce8e32b8655a06f12c215d61abd0cdf836b16e660a73c5f7cfae9f9c73d581681b776e6d738116977ce1bbfba614599ea4b7597061793e9c3594559ec43de021dab3674893904008135c6146bff1f5dc14e6358fbe755f62cf9ba339993b5797979ab9529bf65fe5e77224bd38c4271eb83b6e1aa6e5e068b91518be54a88a09858089f7bc61c6fb8d03dfa7305ff0c1dc879398523f7a4fa93ce8eac19af9c7e9d70dcbcf0d826e8cfb3851f54d3103ca415455c3cd9014a7416d0ab1c6a6bec8d2bf11f9e79fd2e260f54bfd2447badec398426a1b5b3473cbc30762e9f9a853523343a0f3b8027b3651dddaf5053ec1daf8210adb15a6ef1291d1360e2e4bcb37167cf34c72ce27d5c4733eeef701f5b4a26e78ad172f278872a44d71d36418309fe08506da86c4512f9467a45660dac2b2434766fc0637fd9266cf779df44292237588c656ebb798dd5633df757edb773533b642548cb725058e6d11210d259019923948e94ccf20a8b14bc0d9852223f3e76b53986b3e7fc76b492eda2abae7ff70769f799a7943ad2d2d8b6c0ad1ccb6824f4e9a0158718077b9388fadb865401918dac081daff19ef37d6a7300ff86960abe49c9746336ba77ef6cf495a00fd70f90b5f29225bac976951d353902485867470936c804dbf2ad2fab74c66058cb859dfda566c4ecbebde59df3ef1750f0ec298f271ebc5776ae6a65b6e6b9a9f9bb14ad6ad0969e2060249b1af00fedd603614df824a2a3d0fdc74d61a76e4b634e60fcb774b6ca3f04a3ce7f5eeb26e9ab9b05d75959f6b0ad59bed040127c75df07026d6b026c3edc28e6d586e607932147ee0647c3b9ebc2bcd3f576ed83b39e7276746778cdf56fd593377b8a4fc234562f75fb1e81bf59884d4d927c0e37ad8151ef0481fd582dfb2acc0cfc8bc665f1af3f8770624f9467807fae7be4ff5aba897559c7a469d7b3533763337d68b0f8320f4ac1050240a38b8c4c34911c8f07c057f11ee846690b5afa0c3e1b49cffe99a4313db98f5329ef3c1efff782e5eb0f1c0889b8eda31193a0a85bc70be31bad590c2e0a1b0201755ae70b9ed4b37e337b8aef5c1ff9bb9cbf9f547257ea3df4e64de70f3bcd19ab95ee306b5f373bd6af15e4c5b3844fa8181ebd22147b299e1dbb88836c4ce571552c132fabad1efa4303f36b3fdb8c4363afc82cc0fbc3d77b7665e75ee8f243fd72fba3dee557321ac507c87f51c149fc5fb3a474058f47d2ea9a328cd7827d3a7530af3b44fbf999ad8c6b5879079b318e8e97d4815b6bf6a68666c25aeb243df31da010ae751c36638a5cf98c2b7e310c009a1843896c33332afeb96c25c73f7e159896d8cda8ccc2f759fff9a66eefae0159715593d5510d729506653a8071d2c0add80433d08df9f41890d85b789f34419f3ba493d53980f3fce172477059527473185cf9eaa998d4e2b2a1589dd9ad9344de2a3a6871570f8064dc8eb18c5fb0ddfe2a6674b1664bd2be8d23785f9e5aa4f2e49fcf3dc1b31a6bc3bac5129bd07eeedfb479e59a4eed6db9f1d86a2353e4345129c8d77b9e1e3d4310b081514ec99938c3952c1801466da67e2aac436c65d80f7fcab3ade7083666e796ae7f24576d7ed8ac74d42e14825c05b28bcaf0b2dc3b73cdb20be836dc6128af28cf6bcf2d314e63937cd589bd483933b604cd9fc6fbd169ab9c790c2bcfcdc9cb4660e44e85154bd223e8e4a44fa1ecaa1b8a49689d084a2dccc78ce6d3e4f616e7069bb2d89af5b361eed79d1ecfce59ad919def6605e6eae7777ac9f624b81571b92630d8bfdcfc203e76179964dbd404a30eb6ccc7b46a430ef3df7eb82c4d79d5401edb9c30de3cfd5ab461f583267575eaeeede13bf697a54850a628ae9a22209ae3e52a66990d0a490567b027e65ccebc6a4306f58bd7f7f520f3e733e325ffce4dd8f6ae6e5ade95f79b9a924cd4c1c8710d39746c82da8535c7c3be6507c1328bc1d8f593e251973d1eee3d362caf83aa55ac5b6d135ba2bb8bfc1c91f69e6c65ffcba3e2f17bbf7c6fd1bcaf3c0191b2a44514861fbe03228fcc3767c3869228499d13f6f9c9cc23ce09777cac4cc75ff8d44a3baf75cb15e33373ddcf1d7bcdc8cb26626b61f28c22117f570d3bd4930170553010e29020bd28d30635ef7fdf414e6677f597e4a72cef52319dfc5af94be52af85b64ee9b02c2f976fecd3352c24431caa3e4898517d9862efa549f01f5caad0c38a2b635ef7e1ecb4bcaee6a1b39273be8ee0398fdfd4ef19cd5c85f7fa312fd7ffac99a5ef510e7594814f6e60cf04628a0d1e84040ec79d198195f51e69fffc14e6356fde5639666efc9b85fef9f98fa78fd2cc67ad59352f2fd7dbb35fc7412515719583da3bb80d0b6b2bdb64063e0d0a4845c16d678c29ed16a59df3b37f5c1e330ffaf83c3ce70d832f2bd74df7317ed4e81bcd1cad54f927ee9341f9c7e88a1f57aa60b38cb0812c90148a16db0e5c99f1ce7cc9cf69b1fbec6a35137b1e310e97ee5cb261477dcddc6365ed099a19d7171a07749dc2f012c3f7e11bf4703931f6d7b90ae5e7c2003c1fae38ca7867be7b450a73af9967bb893daf8ee2e0da9a95ded6ccf57eb3c768e66835fb411d070125f41558312449d84d207176c934a86f3b043ec680ca8cf63cfbd714e6c1136fbc2639e7c915d136b6fff1d71ccddcece0ba61793989e442fd0d868e475dcf84da0a75b4ad10f74486c40888e333ce78209c8c71f0f0ef29cced9eec582f66aeb279349ef3c3670d3cb17bc47cdef68e9fe4e5de260a632d423bf421e26159e5a060a56d4005480de2da10d13d02454cc6f7c1351b52987f5837fed69879ed47916d7c3daad51d9a7975d531fdf3725a6887e25cd4f36cae22e12b9ca9816c890b3b340253389c48d362597be3a76e4d61bee9fb3fef4ecef9bd8ac83ca9c20ddd3473879d56cfbc5c8feb616dcf81edbab62d0ce95a0efa3a14bd05af674285057ec33325cf1807bbef483be7e7b6364cbec1af2e47e6f7f73fb858339f55f5f2ce79b97bfe7f75be817ed8e12ee475249ab70266284e0cc26dcb149ea32c33632eba7b775abe5169cf6331f3f44b1e8d9630e54f3ce33d9d3f37efd6362f5777976aa0e7073d1ad9b36ff9b8f0c0b6c1ebf9b81adc0bcdc0f7b86567ccebc6fe93165382f26112537e8e6c635a9bdfefd7cc832aef7b5333478ba3f439fb9e4303a10fd6417104ece797b847ca3199c0a35619f3ba81875398c79d7746d384f9d186c8fccad36ff6d2cc8d6e5fd45c33a3d077e7d8364c422dd78cea6edc8711e9e4506678160f2ce68b00024e36e67f5b17a6dc31eeacfa62f20dde7d45a49bb5f784959ab9d69b17be78946d6033bf50e0e124c3fb3a4035fc00a0ec9029e928cf915ec6bc6ec83b29cc97e7dbafc7cca5e804649ebbf8bef37b44cc1f9fb9e57f9a195b02bfd6ccc2a7361126372c2230df20d1ee0e000f8984d0e898d2cf68cf533ba5300faed0b8751207db4d43e603df9cf6b866febe6dbf67f372f748c735d0758ae75a8120505be11a0c1facc487c4c810d471a12007163f63bed1ba7b0af34d63bb76487c5d41f49e52e6e43d1f6be6ad6d2ac4ccd8dad33c660e2dc5b8c38dd0765049054a6ec899f01b0c21e550a86091f11bdcda3385b957b39fbb25f63ce21f3ce741f33edaa89957bddd30668e7ab68f8f98bd904b86e3e844e13b2c5e1344dbad78604b574299c2b3e61b83faa630af597dc60749ce7f795764beadcd8935ded773f495473da799a359e51322e6c094cac4c517c2c19947828ab6a68bcbe7440801d1824a2063bfe8844129cc2f0fa603137baefb34d62953fca79fd3cc551e59d84c3347ead89ad9f398702836d499a8b9484dbce70f2cc373025f9854419598d19e3ffa2c8579dc9cad4393739e1acde29dbf67e5779a79eda0bb5ececbbd0f6adba06e18708543bb0ad7e31182cbbf397c8d0a123a4b3aa69ff5aee0d0e729cca7ecbde9cb24767b4f2073d753479eda536b07e73fd8423337c14b19cd1cda3e369a7bd80488731302f7199890d7096ef94a5844c98cf9c6ba9129cc87bf1d343e39672f9a03fae4e3fbeed7cc7517fedd3a2fd74bac6d83daae6021ae84f2a2d50010c519be5210c15c668544b1acbd97cbbe4a615ed63def9bc49e9fec8bcc179d42fb68e6fcc657bd5ba4b6d2cce0d7b8f4a8307c82dafa3e8073c64c23a05458d4b62c47648c83ef4f4861de5bbdc99cc4d72d988dcc9f7f77f91acddc73d4ebdd353364cfd3066adb30994f04fed991bc828b9b1e7ddce8c22495227042ecdacd38a73935cd3606fcba30c9913e3b80ccbbd8d24b7a69e99b6b9fea9d97d33bd3ccc4669e2920584b1f0d4470d43901cb06bf1d2a5f493be0196bab4f67a43087b7345a9ae41b1f46f3dd3f870f3fad991faefd6cbfbcdc9db9b60d7c8397b86d4159d1dd170470a8ad02701ee04244e09b7698f1edb8d79cb47c63d40fab936fb0730ff4cfadffedfda566bef88752033473b474a1b48e29014667882961806a48b8c2800b8a4d49caf4a974395319ed79d08214e6062f7fb021b18d5387e339bf7f43b9937beb19843ae3076ae64d78ff9c17313b9694c4742dc837e0cb736d1118429abe61e21da3edd8e00a33daf3db8b53986b5f7dc2b6c43616451ab983669c799f667eeceb06f1395fd876eb3d13f2b5af0b94f4fd68352ccae2c11983a756c4707c159ac414be3433fabaa54bd398b7ddbf27b92b38ed3164bec0d8d75b33f795eff4d5cceb31e72f1b312bdff13d48e7a00064a8db1312a8bb438a8be07d9b33175c74c6fcf9cb55c5998b29a6bdfcfc1785491cbcec0bcc9136beb175b5665ef2c9c2f8ae20fa7f2aa76d03fc306184e29c66b4d6027b5ca1cae2f0f5912070b96365f41bffac29ceac7feb881cdd86d7979fd03a3ee79abb508eeea7ee7f5cf841c43cf6f9b7ba6ae67a98239dd440eb23a9d00d856b287419aee78786005c230825e18cd2d06319ef64d6fd91c23ce0e6f74f8c995b9e7327aa27566c31e231cd6c3cb5bbbd66fe06e7bbcb6b5f274308d21eae68c1bc8e700f57e3588613506e068cd966d6d9ffb99b8a336bdd9eb38ebc012ddc785accdc78613f7c871dffdbe77d34f30527fc15e71b7b514fe6e488593a5c9a91ec1f8a55832940ce1fc22769bb90f14b8e028519ebee0ffffeef6ff0cc237db9334e393b66ae7bce97e89f57755ef193663eefe227e3bc0e5b02579e1231f39099caa6dca0a18a62b763f89243dd6dbbc417505b8559ef37baef4961a60b375449cef9a78a7867be78cb3335fb44ccdd475cf7bc667e032f734fd7cc0e579eb45d8378388b87ea9f824042ea798e175a425a3c5019eff9ff4961fea1d51797c7cc559e780a9907f5ada334f3ac21739a68e6c8a02ae8386853d7f620f0d9f821eab7634c482dc83a020185572032328f3d9cc2dceb97763562e641f6a9d139bff8715fcd3c6a6ebb5033471be3ced2b928853c8399104408ee30c38b192c05c153139373a809a5953176ef6e7de8ff66ae3df4363bf17505772133a9cf1769e649ab9a352e62cf151bc4ef29b64dc2c00865b4bf072a43810e8fd8ca0a7cd7646028d998a7bd93c23ceed30b5872ce0d4364bed56996df3762beeac3ff3dac998715fc74877f8ece454ddb5638e62125eadba3041553143e44df2204a238a3aa24baa6133aa5800eb87affb50968f0e70614be796c5d2d0dda75c3ebf76bd0b528d6739e0e7eb6a214bbf6711816038983c26470cc90cb31cb528ec56409405b764f01cd7f7ff4f5c9d7766f373cd1b3af68fcbc06ad34a9d55d1af4516c29afa46f054c9f80ebb221a7e7b87e5440c2c9a40f862ca8236d2e5cee95007459cf14d02e437bde1a834edf570d4346c5bcae9f6bd0e5b7efbfad48c8a8ac415dd793018ec90736b64839c26078ac8a983eca5a725794047460df14d037c34177253ffa613510b470c113eb34a8d3fdeb9b356837ecd1bf3002b594273c7c6f302335634f9a38ffcc0dc885c14998222056496cb4cdc014d0cbbb0f7f2009688f7743507245a9f3fbe9c6cf6bf7d52b92a05da41d806562ee4ef4ec03e4901084995086490321a1b683205d12d9e5df3e4901dd3bf4c747124f35e19d285b78f4d1fb35e8e5bbdb5dab41d760357789f6ae6628a585eab0b688d433b002053f2b5c89924c36f359496497270e2d0eaa7fabc291d6c3de0522f9988caef831fdd1a86f670d3afd924d9e06ad8df37397691b65aeaf3c5c6a643978256141185090db380eb703e109283d4af4a31ff1dfa0671cc9cdfda54f24a0673440f754ff8cfcd91af4bea533ddbc9ceecbe5fa3e9e4074829ac1f0031ae99fc161a23482548e1f4a6e865495441afccfd1c541b5eeee69472e1f363cdd34496e1fbfe04f00ad546dce3f1ab4f6139562d0ca1859abc649971d70885246183557803b02238054c66184d91071192dd1573f73dc7fdbe811d0356f8e793ef9987e2f83a0d51a7f54bdbfce5af69dea68d0f3f1b5e04a9d855b41209d00d241543076392ae9b82a301c6a13879ac2f5052d01e8a2a9c5414f8f7ee51db1d15776bf92a484bd26ff06a00ba7d6795483ae225dadbc9cdc48351d427dcf930c4e34f0b05c086d82aedf332c2225258e65db6149a4f6bf59521cb48db1a2b5b162679d9cd4fe81cd5b5f4f585fab89a5cd451d577a9a35bf5385f85023f9b8eafaa74f82104a750b9b8e85be9b14f84e2e6c281f8819e026bf12b0b659519c55d7ba6715590bf05e7baf75e2f68f9b86d2bac78d6853a82df5811b4610cd1a49f4eb7365c204e76e4242823b425c66e3f249e5e02b9de940e2ed0bab242b8dfe5efddfac958ab0fa1d2a764c3effed2fef04d6563b7f1aaa59f73cd28de5e5da8db5b14a57d9129c153e2a631bac74502d3c349cd0f13818824b4379e2f0ffffa95ff34dbfff37edf945687796baf7fd8476c35378b2554f9f7e8fa6ed5df1e76b346d33544cbd423b2bcf619134950aad101f3c0303032c2a90622f8a54ae639788f6e30dc569755d5bb908edf1bbf33f4c3c56578eb43527bdfbaf0eff77b0e971b09a8b33209a36085d6a05b66384f099e1a24608562e310d300dc7058f0015822a116da7adff7db64569674efee4b38476d4f4fd407bd2f8ab466adaa67d97d6d6b42f60d7abf6af4a593ee501fca921361ad8a81b1f49624aa62072f1409a6186fd8c66dde6ef1714c7d622a945b15b57283d26710c460334e052dfd7e11abbefd83f63ecdbb08754c72fe531db169e32a88d6fe0105671ad243128b3cc80ca20a099b0bdbacd57edf9ef985b14dbae76d5e4c492875f88d87b9a0d5ca74bae5d3357c7d8f5713c48e707018af7981e785cee61f9825daf56280c8f851e858fcfb6cd0ccb975bfe7fa59d0bb857c3fac72bda29a2c2713d74d3a15aacb566cdac99229b538ecb29a71c1cb7b466ad19ca3d5272dbdaf28f4a8a4445bbbbc496424aa5d34991f04f3629a59b5bb9753b2aca79df356bedfdb3ede7f965fdf6e3f16c4f0fbf8ff9cdbc9799f7fdbe6716f79bbbb7e6d5ce3d808b7eedb038dd24e51d714b8f7bb7d65083fdee7d1313ecdd976c9a3ca6a589bf1c4221c2e6961b60b480931a5042c28a04d591968438ac8091a9256717f71bff6bcd81432e769dcb372c4f37c9a58b50b4f89f0fded8de601f13bd9a604fba150c87091b3d5f85400c9e0edf86bc28f02d11b2d0223ec5d99ef03d705e00767171bf7da5fbf362cf7ce0dc8a04bbd6daa188fd66eb2edf9a7ba6ee1f0f2d36d88762e16ef3e47e1a3f8e714b33d46e410563ae616f83ddf0dcd07344e814b0b7117bf1a0ead8e6b7e373f7f6ad0faf4dfddf291d11fba463e9b3067bf38a13ff6ab0e3b1034d4dc60b1fe944925b01417900e183afc6f279388d7e10692e4450c0a86bc41e3bb4e6d5ce1d505ba774fa17696ed163282a2eefe8b9a6abc17ee71f83cfaf5ba59463b235f0d6be56689fb98b55ffa82c123bc540700832b826b2c0b9ba4f8fa8193b77c057bb358f7e97ae765882a2cbcb1ead7f88c19e3d6c7b17831d0b9f9b6cd80b85ab51f39c48172faab1c9897b9869b8b6e2bead82c02b0c7bffa8ead8c6dd1c9383dd7ce7e9bb524bf2d9f178875a7fde9885e64d60eb932b936b91b80fd5dc36843c0c21d0a05614c978ca1b041e9a401c02ffc86ddf074b5ec09144eced636bc6ce1d5126e5bcfda9dd7e61184effd8f2dd65d78d4a64249a5d63b037f63faafc6fc799e05e1342c1785b5ce0381d2d62d95701340c321238a15ea1d86f8faf8e9dce2aaac2eed5b9ac6e69823de9027ccde83262772b83ddf221161aecf35151e918634902077631781ac8e7207cd612076c52d7c2f04472c194470a1c75bd604a7eecdeafb98795a676bb498cdd77ca37e621b47bbd8b7b1aec6658186b2e532181a2115676db2edef4701c0e2a3c65f96ee8c2067222a64861d8df3f9f1f7bd945b39b24d8b57ee986d8dd77b478d16037de7dfbad39b714e6de3ad09e603e9c41140c43dd0e0853c1c35811939212c80d5d51e06aaf79e900b01bfcfdb804bbf8d57b10fbf9f99b6e31d86479f3be06fb2f583bddc4acb6529058c1b6e61e5ea9065e08bf4160e2bb9c52a189d6be5d18f6b3afe4c73e9e6f3d395ded5b2e43ec236843d760dfd2b2c9bd06bba21f9892462626e14ac43d5ad868667970082d11eb0dfa52701ce3eebb051ac0f173f263af5e59d22a5ded1be2bd7df9d537ee340520fb6fec31e0778f488e0a997295b65c084020dec67ec9b8dbd38ebcd015422937280cfbddf9f9b19fbfb9ae95aef6ec43d1dd4c7d67c86c83ddaa05199473b165deeb70f8033ed9598e2b711e3a4a8e08c7b178e8338685bfa15be018f7c7ff730006f0ea415e825d26bae36a8ff8b9f76d067b78dd3f27cfb937606ffb618997941e0451d20a436c0bf0436d49b0d75624892b292581080b74eedf2fcd8ffde19693dba776fb8443107befd1fb88c11e7663cfe4e5fc112cd56b605ea195063b07d69a06f80a2db0c62944c1e3803370447891ec1486bd6c797eecd1dbc69f93626ffc1c6f6bae39a5dd4fa6586fe3597f4f8a6e7ec44110f593db4f00b43dd7a2360a8de3085a89527e240c7528280d425ae0de1eb5223f76f32dc79d9feeed57bf446cb5a3fe1b067befc26fc71b6c8ca49ea997a4c09ab39048cb89fbc56d9ce74861a7b842398c41a0628b02b11ffe383fb61cf5789714fbf12d88fd48e349f719ec23fb1df45c4e2b862963d151481da1b5c518c5525f1b4793fb3624f20e0452d28e200c2c0cfbebd507b0da671e7e69825d727733dcdb13d79d71aec15e707f51794ee06a2a866c5778d461d45244a2f29900e70e598d652b1d8440e89042b19ffd3c3f769d314f5e9560afbf422076c5bf4ea96bb0573e3e6f96c146fdc15393e22c94ae0d21a7c199759687338a035be1e41ea93d1938e08a0a8c00ffbba9e6a42c17bbffb69632c51e7d28623fb377ed52535bbd60889c63b0e3d26a5307271857be86503b1068002329ad80b99e4522a91ced8401eae81784fde296fcd98dbb6aeaf5690478ec79784fd2f987b6830d76df6ba727ed89389d655aede47e9202b82616d5148b7d6d812203ca12b614f8f2a3a45fa073ffe9fb9a37492eb6dcbcecb6d400b6380e2b9e163eb7871aec79075f9974829affa449812301b92f092c413831af2ac201f68844ca57c40921962d0c7bfd8efcd8adad15fdd298e4e48f117bdc90929da6a164c58c161ffcae414a8a884a97f916a5321e6a6c83bb7189a5020d6e53724ff9057ac971bbf363ef7da5a8245dedb64310fbadbe1d5f36d817bcb1bd22a78f7c7fd2bbe3abd0c707a1b8b792018d60aeb2b4433d30255ee47a05c6db25fbf263d75978daffa57b7b646fc4defedc3b371bec36cfeeff2ca754c4b4fd69e5529cc06a298ab3a9021b0e27d5384ade81bd02ff0744a8c2b0373cf06b5eec2bd5798fa676fbb5c710fbe351cfb435d8a35b5cb039a73af59744c54d098e0dfb4e3c45c4813c27c0c5674ea458a87d578585dcb802f69287f263ef1dd16b64ba4966ff0bb1efb8b8e116d3fc5736d5da9a73e160b01561911b3261c1da7aa6214640f407eb4e1d1570d766acc05cf2d1c1f9b1172d2c199b6e92eb9e40ecd96f1df19cc12e9a55bc3de7e1ebe744a3976a5742ceab25ce4db21da0b1f181c616beeb48ca20d22a0cfbc761f9b147af9e3c31c15ea87fdc0fd88f2ebc4325eda1879fb4a76e957cac69d1b6210d1071cceab89094853e64375a31cb064c0d0970a068819b64c7d307b0491a9e342b5dedb033ae76fb3e3756988ee769278e3fc428ace03df1c4dd896a17844f2838a018a4625e087e3da00a7c8ee76011ab8f8da28561bff76c7eec0fb53337c5beeb52c41e3174f0e306fbf687e61c61b0e3412889c003a114f5c6b0b80f4591510c126fba552050c5d9a660180bc37e7d627eecd66f9df7efd4ddfcb212b19f5df85457833da1cb277f32d8a5287e6bb43464e0331e117c808e35a51c88b77d144d70fc3020903b6851e091dc37353f76bbc577bf9d1ac02f6f426c5131f570837dc1a6b2937e871d600530877044f938f282d8cc92cc7562bd6fa6290f025d6028b5ed85fcd8abcf1af541ba49beba04b1a79f357cb951a7b8981cd12a4799d560eb000ea4ab9545fc30c250cab50205702ec181f0ae1dda61815ef2a597f363cff45ff8385dedc64d10fba1fb663f62b0b7b5ec97088fc503278db00d58664509c7f96b215e144bc09604ec2177a8cd79c01da7400358f25a7eec26f366ac4d93b27f9f85d86b063f7c81c1def5cc113447bbd7601301094ca8a505ab8b02eb8e63491bc240d70337a4202871b92c0cfb83b9f9b1bbb55db839c55eff0c628fbde78b7a067bf615fdcf34d8f1c80e23d7e47b845106f93ac50cc1e37851ec84d4921c323514269385bc94c595410b0f007bd2575b5377f3f64e4c133a0e0cdf32aa3c2f3f7050c71c15ed44cd2bd25271481e89e0f82e1912c8dc550819b1648a3a1c4c4981abbdf1ad03d8db87c85de9de5ef520aef6e965c53719eca10f7fd3d960c7831cb727c346884723d8db0a2213dcdbb62502ccdc3de212cea300f00bc39ebaec00dc4d87d25f52bb3deb3cc4de72e19ad606bbfffc832efd9d461d631ce20e875b8ef4e379d7b19a288eefd3be5424903e2f107be007f9b1276c7de2a007933bc0791b10fbcf8b9a7d63a4c83adc75f3d53952be065b38dad59a626936d80fcff628a491445a2c64dc8f3c9bf2b0c0787bcfcafcd8cbae7caf4182bdb0433962fff5c52f2627d8174f0e0df6122c2331ca8b511428215cdb8a1864089e1d41e0eaabc862e0ecb9c785081d9aa19c68edaafcacfdb7ec6e9cb0d63a3d56c41d7c3a0d0dabee79f40d45552a0a46d952c83024910c2d1e4122e305b1caba1b580113365670d99840fe71d6916b0f20d6dbd5f4b894f5920790f5b42f273535aca79d52d2dbb0c626c328b40a2d2386b380453c9521a42ee48f0c4c1dbe38d93a901422eb3fceba7e437ed6b9179ed334dd03bfde8baccb8afbac33aa90033ef2fbe77813c36af3487a14f62ac74a118f6195a6a72031979a48190481103203ebdc2ff3b33ebfacc75fd2759557ec03d61bc6741a6b58bf99fed10345558a7f46ad974a7c2ad7105850f47c1eeaf6464458cc9784fa017185cc5256f8e50f07c07a774396b016bf700ed6b314fde5f5230deb4d7f5ff99861c502ed6189ea7420a81b38789f1441e04cc08370c63d2b7404134ac29f855e06d6f1bb0ec00e742def909aaffeb17273a977ee7f8c6a6cff8d759e36ac8b5126c8a87a9380c161d7b6852290a8660a3ece76605d432fd4d486e8ce5619585fd89b9fb5f78cdd9dd2fdfaee4dc8baf70875bf61bdf4982051a7c7a4b5f4eb645a99af6c25b4c539b28684e134492c1662e01eb87685af33b0eedb5f9d356d4dccb9ab6bf1cfce29eb296fc70a68f7bcd9ceb03a25746a5155dd8751d2d7a1620adbb728d33abe0e80b8d8f7f16d1c1f875c47787e06d6e74b4b26d5dcfa99e379db2ef967caba750fb2de7462eb5d4609fbd0f3a6bd585475d56fa62b60cb00c5498c8117a1e28b077bc053dcf2255e7df9c02eb2ec810183f2b32e9adaf1ea94b5f77c64bdaef3f272c37a7bb391330d2b36d79e64a65720808d0844e1a86a2d941544b00788885cc7096d48a7b3d8acad43f2b3f63ef8953065ed360c592f5a71704fc3da67e9a4d98615c525fa9be920da6638f42db442cd2134a021783017221a177c4118823be09089fe71d659c3f3b336fff4981b12d692a397600f44a7d1735b18d68b771d3c3f4775de4c8c093df8c60109fbf770caba0b081cc24770af3a742907ef90650fec7c323feb80ee17dc96aeeb796f61954f8383cbbf319308ea1c39e1df45550a1866228fe41183a4d8b304caba78aef42d898d930e9c2c6543de2975163bf0c998fcac1b6bb7bd3b5dd71653700f2c396dd710c3dae1a0c96fe7f802c3ca20ab64b039ad404032eff910da7201a90f8407ae14846a12ba1958cbca0ee06c3d327240c2da745d39b21ef550afbf19d64b2e5af15e51956ae38624df216140c1aabab687d9a58d556ba85be5ca902a1f0e9cca52623e64727ed60bcfadfd48c2da63dd6df1d4e9715b6a1bd6573b3ebd32e74e6d7d32712002174535a494362a1f7a587b14108b41eec3c1f7129f6529dddf38ed00f6c09c6b86a73ef684db91f59d5664be99aad2ae6fe7d545552fc09f2713df21f60b04871401af86b13c437868b31c88609896e02ab2c4842f97e7675d5632f7a9ca78e072642dffe2f37e86b5ecf83b926957282072bc619591d070e4b5a5e3695714d615cc00b308e3c40da2083c6d16d627675567ad211eb8b65159c2bafe6289acdd0fdeed19d61ea34ed89a738963a63d72c7f65cc8bf2cdb71207ef570ba870a22cb954c43fcc5951fb00cacefccae9935b732b1d78eeba7a6eb7a6fcf58d1a9bede6626459d39aef62ec38a69c1becf9249d8ae743844ad14383126c43dc0944535e433811f7a8ad95962ed79d5594dec72546e3cd0adb43cb5596fd6c7f8f5ee6317ce30ac45c567d7fadd8455ec31f323aaac0867a598d701ed7956e4780a8e1bfc8d66b103ab17d5ccda28b72dc63d64766ab306dd897d51a5d78d0e0deb91478d48a60dc6f67575b2ae3ee4dde054238dfdd0908ce37409dfc2aa33ce1823902366609dbeb4e63d7058eef3c5476a5eba078e9f89251574d519c4b05e5abee318c3fa1c26dd9f9ad845722a150ac3bb3a4680bc0072588b042ea59cebc80f9d2cf1c0fbd559e7bd813ff57258cfbdeac345296b9dab36e10bd18b27ef3193fada8dfb39999619db57339ddbf688271d885d5caab1795341fc1a807d958120e0ba7c4578161ffb7c4575d68ef1cfc139ac5b4e98b634ddaf47f5f91058cf5877f37b86b5f34bb24dbd2a654833b19d691ab9b61bd714a2e20a2358f301b10b83680042194d789646d32d3f19d6f72b59cb0edf027f7d7d767a91b1e0a777d245bdb5d7662c06bf6bfe4603fa439bd2530d682c996d4021146084a286141700cab1e48049654172e87941447444b3746defdb5f7d51a73f8f3f87a74d7c13ae6cf2416a59ebdf8b3bb576a77d8dcc4e9df2d2be9373e6bb1a50c15d9fc3d70c9f8f3dc621842e52136211c98427239b85446459d1810f5403357f54d91679fc33b755a4d702bb0fc7cae9a347fdff8506b4e7bd838eae57753564406d1d294db4b29c48e2f1071b1050852584824bee532fe04e06d0ed43f2815e453f4b63d653ff8bbeeaacff5e35c8803e7ef99206063456f14ece135a228ecd901ee6ae52b9a89c087e150c421838a1cf233703e89a27aa835e17dba94ad00bbf98b92935a8d71e125f0c8e1cb1dc801e7a7f9d5f8baafa2c5625a32303091b117bf7d052d9e61d4a5a6ee07928b76447991a4d378ca90edaac39fe54f61837d9f7ca961474e35d7898d6767eecb064be5e8b68a701c55ea72f0ca8f6b51ba2f78fe279be3c6e32e410bc4681722495d2e7597a8ccbcbaa839a82a3caaeedd17d56fe909aa73f6d401735fc13d9de80765db932197a8a55f27f3366df76a22864545a52304c011887af9e07168b04716cceb1de3203e8a4c9d5418d3bad046df7c645bbd2987a730fecda2e9d7ffb4d0674c9a31f6d2eaa527349fc130d85509057d91215683055e504485868fba87aa742ee6500fd6a5a1ed06e3b37ed4ded28fd164197dff67a99011d79f9f2cf0c682cd5be3a19c94a3dae1cf8ae7d945fd344a19c20b31c62c3e9a28a452c4bd7f69cf23ca0736b8fab3530f9ea7f6e8a0dfb1f2dbfa9c280ee3db271454ea66a40e1cce393170a0f617d9ca2cc0a084e80b7a9a021c51e739201f4d799794047175f57948016d7db8f2bda66c6c806269d5a5cd74d52bf58bc734d22d80f5f3c4e4dd4360a3660579b846d6bb90c00224e79a8b39cfa1f67e701edb5a8d56129e81993b0527c7ddfc1671bd0ae4533deca9956634021ad0ba97095853a4ed805e15b70dc6d704f9233e20b15a92c5a0d0317540735bf551da6f73f3832fdeafbd7c6affe8a5bbd870ce8f45e5fbf6140d1de1f6b8268db27bea460ebe1dc08bcb056962470b6b4475d5b3b014369d13f0efad9a23ca0abdb3e765c025aab4d3d04eddbe8ba370ce8490b7e7925e796ca80524f10d449469d9e10752e89d1c1087ce9dbbe40e59b2ca212af2cadd98556ca748cfea9ebc90968d9ec9608ba71e4f41f0d68ffa7fe5c6e40e37f3b494bc0e0732d18ce4187cf6790f30538bf4f11e90601962d4559f6e86bcbf3ecd101a79c704abaa23b37e0619ad8b551ab64b2e09677a71850ac097b21f9ea45108560ec2dd891183bdb103d859ac6b30e48e0098f902c7674e48a3c2b3a60c2cad6e961aa3f1341dbb75a73a5016df9dab071390f4026815652a1628cb0223f4e4814ca66078ee52a11e8d076422db20425ef55e401fdb065899d80f6585c1fbffa21ff39679801ad7576c95306142f25ce30a08180781e3e05e54ee0fbc7c9a942a37017158e92215711cd729886aece03ba65e4b92c015d3f24d6651ab868cc62033aafec83e10614315bae336fef81102cc2542488af7a6cf04cae0a6081bdc8519108029e658f6e5a9707b4f99e9fdb27a04dbf5a87a0f79e34728f01d53dea0c2eaa6a144a407dfc926d1cbd8eb5c40c27b1a3b8becd1ce27914e70566094af67c9d6f4567ce3a27015d38f43b541078617ee9e9e621a55dfb4e0fe68c513617525c4411e760941804276047c17b06811d5982722f52916383adca6247bfcb03baecaed65d5283ffd837f18ab66930c1805e3ea0ce9d0614a5c31aad4f5ea798268c7aa8df17fb7a8c9e229412c34acb8833d8a51940976dcfb7a26b375f92dad1db7f44d077e7b7f8c480366e78f72d3903930da81d785cc8c0b7a230be8af2c050a1e64d2021c2934180914906d0593fe53bf57bcbae48419fa940d066e32f3accbca39e77cbb7d7ffee8e173ec77621d6b368808ab5210aece230055bfbc2f56ce2d0204b84ffd9cf7940dbc9cbae4d415f3c16cd53d7e276e718d03647f79106f407ec4c3217e701633eb75dd894f82a812342516e12b86181452c52ea66015d5832a01aa8f7db5464c2d013556a9eda6ec315fdfeca25771ad056deb664e66ddcf86040056c46477317cbaa01d471f0d6dc86a494298768476b5b65099c870fac0e6a7e6b5c1994ac5ad52b35f84faec29ca9e1cfbba71bd05bf8fd4931505ce9bb31798e922c90916d4510ec012841a154ec0ff47d4209715c21b3dc947cfe70cda095e972effd5d6e4d57744d6bcc42dfdb5491d4500c9ed3e81f067445f3357beedb98d450f8918d558faea3e2c9c760f06dd4dd200e8fb8ab199cfe0ca0ef3c9a07b4d7ab57f449f7e88253b15567fdce8f1b9ac29495cdcebce8770f51118dc0b6c347fb513c565a63c10f4e8e722136f15c9c3f9805f4fb27f28036f962d3dd69f474cd18bc797ce4d3432e32a0655f6eee6440630df38dc91c2e227016a245e3d961a874277c8525f5b09c2808ad33e9db6d7bba3aa8feed4d49b779cb4a52cf74e83c04f5facfe9674057b76a738e019d326671d31906145c79e8a900b250bc7536955ff8da4b71a6ad13050a1bfbfe3868d9b3d541cd1f55829efbe69c8129e83d372368d1b513a718d0fb6e6f79664e72b72999361f84ca097d4b0961e3c4008eb3e488a51dc99d20d0b6adb2444fd326d6fcd5575e3bf6ee3ef291f4d47f3719f7e8da2eab571ad01def313f675cbb59518f32c8962149d6a8241ba7228186dd4a1c9fa24475c8339dfaddd36a5ed1c32a7dfda71d86a72b3aa5f94600ad7368ddc6a6567149c5b6a47c389e6760561465cd7c70f69608113450be25508c4491906b15c0aa66b2a34f4f7d2a06bdac12f4fd1923eeb88cf7aabc712e5d3a320df31efe6e0d8086fbaf6f6f40dbbd7d4c6b038a951d0bccfd6824ecc0411d0f88953c147dc74e37f87c1a5038462a64827a0dc6fe61d0c75f7dea372b9aca987a9d9e4e63a6c36722de0e6f54b76426ea8d779c5054d5ad69aa391ca1219ff785e570acec73f14d5f3828a6cf225b7088997c9a016fdcbc1af16ebef38db1e9ea7df4e4a7280270d0fc330dded5dd27b6ced98fa6515ab85284364e52c0c61ec0c3e2288e9d6b7614b9bec20eef0c78afbf5f23def67f7c3f2edd85cde6e1bb47ad9e1d7c83f76a17eb2c839733fd8f437024948343c7f0ca3bc4d09845dc6260413d465ddfb59d0c78fb778f8df136ff16af7545a7096976e93cb514f03eedf3750b83d7b05b5f5654a504b8cc5c2c848a796ea02d3bc4961de6c5051b8165c3d6732058767d1e3518f487f1be5e5b1ee3ddf05bbc0eff7a73e2c06230da3d8eb20cd483e77f7b0642c55dc1547a285f4e3404e81ec3b9180e3ec8879a78b06690ac91ff0100" - val buffer = fragmentBuffer(Buffer().write(message.decodeHex())) - inflater.inflate(buffer) - assertThat(buffer.size).isGreaterThan(0) - - val bufferAgain = fragmentBuffer(Buffer().write(message.decodeHex())) - inflater.inflate(bufferAgain) - assertThat(bufferAgain.size).isGreaterThan(0) + @Test + fun `per message compression left with deflated bytes`() { + // per message compression + val inflater = MessageInflater(noContextTakeover = true) + val message = + FileSystem.RESOURCES.read("/okhttp3/internal/ws/inflater_notworking.txt".toPath()) { + readUtf8().trim().decodeHex() + } + val buffer = fragmentBuffer(Buffer().write(message)) + val thrown = assertFailsWith { + inflater.inflate(buffer) + } + assertThat(thrown).hasMessage("additional bytes (5) after inflation") } - @Test fun `inflater left with deflated bytes working message`() { - val inflater = MessageInflater(true) - val message = "000740f8bfc41a6c3d2bdb78f65a4622a9459b07c60199d08500153e5c06a0f8243ea2555348e3199b22f7d2937a0decb2db0c8523c9cc6268c2e572732e8d647f4c10a247e698d3a9a0bf8ec79bb9c1a357adacf6f4a7249a37fae12c23043bf0e2d8cc65b679751bae0028a1130009bd68e6e339c2e2c0ab91cd4c3e4cf60803a5519daeb2009bb66f142fed0013858479722c8f898cc48eeb45a9a1953f64e05ff1da37e0e3c534d626965ca2f450f8ac28d26247290f65250e37e6e8fde0dce36425a69a5c2bddd5f859c4cdf1a62cbe130193136809796200e7729fae8991cd145371cd013c606957201c3287343d4d024ad6b9486a7228b1c2f063bc6a34f3f1d34f53cf9edfa62c2d41ef6796c6c87adde83e3d699668845634de6c16d0ed4ebd6bc76f7d807998dfbd5102fc36be086048aedd54386077170c3fdd30435d7806d3ca8d9dbbc0d13957374ae1d7b336faae8b81de907a798e73ce97d432e4a5873131b23e8c750aba67a0838ad78d4bce4e6d1013218718a3219e7ae0bedfadb5e2ac04f979b4a86ccb42b5e844e564373073a9b49c02171f4323f49ec0d1c1f6caf150cab86cfb88a97dc96c4e5622d730000f67b4cb45ae9df671b4f135e68e6f89db306e5c082373968be79b668d831fd8c9ffdfbbc9e6e8fb45ec4bf8cae92722eefc10eddb35281e231b8311c5b1d401b4fe40c79439bf3bcf566733d5adef19d2a3ff8291045a05aeb00e0da98f65319ada9d96c7ea31169a608f30ab2c5cb7df3d04b4d8bb92807b5680cf680e0b6009db254fe1e73bd0a60c826c60099accbb02b5dc57f6ba3475fa617577c33eb6e95d525d52ed583779bb02c072bead6f6b442f04169953e815c30841fc2e32839c4bc9dbf548782ead3c6fd82cd29668f91adf1bfff3da5f73a5594a093a24ca784af70fded7dcff282abaacd1aea36b5ea7416afcd077873ce540c6690084995114ad445392bb4ebee0ab13a1053e53c331355b6ea73b3f9a365a2b73a6ffe8d978ba166e17cfee7e5a1794bddfae5f0fb002a8a39c006e06777b67c12f3fdc772331babf64baa9667514fd02899fba73471a7e4488644654e828f83c572c4e082897692adbc589bd3e8c80265544669eb21b4b353195ee795bb268283a465b001d003a8d7e05140c76dba9a07f44eaa5e956ad5b99ef2d562b24fde997742e3104b2554d23a0a8c2540e05f94a999fa468b2e5678b526bb3b667935947791efb3091552f45ae74ce6fcc515ea5b2c4234a96204a8c732256d63d1db2669b5179083974ffbfa863482c6102c63b08d4536445fd4ea79aa8722d201e3bbd466008119db3f37d209685626b34abdca93e1689bbbaa5cb681388926a99f77355e399092d39131aa739d015cc753b5570237b20ebbe1a7a98ffa3abe2771151b75095615d3d65a941347e62ac516aaefa99168e92060d56403d22f489b64b1c67fcd2b7894ba2e696c6d702af99d7fdd406d2da9094bb8c94fa1626cda44e9649dff19186a0c8edc1ee8f40feb47b40c12bfb21f939a35c6aa07003da1a9bc3be435435361d8ef40d0f78596f8b555ef2630acf2882408d0514636508083f952edcde712c9abeb94c68cefb616e31916ed2643013cfdff7af565f370935b951ecc3625879f0019747bf129827106e9eaf15e1c8678fd6acbb0ba3f9d4afa0d878f5d21174527f5ca19bfdb8ec6805d859edc09520093ab7f7135532693b0c6f12196a2f66fd2ccfb782e7871327792f19c788b063733079dd89bb395854dc56de2c534fc794e7393549457126638bf27c32c90e24f7d13c210aa41ab0e0ba9f2ece256faf5e206839390b95ff0f2bf9b865b5c06f92af2a6a5111de9ccd1b44331bbd08b3d51efda0fd2fbca10f1be62a69afbbe67cd4406e3ac3978c764a6cdb5c7ca89859cfa1dd087d6fd77e48ca29b3c716486b891c00ded6f8477b3b644dbf77b8371270a213a136c3fcabb8e5ce8bf63d0c09832d7f9dab326e40f8109b6573721f6e9ff69a9c5c6901e7f8a31be97d08f3eab3a725b7718ff0a2b6b20fac5c8794735e93bee056c47c4bde8459fa04bfdd82cb6ea76f863fc9958f82631a869bd5f358232bebea2e7e64e765a646f4d5267a577cbb401baed6752cf52764e3436a3814c6d59f6632c51620490d61a0db85aa5c4253a6421d4c44d3bb7530f8fd40c620e86e99bae1155bf7d144d59d13737585ef91a2ef1055539cdc57aa14628451840a2969d8f4a0f2ddf2e70cf5cb2e71118ef50d89491fa5c6e9cdf7481998bfbfcffc77b0434ef2b4085afed2d54446496a8eb1246634a952496ec3e7f3124b884af253f81e15e1b3a58204e6dfa213377c4e578166221f755e18601eb959f12070ac4c147735de36db2dc3344b1468ce6852d5489c9a096718fb5446d41cca90029c8c7ca5f55ee8a185c3d11500614c8c27e80d818e477a786d1bcc797ff7c1a0b11c202322cf38771b22a17c41dae4e0162eba888dc65ce1d0073453fc05df5cc2b8a4f40dddadddab28a9a538c1aa9d54d2984de4edb7fc7f1d1bf78d9937a9a135db2c722ad770b2e88f09f237b7c5f91dcb6e625ff93d432535e78ec5f00e3491fbef69a1bf60ae0b7e13cf88f56c595e6a47e4a8e5d48560c8ef95d68ebe3f734fa6fe139c538e61e358ca367735142dd1bba36914484e3d582d5f651883138cb6fcff94e9f63d0d514a46d2526873a66159c2782bb84e96395b1804a59878956c5b7cbc633db754206491ff656927ee2e7e1ec75043f722893d1c2dd7e7ce19aa84fb7482a43605c0a1f25598767d028b85a2843829237b1a44695e229ce3631258b911998c1bf566ccf30955aa1cffc7492b061df2d91fa53184b32134ed8ee3d39f0231574a0733cb04bf9a528d6d51fea0f203b7b566434ec3694de7a0a8044770171009c58845d7a8b3dee2303310f3a7197687367da5d22449daafacd955ad0d2f3175df0d3a3f128b8729c7025065e3e32565f82859212843a4376cb6ef3c331137da2001b49a72025cf3a9781671a954c898b54500890244feb7f8084311a9e0cf538c7db1889b963f29e182c2e167c0f64926faf1bbe44ac297e0c80c4db9eeb30f69cf605aa89f577bc90bf8f68e44803a4cb0fa6a91eb4fe30bf2d4e5012d84e0ebafb77fe19a47d1de57ef3d3f3df6a7a54ec46a39e88c7ff524c8ca876a5b4ca4562552d4ca88aa9909b677d82644ba418bc249f7cde637c91757d266103a3bac9077f56c6108e18956066e09671bc0b3e0e7fc18413cae41711fb870982fe926e11487f4ff6a5fe23b508cae04604d460f3f4ad742911123a5485fc51c1854ba4b6aba9e1e0307648600f5cb218d01dce7ccdf61b7c7c7b5b8b75a7202b3af865527fdbbece51895ffa01bbd0a0af93c240c76b49a5f79c21e58ddc242bc8e080bff3c6f6502d3ba3256f346227e6f83f3f9e2613c575701b4ab91186101df30f89b6341031b939d3b1e4d6ca1ff1be169d380eb434823b0f0aea7c3ab1a6bd6795a7139e63f44fe01a333c680e61d1fdb93120a31f5c1c90f15a8023a9f4b9be51ac9435c207c6c3db742fb4f9afd292d76c6eef4258b7e257850cbbfc67a54d53ee48d7768d019c53a1ce70a6142fec326e34c517130a796bbdc2e54790ede2f909654fc9c9e180c169547dc76f188e31067f8e7d54565a7f51a20fa46dea0789aa740267f3bc9fa26c675725d9191eb22b7ce2678542a75e03f384c65ecbc1d65272a69406196106985a918bbda9b2e0b25fe9601b860f28e9e0d0ac7ffbb90ab5a96c93ff6b79816c967749a8688503c3212b1fef65cf03cdb00e8ab88d260801f6f3e60138195adaf9c9e775f2f408c4f736df5c95cd13940f0e8f81aa10366a7f7e441dba2d0871e3883538783c4f8d05e38a0ba291f9a3fbc191225cc3b7180a1b151b42779f4dfecf94525b87d99a33b2f4da289f3e29998315b576b56c7606086e863a16be2603665b05292b375fcc940482cb1c44a7b7b8de70b4494dc91ec37428829e8507995da63df89942859d73ae531e8f8b3f3cd62df6b48ad429b0c160e545590a0c792f000f26e257cfd592e40aa9fc9b917752ccdfb3e25956a7999a3ce89495f065bf305761409edacc576a65479a627d988ba7a408193e56ddcaf54fd1386a5f6aeb39b0e231be5c72228008617af8b2c6185879bad8d88c82457e25dad15293ba6c7ca890d9c324620761d51c17906f88de0259067de56071c26c83f5f6420a3fe1ddc3348e72f2dd0be45f3dc1b5ae0ff8046e385bf4b5a8bd074e655ffa5fe513bb1d40fb7fd56837c84a8951516142b75d49139deee821f369c07a2166f10c32f1214a34aa26a6317bdd5efcb7927ec5f6061e47ad3680a7656eac639e1a5323dc4fed42a65bc803881353eb6ef3d5d0c370a412cbe8002479f4833bd9c77e2fa1a82105d2b5129c0c29883466629954498f42b3cef869cb21b530ef8f17947c9210c332b7b5bdda2e5e6f5c7270a59530467eb1f79094555f34c50025d8da678e90b9fa2ca711a83ec4fc814418a3e49719ab121137f4de10653159a228b4e0c596dbc8b8bb131926a0fe17273f1755b6049eef90724d6624d99ab1943b6f71e4b8b20edd65838856d8ba495108b9505a2eee9813349f4c149af15c43bd99ce8434d49e171ad16b57d89cef885b3664341386e7e704739e348d9c21a2cd37eea32d4934c267c39a727357f8553cd67d5888c4b08b5a4a2b4fb206c1b05283c4ebbdc9d8f8a7f64b455ebf575f2130604ea59143f97b42116855a919b70baee2922c30c4a784f3d13fbb3fb27aec60606b3f30a0a69297ad09820c9501010613ccea4634c460b7d4401952094d35a23c66312eecb4e81f0c02f513ce9b2d8e0d68ef419b4102b46cd500cc32ed46827711676a8bfa691b024e141ea728a67f54dfe7dbaf9b39dcfacd53af7f58431896ffe52ba8e737386c564aa58e42914756a03655a9329f7d004d5c60ea22fe4d12a333dd08c59a773b1561026e9ba8308a078a06792e5f4b90f90aa8207eb20146eca17183d91d65fe1fb42edad1c1b96784cdd103c70d1ae89b3e698c4b353773871da8b65722c214796e49cdc52aef5360099a4ad0ef0e6ff2c21b793ceb057ffe9343a67d9e10acf7414e0e6cc74a389c34f2515c9b761252ab44c55ba0db2ba1cc455e3d60ddfe630b936f705a410544860c9709b64c8dacbe4c83e5774c965cbe61b54cd84c57bd49ac9b5aba1111502c9ef9f85259540450546543872f36675eaa1255e226425df776f1781d36a181aa15f3fb38a0ff4101dc1fbe84293c6cbe28046f1f30d1d3e204c59284aad4690543790f5723c6d274d36b5b2c1af3ac7550c2f7cd6ab7fbc60ac762a819f09211773f2276bc354c4c9f841477d6c8f61fac4c6c1c10837b78b9f5644c1e135aeacd9e651699086ea36281fc02292574fe6c46a38eb36ce1f6fdc9697393a8a11c30a25ed23d9bae0557d7d557015b9ccc3d3616d20616bcd715a9d6eb77df0506c2a0eb6c45d16cacc9711758a12e5edc4efe5bd0d833a1d7ecbb79df0a84271688bd2f73197873b85ba7e6c6f58c6b8cda538b8bf8a2e441abbf57d543abc03772e024e5044ae078cb880972c2dc81ec98ce6b0f1eab2f32943cf635bc4a0d4089efd965b97be6122fff5d4547388934dde70c717dd5608eaf5d4d8d4c9328e4eb052b60498d1c04746ec46d1c2ac49b0e67b80243fcd76b9271d6a9f45050894bceecdde814f3daba31dc334c4bf5d5ac6bfbac9e5f71a93fd874ea2f8b77b7d638a843822a46493adf6cd77673bc704c11dbde24a4c26d664f9a5e0cf58873012ff2f5acfc9a5323f40c05e39a1bcdbedb4802969cb0367337b15d4d80cc7d654cf6271d9836b1ded63f36e7c45dfca184f6b5ca5260562aa05a5630152bf66cadb957240a56d1ac9a01f57b885cf4bde779bb7ea296d519735dc59a365bb00b83ede6d78a84e25275947cffa7ffe83d77418ce268c6204c6df181c1ee638ebd8417349f5cdcd6982b3a1b1336e36ae42ee7252fd0a38f8bbce6354f000fe71fb9adb5e75db7297b50a92dd2a39c33bce9bcea7ee2834d3bcccfc4c6f3081562072affbc29cd5bf0db7e39eccc1316164671485648cc047c8cb5eb9fead91ebd60e3e0eec36e12137a59588d40be7991911db0ba06197cd0db0255d7bfd6865267a6648d246ff3dea2ea4ca072cc3d538cb58d4f20b86dc77aa98ca30964a15ad2a97bf98bc180b0c56b8a6319c5e84f5939193b533d5246e0f1b120fe650f24428cf83cff533949700ebad57fe97fa14b0277c5a6526c942cda1b1e8995104fcdbb99a0658d6de10aef48f4291c5e5844c7f30f62db060d93384d744c1fc5e13f99446b6e66cb0dec4c97dc00e239d3c251cdb9259370e4e09872767dacb81044ce7fb2139bd819c8ca5fa22745dd785daa87df680ddce87cc7ce4c2728e7fa6454226f761c7f87c91ed9046f291bd753b662d582922d4f375d8ff79eb0d6e955ff7c06f179b57bd50c5730cbc991aeaa4628e40e793f6c9c5645cf9164efe6ac04d54cad5b74cdb17bf9057c2954fb3da9057f2b85153144de1b3ae65a1ac0182bad0a4621cc054670f3a653ff1484a5337ffb405593b2a163b5a9d77e7d79d33d0fbb8e5157912a06ed8d623c7005fc888e9ce7efdadaf6ce5b1c2e85446a1224e5c2f2eddca32a59c2c5232fdaf95f57160c22733e08245ae34c10fa2b8805018ecfc090081558266641b537b8986fe38e5a72cffaa383c0e37629b1453605cff09481a4c601a94745c151f0e1ab02974d7937ac93d9a9a7522647dc03899c313067f95205130257180591c375dc95c656d8a5b05fc5172aa160e6d487974005df831c4a10f87b38715830604cc42b8cc7ce49cd1f3431f234fe57d4f74903b6ffb94719872dfd9cdf205acbd29074450504199a939255626b11c41300913665aef7a5af98d6cc821f1dbb0d54fa05b3d9921229deea03caccc97ce1850408ac565b555b99ed035ae880235f59cf436e0a373391437ab57391d22fcf32cf14b53c56e8dc70596bdd4712e43c5986123509ba9858e2784f500e9aa79dc284b9bb233856dcbe04928555a5de426b0748e25a6a92142c99c7c0ec8204ebcdf5f034099f083d891538436cd13c71782b0a44e27390d03b0008b29bbe1b4f74280d4171d40f0b3ccebe33fc24e092f0187235baef0933f4c92dcec818af2f1eb477e96f4bb08f5b83bd6ed49926ccd383d9c8c07cbf2cef5ff903e08b82d64847e3aa453d0ede8a824582a8964f3794548c258515aea8a2cbf5354d3400e73ac71b0a6006678d40140aec4da61d843473c284bcbbeb0285eb3b1964fec9b2ca3c6addf41cff430f1c7ec30cc6ccde1e54d947a1b362051685a70aecb816e073ad659f2cdbab4ad7fa6c8b092aefbcab212f9627ce5c908588fcd7bf52258c9b5fff1271962d8158a088bc6731edd7e317388951f586d9042af326802d15100d873e7c4fb862b72da2693d4c1e864dc899e5f3881755362643f1435a880642c663297d0d3a2c39579d40024ed08c9c57136277751e7e8ca0e5edd1320529869afa328f4ac6e80cb9375b5fa3fffcaef805ec7b68e16e08353bc112bd990da897f4119bda5895e839131f8706cacdc009cbe4a31b04a0e71aea693dcf9842d78a1564dd0e667b8a013bce54b43ae6427f34c130449c8a29da5d13074fb34a4b8b2622018874bb6bf2ad93372d6e9c1d28ebc6e6254ba285c343360fc7a39a85eac273c124efe40ca82ab41b71b45e5f877af838930d22a225cdafb7039f45dd4dbaa4befc4357b37a5575afff8b02dd59af518551e137522f2e4943b5ae99db9369c1115031ac4121ccf5e3bc27bd110f952f7cbe27d8920915125fdc45921801e15d6d98bbec7ef985e88bb660039f3f9c02c04c28b27a56b2d4916d863348a51cb047eb1123aa17420023b8ffc11022cec159c05a6023a25ab5451dca8b42ccaf413c4a687ec0b39724e9ef92add91da28fd76fe249ffe5e4517f1608dc3b83e173cef269c1515b3f19928adb71bf5f519260bc70e440822b137e8ac32cd0ddc623f10ec09c8ae467ffeb89ef915083e1a9b1f2a55dd7324097eec591f3292666a23f82ce06a2f1f29622d466038df16126093aba7dad72d81bd460e6e48a5fd432cfb09fdc2661b8229692fe6e70f08c6d8c92852c7ca35858992c0e5ce8887e30a58fbe3980f3dcb03bc983ff2eddde985f70b12911a93ab7755a1d199f53c62dae35978dee8895f263eda37c97be5a38f75edb93dd752b238d6ff1563db4be7bd27921f94d71ff3f2564e496f4b23ede15259451541f771ba975db3b8f5c4310e7d0566691f58659db7881c5232236a2d32264ca2d4c1c0c9c0a61e3e543f4f77b5ce8a16b023b6bb4b06d104c82b129fe6add57693193bfb070b4b5205282840c591afba88248eae5ad89b13a7a7ab263f8f676500f915de12e0c4ad408ed6a357482ab3ea7456405e7a5f144e0c12ff71fd93c114f10094da0e6a2f8cc8d4945f4dca3e40858d40d3c01b6a0fd93510b32453d0f0a9f6fc491cceb13e2944b2864c8f5a41d5b53bfeb74afba81be3ed871365698a24585a600b93e46caa1079f6524ea380c88d36694645c8a8baf5eb50442fde13f7c9158357c56a8cdfa67d799cf6a8c80f410aae6441795b76bd99f39451d2a9e1269a056cc233a383ed6db861f97d25eb2f6700869971eba6143bb02383be56054f5199f5718a27b80d5ab53dd6f4ba6c1ccbafefb0a50ad168831f6770b4cca4c3b1b4dcf920c288d9738321e641801e38ca3b2c96ce8ac2ed79acadacbe98c32657109154cdaf572dc4354421bfbaf406d18a2bef1cf31e569cda5a1e253eea501bc90976f76b884f5668f1616c31d8496b5b732ce239b285d466bee1a6ee2b81d01c02bf55f46883503eedbb20dc3db4a154d13b89a17026f06d0da4f1c5de5ef20541bac4a9b6bbccabf607424b0e7b1cdebc77cee30f3e7f685cb1a0e724dee362c97d70f0519e9d442c869ee2db0e44265fa88b98e0c42cca993dc9f6ff3072cca524e5dafcde407a41ae861a476a6ef5271a9442aea378ece50cfc9432eaf6ec1323940e549baa7abab9423cba313032ab36d9e75a1de1c1d543f4ff97cd0252ff018b3806120116a6cc23d33cf73bcb00f60c38055ddb0dadbe2f4435b42cfa865718137e4524b9ac8f4fd61cf4e9cbb4fc4b8fe7997eb060ca1d84b7f24acb5d5684ac4b42c207d77bcc2df053818da867f26e38dd0b90f6490f735145aebcf51d3fb69498e9c49d768ff103395497a9e09b5bf5f6a49f4eed052fc9ba8405705de39b73814422b08cc31d8d580c8d26a5665036ccc9682439df91cf86a53e82a134bcecade4a03fbba868a7c6ffdd85767d96ae1158678091883897b7f13b70ed0b7706ecf08d89960158492f7e6bdbaddd0e063ac1b698e6df6c2da817006336f0a3eef28efb2cf813fbbdc7a73fe7b14e84d780eb4c3773ac33c30fd92dce9ac5afa132decad12a1f6b9c459e864d8cce4ea103897d3abf74bbaf9a9e19c4d325e43d3f3ad222ebe2b0fea665f14dfa7b9009a2bb4d28cf09174d45f21664abc611e04bb8d96b9b8433d688242f0afe0fd7ac6e378c3024d1dfa55ccfe70453c9fb823c6647a5ed917faf8f485345cf707740266038155f32e119ed29b629f1e1f8858c74082accbe6efc9a2e01c122801b4b8b4a8428617d403b56f0e30ecd3db3a7f1f069e705b9313dfbb568e12b17097aed8ba7eec04b53526363857ebb802e8b8e3dbdeae2b996477d59b022ab080658945216a6c9afdbca6dae9ed935e025a369b499c904cac96b4a0704ed6b9daf470cc11c0e93ccfc713cae79ed41def43d26f2a110174b30a95f1cd3aaf69408e1ba67b62b86be2df8f1394d6cb82bb5f146e0c30ff6a6e272b8e31935025eb1ccd239ebef243153f5a2f80191cd20067d9cf98751c4a7a06e361462902c3ca99b19ed6ccfa8034c15b377296c48844213934d2e67f2af5bf1e06ee8ec9a2c32d4d4d6bd05e66c11f6e4a8af18402a84862ff23e67298a434e1e24b9e14a8fe7574845b3bc807ff376892df0a4e1353655f582083b49eec5d005a3b4bcb1791cbcf76f6cb0622c31cd3f3df95d96692cd36ee81d7a5bad7f106a914c572c65354d89d4072038113aa76ca7154be02a2a9a442997f4970ba6bbccd339386b1265570208efc847991fda12a9226d83c531eb81e8421e7d07de8ec62f54815c4f11a2891d8fcad29454de13525cd3f30714cb21e6f3f9e9e0991ec2774358cd40ab827b0230be6af60010289be701a6fc1f017b2dee51a0917a7302870ab2d3bb0f37861a0092c45366f26db989141fd047bde8d6155de78030689d6e1ed70dc096ce772d6578ec079b4b67482ee468ec4c6812d3562c0b99167cf1fd69fd07877b04b5952ed98a0dacd8b0cc1f8b8a087165a7797193fa30f6afc1aab7beb256deaebdf121afc0fd9ed48664cef0e9bb53dfb10749095a2d39df2004293efc2e727f603591f9184a03fa9bd761205b8cc18ba6a9a8836f6ccd637ee22dc7377fd5713270cbc736b93660af3048e10e080307493247f1b6c42fb2958c947136df96ebe6f993976b2673215edf50d47e921c81deffd8a4b88c1b31e1419d1fb0ac9b517499968266cf5242809b5e4c6eb3f4fec387256ccb7ab07491190fe31c79a637e0d49dbab6c902cb43b0665c569f2663a25aaece0650050c9562ce8b0b7766e87e3995cbe2592779d207e6297409d9391ec4356a02dfd56c6dda19e0733d0367753cbd122384255bce80b006ca6d5b6e21d8d7903eb28ed6bdba1917263aa5622cab62c699748b69dcb9bbc75b9a393b757c08f558ec2273fcc58c3ee76617353d5c1cd350a4e062d4024b9cc764fd15e10fd1105a091f9056e18200e48e1861c44c3904eae36a9eda0229e7a166359d631716be3cbdc4b0a266f804b11aae67f868cf4921e1a138bdf1d33389c11161cb955593bd250d8239a3d02330d35c2abaef9e83ab31de257354494e02a504b2ec30d0485bbf00d8a94336791cbcce9428c20a0fc27b7b1428865d14d811bead12093c72c1f89344782a593e21b35161ad17129f965ae625afeb70e4469cce6a2e2d2b4967899eb015cb14ed10b7fca14ed40e13c0950c2d847861b3cf827f074b5d5fc241baf5f43226cf85865754ea16202c58650fca7e32dc5c9f4b73e45d4e51b0ba8c9aa8e68fd8544181346cbba2854079234667be08e8757b310f26d55d1f3aa5a1ac76da6c62e31c7120ef023f6f8666ef165a022d09c488101962edf9bd49799d9da0755e397720059776b30a0ddb61352b22b1557577cd0ccd3c2b5519f6f9addaa0ad64fe73e6624ec15f844c5f8000dd16585bbeb0559ae8996747efdbacafd66f8721f0d3913bc6cf857e8c7df171c40e784d65de9551f2d4aa13274b6ec979358076b0f499fb8b23a5d9a009c1b5ab78665c0ac5050226c59cb698984b2995f9530e4d438e25c1e243fd98f5ba4f421d873da61c938f5e3016eda896b62c722c381b8a12daf99d71c71bb3376a639cd4146a857b5f99d1bbb00ec624d06c96ed27f88e830e64776290bdc038a6d89f131a8482a10f0bd36ab679b5e66cd3b80e2cfbad2870ad06b522b4815f36fbffb36d1a002758d7c6459cff1156567f4522933c6ea7fa0d084c5eaf84933d1d227c27d1fe2bea00ae04933dafe3839b7c06e09255b269792bdb0867f31ce7a282852211a1f6291dbd77dddde50016c9e716e7722f9065d57f04b06797496cb26a0d9ea344fd08c3da90335b0bcc1b7c8ac1634ad2c09c5df504b40999b63b54e853d270106701f4882f8a71717d46132eb48dcc2a32f1c4cceff4834961079340b3090fbab2fc7221b8eae222530fd7aed14623c7c152bd9f11032196e159e8933ad01f5be403b876142b6f9972e77d2be0477b644a28529fa2bbf8f63e6708910875520211188ad0495fb273da456a8ce7b6fc1a0dbd84948813db82ba0bdbeca21b76f7cb6ec47d6fe83459a3149fa8d74ae59bfe5a35329e41f3eacb0946b4a609d1638b15421f79ce913dc59b4cc5647d8cd576c49551cbaa8db7bbeb8722ceb542cf7612937497b56f0ecd886c0fa6c6cb842dd36cf4e7e559bd5909e8baf6e8a04fd2f116f5da593c380b1652626070b966f1f1d7cd20ce6b8544eb6ca7a0e5091fa4f7a189aba1c371b90fbc432df509977fce0f9ab52250437f49e5c51dd72d5740ad5481f1ed9188737174ca01eb1c3e4b3f4ac79caeeb9a229cda9eebdcfe178286f4e59853e7a50cb36209e5a8d237be321ff5e4be781a4108d57439c78324da80b7248fc503f0dc8f69e2b0bd224c5691682cf748688e4d39ce76ff1267d468cd1e005317063cbace502b7326d450721a48744844501c36e54ad0549718182d43568474a1e36aa85a3d0e058c23167555281f4ed5cb7e8efa52d71cccee1c448589b4ca6b230bd5837b2df37a6a523a8dc560608e28fab2aa5c4643f9fac3dad598512bfaadba3169f68d4fa71da36cf8ae299292768719270c4fbb01a13b767af2108ec96c5bbb6222b29ddb1db6d16c9ba0888a8a8f43784a7226e432f49f519420b8179b3395045f7628c14b9784987a6fd71ead67ea72f0c36be4f7e08bd25a202e565403a19b38c595c690aa27397d5433a0367ae6bffa09662f9d336858de8736830ce32dcb3a9a738a9afbb8c3fafa3fcedc5b298a2803bc7c3db5c0421deb428513823e5dc3211b416fbd68548bdd2e2c100a9d31e1c01727f377da1f6da165582639984045666ae0af1edef7ac4d1e1a0c1e9c56ef29afa548fdaa5b51751e247a6d91a56af43190d151655088ed3bf6674eddb989cae6e67463f6e8a910d0e4610fb89463f8713001f63a02b047dcdb2c47d96cc09f21d28308fa6e619a265894a5dd84b2b0b8ac12725d903b33847f84e3dae4e87a876760aeb50d3c99ed7350d8a690d4f6866874a2450d482b690cf7822afe8089a6a4adf0152a87a7bff53de64c97a274bf57140baffcd59495ffb60eb596499021ce848c89fe0ea2753d67ead250554b95ff112c319420833910a955efd6fb3f0427687ffa1a93622d4b2cf6298642c0b0c042287865244be67446b168695f8fbdf6e7a257f441d78f4620c61891161bc1966ce08d595cd230765aef442f5ebbe5005f5fc50223bf6f81f6a53349c1d4e59ad16e5eae026bbd6bda1b9889c81f15b9a10fb38551f5c131831ef3b342e171b394e761c9d1c65c548fddb3f112242dc22940af4d21fb84fbfbed470c25db710763dba88b3b825d157f4c7133593863ecc9c4435780546973c4b4daa84f8b06484d20cbd2d6793732379cfcc2898c6c717f6ebbd2de5ea7fc0cbcc7bfcdeb79edc93c0ecbc1c5b0af8a0b64412338e68239b5d2d62bb6e7dca53a385b8fffba5df08569389f6fcbc9fa407e50dcdb6d9a638ecf58fe7f23f01f65dc3bb84b1a7399b7b1f2cf16882be3c7ed7ac2d6ff3e48c7cb8e92ea43f1ac25002a7626590a448f6af365bd65cd2c299a1428f8702a614e3471634e5668a51f7853e20a9e68e815fe2d14a9abd2dc624358c2e5dd887ebb9e19b53aa03293ccdd42ea22298e657bcd0e344942fbafed4017c7a6d11e155f89766c8bbd5ae22f5b672d76dfaa38c44ef0f1041f6b184205c1b5ed16ea35b25971ff01dd91320f76f2ab9fb0dbd5bc56f4c81ee0b5ff4e8f623c0cc709e39e7fe0823d914d1c674a2a8caa586e36047c81e60d7564ccf7c9d864b768d35bd1446d761cf315ec20fad08264b1644809f0f820e634be5c65838c9afb9f7075d3c700f980bb88aaf3a5653b855fe577f2ad1baf035d03fc683a669367d16ff51599471ea726d0b0106303da55e81a19d874284e23c451be5d14cbb58bc418b9642d656a0b8cb844f1ab83af854b92f6faa60c836d75b0d42d98032f9043509ba4ef032fc9396fa415595c6aae3e5396ececb86214d9a70cbf94ca3390320ddcfb849624cd0740ccb44a8b0e5a897a3db9bc77b1a6712928860c9634399f1e17bc56011981b511771483cd14b6fc2100ffda9f37456874b2d1ff2decfb17c51ebb9edb1f621c12229a313a7bd3ada61ddb7aa9dea7497b4fa0760be1617a001ee5368d0bb4ad8266a2656c7848f677400534ab604dcce7808c9fb0ffae4eca2e9b35736b68af00e723bc2d0ebded27fbed17ac15a06ab515c3ae16615775359a3112c0f0b1644890db1dceeab68571ea3346f738150e17310c0a2af1f4ca7f3c6375cd4594aab01b995e956142598a2e6bb53a1577262c58e5dfa15ccb34fd2f7ba92d29fd501c7de646804f83fb5df432042280a0a5dc8c8aa53bed388b6f7cf3cb7f940e439df231029b789d9e4bd9ba559fdaff70a582ed1c5e78868cec4363832b583ab6e3625afcded49823354ef2e762cac087be61c7db25dc9ffd3a8686f8fe3bfb2b75d75ca37d06718508c42f8cd18bd9ab602b2a3a521cac9bdc73001446d787d8549634497d32dd22e87225f470e99c015ba18f91a7cd6ae8952b403f2dc20af744f95c2f1d16b4e9a7f3d1524eb74dbd7f9edfc30ff4df99dfd1474cfe3d18c5173253b3fb12a770a406445046ec4afabf4d3094ef336b7410029478f8bda912d98583a0acbdc5283662b15b101dd7e25ea615b49f16f03ca767b6083e5c3974601ce06d7cd772a012e4037f0c969637dfeae10b6dd21037f28ffe001438a322e26e32b8c88097f638804d6c8d0a44f3d904e92d196d8cbbd491ca1372180384c2df8f637c06fb5a14d0aea6e8feae8ff784d3a1a5299f89a16c8994d55aee513445e54eaed81af85b124922fbfd7e3c9a71892aca6c31900841dba725ab4996cda39e605c8ee3938210a8738ba251aaaa1a8fd27b47c16c86087be5178151f8e7e714f93fea286d78aac33ba085399fa7a15f324b834967340cc824921378fe966e1852ecb94364c927accd5caa534e334c6a31e2236ce2804a071c287b8d4d0c6eeb2c3a50c06b94eb25e5c0b6b74b2e804f8feed93c4f69e76c665f75f698556c22105e64c6173041612840bb84e22a017aa6837b692974b299578614c16f107621906d601b3c376eba48d4d94d8fa73b2ff6c0431ba0cd4f986cf8044e8bde020e7110a508f90d8b0288dd0bab33816ec6009aa69153a49c5dac711f99472ba0ec7b7ad007fad7b0a9fd6a61228bc30837d2b95ace82118ca81ed8c7c6a067ebc6ed539e4d1ef31ff2ace5e985365600d1de317bdda8dd1e8534b38e9466e881af6f9cd971ddb712cc133becbbc2ea8ce104f38bd34f5c07832e752c9c6db8179c4b5b89a7c5fc7a4d2ad5ec2ec1f901d24ff040c78385eb8704abab81af126ba88bc642480d7ad5254b9d0ee9472f45dfef2663914d0f443bb0ac8551b4c084e02b6418606e2b7e47a570c8dcd1d449d4f0ee106c688a1069c9c37372dc4f9d864463393083443797e9cd2fde545dc930427fbe29ddb4ae1b6ca0e7560eb23a8fdb617b0e4991a65a4fa085a62908e00450aa6972bdc88d7f9f59fe760567da43d5e09ca1b54b3e2c80d97730a2d91e8d37572788cd8817e2cb9a0d2d5b2b5da9cebd34848d961341e7f13ed17809fcc09846ed8e316efae1d8c0a834a020e6b1b36e2c9006cba7e53f0a74772621280bec88f3fd110295739781a40b43b7fff15719d87193dacc910af1e25cc3606a001dd3bff2ce96eb22e4f8cfa6e0f0ae0436bf1e73bed4a95de226bff96115bf745f5cb532025c658b2ef22076026fa519065716775f90535d573a66a4e73e53206f95bf6085d553e7314252107dac5b14cd153b94ccc719cbd165d7cd8127aaee7b932d7689ded2bc906d9f0226dd98a2956c1ac4b5f06d95aff3e66dd0433cc228caaa0ee5516886a5a05533c9b194b788b4d46eba3b5e1a17d7fb33c0f044c3a3f5ee2953f863da5f603bb9f4fbe1eadab193a9d6a350122161fb0c1e7e94b708c4b833f3517b6232e073b34993be65653c562a6052f371d502ca0824d992b4527d26e032707cd33333864d160244b2dfb23d1855cfc5742235226e4553eb90d4ec7d7d9f2be3606c2db7c242c974603abaf3efc04edf56997f4bffc2a0b2837027303e51c9bdc72a50bfc9dbfa05747afca2f2d0812e0018b195c2ac2a65d704aeba9c4eb9deb063dcadfa200a6d9befbd9e38a94594b5005c3b2568e951e0094f902e992414a98e34a7d79b1d578963d38790320ee2d064c5ea8f1d4c3aabc86b6597fab3235429b37ddaab1ab3a4e28162f6215d1d318132f10efaaa3426bcd1afed8f9e89b3275e0b6b2c4404c389c0ed707f28d188de0b617a661f71f032598b57da87f2f3915962e4f80d6a1cd535687381e1418f12c4bf302a57885b7762d0926951f2cdbe8ba11b8e37415be66791a1e96cff85b8cc49b90b7f3a824af9977348d74a2eee82fc57af2b12ca34c1dfc158260ab65dc05cc91111c12eaa3f440e426fbcdc6a16ff596d8dec9b9651333905d649d2b03e2ad080b2fa11d2c9391e1a132bf66d376aecec4e89532bba13484bffe86d696529a46c65aae5ab899040172ac3e5a398fce2fb017157e2eacaec7642c3f829642fdcbb2f529015c1b0e0faddfdfa2602ab5a68c5c291a833bee9d21fd5cfb7b7fb06f89426227706f01f01ce0e71df0cce603a58c103bdf5346f66411eaba4d51c2ca9f23fe32109646b0223394290a52f38fb916e4d87092294ebca22f05cd844663dc0756740627b8c3f6ae130dcf73a31d52ddc23fe6c10a75c465b92c0c092a6a2d3458175a42838db8aa0e414f91e1985c0139f3fcafb5367401359c7a63a61f00f84064515d249948f5fe8e6e7b0acb6ce71773cf0d4c117964c597ae7fe54c74351067d9fba8030f5b885e62000817e6ba5073c9d3699d6dde798eb158e3e0fdd98758299fb8ee4e88d8b232d7f98517c99b6a8ff021435f0a33d9adeab63fc094b4117ce7633dcabf626082577aafbc9bfe469dba21bba147e05bf3034e1bfd7cf74d52afac2a63611a91138c44679f8ba3f28b2a339b4bc625ff9a52d63e8b72024d67c9377967e5bdde6495903e0e2ca44c85644facdbec3d58ddca14732f965352bd2d7743c838cf030fc1ad726a8f1a006cca1cefad7e67fd790ece07ae40a79037b98df5a847ea7a17305c3c173ea87de8f70739d8dbd24b53b005427dac67c8debe267fb5f274314188cf17b6b47021f0bdb6926c0716749ad5de492d7d0a244b1df51fa3358fbfe96b55a468f7d89e9b6c43818cc361ab261efb79108697366c5b9bfe3639be4f842a75dc8ae876335d2ee62a6020e2a2556ea35d724c217daf3ea38f2997394725edfc00fb26a9e531e030caa1fe2b52b21eaf3bb4ae0dfdbf177c5cb9e00bd6bc583bb8d3ecbd95bc61219630ac521f74bc910b1e1947e1731a65b8057abdd9e72b607ea755b1acd9d691e55eb42b52ceee023485628e34848095f8de4c31f95d3ac3c351aa724712a67b173d5cc149aa5b9226259adb9920a6c40c06eaaa2a21e34f186ea8176119db117d5fd6c2bc8e9903d78cfb63b76875656dc756f091e9b125b7beabaafdce46a1e1a9cdda19752482606543bbeebf19c2fcb290752c9080e146010ba224d2efb2d30e3e3f39760bb100ed9c9605625fda6ad18d87736803e17735bf5ce965df5d8430a294597d4fd0acecbbdc1b23a3653ee926f1bbc5a70998eb102f9e621ede9563d653d02004f4272060ced229011172ee0b2c37e4eb5c8fc4e9b1f0cea7f5783a7169232402faf596c3faf33512e60b71aa5257100a06ac0265be182065a5c3358b0ae92ed7b008a3ccbf0b144fcff746e3e850ca25ce6771c29f6dbc81d4d65dce23322fd012f3b257e5218568b1602ed8ea5c2dedf1688dc22fab7bc98aae5489b276d1cf82735b3a426f2941c52a1f78fc90a44270eb5b59c53e65bfffe041a3cc5755a5817bcad5bae2ac84639a5d5efc43fab6bb1ee3a06b4827bf0d455d0f52576b19f1095c54d2b4e37976b4f130a14e63ea6c4e6d6f648e61aca08781707ea849ae4d9b8f98cb29ddc3ffda7ff54f162ffd042fb02c825562664e65950363d004cf5a4db75cd647ce777c4c96eca0d3f8fd5d25fd405145022397e6f59bb356f6d7e0299c1265f474def777a87efb8eff3cbd02f2ca3e36b37068005bd2ef84c572fa833a03137fd7f304bfe8acdba6ebf4affcd383851d35fef466ed7cb1b9fb8e8b569294e0817aea6fc9f859c7de09fa2d66187d2eec26fa853858b67a49d47934810e020626f931c4b220c29a46b30471eccc3c30dd40735f623f657a8d8ab3ac46f4000ecb4bfedd87a6fc2665b0c349d2d265761e3cc076c5fd9cd46c8c54ee607079f1c19dfc542edd6280d01837aae2404b41a834c98f943c7dc7902088a5dfc545890b188a1ee997dcc85f2aded36a5e939367946e3d2ce463d9fa627ff18e707d3bdcd197a4e654ab018739ed2b4b02b4ad9c53d52d643ab1248c217b9ce79cde9b23f383ec05406567efad0ec484f70b2dfc68136ededbd739e8c2c21b491045aac4c0f3bacaae3f95cf40afacb837584ae362332eca91897af2e86fc31afd0b08b51297d380c9419f2de701960598fc413a17449db79ca679d4c84c031f11e8e85285ef832318b3492f9ec83c1c6ac2027db6f8a0504d95b745da179bc36aa7e127ccaba789a8e94bbe6411a265f38c5cf94378598f4f4c09f812a0e85337338d96d0282c8402c3dbc7a5105c19613197896cc78e954a71f8480cbebb69bf80e1cc1ce301aed7a18d9c41f3c97fd05c79a5fa06e634090699831922b4db3bd44d54640b960b12d05ea514acc0449564147d56a640e8712017d2f2d85c5deaff359963149d8f5797efd4ce2ebc346eaf450349e3b80edc3c54b103b13596a98a842c45984af52c759d9687178a9b76662fdd4c9151a0a524fc95ab4c7bd0e88c29276397b4c27efe7694cdb1bf52ec028b4fb7965df1c99ba7e4056cd918857857ca3dcb7799462190cb62da7146cade8c5d6b27aac4edeaa3f28640eeb90757c836cdcf875f7b3e2f36087a7588657f90999087048e47dcf30d35b4875a6a0069e1fdf0de53d9517bf695acc397fd728099dab11ee3bda9fd86d62a2b2470b2101baceb2b4926c58bc00ef6e409aa9dd5c46fe13b6b6b7c5d56f864ea1084a03afb5ce08b63510c6bcac50d20ed7b0fa22ff618ef07650446aa238895c31e4d961f057462d31201256563848219d3b6da5ade6de53a580824f4022820c7152117f92514dc38f30250d15b533d18db8d4b023f4990ac3078752281e9648eeb6f578a4455d8280e1221a99cb5a2942bdd592d7bbd0833907690640d6e25d8349b8f8342c28adbef0d2362d6dd26f9a042f1e91699dc27e0fe32b49d7d8469eb6df0ee5a431bc5d19952134556b4ed3525b86ac3dad19eced449e73ef2f84c2e3fb5cd9f3134bd7731a556a44cca5ede57e8ba8ea452bee8f784941e363ec91faeddc48b4ab6091ae5b5fa06c63ded5c759b426f41af148957dac0d6bbedf8bffa106f2ecb39a055fcf6e8df8b3d5eacfef7bc539808a4e40bcfea51bea5362754c46268959a853d94e6ded8582fd41c23f3e93e4bb5a049316b0b2f5e88c2c22955c0ee070b2e59a538030996374d461a655ff7588140693951ed0144a656a8d8eb52e8746da91796da12ee97381743e5fa048b5243eda237c2e4552f516a9f8caf4a9600c4ad3e25c6e2952abc3445c35a7c92c20a495003c35cfd73cdcbdb98e351346b428a229c1737319fd51fe13edeeceb1c276dbe9fd4fb9001917d03c50ca9c54bb494dea968459a49a5e3dd7a40013278212434a90582d1c3763a094ac4b6b915766a491b4fae7bb2be24123cf37bb308fcd36a29521694630e985e2eee528e5162f1fd96717234d5d9f6e96e84d1b160160086d271a5f2ee9f2d48bcaddc9630ceb8b54b34fc5890b50d3cad2ddfff4ab7f5785da8e1f24fad3a75bb8c89977bd0834728d288a0b0c6fa38fc21f862ef614bf3c9265448ede608688bd5457a6fd3994c5123a2e6516a4457c2d9ab11eafef7326474f221421f92b9447bda07fde8c489435030c3b68cc7830a69cd5461e17bdc01352b97d9a87b499d3826e552842e0ce804e338fb8bd42ce88196a26c541f1a4d8a1deca5d655e21d0ebf6e9605d42ccb758c8a390bee5d8a60a8c5f3af01f8b93b0e8d23e009712ed3aea7759173033368d46b388e0b294c2c56a01cc4039f3aad9c2c5bf74366125ac9a43dbe9ac21e1b0193f750b4e719e333d16541b74cc66f588b082968bc1283ccb6e0304d1cd1b53cbdd70a15f37b2fb5c9286ce6cfaaee03551a48fa5b402f0bdf497669193c137367e678af413315edd8a79306fa101a6d42b7d04c27f460dac5d9a9fcc78709e9c848c1353a154a61254e748a9c0b1a444551ee5ba309ab2b87af58db37022a9bd2d41ebea33c27ba12b9e845821e98e791cfba4b14b3f937a5e57b7510308c66fe106a2ab2505f8b6dd606c9aacc2fddf00cfb9fa251b018704c11c625b0e8f339e0f43b0a2ab1fde41c576fa03b5173c050db4a57544952186e7a032de2e0a166be68f442e7b599413d1624ef0468e2fb1eee25820b25cf57699d7029ff74af2502b075c42c0ed19783dd81cddd7019d8058a764a45fd6baadd8aa6b57c1b81c9cd062163e45e835f4ea77621910b80053b607d5bc584a4d7f5fdafcecd3eb14f6f3df3f7dd107b490f4e28b99d79f46280c9bb2ab43ac6511c12798efba2d5b1cd39a76b996a2ddb274889e45d3a6a378c7beaabab470261a35b53c0d686977c92a5099dccdf2fc3fb30f1235863585905955c6553294a67bde8246de1c029b75d0b87c2fae91149005dd634290a6876e856b5c229bec2c42f15f8054d10c9aef35065bf09fb6c457b9401bc4136974b8804d9d8c739d653d1ed9567345e0a01fef6e71ae8706fd89573a120a81398389f3f824581b5fd44a9f390abc7aa058f5b19d5ec24b621e991692b5e43f8249d266f5662191eca2942dcb72f53c5425d2e4764eb02e1c6fa9a61967259612aee182e6c69a51f126621a7becfffa2fc931e96e6489559d41953e5f25fa46a68e020729e6995680786a9b577efbdb882d6a683296d8663f3aaa1cdb643351f7277197f092cc1f9d7e172b6deb8ea44a5808d00a94b0ab6b376e3eaea55371f2e9bbdf52244dfd12787dfa0914d772d554cc66c7dfc82903e741786b4f3ef18c11dbd0b2d6b2291bcc5a511bebf7dfe0a552aa841a4edf0374e3d0f6bd5298114cdb3aae4f6c6fa687b615cda136260305e8dc6a605ec04bdd39ba0b1f06f2f0067d0f773ebbd5bb10c9051c3ecf942831acc904a427a20c31c366147fe969464399b158a575fba41707b94011fecedd0018adadd330bbd9778b1fc0de7528548c168da8d4c7639156fa54155e2361aa013ce1ecdaaa7d8054bac6fd2240011a0849c92b183042ee5f88daaead1470784d90fdb3a7520732d2d9f1b0cadbdbb5db1854b3ef65931a194c14c22e5103fb7b98e45c0d52e5e9a62f2bf3f23dbbbcab9fe360b86feba90aa18f020254fb540de4aecc52fd9019f7dc2cc48c94054fbaea8f0463acd53434ed23d48bff404fc3f44ed87a0f73e48662201744fcf8ed7d928fba654ff7d9d50e566bfaf4fcece3eaf12e7d1ca5af82cb5530759f9c7161cb42df55800a54125d6dbed2267589affa1e9c1b48e4f25f8f615b65ea92fb1cfa1bd2043fd33eb52ef6767f23f071e23c517e80092e2a5fb2be31318874162b44889a731ef15f1e4f99998cd98f3cc0ce632470d673f80603c2eabd97b1018a30f3be3e107167b6408f153c8aac10d71800bf9cf66fb68d426cb27a55f12e9b05575c7c19bdbb2efdb91d3d4ebcf08f7b927923604b1cd604fa919fde8b91f2fdd91f94722a3248f8bb05c527344f0f56f6807b8ebb79b16264323d2c0015e98e41ea9ac8b60afa5465a0288fa40c2e3dfb6022596fbefcde7b3028952cef4315a6e856013d9006e197e7818bf16dd72716ad151c30b9628d555f561761737b92f20c37ab6d15664a6f4b0ac9dbd2426f79687424c1bafb064fb9cdf3d2178cb1a5dc1d820899f2fdf24d2bcf5237776f1a2fff0fa14c6af2babd4c7ba2f261c607748501df1350c4aceaa034ca84b02454fce6bf7c5ef5835c5988803417b828264ae00565b47d99f833be08ea8ad711505aa2813c825b3b2688ca2f9848f979d9124cccf4c516510cddb7baf957129416f89e9408759366c878c292766a10b090cced7ed74d79f75a14808c4fb8f58dd5ba4bd3cfa48863c25cd18234927bd936bf72a7456666d366e64144e9c77bb11f3fafc546e168b8d5a46ad283693d8800240dddd8b9c9554a1652f8600a5026153f46593b323a00b347e4b511aff784fa4bb3f948043113ee78ab9dbc1711c763e798975e461943202a3b0792acddf43b436139b736e2810c4fdaa62b71e6c9db0633a071aad30640145204d6971df3d71a25a5f22e1b99ee51306ae2365a3c8bd14f8179c027a4a3c0dcb2a1a935c80b193ebeba2dfebb82ff13454a2898fa1bd5accc6dacd4b9791b0650a2a6cc4b0d06cf2433d0381e5835f7abacd50f69da1252fccb03447351af9ebed01a1663b33fe2b641b62623aef364fc1377832684ae9c8288871590e440a13e5932312759ec90a1b63cb56b6361924da6c3e48004e03673f223743118dfe0cfedf1036efe6d454d3fcf14726800c9e6df65302b02f5c0ca53ad9d31c33ed132e9ed8b19336b6085ca4dc271b9b4d582c717a0b0ddb46831c45edc4f624794368ca7c9bba251c429529245c8980be489d8d299ecf28663a91cad2b2fa69d1d3bfa3214476c61e650f4738f34c1cb37a506bfb5dfd790a81dd1705e56aa1d59f15af5d454f2cf759bd4696de30f75abda0a39371f1bf06d89254dd2a17d6e9e5170744d811cab1f30696da92c063184e9f6e7540cc9c167c63190d5c8a8c05696c5623c02cf313875b255791700bf846a300a59b864a163b8b3e4ecacd45ab57e4e018b311d3bfb76067c0af93c422c23000d40f2bfe1e4d50e637dfe480e4a3f6b1d070464505d76f495abc56ac9ec4b1f6dcd0f6a83ec62c3e3bd7e55660086f17de88158f3aba371664e275c2e917cc8578e9c9c8d7d0ab15a210b9b2bd7083989f5ded5573d4f678c4afad5784eca549ce615ca91299f12cbab03d4f1660fad45884fc7ddab39536ce2c843d33f3d34ed086b23f0aadfef9cd83df15ff17f5fbc49340bc82c413a5e970ed13c44fa2b46e9e264472e160cb3fa2ea7963961a7fbd8d538bcc77cb5714afef861aa5a0950912d27ac0ac6c85a96ef242ed0f382d02783349c5590df85c2184f5881174aad5e5559c175c31fa972185babf1f9c478103257c0233dab22fd935316fdf9c8e235350eb8ebd2278c9e397783bcb8ea9f1371ae2f28fda27b8f5b27b035bc28369e1aa8a380ac925d277e6b96097f311f9eb99a146be1d6e4686dddca1a5d8bb917f22534712897e5322a5806945afeb7cffbce731565223b5ad6be529878de5baf6dc4b6c60ff5fd48a6f3ba0b2edd2a4275cd116f322fab5bb0c261df1bb1d39dbdeb8403d13c50054b694ae78a8e0a1132190c9fc416cc71642a474f4359e909c978769fbc8c9fa2f37b5aec80f7fddbb2514c95fee6dd04d2497a589a4b4a7aa863623573673a0458fd39e22d9f9660faa362ce8d62e290ddb05dc39ee7eb4157090bc1b26466c4df11a3e3717c295afcca8636de54832c02de79f9803f02f43af9a3fb070cbb7c9004875f2edcf3cdc44fd4c77f17ab79b3c990685d253f2e93f95691194c247d165f36d4871c7c007ee5909d09f9ee1cf07861e5eefa2a244c8cd1ded749925e97885208cfdafc1d67eb50601ed0ae85a0b1c9ba25c28742ab0dd170da1217f42a21ff87f1b1ef84f02566d6c9a560d92c6564abde0a508ba2aaf8ffec51f0dd1461169b5130d8d87fa1246d941e6b48026d425fe0c6030b77a157e490b912f23df695778bf53e10224e02ee8f5b848837871be9813e9fe0f4d504317a4589055d368bce4a304a37d855d97d84f1f167cab6e7f39f8f71ef6f19ac4d0b7984915af78abb8f186e2a374f98759aea0c1c10f52e3a90995caedde549f2f6f165753153d97f6b639f1a83ea64ce5974b1278a75717c7965411cafc93a495a609997b800299420e7510ea1b5996290c7bca599ed737929ef0ea39a76f4b14ce20290b5ec8298487ae055350e1fc254694e51aedce5aadc938af109982931697fde28dfeb5c6cfacc2f1525fec66f01fce2f5a1df92834b68a04691c638fb1726be890398ade005f605829b16294b819ae86d443553ae3b5568f54845f7675a9ffd312aa63ee3f3b0ea54f89003d973349e14487ad0e8552329e70f573406b399f273553a42d285d7083a2fcce1501d3169fc02117b85cbe7619a0f42b7d568d3e9ba42a9ec797dd60543d824c308d1bd2266fc5b4fa94a9f83acd04679a22816693e4ba97f62cfeaeba242fff7f49513264514f5d53cfc605597829bc6616593776dfa9b8e9e985e83886e53773f41286279bdd055e9c417ce573eb3d870a67cf3792dcdf30812e908c7b057fd588b3eeb2e1bf047ab6025b8d03effc2643ed909ffc46e09b6681413b5b06e216a71bd24483dd2eb1d39d335a15512feadf34bc9761f06df6ae93e02c4b18c817aa4b253d63102ff031682afff92a340d1976863cdf55ad9f3c2267b587f1b5f132983981c675e056fb839ff5a57a056343694398ccc2c1dc533855fcff6818b8831d89608a5a6e90fb926527b2afbd3a1bc220963e5b08ea16978bcf07f4ec07526aaa89c53855baf8a42aacd768b19a8e0818c5d226408045e42a5d9358b24124faa1b6d7f8f96c1c3d568da17424a77d56f5c1c70858b9d8d86fb3770d808128fe58b8569ca01dc3e354518af830813975b89d35b8af3dc69d628366f8b1b25ec67e1259ef4d820f12e565be4420575e341f2046ea945298b9a1434a6a691c6534ad533a23931c3d6fe8762688b6d1a1dc88477741b7f69cf2997b772394f90fd64cb820fccb17ad657516c87a5df842a823e41d04f904c242318e01f6d4f9e085135e30f3b58847b04471f121503fa9230f09dc49a8b0d1656553e847ffb240ebb3f62b7a01dc82585b04409ba83dcbb1141ea2fdf8c6ca6d7027be36473f4fcc0f95e2b9514478b7ea131815413d896c729b91eb8435f5d51d06f7a885b8b80f280bc299d8f1767a6b2bffc7357852ad3cdd7a738272bfe8b76b67cb3a4126044a2e8cb01810e74d5282e0cb6f4e9d4843de7a5071b4e7ebcbe5ab98c4cef3565707e0d14014504a33670fd632c9444e398acfd4cde10fb64894833153850a75131bc708274320da0e958a36c1c226d1ae7cb948a90a20c4421aadf4e6fa3aa863facc03ae36960f6f74f0d5e8e9e13ab055201a36249b883009a9b08ec82e1a665170360f9958393a1b57ff51cd6fd0c04d52eb0a2cb0cfda8d3986d09380fa1fb5950b81d83a2715c6e8b317cf124123e4c2e9473adc3bce6dd742038dfb36c115848c48a038d95dc22db90f21a2480c19d02781556a9f655950956f0fd3077eda9a889e71344422294b82ed112d318186b581c57286a7b4aa61f0971b35d5bc6eb7f0877a6e8cbe1f83e91e7bbf4a422f1041dd4cba40da1f615914670ebfcf4eb9c3a09540489a896b271a809ed84ffcefa686224d7f1f76a730ba800ce2b6b79cd8bd4f32f0dec7b5e3c2de7961c5e601b23ba3e38cf2346e4243426642e015cd14ffb0df1474797833c6848b5e7dc8e36b7a7bb26557262a634c0b36b926b2da6da64a8928c5d54f175597e06028f88c73ff2991b6ea785d0ba27dd721a22057b1027c1b0cb5aeecb4f8323fc568ba1862a1c6ad168c5975b09aa534c0d73a68344e7a1313ed50e94a0b6899fdc3e1c41caefee5f239ed83e5a78edd75810baa42a7c799fa821b05d3aa8fdeec6a8d38a565e8973fa661445e1dada24e4d2cd89ed84700e7b2a4d042a97b62eead09b968df80327f9f452e8013489a71f9f1817218bc446401700b380737e1806b65d82f6de3fe84f0088f51190c7d5165477bc78474a2d99ee77a8cebf8db2a116a9115d21c9df8997a821c63b3cfcddeba06f892400e4ce788ab0921b75ab6ffcb2b4d7b56b1c4ff997cdd60319431af2ad31c75651b5a6edc3531e347ec16e62b559860913dda2a926c24fb9cb7116c8acb10bc4f77d1664ef4f6c79585d7b165e815fa6b40ad2465534aa4b16a468c99b867c695356ab574c381d84482c50d3173a7d7bf4c2b4a7b43ce4dd448b0a9439ce6adaa60cedb4dd50e50ab13e66ecbea5ed00b10625a3c16088b8b70a5e2423aa86baba958a425bbddd536ec15a380bf00f187bfcb3511efa1af6b4eb96eb4391201baddbd2d6f81643b8783da6bdb13f45edda408154393f1ea2c32e3edc86d788001bc0c495e4a7f4acc38c5b8eb27d4be0657b259e84c0ca6651cad864b9f89d2cc4a487363fd9285d06edf1ac308b0e75482a5d0b4500c9ce3e466df956d19dc39f73133c270adb7cd5924e464cb55ee04bd982d6986a9cd253eecd3f42ae49d0c69975c14e1d4ad748ce321b9d41b0b63ca9e315273373859fc2dcbd2b982e6efc217063168b4ef609a223a724251e068a867af6184893639f210506f49d529febebd87ce88776700a7f054ed4d79d1178eea571876dff63a5832fe586ea1c1a9846d272640a94810913af3c0416bab655d82c2e421d117632cde532a71023f481be9824e5a79e5ff368319a23ada1076f3ce32a675698339d85d71a279f058197ace972041899b9d3be2438227e8c8755f504541d69d3b7ff8d4d9be2d34b3aa418cdee14fbe171ce2667d58360d96e76d0e29ff9b28f73d1b907f3161834728990538a06430b907970a3d3b533226194a2fe1e41f860bb1536aa5c18d756d54f0c4253a1b74309fde14c6f44d360cbf1123cce4b50a66ee6c4ca41459b474e38ce01518c07a1e796d39810dd6c8850617227d595edda3a370b7a70ce28115a808e9fd59b5dc578811142e74c8073f7f9ab8d0da561671252f1f9f317ad7daf823588bd50c9524f8641e7fee292ddc7915bb7699ceb28058a27e630a6a3eda82ff783bd38fe49b27cd8ae35b4cb2d59751b20f496e5571b294f332e06bea1e92d0a37779fcc63b19d43fdbca0fa7f5f7dad982a1425f6c8418d2f05920fa400a3ff0d277e5c66a339b2a7fa0d0036633da9335b6d9142f175953337add07fa272fac93aa23abfab16bd5e41be425db1d6e26447aad71e17b6421084bb4729530aaaa825d21919f3d54f9923c055099500a82a890455955da927ab56f1eb73b76d6810204b49a506659e40d53aa7d25e09721af306c83332103702166f1eba0b1ac11cdefe7b33e202d1b734a8a71d921e6ebcc7952071fccd09336eb4df7235ca3524f3d5b0583028df30008ffd7d387faadb86f5c998e05e0e4014faccffd9a67894810ac2d06fec08d2323d6af2e824d33af0254ab53f28c8fda30042975fb19dec8184276bffceffbdc8c1f628bf60f775f618a2057d2f65b6371bb0629cc75545289a59b0c73842db983fbe0c8aad1a7af396b3a97d002c6e70eb920a6fbf93e6a7a6e89e1c8538bd09b34c2fae5c770331ef75063f639857c01f5a3dbca00d6355f1e45af03d28553d01354cee6581183bc0332aae6e47df9672b5b1d9c3f4f276c808160402e68e1bcd0699c456018253aa1f55511f4ff0c57d7212583db13f37748c8e26ba9cfa351e7c53b688f12f1086dfd4eadd90c66d217a3e63f213ea26f33d55d2a5969a83f21cd0b33bc4608666f4382a1c34dc31b58c05fe22db90fb3507c4cb764411087e538647ec32b4c07bbbd173e8315c261f35b0263bebfb9af2fb3dd3d1532b53df08f0fddcc7f80aca2742459238c31fa22c241c45b2fb9de65fb71d14d2fb41db3c0183d1a00abfeb2dd39666ed31d2c57742c5827108ef011b4e8b6fd4a27e5cc186440a443521d659e656330aee4aaef4ee45e2a3e96136bc787d539d7d2fb3f5fe148c9829a60fa54fab12e974f4bd6062f062d8c544715bb8873ec9cdd241515d1001609ae24fbc49b05a4bbbf35f57b6744f26cc9aebacd20198ba4f091c74cc4c514c75a1f113eb1e73d5ef65f6829df1d1676f9bb965aebe29bb321f167d90e3a4a43be25227142bd2935ca2c26126344b6a21144ddd653501df480945a1827583ec6bcbf1c4869a81315d6c869427c7b09c3640465ce7996e99142d5a83216e1a53c937eb132580f123b3b5c202cce5677edbcf465400eeb83d3c21f52bf10619aa5f015ccd0ad031eff448a4535c8c0ada03b6d52995fe1afc93e2a16b1a2fa034e9db1e2a7aa61e314a605cdd8be08a2b28a3d7a0287d134bf6811d5c60b842c195608c1487eb064f8d7089dcacd23293cd8fd88e20ef1646f157dd4df49b96479dd31cee33d6d252048b25e8e2299aa28c5bc0b7d7ec2080a3ffdb376113c16660828fe33cb247893982f2ad4a404c1fa129b20d8c9348383861476b63862b3df2dcad0d065833e8b2860a3ea0d9b7983f81557ddc487648fc97650573f3ba07c357af2d27912ab23f1b106ddd047f8ee9d1f0c599ec0ad411c3b4705256104981e4e70012c18ef3394aeb58d59f6424bf5feba1106e4c516cf026d0dbb401ec1c68a1e6b9b28ca4f952f6e8b1c464699fdaf63e9c42816d4faa4647f512a3f176f0313db06564749ce41b7ee6d474d10a2ecfaedec41d1e0aba467b0165b0e129dbac1676b4fda1b9c6588b996aaca82446e1abac0137b031eab45a0ecf45c37242c24a49f5f20f0c48a2ca949c16ea7e45175be33ac1e4f007dbc8606288969bd96600464321616ad78cbddf151c7e68e57b2603e721156e2e02bad4a53cf9321b64031c68dcbee6a6a3ab68538d58092a24227b085f2ed0172da5e904b96fcd1e2af6638604c5d2a8fb0fb4e9f73bb16987b477048c95df90d22c649265a8549e7b01fe8eaac67feb47eb9991445451cc064de53b902b668926c07c328a615443197cf15e37bd8ec54d49a475fbd0e8579e784e579649b69c7fdd39d940f6da1955bda24a5219b2464e9cf70f4e064e2c76b82b99e9e959b747b9eac5b95991ac34b56b326c5ecdf988bb0c1ef763cda8f3ae10b3b14e86350c1c5be23c9e7ceda35c18f9bf0ff4079237d518ca4c0ed9658f3c7455ff27b7a7140de2166a0a20bbbb5d0e26d3baeafbf9d1ae0c6a8fd54e806d829d6bbb46c37a6fd3dce312f78239cd2a5574e772032343cdb1fc074630ca22c6dd364d11b6c942936172692408b651eabee18c61803436ed7692df194b377ce845ad06c89c51793595416b927b6cee37870db8389659632a0563d882a55e211704f573271ac53f8897cc181ac0127c8c6acda3c83e0909ad838f63a369e75b959b39c74896cf235fd7e8ad5388ed916cc64c6d4782371829b99496fe2d551d628af6481167cd3bab8fa1a2c68b666bafd62ce8083c9d5f275133b1dbf199980a52998f7c75ff9bb38b2b999a4fc1c9d4fbe1ee64cd6c8d5e7e7110b8e156a496e4b3efd0df2e808f5f7949a6ab366530a76d4b4af220cc5cc904f31fa6e4b6499345881bbe534eeef7fde746b6fc51a24de44fa51d0c054a6611340d2187cbe835200566e304870b0703bf6f42b3f191462d46d4ed985cf38d5343570320e71d4676bf0dadcca070dcb9617d68d378dc39216cca55dfe7e0edb727d456e806c17708393a02d4386519e5947297e30e1e620bbf357250e1022c2963be6349502d694f11ccb744efca87f1838cac0a46b1e5ff979fdf5be7f465e7dcb6c0c5e33d98b8721db08c9aacdb87d196555d79c837fa647af884a3965f906dbdb5d61a909649d18915d07d1624df1985f98f93fca0ae25cb09ef6a6f32bc0b8bb4ed251d83994f9ff403789d98963c4108223981c0678ffaa2e03b8c4e230d35262fd6cd06dae2e1bf4f6c1610096f7b9b3d24ba7596bc9eb5b410a84f0e0c85b92dd5adc28340039cabaa79761d286754ea4c8826918673e7db5b1170a32a593a75c36bafe7cd03bdee89e3755fdb4b6f9676a656d076ae60301639bf485abceba4c7945527d1e1ac94d0711a0d15f7052b0d6276d6796f3b77e60d99f2598d8864020ec3485bb87547ff472d583bd636d8da6f5513b3409203df7c0ec12031f7b032826273ae18a5205f4f0a0e409822e1b2a22efac708db31c7b0460eb387712731e2ca03b8607d88956ca78f3d97c2afb439e48289c38d21d8dad75b5217e4e3c2445f980316be486cd4a1820902c5983ca207fb8dad9736e88482e13bbfd6802813dda62ad821c9bacfdbb01ab7c97a602f9d323c805fa51e50817c1d2d36d7859177e7dcb935baa0ac5241b78d3e306774d09a7f487f7777c00a0a84eed893fcbcb0bc3aed21992b29e6af1c862544eef1ac72f3b882c5470b9fc027d107abc5b85e5de07d926f473b73e53772115eb854db499d7ad0a889f94ac5fcacfbd677e5142eb2bba897e13548d35ca3d76fab0d8ac9c7b47ebc5fb50e1394c821356e9bd30a701c3d851ca77c6cd265f9e52c8523210cfd5404aad6f3eefcbe0845c59a43282bc37f868f8da9fdc139a37bedf204b5fc2ce2f32fb34e3f519b0ce465a451e7ba7eca23151264f1b8c5cd4990a0237a8e824b8341dff2d7757b172927b4538e218da5988dd54e3c0423a8c853dbf68fb4470577904ccf86694c7b6257c58434aefc98a58836f63494e9a38cef805b3ccc9327770f6914146468992e5ab1d15dcddeb23fbddeaa4d15552e0a8b6bd38a1e92b6824410a6e69faa3097454f8fc8c3e72163c61145cbb56e07541656da2a3a08ea38374f1a347452f12b3e9230f013630709ed2cf19f608659849ca2a1072fd4d35bf192796367f0d2f848a8ac1e2265b3b9c477a560dd70f3bddc54839b20ae7eb7b320beb9bdccc8be5ec6d7ab623962a987b42cfdba4736b2a049997e538ef7c9103d39dbcf096ffe0106dfabde5011abb42958ce20d236a4b67c673347a002bedb85658c6f81d4e7963231e4b8f078af8273ec627233ad3d7a548172346c650e7f2693c5de1b22a5deb3fa3d3c3063bc35573959983ef5c755257c7a6b6a7494c4b708965582f863c48562e9c8a257897c8a58ba98e9569f65f1c9281851b6d9cbb771679cf266ecfc7ad88d185860e3771a74291e1f8bab5e258e12c7b54ec14063754c185fde640c970a84b617081afe640cc290dd6809e13bc91a19e0c0c4beccbe5fffdf8af8c806b99f7452f51312c0a81415bbf305171844b7f6c706d45bd018f94fd80aa47c6200c574b1a94f63258a53c86c67de224d79b4eb0399da805aed36f32a212da9a6b7bc3ab6cbd4d82a93e2d447fd099d72530b6a6737e7a624a2f84d51f3bbc212855f0926ae2b87c2164e2eabb94e638c083a872df27caf9aae18083fc7c6154b38d901bd2ccb615e7213f6e227db1e8b87ece04dbc4b181ea332441fc578d5efb9f1bb431865451365c596ce16d91c354de3133c8da22ac6ce12586fc6c8ad0b7a3386c070fd20447c9d997da51489ab419929069ac68e130f0459824dc6c04b850c1b4bba8b686c9ed0a35e0f15b85969f23fe977ac91097caf486b224cc722006fad60eb9e94f3a7f9f20bbf166dc8e854ac7e0c0ced5fa02d72ab378ca07d407939c3c975b478a8f9067d2c1f7bd1f11bb718702b4d4e083ba8af608402ed727968608c32a382d48b50c3af4d383d19f2528330ae190876ba535f1e4282068a5aad33a8fa43e25990623319706c81f9f8fccfa401f4573e80732b98e80d144232727b516bd046c9ff1569ac2014d16f20b0b9419c8910bbdc3ac2ca61de6c1f9fefd95935846c6da3cf3952cba76cd1cfeee24f53c2d424085e0bc50e0abb808f98c8cd275acf4f2c23b0ba012ecde646896eee7e73412718eeca594a1ea185d250467b7cd44c0e13af96f02db4b5ade66b9799c875073072c8fd1957a7560a4309a6b4d566f8c9516c98dc3ff60019da5adafc7904f463f9f61e13591d2533e2a39f6d5ba2df6d5fd8645b97e267a674c7e355e8a5a5ed2894d7f5085646027934b566c572081ba969557c04b6c23ea4890cb0ec18b7f1c4017301ca7e30ac9037747bc5c873f3e4afd95e0fd5a81a0b3bb3c41006ef2f8a4b0d64ce038edf671153359b2fe9c090ddf3237b3cd5973a629745a3d7ee7cd3495e0a51fb8cd9ec11440425e50f510d627f5704b05f637fece7d4e9e7d7efef7510e81585c6e7d48e3b4555d1fa10216fcde9b3d776292fcee4c9882eb21455cc95dad06df85c579a24939caac6a76d1814d9cb78df0badda732ce8009f82a8f0f695b0d9bccbf13660f7b403e2416132495fab2e10aa23c70a8dcc965ad1200426dc8f85a28d0ff33a355505ffced200125af05437d93c8e6b9134eb90588ac4d8fae1063f391ca50d7969fbc0a664240b9f5e0bc8bf88b495f8b54121cf43bbc7be0639a70a3b58f9a276d6503c4f1592ca9a76be88e357804c6d91ac8b93f52c37f6c67f7b2d0bf7e92616dd197af8213b0dbb5042af36ef86e39e30605bd6e983e7fe0e07725807c328a8cf10bc2cae9eb2d43b1a700a7d0ec8a3965a27dbb3c20f3e1e49fa5a56582b78643194f6b57fec05f233afbf069398de147f2c819cbf974ed6a221596f77dce04971949acc79c7cfda21ff839e68296e723cf659de540018e321d08452d8e1b91b6dbc5d16686a5430ac2f8b9d285796fbd8f96918f2aec470ed99ba41e8fbc59d13af45aff1159dd42620458fea8bbdcf6efd895228981f95e809dfa5833e42d5073281ec43efb9a92f2d47cc04da2423a6e20afb4997d5a8aac742dcc48ae93b56a9c010818dfdf0c68639ff4def96a4959bdcd528e514809f960014174f41be146f3d386b5ec0505eb3f26b852fad026ab92d07f5f71ac3b15f5fba92dfdffdec61475c22f9eabc291a00917bcaa3d7a1f309bb84600e780878bea407835667e7b1b0bbd0f66011fdb1950f0eb072343f96f5dac82bf92b250e21402bfe004267a79462c875d0130fc7e6fe7dc1321e9a4d7f86b65825be13924b70ec3f46edf7acc1b3bf035e7c3efe59ee24f122dbd088be38ce6f844054656bc02285a07f5b25255cde117e01b2c1376cbea96a41e1d33e95fe952097e6801e31e88ad575f74896f2b9fe997c3a3f5b5eb0823908a5549e5fc1032e8a6b947341cc7c879780f96cb18ce4a76eda41554b704172caf799b6c8daa8c29a24904017a453c0ab5d28405fd8577a119565c0c4d165bd7d3052d7284e55470ce3b21a38ec9605fd7d61469f9a25661b9d2c8968c340d9682fe6b651dcfd0e24746e8ebb2e549177637deae9c7ab7f71e8694566a52b12ef18fdf9a079f2b879010629837f34c69d7e444893cb5898fef32a4dcf1fef4b52924d57a8f5803e711efa42733fbd094a2a4a2b4c0a7cbcd2621cff39a9fc99bc6e56550c207c39759582cb18432d6084732608c389c5a5944d921c03505d40ba4369a8fff532fe5c33ce9feca2ca8cdaa8824b45d599506e7e8caa6cf9f511ec4c701835349e77221441d07b81c51cc333e45b0cdab5c460926636194a2afd1b894b5875f15571c3f0c2767ea6f1d8f0354272ee1460361ec4d52fe4d2b21775af045a287fe5bbb1cfe2fc8115299b7a28658c7ac843e867b2fae287675a4313e8d6f514980a087efcc085fb20f3a0ed2aa1adc409b5d452b29e674d0b0cb38a5c7b4155cd74117fae568b18f33fcb95ad362d1c98d0c4fc6b86938745d4c5062895619e250e8ce8de13d55cf7e1257471fc86409d72412ad3f081d8841a16b8c502883b29ba60921b0213bc762c67babd1c3919f865efc1e6b45fdfc53bac7cf0bba3ea90387e862db4b1f86512a92412aa4c781de6e7479bf182c11222a20284d9b4468bd41a7359574385a1efef071cea5ef140fad92cb6e597fc076dfe8f219dfabdc01d3e96d2b2e3db7fdded7a4fe6f6e389b600809ab97538fe05c0527ef1996878ce6598cbba3af79d2c0db26a2dc6d341b6ae4537d2c76ae0a6232931e98724d7193d1b4767296396daf691ec36a9dabb974a59b36de86aa1dae5b85ff4e2ab4558c481ea1b23a3820f1927f0adc4e4cff815f3dded2b5f55ddf8715101134bdd92955f6098b0018534024f494e74e3e317f2b0e07c9b5457dadb4b8ab7b75a4f376bb646057e41c7da98c3fe7a69ad9b0a1902dc1941eab638cb0727cc4e8c4e1f3e861d2fed725a44347f9ea8579c39edb523a9955a1740fb435c655969cf115b69285f7ad187902cb84531adb1d5fc29e49bde514d3fd2409c18c5000b3da3ac90d3c23f225cd836c73fd092d46cc08e8c80a603bb84177bc0d172d236f57bfede896743837f1b626d41855cb1797c1bfa4f9bfcc5ac0e15126fee18fad5d832790ab74e8fb40185e6169b489728312a93b40e3ec49c305ac363620ba1e21732f249339e4962517abf01ad6085c24cfee30ca10985a24bb1a1625c4becbf8ed6cc51c3725bf1186ca211a9e331a99df31f816e6ccf2f361b6a663a24c132e5241032fe591152cfff9dfd6fa37202d2f48e5d43c5129704790060a4723b34fc58b68e8d2cfc4ec3966d1dbd0ecdf2106290ad31d9eb56c3e9e23b8f58c4ac8df0915bf28adfc6607bb66b5d74a4c999b8d3caeb5e64dd1a1b0f64570b223ee84e343d4fc5ecc681476a502e16a9b547dbbbd78dadb12ae8ae3738a89241dca552c6b493a25e5936c3d3907dad8192c608c386cc9699e8e4b4e4b367ab346bf8592e5bcfd947bef5f15420d5027c5b0d77f6e3dfb8cf40b3c2372f5e241a6f56504164d55b209997df988a8ace1b8632c048c140146cb418f157ba9ba9c8f9c6c2d4d3c018e444fec69536370a0cdd692c5f2239b5525914be95db69a2d3bddb89126a21a683728c54b6539ea2a5d1ec3363f8ef21efa6eec52825c9e6857110e1ab6126e09f850e8575f63f2abe48da4a3cab3301cf6cb946c251f941bc2e41e8d7d1d81d006e8f73d3df6c690cd3039b60482fe2830b9f15e6b1bdcbf7d04fc1c515ef49002494522ba5dafc4a31e16afff5d29c41cf98c2a90c07a8f38c42e425a4f87c28fae3426d4b70225f5096aae9c7d46215e1c725390d79fec5eb232614a911b88208531efbde1087a75bdf6dfb6db2b779a0cc6802c8b4a21efd055d4057e394d80fa0123de6f5326097e665cb6d9e80c44e7c15a3a1031e6970c86e6e45d980623b77173ba54cc8d36e8e245be8fbb97985528ec5ffa8703c72d3d987c13c1978fdac4b454f95f6c6f75f7381247dc104a18909ba89fb7d5cf8321bc1b520320634ecc18b3a58ef7ec0c5ed7228ed251b8560436d3bfc8c30397af10d737a36bdf96825fe2350e3a3ac4d664d1730ef0305dea541ccd5ead3ff337cc244f583d8169e41b4e97017ea4de8927edeac2a6f1bb6107bb21e3a176a15365a3be148b2ba102a66aebbe9d5b82416a46ee8900966fa6d52ea6322a87afa6bb536662842b6a102de1b2a6d32deb18c5a8995358809ffcc4566098e154e6342b42ad1ee5a0348826b7aabd69a7245dace08af4433b2b2f5988c2147c4c3a9fe2455c616aa176e1afad81d51cc5bf0abbbd49973c6e733e2264cc024c9e14eec24a13a7ad0f46b1c7db62ada1029e7a5a1a363f973608470312d9b4c315e1f4e398bfd1aa7369f3bcf18f833622083d2086ffbc142703baeafcdfa94af69d258f3ca6078fcc59825d6c0d2e80b1411d4476f2754ff6afe42c0d28a49ab9e0f41ad55f1a41b4af8ab437611ff337053b9dca3e016ab2ed531e930ee10e6fbe1a6157059e8136747a4265b14d5916aa7a916bb7decfcfbd8a2c0141dd0242229fac0dda5d4606e90f37e8dab8b3eec65112f4e6ba2a82700e03661ed63d90b39b7bc9811a0d5983293fccbb1c3cc2acf342ec43ac2df23d960d0a228dc18ab3f349d0482b2d7f32d923327dd58616fe6fa590592fbef8a88ff8fc13a435bda444be03ea133b47096bfeceac9c0531300263dea19090bf4543d084c69ab071d3fbc138ecd979c949d78c77769e48b84b986470da123d7e674796350861680e1391e6b56fc79cbba0e72bbbc33fa4680db9a9b21decb85ecc96686cf2ae37f17a91937e6aeb0937a93e13181fa793c50cc5e77d254e4edcdfa0cf3557d125870f9afbbca9aa22af4274ee655b3a23909d9baf2e5c4e91f886fa9e6b8a11e09e129d3185110e9a01ff7e00924e7e50a48cd866091e3aa7596138a30230994a454160dac867c30bad9b6270a48fd3c713066dc65fec9d0e4e815ddb8f3a9c723b074b09021abd08a0d41b15e72d290afa328d272e99dcdf2ea42fe5e262fae70d0698930b4d946f65a3c5396b86cf052ac26938fec46877664549790552042461af332bb1ae08b0e9ca6861b75cd42f1272b377cc033c94fd91d4841b45a961eb8a261646dde41ab60ac9897b4ab872e58a24ad873e51b88a8b1764ad713ec89b456846a783026092ef4cb42a2d96ccff3050d1193bc8908b9da522bdeedb75bae25d109cff7c51b542f5084521b3bdae979171f88b01f22ba2453f6439064c9865c58387da677891e8233cc573740653538b5e4510e2d39b34da0d5f0cf9b3066feb33b50c50ed9e7d1fae7789ef7b3bd7f0b72cc6ddf9bc88e5b66072565fe871d29ce81203e612dc99ee1d18e6f38ede2903493d027638fc233f76cd77527090d33cbeb8b89d88cf9df34bfafc9398a50c6373f4ebcb825627e4ecf86a0c47159403085e7a8f0650ace3e5d1722ba2d74b11037d322f8d4d0fb33e945653eeef1d715fabf12e22bd3f0d0e39f02fbb0c6796ec624a0451ada3f06891262b7233538235a3e96d287015eb66b6faf82e9ea79d4a612a6df2e09f1797147187b55a277816506654744f53bc9a476ca2535acdaba80df5157dcf8032d82d8c418b70353b05c0d7dcd8069a35bff6968591ac63f50e0b9ec2a1ded3bb347b37bebbbedd8fa2a3512258393cd23a8ec059ffcbfb2cc743c1d16be77f714facb79e3df2c06ac8248bb5b99cac5dacd23fa4e8eadfe5114a3babd9cd29029b6275cfd5bbccdadc8060a07b0a1c58965bc716abb54adf0beb47756ca4ec2a13bc7ca75b138456113dccf8576ba0ccf2a371e23d2815373a10dae1db9cee34725a9f089ef87869bad086069a79e76e32db42c74da0cc25867ceafa1014f2b14ef0018512fdc58dee602556699e0a81f8f82652ad4cf4608c641bc1898aac6801d23b8248addda6eb536ac63d4dee9e91f4650e8b3734caf2973838a559efbeecd18653530a313af1b94d2336a15c6dfe3b3c8fa0574d770078470cf9b07ddd64436d648aa56b465aa482ff921ea1411fbbc94ee040c1f29998e41d1b923d8d7b677a23f262fe650e963e09d67024ecf4a38730c897857bdccad6ca1be985ca3cd27cbaae3d495235f90fb37a84abdc41d8bc9f302033cf8032ac0e2e50a9761a822963564990b85819aee6dbf8f15c78e446f5922e9c63103ad01932261031a8e797517d2791f80e7d78f296201e1e184806f0bc2cead63afdf2bd04a8fda9e0d0d45540ca249ea494c3960b72873cef87cfce2132b23962ca6115b8e6d94a207c81fd265a801f94c56a1edb2833404109e0ad272f2d5781def3f9b5dc642351777b0fc126bcd42f49d1f03cdc71f6b2fd5d3f66843c67bec325386b0b6f025a216b8fd0ef1894cd4a81d005f374a3ea65e9023c02a41cd3b8145f0e56388b4928fd2166625af9e191c19273ee96b462a71d58d3cecc602cc4ae94462cb6b80a81c3fdc5a7856321453b881d51a964095762fb343cf93649a7828b24f85554cbc91241e2808be40261a2e277542de35dde4c5c6173e72597daf1a8489ed00e6b8550785ace660812f3b7d50e88fe0b4ad9c49124c2da7a765be028f353e1f808f05adf98a1d36e0ab52514e0719a1957802df5c1a5abe86d0a68c5410eaafe585d4a86c90ac6ccaec7333f72500285d3deb1a0da472bf3323fa116f50918e415e6953363dde302c48918e1dccac6f6667bcbc31f4d58c65da24f6c01fc4b3fe0d472d763d4370b23a141e9c501ed0f597e5cb87c19738c5239276f5817198c32361f7fd5fb67e3a37eafbe11801304602903dfbe173a47458045651a612bb132b44c8d24e85da373ac9c12a38b26938f8a386da0130cd0d36287d6dd59af7529668575786484211146f16a31b525d615722db241670434d11685985b20e2ca3fb9955a79ceabcf93f2723c951e99bdf687d550dee1b4c8a7246313f95fd2df0c6cd23a8ffe89ec05c5a187fc16283b8458be10e7c692bb1a6732954c0ba01962e455eaec930e0a8d0f5d69c91acca313f37d4af3b92db75f83a08c2d8498a9d46450259a9f39a90a9fc5a4b2d41fb640523b03e6e19db39db7da51b23959617e7d2038da06ed05b9658c876f1213de022eaa660e18a2782da65734d2b61316e5abfe50509519208cf5368101ac59d768a8519d62640b57762c64bad7b8fee1a75af679d68c44f7fe7d122c17ee7f047a583c078e8778ee10cb61d9e1562c1709736e05bb1e2a810944c54acf82f61be30463911310a7cedccb71b6fb0eeede6fe117204d6a73942c841da6522921122dab9b0a87a1bff101a294bb4672ed339554f2e04748988799188a1f87822885b85dc973cfbd86cc9c3fa2c65aea41f1be8bfa91bcfb78b647a42c129bf1de08da0afe8accb5d5709e81eb1d3bf20711f033eda0b9849c9902263f27129dcdf54d3cf1b9c3d4d99eb50b248e773c29b65af93765fd376883da054d9e80c297c9163bbb990329e4bf9e7ee8aea2c7ee79297deffe63c8509e97ce633a6cbcd9d067e6c9ff56b229f034b48e6410182436b8b4793094cd9fd5bd04f33108387eb6b49b9059f8995ae2389a35de60998a58dc84475a01d646bacec941607ae7995f4251a0e838f5e934cc196b2eb5516aaac00b5a7458bdb05b5c7114acaf5febc0ab163425f7333b6c3bda76962b5fc6b85ff6166c5a6f63332e7facaa4ab2f7469bbaa1086733a50855f0454817da3655989fff939f76be75ac6f60903841348fa0f43928801ae14c995d5a1639979552690c59de0231fac49018a771a3e9c9344a9df1ad97585c4d172acda18b6ee38ff74fdda592f603829fa217cd7f52e2ded50fee0cf2c30ccbc0891210b454da6831e2e95dd427035b8c1acd9329f999fd49b04662dad317867ab73a556631bc4bdd7370fd7deadf6c256f5524f517b43dc3ac3db625450589ce6af1667f6637f29dcf9176f0c8e12ebf792a3a36915ea3948df856c39edd21a4b5138a578ebd1ef8b9439d94eba79553fdc48b1b4f866f9b393a20bdf040a0e735a6c414187955dc7cfdfa7a4a7ae90a65d8bdfb78db5706f1c3c6e701f277e91df46171219d4c356e7b1a2c11db9400513f1a122286e7a6952c6f26ff936a1ffb0208798917d30754eee78c41af82f2b13311e9d5d381bc94d9a457f89b2d1c5c25a64482cc38a1046bb3bd5889bc4085cc4c8d77a8a82a9734db65ab323b10c359083f81a57c632a6040bf1f73e3a65dc59604d2206998ded58e96026938d7b9158caa66f2375ce8996d104c32601369f794090a655248257da14dd202946d11961134f43f6e884890f9a6eebd25d328be379485566215ba1b34947ff4efae23e6de2d91e0b1314f02014ac1a0111905a0bc74561c9550ea527ef73c5af0c7c4d60c67b605760bd37f2adb45e2065b4c166f8ec14ce348fc9911255295b725694619fcfbc8940d3b2b4fa55a161dc771ae078337df99f29994fe7dc91660210df8cf2c534ead65322182f71226439e3b979eeb19ae5386b90f20eca438aba397a94938b0af5288760967c19ef005932bff8e83943abb5ff943760a8c4df935af0d95611190549e045e915f49e7c28008dacab15427c38872417e8cfab223f69325dd6e76ff8890d87f7522879ab39443a08f556810c4e5ac10c1fa4c9b620ea13402c084942af5c758e63289137525b0280b6168d75430aea960f6a6e4164c1ae524a3db05b3d6916e3e1f803ab3c6326332b9549b38d123c0b12b69e967fa6e16314829b89b37ce985cf4816279df9b596ef4f65d17f1f6f4e36944f3691e56d8cc7bf05d0feb864c1dbcb312ef173053f09861ad700b9aecca087083cfc6ea953021f14e45caa750650f75c546e5fd9b25e7d90bae204296205c98115057a2df744bdfa638ab25e3966a113e2f224e2266edbb7afc8ff79b1f7c6d4935c6517c7599264e407b7c05e40b0fe0c964573675d97a9e236f994ae0e7c6adf07e773ca67f4b6c48dda783b75de22c57664d74bac4015110c7ae3c2ee20bf915da7edfcadc6b3a433e8e9d69cb26b743f08b93e4a095b90451fe2129c471c43806ca8ad98c0168993992135d744fad36fd035a67bd8706734e33f29fd145faf3878b47fe62b24602f63c79e98c711c65c5c460e22bca8747dd0738464c787995aae4cfefd1b5a6a44b25772fac409ed4a240b8b90e9210d43c33d0d945aa9b94f5ee5d2fa5577878f1060d43311f1bc414ccabb5f29a30b285b3b3ffb31b52e6d725b3debc022262d8057665eb8237315d7af2b6a7b31fb73823fe64ae90f7bb7d1b9d93ef0751cd3a7137e6ea0d1d940cd24d5d0a718d220a3f696b9b5322ab5fcddef66c4b9518fc68920382d1d7999417641444ffe5ab6b54bfb41fd0bc571776d26f686c06cff27c553b09527609e87142934e5da794ba0a51dd5828f5d1dee68daca3154e1519b68d601e05b73351b4584e0b7b47126fbf7bcc1bccbabaa3d2319799490c502ca58b9a5ca096e70209a968bed656edefdfb942a4dbafd739b76698ff8019628b484338f04a860ebbd13e09c8d48e112b8cd937d4aae3dd9cad152c71e0d222a885549716c1d270f3165b2160f33e1ff17ee60f863f0334c80c6f3b977cdf02869b384513cb41c596b3b439763d4051147b2e5c2e56f4d8abaf11c20f502700c4f20ba5421a01cd923304b8a9a51bfa8d657e4a3ad7cc765a93204c1c92bc41766f514de2483971f62736fce892da06f7798e5bd4a3a41aa7fe0cad27879e03b8f8321124f5f7c0eaaed089a5be109be8578a21bebd486e7c7879148fe0aca0113afbada00d498cdc70d44dc7387df8436e1934228a7da01c186686f11b11397a3b116af99a05b70bf7e793e9b8e13621742f555932483c59650f998436ed702d95c9a0640bff32cd21a23c848715ae22d40c3f3da8da53ae8ac87a6119d15d4fdcf2e5f436ac9682a083098a4fa1c271de859e49ed28438f2159b282ea709dd7d105bb3b38cdd18461e8ada57b9938fbbf4943c85a47c727536dfa916b5a46dab4e2c8583f815afda2f45e5062b13eff89d54a8e906af90c8df6d67a4a9e435e587069e8a45636fc973df26db9bb7c7b34eb4ae9eac6dad139bc0ec4114fccbeba42bbd958b601097aae12bce9d95d3dd39f63e283440cc5e74f67300ec536bb38e5e9d20073419a06894c1d91c2d0de3a19937b5b81ade367dc6642722b1728904b28646a0a0a3bbb36c1efce9466eef814b044e131b5e7876b7f63e4787072a78eca45525cfa1c900768311e7cca599b19bb7a879f147c3d185c75802587876a2bd346af658b20abae3425187df89204a2984cfaa7cc0799ef4d5e7e48ff38a8bbd0bdb86d185c13dee705002e1f6bf8c13ea68f063da5b64d8e138753c69b68f0484dd3b1f3a6a1e5f041b92b86d25fab9aaa3df7743773e943506a7b26f74c1164332f7ebc2bb8e0edc68cad58bdef04ed140a2130314d40e8b3d529695ced0982e3fc5af57b97ce3ba6fe6ed5b18dd82f1071eff9f9a21ec0b6a1bdf3f87a3e43f9932abd9cb1e127123a2f2fea3b9fe563b4d2725cbf628a2c76a697d6611e6e3fc781409b5649644211e65d211b63d46049d63655e9c0f6395f2144ade423f5d74bbcfe7c05e0776efae6a68f56254fad2032ffa8d44b5def13a805611aedce23be8909109e08ff60a659c56a227a073d6aee47ec456c2dac5ceccaa1104f6f79745a835572b4688521496c19b3f57a856c2eb364339d6ee566fede44ffed1e8d5caacab946a0f5c5bef1bfb46e3b6db3ea9cac925bf170574220e80d2f1283076550902cd56376c09f4e102a698b45ccc9a4dd584c7055ab24790289d45b526d7988d243fa6edd40273f14cc93f491cbc1ad738a3f2f91b22e440e1b59ef845b97c851a01b5ed2ad8a4a960f8d3fca34523ada8738c0f79c9ff52497c04b3c8efb61d308bdbd84bd01136312096d2521ec91a3a3d7a453c1caf84af6cb3729588a2eb0d328a701723f465edfc92b5030fafadd707510534c10c61d163028dbdbf3d5635b687f5f22fe8b375bf464e3eca60babd60cecb2b940c49d54dac6d953cef40393dae98bc9c8cce9db9e9a1d22069fbe4be9c9dcdffe0065660321739bae40ac0d608d7d8e0a223d767b46c662e2b54aaed0f1d2d60f244f523336299e54dbfa3cb1e921db90c9ebc0ae9a33ec8160a3b6691b71436c63da84850ab52fa14b219e0d4029fd1874f10b0c95663425f120246715fffb58b85bfef3e978998e6c1ca0a87cfb6ec3fac5632b0732e430a6739a8cad940386693505b918ef7e6365d96b180c9a1b1fe48d6f4ee6151ecba023cbc7f421b221b136c84c54a3a9e9b5c9c6fd2793812b2848d9256fd2f77ebead4985e9b9f8100219112518ee82a9a6a1850798fa9715643696db238de2f9a5142637430b3f21ce91383cb4311fd6b494ea79457ad9da4097ef7bd86e73c086956824988262d354d282c5eecc12e6e65959f5a785294ba22f08a82e97ef0b60432fde18140f404fba96df8337c1b7ef912ed1607cc5323da8d7c6ce0124a4a4be5071e2dbc5c1497b859712e07c63e45f7694a1017189920868d11b23175960e7d1bda8c3e92a1987b19d975ae10a7c8db1b210cf445974f868113d858a31fa4789eed254ca4b28304ce46a830b9b0617f427c43b1652edafac63c20820653c3eb21542e5e327fdc8a0e080e9405346d99619ead9b8c42df1b3a18e24c0ce88557325ecbeddaaa50c142ceed1e5a74ade37f1dde528ab92d70884feadf676e16002477a3c3ec38b10e3b10c1bd0865e8c620ff2596196df313bcf384ee212b006d67e77c57d87a247b6624117ca3f22042aa036c95caea9e75370a6fca97d5b2d62745e69a4636dd2a57983bd9a7761401277547a334500fc31099732194f0cc6af55dd003e140fc7f164e0009884d8bafc8747aa4ea8389989c6e71ec6e4e8e241d129046154ab362b01efa633708591aebf9ced0a2b8f327aa47e166454caa64d16731ad56c34cb5a258377ef223eeffc640f33e6a42cb16d9dd2e7fc62a7a255783a9583e6e103f21c9f5049621b9121f59cbfe9e2e04f43fab6fecc2c323ffc0b70cb5b7c864506e5b95d1e703a2c10e77377227b1788bef92c24fb965104611df0c2375b982eb9ab8d98a0e17747a241e08a012540bf0420dd952e3dc68e8af2cbf17731d098d335f82eb8d81a7de62a03791765cfb9ebb8ffbdf7f78eb168837a28932e9a1ddd84a4b4735941a2c7abdf37e933ea238f25c425d9255b59ac8618879e9dffa495118641ff942403d4e55991017f3b89c6bc75435f7cdb29201c246feb741461d8635994d3d6b475f2930f12ba1c664d74d2a69bec5e09800339017c5359440d10dabd24f7b7594b1eb8a9c9e516f47c5a5cfb7f367e234b408436127c876de532f0d4674d21c5a838bb307bb5f7fc922d7dc8340aadec184addfa6cd4530ea58559fed8b36b7f3307a7af6390ef4ae5458572e58f334c22b781efabbe2e973ebb679ae8043ce239b7721430e052e35f0299dce16925cf56e08d1b764ed8877dd0ed30f3793daba677d46f302c71b991785b281f4f189b5716f983e994848284cdc5389d27a9d8b618afd443bfa535b7b38968b29098e37ba34215cd3dc0d42db932b6b48ca85b0a1950e7d41c290c0429123dd30c1f8b6deebc91017232f4e3882217d46e21dc3c1bbd8cc1b6219b7c67a4c11c252918934780678eafb5e716838efbcefb4edd133309538102ede49bbce865d592d1cc7a134974f663aec5757e942d294f208785f7b728090a0c5311f67d02e7a6e596a5926acd51607da29386441ebd3ddc88dc3ae5dabea6c3b321770ff17aad51d2f91d636bef2e904a08e61e8f861513b9ab9a3b097ec82083a6a66c5b3d579cf05b4830dd8cfe47d0886d10c847d5cf82b8c9ca4fc3b13b46d1fb3146dafe35a4feda53abeccc582de2c865364e19796fcc587a887c6a713f7a33bf4dbd0e14c774696bca01aed9d632ff7dfd19ff5d443365412f45ce124e16d64184e23b3f54c970a05227f6903662b4a06c734c55a1f3ebf863ac1da9bc2d1ce87ffc020f4320d804fe7e9eb59171de9d1cc61b11f5388b95a0a4aec5c748a8532ec62670f03120dec05f9f20ba68dd78620f46e180ec9469c6285777ce15e7904973fbcf8bede322b33cf13184cb70d414849cf5afabfc9a7fd47a8cef76befdfee73e412cba0d96aebcc1ddefa07b5d41a9276a8665ee9ab7488ac37f7baf4148ef2a429de4aea3c9c8935db165ff8001d13d4728baa0f7d49fdb6adc2f189a5cc5bfd8ab83b5a89af1550170a63091df8c62664d17f84bc354d23bc3b537fb22bacba91bf65c6006b652925854df584c0acbd333d67901472d2aa5b7e8fb57eb6483dad7d3ab1cae88867c511b9d4d1f30a3dec563fdd15116f4b0a9f4e2a3817abaf339913c6add0074f5b1ba6185dd8715798932e7da40f0e8526e6cb9a405babc36cc4370231b02ce2253da4d9a1dedfca60c8bcb0a954add04c2fe13ea8989f42dc935ef5b5233941c6e33f2de8119157522e6ee7c8ff18adfb7bbdad321b8e47a5e2998de61a8d4ba4fea94677577b5516bf0cd0a3302e4e430a1a8ab6ea8f826b43a3df1001b86fcc741b4584867fde03abac286fa983a6a3eb48c25f221b873e1250888dfcb0bd11a5139fbc6c3d47aca3fcca411a0759373125e02cfd4800823a30905cdd28bad519b87922d7c9c948d36353da7d574214d7c1a109268c9cb01527b41fb7bf51197e4ab8e40627dd7fdf4e4ba6a8a76da682bb494a8203a0bd5c6d8ebc0420896262e4f3dafe3861b94bbb5037f3d488ac045ca8080508e08fb72bfea2f4ca876a88ba486377e0eea341003df569396a5c1304d96090a2c3f10b228fa99bdd49b265abde56d2171e28b8f4ffb7470a56f5612ef47ed72739d5fa48eb0ebb91f6adab4be3d36ad5103867fc5e8ff6ae8d82daa9baeb5da2898de092d213f332141cf36783125d6be4008df613458d567b8dd31fd5e964e24c0d8c1338c6daa310117e35d5a855a8df6f32f71a5a164a9152a4c3d37c01c2dfe47ef34987979a30143a5126b374b1e437b3e17543a5ccf65df342eade22abc3cae84f99b145d4c929341e47d3bece02be6b6f0d99c5194bb61448c185df702ae60d406f84bc5417c17aa9c8545facc01fdd230b954643d150f352737fd2d8e72f44b1016f745fba57d23c99519cd87894a067439326a4a6bdef47b6a405e97273b47071eae1ec8d5288e92566967ae151a849cf8c77c23f4d908f04fa2beaac6e39df47ce5ffaaeb91bb87abf42e2066171110617c87c70f19ff93c7453091059c6c46b59f0e6d1a507dfb36837b7073520635949ce3a56450b67dfc0abbb5c8567bf0464a0dc872bdb808bc4d23bb5551cbfec94abc01370642a27d150e0e280167ec6feec62083a188c4c3c159eee54c804288bad6dc7044b106b712519f48edc706d8e07ee315c23dac10d2887866d0fcf20ee2bf148ceb765754a1d32fc52c8c2531c2306fdbb17a76ed44fc1ae1e5c59d9a376d4a48a79d10b9d6a527779fff6728a15d7f21b39b94ce71804301aeacde1bf5e8e0baeec67ae8b9cfbe1433a0cae16a68524dc5be79b8552aad250781032c7032fcbe96d2b9966ebbfb5928852b216286a095cc861ce114b4d36fcf094c7d5524ca880c6c1442e42d504b40406cd0f9ef9987f226d3cb8f929b3e330841eabe774829da97bdf526bac17a7a5cb8b9bb29acc4b0bce09b634884e895d95b1e2f56d7d40a4d0b7bd65104e000f40f0bf2fd2426d35f8f67c49b0d58eebf0d65f38146fd70461be52fdb5378b787f74ccbf9cae5c9b3e6b82f10c8121c414cf31bfa142acfa2f996bdd49d539c7d3573979a4998625bf4c5e340d8a95e8159d7ba6f0ba6895debb4ee32d20317002a9d649610dbbcb2b607d59eafdd4964b7cc95c5457723035b0825f78344a67f5c208d58d5f9824ae3314a6ac07bdc15b7df8b613739c52d40117b2d740abcdee96bcb083e9f3058db64e2a96acfaa434916adac66a5f2086801120409b0799a4ef74d88e6911a71dbf68fd9cff21d865fed97584662dacb3e62c523642d40af7a0267fd8a945ba4986c9011f02d3719d84d19e0ce4a865cb80b596c8de37bd5bd5b5bf8d947f04f0d8a6ba581759a39def22be88e7cff771518da9cc5b2fdff7c1a25689c339da7b1a09639ad0e17a6bc2f4c23ff53b4c7fc5dd7ee7df606b53ce8c76d52d5f07676b91c496bcfa4408e13e6ed92eefca7811ecd3dc09d3ef12bb8d64b18064c02d6103bd35bae087efeddce33f759ef978423a68d3093bd64e2d267f243f16b4f532dd17e5178ee8334f7ae3c7173a457b555cd8352cc7a889ab49ce3f0b25d05c8029a06e5dbda4c6688a640520658d3922fdc414e03f9180e3c2d46126c1f3d4592c7d56092f07b5eeb459c25931659458ec0f98920036251e2238f7902ffe52d2690f8b59a69790362c43c3b463dacebbe85865c41554a11235fe50be25d1f520b4a8653eff3aaa7d5f229768efbc491b9685331022fa10beb9b12b3d43ef137ed89e01c994d464529dc5021bebab1dcc688531d2413cf8736964bbab3fe5f236ad8d18184a646b81d5f69395e8c1f94d7e82842241be09447f0205f1d90a56acdd28ec9bf880b1620247025f55a253af30d71ce46ebbc739505f19230b94e470d11e5c80415bc8a2540232868a0478f48ab504fc61352715d748c37aa18fbd0028b2ae1f0d335035b7308103bfc63d27285cfa7016c902e848dc181accbe00df3cbb2baa541e644804f03f4bd3264fbd274d87fc15b7305578ab2e366a53d0830533b09c04512ed17b715cb5fce77a84e12b55990a6b8f8f4f4a69923d275b6a434c605ab043b19605857970e342a587fb54990d226026a0888b9af12128083a75f1d147df5f212771efb6bab1fd5057fecbc099ab78d1415435492ca12fe29ac975faedb6a7d9b5101fd19db639d0de6ba4945639af5207abb0cce199e7a255fca9ed7f75e3233918e08a0ebebe860c3dc602d71f5afb748d7d7dc32f2f3cad23661ad90842538d1e85ad6342a82acce661824705d1d0194f9413db47e760f36fc6db6e78d7ef321e4ed2e568831e6e8925b882b025e5c6d86d6604bb74ad2510800bb35ac44e12c32ddc01f3fd4d40e7505052abcb32aad1f3b43334d2931906e15bf9e0915f83e23961c8fd97750f552b025e98250af20eed99a01b90e97b9e3144b34ec7a1c0b2363f1053cb9894a9c78ecaa41161ca80a02ce143255cf246d5244442411a232620adcffd37ae067f38f53980ec49009e1b6e231a25c28594678100cb94e8a50db0d057e068dc1c36aa86131177421cbce2276106bf633ba116309de45ad737f668888669bccda0ba83cef0a5300c5a2d7f0d5d73eca187e6b6cb640ae59171146a9507042782f6c801cc3d14557117629ce61325c8f9cefd9728c0e147ad0afcf05319f9e94271c66e339deafb472934758efcd7a60a8f928ea516e2dbaa4e6a1d01b553a8110a46346b7cc0685a8878a09441b14500d6361db613d751ec078e038a88c2596cd35466302e47741757648264ece44125ccf5db941cb95b068693d0420fde186ad98b0e5bc6c070f0fd3a317ea2dd1cdc315de4abe3904db7bdf22c3bb8d713eb8d91a7ca8249c0f370d7e427d88f2d2ab9fb1c4f683e51f56d9a3df7286e70147572c435c606438542cfb9e2d2170ccdf6620809c64375556bf718381f3c1d7788bbf2ca530c9ce4db04441f63b934f20725390afdbbec210cb74fc8470664a68123c2044ff077c6072929ca2386212d299f978ae589c4847940bb5198fa26a66bd0f5a5597ead0bdc88e26426842fd9fdb9943d2f6476795f510d21304a45ff99fa5c6163d1ea9bce86dc5609f522a6f2fcd0b7a0024388e134e0a5bde4f885991d143c1913825eaae64d8b984d279a65593f895f7221d729566a8b179d42075115397cd1cf49639cea1fd8090d7c731ca2aca8d5779b4ab33e7e147a76b63894ab7e301def5a63571e11b8b8c90d74da62e434adcd9c69a227cdf621f6a040c71509617cba772b445a0f706ba4d911d99a7cbef11e1183b6169fc0014a10bcfdd1cfcdeda7d49b369347d6e8e8e097afd9aac93464e6691905abb7e46e367d1a41bf720f891a5ea7b165ac0b9203ce5966d85a4dabf8123c8cac16384bd38634c62d0e6f9039eb154e50b820e6196227e0a527f4e776065bbd0fb3d6ce611256f96152eca0c2160f24e97cee1af593e1c97d5dcc9842c49a01a93470a8ebf84c1174eb557911dfecae790cbffefb2c73f09100564937cc28826a9d17e33f3344e6ad5a3dbcd9f92b8aea832c7656cfde0e9270bc823f4b891f6add61064441bbd5b6a35a32f0ccbe8780dba15ca24e630c7c959000016c82ad895ab98b9d04fc0d042bfad5b9de862b1f7864fdba65e9ca693a528cb0ba5a93278c12099b11aa64fd64310f0b6ab29db1da24dfc89797776a6995eb0ae0831e6b4d98dfec9f2b7e2de70d0be8f9b2bcf489da086e6d8c2c80ec4725cba1ac345ca8c3c4dd640d9ebdda756cb102b61b743f4dd9057ea072dea6aac344fe168babd856614e8c40de97106e84d03db27eedf5d9147efe5cbeff50dcbe9089fc131e03f4d78dfa9aa07c73aadc77ad4b4e911625942996266eacbd42f2f41f199ed9b6ed5a8cd861ceb8574b0e2cdc27f373fe2b467ea2957d74ef90584eff36b552885d52ee8b0b999499a08d9434dd6ca65f96570f6e19376c0fe87c73f8492b6118b062937180eafac9ad2718bc782175f1c3d724e8eea618b3bb3ae89f18c6361dd194b2b9ed177b9af3d3f94ad0c1a3af2b912f9403d24ef2b7a86d1d818860e372f0a6ee1dc33ec8e343c4d6f42c029e6a02ae1ab6f97d7357da30398b5c7bfbd6648cf21562f7aed156fc7233b08f9a2e29fbca3a55a3c0a34797ce7b0f8423493a38afcecbec719eb1b6d0d4af04a81c2d1759e2a666f0a7f32d056bbf3030399de281a19950504f9e497a96c523813f73ebc20c4c519e1ffbf5710f7212bd80848ef46b5638081ea25d04fc5d77f51d6e341aee0a58b1287ee784c16672934c82f12114eb9ee1fcffcdc50be55e248c0355a9d0555d955b81ed15482dd47b17e50aebac077c62e9e1603620b82b758e1bea7714bc131c3a13b84d09ae38dc86b5ffd38e8656710a0fdd68813df14c3dedb0484e14c03dff9229f8fbe70f8bf6dd7f5b3da69cf66038dff480305ceb5cca339eaa59b51816e74e5a48bd8ed1d5314670103b4cccc10a5c08d68725f52f981c94610c11afa34a7df1db0ded564f692b20f529bf7b1a37d60cb439bb228e41e732642db56cc14b40c86449063b871304ebb7a043e8d3cd87064bcb8c93c2137a689c123d9fc4e924f7469c4095fbb27e32a5ef03769831101d220297ace524009b89a5b94dfe634822627585cd8071d3888e2f4df6a054527e10f9064284c251fb43ce75b5bc0c955e49a850f0e1fd72f4bec37e7a3f0308e5af28bf9448cdbfcaf0c3b9228b75c2bf8af050977fa829b46ff92b154ff551d10f1235b020a7395ad5f5807095b9ef2ca1d0d21a86c2ca0c8cb9add9db26a44974725b884777271dbdcd12d8e8a8899060f91af474bd2f081dc15588b300f3f91502a39e9652791ee7abbea3faf571420030720f0b1c5afdd61c5cb9661fd20671e30a509a7cbe86bbe3257ca2f974b2301a14db4ba778d9578250bee52e44ed7e2af45b56e4084e3d4b503936c3546198b1bfd407d9d78facb5e113bd6bcddf7d9669a46e76ffa149f849ac3d104d1ff2875d5708b9b49dd00bb260b3f74f16cae8ba4d22bdf4e4e20c8c0c1d0353fb01dee841fefefa79d346b43cc53ce654628dcf35672dbf87827afc0b508b37867e7543a84d383a3996567583838e3d3dae9d6fec199e0f96a67c089bcb2033708f58200dcf903c7f6a59b25067c98898533803ec3bab5c64251bfcd33d1f5d6648b061453fb3305f77e5de6c44dfab98a982ef8471f9fc6a48a37cf400d01378ee044abf08e14d02f4ace0fc9a42a9f566f76784a9b04c0eb6ef131f66485ddea4f05405124e505148787946bf6627d4c94db176cd506a37088765bfc3e27106ff34124345908d312aed149affb3ba0c0a3251c3a91fa2cd622cefcfdff9a49d4947edf8bb330cbb00b9a8b711d0cbf55bad0f799a9a40401d6265474fd76d392b2f652d3e00268ddf6323b884b6c2c9e8b0832ccde2015e95b6ce1b39692b61dd50d41bdef4636419cae0c74786ea82ce44eba70a283d3c6ff2f9e261ffb07c43d27707a49eb271e72a295e08ebab72110598c520d435f9d1bd39964249314eabb2f83bf797e68efcb0db064f2455c3236309b0e5deaa98bc7cbca4cbc4963096e3ab1b9876035a9db344e58e0dd7d19d02b3f3518f0fa72231a36666f0cefa6bd133d15e7cf53611f215cf84d4a0f7eddaf0a60edaea932fb279097449e62b6ba14a63304e545101a45f5a61f51c7e81f72f5c840d1c004e6132a7cb4bba621e5b170da845a0b29793c34b3db24f43bf2c1566c4c18a3ca69af509ecaf3aa3e283c85674123e3829e9b4ba82d70a68de31c772b0375a3756c313e7369618098898fc67f007af3235cce0ce64b4dcd2b0f656ec7890aac7c198cdcc4a97cae0561b13d78156a6e96abe067b4d724780187e41da88d39985d85fa11922ff4599aa729a8d3f301b8b59d2d246b472b82e96da5795157c0068e14640a1385ba917fbbed46f6e81d23d9fcbd2a16ce5bb4966da48d3c8af3c62ef6f98f22a2facad0212a52e5cdc46993fe8e3e5551fb8a8c7cdec9ade3f2b70f60a72a2eea20f29e428df884aaee5a944113b22978889a8311bc741d47dd1447314554463d5f0d12fe100654ea4458efcff168faa4d439729aef45401ec0becac8965fba0c0e10998a1f90e0fcf25bc851ccfe73b8dc70529fac55ce46ff0594e91075407702b28adc82bf92b25f799fdc694cb59380c0eeab52e7a799220b665f851680323e1d0bade3f9c615d17887a5a5aa940d5393970a22db556ca8b52c2a5db0f39631211e72389114f5b9e810bd62ea598487bc37a6135725181fe2133b3f68f36a7dd3b4ea7a4308c82193f459dafdfc966aff215b5666b307a312d583bad5d6c4312e16972c143715e203735e82c5d312109d905fe02d92cccebc78cb10418f7b268ba63419bb9f966f3c2f310c3c57d83f52f1c2d61f7055b9959a2a58fc90715bb65c8abeaad310d62a7ad0d41b1f12ee4256cff413e1700af59a83c3d6dc66f98df7ad09471ac78d830ad56768dae46cf3b2ef192eb36579a7323beca86090480ae99580fe4d1e07dae131de3bb5ee49686611622760927e7f6983905d5288c27f35960bdc6d20fe22685753844038255ae917ba5498505d391e3bb672a5f5cd37f275bc794a706f11b8e695847ceeb15a07cd56d9ff63c777c244a0bc780b04562b804852ac1ecaebb0f82e8250025f8134a9421fae22eb3631b396a863a56b6ed47bcb5bbe204ffd6a609f3227bd3782d020c9d84feb0272d6e089f6342acd526f7d7c2812881bc285eea53ff77bbd37afc981a35ef8d2d8bf071508db0d7ae44df8b5c80f0474cf6205721b45ba79241d07618058934ea7e4ffe525c0b20976e50a2ee0a3e07937f32d6ea842bb9cf36f5360948dbd2a6d63f1fe7d0daaf1d4c867308908ecab4bf78a1f8431f159e75e2154ce17792dcee26d80c04382b9845d8dd004ac16c774bf3e8c1a96485b148e2d4780440e74210f89f62510d53cd5a29b3c62a28e1d75b93bed432bbff145a4bb569e6f7dd1932bf2bddc39b6f397c40d10736ed9b66478f289d7b09f9450147c1386020a82dbc8c226e5ae7984d53cef4e6f40630cd83923f3a4b2984eefc34e976aa78f116091fa4075089a59ac8698b1174e08bfae6569300883716376c4369f062e0528605df2ce57a3d9dd06bee4b2d15cd34b3f5ef37fa9c3980f74dda4d307413dbb6bf01d0be3bd11ba2ac6de7e5f16db66b8555804a9ce2790ec3751b9115fa94cf6850146b7734a492659cd8a79095c45ec9db83d3ffdff049ca28f31e81a73a65e0c627e279d3ae87292a9e70200e7475e3c77553a66877d1874948723cb87c783b0ae4f61b4ea1eb23f9d42daada7491e58bb708c4db39414b2e583a1d91ccd3467ae9be177081b77c668b779a9d42735c3f4ca8bb8a6a6ab9b1da6e4455bafd0b1937e084c7060ddcbca2f8c0d31eeb8ad29554c0440bedfabc0ab73a66c7fb0a58eea44d96d75a0a32b9ce2ab64b030b078845f205b4c12c1152e17c988d4cce0370543ab6428b1b45cda9b5f83d16d9877ae2bc31b558619c2ad58ca1061dd0ec8255b2424f051a86e33136e05ec974dc6d07967a5780e08ca82e07e06f9810821831fb6c2f33e8075021dc14d83d430ed74b3ef075cfa93ca64993346a8d32d584fc8d22815b673432a5466bbbcc8147c1e59ea718445e3a523dc849df36131de3f54f95f627c987d2c2ce9e7051c241e63cd07ecde961365096dc5c98003fa3db137037edcece4282af3ba4132a7da79513ccbfbfe2ec82270e765062b3dd69545cc6881e3feb11cc7b9464655c9e78834903d6d8941d3a386f9d8b8e92c4219474769bdd40ca927227d50d62a78bc2a11bb4b81b8b8455ef69d4d6c495e0f08feb892559d6cff4a9ef593155c75ebdc0ac0ba0a010417c0924935c23c38e381447b068df3058364e088e4ffd0f6bab3205cb41f40224dc8f5afd4ff4677f009cb4391c6986c6f8338d9ac42e03d06c3c1ecfde6cf47421016b8a257f20b967aca16c81cddc6ab406bf8cdc73fd8981b785244e53596a61b0f13da3c6bdbb34a08db1761e0e07fccd692037a78e158c7f34e83238bf43a85cfc93e709b45981ef5aebafa516558a98f3b2944e803d0fa3f58f2a49ebc62d7d6d6db6917760c4a48d34de98f7b3e72b60449789ef3998833f3736de3b630bd8ec57bf645d8f86b07345aa71b244cd9dcfb94f6b6297512afa95b83b924071fa20bfb5b0fbe818256a125ae2995985971175ccba2ea9151b906514b3e1ff636e2c37941c7e1cef96ef0cc6118ad487b5fe464e81ed81b2a7b22425b26b73c94b59c18d748864e0c1015ba8c34d73e6d7764d7be6c1a4297f60b960437c42e2918fc63dd8a21999efd07dc2da1c0dd687a3b85a20b4777282e6d5839b89ea38fc7e0f5f9b2166e8d3c916396e07f500dd0167873a4ea6520fb3f63b1eb0015ddea1bf0d70197dd26d2346855e74c5481730347b137800a02f1b1404cde87388a8d22394ec3a96ba91f3f64477ebeb56dbecd3145a200c4865e15d62c32da3f94a631ea185cb571ed905e9444319075ef236b49e66049939b50f4734b1b6c70a8cf85508d4fff6c700344aa811e05ac35e5fa62191b53422b8c7cd3b960e6ffcc2faddc46adcb5717fcc63058a4c4d4d59eb688ef35b9d9049dc68e12a10b879c4a3f94af9571dc05bdfcbb819f217d34b852a5b108d4afb55cea8526533afa11d7d748db87b8833b45bef1354b61f942e4931f056df2eb721a949d1fa9f58dd8c2fa31a7c0d2068381684032a3c556d574c3d3606b23a52bde3df486c64b7101573507adb8787df254968b3ffdc7ba42a1241d6089c45709844545e5f7f1d94c306d68fb76ad20a7f5e9e29f89f1cf379ccf16768a8445cd1e0fe8e8696b54f20dcae44fe74531562059f73fe29177835ceca7b83d8913e00f741ae9325f77c2f33b8c4e66bd796dfb3e2eaed2ab6b3a38a95bab9d19de0a5fa1518c313e937740524622ff67171fd01358fdcd3dac915988f688d381ba4e99a386fe56e1de3cd7deeb91a886d1217c2b0d60b7cc6df34f91c7e5e0343b6e3c77a024f69fd24a8cdafe3de1c633be27e4889a26f9c6492b31144909ffde80c3e36ecdb25d1271c6c0aa3ccd05f664b1bf640ecadf95bc96e749de75f322976d277c1f9cc3c59f6c2dd8e6f40656b1c0f465dfa040c3910a4460c945e5c51dbfa0e69eb5f5271da83f062365ce62e393bdf837711898e6604b3624dbb57d797c2838fd95412d3bbbc54e90f2597c2e3d650f65782a1a10447b07ae0cb2ca0a7109e9e4d4be1199b7216fa76e58ce6d442954b3a598103ed09ced3bcc58bf7c42bcda65e7bc17719edc7bdc37fec6195b2cb9b4d171e73c003935834ef1e46fe301bfd6bd0b2ea62011e5ddc1b3330366866f2b331596a604c89c41d32cd97f98b3908b4e9ae362dd97ee3ec329d54f816a83149e09a5fb188708bf12787e7312af0bf91ffdec58c38f0187c1d85fb38a984c2504df0d661f2651311ef541bb32d1b1de3dcbfcd718ce89a01edad9edc75c98fcc59da32894a8b468ab2871efe8d7d0a6eba378a39244f22c512793f4eae3b222efc56ee6647ab5f1ab3ccd6cf2bda9488ded4b77c6dd782402542eda9f460164d18596f76392da05442e9463cb38dcc31f5f78065554ec592581529099e6808f2e423f6cee8f24679290985a71c000b74ebdd09d7cac4b7f0b718c47e405698e125c478c7b43c1bd9ba7226d3bd9d137302e2ad9751d5aa4720ed83fe1b09c8585e7e3b032c5ebcedb92a3a63c327ca8c6d5875ba3833402fd912555e5df8cff71ba5b351853563204b28571e43c90533c402d7544f1f092651b02a8b75545db6cbedef26ce16ae9393401bf54ecbe222a29371019a5a66e8f71ac96b04ec9f2219f03755c209a388928c061e33c19046985c375daebc407649cad122263d3315cb549800f6ab1e81febbde5932c1ba70c9e711c5e26c874db7b125ccbbb98a5bb372e59267f73d582f67c1ac0b26d6a7c6c411484114afc27e79aaa1f41b93877b497b190078801078a9af1e0523363ba5e413d8be26b30dd6306329b1dabb8c17147499a85998de3d3da2af76f63f0cdcc012723f9692bce531acef5df94d76a4ad6dd894653388154f5357d8f76b70ea0fa33da5be216dfbf3af121e3812b018b71bf6627c1cd2637ab396be68f38595de61a23bb163f55d14dae37352629fd9e89c9412795e12d4af23a99b1e5ef677c349450f1c6c6c6b152596ae145f435ac6d082f07964beff050346159ba9e30144ea0194c9ba6b14fb384046d2acf4fa8e59f1251ee0b13a4450aad3ef50f7190cb9d765aa04f5fba1be92c8e12568024b2fa085eb9990b1bf6a304f05d6c4c0677558a32e2b80020db994f1305f39efa56129ae19b1f013a13385a3c36c6fc9440a260187ee64f404c9409fb6fee9ea66aa8707002148525b0da04a1d8dc54448a638e742218f7cf7348da6962832c8266e9ad481b7d9007e9db33c934f43c72dd25db99e018886223f2d4874ed086c22f30a77ea947fdc4d4fd3a9c320d41ba9e11e8e48966319a2c7b3e952e863dbd6a420a0c1f8816e447485a30747e91bacaf659708384abd3a9157a882af359ddbe0b8f126dbc493a62bfba8e4c73ad35a0235b543652e584ef395caf91b033372e6b38b1bde8b86c20093e3b7411e9103af6a2b427d8fa1d8a2fcb4801e52f3bf66caa4bda7ce5e01d95a58d59745f577e73871d13ad2b894cf02cab27877659a233e8f7e271f0232e11af7837a573094c967bf90a4ef03c4d9b980386e344dbce2d8a8a1cfd070f38b15957673e46f7860b3c90cd8a7278a955bfff1919af57e730db24c07faa1cf7b4da9114739aa9f3e704d5fc574dd4364ae5ebbea416a3eab2983991869d7554a04197e9cbafe476e51227ce8cd48b373ea35f08030939d1d35102fa298fe7abb73c724914802855e309c2a70758add4600f8d88a878213cc347b6acc1efcbcc76cb35371d4435c24fdd995d1abdaffb0f4a997cad4d01a5b5b7d8c60a0b9b4f23e4094f503139bd53160ff36622ba462206d9e260b20c8f02c1977b3ecf037f38ddb8f40d95da2d1b8a44d8a0dee50e8861c22bd42892ef914c7143641d09b11d2537b59d803976668d3f5cef9996e154b3815cb31e13c5d81638f7b66ca7b1d4756a9b91c6b25f521d3469ea40ff2e7d6a6de2d50e07cfb23870b1bcde0fc128ec26f8dc8fc291982025c99dae276819f02ef0e2aede28baa97d6632ad0846432c12293978faa99fc815bd7ac638e83708a83964670b8d1ab90821928b5b3552f3cede2a4d28563f416ebec2f2a230d4480a04e59ec08f87d43b82b2f14bf1c636d9c9b2b637409e230a1e82f94d990e2333510c6336deef896b9b4e74a5f2c09319d4c8e89f97aef684dd762b38e8277e617262ec95fd3a848f5fb03cfec6af6ec7a69c6fb961c95df2402092675f562cd43949dc60647c02a94fe055597bb276e55b6f4ee4a7b7270d3388d5bdc6029f5137cd3492ef6cc0f6abf9b02f77dffd755d31cf8216db7b39f5d84be81294ce675ea538d6e04c2bbb47be797c507ee047ee85cff0829058f95103df0a0f154fd3eaa02f34b89970931fcc89494b05e80ef5ca4aaf62d765777baaf2e9903505c60ea51db6838ed54c9473285a03d6bdf96f8cc04c88d6b05bf34b0f41e74147cd1b4e9d5badade5955454415a4a49761a052708a821906b30d70505b4f3b9cf24fa93038302a36e0c4c0a006508052b1b5c0f562f6a8ead930bd291bd795960bb84e2fcd716ed823e651371416cd2503b14a3a1b31e725e89855d250272461224d3610ce5b729804327252775d542a8a6f2036c7088d3df17019a013e95acb9d956f6cc8caeaf80d852f509c3e25c5635d41040604a24d2631a3792f7af91b7f66961e26b9a499bae990018e0912aba45fc451f9793aa69d4e0c1ec9cf8360620c8cb30ab3162d0f7707537642dca98514f1d7a60ac4c189556f766e360f477cd00e9b831e4387c686c3a025ba1746c6b72bf85d5eee043f8a7a8d71efac720bb257e03fc7443eb4a25ddda056891c89cf6162187890b7e8bdae71d0854b8b84934bfb920e0294db910537cbbcbb9d5f882462c1e3d20ee291d2187e34a28027152a23ffab29ab31461741b112ecfed0ca7e5dbf2be022955ed2f93c5750e057d7f2730c21e64acf3f11fa9fcf545dc3c63f54c771f74a3c1fb0ff5033977b415095e65d09f9d23c6b13e12eafce3935315267289313c732d3a911a99341b189292393b2d0b07fa2eb0dcba21d9cd10a37e8ff5559653d3db92882c52a55a358eba3483eca6d75f65b4d3b6cf1cc7150fdbba4ec312122a76a4b35fe6cc18840a2f32326eec78c14e025713a2470a2907764ad93ba9e611c576ab7a54f4baa21752cfcc9c5ac9495fe33465735e466991652bc3da6664c47f098b51a669937192a9479a8fccdba763e61d960f69be1cb0f57428d28cba4ddd674a15fefae8c03e2416b0da679a6c510d998a4cff84434b32720740511b5b12180ea1eafff65c29b13a93e28790d8f0af10890cc15cf3ee875198e2cf9f03e1ca9e5ef38a8585cf2eb27925920749a311ddacc7656903fed016f86788249538ec55e06b30a49beff356b0e61f5893e17ef04788a71a02225bcba66b3b7ef8128c612cf6d2c7c3c91dd32edd545c9fa0b2dcc6ae626290bb1b8e707e98c5536f8f64a01cc9a821398b86307b9a090a46748f4c21584eaf8362a50466d5c0b7131cfc91a45c65faf925e445689ee48eef89cf2bd4162c8f3fc4e6d36d440a3bbfb280b9c15cccb235d5c46dba3e83c0592685c7f103f682b8f938e5c3354f13ec27f68c82b8cc3af063e85b4dc412569830e7dfcd6de9c7f21187f328d6a5e3ddd6336f4f7a022b9447e1b7d71ac92134065628f84c480f66f3dae2e46c1885962948f6d255a3065d62a8def07a92515833dd027e7ce0a1693d1cc863a591c237ca6b0fca6cd4a2ceab1e84d12d1ddc562daa37ffb53a2a803fcf32400a2d68ced8f3d4b08c82bab7745787451ed9d680c32cbe5b52f4da62a111503bc4b16727ba8cf157026525c4549c258c4e49a4c1d5bd687a69953fc6a7bcc814e143d89b666a02d1ff9b5eb09742bf899a5ab8a60dd07f961dc0fcb1a221176ef4c3e81418da7e84fe2c272d26ec7188856d29c02f8c1cfa02316297c35241fb1e7392e220229d120aaeb90c4322e6b0027056ee56998f05d1f26f0c8b15c8c1bb566a3e479aab6211aefe4b9be4c037397160fe9a7f5c966cd5365887c592a9db3fa885516c0e21e2add8d9e2922008baae0d51c3e17fd928a9e645a771f46bfed0dcd177dc980dc32b374f5126f00c461214a209652a1d7424df90ae7d03e724193a340d4a92b3ffebcd001246465b07841e749ef92d63aad788a914784dbfc1c4c0689d3e5b227bcba39adb7fd6a2ac964941603714ed6295f1d6254b8af2f7b901757265314c5a28710becb813da4d7b4d3b78777663cec8b7ee4478773cb44ee3a973a31b488aee73a4f2b97da5bf088987e053bcdb72d8f2cb269178d9e47eb1ae6086a7026472135bfed1a2150b1f0233cb0b0816c08154e7670db5772d3a057fb875549fc6fed69c0bf4984bcfc7b17eb8a687f06c53c7189956ab910f986a5b00c4b4833ded95786719f1585a5ccafae08dc7e3fd34bafd36f5844b7fd918ca3b1be3116642749572dcf205f76beb878f5f52045fb799e98836e436f8780be9590ab89fe4c85a4f122e1116ef3e356bf32ab0cf871adccb2d6da9f5ba3711d70c4b05db82a3937f844595c06fb0981243c9fbb8ab6ab1996c9db45e94da17d2e04f5cea16dda5210f25eace56518d3fbc43f4a880f9d2c8707ec86f9fb5475af29063225ef2bf20ec1e7d6c7bafed1b189eb3b822415695b8fa890c24f72d38e744595739c89bf36f5db97692bc0a05a94918ceccd316143a86408b3a742a6428e86685f50ee91a81df4b8211c53084fbf79b7c1cf844cfaf3e2f9afde600c3f426f8eac12593281f10b60e979ab82c8b665237e948f079e34d1b4bfc2365c09ca2b84ab595ebb0b6ed75c3d85e446e22e76907e938f8d0951a5ced45a3aaa6d12036269b1fcea8dce12615bf3344491a5f043201b55cb58135a936081f197762ee61e22ba69337968b5bc8219adc566e139ee88df7af389e7becc06239e885d12a5634e8549f08d4e901c5bebc27be509324bece13c51994770faa74377ae53745d35b5ec2d8194c0394a49c8bc8b58851334d873af1b32505381104f1f69ed1dc5eafbb4b39d0ef80aa9dc054a60869b14536e4fa9efd35de3518735ec0d387cb82644a31950e35d8ceff9044e3d604aa2cc67fbb2ec1613d3ce4ece4670201b24fd5731f3dbb50b75a74064d2b2e66fe9fa5924325e98c6eb4b70ad2cff6896743d0e5182471637eea0579229e13ca66522e5bad2fdd786e133c672ef57ad0f7f9f385b47c6638f5108af48c970685b75cc245c502ab68233c77712ca627b44b4bd2d651c8737db82ccc5b31edb567f3635be8330e088a0e959b2f2f2826b764f4622e4eaa196764fc2dcc11086797f7940e59ca5c9d15a7dc10ef8448dc04ffeaef21bfe7a6faa116e3e7e398d460f49b618755b50894c4c61e0ec6e30752e912748da46cb9920615655549afc4517d6644aa2d8230c35f5cb8c5df2c665089f15239d4fa3376c4a8d41cb498574accb759649b22b8d2c97e3f8a1da150d5c5d3acd45febaf9d001eb44fd12f363fe968243a65787ccdc11b8bf7513c6f764c52abc3f4b175118db2a1999382054d3e0b4208fef7a318b292e7b038a6bbe086dd7e4c5151eb701ef3e4da4d26393d5341348a85c9fc56231ec6b96652511a0bb6ef9a17d3e227719e8e069eb16c6e0fe138889fd0780966a36ee625a0fce9bea772129bcdef7c42d92818283934a1848fb97046cd75e9d33a27cac7209a9636850aa274bc7b5ede9a5e150e517d4986177c9abe7da234c2b6731286408f2617f6eeecff98666358e875272f0b72b21ce2d4102cf99fe5e78891a34564390b0342b2e0553e763ed624dae2f37e096d54b4a30f3c373e1c0b1cb5e19f644fb4c7adacd4f5c69f132ead4bcc79923e15e8a60d9e3c488e124eb34a407639ee99d2a4cfe7f2fb6d45016ca87759b6936e1e9c6f1b3f39ac66f768b5cd3874f7af45fa2516217412f4394b8d7d354c7afb3cfa157b6fce0abd10adbb142996f44fd09a8d4b939f7e1f2aa088f551d3fbc79a0101a4bf2831b1aa8cb55138b8363be1a331ab4ec7c0cf94c6d8626761a977eed366cb6440f8297768323325c940fcaa3382492c1fd86e87003c5421d0be035662c78b82497fb4162eedd0a0da69ec72c92c427c61ecbe0b4a27cca916628f8e63c57ed48323c7839c6e0d6496ad653c2071a80176d819d4a3331b5d9679dcfbe29ba23b26604cb371e1f353865e225918c0d7a138bc8728caca90c37f38695c788628a35b2b4fdfa72edc98531f9edf55600e5914899691eb2536d3d3850eccc668631f5ea745b19538ba005e05dfdbfcb041838d73d5f2bec1c310f71bd48f54584057aa543eb09cffc086169b84bca074d55dd3cdd822552f5f1090831f46da58b024d9aea9169c7c198568def700b4fe701c4af744f79f5a8194a44bc6c0bf3c649c51d68257e50220e121c1ffedeb509b7c9e07fea65d218b0894168c6ca979e59df64c3c77cebeb359f87c3fd080e8b6d8dbdfb01bd780f8e7622060ac8d1150bc67ed1446b8d6f5df7e2d9822cbfed1e768efe9e09fbabf30571bcf8ab043a3f18e3dffede8a2125d598c31d78e7dfb5e52bbe6f3f38ccadd92ae4c5d1ce267a4c082d6557e26b88e6da75f4ffa1f12e3fe483feb8a9734f729a66096fbf503141831b47b07d19fc75d7af881506b3abd1409656fe69374e6c3e74dcec57e1264eac19ebb7fdd89d8b6c0712726e474880736210a5e68c6f72b1e89a586b14a8c7fea3caa23cf888ef3037320036f5ae4b5057028236768970cca23a8acf874adab2e1291e2a10baedf5a97b998ca3080aab07486ef726d0eb1bdd0bcb67e23f4e9735b6b6a4a64974731555836d71fb0a070f3d05df935aef5d492194f3cc797eeff24f17ebeac5132c5bc704a75172b424440cdeaf57dabf168fb8ec8caf616f3f475c246240fc5ff7843a49427928992c911fdb59b0141d09668f25d516cfa5e1df3403571f4b48dc5095b28ead2e86d39221817d7e0f258e09c9d96459ad02bbd16a4230684c302a8deb08123fcd3478b50a94b894e6cd3492c479570cc54b65689b31d52aafe840c06debc8d0bf3ae1aa67d7cacaad833a775bbaf77248b76abf623607d6cc26f521acb6ff474e4b58c66b8354853319090b9e6704023b66dfe8013f046b79f6f4e9f0394abacfc1dcf6e11badb7781264339cdc227b19a14be9dcce43174533274027b5fd09c1037d34f55fd99e56f39087b3e23f218515e42fd3ea1175785c2a4b502e909707a5a7797455e7d2364be9bd94d015a6b7a27a8d0718e46207c66af30013d59000f4759f79014991fcbae1868f6bbedf4d20dd252385772e465de4a77c657377a3e21c79b312ca1d9011f385e1ee3172e2a7375ee38c970e1c755dfa1ca5d2d78d3317829b7f55ac35fb4d8adc96e7406601d115140db184247bd650624a67e1c6eaf63f2a0d71dd67f5ac6002159b28ae2e97746445f79403264df593c5e2a43ec16b6b4c0e25f5e80ab1950ab6d2544d56f480603951ae303254cb875212159e539a1c104456a82fa1995e988aea5301c7ece316c2d2ef2776055ad0fc77f49c52e4d5d5ffd0803304b8524f84bc169ca3f94e7081c39785d721d912658be83bce7f363dfdc85553d1c5b39b667fcdb614372041f859dec9efafdee5002367191419009790b93a3dc7bf9476860ce773bba408403e1fcaae7888aff32368b26257761fe36eee4e952e07a91f8244268952f2d71a2f70e6b4eb6ac036b305f3aa53310367eaa37091d0a5247a79bb80adcc55ac2382bca0072d4a88de046c03ebfe3f562dfcd19793c89a9dc06808e4375f78990dd13f4cd12732c29ad9cca9f9b18b20ceecfe3daa8da8a94942dfb2536f5cfe47d1057de774f9f6f4ed8afebe58595fd53662137ac2c1746be59946250ff8fecb96c5610ae1b0c52efcb95a74ac449db5c491c6bb2ab984961d50466014d647523a678c82c681215d3cb3748faaa54e6ae201107103a4ecae2c141bb239b355a9053ede557b4b43690b694173cfb0a2b47bb73aedb6fcc8b3a9fb031271172114853b3be4e61e1627dd5451f49494ab9790964b62cc7181a764d6a0361c6dc71ae5d2c0363ad16f73a9c87e62eefd08befc487a762914e2a734ff1f7d0602e3001d2c1e94ea60b6ec188139b0ff9c8217265d2c8decb7b561d1d6d8b502fdb145d5220e69d1daabe59d2bdc97a86e8bbd89c91ad7bedf610ab1b2f11b1543ba81218e531ca14c7746cb402762a471b8bc6aa5c1152577ab5fcff8386d123519f0912d0172741ff1f9e38b8b32e054faeda31543115d9651fcb309a98bcfb7a2530e3d2911f1bbe9d7c8d9c45095f15342f3dc6a5c87421af8f718c49f15be514d0f0bee058e32257592a70f94d73e2392daf410f97d98ed5da8bc82ea21567fb7fbcde6c9379bf61e79546022ea0fbc2d0b35ab820a1cdaca4b29dfb438987e3f8437b49130591496443d35d0a61053b1125e176062959fab400aa37af6d5288ccfe08acd9e4457d2ae48155c7b68cbba6188375923005e5382898ba06b11ddf0ef4f8ad952652960c063dc9bc63eda63e83ade43391fa4fdfb31e4a643bbbd64f264422a3dec29f0538fec50fda93883e901651197161012a7907ab256edc13fac8425111c84d9eae090d99dab564a04cbfdb524190c720100dcb9007264d91551439ca0ec4dfabece891baf060e9d832709ee40731b21d6d7ec66edb276142b5eebb8e40fab7281922043c7c0da9864f3a9610299e5fd82617939509079ed067eaffb14f22c75c3f3dca9e1d99160bad0a82a4eb7a3a05442d786c1fe56c6e0e1426f0079286e2566563c37f929409c1f7b2edd7169c01e647f3048c5f56d1442a04e0869716f686e669899f2ea498a78db7cd0d771378e66770e40f77c2be88c5646f89dd73d030ce89e1e9ce23b3725dd09e86498a986481ddfdc56712e6474da80c7898daf029a477eace214b0b4dc49f39c9c91d435839f32b6fd231820014125dc73a78dabda89b1600a1db89b7e394d90c2ca30999bb6194c45d8b0004c7bf45fc65195265a4595c1b7a32362dbf399698a3159d0b20ba0fdd8a7f5ab43cc038e67214e69f521c0afd163cf45f987d9c72e52b908855cb3fa4918e4274a47287aec89dc9a09ab3127cf467d2205a1485cc26e50059b388036f8a79f1ef5dcba936eb01ab509d2cb4be47b987b1c3247309fb937bf327bf008d20064091959c0a349f9a55a8974b50de2e9e6e0c60f146cc15aeebb650ced8cf47e355579e43deb02d887347768dffcce4610d5553be59e1dc6947969c3119e40e8d59958fe5ff79f45802808f912cc6c21bde540d7e844e15ea3c2bf1c86a2024c30fc15bd796897fb626be335ed199dd548a0e58e610b288db7b4499848114b055124fef6c1f4774dadab470d1c39dc488d86e4f2418a9534ae7aacf46afcd7c9e9f171136a04e42a63ea858cb59c3c4eb82179c7bf89fd5cfd250d0ac7543dcb35b76bde18eea4c98a7e4d8fcf471f72c44514b0793ab3dedc7b39550a85e289daad44b3e5eb8c0bf47bcb4009767804491f42f7a5b1fe807c7fed2733ac407c466194c34c2f81be5f8e9dec7ab627868396ae9c6d1213260271aef3d0a29107c5a344b50021522b24ddd139b17900e90cfe67ba63018ac166a5d7bd25a7b1c5e9931a466ce23433b8e543690508ade2f5dce4269cd81ae636e9c43a4771807b90ebdb5fca620f0316bd01ca25eeed333df8659cad3a377526c47e755dd0abb6728c92efe6ded3ffa8431d633b19b4a160e934adc4314763cb6df630da277a41298f303088c8582cb61ab75e0bd9aeb18114171b43601ebedc7e8c588f00a0589b2b0d928fd3dec6b6a45235dbbed0c559c5704d4ac572e3fdb90c44b6ce5fbde9a378a08c9afeb838e265f97a93627b2666e55977bc827f28d69849cae8ff0173e7d7fa04e473316c08c3db91c8511d5ae100717f4ba989a02cf32619198a867ce3aec498d36bdd80d1d523346d3b7d254bf78e290c1777aeb86e205520d760d61de83c291c68a34c779b3ab31b1ade6bd224ed32574dcbbe651a36985abd6d9176d5ef2543cd220de2f68440ad0aa9f4ddeda6840946bedc63ecd6c151fab52e33d15b3cf56ac63770b04aa53fae6294c24a9bf8681868390e323454ae9254d52993f609d5d3f8d308fc536f37604db7e09423125c8b36d01aa9c01e28afb4fb8be13a6ff4ee5c4af5f93bc1b8e3028dc1706fcac68fb43fd3cf49ca9493cb463d75162617723093d56b0d824e17a7a40050f5a750d82c956bb25c1cdf0d3bebec3c034959a3b0e657fcaeedb09e18a6bcb3dcd5431092cc707d6da2699881202e69dd4b2d28511d5a9194791ae37fa6dc2a894f1b2d3abdbbcc3477026e3a43538b2e2e2ef03256bbb96b061f2363ac5e1cc5bb638b055344db4abc524f87764868aa3e4b064a3fb090172ba767644e4a09f0f79cc16a117b7a840193737bdfb25e0f02bb096cea21466952269b2428161f204bc60c3dd9621e59141e432e4803b992cf1c57cd6c380777412038263d294d0bc6c5837cda7f408fb0a307db0ad0a2d7f5d3b000401f39b357497eae05cae210a1267a4d1ace0999e51f9c954a89e5f467dbd44d21ab1938f879af3300de60d8b8b130b28fcb1622bac59324ae22fd01ae22a791075260085cef7b24eccc6a93d1e179345e32e0013ea01ef295523874d067f0c9c7ebd1bb4a1dc4103bcb314b3834c268450f557cca9a9ef5c4ec69ddd1f6cf38d23d1c3a29296de3ef77e1006c61251d4fe44e48bcf49913a9ee3b4037ac3ca2bb30f5b04b1caebfbedbcb5dc7c4704512f29b59676b15634cf606c8dc771f636eb030a1dd1689a8cac96233405c11721e81c745c163b1ae14056a37ea5af8b31788f36944175475304ca3319b3eb9f02d978165f70a3672e16d4ef24e4dbbbeeffff88492e56a3f107382aa4bbe4399609900e1b6c481d8a11de642d3d51244f84623bd14efeec0a6c6b26f3bd41986f5cb6c1cf827fc739481437e6ec5f252bd6277f052f63e4e854fc34e2aa20d95c5482702ed79b3304c8b00bee5ff67ff638420b338085dbea284ff8f092b97ff1bb56d1368812950010e06487adc19278bd6c44ef75cfcfda2568a853c7aa5efbff946d9ccc00407c7e8c0eb8ccefb6f95c9c850f0d8c37be87bb8af7e7462a53bad8e85752b36a9b6ad22ec77741877df01935a41e3119cdce8247384176972efbd1f4c558a7d16e4770569a82809cbe16968515c81748272af0a4cb2a5208f5d711d36cf9b9a0b2c0b288741e37dc0583e1f8ea15f7552df8486f1aff8d9e0b5da940cb1c4ef5ac27ce431c845a9afdb8aa1590421a470dd55ae263999e076d2d2c114e2b028d12ccdd6697d53fd895a5cc933899dcf2cc6d473a5a570d7e47a1f1387182299488455a5314f9fa1df57edeea7f8c95939042b3107f07a0d11a869908feec60d900e975c0a3dc6be1cd70aa88c5d2707f8ce35379870a7d3f51470eaa9cbabf306c11c741857c7f425a8831d91626843ca96bc8df7a0fea6cb3f8b78fa93819c70ad78b5fcb4f33d7316346241fc1fe58a13200c2bad6142a217a7377e6f4fa7b8b5051ab6279919aa5823afb7f8e87b5b4dd588ce05c00896c9b0300af815714c880f792fbc559fe7f774961cdad871eb67aa2c9a679c6de85d4ef6227b47a16906d37fc20db962bd210fcdc26ecec9e74829ef52a94cae220d7c642519567550cfbb5e58eebdf7292fbe8ce00ca9e84dab1694ef4a2a1cdd94de6b7a07f5af1e0dcc1edb2ab4b999e3800e8a5677ccb593e6140f0050e4c71005f6efa273624d7b13bc813816ade0e6b7c85d8ef36ca48bb071c06e775638d7eafe5f50ae8142e52555e23702b131ffd4859f4fffc99da3428826919dd5effc8401872d9c213bf98c6bdbf078fe1ca1eb742f4929e254b9f8be9cd1eeacd8a3c7a06e34048fd22862cc164a20a22b1952560c37b0b56c2ff38d6027ef87b0f478982d8725376f9356de562919fab0289194803ae8fb069cb44dd3444456c9b0ae85b5b043c23efc7a2e11d2c64a3e89ca53ec0d231491f4c0717efeac93661c60e6facb0c032a591dda1e2061e495f0ca708a10f51c58052985e548c26c7aab5f1431c05d473d900de1d29c7b6a789cb560ba78f10f7485a4d10fc527579a91379f2d69ad7c1a4c40a99ad57115890a4b69141d37b8847d71be8593560028d59e3598effcd8c561bce12484bf41f9aedc075944fa47ccdc37fffb653670bd9e4a41594b3307cb56412c0194e7b9ab3a7ab0a24ce88d83f7016e3892ea579ac91fcb0af4aaef47d69b4866806f55e1dfb3e62ca5217eb6c03cca0e3201f5f2975eb348335b976e2b006abe5f6c85f7809ea4271d28d452045515fd6d12491daacbb9871a36330fd35d4f1a7d1a67709314cb75a938ffb3659cd2fff82268e7ea8dd62b32249064dcb47eba9cbc7e7e518d279d709a56ff3a9114fe47e7d97988812acd26218dac61d8d63ec9f66e9d5759332ca8e86edd574dcc16502098e2195fdef464d4aa6e014a5cab7ba20e48f62c0cc750dae168769693f8eda1e9a9297171f63e97412640ba3b6fe1c4e4a68e3cecb2d9c00e96db903a2a7f844befc49113df8c556222983997ce77afb2a6ab9924f31faf2e7d6aefcff8b66c610abb92fed8492c0332150609d563a29f5561bb3cf51790047f9f07a33f6677069fa05bf2d0a41dc0631f9d262fc80d906cf42b7498268e6e17ec0b60f685f018f3db766277a49f1bbf41de8d8827ab60382af14a0afb204b80909d95c84be36f5e5ec2276ef36dd0f6e368c266b9d853f056f73191caecbc90ac4dccab2e8d654f2ab917d84c5e2ff63a56fca71a924b4be35fce8f3cff08ebe4a6fd01b297662fe313af6a126b3a0c7c728ac22dd923dc043ae075dbbb1606544083d6971ea46ce5c97948e84541e594c3de4110619405b617fc89ad187d475237791844c6d6e80e443c71dd9a19e82c57b498bf85c64ec1c845c1763e4ca06d06edc533b2abe69e43436ed6d8f94b728a4ad8640ada274f01e3f8a7362946a51c610ed490a9ee913747ed8460bfdbc486933130144d0eb17d1877dcb36b00cf7f99948df06829d45e4a61b6f1e95cf35e1b8b47260f3b630308a86772d3940d5ce42b0cb59abb3cfc8414cf7ea7eef9262f4d2f87f92447060419d4a2bf7f735eafde29062ef3517c15a2cc4231959ad5586b892af9ff1ce032e2d75786ff3dc191448fa87fb5b7c8b9f29225637493d27c8d075498f33be96fe21bfa0d641907f3b7b391417d7c5f0ca7545d14364caae5bf2ff75706b955f9f622123f23bedf96e0d689c67d05aee9f0a981c5bd4ae4f758fa2d7ed366e308b2770702980f79cb10354f01b45570b8444f9a5cbdeaa3c91c2ef1eaf9cc0d99c2d6e4017818a5e2509dcbb15a4f23b16a6c5d1e4cf07bdfc31068bc160739876bb8a0e32ca16f5ff1b52d4bf2113da5b91a8d5e5bd1dcdd1cf200e5b617dc03acccb0c87eeeeb0d9a2012d522bfd1d1782a44c5c999ed6933071113f7a86f4cf3adfa8750b29483121505dc92effd7a6b5a28b5b26e04bbb28fbb61d36aa2a1647611757a8c3eca8ea7de73269dd8fe5eb0c0213e6e10a9b1d7368434bdae8d6611d1204a5d22dd6a89c5e41bbf7ce165abd203d4f3cf022ef90ab11f1c7b13f9a316f6d1f009db510671a95b93346197d981599b4a7c7b591efec09dd4e35ffcdc58f4b035671144221d5639b0923252b87a8cdc2e1d4152627f6b56c5e83fdbb38d97b51efce9d557d9e20736201b544bab893b33ffa29dc88dc8e32c1d25f28be48729178f55108ceb0459de6e0960cb0e757cfed85d847c6cb10133f0d495e3eb77da9ee473f91f4c919d033a145984a2fb3e5042c36c1867a880a78494f451453a847f1b95d7afa6b5d371d702858c197a8ca29cf6ceab90ce1d376e1dd88293b33b441fd0ed309cfb3c3ed2b48630e4be26f098ab9f841b5af8fc669ae61b2828303733fdd0f4ea5240af5e8e664f42240aecba1b96742645d05870115a44645577ad79691ba86ab8fbed8c7a6411d090c3ade1add7975d5b3ba9c0cd53343ee88130f419538a1fb633aca720b3c41f5d9641bd8b32fe453419676d717a5e8e730639edf0be20c498a5423d43b8516e81edf72c08b9133aed7e76e8b9451d65759549c881f8914a9e0f98eab6c2c2a717494dacfd3c8601eeb3715b3cfee65e7488963cfd16a5e0c8de613f11a7b133d01198858e3b33ffdb10f3b1058881c4fc7fb8dd1abcb8fefb6334748f225119c1dc5c14de225352c87ec109626e632c3723e016ee7719fc7b9f5984d0d7cfc32f12a0a56e66ad533e9d2ae93a013a41f59a0f446b829dfe1d366e1a980ee1f8b757f2944003828f0eeb585ebb767638575b6ee6aa0e7be44bfd06bc853e36d1543a4ee50d6c35276d89d7375a7a0994f921800524eeb7afe2d3dd4e1900d0b6f2b1aa4ac63cc8a1947455abf38884f3aeb8ca77f7fd90f77b38b64c3bb5ceebb4c1739fc33f167cde3b26370f6836debb7d3b760205646cdd3a9733eaa3f3571bb6d41c867f5e0b18e78d5830ceeaacfdcf16447c4f5ca6d905b16f41e38baeea253a57b13ea90ae08341b4ae85c96a58503122d7a930c7d66c64717d54ab472471172b0c4b80a36e7d791fe9c3326cfd68a678cd7d1c9a9bd2a44cbdec91014c5a" - val buffer = fragmentBuffer(Buffer().write((message).decodeHex())) + @Test + fun `per message compression left with deflated bytes working message`() { + // per message compression + val inflater = MessageInflater(noContextTakeover = true) + val message = + FileSystem.RESOURCES.read("/okhttp3/internal/ws/inflater_working.txt".toPath()) { + readUtf8().trim().decodeHex() + } + val buffer = fragmentBuffer(Buffer().write(message)) inflater.inflate(buffer) assertThat(buffer.size).isGreaterThan(0) - val bufferAgain = fragmentBuffer(Buffer().write((message).decodeHex())) + val bufferAgain = fragmentBuffer(Buffer().write(message)) inflater.inflate(bufferAgain) assertThat(bufferAgain.size).isGreaterThan(0) } @@ -154,7 +175,8 @@ internal class MessageDeflaterInflaterTest { * Test for an [EOFException] caused by mishandling of fragmented buffers in web socket * compression. https://github.com/square/okhttp/issues/5965 */ - @Test fun `inflate golden value in buffer that has been fragmented`() { + @Test + fun `inflate golden value in buffer that has been fragmented`() { val inflater = MessageInflater(false) val buffer = fragmentBuffer(Buffer().write("f248cdc9c957c8cc4bcb492cc9cccf530400".decodeHex())) inflater.inflate(buffer) diff --git a/okhttp/src/test/resources/okhttp3/internal/ws/inflater_notworking.txt b/okhttp/src/test/resources/okhttp3/internal/ws/inflater_notworking.txt new file mode 100644 index 000000000000..a23df5d351d9 --- /dev/null +++ b/okhttp/src/test/resources/okhttp3/internal/ws/inflater_notworking.txt @@ -0,0 +1 @@ +a49d079c1645b3af4185054ca0226657cc61747aba67a6dbb81851c48c0105b7677ac688110403ba6451322241c21a4882820898080b0292332288b02a12252b18106fd5f4bcbc7b57ee9dfde6e59c1f073fce39fb58535df5afeeeaea53de5f51adc690cac79d436d8b52e95b86296ddf609cb9060f4d66049e085d3770426939f52a45bfae2d6835e5ab99efbf67b5a9bc603efe3abba073fca7230afa55ae5c5cb9f22795e17faf389cf3e335ab2a0f5f35606cd0f1da821f2b37eadd6ec2d1d7dd5bb2b9f2b955dbf4b9eeab46057f553ec796d4322d5b1a4432cf6026b30c2ea463f8dc174e608ac095b4c6c8ff9970c4f4f2849d5fc75f19c291070935ebf47ea5c0fa49cfbf5fd7ac05175f3145b35effe6931bfffe22620d02d37302e21b240cb8c10200969eb40d251c93b94c58ae2b53b0ce99539ef591107fedbda62ceb096457ccfa751db4ebe91f1ca734eb7dc7bd384bb3fe3cf49d19f99f47ac44f120b485302c0f4cca18fcc9b31dd750be6216a3d4546e1abbae585a9e9546bf0e2f6bd767f64efa53b316362dd90cac1fdd77d8359a757d9317166bd616bd4f3ae2de8931ab0c815519be6d390653a16908ce841112cfb33de50be2b314ac5b569567d57f55b32cebe25eb71d5e10b156fa77d746601db7eda8aa9af5ead7bef941b322ea3113342b15b630293502e29806b38863788472c3093c19102b2042a814ac9d4a2bc0dae3b806d5356bf17db3b702eb9feb1a2d56116bc785cb3769d629434eb9ec87f1da5f15f13d1502ab4b815511d7f0a4470d607143c2028f047e0ad6373796676dd5127f1d5b96f5cab7cea819b33ef6cd1660b55fb67a6ad6f5530fecd1ac0576d32f6fd6ac1e15a607c1c0081cc73658188486241c5cc2717cc942d7b4549882b5d7f6f2aca33ec45f35fe2f7f6dd3f278cd5a625e8f6bebabd737dead59abd2a9ff68d64e27ae5ab8ef53cd6a07242422341cd784986583bf72df948619401c70946f858148c13a715f79d67fa35ffbcac681d7f38a6b6bd6a2a5477d07ac792b1a5ca25927bdb9f8f06322d63a807ab7667585cda84994617af0e5992dc107946b1b9632854b2c26fd90d518f63fb36efceac788f5c683acc70f9b0bfffdfc3519d0b1cbf3eb68d0d2df57af05d06ee7e6dda4419fff69696cd47b8f31c60d1a1e814aa542c7b589e1fa3e3198e32a4358be6710669baecd5d5b9a4e0ad069337efc7f24820ce831ed8f39398e000f8f5c8f9efa52bfc7e355b576dd1f1af47e317ef60bc37404701dc7735c661042194456cf3684cb4cf847df76996b33c7e12940fbcc2b0ffa4e7ffc55e520e8f631ef9f1a7ffa0b97a29b5e7ac5a2fe1ab4e19f17eed2a0b53fbee9c7973e88401d65525bd9f0d51d3b30180150ce3d6658927a0a72ab24be4a01fae9d224d0337effe1f41874acf809406f9ad478ba06bdb0ed295b3428acfca30e7b3f02653c14548109a513c2dab7986fc8102481e93a3e18d9f299f2d280ae4a02eddbe7b8fcf8d31fc910b4fb37a55b3568d14f87ffac4127eef96779ab772350213dd765b0840825f0e94dc7021f85bc058854419cf285e9a600fdac3409f4a66fedb33468c1cf4f22e8b2cbaad6d6596a75c3cbbfd7a00796b7da7c9e067520f95b1e1853626e62a60b19954248a5d233a509da824a3305e8e48d49a02f7ff0505d0d5a78abda80a1f4d326576b5077c6e4a56524556c51169a66a8a4c15d071cd50cc0a21804a4ed04420ac99c543e5ab43309b4dee6e967c7f9a94f215af446d5eb190d1ad67b68b6067df904584defe9551f9a14fdd480900fb9141cc0f0a8cd0d3fa0a12f7ce9d0c04e01da755f12e83bbb379d13fbe8d2b31074eee4c6fd35689dd76a4fd5a04f4c6adefb24bdea6189138f111b12a90b16e50a44aa0c218e3a3e737dea8352252940db1d4802fdead823cf8bb3a8dc8de169ebafbda769d0817337c6ca7fec738ff6dca64161b1533f7084416c0ae12910dc10d20a0cfcf25c12c7f2ad34abbe77879f124057da179daf41f3dfe9fe0b802ee875e2660ddaf796bb466bd0b39074a896518e02ef0ce15b7ba0fbc0b40128281e400a05c9ef8346f5022b05e8f75dcb830e2807daf9b27617c48b69dab5f8e9f76d7aeba430026dffceaa620d3ae705507c3a85061e57b6f46131510229940b6670878506f7b8a342e610f88714a01bde4ab2e89007875f18fbe88fd3570268ed16cd0a3468feec37dfd6a0bb9736f46a8ed09f9e9850eec18f86ac0e9f5e86204a3cee81a6167628290f6c37cdaa1fdf3fc9a2c39f0b2e8a577dc76831dddb6d46630dbaab6f9b1e1ad4ab09d95e835a14543dc83ac373c18e8c58209ed165a1a822cc02a1a2c234ab7e787192456bbdd9e9e218f4887db8989a9f32a8ad06adfae8c48e1ab4f097c575bf1fa9037e10babea0ae21010b52a8e420f33c6e50c84bc40921ae7a69403f1b9e04fae0dfc32e8933d3a7db11f4fc85fc430dda533aad35e81d5dfb3e75dca808d4771509a50b651e056342216a1b5e0011d50d3c9b42e6572149b398a67e9c04da7dc34c230e4f5ffd80a0227c6f89069db4acd3f31af4edeb203569500aab1e8a4f050a2f927910eb2583146a0a934375eada106653802e9f9004da60facf97c6eae9ce1710b4e5cedd7f68d0bf36fefe98067da8fbf4df2f181dfb28130131b9410217aa119751f8f40a48a02275cdd071203fa5019d9404ea9ffff765b18fb6aeb709b74f58db331f8940afdfb9b4b04c39aa414d0131dda5ca70a42b01148a3dd04b1284b310f09f385cb85e8d81ff33e8ef33cb83ea2d89bc0c68d1e02153cd383cfd31f567001d4dd7dca341afbc74dedd088a7624b665e30ff4a8076b3d84a0c4518a5aa11f7a96c94ca5d204a5ce0bcae35d1ffdaa7610afe99026240ef31defc70264c3e92f1769bc3eb35ebcb94ce2d476e4a1ef7362c1cf67123f7800528470585184435c0d7c4e799ab5de76797950fda72c684fbf9215aff5b33e44d02ead1eff4883d659b9f26a0d7aabdbb95ee147da335d2b10ae250c09e53158d4b620cc83845220e85dd39752b0344ba8ebf749167d67fcd01834bf766f04bd64f651df6bd0c61755671ab4b1ba62dded1ad42696ed06a0946c47403e3239ca6565810a1590a53c504da92c3af4a7248b5edff0161a2fa1b3db21e80b3f76abf66804fae533c1851af4b8762573dfd5a0a6e5095f29d73003862a9439a09920320556e0fbbea72871d354f3ef6d4e0295e1f618b4e4a25b31711e5d5ad7d1a0579f73ce991ab4e7b657aeb13fd69f9eb8e092f0c16dcb2358d259f0f3152c2bcb0e01d574b99b26cc7fb92309f4b36f8a58bcd65b2e418b9e273f6eaa4167dcb8a0b6063db3c3d63b3fd7a0dc051ecec184cc0450507a86f0ecd0f04c28433c3b307d2ed380ee4d027dfaeef3ed7831f5588aa0fe192bba68d0634f708ed4a0f57f7ce9848fc7681f356dc7f404e87a8945720024dcf51d03fe634ea56331cf4eb33ff2f93f49a0bb362e88410b6f1e87a04d6efae34b0ddafd9cb72a69504cf0edc66a7107e2c38732d3a00c3f3d3aaaa42eac7a5351014e6a87619a4f3fa1fdcf09a057bef4bc13ef382d3a6c4324977fdda4411b5f67ec3d2a024583def489dec6138284dc27060d1d88a39e0015ea5b8ee1084e14a126f5dc349ffef337cb83eaedfc9a0741bfea71b61b67f8cf2ffd1540bfde3df6e4c722d0a7bfdbb64583aebb1d6c3a4e7f7adb152480a0e4da189e6c9f1b9c30d47a92d8ccb14c47a6d1f50b7a95075dfb03fe3afe20e86b55abf0d847db36db06a0758d1beed7a04d8d196b3468b38d7f8fdca541cdd083c80e4b489a5480b813caf0ac2030a8edbaa1c325d6ca2940bfeb571e343268784236333db73306adf4cc3bb88b7f64d539fd35280d6f5ca8417f38a76a9b3e7a5754423af7a56d1a208f20713aa0943d9702097560c1abd0b7cd347b785f0d4a02ad75db47220ef8f58622e83337dcba5083ae18d16bfa515971373ece4c50780640c62d819ac9b60dee836686c203521605dc200d68b7f79240cf68f5f8e5710a9df61c82761e32f9b0c723d0f3baf4997854b648d6e722a132b972611d11c94133db782e224ccf703d4b988a99962bd27cfaadc39240cf3fe6bc2be24fffd9e3083af8de858e06bdb2d1fc0f35a8316ed08ee1fab0c963603f492dc3b1388627dcbe75a86384a6b282d073942fd3a4d055a39240d7f93fc6a0c52b662368a53d3b1fd7a06734ba6188063d033393065526eedb209925e1d353020588c32d8856c285f21997589a3dbc29639340bb7c38e4ca388e76ed82a0d7b1fd4334e8e0bd9ff7d6a0e8a20f7da641a9257d2fa4866912c84c7830227d08022144022142e6f82c4d01b27d7c12e8dfc73c74551c9e16ef47d097daf45bae416f379abfae4171e37e8a060d29377d0fcaf750e0a71710fa3d3ccac30d088b3b9c3b2a4dc05ffa451268ebdf4fbd3af6d1b5b760a574f1d5f56a3c11813ebbe5e4d61af4f3e8db6b8bcac0230ea8100571c8603e887bae2c05829ff0d05366c8599a5264c9d424d066b7aecd801e3b61079e86de36a340832e51bf3eab415f7b7c52f3de3128f15d9b5382bbcb3ed69ec4e002a2950a85f0a44d38b5d264a6b93392407ff9edfb6b621f3def46b4e887d36675d2a0ebbbd5f235e875d9a37b3c0e777c9b199c5117563d142582e1260935413a115b8434cd621a3c2701b4e098e36f2f88e3e853ffa08f367abeee140ddaf6ecb1f769d01a2bdf7fe6aa2ff55988297db06a60d86042544fa12140f1410905eb3e04494d52ed331f5890005a32abda9818b4b8ed9968d1f0b33ff768d029fb47deaa4197d4fdfecf573528f195e52b06d5bc63032887340f7ac9342cdbf142538ad0a16956fddca549165dd2f1d87a7129f25e31aaa7f52f3c75d1935a9454a2d76a505cf443628b2a45022f60862f433cb40109e551cb83802f5c492815d44a7368d3f7bb24d087aab7cd80de7e155ab4cdd2f98f6bd09b4fbcd1fe0fa8042c2ef1a77a21881209c59d0c42dfa09e2740e5719fb3340a7fe59a24d0770efc1483965efc6f14471fbbfc5d0dda78f9651769d061efccc81fab416dcf097d223d43211e73391edac08a321d5b8501fc2538409ad3a51f937cf496bfafbd362e451add8616ddfdd3b66f35687efbb567685008a26774d0cd455e6072c737438352dcc3b3030a291412be345d1532db76682ae1fce686248b16b30f62d092a338fa6878e73d4737d3019f3e71bc06bd06bb1f26e99d7b06e5b2a920c3871453a863e306846b282f144e1050f8ab3435d38cad49a0cb4ea87d5dbcea3b73b4a81ab8e0560dfac17d5f542da34727c5c7605660c900ddd3f6b055077e3e0399673a21610c3771c32005688f9d499ffecfbd2d62d0fcbd2ada7b3ab76e3b0dba3eef8dbf8f8c406fc3ad7b0d0ad9d364603ac3774df8f9a6c70c5855f09b6da2f2972450694007fc9664d1a56f7c138396e45d16ed8a0e9a3756831e76d7de5d4796fff41678a4172a3c490c259e801243ba0c77215c474135e2433c4d01daffcf24d05d375e707dac9edeae8ca02bda4ddda041dbcf2dd87064b6f369b2cef50ef86214e603058b29e0b08e7ca899418e5261bbcab2bd3416ddf94f12e82d0d5f8f414bee7c1a414f7bf4e2d39e8a402f5eefafd6a0d8f1f2b306f5430af51b4426078fea9803099f130f559f0deadef71d926a43fcddb6eb13407bd6d81283963e3b00e3e8f42756dda5418f5ebf66a106c5cdbc1ba6c46721c20b42c734b07bd0600c4589eb480332a70c848701218dccfbab630268c9fdcdebdf102fa6a617a1459b34d8d55183aefcbbe5740d8adba35da76a5088f7d2525085ba104299eb4166928c1a812ffc90bb129658aa52e4cd248b2e397d640c5a5a772882fa577f394983defdd71b138fcc763d96e80d08084dd283724946e189bb0a904d612887815a11cc52244dc0efdd2bc9a20f8d3bf2c67831553b7f2780cefa48edd1a04f2c3ce6430dfacc5520f4342878267c65c20c0a1a047cd494d8aa01ab9e820350e27b2248734abff8ed24d0c15bbac4a0250b1b685172ce154febccd467757f0d3a625603b7f334ad9e84e34b0575bd2f2c0025240079629a06e5be051594434c3f8d1efdf89d24d055276fcf80de733e8232ebd26735688bdef3ba6ad0bbb068d2a01e01f90961dd7084079f9e04e8049e322ce17a80ed868aa69179ab8724815ef2d96d37c5a2a46e7d047dbcceda611a74d2b9256d34687422f575bced286dc161c1438524f0743134b8431ca89e1527c40bc083d384a7dd1f242da6892bc764408542d0d35b6e5ca341b75d3dadc591d94d320dea861c16be074ee9c36f8c82b8972ab00d507e50a02ad30e599a80df6f6479507d4a5ffba045df79b456fd78d59b9b1074e3a94f1dff8ceecb9e79cee31a7411c4fba11a34082d02d5926bf814db098489ab1ebb9d1c6c200e25f5699abda7ee1f1f1af4c483167db87a8b18b4f0d39ad8e47ac79255b768d0165d96353932dbecae41891080e852c373801604283324e5c40809a126332dc1ec347174edb8f2a0fa4f27667df4d61f62d092278762e7f06bcfb76caf41f79c77f31d1af4c5cde7916a33b47a821fc9852f0cdb41f52404faa88d4da4240c154428284c52800efaecd016ad731074dd8f0d6e8ee3e8cc91bb01f4895f474fd3a057763ef15a0dfa0106526d51098a9378908a5c0aa52893e0a81ee1a04785e358b632a569a7d9cd1b3f3909b4baf9630c5a74e477a8f0bf9d33fff86723d057ff3deed2ff5ad453261ed140cd8487b60c7bdc04c70e081faf3f0808b269727db7e949a06e8f7b6e8917d32351b9bc43d5bc5b833ebdb3c1191a14d7d23b1a54588e4302022674030b6b264c4a0e354c854d2f76e85ba91a34d6ce4a002d5859eb9b18b498fb087ad491eff6d4a0eea006c76850dc223b63a6ae421dca20964af04c0740c18406f7890d6b8b332fa4ae6da712258be62559f48bc1bc41bcea0b0620a87374d7451ab4ced7571fa8913d5dd6a0d433456849289299c23e5cee189e459511286e42916f53eea6094fef2d4eb2e85779a362d0d27f2c046525bb8f7e4ed74c37d6deae41dfbd61e29e7ff4a777b91782a4b7810c3b20b0a55d7201a0604f2b805294ca343eba67799245c72d3bf5d6588f1a9f2268b3332e6fa0411bbf35ef070d8ae2e9196d51474a8b05903d03214c6c22824f0fc60499474d17b49374641a1f9db52ac9a28f14778b410b077442d027970ce9ac41afbfe6ba051a341f4f45e24f4f98047d6c012854ca8c4164f27003da0b390fa5e93ba64a93ebc7ae4db2e8e229951ac601ffc8b608da61f9a26f34e8138b6b4eae916d2cd0a09eaf98674ac7e04188c7e082c2b20a4c03ca79c850beed7aa976f3466f4a02fd77d673316841affd07007458878faa3caf9bda2f7a69748d6ccd344b97cb16316d14ceb60ac147a120855c0fc1942bd783cf1f9020554f49df6d49a03d473d7e5ba6a97d1a5af4ec637b76d1a08d4eaed4598336c77a5983823d1da1e0a75a166e9750f8ea5c421e6512d2801041000e90a69d687712e8dde37ec8800e6f8ea07b161d3b4f83ee591bb4d2a0d8e2385b83862e91048a2323a044e0be8e6f08e9822811a0466540c169d39422f3f62681ee6a7ffbed31e8ea1041efadbdab5af30874cdb8aa8fd6c8de10f9266e7413849bf0034de1625d0f7a440a25404285c4e3c41242a4390bfdf0ef24d007f3a7c5a085af45a0e3469f7393061dfcc9fdf76bd0e8ffddec780fdf658113f8861fe261037825847e3cb4355d33908e727c914638b729fae5ff0f5a7c499393ef8803fece1710f4a2b7ea76d0a01d2f685c5f8362bc5f3e3beec8332d909c8141e17fe22541cc4cc2327ce9c37a92a113f254ad83ed13400b8f69705706b47a4b0455c6daaf352879e95aa141f1f466e41c2d4a1c6587c2b30de545a2c4770c893784889021b3380ddd54c5dd88ce09a0f975c59b19d05286a093be9871580b5d33bdfdcc4535b2ad1a73f54e89274cce6c6a10f8d4904271efc90679e2eae2947366a6faf4dd12404b7f7eefeb18b4e0af4eb801f1e277e7d5d3a08bf6ad3cb546f6b0418362fe64cc0f40d20bec150564dda0a5245552baa11da401ddda3b0974fef42a77663a9bfba245db9cdeec0d0d5a72c73f3534683d6c6d9ea7e328d4761e87a4c4a39ac90ca07a92be0d45a93203c7f14049a791796ff74bfaf4dfeebc3a062dd85e07418ff9e9ef391af4dabd53f7578f4031314dd4a026d64c7816e2d8be84388ac29901ad1de23a923638439a80bf6160d2aa1f97df3203bae82d04fde58e0baabd1081bed4f5a6ed1a14cf6c4f9aaf454948946b8300858f0c35136a666ebaae1148655954da01a169d4d3d877932c7ae72d6363d092376d041df0c0ce9b3468f5f35f2cad9e3d6cd0a0a11f40f94988a17c1e625b2608274e40a380cb069e6fdabe9506f4c36149167d74c2a68c459fbf1b41cffa6e72c718f4a63e4bab676ba6f9f139932d43905006917872475ddf906e20208e52d79210ee2d96a60a6d332ac9a2b73f74d65d7166ba388aa38f049b666ad0a68396cca89ead9916e89ac9e2c00ae2de5478cb569ae0a396c90da8f860358528fed204fc75639256fdd05b1ac7a0957ade151dda5ef4559596bab8db34f8b3ead91ee7f8d32b15b8361e36400502e1092293b4438ea7229e09f14049334d29327b7c12e8373b7ac5a0452591c25fb8acce0d1af4e93a977f583d5b8a688b522834956b79860217305868425d1f86bee1622f11e8275fd134a03f4c290faa77f34e39085affdf793168a9f547e58255954f1d7e78070d5a7befa6811ab40136632f883720b8f261d118be8fe1c9b140e6c122c2763290aa4aa950a5d9c87de7ebf2a0faaff20f82ae2b79f0eecc26d98adfc0a28f7d7df779adb4459baf7b598362743a62a14ea1c4869fcff0da22ac2858f5dc901e687d28f988436d28fa53dd5d2cfde6d0163deba028f9a8ce9818b4e88173f70268e98af1ed34e89a252d1ead9e6dd05a181f88a930c02229f4b1d1d585afce43cb326c028bdff499af2c9a02f4d7f9e541a33fcc3f68d1c2e33fcabb272e97ebd745d07a2f2edaa8415b6c7ba59106bdf9a8c32eee145b94daa60b49ddf089c02b813807004f9c5ca895a8134417995280162f39b445b39f9e3a853168a54d77fc0ea0f97dafbbf5457d8be9fcc2ebaa67abd005712799e930d7750cdb53109e7c3c10a7966d84d432a917da2ea36944c9ebdf9607d53744b2a0cb5e9c90b1e8b36bd1471faffbc0471ab4cef3632d0dfafd9faf3e3e697edc3fca19e851d3f01c5c4c36c3e617dccd253603dfc5dd9e34165db9fad0163df3e0a7efb7a75aa3d8a2bf3743d08e6f161ef592f6d1576eaf5b3d7bba3c3f3e6224dc9650d70578c4c430d64bcfa406e83d6cd41044f0341bb9a3d61dda474f3f08fae4a8c6316861adce7b70a7a44d83c734e8f36fe51da74171a4c2ddf3e2f676283a1c2e211f41e28c6eac8b405a884c4c45c071dd34abbecbfa437ffa83a0a59f2c1a1183961e57ed4f00fd69dbc0691a34bfed5d95ab672f02c7c219cf925de918548602af0412a89930a33abee971df15aef26b8ca82028af9c451db02501b5f09f1d47dd1b7be9d61037c7ff6df691f5b26ed6b860c2d66ad9a6b739f1fc0f4a054864dc69c6ab172480dc1440e9e405a1240e2402584e6950776e3fb49f9e76d0aa23dfbc37462de8791aa28e694b3a68d4ee79efafd6a818a14ed4a88a4b4f71ea41250acb88496c71a7583705be52449a8e079a340deae43d87ce4fd944bafd9fc119d40bb763e5d4a1f8a56f35ea61e3fe9853ad7c2dca5d2524eee4faa615b5c0088373811bfb2e073b83dca37e8d4ffe77d49bf51fce2d6835fc8f24e6de137f8a994b9a7d8c7d9a8f343fb6ee2b11f3b2a3867d512d7be6a85717e596f0992090fc0598d7057a8eeb8cc0e282b5e5104e457ae6225ad06afffe04e6c2a78faf7b5f9c5e7f3690f9ed8bf21ed3cc63f6acf85033e359d99bf3e3610b42715b8189436e63770403f56f7bb0da20bdfa52b1c0cfc1ce459717b4faa9cd86847d0ae7e9c298b9b8f13cbc00d1b2a4d5c79af9f93eafbf532ddb7514339bbe635b04043576f430970a9c1085c696c2c20baea00f7260bebaa0d5e88e09ccc55bab0c8c990b0e9f8a5d2873aa37dca599e76c9dd1b55af92a4b98262736c8184b6257b4a410257c100b26054777715b98b839f8734141ab9237ca33ebc896ad6376b79b1733e71f1fd5da45cddf3faf75c43cb27467dbffdad9262494d234a8e360273703314b2c6570266ce5fb612078901bf36fdd0e6de78367aa85278d3bfcfe98797dff3f7078c894ef02cdbc68cd032f54cb9eaecc8f6772d81ee85748c5b821c43c02b8d49646287dc6a8e70b419d1c7c0398e7f73db49d0f32978e3839bc3f73df70374ee6bac7aeb75c335ffddc848735333623d75814c70d42b9edba2071dde862a46308c8d4fa0e822f1d414d9a839df18ee4c004e6fc9dfff48f990bdd73f090fd964bfe39e6d588b9d9d973efa996bd8eb028eef7851fe847952dd48fcca2962184f20dcb25b6c7f1dfc8cec1cec8fc67717966fd57593b37bd7161cc5ce9a4f390f9f8e5d62d9af9be82ef6fae96dd315eac33b56b868ae1955edbc69d0e0a76e69e3028c7fd7866daa192b931cf1d9ac4dcadd7610fc4fe7c450d649e76f1e00e9a79dbee46d754cbf6fe6b66108fdc85b866b810d640039b50a205020a61df04b16eba4c7ab9e441dc9efd308139bfca7027662efaab12329fd2707389666e6c9c659791194be2fe30f82f61bb862b15cae1c0c5f86c1a81b040be7112c05fe7c6bcffe3247ffe6bc4e33173f12f7fe21a2c2e3c75bf6656d5375ea4999fc2aa483333e69b504942a0e0386dcc82aa43b81e5e060bb954a6efa234ca8979e7a709762e9c39707086f9a20bd1cee7376fe8bea65bd9af5f9e5f466f2c8b8f136de2999c1aaeef39d830480dae70b35978c273b9cd432707bd110d22fc3c81b9f8941d4b63e64abf8cc0e273ca19b73faf996f7c64489dff3007c4845a139235247113d6a00d718352d3e0d88e6b31df0d555063782eccff4e4d62feb8d7858d633bef3b05eddce961eb5bcddcb9be9b574d4f2ac031538e5202425a80078a8e32a4823a54f9dcb3b913e2bf496ed6fd794652261934bb494c5ad270337af123b7fe52ab484ffba9d7e79fbcecf6d30aed110ef7980702c31178ca08a904323661606cdbf6b0dc33458ecc2be62430178a777a66acfbf1bfc87cfa5d076ed5cca7dc346c8f66c60dfd3d9ad9a1a1cb41e01ba1cd7dbcd388ede32e287ddf06094a4cd3222437e6de0b933ce2ed013333ccc5f390f9ccab2e7c5d33bf62fa9b3533ce81f9f35b1d95a567894059a02db0e0f7c3d000d5e11bbe27e00b045e20448ecc7f2d4dca242bc99f3173d1abbf2373ff877e9dae9967cc69b42e2f7bb0bb52ab0c65736285a0e17c62617582bb004a192601bb0b4f5153e598b1f7ad4c625e7e9af160eccff91f21f311f9f71cd0cc9f9ef5fd0acdfce1aea50dbdef74af8c45a140213e643f54cd2ef80687786c58a129fcd0164c392a37e6f7d72445e5135b16c6cca55f7d86cc53cc2f799b88f940cf0fe669e67bb0b34b33130764a629205ae0700bc6b1a19b0b1fafe713c68462d2ca710dfe559a94b1bb6de89db173df1790f9e5f545cf6be6d3d6d49c9e97ed3f5ea5ed4c42cf531e312c818755509360ac03651438e033dc57c2c9d137a66d4c5a839397cdca307f74c12edc1decf3f2479af993c6b53fd7cc5175a09955105a82ba38aac182ca5581e6c7764a237471fa05c80f6ae5b806ffdc9ac4dcfc85231f8ad5dcef53d0ceacfba5fb3573e7abf68ecacbde3b5c1dc70ddba361e0193cdad124323404ce3cf23ddb0b49485cc82bb9312fd899a89a7fbb3a662e9cde0a9937eedae0b4d5b7f89bd6792f2fbb67f8bdde89b12554dba08c3c13cf5e4c3ccd001f3794194ae07284c973a95cb1bdf2f7243bfffccbb3193b5ff73432bf3179d1339af9b07d1bfb6a66526df4698dd7c4d58974090d95e1f200ec1c5a011e1a784660868c3233b47d2f97ca15af7afe9964e7c7667c1033178d6981ccab7effe343cd5c34bb6d37cd1ccdbbd576a6022a12d0a050b97af1e69cc4bd022864b9454d0bcaab1cedbce34012f3ec312b33be31f775646e7e3cfb453317fe51b78366c676dbd1dace960a7c6932c730395e4f65421a12db98850fc9c63215f7fc1c9927b4db98e01b4da6d56812c7e7c9ed90f9ee99cf9dd94e6fd69fd7e4e5bcecf1c70f7a0f3c0845407d6ac06f02bb5c206e40bc302ccfb53d87818c263c37e6aeaf273017ae9a7d55cc5ce9b4b6c87cc5eca90f68e6d27d2b9ecdcbb6b9ad8d8fbe852412ab40bc29c042c735bc300499678b403242b94973ac5c57754962aeb5e0990cf39423303effdd71596fcdbcabe1b24734f3a01dc3673558a7738a1380db72dbb0950d4a5f4aa8028503a1cfb285ef58ae2da49d1bf31fbd9298ab978e8f990bf2ee423b37acf5d28f9ab9d9f8a58df3b223014ab59da9e9390a0a408923f299a570449503a243726c91809428586eccebfb263097d669bf31662e1cd2235a83551e3fb57dc4ec75ec7e675ef63656691ceb42879a8c19663456cb0a6c30b1a246a83c6eda9871448e3b04930726adc17b879ed2345e83ab9b2273bdcf7f6da4991be65d5d3f2fbb1313db9931252c418c30c45dba301af10b199184787930b4992b725c837f1727f9c6517ec398b9800e42e677772ce9ae99f7bffbf6d59af994cb7e38a7ea8f9a993bc226c2343c81cd1202df2520d482e21bc246c049c8cd1cf546876149bef1dca0a28c9df78d8b72ca4b3de76ae6c6b7f6b0ffc36c7b0aefec3806b6c6437cc6a9a5cac6fe43eec37f1eba2497dd7d641ef761926f78878f8f99f37f8c7ce3a7e31fafd241ef3a5f7cfd2579d99d18cd6c412cf3f044c20d19e6146ce40e7c66b8b663391665c4f672b4f3476392ec7cceb40d4d33b7cd228d54a35ae36b34f385cb27d4cdcbded5ff29eea680301c400a0c399e483082ddbd10a97df06ca288675a34477fdef269923f3ff6c9c90fc7767efd1564fee29b4f5ed4ccb55eed7a725ef69ad4cf71630525cc76b96129ce70ca1d305b786b42722ea90392dfcd5123edfc22c9375efcf0d698b944edc253c1f14f9e3a5e335f7f74cb9a6534d2cff1ad3e9381dc77f1a01d621df70343e0ad3ee6f9f02f137009ab3037e60d5392988f7aa647cc5c74554bb4f3824fe757eea8bb6a7b353f222fdbb6b65eef86ba1e037d11424e09f0760283ba9bdbd85f276528097314c931777ffe751273a7a65f6798df6c86cc870dbcf84acd3ce735ffefaad9c630cd0c3e404d5706866545f52053385d926097bd25941904d2ce51d7bd3b3b8979b0d89b61be2bf2e72d835bbda0999f9852b8bb6a56d7fd12b75e512f60921854e1fd44df0f516fa0fa57be6d49f01c2747bd51b4208179f159fd4f288ce333ad8fccd685bf8dd5cc38375e33e348fe8b37eadd50e988d0247875de8ca6f839587753030a6e6182b6b66d2fc75de7314b1298c736fad188990b1f3a0f99d7ddb0758b66ee3ca06da966c62d999a9bb4de082c17821bce20c36b4136860c9c7a6f3a8eef4997322bccb186edff6d0273cd717937c5cc25d643c8bcbbef94733ac5f3278ff8ae6a761f49333b0133214d43d1eae029379427066a50c38592967097d8cacfd1cefb5727f9c67abf3066ceefff1c32ff7bc5faa69a79eb47d51655cd9efc68664e80c50f3d284c08be81c3f0425354814b1540ec2694e5b806a7ac4b60ded9fadb1733febce02a6cdb09be78a3bf666ebc63c92ccdbc0c5ce3fecdb1de80aac4371d83e21328cc91d1759cc04041e759ca5582e5b806db6d2ecfac9fc53978af79ecc9778dce308f5b82f79a3bdfb5fee8d77507c4731d276ae6ced8fbbe256ed4b6994d6dcf70a29b3984e1ed311cace842ac93ca659ce49807d76e2bcfacf7cc0f32f7987ff6cc98b9f8a3f9c8fcdce4d36fd2cc474fe8fd71d56ceedeaa3be354401983a2d509503f3bae803ac584c4425c4f318f03728efe3c6e7702b3f9d2ce1f62e64a276f41e6374eb9ba48332fb9a4f5b0aad9bbb9bfea3518862657168a22ec3d0b209d48139ff711606de693d0b373acad06ef4b62eebd7a6f86797c0764eed1eabd2f34f3ae4f9a0cae9acdddbfc6d7cb4217141d28231b5b658519e2e435d0a2cc0bc2c065d4e339daf997bf93986f2a3c56c671a3f547c83c77d9e5bb35f35f85a3deae9aed3edf16df2a778983ba4e5a04a38552905d085ee065ae441f0f72dd63fcbc68d3ff9ff98e19475f9061de330199675c655edc5977cc9fbeb39b663e020f273433acb430a050b9da0487c40600ce6d28c31d28690977029ab346eada2181f999cfbe2e88998b6fee1e0dbbab525d69e6f52b4777ac9aedf7ddae998330741936a173cc298ac2f20b3887e21bfe0b346aa0cc1ccf267eeb9cc05cb3f2dd0f64ecfcc403c8fceefc410335f32b4dc6bc5a357b6ea59943cbb56ccbc18b133891d183ecc225fca309558ae9a8d035cd1cebc1813d1298cd27473f9bb1f3ab97a2e66f73db84e59af93456f28266c606b52777c4f7fc4c5f107cf8cb757d3c99a7500f52658481af3c6211a855723c4f59f656926f3c56bd5786b9e11b913fd70ace7c2362be4cbef56499dcbd53e76e1e0416813c88276ba091203e7bbec4fb6aa1170a19f84e9863ee1edb3fc9373eebfd61cc5cf0ee83c85c50b9f2fd9a79d4dbf355d5ec79caae588b52dbb45c6240d003cdcfad10476461332b27a14b2cc79139fac694c14971e3fe1dd363e6c269d130bf053beeefa1998b9feed44433e3fcf3a6bbe381935438c2c1870171de83b2704f46020a0173bb78eb3257dfd8f35e02f3d8938def3376defb0832efacd27cb6663ef66675af66c6c1dd259ad9a6a6825ac4c4f723383e74c30d113262380af88240b832ccb13b66ccf004e69dc7f6d91333974cbc1f99cfac79a0d29bba71784693dbab6687d4ecd16b90072e780130dbd80b11a26f58a66d9824e08ee26690f33e5297d149769eb5ed482fb673cb68545149f1734233f7eed9a9be66c60ef2977ed37537f832a19e63043ec667eae0b437f82db02cd7979e03e12347e60d6393ec7c55ed7362e6a261ad90f9dc063d9fd5cc85534ebb563347ffd7bfc543d54ce5e36867db74f1062e880e2924c80f2c0721d6e18b48b931cf989014ebd677bd32662e0d2c8ccf1b9eedf9a1663ea5f6995756cddecdfa3dbe35ec62933efc6cd7c6bd2f0f67a9daa161418d2894032931d7dcbdebaba49c3276f7435ee6c24634b2f2b129fb7ed7cc7516ff43ab66cf53f6eaf8cca46786384297805062f85c067720820481b2035799c23473d4485f9424310fadd7c2cb4c0bf2a2dc7d728f4bbb44ccb356ec32aa66bb44f7692dea798c5aaec2f215a729e33886504a23747de6dabe09a5578e7a63c4cc247faef541d7cc1a9c2d917974db7a8f68e6d28dfdceaf9aed12d5ccb61f5a8eeddb86eb8638531f6718130ffe144a1feff3413d98e37e5dffb949765e5d655886f9a901c8fcd9d6dd433473d3fb6f384b33af680585ca1fba1ef421719bcc373cf81d9fd2c0f341db3408b784079143d120c7b8f1c9c2a43558bf784ac69f4f6a8fccd73dd77495667e75ec47a76ae6e835883fe22162ca26b827832fe342ac0b19687eec98f16920891f82b3e4b867fefeb224e6c2735666e2c6aa28d61dd1bfe9715df5fef38086b5cbec15fca9fd59f92ea469cfa08446be611b92d981612b5fd9610889ddce71af60ebca24bd71f9a01d3173e12d25c87ce7dbc737d0cc75aebeed18cd8cf7bc8efa2b1e1e0c1209cf078907d98fb91ec4e700dbb57dc67de24369956b7cfe6e4d521e6cdfa49a1f6bfe6f5e45e69e6eb3f69af9e9c16e5e19bda199952b1c2698302410e26d090b741d67781004dee17801545ab931affe298179718335f93173a5b1b7614e39bfe5b2499af9b3ab2ff8b74ab64bf4efd89f05a338953b7a4d9b0917940755cca0d80d1804be69e55a778fde98c43ceac57a317351f022daf9d313ea57eba6b5e8692ffcae99cfc6eb8afbf5b995eb3248841028021fafd34059c5c159009ce0c52a262c3bc75857fc6b923fd7daf340cc5c50ebf6286e0cab544f335fbcb9f5f62ad98b8bfb635d87a78310372836cb300ac1433a20ee3ce23a8c58caa6418e1dc4ed772530f7a87bed7319e62b9f41e66e951abda8994f3be1cd8d55b2ba2eb67318c23a0b88119a21f6d705d83c8c530108972627d4675e8e7970c5ef49bed174dc1b0799a36994333eeff28966beac7e93759af9517ca9e91fad37a410d40b5dc3f12c88cfe0cb0667d8946483740ec23034ad1ce346bfbf92eac177fe7a2fe3cf8f459affbe46bd366be6c18dc6aeac92edcb8d9995ad6c067183303fba268e150b68a4d00a202932ae4291634fe06f07927ce388bbbf8a994bcf7b281aa6d969dd59ddf56d892bbcc59a397a76e480ae074d069eab2cc3c66e5c663aa0450595867203816f0883f573cc29a5ed3627e4c18bc72ccbc4e7395720f3b5050f36d6cc639abf3e4733e351db2bffea3ac5f6829087606285af5f4a081e120fdc0871a8eb7abea0b9dc1a8cfa375e4f60eef1db96ad3173f16b0ec6e7b3a73fd74b3337fde9d1e955b2674095ee8df7372044e3fcf4209a5c892f52e0648600c783318876b64833e1e2fb6e09a08bf7dc77948a8dbbe08e48e85fd0ee070dbaf9fb4d9f6bd00bf1de9d060595494ce1ba866de3d31904e70372c7321c537230b0eb872ccd54c0febd134077968c3827062d3d8520e89216879dd843ef0a9cd8625c956c076ee50814440ff7f1b146e553c81e5054199273d300f5e6438105814da4197330bc5f9245bf5f75650c5ad0ff5a04dd72f9b1b769d0fc23db8faa926d7538ec5e7de92490cc84b0602b302b931c9b595d01d1987261c94059a91e755a343001b4668bd31a652cdaa909821efbdb1b1d3568ada12f0fd5a0b86db8f1706d51c8bba6e951a8a5b1cfcfc73e1209ff182819309c6666a77a5af4ed77cb83467f987f7002f0cefd2f36cbf8e84f2310b4ffca3e5335a8d774427199247c44048a731f5dc7e206d477d8a4830fb37333c0ab74922b7059708614a0ed879507d5772b0f3e3c56735ddd8e3168a589d194eae7373cffa706bdb649b78155b2772b35a86913eefabe8f97c63d8c540cc76ed9f84e3b75a1fa7751fda67830e7c3f2a0faaf0e5ab4669fa706672cdab7175eb61dbbfe49aba7be64f4cf35fd3428763db5a912810a582c10fc3dc3b5094e0076b01d8730c3922e54178e039136cda79f342601d4bca4f2c418b4f0e11e08fad0a56b1ed3a0ef5dbbffad2ad99e050d2a45207d0a4995a23159e038a0656c1b707ccc0621f7533d75df6b4202688f377b2ec8acfa161fe2a8e25a731e7857835ebbe9865e55b2871d55b58f0a026e883dbe025f9f524e604833da772596ad94275d37cdaa5ffa457950fda7833ebab8d2959b3316fdf319b4e83747bdfd93066dd1664d770dbae71f6caeb837b3b313589e63b8a6c01d347c9d9b06012800a28863c2f7e76986444d9c92b098ccbf46570ae2f0d4a639823e3c7ed3c9bd22d009ab9fe856253bd74683868ef42c0f27000b9cc560e2a420a8170ccb72047589b0ac5423dfb74f4f5af5af9c755206b47223049d72d28d776ad04f66e777d5a078997355d538854a02399d19d236b1f7189f7203216898442997e2c9799026852ef926017467eb172e8b418b9bda087ae92b0fbfae411fdbfe60972ad983a23c9d994808cb3d7a352360788001015fb8b0a22807f3b2904b2bcd90a8e2f987f6d1e30e2ea635a36e8c410b4eff0d9fc46c760b99aa4127b539b54b19c5a7410362020aa42269527cf9dab2b148b48c902aa1a2632d338d8ffebef8d016ad757031fd39a4490c5a52a7e4171c00401efb5d83f62dbd36068d5ea4d0a061602b2242c7c0248497e9a5c12d7c820e1659d4bb46551a51b2664502688f5a85cf672cfacc227c8766c09e5917f4d66757b76d8e41a33e2a0d6a4374e2382426c00603c8eeca1014df4a5241e03237b4a5483315b078759245db5cf67a6631fdd30987443d5ebcf5010d3ae7e8c15dff6351db172ef1719099c4260857c062520a2f3b12212daa944a359b7ecdfa43aba783afa1f6687dcd8418b452c1647c9dbbce2357ccd0a03b766eeaa141479fd6585d91178b92001fc48a5adf71d81e3e50a0a00e748567e31cbec04f35b4f4fdcd87063df620e8e4fdb363d0fc032b3133ddf7cdf4dd1a746da3b9bdfe032a44e0084772c3e20c8533ee6c59385d035f1a972e686a9526d70fdf99003af6abe5eb63d0c22f288276e9703f7b2b02ad34f5873e1a1447819e122f268f99811f4ac34129c242f8f41e58d920be1b4ad30aa567a79966d56d5f0268cd16d52a8571e1ff602d04cd6b7071730d5afb8aa20155b2070d3128352159726150e150cc4cb601a92a306091999ef21cd74bf5e93f3a501e74c776fc75ccc14fbff8e45363d0c22a0d11b4a8d9a04f35e8f40f9f1ef29fc5047566c0028957a4706e862f20859a60601ffee4327c73da4e03daafc39672a0d183bd3f1c7d3033ad089d18b4f4c048cc4c2d6b3cb64783eef9e48eb81489aedec63eca48c005fc689be375617c731034bf8dcd394ee8abc021a99ec41cd1bd3c68100d88aa71303c2daf795be6d3bf7c12ded9f9e2e5772eea13819e73e2920fcbd4f5d5e24fef0a27142eced9c2380a85937040ebf9e0b3d2145c85769a14baa24f7950ddb4977710745ebd6762d082703f06fc732f7ceb250dbafed2ef3fd1a0cf675328512e13a8eb5c11e0a123b50ccfe78141a99296ef4beef3347174e3c0437ffa2a0717937575878c8fee3c721d80fe48078ed2a0cdc8a313ff139e3c152aca1ccbe01e3e9305e9d4e0c49706757d06493fa0264db3ea7b0c2b0faa33d3e66b62d0828b66bc1583965c5eba04405fba64e9220dda6069e52f35e899593d6a3b9e2b49601a903721e00714e40981323ff44deaf952e08b0a3546fecfa0435768d0850741f50bac6bafe957b972a6d5fba6f18362d6fce53b5097184d2efb4ab30eee253ed3acb5710b5817a2506ddabe0991dec321b050da3b8620921abe940026a4e97a410ad6bfbe2f6fd4c8a6fd8f2ec8b2969cfac1a799b5bf8ee080adbfb73df2ba66ad2ee78cd5ac165e45d5ac9608a813e20f0ef07102ce421ca51e1a9428464cdf75427080ff9d75e7cfe55933aab48c5dff5eb134c3da7007aeaad675b65ca35977bdf8e688ffd855b8949ac463866b61cb7110805d99230dbcb06707d20cb9f053b07eb9a93c6ba61ccdb216dd3c7363cc5aa96800b6477ffcf8cc63342b997fdad0ffd8d5818ad37319bea0e2e2db5e38d8c0a6dc20a6f04202e1df112a056bff6d87663db92ceb9c872b3f92192ef3f67660fde5a25796eaf8ff50fd53dfd3ac6f67b7a20217bf33e386c21b2bccf20436948686a32885b224644cd92958dfd85d9e55a7fed3cab0e68fd97b66cc5af0e7dd9854975e72c51b9af5ee01cd62d63a78dd5bb3fa50cf0536f10db09fd26f5480bf5223044d00657fe810f0d721fffb88c8bd87f6d7b2ac85236eb922662ddafd188eb36c1994de1c0b804dbd221f888658e210057c4c5ee201bdcb94c115c1790b12943f583374450a6b7ef6770508bb9ee165acb9dcc484ba67cea81d5a9d2ef878f3186dcdddd98d7297987668e1e0522cf0a15eb2f1e2ae82c2945901040608ba69a26a51d1d644d652bba87dcc5af2580364edf369db62cd7ac4bf977fa559f75ef050f7e9fac0c7c7877288804c4a7c1fcb5213ef829950aa10c24010ba1e61295897b54f662dac5e6778cc5a7a51c43aedd169776ad6a3bbce9f5d253b9a6e7f3cb93a840504c19f9a381518e74c09421ca8fff0e1516e5bcaf152b0fed02d9935ffe18fe6647ce0e9498715acaa7c7bfdee876bd61bcfec111fa49d8fd308e2a60126a0085580e0459acf27504a719000960c389512df754fc1fa75ef0ab09e36e48447e348d5af1fda756da7cf9ae88a7f417d7240b346af7afe1e3f441804168eee0a18c5c628f8e91215b66fe281bc19584e9826aa76ef57011f68b8d88d598be64d42d6bd2b1ad6d4acb35a9f58ab6a76837f4fdce8ce5cc7c4a769b0178ae173059ec7a4113accf3037cc384a6615d33b002aceb6f7e30c37af628641d7fec8e12bd2d79ce8fabe2a6a2d6b8c9bf2bbe6c6973191008fe9ec257fe020f0a54ce0dc7673ca016a8195ba6609dfb6e05582f2e7e3566cdafbd0e59d7cd309ed3ac033a9f1237c7459255375c733f74256e9cb9368b32ab694846e1b75070108314c2599a6c356c58326b71a3a6efc5ac953e5a84acb75eb1295fb30e3ceae17a9a357afa29be38602bc171c01c0da2c627bc40e78aa83bd53195693954593546a59868db63d4a1694f2a4b3be69f99316dc9f2a391f672f7e645fa00a5f7e167dd56353b04f4d7f8fa6ac0a0a6760c1f075c012dc16c80336e6dcf0c48685a905bd3d0ce1e539e56ff5559dafc074ede14d316ec7f1d558b1854b98da67df6b82a8d356d3483595f8c0221a8848d2f7c622a60014eb516389f240c4d25986787b69b8ab6dff864dac246ef557d2c2eb4ea2fc123e9dda2f8724d7bfd9c35bea69d81aeb039bee2a7028aef7a5b961b3db0220cc9a96b589e1f323c5da5a65d637cea63f4f30a5ab5fdb23cb69ec77c6259236fb8fe8218bb52b71528b7863719feab3ea0deef1736ab9a9d95a8b15dc51515f826b58d6fe952e5199eeb61bf72183a9e10509405396053d035530e8d5dbb2c76f353ae8fb10b8e3f0147e21d3776ef288d5d6bcda7cd35369e56d7db14376839c4c5534028b471af3d844ac1c5d74d2045040a240f384f0ed80216e0d7875e80658b86c24e9736cd607fb91f4f305b4ca54f6bec67dfadf272d5ec7c8ff84ea5087c4143628040c089b62e5adb56103d5c7cf880c1c710e9b18bae2a68b5f99b64ece27a17b7cc601f19b5f08d1a53cbd6d893b6f96d34369ec02c8caf0953ee4b5382b5294e43777888d7b17166867004b5a9675b3c076b1714b4fa6e7e3276e9ad23bb679664a5da88fdcf4597eed71d44231bfdd6a96a76db4b63bb81948189675aca7270fa8430b88bcd39aeef43e00e03e9fab9614f5a928c5dd070caf018bbe85b8ed863667699a1b11bdcd4a47bd5ec46edc6f87d0405921da7a4e3abe110b0891eee673a021f8bb7b91be4b0240b007bf78a64ec92b3f74dcd58bbed13882d4e1bd74563576f744a5f8d1dbde8b141f7c549a8892c823328f00d69df0649ec83d6e4810aa9a32c21bd1cb071f2f1a4d5c9d8f9c3bcef62ec923f3a21f6adc32ebe4763173c75637cc5326a8dfb257e792a34a5f0416d28544681cdf0e5a1c0705ddf02b9090667560e4e825b25eb2be0db83b7eccc600f7ae32fc0de5fe5c4533576d79e2f7f5035dbed194f48b06cc7c707fc18ca0d8617ff3cea488c87c4c31bae21a7b9617fb3b9020170f5bfe73e1e63b76e88d67e7fefce21bab1b62e713ead5a7e5009253868ce5386eb53bc080feb325a9224088909981c47d4e784dd767b059ce4fe8657c7d84507a247b28f6dbcf5118ddd707bd5afcadc4dd3336140dc312e5868108ab3a4f099470921c480628fba8e0894f072892480dd714f05e2f6bde3ee8db10b6f8d5a82f3de1a7099c6fe74e6fbd33576f4febc1e734498e3130be755467a4f4282f47c2a0c90ac0e117e00024ae586fdedbe64ec4aef5ffc748c5dfc523fc4eef2c181bdfa3641c7917be694b971a9277781cc0fb870a142f5504a05c08e8f121b8ad82a703de64148cc0dfbddfd15b0f6e9333a65ac7ddfc788fdc0bee3a768ecee8bf99232977ad6c6974d94cf1dcf3128f1f1929aef19e0168161d3d0a3d8f6e306666ed85b8b7e4db6768be78a33d8738721f6a4677f6dafb1e76c56f16c8a8d7f8fdcb554cfa30b7cead850b342fc3071ce03f1f065006104967284694135eee7225c71f6668764ecc26b4efe22c6cebf6d24627f317153038dbd61dcac756546c4e8d17f9e92a64ba030101cc761d9c2823a3cb48dc0264c40b1ab58906324e9fb46327651d7e94b32d8efdf19bd2b52fdc0711afbbd92761bcb4c21d0d8d2f28427153873f4e67a88711b8a32c387a0e8c1bf80503247df9ed62319bb6459b03b833d67325abbeed8e9dfe80b6bf35eacb2bb4cdc8e078782353d025ee13b21e86d9c412014b09390994c4a87f0d0cd0d7b409f64ecd281671ff9445cdd7cf14ea4496ee8dc4d63377cf7c93fab666779e919add4c3b1eaccc7c379137bf5039cf6cd407e87d211441149734cee7ff7af0076a3a967c7d8a5a54f23769385531a69eccdebcfafac4736452fb6c6638709c467064e2271220fc3d7023cce1868128711eccbc677f172c29e33b8024ee25c76658c5d623446ece39a3f7ebac6de7f4195ea6526016a6c1a709f999e69b894e0cd629caa8797a3a5324de59b8eef911cb3e4c8f72bb02455e77b32d6aef64a740965d731bfe80bd12dbf65f150af28ddac8cf772614d529b18d4c4cbf2f834bae0f09be35b4a52692b4be552dd602bec880a04c066559ac5d8c5f37a20768db75f18adb15f3deffd3a1a1b1f747e41cf00b76c456d5bb806c1875198c0c7f36cc90d05b5b1a940cc2a924be58e3be7a32b906ec4db1d324bf2baf7113bf0de7d5e631b05bbced0d858dc5cb622ae6e70a0334829453daedb5038de6333a3679f8529429a23f6d04f2a80fd8a189cb1f6805ba25b6cfddb5faeb1a75fb5f5dc329366976b291558a1e59ac4084c2c13f0f24cd499207ce5809a0a034572d970c01b619f2563179fd87e628c9d7f476d4c370ffe78eb611a7b7597da465eb6b77b79fce09af44305f1835b18b7bde8697a2a7193d2f1856f43547172c31e36a9020170e2c7dfc6d805ebd6450d2b43e77da6676ebcf99174f2b2f7fdf52b0d2e272ee8277c51db8732c131f1da44681a8e699ac4a22049788ed81da72563e7bfdd6d7bc6dabba27110051d861769eccea3a75d5566a461fcb884c34410466f34e0ce3578349e658102149e8005e970c67354809b67266317749a5ff5c9380016d58a4a60f97c7d8ddd7e5ddfebf3b213a896ea83372b60104b80c6c50322e2d938f9d9c3b3822074c0e141a1e4863d716e05ac5d6ded193176c18d1720f6c9b70eaca9b1af6f54af4199a1f14be221272a14982531a4e0805fc79020a80c82035b2c070a369ea394eabca80271fbb6aa6ec6da7f46f7071b4d1ef39d9e8f34aaf09ebbf2b245d9e2f828260c1d65623f2bb6b739402319310dbc85e7dbbee5e4ecdb8b9755c049eab7bc3dc62e5a7e2c62bf74e32f433476f5db17dd9f97bd4a1f3f1205063615b5f09533700d164275630b62383891d1c60727bc1ca5d427df5540939cd6e991183b7f7ab49936e8914b1fd5d8d75fb3f4e1bcecaed4c2789aabc94d5c923440df0ef0a6986f712374a482f82d1d9aeb86c3cc1f2a1000d74e7d2de324dfd7c7a7cf7677187599c6fee9ae30c8cb0ed15a1017653eee4f5a868f0d3bcc0607e78e6486f488c54c65da9e1fe698dc7faa80b5bfac363063eddecdd1da1fcd7e60bb9ebfd77bf8054f9599d53f2f16ae944b8b0706e8576cddf4705b5e2943712ac0e004a7f7e7863d696305acddb0f5f80c76f3685cd251fc97091abbe90f735b68ec328f3d12ca2029b2a85f5b61baf1f07aac075583c77d1f5fd326394692eebf5640934ccf5b106317be18e9ed51fd8e6fadb15b5cf2fb2b79d94911b3e3e42e3cc628085702ba8fe18e9a87470ac474a56b0a2a3d9a2bf6ae0a04c02bbc5f62ec92923311bbcefea36fd0d86b169d1a0fedaf89ca75563cc0d30f4dc7350d4e504a612392f43c65981018039c2de9901c97e4a8df2b906ef6b7f92763ed99e7467393560f3d5a639fb1f4b1ae79d94b5d33f58683e941c1481dc3960c9f2d96b875291c2314d40db98d270d395abbed5f15a86ea60dafdd2c16aefba3b87d45c105dfea71a9c7ef18daa78c029ca1ab1b50ae84706158b6c4633d8e8f557aaee186a18feaca052fca0dfb970315b0f694cf8c183bfff8c8daf68406433476c1c62d83353676d7a9af35360fb1d53b340030882349c80283e24c30e273e90539166593db6d4bce924bd6dc106317bc7a3462cfbcd37a5463af0d4e19a1b13149769fae358919badc7520c9300fb7772055ca30883aed1d47e1848ec0cb71c3a1733276d1ed5b9ac4d8258d4fc632c16c58403476d35d677c5246016a6ca102cfc717c6021bcf7e89f2f4feb6a394cd1d6a0750d7e75894754bc6ae54e5f45733d63eef387c4ff8b289c337c6a3dac79c38392f3b7e4d63bbb604798d2fb2637b13f37dec73039f81e04da058c339ee396a92497d2a60ed3bebbd1763976e8b34c99547e7f7d1d85f769b38b7cc84f9695a4a594af83ecee4c3ab97e019c480ba1777e925449410df51c85101b61b908c5d78cd4b5f669c243819b1a7dfff47138d7df43cb6bccc83471adb12d2258cdb8685f79ba094710d4fda90255d0bea04d70b68ae1bc5df0c4ec6ce1fda7b692600ae8eca04e39eaae76bec57ef6bfd83c6c627e97e2989e73712412166e39d026c7fc39742890fd8d4119eab2c66c91c03e087ef276397bc36694b8c5df8f835883d79e7af3bf4d309a36e9fbea1cc5320250747464b08cfa0fbe037e67b021b3398c1a170a72e946b0ecbb128eb32a202d6def2f7614fc5d63eff44c49e72fc94cf35f61357dcb3b34c9930556b1288249c7ad22001977809921a1e06408b84123e04872a22c725b9797405ac5debb85363ec8227ae44ec8fdd656d34f697ff0cf8332f7be74863870e237e48202dba48e313ec75000508e518b80df70877728cdb1f7c5a8100d8fa361a63975e7557349bf4d1c9b768ecfbeadf7378b5ecbdc3a9f1019f2f4c1baf4a59d82245f0aa9404516531e1d9388859b21cb7e5577c56016bffb1fbee18bba85fb499f6c61b6756d2d8af06cf1fabb1a371e825f16844bcdb47a9011558d4e9eb199e4dc0671857920644c85c93fb9a491548ee3daf7a32e3242ba3896137bcd065b67e9d67f36d0f9ea4b1f14121570740474a8733dbc19d3f8824162ac0109b7e050e6336034c45b961ff55528174f3e8c4f6196b771b8ad87d3b4feaa1b11b7c3ae52c8d7d124e37d659d2762517a1034ad5a10c142062fb3635a46d318a735645ae1bc5db6656c0b7f73d3828c6aed4fd25c4fea6aabc5f63bfd27675fc22ee5faf3e3ea979ac007d06660527f1f0b9560886503028f8477c17d527427834a7162fecb89f5b01ec8edf4ec838c9b375f05e489556cdf335f684f78e60651e2dd77adb73f0804f86868b2f973333b00ccfb243c3f7a83029b724cfa90f108bb24515f0ed7ddb1666ac5d6573e424ebe946fd925aa3196f5da5b13fc06d296d6de2dab6c0f134bec04989becb71dabf874fafe3a3278ee53b3237ec1f9655007bffb71b33be5dbb1762ef19dbf4638dbdedad136ffa0fb647958cce4fb98df799ad10228988f62f3d426c8a27db3906c092ef2a926e1eabf4748c7dfd7318b76f7deeca1734f682e137df512ddbbda39dc47501405070122cc5180b2d8307aec47e12cbe61e87409ea3dedeb7b602d8031a9ef574a63b3f1a1d5cb3c9e5176beceed6b68734364eb79af575fcbc82c0274e7c83e2557c46021c01ca709f045f5950542a92e3aed4e49f2b205ce9041163576a13b5c16ce8f7ec1efdeae5beeb0f041a1b87619fa4ad1d40f5287d4e0cea46af3152281320ee8194e2960f7eaf029e6300ecbda902d8e32fbd2b63ed4fa38721da6cbfeb2b8dbdfacde14f55cb0e9a8b9dc457a1450358884ef454b58b21dbc115ea10ce713a8bc811fbb75f2b10001fadf4448c5dd229ea035cf6d8d36d35f65fdd5bb7fc4f00548e0c011d045480a35a7c9c974ef142bc1b98925a50a9593956375fedaa806fef78a25d8c9ddfa229629f7a49cf5b3476c34acf15fdc749a829dcd057be213d85a3db70495a966ff82621a6a93877549a5b327df726b396aab9efc4ac8573a2717ef98dc71ca7596f2c39a673b56cefcb8c78ec786052cf833c6e73bccfc7a002b640bc52c16580fb805cb82958b7fc5581087de9f1e333ac5da2317e6b6e38ed7bfd84f2d65fb7f6ac96bd2131331e2fa70285cfc898046fa0e10349dc35a501ce412162e00b43696e754dfa3799b5f8cb27e66702c5e84fa30686ea6ddfd7ac875d77c23b9a7508be57372b7ed6c4b1f0856430a4c4edeb009f9d2296414c227d50a80e54be29589774d89e78dfa0383cf39798b5f4e8aab8f7b1edf6aa4f68d6becfd81f542bbf1dc90544b5c0c567cb19063560f50261412cb640e6f98241064cc1fad31be55975b7fe296558cd697d8e7826f681131fc29b1c3d16d63b49b35e59ede3b19a35da14d3ac01be8085e92e70708e0b35211a04381b91e355b9d073b84a7353aa63f7f2acfa12faa965a3eefcaf8f8f590b5a0fc3d43cf4f68f97bca66ff490419fffc75f39e53c04373002898db51496154e733054e88a90d83ef0a5b929f5c65be559f55dd9d3cbfac0cd8f9f93611dd912eff3dc5577783bcdbaf99ea553aa65874d697ff541d9c34f13784a44b097024a13d392860a82c074a82d0297a7605ddcefd0762dcb5abafb473b662d7db021faeb117c1cd1accff65a36a35af6c6863eac604c38a6e5da86cbfce86e37313cd7c4ae549f501e484cd22958470c2acfaaff7446d95c70db65f533feba6a38b21ef9c28fdfbfaaa73bd47d625eb5f2072ba6ab1c26215c051cbc94791681ec0544811b40c944894f889582b5dd7bc9acf917ac6c1cb316db5b90f5e94af3da6bd6293bd62cd3acd173efb3e33e48013f0c1094af20662948084279a0c92ca1acc07685c3d3e4ad79c30eedaff965edda645ab38c0f743f0fef4b3f2c1f3334ebdd3b3bacd3acd1b324195626a21776f4118a80dad97358600416b77d8b2bdbb4d3dcec1b382a99b578dbc6a2ccda5af41d36d87f751859d15adbf5faeabffe871544a109711fdf49b4f1895802f1d5f24cc3214448e19accf5d3f8ebbc4f0ecd7a66d9b535a9e49d0c6bf5c968d71bae68f4a066a53bffa85c3ddb2f181f0412e287cc52060803574f1e03f1651a21096c6973178ab734796bf0c443fb6bd938903fabf59898b5a44737f4d7a98b6e3a5cb3aeec7946edead989a89a15349dcd39350ddf0f02bcd587bd498247dd76a1172a4bca3476ddf465727c2dbdf7a8e919bbeeb290b5ddfa633e792562bdfa853a17542fbfb6401232ac10f4e543e6428ee5f0ffd350ca974cf824102acd3c8a0553cbb3b2ffce4da87fcdf24ccc92cb3017dc7d7fa9a75927cc78e4eaeae5631638a54919a7864bf08a826d4577b4a41152d303292040c5a6c95b23661cda07cae6d8a291c76dc8f840bfcb91f592861b4fd4aca3bad66aa459a1ae39e1e36f0e1e5cc3bfaf6b580e382de403d3406be28437225c2a4d4ed3c4d7fdb30f9db7caeaac826b1beecbc4ace32e433dd0a5d5ae852febd9198de73da959a327ab748e0d8824be2b84e1da01dec6c2761d0c5c66185a26be23c1ad3005ebf40587d6846575567ea357f29e8d7da0e422bccc39e6fe47bb68d61927ddd25eb336c6895433e39bfedc0e39c5b9a378b26e91a85b07df5c568e67faf82a5f1a7f1db4f4d0ac656f70de31a156ed0cebf8d9c87ae1d825f768d682636ee9a759a3a7ed66c45adb3639bec71e60a4625c42e56546cd7ec2778419802a7453ccf9285a5d9ef5abe8d79165fdf5d8bd7533ac0736fe00ac5f9ed6f354cd5aa95fc3d1d5f59c0fc9219b4a58fd00e823978bd3905d10864a855010f8964c33d96df6aeede5261245fb59efff96199d74d2b1cf5c94c12b380b2fc3f63da6dae51a6fc3e5e7bf5b3d3bcf512f273354d464d23488ef9078378909d3b06d4778e00f1c626b0ad0a17b0ffdd9eb648651d51f53e4c6a0256bbfc478ba7ae379cf68d05acf7fd04d837a51eb878e519e65913064b078f05905c538fc7ccc0278ff04729732fd348327f7fd75e89ae5d40c68b56e57dc9201edde0b136aa3071e99a2415b9c54dabc7af68456370451105592f98ee147b7ebb0e34d08460deab80e7c77df83ba3505e8276d76fc3f126a0c3afbf4854d62d04a738e3a00a0afbed7aea68ea4cb5a366eac41a3c735e6c6dbb6d20da8e31b204f711511618036f1f11c9ff85ee0712b48f3e967752a0f9a515419d00dab5f8e418b8798bf0168f3dde3bb69d0fbfacd211a743cde6ad5a0a1b4153085589f46efefd8faec0447e212a56468bb69e6908dec9200fa68c7237bc4a00555de45d0af2ab7ff5983f6e5dd4fac9edd759b1f77700897db1ea4a5406207073e578223081d4a6d2a6ca6084fb3ead7f7280faa7df420e88837477f90b1e8112311f4e653afb9420ba9b5679cb85f0bd4e8dd2bdd22e881e0b389e718cac58d1517070e5878260f7516e3a6f26498662eeea23ee541a3bf293a085abf47a32f62d0d23fbe46d0077f3fe12d0daa1afff053b5ecd9eaa25899841e518e3204c13929ae0a0d0f5b79946f41e5cf7cd761668d1129e638cc19501e55e7fb83a817743e7961663979eb11557d71c7768d5a78e9eab91a156f393da77b73bdc0e650338586ede0fb6704c4a970f011b4105c547208ff92a542dd33f8909f7f431675eb3f3f65827efd79184bb79c7f7483b8462d9e3541a3a284ba49773f5b001490401abef4f0a03d80a01f52585f8284903f856d052415eab4f70f6dd5d332a8afd339bfc7a845fbcfc154dff8e7ca4334ea79674c7bbfccb9698c2a944bb82b0d8297989842541e82a73a760055000337c8e5258f8b20b08e38f4ea3a382379f6270f1efe5c1c069cb350f675de79f91acdfcc4aab57d3533be917e9e66f67c9ced272cbc82051980636fa50aa9e140016b85221456ca57b81a45bfdc82563d3f3974e83a38dcb7daa6578e8f998bb6089cebfceefc3bced35b2c2b3e98dae53fde6bc12fa67048b60f9195790c9f6f50d81ce059dc343dcb17b9bc2a774d41abff43da9bc0fb547dffff2af7a2342a4d944685a333ed7df62e21cda5b96850d967ef739aa88f4695ca109139214368428428f3103216453226493216ae392efdd73afb1ceffbbb7a7c8fff3dbedf6f8f3e0f8fefc7d3beebac61efb55eebcf71ff6d1b4784dd6ff9b5cf053173a98a53f0b974c935e73ca499ef39e5d9b78b5cb524ccc2734360a68117b5b9b8e01c7c190d20481e085f397ec99951ece0cfc9ff1d748f6c76b865d32bd563e6e9614bbc263ef969f6be661e6b0f7cbd6cae3547337b9c7a1242982154103934c80e6cf88f3eb80a3068ce859d61db192a1dcc9bfe9f4e38b7197de8f913bc98796dbf7a78ce6d2a5458a099cb6dbef2f9b2c5a70e3c2070a134349c683b94895b5e4cf0c48165c900b21c2810336cbf46e62eb353983f78eaa11b127bbe3762fee3b6fd79fadaf8fb822b9e3a8a3960b6477c1cc70bd0c529ae0ce1e1aaf13070382ed46159b60523f3bef9c599ddff77ebc78af70edc1d3357b9a821324f7b68591dcdecff7676e322d7718be28d5626b0d98e613a0af55671dade95a839e2508be20a7a37c33758f7babacdbff9e1bfedf9c837f8e425831f4d7cddc6abd19eaf5c37ff55cd3cc7fba681668eb6f72d8a473b2060981ecef562d32a7c71868fbbbb39832a8c29d702ff916d0350d725297ea36cef6f9f4aecf9fd3c0c7fb54bbf3c5a336feef1f29d4731030995ca760d89daa62ef34cb01238718fa16228b3686866dc68357255ca396faa3efff5e49cbffe06a7da2a3eea94d6cf768d5e2ab84e33e3eb52be8e292e7520b364cc40ed60dcb6111ac20db841ad907b58ffc0716763fe674dda39e77ffe4ecc3cc8da87cc9f4f9b75b566ee3f6b093fca9e71dec4956600810fb7b943a586573548cf5dcb7189e07606bf81cc7ffc9172ce2b067cda23b18d6ff3d09ee7f779a69966eebb718059a4e1e9a758e6cc016701e1840a4ce10348927c306d4309479ac2737cca336eb49ab12985795ecb210363e6c6f7f7c4732e35a9eb50cddcecb11bae285b7ce291840e04ecd034183e98bbb83c84530c86901c496252d39219bfc1217fa730efaff6fcf02476ef8d769ddcf7ded36b34f3534bc485455efae3e1522c33145ee3791ca5732c600ec04a3c0a1fa76b3ba66219373bfe5290c6fc59b5f1896d141c40e60fcff5ced42d2c031693b3cbe6441bf539db10ae6dc8350c865a7d50de61652f3cc39104f5502c53f08ccc93f7a6f98d0baef8368983131d647ed8f76fd7cc8bf7db71bb6491215e0ee71bed3d09a3fb9d200c5172d241355f8771c8ee4c9971c3f13b075398871e9cf14362cfbd1eda03cccf8e6ed75233bffdd9b2fca3982ddf4715740b6c43e0ca606e61d7a4657856e8d94e00257fd6ad723fb6d9f17f33977deffcf5495e57eea56877cf9267d669e6cb077fb9efa8d1741fdd33f56d23a078d50bf66b3014b9306dc103823bb1dc8c9b7767b74f61de5471d9f6c49e27b446e63a775c788e6e373cbcabc676cd1c6d49d4ccd2e20afcb33094c3c03f53082710018561b310a51da33e916cccbd3ba7303ff842ef83893dd76985ccd57754be5333b75e7ec6c6a3041702c7864a95807fb6b01d20f020af839acae0d864e1088f5299917951f714e6732a3c58e68598b97521d65675963ff0b666def3d887bf69e6e8bf6e45fc0d3a9025070eea87600b032aea1357e16b36f1ed002865c60dc7337ba59df3fdcbce889907856fe1393f31afd744cd5cefeae35716696a5f1e0f48bb9e2d4860382cda628b23bb219386e75bcc67a68d0f18d9987bf42bce5c2cdf185aa6d7050933f91a99affa6eca76cd5c58e389c5657252839a9953144ba23836c5f0b985a0ac4fc00c28ba3d178cd9515ec6cde87b06a63037bff87fd562e6b5b53f40e6934f6f7cb96e67b7f6cd9a7f945c0bc40ec8ea39337c1ff3e768236ca02c833ac226beeb0a2ebd6ccce33f2dceacef37727ee3ba5a3466aed26c3ade704f9a39b991661e54fa9c994586e7b5328e09b595cf2162fb018f5af005ea3f714371a85e4c1b0a2e967153e9f82f8a330f1f86bf72fef9abc25b9373def82d9e73793165bc66eef90c1f5ba6b808518073e6360ac222a9abb0ed979b602070cea6ebf8a1a2196da3dde89473de3f78cd03c939778e6c63f2d8e6db62db78e685119a19e7b8dbfe12c794109c322edc31396e06231053386ea017be52a1226690357fde3436c59edbff3d4c24beeecf45c8dc75f8c997e989a966f73e355833e327b84f334b4a6d3b04db3039c66e866d702e9e3881ef11b7c5808964631e332985f996c63d9a26ccb58621f3efe7173ea299177bcbe37951d4387f7875d20e077fa0e31a9e540c1febc0b27dcf3204355dbc123585e364631efa4d8a7f6effe693af1ef1cf7391f9f87d1fbfa799a77dd3a67799dc13e8eab89d9a868c526a0412f38d9042747109b811421427f08fd0cf98d7adfb3685798555bf6dcc5c8acf40e629fd9bced7cced562decaa99b1717dcaeaf82e3790506c9b86c3492405ebc11133db808a4bf8b8f6c6c95ac34e9f97621b0ffe50a37bccdc78f060649e51f5b6527abaf5d4d22fb52f22a6a015ee3cea40e60656cc6d6cedc5513a6e81a7467d58c29dc081a3cec6dc65619a6d5c54eac398b9aebf1499377f39806ae6bbee6bd8b24cae0d51330b69e1f00b9c33c3f62309619b79d281a4839bc427810b81251bf3b74b527cddd09fb60c4d6ce3bc6f71d54cad8b3a37d5ccaf2d18dc5c33a3922ad10288d4f64968f2d02002eb411b37d0e32261698343f144e83a2ce339bfb7222ddf787cc18424a6dc3816cff98dcfe78dd3cc9dff792d56acd01b80b4dfb08808c0db412e8af38a42f838af18a2484810581052422f23f3e2d529cc1f1c3f645662cfcd3f41e647763cf3b766aedd6f715826f7deff5bacfce55bae8bc9275e89bad443192a571abe695a5608de99898cb5d5e4df5398e74d6bbe28b10da32d32effdf8a44bb57a42a5831f3c7e14b38ce413a0a212dc075fa72446711a1a96e906f07b0c9f80337e831b52bec15b1eb86675621b731b4777329c3cac9967defe7bc332b9f65a6d1b709a82d8d2373c0ee9be1bc98d1348f3209e046e285c464bf806748479eb96946f904ddcba31617ef14d645ef7ee65dd34f3e0d66fdd5d44154e338bc0b220e1e406c54e505785d4f025fc83f870c43ce0aeeb64bc175dbc3ded1bdc356c5712bbdf7f26aa53f6df3c2756d6f87ded2d9a199710df18fb0d939a8498d4b005b6dde3bcb3807adb50aef22187f62dc233e61b1fec4eabbba736fe3739e7f7c62373cfab6e2bd4cc77fdfcc4759a19bb04ce5c132b4be24667a8ad2cb06add1fc8958fdf200d02c8f94c3fc8788f54b03f2d0ebe53eba41763bfd17226fae71113d7d95a5468e684eefc28ff4c2c299c10f2671e3ab858033c088419d7f085c5b9245c41be978d79e0bf6971706ee5f363e6bab7df18ad299e57b68566fef1999a5769e668fb6fcc4c9419a09c24b77143b5a700254035774f405ee7d9aec333daf3b63605fff7395fd174fae509f3bf0b91b970ddfba335f3f61ecf552d936b6ffc2d9eee131051c09e7dc52d146f0ae088b930980518d2f26c476679efc63bf3f629ccf39a0cb113dbe8320a99f755929b3473dd91bd2f2ca2dda9a5a2a9e543d880cf2f08f19e9f318aea14d848c4b1f3c973023b635e37aa730af37ee7adda31731515d5563bbe5a74811680bb7c47eb5801337aa3ff3d8e2976e0a0909054f87885f2c58c827f0eddd0376d48a7a997b186ddd2bd3873f13bc6f0f6db62e6e9dd6723f34d57957f40337b77bc79aa66c66bd1f25a009d87600e966b1932c0a51bae80d8cd51c5d8f618736c074aef8c7e6356af14e64d356b3648ec79ea23c8dcec91191d35f3a0b57dca14a9bbd7c5bd5b1e6031d72041880ad110077d17a002cba1d4b342df1719e3e0c87e29b6d1fee4d522b1e7d71f4766f545d3199af9950303ffcdcfd5dd7fc4339f9204028a29096907780b2784cc430233f6434328771c9f65acad06a69c33fbbe63d3c4362a466f40371d7e749f662e75e9cdfb8fd2f4878c93e24221433186db4f43bc9db121c478925816958e0833d6b0073e4b39e70f1a347835665e3bde3e08cca77fb2ded002a3bb2eab5ea09951f1b2e3fa785cca628e4b14e4fca8f96b6393ace738864d02db5156e07976467bfe755471e60eedf157eebeee940eef27f63c52e139efbcfb9fe19af9b03de1f7fcdce89c5ef9e005167c72a8a7cc71fada467d79d4a125a16f4907e73ddc8c7e63ded7c599f56fe5ce39b8665062cff316e0fdf3a47b2f5ca7991b9dbc72d551db357c37084c40358885b51536cffbd891cc1897a1e25083677da3df3f218579defc8f86c7cca57a3c8bcc431e3df16cad07fdd4bebe3f6b66ddd7a67d5d10dad4c3dd8d9603f9b3ef41e601bf0c29216a13ca65e63a65f1d414e65b2aac1c1733b73c793232ff957ffced9ab9ab55f58722bb0736c6f7fc143bfbb19100bb2af186943b966350c7f620c0c0ff66adbb3f9a99c25cb62f9d19330fbab539321f1a33fb2dcdecafd835373ff7461f2f4372e03ba3a66378a6e7432e6ae35a2f1f83a10d558aadf0393c1b73c7b9ffed372a1cb9479af6fcc2c46f84ef22f3e3776dfa4a339f3576da0ccd8ca77c50ef9de24cba8238c23015ae4df73c82fbdde043648ad8500cd88a65ac07577d5f9c59f7d71d61be65e7f81589df38e17a64266735d8a4997b14ec9e5c44047f4bfc761c524be0aa6fcb057b76150acebadcb0b1d98051878559f38d698b529837bdb0f28fc436cef80a5715bf7fca3995f4be81edf2ca719af96e6c94d9aa7b4e9443a138e146e8b90ced19c72c886dd88105a1c586f84232c6c155cb5298d9a131db92bcae703e8a9f16567ef14ecd7cc708f7cba3d6d431e9736c5f36b88b831750b71a9c84a161c32943ba01a97456db98fb4b9a6d1c3cfb50621ba356e139b778e8aaee9af9d3974e1c9a9f1bbdd18b0049a0c043086e3802c759387618e0282ed031c7c14cd5cc98f377589b661bf7e6957d298e296dc622f327af6cfa5633b7ec75cac74562ca36cd2c047c6d506d7311e094038e63e08a50461c6eb9947130eb6ccc4bd7a7307f70e6da3362e641537e43e60bae14f16e98179684fd35330a5ebdb32df6758e104a5043b992614f208ebb46775f0c1fbb15232aa36d8cdf9c76ce3b7fac9c301f17ad0b7f7833bd52afe179e0d98f7be5e7044fb7c5e262dcb2840ddfa08f75b70b4e9aa1be76005edaf3a8e37961c638d86b5b0af38417e65e9130ffbd1099c3f19735d2cc0f0f1bd7eda8259c16ea86fa7668582ed6b0be40010f4b1821f33de2f92a80bf4536e6dd3b5398db3f3dd289994b35dd8ccc0fbcb7b98b66eebde7d68e9a1955c54edba1737e6c9451a8d1efe208a40f0516f325356c6e066e18308f67bd7f9eb92f85b9ec459fd44eceb9f14918530a56fe3d4333375bb7bc6d9145863b927cc30e1d7019982fe3fd73b4f0d644f501d7128ecb2c96d13f8f2e4c617e70f1d05b13e6fdb5ff46398759f7eed1cc2f5418d8323fd77b193307b6cd2464a05471f475912eb50f64c4c1b24b5acccd58a72c69bdf3ff661e7ac72d0fc6cc75df2a44db303ad6e77a5fdaf4063b9ae7e7c625f4025c828a9bbe8932eb38ca6b0658c3c28768f210ea14dba1cccd98d7b57f2785f996ce37c998b98a57066da341fdb089667eecd12b5e2892236966ee320a8536e4481671502794a394988f158b82906e51cfcb585b6dee98c2bce28adb9e4dbe413504cf399fbe335033379b7151bc4f349264dda9fd868422159722076eb4de236246c10769078c47abe932de31ceec96c6bcaaf2abc939ff3237f2cf9fcc59ac9947d5adfe447e6e882e660ee098299c33647728a301e9be4f210e12c713ae14b613888cb555e79e29cc4fce3beeed98796dbb83c8fce5576169bd92f315ff05a199a355137af9b41b483354e037207dc6be5cec9871e1931424602611d231c38cf7a2057dd2ceb9e3bf5d12bfd17b2a325798f092a7998f9fdbe5912277329a599aca9436e4cf24c4a5adbeefe8de9e40382636c7335365eca19a3d20cd6f345cd327669efef617c85ceeba8d4f69e6d73a747e40334f8f1aecf43768799263a6af18ce0442b56d300e619130491de1d99e9bf51becfb490a73d9be5f7f9ae4757d2622f3f2b617f6d7cc46f8e05df9b9bedcddfa0dc8f7ad4079a82ec718aefd837336019c821b09c01152dfc998d7f5f93c857942d87d5462cfcf5c8e7313adae7ceb07cd3ceaee5ab76a663ce5439ad9b72d9b8387001485830802e5613c0e3c61801227b69fb55f74ec8834dbe87fe994c4d79dfc0c9ef3af0f9c5d4eaf7c76aea9727d919c5f2fab374d27a010b70d0f6f62a251511fb5bf3dcfe6a1202194b1197ddddfa35398afb864d59ce41b7cb915324fda3b2c5e53dd70c0d25af9392926cdcc02cb96b85bd167a86b4164a485a70c4e4328062924d1597ba87e1d97c2dc7c4ddfc509f34d3da2bc6e70bf26f1daf29bca7a4572febdf17b0a258e655343521ba21f51ca60b81097c3394b9f32e18719ef9fc74c4e619ed74aad4e6cc3ee8acc7f0d59334033fffdf61cabc812df7d3adf908a88682697e19256a5207ff609316c0aa5a16d06501366f4cfada6a7319f576363ccdcb2f9c7916dfc5571b166cebfaa558d226b9ef7c5b6a142624a05f68c5906c73e46e65023a00e97cc762d4633e6cf7fcd4af3750d0f152479dd790f23b3ecf6f209ddf55dc1f71757d5cc58a6fca6997d8f718673e526c165c926aee40a5cdb50666811aa240066cc45a7cd4ffb06d5b0c2c43f9f3d14994faf7309d1cc574ef8f2a2a398c131e05e6100b0b80dd91c816fd043bd06e63982f881635919ef0a3efa212d763ff7669997e338187cb90fefbe26bdfe8466aeb4a76ca52275cafe586a8c70c8377c14d8875cd4e5217c7e5865b914fe970b5b0aa704d3e65fac4801fd6069cd0b63d0415f1ec6c3bde6e277966ad0abee7ae0540d7a2f4e67fea32fe97cc908d42798c7f971f362e0b886ed48483e1d2e942a897443c75f5340371935ab25273ae546ccee69c1c4b2efe9f9fd2a4bca15c9940fe80cce532ea1b80a19e58f5c194215650bf0c48286a1eb13d7f6c312802efe3dad0c297f0f8941ab4c0c10b4e6d881b534e8ba2b9a95d6a0f86279fc41fd8941e87550b04378269e28ba323b0c0d27e43e612c7485cf4a003a78439a8d6e6a5337062d55f693a8965eb1e37f1a74caefedffcd8b40a39d2107e3590853b8a622f00762872d7806c317541a962d5052979acc2c8918c6bb5bd3409b2cbd3d01fda62f82763f3cff330dfaca90970ee4e5b4460be3261dc87202210c6e3a38bce8bae0b4b885c35eaecf9945292fc98f7eebf614d007175cdc30065dfb7857043dfbe715ab346895fc497bf3729dc0fa44a96ffa26de1953d3c2553d0178aa4801497aae238590ca2bc9c7346d779a8db678da4f3ea60b4721e85be3a69cda23021d7dcbb09d793965620dca1d3b20a66319dc87ec20523ee22889e9281572086b26986e09403ff927cdf7979fd934066df965f48ef79c2a7ba306ed588b6ed7a03f62d3efc1f88dd76590675986a5500bc10ca921c210553c1d4e6ca90266970474ccbf6905a6bae2d5c4462fbb0c353b7fed34e2350dfae64b75fed2a0d1a2e2d8464347b8a1cb0ca5a2ada81858093e1cf88e8bda12f87c5002d0ae6fef4af1a37baf6e9fd8689fcff1441fbe62fc0c0d3afd696bb3068d3673c6a0149733400c550e82c20f1c3b9219b8a780b940625155928f6975fb14d015df76ed91fce89ffc02410796bf649f062dfde3c91bf372aabd8571f92ba84943853d8fd8ee4df06951611f6408df93e7329bd112804eec9c027acefe3f07241f53db9908bae3ba0f6bbcafbffac957ff999793c0298ce7ee99ed79b8e385e0ac138e7432db24860a2c65069e0919b8280168e7f78a83ea66c7238217fbafbe7958f2a30f7ec258ff7cf9c77d0d4aba2f5c9f977bc83f140f38295779818bc222a81ce6c389e2f43a9ca660b86edd0b4af2a35fdbebbf41cb1fb1d1a6e6d804f4de375001e5f3191b7b6ad016e605eb8ffad15311840e859ad633298af5fad8354f50ac25b09563f936548b2500ed37a038e8afd1af72471cfed9db6726d9d3818be720e8cd4b9769d0fe357bfd91976b6b3c7c4455c6579605e974e4f0f1dadfc43a40f250c277e659ac244a928767ed2aa67916fd4ecb823a3955b62f5efe6a76ccda987fb51ec7bce7e77fa7594b15b0d84ca3b6d1c3b19a28a4720ee4a0d20cb12c84a2963984428905df93690701645325602df8bef8a15e7231fe3aad88825ca30a272f4a58499b75c0fa4aef6bfac4e7dac78abffd2d3927e53acaf3b8c09a15977e12cf84730d854129c3dd44a64d9d92a835ef5d5c9c35e9e7c9b1961f79e7cae4f39f713d5eefd71ad1bfa966b50ace8f1dea57b9582a0369dbf073c67b6648a398ef003597e0f9433fb403e95abc244a92bf2e2bce9af44be558ffeab2636362afbf3d87ad3cbd0eb5bc42b30e3af5bc2d9af55bbccf889368c7240ea424067c44263685e280a6a50ce5a95082f93a34288912fab25fd259a7bc397457c23a760db2be66542dd0febfe9f266f1b99e84f3989a952b9469a5c4086d135bd24c8902d8f85a65daf80c61b21229f5f65c9bceda6965ef7f9358552e1a4d1a3eecfb099ab56bb9c69b34eb923bfcd31ed45594e538d4c53a5a582adaf4400c9fa20a9e24ca17dcf1202b2801eb81f5e9acf51f7bfda45762e77ac762647df3fa8f5b6ad667fa1f8abfadf3310cc4159fa0b6708567501fdbf4a50f21d5041b6001cefdf8aeab1cb304acbf6f4e67ad95a7ce8e595baeed81ac2d7f78fc16cddae8c573e2732d52463301f5a90f5995158d308a008e14b736c19906f07fe065bd92d8c0cc6de9ac2df61897c4ac837abe8cac55cff9f2b498b5eec7316b916b0a1a062655a6301c11ad3bc2c57ac497100bb0ab08520408072560edb1eb186ca0eee69a890dc8a9c8daeec2bb56ea42a5e0fbe3633f103d57c7d76d10080202ae95e15a2997466acd3624062e21217538375549e2d6effb8ec10676cebd3ab1813b9ec764e0d987eb7da4597fec73e656cd6a60b1a2af3343df822c4a8418595d6c230aa10e34211910ae130466083e829640f974eca174d6c2735add929ceb0fd1c8edad4e8bc69af5cdebe6475500123229431bce90fb28d6282df8a290c3974c42cc0d8482dcbf04a7d96a772a619352f2fe98b0aef813095f38fe852b34e1559dd66cd3a789734575f4853694210164a81e64a721ae1b811a50581c3e30ca02c19cc093b2249e6a76bb74d6f2a31f681cb336fe6228b28e5c74d90e7d37b5b094282852aae8470e4219767f63cf290e8de0758acf42085e21831a0062802891eef1071dd3596b95a9d624662df5f567c85aa1ddf31334ab3f97ec2e52ffed8e07f1b9057f0c314c8ad58a273936150a43929051173b674ba4d5bebfeb31b0fe5ef84a72ae174fc52faa75a7852d35eb9a6bebeed3acd1aa30fd486733255418467a0191823014d526b30c22a15609145eae96847552cf63b0d7e77f699b7cfdbba30180d29ddad5d1accdfe997ba0c82555cc2ae023b7f034698897bfb806d4251c9258ca6d265c1eb825f9b60ef64967fda2c9b4ee4904e837085917bf3caa8c66adf77c8bc39a15d76217ec8cef524910e0366cc9031cb981b8e5a3e2a8256d294ddf22ca2b49d6ba76403a6b8b495d3e4cfcc0b2c1286830ec819b17e9c78b0dfd861d9f9f93ecd5cd1294d936852cda303d071b77e1848500f4d055d222dcf543ab241160e9e074d629ddc8e8c45ee746039c0f5de8bca8596ffae7d4138b3c006c8f9b327d05d109bc2a75b029934295c56d659890ae06d42752f9ecc4e125d0eeec31fc182cf6c5325363dae95f45a3c87717eca9a569b777bf22be518f14d0e33641a8fb85806f8aa2503b64850e7c5df01f3da96c005516b35589685b7f994e5bffce9df362da2a7f378f0699aebe294fd3965e75ff99f9b901484deb28541545494601f1df952154040ad22ca8b414e7a1834b064a44fbc3d7e9b4ab678dfc39a1dd7f18af5a6af77c3d7ef6bea7cbc0738f6ac1f42ccf67011801a4ffa1961c165298506bb98ef49c40413a93615956b5bacdbf9e988efd57dd9a6b1393987c71141c8e5bf581c6ae3ee5df0bf273415777bb2aa64c9fb9906347af6e0227af3cee1814253a9c808b9066d8f2da92d66dde6f5a3af68201df6c4db299a15721f69af3ab498dfd42d9c72ecbcfddbbff153f62812908db341c89abc92cc2706f16e40a1685a296c15f436458bbd7f29abacd17cf3c86f0f642c37d8991ec3b8446b2ec0a61c4a75d7a51f5fc5c78d33ddc400c6c1c7c19815cd19510e3b0d9d5b0bc5079a6f24dcbcfb09cb6651d3092b9c770dacf2e3bbe791c3d2a442358dd6ed8b34fb755b5bb6b8b7554eb39274e086ed8c10d552e6abcbb103db03dc264ca0d946dfa593661a2b4ebe8c5e9d8fdf7b73d25c66efcf6d5ffa0eae87b7d66686cabe1dfde515dfeb85c94e0c8b4273d8ad36ea801ec28c3b16c5c61ccc04767c046d5d14f97a56317b6985e35c65e3bfd413ced572e7cbdbec6aefdf8b81bf373e2929be3412c9bf84a38784b8b39bbc2b66ee21bcab504d46ba1afbc0ccb695178b4d72fc7105c7e6de224a72dae41ec673bdc535163b7687355fdfc9c66f1a6f802872ae2d996112aeca121d23218b370309907dc14d20c6c2bdbb6c069bfa56357ea72629d18bbd46b15117b58b54e6b750bec2be3f2eecbcfc919e831216533a8e3e18f5726caa0e05a46eee00606077ec3e4a81c917137e3c8f5c780fd7dcfdb92d36edc11b17fb8e0d1e11afb9e333b3facb1a305777a22cb232e64ef828155448a6024400f0e1152863c0ca1ee2461c62daffb361d434c7ffd910609f6598d10fbcb0d155fd2d8db6b5ee8e7e7045cfe8c1bdaa4e3581c4e9be383042ed66536b70d2cec85c71c8f655d4e3bfbef63f824db96f363ec2a2f6d46bfddb1d4257562ecd20d9e2ad287b73e9e71a216c14da99ce27b3485ef9251420dc2ac30743c0b2bbe6cd89376a66377aafb66d3c46fd7ef8ba77dbbdffc448d7d5f5ea566f9b90ae58f789405d7439b7829157aba454c443a99b8b1c50627e865dd17dd76df31a452e1edafc6d875e5017cb02c7c7fcb123d19d2f1825be20eefdfee8278a3a7947dc62d7418f821e2f6062bda87005cbe69fbccf31de9643492af0e1d43ddf2c1bcf609f61b369ef6ee77cfe9a4b1579d99d7aa48bf8a1e62a7816b9b38784f0836c5520919a082ccca425533e9b82678c76cd8ed5bef49f724cbc5fb896ddbd155c60bd31b34d0d88b177ef24e9170f37b5c1a86b87cd0371c82250c83aa10ccdd362c9b86ae077f1f6c0ac984bdb95d3a768d1d645062dbc7df8ad81bcbbf70a1c6f64e36bae4e7641cd7c69f241336262196b02c1c03b050b256404ee278a1cb2df81b65dcce3dae633a768b66ab86c7d82de73d112966367a64b39e3c1c7c40beafb11b9c628cf9502b4a9822000f4d39c417544821c2c39d4ebee13108eb4a486666fd240f774dc79ef24097f1899134896ab106e19c31f1c0e4776bfb141900d6e21d01f5b8b404b83d0f9f3d390eb42bd4d3717cdf96b85237e0d9b0ff7c3f1d7b41c7dbbe4dc24da93b10fbf42d37b5d0d8af4de0833436ca478fd1da5b960b7c162e7ec24d04aeeb83076716949024f418e48076e066cc4986f749c72e3ca9e087c4b647de8ed883176cbb5163b73c6ed8671abb07ea5e6b6cea86cab143d3408b40390c1fe5111db014e19ba1495d9575f172ff01e9d8f5ffe8b52ac69ebea1275edc3cf2f18c533576f5722386e7e79482b5a29c7458c86d1b12281395fb7c1a1a511eeb28301a1569bc643492dd9fa56397ffaec6b604fb9ce3f0b4bf5dd0e86b3d901f961af9b5c6beae31de8b24f7a3d4c30d0a8a395094091b0e1a87db5d1b7c78a8200b94193fc93dc3d2b19b3418f14f52260c6988d8e609bfbda9b1af6cf5e9a4225d87abe2ca9de2ce1569d8d82305864e514b1a85bb95e77a9ee55856863201b1478d4ac76e54eda1bc57e34ff23e82d8bd770dbc456377adbc707a7eee3d72657c4fe20482a0b87118bd494bd7100e24261cd583e1e3f49899f5b4bf3a0623f979d769317695ba3b3003fce2ee8fce888de4ecf1738a4ce6af4894803c97d804386d708090f819be29a8610521b551e051918cb6bd60c23104f7ddcf544a4efbf68bf0b4cbb47fe2572d44b275f0890b8b0cf8696cf8b3cc48ee2c7055245acaf0368d18a169dba62d05e48419ee49107be8d463f0db7d0aabc6d86beb3e8bd82d9af41ea2b11bd7dbfe537e4e7769f991798cc0c45a3250b6de17c2956f1ab6eb7b32f442c27946ec2e33d3b16b4dfaca89b14b0dd982463266ee69cd34f6c3f9bfac28321ebc4c57371e0b88454dbc61002371c0488400537758c043093436cf7207887251738e21b89f7c659d04bb6a74e1b0e3a42faed1d83d263fb5a64894d4cae301644c5098e1b24928da5dbc518bae2e3de540a427c4335946ecdd8b8ee1b42f5a7a5b8c3da8da3978bdd36edb7d791a7bcd35b5d76bec2222ef96e42e0b1881d356048784297c92ae8d1bf3b86381a188c0cd86fddbd274ecd5b7ff2d93d35ed5144f3b6c7c7337adcfb576eb81ed1afb756ccad33b2d20a2583683549b08dbc3c4551acc452964c866994dc1d6838cb5e417ab8e019b7dfa5c8c3dfdf5b3119bb45bff90c6eedaebb1bd454658171f69ce64ae051ecfc6324130dca00b4642bdc0f5b9e59b992f1c0ad614c7d6bf557439e994bd57bd9e1849638ed8166d71a9c63ed0fc9643451e9316c789ab6db2d00e0d5c518a0fb51c953e506025249096d816e11953a9257f14c7d63d864577d5961fb2a05d8c5d77791b1ca2fbecbc2fb66951c2971ede7642995c2da9b155e072c11936e9e21e6848bf0d5f9aa8730441125be3999ff1937c7f5371eca357ec7ef15e971e09f6f6b7f1f9f6da039f7ea5b15f59d2f6a4223a6ef17e38cb7720ace3fe5f1f3c892014659b8941a80fa66d3b4a05194be0ee7fffb76d17c5ae7fe23d1f254672ce06c47e6567951735f6e8aa979f592617dcf56a1c8b4ba81f1d280e7c8abdb2a687cb018481cb7c1c0892909a64cc497e2948c7ee5ff186514970bffb49545759bf7191a3b16fad7141658d8da5e476bd8e31f02c02d92994c0f039826d7369700bdc38f35cb010d3e6caccf09a80d85fef4dc75e50bbf9d4e4b4ff3aaf106f5c5fefbc538bde96bb6ee5e545c4587fd0ef7a7620281e2f63f80a898b2e04ee14f41c2aa8ebda28a4900dbb75cbbda9d84daaf758999cf680c36824e10b339b69ec427af0ea32b9968f05b1e6a647951b8450b953d4b20931177414c07961e8118ff8a1970d7be2dbe9d8fd5f7b6f6372da3dcaa391dcf3c7f796c66ee43c7fa3c68ed6117dafb11d0eb60ca936e44f78858637f2d8b460534e1c13b2c280653ced8f3b1cc369cffa604f126eb67f84d88fdd7347815627376ede7c67995c94d45b662101f15dea10c3b450fdd6f150ccc684a089ab952c9401c95ab9afed5c1c5b77db9f5bd4934cd97cc26bf1f5cea636883d6af2b4511a7bf5bfb73c54c46feb75c36628a9e9410529998fc252dc8470e3415549b808945410453362cf79af38b6feada2d89dbeac7e468c5dea9733b151b8f2b98f3cabb1cfebfaa82c932bca3436553e355d5f1924da2f12c2bf71877b0007350e54664c8519f3ed41bdd38da4fc05e3aac4d8756b77c3d31e527364758d3da0c688a665723d987a0b35a516f75d068e1a2f4b5c0835063343cfb07cc94d623a360f3366807ff64b37921ad71eae19635769b412b1cb5f536b8bde2431f6bccdaf1471807a11bd70a52f83a84b003757715cf56c5b8101058f451d9784b6cc7875b97b50ba91d4dafaf4b531f6a077151a49bda93f0ed1d827357ca25511a1648dadc059480245199838768f040e6e2806372e85679b2ae4a693f1a2b8e790f4d3ee6456ae1f634fef3103e75d7bf77d4d69ec5a625fc722bb19f47a7a867a6901ee7d56385c20b1619f71cba02e9321679e72b316655d46a4db76fd596b6462db8d06a091f43fbffb3ebd3ea7c2ecd5fdcbe4de6ebed551d284ca3154ca0027887db04a82278162d8743d66f130842436a3df5e3d3add489aec349e4f1ce03302b1d7b9bbc76aecfefc842165726f3733f5651a178c101c3a17321a36c3767313d9c3907892515f64748093c71dc32739f4b196896d9f7e06daf665d79ff892c6eebdfcc5d1657265c20c6d249c4b4e6c067581006c4b8291f00077464b3fe4028c3b6b09dc6972fa69177eb9b14b827da8279ef69883536d8dbde470ff2965725a481a5b406de39b8a1a0ef69fbb66a4ae1de254a70217e387015519b1fffc26fdb4178cb23f4cc24ddb7d88bd66568302bd9eed81d967cdd5d851753123aedcb1c50f4e5b450b747c074a60dc23eff91cb2569f495b66b4ede9b38e21b83f3f72788cbdf6e7e5887de5e6fc511a7bfa19fde28d56b8a6fdda9971cb7f202d65091c5141e76dfa5a759d4a61fa945b6ee064ccb747ce4ff724531a9d3729c15e390eb127de707e538d6dad6ab8ba4cae7b477b92c0921e91508a390a57a1a31ca3b07c823db53eb52033214ec6eaa6cb0fe9b6fdc5fc97e625d86173fc24b74e16d535f65df5bedf5026f79a302bae6e8430b1974e597a972d031a5b024d6006ca32959d3571edf973ba91543a642d4f6cfb2f828f203f8d6dbd49afd26c7acaea9d1a3bfa2fd0d8a66b72b062d30870c79cebe2e64fe6434e22c1aa51f1d20b331ac99615e9465269f3135b929ce4ce5bf0b43bbfdca9bbc6bee98d534e289b9b6b9c9534ddcac06726ca89da78e180e35726373cc2b8e95a362322634e32f9d774ec1aa795ff27c66e3caf2fdaf6c9d72cbe53635f3afdc953cae6847b662722382e982f105321f0c909b50d70ba0942a583ed257ed65ab2e7ba74db6ef4e243655e8fa3e46befe169f7edf8c1c91a7bf0bdcf9c5bb6782a15861217bcfb868aba2e894771d40195b4b82343cbf77c95f1ed66cb8674dbee3ffae28a3176dd597bf1b46b3ebc61be5ed5ecadbff2528d1dad9d98134fe95a824ad73270f988e1da70ee22c4ae4be9d9c49216f37846db5eb635fdb4a7541870698c3dbdee0f88dde6c74fdfd1d8cb3f5c58b36caeed39c60e85727089377770a800453a22bd1647da70f2be6751a532be02ef38864fd2cd7362ec41d74eda81bde57ee59b34f6a5ddaeb9ba6cee35614edc5b4e810c1b2ec1d3414e02c4422813c20dae18705d8ca1194f7bcf31849b66df5c1f63376ec1f1b41fbff5a4037a3ffda59ff6bcb96c4e976a765c94b9125c9f05e50c93a8dd41700d1aee2631c1b27d6cd3cd98937c79201dfbafab56df939cf67787f0b4d7ae5d3e51633f5369c1bd1a1b07247ed2d82e5701fc0fb659423ee5cac0327c9f08b0ed80314503f84b65fc247ffff7182af7032bfde4939cd4114f7b5697954d34768bb97be22df5916a7f1c257de641fea170b083839130f838b16a90cce4d4b12c3334333ac0b96fef4b3ded2f965fd82c3192cb6623f69e0f9d1a1afbed82cd4dcae6dedc754e0209882028ad8c3dcfb842911abe15da8014a04787528165bc4cfba84371ecfff0db4fb77e2bc65efbea48c41ef8fb655bdf8cb06f5859e3558dbd7dc89cdb3d9db83abeab425468e4ca850c3064c210be909059714e5c3fb01c99d193b4ee928e5d7fc8cacec969d35188dd67c4bbc33476cf5fff6c5b362707f68dc60e4dc54247e02a56ecdfa681c102dccde4591e0d3dd4c3cf68243fbc976e242dea59fd932839ab0e46c9c54fbff794c656b3d677d7d8a856545d630be5b92676775924001ad3c3e1c55018beb47dea87ca2366c6d3feb177fa694fb974f1b018bbcaa73fe1695fddba69558d3df850c301657353a1d374fba2e50815d8aec1b12bd7c58f93bba134a8c768680684e1528a6c6f37fdd3b117bc7cf5c4e4b49f2d8ba73de4b7721bded08fd705d58795cddd4ac5d836115e60420618e23e1b86928d02afa6143e8e0848a6ac8c9fe4fa41e946527ee4b4b989dfaefc349e76b5df667eaab1b7d7b875bcc68ed63c6823b14ce65a26e4ac0e4509635cd6c470e71177a19034a524b6a0259816fb69703aebea29bb96c6aca53ede8f5751fb1ef94869d6c60f7ef26d91883e2d6e2251ae5021de3de1ab9e051c22a0b6a128f104844c549529016bdf11c7c0fad85f7f2781e5bd3a78ae1756fc747f0b3d2f7cdce6159a355a5b39356ee72721fee021ddc0559b367c86909be2a2d0804841b94fdd92cc8cef1c9dce5a58b57c6172ae532ba3e91ebaf2de899ab5e1e2721b346bb466604a2cd12885049760382ef6392b1ba50321129a5c0681c33da278497403968c3b06a796dfefc416b1bdf6bd212ab4da86af68d6eedd6edc593627f73b593f913a1e578af8103850980305f07dec4b8412cb72a57238909480f5ebc9e9ac0beebbf6dc98b5cae15b9175ea43f5896675eed97858b376c0303d49dff886b632b1e35d0a0fefd70937701ecce02693a66906a1e997646a74d737c760aff7aeab9a9cebb82ac8da76ff03bb5e8f58f7bdb9f5a472b93ba58971da693346ecd0f0421bb26570b28640813b0b1f320875a1282f891ec38a59e9ac35463e4f63d6baf5a2dbc6d20f8c1cad591fbb6cc639e5722dd713e3d6bd30e4214a87583636dcd87891245d430953b8144845509273fd707e3a6bfd1f0fde90d8c0aa9ec87ad60f2dfea759ef399d5e7ed4b97a1e2492dcc7574387e8e62016404803e7eabb8c846100a56a09a69c17a6b3369a32e7be9875edb84de85f3f6e67d68ccff5dc7f9d72b9d7b789473af0dd80388647b1acb67062d472717a20088507152a2d91bd6e5a9ace5aeb8551cfc4ac2d07de84e7fa5cef95dfbea673b253a6dfae5923096ded07b08d370c4d69041e4e8f870ec42d13ea0d9b3b9e670526b34849ec75f1aa63f0af33ef7d2db1d7bc45180bce302e68a3595fa37f3f5c2ef786ac594d6673c95d1b3e269cb614b868049c9811b8aee3319b40e42a893ed387bfa5b3f69f3da97dcc5aea7613cf75dca165d76bd61fbfecf274b99cda411c0b4c5328e67383d86eb47a0d959a20297070efa12484bb2562ddf3473a6ba5adf7f64e7c56cfe7f05c07f83d4a6bd6a70e0c79bd5c6ef8766a9ce09acc0b2c69102bc40145ac82a80cc110a4603eae14642561fd69533aeb5f63dffd2cb181dd3e9eebd28b6f9bf7aa7e21f9f1a22e9a355a69a7cf35508209ee31c374f05e336275f0842197e16620b19bad04ac1ffd7d0c39a159ebebc467ad9d1e65e07d5f7857b31e18baf023cd1aa16a56df81e20035c7050455c375208b619ecd0d4a7da6b8e75b9e2a499ed57a6771567da7f6ffd8c0a0fe33137badf719b2dedd68cc9d9af5d4a70ac66ad648125be78402126da288692882d58287ae35c47adea128d82558609644f5e4bbbdc559a37f5950b128eb75db1725feb5ca646c8139fba9fcb3346ba5df4a2f2857bc443081077bcf0ce2fbb8a6336060af34c4b5e0962da4083dbf243eabb0b038abeea03ba3e8c5c8e2056b9273bde466bc87afd6b1c7afcdb59acc09737ed7ac981236d275816dbbb603e93f64826680370c2ed48dd431ccd07484f07c2e784994447ab7d95f8cd58d6ce0f4a2acbb2bec4cbead3e7bff0056defefc6e9af5f8159ffeab5923c9fc59714f3c750285134c16e659a683ddf18189b7d882bb9299362d89bdfefe4e3a6b8deb4e2d4ccef5caa6a8d5f74af34b9fd2acd32ea4a79d58fc325528618736aea8b3a295042e410144dcdcaa94c70321142d89bdb6ed5a9cf5c61bf057e9a2b74c4b6fcc7f2366fdf9c5d5f816d37e511dcd5aafd3b40b356bb40e443711055c0544e01afb50a2f619c77b0fdce715421c30a56bd1b02452d7e307ef2fa68118e9d8cd2ca893809e284f8e411b6fac86978f058baa3e181feaf85b4f3f31f7faf273dc5bc639c50b1ab0584c0851fe9241edad4c0f7cab15ed852c01e8a42f8a1faa7658151355c9f23b3b574e40dbff847da9a79f776e6f0dfa94597f6f91af4a37e63362ba9e4d95c1c3103b25b96b3001b40c8cd409424813bc9228480f1a5d1c547b8023a0b5e82bd5921ffd813bb60068fd55dbe66bd0a557de187ffe1ed62e7af0c10a2d14e637c1e763d78717e2463485aac292498afbd28292a8f3168e2d0eba3076ab09a833c08b415b5ef91afad43fef39ef5f0d7ad71f74a1061d8a4d4c7a1ec6629c0a7c00020c5cdd2688e1637e1d9adc09e0a78f8bbe4b00ba65520a68e1cd8fdc98fce857fc8927da70c7104f3bffdbb73d38b15caed94a9f28c51636ec55822c1a3f26148180af09ab2c4f31dbc45d7f2500edf94d71d0a40f39f150ee0ff7c6a06bdf9881273afbcbc6cf6a5052937c562e7793afe702b8073ff88050c3f3a2a583127ef4cc760cc85e885422409db11280eef8f6bf3fa6f313d04abb46364e4e746865fcea279f5a6e689c525d3db57b9154557ff522305588ed6b504b4122e54119c8fd0067754ce58402d742f9270e2d81c0cd2ff352505bf45bf0bf3792d7917e88faebe1727f69d4ad67fb2dcae55a1f7e8a2b5629a1888aa6fa309ada14b26a290d4fdac251a1e54ad32a11eae70bd34e357cb2558c5af7dc099142efbbcfdb3aa91e7defbc50a346d37c8be3b7558bd981e51a92cb48460e52001fd2403b802c8552c64cee9608b5ef92ff76524750a73c7f43d71875faee8d7b00d538787d538deabfb5ecfe72c5fbce9970a18282580a79293829ea7986cf5144102cd7e14c8a6c6b94aad46dbe74797166fd5b958e58c213353e4b8eb7f706b484caf5aefd4e334f29d58295cbddb7eaa673285ac1cb43a852d13ac1905a78436c19a1a4d808cda515645987624259b83a8579cae133c625cc97ad46e621e5ab55d0f70227bfec5eaa99d1784ffc31d1bf94a1137a8627ec6885b840fd1adc34627b216522b0b2ac4e6dc9ea36ff7b6d0a73e125dbe724716179e902607ee6bcf28d34f3fc6faf3cad5c2ecfd25df23eea096290755043c0a528dd2d6c3b92c5140437beaa0c2b895a5e0b69cc9f69b67170d7f2e49c5f1c86e7dcf2be199f69e6c1bf54292c5b9cd9f3a5aba882c010a02aa26b5a862f0831024f11cbb66c1ad02c2b5cead66dde6f4b9a6d3c376053cc5ca5e774647e6c74d36d9a79c4e06b3697cdd55f9a993a66a884450de97a28e30f6522f3856fd0c0842cd1a75c98195601a3b651c1b614e6d5a51fff27f1c683df46665e7aa1d722ae6f272d3b8ad924122c405023806206df3cc09e03a81c24b5f090433bf032ac514261a35f77fd77e9908b20c3ff28f766ecebdeea8bcc177df54e4bcd5c77fe59b3cbe6860c17ea3c077c1ab304a4b8a8e7e1428e03f62ca11e33712191837d5119ce19993fdfffdf29cf794772b3ea6f9e1733b70c6e45ffbc64c688f99af9e28ecf7ca599afc5b0b7307ec9f314ee4885d8c1b0bb08e20954eb9611d88c481c643655c6d5a9cb0ea7304fe936f7aa98b9f18ce3f09c670e9a5455bf310d38937e58a4fd4233bbc455c007896f180d05e1a032f1b921bc8048e6ba36f132ae05fba0cd3fff99b11d61ae74effc3a0973ef77b703b3bb75ecb39af995e9059d8ef21b52405416d4c5120dd763e26a3ebc0b15a6cf190f2d9434cac6dca37d71661dbb8f302ff8b0cb5d896d941d83cc5f772f3f56332f3f61e01b6573ca8f3aa63017ccd9c1559310c1f1cd89428269e10639874271e148c8ee32ae5cee549c39b91a4baab78f9f783c661e5466200aebb499bef4a066be63f393cf16695f888721a10ec2790e830a2885dc40a06a9e8717cfd4b6951984e0eeb2310fef9ec2bcfab2f1cfc6cca506ccc77bc71d350aebead7f4d6d719a26cf1b95387584c028e612a14710bc149b3c0962861cb08383b5fd819bfc1aebdd29877f77b23665efbd2f3c85cd0b6d9db9a79ca6f63ee2f9b6b828fb365081d3cc4d90e8293c91e0e2f29f837c90455023e4e6e675c0b36af6f0af382ab1ee894d8f35b5d90f96d79eb5ccdfc7dcd31b794cd75092f8905c5a417fa1053423bd241f3a3b793c0203e304225424c2be3fab5e10353983b3d57a95f621b4e13641e54bec389ba8be8b966876b69e66857d092f8ae9f9bdc8794cef1f15d42010f23a169084271cf24e4a25957f38df93ced1becf0d3e789af2b3df95f60aeb88fdca1999d31334dcd1cad21d5cc0a127c1f9238bce907bfe13890d2d904ca135358010b428b7819d744f71899c2dca473e7f93173ddebebe139f75bdef657cd7c7bed97cfd6ccd1f2a82571b75668124f80154bd439a756b4410c3e44e6d9c28613674e46e6c363d2ce7954cd15c937b86f6234add4f0b52aba7b72e6a1d9e58f62f61d8f30d4e052260a2de1a206ae6c2c08197730eff764c6d5a973c6a730170e3b6963cc5ca55ff4de7e65e3cb94666e77e299c769661434f8555f088494b000873808c395cba8d30f795d605005ff19073d38cd68cf9f4c49fb069b7fb927b18d51512b7397db2b0ed1ccb5d65fb557f7bb479b7b62150670742e856f30d01dd8ae69f80aa7ecc1d9b9848281908ce7bc637a0a738d45af967e2bfe060ba621f3ac1baa6cd1ccd3baedd85c26a72cbc2c8e2902db671d83785005ba161c318f8607959281473d4eb3daf3d2d96931e596872ac4cc759d1ec87cfd39db0ddd32fed41d2fae2993eb2a4bb445a8a4caf4a01e44052ec7c42a2b80980295ade379dcb669c67c63d877697e63ddc517c7cc839a7447e6dd9b0afed72ace452ff9a94c4e5b53df16bbd4253614d88662b87702b7a389d052b88edba396306d69668c295d7e4c619ef2c15633662ed5a611be1b759833ff2bcd7cf8be56b335f35b282dacaf3921344362af8421ade88d0bdfba3d9c1974057c7d54d9ae9791f9b3a569cce7df724372ce9bdfc1732edff5e593f4a8cc81f9b5c76ae62bb1012abeecb67c295d8293bb5ef426e3c337c8282e52f0b88292d06219fdc68e95697ee3b4f2f7c5ccd3bf8f064ebe3ae5993b35733de7c4cf35334ef794d7f255411840c0037b0e08be27e34b1d0b09c3160348f9a9f47d2b63cebf6c4d9a3dbffca58899ab4c7e03991b6e3ddc4d33cf197eff879ab9f0f3829fee4824b7984f71104952cc45f10a49500aae0fe223b31503bbc9e8ebc6ff911653ee7bee7f89df78f420be2fd7bf3bef67cdbcf89237ba97c9f57069661bfcb0c0f7653bc4a95d05503e54db501e3a6e203d7c5eceb872b9e5a614e6fec7fffd66ccdcf2b613f09ca7ecde71961e6b5cfaf7beb64586ff57c5c348a14fc03e709b4a74ce804220c4d8b8c1cc228e6056465f57f8579a7f1ef26ce78479e635519d32a65d43cddce29aeeaf96c9e5a2bfc4d7ce84534b451e8e633f0f94afae2f81cc72a805dfa5efb8d9982715a43057ea50be7ff20db26830a667d7f3fa6a66ebd64b9e2d9393b5d5827d0c1c03f73d9cf3c7ad7b21d833e72e9cb3f450c22f08dcacebe5fbee4d616ef1d90bc392735ed86413e6a28fccff4533fb8b4f91479d33e46f8e2704be92a0ae42e8da287b87d912e479387b6cd30cf7487a4e2385b956f961e3927ca36e2bccf90ff9ef54d023e8bb6e98f3d0d1cc103904838f8e305461230a5070321a120d11988ead6c95f11becfaf681946fb07ef56589afeb722edaf309f3dff84433d7fe88d42b93eb4dfa35ae619562d2c7c134ecf26138f410f96742a07c312d059c19fd468714e62f2a4c589fd8c67bc390f9b5afaa6dd0cc9f8af95e99dc7c9a5629a516b5c17538c08cb9a8c091511ae05e8ec0b6b0ad8e3a19e3e0f79d5398ff6ad47957ccbc565447e6cf76f16a5ac3e2ae718d0dcd1cedbbd282b04c314b9ae0dcc2d053e83700c5816a963a5e000e853bb66b67631efd5e0af3b676a71fd732b6e7b69bd06f5c76d59e269af9eddfbfb8b84c4e9e4f335b0e0f0285ef291c25cc2409517b17ea412fb42d6c0231bd8c7ea34bef14e69b86de5e36669efeb488244e06de122bb33cf67dc7733433b686dea3f582fd205a1f86fb39021495c6be15c732b1add5a2269836c06463feae5f0af3dee33f3d3566aefb613564eef3e3b89d9af9d20a779ea299b12de8e7b5b17aa33089c4a79400fd06c52606d7370dcb0f7c496d5f394146e6cf06a59df3b06d1563e64187ef44e6d14b7b12ad3754e98e7d2714c94535b3c2474b08d486e332f0cfcc21b80c1ddc355110d4a908899be54d13985b7d9666cf4fd5bb20665e6b57c79cbfffe6cecd35f3aca5a5ffc9cff5386b096c255ddba18a1b4148a30d5928a5caa03c0c2c48abfdc036b3e61bfd87a7303f76c28aaa31739566916d7436562cd2cccf1d78f1affcdc8bbc16490f5de6411de51a24b4504406a20b8bd23c5729619ba6f4b2daf3b65129cc83075e7c55c23c7707fa8d8273e657d082657326d75f979fcb45d7c59d1982fa0c872a51a8d645a91e0e7f0b83f8dcf3f185d0f232e6484bbf4e617e76f16334662ef5b981e75ca6c5cd0d34f3e6afc258d333baaffb2356bd714dd3710243d9d112111c8b5232303c28c1a150914264cd91164f4c611e79cdb06b93733e7b1b9ef3cd731eefa399bdb9dd7ed0cc168ac7e8750532e0d20e5107c4b6e11bf4d13f53c73542c7870ad167810a32c6eefd5353985f9ef1e70d2d939c7f2e32d75b5961b56636fadc313b3fd7b3bb3eee830db81f803d5b968bd3ce8e32b8655a06f12c215d61abd0cdf836b16e660a73c5f7cfae9f9c73d581681b776e6d738116977ce1bbfba614599ea4b7597061793e9c3594559ec43de021dab3674893904008135c6146bff1f5dc14e6358fbe755f62cf9ba339993b5797979ab9529bf65fe5e77224bd38c4271eb83b6e1aa6e5e068b91518be54a88a09858089f7bc61c6fb8d03dfa7305ff0c1dc879398523f7a4fa93ce8eac19af9c7e9d70dcbcf0d826e8cfb3851f54d3103ca415455c3cd9014a7416d0ab1c6a6bec8d2bf11f9e79fd2e260f54bfd2447badec398426a1b5b3473cbc30762e9f9a853523343a0f3b8027b3651dddaf5053ec1daf8210adb15a6ef1291d1360e2e4bcb37167cf34c72ce27d5c4733eeef701f5b4a26e78ad172f278872a44d71d36418309fe08506da86c4512f9467a45660dac2b2434766fc0637fd9266cf779df44292237588c656ebb798dd5633df757edb773533b642548cb725058e6d11210d259019923948e94ccf20a8b14bc0d9852223f3e76b53986b3e7fc76b492eda2abae7ff70769f799a7943ad2d2d8b6c0ad1ccb6824f4e9a0158718077b9388fadb865401918dac081daff19ef37d6a7300ff86960abe49c9746336ba77ef6cf495a00fd70f90b5f29225bac976951d353902485867470936c804dbf2ad2fab74c66058cb859dfda566c4ecbebde59df3ef1750f0ec298f271ebc5776ae6a65b6e6b9a9f9bb14ad6ad0969e2060249b1af00fedd603614df824a2a3d0fdc74d61a76e4b634e60fcb774b6ca3f04a3ce7f5eeb26e9ab9b05d75959f6b0ad59bed040127c75df07026d6b026c3edc28e6d586e607932147ee0647c3b9ebc2bcd3f576ed83b39e7276746778cdf56fd593377b8a4fc234562f75fb1e81bf59884d4d927c0e37ad8151ef0481fd582dfb2acc0cfc8bc665f1af3f8770624f9467807fae7be4ff5aba897559c7a469d7b3533763337d68b0f8320f4ac1050240a38b8c4c34911c8f07c057f11ee846690b5afa0c3e1b49cffe99a4313db98f5329ef3c1efff782e5eb0f1c0889b8eda31193a0a85bc70be31bad590c2e0a1b0201755ae70b9ed4b37e337b8aef5c1ff9bb9cbf9f547257ea3df4e64de70f3bcd19ab95ee306b5f373bd6af15e4c5b3844fa8181ebd22147b299e1dbb88836c4ce571552c132fabad1efa4303f36b3fdb8c4363afc82cc0fbc3d77b7665e75ee8f243fd72fba3dee557321ac507c87f51c149fc5fb3a474058f47d2ea9a328cd7827d3a7530af3b44fbf999ad8c6b5879079b318e8e97d4815b6bf6a68666c25aeb243df31da010ae751c36638a5cf98c2b7e310c009a1843896c33332afeb96c25c73f7e159896d8cda8ccc2f759fff9a66eefae0159715593d5510d729506653a8071d2c0add80433d08df9f41890d85b789f34419f3ba493d53980f3fce172477059527473185cf9eaa998d4e2b2a1589dd9ad9344de2a3a6871570f8064dc8eb18c5fb0ddfe2a6674b1664bd2be8d23785f9e5aa4f2e49fcf3dc1b31a6bc3bac5129bd07eeedfb479e59a4eed6db9f1d86a2353e4345129c8d77b9e1e3d4310b081514ec99938c3952c1801466da67e2aac436c65d80f7fcab3ade7083666e796ae7f24576d7ed8ac74d42e14825c05b28bcaf0b2dc3b73cdb20be836dc6128af28cf6bcf2d314e63937cd589bd483933b604cd9fc6fbd169ab9c790c2bcfcdc9cb4660e44e85154bd223e8e4a44fa1ecaa1b8a49689d084a2dccc78ce6d3e4f616e7069bb2d89af5b361eed79d1ecfce59ad919def6605e6eae7777ac9f624b81571b92630d8bfdcfc203e76179964dbd404a30eb6ccc7b46a430ef3df7eb82c4d79d5401edb9c30de3cfd5ab461f583267575eaeeede13bf697a54850a628ae9a22209ae3e52a66990d0a490567b027e65ccebc6a4306f58bd7f7f520f3e733e325ffce4dd8f6ae6e5ade95f79b9a924cd4c1c8710d39746c82da8535c7c3be6507c1328bc1d8f593e251973d1eee3d362caf83aa55ac5b6d135ba2bb8bfc1c91f69e6c65ffcba3e2f17bbf7c6fd1bcaf3c0191b2a44514861fbe03228fcc3767c3869228499d13f6f9c9cc23ce09777cac4cc75ff8d44a3baf75cb15e33373ddcf1d7bcdc8cb26626b61f28c22117f570d3bd4930170553010e29020bd28d30635ef7fdf414e6677f597e4a72cef52319dfc5af94be52af85b64ee9b02c2f976fecd3352c24431caa3e4898517d9862efa549f01f5caad0c38a2b635ef7e1ecb4bcaee6a1b39273be8ee0398fdfd4ef19cd5c85f7fa312fd7ffac99a5ef510e7594814f6e60cf04628a0d1e84040ec79d198195f51e69fffc14e6356fde5639666efc9b85fef9f98fa78fd2cc67ad59352f2fd7dbb35fc7412515719583da3bb80d0b6b2bdb64063e0d0a4845c16d678c29ed16a59df3b37f5c1e330ffaf83c3ce70d832f2bd74df7317ed4e81bcd1cad54f927ee9341f9c7e88a1f57aa60b38cb0812c90148a16db0e5c99f1ce7cc9cf69b1fbec6a35137b1e310e97ee5cb261477dcddc6365ed099a19d7171a07749dc2f012c3f7e11bf4703931f6d7b90ae5e7c2003c1fae38ca7867be7b450a73af9967bb893daf8ee2e0da9a95ded6ccf57eb3c768e66835fb411d070125f41558312449d84d207176c934a86f3b043ec680ca8cf63cfbd714e6c1136fbc2639e7c915d136b6fff1d71ccddcece0ba61793989e442fd0d868e475dcf84da0a75b4ad10f74486c40888e333ce78209c8c71f0f0ef29cced9eec582f66aeb279349ef3c3670d3cb17bc47cdef68e9fe4e5de260a632d423bf421e26159e5a060a56d4005480de2da10d13d02454cc6f7c1351b52987f5837fed69879ed47916d7c3daad51d9a7975d531fdf3725a6887e25cd4f36cae22e12b9ca9816c890b3b340253389c48d362597be3a76e4d61bee9fb3fef4ecef9bd8ac83ca9c20ddd3473879d56cfbc5c8feb616dcf81edbab62d0ce95a0efa3a14bd05af674285057ec33325cf1807bbef483be7e7b6364cbec1af2e47e6f7f73fb858339f55f5f2ce79b97bfe7f75be817ed8e12ee475249ab70266284e0cc26dcb149ea32c33632eba7b775abe5169cf6331f3f44b1e8d9630e54f3ce33d9d3f37efd6362f5777976aa0e7073d1ad9b36ff9b8f0c0b6c1ebf9b81adc0bcdc0f7b86567ccebc6fe93165382f26112537e8e6c635a9bdfefd7cc832aef7b5333478ba3f439fb9e4303a10fd6417104ece797b847ca3199c0a35619f3ba81875398c79d7746d384f9d186c8fccad36ff6d2cc8d6e5fd45c33a3d077e7d8364c422dd78cea6edc8711e9e4506678160f2ce68b00024e36e67f5b17a6dc31eeacfa62f20dde7d45a49bb5f784959ab9d69b17be78946d6033bf50e0e124c3fb3a4035fc00a0ec9029e928cf915ec6bc6ec83b29cc97e7dbafc7cca5e804649ebbf8bef37b44cc1f9fb9e57f9a195b02bfd6ccc2a7361126372c2230df20d1ee0e000f8984d0e898d2cf68cf533ba5300faed0b8751207db4d43e603df9cf6b866febe6dbf67f372f748c735d0758ae75a8120505be11a0c1facc487c4c810d471a12007163f63bed1ba7b0af34d63bb76487c5d41f49e52e6e43d1f6be6ad6d2ac4ccd8dad33c660e2dc5b8c38dd0765049054a6ec899f01b0c21e550a86091f11bdcda3385b957b39fbb25f63ce21f3ce741f33edaa89957bddd30668e7ab68f8f98bd904b86e3e844e13b2c5e1344dbad78604b574299c2b3e61b83faa630af597dc60749ce7f795764beadcd8935ded773f495473da799a359e51322e6c094cac4c517c2c19947828ab6a68bcbe7440801d1824a2063bfe8844129cc2f0fa603137baefb34d62953fca79fd3cc551e59d84c3347ead89ad9f398702836d499a8b9484dbce70f2cc373025f9854419598d19e3ffa2c8579dc9cad4393739e1acde29dbf67e5779a79eda0bb5ececbbd0f6adba06e18708543bb0ad7e31182cbbf397c8d0a123a4b3aa69ff5aee0d0e729cca7ecbde9cb24767b4f2073d753479eda536b07e73fd8423337c14b19cd1cda3e369a7bd80488731302f7199890d7096ef94a5844c98cf9c6ba9129cc87bf1d343e39672f9a03fae4e3fbeed7cc7517fedd3a2fd74bac6d83daae6021ae84f2a2d50010c519be5210c15c668544b1acbd97cbbe4a615ed63def9bc49e9fec8bcc179d42fb68e6fcc657bd5ba4b6d2cce0d7b8f4a8307c82dafa3e8073c64c23a05458d4b62c47648c83ef4f4861de5bbdc99cc4d72d988dcc9f7f77f91acddc73d4ebdd353364cfd3066adb30994f04fed991bc828b9b1e7ddce8c22495227042ecdacd38a73935cd3606fcba30c9913e3b80ccbbd8d24b7a69e99b6b9fea9d97d33bd3ccc4669e2920584b1f0d4470d43901cb06bf1d2a5f493be0196bab4f67a43087b7345a9ae41b1f46f3dd3f870f3fad991faefd6cbfbcdc9db9b60d7c8397b86d4159d1dd170470a8ad02701ee04244e09b7698f1edb8d79cb47c63d40fab936fb0730ff4cfadffedfda566bef88752033473b474a1b48e29014667882961806a48b8c2800b8a4d49caf4a974395319ed79d08214e6062f7fb021b18d5387e339bf7f43b9937beb19843ae3076ae64d78ff9c17313b9694c4742dc837e0cb736d1118429abe61e21da3edd8e00a33daf3db8b53986b5f7dc2b6c43616451ab983669c799f667eeceb06f1395fd876eb3d13f2b5af0b94f4fd68352ccae2c11983a756c4707c159ac414be3433fabaa54bd398b7ddbf27b92b38ed3164bec0d8d75b33f795eff4d5cceb31e72f1b312bdff13d48e7a00064a8db1312a8bb438a8be07d9b33175c74c6fcf9cb55c5998b29a6bdfcfc1785491cbcec0bcc9136beb175b5665ef2c9c2f8ae20fa7f2aa76d03fc306184e29c66b4d6027b5ca1cae2f0f5912070b96365f41bffac29ceac7feb881cdd86d7979fd03a3ee79abb508eeea7ee7f5cf841c43cf6f9b7ba6ae67a98239dd440eb23a9d00d856b287419aee78786005c230825e18cd2d06319ef64d6fd91c23ce0e6f74f8c995b9e7327aa27566c31e231cd6c3cb5bbbd66fe06e7bbcb6b5f274308d21eae68c1bc8e700f57e3588613506e068cd966d6d9ffb99b8a336bdd9eb38ebc012ddc785accdc78613f7c871dffdbe77d34f30527fc15e71b7b514fe6e488593a5c9a91ec1f8a55832940ce1fc22769bb90f14b8e028519ebee0ffffeef6ff0cc237db9334e393b66ae7bce97e89f57755ef193663eefe227e3bc0e5b02579e1231f39099caa6dca0a18a62b763f89243dd6dbbc417505b8559ef37baef4961a60b375449cef9a78a7867be78cb3335fb44ccdd475cf7bc667e032f734fd7cc0e579eb45d8378388b87ea9f824042ea798e175a425a3c5019eff9ff4961fea1d51797c7cc559e780a9907f5ada334f3ac21739a68e6c8a02ae8386853d7f620f0d9f821eab7634c482dc83a020185572032328f3d9cc2dceb97763562e641f6a9d139bff8715fcd3c6a6ebb5033471be3ced2b928853c8399104408ee30c38b192c05c153139373a809a5953176ef6e7de8ff66ae3df4363bf17505772133a9cf1769e649ab9a352e62cf151bc4ef29b64dc2c00865b4bf072a43810e8fd8ca0a7cd7646028d998a7bd93c23ceed30b5872ce0d4364bed56996df3762beeac3ff3dac998715fc74877f8ece454ddb5638e62125eadba3041553143e44df2204a238a3aa24baa6133aa5800eb87affb50968f0e70614be796c5d2d0dda75c3ebf76bd0b528d6739e0e7eb6a214bbf6711816038983c26470cc90cb31cb528ec56409405b764f01cd7f7ff4f5c9d7766f373cd1b3af68fcbc06ad34a9d55d1af4516c29afa46f054c9f80ebb221a7e7b87e5440c2c9a40f862ca8236d2e5cee95007459cf14d02e437bde1a834edf570d4346c5bcae9f6bd0e5b7efbfad48c8a8ac415dd793018ec90736b64839c26078ac8a983eca5a725794047460df14d037c34177253ffa613510b470c113eb34a8d3fdeb9b356837ecd1bf3002b594273c7c6f302335634f9a38ffcc0dc885c14998222056496cb4cdc014d0cbbb0f7f2009688f7743507245a9f3fbe9c6cf6bf7d52b92a05da41d806562ee4ef4ec03e4901084995086490321a1b683205d12d9e5df3e4901dd3bf4c747124f35e19d285b78f4d1fb35e8e5bbdb5dab41d760357789f6ae6628a585eab0b688d433b002053f2b5c89924c36f359496497270e2d0eaa7fabc291d6c3de0522f9988caef831fdd1a86f670d3afd924d9e06ad8df37397691b65aeaf3c5c6a643978256141185090db380eb703e109283d4af4a31ff1dfa0671cc9cdfda54f24a0673440f754ff8cfcd91af4bea533ddbc9ceecbe5fa3e9e4074829ac1f0031ae99fc161a23482548e1f4a6e865495441afccfd1c541b5eeee69472e1f363cdd34496e1fbfe04f00ad546dce3f1ab4f6139562d0ca1859abc649971d70885246183557803b02238054c66184d91071192dd1573f73dc7fdbe811d0356f8e793ef9987e2f83a0d51a7f54bdbfce5af69dea68d0f3f1b5e04a9d855b41209d00d241543076392ae9b82a301c6a13879ac2f5052d01e8a2a9c5414f8f7ee51db1d15776bf92a484bd26ff06a00ba7d6795483ae225dadbc9cdc48351d427dcf930c4e34f0b05c086d82aedf332c2225258e65db6149a4f6bf59521cb48db1a2b5b162679d9cd4fe81cd5b5f4f585fab89a5cd451d577a9a35bf5385f85023f9b8eafaa74f82104a750b9b8e85be9b14f84e2e6c281f8819e026bf12b0b659519c55d7ba6715590bf05e7baf75e2f68f9b86d2bac78d6853a82df5811b4610cd1a49f4eb7365c204e76e4242823b425c66e3f249e5e02b9de940e2ed0bab242b8dfe5efddfac958ab0fa1d2a764c3effed2fef04d6563b7f1aaa59f73cd28de5e5da8db5b14a57d9129c153e2a631bac74502d3c349cd0f13818824b4379e2f0ffffa95ff34dbfff37edf945687796baf7fd8476c35378b2554f9f7e8fa6ed5df1e76b346d33544cbd423b2bcf619134950aad101f3c0303032c2a90622f8a54ae639788f6e30dc569755d5bb908edf1bbf33f4c3c56578eb43527bdfbaf0eff77b0e971b09a8b33209a36085d6a05b66384f099e1a24608562e310d300dc7058f0015822a116da7adff7db64569674efee4b38476d4f4fd407bd2f8ab466adaa67d97d6d6b42f60d7abf6af4a593ee501fca921361ad8a81b1f49624aa62072f1409a6186fd8c66dde6ef1714c7d622a945b15b57283d26710c460334e052dfd7e11abbefd83f63ecdbb08754c72fe531db169e32a88d6fe0105671ad243128b3cc80ca20a099b0bdbacd57edf9ef985b14dbae76d5e4c492875f88d87b9a0d5ca74bae5d3357c7d8f5713c48e707018af7981e785cee61f9825daf56280c8f851e858fcfb6cd0ccb975bfe7fa59d0bb857c3fac72bda29a2c2713d74d3a15aacb566cdac99229b538ecb29a71c1cb7b466ad19ca3d5272dbdaf28f4a8a4445bbbbc496424aa5d34991f04f3629a59b5bb9753b2aca79df356bedfdb3ede7f965fdf6e3f16c4f0fbf8ff9cdbc9799f7fdbe6716f79bbbb7e6d5ce3d808b7eedb038dd24e51d714b8f7bb7d65083fdee7d1313ecdd976c9a3ca6a589bf1c4221c2e6961b60b480931a5042c28a04d591968438ac8091a9256717f71bff6bcd81432e769dcb372c4f37c9a58b50b4f89f0fded8de601f13bd9a604fba150c87091b3d5f85400c9e0edf86bc28f02d11b2d0223ec5d99ef03d705e00767171bf7da5fbf362cf7ce0dc8a04bbd6daa188fd66eb2edf9a7ba6ee1f0f2d36d88762e16ef3e47e1a3f8e714b33d46e410563ae616f83ddf0dcd07344e814b0b7117bf1a0ead8e6b7e373f7f6ad0faf4dfddf291d11fba463e9b3067bf38a13ff6ab0e3b1034d4dc60b1fe944925b01417900e183afc6f279388d7e10692e4450c0a86bc41e3bb4e6d5ce1d505ba774fa17696ed163282a2eefe8b9a6abc17ee71f83cfaf5ba59463b235f0d6be56689fb98b55ffa82c123bc540700832b826b2c0b9ba4f8fa8193b77c057bb358f7e97ae765882a2cbcb1ead7f88c19e3d6c7b17831d0b9f9b6cd80b85ab51f39c48172faab1c9897b9869b8b6e2bead82c02b0c7bffa8ead8c6dd1c9383dd7ce7e9bb524bf2d9f178875a7fde9885e64d60eb932b936b91b80fd5dc36843c0c21d0a05614c978ca1b041e9a401c02ffc86ddf074b5ec09144eced636bc6ce1d5126e5bcfda9dd7e61184effd8f2dd65d78d4a64249a5d63b037f63faafc6fc799e05e1342c1785b5ce0381d2d62d95701340c321238a15ea1d86f8faf8e9dce2aaac2eed5b9ac6e69823de9027ccde83262772b83ddf221161aecf35151e918634902077631781ac8e7207cd612076c52d7c2f04472c194470a1c75bd604a7eecdeafb98795a676bb498cdd77ca37e621b47bbd8b7b1aec6658186b2e532181a2115676db2edef4701c0e2a3c65f96ee8c2067222a64861d8df3f9f1f7bd945b39b24d8b57ee986d8dd77b478d16037de7dfbad39b714e6de3ad09e603e9c41140c43dd0e0853c1c35811939212c80d5d51e06aaf79e900b01bfcfdb804bbf8d57b10fbf9f99b6e31d86479f3be06fb2f583bddc4acb6529058c1b6e61e5ea9065e08bf4160e2bb9c52a189d6be5d18f6b3afe4c73e9e6f3d395ded5b2e43ec236843d760dfd2b2c9bd06bba21f9892462626e14ac43d5ad868667970082d11eb0dfa52701ce3eebb051ac0f173f263af5e59d22a5ded1be2bd7df9d537ee340520fb6fec31e0778f488e0a997295b65c084020dec67ec9b8dbd38ebcd015422937280cfbddf9f9b19fbfb9ae95aef6ec43d1dd4c7d67c86c83ddaa05199473b165deeb70f8033ed9598e2b711e3a4a8e08c7b178e8338685bfa15be018f7c7ff730006f0ea415e825d26bae36a8ff8b9f76d067b78dd3f27cfb937606ffb618997941e0451d20a436c0bf0436d49b0d75624892b292581080b74eedf2fcd8ffde19693dba776fb8443107befd1fb88c11e7663cfe4e5fc112cd56b605ea195063b07d69a06f80a2db0c62944c1e3803370447891ec1486bd6c797eecd1dbc69f93626ffc1c6f6bae39a5dd4fa6586fe3597f4f8a6e7ec44110f593db4f00b43dd7a2360a8de3085a89527e240c7528280d425ae0de1eb5223f76f32dc79d9feeed57bf446cb5a3fe1b067befc26fc71b6c8ca49ea997a4c09ab39048cb89fbc56d9ce74861a7b842398c41a0628b02b11ffe383fb61cf5789714fbf12d88fd48e349f719ec23fb1df45c4e2b862963d151481da1b5c518c5525f1b4793fb3624f20e0452d28e200c2c0cfbebd507b0da671e7e69825d727733dcdb13d79d71aec15e707f51794ee06a2a866c5778d461d45244a2f29900e70e598d652b1d8440e89042b19ffd3c3f769d314f5e9560afbf422076c5bf4ea96bb0573e3e6f96c146fdc15393e22c94ae0d21a7c199759687338a035be1e41ea93d1938e08a0a8c00ffbba9e6a42c17bbffb69632c51e7d28623fb377ed52535bbd60889c63b0e3d26a5307271857be86503b1068002329ad80b99e4522a91ced8401eae81784fde296fcd98dbb6aeaf5690478ec79784fd2f987b6830d76df6ba727ed89389d655aede47e9202b82616d5148b7d6d812203ca12b614f8f2a3a45fa073ffe9fb9a37492eb6dcbcecb6d400b6380e2b9e163eb7871aec79075f9974829affa449812301b92f092c413831af2ac201f68844ca57c40921962d0c7bfd8efcd8adad15fdd298e4e48f117bdc90929da6a164c58c161ffcae414a8a884a97f916a5321e6a6c83bb7189a5020d6e53724ff9057ac971bbf363ef7da5a8245dedb64310fbadbe1d5f36d817bcb1bd22a78f7c7fd2bbe3abd0c707a1b8b792018d60aeb2b4433d30255ee47a05c6db25fbf263d75978daffa57b7b646fc4defedc3b371bec36cfeeff2ca754c4b4fd69e5529cc06a298ab3a9021b0e27d5384ade81bd02ff0744a8c2b0373cf06b5eec2bd5798fa676fbb5c710fbe351cfb435d8a35b5cb039a73af59744c54d098e0dfb4e3c45c4813c27c0c5674ea458a87d578585dcb802f69287f263ef1dd16b64ba4966ff0bb1efb8b8e116d3fc5736d5da9a73e160b01561911b3261c1da7aa6214640f407eb4e1d1570d766acc05cf2d1c1f9b1172d2c199b6e92eb9e40ecd96f1df19cc12e9a55bc3de7e1ebe744a3976a5742ceab25ce4db21da0b1f181c616beeb48ca20d22a0cfbc761f9b147af9e3c31c15ea87fdc0fd88f2ebc4325eda1879fb4a76e957cac69d1b6210d1071cceab89094853e64375a31cb064c0d0970a068819b64c7d307b0491a9e342b5dedb033ae76fb3e3756988ee769278e3fc428ace03df1c4dd896a17844f2838a018a4625e087e3da00a7c8ee76011ab8f8da28561bff76c7eec0fb53337c5beeb52c41e3174f0e306fbf687e61c61b0e3412889c003a114f5c6b0b80f4591510c126fba552050c5d9a660180bc37e7d627eecd66f9df7efd4ddfcb212b19f5df85457833da1cb277f32d8a5287e6bb43464e0331e117c808e35a51c88b77d144d70fc3020903b6851e091dc37353f76bbc577bf9d1ac02f6f426c5131f570837dc1a6b2937e871d600530877044f938f282d8cc92cc7562bd6fa6290f025d6028b5ed85fcd8abcf1af541ba49beba04b1a79f357cb951a7b8981cd12a4799d560eb000ea4ab9545fc30c250cab50205702ec181f0ae1dda61815ef2a597f363cff45ff8385dedc64d10fba1fb663f62b0b7b5ec97088fc503278db00d58664509c7f96b215e144bc09604ec2177a8cd79c01da7400358f25a7eec26f366ac4d93b27f9f85d86b063f7c81c1def5cc113447bbd7601301094ca8a505ab8b02eb8e63491bc240d70337a4202871b92c0cfb83b9f9b1bbb55db839c55eff0c628fbde78b7a067bf615fdcf34d8f1c80e23d7e47b845106f93ac50cc1e37851ec84d4921c323514269385bc94c595410b0f007bd2575b5377f3f64e4c133a0e0cdf32aa3c2f3f7050c71c15ed44cd2bd25271481e89e0f82e1912c8dc550819b1648a3a1c4c4981abbdf1ad03d8db87c85de9de5ef520aef6e965c53719eca10f7fd3d960c7831cb727c346884723d8db0a2213dcdbb62502ccdc3de212cea300f00bc39ebaec00dc4d87d25f52bb3deb3cc4de72e19ad606bbfffc832efd9d461d631ce20e875b8ef4e379d7b19a288eefd3be5424903e2f107be007f9b1276c7de2a007933bc0791b10fbcf8b9a7d63a4c83adc75f3d53952be065b38dad59a626936d80fcff628a491445a2c64dc8f3c9bf2b0c0787bcfcafcd8cbae7caf4182bdb0433962fff5c52f2627d8174f0e0df6122c2331ca8b511428215cdb8a1864089e1d41e0eaabc862e0ecb9c785081d9aa19c68edaafcacfdb7ec6e9cb0d63a3d56c41d7c3a0d0dabee79f40d45552a0a46d952c83024910c2d1e4122e305b1caba1b580113365670d99840fe71d6916b0f20d6dbd5f4b894f5920790f5b42f273535aca79d52d2dbb0c626c328b40a2d2386b380453c9521a42ee48f0c4c1dbe38d93a901422eb3fceba7e437ed6b9179ed334dd03bfde8baccb8afbac33aa90033ef2fbe77813c36af3487a14f62ac74a118f6195a6a72031979a48190481103203ebdc2ff3b33ebfacc75fd2759557ec03d61bc6741a6b58bf99fed10345558a7f46ad974a7c2ad7105850f47c1eeaf6464458cc9784fa017185cc5256f8e50f07c07a774396b016bf700ed6b314fde5f5230deb4d7f5ff99861c502ed6189ea7420a81b38789f1441e04cc08370c63d2b7404134ac29f855e06d6f1bb0ec00e742def909aaffeb17273a977ee7f8c6a6cff8d759e36ac8b5126c8a87a9380c161d7b6852290a8660a3ece76605d432fd4d486e8ce5619585fd89b9fb5f78cdd9dd2fdfaee4dc8baf70875bf61bdf4982051a7c7a4b5f4eb645a99af6c25b4c539b28684e134492c1662e01eb87685af33b0eedb5f9d356d4dccb9ab6bf1cfce29eb296fc70a68f7bcd9ceb03a25746a5155dd8751d2d7a1620adbb728d33abe0e80b8d8f7f16d1c1f875c47787e06d6e74b4b26d5dcfa99e379db2ef967caba750fb2de7462eb5d4609fbd0f3a6bd585475d56fa62b60cb00c5498c8117a1e28b077bc053dcf2255e7df9c02eb2ec810183f2b32e9adaf1ea94b5f77c64bdaef3f272c37a7bb391330d2b36d79e64a65720808d0844e1a86a2d941544b00788885cc7096d48a7b3d8acad43f2b3f63ef8953065ed360c592f5a71704fc3da67e9a4d98615c525fa9be920da6638f42db442cd2134a021783017221a177c4118823be09089fe71d659c3f3b336fff4981b12d692a397600f44a7d1735b18d68b771d3c3f4775de4c8c093df8c60109fbf770caba0b081cc24770af3a742907ef90650fec7c323feb80ee17dc96aeeb796f61954f8383cbbf319308ea1c39e1df45550a1866228fe41183a4d8b304caba78aef42d898d930e9c2c6543de2975163bf0c998fcac1b6bb7bd3b5dd71653700f2c396dd710c3dae1a0c96fe7f802c3ca20ab64b039ad404032eff910da7201a90f8407ae14846a12ba1958cbca0ee06c3d327240c2da745d39b21ef550afbf19d64b2e5af15e51956ae38624df216140c1aabab687d9a58d556ba85be5ca902a1f0e9cca52623e64727ed60bcfadfd48c2da63dd6df1d4e9715b6a1bd6573b3ebd32e74e6d7d32712002174535a494362a1f7a587b14108b41eec3c1f7129f6529dddf38ed00f6c09c6b86a73ef684db91f59d5664be99aad2ae6fe7d545552fc09f2713df21f60b04871401af86b13c437868b31c88609896e02ab2c4842f97e7675d5632f7a9ca78e072642dffe2f37e86b5ecf83b926957282072bc619591d070e4b5a5e3695714d615cc00b308e3c40da2083c6d16d627675567ad211eb8b65159c2bafe6289acdd0fdeed19d61ea34ed89a738963a63d72c7f65cc8bf2cdb71207ef570ba870a22cb954c43fcc5951fb00cacefccae9935b732b1d78eeba7a6eb7a6fcf58d1a9bede6626459d39aef62ec38a69c1becf9249d8ae743844ad14383126c43dc0944535e433811f7a8ad95962ed79d5594dec72546e3cd0adb43cb5596fd6c7f8f5ee6317ce30ac45c567d7fadd8455ec31f323aaac0867a598d701ed7956e4780a8e1bfc8d66b103ab17d5ccda28b72dc63d64766ab306dd897d51a5d78d0e0deb91478d48a60dc6f67575b2ae3ee4dde054238dfdd0908ce37409dfc2aa33ce1823902366609dbeb4e63d7058eef3c5476a5eba078e9f89251574d519c4b05e5abee318c3fa1c26dd9f9ad845722a150ac3bb3a4680bc0072588b042ea59cebc80f9d2cf1c0fbd559e7bd813ff57258cfbdeac345296b9dab36e10bd18b27ef3193fada8dfb39999619db57339ddbf688271d885d5caab1795341fc1a807d958120e0ba7c4578161ffb7c4575d68ef1cfc139ac5b4e98b634ddaf47f5f91058cf5877f37b86b5f34bb24dbd2a654833b19d691ab9b61bd714a2e20a2358f301b10b83680042194d789646d32d3f19d6f72b59cb0edf027f7d7d767a91b1e0a777d245bdb5d7662c06bf6bfe4603fa439bd2530d682c996d4021146084a286141700cab1e48049654172e87941447444b3746defdb5f7d51a73f8f3f87a74d7c13ae6cf2416a59ebdf8b3bb576a77d8dcc4e9df2d2be9373e6bb1a50c15d9fc3d70c9f8f3dc621842e52136211c98427239b85446459d1810f5403357f54d91679fc33b755a4d702bb0fc7cae9a347fdff8506b4e7bd838eae57753564406d1d294db4b29c48e2f1071b1050852584824bee532fe04e06d0ed43f2815e453f4b63d653ff8bbeeaacff5e35c8803e7ef99206063456f14ece135a228ecd901ee6ae52b9a89c087e150c421838a1cf233703e89a27aa835e17dba94ad00bbf98b92935a8d71e125f0c8e1cb1dc801e7a7f9d5f8baafa2c5625a32303091b117bf7d052d9e61d4a5a6ee07928b76447991a4d378ca90edaac39fe54f61837d9f7ca961474e35d7898d6767eecb064be5e8b68a701c55ea72f0ca8f6b51ba2f78fe279be3c6e32e410bc4681722495d2e7597a8ccbcbaa839a82a3caaeedd17d56fe909aa73f6d401735fc13d9de80765db932197a8a55f27f3366df76a22864545a52304c011887af9e07168b04716cceb1de3203e8a4c9d5418d3bad046df7c645bbd2987a730fecda2e9d7ffb4d0674c9a31f6d2eaa527349fc130d85509057d91215683055e504485868fba87aa742ee6500fd6a5a1ed06e3b37ed4ded28fd164197dff67a99011d79f9f2cf0c682cd5be3a19c94a3dae1cf8ae7d945fd344a19c20b31c62c3e9a28a452c4bd7f69cf23ca0736b8fab3530f9ea7f6e8a0dfb1f2dbfa9c280ee3db271454ea66a40e1cce393170a0f617d9ca2cc0a084e80b7a9a021c51e739201f4d799794047175f57948016d7db8f2bda66c6c806269d5a5cd74d52bf58bc734d22d80f5f3c4e4dd4360a3660579b846d6bb90c00224e79a8b39cfa1f67e701edb5a8d56129e81993b0527c7ddfc1671bd0ae4533deca9956634021ad0ba97095853a4ed805e15b70dc6d704f9233e20b15a92c5a0d0317540735bf551da6f73f3832fdeafbd7c6affe8a5bbd870ce8f45e5fbf6140d1de1f6b8268db27bea460ebe1dc08bcb056962470b6b4475d5b3b014369d13f0efad9a23ca0abdb3e765c025aab4d3d04eddbe8ba370ce8490b7e7925e796ca80524f10d449469d9e10752e89d1c1087ce9dbbe40e59b2ca212af2cadd98556ca748cfea9ebc90968d9ec9608ba71e4f41f0d68ffa7fe5c6e40e37f3b494bc0e0732d18ce4187cf6790f30538bf4f11e90601962d4559f6e86bcbf3ecd101a79c704abaa23b37e0619ad8b551ab64b2e09677a71850ac097b21f9ea45108560ec2dd891183bdb103d859ac6b30e48e0098f902c7674e48a3c2b3a60c2cad6e961aa3f1341dbb75a73a5016df9dab071390f4026815652a1628cb0223f4e4814ca66078ee52a11e8d076422db20425ef55e401fdb065899d80f6585c1fbffa21ff39679801ad7576c95306142f25ce30a08180781e3e05e54ee0fbc7c9a942a37017158e92215711cd729886aece03ba65e4b92c015d3f24d6651ab868cc62033aafec83e10614315bae336fef81102cc2542488af7a6cf04cae0a6081bdc8519108029e658f6e5a9707b4f99e9fdb27a04dbf5a87a0f79e34728f01d53dea0c2eaa6a144a407dfc926d1cbd8eb5c40c27b1a3b8becd1ce27914e70566094af67c9d6f4567ce3a27015d38f43b541078617ee9e9e621a55dfb4e0fe68c513617525c4411e760941804276047c17b06811d5982722f52916383adca6247bfcb03baecaed65d5283ffd837f18ab66930c1805e3ea0ce9d0614a5c31aad4f5ea798268c7aa8df17fb7a8c9e229412c34acb8833d8a51940976dcfb7a26b375f92dad1db7f44d077e7b7f8c480366e78f72d3903930da81d785cc8c0b7a230be8af2c050a1e64d2021c2934180914906d0593fe53bf57bcbae48419fa940d066e32f3accbca39e77cbb7d7ffee8e173ec77621d6b368808ab5210aece230055bfbc2f56ce2d0204b84ffd9cf7940dbc9cbae4d415f3c16cd53d7e276e718d03647f79106f407ec4c3217e701633eb75dd894f82a812342516e12b86181452c52ea66015d5832a01aa8f7db5464c2d013556a9eda6ec315fdfeca25771ad056deb664e66ddcf86040056c46477317cbaa01d471f0d6dc86a494298768476b5b65099c870fac0e6a7e6b5c1994ac5ad52b35f84faec29ca9e1cfbba71bd05bf8fd4931505ce9bb31798e922c90916d4510ec012841a154ec0ff47d4209715c21b3dc947cfe70cda095e972effd5d6e4d57744d6bcc42dfdb5491d4500c9ed3e81f067445f3357beedb98d450f8918d558faea3e2c9c760f06dd4dd200e8fb8ab199cfe0ca0ef3c9a07b4d7ab57f449f7e88253b15567fdce8f1b9ac29495cdcebce8770f51118dc0b6c347fb513c565a63c10f4e8e722136f15c9c3f9805f4fb27f28036f962d3dd69f474cd18bc797ce4d3432e32a0655f6eee6440630df38dc91c2e227016a245e3d961a874277c8525f5b09c2808ad33e9db6d7bba3aa8feed4d49b779cb4a52cf74e83c04f5facfe9674057b76a738e019d326671d31906145c79e8a900b250bc7536955ff8da4b71a6ad13050a1bfbfe3868d9b3d541cd1f55829efbe69c8129e83d372368d1b513a718d0fb6e6f79664e72b72999361f84ca097d4b0961e3c4008eb3e488a51dc99d20d0b6adb2444fd326d6fcd5575e3bf6ee3ef291f4d47f3719f7e8da2eab571ad01def313f675cbb59518f32c8962149d6a8241ba7228186dd4a1c9fa24475c8339dfaddd36a5ed1c32a7dfda71d86a72b3aa5f94600ad7368ddc6a6567149c5b6a47c389e6760561465cd7c70f69608113450be25508c4491906b15c0aa66b2a34f4f7d2a06bdac12f4fd1923eeb88cf7aabc712e5d3a320df31efe6e0d8086fbaf6f6f40dbbd7d4c6b038a951d0bccfd6824ecc0411d0f88953c147dc74e37f87c1a5038462a64827a0dc6fe61d0c75f7dea372b9aca987a9d9e4e63a6c36722de0e6f54b76426ea8d779c5054d5ad69aa391ca1219ff785e570acec73f14d5f3828a6cf225b7088997c9a016fdcbc1af16ebef38db1e9ea7df4e4a7280270d0fc330dded5dd27b6ced98fa6515ab85284364e52c0c61ec0c3e2288e9d6b7614b9bec20eef0c78afbf5f23def67f7c3f2edd85cde6e1bb47ad9e1d7c83f76a17eb2c839733fd8f437024948343c7f0ca3bc4d09845dc6260413d465ddfb59d0c78fb778f8df136ff16af7545a7096976e93cb514f03eedf3750b83d7b05b5f5654a504b8cc5c2c848a796ea02d3bc4961de6c5051b8165c3d6732058767d1e3518f487f1be5e5b1ee3ddf05bbc0eff7a73e2c06230da3d8eb20cd483e77f7b0642c55dc1547a285f4e3404e81ec3b9180e3ec8879a78b06690ac91ff0100 diff --git a/okhttp/src/test/resources/okhttp3/internal/ws/inflater_working.txt b/okhttp/src/test/resources/okhttp3/internal/ws/inflater_working.txt new file mode 100644 index 000000000000..181e2a3ebc34 --- /dev/null +++ b/okhttp/src/test/resources/okhttp3/internal/ws/inflater_working.txt @@ -0,0 +1 @@ +000740f8bfc41a6c3d2bdb78f65a4622a9459b07c60199d08500153e5c06a0f8243ea2555348e3199b22f7d2937a0decb2db0c8523c9cc6268c2e572732e8d647f4c10a247e698d3a9a0bf8ec79bb9c1a357adacf6f4a7249a37fae12c23043bf0e2d8cc65b679751bae0028a1130009bd68e6e339c2e2c0ab91cd4c3e4cf60803a5519daeb2009bb66f142fed0013858479722c8f898cc48eeb45a9a1953f64e05ff1da37e0e3c534d626965ca2f450f8ac28d26247290f65250e37e6e8fde0dce36425a69a5c2bddd5f859c4cdf1a62cbe130193136809796200e7729fae8991cd145371cd013c606957201c3287343d4d024ad6b9486a7228b1c2f063bc6a34f3f1d34f53cf9edfa62c2d41ef6796c6c87adde83e3d699668845634de6c16d0ed4ebd6bc76f7d807998dfbd5102fc36be086048aedd54386077170c3fdd30435d7806d3ca8d9dbbc0d13957374ae1d7b336faae8b81de907a798e73ce97d432e4a5873131b23e8c750aba67a0838ad78d4bce4e6d1013218718a3219e7ae0bedfadb5e2ac04f979b4a86ccb42b5e844e564373073a9b49c02171f4323f49ec0d1c1f6caf150cab86cfb88a97dc96c4e5622d730000f67b4cb45ae9df671b4f135e68e6f89db306e5c082373968be79b668d831fd8c9ffdfbbc9e6e8fb45ec4bf8cae92722eefc10eddb35281e231b8311c5b1d401b4fe40c79439bf3bcf566733d5adef19d2a3ff8291045a05aeb00e0da98f65319ada9d96c7ea31169a608f30ab2c5cb7df3d04b4d8bb92807b5680cf680e0b6009db254fe1e73bd0a60c826c60099accbb02b5dc57f6ba3475fa617577c33eb6e95d525d52ed583779bb02c072bead6f6b442f04169953e815c30841fc2e32839c4bc9dbf548782ead3c6fd82cd29668f91adf1bfff3da5f73a5594a093a24ca784af70fded7dcff282abaacd1aea36b5ea7416afcd077873ce540c6690084995114ad445392bb4ebee0ab13a1053e53c331355b6ea73b3f9a365a2b73a6ffe8d978ba166e17cfee7e5a1794bddfae5f0fb002a8a39c006e06777b67c12f3fdc772331babf64baa9667514fd02899fba73471a7e4488644654e828f83c572c4e082897692adbc589bd3e8c80265544669eb21b4b353195ee795bb268283a465b001d003a8d7e05140c76dba9a07f44eaa5e956ad5b99ef2d562b24fde997742e3104b2554d23a0a8c2540e05f94a999fa468b2e5678b526bb3b667935947791efb3091552f45ae74ce6fcc515ea5b2c4234a96204a8c732256d63d1db2669b5179083974ffbfa863482c6102c63b08d4536445fd4ea79aa8722d201e3bbd466008119db3f37d209685626b34abdca93e1689bbbaa5cb681388926a99f77355e399092d39131aa739d015cc753b5570237b20ebbe1a7a98ffa3abe2771151b75095615d3d65a941347e62ac516aaefa99168e92060d56403d22f489b64b1c67fcd2b7894ba2e696c6d702af99d7fdd406d2da9094bb8c94fa1626cda44e9649dff19186a0c8edc1ee8f40feb47b40c12bfb21f939a35c6aa07003da1a9bc3be435435361d8ef40d0f78596f8b555ef2630acf2882408d0514636508083f952edcde712c9abeb94c68cefb616e31916ed2643013cfdff7af565f370935b951ecc3625879f0019747bf129827106e9eaf15e1c8678fd6acbb0ba3f9d4afa0d878f5d21174527f5ca19bfdb8ec6805d859edc09520093ab7f7135532693b0c6f12196a2f66fd2ccfb782e7871327792f19c788b063733079dd89bb395854dc56de2c534fc794e7393549457126638bf27c32c90e24f7d13c210aa41ab0e0ba9f2ece256faf5e206839390b95ff0f2bf9b865b5c06f92af2a6a5111de9ccd1b44331bbd08b3d51efda0fd2fbca10f1be62a69afbbe67cd4406e3ac3978c764a6cdb5c7ca89859cfa1dd087d6fd77e48ca29b3c716486b891c00ded6f8477b3b644dbf77b8371270a213a136c3fcabb8e5ce8bf63d0c09832d7f9dab326e40f8109b6573721f6e9ff69a9c5c6901e7f8a31be97d08f3eab3a725b7718ff0a2b6b20fac5c8794735e93bee056c47c4bde8459fa04bfdd82cb6ea76f863fc9958f82631a869bd5f358232bebea2e7e64e765a646f4d5267a577cbb401baed6752cf52764e3436a3814c6d59f6632c51620490d61a0db85aa5c4253a6421d4c44d3bb7530f8fd40c620e86e99bae1155bf7d144d59d13737585ef91a2ef1055539cdc57aa14628451840a2969d8f4a0f2ddf2e70cf5cb2e71118ef50d89491fa5c6e9cdf7481998bfbfcffc77b0434ef2b4085afed2d54446496a8eb1246634a952496ec3e7f3124b884af253f81e15e1b3a58204e6dfa213377c4e578166221f755e18601eb959f12070ac4c147735de36db2dc3344b1468ce6852d5489c9a096718fb5446d41cca90029c8c7ca5f55ee8a185c3d11500614c8c27e80d818e477a786d1bcc797ff7c1a0b11c202322cf38771b22a17c41dae4e0162eba888dc65ce1d0073453fc05df5cc2b8a4f40dddadddab28a9a538c1aa9d54d2984de4edb7fc7f1d1bf78d9937a9a135db2c722ad770b2e88f09f237b7c5f91dcb6e625ff93d432535e78ec5f00e3491fbef69a1bf60ae0b7e13cf88f56c595e6a47e4a8e5d48560c8ef95d68ebe3f734fa6fe139c538e61e358ca367735142dd1bba36914484e3d582d5f651883138cb6fcff94e9f63d0d514a46d2526873a66159c2782bb84e96395b1804a59878956c5b7cbc633db754206491ff656927ee2e7e1ec75043f722893d1c2dd7e7ce19aa84fb7482a43605c0a1f25598767d028b85a2843829237b1a44695e229ce3631258b911998c1bf566ccf30955aa1cffc7492b061df2d91fa53184b32134ed8ee3d39f0231574a0733cb04bf9a528d6d51fea0f203b7b566434ec3694de7a0a8044770171009c58845d7a8b3dee2303310f3a7197687367da5d22449daafacd955ad0d2f3175df0d3a3f128b8729c7025065e3e32565f82859212843a4376cb6ef3c331137da2001b49a72025cf3a9781671a954c898b54500890244feb7f8084311a9e0cf538c7db1889b963f29e182c2e167c0f64926faf1bbe44ac297e0c80c4db9eeb30f69cf605aa89f577bc90bf8f68e44803a4cb0fa6a91eb4fe30bf2d4e5012d84e0ebafb77fe19a47d1de57ef3d3f3df6a7a54ec46a39e88c7ff524c8ca876a5b4ca4562552d4ca88aa9909b677d82644ba418bc249f7cde637c91757d266103a3bac9077f56c6108e18956066e09671bc0b3e0e7fc18413cae41711fb870982fe926e11487f4ff6a5fe23b508cae04604d460f3f4ad742911123a5485fc51c1854ba4b6aba9e1e0307648600f5cb218d01dce7ccdf61b7c7c7b5b8b75a7202b3af865527fdbbece51895ffa01bbd0a0af93c240c76b49a5f79c21e58ddc242bc8e080bff3c6f6502d3ba3256f346227e6f83f3f9e2613c575701b4ab91186101df30f89b6341031b939d3b1e4d6ca1ff1be169d380eb434823b0f0aea7c3ab1a6bd6795a7139e63f44fe01a333c680e61d1fdb93120a31f5c1c90f15a8023a9f4b9be51ac9435c207c6c3db742fb4f9afd292d76c6eef4258b7e257850cbbfc67a54d53ee48d7768d019c53a1ce70a6142fec326e34c517130a796bbdc2e54790ede2f909654fc9c9e180c169547dc76f188e31067f8e7d54565a7f51a20fa46dea0789aa740267f3bc9fa26c675725d9191eb22b7ce2678542a75e03f384c65ecbc1d65272a69406196106985a918bbda9b2e0b25fe9601b860f28e9e0d0ac7ffbb90ab5a96c93ff6b79816c967749a8688503c3212b1fef65cf03cdb00e8ab88d260801f6f3e60138195adaf9c9e775f2f408c4f736df5c95cd13940f0e8f81aa10366a7f7e441dba2d0871e3883538783c4f8d05e38a0ba291f9a3fbc191225cc3b7180a1b151b42779f4dfecf94525b87d99a33b2f4da289f3e29998315b576b56c7606086e863a16be2603665b05292b375fcc940482cb1c44a7b7b8de70b4494dc91ec37428829e8507995da63df89942859d73ae531e8f8b3f3cd62df6b48ad429b0c160e545590a0c792f000f26e257cfd592e40aa9fc9b917752ccdfb3e25956a7999a3ce89495f065bf305761409edacc576a65479a627d988ba7a408193e56ddcaf54fd1386a5f6aeb39b0e231be5c72228008617af8b2c6185879bad8d88c82457e25dad15293ba6c7ca890d9c324620761d51c17906f88de0259067de56071c26c83f5f6420a3fe1ddc3348e72f2dd0be45f3dc1b5ae0ff8046e385bf4b5a8bd074e655ffa5fe513bb1d40fb7fd56837c84a8951516142b75d49139deee821f369c07a2166f10c32f1214a34aa26a6317bdd5efcb7927ec5f6061e47ad3680a7656eac639e1a5323dc4fed42a65bc803881353eb6ef3d5d0c370a412cbe8002479f4833bd9c77e2fa1a82105d2b5129c0c29883466629954498f42b3cef869cb21b530ef8f17947c9210c332b7b5bdda2e5e6f5c7270a59530467eb1f79094555f34c50025d8da678e90b9fa2ca711a83ec4fc814418a3e49719ab121137f4de10653159a228b4e0c596dbc8b8bb131926a0fe17273f1755b6049eef90724d6624d99ab1943b6f71e4b8b20edd65838856d8ba495108b9505a2eee9813349f4c149af15c43bd99ce8434d49e171ad16b57d89cef885b3664341386e7e704739e348d9c21a2cd37eea32d4934c267c39a727357f8553cd67d5888c4b08b5a4a2b4fb206c1b05283c4ebbdc9d8f8a7f64b455ebf575f2130604ea59143f97b42116855a919b70baee2922c30c4a784f3d13fbb3fb27aec60606b3f30a0a69297ad09820c9501010613ccea4634c460b7d4401952094d35a23c66312eecb4e81f0c02f513ce9b2d8e0d68ef419b4102b46cd500cc32ed46827711676a8bfa691b024e141ea728a67f54dfe7dbaf9b39dcfacd53af7f58431896ffe52ba8e737386c564aa58e42914756a03655a9329f7d004d5c60ea22fe4d12a333dd08c59a773b1561026e9ba8308a078a06792e5f4b90f90aa8207eb20146eca17183d91d65fe1fb42edad1c1b96784cdd103c70d1ae89b3e698c4b353773871da8b65722c214796e49cdc52aef5360099a4ad0ef0e6ff2c21b793ceb057ffe9343a67d9e10acf7414e0e6cc74a389c34f2515c9b761252ab44c55ba0db2ba1cc455e3d60ddfe630b936f705a410544860c9709b64c8dacbe4c83e5774c965cbe61b54cd84c57bd49ac9b5aba1111502c9ef9f85259540450546543872f36675eaa1255e226425df776f1781d36a181aa15f3fb38a0ff4101dc1fbe84293c6cbe28046f1f30d1d3e204c59284aad4690543790f5723c6d274d36b5b2c1af3ac7550c2f7cd6ab7fbc60ac762a819f09211773f2276bc354c4c9f841477d6c8f61fac4c6c1c10837b78b9f5644c1e135aeacd9e651699086ea36281fc02292574fe6c46a38eb36ce1f6fdc9697393a8a11c30a25ed23d9bae0557d7d557015b9ccc3d3616d20616bcd715a9d6eb77df0506c2a0eb6c45d16cacc9711758a12e5edc4efe5bd0d833a1d7ecbb79df0a84271688bd2f73197873b85ba7e6c6f58c6b8cda538b8bf8a2e441abbf57d543abc03772e024e5044ae078cb880972c2dc81ec98ce6b0f1eab2f32943cf635bc4a0d4089efd965b97be6122fff5d4547388934dde70c717dd5608eaf5d4d8d4c9328e4eb052b60498d1c04746ec46d1c2ac49b0e67b80243fcd76b9271d6a9f45050894bceecdde814f3daba31dc334c4bf5d5ac6bfbac9e5f71a93fd874ea2f8b77b7d638a843822a46493adf6cd77673bc704c11dbde24a4c26d664f9a5e0cf58873012ff2f5acfc9a5323f40c05e39a1bcdbedb4802969cb0367337b15d4d80cc7d654cf6271d9836b1ded63f36e7c45dfca184f6b5ca5260562aa05a5630152bf66cadb957240a56d1ac9a01f57b885cf4bde779bb7ea296d519735dc59a365bb00b83ede6d78a84e25275947cffa7ffe83d77418ce268c6204c6df181c1ee638ebd8417349f5cdcd6982b3a1b1336e36ae42ee7252fd0a38f8bbce6354f000fe71fb9adb5e75db7297b50a92dd2a39c33bce9bcea7ee2834d3bcccfc4c6f3081562072affbc29cd5bf0db7e39eccc1316164671485648cc047c8cb5eb9fead91ebd60e3e0eec36e12137a59588d40be7991911db0ba06197cd0db0255d7bfd6865267a6648d246ff3dea2ea4ca072cc3d538cb58d4f20b86dc77aa98ca30964a15ad2a97bf98bc180b0c56b8a6319c5e84f5939193b533d5246e0f1b120fe650f24428cf83cff533949700ebad57fe97fa14b0277c5a6526c942cda1b1e8995104fcdbb99a0658d6de10aef48f4291c5e5844c7f30f62db060d93384d744c1fc5e13f99446b6e66cb0dec4c97dc00e239d3c251cdb9259370e4e09872767dacb81044ce7fb2139bd819c8ca5fa22745dd785daa87df680ddce87cc7ce4c2728e7fa6454226f761c7f87c91ed9046f291bd753b662d582922d4f375d8ff79eb0d6e955ff7c06f179b57bd50c5730cbc991aeaa4628e40e793f6c9c5645cf9164efe6ac04d54cad5b74cdb17bf9057c2954fb3da9057f2b85153144de1b3ae65a1ac0182bad0a4621cc054670f3a653ff1484a5337ffb405593b2a163b5a9d77e7d79d33d0fbb8e5157912a06ed8d623c7005fc888e9ce7efdadaf6ce5b1c2e85446a1224e5c2f2eddca32a59c2c5232fdaf95f57160c22733e08245ae34c10fa2b8805018ecfc090081558266641b537b8986fe38e5a72cffaa383c0e37629b1453605cff09481a4c601a94745c151f0e1ab02974d7937ac93d9a9a7522647dc03899c313067f95205130257180591c375dc95c656d8a5b05fc5172aa160e6d487974005df831c4a10f87b38715830604cc42b8cc7ce49cd1f3431f234fe57d4f74903b6ffb94719872dfd9cdf205acbd29074450504199a939255626b11c41300913665aef7a5af98d6cc821f1dbb0d54fa05b3d9921229deea03caccc97ce1850408ac565b555b99ed035ae880235f59cf436e0a373391437ab57391d22fcf32cf14b53c56e8dc70596bdd4712e43c5986123509ba9858e2784f500e9aa79dc284b9bb233856dcbe04928555a5de426b0748e25a6a92142c99c7c0ec8204ebcdf5f034099f083d891538436cd13c71782b0a44e27390d03b0008b29bbe1b4f74280d4171d40f0b3ccebe33fc24e092f0187235baef0933f4c92dcec818af2f1eb477e96f4bb08f5b83bd6ed49926ccd383d9c8c07cbf2cef5ff903e08b82d64847e3aa453d0ede8a824582a8964f3794548c258515aea8a2cbf5354d3400e73ac71b0a6006678d40140aec4da61d843473c284bcbbeb0285eb3b1964fec9b2ca3c6addf41cff430f1c7ec30cc6ccde1e54d947a1b362051685a70aecb816e073ad659f2cdbab4ad7fa6c8b092aefbcab212f9627ce5c908588fcd7bf52258c9b5fff1271962d8158a088bc6731edd7e317388951f586d9042af326802d15100d873e7c4fb862b72da2693d4c1e864dc899e5f3881755362643f1435a880642c663297d0d3a2c39579d40024ed08c9c57136277751e7e8ca0e5edd1320529869afa328f4ac6e80cb9375b5fa3fffcaef805ec7b68e16e08353bc112bd990da897f4119bda5895e839131f8706cacdc009cbe4a31b04a0e71aea693dcf9842d78a1564dd0e667b8a013bce54b43ae6427f34c130449c8a29da5d13074fb34a4b8b2622018874bb6bf2ad93372d6e9c1d28ebc6e6254ba285c343360fc7a39a85eac273c124efe40ca82ab41b71b45e5f877af838930d22a225cdafb7039f45dd4dbaa4befc4357b37a5575afff8b02dd59af518551e137522f2e4943b5ae99db9369c1115031ac4121ccf5e3bc27bd110f952f7cbe27d8920915125fdc45921801e15d6d98bbec7ef985e88bb660039f3f9c02c04c28b27a56b2d4916d863348a51cb047eb1123aa17420023b8ffc11022cec159c05a6023a25ab5451dca8b42ccaf413c4a687ec0b39724e9ef92add91da28fd76fe249ffe5e4517f1608dc3b83e173cef269c1515b3f19928adb71bf5f519260bc70e440822b137e8ac32cd0ddc623f10ec09c8ae467ffeb89ef915083e1a9b1f2a55dd7324097eec591f3292666a23f82ce06a2f1f29622d466038df16126093aba7dad72d81bd460e6e48a5fd432cfb09fdc2661b8229692fe6e70f08c6d8c92852c7ca35858992c0e5ce8887e30a58fbe3980f3dcb03bc983ff2eddde985f70b12911a93ab7755a1d199f53c62dae35978dee8895f263eda37c97be5a38f75edb93dd752b238d6ff1563db4be7bd27921f94d71ff3f2564e496f4b23ede15259451541f771ba975db3b8f5c4310e7d0566691f58659db7881c5232236a2d32264ca2d4c1c0c9c0a61e3e543f4f77b5ce8a16b023b6bb4b06d104c82b129fe6add57693193bfb070b4b5205282840c591afba88248eae5ad89b13a7a7ab263f8f676500f915de12e0c4ad408ed6a357482ab3ea7456405e7a5f144e0c12ff71fd93c114f10094da0e6a2f8cc8d4945f4dca3e40858d40d3c01b6a0fd93510b32453d0f0a9f6fc491cceb13e2944b2864c8f5a41d5b53bfeb74afba81be3ed871365698a24585a600b93e46caa1079f6524ea380c88d36694645c8a8baf5eb50442fde13f7c9158357c56a8cdfa67d799cf6a8c80f410aae6441795b76bd99f39451d2a9e1269a056cc233a383ed6db861f97d25eb2f6700869971eba6143bb02383be56054f5199f5718a27b80d5ab53dd6f4ba6c1ccbafefb0a50ad168831f6770b4cca4c3b1b4dcf920c288d9738321e641801e38ca3b2c96ce8ac2ed79acadacbe98c32657109154cdaf572dc4354421bfbaf406d18a2bef1cf31e569cda5a1e253eea501bc90976f76b884f5668f1616c31d8496b5b732ce239b285d466bee1a6ee2b81d01c02bf55f46883503eedbb20dc3db4a154d13b89a17026f06d0da4f1c5de5ef20541bac4a9b6bbccabf607424b0e7b1cdebc77cee30f3e7f685cb1a0e724dee362c97d70f0519e9d442c869ee2db0e44265fa88b98e0c42cca993dc9f6ff3072cca524e5dafcde407a41ae861a476a6ef5271a9442aea378ece50cfc9432eaf6ec1323940e549baa7abab9423cba313032ab36d9e75a1de1c1d543f4ff97cd0252ff018b3806120116a6cc23d33cf73bcb00f60c38055ddb0dadbe2f4435b42cfa865718137e4524b9ac8f4fd61cf4e9cbb4fc4b8fe7997eb060ca1d84b7f24acb5d5684ac4b42c207d77bcc2df053818da867f26e38dd0b90f6490f735145aebcf51d3fb69498e9c49d768ff103395497a9e09b5bf5f6a49f4eed052fc9ba8405705de39b73814422b08cc31d8d580c8d26a5665036ccc9682439df91cf86a53e82a134bcecade4a03fbba868a7c6ffdd85767d96ae1158678091883897b7f13b70ed0b7706ecf08d89960158492f7e6bdbaddd0e063ac1b698e6df6c2da817006336f0a3eef28efb2cf813fbbdc7a73fe7b14e84d780eb4c3773ac33c30fd92dce9ac5afa132decad12a1f6b9c459e864d8cce4ea103897d3abf74bbaf9a9e19c4d325e43d3f3ad222ebe2b0fea665f14dfa7b9009a2bb4d28cf09174d45f21664abc611e04bb8d96b9b8433d688242f0afe0fd7ac6e378c3024d1dfa55ccfe70453c9fb823c6647a5ed917faf8f485345cf707740266038155f32e119ed29b629f1e1f8858c74082accbe6efc9a2e01c122801b4b8b4a8428617d403b56f0e30ecd3db3a7f1f069e705b9313dfbb568e12b17097aed8ba7eec04b53526363857ebb802e8b8e3dbdeae2b996477d59b022ab080658945216a6c9afdbca6dae9ed935e025a369b499c904cac96b4a0704ed6b9daf470cc11c0e93ccfc713cae79ed41def43d26f2a110174b30a95f1cd3aaf69408e1ba67b62b86be2df8f1394d6cb82bb5f146e0c30ff6a6e272b8e31935025eb1ccd239ebef243153f5a2f80191cd20067d9cf98751c4a7a06e361462902c3ca99b19ed6ccfa8034c15b377296c48844213934d2e67f2af5bf1e06ee8ec9a2c32d4d4d6bd05e66c11f6e4a8af18402a84862ff23e67298a434e1e24b9e14a8fe7574845b3bc807ff376892df0a4e1353655f582083b49eec5d005a3b4bcb1791cbcf76f6cb0622c31cd3f3df95d96692cd36ee81d7a5bad7f106a914c572c65354d89d4072038113aa76ca7154be02a2a9a442997f4970ba6bbccd339386b1265570208efc847991fda12a9226d83c531eb81e8421e7d07de8ec62f54815c4f11a2891d8fcad29454de13525cd3f30714cb21e6f3f9e9e0991ec2774358cd40ab827b0230be6af60010289be701a6fc1f017b2dee51a0917a7302870ab2d3bb0f37861a0092c45366f26db989141fd047bde8d6155de78030689d6e1ed70dc096ce772d6578ec079b4b67482ee468ec4c6812d3562c0b99167cf1fd69fd07877b04b5952ed98a0dacd8b0cc1f8b8a087165a7797193fa30f6afc1aab7beb256deaebdf121afc0fd9ed48664cef0e9bb53dfb10749095a2d39df2004293efc2e727f603591f9184a03fa9bd761205b8cc18ba6a9a8836f6ccd637ee22dc7377fd5713270cbc736b93660af3048e10e080307493247f1b6c42fb2958c947136df96ebe6f993976b2673215edf50d47e921c81deffd8a4b88c1b31e1419d1fb0ac9b517499968266cf5242809b5e4c6eb3f4fec387256ccb7ab07491190fe31c79a637e0d49dbab6c902cb43b0665c569f2663a25aaece0650050c9562ce8b0b7766e87e3995cbe2592779d207e6297409d9391ec4356a02dfd56c6dda19e0733d0367753cbd122384255bce80b006ca6d5b6e21d8d7903eb28ed6bdba1917263aa5622cab62c699748b69dcb9bbc75b9a393b757c08f558ec2273fcc58c3ee76617353d5c1cd350a4e062d4024b9cc764fd15e10fd1105a091f9056e18200e48e1861c44c3904eae36a9eda0229e7a166359d631716be3cbdc4b0a266f804b11aae67f868cf4921e1a138bdf1d33389c11161cb955593bd250d8239a3d02330d35c2abaef9e83ab31de257354494e02a504b2ec30d0485bbf00d8a94336791cbcce9428c20a0fc27b7b1428865d14d811bead12093c72c1f89344782a593e21b35161ad17129f965ae625afeb70e4469cce6a2e2d2b4967899eb015cb14ed10b7fca14ed40e13c0950c2d847861b3cf827f074b5d5fc241baf5f43226cf85865754ea16202c58650fca7e32dc5c9f4b73e45d4e51b0ba8c9aa8e68fd8544181346cbba2854079234667be08e8757b310f26d55d1f3aa5a1ac76da6c62e31c7120ef023f6f8666ef165a022d09c488101962edf9bd49799d9da0755e397720059776b30a0ddb61352b22b1557577cd0ccd3c2b5519f6f9addaa0ad64fe73e6624ec15f844c5f8000dd16585bbeb0559ae8996747efdbacafd66f8721f0d3913bc6cf857e8c7df171c40e784d65de9551f2d4aa13274b6ec979358076b0f499fb8b23a5d9a009c1b5ab78665c0ac5050226c59cb698984b2995f9530e4d438e25c1e243fd98f5ba4f421d873da61c938f5e3016eda896b62c722c381b8a12daf99d71c71bb3376a639cd4146a857b5f99d1bbb00ec624d06c96ed27f88e830e64776290bdc038a6d89f131a8482a10f0bd36ab679b5e66cd3b80e2cfbad2870ad06b522b4815f36fbffb36d1a002758d7c6459cff1156567f4522933c6ea7fa0d084c5eaf84933d1d227c27d1fe2bea00ae04933dafe3839b7c06e09255b269792bdb0867f31ce7a282852211a1f6291dbd77dddde50016c9e716e7722f9065d57f04b06797496cb26a0d9ea344fd08c3da90335b0bcc1b7c8ac1634ad2c09c5df504b40999b63b54e853d270106701f4882f8a71717d46132eb48dcc2a32f1c4cceff4834961079340b3090fbab2fc7221b8eae222530fd7aed14623c7c152bd9f11032196e159e8933ad01f5be403b876142b6f9972e77d2be0477b644a28529fa2bbf8f63e6708910875520211188ad0495fb273da456a8ce7b6fc1a0dbd84948813db82ba0bdbeca21b76f7cb6ec47d6fe83459a3149fa8d74ae59bfe5a35329e41f3eacb0946b4a609d1638b15421f79ce913dc59b4cc5647d8cd576c49551cbaa8db7bbeb8722ceb542cf7612937497b56f0ecd886c0fa6c6cb842dd36cf4e7e559bd5909e8baf6e8a04fd2f116f5da593c380b1652626070b966f1f1d7cd20ce6b8544eb6ca7a0e5091fa4f7a189aba1c371b90fbc432df509977fce0f9ab52250437f49e5c51dd72d5740ad5481f1ed9188737174ca01eb1c3e4b3f4ac79caeeb9a229cda9eebdcfe178286f4e59853e7a50cb36209e5a8d237be321ff5e4be781a4108d57439c78324da80b7248fc503f0dc8f69e2b0bd224c5691682cf748688e4d39ce76ff1267d468cd1e005317063cbace502b7326d450721a48744844501c36e54ad0549718182d43568474a1e36aa85a3d0e058c23167555281f4ed5cb7e8efa52d71cccee1c448589b4ca6b230bd5837b2df37a6a523a8dc560608e28fab2aa5c4643f9fac3dad598512bfaadba3169f68d4fa71da36cf8ae299292768719270c4fbb01a13b767af2108ec96c5bbb6222b29ddb1db6d16c9ba0888a8a8f43784a7226e432f49f519420b8179b3395045f7628c14b9784987a6fd71ead67ea72f0c36be4f7e08bd25a202e565403a19b38c595c690aa27397d5433a0367ae6bffa09662f9d336858de8736830ce32dcb3a9a738a9afbb8c3fafa3fcedc5b298a2803bc7c3db5c0421deb428513823e5dc3211b416fbd68548bdd2e2c100a9d31e1c01727f377da1f6da165582639984045666ae0af1edef7ac4d1e1a0c1e9c56ef29afa548fdaa5b51751e247a6d91a56af43190d151655088ed3bf6674eddb989cae6e67463f6e8a910d0e4610fb89463f8713001f63a02b047dcdb2c47d96cc09f21d28308fa6e619a265894a5dd84b2b0b8ac12725d903b33847f84e3dae4e87a876760aeb50d3c99ed7350d8a690d4f6866874a2450d482b690cf7822afe8089a6a4adf0152a87a7bff53de64c97a274bf57140baffcd59495ffb60eb596499021ce848c89fe0ea2753d67ead250554b95ff112c319420833910a955efd6fb3f0427687ffa1a93622d4b2cf6298642c0b0c042287865244be67446b168695f8fbdf6e7a257f441d78f4620c61891161bc1966ce08d595cd230765aef442f5ebbe5005f5fc50223bf6f81f6a53349c1d4e59ad16e5eae026bbd6bda1b9889c81f15b9a10fb38551f5c131831ef3b342e171b394e761c9d1c65c548fddb3f112242dc22940af4d21fb84fbfbed470c25db710763dba88b3b825d157f4c7133593863ecc9c4435780546973c4b4daa84f8b06484d20cbd2d6793732379cfcc2898c6c717f6ebbd2de5ea7fc0cbcc7bfcdeb79edc93c0ecbc1c5b0af8a0b64412338e68239b5d2d62bb6e7dca53a385b8fffba5df08569389f6fcbc9fa407e50dcdb6d9a638ecf58fe7f23f01f65dc3bb84b1a7399b7b1f2cf16882be3c7ed7ac2d6ff3e48c7cb8e92ea43f1ac25002a7626590a448f6af365bd65cd2c299a1428f8702a614e3471634e5668a51f7853e20a9e68e815fe2d14a9abd2dc624358c2e5dd887ebb9e19b53aa03293ccdd42ea22298e657bcd0e344942fbafed4017c7a6d11e155f89766c8bbd5ae22f5b672d76dfaa38c44ef0f1041f6b184205c1b5ed16ea35b25971ff01dd91320f76f2ab9fb0dbd5bc56f4c81ee0b5ff4e8f623c0cc709e39e7fe0823d914d1c674a2a8caa586e36047c81e60d7564ccf7c9d864b768d35bd1446d761cf315ec20fad08264b1644809f0f820e634be5c65838c9afb9f7075d3c700f980bb88aaf3a5653b855fe577f2ad1baf035d03fc683a669367d16ff51599471ea726d0b0106303da55e81a19d874284e23c451be5d14cbb58bc418b9642d656a0b8cb844f1ab83af854b92f6faa60c836d75b0d42d98032f9043509ba4ef032fc9396fa415595c6aae3e5396ececb86214d9a70cbf94ca3390320ddcfb849624cd0740ccb44a8b0e5a897a3db9bc77b1a6712928860c9634399f1e17bc56011981b511771483cd14b6fc2100ffda9f37456874b2d1ff2decfb17c51ebb9edb1f621c12229a313a7bd3ada61ddb7aa9dea7497b4fa0760be1617a001ee5368d0bb4ad8266a2656c7848f677400534ab604dcce7808c9fb0ffae4eca2e9b35736b68af00e723bc2d0ebded27fbed17ac15a06ab515c3ae16615775359a3112c0f0b1644890db1dceeab68571ea3346f738150e17310c0a2af1f4ca7f3c6375cd4594aab01b995e956142598a2e6bb53a1577262c58e5dfa15ccb34fd2f7ba92d29fd501c7de646804f83fb5df432042280a0a5dc8c8aa53bed388b6f7cf3cb7f940e439df231029b789d9e4bd9ba559fdaff70a582ed1c5e78868cec4363832b583ab6e3625afcded49823354ef2e762cac087be61c7db25dc9ffd3a8686f8fe3bfb2b75d75ca37d06718508c42f8cd18bd9ab602b2a3a521cac9bdc73001446d787d8549634497d32dd22e87225f470e99c015ba18f91a7cd6ae8952b403f2dc20af744f95c2f1d16b4e9a7f3d1524eb74dbd7f9edfc30ff4df99dfd1474cfe3d18c5173253b3fb12a770a406445046ec4afabf4d3094ef336b7410029478f8bda912d98583a0acbdc5283662b15b101dd7e25ea615b49f16f03ca767b6083e5c3974601ce06d7cd772a012e4037f0c969637dfeae10b6dd21037f28ffe001438a322e26e32b8c88097f638804d6c8d0a44f3d904e92d196d8cbbd491ca1372180384c2df8f637c06fb5a14d0aea6e8feae8ff784d3a1a5299f89a16c8994d55aee513445e54eaed81af85b124922fbfd7e3c9a71892aca6c31900841dba725ab4996cda39e605c8ee3938210a8738ba251aaaa1a8fd27b47c16c86087be5178151f8e7e714f93fea286d78aac33ba085399fa7a15f324b834967340cc824921378fe966e1852ecb94364c927accd5caa534e334c6a31e2236ce2804a071c287b8d4d0c6eeb2c3a50c06b94eb25e5c0b6b74b2e804f8feed93c4f69e76c665f75f698556c22105e64c6173041612840bb84e22a017aa6837b692974b299578614c16f107621906d601b3c376eba48d4d94d8fa73b2ff6c0431ba0cd4f986cf8044e8bde020e7110a508f90d8b0288dd0bab33816ec6009aa69153a49c5dac711f99472ba0ec7b7ad007fad7b0a9fd6a61228bc30837d2b95ace82118ca81ed8c7c6a067ebc6ed539e4d1ef31ff2ace5e985365600d1de317bdda8dd1e8534b38e9466e881af6f9cd971ddb712cc133becbbc2ea8ce104f38bd34f5c07832e752c9c6db8179c4b5b89a7c5fc7a4d2ad5ec2ec1f901d24ff040c78385eb8704abab81af126ba88bc642480d7ad5254b9d0ee9472f45dfef2663914d0f443bb0ac8551b4c084e02b6418606e2b7e47a570c8dcd1d449d4f0ee106c688a1069c9c37372dc4f9d864463393083443797e9cd2fde545dc930427fbe29ddb4ae1b6ca0e7560eb23a8fdb617b0e4991a65a4fa085a62908e00450aa6972bdc88d7f9f59fe760567da43d5e09ca1b54b3e2c80d97730a2d91e8d37572788cd8817e2cb9a0d2d5b2b5da9cebd34848d961341e7f13ed17809fcc09846ed8e316efae1d8c0a834a020e6b1b36e2c9006cba7e53f0a74772621280bec88f3fd110295739781a40b43b7fff15719d87193dacc910af1e25cc3606a001dd3bff2ce96eb22e4f8cfa6e0f0ae0436bf1e73bed4a95de226bff96115bf745f5cb532025c658b2ef22076026fa519065716775f90535d573a66a4e73e53206f95bf6085d553e7314252107dac5b14cd153b94ccc719cbd165d7cd8127aaee7b932d7689ded2bc906d9f0226dd98a2956c1ac4b5f06d95aff3e66dd0433cc228caaa0ee5516886a5a05533c9b194b788b4d46eba3b5e1a17d7fb33c0f044c3a3f5ee2953f863da5f603bb9f4fbe1eadab193a9d6a350122161fb0c1e7e94b708c4b833f3517b6232e073b34993be65653c562a6052f371d502ca0824d992b4527d26e032707cd33333864d160244b2dfb23d1855cfc5742235226e4553eb90d4ec7d7d9f2be3606c2db7c242c974603abaf3efc04edf56997f4bffc2a0b2837027303e51c9bdc72a50bfc9dbfa05747afca2f2d0812e0018b195c2ac2a65d704aeba9c4eb9deb063dcadfa200a6d9befbd9e38a94594b5005c3b2568e951e0094f902e992414a98e34a7d79b1d578963d38790320ee2d064c5ea8f1d4c3aabc86b6597fab3235429b37ddaab1ab3a4e28162f6215d1d318132f10efaaa3426bcd1afed8f9e89b3275e0b6b2c4404c389c0ed707f28d188de0b617a661f71f032598b57da87f2f3915962e4f80d6a1cd535687381e1418f12c4bf302a57885b7762d0926951f2cdbe8ba11b8e37415be66791a1e96cff85b8cc49b90b7f3a824af9977348d74a2eee82fc57af2b12ca34c1dfc158260ab65dc05cc91111c12eaa3f440e426fbcdc6a16ff596d8dec9b9651333905d649d2b03e2ad080b2fa11d2c9391e1a132bf66d376aecec4e89532bba13484bffe86d696529a46c65aae5ab899040172ac3e5a398fce2fb017157e2eacaec7642c3f829642fdcbb2f529015c1b0e0faddfdfa2602ab5a68c5c291a833bee9d21fd5cfb7b7fb06f89426227706f01f01ce0e71df0cce603a58c103bdf5346f66411eaba4d51c2ca9f23fe32109646b0223394290a52f38fb916e4d87092294ebca22f05cd844663dc0756740627b8c3f6ae130dcf73a31d52ddc23fe6c10a75c465b92c0c092a6a2d3458175a42838db8aa0e414f91e1985c0139f3fcafb5367401359c7a63a61f00f84064515d249948f5fe8e6e7b0acb6ce71773cf0d4c117964c597ae7fe54c74351067d9fba8030f5b885e62000817e6ba5073c9d3699d6dde798eb158e3e0fdd98758299fb8ee4e88d8b232d7f98517c99b6a8ff021435f0a33d9adeab63fc094b4117ce7633dcabf626082577aafbc9bfe469dba21bba147e05bf3034e1bfd7cf74d52afac2a63611a91138c44679f8ba3f28b2a339b4bc625ff9a52d63e8b72024d67c9377967e5bdde6495903e0e2ca44c85644facdbec3d58ddca14732f965352bd2d7743c838cf030fc1ad726a8f1a006cca1cefad7e67fd790ece07ae40a79037b98df5a847ea7a17305c3c173ea87de8f70739d8dbd24b53b005427dac67c8debe267fb5f274314188cf17b6b47021f0bdb6926c0716749ad5de492d7d0a244b1df51fa3358fbfe96b55a468f7d89e9b6c43818cc361ab261efb79108697366c5b9bfe3639be4f842a75dc8ae876335d2ee62a6020e2a2556ea35d724c217daf3ea38f2997394725edfc00fb26a9e531e030caa1fe2b52b21eaf3bb4ae0dfdbf177c5cb9e00bd6bc583bb8d3ecbd95bc61219630ac521f74bc910b1e1947e1731a65b8057abdd9e72b607ea755b1acd9d691e55eb42b52ceee023485628e34848095f8de4c31f95d3ac3c351aa724712a67b173d5cc149aa5b9226259adb9920a6c40c06eaaa2a21e34f186ea8176119db117d5fd6c2bc8e9903d78cfb63b76875656dc756f091e9b125b7beabaafdce46a1e1a9cdda19752482606543bbeebf19c2fcb290752c9080e146010ba224d2efb2d30e3e3f39760bb100ed9c9605625fda6ad18d87736803e17735bf5ce965df5d8430a294597d4fd0acecbbdc1b23a3653ee926f1bbc5a70998eb102f9e621ede9563d653d02004f4272060ced229011172ee0b2c37e4eb5c8fc4e9b1f0cea7f5783a7169232402faf596c3faf33512e60b71aa5257100a06ac0265be182065a5c3358b0ae92ed7b008a3ccbf0b144fcff746e3e850ca25ce6771c29f6dbc81d4d65dce23322fd012f3b257e5218568b1602ed8ea5c2dedf1688dc22fab7bc98aae5489b276d1cf82735b3a426f2941c52a1f78fc90a44270eb5b59c53e65bfffe041a3cc5755a5817bcad5bae2ac84639a5d5efc43fab6bb1ee3a06b4827bf0d455d0f52576b19f1095c54d2b4e37976b4f130a14e63ea6c4e6d6f648e61aca08781707ea849ae4d9b8f98cb29ddc3ffda7ff54f162ffd042fb02c825562664e65950363d004cf5a4db75cd647ce777c4c96eca0d3f8fd5d25fd405145022397e6f59bb356f6d7e0299c1265f474def777a87efb8eff3cbd02f2ca3e36b37068005bd2ef84c572fa833a03137fd7f304bfe8acdba6ebf4affcd383851d35fef466ed7cb1b9fb8e8b569294e0817aea6fc9f859c7de09fa2d66187d2eec26fa853858b67a49d47934810e020626f931c4b220c29a46b30471eccc3c30dd40735f623f657a8d8ab3ac46f4000ecb4bfedd87a6fc2665b0c349d2d265761e3cc076c5fd9cd46c8c54ee607079f1c19dfc542edd6280d01837aae2404b41a834c98f943c7dc7902088a5dfc545890b188a1ee997dcc85f2aded36a5e939367946e3d2ce463d9fa627ff18e707d3bdcd197a4e654ab018739ed2b4b02b4ad9c53d52d643ab1248c217b9ce79cde9b23f383ec05406567efad0ec484f70b2dfc68136ededbd739e8c2c21b491045aac4c0f3bacaae3f95cf40afacb837584ae362332eca91897af2e86fc31afd0b08b51297d380c9419f2de701960598fc413a17449db79ca679d4c84c031f11e8e85285ef832318b3492f9ec83c1c6ac2027db6f8a0504d95b745da179bc36aa7e127ccaba789a8e94bbe6411a265f38c5cf94378598f4f4c09f812a0e85337338d96d0282c8402c3dbc7a5105c19613197896cc78e954a71f8480cbebb69bf80e1cc1ce301aed7a18d9c41f3c97fd05c79a5fa06e634090699831922b4db3bd44d54640b960b12d05ea514acc0449564147d56a640e8712017d2f2d85c5deaff359963149d8f5797efd4ce2ebc346eaf450349e3b80edc3c54b103b13596a98a842c45984af52c759d9687178a9b76662fdd4c9151a0a524fc95ab4c7bd0e88c29276397b4c27efe7694cdb1bf52ec028b4fb7965df1c99ba7e4056cd918857857ca3dcb7799462190cb62da7146cade8c5d6b27aac4edeaa3f28640eeb90757c836cdcf875f7b3e2f36087a7588657f90999087048e47dcf30d35b4875a6a0069e1fdf0de53d9517bf695acc397fd728099dab11ee3bda9fd86d62a2b2470b2101baceb2b4926c58bc00ef6e409aa9dd5c46fe13b6b6b7c5d56f864ea1084a03afb5ce08b63510c6bcac50d20ed7b0fa22ff618ef07650446aa238895c31e4d961f057462d31201256563848219d3b6da5ade6de53a580824f4022820c7152117f92514dc38f30250d15b533d18db8d4b023f4990ac3078752281e9648eeb6f578a4455d8280e1221a99cb5a2942bdd592d7bbd0833907690640d6e25d8349b8f8342c28adbef0d2362d6dd26f9a042f1e91699dc27e0fe32b49d7d8469eb6df0ee5a431bc5d19952134556b4ed3525b86ac3dad19eced449e73ef2f84c2e3fb5cd9f3134bd7731a556a44cca5ede57e8ba8ea452bee8f784941e363ec91faeddc48b4ab6091ae5b5fa06c63ded5c759b426f41af148957dac0d6bbedf8bffa106f2ecb39a055fcf6e8df8b3d5eacfef7bc539808a4e40bcfea51bea5362754c46268959a853d94e6ded8582fd41c23f3e93e4bb5a049316b0b2f5e88c2c22955c0ee070b2e59a538030996374d461a655ff7588140693951ed0144a656a8d8eb52e8746da91796da12ee97381743e5fa048b5243eda237c2e4552f516a9f8caf4a9600c4ad3e25c6e2952abc3445c35a7c92c20a495003c35cfd73cdcbdb98e351346b428a229c1737319fd51fe13edeeceb1c276dbe9fd4fb9001917d03c50ca9c54bb494dea968459a49a5e3dd7a40013278212434a90582d1c3763a094ac4b6b915766a491b4fae7bb2be24123cf37bb308fcd36a29521694630e985e2eee528e5162f1fd96717234d5d9f6e96e84d1b160160086d271a5f2ee9f2d48bcaddc9630ceb8b54b34fc5890b50d3cad2ddfff4ab7f5785da8e1f24fad3a75bb8c89977bd0834728d288a0b0c6fa38fc21f862ef614bf3c9265448ede608688bd5457a6fd3994c5123a2e6516a4457c2d9ab11eafef7326474f221421f92b9447bda07fde8c489435030c3b68cc7830a69cd5461e17bdc01352b97d9a87b499d3826e552842e0ce804e338fb8bd42ce88196a26c541f1a4d8a1deca5d655e21d0ebf6e9605d42ccb758c8a390bee5d8a60a8c5f3af01f8b93b0e8d23e009712ed3aea7759173033368d46b388e0b294c2c56a01cc4039f3aad9c2c5bf74366125ac9a43dbe9ac21e1b0193f750b4e719e333d16541b74cc66f588b082968bc1283ccb6e0304d1cd1b53cbdd70a15f37b2fb5c9286ce6cfaaee03551a48fa5b402f0bdf497669193c137367e678af413315edd8a79306fa101a6d42b7d04c27f460dac5d9a9fcc78709e9c848c1353a154a61254e748a9c0b1a444551ee5ba309ab2b87af58db37022a9bd2d41ebea33c27ba12b9e845821e98e791cfba4b14b3f937a5e57b7510308c66fe106a2ab2505f8b6dd606c9aacc2fddf00cfb9fa251b018704c11c625b0e8f339e0f43b0a2ab1fde41c576fa03b5173c050db4a57544952186e7a032de2e0a166be68f442e7b599413d1624ef0468e2fb1eee25820b25cf57699d7029ff74af2502b075c42c0ed19783dd81cddd7019d8058a764a45fd6baadd8aa6b57c1b81c9cd062163e45e835f4ea77621910b80053b607d5bc584a4d7f5fdafcecd3eb14f6f3df3f7dd107b490f4e28b99d79f46280c9bb2ab43ac6511c12798efba2d5b1cd39a76b996a2ddb274889e45d3a6a378c7beaabab470261a35b53c0d686977c92a5099dccdf2fc3fb30f1235863585905955c6553294a67bde8246de1c029b75d0b87c2fae91149005dd634290a6876e856b5c229bec2c42f15f8054d10c9aef35065bf09fb6c457b9401bc4136974b8804d9d8c739d653d1ed9567345e0a01fef6e71ae8706fd89573a120a81398389f3f824581b5fd44a9f390abc7aa058f5b19d5ec24b621e991692b5e43f8249d266f5662191eca2942dcb72f53c5425d2e4764eb02e1c6fa9a61967259612aee182e6c69a51f126621a7becfffa2fc931e96e6489559d41953e5f25fa46a68e020729e6995680786a9b577efbdb882d6a683296d8663f3aaa1cdb643351f7277197f092cc1f9d7e172b6deb8ea44a5808d00a94b0ab6b376e3eaea55371f2e9bbdf52244dfd12787dfa0914d772d554cc66c7dfc82903e741786b4f3ef18c11dbd0b2d6b2291bcc5a511bebf7dfe0a552aa841a4edf0374e3d0f6bd5298114cdb3aae4f6c6fa687b615cda136260305e8dc6a605ec04bdd39ba0b1f06f2f0067d0f773ebbd5bb10c9051c3ecf942831acc904a427a20c31c366147fe969464399b158a575fba41707b94011fecedd0018adadd330bbd9778b1fc0de7528548c168da8d4c7639156fa54155e2361aa013ce1ecdaaa7d8054bac6fd2240011a0849c92b183042ee5f88daaead1470784d90fdb3a7520732d2d9f1b0cadbdbb5db1854b3ef65931a194c14c22e5103fb7b98e45c0d52e5e9a62f2bf3f23dbbbcab9fe360b86feba90aa18f020254fb540de4aecc52fd9019f7dc2cc48c94054fbaea8f0463acd53434ed23d48bff404fc3f44ed87a0f73e48662201744fcf8ed7d928fba654ff7d9d50e566bfaf4fcece3eaf12e7d1ca5af82cb5530759f9c7161cb42df55800a54125d6dbed2267589affa1e9c1b48e4f25f8f615b65ea92fb1cfa1bd2043fd33eb52ef6767f23f071e23c517e80092e2a5fb2be31318874162b44889a731ef15f1e4f99998cd98f3cc0ce632470d673f80603c2eabd97b1018a30f3be3e107167b6408f153c8aac10d71800bf9cf66fb68d426cb27a55f12e9b05575c7c19bdbb2efdb91d3d4ebcf08f7b927923604b1cd604fa919fde8b91f2fdd91f94722a3248f8bb05c527344f0f56f6807b8ebb79b16264323d2c0015e98e41ea9ac8b60afa5465a0288fa40c2e3dfb6022596fbefcde7b3028952cef4315a6e856013d9006e197e7818bf16dd72716ad151c30b9628d555f561761737b92f20c37ab6d15664a6f4b0ac9dbd2426f79687424c1bafb064fb9cdf3d2178cb1a5dc1d820899f2fdf24d2bcf5237776f1a2fff0fa14c6af2babd4c7ba2f261c607748501df1350c4aceaa034ca84b02454fce6bf7c5ef5835c5988803417b828264ae00565b47d99f833be08ea8ad711505aa2813c825b3b2688ca2f9848f979d9124cccf4c516510cddb7baf957129416f89e9408759366c878c292766a10b090cced7ed74d79f75a14808c4fb8f58dd5ba4bd3cfa48863c25cd18234927bd936bf72a7456666d366e64144e9c77bb11f3fafc546e168b8d5a46ad283693d8800240dddd8b9c9554a1652f8600a5026153f46593b323a00b347e4b511aff784fa4bb3f948043113ee78ab9dbc1711c763e798975e461943202a3b0792acddf43b436139b736e2810c4fdaa62b71e6c9db0633a071aad30640145204d6971df3d71a25a5f22e1b99ee51306ae2365a3c8bd14f8179c027a4a3c0dcb2a1a935c80b193ebeba2dfebb82ff13454a2898fa1bd5accc6dacd4b9791b0650a2a6cc4b0d06cf2433d0381e5835f7abacd50f69da1252fccb03447351af9ebed01a1663b33fe2b641b62623aef364fc1377832684ae9c8288871590e440a13e5932312759ec90a1b63cb56b6361924da6c3e48004e03673f223743118dfe0cfedf1036efe6d454d3fcf14726800c9e6df65302b02f5c0ca53ad9d31c33ed132e9ed8b19336b6085ca4dc271b9b4d582c717a0b0ddb46831c45edc4f624794368ca7c9bba251c429529245c8980be489d8d299ecf28663a91cad2b2fa69d1d3bfa3214476c61e650f4738f34c1cb37a506bfb5dfd790a81dd1705e56aa1d59f15af5d454f2cf759bd4696de30f75abda0a39371f1bf06d89254dd2a17d6e9e5170744d811cab1f30696da92c063184e9f6e7540cc9c167c63190d5c8a8c05696c5623c02cf313875b255791700bf846a300a59b864a163b8b3e4ecacd45ab57e4e018b311d3bfb76067c0af93c422c23000d40f2bfe1e4d50e637dfe480e4a3f6b1d070464505d76f495abc56ac9ec4b1f6dcd0f6a83ec62c3e3bd7e55660086f17de88158f3aba371664e275c2e917cc8578e9c9c8d7d0ab15a210b9b2bd7083989f5ded5573d4f678c4afad5784eca549ce615ca91299f12cbab03d4f1660fad45884fc7ddab39536ce2c843d33f3d34ed086b23f0aadfef9cd83df15ff17f5fbc49340bc82c413a5e970ed13c44fa2b46e9e264472e160cb3fa2ea7963961a7fbd8d538bcc77cb5714afef861aa5a0950912d27ac0ac6c85a96ef242ed0f382d02783349c5590df85c2184f5881174aad5e5559c175c31fa972185babf1f9c478103257c0233dab22fd935316fdf9c8e235350eb8ebd2278c9e397783bcb8ea9f1371ae2f28fda27b8f5b27b035bc28369e1aa8a380ac925d277e6b96097f311f9eb99a146be1d6e4686dddca1a5d8bb917f22534712897e5322a5806945afeb7cffbce731565223b5ad6be529878de5baf6dc4b6c60ff5fd48a6f3ba0b2edd2a4275cd116f322fab5bb0c261df1bb1d39dbdeb8403d13c50054b694ae78a8e0a1132190c9fc416cc71642a474f4359e909c978769fbc8c9fa2f37b5aec80f7fddbb2514c95fee6dd04d2497a589a4b4a7aa863623573673a0458fd39e22d9f9660faa362ce8d62e290ddb05dc39ee7eb4157090bc1b26466c4df11a3e3717c295afcca8636de54832c02de79f9803f02f43af9a3fb070cbb7c9004875f2edcf3cdc44fd4c77f17ab79b3c990685d253f2e93f95691194c247d165f36d4871c7c007ee5909d09f9ee1cf07861e5eefa2a244c8cd1ded749925e97885208cfdafc1d67eb50601ed0ae85a0b1c9ba25c28742ab0dd170da1217f42a21ff87f1b1ef84f02566d6c9a560d92c6564abde0a508ba2aaf8ffec51f0dd1461169b5130d8d87fa1246d941e6b48026d425fe0c6030b77a157e490b912f23df695778bf53e10224e02ee8f5b848837871be9813e9fe0f4d504317a4589055d368bce4a304a37d855d97d84f1f167cab6e7f39f8f71ef6f19ac4d0b7984915af78abb8f186e2a374f98759aea0c1c10f52e3a90995caedde549f2f6f165753153d97f6b639f1a83ea64ce5974b1278a75717c7965411cafc93a495a609997b800299420e7510ea1b5996290c7bca599ed737929ef0ea39a76f4b14ce20290b5ec8298487ae055350e1fc254694e51aedce5aadc938af109982931697fde28dfeb5c6cfacc2f1525fec66f01fce2f5a1df92834b68a04691c638fb1726be890398ade005f605829b16294b819ae86d443553ae3b5568f54845f7675a9ffd312aa63ee3f3b0ea54f89003d973349e14487ad0e8552329e70f573406b399f273553a42d285d7083a2fcce1501d3169fc02117b85cbe7619a0f42b7d568d3e9ba42a9ec797dd60543d824c308d1bd2266fc5b4fa94a9f83acd04679a22816693e4ba97f62cfeaeba242fff7f49513264514f5d53cfc605597829bc6616593776dfa9b8e9e985e83886e53773f41286279bdd055e9c417ce573eb3d870a67cf3792dcdf30812e908c7b057fd588b3eeb2e1bf047ab6025b8d03effc2643ed909ffc46e09b6681413b5b06e216a71bd24483dd2eb1d39d335a15512feadf34bc9761f06df6ae93e02c4b18c817aa4b253d63102ff031682afff92a340d1976863cdf55ad9f3c2267b587f1b5f132983981c675e056fb839ff5a57a056343694398ccc2c1dc533855fcff6818b8831d89608a5a6e90fb926527b2afbd3a1bc220963e5b08ea16978bcf07f4ec07526aaa89c53855baf8a42aacd768b19a8e0818c5d226408045e42a5d9358b24124faa1b6d7f8f96c1c3d568da17424a77d56f5c1c70858b9d8d86fb3770d808128fe58b8569ca01dc3e354518af830813975b89d35b8af3dc69d628366f8b1b25ec67e1259ef4d820f12e565be4420575e341f2046ea945298b9a1434a6a691c6534ad533a23931c3d6fe8762688b6d1a1dc88477741b7f69cf2997b772394f90fd64cb820fccb17ad657516c87a5df842a823e41d04f904c242318e01f6d4f9e085135e30f3b58847b04471f121503fa9230f09dc49a8b0d1656553e847ffb240ebb3f62b7a01dc82585b04409ba83dcbb1141ea2fdf8c6ca6d7027be36473f4fcc0f95e2b9514478b7ea131815413d896c729b91eb8435f5d51d06f7a885b8b80f280bc299d8f1767a6b2bffc7357852ad3cdd7a738272bfe8b76b67cb3a4126044a2e8cb01810e74d5282e0cb6f4e9d4843de7a5071b4e7ebcbe5ab98c4cef3565707e0d14014504a33670fd632c9444e398acfd4cde10fb64894833153850a75131bc708274320da0e958a36c1c226d1ae7cb948a90a20c4421aadf4e6fa3aa863facc03ae36960f6f74f0d5e8e9e13ab055201a36249b883009a9b08ec82e1a665170360f9958393a1b57ff51cd6fd0c04d52eb0a2cb0cfda8d3986d09380fa1fb5950b81d83a2715c6e8b317cf124123e4c2e9473adc3bce6dd742038dfb36c115848c48a038d95dc22db90f21a2480c19d02781556a9f655950956f0fd3077eda9a889e71344422294b82ed112d318186b581c57286a7b4aa61f0971b35d5bc6eb7f0877a6e8cbe1f83e91e7bbf4a422f1041dd4cba40da1f615914670ebfcf4eb9c3a09540489a896b271a809ed84ffcefa686224d7f1f76a730ba800ce2b6b79cd8bd4f32f0dec7b5e3c2de7961c5e601b23ba3e38cf2346e4243426642e015cd14ffb0df1474797833c6848b5e7dc8e36b7a7bb26557262a634c0b36b926b2da6da64a8928c5d54f175597e06028f88c73ff2991b6ea785d0ba27dd721a22057b1027c1b0cb5aeecb4f8323fc568ba1862a1c6ad168c5975b09aa534c0d73a68344e7a1313ed50e94a0b6899fdc3e1c41caefee5f239ed83e5a78edd75810baa42a7c799fa821b05d3aa8fdeec6a8d38a565e8973fa661445e1dada24e4d2cd89ed84700e7b2a4d042a97b62eead09b968df80327f9f452e8013489a71f9f1817218bc446401700b380737e1806b65d82f6de3fe84f0088f51190c7d5165477bc78474a2d99ee77a8cebf8db2a116a9115d21c9df8997a821c63b3cfcddeba06f892400e4ce788ab0921b75ab6ffcb2b4d7b56b1c4ff997cdd60319431af2ad31c75651b5a6edc3531e347ec16e62b559860913dda2a926c24fb9cb7116c8acb10bc4f77d1664ef4f6c79585d7b165e815fa6b40ad2465534aa4b16a468c99b867c695356ab574c381d84482c50d3173a7d7bf4c2b4a7b43ce4dd448b0a9439ce6adaa60cedb4dd50e50ab13e66ecbea5ed00b10625a3c16088b8b70a5e2423aa86baba958a425bbddd536ec15a380bf00f187bfcb3511efa1af6b4eb96eb4391201baddbd2d6f81643b8783da6bdb13f45edda408154393f1ea2c32e3edc86d788001bc0c495e4a7f4acc38c5b8eb27d4be0657b259e84c0ca6651cad864b9f89d2cc4a487363fd9285d06edf1ac308b0e75482a5d0b4500c9ce3e466df956d19dc39f73133c270adb7cd5924e464cb55ee04bd982d6986a9cd253eecd3f42ae49d0c69975c14e1d4ad748ce321b9d41b0b63ca9e315273373859fc2dcbd2b982e6efc217063168b4ef609a223a724251e068a867af6184893639f210506f49d529febebd87ce88776700a7f054ed4d79d1178eea571876dff63a5832fe586ea1c1a9846d272640a94810913af3c0416bab655d82c2e421d117632cde532a71023f481be9824e5a79e5ff368319a23ada1076f3ce32a675698339d85d71a279f058197ace972041899b9d3be2438227e8c8755f504541d69d3b7ff8d4d9be2d34b3aa418cdee14fbe171ce2667d58360d96e76d0e29ff9b28f73d1b907f3161834728990538a06430b907970a3d3b533226194a2fe1e41f860bb1536aa5c18d756d54f0c4253a1b74309fde14c6f44d360cbf1123cce4b50a66ee6c4ca41459b474e38ce01518c07a1e796d39810dd6c8850617227d595edda3a370b7a70ce28115a808e9fd59b5dc578811142e74c8073f7f9ab8d0da561671252f1f9f317ad7daf823588bd50c9524f8641e7fee292ddc7915bb7699ceb28058a27e630a6a3eda82ff783bd38fe49b27cd8ae35b4cb2d59751b20f496e5571b294f332e06bea1e92d0a37779fcc63b19d43fdbca0fa7f5f7dad982a1425f6c8418d2f05920fa400a3ff0d277e5c66a339b2a7fa0d0036633da9335b6d9142f175953337add07fa272fac93aa23abfab16bd5e41be425db1d6e26447aad71e17b6421084bb4729530aaaa825d21919f3d54f9923c055099500a82a890455955da927ab56f1eb73b76d6810204b49a506659e40d53aa7d25e09721af306c83332103702166f1eba0b1ac11cdefe7b33e202d1b734a8a71d921e6ebcc7952071fccd09336eb4df7235ca3524f3d5b0583028df30008ffd7d387faadb86f5c998e05e0e4014faccffd9a67894810ac2d06fec08d2323d6af2e824d33af0254ab53f28c8fda30042975fb19dec8184276bffceffbdc8c1f628bf60f775f618a2057d2f65b6371bb0629cc75545289a59b0c73842db983fbe0c8aad1a7af396b3a97d002c6e70eb920a6fbf93e6a7a6e89e1c8538bd09b34c2fae5c770331ef75063f639857c01f5a3dbca00d6355f1e45af03d28553d01354cee6581183bc0332aae6e47df9672b5b1d9c3f4f276c808160402e68e1bcd0699c456018253aa1f55511f4ff0c57d7212583db13f37748c8e26ba9cfa351e7c53b688f12f1086dfd4eadd90c66d217a3e63f213ea26f33d55d2a5969a83f21cd0b33bc4608666f4382a1c34dc31b58c05fe22db90fb3507c4cb764411087e538647ec32b4c07bbbd173e8315c261f35b0263bebfb9af2fb3dd3d1532b53df08f0fddcc7f80aca2742459238c31fa22c241c45b2fb9de65fb71d14d2fb41db3c0183d1a00abfeb2dd39666ed31d2c57742c5827108ef011b4e8b6fd4a27e5cc186440a443521d659e656330aee4aaef4ee45e2a3e96136bc787d539d7d2fb3f5fe148c9829a60fa54fab12e974f4bd6062f062d8c544715bb8873ec9cdd241515d1001609ae24fbc49b05a4bbbf35f57b6744f26cc9aebacd20198ba4f091c74cc4c514c75a1f113eb1e73d5ef65f6829df1d1676f9bb965aebe29bb321f167d90e3a4a43be25227142bd2935ca2c26126344b6a21144ddd653501df480945a1827583ec6bcbf1c4869a81315d6c869427c7b09c3640465ce7996e99142d5a83216e1a53c937eb132580f123b3b5c202cce5677edbcf465400eeb83d3c21f52bf10619aa5f015ccd0ad031eff448a4535c8c0ada03b6d52995fe1afc93e2a16b1a2fa034e9db1e2a7aa61e314a605cdd8be08a2b28a3d7a0287d134bf6811d5c60b842c195608c1487eb064f8d7089dcacd23293cd8fd88e20ef1646f157dd4df49b96479dd31cee33d6d252048b25e8e2299aa28c5bc0b7d7ec2080a3ffdb376113c16660828fe33cb247893982f2ad4a404c1fa129b20d8c9348383861476b63862b3df2dcad0d065833e8b2860a3ea0d9b7983f81557ddc487648fc97650573f3ba07c357af2d27912ab23f1b106ddd047f8ee9d1f0c599ec0ad411c3b4705256104981e4e70012c18ef3394aeb58d59f6424bf5feba1106e4c516cf026d0dbb401ec1c68a1e6b9b28ca4f952f6e8b1c464699fdaf63e9c42816d4faa4647f512a3f176f0313db06564749ce41b7ee6d474d10a2ecfaedec41d1e0aba467b0165b0e129dbac1676b4fda1b9c6588b996aaca82446e1abac0137b031eab45a0ecf45c37242c24a49f5f20f0c48a2ca949c16ea7e45175be33ac1e4f007dbc8606288969bd96600464321616ad78cbddf151c7e68e57b2603e721156e2e02bad4a53cf9321b64031c68dcbee6a6a3ab68538d58092a24227b085f2ed0172da5e904b96fcd1e2af6638604c5d2a8fb0fb4e9f73bb16987b477048c95df90d22c649265a8549e7b01fe8eaac67feb47eb9991445451cc064de53b902b668926c07c328a615443197cf15e37bd8ec54d49a475fbd0e8579e784e579649b69c7fdd39d940f6da1955bda24a5219b2464e9cf70f4e064e2c76b82b99e9e959b747b9eac5b95991ac34b56b326c5ecdf988bb0c1ef763cda8f3ae10b3b14e86350c1c5be23c9e7ceda35c18f9bf0ff4079237d518ca4c0ed9658f3c7455ff27b7a7140de2166a0a20bbbb5d0e26d3baeafbf9d1ae0c6a8fd54e806d829d6bbb46c37a6fd3dce312f78239cd2a5574e772032343cdb1fc074630ca22c6dd364d11b6c942936172692408b651eabee18c61803436ed7692df194b377ce845ad06c89c51793595416b927b6cee37870db8389659632a0563d882a55e211704f573271ac53f8897cc181ac0127c8c6acda3c83e0909ad838f63a369e75b959b39c74896cf235fd7e8ad5388ed916cc64c6d4782371829b99496fe2d551d628af6481167cd3bab8fa1a2c68b666bafd62ce8083c9d5f275133b1dbf199980a52998f7c75ff9bb38b2b999a4fc1c9d4fbe1ee64cd6c8d5e7e7110b8e156a496e4b3efd0df2e808f5f7949a6ab366530a76d4b4af220cc5cc904f31fa6e4b6499345881bbe534eeef7fde746b6fc51a24de44fa51d0c054a6611340d2187cbe835200566e304870b0703bf6f42b3f191462d46d4ed985cf38d5343570320e71d4676bf0dadcca070dcb9617d68d378dc39216cca55dfe7e0edb727d456e806c17708393a02d4386519e5947297e30e1e620bbf357250e1022c2963be6349502d694f11ccb744efca87f1838cac0a46b1e5ff979fdf5be7f465e7dcb6c0c5e33d98b8721db08c9aacdb87d196555d79c837fa647af884a3965f906dbdb5d61a909649d18915d07d1624df1985f98f93fca0ae25cb09ef6a6f32bc0b8bb4ed251d83994f9ff403789d98963c4108223981c0678ffaa2e03b8c4e230d35262fd6cd06dae2e1bf4f6c1610096f7b9b3d24ba7596bc9eb5b410a84f0e0c85b92dd5adc28340039cabaa79761d286754ea4c8826918673e7db5b1170a32a593a75c36bafe7cd03bdee89e3755fdb4b6f9676a656d076ae60301639bf485abceba4c7945527d1e1ac94d0711a0d15f7052b0d6276d6796f3b77e60d99f2598d8864020ec3485bb87547ff472d583bd636d8da6f5513b3409203df7c0ec12031f7b032826273ae18a5205f4f0a0e409822e1b2a22efac708db31c7b0460eb387712731e2ca03b8607d88956ca78f3d97c2afb439e48289c38d21d8dad75b5217e4e3c2445f980316be486cd4a1820902c5983ca207fb8dad9736e88482e13bbfd6802813dda62ad821c9bacfdbb01ab7c97a602f9d323c805fa51e50817c1d2d36d7859177e7dcb935baa0ac5241b78d3e306774d09a7f487f7777c00a0a84eed893fcbcb0bc3aed21992b29e6af1c862544eef1ac72f3b882c5470b9fc027d107abc5b85e5de07d926f473b73e53772115eb854db499d7ad0a889f94ac5fcacfbd677e5142eb2bba897e13548d35ca3d76fab0d8ac9c7b47ebc5fb50e1394c821356e9bd30a701c3d851ca77c6cd265f9e52c8523210cfd5404aad6f3eefcbe0845c59a43282bc37f868f8da9fdc139a37bedf204b5fc2ce2f32fb34e3f519b0ce465a451e7ba7eca23151264f1b8c5cd4990a0237a8e824b8341dff2d7757b172927b4538e218da5988dd54e3c0423a8c853dbf68fb4470577904ccf86694c7b6257c58434aefc98a58836f63494e9a38cef805b3ccc9327770f6914146468992e5ab1d15dcddeb23fbddeaa4d15552e0a8b6bd38a1e92b6824410a6e69faa3097454f8fc8c3e72163c61145cbb56e07541656da2a3a08ea38374f1a347452f12b3e9230f013630709ed2cf19f608659849ca2a1072fd4d35bf192796367f0d2f848a8ac1e2265b3b9c477a560dd70f3bddc54839b20ae7eb7b320beb9bdccc8be5ec6d7ab623962a987b42cfdba4736b2a049997e538ef7c9103d39dbcf096ffe0106dfabde5011abb42958ce20d236a4b67c673347a002bedb85658c6f81d4e7963231e4b8f078af8273ec627233ad3d7a548172346c650e7f2693c5de1b22a5deb3fa3d3c3063bc35573959983ef5c755257c7a6b6a7494c4b708965582f863c48562e9c8a257897c8a58ba98e9569f65f1c9281851b6d9cbb771679cf266ecfc7ad88d185860e3771a74291e1f8bab5e258e12c7b54ec14063754c185fde640c970a84b617081afe640cc290dd6809e13bc91a19e0c0c4beccbe5fffdf8af8c806b99f7452f51312c0a81415bbf305171844b7f6c706d45bd018f94fd80aa47c6200c574b1a94f63258a53c86c67de224d79b4eb0399da805aed36f32a212da9a6b7bc3ab6cbd4d82a93e2d447fd099d72530b6a6737e7a624a2f84d51f3bbc212855f0926ae2b87c2164e2eabb94e638c083a872df27caf9aae18083fc7c6154b38d901bd2ccb615e7213f6e227db1e8b87ece04dbc4b181ea332441fc578d5efb9f1bb431865451365c596ce16d91c354de3133c8da22ac6ce12586fc6c8ad0b7a3386c070fd20447c9d997da51489ab419929069ac68e130f0459824dc6c04b850c1b4bba8b686c9ed0a35e0f15b85969f23fe977ac91097caf486b224cc722006fad60eb9e94f3a7f9f20bbf166dc8e854ac7e0c0ced5fa02d72ab378ca07d407939c3c975b478a8f9067d2c1f7bd1f11bb718702b4d4e083ba8af608402ed727968608c32a382d48b50c3af4d383d19f2528330ae190876ba535f1e4282068a5aad33a8fa43e25990623319706c81f9f8fccfa401f4573e80732b98e80d144232727b516bd046c9ff1569ac2014d16f20b0b9419c8910bbdc3ac2ca61de6c1f9fefd95935846c6da3cf3952cba76cd1cfeee24f53c2d424085e0bc50e0abb808f98c8cd275acf4f2c23b0ba012ecde646896eee7e73412718eeca594a1ea185d250467b7cd44c0e13af96f02db4b5ade66b9799c875073072c8fd1957a7560a4309a6b4d566f8c9516c98dc3ff60019da5adafc7904f463f9f61e13591d2533e2a39f6d5ba2df6d5fd8645b97e267a674c7e355e8a5a5ed2894d7f5085646027934b566c572081ba969557c04b6c23ea4890cb0ec18b7f1c4017301ca7e30ac9037747bc5c873f3e4afd95e0fd5a81a0b3bb3c41006ef2f8a4b0d64ce038edf671153359b2fe9c090ddf3237b3cd5973a629745a3d7ee7cd3495e0a51fb8cd9ec11440425e50f510d627f5704b05f637fece7d4e9e7d7efef7510e81585c6e7d48e3b4555d1fa10216fcde9b3d776292fcee4c9882eb21455cc95dad06df85c579a24939caac6a76d1814d9cb78df0badda732ce8009f82a8f0f695b0d9bccbf13660f7b403e2416132495fab2e10aa23c70a8dcc965ad1200426dc8f85a28d0ff33a355505ffced200125af05437d93c8e6b9134eb90588ac4d8fae1063f391ca50d7969fbc0a664240b9f5e0bc8bf88b495f8b54121cf43bbc7be0639a70a3b58f9a276d6503c4f1592ca9a76be88e357804c6d91ac8b93f52c37f6c67f7b2d0bf7e92616dd197af8213b0dbb5042af36ef86e39e30605bd6e983e7fe0e07725807c328a8cf10bc2cae9eb2d43b1a700a7d0ec8a3965a27dbb3c20f3e1e49fa5a56582b78643194f6b57fec05f233afbf069398de147f2c819cbf974ed6a221596f77dce04971949acc79c7cfda21ff839e68296e723cf659de540018e321d08452d8e1b91b6dbc5d16686a5430ac2f8b9d285796fbd8f96918f2aec470ed99ba41e8fbc59d13af45aff1159dd42620458fea8bbdcf6efd895228981f95e809dfa5833e42d5073281ec43efb9a92f2d47cc04da2423a6e20afb4997d5a8aac742dcc48ae93b56a9c010818dfdf0c68639ff4def96a4959bdcd528e514809f960014174f41be146f3d386b5ec0505eb3f26b852fad026ab92d07f5f71ac3b15f5fba92dfdffdec61475c22f9eabc291a00917bcaa3d7a1f309bb84600e780878bea407835667e7b1b0bbd0f66011fdb1950f0eb072343f96f5dac82bf92b250e21402bfe004267a79462c875d0130fc7e6fe7dc1321e9a4d7f86b65825be13924b70ec3f46edf7acc1b3bf035e7c3efe59ee24f122dbd088be38ce6f844054656bc02285a07f5b25255cde117e01b2c1376cbea96a41e1d33e95fe952097e6801e31e88ad575f74896f2b9fe997c3a3f5b5eb0823908a5549e5fc1032e8a6b947341cc7c879780f96cb18ce4a76eda41554b704172caf799b6c8daa8c29a24904017a453c0ab5d28405fd8577a119565c0c4d165bd7d3052d7284e55470ce3b21a38ec9605fd7d61469f9a25661b9d2c8968c340d9682fe6b651dcfd0e24746e8ebb2e549177637deae9c7ab7f71e8694566a52b12ef18fdf9a079f2b879010629837f34c69d7e444893cb5898fef32a4dcf1fef4b52924d57a8f5803e711efa42733fbd094a2a4a2b4c0a7cbcd2621cff39a9fc99bc6e56550c207c39759582cb18432d6084732608c389c5a5944d921c03505d40ba4369a8fff532fe5c33ce9feca2ca8cdaa8824b45d599506e7e8caa6cf9f511ec4c701835349e77221441d07b81c51cc333e45b0cdab5c460926636194a2afd1b894b5875f15571c3f0c2767ea6f1d8f0354272ee1460361ec4d52fe4d2b21775af045a287fe5bbb1cfe2fc8115299b7a28658c7ac843e867b2fae287675a4313e8d6f514980a087efcc085fb20f3a0ed2aa1adc409b5d452b29e674d0b0cb38a5c7b4155cd74117fae568b18f33fcb95ad362d1c98d0c4fc6b86938745d4c5062895619e250e8ce8de13d55cf7e1257471fc86409d72412ad3f081d8841a16b8c502883b29ba60921b0213bc762c67babd1c3919f865efc1e6b45fdfc53bac7cf0bba3ea90387e862db4b1f86512a92412aa4c781de6e7479bf182c11222a20284d9b4468bd41a7359574385a1efef071cea5ef140fad92cb6e597fc076dfe8f219dfabdc01d3e96d2b2e3db7fdded7a4fe6f6e389b600809ab97538fe05c0527ef1996878ce6598cbba3af79d2c0db26a2dc6d341b6ae4537d2c76ae0a6232931e98724d7193d1b4767296396daf691ec36a9dabb974a59b36de86aa1dae5b85ff4e2ab4558c481ea1b23a3820f1927f0adc4e4cff815f3dded2b5f55ddf8715101134bdd92955f6098b0018534024f494e74e3e317f2b0e07c9b5457dadb4b8ab7b75a4f376bb646057e41c7da98c3fe7a69ad9b0a1902dc1941eab638cb0727cc4e8c4e1f3e861d2fed725a44347f9ea8579c39edb523a9955a1740fb435c655969cf115b69285f7ad187902cb84531adb1d5fc29e49bde514d3fd2409c18c5000b3da3ac90d3c23f225cd836c73fd092d46cc08e8c80a603bb84177bc0d172d236f57bfede896743837f1b626d41855cb1797c1bfa4f9bfcc5ac0e15126fee18fad5d832790ab74e8fb40185e6169b489728312a93b40e3ec49c305ac363620ba1e21732f249339e4962517abf01ad6085c24cfee30ca10985a24bb1a1625c4becbf8ed6cc51c3725bf1186ca211a9e331a99df31f816e6ccf2f361b6a663a24c132e5241032fe591152cfff9dfd6fa37202d2f48e5d43c5129704790060a4723b34fc58b68e8d2cfc4ec3966d1dbd0ecdf2106290ad31d9eb56c3e9e23b8f58c4ac8df0915bf28adfc6607bb66b5d74a4c999b8d3caeb5e64dd1a1b0f64570b223ee84e343d4fc5ecc681476a502e16a9b547dbbbd78dadb12ae8ae3738a89241dca552c6b493a25e5936c3d3907dad8192c608c386cc9699e8e4b4e4b367ab346bf8592e5bcfd947bef5f15420d5027c5b0d77f6e3dfb8cf40b3c2372f5e241a6f56504164d55b209997df988a8ace1b8632c048c140146cb418f157ba9ba9c8f9c6c2d4d3c018e444fec69536370a0cdd692c5f2239b5525914be95db69a2d3bddb89126a21a683728c54b6539ea2a5d1ec3363f8ef21efa6eec52825c9e6857110e1ab6126e09f850e8575f63f2abe48da4a3cab3301cf6cb946c251f941bc2e41e8d7d1d81d006e8f73d3df6c690cd3039b60482fe2830b9f15e6b1bdcbf7d04fc1c515ef49002494522ba5dafc4a31e16afff5d29c41cf98c2a90c07a8f38c42e425a4f87c28fae3426d4b70225f5096aae9c7d46215e1c725390d79fec5eb232614a911b88208531efbde1087a75bdf6dfb6db2b779a0cc6802c8b4a21efd055d4057e394d80fa0123de6f5326097e665cb6d9e80c44e7c15a3a1031e6970c86e6e45d980623b77173ba54cc8d36e8e245be8fbb97985528ec5ffa8703c72d3d987c13c1978fdac4b454f95f6c6f75f7381247dc104a18909ba89fb7d5cf8321bc1b520320634ecc18b3a58ef7ec0c5ed7228ed251b8560436d3bfc8c30397af10d737a36bdf96825fe2350e3a3ac4d664d1730ef0305dea541ccd5ead3ff337cc244f583d8169e41b4e97017ea4de8927edeac2a6f1bb6107bb21e3a176a15365a3be148b2ba102a66aebbe9d5b82416a46ee8900966fa6d52ea6322a87afa6bb536662842b6a102de1b2a6d32deb18c5a8995358809ffcc4566098e154e6342b42ad1ee5a0348826b7aabd69a7245dace08af4433b2b2f5988c2147c4c3a9fe2455c616aa176e1afad81d51cc5bf0abbbd49973c6e733e2264cc024c9e14eec24a13a7ad0f46b1c7db62ada1029e7a5a1a363f973608470312d9b4c315e1f4e398bfd1aa7369f3bcf18f833622083d2086ffbc142703baeafcdfa94af69d258f3ca6078fcc59825d6c0d2e80b1411d4476f2754ff6afe42c0d28a49ab9e0f41ad55f1a41b4af8ab437611ff337053b9dca3e016ab2ed531e930ee10e6fbe1a6157059e8136747a4265b14d5916aa7a916bb7decfcfbd8a2c0141dd0242229fac0dda5d4606e90f37e8dab8b3eec65112f4e6ba2a82700e03661ed63d90b39b7bc9811a0d5983293fccbb1c3cc2acf342ec43ac2df23d960d0a228dc18ab3f349d0482b2d7f32d923327dd58616fe6fa590592fbef8a88ff8fc13a435bda444be03ea133b47096bfeceac9c0531300263dea19090bf4543d084c69ab071d3fbc138ecd979c949d78c77769e48b84b986470da123d7e674796350861680e1391e6b56fc79cbba0e72bbbc33fa4680db9a9b21decb85ecc96686cf2ae37f17a91937e6aeb0937a93e13181fa793c50cc5e77d254e4edcdfa0cf3557d125870f9afbbca9aa22af4274ee655b3a23909d9baf2e5c4e91f886fa9e6b8a11e09e129d3185110e9a01ff7e00924e7e50a48cd866091e3aa7596138a30230994a454160dac867c30bad9b6270a48fd3c713066dc65fec9d0e4e815ddb8f3a9c723b074b09021abd08a0d41b15e72d290afa328d272e99dcdf2ea42fe5e262fae70d0698930b4d946f65a3c5396b86cf052ac26938fec46877664549790552042461af332bb1ae08b0e9ca6861b75cd42f1272b377cc033c94fd91d4841b45a961eb8a261646dde41ab60ac9897b4ab872e58a24ad873e51b88a8b1764ad713ec89b456846a783026092ef4cb42a2d96ccff3050d1193bc8908b9da522bdeedb75bae25d109cff7c51b542f5084521b3bdae979171f88b01f22ba2453f6439064c9865c58387da677891e8233cc573740653538b5e4510e2d39b34da0d5f0cf9b3066feb33b50c50ed9e7d1fae7789ef7b3bd7f0b72cc6ddf9bc88e5b66072565fe871d29ce81203e612dc99ee1d18e6f38ede2903493d027638fc233f76cd77527090d33cbeb8b89d88cf9df34bfafc9398a50c6373f4ebcb825627e4ecf86a0c47159403085e7a8f0650ace3e5d1722ba2d74b11037d322f8d4d0fb33e945653eeef1d715fabf12e22bd3f0d0e39f02fbb0c6796ec624a0451ada3f06891262b7233538235a3e96d287015eb66b6faf82e9ea79d4a612a6df2e09f1797147187b55a277816506654744f53bc9a476ca2535acdaba80df5157dcf8032d82d8c418b70353b05c0d7dcd8069a35bff6968591ac63f50e0b9ec2a1ded3bb347b37bebbbedd8fa2a3512258393cd23a8ec059ffcbfb2cc743c1d16be77f714facb79e3df2c06ac8248bb5b99cac5dacd23fa4e8eadfe5114a3babd9cd29029b6275cfd5bbccdadc8060a07b0a1c58965bc716abb54adf0beb47756ca4ec2a13bc7ca75b138456113dccf8576ba0ccf2a371e23d2815373a10dae1db9cee34725a9f089ef87869bad086069a79e76e32db42c74da0cc25867ceafa1014f2b14ef0018512fdc58dee602556699e0a81f8f82652ad4cf4608c641bc1898aac6801d23b8248addda6eb536ac63d4dee9e91f4650e8b3734caf2973838a559efbeecd18653530a313af1b94d2336a15c6dfe3b3c8fa0574d770078470cf9b07ddd64436d648aa56b465aa482ff921ea1411fbbc94ee040c1f29998e41d1b923d8d7b677a23f262fe650e963e09d67024ecf4a38730c897857bdccad6ca1be985ca3cd27cbaae3d495235f90fb37a84abdc41d8bc9f302033cf8032ac0e2e50a9761a822963564990b85819aee6dbf8f15c78e446f5922e9c63103ad01932261031a8e797517d2791f80e7d78f296201e1e184806f0bc2cead63afdf2bd04a8fda9e0d0d45540ca249ea494c3960b72873cef87cfce2132b23962ca6115b8e6d94a207c81fd265a801f94c56a1edb2833404109e0ad272f2d5781def3f9b5dc642351777b0fc126bcd42f49d1f03cdc71f6b2fd5d3f66843c67bec325386b0b6f025a216b8fd0ef1894cd4a81d005f374a3ea65e9023c02a41cd3b8145f0e56388b4928fd2166625af9e191c19273ee96b462a71d58d3cecc602cc4ae94462cb6b80a81c3fdc5a7856321453b881d51a964095762fb343cf93649a7828b24f85554cbc91241e2808be40261a2e277542de35dde4c5c6173e72597daf1a8489ed00e6b8550785ace660812f3b7d50e88fe0b4ad9c49124c2da7a765be028f353e1f808f05adf98a1d36e0ab52514e0719a1957802df5c1a5abe86d0a68c5410eaafe585d4a86c90ac6ccaec7333f72500285d3deb1a0da472bf3323fa116f50918e415e6953363dde302c48918e1dccac6f6667bcbc31f4d58c65da24f6c01fc4b3fe0d472d763d4370b23a141e9c501ed0f597e5cb87c19738c5239276f5817198c32361f7fd5fb67e3a37eafbe11801304602903dfbe173a47458045651a612bb132b44c8d24e85da373ac9c12a38b26938f8a386da0130cd0d36287d6dd59af7529668575786484211146f16a31b525d615722db241670434d11685985b20e2ca3fb9955a79ceabcf93f2723c951e99bdf687d550dee1b4c8a7246313f95fd2df0c6cd23a8ffe89ec05c5a187fc16283b8458be10e7c692bb1a6732954c0ba01962e455eaec930e0a8d0f5d69c91acca313f37d4af3b92db75f83a08c2d8498a9d46450259a9f39a90a9fc5a4b2d41fb640523b03e6e19db39db7da51b23959617e7d2038da06ed05b9658c876f1213de022eaa660e18a2782da65734d2b61316e5abfe50509519208cf5368101ac59d768a8519d62640b57762c64bad7b8fee1a75af679d68c44f7fe7d122c17ee7f047a583c078e8778ee10cb61d9e1562c1709736e05bb1e2a810944c54acf82f61be30463911310a7cedccb71b6fb0eeede6fe117204d6a73942c841da6522921122dab9b0a87a1bff101a294bb4672ed339554f2e04748988799188a1f87822885b85dc973cfbd86cc9c3fa2c65aea41f1be8bfa91bcfb78b647a42c129bf1de08da0afe8accb5d5709e81eb1d3bf20711f033eda0b9849c9902263f27129dcdf54d3cf1b9c3d4d99eb50b248e773c29b65af93765fd376883da054d9e80c297c9163bbb990329e4bf9e7ee8aea2c7ee79297deffe63c8509e97ce633a6cbcd9d067e6c9ff56b229f034b48e6410182436b8b4793094cd9fd5bd04f33108387eb6b49b9059f8995ae2389a35de60998a58dc84475a01d646bacec941607ae7995f4251a0e838f5e934cc196b2eb5516aaac00b5a7458bdb05b5c7114acaf5febc0ab163425f7333b6c3bda76962b5fc6b85ff6166c5a6f63332e7facaa4ab2f7469bbaa1086733a50855f0454817da3655989fff939f76be75ac6f60903841348fa0f43928801ae14c995d5a1639979552690c59de0231fac49018a771a3e9c9344a9df1ad97585c4d172acda18b6ee38ff74fdda592f603829fa217cd7f52e2ded50fee0cf2c30ccbc0891210b454da6831e2e95dd427035b8c1acd9329f999fd49b04662dad317867ab73a556631bc4bdd7370fd7deadf6c256f5524f517b43dc3ac3db625450589ce6af1667f6637f29dcf9176f0c8e12ebf792a3a36915ea3948df856c39edd21a4b5138a578ebd1ef8b9439d94eba79553fdc48b1b4f866f9b393a20bdf040a0e735a6c414187955dc7cfdfa7a4a7ae90a65d8bdfb78db5706f1c3c6e701f277e91df46171219d4c356e7b1a2c11db9400513f1a122286e7a6952c6f26ff936a1ffb0208798917d30754eee78c41af82f2b13311e9d5d381bc94d9a457f89b2d1c5c25a64482cc38a1046bb3bd5889bc4085cc4c8d77a8a82a9734db65ab323b10c359083f81a57c632a6040bf1f73e3a65dc59604d2206998ded58e96026938d7b9158caa66f2375ce8996d104c32601369f794090a655248257da14dd202946d11961134f43f6e884890f9a6eebd25d328be379485566215ba1b34947ff4efae23e6de2d91e0b1314f02014ac1a0111905a0bc74561c9550ea527ef73c5af0c7c4d60c67b605760bd37f2adb45e2065b4c166f8ec14ce348fc9911255295b725694619fcfbc8940d3b2b4fa55a161dc771ae078337df99f29994fe7dc91660210df8cf2c534ead65322182f71226439e3b979eeb19ae5386b90f20eca438aba397a94938b0af5288760967c19ef005932bff8e83943abb5ff943760a8c4df935af0d95611190549e045e915f49e7c28008dacab15427c38872417e8cfab223f69325dd6e76ff8890d87f7522879ab39443a08f556810c4e5ac10c1fa4c9b620ea13402c084942af5c758e63289137525b0280b6168d75430aea960f6a6e4164c1ae524a3db05b3d6916e3e1f803ab3c6326332b9549b38d123c0b12b69e967fa6e16314829b89b37ce985cf4816279df9b596ef4f65d17f1f6f4e36944f3691e56d8cc7bf05d0feb864c1dbcb312ef173053f09861ad700b9aecca087083cfc6ea953021f14e45caa750650f75c546e5fd9b25e7d90bae204296205c98115057a2df744bdfa638ab25e3966a113e2f224e2266edbb7afc8ff79b1f7c6d4935c6517c7599264e407b7c05e40b0fe0c964573675d97a9e236f994ae0e7c6adf07e773ca67f4b6c48dda783b75de22c57664d74bac4015110c7ae3c2ee20bf915da7edfcadc6b3a433e8e9d69cb26b743f08b93e4a095b90451fe2129c471c43806ca8ad98c0168993992135d744fad36fd035a67bd8706734e33f29fd145faf3878b47fe62b24602f63c79e98c711c65c5c460e22bca8747dd0738464c787995aae4cfefd1b5a6a44b25772fac409ed4a240b8b90e9210d43c33d0d945aa9b94f5ee5d2fa5577878f1060d43311f1bc414ccabb5f29a30b285b3b3ffb31b52e6d725b3debc022262d8057665eb8237315d7af2b6a7b31fb73823fe64ae90f7bb7d1b9d93ef0751cd3a7137e6ea0d1d940cd24d5d0a718d220a3f696b9b5322ab5fcddef66c4b9518fc68920382d1d7999417641444ffe5ab6b54bfb41fd0bc571776d26f686c06cff27c553b09527609e87142934e5da794ba0a51dd5828f5d1dee68daca3154e1519b68d601e05b73351b4584e0b7b47126fbf7bcc1bccbabaa3d2319799490c502ca58b9a5ca096e70209a968bed656edefdfb942a4dbafd739b76698ff8019628b484338f04a860ebbd13e09c8d48e112b8cd937d4aae3dd9cad152c71e0d222a885549716c1d270f3165b2160f33e1ff17ee60f863f0334c80c6f3b977cdf02869b384513cb41c596b3b439763d4051147b2e5c2e56f4d8abaf11c20f502700c4f20ba5421a01cd923304b8a9a51bfa8d657e4a3ad7cc765a93204c1c92bc41766f514de2483971f62736fce892da06f7798e5bd4a3a41aa7fe0cad27879e03b8f8321124f5f7c0eaaed089a5be109be8578a21bebd486e7c7879148fe0aca0113afbada00d498cdc70d44dc7387df8436e1934228a7da01c186686f11b11397a3b116af99a05b70bf7e793e9b8e13621742f555932483c59650f998436ed702d95c9a0640bff32cd21a23c848715ae22d40c3f3da8da53ae8ac87a6119d15d4fdcf2e5f436ac9682a083098a4fa1c271de859e49ed28438f2159b282ea709dd7d105bb3b38cdd18461e8ada57b9938fbbf4943c85a47c727536dfa916b5a46dab4e2c8583f815afda2f45e5062b13eff89d54a8e906af90c8df6d67a4a9e435e587069e8a45636fc973df26db9bb7c7b34eb4ae9eac6dad139bc0ec4114fccbeba42bbd958b601097aae12bce9d95d3dd39f63e283440cc5e74f67300ec536bb38e5e9d20073419a06894c1d91c2d0de3a19937b5b81ade367dc6642722b1728904b28646a0a0a3bbb36c1efce9466eef814b044e131b5e7876b7f63e4787072a78eca45525cfa1c900768311e7cca599b19bb7a879f147c3d185c75802587876a2bd346af658b20abae3425187df89204a2984cfaa7cc0799ef4d5e7e48ff38a8bbd0bdb86d185c13dee705002e1f6bf8c13ea68f063da5b64d8e138753c69b68f0484dd3b1f3a6a1e5f041b92b86d25fab9aaa3df7743773e943506a7b26f74c1164332f7ebc2bb8e0edc68cad58bdef04ed140a2130314d40e8b3d529695ced0982e3fc5af57b97ce3ba6fe6ed5b18dd82f1071eff9f9a21ec0b6a1bdf3f87a3e43f9932abd9cb1e127123a2f2fea3b9fe563b4d2725cbf628a2c76a697d6611e6e3fc781409b5649644211e65d211b63d46049d63655e9c0f6395f2144ade423f5d74bbcfe7c05e0776efae6a68f56254fad2032ffa8d44b5def13a805611aedce23be8909109e08ff60a659c56a227a073d6aee47ec456c2dac5ceccaa1104f6f79745a835572b4688521496c19b3f57a856c2eb364339d6ee566fede44ffed1e8d5caacab946a0f5c5bef1bfb46e3b6db3ea9cac925bf170574220e80d2f1283076550902cd56376c09f4e102a698b45ccc9a4dd584c7055ab24790289d45b526d7988d243fa6edd40273f14cc93f491cbc1ad738a3f2f91b22e440e1b59ef845b97c851a01b5ed2ad8a4a960f8d3fca34523ada8738c0f79c9ff52497c04b3c8efb61d308bdbd84bd01136312096d2521ec91a3a3d7a453c1caf84af6cb3729588a2eb0d328a701723f465edfc92b5030fafadd707510534c10c61d163028dbdbf3d5635b687f5f22fe8b375bf464e3eca60babd60cecb2b940c49d54dac6d953cef40393dae98bc9c8cce9db9e9a1d22069fbe4be9c9dcdffe0065660321739bae40ac0d608d7d8e0a223d767b46c662e2b54aaed0f1d2d60f244f523336299e54dbfa3cb1e921db90c9ebc0ae9a33ec8160a3b6691b71436c63da84850ab52fa14b219e0d4029fd1874f10b0c95663425f120246715fffb58b85bfef3e978998e6c1ca0a87cfb6ec3fac5632b0732e430a6739a8cad940386693505b918ef7e6365d96b180c9a1b1fe48d6f4ee6151ecba023cbc7f421b221b136c84c54a3a9e9b5c9c6fd2793812b2848d9256fd2f77ebead4985e9b9f8100219112518ee82a9a6a1850798fa9715643696db238de2f9a5142637430b3f21ce91383cb4311fd6b494ea79457ad9da4097ef7bd86e73c086956824988262d354d282c5eecc12e6e65959f5a785294ba22f08a82e97ef0b60432fde18140f404fba96df8337c1b7ef912ed1607cc5323da8d7c6ce0124a4a4be5071e2dbc5c1497b859712e07c63e45f7694a1017189920868d11b23175960e7d1bda8c3e92a1987b19d975ae10a7c8db1b210cf445974f868113d858a31fa4789eed254ca4b28304ce46a830b9b0617f427c43b1652edafac63c20820653c3eb21542e5e327fdc8a0e080e9405346d99619ead9b8c42df1b3a18e24c0ce88557325ecbeddaaa50c142ceed1e5a74ade37f1dde528ab92d70884feadf676e16002477a3c3ec38b10e3b10c1bd0865e8c620ff2596196df313bcf384ee212b006d67e77c57d87a247b6624117ca3f22042aa036c95caea9e75370a6fca97d5b2d62745e69a4636dd2a57983bd9a7761401277547a334500fc31099732194f0cc6af55dd003e140fc7f164e0009884d8bafc8747aa4ea8389989c6e71ec6e4e8e241d129046154ab362b01efa633708591aebf9ced0a2b8f327aa47e166454caa64d16731ad56c34cb5a258377ef223eeffc640f33e6a42cb16d9dd2e7fc62a7a255783a9583e6e103f21c9f5049621b9121f59cbfe9e2e04f43fab6fecc2c323ffc0b70cb5b7c864506e5b95d1e703a2c10e77377227b1788bef92c24fb965104611df0c2375b982eb9ab8d98a0e17747a241e08a012540bf0420dd952e3dc68e8af2cbf17731d098d335f82eb8d81a7de62a03791765cfb9ebb8ffbdf7f78eb168837a28932e9a1ddd84a4b4735941a2c7abdf37e933ea238f25c425d9255b59ac8618879e9dffa495118641ff942403d4e55991017f3b89c6bc75435f7cdb29201c246feb741461d8635994d3d6b475f2930f12ba1c664d74d2a69bec5e09800339017c5359440d10dabd24f7b7594b1eb8a9c9e516f47c5a5cfb7f367e234b408436127c876de532f0d4674d21c5a838bb307bb5f7fc922d7dc8340aadec184addfa6cd4530ea58559fed8b36b7f3307a7af6390ef4ae5458572e58f334c22b781efabbe2e973ebb679ae8043ce239b7721430e052e35f0299dce16925cf56e08d1b764ed8877dd0ed30f3793daba677d46f302c71b991785b281f4f189b5716f983e994848284cdc5389d27a9d8b618afd443bfa535b7b38968b29098e37ba34215cd3dc0d42db932b6b48ca85b0a1950e7d41c290c0429123dd30c1f8b6deebc91017232f4e3882217d46e21dc3c1bbd8cc1b6219b7c67a4c11c252918934780678eafb5e716838efbcefb4edd133309538102ede49bbce865d592d1cc7a134974f663aec5757e942d294f208785f7b728090a0c5311f67d02e7a6e596a5926acd51607da29386441ebd3ddc88dc3ae5dabea6c3b321770ff17aad51d2f91d636bef2e904a08e61e8f861513b9ab9a3b097ec82083a6a66c5b3d579cf05b4830dd8cfe47d0886d10c847d5cf82b8c9ca4fc3b13b46d1fb3146dafe35a4feda53abeccc582de2c865364e19796fcc587a887c6a713f7a33bf4dbd0e14c774696bca01aed9d632ff7dfd19ff5d443365412f45ce124e16d64184e23b3f54c970a05227f6903662b4a06c734c55a1f3ebf863ac1da9bc2d1ce87ffc020f4320d804fe7e9eb59171de9d1cc61b11f5388b95a0a4aec5c748a8532ec62670f03120dec05f9f20ba68dd78620f46e180ec9469c6285777ce15e7904973fbcf8bede322b33cf13184cb70d414849cf5afabfc9a7fd47a8cef76befdfee73e412cba0d96aebcc1ddefa07b5d41a9276a8665ee9ab7488ac37f7baf4148ef2a429de4aea3c9c8935db165ff8001d13d4728baa0f7d49fdb6adc2f189a5cc5bfd8ab83b5a89af1550170a63091df8c62664d17f84bc354d23bc3b537fb22bacba91bf65c6006b652925854df584c0acbd333d67901472d2aa5b7e8fb57eb6483dad7d3ab1cae88867c511b9d4d1f30a3dec563fdd15116f4b0a9f4e2a3817abaf339913c6add0074f5b1ba6185dd8715798932e7da40f0e8526e6cb9a405babc36cc4370231b02ce2253da4d9a1dedfca60c8bcb0a954add04c2fe13ea8989f42dc935ef5b5233941c6e33f2de8119157522e6ee7c8ff18adfb7bbdad321b8e47a5e2998de61a8d4ba4fea94677577b5516bf0cd0a3302e4e430a1a8ab6ea8f826b43a3df1001b86fcc741b4584867fde03abac286fa983a6a3eb48c25f221b873e1250888dfcb0bd11a5139fbc6c3d47aca3fcca411a0759373125e02cfd4800823a30905cdd28bad519b87922d7c9c948d36353da7d574214d7c1a109268c9cb01527b41fb7bf51197e4ab8e40627dd7fdf4e4ba6a8a76da682bb494a8203a0bd5c6d8ebc0420896262e4f3dafe3861b94bbb5037f3d488ac045ca8080508e08fb72bfea2f4ca876a88ba486377e0eea341003df569396a5c1304d96090a2c3f10b228fa99bdd49b265abde56d2171e28b8f4ffb7470a56f5612ef47ed72739d5fa48eb0ebb91f6adab4be3d36ad5103867fc5e8ff6ae8d82daa9baeb5da2898de092d213f332141cf36783125d6be4008df613458d567b8dd31fd5e964e24c0d8c1338c6daa310117e35d5a855a8df6f32f71a5a164a9152a4c3d37c01c2dfe47ef34987979a30143a5126b374b1e437b3e17543a5ccf65df342eade22abc3cae84f99b145d4c929341e47d3bece02be6b6f0d99c5194bb61448c185df702ae60d406f84bc5417c17aa9c8545facc01fdd230b954643d150f352737fd2d8e72f44b1016f745fba57d23c99519cd87894a067439326a4a6bdef47b6a405e97273b47071eae1ec8d5288e92566967ae151a849cf8c77c23f4d908f04fa2beaac6e39df47ce5ffaaeb91bb87abf42e2066171110617c87c70f19ff93c7453091059c6c46b59f0e6d1a507dfb36837b7073520635949ce3a56450b67dfc0abbb5c8567bf0464a0dc872bdb808bc4d23bb5551cbfec94abc01370642a27d150e0e280167ec6feec62083a188c4c3c159eee54c804288bad6dc7044b106b712519f48edc706d8e07ee315c23dac10d2887866d0fcf20ee2bf148ceb765754a1d32fc52c8c2531c2306fdbb17a76ed44fc1ae1e5c59d9a376d4a48a79d10b9d6a527779fff6728a15d7f21b39b94ce71804301aeacde1bf5e8e0baeec67ae8b9cfbe1433a0cae16a68524dc5be79b8552aad250781032c7032fcbe96d2b9966ebbfb5928852b216286a095cc861ce114b4d36fcf094c7d5524ca880c6c1442e42d504b40406cd0f9ef9987f226d3cb8f929b3e330841eabe774829da97bdf526bac17a7a5cb8b9bb29acc4b0bce09b634884e895d95b1e2f56d7d40a4d0b7bd65104e000f40f0bf2fd2426d35f8f67c49b0d58eebf0d65f38146fd70461be52fdb5378b787f74ccbf9cae5c9b3e6b82f10c8121c414cf31bfa142acfa2f996bdd49d539c7d3573979a4998625bf4c5e340d8a95e8159d7ba6f0ba6895debb4ee32d20317002a9d649610dbbcb2b607d59eafdd4964b7cc95c5457723035b0825f78344a67f5c208d58d5f9824ae3314a6ac07bdc15b7df8b613739c52d40117b2d740abcdee96bcb083e9f3058db64e2a96acfaa434916adac66a5f2086801120409b0799a4ef74d88e6911a71dbf68fd9cff21d865fed97584662dacb3e62c523642d40af7a0267fd8a945ba4986c9011f02d3719d84d19e0ce4a865cb80b596c8de37bd5bd5b5bf8d947f04f0d8a6ba581759a39def22be88e7cff771518da9cc5b2fdff7c1a25689c339da7b1a09639ad0e17a6bc2f4c23ff53b4c7fc5dd7ee7df606b53ce8c76d52d5f07676b91c496bcfa4408e13e6ed92eefca7811ecd3dc09d3ef12bb8d64b18064c02d6103bd35bae087efeddce33f759ef978423a68d3093bd64e2d267f243f16b4f532dd17e5178ee8334f7ae3c7173a457b555cd8352cc7a889ab49ce3f0b25d05c8029a06e5dbda4c6688a640520658d3922fdc414e03f9180e3c2d46126c1f3d4592c7d56092f07b5eeb459c25931659458ec0f98920036251e2238f7902ffe52d2690f8b59a69790362c43c3b463dacebbe85865c41554a11235fe50be25d1f520b4a8653eff3aaa7d5f229768efbc491b9685331022fa10beb9b12b3d43ef137ed89e01c994d464529dc5021bebab1dcc688531d2413cf8736964bbab3fe5f236ad8d18184a646b81d5f69395e8c1f94d7e82842241be09447f0205f1d90a56acdd28ec9bf880b1620247025f55a253af30d71ce46ebbc739505f19230b94e470d11e5c80415bc8a2540232868a0478f48ab504fc61352715d748c37aa18fbd0028b2ae1f0d335035b7308103bfc63d27285cfa7016c902e848dc181accbe00df3cbb2baa541e644804f03f4bd3264fbd274d87fc15b7305578ab2e366a53d0830533b09c04512ed17b715cb5fce77a84e12b55990a6b8f8f4f4a69923d275b6a434c605ab043b19605857970e342a587fb54990d226026a0888b9af12128083a75f1d147df5f212771efb6bab1fd5057fecbc099ab78d1415435492ca12fe29ac975faedb6a7d9b5101fd19db639d0de6ba4945639af5207abb0cce199e7a255fca9ed7f75e3233918e08a0ebebe860c3dc602d71f5afb748d7d7dc32f2f3cad23661ad90842538d1e85ad6342a82acce661824705d1d0194f9413db47e760f36fc6db6e78d7ef321e4ed2e568831e6e8925b882b025e5c6d86d6604bb74ad2510800bb35ac44e12c32ddc01f3fd4d40e7505052abcb32aad1f3b43334d2931906e15bf9e0915f83e23961c8fd97750f552b025e98250af20eed99a01b90e97b9e3144b34ec7a1c0b2363f1053cb9894a9c78ecaa41161ca80a02ce143255cf246d5244442411a232620adcffd37ae067f38f53980ec49009e1b6e231a25c28594678100cb94e8a50db0d057e068dc1c36aa86131177421cbce2276106bf633ba116309de45ad737f668888669bccda0ba83cef0a5300c5a2d7f0d5d73eca187e6b6cb640ae59171146a9507042782f6c801cc3d14557117629ce61325c8f9cefd9728c0e147ad0afcf05319f9e94271c66e339deafb472934758efcd7a60a8f928ea516e2dbaa4e6a1d01b553a8110a46346b7cc0685a8878a09441b14500d6361db613d751ec078e038a88c2596cd35466302e47741757648264ece44125ccf5db941cb95b068693d0420fde186ad98b0e5bc6c070f0fd3a317ea2dd1cdc315de4abe3904db7bdf22c3bb8d713eb8d91a7ca8249c0f370d7e427d88f2d2ab9fb1c4f683e51f56d9a3df7286e70147572c435c606438542cfb9e2d2170ccdf6620809c64375556bf718381f3c1d7788bbf2ca530c9ce4db04441f63b934f20725390afdbbec210cb74fc8470664a68123c2044ff077c6072929ca2386212d299f978ae589c4847940bb5198fa26a66bd0f5a5597ead0bdc88e26426842fd9fdb9943d2f6476795f510d21304a45ff99fa5c6163d1ea9bce86dc5609f522a6f2fcd0b7a0024388e134e0a5bde4f885991d143c1913825eaae64d8b984d279a65593f895f7221d729566a8b179d42075115397cd1cf49639cea1fd8090d7c731ca2aca8d5779b4ab33e7e147a76b63894ab7e301def5a63571e11b8b8c90d74da62e434adcd9c69a227cdf621f6a040c71509617cba772b445a0f706ba4d911d99a7cbef11e1183b6169fc0014a10bcfdd1cfcdeda7d49b369347d6e8e8e097afd9aac93464e6691905abb7e46e367d1a41bf720f891a5ea7b165ac0b9203ce5966d85a4dabf8123c8cac16384bd38634c62d0e6f9039eb154e50b820e6196227e0a527f4e776065bbd0fb3d6ce611256f96152eca0c2160f24e97cee1af593e1c97d5dcc9842c49a01a93470a8ebf84c1174eb557911dfecae790cbffefb2c73f09100564937cc28826a9d17e33f3344e6ad5a3dbcd9f92b8aea832c7656cfde0e9270bc823f4b891f6add61064441bbd5b6a35a32f0ccbe8780dba15ca24e630c7c959000016c82ad895ab98b9d04fc0d042bfad5b9de862b1f7864fdba65e9ca693a528cb0ba5a93278c12099b11aa64fd64310f0b6ab29db1da24dfc89797776a6995eb0ae0831e6b4d98dfec9f2b7e2de70d0be8f9b2bcf489da086e6d8c2c80ec4725cba1ac345ca8c3c4dd640d9ebdda756cb102b61b743f4dd9057ea072dea6aac344fe168babd856614e8c40de97106e84d03db27eedf5d9147efe5cbeff50dcbe9089fc131e03f4d78dfa9aa07c73aadc77ad4b4e911625942996266eacbd42f2f41f199ed9b6ed5a8cd861ceb8574b0e2cdc27f373fe2b467ea2957d74ef90584eff36b552885d52ee8b0b999499a08d9434dd6ca65f96570f6e19376c0fe87c73f8492b6118b062937180eafac9ad2718bc782175f1c3d724e8eea618b3bb3ae89f18c6361dd194b2b9ed177b9af3d3f94ad0c1a3af2b912f9403d24ef2b7a86d1d818860e372f0a6ee1dc33ec8e343c4d6f42c029e6a02ae1ab6f97d7357da30398b5c7bfbd6648cf21562f7aed156fc7233b08f9a2e29fbca3a55a3c0a34797ce7b0f8423493a38afcecbec719eb1b6d0d4af04a81c2d1759e2a666f0a7f32d056bbf3030399de281a19950504f9e497a96c523813f73ebc20c4c519e1ffbf5710f7212bd80848ef46b5638081ea25d04fc5d77f51d6e341aee0a58b1287ee784c16672934c82f12114eb9ee1fcffcdc50be55e248c0355a9d0555d955b81ed15482dd47b17e50aebac077c62e9e1603620b82b758e1bea7714bc131c3a13b84d09ae38dc86b5ffd38e8656710a0fdd68813df14c3dedb0484e14c03dff9229f8fbe70f8bf6dd7f5b3da69cf66038dff480305ceb5cca339eaa59b51816e74e5a48bd8ed1d5314670103b4cccc10a5c08d68725f52f981c94610c11afa34a7df1db0ded564f692b20f529bf7b1a37d60cb439bb228e41e732642db56cc14b40c86449063b871304ebb7a043e8d3cd87064bcb8c93c2137a689c123d9fc4e924f7469c4095fbb27e32a5ef03769831101d220297ace524009b89a5b94dfe634822627585cd8071d3888e2f4df6a054527e10f9064284c251fb43ce75b5bc0c955e49a850f0e1fd72f4bec37e7a3f0308e5af28bf9448cdbfcaf0c3b9228b75c2bf8af050977fa829b46ff92b154ff551d10f1235b020a7395ad5f5807095b9ef2ca1d0d21a86c2ca0c8cb9add9db26a44974725b884777271dbdcd12d8e8a8899060f91af474bd2f081dc15588b300f3f91502a39e9652791ee7abbea3faf571420030720f0b1c5afdd61c5cb9661fd20671e30a509a7cbe86bbe3257ca2f974b2301a14db4ba778d9578250bee52e44ed7e2af45b56e4084e3d4b503936c3546198b1bfd407d9d78facb5e113bd6bcddf7d9669a46e76ffa149f849ac3d104d1ff2875d5708b9b49dd00bb260b3f74f16cae8ba4d22bdf4e4e20c8c0c1d0353fb01dee841fefefa79d346b43cc53ce654628dcf35672dbf87827afc0b508b37867e7543a84d383a3996567583838e3d3dae9d6fec199e0f96a67c089bcb2033708f58200dcf903c7f6a59b25067c98898533803ec3bab5c64251bfcd33d1f5d6648b061453fb3305f77e5de6c44dfab98a982ef8471f9fc6a48a37cf400d01378ee044abf08e14d02f4ace0fc9a42a9f566f76784a9b04c0eb6ef131f66485ddea4f05405124e505148787946bf6627d4c94db176cd506a37088765bfc3e27106ff34124345908d312aed149affb3ba0c0a3251c3a91fa2cd622cefcfdff9a49d4947edf8bb330cbb00b9a8b711d0cbf55bad0f799a9a40401d6265474fd76d392b2f652d3e00268ddf6323b884b6c2c9e8b0832ccde2015e95b6ce1b39692b61dd50d41bdef4636419cae0c74786ea82ce44eba70a283d3c6ff2f9e261ffb07c43d27707a49eb271e72a295e08ebab72110598c520d435f9d1bd39964249314eabb2f83bf797e68efcb0db064f2455c3236309b0e5deaa98bc7cbca4cbc4963096e3ab1b9876035a9db344e58e0dd7d19d02b3f3518f0fa72231a36666f0cefa6bd133d15e7cf53611f215cf84d4a0f7eddaf0a60edaea932fb279097449e62b6ba14a63304e545101a45f5a61f51c7e81f72f5c840d1c004e6132a7cb4bba621e5b170da845a0b29793c34b3db24f43bf2c1566c4c18a3ca69af509ecaf3aa3e283c85674123e3829e9b4ba82d70a68de31c772b0375a3756c313e7369618098898fc67f007af3235cce0ce64b4dcd2b0f656ec7890aac7c198cdcc4a97cae0561b13d78156a6e96abe067b4d724780187e41da88d39985d85fa11922ff4599aa729a8d3f301b8b59d2d246b472b82e96da5795157c0068e14640a1385ba917fbbed46f6e81d23d9fcbd2a16ce5bb4966da48d3c8af3c62ef6f98f22a2facad0212a52e5cdc46993fe8e3e5551fb8a8c7cdec9ade3f2b70f60a72a2eea20f29e428df884aaee5a944113b22978889a8311bc741d47dd1447314554463d5f0d12fe100654ea4458efcff168faa4d439729aef45401ec0becac8965fba0c0e10998a1f90e0fcf25bc851ccfe73b8dc70529fac55ce46ff0594e91075407702b28adc82bf92b25f799fdc694cb59380c0eeab52e7a799220b665f851680323e1d0bade3f9c615d17887a5a5aa940d5393970a22db556ca8b52c2a5db0f39631211e72389114f5b9e810bd62ea598487bc37a6135725181fe2133b3f68f36a7dd3b4ea7a4308c82193f459dafdfc966aff215b5666b307a312d583bad5d6c4312e16972c143715e203735e82c5d312109d905fe02d92cccebc78cb10418f7b268ba63419bb9f966f3c2f310c3c57d83f52f1c2d61f7055b9959a2a58fc90715bb65c8abeaad310d62a7ad0d41b1f12ee4256cff413e1700af59a83c3d6dc66f98df7ad09471ac78d830ad56768dae46cf3b2ef192eb36579a7323beca86090480ae99580fe4d1e07dae131de3bb5ee49686611622760927e7f6983905d5288c27f35960bdc6d20fe22685753844038255ae917ba5498505d391e3bb672a5f5cd37f275bc794a706f11b8e695847ceeb15a07cd56d9ff63c777c244a0bc780b04562b804852ac1ecaebb0f82e8250025f8134a9421fae22eb3631b396a863a56b6ed47bcb5bbe204ffd6a609f3227bd3782d020c9d84feb0272d6e089f6342acd526f7d7c2812881bc285eea53ff77bbd37afc981a35ef8d2d8bf071508db0d7ae44df8b5c80f0474cf6205721b45ba79241d07618058934ea7e4ffe525c0b20976e50a2ee0a3e07937f32d6ea842bb9cf36f5360948dbd2a6d63f1fe7d0daaf1d4c867308908ecab4bf78a1f8431f159e75e2154ce17792dcee26d80c04382b9845d8dd004ac16c774bf3e8c1a96485b148e2d4780440e74210f89f62510d53cd5a29b3c62a28e1d75b93bed432bbff145a4bb569e6f7dd1932bf2bddc39b6f397c40d10736ed9b66478f289d7b09f9450147c1386020a82dbc8c226e5ae7984d53cef4e6f40630cd83923f3a4b2984eefc34e976aa78f116091fa4075089a59ac8698b1174e08bfae6569300883716376c4369f062e0528605df2ce57a3d9dd06bee4b2d15cd34b3f5ef37fa9c3980f74dda4d307413dbb6bf01d0be3bd11ba2ac6de7e5f16db66b8555804a9ce2790ec3751b9115fa94cf6850146b7734a492659cd8a79095c45ec9db83d3ffdff049ca28f31e81a73a65e0c627e279d3ae87292a9e70200e7475e3c77553a66877d1874948723cb87c783b0ae4f61b4ea1eb23f9d42daada7491e58bb708c4db39414b2e583a1d91ccd3467ae9be177081b77c668b779a9d42735c3f4ca8bb8a6a6ab9b1da6e4455bafd0b1937e084c7060ddcbca2f8c0d31eeb8ad29554c0440bedfabc0ab73a66c7fb0a58eea44d96d75a0a32b9ce2ab64b030b078845f205b4c12c1152e17c988d4cce0370543ab6428b1b45cda9b5f83d16d9877ae2bc31b558619c2ad58ca1061dd0ec8255b2424f051a86e33136e05ec974dc6d07967a5780e08ca82e07e06f9810821831fb6c2f33e8075021dc14d83d430ed74b3ef075cfa93ca64993346a8d32d584fc8d22815b673432a5466bbbcc8147c1e59ea718445e3a523dc849df36131de3f54f95f627c987d2c2ce9e7051c241e63cd07ecde961365096dc5c98003fa3db137037edcece4282af3ba4132a7da79513ccbfbfe2ec82270e765062b3dd69545cc6881e3feb11cc7b9464655c9e78834903d6d8941d3a386f9d8b8e92c4219474769bdd40ca927227d50d62a78bc2a11bb4b81b8b8455ef69d4d6c495e0f08feb892559d6cff4a9ef593155c75ebdc0ac0ba0a010417c0924935c23c38e381447b068df3058364e088e4ffd0f6bab3205cb41f40224dc8f5afd4ff4677f009cb4391c6986c6f8338d9ac42e03d06c3c1ecfde6cf47421016b8a257f20b967aca16c81cddc6ab406bf8cdc73fd8981b785244e53596a61b0f13da3c6bdbb34a08db1761e0e07fccd692037a78e158c7f34e83238bf43a85cfc93e709b45981ef5aebafa516558a98f3b2944e803d0fa3f58f2a49ebc62d7d6d6db6917760c4a48d34de98f7b3e72b60449789ef3998833f3736de3b630bd8ec57bf645d8f86b07345aa71b244cd9dcfb94f6b6297512afa95b83b924071fa20bfb5b0fbe818256a125ae2995985971175ccba2ea9151b906514b3e1ff636e2c37941c7e1cef96ef0cc6118ad487b5fe464e81ed81b2a7b22425b26b73c94b59c18d748864e0c1015ba8c34d73e6d7764d7be6c1a4297f60b960437c42e2918fc63dd8a21999efd07dc2da1c0dd687a3b85a20b4777282e6d5839b89ea38fc7e0f5f9b2166e8d3c916396e07f500dd0167873a4ea6520fb3f63b1eb0015ddea1bf0d70197dd26d2346855e74c5481730347b137800a02f1b1404cde87388a8d22394ec3a96ba91f3f64477ebeb56dbecd3145a200c4865e15d62c32da3f94a631ea185cb571ed905e9444319075ef236b49e66049939b50f4734b1b6c70a8cf85508d4fff6c700344aa811e05ac35e5fa62191b53422b8c7cd3b960e6ffcc2faddc46adcb5717fcc63058a4c4d4d59eb688ef35b9d9049dc68e12a10b879c4a3f94af9571dc05bdfcbb819f217d34b852a5b108d4afb55cea8526533afa11d7d748db87b8833b45bef1354b61f942e4931f056df2eb721a949d1fa9f58dd8c2fa31a7c0d2068381684032a3c556d574c3d3606b23a52bde3df486c64b7101573507adb8787df254968b3ffdc7ba42a1241d6089c45709844545e5f7f1d94c306d68fb76ad20a7f5e9e29f89f1cf379ccf16768a8445cd1e0fe8e8696b54f20dcae44fe74531562059f73fe29177835ceca7b83d8913e00f741ae9325f77c2f33b8c4e66bd796dfb3e2eaed2ab6b3a38a95bab9d19de0a5fa1518c313e937740524622ff67171fd01358fdcd3dac915988f688d381ba4e99a386fe56e1de3cd7deeb91a886d1217c2b0d60b7cc6df34f91c7e5e0343b6e3c77a024f69fd24a8cdafe3de1c633be27e4889a26f9c6492b31144909ffde80c3e36ecdb25d1271c6c0aa3ccd05f664b1bf640ecadf95bc96e749de75f322976d277c1f9cc3c59f6c2dd8e6f40656b1c0f465dfa040c3910a4460c945e5c51dbfa0e69eb5f5271da83f062365ce62e393bdf837711898e6604b3624dbb57d797c2838fd95412d3bbbc54e90f2597c2e3d650f65782a1a10447b07ae0cb2ca0a7109e9e4d4be1199b7216fa76e58ce6d442954b3a598103ed09ced3bcc58bf7c42bcda65e7bc17719edc7bdc37fec6195b2cb9b4d171e73c003935834ef1e46fe301bfd6bd0b2ea62011e5ddc1b3330366866f2b331596a604c89c41d32cd97f98b3908b4e9ae362dd97ee3ec329d54f816a83149e09a5fb188708bf12787e7312af0bf91ffdec58c38f0187c1d85fb38a984c2504df0d661f2651311ef541bb32d1b1de3dcbfcd718ce89a01edad9edc75c98fcc59da32894a8b468ab2871efe8d7d0a6eba378a39244f22c512793f4eae3b222efc56ee6647ab5f1ab3ccd6cf2bda9488ded4b77c6dd782402542eda9f460164d18596f76392da05442e9463cb38dcc31f5f78065554ec592581529099e6808f2e423f6cee8f24679290985a71c000b74ebdd09d7cac4b7f0b718c47e405698e125c478c7b43c1bd9ba7226d3bd9d137302e2ad9751d5aa4720ed83fe1b09c8585e7e3b032c5ebcedb92a3a63c327ca8c6d5875ba3833402fd912555e5df8cff71ba5b351853563204b28571e43c90533c402d7544f1f092651b02a8b75545db6cbedef26ce16ae9393401bf54ecbe222a29371019a5a66e8f71ac96b04ec9f2219f03755c209a388928c061e33c19046985c375daebc407649cad122263d3315cb549800f6ab1e81febbde5932c1ba70c9e711c5e26c874db7b125ccbbb98a5bb372e59267f73d582f67c1ac0b26d6a7c6c411484114afc27e79aaa1f41b93877b497b190078801078a9af1e0523363ba5e413d8be26b30dd6306329b1dabb8c17147499a85998de3d3da2af76f63f0cdcc012723f9692bce531acef5df94d76a4ad6dd894653388154f5357d8f76b70ea0fa33da5be216dfbf3af121e3812b018b71bf6627c1cd2637ab396be68f38595de61a23bb163f55d14dae37352629fd9e89c9412795e12d4af23a99b1e5ef677c349450f1c6c6c6b152596ae145f435ac6d082f07964beff050346159ba9e30144ea0194c9ba6b14fb384046d2acf4fa8e59f1251ee0b13a4450aad3ef50f7190cb9d765aa04f5fba1be92c8e12568024b2fa085eb9990b1bf6a304f05d6c4c0677558a32e2b80020db994f1305f39efa56129ae19b1f013a13385a3c36c6fc9440a260187ee64f404c9409fb6fee9ea66aa8707002148525b0da04a1d8dc54448a638e742218f7cf7348da6962832c8266e9ad481b7d9007e9db33c934f43c72dd25db99e018886223f2d4874ed086c22f30a77ea947fdc4d4fd3a9c320d41ba9e11e8e48966319a2c7b3e952e863dbd6a420a0c1f8816e447485a30747e91bacaf659708384abd3a9157a882af359ddbe0b8f126dbc493a62bfba8e4c73ad35a0235b543652e584ef395caf91b033372e6b38b1bde8b86c20093e3b7411e9103af6a2b427d8fa1d8a2fcb4801e52f3bf66caa4bda7ce5e01d95a58d59745f577e73871d13ad2b894cf02cab27877659a233e8f7e271f0232e11af7837a573094c967bf90a4ef03c4d9b980386e344dbce2d8a8a1cfd070f38b15957673e46f7860b3c90cd8a7278a955bfff1919af57e730db24c07faa1cf7b4da9114739aa9f3e704d5fc574dd4364ae5ebbea416a3eab2983991869d7554a04197e9cbafe476e51227ce8cd48b373ea35f08030939d1d35102fa298fe7abb73c724914802855e309c2a70758add4600f8d88a878213cc347b6acc1efcbcc76cb35371d4435c24fdd995d1abdaffb0f4a997cad4d01a5b5b7d8c60a0b9b4f23e4094f503139bd53160ff36622ba462206d9e260b20c8f02c1977b3ecf037f38ddb8f40d95da2d1b8a44d8a0dee50e8861c22bd42892ef914c7143641d09b11d2537b59d803976668d3f5cef9996e154b3815cb31e13c5d81638f7b66ca7b1d4756a9b91c6b25f521d3469ea40ff2e7d6a6de2d50e07cfb23870b1bcde0fc128ec26f8dc8fc291982025c99dae276819f02ef0e2aede28baa97d6632ad0846432c12293978faa99fc815bd7ac638e83708a83964670b8d1ab90821928b5b3552f3cede2a4d28563f416ebec2f2a230d4480a04e59ec08f87d43b82b2f14bf1c636d9c9b2b637409e230a1e82f94d990e2333510c6336deef896b9b4e74a5f2c09319d4c8e89f97aef684dd762b38e8277e617262ec95fd3a848f5fb03cfec6af6ec7a69c6fb961c95df2402092675f562cd43949dc60647c02a94fe055597bb276e55b6f4ee4a7b7270d3388d5bdc6029f5137cd3492ef6cc0f6abf9b02f77dffd755d31cf8216db7b39f5d84be81294ce675ea538d6e04c2bbb47be797c507ee047ee85cff0829058f95103df0a0f154fd3eaa02f34b89970931fcc89494b05e80ef5ca4aaf62d765777baaf2e9903505c60ea51db6838ed54c9473285a03d6bdf96f8cc04c88d6b05bf34b0f41e74147cd1b4e9d5badade5955454415a4a49761a052708a821906b30d70505b4f3b9cf24fa93038302a36e0c4c0a006508052b1b5c0f562f6a8ead930bd291bd795960bb84e2fcd716ed823e651371416cd2503b14a3a1b31e725e89855d250272461224d3610ce5b729804327252775d542a8a6f2036c7088d3df17019a013e95acb9d956f6cc8caeaf80d852f509c3e25c5635d41040604a24d2631a3792f7af91b7f66961e26b9a499bae990018e0912aba45fc451f9793aa69d4e0c1ec9cf8360620c8cb30ab3162d0f7707537642dca98514f1d7a60ac4c189556f766e360f477cd00e9b831e4387c686c3a025ba1746c6b72bf85d5eee043f8a7a8d71efac720bb257e03fc7443eb4a25ddda056891c89cf6162187890b7e8bdae71d0854b8b84934bfb920e0294db910537cbbcbb9d5f882462c1e3d20ee291d2187e34a28027152a23ffab29ab31461741b112ecfed0ca7e5dbf2be022955ed2f93c5750e057d7f2730c21e64acf3f11fa9fcf545dc3c63f54c771f74a3c1fb0ff5033977b415095e65d09f9d23c6b13e12eafce3935315267289313c732d3a911a99341b189292393b2d0b07fa2eb0dcba21d9cd10a37e8ff5559653d3db92882c52a55a358eba3483eca6d75f65b4d3b6cf1cc7150fdbba4ec312122a76a4b35fe6cc18840a2f32326eec78c14e025713a2470a2907764ad93ba9e611c576ab7a54f4baa21752cfcc9c5ac9495fe33465735e466991652bc3da6664c47f098b51a669937192a9479a8fccdba763e61d960f69be1cb0f57428d28cba4ddd674a15fefae8c03e2416b0da679a6c510d998a4cff84434b32720740511b5b12180ea1eafff65c29b13a93e28790d8f0af10890cc15cf3ee875198e2cf9f03e1ca9e5ef38a8585cf2eb27925920749a311ddacc7656903fed016f86788249538ec55e06b30a49beff356b0e61f5893e17ef04788a71a02225bcba66b3b7ef8128c612cf6d2c7c3c91dd32edd545c9fa0b2dcc6ae626290bb1b8e707e98c5536f8f64a01cc9a821398b86307b9a090a46748f4c21584eaf8362a50466d5c0b7131cfc91a45c65faf925e445689ee48eef89cf2bd4162c8f3fc4e6d36d440a3bbfb280b9c15cccb235d5c46dba3e83c0592685c7f103f682b8f938e5c3354f13ec27f68c82b8cc3af063e85b4dc412569830e7dfcd6de9c7f21187f328d6a5e3ddd6336f4f7a022b9447e1b7d71ac92134065628f84c480f66f3dae2e46c1885962948f6d255a3065d62a8def07a92515833dd027e7ce0a1693d1cc863a591c237ca6b0fca6cd4a2ceab1e84d12d1ddc562daa37ffb53a2a803fcf32400a2d68ced8f3d4b08c82bab7745787451ed9d680c32cbe5b52f4da62a111503bc4b16727ba8cf157026525c4549c258c4e49a4c1d5bd687a69953fc6a7bcc814e143d89b666a02d1ff9b5eb09742bf899a5ab8a60dd07f961dc0fcb1a221176ef4c3e81418da7e84fe2c272d26ec7188856d29c02f8c1cfa02316297c35241fb1e7392e220229d120aaeb90c4322e6b0027056ee56998f05d1f26f0c8b15c8c1bb566a3e479aab6211aefe4b9be4c037397160fe9a7f5c966cd5365887c592a9db3fa885516c0e21e2add8d9e2922008baae0d51c3e17fd928a9e645a771f46bfed0dcd177dc980dc32b374f5126f00c461214a209652a1d7424df90ae7d03e724193a340d4a92b3ffebcd001246465b07841e749ef92d63aad788a914784dbfc1c4c0689d3e5b227bcba39adb7fd6a2ac964941603714ed6295f1d6254b8af2f7b901757265314c5a28710becb813da4d7b4d3b78777663cec8b7ee4478773cb44ee3a973a31b488aee73a4f2b97da5bf088987e053bcdb72d8f2cb269178d9e47eb1ae6086a7026472135bfed1a2150b1f0233cb0b0816c08154e7670db5772d3a057fb875549fc6fed69c0bf4984bcfc7b17eb8a687f06c53c7189956ab910f986a5b00c4b4833ded95786719f1585a5ccafae08dc7e3fd34bafd36f5844b7fd918ca3b1be3116642749572dcf205f76beb878f5f52045fb799e98836e436f8780be9590ab89fe4c85a4f122e1116ef3e356bf32ab0cf871adccb2d6da9f5ba3711d70c4b05db82a3937f844595c06fb0981243c9fbb8ab6ab1996c9db45e94da17d2e04f5cea16dda5210f25eace56518d3fbc43f4a880f9d2c8707ec86f9fb5475af29063225ef2bf20ec1e7d6c7bafed1b189eb3b822415695b8fa890c24f72d38e744595739c89bf36f5db97692bc0a05a94918ceccd316143a86408b3a742a6428e86685f50ee91a81df4b8211c53084fbf79b7c1cf844cfaf3e2f9afde600c3f426f8eac12593281f10b60e979ab82c8b665237e948f079e34d1b4bfc2365c09ca2b84ab595ebb0b6ed75c3d85e446e22e76907e938f8d0951a5ced45a3aaa6d12036269b1fcea8dce12615bf3344491a5f043201b55cb58135a936081f197762ee61e22ba69337968b5bc8219adc566e139ee88df7af389e7becc06239e885d12a5634e8549f08d4e901c5bebc27be509324bece13c51994770faa74377ae53745d35b5ec2d8194c0394a49c8bc8b58851334d873af1b32505381104f1f69ed1dc5eafbb4b39d0ef80aa9dc054a60869b14536e4fa9efd35de3518735ec0d387cb82644a31950e35d8ceff9044e3d604aa2cc67fbb2ec1613d3ce4ece4670201b24fd5731f3dbb50b75a74064d2b2e66fe9fa5924325e98c6eb4b70ad2cff6896743d0e5182471637eea0579229e13ca66522e5bad2fdd786e133c672ef57ad0f7f9f385b47c6638f5108af48c970685b75cc245c502ab68233c77712ca627b44b4bd2d651c8737db82ccc5b31edb567f3635be8330e088a0e959b2f2f2826b764f4622e4eaa196764fc2dcc11086797f7940e59ca5c9d15a7dc10ef8448dc04ffeaef21bfe7a6faa116e3e7e398d460f49b618755b50894c4c61e0ec6e30752e912748da46cb9920615655549afc4517d6644aa2d8230c35f5cb8c5df2c665089f15239d4fa3376c4a8d41cb498574accb759649b22b8d2c97e3f8a1da150d5c5d3acd45febaf9d001eb44fd12f363fe968243a65787ccdc11b8bf7513c6f764c52abc3f4b175118db2a1999382054d3e0b4208fef7a318b292e7b038a6bbe086dd7e4c5151eb701ef3e4da4d26393d5341348a85c9fc56231ec6b96652511a0bb6ef9a17d3e227719e8e069eb16c6e0fe138889fd0780966a36ee625a0fce9bea772129bcdef7c42d92818283934a1848fb97046cd75e9d33a27cac7209a9636850aa274bc7b5ede9a5e150e517d4986177c9abe7da234c2b6731286408f2617f6eeecff98666358e875272f0b72b21ce2d4102cf99fe5e78891a34564390b0342b2e0553e763ed624dae2f37e096d54b4a30f3c373e1c0b1cb5e19f644fb4c7adacd4f5c69f132ead4bcc79923e15e8a60d9e3c488e124eb34a407639ee99d2a4cfe7f2fb6d45016ca87759b6936e1e9c6f1b3f39ac66f768b5cd3874f7af45fa2516217412f4394b8d7d354c7afb3cfa157b6fce0abd10adbb142996f44fd09a8d4b939f7e1f2aa088f551d3fbc79a0101a4bf2831b1aa8cb55138b8363be1a331ab4ec7c0cf94c6d8626761a977eed366cb6440f8297768323325c940fcaa3382492c1fd86e87003c5421d0be035662c78b82497fb4162eedd0a0da69ec72c92c427c61ecbe0b4a27cca916628f8e63c57ed48323c7839c6e0d6496ad653c2071a80176d819d4a3331b5d9679dcfbe29ba23b26604cb371e1f353865e225918c0d7a138bc8728caca90c37f38695c788628a35b2b4fdfa72edc98531f9edf55600e5914899691eb2536d3d3850eccc668631f5ea745b19538ba005e05dfdbfcb041838d73d5f2bec1c310f71bd48f54584057aa543eb09cffc086169b84bca074d55dd3cdd822552f5f1090831f46da58b024d9aea9169c7c198568def700b4fe701c4af744f79f5a8194a44bc6c0bf3c649c51d68257e50220e121c1ffedeb509b7c9e07fea65d218b0894168c6ca979e59df64c3c77cebeb359f87c3fd080e8b6d8dbdfb01bd780f8e7622060ac8d1150bc67ed1446b8d6f5df7e2d9822cbfed1e768efe9e09fbabf30571bcf8ab043a3f18e3dffede8a2125d598c31d78e7dfb5e52bbe6f3f38ccadd92ae4c5d1ce267a4c082d6557e26b88e6da75f4ffa1f12e3fe483feb8a9734f729a66096fbf503141831b47b07d19fc75d7af881506b3abd1409656fe69374e6c3e74dcec57e1264eac19ebb7fdd89d8b6c0712726e474880736210a5e68c6f72b1e89a586b14a8c7fea3caa23cf888ef3037320036f5ae4b5057028236768970cca23a8acf874adab2e1291e2a10baedf5a97b998ca3080aab07486ef726d0eb1bdd0bcb67e23f4e9735b6b6a4a64974731555836d71fb0a070f3d05df935aef5d492194f3cc797eeff24f17ebeac5132c5bc704a75172b424440cdeaf57dabf168fb8ec8caf616f3f475c246240fc5ff7843a49427928992c911fdb59b0141d09668f25d516cfa5e1df3403571f4b48dc5095b28ead2e86d39221817d7e0f258e09c9d96459ad02bbd16a4230684c302a8deb08123fcd3478b50a94b894e6cd3492c479570cc54b65689b31d52aafe840c06debc8d0bf3ae1aa67d7cacaad833a775bbaf77248b76abf623607d6cc26f521acb6ff474e4b58c66b8354853319090b9e6704023b66dfe8013f046b79f6f4e9f0394abacfc1dcf6e11badb7781264339cdc227b19a14be9dcce43174533274027b5fd09c1037d34f55fd99e56f39087b3e23f218515e42fd3ea1175785c2a4b502e909707a5a7797455e7d2364be9bd94d015a6b7a27a8d0718e46207c66af30013d59000f4759f79014991fcbae1868f6bbedf4d20dd252385772e465de4a77c657377a3e21c79b312ca1d9011f385e1ee3172e2a7375ee38c970e1c755dfa1ca5d2d78d3317829b7f55ac35fb4d8adc96e7406601d115140db184247bd650624a67e1c6eaf63f2a0d71dd67f5ac6002159b28ae2e97746445f79403264df593c5e2a43ec16b6b4c0e25f5e80ab1950ab6d2544d56f480603951ae303254cb875212159e539a1c104456a82fa1995e988aea5301c7ece316c2d2ef2776055ad0fc77f49c52e4d5d5ffd0803304b8524f84bc169ca3f94e7081c39785d721d912658be83bce7f363dfdc85553d1c5b39b667fcdb614372041f859dec9efafdee5002367191419009790b93a3dc7bf9476860ce773bba408403e1fcaae7888aff32368b26257761fe36eee4e952e07a91f8244268952f2d71a2f70e6b4eb6ac036b305f3aa53310367eaa37091d0a5247a79bb80adcc55ac2382bca0072d4a88de046c03ebfe3f562dfcd19793c89a9dc06808e4375f78990dd13f4cd12732c29ad9cca9f9b18b20ceecfe3daa8da8a94942dfb2536f5cfe47d1057de774f9f6f4ed8afebe58595fd53662137ac2c1746be59946250ff8fecb96c5610ae1b0c52efcb95a74ac449db5c491c6bb2ab984961d50466014d647523a678c82c681215d3cb3748faaa54e6ae201107103a4ecae2c141bb239b355a9053ede557b4b43690b694173cfb0a2b47bb73aedb6fcc8b3a9fb031271172114853b3be4e61e1627dd5451f49494ab9790964b62cc7181a764d6a0361c6dc71ae5d2c0363ad16f73a9c87e62eefd08befc487a762914e2a734ff1f7d0602e3001d2c1e94ea60b6ec188139b0ff9c8217265d2c8decb7b561d1d6d8b502fdb145d5220e69d1daabe59d2bdc97a86e8bbd89c91ad7bedf610ab1b2f11b1543ba81218e531ca14c7746cb402762a471b8bc6aa5c1152577ab5fcff8386d123519f0912d0172741ff1f9e38b8b32e054faeda31543115d9651fcb309a98bcfb7a2530e3d2911f1bbe9d7c8d9c45095f15342f3dc6a5c87421af8f718c49f15be514d0f0bee058e32257592a70f94d73e2392daf410f97d98ed5da8bc82ea21567fb7fbcde6c9379bf61e79546022ea0fbc2d0b35ab820a1cdaca4b29dfb438987e3f8437b49130591496443d35d0a61053b1125e176062959fab400aa37af6d5288ccfe08acd9e4457d2ae48155c7b68cbba6188375923005e5382898ba06b11ddf0ef4f8ad952652960c063dc9bc63eda63e83ade43391fa4fdfb31e4a643bbbd64f264422a3dec29f0538fec50fda93883e901651197161012a7907ab256edc13fac8425111c84d9eae090d99dab564a04cbfdb524190c720100dcb9007264d91551439ca0ec4dfabece891baf060e9d832709ee40731b21d6d7ec66edb276142b5eebb8e40fab7281922043c7c0da9864f3a9610299e5fd82617939509079ed067eaffb14f22c75c3f3dca9e1d99160bad0a82a4eb7a3a05442d786c1fe56c6e0e1426f0079286e2566563c37f929409c1f7b2edd7169c01e647f3048c5f56d1442a04e0869716f686e669899f2ea498a78db7cd0d771378e66770e40f77c2be88c5646f89dd73d030ce89e1e9ce23b3725dd09e86498a986481ddfdc56712e6474da80c7898daf029a477eace214b0b4dc49f39c9c91d435839f32b6fd231820014125dc73a78dabda89b1600a1db89b7e394d90c2ca30999bb6194c45d8b0004c7bf45fc65195265a4595c1b7a32362dbf399698a3159d0b20ba0fdd8a7f5ab43cc038e67214e69f521c0afd163cf45f987d9c72e52b908855cb3fa4918e4274a47287aec89dc9a09ab3127cf467d2205a1485cc26e50059b388036f8a79f1ef5dcba936eb01ab509d2cb4be47b987b1c3247309fb937bf327bf008d20064091959c0a349f9a55a8974b50de2e9e6e0c60f146cc15aeebb650ced8cf47e355579e43deb02d887347768dffcce4610d5553be59e1dc6947969c3119e40e8d59958fe5ff79f45802808f912cc6c21bde540d7e844e15ea3c2bf1c86a2024c30fc15bd796897fb626be335ed199dd548a0e58e610b288db7b4499848114b055124fef6c1f4774dadab470d1c39dc488d86e4f2418a9534ae7aacf46afcd7c9e9f171136a04e42a63ea858cb59c3c4eb82179c7bf89fd5cfd250d0ac7543dcb35b76bde18eea4c98a7e4d8fcf471f72c44514b0793ab3dedc7b39550a85e289daad44b3e5eb8c0bf47bcb4009767804491f42f7a5b1fe807c7fed2733ac407c466194c34c2f81be5f8e9dec7ab627868396ae9c6d1213260271aef3d0a29107c5a344b50021522b24ddd139b17900e90cfe67ba63018ac166a5d7bd25a7b1c5e9931a466ce23433b8e543690508ade2f5dce4269cd81ae636e9c43a4771807b90ebdb5fca620f0316bd01ca25eeed333df8659cad3a377526c47e755dd0abb6728c92efe6ded3ffa8431d633b19b4a160e934adc4314763cb6df630da277a41298f303088c8582cb61ab75e0bd9aeb18114171b43601ebedc7e8c588f00a0589b2b0d928fd3dec6b6a45235dbbed0c559c5704d4ac572e3fdb90c44b6ce5fbde9a378a08c9afeb838e265f97a93627b2666e55977bc827f28d69849cae8ff0173e7d7fa04e473316c08c3db91c8511d5ae100717f4ba989a02cf32619198a867ce3aec498d36bdd80d1d523346d3b7d254bf78e290c1777aeb86e205520d760d61de83c291c68a34c779b3ab31b1ade6bd224ed32574dcbbe651a36985abd6d9176d5ef2543cd220de2f68440ad0aa9f4ddeda6840946bedc63ecd6c151fab52e33d15b3cf56ac63770b04aa53fae6294c24a9bf8681868390e323454ae9254d52993f609d5d3f8d308fc536f37604db7e09423125c8b36d01aa9c01e28afb4fb8be13a6ff4ee5c4af5f93bc1b8e3028dc1706fcac68fb43fd3cf49ca9493cb463d75162617723093d56b0d824e17a7a40050f5a750d82c956bb25c1cdf0d3bebec3c034959a3b0e657fcaeedb09e18a6bcb3dcd5431092cc707d6da2699881202e69dd4b2d28511d5a9194791ae37fa6dc2a894f1b2d3abdbbcc3477026e3a43538b2e2e2ef03256bbb96b061f2363ac5e1cc5bb638b055344db4abc524f87764868aa3e4b064a3fb090172ba767644e4a09f0f79cc16a117b7a840193737bdfb25e0f02bb096cea21466952269b2428161f204bc60c3dd9621e59141e432e4803b992cf1c57cd6c380777412038263d294d0bc6c5837cda7f408fb0a307db0ad0a2d7f5d3b000401f39b357497eae05cae210a1267a4d1ace0999e51f9c954a89e5f467dbd44d21ab1938f879af3300de60d8b8b130b28fcb1622bac59324ae22fd01ae22a791075260085cef7b24eccc6a93d1e179345e32e0013ea01ef295523874d067f0c9c7ebd1bb4a1dc4103bcb314b3834c268450f557cca9a9ef5c4ec69ddd1f6cf38d23d1c3a29296de3ef77e1006c61251d4fe44e48bcf49913a9ee3b4037ac3ca2bb30f5b04b1caebfbedbcb5dc7c4704512f29b59676b15634cf606c8dc771f636eb030a1dd1689a8cac96233405c11721e81c745c163b1ae14056a37ea5af8b31788f36944175475304ca3319b3eb9f02d978165f70a3672e16d4ef24e4dbbbeeffff88492e56a3f107382aa4bbe4399609900e1b6c481d8a11de642d3d51244f84623bd14efeec0a6c6b26f3bd41986f5cb6c1cf827fc739481437e6ec5f252bd6277f052f63e4e854fc34e2aa20d95c5482702ed79b3304c8b00bee5ff67ff638420b338085dbea284ff8f092b97ff1bb56d1368812950010e06487adc19278bd6c44ef75cfcfda2568a853c7aa5efbff946d9ccc00407c7e8c0eb8ccefb6f95c9c850f0d8c37be87bb8af7e7462a53bad8e85752b36a9b6ad22ec77741877df01935a41e3119cdce8247384176972efbd1f4c558a7d16e4770569a82809cbe16968515c81748272af0a4cb2a5208f5d711d36cf9b9a0b2c0b288741e37dc0583e1f8ea15f7552df8486f1aff8d9e0b5da940cb1c4ef5ac27ce431c845a9afdb8aa1590421a470dd55ae263999e076d2d2c114e2b028d12ccdd6697d53fd895a5cc933899dcf2cc6d473a5a570d7e47a1f1387182299488455a5314f9fa1df57edeea7f8c95939042b3107f07a0d11a869908feec60d900e975c0a3dc6be1cd70aa88c5d2707f8ce35379870a7d3f51470eaa9cbabf306c11c741857c7f425a8831d91626843ca96bc8df7a0fea6cb3f8b78fa93819c70ad78b5fcb4f33d7316346241fc1fe58a13200c2bad6142a217a7377e6f4fa7b8b5051ab6279919aa5823afb7f8e87b5b4dd588ce05c00896c9b0300af815714c880f792fbc559fe7f774961cdad871eb67aa2c9a679c6de85d4ef6227b47a16906d37fc20db962bd210fcdc26ecec9e74829ef52a94cae220d7c642519567550cfbb5e58eebdf7292fbe8ce00ca9e84dab1694ef4a2a1cdd94de6b7a07f5af1e0dcc1edb2ab4b999e3800e8a5677ccb593e6140f0050e4c71005f6efa273624d7b13bc813816ade0e6b7c85d8ef36ca48bb071c06e775638d7eafe5f50ae8142e52555e23702b131ffd4859f4fffc99da3428826919dd5effc8401872d9c213bf98c6bdbf078fe1ca1eb742f4929e254b9f8be9cd1eeacd8a3c7a06e34048fd22862cc164a20a22b1952560c37b0b56c2ff38d6027ef87b0f478982d8725376f9356de562919fab0289194803ae8fb069cb44dd3444456c9b0ae85b5b043c23efc7a2e11d2c64a3e89ca53ec0d231491f4c0717efeac93661c60e6facb0c032a591dda1e2061e495f0ca708a10f51c58052985e548c26c7aab5f1431c05d473d900de1d29c7b6a789cb560ba78f10f7485a4d10fc527579a91379f2d69ad7c1a4c40a99ad57115890a4b69141d37b8847d71be8593560028d59e3598effcd8c561bce12484bf41f9aedc075944fa47ccdc37fffb653670bd9e4a41594b3307cb56412c0194e7b9ab3a7ab0a24ce88d83f7016e3892ea579ac91fcb0af4aaef47d69b4866806f55e1dfb3e62ca5217eb6c03cca0e3201f5f2975eb348335b976e2b006abe5f6c85f7809ea4271d28d452045515fd6d12491daacbb9871a36330fd35d4f1a7d1a67709314cb75a938ffb3659cd2fff82268e7ea8dd62b32249064dcb47eba9cbc7e7e518d279d709a56ff3a9114fe47e7d97988812acd26218dac61d8d63ec9f66e9d5759332ca8e86edd574dcc16502098e2195fdef464d4aa6e014a5cab7ba20e48f62c0cc750dae168769693f8eda1e9a9297171f63e97412640ba3b6fe1c4e4a68e3cecb2d9c00e96db903a2a7f844befc49113df8c556222983997ce77afb2a6ab9924f31faf2e7d6aefcff8b66c610abb92fed8492c0332150609d563a29f5561bb3cf51790047f9f07a33f6677069fa05bf2d0a41dc0631f9d262fc80d906cf42b7498268e6e17ec0b60f685f018f3db766277a49f1bbf41de8d8827ab60382af14a0afb204b80909d95c84be36f5e5ec2276ef36dd0f6e368c266b9d853f056f73191caecbc90ac4dccab2e8d654f2ab917d84c5e2ff63a56fca71a924b4be35fce8f3cff08ebe4a6fd01b297662fe313af6a126b3a0c7c728ac22dd923dc043ae075dbbb1606544083d6971ea46ce5c97948e84541e594c3de4110619405b617fc89ad187d475237791844c6d6e80e443c71dd9a19e82c57b498bf85c64ec1c845c1763e4ca06d06edc533b2abe69e43436ed6d8f94b728a4ad8640ada274f01e3f8a7362946a51c610ed490a9ee913747ed8460bfdbc486933130144d0eb17d1877dcb36b00cf7f99948df06829d45e4a61b6f1e95cf35e1b8b47260f3b630308a86772d3940d5ce42b0cb59abb3cfc8414cf7ea7eef9262f4d2f87f92447060419d4a2bf7f735eafde29062ef3517c15a2cc4231959ad5586b892af9ff1ce032e2d75786ff3dc191448fa87fb5b7c8b9f29225637493d27c8d075498f33be96fe21bfa0d641907f3b7b391417d7c5f0ca7545d14364caae5bf2ff75706b955f9f622123f23bedf96e0d689c67d05aee9f0a981c5bd4ae4f758fa2d7ed366e308b2770702980f79cb10354f01b45570b8444f9a5cbdeaa3c91c2ef1eaf9cc0d99c2d6e4017818a5e2509dcbb15a4f23b16a6c5d1e4cf07bdfc31068bc160739876bb8a0e32ca16f5ff1b52d4bf2113da5b91a8d5e5bd1dcdd1cf200e5b617dc03acccb0c87eeeeb0d9a2012d522bfd1d1782a44c5c999ed6933071113f7a86f4cf3adfa8750b29483121505dc92effd7a6b5a28b5b26e04bbb28fbb61d36aa2a1647611757a8c3eca8ea7de73269dd8fe5eb0c0213e6e10a9b1d7368434bdae8d6611d1204a5d22dd6a89c5e41bbf7ce165abd203d4f3cf022ef90ab11f1c7b13f9a316f6d1f009db510671a95b93346197d981599b4a7c7b591efec09dd4e35ffcdc58f4b035671144221d5639b0923252b87a8cdc2e1d4152627f6b56c5e83fdbb38d97b51efce9d557d9e20736201b544bab893b33ffa29dc88dc8e32c1d25f28be48729178f55108ceb0459de6e0960cb0e757cfed85d847c6cb10133f0d495e3eb77da9ee473f91f4c919d033a145984a2fb3e5042c36c1867a880a78494f451453a847f1b95d7afa6b5d371d702858c197a8ca29cf6ceab90ce1d376e1dd88293b33b441fd0ed309cfb3c3ed2b48630e4be26f098ab9f841b5af8fc669ae61b2828303733fdd0f4ea5240af5e8e664f42240aecba1b96742645d05870115a44645577ad79691ba86ab8fbed8c7a6411d090c3ade1add7975d5b3ba9c0cd53343ee88130f419538a1fb633aca720b3c41f5d9641bd8b32fe453419676d717a5e8e730639edf0be20c498a5423d43b8516e81edf72c08b9133aed7e76e8b9451d65759549c881f8914a9e0f98eab6c2c2a717494dacfd3c8601eeb3715b3cfee65e7488963cfd16a5e0c8de613f11a7b133d01198858e3b33ffdb10f3b1058881c4fc7fb8dd1abcb8fefb6334748f225119c1dc5c14de225352c87ec109626e632c3723e016ee7719fc7b9f5984d0d7cfc32f12a0a56e66ad533e9d2ae93a013a41f59a0f446b829dfe1d366e1a980ee1f8b757f2944003828f0eeb585ebb767638575b6ee6aa0e7be44bfd06bc853e36d1543a4ee50d6c35276d89d7375a7a0994f921800524eeb7afe2d3dd4e1900d0b6f2b1aa4ac63cc8a1947455abf38884f3aeb8ca77f7fd90f77b38b64c3bb5ceebb4c1739fc33f167cde3b26370f6836debb7d3b760205646cdd3a9733eaa3f3571bb6d41c867f5e0b18e78d5830ceeaacfdcf16447c4f5ca6d905b16f41e38baeea253a57b13ea90ae08341b4ae85c96a58503122d7a930c7d66c64717d54ab472471172b0c4b80a36e7d791fe9c3326cfd68a678cd7d1c9a9bd2a44cbdec91014c5a From d611e49c08e20c6a89445e7551cfddeb80b56275 Mon Sep 17 00:00:00 2001 From: Yuri Schimke Date: Sun, 24 Nov 2024 19:19:12 +0000 Subject: [PATCH 2/2] Cleanup --- okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt b/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt index ac0f02b475d6..77cbb65d56c4 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt +++ b/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt @@ -56,10 +56,8 @@ class MessageInflater( inflaterSource.readOrInflate(buffer, Long.MAX_VALUE) } while (inflater.bytesRead < totalBytesToRead && !inflater.finished()) - println("a") if (noContextTakeover && inflater.bytesRead < totalBytesToRead) { val left = totalBytesToRead - inflater.bytesRead - println("b $left") throw IOException("additional bytes ($left) after inflation") } }