From 128ae3b3255357f438735659727cd05c15dd7808 Mon Sep 17 00:00:00 2001 From: cjsha Date: Sun, 2 Feb 2025 23:19:29 -0500 Subject: [PATCH 01/14] Initial progress for reorganizing software guide - Add sphinx-design - Add cards on front page - Delete extraneous page - GUI card & TOC entry will link to an external page once that page exists in the gui-docs site - Cards still need images --- Pipfile | 1 + Pipfile.lock | 795 ++++++++++-------- source/Software Guide/Bonsai.ONIX/index.rst | 2 +- .../Software Guide/Open Ephys GUI/index.rst | 12 +- .../Software Guide/OpenEphys.Onix1/index.rst | 46 - source/Software Guide/index.rst | 49 +- source/conf.py | 1 + 7 files changed, 474 insertions(+), 432 deletions(-) delete mode 100644 source/Software Guide/OpenEphys.Onix1/index.rst diff --git a/Pipfile b/Pipfile index 2d5472b..0febcd4 100644 --- a/Pipfile +++ b/Pipfile @@ -10,3 +10,4 @@ make = "*" pytz = "*" sphinxcontrib-wavedrom = "*" jinja2 = "*" +sphinx-design = "*" diff --git a/Pipfile.lock b/Pipfile.lock index c3f7263..e73a706 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "0deae1400159e78250a746c492ff39cf5b811094770d191921c1cba5d84c3c9b" + "sha256": "c6f90090b0027d1a196d9cf59321b2ca0bdab71f47ff8601e59f14bbba8cedf4" }, "pipfile-spec": 6, "requires": {}, @@ -16,18 +16,19 @@ "default": { "accessible-pygments": { "hashes": [ - "sha256:416c6d8c1ea1c5ad8701903a20fcedf953c6e720d64f33dc47bfb2d3f2fa4e8d", - "sha256:e7b57a9b15958e9601c7e9eb07a440c813283545a20973f2574a5f453d0e953e" + "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", + "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7" ], - "version": "==0.0.4" + "markers": "python_version >= '3.9'", + "version": "==0.0.5" }, "alabaster": { "hashes": [ - "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65", - "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92" + "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", + "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b" ], - "markers": "python_version >= '3.9'", - "version": "==0.7.16" + "markers": "python_version >= '3.10'", + "version": "==1.0.0" }, "arrow": { "hashes": [ @@ -39,27 +40,27 @@ }, "babel": { "hashes": [ - "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363", - "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287" + "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", + "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2" ], - "markers": "python_version >= '3.7'", - "version": "==2.14.0" + "markers": "python_version >= '3.8'", + "version": "==2.17.0" }, "beautifulsoup4": { "hashes": [ - "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", - "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed" + "sha256:9c4c3dfa67aba55f6cd03769c441b21e6a369797fd6766e4b4c6b3399aae2735", + "sha256:b6e5afb3a2b1472c8db751a92eabf7834e5c7099f990c5e4b35f1f16b60bae64" ], "markers": "python_full_version >= '3.6.0'", - "version": "==4.12.3" + "version": "==4.13.0" }, "cairocffi": { "hashes": [ - "sha256:78e6bbe47357640c453d0be929fa49cd05cce2e1286f3d2a1ca9cbda7efdb8b7", - "sha256:aa78ee52b9069d7475eeac457389b6275aa92111895d78fbaa2202a52dac112e" + "sha256:2e48ee864884ec4a3a34bfa8c9ab9999f688286eb714a15a43ec9d068c36557b", + "sha256:9803a0e11f6c962f3b0ae2ec8ba6ae45e957a146a004697a1ac1bbf16b073b3f" ], - "markers": "python_version >= '3.7'", - "version": "==1.6.1" + "markers": "python_version >= '3.8'", + "version": "==1.7.1" }, "cairosvg": { "hashes": [ @@ -71,166 +72,182 @@ }, "certifi": { "hashes": [ - "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b", - "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90" + "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", + "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe" ], - "index": "pypi", "markers": "python_version >= '3.6'", - "version": "==2024.7.4" + "version": "==2025.1.31" }, "cffi": { "hashes": [ - "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", - "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", - "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", - "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", - "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", - "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", - "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", - "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", - "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", - "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", - "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", - "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", - "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", - "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", - "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", - "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", - "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", - "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", - "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", - "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", - "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", - "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", - "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", - "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", - "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", - "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", - "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", - "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", - "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", - "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", - "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", - "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", - "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", - "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", - "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", - "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", - "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", - "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", - "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", - "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", - "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", - "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", - "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", - "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", - "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", - "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", - "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", - "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", - "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", - "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", - "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", - "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" - ], - "markers": "python_version >= '3.8'", - "version": "==1.16.0" + "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", + "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", + "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", + "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", + "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", + "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", + "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", + "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", + "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", + "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", + "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", + "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", + "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", + "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", + "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", + "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", + "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", + "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", + "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", + "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", + "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", + "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", + "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", + "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", + "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", + "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", + "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", + "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", + "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", + "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", + "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", + "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", + "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", + "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", + "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", + "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", + "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", + "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", + "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", + "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", + "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", + "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", + "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", + "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", + "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", + "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", + "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", + "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", + "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", + "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", + "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", + "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", + "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", + "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", + "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", + "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", + "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", + "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", + "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", + "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", + "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", + "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", + "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", + "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", + "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", + "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", + "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b" + ], + "markers": "platform_python_implementation != 'PyPy'", + "version": "==1.17.1" }, "charset-normalizer": { "hashes": [ - "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", - "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", - "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", - "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", - "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", - "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", - "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", - "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", - "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", - "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", - "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", - "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", - "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", - "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", - "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", - "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", - "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", - "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", - "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", - "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", - "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", - "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", - "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", - "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", - "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", - "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", - "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", - "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", - "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", - "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", - "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", - "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", - "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", - "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", - "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", - "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", - "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", - "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", - "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", - "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", - "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", - "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", - "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", - "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", - "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", - "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", - "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", - "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", - "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", - "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", - "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", - "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", - "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", - "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", - "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", - "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", - "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", - "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", - "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", - "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", - "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", - "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", - "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", - "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", - "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", - "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", - "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", - "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", - "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", - "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", - "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", - "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", - "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", - "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", - "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", - "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", - "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", - "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", - "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", - "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", - "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", - "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", - "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", - "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", - "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", - "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", - "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", - "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", - "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", - "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" - ], - "markers": "python_full_version >= '3.7.0'", - "version": "==3.3.2" + "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537", + "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa", + "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a", + "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294", + "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b", + "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", + "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", + "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd", + "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4", + "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d", + "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2", + "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", + "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd", + "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa", + "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8", + "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1", + "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", + "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496", + "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d", + "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", + "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e", + "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a", + "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4", + "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca", + "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78", + "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408", + "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5", + "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", + "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", + "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a", + "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765", + "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6", + "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146", + "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6", + "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9", + "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd", + "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c", + "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f", + "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545", + "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176", + "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770", + "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824", + "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f", + "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf", + "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487", + "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d", + "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd", + "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b", + "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534", + "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f", + "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b", + "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", + "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd", + "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125", + "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9", + "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de", + "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", + "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d", + "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35", + "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f", + "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", + "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7", + "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a", + "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", + "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8", + "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41", + "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d", + "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f", + "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757", + "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a", + "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", + "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77", + "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76", + "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247", + "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", + "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb", + "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7", + "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e", + "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6", + "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037", + "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1", + "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e", + "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807", + "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", + "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c", + "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12", + "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3", + "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089", + "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", + "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e", + "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00", + "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616" + ], + "markers": "python_version >= '3.7'", + "version": "==3.4.1" }, "colorama": { "hashes": [ @@ -258,19 +275,19 @@ }, "docutils": { "hashes": [ - "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6", - "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" + "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2" ], - "markers": "python_version >= '3.7'", - "version": "==0.20.1" + "markers": "python_version >= '3.9'", + "version": "==0.21.2" }, "idna": { "hashes": [ - "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", - "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0" + "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", + "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" ], - "markers": "python_version >= '3.5'", - "version": "==3.7" + "markers": "python_version >= '3.6'", + "version": "==3.10" }, "imagesize": { "hashes": [ @@ -372,94 +389,96 @@ }, "packaging": { "hashes": [ - "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", - "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" + "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", + "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f" ], - "markers": "python_version >= '3.7'", - "version": "==23.2" + "markers": "python_version >= '3.8'", + "version": "==24.2" }, "pillow": { "hashes": [ - "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c", - "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2", - "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb", - "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d", - "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa", - "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3", - "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1", - "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a", - "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd", - "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8", - "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999", - "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599", - "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936", - "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375", - "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d", - "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b", - "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60", - "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572", - "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3", - "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced", - "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f", - "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b", - "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19", - "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f", - "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d", - "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383", - "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795", - "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355", - "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57", - "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09", - "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b", - "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462", - "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf", - "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f", - "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a", - "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad", - "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9", - "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d", - "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45", - "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994", - "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d", - "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338", - "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463", - "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451", - "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591", - "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c", - "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd", - "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32", - "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9", - "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf", - "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5", - "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828", - "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3", - "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5", - "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2", - "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b", - "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2", - "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475", - "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3", - "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb", - "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef", - "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015", - "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002", - "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170", - "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84", - "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57", - "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f", - "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27", - "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a" + "sha256:015c6e863faa4779251436db398ae75051469f7c903b043a48f078e437656f83", + "sha256:0a2f91f8a8b367e7a57c6e91cd25af510168091fb89ec5146003e424e1558a96", + "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65", + "sha256:2062ffb1d36544d42fcaa277b069c88b01bb7298f4efa06731a7fd6cc290b81a", + "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352", + "sha256:3362c6ca227e65c54bf71a5f88b3d4565ff1bcbc63ae72c34b07bbb1cc59a43f", + "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20", + "sha256:36ba10b9cb413e7c7dfa3e189aba252deee0602c86c309799da5a74009ac7a1c", + "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114", + "sha256:3a5fe20a7b66e8135d7fd617b13272626a28278d0e578c98720d9ba4b2439d49", + "sha256:3cdcdb0b896e981678eee140d882b70092dac83ac1cdf6b3a60e2216a73f2b91", + "sha256:4637b88343166249fe8aa94e7c4a62a180c4b3898283bb5d3d2fd5fe10d8e4e0", + "sha256:4db853948ce4e718f2fc775b75c37ba2efb6aaea41a1a5fc57f0af59eee774b2", + "sha256:4dd43a78897793f60766563969442020e90eb7847463eca901e41ba186a7d4a5", + "sha256:54251ef02a2309b5eec99d151ebf5c9904b77976c8abdcbce7891ed22df53884", + "sha256:54ce1c9a16a9561b6d6d8cb30089ab1e5eb66918cb47d457bd996ef34182922e", + "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c", + "sha256:5bb94705aea800051a743aa4874bb1397d4695fb0583ba5e425ee0328757f196", + "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756", + "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861", + "sha256:73ddde795ee9b06257dac5ad42fcb07f3b9b813f8c1f7f870f402f4dc54b5269", + "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1", + "sha256:7d33d2fae0e8b170b6a6c57400e077412240f6f5bb2a342cf1ee512a787942bb", + "sha256:7fdadc077553621911f27ce206ffcbec7d3f8d7b50e0da39f10997e8e2bb7f6a", + "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081", + "sha256:837060a8599b8f5d402e97197d4924f05a2e0d68756998345c829c33186217b1", + "sha256:89dbdb3e6e9594d512780a5a1c42801879628b38e3efc7038094430844e271d8", + "sha256:8c730dc3a83e5ac137fbc92dfcfe1511ce3b2b5d7578315b63dbbb76f7f51d90", + "sha256:8e275ee4cb11c262bd108ab2081f750db2a1c0b8c12c1897f27b160c8bd57bbc", + "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5", + "sha256:93a18841d09bcdd774dcdc308e4537e1f867b3dec059c131fde0327899734aa1", + "sha256:9409c080586d1f683df3f184f20e36fb647f2e0bc3988094d4fd8c9f4eb1b3b3", + "sha256:96f82000e12f23e4f29346e42702b6ed9a2f2fea34a740dd5ffffcc8c539eb35", + "sha256:9aa9aeddeed452b2f616ff5507459e7bab436916ccb10961c4a382cd3e03f47f", + "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c", + "sha256:a07dba04c5e22824816b2615ad7a7484432d7f540e6fa86af60d2de57b0fcee2", + "sha256:a3cd561ded2cf2bbae44d4605837221b987c216cff94f49dfeed63488bb228d2", + "sha256:a697cd8ba0383bba3d2d3ada02b34ed268cb548b369943cd349007730c92bddf", + "sha256:a76da0a31da6fcae4210aa94fd779c65c75786bc9af06289cd1c184451ef7a65", + "sha256:a85b653980faad27e88b141348707ceeef8a1186f75ecc600c395dcac19f385b", + "sha256:a8d65b38173085f24bc07f8b6c505cbb7418009fa1a1fcb111b1f4961814a442", + "sha256:aa8dd43daa836b9a8128dbe7d923423e5ad86f50a7a14dc688194b7be5c0dea2", + "sha256:ab8a209b8485d3db694fa97a896d96dd6533d63c22829043fd9de627060beade", + "sha256:abc56501c3fd148d60659aae0af6ddc149660469082859fa7b066a298bde9482", + "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe", + "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc", + "sha256:b20be51b37a75cc54c2c55def3fa2c65bb94ba859dde241cd0a4fd302de5ae0a", + "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec", + "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3", + "sha256:b6123aa4a59d75f06e9dd3dac5bf8bc9aa383121bb3dd9a7a612e05eabc9961a", + "sha256:bd165131fd51697e22421d0e467997ad31621b74bfc0b75956608cb2906dda07", + "sha256:bf902d7413c82a1bfa08b06a070876132a5ae6b2388e2712aab3a7cbc02205c6", + "sha256:c12fc111ef090845de2bb15009372175d76ac99969bdf31e2ce9b42e4b8cd88f", + "sha256:c1eec9d950b6fe688edee07138993e54ee4ae634c51443cfb7c1e7613322718e", + "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192", + "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0", + "sha256:cfd5cd998c2e36a862d0e27b2df63237e67273f2fc78f47445b14e73a810e7e6", + "sha256:d3d8da4a631471dfaf94c10c85f5277b1f8e42ac42bade1ac67da4b4a7359b73", + "sha256:d44ff19eea13ae4acdaaab0179fa68c0c6f2f45d66a4d8ec1eda7d6cecbcc15f", + "sha256:dd0052e9db3474df30433f83a71b9b23bd9e4ef1de13d92df21a52c0303b8ab6", + "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547", + "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9", + "sha256:e06695e0326d05b06833b40b7ef477e475d0b1ba3a6d27da1bb48c23209bf457", + "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8", + "sha256:e267b0ed063341f3e60acd25c05200df4193e15a4a5807075cd71225a2386e26", + "sha256:e5449ca63da169a2e6068dd0e2fcc8d91f9558aba89ff6d02121ca8ab11e79e5", + "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab", + "sha256:f189805c8be5ca5add39e6f899e6ce2ed824e65fb45f3c28cb2841911da19070", + "sha256:f7955ecf5609dee9442cbface754f2c6e541d9e6eda87fad7f7a989b0bdb9d71", + "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9", + "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761" ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==10.3.0" + "markers": "python_version >= '3.9'", + "version": "==11.1.0" }, "pycparser": { "hashes": [ - "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", - "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", + "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc" ], - "version": "==2.21" + "markers": "python_version >= '3.8'", + "version": "==2.22" }, "pydata-sphinx-theme": { "hashes": [ @@ -472,11 +491,11 @@ }, "pygments": { "hashes": [ - "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", - "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" + "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", + "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c" ], - "markers": "python_version >= '3.7'", - "version": "==2.17.2" + "markers": "python_version >= '3.8'", + "version": "==2.19.1" }, "python-dateutil": { "hashes": [ @@ -488,85 +507,86 @@ }, "pytz": { "hashes": [ - "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", - "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" + "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", + "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e" ], "index": "pypi", - "version": "==2024.1" + "version": "==2025.1" }, "pyyaml": { "hashes": [ - "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", - "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", - "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", - "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", - "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", - "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", - "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", - "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", - "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", - "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", - "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", - "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", - "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", - "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", - "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", - "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", - "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", - "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", - "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", - "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", - "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", - "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", - "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", - "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", - "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", - "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", - "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", - "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", - "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", - "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef", - "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", - "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", - "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", - "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", - "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", - "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", - "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", - "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", - "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", - "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", - "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", - "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", - "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", - "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", - "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", - "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", - "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", - "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", - "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", - "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", - "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" + "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", + "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", + "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", + "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", + "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", + "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", + "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", + "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", + "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", + "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", + "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", + "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", + "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", + "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", + "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", + "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", + "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", + "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", + "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", + "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", + "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", + "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", + "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", + "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", + "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", + "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", + "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", + "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", + "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", + "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", + "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", + "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", + "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", + "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", + "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", + "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", + "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", + "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", + "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", + "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", + "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", + "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", + "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", + "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", + "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", + "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", + "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", + "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", + "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", + "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", + "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", + "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", + "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" ], - "markers": "python_version >= '3.6'", - "version": "==6.0.1" + "markers": "python_version >= '3.8'", + "version": "==6.0.2" }, "requests": { "hashes": [ - "sha256:f2c3881dddb70d056c5bd7600a4fae312b2a300e39be6a118d30b90bd27262b5", - "sha256:fa5490319474c82ef1d2c9bc459d3652e3ae4ef4c4ebdd18a21145a47ca4b6b8" + "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", + "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" ], - "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==2.32.0" + "version": "==2.32.3" }, "six": { "hashes": [ - "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", - "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", + "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.16.0" + "version": "==1.17.0" }, "snowballstemmer": { "hashes": [ @@ -577,44 +597,53 @@ }, "soupsieve": { "hashes": [ - "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690", - "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7" + "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", + "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9" ], "markers": "python_version >= '3.8'", - "version": "==2.5" + "version": "==2.6" }, "sphinx": { "hashes": [ - "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560", - "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5" + "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", + "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927" + ], + "index": "pypi", + "markers": "python_version >= '3.10'", + "version": "==8.1.3" + }, + "sphinx-design": { + "hashes": [ + "sha256:b11f37db1a802a183d61b159d9a202314d4d2fe29c163437001324fe2f19549c", + "sha256:b44eea3719386d04d765c1a8257caca2b3e6f8421d7b3a5e742c0fd45f84e632" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==7.2.6" + "version": "==0.6.1" }, "sphinxcontrib-applehelp": { "hashes": [ - "sha256:c40a4f96f3776c4393d933412053962fac2b84f4c99a7982ba42e09576a70619", - "sha256:cb61eb0ec1b61f349e5cc36b2028e9e7ca765be05e49641c97241274753067b4" + "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", + "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5" ], "markers": "python_version >= '3.9'", - "version": "==1.0.8" + "version": "==2.0.0" }, "sphinxcontrib-devhelp": { "hashes": [ - "sha256:6485d09629944511c893fa11355bda18b742b83a2b181f9a009f7e500595c90f", - "sha256:9893fd3f90506bc4b97bdb977ceb8fbd823989f4316b28c3841ec128544372d3" + "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", + "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2" ], "markers": "python_version >= '3.9'", - "version": "==1.0.6" + "version": "==2.0.0" }, "sphinxcontrib-htmlhelp": { "hashes": [ - "sha256:0dc87637d5de53dd5eec3a6a01753b1ccf99494bd756aafecd74b4fa9e729015", - "sha256:393f04f112b4d2f53d93448d4bce35842f62b307ccdc549ec1585e950bc35e04" + "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", + "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9" ], "markers": "python_version >= '3.9'", - "version": "==2.0.5" + "version": "==2.1.0" }, "sphinxcontrib-jsmath": { "hashes": [ @@ -626,19 +655,19 @@ }, "sphinxcontrib-qthelp": { "hashes": [ - "sha256:053dedc38823a80a7209a80860b16b722e9e0209e32fea98c90e4e6624588ed6", - "sha256:e2ae3b5c492d58fcbd73281fbd27e34b8393ec34a073c792642cd8e529288182" + "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", + "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb" ], "markers": "python_version >= '3.9'", - "version": "==1.0.7" + "version": "==2.0.0" }, "sphinxcontrib-serializinghtml": { "hashes": [ - "sha256:326369b8df80a7d2d8d7f99aa5ac577f51ea51556ed974e7716cfd4fca3f6cb7", - "sha256:93f3f5dc458b91b192fe10c397e324f262cf163d79f3282c158e8436a2c4511f" + "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", + "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d" ], "markers": "python_version >= '3.9'", - "version": "==1.1.10" + "version": "==2.0.0" }, "sphinxcontrib-wavedrom": { "hashes": [ @@ -658,36 +687,73 @@ }, "tinycss2": { "hashes": [ - "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847", - "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627" + "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", + "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289" ], - "markers": "python_version >= '3.7'", - "version": "==1.2.1" + "markers": "python_version >= '3.8'", + "version": "==1.4.0" + }, + "tomli": { + "hashes": [ + "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6", + "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd", + "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c", + "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b", + "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8", + "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6", + "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77", + "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff", + "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea", + "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192", + "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249", + "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee", + "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4", + "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98", + "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8", + "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4", + "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281", + "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744", + "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69", + "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13", + "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140", + "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e", + "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e", + "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", + "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff", + "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec", + "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2", + "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222", + "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106", + "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272", + "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a", + "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7" + ], + "markers": "python_version < '3.11'", + "version": "==2.2.1" }, "types-python-dateutil": { "hashes": [ - "sha256:1f8db221c3b98e6ca02ea83a58371b22c374f42ae5bbdf186db9c9a76581459f", - "sha256:efbbdc54590d0f16152fa103c9879c7d4a00e82078f6e2cf01769042165acaa2" + "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb", + "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53" ], "markers": "python_version >= '3.8'", - "version": "==2.8.19.20240106" + "version": "==2.9.0.20241206" }, "typing-extensions": { "hashes": [ - "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475", - "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb" + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" ], "markers": "python_version >= '3.8'", - "version": "==4.10.0" + "version": "==4.12.2" }, "urllib3": { "hashes": [ - "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", - "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168" + "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", + "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d" ], - "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==2.2.2" + "markers": "python_version >= '3.9'", + "version": "==2.3.0" }, "wavedrom": { "hashes": [ @@ -701,6 +767,13 @@ "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" ], "version": "==0.5.1" + }, + "xcffib": { + "hashes": [ + "sha256:33775c1d0461f19255fc54e22ce914e10a13fb65bc7bba0eabafee7f0878cfdb" + ], + "markers": "python_version >= '3.3'", + "version": "==1.7.1" } }, "develop": {} diff --git a/source/Software Guide/Bonsai.ONIX/index.rst b/source/Software Guide/Bonsai.ONIX/index.rst index 5f6ed69..52cd86d 100644 --- a/source/Software Guide/Bonsai.ONIX/index.rst +++ b/source/Software Guide/Bonsai.ONIX/index.rst @@ -7,7 +7,7 @@ .. _bonsai_onixref: -Bonsai.ONIX +Bonsai.ONIX (DEPRECATED) =================================== .. Important: The names of pages for nodes must match their Bonsai.ONIX class diff --git a/source/Software Guide/Open Ephys GUI/index.rst b/source/Software Guide/Open Ephys GUI/index.rst index b927d14..04ec865 100644 --- a/source/Software Guide/Open Ephys GUI/index.rst +++ b/source/Software Guide/Open Ephys GUI/index.rst @@ -9,11 +9,13 @@ electrophysiology data. It was designed by neuroscientists to make their experiments more flexible and enjoyable. It works equally well on macOS, Linux, and Windows. -.. note:: An ONIX plugin for the Open Ephys is in development. To access all of - ONIX's capabilities right now, have a look at the :ref:`openephys_onix1ref`. - **In the meantime, you can still take advantage of the GUI's excellent - ephys visualizaiton tools by streaming data from Bonsai to the GUI using - the** `Ephys Socket Plugin `__. +.. note:: An ONIX plugin for the Open Ephys is in development. To access all of + ONIX's capabilities right now, have a look at the + `OpenEphys.Onix1 `__ + Bonsai Package. + **In the meantime, you can still take advantage of the GUI's excellent + ephys visualizaiton tools by streaming data from Bonsai to the GUI using + the** `Ephys Socket Plugin `__. diff --git a/source/Software Guide/OpenEphys.Onix1/index.rst b/source/Software Guide/OpenEphys.Onix1/index.rst deleted file mode 100644 index fc3374f..0000000 --- a/source/Software Guide/OpenEphys.Onix1/index.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. _openephys_onix1ref: - -Bonsai ONIX Package -================================= - -``OpenEphys.Onix1`` is a `Bonsai `__ package for ONIX -hardware. This package contains `Bonsai Operators -`__ for acquiring and -sending data to ONIX hardware. - -:Code: https://github.com/open-ephys/bonsai-onix1 -:Compatibility: All ONIX hardware, Neuropixels, UCLA miniscopes & variants -:Documentation: https://open-ephys.github.io/bonsai-onix1-docs/index.html - -.. raw:: html - - -
- -
-

Go to the OpenEphys.Onix1 Docs

-
- OpenEphys.Onix1 bonsai
-            package documentation - -
- -What is Bonsai? ------------------------------- -`Bonsai `__ is a visual programming language (think -LabView) for `reactive programming -`__ with features such as: - -- Real-time compilation of workflows to machine code as they are edited - (zero-overhead). -- A large array of operators for combining and sychronizing asynchronous data - streams, which is a major issue in other software. -- Lots of support for all sorts of hardware outside of ONIX. - -Bonsai is A good choice for accessing the full power of ONIX hardware and -combining it with third-party data sources (e.g. machine vision cameras, -behavioral hardware, etc.), and for real-time processing and manipulation of -data streams. The documentation linked above contains detailed instructions on -how to use Bonsai with ONIX hardware along with fully useable example workflows, -data loading scripts, etc. diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index eeec17b..65aa867 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -9,33 +9,44 @@ .. toctree:: :hidden: - OpenEphys.Onix1/index + OpenEphys.Onix1 Open Ephys GUI/index oni-repl/index - Bonsai.ONIX (DEPRECATED) + Bonsai.ONIX/index -:ref:`Bonsai ONIX Package ` - :ref:`OpenEphys.Onix1 ` is a `Bonsai - `__ package for acquiring data from ONIX hardware - for real-time experiments. Bonsai is very good at processing the - heterogeneous data streams produced by ONIX hardware. +.. grid:: -:ref:`Open Ephys GUI ONIX Plugin ` - The `Open Ephys GUI ` excels at - electrophysiology data visualization and recording. + .. grid-item-card:: OpenEphys.Onix1 (Bonsai Package) + :link-type: url + :link: https://open-ephys.github.io/bonsai-onix1-docs/ + :class-card: intro-card -:ref:`Command line application ` - `oni-repl` is a simple command-line application that can be used for - debugging and basic streaming IO with ONIX hardware. + Acquire data from ONIX in Bonsai, a visual programming language for more extensive data + processing and low-latency (<1 ms latencies) feedback. -.. tip:: ONIX uses an `ONI-compliant API - `__ that is software - agnostic. If you want to use ONIX hardware with your acquisition software, - please :ref:`get in touch `. + .. grid-item-card:: ONIX Source (Open Ephys GUI Plugin) + :link-type: ref + :link: open_ephys_gui + :class-card: intro-card + + Acquire data from ONIX in the Open Ephys GUI, a turnkey solution for acquiring and + visualizing electrophysiology data. + + +Troubleshooting & Development +___________________________________ + +:doc:`oni_repl ` is a simple command-line application that can be used for +debugging and basic streaming IO with ONIX hardware. + +.. tip:: ONIX uses an `ONI-compliant API + `__ that is software + agnostic. If you want to use ONIX hardware with your acquisition software, + please :ref:`get in touch `. Deprecated Software ___________________________________ -- The :ref:`bonsai_onixref` pages provide information about the original Bonsai - package, which has been superseded by :ref:`OpenEphys.Onix1 `. +- :doc:`Bonsai.ONIX ` is the deprecated Bonsai ONIX + package which has been superseded by `OpenEphys.Onix1 `__. diff --git a/source/conf.py b/source/conf.py index 57ec82f..33c4a2a 100644 --- a/source/conf.py +++ b/source/conf.py @@ -43,6 +43,7 @@ 'sphinx.ext.githubpages', 'sphinx.ext.graphviz', 'sphinxcontrib.wavedrom', + 'sphinx_design' ] # Add any paths that contain templates here, relative to this directory. From 192c0d895ceca23df710db9b11b394308f44f1c0 Mon Sep 17 00:00:00 2001 From: cjsha Date: Sun, 2 Feb 2025 23:41:00 -0500 Subject: [PATCH 02/14] Fix broken refs --- .../Hardware Guide/Headstages/tether-voltage.rst | 15 ++++++++------- source/Hardware Guide/Miniscopes/index.rst | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/source/Hardware Guide/Headstages/tether-voltage.rst b/source/Hardware Guide/Headstages/tether-voltage.rst index 1814dd2..cdee0a4 100644 --- a/source/Hardware Guide/Headstages/tether-voltage.rst +++ b/source/Hardware Guide/Headstages/tether-voltage.rst @@ -20,13 +20,14 @@ host computer will not be able to detect the headstage. A borderline voltage can still cause connectivity issues as the headstage occasionally dips below the level it needs to function properly. -.. attention:: The :ref:`Bonsai package ` automatically sets the - headstage port voltage by default, but allows the user to override the - voltage setting as well. The documentation linked shows how to use this - functionality and what valid voltage ranges are for each headstage. This - functionality has been been tuned for the tethers that are shipped with each - headstage. The voltage override is available when custom tethers are used - (see :ref:`measure_voltage`). +.. attention:: + The `OpenEphys.Onix1 `__ + Bonsai package automatically sets the headstage port voltage by default, but allows + the user to override the voltage setting as well. The documentation linked shows how + to use this functionality and what valid voltage ranges are for each headstage. This + functionality has been been tuned for the tethers that are shipped with each + headstage. The voltage override is available when custom tethers are used + (see :ref:`measure_voltage`). The voltage set in software is not identical to the voltage supplied to the headstage, as some voltage drop will occur over the tether that connects them. The diff --git a/source/Hardware Guide/Miniscopes/index.rst b/source/Hardware Guide/Miniscopes/index.rst index 92d479b..94262ec 100644 --- a/source/Hardware Guide/Miniscopes/index.rst +++ b/source/Hardware Guide/Miniscopes/index.rst @@ -10,7 +10,7 @@ UCLA Miniscope V3 :Design Repository: https://github.com/daharoni/Miniscope_CMOS_Imaging_Sensor_PCB :Documentation: http://miniscope.org/index.php/Guides_and_Tutorials :Compatibility: :ref:`pcie_host`, :ref:`breakout` -:Software: :ref:`openephys_onix1ref` +:Software: `OpenEphys.Onix1 `__ Bonsai package .. figure:: /_static/images/miniscopes/ucla-miniscope-v3-render.jpg :align: center @@ -21,7 +21,7 @@ UCLA Miniscope V4 :Design Repository: https://github.com/Aharoni-Lab/Miniscope-v4 :Documentation: https://github.com/Aharoni-Lab/Miniscope-v4/wiki :Compatibility: :ref:`pcie_host`, :ref:`breakout` -:Software: :ref:`openephys_onix1ref` +:Software: `OpenEphys.Onix1 `__ Bonsai package .. figure:: /_static/images/miniscopes/ucla-miniscope-v4-render.png :align: center From e27ae722f38fa8bdfcf0990e95a361ba6e754483 Mon Sep 17 00:00:00 2001 From: cjsha Date: Mon, 3 Feb 2025 13:19:42 -0500 Subject: [PATCH 03/14] Add CSS and images to cards --- source/Software Guide/index.rst | 10 +- source/_static/images/bonsai-logo.svg | 98 ++++++ source/_static/images/oe-gui-logo.svg | 469 ++++++++++++++++++++++++++ source/_static/theme_overrides.css | 6 + 4 files changed, 582 insertions(+), 1 deletion(-) create mode 100644 source/_static/images/bonsai-logo.svg create mode 100644 source/_static/images/oe-gui-logo.svg diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index 65aa867..b6614b1 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -14,12 +14,17 @@ oni-repl/index Bonsai.ONIX/index -.. grid:: +There are various software to acquire data from the ONIX system: + +.. grid:: 3 .. grid-item-card:: OpenEphys.Onix1 (Bonsai Package) :link-type: url :link: https://open-ephys.github.io/bonsai-onix1-docs/ :class-card: intro-card + :img-top: /_static/images/bonsai-logo.svg + :img-alt: bonsai logo + :class-img-top: software-card-img Acquire data from ONIX in Bonsai, a visual programming language for more extensive data processing and low-latency (<1 ms latencies) feedback. @@ -28,6 +33,9 @@ :link-type: ref :link: open_ephys_gui :class-card: intro-card + :img-top: /_static/images/oe-gui-logo.svg + :img-alt: open ephys gui logo + :class-img-top: software-card-img Acquire data from ONIX in the Open Ephys GUI, a turnkey solution for acquiring and visualizing electrophysiology data. diff --git a/source/_static/images/bonsai-logo.svg b/source/_static/images/bonsai-logo.svg new file mode 100644 index 0000000..fd5144b --- /dev/null +++ b/source/_static/images/bonsai-logo.svg @@ -0,0 +1,98 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/source/_static/images/oe-gui-logo.svg b/source/_static/images/oe-gui-logo.svg new file mode 100644 index 0000000..12acf43 --- /dev/null +++ b/source/_static/images/oe-gui-logo.svg @@ -0,0 +1,469 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/_static/theme_overrides.css b/source/_static/theme_overrides.css index c30c417..6947161 100644 --- a/source/_static/theme_overrides.css +++ b/source/_static/theme_overrides.css @@ -436,3 +436,9 @@ img { .hint>.admonition-title:before { color: #519141 !important; } + +.software-card-img { + width: 50%; + margin: auto; + margin-top: 1rem; +} \ No newline at end of file From 4f04d10c470499e6dbf95c4196e200bc497bbc59 Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:08:28 +0000 Subject: [PATCH 04/14] changed card titles --- source/Software Guide/index.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index b6614b1..113573f 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -1,6 +1,9 @@ .. |software_logo| image:: /_static/noun_macbook.svg :height: 60 +.. |_| unicode:: 0xA0 + :trim: + .. _software_guide: |software_logo| Software Guide @@ -18,7 +21,7 @@ There are various software to acquire data from the ONIX system: .. grid:: 3 - .. grid-item-card:: OpenEphys.Onix1 (Bonsai Package) + .. grid-item-card:: Bonsai Package OpenEphys.Onix1 :link-type: url :link: https://open-ephys.github.io/bonsai-onix1-docs/ :class-card: intro-card @@ -29,7 +32,7 @@ There are various software to acquire data from the ONIX system: Acquire data from ONIX in Bonsai, a visual programming language for more extensive data processing and low-latency (<1 ms latencies) feedback. - .. grid-item-card:: ONIX Source (Open Ephys GUI Plugin) + .. grid-item-card:: Open Ephys GUI plugin ONIX |_| Source :link-type: ref :link: open_ephys_gui :class-card: intro-card From f7972001ef7ec74db766dbf5cd82e72710b1df2f Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:11:15 +0000 Subject: [PATCH 05/14] changed side-menu text --- source/Software Guide/Open Ephys GUI/index.rst | 5 ++++- source/Software Guide/index.rst | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/Software Guide/Open Ephys GUI/index.rst b/source/Software Guide/Open Ephys GUI/index.rst index 04ec865..e45baab 100644 --- a/source/Software Guide/Open Ephys GUI/index.rst +++ b/source/Software Guide/Open Ephys GUI/index.rst @@ -1,6 +1,9 @@ +.. |_| unicode:: 0xA0 + :trim: + .. _open_ephys_gui: -Open Ephys GUI ONIX Plugin +Open Ephys GUI Plugin -------------------------------------------- The `Open Ephys GUI `__ is an diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index 113573f..dae74aa 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -12,7 +12,7 @@ .. toctree:: :hidden: - OpenEphys.Onix1 + Bonsai Package Docs Open Ephys GUI/index oni-repl/index Bonsai.ONIX/index From e766097e933a65bd1d776b2f207a1c82a019f91a Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:15:53 +0000 Subject: [PATCH 06/14] minor text edits --- source/Software Guide/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index dae74aa..e81614a 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -30,9 +30,9 @@ There are various software to acquire data from the ONIX system: :class-img-top: software-card-img Acquire data from ONIX in Bonsai, a visual programming language for more extensive data - processing and low-latency (<1 ms latencies) feedback. + processing and sub-ms latency feedback. - .. grid-item-card:: Open Ephys GUI plugin ONIX |_| Source + .. grid-item-card:: Open Ephys GUI Plugin ONIX |_| Source :link-type: ref :link: open_ephys_gui :class-card: intro-card From eeb0b604fd65867c49cc6eb6609323982975a862 Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:23:38 +0000 Subject: [PATCH 07/14] gui page edits --- source/Software Guide/Open Ephys GUI/index.rst | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/source/Software Guide/Open Ephys GUI/index.rst b/source/Software Guide/Open Ephys GUI/index.rst index e45baab..e60b6ad 100644 --- a/source/Software Guide/Open Ephys GUI/index.rst +++ b/source/Software Guide/Open Ephys GUI/index.rst @@ -12,13 +12,8 @@ electrophysiology data. It was designed by neuroscientists to make their experiments more flexible and enjoyable. It works equally well on macOS, Linux, and Windows. -.. note:: An ONIX plugin for the Open Ephys is in development. To access all of - ONIX's capabilities right now, have a look at the - `OpenEphys.Onix1 `__ - Bonsai Package. - **In the meantime, you can still take advantage of the GUI's excellent - ephys visualizaiton tools by streaming data from Bonsai to the GUI using - the** `Ephys Socket Plugin `__. +An ONIX Source plugin for the Open Ephys GUI is in development. +To access all of ONIX's capabilities right now, have a look at the `OpenEphys.Onix1 Bonsai Package Docs `__. Even when acquiring in Bonsai, you can still take advantage of the GUI's excellent ephys visualization tools by streaming data from Bonsai to the GUI using the Ephys Socket Plugin as explained in `this tutorial `__. From d787ccc0dd276b3b87301eb5af65feb9b7bb61e1 Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:34:14 +0000 Subject: [PATCH 08/14] removed bonsai from deprecated software title --- source/Software Guide/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index e81614a..892b34b 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -15,7 +15,7 @@ Bonsai Package Docs Open Ephys GUI/index oni-repl/index - Bonsai.ONIX/index + Deprecated Software There are various software to acquire data from the ONIX system: From 41ac9eaaa8538a089b6aa85a203aa93d98a27369 Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:46:11 +0000 Subject: [PATCH 09/14] fixed broken oni links --- source/Resources/faq.rst | 2 +- source/Software Guide/index.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Resources/faq.rst b/source/Resources/faq.rst index 1aa1e6b..d28f66e 100644 --- a/source/Resources/faq.rst +++ b/source/Resources/faq.rst @@ -48,7 +48,7 @@ FAQ I have existing acquisition hardware. Can I can use your API and software to acquire data from it? Yes. We tried to design our API so that it decouples hardware details from software in a generic way. Have a look at the - `Driver Translators `_ page + `Driver Translators `_ page for more information on how to use the ONIX API with your hardware. Depending on how your device communicates with the computer it may only take 10's of lines of C. diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index 892b34b..7337591 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -51,7 +51,7 @@ ___________________________________ debugging and basic streaming IO with ONIX hardware. .. tip:: ONIX uses an `ONI-compliant API - `__ that is software + `__ that is software agnostic. If you want to use ONIX hardware with your acquisition software, please :ref:`get in touch `. From 63772cbee09931a4aff66fb0c303829d38aa2a92 Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:46:30 +0000 Subject: [PATCH 10/14] fix broken link --- source/Resources/faq.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Resources/faq.rst b/source/Resources/faq.rst index d28f66e..6efbfd4 100644 --- a/source/Resources/faq.rst +++ b/source/Resources/faq.rst @@ -54,6 +54,6 @@ FAQ take 10's of lines of C. I have existing acquisition software. Can I integrate support for ONIX hardware using your API? - Yes. Have a look at the `ONI API Documentation `_ + Yes. Have a look at the `ONI API Documentation `_ to get started. Also let us know if you want help. From 27781fa5517b8c76a024616f16e4b13005c32f66 Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:46:55 +0000 Subject: [PATCH 11/14] fix broken link --- source/Getting Started/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Getting Started/index.rst b/source/Getting Started/index.rst index aa361c9..60674f1 100644 --- a/source/Getting Started/index.rst +++ b/source/Getting Started/index.rst @@ -25,7 +25,7 @@ Understanding the System To understand the underlying hardware specifications, check out the `ONI Hardware Specification `_. .. note:: - For developers who want to dig into the API, check out the `ONI API Documentation `_. + For developers who want to dig into the API, check out the `ONI API Documentation `_. Usage Warnings -------------------------------- From f8f098d8437292edf753aabf1b495b44f45cbdbd Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Mon, 3 Mar 2025 21:49:41 +0000 Subject: [PATCH 12/14] more fixed links i missed --- source/Getting Started/index.rst | 2 +- source/Software Guide/oni-repl/index.rst | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/Getting Started/index.rst b/source/Getting Started/index.rst index 60674f1..ec77f04 100644 --- a/source/Getting Started/index.rst +++ b/source/Getting Started/index.rst @@ -22,7 +22,7 @@ Understanding the System - See the :ref:`hardware_guide` for a description of each ONIX hardware component and decide which you will need. .. note:: - To understand the underlying hardware specifications, check out the `ONI Hardware Specification `_. + To understand the underlying hardware specifications, check out the `ONI Hardware Specification `_. .. note:: For developers who want to dig into the API, check out the `ONI API Documentation `_. diff --git a/source/Software Guide/oni-repl/index.rst b/source/Software Guide/oni-repl/index.rst index dab6834..4e8b0c6 100644 --- a/source/Software Guide/oni-repl/index.rst +++ b/source/Software Guide/oni-repl/index.rst @@ -11,7 +11,7 @@ Command Line Application ``oni-repl`` is a simple `read-eval-print loop (REPL) `__ for -`liboni `__. +`liboni `__. :Code: https://github.com/open-ephys/liboni/tree/main/api/liboni/oni-repl :Compatibility: Any ONI-compliant hardware @@ -34,10 +34,10 @@ hardware to perform the following: - Bulk initialize device register state .. note:: ``oni-repl`` was created for hardware debugging and as a test program - for `liboni `__. + for `liboni `__. However, its simplicity and lack of abstraction compared to :ref:`bonsai_onixref` make it useful as an example of how to use `liboni - `__ and for quickly + `__ and for quickly examining hardware state and hub firmware versions. .. code-block:: none From b114541350da532a106375c0761a12b8b4aaa872 Mon Sep 17 00:00:00 2001 From: ChucklesOnGitHub Date: Thu, 6 Mar 2025 18:25:30 +0000 Subject: [PATCH 13/14] updated gui logo --- source/Software Guide/index.rst | 2 +- source/_static/images/oe-gui-logo.png | Bin 0 -> 54744 bytes source/_static/images/oe-gui-logo.svg | 469 -------------------------- 3 files changed, 1 insertion(+), 470 deletions(-) create mode 100644 source/_static/images/oe-gui-logo.png delete mode 100644 source/_static/images/oe-gui-logo.svg diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index 7337591..80c35a1 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -36,7 +36,7 @@ There are various software to acquire data from the ONIX system: :link-type: ref :link: open_ephys_gui :class-card: intro-card - :img-top: /_static/images/oe-gui-logo.svg + :img-top: /_static/images/oe-gui-logo.png :img-alt: open ephys gui logo :class-img-top: software-card-img diff --git a/source/_static/images/oe-gui-logo.png b/source/_static/images/oe-gui-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..55e918f72609efd780296abed7f6e527f105676a GIT binary patch literal 54744 zcmcHfRZv_{v_60i?gW=0!QI{69fG?PEVu@Dg1cLSyAJLi+}+*XA>1Lqb6!r>|5n|H z`!Kbqx^}Pbwbs}DE!p8p3X(|hpWy)j0Ftznmcx6w449{ z1oV#|7$7|p2LOOqv=kLpQu=1+Z0GdN&YnnGRFufx(azk`#tZ;(U(Wh!q5Aa*i~nK$ zRzx<;FHzP`1rwG?MI^!xBaVWG7!E}yj5u!zQ@I;eTpSW_C^rluI@&K1Q<)C&C;TGJ zF7dDEz~5m%|GaGd_-#Gk_OL(pw_!oxp!_DQZUUwY7BN|hRhiunu|$Lrbu)0VZ(wVe zLC7DT%pQOOTW3n_^hOE>c=X}pqb2Er=>UMa&mh18y5uvunD9g2KOKvt>4NzMfps~@ zamm8^VE}|YqeTh!x0nX9e@%&z>v~+e+J-}^_cbp44{)pj0u(- z2OvT>3ljr;;{}vYsQ(lPXfgpX%w_wy0gLniCTR_GDL{22plcijp%ws(2w+kU3#JA@ z{s0&bk&?Otg3%h`Gz-VYN5K@gxW7A@A7=at5 z3o-O~q~WsovwhmU83h1x<1j(m-n_YwBUg@(b3_A?4d{;7`QE1sSjI$4I_5BD}v6 z%#id+8#imxVC*QPIYf)4N8Yd$kc5lGQ}>fkzngAv(7iwiY_J2Wtpvb+#L*Y)nLymj zQle-&cWpla0N1T{-Lq7%5PshRwA9$06;9) zpQc(E@3tF~5+ye>h0tAy{-H;^ikM|TB97K?E4<$)L zv1~m>3+huJjxh^!sHPMh={#BtIwQ)DFws6vGPH0}7Ru&WaOs+S)oHY8iRteuq(^im z8EjIYNfU;bO|5HTxD)A!XorG#vvzxTS$FYviLZ6wvy6ot@*lr$Q>py1lEK|W*<;&- zHcMp@R{Nc0kt4~<YMHH$ zPib~)nlwNfFU+_<@JTXB6iIkAjH)H2g{AAI2x>QKBdRea`d_^(CDd5I?v%jICYPy| zW+|O~#rtYe!do0#YEf*bDwyx1^%f4T)hpMlD4MUFTVt@(Hb8`6f?MZKM{JE$7UJU1 z-bYb0w&dkX)0+B5&>F#CT9U^t$|}REQKxc~Xf6n|lj`u8>8t>EKvk4-%|{gcujJ#IRx!8E??vaS*&X_R*>ZM8>mKa~&-mVqZ>n#$&qa5Vh?>xK zh-A*dc8uT1x86mDO*8t%~O28=Om&eK1Es%=LRXsGS3O$RIn zHknD+?rIlmodesx2WxX{6=(xnAWL1#Qw^pW0wnbxqW$$@HdxCe1chnm{3{vP4av6a(fsa$YBLAUCq6rjkD9LxeD++WyV2mIyH(~Gz>T99YO?7nvCOgJ*PSr}6|CZHlUi9^C33Km&*A(ejM2VPM6VAbWpHS)Mu=dveVFFwDdrS*x2aW8rwy@Zv1GCJ z3=3vO?kaj2b{c_F1}na0&K9;7!2t$yt_MY+3ku+L;66<6<2| zN{QtYfELFV`{u4A9(Zd5p3J+DasTOEpYAwt(%sa=z z|8OUlWz&wGjn@5HiRH|^$az0Q>p|O!2Ns0LYS0sC?zfj)ao6%Wc&xzhU_#M`s6&_Y zHT?wA*v=`IooS?0`m|Gc%3J&EcmE0KZUD1BK~RI=3-&%)T{zQI)MV7!XfS#X$-)!B z4F6e)v4Wj~>AOg^>b{2;YWJrzZ8fpJq^z&mbi#bv{AhojK3fMlxin=z1^GMD(sDi0 zhI;+k-M#naFUtD#!WsT7%KTd3EYG7*ebLMkqFVZh{4}z89rALp+FSdFW3bqbsgAmgYZ!o0Dz=h`7 zIf7|^Rh5`|+7n6S!7m+uvo74|kvNdlqA~}zN$tfvc8?z5HXaC(c$Qrwf0S>*%zSYr zupnTx5=p;Km&o{<{-R^7)1o*kFg1U??)fUY^5s(|8=sbk%#G@>O$OoGMrL}XS{ zmbVYX)2iXhFW`>@lkp9!Pj(kAD9&5c;_nd$yluSWy4Ow4*R?Bq=o(EL=~X-iw#UxL ze18*W6bD-~Thl9>b*-DvJ=+_8m_HohWpj?N-L`vNVZG1KWpnedwcmK!J@h}^ZD6hW zI8wfikF+kiQJz<{DYhBh3Y`friLQmt3F`b^UA$QJwd!)qy_s5-e1HxPocJ4e7xPIJ zDkd#vBm^nsB%4csn|oW(@$KlfNOZzMv*AZmVtt7r!??Deig^`BJ@qd#btnI$89RfSZu; z4hfNZ^J>CMzXFOkiA;~kgD{Hy*hy&@L(9Gk zRGr~#iJuG#3g$33@+jgAcTwr_A5Oue%#AM-PIelnl{zl1t)(w*1{myWdYt@QUgMky z73|P~-G)p!9Guhm;Q#(b=Hem#8w>c(g!Azaw&mjmL}=2(|6Ud5{5Na}x%O{35Y_qL zJVc2}r2nt;{ztGquW^QGH2`5Ke}g|4y9w_Q^1g6zB(jJV2QlQH)DMLVF3~U4pJWq4 z`I(<1bQt!zA=VE9AMzZA5CIYVp`ep7e~>yu-~MB%CgyLs>F{oFuzq#`ldc6n7{8s8 zE?TE1th2E5E{{WxT$n`|FWyVl%`Uzz;Ha4qNDI7ZF3f8*d&ozO%P(EHh7@bCIKrI} zIC4<0gqys677*M{z98*-3yWaAa30+@ne4$+Sps}suIRfG{13n;*cRGB##p^qf0g_? z@;1|@5t(cEy~XbWTpyMXZqc~X;bT`jO#m;#$A#N6V@U6t$xp9xH2XiKYv(?!V{h@5 zd^ppW^HSY#9`<>_4B*axDPy>(+xnr7CNz>R^k25ObdG=yheZf4#!IIXmw!&^wZeh$ zfpPz2KMwm`@f+e%coW-iZNG)>W2>LJ;a?dpV}#aVpU3t*x)kGPWBxgC5?KJy7EC6( z4*QH`j`E1K*-s{K^v|>3C=pw4tWC$ZYvTw#n^Gx9i8^An(`vSZ&nkzrV*+)DQUDlDEnR4>sIS@Wa z_&?w>e;}lnejloYkbeT!^W+udl9McJ{omqEbE`q88>B}u z#&oxd{9PO1ip&e4|0dvmp$IQCXq$oJM`#N)oh|u?;EXtlTHR{Y_0bCZX3#v!BY?#R zu6xb*%*do2*R#Im@sc53%8#yo;JOhaolN=M7jUdlJ859u_um+50B9_Ep=3i2;cbtM z)#4xEo7Q0cQ@}4e*Pz}q{6B%U?`MA4e~ZHmfzvv;op;gOVd|HH{mV@u$# z#L_WID=L#4uzc&87N9|xzwn!kV^8cKJ0lQ-d?mW9ToIrA1pY2D zjXM6Zvk=~JlP)KJC(aWnyTp+-a%v!_@drvmc;g_ts+`bAdhKQryuVzo?R$Ox*a-4I zj6e2TId&^5!-M`Nm|+oj%D;{Da>IL}E3HRjJ-;*m695enyPME{WZtIK3iT%4B|G}` zfr-Gp;Ss+<8wz1J{~U1W(dPdd`xHm_=rG%JZJsA79FY-1F_fvC}Te?e9p(1XJ zk42d1@~|I`(CqG!^7ORM6~P6BSuXyW61rE#D?aiel(RJWJ46-7f9v9F7SppyI=Ba>I)=?FH+BwAMODO`V#Y7 z-r=?Z_8FGRX59bZ7Ea75ne59Ty;HdV{*zP>C7khjbO_5}7VMmPaO0o3fewt)yo(tW zhlG=6|J}tQz-uZZUsk9!;^DrP@6jJu6%L}U3FYRx9LRg%6vY4G$F(+)BeAl9jHq2MPEmzPnnO`G5H2|I!7{|KXGWrJ4U1 z5B)FA{NH*1%R}E~Pu0KVHgHJ(2TBf-ASSH;-x#b39ZJvIR%ZU6cbdTJMGc~Y|GS2> zO!NN#OOF3fQvF|T|1TN;Un~8;tXu7B;{^MmQ1#~^6j`651`e2k|73AQYBIh=1b5Oy zv3K~KBMvg=6jA2vP{UkUR4Xy{eE$zwoNDF$j?)#wqWQ!Uzu6&Wocc8~%R{{?F>ao| zhL(8k^NXd#e5DyvDtY0G7AMZwt9*m;*!lF1@o=_i7qs@@LdztpBk-=GjqH0;ta$xF zGQZhWleSg(x9zES(VbifD?`FGe}hF4VWnRVVTTD^V>7YBQ{|&b5nr-nSQO$Aw2!*+ zy)xN(-Z5VPwDa!ZhWif))mGLzVVLjjSkw$psMvvJJ$gSeuuo7wC4&oaAFyKfh0Vq$ zlMF`#gM@y1@IoNrzr$a5u1D+OL#=?9Lsgj-2)?jtxcBO;i*-9ZbrkW9XdeBK+|Sm$ zDnDiKQbTEo58hxa*y2K(nQEFkm66@6Kck7k6AO`4LpF(QN(<{(wh?!sq4e21APd|~ zDB(j{>fN+!C(FBhkKTB072LXlIXAiJibZw#hiv;It(6gk#`$z*!EGt-O(*i4kvp8U zfkxRH{go_BYs@)R zbm2^BY9tC3SM1|j(V$N`faqzZ-33}cII;O(lU(Jm6d9&n3Epd(%m@kqQd61)UqZRR8R3^gF_pqz7Gi`x@CL-b-Bp zeVUK~%FAZ{K!hK>;($N!+uugbTVwFc{HEqFO0dPj(rs-R`JHvd=>RnwPc(IUD&Sb~ zR79qLTL}Hz+y8EuQ+c8C>oGg7SZ1+!W`(4f47#;E^R#ZIIG^VIlQDHZT1g)PLp-0o z4!kb0J>9JF&!jH1 zdRo&#vyU{hCJ5sphg3_NkI3O^q>)s_rG}K1n-~k1c{fZSF*J;~*G(_PabsG{4QdnhIyfbcQ&F{TyE$1%{I~J=ihf+|2a0&&}nR!H7VI4nCGdP zus4ZlTa0`+q0Xg42{}w8ilSr&Ik6Cp(#$}ah6Oy%Jc@FA?ILXDK?v)_z6AE}vUJ58 z3>or(2wz_J!UL({u;u%Ml<2&_1>$`TyI`cj1N9hY$($7iJQUps3wGVdy<~3@!I8^e zXEbV>534$D-G)XBLXus6)&yaRM6T-2#FU@RkAw+df;fr-50zNqRa_X&LWcWc7F`B% zhI`DNXBPRe45&B=MWOi+nd)2SBM0Q5LQYbTaYKK~J4Cc?B5RkR^X5o$pvLf50fi82V;@RwF2sy zb+||I<~6>Ynq}b(V+2$S>@oP^ZH!G?y;lQW*!J#%2oa>1CG@6$Tdy0E`{`|M-#G&j zMJcsvdDySm1WLu}jg6SZ>9Cd$eXC1?UOvwQztE1)k#?xVa~Z@;(nt%?O8f*J{WzJS zIIFNPobeNAHTU^l=mC{0#L?b$)sPt8IP~O|uGVQLMF(liu&`A^cU+qkz8gom5K)(q zwHRbuuEemA?#Y{JddM5|Tk)8m4Lo5jaPlx|CX2ZSl94+uoUXRTfp#0;|15rxLr9dR zEhFQqQF+sDC_Y1|SI42#uwwiKcm=iO&v2rBIeudjrEe88Dph4YYi80xaLtvz8ZHI# zrZo$su`CX)oZ@`^F3FIC&=UbR$iGlnFsl&^WyOl^NuscjlSyOe!lZg)$=!uRN4&KV zz#c!>&xCe?8#|Xz`HR5%U%W)d#MHT*sH4mN!`t@?DN3wNl5kn;_}$tPrfpU7Z6_yz z9O~!UU->s$`3cb${Zh;X)Wv2NRLa+v_<7U2tOW_Lr9uX_4$JOQ5|J+U zvBer9FV1ZxE z#60fZ&i?L6h>#Af`mx-x4C%79@Yo89xO^Ee_qu3wzxqVsO5AR_SW^Sa>BJIWLGO-I zXm8lTW+ASBPI~24VZuzLgc%Q-fmtVMHh4J%MNQ03miMkPb{@Zg9go?wv z?z08#GHK`dQYb6Z{6%0o4<$CnXtpRGPbBSc*4Z%e-`FlRgB&M7Jd zoV2X71vanJ14c{`kp2DE6+)-dHjk5vNb_5HEoFM=mj4zLQeb(C+Sp_uU^7&M0O{%J z8M*Q=ED8GY*I3|462B_Qs~N){NJySF;XI9bCWGSChUFj-WyX-5l7$*jZbDb!ie@EW ztfIj!O_+|xw5`QgHnStNZZ=dmq=N>zOFyiqm63%T8bI2lPT!&Ls7KcG)@otlesiQ% z%i_>oB~O8=+L_$6{#A>C#{JAbd7+78eF{x2iSGuOjX1LxOLSHoTHS>!M_9H~_MM<0 zOf)#tEs8t3H;vU|=-{TQ(pv0I9ifFA47!&GiswzR`w!NAn_2P^(Y`MI_K1_f7ux4U z(IhfzYI!wkbCG`cT&e*YIPagP`at@4vXZ~niJob#Pdq0CbTzJbj=m6!$(vUmDMhY7 zR+F4?Z|PV{ib(C?By=MPB`I(ZM%v?{E9P7#!T~`TndOkL*WtK-ok}It;qhzKnXyqO zgt)-SYOavsI)StkpFWw@$S@a8!Y1j~SCTKzXKc-WgCfRo4iN09FiJRf%AV+DtwGTwngk8A^E8(=zpYOC zXPGg4O4=y9hxE^94NHZef7M6X)Y0jXg>Pz6U()&0PrrhJL9J|CW-%z9|EZ=tn7sHy zW`r*+L80E*psO=?JKUgRy)MOm-1TlITuWRJX1t!f4W5` zJwEN!NljInibdo;6Um6T6?2Z*ozqpbo1mAO!e`WzD~yw*%RhHoBURGl9=UR>H*_6C z;S*^(&Owvsys`{-KX~u&?;oC=uwoa12x-e4p;1%7N!QvuAoXiQ80%da*O)qk~FSvAmR;}p4KX}gd_F*&??EitSyfOa~*c>0HI*uq2BkhBX8e`uMn zX2!&BJZ~jQmcu-MyF6phg!2nExnwC=r>|$SZ?j5&!Y}%iD3o{^E>Q!vF>B!d<5ESI zCJWpF0JfqA-(RP?L?Ji|g;(3U#VLM$ow$(7u*%-_muJ(cHT>}%Pmy9yVNnsxNNr@2 z&kWQWzJ0H4wC*N}K~r%GME{cZ5JZyS*9IJC<1_a7iD*^PXf@Gok70{s0O#1}3)b^X zAev=V4lv5L=?~`Qj#T#Qo&(bb)9w<+DcKH>HDyn`;0e>_(#Y&~QBMV%CxjUm8H4Na zfw^_t^(Dq24KakR)ex!Q($Ky#{#F$4){{4Z^rJAN?tKAy4Xe7RuGq~(C1y>*`}aS4 z#J{LCf$jc3L6nCQQF}{2@=LvpSwLWXXeg{X7Z1iI%fZqJF;xcEV3Yi zp(VZs*4}Orl2xs=%!xLP(@UEWK7Zfwz)eOTx>dh|4e;hT0;AHTHlJ8FADO!>U_6=KL;RK7o z1`ustZuN3S_ik<)))~cZQNXs;Od#Q@m1DE1pdz@n@yJs}sH9j1nfGX9mXdi72x{Gy zfcCAGsqMX|$&6RBA89Mh(on|DxB~l-E>1Qt-B~vfHWOmcZTZ-ZrlB`nN$;T&Ix^G3 zdOEU%=#KUM*lJu$dg39H{Bt-Wf(A`{$8MdDk351fd$h;dl;vORS_N_Hmb3dX4?Rn0 zg5ivZ`>X3Xe1a73ZSBa80W;er@DZ%y5Y!TrpqYqE*Xn}KoTY6lVH}3x+4;{s+I~7i zbPm_r$>J!Gqobpf8ymiZjX`teg3so3&b@`3+UNF(g=|%J?$fmx18-rZbFrTk7u@sX z*)&l7WT41p4$Mx<^cXVeWfMG>48d0`&d7Ie?OSD51ht)R!9}b0>}u;ec|VCb&{L27 zMnLv;t&Wj&F(YC?gQ^S1^@$qP%I^CkrOK}G9gQH6Kd9DCDHiK(tz9=AN0ctX1T6^y zM^oTz#zk*Di&xUlju8R^f+87|pxf(ct!TX44R7m3eWbqF)5!%gqSPvp&&)B25CZ%f z2fwPSZ`DTHjns+=m!Mh=)3n!VZ*7=$CGowooCPALO_?j$lQAOQv3Q+0_@l`zD2FX% zde+OwW?ESAhj_jEZ3^C9!uhv z1o7!2m4v{jF+fM*04bsL7N~ca?_I6gw39=$(F=$Xp?2}Rf8Q{`Tq6foiieWNs%&Zo z1ZrhSV(Lop;jN&_^3#;q)0(-;-}JYYvUNIprMpEX!>LY3nzu_z#U{$!F9s}}o$emE zx)K*iMYls9V-saUsbe`;umLG+_-Szq&8e%eW7j?fePaXeRofaO6ftBA%UI_@&_`CL zsnQqh_5>p!e)=@Cwq{%IOnMlCWNBMPw5m-#a7-LZOKd;|ty?@ete{UWDnij?s(&vo z7-FWKydRvqnVwv5Mkb>(FyNV;q1&TAu?>}li;Sro!k5vO#HGdxG_)Hq54A{eAsdO& zU31sk!BZP$oFmouHT~(ERXlB{V`}!}71gX@Xd%Ch7udd1REn5jthT?&(q; zKA(H69EFJ(C|24k46E0)Ini&w+Fv+=mSIJw9#ax>0{xMCaiRM}a%%haD5E4>a#nW~8No=#X!M z6+0BwSyV^-N3*9?#g&OX_57pdm7P3o<>OEEx!9Po*+)liGPzKWVzyR3rS#{vaV;dR zZ<=ds5={$YZKnFJwYn{6JalQd58vydFelH*=w)*j&uVxxfOMGQ_M9SE*Xi`KQ4MPf zWvd#Oor+_Z2L}KY$#a7r8T8OiSt}q2uD)e zQY20fU{k*Yr<}2Q4o}WajLp$TWcDAAG|}h4S@@eV1r1EhpQnCHHeYnSfWpGU$T8TK zJeMi`7SGTcW0uI~)4|zoQ#eM+pUj{HQ)Osy|2VT$e9`kSQW{w*J;x@V;17{h!2Rcn zGa<_WiIHg!EcGhVrLARWUaV%-rX;^Ct&Ac!k5vtO+~H-6>0$kwevh;}o`%zUY1p<7xfoK*UR`81CUoj&f(SvL#leUWr`+Tbwb)#6DsO7sA>+MDyDM6I zM-Ct@n(zd^kadIDq~3~Ilbc`jG@TJXX@OWjjeKOQf=>j>==iwf^R4B1>qQ4|$A>~j zxLf)qW+mG){QK_gyQchN1vj-3dFE_kT)J>iR@8<(QVA1H>CETS!sD>cI%ylVY%)8G zKTT`ry35BpGJE~33jzh>{q6lroJDD1q*WN?4sAX zJTK2uNmv%s^e43Nuh(~m7P(nyRQ6&E>548){O+eA7qULh46cUag7}tZ;A(=?kIGN5 zcI)!M%)z~m@q9u)z+O!k(cH`p3R8~G&e#LKL%t#Fl6|JQW?^4;5*`h=8qyd6v#?So zS(W)3iMi9U4bmp@OWyXLPVznP0KvKfNd+8M1Kk{nrPlK(LyRa?iqQm#oh;;LK|lxR z$>f=KMxj}W(G-6=(EhF0sqS?kjhiN}ut+}27(i3AecNfgd%RyMK~sZ}0Cv(}FsN zwx)WFCYqe@YPxIb6a7DB8&a#VyafafSdRwB#x3SFSqW$)0#lc$(&mkU~^`?#Z zg;H&1-5*&x^ATCIiYFls30{p*F@HSxnn(7O){VGqwP?gx_)Igbr!KTD`L7#-R;ruJ z9fj$Cdfb%Y{=F1|)2J^Zt1wE_n0y`PZ-2eCx7e2NEKH@8H*$WmMoAGeSNE+zh}zSF zbs=IW-8Oq?P-iA+27g=g2GJlyUU*>YVoWUeL(4kJf(tGlo;61XGmh{Eet>tB$5Ks* zcINE6RaXrA*Su|K_RTscu$=50>QILpAiNsMdVwbDNpO`>T+^Q)whl;IEV|ZHk39xJ;vHj?@&3klR5UyiVUD+S$1W3X4bco{WM`E z_%bY8uD7tWCzSIzL|E<>`BlWb~7+Q&m32tsY&bhtc@5P2e%g)^O_ z^!lwq8S2qY5s0{dRaH%_(n?I)0UPMmPdWAAjmPIn#~+!E%9Y?{YPM^?I5pv4KgCa^ zej!e7>V>*#H5tF)WY9WqKrE{PV%O8jSA6Hqnr`5=o;i?$2lkoXa$uV258C09$# zM&&j>NZ1x1vCO-oP=jiAgmgt(J2ey}N9+RXG2AL}T)GjLqzz*A{M3g)xoa)nG(pDJ zr8haDZlJqOxBP*bj`K2>h@S}@vZ>Aacx$97T~Ojk>fET4b$Wk)bz7>S((T6)5a3ZG zr!-rc&puMR8q*^bY$%Js{)9QNTU2p^ZRr6_DHUG$8oLH_w2ZDykkR({B)7&k!Zwg} zbbJgI3Y8{$Ql#9fkv3@aG_4M>>aw7>zs(Y`zI>kIfpzIvb4H{dIZr}J4ddlCZo$@2 z`kT#%A9o=0!DJvXKk4YTCL+l(k%BWF!>J<;z?E0og30~G4nT+zWN z%Oy;Z@$yHYPW04O&DE;n4s+Dk`@m8^U79B4@bL{ld5Tq$uI!6uz+!H2CLSz2JXEtD zRLYMA3k`}p?}=G^R+?1v#0I~h_K1Ib*OoqyAS^p#aAuxdQ7qAx42Dm0?bR6z0l=A< zn4B&*AWYoI)!~vJ(vsz}4^o`$@?zb9|-uny|xAKHEO_9$l03&~lW8n!#TkgwfYps^AW+Czn{ zn$)JmLvjUM&D*uq&6uNUnf|;|yEM%y=J86WjI!M_UrL~xTwlC!lF8)|@Z-FBFtKKh zI>2YlW6APq-Ufrx1d@GrhUe5oEhlE|kxvO(sYK}HRs`{&VO|%fQ$cSJ7;aP*TwD`w z71pRAVx7izt5i+DDsjM?J0TxGkv(}-OKUN6qRC}>okI^9oto3j2Z%=ug$b6w*IUBMNrE!_oQ+J?-}gYE%9o1eoJrM zw*rlJN+p@8wIy-8k_1nbE%>SHH%*$PVpW>m8xN!qCkSjlj5ACMK z)_x8}kt(GHzfHBUSXo&!1%0zcLy>W5z3bqf8}`k9WBk4|Ww;Obl)|Az@L~pKLJrfl z_1j;O)Sh*X^+!~w*x>7sY>l?sPRo9C^2^#&9oQ44H1*(V?IZ`a)*{E8*)PS_3@_5w z)Af&njBdm1yYfWR>ExPRLsZynHDQ?4A~Ro?Vn=;BAL#A8Qp^9~5BZ0ZDATe+SDv<- z7quB;EUTrOJnIK^s{1B>k9HOtZNcHtJ{$taOrp;CaGh<&($bQ-tY$AXx-)US=7Hl2 zH=EouF=Z)gPWlbEK@4h%VIpb2DT-4Imcx8ZSV~$-7G^-EiE3+>ZdOV~MwE3T3Sx7- zg{yf}>n5lYxl2!LNnj0kZ))ReX2YWwv6nExB(I8?AvcP?v!xbF`E)6UiDZlFv?;nJj7nTi10 zC3<|f;n7jVy1F`NH@B)>0_d0h4V2;j-G!4#ecXfBJ~B#c)Eso~@nt>DXh{spn)7BU zW~{!%gqGiI)_n92@f1%s{8Z|d_*yK?^6-RNbx-r>h;Dl``a8*DL-{vLxhCZ3zen3_ zde3NfkKVJWLfiI-$a2!|j$~l=${+sBlMMrT9g#2E?EG4JS7%FYXZT6Uic$1DAb-gq zoVy}vDm8st_3zWBJQFxtruVfcuy$O7BK&b#6B!fbbUa&9NLUWN;L_}VMG`FH-`y>| zrzj9o%ldEg2l_lKUE|=JX`wdeQ}!k<&WoxFD(&dol)Mp3 zDJ{8)rL;GZ=%uYvDuY#88V(DjbT9OtzJ*P*?Y%iaKkIJ zwP|F=k0E=?a1ZL~*Xv>Gb=MlPA~{*&mE4+ssi_mq*FV_|`VAFt4EInE-?_q(Ep%)i zO2P2rIxU9d4VyU>*2STeWy$Te$=6%f*Y#a5*2h4(%oSf%@C|YJPHK2K9ME>foMBRj z_)tYgAzNTL!}tB&{&ZTLZ%}Is4F+|7NbnKWDil26?13mTgejmJw!c|bO_gLn8%7_x zP4{{Y*zMZo(0$kC5Dx|!u*-}P1((tDjMLuw@#*4q9P7z^e#Lt2v9?J z37@DS)dJRHBsDpT-Lr`bC^tUko(E=2Gjf4NBSoi#wI^s_MB6-}E2q^09QT#|Q`?b_sx{@#7ZB7>g>^j3%6Q!&-S}md08c2pfi)6{($0^?f;+ zwAXv_6R{>!m4s$VnpbOq9)Abd3C}N@y4NOx{HlXWvuvAHk%U|Yc=TwoiOK=VJEDqKynsIfmPji1_4PsWx}Enq z;5%)t(+R`4U-E(MD?g+H~TB6G3aZUEo(NljO!?+Ds31?DYREQWR6A2(6(iaH8e4f4Vfu>mr z59?)LuQ6W#R3bH?Je>|l1Ss7L#seQwSiN1Mqsb8U;7&Zt%@2;p(!`3kO>m>TR*#1} zm#&_4Zo!&3zJA=V1XWWSO$uy3p*y5Rob+PZpvjG>1a9qX?FGar%sqY?EaFm&8q$e( z#psvNMyGODNg1>wJltc>O3OGDN6+n}+8saR&KIxU*!E>X zgi(E)VP{Nk>R09IriI?75_%H&#U-gAl0trHPshVT*zAQ&X^`8fWSEm-=BttXrpJBn zx_>lofxSlL8UEwg3M~@VHgGFBtXa;{^6$QJ+yY@%ArTbrQg$J^|MYC)z6B^}FKcZb z=DOZjMEIJNZ(31s77m^!>b#y~1DRao#hz|s07J0SLYH>Gw z@JYpE)=7zf1tqTY{v^}GWw}IF?#PtEwTk?(&h{D9?$d~GB-4_ewuFPmm(HO*s-fqx z9SWm4gjYs&)jX8j`9_XrRlNlj%+G0IR_E0)5fPsWVER;L~@JleSfX zEi>ko#Ie|~YAoN4`nr6s@8c***_fYH1JLupIWw@KCsyc>U5g$%)n3}1%ncT5)LdW) zGCV&eYj?8~Ue@3Q%RXRcW9wU7)Rg_a#f7}HvtzT?l0>fq#1Xc;1Ec@KRN*n)C=lWM zKJm%X$hf@VI*44+jCXO58vfHOUXmn#MzJp?NpzLv76;w;{<+V#egWh-_hh}Y!q2-RtG-lq6hj! zV|;HUMQ0v%!R6yy1OftrUB_nmRv+N+tTUv>Nt1%bI$Pe2n^U`khm9+@le%dzv*s|* zwAY2dS=;;*M4vkl@`S&wWgbksyXwF{+eB1koA%Y=3@_fc4CltmrTZnvp>an2SRrXH z$=EYKlE^KL7ptGkL?ISqtuX;L!2N{~h*Q(jEdRQR9zL9{EMUAoiEJbzC3PEqGcJJ0 zS?5*Xa*?D=3s*HxtMg%wVNWFK{}hGsc=pDB>xo6vp{7O&u8OJm7n;76Ko#~0!tfv= zzXfxi7$H3Ar(>CzPf(IehNK>~xB!SW&(|`!oeIg7u|=3TIVDR}NixPhBX~EowzJz| zByI08dQs;*zEVCNAAKbv2iB|OH~qGZTp=4HRJ0qo4RNN!lZ0~Szg8}-Q8b_UjeBha z` zZbN`>q^GvLaA+ktIAxgay|9Kk-EIr7n-fR9!eW_ z79B6^iEC$#fnLOkGcDhi zh))ai5nF#6g>qNfgq^~|ev!*}7fBh!b91{X@5ZN5?`wP(MacDWRTfR1qnk(NYTvxA zFxJz+0NyKg@JZU1M(P$+TUT6Jl$kyw$j)1?0I4zHn<_I#EX zwhFsefbE;i5{F1`k!lQR3#*hArLTQ))C{wvJS$8E%CV}g3XsfEcx61ZM~1cQ|XYb$j0M=IL|;LGBR)eJWPW0q3P!dUa4s)Q0%+ zX-%)q(tr`_1gmusyCS^B5wTPf9dx$nwOtTh!Q$2ue%5zH7a&aoRYr6hUkTOn2(C{WOnFg0Qx5LF0xO z@p^lEi^xQT6meHvG&A*7B!= zi&_>-l_`ONfuKqN;l_hT7SY1tmCx}kweEu1U^GGaIu62HNEuH}Z1wvT6=&dkN2hoe zFFY`i9!lZ(y8<6~$q(=K>Ubs<)!(U(sa|ux!j$0Z6N{&Ag5IAd7AGDV#5Mq8Q}LtE zNsuSNT7~3hxYD^}G>5+foECV-cmtC_Eor{%q4gtyt=V zx01O5-iZI*SmHJ(mCuu}8=sUo139o13_4W?J?4xVW?Z^=tqP(FEOr=_Ktwa3zeLVy$oyACY z!WW!Oy--jN!X)R}rKqUrwD%{eFrqL{UW+CvS?@SOBx{_4NuA$2q2fjr1g(q24S>fr?s>QQrJ*Hu=?H z71!d%xZ^^qHfw9&&4?Ns?@|(L3$)#cA(h99+&u%L;|RCStibE%7nA$*L_@heZ>gM| zoajB&=tqpLtbS%^XOHO&0I8w)FP0^Yx}DGc;YT8S!%h=`jW`Zvr`CXFsD9ILb5c1y15ZYJd(y`ELF!wVM2ZCAH+ zU($>ac~Rw%^P*CI_99#c_5b1M8Uylr`|xUMwQSq^XLFg$ zuEkYPw%f98F4yYGPsVaB+qP}JXK$bTa-MVU`@VjcZk9BuW?ZUpJYYFnf-}z^ts!#F z`ZO`7`7SR?lu4y&3@FpH{Lfty&c^0Q; z{ps#TX3$XWHwj>E)5yqQ&0RaUz52wf&4xi~O;xVh{G4iY0>O*4wg7laEbaTqQf9TK0v|MY}NTk|?Gs8K@aYIqXDa^9G~2xVo~jvv)segTOt+ z%X=$}bvsUch{4^&H8Bf>N2|ST6zf0l14wC}wxkh+@6l(HBM%j>Acors4})5t)T5s3 z_f3i0M55POU0=C_{5p7X5n=iH`Ej%p^crl8*Vo!5ka;@h6vjs!F1v$a&&M_4FeYh?xApv%aB{W$8lZP}&2>evr*{qP-Fjqez~hOV7?W zw{fX2N~zX8-t(AUTU*N%>9~u*b&(00bE_tOcaflpegD}h8EphTueS}!SvkEd>*?KB z7Hf}qj>64nW?U4lw+Ujg$LHSai+*4e1t>efZcP2T$D+c|%OYerm4)1#om2-Deg2FU z*;k&Qs#|fKuGGjk!d&xBT5&1H`Rx*0)#+@d8MZSrKP)~Ty``lkW1z#h?;cnL@+W(w zB5Ed$%{5cd*MNP+V>=wbKk$w-;-{IDiO^h|$A9CQcemAz8+It=K5wf9)?fKDnnv|} z>sLQ@>phn@F8C^ICp;+xPX*K03JIhrM(No|xVpP@@bQIPoBv5g1Ly#yTwz6fd;96S z?=Y{$kuA{V)o0H%g5y2!sf~G+`f|*-5I-0F`j=TiL z*y=Ub+8)nYh?7vA9n{pY!JzfA>4K~w1X`8)Iui&Mek1QOwIet>_bKMoYq2#ok|;T8 zo14bKyH%SAM*EC{k}$rH{v+99n=pP|!o=>AOT}X#N8QWRkQKif`&<+8cP4e&x-_HZ z`JVB!0|`3-%5FtFY6l!$&aIyE|5#Zi1J8MPmgH~^L+0;tZf~<+qFZjV1>D&IYu?R` zi@auw?XvpRt*fQwp!PxIXRsLkNh?Y4!`r;t`@V>@fpBX_T8r%$BJ`K})=3D%+O;8y z;a!M(vL3zWI@&(KU3z(YKPxCI=0Ru>za-58`~r)9Q?=+0;kYYpZ&=E87}MI2 zvZ5jz8yf%-Vq;@@q#3!pNs*B{7vV*){S#d~C&%h`Y^ZnU0gp(msX0HmT!?4Sn|LrrK2ab z6Lyn)R^nRLN|h^0>32XPFI6uGU@HeNuZN!A;azdlSJU7XSKM^chx3Q?H|Kn{Q1pi7 zr>yloMB~7SPa@Z(XdzAOZ@ytMXPIjZZhY~%x&Nh(S}b<>K10j1M^FI7Y{*>8VLyCY zX6E+Gb2LJ|ceA@ls6WOiU|jz&nGdff9k-Y< zB5X9iH<*GP*xHw>bs$5YeH>e(!A~D?E9U={cBNd zZ?~%Cjn!YtMbJv;uP%6MrX9=g&=f5g_&n)NzVSNVuK$(PH9ECvdkC=AP7o3jl7I8H zv&~um79RG&F!O z^76<-LPIkHDG3a&1jj*M+60-1GN+N{-4V>Eg?nA_@QzO2e(WE*;?iD?Jq1nQ;v9GD1Tnl2EO|+|fS)P)cYxTwK*K3@gPQo*F^}PQCKBH9z@~2HcFN)r zuV9VTd54eiG3$FL9$zgZenusa;pbCbaq=LtM1uv3&d^15P;TdB5#P#flDW)W{uu zt{v3zu`8_tb0YF;N$-}9WRp?AwkF-^dL?r2l4sh^rq|T)FywNop0K$l$AM4$Qy^$? zHL;~_wq-5QMOTlt&{n0H^NX!FYqr4iWO*9JI-M!##?xLhjd)-a_{@Oefs^MzYJw-A z^!{dB@HIHhCTC-tR8-5NOShnOxX_1L@CAG31ZJ$xFv@wHCog%yC3{1&MU+r&hODfd zl!(ZN`>%=|It&ypi@s%q&Nj%$$0z(?HC)zn_*3U`3sS-r0b#-0+nWW8L=WS{?5w1_ zI}bm2(%vSCfH^c;GIuS)N_HvL;<)W;kV<+Oia5n4QiJ7Z_}5F|T(MtS9>w&k&1Ai_ z-9^G;ke=H(*Zk(*ptaePASp}&)K!3L!O?^RU)2D>2oTT`hs^9+z3rSU zM;xQ*T&U{C>pWll{oz{#=bg$IVDm|&C1^>c6r+10j~4DlAg7DxgklGT@2i$e6u`S1 z`p5ZkOBPQ)xj8tX6=6AIadDgzZguirzcsK{=@~nwb*Ayge5uhkv#_xE30a?<6w}he z)upd+;g|ua`iTiNxiZ-6L)`hHHF`jSg~C|#ZSEZ>&b1H>JG4`i&482o(idw(f8h=9 zb$DN~EIpDK38TT6vGW09k~bhcwH)m5tZjew;{(&U5{jEV@i$mUyu6#M#Cc8K@s`$B ze0+RkYinz<^b6~=MF4x|C2i$+pXs2*a0d8AN)iwB`EAvq*@ZlHzTG}a7$8VA{9qZ| z>fC3|Gwku3awgOKbJ|#1X@<>RyDKzqx<8gZ+G&NLNHk!xSX;CxT4KD(v+^+9Tzy`c z(li|2cK(d?_c%#aK|#Uca;pz^prpLKoUf;u{OYa^qjg#1fEj95`!Z6x#B<#vxLKxA zapWVIUOQoZb$uA*?v?=Q-5W76a$K#QxUG}rNY?~AmtbDOC;H@bJWtZc`EX6JA3$q<0;CbZSdKtEJF_e3Ppf|1-;(xW|$>9xUcP^qTXHxohh`Cw~un~Lzm{jVApdSL?amA zlefh;EHDy8CpsT2@eH1XUrMZKwMN0C>skd-YuO6Y7Y*(@0gI05aMsaxSrJVVT{@Oz zwg41k zERG-10ANfr#C~)MFrY~!&mHICfgx=6j7h$;emyXYe)n^Uh`dE$9W^l;7r>&@IU(>c zQ4Vom5s>L*RFPW`@oTtw`a~-#$*kSPUsK2-Kwj4_)GVG+h@Li|Q7AKDa&`lg-THL- zbajBkt*;9L4mGJFRbv;IdUNG(V9f$`2Ch~`0o>%bV(laH|>shueALiWArYXbI_gV&Qb>n)i-V&Nr-betEcrMKYvGw4zz(lA3{b zadG*Nle6At?=>3Ba~K0i;kLaUV4dSv{kNg(VQaa`@B6MZO(4KV8QoN|sAxWiYmPaI^$>rPn9 zO0lK<0sKr{lEualRAgjyNtG+?5X+65bdFw?`ajXWC6F##qRu|oW;yzQ2=7~sHNq>v z+h>kCecFv(f*qt`c=X{O7R&H*kB?|LP;!%pCcVCdHA_E7jzp zsRyek_Sl>Eq+{Em^(;>$b=Cgq8Z24x2l9kXL@RN_ZBWM`&)#&dpl8B2L)@lEl7K#e zhh;t_f4+G8uqU6?_PLDobo|PwSRT?6NO9bFo%g++dW!=$`}wJ4q*0yx8vAh&HH;jh z-)=9Kzkk_?Lg|64nO?=!f7u3a9LxM3tCcKpLYcfRAGw#iq5Wy_`vdYJBTkHmD733o zcWaf;JenS>eEjY=DjkA#N4>n{GQY!hZ)e9_-8j-eKi{A455`k6uZ~w9J3U^RBR&f1 zHQKe$@|4$1Xz});NyZIt3m&&l#(cSmcMmjD4ymgcYNy5|$8Y`dJ|-gGwv)WzE`kD9 zPe=nu9EQ#flGxOt1lFDFQJo{?CwRDwnkTvljMR43EMCvr!w!2JGHb|Ef-$PQcxv0O zuxY!YQFZh0`D29=*IRLfq&YJV{JXQo#HM3H=v+T@4q5KzIE;ARw>p)PapIgkQt9Cx z>YbC@@7SOO56@WJOMqksCa=^P&H?wqb~;gbt%#9Q}QwzWtE#5ia{0>Yn_{W^Xae1x|#P~ z){7VZyY1X~stI~bt#ywQBi6^}c$hs;5^)5Q>$CyRx>Lf|X8?I{fsP0}Tb*_hJI;Ab z$D)Hb+=y=+z_1RN`LsoVgC>TEFMyW1h;C14+x*S74H59~z@Ij4cx~+daZbGYIw0$} zZ;>$dby#Us8S?cY(*y;geT})y{}8;oYBRJXF`3tD4Wcrv6?$?m?wHGQrUSKF}_`VBduD{{Xl;v%0_#MB?al_Pi0;* z;}1Bon=`oR3pB8~OX=;u2iDsr;kNjl(Y z*HPNId3%=SMG6en71AQ;qO&M-rAX(fPNNX=1kr$yr>lSz0g?u=iJ8YuSQRK{T$2{aF20nUa3b5`o|RokZG&RcTOf;!EDHOHIZJAO=6H{Ue-ub zTpas5iIpbOopX5Ay$s6y^cycO#%fXB?1CrNcX$EpUV!yPUZMl=7Sf+ZZ_i&;+vw)a zlg}u9WZtu*BdvY@<797%pfT7VQV*G*h?kQp`+I97lCwX#xF`$O1U=S3bfe{p#J_*v zKLzEjyY-^y+vD8}bdYW~1?4_|HNmdnx&tayMlo_d;+{l0u+OPQey-Ha1MLhiu=8OG z1GC(gQQ++J%1)n0Cuaxw0_PmGfU>eOSXs|Fm!Vc{U_!bG+9>b);oqdcqs;|~0G_1K zrHqOt)DL4_(15B)DLGZ(+d*sE!Bv^G1uO@7zfM4>EFR<`*!_%*%oXa%i9xkLj=iuz z!TP5&sxsSZbTtN=F?5g^dXuW=hR}>vc3GT%E<<6AH)>w}uHj*=jw$jVV&mg$wmA<6 z=^O%*0g{&ATCmaz?#qWJmQC6>Y+`AUy=WlZ0Hv^Z)|0@R z+#Yq6#91rwjK-2R_EamQ%7e>w-<7Z2-? zZc1=c0uYPld~cnE_pjmVB$qHmaM>lVj{{e^Hn(qlURii3o0DNw478!?Kh(%_&vv;- zGC4VU!kns~YpNUuC{{jzO##g}+Hwd9jn2$q1&eoSA7n<*LC^PiuMMN66TSJrswL2U z2X9X_ksMv=9GyRyw&8X{ALrQ1RrpV9j8!AX+xH(yE|Ch1n%TM3T66ZJi~lDmsL*a` zult}X$70wfQ=_f_ZK#ov#U6?7U!of4@j^XYW}2IAUR1;CA7x9ahjcQ?KeK(Sk;+PY zg^7tNAM<>2Vsnkh)oUm>1e{fw6z9BSS9OPk#fPKKsuNwwE-gBYs7Pe3NLgouZ-x*} zmy?4cZXKGt9-K;n)j1ab6!RKDxJrQ~#z=hyMBRgvlfu?k@97}(s9z=dl|{kNBe*~J zxBL&XWj&EiPEQ|*P`UWzURV8taUT|9z4FU6cve=A1nL@&=3u`G3rS+ZM13cnkeNbX@a zlxACK4|_3PT03)| zcmhfXEXf^muAt2t0xyPhDfk~967V~VYq_CfLUTxHA2vktk6p6{g!#(Kqoa}5CP+Yj z%{7TR$6L%tNwf3wp%L4#=>Qk(c(%d^B-S&asbrSgLyQ-&sw+$}86Qq;q8p7^)FL=j z&}k-ua+U= zd;X&$-x#k^WP;e02&rh zqH?q|l)^u_*f1I{CBG08qi9@2C}z~8Do$i9baogPV^>Wz84sVJz6_cBy^Lb*m32{Y z{?i(NUoQu?IUu~8&@N(wRoj#q$z8>BzWsh}`6OgshJ=8a*xbT`2L0E68-Hi8&RbRY zebu-qVB8347C(_q4LKxxU!#b0fdAxV$@>;W%jik*rh11C#F830tR$5BjI5imnLZB++~s5w1PM8&n(NIIms!F&Zu~!q zSlg`cT(I=Fos)}8@(rgUh$~X3HsYiG1fkS(F{N(8XkteZ~`X2c*BTc$vyt{#;fAR}O%)!-7tRP0eLRgUcgAqs{ zW}I;F%C`rW-)3>dWIc*W%f#dD<&l~K46!(#1CK^|4>!b%105W55*KRm_GW8FzHJKq zg>$iqGr3iBQ!`}5gJ=Jn~{1T0Zx;mjL8b z>$BwTvQ|Ifh$a-?2BK^cDPB=44e;kco;EJwB9Ap-1{7PS$8Bv#a9b2xP>#*c>Wh7Y zOd!8ny$K^6L182B&_Zx|l&I0M)E-!Amt1d$9JrGaU9i*n$}j^O(!!e>nX_J@9bRGW zm~vSNAYE16NPpE4wXtS1a&$DvTV4SEFhG7zPPIA#mP2OsCuggzmx8R0+unTnTWniL zpL6QbQe>Q&2nd6*u`y0q%-qHmPf?1wT+WWZw>Z&CIN&MYk80cIDYuUnQdzIEYVSd>q2mxfOa^+^(_e!`3NRT?w4v{t5% zgQ;b(u5IVOTvMFC*lfs{;+ag&3Cl0`)ar=JLtONrnI+go`-TmX!x@sPJo_E549a@F z?#sV|MIl))St#1!YMYD6&JRPj#6Th+aCQ{cJU>ProQ^n&i*zbl^(3$+%gKH=)J5Pt z`r9e~C^+SGsV~cIIvo!=Jg6Sx$C-+kzgN*E&oUf5mG6C}smx73BN9i{B{^~nT(eL% zA_c&dTv4sHn0;22NzEXT6>C1OY{j7x1ZWoh-#KBn9f>3N9U)|TWDi@?^Ya=?e+xBV zXN+Gu0ZClmAG+B&mmb8iq6+g(R!qan?`#30;}O?!#hxpVq4PVibqVke|12&ICF$9jux_+z`OtA_tbbQWt~3qOoo85 z8AsCM2Pfo?fo?^XuljMXo9dp)whp8hpwOSs0aBw|*kR|6!QS$~ueGDKjGnvNo0$bo zrM#NV=0K6dblF5VPh);w?M!Tn#un2B6`}$7H`k=5sZea%^&U@7g$V~}zhZ7aiT-6T zq5jzp?p{&^&M;&{jZ^~OHR!men7%>$$0?eTVD$UAf5>w_Y0r`~UHD{XEqBi-jx$sW zb+h)T$G+|9murt;66xCCf^O~N*KwT1l|QWxYrrDoxj+`$`Po@E3u|G0w(lQ21dvQl z&fZj!ymrd$2;9AIu2XZ{FHa@P$&))_Rx8i^da?{L>Au1fn>Ei#{cIZ?dPSkHBRF4f zJZc{?`13)a>{X$yynbL ze`=yX34(7|Y;Gqj{GZ|8{rJdbGheQ-bb~puqD3lW&RXUs&-u}IW{Y6HWb~IHw5G~s zg};ngh``>LNEZ`6Meqa=J%Ca4D$8os2dru8!PO!hHvTA9u2K{lwK&tBO%>DTjs(wyUtO_6?l$2;v4%=8f0b~s5c&uS+ zJS`ozW5lUJ4h-~KiD2C}g2Kq`b$IcO1$-JB8XN>yq5q5v^t_9SwR z7dKM!L^q$Nu+a27t8)ph)_Y8_XdfarBa>c(5Mmjm|5~uYZuRfMf#tO`*cwDl4FDh; ze3Ig?bT)(fsFVjFEZ5@>`~Kmb%lB=A-tV!MzNJXeOrZ~dsb{>`q(zybd&932Sf_(MJJjHBFVf9c+o0Fujrz|AnX69izH?i&|v%XcP2U z5&-f>v%XhCQY?DJ{S9H~iss|mgkQNnqA-WXzJE^I9?%|#B5wi_8{Vo{8S#ZpT^Csx#%$q` z#ZR!VTCTtJ?I>DAOID!y!kuX_fv80f5#51I0m9u_j?i-b3Zeh{0t}PV-&QUYR?*Od zCrbh*``1efXWV&tLZh)j^bqnc;Kl2Ll(PBz7VEwP!x?YPVvQ-h(5jHE^N9M6!MtLx zA!1SlI=ifmf;g1EEvT)uy{4Xe_L5?ExX$IAP<;JI76q6qT_FVM`U61l!j@`w6p!Cd zy!6AK{o9^}M>hc2q|18?Af}{i_iY$}ZH!X*?wf8#!yO!_rQ%I+?AEjE3T`{}O@Ya0Zq!>x*^kL;z02bv`)DYv%YW9r}{lEfa}{{Gi)J}Z5!)i0AWAv;%rK-G>IAc zlL8?Lsu+`i|3v8}0hVbbokPC3LQS&R077$nJwK%h3iPLQ4AAY=?$mnLR)(4{%2*le;WU_=7I~sYXLv~} zoDA@&(?RBdzKws5DB$PP`>UU-iU9)!_@MwB0RhtMUF{s@&V?I0t2gnR_nOkp1nwWl zd6pybA4x%|J_Nh-LjY$OwgyFc6mq+I&|ua=awWYV@iMo_$G?olXdfjosvW>{dbIcb z&ZQukX6akBi6(~Ea*gAZ&B@r965yf?+xF=4dHOdC@9ceF13YJ}Xt(_ zDfN!TxOzxHrI0RJq5g)g)&4EO-ItVvUS3|NSQPX8WmL}Qm-P1+QT>Z-3cyl(c$J_N zLaOW9dDU?_sOj~N)|nLjQ1~A6n~nv2nCx>Y zys%o|BImPUdcb}&z73Th?vDHYhKC);wclHab&;ZO`MxiJ4gdKS`1zNnHgM>vZ@sc3 zaan7DVHkPZrr)qfw8=)?y9$Zd*wF`pOXnPhp8atbE&W>c>;>904E;QQ0{ zP{{MQ1jisg_z(>yehM9rH6h(CSLxz3MAH^q+1C6npcr7F5yzwF%&uXNIRApXY-9rI z3#=}^I=?}saeQkqbhi6yux5mI8I?MYB%nN+cU2Rv-}3>~9R}{*QSBLai5kl z6ZYLcce7a^1Dtz67;FY(?%o&Jz47qzWh*0ZtxXB9IHQ8s>{P~gE<3j2!{J1fE}Bsb zq{e^R)-}L!V%XriZf%;S^-br-`W|E^>`(m#YO((EG@z-Q^yOw{@4AnVsc2=aaW^l1 z0e|9pdC6f}t1k(S`lhD42f}!CnT)}7zWhy{ld@=wPh!^+=Gub4&|*u-5c7$E<0$Y4 zCap5dF?EymPsE@~F<&R-b1tbCp>Ml(k9$T77*_H#43)9{#nN)J2cZf^9pYpKdzbXd za#=#|m5+^b^l)%+c#E~LMXns= zGY=1~#&Si*0ldr;lx)}NBxY*UbBrmy;i0VzG(vGJU&P=4k{S;}w^f{J+jMi(E&X$tIbAmHbMoEv* zb7tJnx;ie(i1hS3*YY?|fDWmiVTL1#E=T{bU`#1n4zm}gYlW|y*P1&Dy_{>yC2Z_O zY_J=ATUuOKQ4tl$FsrBgUPwLZ8jMxT7bZm?3~0_V&qea7c*Ml*UN6b{z>)+;{k$Yy zprd`CnXWJKdh7a8JZ~}E0n)uPcm-hRhmP2N&*LfS$q;9ArW?Yaa-i9Be+I(_(brf1 z$POPA!Bnos2<(7|5wSI=3PMr`KO%75>{CFx!1v^#~}W zvgKE8`$jfQx;8s7)~1L@$U14=>&NF9ml7OA9j(}4vzS1&L!ZXW_19yT9D$-+1~Vvw zPSbK#8$)7h*th1Zb+AKd*WVwAcBfEi&?Ot_SRm%)w@*;UqtcAQGCf3*r0Wl!fbC5D zKVUDNnVEq$j@eH8=a10zGWD@7$Q9$x?7Ke>GOqvC(Q#<2vnjaLFba$*z}&v^=cnFU zk;80&9n-buxf!e+*|{eXKCAp|?)zsUFO(Hm&b!9MhUzZ=4x|@?v1_9o?Kc(6m_~Hx zqyQ0qkpcT$W_DcqD_ct}${!h1GEh}Zh8yq12b7GkdF+hht>EYW@f7MBqR`XV|C~w_ zb%lzL7>{n#$f7=di6-rzIf}^0eNm#16DJFsV298Dh%WW3;Lc*Lv0@*Cc3+?PY`Qxb z7hZ+EY}5)|_UuF*oMO%hy5&Nqq{szKY%?@ska+AOyupXKCm#cJ6O5dV9h-i$BU1Jf+^EFsIA#87Acc zPvn0RpKbfRACD6&ouo;~h%MUs8QJI)!#eJ)!c14}-${BWxYf%2;B|I8=3Y*V*gIV< zVpK$mmv!GiU_b%6ARxCrnY+!3ayPjvm!G+CJBq;nl@t~m+;phiKYA>Q8d<~9KDdJN zRjaPQ)w=~3prPNSb0T{*oCsN*Ugqfq%gT72pWMA zYLU=obCk4i8BhizeT0>3v?UNPj)jwTqn%dwor=ab%Lt0BMe(GfTX;C39j&r3X<08O z9@*CJII6ZLDo=;qW;p`{=SWv+-zbI(iq_a#L?fKw{ zXX1CpXH6Yy-9QJai80Yy{BOH%O~Vj=+s}qpVQq66fMP@YdcJ=<#)=a;YRrq&Yu2pY zt|T{~)h4fwWNB;pgRG*SwydhAIXzc~r<3vT9)+Hsf#lQ6Z;?|zc|w8Q<2@=wHN0Tyo1)me4uN|0y8+QQaG!`AD%+%&-+4W z{(kWvozPN7NtYd{n-i)r4x^y!1=O7Lc^Jr*w97wVna6+HKmo4Xw6GTQDqr-k5eGBIGdsL9zZaCf zxFwdF*6k^Y^sX9^B;Q{2<3kyszEsZQbZHRyfFIvBp*w47k z9K7xFSreYZeZGa~>bg%j0w=}*$VXgkbV=Aud-(J?kpeACx^0e6O-TE!zk;OXqa#er z7>&uH7*tEiq*~@8yp#Ij#EW;^Q z`$y=eKP~uO&}#lj6&#Z@glQ&U7yj(f54rbyNNn5UQ{LvgUkAaw#*oGQ`M<+DXkW$u z+$e9qc%J+SI-dDgIrYo^JMs)@VcbJ(%Zn$!qZxeVLi~70nfNkVgi#YfqSqij0u{V> ze|EGB--tCRkb-`#XO+!JYTyTxPa#uMG!U^OcG0jJr&%=|4YuX{9)DP057>ga-`g+m z1HXKsBUZ~`xs-V=SBO!hk#)MBdB|{dMK%`dy*?>FUhpxV%^-^aa_)fF*BYYBVK(uQ z@$N@RVW%gHv;#D*5l%y;zNV#<760aJK;vyDYB8kF$q)kJSCweR`DQ`^KR9P$QKWFCJ&bX`-5; z-F&!Kdizam&h_DF$azHL_-3C&0uZVMK7z^S7Tnik0b8}o`+ldW0e>ddUob>-rk4CO zg78yLVZ|vQD=h1Gf(aXja(yzYHvhKns+_Dn1?J-EeO4)lIYJ1?P`q0GgF5S4@kf9+!)y%=D zh(ZjD)ag}zr_i6@e4Quj{JTaBhF<=`t%p3qeZ%drKHaJ zL=Jf*d4!qfDVO;?6%QuF2A>jg>tGR%WMjmUBveLnHpQ-TLR-T3dl8PHnSbQh*+L%7DwmQvcp)L*EsC)m3@@1t&gp{qVC+tZI$64AbkLarPyTxOjJhhk2 zV#>a)i|?^3b!S6kDCz3j&lpA7rG6E`bnX4wM6%U6((}7Qj%l8`N1M4y$_a6`%H&H% zElEKH=-+sUD$gLU21XCEF9Qvw~l zkRXPwtzJ6mF;eMIVp!5v;maDsONPayp;DOAY<@){+0N+V8!aq3`&{zVg>ykFy_<^+ zxfyhh`cL|fK0erS=uqi{(xK%1F=*G@o7ZdQIKLvGS_qgBQ$Y^w-@MUa%jIH_0^-`? z@2;C#?w`S>=cw`&DHSKtadAK=Xc ztj$l6EejRw0>b4V&R;M+hGMq`pJXkkHO}TDnyK-s2HI{2A z7gk5BP7b9Q5GW~k38zE~OkH+i260l&uxS=g*}t@|o>JKECG>XU#$ZHmr#Uq%;7LkY zO{YJCO$p~bDaDj@F^20L1XFp#bOku&Fz3bDQ^>x4MZ`{h2^&|`dc4yAqhA=F2v;Ek z#nR$QS0DGEh|R8e)+kS`MwFB?P8aJ>4dsdp-ZtH{^6B%2#HO|5BA0foQJ5ApZEw}@ zM)gF7*B@E8kk{{t5x`;gwOunUzcOz(_Rwj~ZO5iNFl|yd*5A<$SOT^yFHx{JJPw-a zkKS*-ALt_Qe;QY49Zj!o$PCB&rjr1_fAr6^9y%;r@|%0;BS+p=nGpV3b!+DL&pQZ| z!F)Z0cp8D#1`U7BSccZnc=rf=8Weqn(M2 zopcJVLr2Xm6O|P!jze(U{!}j)B=lJ|9yOu!(&;PXPb2v^p%|#2Zgp6p(hozp!jU2m z@wn)rD#s>kA{kIp|;Bw*Ze*53SBFy9{b2eK& zOG(QMLW>)XqK)2ZA69@sz~GrIjGT0Nr~f{eOAQke*tL#vW#r^D5dWqt3e!+%*Zd9` zg%?GO$tRSM*2KY_DaT~Co{;2YE|*c+y4iuiFb<8}IfeRm*g6VsyebbxL!hV#2l!?i2s7P9#LWVxdf)mDz#!rAe`* zh)3PCW;dG;QNbNnoCXCw2*)`C+x#S(v}>{afKoS;pm4_(-U91~{7!i;Hh;XJ{N^U% zZnR~=UcU$@FYdVy^l3j|U;}|)i#DHj)$*Uer-%mmUdG<+a%OWsB8%Bb_^9dQx5QKm zCb;oi^$}x=xw)&>rr7o3(w1{Eol6O*L;bUS^65(=h(UA>CaTRZf26n((4>5)+|!vi zS-Y=Q6;!WuuE$}=XNZW0j=wPC@- z#9%wvG-34P>@zRU-}sTf2%|-f4aMc!USo&hP<(u`b@lv8G5{j1hcdZf_-uWYFnU(N z*p5FwV9=_PG`x0aFwN&o!NuptAbd%cLCt3{l?rO!+O3Qx%|Vzk8&2Y=@q8zDKF1HbrNQp1c~(-{)2*`RR~xT;|E{y>qlqmxty?t14F?F-ZXA>r}9SxC=uJ zAJ9CZ!f=O-LM29A@#ZjbdX99D4uY zf6$wgsxd$Jj-+G}Z}f@xUL<}M!MefKdJek%*ezP+le{t?+S#uN>VU>-Gpi23qAQ|@ zLl>#5i+qQa5Mq}jJB|Yn9hAav`~z<(=059O%mcrB+?RI|T=iwfwO#Jv(4Vry1@644 zs(Yyeml#jpx4kLl7arr=jedAzPG&&`Cm;P>w*HbO7SI7|_+QpGD$0!s5`scOnj*~s zv_WSQuqQY55mJgKk|s?_#8Z4W?bgPGW82LLHkWR?NTWe6RkN;Jxs{*KJG+&9d>pirQCcopHg!1SZ-C576ndGvCQmxIsO}xr>Gvan& zh(PD0)fuI;t|}DQb_gB6+=t`0C&f;eB-N0mO8OlMs<`AT!1%C<{X&42gpjCIN~j;P z8E;Us>tQM{1+#usaYh@GYLH|a7n74MH6@{&e;l#NZc%zFGddnaBj|nU61(mt1fz=w z9OoOLu27{bHjx00Ogo4NCNQ^%H^0kcX?$(Z>^f{A&AIb2BzEr(NNeIa{+_#5`Sq;_h{hKc@T!`P#;xuNCR`r^Mh&!iP~+ zz)wk_0BfOcR4l(=z_UWUC=U2no#o>{bJj2;FZxNi;cY$bRgcz7E#Y+IWU+?$*i}mD zSY>IPI%2aUpo_(6uQvq#wZL?5KBgYB&WXHZ->{fSNn8nszDdT=XA-YS@S5yb{5_TH zT{p2Qwx$SU5Vm8Fdm2aWKppiMylU{GWS!pVJ7CImBe1F(+vVht`z$o5kg_4N7LIas zjOP01c0!9~^L;vZ%Wpo`SmaLjTgzYYl9wBEmwk5nZWU`1uU0IcWnvnmsMY9kqx*$( zYwJS1D|c4#H|-%PniQrrBf4g zt&%N4cr}sf1{lL1w=md08RF0`M~l>EHr0J3ujoy-YXuzGunL+RPV_bP znRzV8l|dbqR4h5Je`+dQRay5Izt8r{7%#o@Y=0J>+<6SRKG@IS3UJpy>n`ILG#`Q*pVOJ$!TmRL~9Hjl9xH^5XQ59xk`ko4wSK9 zC2)(=yFy2$x8wq`Y^zo~U)%R+6lV;v)%dLP&|d!N%*e;~S=eq__EBb5R70G20^06j zvKF|B?BMe3m5JfhCGI{S7W{ymJ3q2qi{JY;)!=dp|7a%z*b%9S+_l9%`<2;9O>%S=Wm()Gg#wmitZ$zjlU~^dvN=^8;K~N{zbF0O<3m+>syuiPt7W|;lIy- zKXO!+?T2d3AfOuK^fp2q@|;Kv+JBfYGTXIrEqDfTcnpWuRL}*;+z)h;rr ziW>h41+Hx1$LX#`w}acOne4|oqA(^ae4v=zPq5%Z*wCwb}e+j6HQJ`OhpT9-4EfIee>9{0#0&Sd% z*~q-IkH-wSGkEQ~@y#nt%{2e=P@QOca#5Bg73B8@=*&_LcCeh!FJbTJ>I!}ER*Q$m zlZWp(jn?f;#nfyHnjLlB^%A4$Wq%Zy(Jymst_&hLyTB0O!U@$jH*a`*z8Pse`Ta}wo-cq{C;x}@u8vN#Wq=9ToSjl7dN~0!?U+Xk_t!BwYnV9ZR!JAOsIC z0fHnr9NaZ{aCdh(xVyW%JHg%EB|#7F?(PnOxA%L$V0U(Brn|bUsvU=Hq5K*GZw~L(}uakwmGK$0#fFC-qfD-qk9iZ6#&{GHc&=y|jE~BD2rlDQWUmY6- z?>&5=7#q%_LEsz9;W&ey3|YwK`4xg!vX($E++4o%M)DXDEiN`mO;v|Pkg~Q^n?@W02sIgH*E&!yT+!5}$ z-`$_Dx?Zq|$+lGIsg9eVlchaxPiEh?DvkcL1hMjn*I48xwW>p-e=n{@=(e>CA0{sP zfpv42|KE(z!T>jKH(B-&F73Ww4rlV%!74%At-LID%km(poiz&CY+>*kX1+w>w3KxQ z5p#DHOcw%;rdU1d!X(qowc)U(q}8vvU}Hhu1xdTZNs8HB=o-{_hU+BRMNk<{&V;b?p$+K zU>jVWOgDo-SZv^=Q9l8V9TSurfJ_H)9WunNqFNrIwpvM~H9k=i$#aKc-=|xf+lS2m zR=Z)R(E!tqT3E{jqEZ$DEMy}{Hm_MF;OMi`gk!0-BmJ zOK3EWVh0M-GEpTM4F8FED@UOnpuM`0uy?n@-P$}_0JyVR*>!E-bfRc)ZAqj$>TCT8 zcBfN$9cYqSx33{0Vc8;=srpPs@`L>Gl#_&C1@O|-xxP(G6aNa-z;bT(-9(T-p z6@UNBxvJh-H+>lLdXceJ6^K*i9`JV%dGoH2QfY#i(ESOw`Wmuue!5%i;*2ITVpQ9# zXU87cOhN~s6oBtf@F!5fH#Q#7$T9%-3VQx(LIZfK4ap^3KNn;g*{Bw7Yt)5ds7Ow(r^{22f{Udg@WbtNPHouCCmv0S2~{Ya`^itb^q(CUPq=*s ze_idYAiPfH@nO0vwk}8IZrBaE$CDlNTjhMgs1@MVZjY*;SOlmOSjRM+o;-!bmTjtDvU zBX#7_SlcPy`8Is}v)lUH$3W7h!y;wEDzX+O#HY8As>?#o939iMBr>Q}1gv)}FszS# z3A@#11Lp&)$fc}>2uy=Xg z{*Zn1veQLfcJ%pp&O=#S-)G)ELZ{*!=bZP!6S8iaa}kZfQ(`SbHCU!xZcAXwGp*BL zhE}VFRESx1LKrvbdYKcW8Y>S^3+9^XcrvG8il=APDA^1N-WQIXm^W&Wy9)S$?vw2g zbWm@aAFe~vr|3^L&5bBr*Cv|4;r!ZK#Jq;ge+nIxc2#QJ|P4lYMi;(DqBO zyfJ5$fB#0M{eDmhO;r89@HWH; zX7BwU*B0+ezQeKNnxZO#CKbl(`N5)n*uYY?U}46A*7KS?0_E>lymSRXC2#+DxmAEr zYf`lQ>Z(Nm8_wPHERTYAx@Z^*MIg4-im>2xsU^)*WG>UrVv3nolr%8U1Dka88AJJ4 zGg|Azn5jXuL9Qjo#XO%i9%w=NgK5~n>)@I>Uwvs-;Pg!q++5bkAnLwi17SW_N-W1a z5!L%9g1@FWK33BaS9Bxim)=UBzU1%$h}X9^5A|JY_K2|d^tbS>evjbCkvD>m$!d-9 zojQy}Uyw%)>F71%xBi`Iz=t9D?GRJ^A>% z7AhOF`={=AaV4EJ!L;d=~a>~JJ=E%Z?s`J9b8Pg@UQBeUkASpPIN#{&QA~8{JvXd z3u%?Mb(bkH?BdIexq7-Aa?2h|p#_>uV6RDG+KO?1(r3`I>hjs}_GchQ>brt_ncNcE znc}paP1|=%xlOmF^PsiR>GE`Q+S>N3!_DeJRv?XsN4E=6nkGSWu+>&RTQ@KGp^5Qh zs3tNT6!p3yU6Wf>l&XUC9DHMQw)fm?FdM!&|G<;Ik+ol+!TpOfTrayaN_aBJ45}tff(@A2xqVle3~3<+0M2?OeP3I+-k_mSe<#6>5?RX3l}!%JIj>%0YG55YFtg7 zoA8Y3q9D9s8jAfzs@CoOuf?bJz^$RNQ3R2g{bN#RAgS#udE$jKv+2`$LTJgSmw+MTDn>(G_UcT%Tq2jBp&ALxzrXTEJ6G$1q2@=5d#qamp zu9vgQQu4m@8hg{8>UvJp-qY%Pxd_(9Kb0do-{8T}!inye$E)m_34gQydvZ>&`Ns=p zI-0!nq}qUprs*h}({pR!%UjitFhO~~bJ#iz4?!ReM@HA0`&8k-)!@q1K6~u`~!wj6N zZAu^#<4G%e?biLV>OoJa1QlTc`;K2N$R?RZL@1NYm zK#&AIn~P%O`;(Eh4ecSvZ`n^2@Fw2HE1+0gOlZHoS1bAS&c=xYW_-Ntxuo5hjFqEE z$j09e6M+;qG(;ruhoE&w>MP;!X=U9=;k5`^ZJ$O&^56Dr54C$dR|lO0+r#Gk^Cn@d zg#?w4ljr(;Uhk9zU3qhJ$S2x_8m>DdS^AbC-aSx2iK9%`eg9Zpro# z{*fS#_#m`S8dZ5~KoijT)U5dvtYq*NkwgS1H^>G7|>%aD1QqWG@m?gSpvCe#9-kTQ$Yk!?) zs^(6EW{#;-Y%zt5`#qeIFI)eqYY<3}n2$kYsxhclElv+Vt(hmP%uw%(IbsTJ!M?e+ zk7%*|0bIiJNh25o$&GCF7@pbZ{;oM`6F@jMIQF3tD$*w9$J7k2aLX5}qsiMXpwS^W z02m>F=ta8q%a)gG9PwSk3M^cnQbtHv|14yKyc|1=iRd67SYPa^{xdYNF6KhQMFv3* zrLK>p&uAsbycu(@;I!3xltvEsz@go{QJ0;gaOZ7gOmS&t^>G-S(@*RhzQ|tNkWSRO z`K3!iPM86Lap``t^?HZc6IjUx&U8^0iF#ifTCf6P&hqR;!g9i=A#}FCeRrw<+WTYe z?|9xfdx&2i&cu#j6?VEV6lt+z%#4_FqQiKV5_#@5`-y*7c7l$HO=ubEMQPD~Bn%6K zhmTeI)a3CQvWHWU)X5V^p>+lF*} zXf!e=J#O;We<&;SdU}&z2WVa+YD`tup^MMT?enU17FMqUWA{jpk*eZ>z-DvGgKK}c8aenCHnjJz2_CZKxFd7_5 zYH)Fkq}Lhp9H-FP2ooDM;RA2_@&|&>szF@U>)c6N@TqRxl>-gmZD$uzW- zRX=L+)x271`pa5dm|86tpwm@U8lXAqUw^_icRZ1Kwf5080~`3}?5sSo+Q z1zs>`QT-r)Aq!WzTeh~^T}iFrYt<)DXPe~rMP8{PWigQsMKT->0+rSdXY zMF-}#Wy=AL(eNai7_;}I*7L`^G~B@jr5ZMj?#dRNk(c~m?a4IxGqLMT^jTX&2%Euz zEqWgG3n-Z8rS%E=BrH5#WD~_~PBkPL+;7E_K-68LKjx#J34dsYh!$p)ygrAd_O3sR z{5wBeoFeI<;Kg~Ul@0Pu7g>XXm%aJZi%zt`JQnke=)`Kvu?~br+aBusov@C)NoMEdd`UOU{dGvkSHdt)`NWxWze|B0G3NbrYsJ6Qb9HK3si~3 z8y&Si*~9UI;W}w>7!OJoV<&sOEpldKAEX3Lo(FwD>`N5R5=MBaH5H^5+N0PA6<$l* zwpEaSNzj9=rFID|Dnu`0v=BOT|WG~!h>;}s(=}_*SGTgC@$+K zQ_aT+!5=-6w&Uw;%}UVNMpPLSnG7n$_`KQDQq21iOH!`uSyKLa?W*Y2tV{_{lTM*) zA774oi}x<`Fw843Y*i6qLxZo@BlLZdRccCY8IN=y8y5~_qq{QlGT#($&yv)WUv6L- z*^2^2y~m^h28`T>VDJGek62*PA=h%Zs>FES`kEq;4~5&{2GijuxTVb{vtq{%>=rNadrARbtx%O`?w* zR+AFx{q0S!!xnDR-|&)>{Wpak{xjUo=icvmLFA_434sbq5Es8jB|%9IO}>`0u;xk& z!3^KHY3QaB4KQHa0Z5d-;n)Juh*CvSV!S<=6ooJ6tnJ)&hy)Jmzqsn*;ei>Y95K6n z^@!$Uv;7jN&%vLA0w!@mOhqrj!)}}RUHD=>`ihQU2v@7+D#p)$0-DwSpo#>_m?q3w zT^%l1-d6H|(&VA^ryE=SjrEBmLx${XnjKgSVru8ZPg=%1Ln{rTO~uwXF*&L&-kZS^ zCB?+!YMGDODrTFq{l*jRl__!Iy;I?-=|=tvrLa12ZNh`D0=}#t2Nlwsng+ltSj7+D zHiJ8j`wWc`2s1wuGSj57ho!8H0OLBnO<6Mt2D0S~d{5_fq3~Ea+%E7RadDkyFh5^2dGZ3LhXZ-*Kc(E<~ zQPnT|t`D6;yF$$C?XO#d++5Tl@CAbctpu&JPg6e1Bx13nTPdTNQ>T|@#vodDLLoQ8 zI*Bg%xtsbOHWkFVAzHnp`~r7UDR9&d2jH7E&#nWC9fG)p82TKw3 zCH$=ip;TN$^W>?wX>}!E2W^D4Z=CvgxoeiTO3+4?emG%lzaOchejdoa)k3FPsN+}N z1-YQuTIqfiG5YE@P(pxl&KOs%l&ch|ps&?Im6HFiN+*C@_;(Z=JsL{u36RqAapHw&3Wt=6(QRznv>2c=Dzpa2(e>jOAll1EPNPfS4+L@=g z8nS2i`AR#zPt~9hcQ&MkX$?iWo0}RS*oEi!f&%BZDHh;rFtT<>`BhR(>L$EUny2(f zSZ$oxizmiq?O#qLA;6ayD5-^$LoJYHNlYy-w+D}Jre zX~iSA&f`K?PriE5BZ4u;+v7BAO@mELe=0PIlFq^8?TV|_{3(>#8h1O17)V$ zL#k(?LS2YF;p+p7EP28Xj0eU_S+tV|A~{|s9IME|qu1hUmb~AJ5zT7l$7Yy0M?8)+ zGkUKt5v`(ERUWXduRp)w1QitVB})uVADi>FmS&kc7aBpdfSg9&|HHQUDg__n$zbX0 zZAL87N1JP`4eQ2DPZzRXi~yK7`U|1K;=9QhsmdqZ=XCu`XlTQ)sR7hokQIP1}8WTQG2ceviY&F)>5}bYnl#r1HyyEDXQ%)joS0#A#5* zxj@6L^<%sIoYXa3HSUoXs_?Ro2v<>~z1ZL!*n_p7;%bY2pi#BT;ID1XI-rwK{1Qpa z1cZ*S#qJg3FFvwjt&G(CPk7FbW(xV|R3gI~Rd|$_r2z$}kYw>lkvxRVUj9uaWOQpU z1eRt|^SfF@(}Y}94KAK>AUg&|Hid`ZnI6$HP9+ZF2As4tG&Mydww$z8Xtz7RLUd@^ zyk*{c(K;|I$A85mgui@OOw+g*i9!KDr3z%pgjT09doP~%ho`kJHn?D)Msct?Ik4dI zv50NrWJ2zmjL9Z4ck~mn6eu&W=a0whj9e+^UU~Jv7sBZ1M&5x`d(23@{*e2a%khAM zMTuV)23r|01w4yR6uS|&BZ|3Ty9VEy7+h$11ki~hUA4~q0M)o1_54KoJq`wN(R@EB zDk5KAUY7G!luiQt{aDg}^4hE_Tji@o=n>H~y7UrNIIEWXN=V%cd_2oX2N&ENY^_Q* zw^LKQz6@ley@4T=L(5m>;)+>Z6$)Byr2#3l<8rqLt>%$Q-iLi!U(1uw&r4-}UE{AG zx_g^^5Gi?^i={=+`VM?PS9CeO{yZEj;j#BOOv5CXithK9xvjMrF?apco>8Jq5> zHS7m}eyv8UtW#)%e6O3^B2M*&+_DwJoGzb4lr?riJrF#v(+(~zX04~UB85+PL)f+& zYx^XwK+0X0Tz5%|9b1m*wm-Yv(_IXl%UT#{zu@gqnWwOYM0XpOR~?;1tS~x;u$K|{ z%x|qZfb&~A#w2=-Nh*B6yi)VLZWqh=47bAXZ_@go5x}SY6&?KyMsvq=Moei}j&6Xz zWtvnpPE%A`b7bMFNQY@-g&&k=2mZ-}ugn~qLM9S*BZ)*Oq*6BuTC2$>5#{V_zQNFd zr$w1QEoQ}DJ%#gixbfGK-agbDQL_r+!#<>FHN+$)_cQG6Ba>JBs=VtI{2qEg=N~zy zFdN6?380VxiWkfk)Fkde&~7j6HI|vIU|)Y($)T6L)J^){R~c}$=d9$6E$LZratVf& z?w{}}8IG;MlDp!AtwDou;to8XW>u7pOpuz_VAPcaTe;6&PDs(mNMBNsr zX4gR!fLXBP+zdITf1cXNa1@C1m%zUEnp{UBBl-fcKNyu9{3#sCT5ZLHt6ElSsPDrJ zxJ?G)hmD2?)u=>(TYz3AV$gu2%45ucl}agt-v8X-pSR`HPpkE_xdTD6GYEIS%q& zTU4gg5Y{$vDmbr8L=;-6iowXlzXRHAg*;paU!oP1ia109^<9OT;{d6*q~xfp1y7Ph zt;JlKo!tYE&1&kN+BRrRk=je{Yl+o60b;F4EGJefz9zMd@>sVU@o4ut_b;}{XkQsO zKT8suEe!k>x0y2RC1xA}oP7dv;Xy@LSq~CdyT?HnyKrL`Y6K+<_xwBP?4^1Cayu?2 zqZ!67cLoS(2?3&+xP80NA!6wEJJJI;SPZiq1mvQ?VMtT}#PYyosM@ zZ>seXKrX62Yp2!03=tqhr+pcIpA__oN(hJ|*xXM0`_6SFAcn9_Xnpru7GF5WT^{zQBgL#jtRywDUI5 z1)R&6iHi#It(T5Ovm0I!z@D@a$fd_T^y{vEvRUnjY#dEN&yThbPvEuDzqTO!d0tiK z;^CwvbG=cz>mKUFoPh!h#=2wquWXC&g2b@9pgXPuw-q1tt;1XyF{y_bUkTW_9qE`L zK(Hak`*hR+ZWzemdqx{+l}8WTt)=(^E;#hQ!dtZeY_zS6sFn}MoBe_POE&(}IJshp z(r1de0Xtr6mYPnKw|Y)UM4KWhkJ$Z1VCi5LTTk+NhUbsus~}65_)&pBra%M2pz29P z*DvA%FL#5T^qA5Yv676aPmI0cDtQjHqdoHp0Q-arR4HytHxuMw%oLp`GUxNQkb7YQ zKz6e(bvtdR)<)>DteDsN&EV?SfZn-i3y}2{bpG6;{t5zUUxWwd4QTtwu2DwUe)SQY;yGk9v!P!xkRFeDM#BCSNGN~W&*SMPpuIwoOn)q9 z9d`s~P0M|5XGr^?ZCKx|N5jjy-1!+*H#poWK)K%9T3L8p#Tu9P@|gRDLkZrzN@xrV zXd2KhO-^X4HuFuIi4fMq(oK$u9opXo9Z|556e(>tAfG%PhVQ-h-(>f<+bs28xH|+6 zV_Gu>S(w9~@u50tVj#=%mppME+p@xJ*dDE;c`v3M@Gmr9xoC?MVCFS49S4QvU`0Ie z+gjRBe{}Z^cL_*{&c9P<8{t9j#;3a)S$R1s#Z7O_zAoj0j{IzBupVh+vT>1x5>7|u zqJJ+FKd(TI9R?mB9!10w%3V z_B4B%d}dp3YlGRqC4FM$ouxgrCkjj>X9(`WCD?TP#+dEuj+4{k6FB;1_Yf4);NF(E zV#`>`(4!kN!gE9);(9Y;LZ`JX?9!KqK4L^FrNobN?INgFQhC_-d1~oqpv_{IoBMMT z)OOXjtPqxty(WJMjlQ<_3>4ziT^6#(kg5h~qB_%N;R8KvZ(cc0(PMdW8LmW~x=uUX%a5r#gdZWB^{!MtI zxmWT!6ay)~S-fj==vDjl{l+?Vogx4Be2sYjjrn<+xxTltt=D%YDVT|j6?<^Vyqzy{ z&T;%q?Jid{%#(w6b5@P7wm#ae!{Fwm+F>FH6joSiNl}?ZTX;1o84z)~b(s40Z#Atl z_Sy(U8z67kFK=mQs+>qc1WFuWF|pq+kLxH=PUZsf)L%qY=>iTi%XwB2i zi~B@@P{^;hIciN;)*`3?v;F4df#u0o)&r8gN0(sV)K1cMpXVRHn$Yo$&jL+NKfv=U z50I2^E`U&}yoFhJ3ux{TP%mhHFdYsFZmu@p>jbaVsCl~K3Qxl5Q>R)4qN=$95!>5! z*?>-MS~#NM>n%Q*zO=-BiE^;eLyYrezhA4?Ch;Rb=^iI~CFJFBbx`Gto+K>Ta>(F^ zYRgzDMsmR)@iE?UZO$AV>l0%es*>s)PC2-(%5sgz2PZ3Bjxu(CVt+a~#e7`6c~Y$| zCwm-SzS4-|CJNm9;)B0Z5#_@#$r0zrJ7mpw_S!btf#r50a|gA#V9N85X}`bUtf%o0 zu@eI%Y(6=>hHu43Z&ytrm~PmoX2Ik{GCNVp{iI{)uu?`O;>fE^H^E^AB5UAh1*T*L zJr1yZc(s-G0G1{fd}IFf=I{`Dt3_kmm+oVFyQ!>y|NZxm8?#t&;zQFm8IG3Q{i1$fOga3a9lXRbd)D(slTEkA>VOo<~Xe+Fd@WiUf(}pWVRV`0G=i zMNc2FM*m9Ea#}4~PgOak`^O>uM7P zM~f2w6lQQg-cv;^#fQl=B^yBBTqYmF$<>#)RAXK?dBD1DH4(n?D2UQ1r^tseM8I7y zj>tv5onbp7F==uVdK`$0+38LlsQW}o87es8k_KVh=WT88jd%EX;fq&Z79y6xwGodQ zHRzNQntC{!#&2ZS2C`R}=}Y$+|F!A33M$4luWa=$8QXdH3`IG`GcY9~J~D4W*A3yU z*k62grX;FplFZuu+=g6!bU(*zJ)Pvp+Kxa1=_*WliSX9`H&y_}F)9Lls>xus_-N}# zw&eddMnaL6Q`K{|^qJ?uE}c$mMVO}f|II1d->yLmHx!W`e@31G`f%oTD(-C zgQao_F|ClkSk&BE9A=rChZRWWM!oQs7v7Tnwv%WHB;}UzTes`{}0nuI7hs z-rAg$vNu*NBB)wzdcY@pQes(NNosCKz%h@}Q1ZK@KuL@NuE^ejbMaGeX~g55M2D;`yP21fbMnxOU{%wH|es+y3J)VK|2tfl(j z6#mxR9BpNL1~qXFtU@hKUQZ8F@pW`1sX)wI^b>3ezB{Uiz~7*4_!Hq`4-%|*l%*Ze zO5CJ>`*%9_j078;ID-pT)y$e$As8>QX>q)u+~7z&06K_nTHs7JRYjyq9@F}?KHkRS z@yZwp+J3IDde4fp;+4R)<+=>&JRN^x;dUR1P&6d5LBgS(xZFavYWS1+H%;Em(s$kW zAr?*>m0XSy8@fW4^L1Z-4FJ(m$W$o?W~D4Gc5?Mh&%fMltJ_8xC6{dyf~z24OZb4D2)a8w&RZZ;_Efxz=p&Fg8q0Qb+E5~N|O z4Yy|y;UYrypmEP_1y@U_WTDMk*F3{!JyT^OOSK7{^%m}vg*8YAu15Ao(zYS~@{tS& zGVeAOfvi9ZPym1;y})lX_(HTeIRt1cuj|Onga5@&E(hQ1G^=T>{!QHPeE4F!W##4R z=98RQZo3z{LW|}ItGTG%Y08SwwxSX>QCy8nw`X>r1f^3`8L}ca(!kMH<-I>Rc|8_Q zO0+RMQTJPtB$4;#D2mjihNz90_Ah59C9*CYlBrAK)9JoUS6gF(F?@(;z(X4dTUJ1G zY)chd8oPOBy%o%W5hcEwl z5r_LZEsyjm7}5H|@a0!pqT)uj8y^c#)&JUE_JYd^yf;sHd5Hd(Jp(vumr;8S`=9u^ zJ2M`ttc(@Ohvdje8(5?km6aEH3m4-a+$KOFZjer)S58e}UJ_3wsRJ9v%x{p0N_7$X zT9SCkA$6U5R5jEIyCYJOwsee*>(ZImtA35J)WU=J;H0gnVx+9iv7UosWJiNE25@-? zVb|g#UZ^chu*;lpJC$qLVi^_pewk60Z?1?r`?@c(;{Lem)vqKdq>+DTo=v7rdGW{O z{nVUyz=sR_cQO@FxuD$41{!!=F7(F3v{r0iYI&iv64^ z+wiW|l+4Vn;CYca=;^EoOCn!BT+=J!ATEZc7>*w-(c$Vr4>VQDaPWA(Wr1<;8hG}w_X-eE~w9#5BIbF_QA|0zgrz>{uA z#+(i9(^hJ}H7#aj-i(v$ULAS%a`q;_OU&h37f-8&dxtzmk%~O)>o2{Qrs5t9F`Czt zWt9m4aqVyYB(B10oxC1ue{LNKP3vzN$L|@9_snW|G;^*YP`d<4juM}zk`O1f5ZV$fXII7@apH@>}qI)b` zWv?3_k_N{=-@05CZ~z=H7Yo$_gO@jYOAMDl{^{CpukW12)P?lv@4tfATnfmVTerpA z6bH-XzIoL-4X|dY_okvGRa)_St~2>dvgh>l^v`n3@Oxc0NpR?zXNi5!mkCtm|8!C(jgfAfI= z;{Fb|!I%02XwbCTRgGZ(q891v>%Jh^PS57SsWjVe9L<2EomMNDKjaw`SwG{_*@=Ri z8pf!RsjE_-nF$v(bK968q2rDnRNTxh;?b!HN-ciM0Ra#FAwCgvKW3~n2Fsa}*iJl# z+ZE(*!_mk&alqzuT`+@P&vg`!V%7i9mgH}udb3~|fxnx(@% zKbj>NXAw&w8XHpKj*hCbTxBV?xo$kG*v~646m5AeXv2(0Z)d>P1LqyZrrp%nz)YOm ze&Eb+QpHfRy>`z_tq|POM=}rg+YSDE-WW`CTzaVWRD4df7w~|LVNf3TG<)u31`_RO zmp$HwiJ0E~o$lp4;~OHoaBqIyg4pNC2Wbu0H(cKF0|n&%dKHc)E@0;XMlHsUvfVp>1{sWSg-2 z`3&uGpdP5@smfp7Q5o~EFg7*Y9c})VIB;YV6A;u6H=>?oHmsFbtw+*4m_9XY3*q8t z@#Y+7eW@rk+FH?UclB1)=vcx*ZA%W(-F6U2{facTV&`L z9MtY!cY4V#X9Q6AX9X)%>wn^FeYf#73;t@IYT+n&(*1XjopaPKyYQZwb$Qw2Z19+) znL3jKP|zR%Wb|i%?BnZAw17@WXA1ZQVIb-I*Gf}d_g_GUeG?H7`7!K*Ql{D%;YHJVbLV9zB_0HHmrY>LX zUO2S+&n-3%*7aR8D8!s@pTLvP5gqz&%)qVH2fbg(+Ton%NnGdA*t`2}y8`B$SRtFg zgg~m#Az1(v%Hy*itxcCHfUkZZ^XQ|hJw7MX>C9%4sK)W$aJDBW0!zc52jJZwU|x!7)vZ--LEM|yGS@6BM^@)OjF!5fH zK_i2k;PWcd?|FVp#!T{K^S8Br&UIUte+GmaltIbW*_dIim^~oN|KNCZJPNWz|3(A( zbn9rI}j>Ao_n=j_nf?nU2o<8w29 z;zG1UWek!zp#kH*c}p7wWRUwaTxFKMhbD}Yl;iyCNCFq9k6pR}rTKkObb~BbAZKK) zJoi{&FnhJdej0#*Zo1IAmJ%q4fIN1na;Y(VLR53pBgB4{O<}*XJi~1(pJhBd`{ku+ zcrv=1&ss!@#YLBDQ+egZ^`ADh)=Ub;*-=}Y z-?#Ut*+G@ynxu8S0tZdr*={IH*Re~AJ&USys>^h4Sjsu|52|d~;4S71E;seY4>AT0 z`Vweu6;Lqx_X@Rg@JKdVQ+-d`U+GqI_7Go0Io06JtuLpTVa>ugJ$K}y!Ow_V9UWsC zDs1(nTNCmS+W^p6fP}6R0sE2oR6hEN+)+X;$}+zywZ`jf2?eD5;*f&hq*ham|E8x8 zhu!6JWKUX5%QP(m$Nm3LnxuVK-uO(1hZW*~>7^;11hc|f`}*Io4fH#0`jF(9HTID- zAI`B96r+Osiu6{++(H7ly2VwHJjyLzcdInr$KsDgRCVY2Lpm_I?z!}B(;#aGLXDNX(6CPO5(u{fuaY4DR z=)Sj=UH>DGnuDR@fY3*fcpq?Y5q+v`uqXe{UWL_tNPk_o@>Knaoya{siZQNtAYNuN$Xv}0=rA$vY;cSwvLC>4C=+DVTiCT(ca2W)GS6QT1O z0W$1175lgSnTHsAA5P*O3oX|6nZBk56wNN8@{Z-_g;HGV#=X#7z8&f+e9G(iv(CpM z^o6O7tPxhw*8tXJS!>IKq|x-t$|N954^7&q^(U4RT`c#gh8Mf49nbQ#0^>jqCG=~I z`aeHt!}4Hdh55YjLTA=jh7b`%N2;V}E^+Kp)?iVtijNzMkpC={`B3fUp9=O~(%l_w zzEfapsycTv#sER{)#YXRs7(nEims6VuONlU3-_VUZ;Q%G+}m;FJ705YKonKVl(|Lq z(l+Pm-)F6w&J@*+DagHLT4b^5#(EoaZK05_q9&>pwY&>!)(7ygYr5_oj_cLEPF)_E z${%MTHLMFs8MA{ZnhdJ1!ecOKjsmFBp<=_IgHc@v!%eEVjL|Om^P=KngYl*#LB!KC zvw^!Aunw8sohcC)r`72dW9aIDXoM5sD1KD#Pc##{Y?G6Y5u~D*sDHq510E9$Evd0! zbMPF8eAWRB@-hZ9*6mTTNK6)bl@X88%cEE+A$L<@?C7dC+wT;#bJl|ddU2_d&)ci8 zSUl3T2Yp9@KeRs{@+jg1Q0WG4ubN{Umo$n0DkwU&Ba_Vg*=ve(h2wvg$ZW3+nd*rz zU6`0t<7?@Picl5y*w2&dx*;^rp@tJ&!|eYncsn(2*X45j9Vj|vDchx3>fz}i=gfvD z&ab9dUiMjacDVidz$L5g&WwYIAN)py-!k_(sMc z@54GH%)loZJrW|diDQY{Le8PNkQ+~<2e_BfkK@*cJ0GNX*&ZU^(0#t$ah6j+JQf=2 zICrGGgDUFOd=4p5?nC}jAjAiH`ZQ!kh-p%`^O-Ae%pT&q{yD~8?n-s2*-FYI|hq=bR`7ovyNrHEy229lHKOcd5k+l0~ZFAyjGyV zR9{CkR9J4BSU~_U7nKnQh=~HJ=VrY2pn9HG-roB^bUV5W4K<|uvB*;WG_{5rfQeyK zCS>FFiQ!_E^{=18PsKUGCjIiH5q*Y2u}p*l@BPcsJcQ~+R$=w#Z8F&pC$dKcUijJ& zAFcVZ_W7pRS-hjh@1Z~mf}x;Kr*t{4%fkzQgS#+76=VbOf}bX3gn$rRd&=xlm+1l~ z%30?Q|Cqk&uG!0liUfQ&K{d~Tf1@U1SN}a@IjIo!Glw-SDVxZkBP+TFP-bu%O?TUP z##X2rO8Kj0_Q6_OwvHH1FiD;tfVdnfjRS5{nwb~h{$7>8L8Yb6Tv|Mu$ku~Y_lvkC zS2>in_avEl!1C!GL^7bQN?yyi4^7iAHEVO2le?7OY)boB?V?|i1gDpK-L-R>^{!dz zLp{N6cXi}^wt_TYRTV8S)qV88R3`(Z`A=J}xxW7Ym5;$GY*%*)?T-)0XDt#@>{#Zj zTBhP=B11Et54O=MK>di@`Bsr7E-s?%DFaNo4!b9WqK;JT8>sN=-ZBPuHa>cgHaaLn zkL59!IC9?Tk!+vw+zezxbI9A8HPE8fZzF~i`!8Os@P_!Puk{fT)(8G+pddeOXLm-M z+O-gc?l-+RUV09J_UxvJsg-}f5)UhwMvXR*Y%kk*TYRUk+Im<*s9sMiY&Q5+e!S$G zEQZ|_QQHazdPS=vvhNGW<;p6Ozm5U z(&+aWIH^(*!0=ztU%RjqZ5uvB+3Hf|F3q5Dx2pS~jzANXYg^P~gguFH*Av{1PbuFW z%}~(q3yZyE&!qvC#T9i-m)*=(2I;F-;s35ZjHk(I>>1DF0hzA4#)z9_Bg#N*AG~PO z!fztIJ=`uxmq6(BeEAt|)M#}gub5q_SI-{6kD4|rC3get!9Q^b)k~~>=k}q+(Tv9A zG9O?5^7la%PTHDy#6zsl_1yXjiT6+YEJJ}ag=!I%>jka8aTz&*nUb|QydZm=|D%eM zRc(=WlhQ1jdzD3N---K~^I~4d8Ow7zn(taNO+g8@xbv#z*GH<#7W0NauyeGn4HfCr z=F${is8hfUOX*|JiXzSJ{%wJ@^$w2;}Pr zz?a&jo|Isvt*iN&P*56}T<&rGYW{nS6VUFpRUwNBe8BA{(rh^hJ-%;IupEWya6h1Y zNJKI}P@Bg8c|B{k>>21b*?f739Yb$*q-Q)vf*<&Ozwbwd?+Fpfe_Mm$$ESG(I8Zq{ zA;7sGxifXV8JOoVHpI^kcTW1gV+QnNa=L92>)-4{bx|lSJnE+Kx8$kz`QS#1OWVfk&OE+s*K4q>4sW2 zCD!Y0O=%d+gzEgHHBnYmcr)RN1&hgdZu7bxZWo=ruh#FINvBKY}+wP{mOp&%xM#gMt+^cC=ax0~*Cs;^QKV7#w~zvjRB;Vpo*b3}0PURz&in zrx^rJ^pZ5b%i~Z%pYyUQ8wRU`w5eQg=u?Hhp`h9GU`N*WB zgz{v}nguJ42EdblT%MORJ!40N!hvPC1YROt$c;r=8{_0%vO*$;+&>u|M82jr&P zMSkcF1n9&#*kr&sJ0q;x#pyvRNcbSG*c%0;7ix`i`ApeeE;xm&53+j zLLIyp+`ym(l6;ITXZ#*$I6OyW$ndOWrPpkT-0P648XbJ+3$~u#7c!|%=@(QrFTl%2 z_mz0*J0%WsOgUQ2trfE@s+;TThlUbGywA2>%~BexWFD6mGdQSbV(bf-zhVR{wy)(4 zlQYj306B;Fen&Qmh%m!?<-RPy$SNH|I7J)LLRWCQSz)>>^JBpLeL~Eg31!{Q_~yi$ zzGA;BnTDB3Mx?^D6WU}d^-(Z+lXj}`y^yRtUvRq$&-;!Zpwu~o?NxExhxGW*)J{E8 zt`UvFK;P;>F@ zd@7k6c1p&Ms;ROD@)HN6fE7E8NQnMab>R3Tdr@1heJ+CCM(K-spC3Cynz+03YW@Wcp zU49kIE%=SUuFCp8Fw3Y>4Y})*6JK4Sd>{{_Ajv|hT)3IZnrkU%Q!0i7H>HXS8&gl~ zP`bdqCg^ApOV#({SH;`JY;R@;Lhm%@J}?SxZqvKuIs?n(FZS39zoMEh655z+BU)t~ z0nhe7W5sLlML#x1=P)Z6N=n!_)$V%^x&}70RqIAl@3HE*ljcfQT-N*`dnGq}Ffa0* zyxtJVNDU$c&j(~_9Zm{uOP(uc9izX6oP)^b1cyT(_T`_|tqXHJeYa=L_s_+kw7Pt3 zI2wnkkGy;6Maff1ml5f{b(@9Bv}^E`5*C{R8)Q&xtW`JYAFXv%B-2-0qwrJC*D(3W z<(b?OyNlTBXm&5W_=!0^(ZgpeuBxI*%sO?^Rx$0T+UXZGGSx5 z^or@8W{a=w?SkRrKd>^r%3j$tcZROlS|-IHM+uOh!_3J_urX;KE5n1;IH%qE!xI)e z`xHcGQ2Z?9jsl4`c;deU?NGtPx9PAnD3)?~UEHIZ4ET=&s6nQe3tFYl!8o9{7{7#0 z>mze!zNE6TL3#3j-KZ_?ubGX-WlSJu{a_goL-g&-(r8=tCGwf~RrI%X?3m{8?K-%DU zl<7zOET(JA>&~l!6D^>^{A5Ei*Xo&aFX`=6OO1Nx09LDaO?x&{gg>>7(wXl&Ayw>8 zkZ%sOwH{MkH{UZy3hM8N^vzQEwMTF>>7|q-O(}^|p@z^HUfrWMUzY|G0%vu28u#@H zs;jiHDutTt4SzY^2@{o6)$f#q(Kg}W>p}{G>ZAvs4s6%u1nGak87gezP{Td{uCBH& zXP$(I0(smMSO4tQO>f!${(S&(dwWjUcUOP)`07%6k3HT){+B#qwWxZnCiK=Gf`bYX z&)}s~7`0pzQYj7Y;S`%ZDg~gK6@({Y{=iqmOF4GD8n{ZH>)Sw+If5{l;B+&T3UWVb zR~S=m#h&ri=F>|4DY} zC2qY~VLz-m3%c?Cz-^s?ygD6#wsuF1No!s;LtCF?M6{shr$d+a=H_O?bXAPl$kDD_ z9Jr4k8|~`qdOo4OANyU!$RQBq8QAJ49g@4lA!FapF_uVmb+lFITw@Yr3!}QUWy7h* zvXA@-vLKtB|D=1V?oOfRs_vEOvf-jc{+=cwFoKB2QZ0Sl*mW%s6vK4q~VfHT!-mq_p$vtVJvMoB< zxw#9n3azqq*Yh>h#Y~x!Keg)m}k_4ky=F z%Z`NAGxU+6nMjDAE2!S7`p$xQ2ivO_IiK+vR07d+Aptc%1LNyfg=ozvE?9DOX*uX$ zOF7wl#eymy%pKf}#gE27Y&??ohh_QL?Xa7g$Tvk%vdfm9_9+R#Od9;N+-h8b#^WAu zk$gpe9E5$pnCz?ThF}RW6y8`@>Uk|V)K2v@Q0Br~QoPye&90p{p?=&oemfqm^_P1@ z2Pr>mne4#Z9GYsNR}#X4v&1-wnBQBfK67N4mo3Pw+?7Bq;vCepgqofE%TV*jCSTVs zWXw4)OEp*EHcxw6bf!T{GsJDJn=b37{|ONM4Y!L|tVVZ&ObM&OOGYb37zcj{*uln# z#N`+H5j>s{$4^XKLe^7NDA_F|8gn-U>c*c(_Na~Ybr#enF7*f;1jAisWnLo0vF0E~ z@RkE4bss{LhvMo%0_~On8UfLCL*r>)jNUSAlIph6zNoTuQFsyw!(367<|K80+*80- z(jb0aB6!Dbb38^j9^t=06xotY-eL1>?Y24uMkqZQ!qROWQeLx$ppSh2HliNW0o?okE6 zFWS4*XREOU;zSMAFh4%^@ui7%jWQ<6`cW}%ll4x14J7kdVj*h&p>_F?S=W%HhMWa7bChV9}oWYRGRzL}@mOzy7*@gkq2jEaqF8(j=taoTG zv2Skd5*CfNki!lhMU)YWB7r&X5-ak=#|f}hMMzlQzRaHhpRg!5(aIj2=RE_!i8i2% zF&ucd{`!w$mGQSTT7hJ*vWhKNq%tiku~O*om&v2%jXaA+%(!Q**FFqyNm88sGZ7S* zEfr5WDyw!+EkuHEVys*VNSE>=1wy<~%G8c&gROe%>jaFyQ`V?Dt6JO0K7BmSfJ3sHK3<92d`4X3!rh(j;kBh^3pX*vHfm6?IvatM z?}@AQ5nWFms(seiT!-Q)pDxJO{*w_r3T*3w(OEz2tPijn=1u>o>$I=-W>>@RF5^=B z>zB%5QIdY#HWuZVJ>6Gh-dO?G_!+^L6CXJ}lp9f!k{glWuV5aS(M0xg*1a0sTj~+n z_s)VT{Wp^D - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 495323927fc563845e378c90ec75cc959e14904e Mon Sep 17 00:00:00 2001 From: cjsha Date: Thu, 6 Mar 2025 22:41:12 -0500 Subject: [PATCH 14/14] Minor edits - make card titles one line by widening cards - replace bullet point at bottom with regular sentence - "There are various software to acquire data" --> "There are two recommended software programs to acquire data" --- source/Software Guide/index.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/Software Guide/index.rst b/source/Software Guide/index.rst index 80c35a1..fe112bd 100644 --- a/source/Software Guide/index.rst +++ b/source/Software Guide/index.rst @@ -1,9 +1,6 @@ .. |software_logo| image:: /_static/noun_macbook.svg :height: 60 -.. |_| unicode:: 0xA0 - :trim: - .. _software_guide: |software_logo| Software Guide @@ -17,9 +14,9 @@ oni-repl/index Deprecated Software -There are various software to acquire data from the ONIX system: +There are two recommended software programs to acquire data from the ONIX system: -.. grid:: 3 +.. grid:: .. grid-item-card:: Bonsai Package OpenEphys.Onix1 :link-type: url @@ -28,17 +25,19 @@ There are various software to acquire data from the ONIX system: :img-top: /_static/images/bonsai-logo.svg :img-alt: bonsai logo :class-img-top: software-card-img + :columns: 5 Acquire data from ONIX in Bonsai, a visual programming language for more extensive data processing and sub-ms latency feedback. - .. grid-item-card:: Open Ephys GUI Plugin ONIX |_| Source + .. grid-item-card:: Open Ephys GUI Plugin ONIX Source :link-type: ref :link: open_ephys_gui :class-card: intro-card :img-top: /_static/images/oe-gui-logo.png :img-alt: open ephys gui logo :class-img-top: software-card-img + :columns: 5 Acquire data from ONIX in the Open Ephys GUI, a turnkey solution for acquiring and visualizing electrophysiology data. @@ -58,6 +57,6 @@ debugging and basic streaming IO with ONIX hardware. Deprecated Software ___________________________________ -- :doc:`Bonsai.ONIX ` is the deprecated Bonsai ONIX - package which has been superseded by `OpenEphys.Onix1 `__. +:doc:`Bonsai.ONIX ` is the deprecated Bonsai ONIX +package which has been superseded by `OpenEphys.Onix1 `__.