Security Research
CVE-2025-5777 Citrix NetScaler Memory Overread: From <InitialValue> Reflection to Pre-Auth Memory Leak
Thinking
2025-03-15
8 min read
Research Dossier
#Vulnerability Analysis#Code Audit#Cyber Attack
Citrix NetScaler reflects the user-supplied login field verbatim into the <InitialValue> tag of the login response XML — the attacker weaponizes this reflection point by sending an oversized login string, which triggers a memory overread in the NetScaler process and returns adjacent memory as part of the response, leaking session tokens, configuration, credentials, and other sensitive data.
Unlock to view this content.
ad8d9422966c73fee42096dad808c6448a272095349f41facc28f3d18d1ee66a0726fb5aaffd9271b6702e0ae53f6961031443030e63d37842b7356b4a67d1f44b648f709f84d99b1640e6f7a87a3d44129b61502fc0c5c728a88c67798e6cfb7bcb30fe880464fad1a2cf9635735fbd6e964b402ea4ed27e494f7c87c72f1c586b333a4d4b6d4ade7253d06d61bf923572a6b8c253d117e8b63642be9ad8c68eaee7d4a02592bcdbd3155abcc6a953135deec61ed6729ad92ae056a76758bfc9dbe3a6985cd8f376d1b11f12453cfe80b5e7ed02e0e8e99705f90bdf365e0d3aa885a787e8b37f18a8b5b9d1f0c7b1dbe4c9a2743cb74c5003cebc65ed6247f78ed7aefc6dcee3758d4d2e4f5af26d588641451685f0335a20dbd593ae14888f9e2972fc80f25a83fe759407d572a5b3ba613691ec3685d474f93294fcaf0806313ca90a63b12933191ee8251cc58a4998ddeca50fef4ddd740559ff86dbf005a32b17107ff955fc15205bd5e06684654624130bbb5ccd9b026e89d8a14229d92af5338409912ab9f7dd0304885dd5fadbbb405a512d169765f91b8718b1975e785e32f348fcd6bed9a4fe528eb20984bf2ef5623d97f9129eea2a78ff1eda7a39efd9ceb420f575596d9fe0708a3e0c60dc7a4306435a0db25eb72bafbc9451a395bf9ac3e0dd9d4d953c8364dacf99709555231c0966bcfa2ea2174b6ef4cd1674656abd1dd7f4d15fffbb195321f6232756cc89faf0519ff6ac9effe1c78577a3223a78dfaf452877aee1d7e8bd55606902d63956b7930e1b84752f8dbbd36400b4ee398d594ee8aa0199a2095432a5e9d11e1a8272b32b1fcc4acb4c4457e608264199a98bb29c10c8aa709ca1890bd96429c9e06687913c1d9b8d39c4453638958ba27c1a055d69319d849a707ced5eb09c6392b7faffca5fb2aacaef660493da1784680190a2efc000f126499984ca5227e0a61441d623a601eb1c79375cdf54f33b02c2bea6c89faada205d1ca408138e010a79b89cc12819084fa16c3fc6c08406dc247505d358c4a6d3ed79104b19b07b30e5a9226caa3dc3b4137586ee52d7a465975a0cef5af517cf4a093a17d622816558db3395409f2542283cb696e51ec23fba9ac901bd3649698a0c0fc0ce874f11d73af624b90388418c9d7ca8e51107c0969a55cb4968a6c8b999e48e4900b7c103c86724e2c27e48ad3425d6502408142574512596751a9d0b6dc14710b0f9e673691c185088486746681da8b03c5f6e2605aea4e5eae687877f120529155a6d1a1eea4a07d02c8c0d67823f9ea173ecc978d1f2b30c5575d7899e2b4fe667570f46dcb61d4f8bcf455f783765d50923e100dd1bd690aef88df4d337c81b306710966a8fd0c9e8642876b76246730f26f8dc4504ecbff9bc92028f2aa3929382d43a380d95232c8f295116e0a43a8d45d427b74161b6b620b1d49340f058360d0d87d3fc0978b05f056ed154ed25c3d990ad3e2d5aae90e577fc3abf629829448511e90260723fa4a842d27274e0e2038dbfa05459533f7602037170594b0fa1e541cde07c11413cd6dfb7bc9c98cc9f47b6a5ac97298a6837e2d5f76e6f3d8116c50b0303aa817db569e3744e2012f1125fccb0468f19136baeb81f7ceb09109f92215f20bc4d7e92649aab819245a2d2d658ccc896070971519b2ac645fa0b1ed1ea77ff46f718cb54965d566797cc07a116cf547319c853821df317c1a7219f6927943dc23ce4864f5817f17f2fe47c125ffd09e8019c08ae3314756597b879d3bf3f682321a6c7d1306de5c8c9d5629967f6245a6b7bc3ec5d0a1228bbc7ea4f049ac7de0f101de76845619c4cab95cc8e5a55e1fdcdc67f5faa6b79401ab567f8bab3fa222f8c9d3991942b34950a3a67b56da18a531948d47a44fbe12b17544429d83573a1763167d52ad2c39a704e856c67adce1767c21badecffd596b04733ebe165564b0db70d4a0500cd3fec2e5aec5d29dc3df19ccdaf02c17f6b8279ef1374572e53995eb1707e11e9b006ae807f9a87cc867055b45c0e79c5fa46b5645032f5976c7b311236aba0f36017571eff5aa5760242726c65bd97514b90ef1b017516520c153c2ddc75c8187397c86ce949f281ea7209e81df8df3b8400fcd6d9ec66244bf9ed36aa7121a34e00a684ecd4dea32df2943759e6429e2a3d6fa62d5c0091509b7e7dda7a59a36953a9f315b84901f69924f6fa46599f3947c67496faa5a264d423c37d5b4d07102687956124a6d80de0e0275169284d52e8d2e75513e850133bbc6532cf66d7426168b5e414b44d2e1e5e4650a55d2510983a53e701f454014fd7a0f71832ee803f9ed06b63e415befcc489b667be190c1d2b651b4ea97ee02b81f6fef153f77cf056c26b05d5ac0daacc1136bd9e898e6e1aa8244f610c696ccfb93219c60b8c2e0fa1eaa306c67810b3b83934d5b707168d60fa6361eecec2368b484c0f96f4e3d4e8256e69b653125417f25c6fe206cb0a060f5f52fc968215a6b4ff206a9b073a31e823ee8f8e561f432cbf76c5666680dd7d73309c3abbe79c58ba6067ab4b5c0a2050d299752e4cc91d258f0b0a11f917acfccb7fc2d1024b58f091d1b3c0cd7fac8eac2738f856dd23cd0a1ca50d123aa77145dd344dcb732364387c3d475e01351643d659778bc207d4dd1635f141af7588e667315bbcdf507f94e003caf42221932e0b80a66992d2a926d173e80a1c3aa942e41930f821cf3699b9e961cab5c9b251c7c1cf347a180e324b8fc1941c6dda56e08b1f123c9cfdbda5a0b1ee51b92486d903b5d0635356ee3dfa6c277ecbd616c9da92198855252f69c71835955afb8f7104798de98e5f2f61d952f2e4d3e4578f0d023f20f836ff25749a33e87aa2f9cc3cfdced0621aa8e356592cd4c736a268220272d68aff515242befa49fa7de2117874dbfb326bc07a548a30706654a4ee8091d959a1bd2a64800acc0d90ba1e1965aeae55d403f77a70444e841db13ebc15ba5fe3db4bda7a78014009c7b7f1e873435e81c7e1b25b4f26072169793a31a33f3a335d311df3d980ac48c53df703add6d0a41af0582e4e35cddd55f0e986142a1ceee72cd17d614d07ca24234dc4e5b9575b74df0e81e3c7d8d233f966e048ac736d1e32d95b2702f3085bbc57b765de50de6a4274dc6d00118b2e5b946ebac8fb350531d03cd4572a23d8056d75460b9d9a7972c7cf6b625d818304e5175575b020a02a9eb944fbf981dd58669cb31f258a11fb9da3ef0b3d1fb6776071f5ae94d7b528be2c9062c92ff6d883eca86d759ba26c9770cd6b16e07cec4c12f638641ce71275bc62a407d7d6ee8d6c33c6093c6e03655c059d45d396a7ea79a7bcc51a6cbbdd65e138b855e2b7e795096b3d70831c7ba2156de0028050d97cd89e0342f2413a244215d8e4929e3fabd774680b905bd4db2741c7413f220b86c1b605b82a4272385286b2b2f9953509dc58d06933bf465e1bd913e2bc5155633f9d40047e38f9e82303d131cd702aba82b22db8e23ca56285ee4143d2043447701276e4ded50159ab01d09abb1a591efc5aaa701057c7e6a2781f7ff6d2101b16deab1bd3cd36e697fc76c4b1a7876f4d7b7878b4d8559e3acfd4cfcc8dd7e877207fb9b5a1bcf8cc2717de45be6d5ffc42dc3327fb547c92bf878bb2534d33463d799e2f6387421d526d38ec6029115cc8c92652c5367f2555ff455fd4b779e8b3dca7d612369b8fd5a3e09cfc5bb9f00731f77b4c6f700e8fa8dfcf18d2cf019b2c4d5763c8159bd9252fc8187cfe306b0ff1fc5a42453d2bf8eaa80999e2c5686714fb97c86f1ed152713b1833b50d4b5d78827782f98d4c7b822117d65f85a40147433d56c8717d1cbd6c81b2d7575f6f670353621ca1a5b672154a42ceceeec8bbd93f02c8d40b29b9208051d9bad818d9740c98cf6f1c278ce3bd4f78c319ff27258cf28c06251eae7229d4693177a22477f11b4bde1222a98176c3349ced52b5aa6cf2b6c9e8d8674bc6186cce2fd309669c45e8fea4283df253f417c343f56ab5e9e14a5784252f129cccd9a8397b47733d133cd25309becc55fbf5600a2d4e22768d8ea1e261fe3547367ad6a163a0724852f89d4d7119cc8d515c14bdeab2655a178b056dafea403f765296e139b972029638a84e909918282a8d8f5d1590411e1b1ea5181139bbbc7811df40f0c4fc4c31a95b37dcec1ea6d398ea2cccf1bf4e3cbfcca8357dedce052358c14a0aa0092a7369208994bacf364712a18c2f2dea60e47588bbdc52371c82466e2021901b95897998b9f314e563f3a5082db9168831614b40cc20d244490580a44cc43f2e9296d4c2c455a6e353ea061464a38db1ff85644cc7a65f3b582d05953f9bcd2ab2cd1c156b52213c6cd1dcf4e12f67c66827ba40b2814915ba2ef4cc1f30bd4722f4d7d6260694f5649e19dfb1ed4f1fecbd1e70ec492da0dc1878250097fc18eac2309c6c67fe939a7628f91471a834d9aba3cffddc38799f7aa51c3507a8be35dcc15efce918b11ae3324a6b6c6f9522995ba0ee903e1052b7db97de429d9c8c2845e3da3dbc55d23dfadfda26023b7e1b043c8f1fcd6cb22d8e56e5bf45c5e85cf1d0f52dd5440248766c0f7a1bab1aded02109b4644e947bbd1d8d4530e69074929f52025f1f866fdc176894a8c2ba7e2b995e02ce2828896a590a0e859f290b6979d7eae2a3c81b3b9a4a68ec96ba948de9d44a4a931e4c5d6a4ebe70016d27ae94830d1e2ca03fa19f5e5cf4f9954561ca42b588ec3a682530b040ba06241f34289e6987d6bb996c2a53da1fde81d56e5860951d32444870ff5de32c9ceb062ebd45c24372f894b603b4ee6dd8e4a85b712d5ed865477fcdc4a64bd2bc8bfe805eca53efed669b9f78064b7de88ae27098c66433f1c5e49ebc38e52b7c485aacdbecf9e2a76f3c219b35e671dfb9b03dbd126daa19a43e902e64d32157f6906242f6122f1f5906376ee232ec91c0d2f5b3183ecd46481e105ac02436b82fe16b1814aaa25d1561c6106b58da0c2d6030dbf1297e310f74b6b8fce8f9f3452b3c5f05dc4800f1a4f570817af9bffe25f1c79043ea9d9605e1ae0f3ecb4ff6cc93f158be8de5f45113a2eecc7319d053a4106b11ea7614da552d440e3493bec2caabaa6c0b06b01a1d051e61e0fc6d777e91a4a83daa664b2127002cf25cb87d7479fc531089aeae21cda1cd03e2efcf07f641b31dd01ce7d60096498a6663b92b2fabd4c139a0b82a657d603f29235ff44e13ddabbc27b07bb4f409af3729f52b3bb84fe950e5292e7679fcc2101c72c99e3d260598c936a2e23d6d20db68f3a044854645571776d710dbfc8989cfc6ebad51719e048586068c59bce11d5eb2aabc0796de0ba23bf8aac585ac28a404b70ac8ec4a5faab9aa51295abcc2f0555af20dbcbb2f806708f478c9c2fd05f55844bba63b6113023ca3baf3fe598dcf58625ddd8b6cfbe7d76e8ecf127198cb2fce4c282d3cbcb57d0fc5284066680f3064c7006549d79a5805a8867453b416679254ecf3522e5f2661b580224c4cec9de00d86e1f72fa9a4509c75cc6f48075ed201a13f2ad4228e7f5b17b704e9bba0c14a7da4d750ab3bb092007f398c47b2f695e51105e517307f2bc9bf78a3c6cca150128ca14e2a0cfecb9201858a37728696c9aa1c1f20a8e7438c62645b3c00d6f5e17c3b58d3691ead8fb9093872dbb607aae260cc917f1e1d3508bf406b22678ac1a86bea7d7d64b494badb8c68f2f015dc8837a27b60d2a7f58d6f04ac386d5798517dd8c2f6d08924d5347c696586bbd6cf8c465036a2643f11884964c3f0b1c9f9031d1816bb48544c8737c010bcbfd3c4c98aeb8177bb8f5bd1c3c392e9acf62a5379564a65abf7297a74f0013323b21435cc77bd843ddbf1b62d48de2a7c47dc105a733282f210080e53df465e22515c21231313b5358ad64e3f6e58cf58298aa7697ca615d7dc20e4fee542e7008a672ba89ca94c50c623b079c994f6c3eda66757460ff36ec03d9c958f043a2a821da3ace0934843f3b7a5fe0e45f43ae861cc6dcf5b8ddde300373846252fc5dc166f9638ed0ce0e825b5d17e790d5ea6906a93e20f3949d592225e9ae4ae7c53afc82f2910ad0b96e9c536df9ac105ecb87838f17aa50327eb7b1c575a91fb8dfba27e8fbcb771affddaef36d35f0b5bcf1cb36ff8ef67000e4769bd48f16e65bb2d9a0d73edc010be2c290c6f65a910317a93994bd58a39e3bdc92f1b0c0a188e964ad0a5a1959b0c54e831d1406053d12689592cdc34ed566c5f8413859f7e6ef6e1334ff9b17eb55b9fe9ce290ae14dfc010956055adff0236271355da718a9e19bb45e510675e9bba1a006087e0ce6dd8c6cc8e0ab22312e5f4135b80f538c1a9240a2409cef40de1ea8842f6c8431929f7ddf3e1d61f629d22db59092fdd07210818f428bbcac0ef595b2bd78eb5c0ae64980ccc9c0809c0c65af7bebfd41eed413ae24b76d1cf2a86ad6c0c1380a531531ff6ff313a0555c048f32d20c1758c4655fb340a7f954d9f24a80c21a9b721a41af704fc7a4c415e56e8e9a78a7e6e74279c9eef199e78e385a60b760759c62eb6238cc967deb1b78b3086841b8514b527b586ceeb3b999ddb0f8a865a0bc9972edffe393ac9b7e4b082e017fc9e05519c767c15018bf8f0f6997ccfda41147d880f4ed3d3f95e8f89158c7d25d4b4c9d2eca6646e31d4c5a283244334abe4a9b8bbebaf6e2c7df94c90eda2922bfe6d1663639c497ebec77e58c5a063f27fd576e389c64e3d3b0f11ed7943fa397c3e24a8f7538bc1425fc312a78bae2c9bd4194001bd3b2f1824dcde8a8f331cdff62aa4275f70c114444054f1051ef498fe5fe522a2ff1ff3f14e01bc70da3b638bee1c7b0c87f66c9e905842422d0b13eaed67d8040c5dc525298d2b5a865779b17ba6aad06cd4c4952fdcbff12987c92e29b4a58af764a71497a05df659484d872934e0b800deb13f9aa7954b3a68b5becaf473c77adfc34e1efc43a5689d8f37781acb03a9639c37387a19ebff2a67532a45f8e1dae8a8760a4b0139db5e0bb0132ec4eddb5f040578d57fc1600c2e8faa924aa6cac37a1ade6c4d9559be75121ac2fd0ab7bec3a99525384022e0e2a4a09287e560b17f990c6e06921f7256433716c7a5caecffeb1f2ca56857f06cad72c2a2c7d6683238ed1f78ae8bcf7b4d7b2973282163773b7b6f17dccf2a8e36f69e58e89e4e032cde7f2715460e743f93f7922fffb07326350417fe60c0654b55985dbb6f5196ec538cfb7d8f711ed48c67d755cf4f1e1f998a0f1df526564b74f95c609912cc119f7eb3b2f950016e330dcf8781a9c0f89f13dc96cc9880ca6bc3756ed60ed43d6d03af21b7d05ccd3f9eee9d469e39ef7f0b855deee8b91fe3e91417429a07ff2b317a866ce8ba64c1d130614ee3ef993af85dcee1c4f952309408f77f9fc605ac6dc300019564bdc1180d6f7df094d8e556950e5fb248c06608ce9f3d886d8993fb4112f0a4b5b59ced290c1be7c9c5636e44b3b62f2dc045e1ac6ebf8e468e9a5edd5ca983bfa6097ad77d14b4c5b8f41fd6ea3f79fcc0ce7f890394cdb9f6cb7f7362a1307d908933324cabf3f5f0fae2189d098a155d7770bfebc78c6d35579af235728b831cdf737496281da85f5856d9618f601b8f49eac120fc76e7330452739f177714e1c46e8724e8dbc0b40c241cb4b7a16274bfd26eb3e8a99d61802d197faf92b71c0117505aca6d5f5882c0dc1d9a8bee5abdd033c4712cb935e28fd0a1a3ed9f181aba1c544763a21f4fd8a02575c5dc7602343203d9bd1e5a9555b966fcfe8373bba549d4c27e264e612a76b28e286b93e5b5e85bd1d34c7a610769ae8d6be7e32fcd348211f0fa22e1ecf5c996126765e800479b15d284bfe65a18e8687ec36fec7eefe023a2a3910faff42272eb2267223f39ece8fe58614b7a6a0d694002ef6b18aaaa48dca5922e942c01c5378c9287e0fa5af579224ecbdf908abde328fc7ebfa9a2cc1f2b477a7deecfc631c6dcef49bdd236c9be95e1540109925b613f53ac8ca4c0b9ef6768e6930221ee68bc59fcbaf30e4d4efb616beb0fbb27c464dd757ec7f2a079d3190d401f914f90a0223c399499c20ee1aba468c904ec04e92b9e93026a1634ad13b6679719e174b98dc680f9d39f7f3864d4aea263a284beb46146153ba6a9af58f41b8cf92a8fccc68bb182f0cafe3cb84c3a66b5d18ffd15667407922dffa2aaa4d7b422a879723fe45552ca0dee996a68e75f6f93af800ffa7685eed99c5cd4124b3f426af44de9ad03d33a29f3e1fe029e1ae2f624fb24efba13c1b0e4c0c8e5e0cd2d135999948eb6a054946a7add3c68ddf8d6f5977db221ac66bae3c4b056bd6d9ec6ffbc20e0e6d834e1ed49a3c72240621249d41070f199dd33a6b46c5abc8d38ff4ff35b1ff661e9132834e4fea473cd5f441f7b19f9088cf94e16fe0ef7c2eeb67edc85b6ccb39d0bc81142de258a09628207b61c84863c7ffbd1984f870203aa5d0519c5b06a0086cbebda36f738597bfa9e1227fae225f618e8a8b4a2f053d2801aec09c068c6f41dc869534d50da5565ea5f66e28a6ed0d5b550f5b96c99948c882402f7b0bff2886ae821df2fb4dfe819370de74a0f60921c26b76522fb2f35f3001ea433cae1972de7eab4bb230987a14d8240389e437f94798b3e06614717d3829a02845e0e4f3d49220ca9d5fba3bf3354dce726322dbdef5c789778bd3d6d0bc1a8fd65ea33ed4278aeaf944dd707bf6443b88df5dd210811e6bce83949f890f2b00021457119f4504ba173095969e5b4325b006eabbbac33f23e5d570809e6a1d77a736be97527922ca50ed33f7bfe81c399fa33d2197c409f896cc8353a0671fbbc2889b7f21073f6eed7bba0362d787654aeaa86620422a3aee1c1afa13adf51b382b6bba7fa62f748fc5b215e67e5bfc28b46f007a6b3cbc738921e7d0d95bb616864d86fabd32f2cb7e9cccf0290a685afcf8642a4c2123d3b887dc6e22f1269606c31deef124ad8fd43ef5a83dd1732585e1ee5c5bcb052a63659ff608305af83d7ab05b7687e2fcb4da5749141fab58c65840652cc185827945d4371dce6858dd2873ce7a0a47cb325e9aef75ee5a1d1d493d4e26c0089e287f99bc3e97d25bdbac35471261c335e88906c6dfa95caef5836787e330f1dc8ce97d9991896aa51c4b61659ac5a9d8b4c1101634a0904fad2735973c96bc8f7464c696432b29cc64eb5e50ce605a317eca93c76ea9f67b26c4626624b9a4c111400f0ce45541d75af36d599a64312427edf3a75bab946b81f00da823369dd7bffb26687f22e16a67670ce1512217948d87caca5a7abff19dd18c7d2dfab16d3bb633071d4ec1dbb5329aaa10c61e542afd6da2878cf0ef00dd4c0d26c2169db0bc133e4b08fb0ec0374f049ddf65945833850f2636d9824c5cc0bd0df37f46c823ac552595a556d7326ddd6e5946102dbf94029bb257fc69391448e432d974f817c19d69fe25a34b6dc509654edb26173005836089079d8b9f25eb6c00b6ef17c2ed3dacf2cff39f597f1644955ec3da571e17a6a0a169a85a2290aac120d03a7cb5ab82eceaeae275f183b616c7d6650c18869707aaf9fdd154039c5747db67d56ddc0fb44e7a993586f09dacf5e8ce3d39f050622db54b4af50c19d71e58faae3e54f21f9fa9634288b1f36d018cfe563a36e6e411a42aedcca14fd28e17b2c11adb4e9cdd8e5ec06d55071afe6c98f0ec574309fe83683dab0c3e8195f187c8d691e1bbff44336679e50d021fa98761470db263d85f6ca627bf7bfacb68f619da7a7b3054c4b3139c9610221039131f01e83064e55ff985508a9927267465cf47e715e4d43a2e65de26d7b9107243ba679319acf49c5ccd85ecbb5a96005dd9189def8d16a9a9f807346b2bb994aabb45e2ca6470a343e83b333b60ef76a7c2664ae2375703ec07f462d1d1aa1e0d1140adc0c8d081bc9dc26025f2d2e26962ce413d0da3c9031d3633f32b19a3d441ef6220872d1c3c9f4902a54fa8753c180f18ef03e57340473243830f032add03275cc2e41b260e1b14623f1e7f088c88fa310ec2a9b5b633abf3ba3a247683c9e6113c221296c762b0f658b8707536c63dee6dc6fc0bf42f68e08b9980a9f1b6d2827f70d749ab02b1b974d40300895476b184d83cfb48da655c64ec88687088d1ca32a7ec8525583354452f6136334fa09d35197a3faa7fd307bb626ac77f281270d52ba739ac94aa3056ac86c2e41c9d7f7f1e8215747fd9326b6f11a3e36d3784a92bde916cab549c53a5e7b3a26ca65ceb6c2cc2e5fc51e09cf57fd4ed384a7554789b02c48efe75ed6fdda530ef5e8e0225d8535b1fa46e57b325b3fe17807837727c1de410cd594d7feaa50c6bf0212d35f0931e671485330c933d4a3dc39d76e00e51e738d60f3be5e8a94e6e8a49134544f009b0fabf871044766d83c5273d52484a99cee4a911ea09f24c41b19d8b357a693127aa35648641939301235e95f92b784cbd2b0306add2944633eef05325fc216bacb509f2f98883d07a4838959b598e9316f0ce0f223183e3e9fc348b92c6234a42fa56ef77784d438a1555dd4c9e59d59653d4ffe38f459021f5b67932304f5403a5504056be44ed11c1567e2f25630a4acb57bc1238bad86abd17c28ff367c7f239abc4d113b8e89b955743c2f5fb3e33be0b2abd75ddbff498855df15c2ec009213b11ac724d78dfcf7f56337f72a0822b4116236328f9cb76a11ba25898972353023de83aa7b13168dbb854ac0705e8f44d9880c070d850b419e970cbe05d770547904b0a005304968117c5b7a53a741f262851c5f7141eb61cf4cd61ba2841f7ca4c6e3ad5bd7750f83eae197e112ba7a7efacf286fea85560eb177e540bb5e31b986a2525dd0802610f3d83b2e4843946b7bf275606568043e172572672fbf137f376a3db58678f1a1757602884b4c80ec7401282bc06c04ed1bf2bd895db53b29974028f5f0b902f6d553d7092f9635eb197ac39868fb50c474b5587178f46a8bd6252dd5d80c710b1a170dd32aa6dd9b1220b8cae146312f82aa5643762cd8721805a8cba81bd4adff77f64069f1ed45cae9b19895d8f0a97f547d3dcf895683ff27b9383664e80e244ea08d216f2530cb15a4b4ba080fdad6b2c3450401aa795478bc9262294edc425b6923b7c8ae80f4634f421589b8c9005f9e71ab0dd010523984614ba84f8b17646d9929b147281a39a33106abf09ab8177e743caf1ac36093621c68c7a127918c903fc40b9f34ee4323f226999588c3a1f8c839d13b2cbbdcdda52350448475d36aaf1247ebb104aaae2dc94a398d77203baa0b41c9530fd5b3ce6bc768329fe6facf8b3bd9e076d894145bd40b6eb6a50b4025ecd3f4f8f0aba0b83b4d08b8f97d9f8776540dd9a5e2ad25d7b443a3aef0aea18408f201f97964c938fd68682a0fa88e131bc90455781ab92b7ee729a3630a71605f95a871fbf20d73c61909d8d5c360edf96ad6fff2738e5bba544d38db58b6f0f18c7579f2eebf0c638255d89c5385a89ed22496015ca6ef17f1e5905064f43dbb1bc5b2a3fa2a4adeaa93b44a52042478fa9d0187b40ea64c6726b8df4ba0b9b820e77881d917a58eb77b5d8d08bfbdc255f028298123666866e7d3271124a89b6fd89b4a9eddd97d440693bdcf74d72f20b79833dc47fb96195b5034d5c52b340009a7b556297f5ea270731ae20e1186b7362ff60a0611714095c16b0c70705f097dab1f5c1417cd3a741171321043bf1a5a7d3d51696c07549a4f704c8a7a3a8fef7ad7198169156872e53a7bd5b08c10602cebdf519f005bb4a6412be4c2bc2c0abfbca623f12b7e0908f7fac416398302c4a06a00e3e7840348480db2ed4a8afd896456b965b5412ee47683db30f4ee0ecb99074b15e4d4bb126cea0b117c87f7e36f2dc97e7cf6c4ca2ca51b05533e9ad58755f7525323fa5b2cd4084ec894599e97d742390cdd9915192c35e8646db5b9a0435b348bbe46fc13dd9a6560df62eb7aee324fbb05d7512e6149f4ac5c6254b1ccbeb5931e1d616a012b3c50f8a22a3b673a02345074b48363de7860bd122dc039364d16e25552c35decafa66c1372adaba17a82a30130f0e974661232a195d3f5b00e8adaec9743d3aef63d8e339b2debbeb0fb5422c761fb869c1ed4339de824f4511b15084fc610cc8e65fa3f376cb74de7739e89002ff1bae0cb397f9cfa1dc2bea56a29c1ed8a3b78d89be6afd2baa25fac29157f4bfe1d9048958fb1f5911f266c237cebe98e526b5db46ff8f81dce9b2514bf07b447c7acb40e4fb911cfc792715bd39f25d5c2b28b07a8a9a73580c4e9eebdfc937561e75032b833617a311107772dcb7b70ed08170c0147e0d00e352c5a98700620b30b77272666c2f0f3cad70b92095e442f753e4f33685a15203866971305a56447939764a09cac6d12b0bb085a046b9f5fcc0380774e78fac86138184c8ebd421baa00781479200b353ee142cb3841921022b85b810c120acbef3defa78a90d4cfa0ab10d37cb28016c0602dc533bd01069188889c70ea34d24d382843f69977ec78dd4526f0bcd0a56d0f27ca87110a0c12e492239096eeb54b8e73e1282c387fb1e28da8d57be46e3983e3129970948f1f408d2571479c21990a3376c802c5abeb30e16f14c0cf47b7f9c346c48b751ebc7ab37b2a0435144774a27b14802c267d6dc8414e2cd35767948193a79ba44990c3801d26886bc2957af02fbd862f9a73018c7b8f7d8bdfd2ac848356b728e02fcc1c41a1b9e97be668c7ba0c8b515e12818ceb06fdd4a8e9aff330f222f1bead4054d3f08092a4e42277a904ce4c1572fb47a6a4114bd01dd816f1495dc9c0bed8f80ab2580cabda2cb53037ca2cbe6231158e458aa76d0236a7554b11be8eda162ba6d782bb03b9f3ae9b0c5d58e4ba4a0ae3153712e90580cc9f61030699d164f26b0de6288def6a61feb5269b57e830940e9e759fc460420401e97875fd01039c9725622271a3004ab52b5d9be821c842708dab5629806c400a71a9cba03f741ce0987bfaf9261f537f6d939fd4cb4c4f5df57976a4f776da777a60b384d5282c58375b1974f96a92c69b0e905e7caaa4af0e477f777ad02ab50a907fc2e7d2006f9da984ea9cceca118c65990976afa5c8b8e73f90e16626bdcdff636b223475bbf6b65833a26498588ddf401eddc9102e96ab02bfee19d96c909109c517d94bd299bc1567e037f93cf0fb38b5122f4934e25a8757131ba59d0da3ad4a0d75d73c8d54415e6b4c7fef9e272f399790ef0107d825bc4d695d64289ec8c156af3c4663ba11e8028e53f358c16fa0c67ee456d0ff20a699ef9e48ff815fecac521792319a40d1663f9c3b9f172640c3c8009f1ed6f1b9dc563c2962c3c653df84569cf5c2baf5cad9b6e79801b886f6532d45033e955ec9294b3a80809ef0690396a20d2939b331717ee971f79fb8a188a41bbde7b07c3d0cd0e4d5846733da8acc4455380ca5452c10c648d4529da5d136c20c55e4f2626719ccae03ea5437a04eed045eb8b7b6cb1f5fdc89c7854a74b7fca65f0bada9cee028867476a9ebfdf7208521be39f8cd3c60c49dca6a6128139d536dc6ebabe9a7a64835a134e2350b28d5c9dcc290d08d84f24e6cf40d221d951f82aaeb35bab10bd630fa231117e8cd76e0c6f3519ca9f2714a8b90e88b33c5c6e688e6851ffffa4497d3d1f77cb78c10eb39553f56ae2d2b45b95904d3205c1d9adcf1f8df48f4ba52e403eafb4f3b2736c78ce94a67e88fe7954049769c5fcaf15b1ec2277d7e84b65d7872df58bd7d6021470e4aa408ace649b28c50dbc5efce3ff9178a1f3cadbeacf1bd7ff986aff7ef9bcb0d39c5a535d6f385cff62f2136d70bb7d928c0fde53d68e6637d61fe9994c7a70ecd6f3e1fe074c3a9052febafc786f2d6a4ff5ff0d67f5df6f0e5ebd7fb027eb4358e75c153ade86724d4eda8691aa3994d360f9a53c5ca809b02dc367384077c097d4b933cc1f31c9a070aba9cd4f4339c0b733588f36481cd4c274dbe3a156d847e1f27ae84dd44e6b2453715e4819dbbba169693fc0a6f082add8435323f087b2842b203bc07110ad93309600747543a95d6b72f490bd426e2680a5d58eafb4e56b5bee25af54bc23128bf95588027049ac3e33f7c047c130c4c07b6a8b4cd941ded2928c2c76e6f5a13ef25d5bb9c5c35dd93700f3413f7d6407a51bc7be4a98a29fa02138edf4803eed514e37a065bd41cec41e07c563d1c973027feca719d9976f385cc066b9245cf135201921c44319deb29be060c72029d474bb00bbf7a816bacff42d8fe26850695d6d5e6b41fef07b45f6aca7df3c2df2b25abda9656818490bf10ce9280fd636b4e7a6ef8898880cd1fb2dd9ac0c94c4676a45b5c2e4d87804d6d1f0612a726e2a7a257f58c81c669cef642a1f161d3ed9a157694b3ecc4443280ed408a83c6bf94ac2b6c9fc21edbdaf072d7582ccfdb6c58ccdbcf87b747de4742769082a5ceb668dac1f04b0a9f2081f1cbe822054fc2f8ad18741ea91b91c1ba3bd01ff12222d830faa398e5e0a9ac0d8c0d344c3f1e250723fcee2a828b70f8824834b92acbc61189046d4c28877fc138964a135e44534569ed23bd62898c98c48644d7e41335c5f0c9c2e289958c74a889052d07a51ef9c5252d1c844ce4222562afa266ed8ee0da5854505c2333f98b7f3b21d6cd4c7f5d3fca80918795f082d01f4ee1c2185fe0c03e253ab478c5762aac3168bd2ba30e3509d999edd0b44e7f4c3e0d16e2512b0988365ac89e3307a3b7a062ef2a38a792fe121413074b4fafa901a9a1d1e76ddd123ed5384222f8e2ff7e6fb291b3dfbce25e0e235434c43e3862f8d3c68dbde824580118f0642d823a8ce826abf833e5a9a48b937dec29899fb014a4231c55e1d1132b515419f1f65548e47159f189da6836caa536376ce42628c8966793bc9607d898c671f77bc11ae9479c245e5a9c04c27167ad1e1deefbc6911e84ef87026ea1175fe0171c2d32106bb0bdf3fdfd80b28f8f16f531f8aa7589b9e3d894f6ca026c8976389c006692867ac5748be0ef75e0a73b4cadee0ed3e78f743ac06e2ddb50752a5fedc05ea6ff621bb1adc69c42c772a94816e02e041a7b50692a2d1ecd0250f4dd7d5c49e4ed3c9cf056a22fa8752a7dc93f7512b8551e6c0808b8e84ebde2d66c18787eda244bc88a3847b54070ecc949e3b0ada1a459b6907c7cf9beb527b61d1a363c62f2c7c79b87d300b22aa37b7537c37d1eddef4ab4ddb549d9a57e9ee199c58895f09ee143a560fc607f7f11c0c463e53af43b7c0231e0c1b846080b8746722250267c3f58050e909ac26930fc2c8cfab5c99de376792594177830268ebfcb066912bd2cca1a1012ac0033fa0e531d9ede1eec0a5a8b314c6734fa2114663cae63ad6a262bc198a3d949676cb3a8cb67f6b3c1949f1974284ac48478ff5f22331e190b7ed71f22efc9d014f81ebdf9e56bd5a10f2fda8a649efe34cacabf240c33e6ebbf907881c6a5c6e987127056408dad071cb81b79c2482673405f3f9160e3016dbeee23f0886f57626450682cf2509237e919626f9dafd12b8bed55903ac6b68bfd99c3fa6a0c71bbc07e10f86edff6abdac8dc1f3dc6d6e86021884c22d322f5707270e8f5c43f9b130c3b933dc1d534a877a1f0efae721265d08862fb636dc79aeda02b4b17ba08c2499ff53dda14487e9ebf3f55fe8a9596fe37ae1981f535382e46d5bb045d3c59420a66c804ddb997bc1eb0ea88d5735390610df9613275feac7df7fce23d7429002870c18e426f974a25e8f1dd532f6cf80e84b76813f46b709ec3674e3e90e10f4ad1cc14eec7524790820aecb5a4c18040aebb1c786c5352dab0123418d51ac4939f4a7c7339a49c1eb7c03323e7e6706cdde931e77a4cc1115a030565b74c34cf80b66871ebe3d45f6b85b472bd1f2e6233b3c13a37917f8e2770f7d3c459f09f6096c23288f0161a014b8cf4e47ef3cc10a82aa89ea16ecd996cd3310defa09a2497ce0ee7e5542873745726b3ab114055b35db1a3786796909888c2173c1aa90e6614f2748ce2df662272b800501f174666d932edb3c13e0fb58b77a7058892d80081c03da8ace56a12edf432d9fdd4a0854665dbff0781dc5cbe7471698ebcacebac71056c8ec99305bf95d8b7820e8e52631759d298f3735816bab0b876efa327d20d27b60510e5dcbcca23379f3c57ba82774129154d9384de4f33c3ba626f178d2d2b4c8495ec8c6dcd4a58b69000a74d706f5728891e4b3619dc02e9b906cd876fe397af3c512373fdb0fc2cef991c0a8aac632667725dca50e0267009685737423ed710dafa2512460fe29f32b01a66f13b147111f55453b93c1e3c7e570b3e5741016e07f6b11cbd1e899483c64384d3f6844979d987471635383d5841e1f8daa0508eed2954414fc25a3bcaf72f261c22bb1e18c6dbcb422a0efa13f106a6e33749772aff34ac04135bd87764b57eb9d20b4df87efecfcf022f42a2ec586d0271df83396f617db436a948f8ab37c053242938347222cd394cb6fa5495c4d39120bf42c7114e1d028cf7ed27ac261450bb20692118ed98a6d316e64a8729472e901433c0e02a6bcc492ae0f8a1ab2e568786429b357754e521c62eaef79b702df90a3468d6490a355a92a27de4ebfad03d7c95a814847de788a1cc67a7e6fd815cecd3292ecae9b3b8e7d88d77f1f8eaa1c9980aef83ba7f1f08d7ce3b43927d0b068cc227a24d498e5c87145bfa08b49e3b527835d95c6335471fcced667782b580793addae6d015f54e13f05e0c55ad4f7f752cb491edc9a8b1d7f30acd5200c358a44f53c516261039dfb06e0f76d0d7ee37323210ca1fe58b9aac6c35d8594d96501762874d6dc806f8414e5a5a71acb70e472e4112fcd94db2fd3c2b583fb58feb3fbc485b32b291cb5b2b755f3656b637ce1a613118a2651af7a6f499d4bdb47d9f09421b9c06b608d426aabccb223f00c924c72a6bcb383a970f95b20bea5b78f2c34dbbcacd76d4d521160ac1cbdca0d96a8534249a3e5f48b4835088cc254ed1bd693975843355a19585ec250d7e1dc78867b8e65adb59d7fddc516703a86774490edd6046981f6f252674860ae2d301e0e9290d02cd3f53e97b7eeea61c6a0e23054606c816941fa9b08278cc6ea558e764f54c173cf7d0b193e4af51fe7d0e2e314f32c588e5efa29feb2621dee0280bdce5fbb8c511928bf07abeeebaf5ebd3f295de1793a5ec787408f9b69b3c9b18465f8034b7cfc3ca6b89833b23a53e2863116e7b6591ca322f0c8e23ed280bb4f6b7d32a936e553cb60a84d349a7b104f8d6a6de2f69d72826e58f19e65a7b1a99d24b6e41d415561c6962b115cf7cc55c655f039b239435268106f7db19df47da0ec33edf2ce630e8eb4afa9811caf994958d3ae287fe961b6b91d7ba80aa21c0817ddb7f3a3749455bfeb1e0a8e43ca9fec82b4e35ae793761e2985b99bed6af03370e857f5038466e25ad4a970cfa7275bed01848bd8fc3df1045a2d2982e136bcb299c6be2b35db1ab4ff663cc9af0d67be91913cf89ad08789c1dbe611b1bc20f6da0221b3eaee22525612e2a27c0671a5c462030a173174b85e2034ed760517b7776775ee6f05f0f2970d59c60fa41927d3d0b7295dde74204c3c06234b7d0832b8838c00d1a0d0cdf6f29aea1c1d9364f9788437298cf66a72bb063aa2b18c005fffe7b1d5821f38e0b9b0bee535cb050e1d9eed554971aa31030c1ffd71c2791dff8187cce6a2167a64d1d8dc86e97c3a42fca3c76fc1527f5211d1333973a2fcf6e1483524f535e8b4b853fddc256d9e9ea9421718284569667c08936cf8be4d43eef08ab04cb2fa03c90faaf67ef54d73358f017c2d8a556949ae6e35f593f83d24463109390a901d211dc472f2e3de709f4f58bd53ad521218c82c8f9e74e25933d8a03e279be107df3f8589b47649493936fc78cd5fe699b69131b6c4dfc43a87601a5af671d1752a47234c4eb5a6ff7b8a8d2dd5ca37efe6ce5a7061c218cf63811fe8a72d381eb45b4c584a6b82cee9ddc6566d8e8ee151a48c0e1e8eea61867c42398cc64b3a2eaff9d6019c5bdfefcb54c9c374ca8c1c21bbd7505750d349ec0647322fa2a63ad46b25164c4ec037