[{"data":1,"prerenderedAt":73},["ShallowReactive",2],{"rendered-post-40cda68f":3},{"abbrlink":4,"title":5,"date":6,"categories":7,"tags":9,"excerpt":11,"htmlChunkEnds":12,"toc":18,"htmlGzip":72},"40cda68f","CUDA编程: CUDA流,并发与上下文","2024-02-06",[8],"CUDA 编程",[10],"CUDA","摘要 深入介绍流的使用，包括流的并发，多线程调度流，并发限制，创建流间依赖关系，重叠主机与设备的执行等，同时，结合实例讲解了 CUDA 上下文以及 MPS 的概念，简单介绍了 CUDA Driver API 对 Context 的管理。",[13,14,15,16,17],12200,29909,42850,57752,60384,[19,23,26,30,33,36,39,42,45,48,51,54,57,60,63,66,69],{"id":20,"text":21,"html":21,"level":22},"post-heading-摘要","摘要",2,{"id":24,"text":25,"html":25,"level":22},"post-heading-并发流的执行","并发流的执行",{"id":27,"text":28,"html":28,"level":29},"post-heading-非空流中的并发","非空流中的并发",3,{"id":31,"text":32,"html":32,"level":29},"post-heading-使用-openmp-调度流","使用 OpenMP 调度流",{"id":34,"text":35,"html":35,"level":29},"post-heading-使用环境变量调整流行为","使用环境变量调整流行为",{"id":37,"text":38,"html":38,"level":29},"post-heading-并发限制","并发限制",{"id":40,"text":41,"html":41,"level":29},"post-heading-空流的阻塞行为","空流的阻塞行为",{"id":43,"text":44,"html":44,"level":29},"post-heading-创建流间依赖关系","创建流间依赖关系",{"id":46,"text":47,"html":47,"level":22},"post-heading-重叠内核执行和数据传输","重叠内核执行和数据传输",{"id":49,"text":50,"html":50,"level":29},"post-heading-深度优先调度重叠","深度优先调度重叠",{"id":52,"text":53,"html":53,"level":29},"post-heading-广度优先调度重叠","广度优先调度重叠",{"id":55,"text":56,"html":56,"level":22},"post-heading-重叠主机与设备的执行","重叠主机与设备的执行",{"id":58,"text":59,"html":59,"level":29},"post-heading-流回调","流回调",{"id":61,"text":62,"html":62,"level":22},"post-heading-cuda-context-上下文","CUDA Context 上下文",{"id":64,"text":65,"html":65,"level":29},"post-heading-隐式创建","隐式创建",{"id":67,"text":68,"html":68,"level":29},"post-heading-显示创建","显示创建",{"id":70,"text":71,"html":71,"level":22},"post-heading-mps-多进程服务","MPS 多进程服务","H4sIAAAAAAAAA+19fVMbx7L339efYq5O+ZTBvL87MVTZ2CdxPbHjG9vnnuc5N6US0gJKhKSrF8c+p1IlwIAAAbLBBoOwwQFMbIPkNywkAR\u002FGOyvpL3+Fp3p6drSrN4QD2EmUqmDt7uxMz+xMd0\u002FPr7vP9jYQq6Xd4HS4PdW9kslitfdUK3fnUmv9hg7892xtb0PHibPODuXdSzq0KsfHk\u002FEJ5W1\u002Fcv6OvLOXnFn\u002FkAjQwJAy\u002FgJv0u0tOnUXbq7MJ2N7yfXxVGSQxtaUt\u002F1wkz1NPwxS\u002FxZc+hdoPKa87U\u002FPvpF3F1NvH9Ch18nX8Q+JQHpkgk4tydG4EorJ0cnU5i5dGUnO31FGn6aWA8mNUXg9GFBmoZ5kfJoG\u002FXTzkbw7ntp8lXr6ixwbJp03LpwjcnRMjo4rD0bk+CqdGiOXr14jUM3aAN17C69u+ujEfeyWeOmCy3pTcpFzVy8RGt4mnQ67R7rlgfeSm8vJ4PB738DZWmfHibP5xg\u002F7iKOB1Bo6cu\u002Fxce1tzK0gvfgo+SuMihzdECNq6Mh7+2xtbyP7PHJ8VY6OpxefQAtLUTqyo9yPyNGYvDsOI7U5L2+PylGfHH0m6oH7kWG6Mi9Hn4lX6NgSHVql\u002FkgqvIptvfcN0OEJuvssORnGevgrb\u002FtxELpsDvOP\u002F+t1eCScKK\u002FXlTtTosLUWn9q6zVdeUxXJpTFAWV0IjW4k9r8VZBBt7fYeEBVtbq6LNabxGwzud3tBrPDIlWzhwZiMXlM1ZkbHTnlPA6HrcvkMnScdTtNdt0jm8ne4zX1SIYOs9N5thaed5zt8no8Djvx3HZK7Qa8MOjeMjuct0W7ztuscWJyWU3VNlOXZGs30JUJ6t+S478kl\u002FoNxGP12KSsmx1n3Td7yE2r9NN5x612Qx2pIw1NpKHJQH6yWjy97Yb6FgPplaw9vR78zarvtVoskr3d4HF5JQPpdpi9blMX1N1tsrnhjtVmazfYHXbJQNwel+NHqd1g9rpckt3T6bA5XOrdarWRmjZxy2a1S2aTs93gcnjtFt3tHxxWu3q\u002F46xLMnvIrXZDm4HcZn\u002FVyho1FDcaiOtWu6HBUNtx1mny9BJLu+FyfQtp+3uzqYE0EOhwXXVDdcPXumvScPNM5po0kIbeRqii1n2zp+NsLX6MjrO1FuvN3O8Mo+l0uDyG3EfQi2q7t69LcrnzjSVOjY56dQqwvw26q0bdVZPuqll31aK7atVdtemuzuiu6uv0l3pq6vXk1OvpqdcTVK+nqF5PUr2epno9UfV6qhr0VDVkjZGeqgY9VQ16qhr0VDXoqWrQU9Wgp6pBT1WjnqpGPVWNWZ9OT1WjnqpGPVWNeqoa9VQ16qlq1FPVpKeqSU9Vk56qpqwZpaeqSU9Vk56qJj1VTXqqmvRUNeupatZT1aynqllPVXPWRNdT1aynqllPVbOeqmY9VS16qlr0VLXoqWrRU9Wip6ola\u002F3pqWrRU9Wip6pFT1WrnqpWPVWteqpa9VS16qlq1VPVKqhC7uV0SSqL6rX94DYQj6nLardIIA0MOmmCIuNDIpDaGqIjMbq5AwrU7BadCivrz2jwrhKfp2Prho6zwOv0Ug6qru6TPCZDx19yH\u002Fwo3f7J4bIYOqx2s81rkbQE6wq6PS6rvcfQ8Veb50uz12Iyurx2j7VPqun9a4\u002FnS9Ex9s+JoybA7bFYHSW23O21mz1Wh93QYTT22BxdJpvRSHKLgaw3dNx0WC28qnxlQIwbOn6UXHbJZqwvSKrT5DL1uQ0dpypEXfjvv08QQgo2bnF4u2zqABC3t689tyRKMENHXY06Tb8sWqfV7lEr9FgtpJ0wDemS5VbNLVKJFxesfTW3yGni6XVJJgt7VLxOPZ03TTbSnqdshlJ1oKANq4VUFi1cV1dfUsf0RLgk9z5E7DdcYh52O1xqradKGFVr8XbVVomVwMQtUrS+jv2XeeH06QqCEwb+gx6eztdUl9dq8xitdkOHx2Tnb5+6abJV5B3ogqVxXH5mf93ePmjLJbm\u002FPPHzcS6phvKSKi+p8pI6zCXVWF5S5SVVXlKHuaSaykuqvKT+5EuqhAEquIz6TFb7YS8hTbt2o9vjkkzFFpGwpGHnYT97jb1j9JBK\u002FvYp7d3KimIj2mey2RxmdVDV9iuLzDW39V+So1t9Q9tSRcUBJmpJ87QYM1GHwQpzVCX8y6wZWKzrGdI7XZLJo67LU3819Tm\u002FxOr+af1eN8mKTSuLta+x8MRhXGv\u002FmVPku\u002FOX1bm1D2sola4elxAeh08WjPDFm5LdY\u002FQQt8fk8lS5PQ5nIZL1X4a9l\u002FfDmFyeghOt1DoczoNU8Z1kdrjUYTqFPdl\u002FZn6S1UD0yyGbI6v2Hyik\u002Fg9ToIrNzxI6VSUWBliw1P9P8b5qmmg4+iYaj76JpiNqohA7+cwZ5bXbdnOvy2G3\u002FkvKrIbSGGUJy8rh\u002FC2rKk8DecktsvRxXLttDpMYWclmcrolixHsxQdo+SK+dt3ap+c82uqqMiyxhE45XVa7p7vwnBA2ZjhwVtsh0M4XJ7tJn\u002Ft\u002F7PhEnZ5aSn6vcvuCBOe8tw9hKubUdEAhk\u002FN+Sd+02yVlraP9v4RL8nhdqg5aihYP2nAtnq3UOl2SeoLD\u002FgLEIbX3UI4t0OEhQDkEw3RsXeA60kMTyZ3N1JPnSmAE0BLRGMBLoj7EwtDFWY7e0Nz8kAgAemNvMRXuV0KjiJZIzt8hX129QVJv7yixYGpwB\u002FEeqb1gajmgjPqU0ChUw0gAhMbCkhyNKeEpOfpMR9dClIa3EUajLK6mwm\u002FSgzvKXJgmBpSN1eT8nQ8JqI2BY8JyfDXtm0\u002FtjSCyB2nEdzn5DHCDgB4EgfC2\u002FBE5OkGDARgGBhpBOIezQ46O04VdrDsZGqf+CKlvIIgekeOrSshHV56SNrhD363KO6H03GPqn0VMCHZWreqsta+HuF3mdkOttc\u002FUI9UCVOfkxdaT5ztPnmmBH+faTradr8bbLSfPN59sq68+ebH55PkzJ8+3wI+2v508U3\u002FyYtPJ820n2y6qP86pP87Da2daTra11tbX\u002FCR1OQ3EZANwg6GDw33yoHVwrKodTsne56wWYCdDBz4g3zol++WrRDwQiB06OpFefKL478rxF\u002FhR8A0xO7QjrwVR4Ss4pjS0Tjqv3gCYE\u002FX\u002FCh+NjVwy8YBPrJ09\u002FFCsFNaFGCYB4nnvG0jtPUyPBETVHA0FFDDwUGidXL56iZy6LLndph6JXDW53VZ7D7lk90iubpNZqnjv6+f9pPcC5CqaGAgsk+ho8ukEjUZTTwH7xKjQkkhj0x8S8zi6XlvHibM2a8flq5c+JOahRRiTqC\u002F5dELZ8iv9YTmxlPbdY68E0r55Go0mZ9bl2CT1D9PoIE1M0eEhujEHOKUng4hcglpobFqZCsq7C3JsGKqL30FkEnRNHUQcjdTmcnJzNjU2kBzYlrfH07NvAK3m66f3AsrkqjKzhXS89w1o1wlhBAdYb6aK1Rgd4wuIzWu27CdTvgDdfJScjPApz8qfrbVZcSxwVD8k5vnwihGhQy\u002Fl2HPscM6ABujmIF9zOEAhXMw6cmCeZaaGshTlPWaVITPDg+j3vgG1df0wKoEROb6SGcbIsLYTcjxOx5apfzg9NKFlEDgJ5egYtoHTT44tcBbD+pXaW4CJyhgcfNFfY+nZN9rvhYMNIERWbXpwnfqHeQdYDcr9iDKxmRlIPic\u002FJObV2anMhcnVb69d+gdfFjQ2zQB+vuRTmBry9uMSB1uOTqqrPPkyLicSuomVM+5ydOwgQy\u002FILTCF1SUASEp6L4CLG3t0HENby1ats4MObcnRDTEO83eSiQep8N10yJda61fexenYEt6hD9fTT+7QlTvJ4DBOIEQx\u002FMXpMvX0mbjcFeBQzrI2RmlwMhnfQCGRWusXlSmLq3QzoPiD0FtfhvlkZCR+MBwCVmd6cIfTxdhdauQZffcSKwHQxe6g2o10LJ4cXIMBH9hmzHRYmQsrC2\u002FkaCzZ\u002F1Z5E1dlE4pQzj0ZDJNurMnbS3oZQGPTQoICq2ZTIKMDsLKI0cSbyuIqfk6U6wJwWcZFlnGRf0pc5O8cSOXoc5aIYjI7+voku8fQUVtLampqChfMbIwcfU6jW\u002FIY7d4+I7LAbAt1xZcfhdRS+TLunhx9TgI2TptNsqlklWyrz7fJ1fegR\u002FJw6qEjag\u002F4Fu+ILXFHbIU7YgvcEVrf9tsNM2mmEf3oOMFErTieIVpRp5P4WVOKPaKbU6gb0LtjqfCoEPYoW1NjL5XxF3TqHe6lUUOhkZcgnJmkxIbSgzsg49FhRC0Gm5zcd1FXfgoOE6gu0In7dGhQ7GK5aOb+FfTujhxfkXf2iP2m2UyUmbAS6Ff7j3Qjxccgrt29ks1WFthlgX08IpJN+H\u002F\u002FXGP2kup\u002FmB19TqtNcpHqbjR\u002FFOcTx2rAadAacBpUAw7sU17LMbFfg60buomx\u002FY2y8Aa9lMCONT0h74S4Sp+Yp6F1eXscNiHzd5QHI8nnS\u002FRegK48pZtbyfhwMj6c7p9WFlf3sxOhbYJOzaVHplKRQeX+G+VtP2z3ojHVYlSkiLAdJRc26egEuXLTarGaOAMCwtCc9vVtp+Sq\u002Fi+itajBpm0uTBobxD6GhtbT8bnU5ooyOESH34KlbntLjk7Ao6F1YIwJHw2GYWr4AspcOPXkOTruKf4gWuxgkzb5mC4sCcars+FNPUut9WMlNPJSTsyDcZOZM5Utf8o3C6+vDSiPQoy3go2ANDLbILJjZWwMSyfvP0zGH+KODaQLaxvbgM7sbSoz28zU9AyNr+wLbSuv78P+nT3llrTX8WQcDKvaERbzIrwtxya\u002Fsdq9t7CcHN3I7IrDCTq0qn0N6y3z9zJ\u002F\u002F2Pxd+kW0Ml4ovHCxb9f6rxovHzuH8bOb69cudh5\u002FdK3V661NzYUZ\u002FM0Mky4sOC6Hy9O2EqMkYYmWFjDE8qLZVSTmA0t+5yA62FZLGwqmH4+R3f9dGX+k5wLNGrFSmOxcwGtq7PqAIxXgosrodH0w6A4xkFupzK\u002Fu9S\u002FRWMzIBCYQU6ObtCpMBwEjcSSkxHxFtYMPO9+JD0yBWdBoXW6+Sj9cAhf54xMcyikzG6h+RzkGhoOV56mR6aEfp7ae4iO1XQqjCcSyeUXcnxLUJga3AF+7g+iwowEyNF4aq0f+0gXlpJvlqAGdjBFNwfhlGMurmw84QdTL9Zo0K8sLsvxLe1BFirZysKb42GvZWtXmbkWsnYdu7Xp0wPjPkNQXFFZw3TiMpMoM4kykzh8JqGa74vYDoXf\u002FWfESYrQtI\u002FaKvAXaBOA2CRPHkFAFH8EldY8WurUMzy+h9gxTST1LpwJgMM0HwbiUWaXlNf38ShcwHtQmUJtKz0S0J5IKkvbysRmOuRTXg7gTpMG77CN8YByP1JY58SAKmDWnIvT5UeqXSHv7UzkmGhMjg0riZnkSgyOfzUxZrJewYAxhZV7uvCI1DcI+y6fgWjQvcdv4tdlP\u002FGN+gyiJTIMQYZia3Jijg75OcyIxZ3BnYOgDkYPjc4Zt7eyFChLgd\u002FdweixS49Pgk79I5\u002FbfV5HcVrRhAAYQT7BfTdYM4OTiPpUQqMA24k\u002FELBNYfdGCzCYfBn\u002FB5wRButiZtJM7K6hd2DEYGXkHTDkfhKrTLPWKtNc1CpTIOKcoaPQk4zNPTisDL4WxnIYwrf9eG4A1uvYDIDDQuvpxUfpJ3eUEIh4fUw7P514nXo4T\u002FtHch6NvvcNJO9sARhQNd6gMoJmGA4SZRoCAoRACG6M0t0hOrUm7ug+oIqJwinBTzBj43J8i4bWBeXYay0xAG5ce0CH\u002FAKSpCyN0L1Z5CgZ9LaVCZbr1j6rvUcV8mhLCgaUjVVsqiyWy2L5MxXLRyx6tX58lUSCX+hjKm4euY8pb6kiL+7nkygCB3A+\u002FG+rp\u002FdvNlOPW+8LBAX+af2+Kj8f2l9AKpMQJlNZXBXcLetzqQ5WyNBC6wJ6iQwVwJubEbqD+PxnAtSM7A7PNbLrRceb\u002FzZZPawFdfezuEoTMThODflocFIwcZQTytv+f6oj6K6u\u002F\u002F5DYpTzeyawUXiXAaFlBvv5Mthi+x53EUBoeU\u002F0e98Tfc5Yxo\u002F0tBWCJ9thsjSvSw3zx\u002Fp4NcKIVrBH1erK+75K0FCSx+8+glCOT6I1E3YMs1vp2TepnTe67SNaIv1BOvaY7xJiw7g9ytm+BLJkmJyYB2nlj3AfN1Va4QaF70JUfws6PPEJHf1atFtHsXPME9YbA5LjOTViSsErjLnCyIml1O60oWPfIiKYOo4LWFifL6XGBrj9892rZHxKjg1j\u002FHLtiyrayf+150IVueD5+kNilNmjAa2VjE+l9kZoMCBHfcriMpZF104Gi1qBj4KbQvTxRDLV8edosGAAWKWmTZwY1PdQjrKQ3XsL4Jy0sYJVvfcNKBsrdOUBa2WOW69\u002F8SmPV7WVAEhOMx646YTzfj5zslz\u002FEA+Gb\u002FDNJ6uMnIOJEt4m5winQ9vG3lB6GaAHsHfWwBwArzc6wYZpBstAATZMYr+ccRDTNR2d0LZ+TuAn8n5VdYc9Iccms9xgcajViO86h6nkixdyLAC+jcyigPDlfWcQDN3jmBJ6Qfvnldf3gbCd6SIDnnryPNcDD2lD0wKedKgYafzgCAsEEMhcmG6O0qF17iiM7lJr\u002FeirjKAO8UmzjAg4raCX6MGJdpPtxzha+BWxu+DNyaYPDW9nwsazAnLURzfnodP+YTr6StAA3lPBu+mRKToGJyviLWVxVY7uyrvjZb24rBf\u002F7vXiT3i2fFgx9M65XKbb7mvCledAJ7q5sUUqTVUlxSCp7CqxnEtyFy6pUfavfHR8Mqvlli4cX2UmGN\u002FpEkLxZRzNhG0HamRB5q4UD\u002F\u002FxkfuaH0rZ1\u002FwABFwxfnfx6sVz17\u002F84fTpCkEIj2L3T6vl1vftJvbP6S72jxpiZL9DDA1nh5PevRHwhQVfbA72cajaQmQYtRuQe0Or+B5TbFnWmARkMsHEMRoxj1BL5o+djE8rj0KaZ5FhvAV++ew9uvAIqgHZCVWqItzBRfjMSzk2yaHns5vpJ3MoxVXbkE\u002FZWMX7QnApr5bp2CPl9f3U5q9cV9ELeCESOXCSleHikZ3JINJTmdgUqhuSkTVqzG7lk3cm0oM7cuweyP7tV8poJCt+hDI2xl\u002F0D9PFWUzRI0dnlPCUiFWCzdGpZ+hqjo8EZhP9A1LvHtOhLQg7wOoRT5VXy+yUie8TQKdYekcjL0Xryv038AHZN6b+YfAtuGK8dvGryxevXCdyfAc98XFctU\u002FQJucfpv7nqnpV6MwnF1SAg2zoKPQkg9DFgxd2HsI1wpxX0N2AJqZEIA2uDGMeHM23zR93BTXTXyLK3CR88IUY3ZxH33zU8FMYsMU\u002FnF5+i\u002FfLyk1ZufndKzd6ox\u002F7W86Oo70sZ8fRXpaz42gvPy47zmcfPiGPEnvMiWj2oeAgmWj2b9oidVvtomVVmyaC8R1KparGpM6RE8cSO\u002F3w930lbvtK3vUd9aavvbzl02z5Pnl88RJaMLl6zAWnhbnXJOLFV1aaXD03Pz5i+UWbVDRcOS+onnwVLtmQiVh5uLFQ\u002Fy6ZPQ4XAUzJFyct2XFQWQf2iQir7e\u002F52x4pT38LQFdKWcEVlYyGAwSlrSQmY29VZRf8cUlu9Z9ul6PP2OP0GntLO8772uH2nNNCc0pjX5UVDL4CJLDRqNLVdUHqNnltpQZP\u002FW0kdH16EnD4PwMiMh+\u002FODUlkXNZ6nNL4nwX+7g\u002FV8WGS+xxbhOaHhygrQOsGpPRAovGgqvFUiKdpt+wQiwHG5KPb6rr+JpiY7ff8B+bY1dzfUEPqeNIjHCKse7C5AnEQwVmg665Vbjs6YJuowW6ogmsZnLzUOcOr5uYTTaz12aCXqp6cqmqHpPmrE+1QtvOk2iEIz5Eke8\u002FWQDxDJVHm\u002FmjnMris\u002F++ua04urvdkqfdWmnNKFglyiaz8\u002FY5WFO6wTYZLf\u002FklX5fpSpBmTuMJ2bWTVWmKpDD1x0XpJtWs5SDuvotFHXlUNR1SBSJTe9h49YKjGRuT5igydyzahT13zJkelWjeJuFxw9H7roDxjFn\u002FH5bDowSgvr\u002FLtbjkWVs+JsmbYLJaCmR\u002FWnf6vqot0zG3o9q62PeYjr3R76Xmd2\u002FKYXFoaTAOPZ0FvabN50Eovo8HaaBB3QNgvB8EjBma14wZt7gSnsFjnQLPcmkXWAO5WpcuBj2Fi3d5XPV8rlq+VxVf\u002Flx56p\u002FPB8OvRA\u002FQMjrfAp1MeHQ+fXFzv9TuAufRusuQagdCt2HrZtX5E9s+vuaLZ\u002FttuL3P7RHPqGPdOe0v5fPsWpvbVrtrS0TcjlLvbwXKAS7A8Tk+jL8XXon8HFqUpUJFQT5GoB1rIbU3hwg45jGhyGBoKrlGI1N7efHwyGiUY7zFOnbVCeeQs8zHjws6hOL7gQpr1h2LZEDbmQCYlvOhTH7WnLhjTLJMX88T5s+f1tWGGYBExSp5TDBm7KBuZZYWGX0cGFAU4HDpNtbyefjdOI1BKvWJA+D0KGMXPDCuu9HBx4WzAmiMkP6m7F1OfY0OfNY159M5HyuQfNg+PHVTCR8vfsFhJIq+16U1ejPVo3+A3hUoG\u002FsxwMe9Od7PUZYGKU5S5CbJptXOjRHCFJJMrgYcprkIGOQNgYjIe26q9NIyv7hkELriM6Xd8fpRhAjISuhUe4TOf4u9WaR3gto2SiPkKyySB7sgWVdgzL9IWXjiQj2AOJpaSS1qcZaQmc69i4wR+ZhWeaGZW5Y5oYl6swWo6mK9MIfe9dtD\u002Fhm5d\u002FiVXx5AvlgzpaI5EZlY5Ui78oXCWdfohg9lvxEaTXzEmovcH5RsU9sUsziiIxFjnL\u002FptxEvjzK+uBO6snzZPwu+JH4I1y5ZC6\u002FzKHEp8yuaf31M4FqdH1nd8F9eOouHYHQn8rkU4hWszgIblJMzUztzdCFR8I7ikVvZ7WrJbFAMv4QC7Dm4YdwAKL983I8LkM4nQnuP4z+WbvTEOYeMpqMYkhW9NjC6PZC\u002FcQJqWy+VfvGKp96Bqr3pg9yOIW4I3Fqb0OO\u002FwJh7FgUHeTXwK6zuDWMIkvRCIlmnzzCEUptLiv3I\u002FThOjavhKeUF8tYo7ZhnrTx8Woq\u002FEQrKMS4pMI8LJoSX05tvc56EbXxZPxpMr5RFhplofGZCo0jsUQfuyTK0U7NDi9ksybtJR2oFbF7\u002FdRrtQn4\u002Fb52IyYQ\u002FssrufSHgKS9HeEzLpfDdcXh+U4yWW7D0fF\u002FcDpPn85vfvtYwG8nVvsFOWnLgfvyJuFkshigqpIg1z6hBQ\u002FX1zW1Nbe2nBD1tzbUtZyorFVBVkXEXl5Xzrf9dOFRKjJo6BA\u002FM86a6h0QiywsJqRuRjnjj4iY3srkPYiPwuSACJeZfBmnjyBhMuEiTK0Lg4joAqRiNBv2Wnpwh757JUQHawKD2cBkjAxjlOoMYYERDGfB+f7zsEjjnAqv4u\u002FkzEtt2hdM+4yus3SoP7UZBa\u002FneFy5MyUqSfviqd27ytQ9cILW9BRToJO844KZ2P3cgsVCdoLs9G9l8hyL1zAVDPut2nk2wKEYI3lgIG7WJs\u002F9iCFXRAkeyIS1IRImv+3nETtCo8nRbWWT5cRm4c1TT+8oSyyHNnrGDj9keWZYUuWdJ5DlnRWD8qyGsqwsy8rPRlZ+QgNTKVYlWKXfXTd2ni\u002FiTnPbaDbZbF2mUkDGeRCuVRnBhbhPj7dIiA0tcZWwaEo1L32soFP7RuBUhpNMcl1cSGVhhLdGa6isYDSXkCNXZe\u002FM+jQqcjnkRMDKDhsqxpVX\u002FyExn1peh1QNOn48SaefydFnbEfzth\u002FOHYZep\u002FpnYMOyM11QdKkhTbnoyiO5Nla07WRCZWiipuq+dDaVPNSUNjycuuFKjm0pvn6gEJNAsktlLqwZAa\u002FZLLkzdQao\u002FyGvVtMR+u4Vj1LH7W16GmGG4dTKpk1OLKV995Lxh9ouingXSmAkfc\u002FPd3wbK1B+dxy3e6nwKj4FeR68y\u002Ft1\u002Fw1KcojQGt2ggSEafC5HJ8XngE3syDO6OS9vj2ITWRHBIPJGVqJhRhJkIBlaVeOVlYVdWdj9cfJNFhNoWu5SUFxlOOU5i6XzNwkujYsDr8foIaq8KFGEed2S60LRExWv3W3tsUvFDnqypUw3xME+SDYjvTDJlh\u002Fq9gA+EoqSyDDEq3kXB06TxQshxHQW0xeDrFaofUe7lcG0yWLTwzjYWN4dVDI+lYmv\u002FeQ5Ch926q2jBrINPxqHrEoa3n6qskL3OXUKSBWBMpUVGhnC2DPGJRRiOFekKqM+SDfEqAazIYvWmFU+0yGNfMs6BEKxxmvQCH45GgP56n+XXyaI0VYnVGa0876G8gg2XmzMtT0R46nMbuUVedlNdmPYdbU9TP8g70AkTR4Bitl3s74NpoiCPBYsNzVYYVlaapKt0aiL6zzIqEzyCAY7KFT2isPelVVcjq5AWEkNcRgNKs+nnAvzLFYMLwIJOtglB1Yw7QMFL97Pms6gdIRXtTdFMNG8MxonMg1OKqMsbqp2OmvbUsnYvzk136quRWwrMq+EnvF03TkLKEu\u002F4KlVNTt7ZonwifPRsnJRVi4+m530MVid8fJPG1fq2FU7jfMtqampETbgogVRynFhreGKRGOoOFUBsmnhrjL5VOTrEEd6iKtDeFxuQg8anOSHjQtRGpvBF8mlC4ROvRMCj4a4gRNPW3P4PCIDC\u002FXm8zPR5LHQlKTdkuOy0JBsE02eKCQfYaH5iE\u002Fz+4pAU\u002FKa+\u002FxdIcuuyWXX5E8NsC9GnnZhoUZP8toiTlUQGhkuLLkI33f7I0IycVBJfFXe3Uu9e5yKPisk1bTLuXSP4lxLScaruEpDXFXBxa+TChX87dPWitLjIvxc\u002FDA5h1l9\u002FNFzfnlSf6apta2hsaW+SIGWMy1nWtrqitXQ2Nza1LRPAe3xd3N9Q6nH33l8F+ATVpsddo90y1MtR8fAWeDBiKGD6SadeJ+I+8JXQfdYxKdOzrxMjm7TzfnU3gJzElB9HdTDA2G9SC8M0yAYF2hgSBl\u002FkXNmwQ50MZ0o5prQRCkWtgUodNlh8dokN+hVL+NyIgGq1dg6tDC9q0yu0tg0zvsas7fLaqf3AjVOz61kfJpGdsl7X5CG1n+AIZCjG5CEgi269767eRpiPebZ06C1zWXI3onn0BP36RDsfDFRt+J7Wuh9lm\u002FHnecpjKPXJdF7AbfX1W0ySzRxX6Q+1ZVEkCKEhF58gvRSPzOrhV7QUESN8uznwcb55WieilAPTUUGU+H7730Q+Fp5FIRcH+xUHT1JIGEryyle8H0eRJrtkOEdFms6mZimw69oIKZ9TbUZ4LE+QyKkffOpvRHO6vRTanEVRxj7gUSAnw8bcG4QC4zI8RXIGsNYGc45jg8IjdKVeWE647UC4pAV1bcF7i+DOwwEidA83ZR97xs4ZIoFYEFDtuJ\u002FgLCJ4uSnfKX0gNUkOqA2J3YcHLPO6pHjcTq2DLjPEN8QJcdfJJ+PM3gk9INcuiAKizuEhrdpbIbvoGZg9YsU95wm+CzM2UoQKdYnw4mgyQk7zzZFL8kFl\u002FWm5CL05QAOJE9uzwYSGMfMY3p3h95dV0KPheNQFGvDeqAQexOb0nxu9RuFRsHI+e4lzNRQhC76kr\u002FG0rNvOLqEpZ0Bc978THItzgGwoXXVCCuY4Qa3zTEDKY696haQXRJnCgJgtMZcTREGOkXAKnuOC5yknjxXAgPK5CjmVqb+h5AoaXaLrtxhofkDmm+Ng0lUlwF1wFUjYhpNfSsvlfv+wgEQ0vNBQMKwvFyGDu2VgEMx0r\u002FDaLkktROGnFsvB2AwY9Ns3DLvELOYtAjcQdQRYHkIeq\u002FxcqxOs26Gz4VxmdH4VmrvMfUv0qfjNPDgQ8Jvkboll0uyEKvd6rGabNZ\u002FsfhaHxKjkPsyp2ER5d9m+tftrHe0y+Ibq917C74FbzecoEOryckwfTJIp+YglYGekmOwarp7JZtwySnbNf\u002F0ds0jtqxJt4BOthiNl7+9cOObi8Zvvj134dKVr9q\u002FOff\u002F\u002Fm8xrZLNcjCjSIJHZFVB0GEgc8h28dxXF7\u002FLnJ\u002FJiXk47lp5mn4YpLE14MwjUzRyV1lfpouzdGwptbOjzDL1gq1Dzk4T8\u002FTJIzq2hJKZe1mxvIOYsQySp08sZbSoLELp0Dt5ZxryafgWAcYYWudnWpjmhHPq764TGpvmpz6IWtwcBIJZXjq6M01HJ1iuuzVgvWZVILO87VC4f4SuDaCfsYYzpQd+kbf9cJrDPGWRcwGoX+VYqfAb7pyMeRKjY+nFJ+izQcPbqZfLIrMaYvyxmFnIXq5HzO3SxBQUxeO1DCcNgK8FwizV2EWn6sDkiQmEWXo0HbPLYv40Mpzp7L0AsbDdLhM5awN07y0N+gF7EhvGpjJSlIsrkTwwGRoHk6d4bhaCcbxI+pW5XTiQ46JKe5WJyaPJUY8yhqsXIIC0b2i+Sm6xMM80t\u002FCG9k\u002FR4F0au48Cj2NSUajJsWHwyV5+Icdh5JSFN8n4cPLVPZ7JhY09syaD2MNLVNFUAY2voqaDKV\u002FgO6tHrehoDXLqrIn0uqTudkOvx+N0f1Fba3GY3TX2m1aL1VRjdvTVwrdkf6otrBvVJqe1ljGIml5Pnw34hatH8rQbjF02k\u002F1HA3FJjD07nJJdchG7w4UC1sU3gKpKFpsmZ2tNHag58lw0o+N0bB13WegRCetkewt7iXNL2xGmCDDE7cgSFObIZNhDoNKmKqdiq1k+OSxL2D+OhC12UtB5wyW5vbaimCSMOsp1+\u002F2PBjpvcL5WSZxmz63DBw9Vkc4bnOtbpJsHgRI5O7Sqf9aC1xqAgHCAVjJDnApuDSBCUnkQwVqS83egHlENnVpVHt\u002FJY69gVCPYBewem7vJnc3MWy8fKb6nwJC16A+UIdEYqctTn0W6KWoTUhprE7vngsSgGyPqW9dudHZevHaNcJgJsn1URRgIlTkQrgGIg72UnnmYCodFbDmtcaXMLcvcsswtgVte9bp7O\u002FG7HoBXErPn1gE5WWQY9wDocJvDjCbH6dCquFSW\u002FKhCgaEYMkM+BCiC+lRlSTGssQBj5Dxxrb9Q8UIMUWU\u002Fh8N6ylynzHXKXCeb6zicH8F0Kp2HzXZYwlodz6GJbQy5gJxH+zS9vMVAmwfiQsVUM2zr2NkQWHS2+A6VGaKxhuT8HT7QYAh2uqx9JtdtzaYfTh6YIpr+9SWERmPGJK1Zht7jh30fEgvcciBqFuYKZS7s9pjsFpPLojXzaHbK\u002FExjaEt7jgF1q2huzJLLnYtZwAi0IvGToOzq8dxLebHMYWSquUYJz6R2B1NvttEUhmosJnzNmO5ZAAs5NqwdKA3dOuNJrl8WO\u002FaXPIhwOGW1e7j5R4XEE6JMBQGwrTOwkNTYQDLUD\u002FlsB9fhtJHRJ05y8ltqkokHdPihOFwSh3A0GqVD7+AQZuFN+vkcKO6+p6nBnUyWYxa4hJvBFt7QoSHAcoci1P8rtMPNL1mGF\u002FRSxkmBaZiTTyfOXb3EvyMmOVYtPdg4hA0cgtNSOTacevqL+I74CpIP7a\u002FMs2MSMB8JpoQHZNhKMvEAjgFZ1l8wLy68YZ4TkfT8LlgzN7eVOVhq6ZmHzJIEePj03Jay+ZYngZ4fgDMWRgxSImwyGcPL1DPQOEZiGMgE3c\u002FKZpayCC8DtP80AG28LCf+1V6WE\u002F9qL0tM\u002FIuXeqpa9FS16Klq1VPVqqeqVU9Vq56qVj1VrXqqWrPYgp6qVj1VrXqq2vRUtX26rYYWqXi91+omTPZZ3aTPYbF2WyULIgHVo58um6Onxuy22Gvskqf2J8lqNjnqz5ypqzW5PFazTaq1SB6T1eaurW9oPNN8pkVM5KNPaQz6oS6j8X8U7y06tjO1kuC5FTE5rfoN0adIxEzIMTYOv\u002FWtq43nA6oeNGmzuVcy\u002F4h69SkIBkWMRnbLyBJg46CfgidV5C+Q\u002FMho\u002FNulby4ajfDrm0tXLhqNFcXIwSOCLodDhazkrV9soWFmFz6RMDvs7mIeEtmuC5Ukf7qmj62t22orQp3mHARUn4pCvip5Ui6zBf2f7UQdhy++0O5+K\u002F69PyocvT0J7opTk+\u002Fo1AMWn0ON880gdSyCoi9BIFIE2xygnRH2H77EqboKOTqRXIgmN0Y\u002FJAKETrxWFpdhO+MPJp8DFI+IGuRorNtmckviy+\u002FjWXHwoZZcLqPd1CfljZFms3okl8lm6LB7bTanR33ryxKGCR28RIjdjdnkizU5+opGo+kRwEMkf40heu9ou9Ynud2mnoP2rkTo\u002FVeSB2O5mfok7QyrIsxRQR3aCjZeB6zzGmNHBWrlvWIVl1TvwZy1Trq\u002FOGkh5KSbdJusNslSQ\u002F7HTlAYtpOT7iqSGdWT7pwgO7h4YWVWMbagDkMV0ZNedAIpo9N0IoJmJnlvWekP7z9PSs6lJT4821kKe1+xxGsHrxu2XqLqn\u002FPy7ON0VMuybhbimdo1jAArjU6gxyRlPkfRGZ0Re4Wnn3YBXLJbPYVL5jiegOdJCX2RozF+Hqw\u002FJ9Z2Q3cIde7ADHGf\u002F4rTl2mbDm3RzUdgK3R7XF4zIALNnltGt6fyQ8Iv\u002FDzQzpuMTyuP7sg702oZsMLxoBGjBbt2\u002FkBd4+9ngAbwT2kBNQ99bnR6buVJ\u002FQpfC7AQxs7r\u002FzBe6\u002Fz64gXjuRvXv61SbaL78RqCuHFwuViI0p1pQBPcHUs+XgWL4+OgHPXRxVmcPTxMw+MgoCJDETAWcgsrzBjukcJidwCIbHcaYjcy0zyhUwMp36DYO\u002Fz00081ZneNuc9bI1m8taZud63ZXWsymyxSn9VcyyitrW9uaWmrdtfXQ3EOKnOYawFHVtvjcnidRiNTX1jHe1qaLea6uvqGxqa2LnNbU1t9ndRQX9doaqqztEkN5m6GPzuyZVvw05zf59MctqMxLt2Tzhy5BE9KSHl14ObOF2zufMHmtF5uQqLxJeomypL\u002FQ2L+hJZ7sHaqq4nH4SSwW6muribc+Gnk72WXP0d0d2pqavA646i2P1tCBTfrHCpXHmvYi56mg3Oaw56UX0ke\u002FYEgn5h6Oisq9Cy8BH7xDMG\u002F2R1G8DCihQU8yqzDjB32FMwZ8nyzMau\u002FpUlN7SlU5hhxaVhZ8gMGGt208FSNHZHlFav7NMHwGTjDDjhMHzMdclEppxhfqCgowvchPzKMswFXHPam8+oNcT6JCVDk6BgLGD+dnl1nYwkynD+CdCN+kCrs5Ek4seGIqjyBqV4jysSToxycI1krjINkz9FTsOlVD77Veo9meZi6IQK40+vutdp7chZCyavl0Nj4uQOy8fN5ubieiZeyzhgkoOA6y3Bwp8PplCxGs+fWp2feOWgOnJAZEvOv232XLEduiKkHnVYmR3m2tZn1TAPK6B44ym0OOh1OOhKD1Xlgdn58S\u002FFj1uIpsQ6PdgE6nGz96aZXnqWn+bZflvY5VayLMheG5XUcnfg4JrJPR7LKY3fOZ2y+RzHNsnKVc1F4TE2dL3XzDiCPyfXURBA1EbMXcS9XEUnU6bn1HRy02HF6i5AHIt5BSctV197rdeXOFMr19MhEcmAbIxjQ4GRy\u002Fo4LITzy9mPwOnscg9iJGytVhKdcFIaGqWdIAQr7o+YZ+Yckzz45s\u002FMqaXWF1tU9P\u002FiMsaif3ALxIIIO3DS8DTUjogl1lyNSdH\u002Fr1u4QBtUmZazxp8RQ\u002FlajYa7pZJ9IKiI2Ch+TulvNLXWm+tYms1lqrjvBd6Xq3TPm5rb6uhO5XCurwL6qUlYzRTh70ZL7EpLdK8nSZakrLcKKsyOZeJAK3y07iJdxVX8saLT9ptlM\u002Fv1zjdlLqm1gDDxooKE+p7uarvDIQEpogo4tGzouX71Gsm7qQwxdvnrtQ8J\u002F2WvzWKuvuhwQu59ck1zA+SDog+qgy9PYsE0rjwMz9FKOPacT90U8lPk7yphPCYXBO3pzkL8RWsdIGtxvXFMBSnuwyQYhYfFXV28wMTwJASqmgunnc19dvcH2xYAnTU6OvPcN8OgRoXXVy5kDiDWhXDLA68VV9OvFkMHaWDAQv5qnGILXRcSSrBoykOEQd7TN2MhYJBMcAkaLQLgCcTDo4FqfmJKjcOCrGzZsmMUxoqEIR+Vi51O+AOTUS8zLsXswLtuvlNGIJowGFr589Rr6yXP\u002FdTU8phoSakM9A\u002FHx5BK5HcrqDVaU9T2wW0zXESQkfDQYxu7xqVTmwmUu\u002FEfiwm6vxUHQ3x8jtwFXBUXG5bCRass+TiNDr9OzG+X1UV4ff8718b9eq2ff5N5c4rFFohFj6f49OjSBD3mYrYxcFU4nl69e48Iq6pNjC5oiWYZ1ndwT4Vp425x+d5+V0Her4OayuIpoCCRr1MdloSoFMxH6\u002Fj93dlWdfhMBAA==",1793389733736]