From 65bf6f7a52bb7a56c75563cdc7476ebd2a3b6fcf Mon Sep 17 00:00:00 2001 From: ziuee Date: Thu, 8 Jun 2023 19:53:22 +0200 Subject: [PATCH] added themes and fixed bugs --- .../net/minecraft/client/gui/GuiButton.java | 5 +- src/main/java/rip/athena/client/Athena.java | 5 +- .../rip/athena/client/config/save/Config.java | 22 +- .../athena/client/gui/clickgui/Category.java | 3 +- .../client/gui/clickgui/IngameMenu.java | 11 +- .../client/gui/clickgui/PageManager.java | 1 + .../components/mods/CategoryButton.java | 6 +- .../components/mods/MenuModSlider.java | 4 +- .../components/mods/ModCategoryButton.java | 8 +- .../components/mods/ModScrollPane.java | 28 +- .../components/mods/SearchTextfield.java | 11 +- .../themes/SimpleGradientButton.java | 101 ++++ .../themes/TriColorGradientButton.java | 98 ++++ .../client/gui/clickgui/pages/ModsPage.java | 3 +- .../gui/clickgui/pages/ProfilesPage.java | 5 +- .../client/gui/clickgui/pages/ThemesPage.java | 142 +++++ .../gui/framework/components/MenuButton.java | 7 + .../athena/client/gui/menu/AthenaMenu.java | 8 +- .../gui/notifications/Notification.java | 6 +- .../client/modules/impl/render/CPS.java | 19 +- .../client/modules/impl/render/Clock.java | 14 +- .../modules/impl/render/Coordinates.java | 28 +- .../modules/impl/render/CustomText.java | 23 +- .../client/modules/impl/render/EntityHUD.java | 16 +- .../client/modules/impl/render/FPSMod.java | 25 +- .../modules/impl/render/Keystrokes.java | 4 +- .../modules/impl/render/MemoryUsage.java | 15 +- .../modules/impl/render/PotCounter.java | 20 +- .../client/modules/impl/render/TPS.java | 6 +- .../java/rip/athena/client/theme/Theme.java | 211 +++++++ .../rip/athena/client/theme/ThemeManager.java | 18 + .../rip/athena/client/utils/MathUtil.java | 92 +++ .../athena/client/utils/file/FileHandler.java | 17 +- .../athena/client/utils/render/ColorUtil.java | 83 +++ .../athena/client/utils/render/DrawUtils.java | 47 +- .../athena/client/utils/render/HUDUtil.java | 7 +- .../client/utils/render/RoundedUtils.java | 41 +- .../client/utils/shader/ShaderUtil.java | 539 ++++++++++++++++++ .../minecraft/Athena/gui/menu/themes.png | Bin 0 -> 800 bytes .../minecraft/Athena/gui/mods/customtext.png | Bin 0 -> 594 bytes .../minecraft/Athena/gui/mods/entityhud.png | Bin 0 -> 963 bytes .../assets/minecraft/Athena/logo/pride.png | Bin 0 -> 289923 bytes .../assets/minecraft/Athena/menu/test.png | Bin 0 -> 143888 bytes .../minecraft/Athena/menu/wallpaper2.png | Bin 0 -> 5648802 bytes .../minecraft/Athena/shaders/vertex.vsh | 6 + ...6a334fc95a2a0891b171727d81f3a4e7fedae7014e | Bin 0 -> 4642 bytes ...96ede7968fe5b515002009da6b472a1c7b440fe85e | Bin 0 -> 1098 bytes ...4eb84af78d9f0d443352547168036f867617541920 | Bin 0 -> 2537 bytes ...3f502fc04d26e514975e1291bce5a28b3a9e25f6c9 | Bin 0 -> 1124 bytes ...ff36dfe096bc0f75920c45ff3f0210fba29b7fdf1b | Bin 0 -> 1176 bytes ...18617c4bbb7de70071a30aa822577436cef233d652 | Bin 0 -> 938 bytes ...5fdf2b7292121f442492dc876fb131672bbb9885f7 | Bin 0 -> 1616 bytes ...63ebc64fda9b010ef786d2344de465df16ad2943a4 | Bin 0 -> 2464 bytes ...8071188f84ca2dce8ad4b117ea04dab93723d92dce | Bin 0 -> 1545 bytes ...0eb60533d8b2e7e8235092c273ea98ea907f45cb49 | Bin 0 -> 1344 bytes ...36826ae80b829990e522989719bad1a9106872765c | Bin 0 -> 2617 bytes ...a5edaa0ec16da653b29471bc0b96727e8d9b22d539 | Bin 0 -> 1175 bytes ...bde3ca8f81f76a9fda735c521fc9713a063e77b2d0 | Bin 0 -> 831 bytes ...8624c20dfb30085831f3f1aabf2602e10beeec74d0 | Bin 0 -> 825 bytes ...5f49a2004ab6e3f34bd8c30a69fa196a8606d82ead | Bin 0 -> 1410 bytes ...f2d6851d55670ac9b517c21e3c5a1842fe11a60704 | Bin 0 -> 1117 bytes ...8edc0165bb7036179cefb4fcbf90de83e6f96217fc | Bin 0 -> 1546 bytes ...9782129220562c89c680df31295e669b666c2febc2 | Bin 0 -> 1312 bytes ...61077b1847bda598b26ee4c4c52c8d97657a09469c | Bin 0 -> 1249 bytes ...45787338686449b7473c49dd7a4bf5dae39016bc50 | Bin 0 -> 1508 bytes ...b8f032f3af7a82475f6a7b0c2b95a4310e7dfb1f3c | Bin 0 -> 1581 bytes ...eeeacf495104998bb6bc60d073e0832c64fdd1537a | Bin 0 -> 4245 bytes ...d7b06f8f556268012254810afe68a380e9f57b6b68 | Bin 0 -> 2480 bytes ...0ad6a2481db5fb35434ef0a2c0fe5f36cc72420697 | Bin 0 -> 2438 bytes ...ca9be70f3ba3b241536ce27bb82c1e8e8ea171491e | Bin 0 -> 1342 bytes ...d350033184758b68c2b0c2595c9337082451f7e5e8 | Bin 0 -> 1841 bytes ...fb53c21051394713dbed5cb8f70142b4f404060188 | Bin 0 -> 1222 bytes ...a0c77a83f96ff85fdb106ed7ee7c42e8fea0b21831 | Bin 0 -> 1594 bytes ...c73ecc45a92ddd14bcc32455fb41ec28011b12ff48 | Bin 0 -> 811 bytes ...9300e61e2dfc97af815300b4b0af00c7df20b9ac63 | Bin 0 -> 374 bytes ...15a9fb99911178327e779022a9a5e51c2e6ef62fff | Bin 0 -> 997 bytes ...6e7a96e58de33c3f1c4374f28917a38c039a0ea626 | Bin 0 -> 1512 bytes ...116d772f18fd59cbee07f8f7a9211f1492817ed37a | Bin 0 -> 1773 bytes ...fb94b843de0687d28a0571b79cc316fabe38a2f839 | Bin 0 -> 1382 bytes ...10ea02059bffe272580c7bef73b3ed38266d1228bc | Bin 0 -> 1268 bytes ...fe1d6a221c2bc278346d239c66cdff782bef2075de | Bin 0 -> 905 bytes ...9239ad4a7d1c6f4953be527b5a2e5d302cf0a64301 | Bin 0 -> 3005 bytes ...ec7d5d92a64e382a630368b9f52350dbc1d11c007c | Bin 0 -> 1690 bytes ...1d4d9faf69ad61e95ae27cd4e9f9fe5e30a6343a16 | Bin 0 -> 1450 bytes ...ca45ccc13e2b23ff748c6af51896220485a1e60872 | Bin 0 -> 1490 bytes ...25b9a114828f5ba497d49d32274870477b8aa63476 | Bin 0 -> 665 bytes ...caaa803c0c4a10d5f9a5fd2bafce31996702f7a9fd | Bin 0 -> 1378 bytes ...4d2b566ef8f1bc2b1e90b3fabf24a2c9fcbcdb4585 | Bin 0 -> 1038 bytes ...fe206a0c20c2dc5ee3378b62dcdae624e9faef199d | Bin 0 -> 1636 bytes ...0b09ab582d166a9a7b3aa08e6557d80e78ad675b00 | Bin 0 -> 1822 bytes ...a849cec798c6f02da94425ec41dad0134100fb6956 | Bin 0 -> 2185 bytes ...ae2cb78f72e00b3d11aeeeefab7235484cdfe6c06e | Bin 0 -> 6585 bytes ...39e87d105592c05f7d6b6c9e5d5ec05ca276d5e115 | Bin 0 -> 1422 bytes ...9dfc4c06ec7f56e7871001231876dcfa345fe41192 | Bin 0 -> 1244 bytes ...1782e43c477d83206a482caae121e5d09b2dd0b0c9 | Bin 0 -> 2455 bytes ...6b42df9dcc2d12fd4026fd72920278a0df7673de63 | Bin 0 -> 512 bytes ...933533c0fd53d15431ab9fce036a2744de75181ac2 | Bin 0 -> 1078 bytes ...941895d01e005505d9fc6d6a855cccc2d10665f427 | Bin 0 -> 807 bytes ...289c433aa8178a0d0dc2bc1efb79dc1224fad2f2ea | Bin 0 -> 599 bytes ...4e6736e867465fece1a02fead2791ed31641fd7ec5 | Bin 0 -> 1795 bytes ...36d66ddf2c5d2a16162db26eb8cfdde4fc65bd654a | Bin 0 -> 2571 bytes ...f7fb15f9255942d9ee6b8dc48edad7adeb74d913fb | Bin 0 -> 1496 bytes ...e926ca711eb4cce9ea6cda06923791b494af0a998c | Bin 0 -> 1061 bytes ...2efe6c8c5f7249b29fb1cfda53b6a1f7a6d6bd7737 | Bin 0 -> 2437 bytes ...483ce854a9076a058116bdcdddeb539f5de6db719f | Bin 0 -> 1633 bytes ...9e90eb73b7b1a92babb416f428366a05d5d11bacde | Bin 0 -> 1384 bytes ...cbfa1f85e736655c92f33976d1eabf78cc4c6ed0f6 | Bin 0 -> 1482 bytes ...4d684b7a5ca5f799af27f6f0fa81d60962ea9a769c | Bin 0 -> 1356 bytes ...be1f4b71456dfa81750d9a3de465b5d7528a273ea4 | Bin 0 -> 1295 bytes ...73d97c70ba8a588e59de2f499780596d3231e73df1 | Bin 0 -> 988 bytes ...a258c59b5de5f343b81fe16988405f654a12fed4e8 | Bin 0 -> 1223 bytes ...d4869cec37234cc9e2dfaae65d57bcc0cd8c96892b | Bin 0 -> 692 bytes ...adb34027346a96aa6d65f295c0526fd18d37411278 | Bin 0 -> 809 bytes ...e8f962c9b0119298b3b5bcd6ebeb34941560b66875 | Bin 0 -> 1822 bytes ...82ae47ca800ace53e9daab695d7bd5533ced8c311f | Bin 0 -> 1531 bytes ...6bbd592e987b3ea16085f0fade6bbc159b143e28de | Bin 0 -> 1949 bytes ...b055a481bef39e23a0b40e444a38e06655cae8439c | Bin 0 -> 1262 bytes ...eb2ba394c2a04128b3072e35c5d4160fffff2f5a86 | Bin 0 -> 1475 bytes ...419c9576f83507fc4635287b91f3d08319e96bc64b | Bin 0 -> 2244 bytes ...ce133a12738350909f1759e091e19ecf827b60b35b | Bin 0 -> 2396 bytes ...e1b27da75eab4025ab8540c6038869689084661623 | Bin 0 -> 1807 bytes ...da264cad582caa94032f2370fed7cfa5654d617f65 | Bin 0 -> 1262 bytes ...e6538fa40820ea4d9f689dae199ad6960f9657db2e | Bin 0 -> 1257 bytes ...a16817407254b049bef54ae048c3e914d52db68561 | Bin 0 -> 3929 bytes ...bde6d76f85ca10ee81f543c9bed60abbe6ce3af3dc | Bin 0 -> 1690 bytes ...611a11e9cc02dfc0f51ad8f47fd0e408b566e95e64 | Bin 0 -> 1262 bytes ...6b908debb7144d66e19943151fc7e322e1dcd9e979 | Bin 0 -> 1371 bytes ...bcb7e4bb37587cd8ea26cf4402af5f05b9e3598556 | Bin 0 -> 972 bytes ...768d6f89f3a5f44cf9298d299a49b6303a69beb5f4 | Bin 0 -> 2983 bytes ...2f4ef3afa608eabc8e2dce8bf02c8bab73ae790bd1 | Bin 0 -> 882 bytes ...773acd366922ddc3772ef4b59e9cb208114e306bb9 | Bin 0 -> 1840 bytes ...242c0d68c5fd4005b614998bdf28b50f738433a19f | Bin 0 -> 1281 bytes ...7e4a0f05c32b9318aa25bd55bcd55185992a173361 | Bin 0 -> 1319 bytes ...0bb7cb49a19ecb07b5e04461057e433926c06bc55e | Bin 0 -> 1229 bytes ...f88c635be3f6af6c9b171cf849b627192a4d2f3fbf | Bin 0 -> 2312 bytes ...bf3f926fb39fb5dbdcf720d100a75fb935311d3ef8 | Bin 0 -> 1639 bytes ...f81eb1cb0f6996123c75555ead16f0286aadf4c6d8 | Bin 0 -> 3446 bytes ...23cde0e74a03da2896512a8b3b87ac80818b2cfa5c | Bin 0 -> 1500 bytes ...b3ef15eadacb8f6b750dd63a417c64617287fe8a85 | Bin 0 -> 2373 bytes ...0f3de2be3d68e339573f1789e6e8adca24e2c6d07b | Bin 0 -> 585 bytes ...5ba2bc02962c40090786744387cd3267c75cc27f16 | Bin 0 -> 639 bytes ...e6ac5366243f130f53adcea9a3ab5a6b8405f45f70 | Bin 0 -> 1315 bytes ...3df1d7a0501aa092c52a639ffa12ab44bff0c7c534 | Bin 0 -> 1508 bytes ...0821989ddab794c4e53c1993fd8bc681ce42c94fc3 | Bin 0 -> 1648 bytes ...15bae2847a6e1bf4b490f90aa43c533681ce169466 | Bin 0 -> 1014 bytes ...51a967264be661e98dec73ba0437d3b0e4450f11e6 | Bin 0 -> 2451 bytes ...ae42ea8536bb817fe337984f5d35a0285a45b55cba | Bin 0 -> 1296 bytes ...065f2f8c93c03fce5eee7c01432b74b0ab36d7e2e0 | Bin 0 -> 1350 bytes ...db5080ea8fd41c6ed833ed00277b620177209098fe | Bin 0 -> 2661 bytes ...8099f935371faaa87161ecba2022f68c090d7db80c | Bin 0 -> 1810 bytes ...d84d8efed1d53547d200eb43898c03abb1a5989316 | Bin 0 -> 988 bytes ...0b4716304dd89211c617833e7d53309462b3b6a5be | Bin 0 -> 1237 bytes ...3a1e2e2a7409964d4c9e44511589cf6e465f91febb | Bin 0 -> 2658 bytes ...b5d9cb1e2241cf73debaff44bbb5bd3a567629ba43 | Bin 0 -> 994 bytes ...5c79a22f78d6741644e4abffd2f70bdf5f2b443a47 | Bin 0 -> 1296 bytes ...85c39d41ddd802b701ae04a5eb22c6bd7aa24ea9d0 | Bin 0 -> 1492 bytes ...53ba59b813cbdda8aa1b2ef1f0b3c93f64cbf89bac | Bin 0 -> 2496 bytes ...d8e053c2eab35edce17bc0e0222600edbf05b2c83b | Bin 0 -> 1524 bytes ...6e6803db21472274514613eb495b02e92401c14da4 | Bin 0 -> 1171 bytes ...6da6a84889afbfff92694cc56727b2c4c7490d8c95 | Bin 0 -> 1142 bytes ...61f853e08b88fd2321cedea40c87bbcdee9c4570b9 | Bin 0 -> 925 bytes ...f2674407831398cb2ac86e5715e8b800a5ae90b3d2 | Bin 0 -> 1372 bytes ...94f1e5179e009c219a458042dd58e228e73a88b649 | Bin 0 -> 1492 bytes ...98736ed31fb57294d6aaaee240ed6effdf5f1bb701 | Bin 0 -> 1055 bytes ...2315109a5a182196ed873b633e17e6ef730d21522c | Bin 0 -> 1407 bytes ...59e7524d45777760b2bef7f617bb80701438741acd | Bin 0 -> 2986 bytes ...461ab2bf8336c69935317cdafbfa86fe1fc5a46225 | Bin 0 -> 1231 bytes ...8efc41e78c92ab45ddc5ec35e5a7ba2ae56b6c0fdb | Bin 0 -> 1194 bytes ...943dbac46da6bf3d696b28e4263725ad41c743fa3e | Bin 0 -> 984 bytes ...f10a625c5dc6634d4206fbe8f0d499aeaa530f8b61 | Bin 0 -> 1531 bytes ...2e1f4a1a6e4fdb05ff744dadd46e1dfc1485c0e489 | Bin 0 -> 1917 bytes ...d0ac59367c3fec6e5b20b8afa3e5feda763726ade7 | Bin 0 -> 1217 bytes ...3324dd0195e190b7a151790a913336841b1a814e70 | Bin 0 -> 4083 bytes ...c700408b6cba3bb079f3af9581c5e41c4f19cce687 | Bin 0 -> 1438 bytes ...96c67266bd484881f8cce31e38803cd1c7990d4125 | Bin 0 -> 1155 bytes ...e3a14c74bba3d24bff9d1d68f70b6c395ed0c605ac | Bin 0 -> 3825 bytes ...497e781a794596a6f9db4424aa646102f5b5d82142 | Bin 0 -> 1561 bytes ...910fbcf9291145dcc36db0c145a996ee7529d5f710 | Bin 0 -> 2155 bytes ...0224e9be18580b90a73fa81c4f15a3c8ad1989bbff | Bin 0 -> 1277 bytes ...77af909ae6b24aa332e6391a33863b0e36df376a2b | Bin 0 -> 2501 bytes ...98aaca98351a5a7dbb7576928e08a0a1248ed82eb0 | Bin 0 -> 1168 bytes ...ee56cc21b25227b08f950ac8b94e7161d6fc591cbb | Bin 0 -> 965 bytes ...793741487e6dc6a0d3118e409d3912f9f93f9e805a | Bin 0 -> 595 bytes ...71a29dc156367698747f019bd3491fdb9262edcfab | Bin 0 -> 706 bytes ...50d004b004801f1b8f1e0caf95917130f64d9ac868 | Bin 0 -> 2607 bytes ...b882a36e67164faf265bf57e8ee3afbddd2c3a2646 | Bin 0 -> 1061 bytes ...dcb32e5699037307a20a5d6f0a5a589c4ee14acded | Bin 0 -> 1238 bytes ...97f04e8821e830a6f5581100484f9e467542822847 | Bin 0 -> 1773 bytes ...4fdcbf56083108a6deb391e1128016362b9e77d052 | Bin 0 -> 964 bytes ...6ed4b4fb3562bd86f90255a4773a29ad0811cc900f | Bin 0 -> 2002 bytes ...45ace9f614c1717669ba99a3804fe0ca329ccddb0b | Bin 0 -> 1379 bytes ...185b0ebb2b9d019160dbd4f35aa947ae83564e637a | Bin 0 -> 1895 bytes ...57ba591e7d3ec5919806d5e978e0e7d923224617c5 | Bin 0 -> 976 bytes ...27e1bacba239b37f636c39b21294a4ae5bb7ff5805 | Bin 0 -> 2021 bytes ...f27d7dc7e4df688d93114ad8cddec99790f3e3280a | Bin 0 -> 1682 bytes ...831fda7f223347fbd3baaaa03e378812a7746eb12f | Bin 0 -> 1935 bytes ...26b67fb3e9a3637912b879d2e086608b20560eec77 | Bin 0 -> 2178 bytes ...4a2429a0eca083f794a5675df913b4af7850e42d64 | Bin 0 -> 2475 bytes ...c1332712951d5049fd52473736c642be870c1263ca | Bin 0 -> 1177 bytes ...101f8738a75a1a729fa328371d3f84cc0198b127df | Bin 0 -> 797 bytes ...60486d6e63ad0a48064bc30446b6e0a64e1136233d | Bin 0 -> 1568 bytes ...22afe934a34cc4bfcb5a5e2c7ecca598d75dea9ec4 | Bin 0 -> 1082 bytes ...aca97bcf23ec8c8da83a7ec28c2cdf3c08c83ab147 | Bin 0 -> 2299 bytes ...1bd7369e15f3f704e9653d6dafa93441705b507a9b | Bin 0 -> 1281 bytes ...77e000eed64d52a4ad2e4ca71cd8256973753cb72d | Bin 0 -> 1393 bytes ...3f2c03a564dc4eae826ad83adc19eb8c7405e0034f | Bin 0 -> 1065 bytes ...046d63ee2d97dd424ecc291cd1fe21ba6f53398d71 | Bin 0 -> 1144 bytes ...2ea780cf8396c3e275e568471aff0437fb1356a716 | Bin 0 -> 402 bytes ...ae90dae9672f51e6b6c4780fc4a887cc60c895a8b5 | Bin 0 -> 2284 bytes ...b46be5db37af38537968eb809799f749d8606c7fe6 | Bin 0 -> 482 bytes ...4ed8cc0beeb8dd1698438545d84925288ddaedda65 | Bin 0 -> 1512 bytes ...590f0c22dddd3e42a867f09639e6a91e5a5c32498e | Bin 0 -> 3376 bytes ...aba01b5de0acda74e11cbf77ef2084a68be49694f6 | Bin 0 -> 1907 bytes ...6a64d55a06a65923b1cf7e500c50ca3072699acfe9 | Bin 0 -> 1202 bytes ...7e5dbc398e09b256bf2e1197499a9bdaec90c9a823 | Bin 0 -> 2441 bytes ...6040e2ac9dc1e9f8aed502eb8789069f12d91bdc6d | Bin 0 -> 1884 bytes ...4a18127b020ca7761ccfff5d47d87f34a0b7e27073 | Bin 0 -> 666 bytes ...f14d78b7744ed4574f95ab106b1215e8d1075160fb | Bin 0 -> 2717 bytes ...b4e6ed8d012d552831d2920c004d763766a2113966 | Bin 0 -> 590 bytes ...ac89b64f07e27fbdf3ad61c7b6d69fb7ddbe34c6e4 | Bin 0 -> 1299 bytes ...091c49be6c439606f0eca766068fe098aa7f61b8b2 | Bin 0 -> 1291 bytes ...312e5b4d9c58f1d105bd016c91ed9615cb12826263 | Bin 0 -> 1145 bytes ...3d8eb5f351facd83085228bbcac084f69410f0bb48 | Bin 0 -> 733 bytes ...e9b9f22f1d6b7d989ecdb7f6d9703795472cba2ff7 | Bin 0 -> 1717 bytes ...9fcf77cfdd13353532628fae5c824fdfa8d59c1eca | Bin 0 -> 2070 bytes ...c93c1315517ea66a0c32e7fc711f7da82b98cb0198 | Bin 0 -> 3397 bytes ...90f832036d72a275da1af33087e1fdbbbc0aff5d0b | Bin 0 -> 2256 bytes ...4964074bf08c086d0d8ad674f86392cb261f7ffe50 | Bin 0 -> 1619 bytes ...425353823813f0b663e9187cd8c7312f7f206dda70 | Bin 0 -> 803 bytes ...a88a72e387287df1f37e0974936ee35d060a0d269e | Bin 0 -> 1339 bytes ...593ac5daad5e1bd2dad3abb1563a509fdbdb1cd2bf | Bin 0 -> 388 bytes ...77672ed55411b086f6fb419e662d0928230eda35f5 | Bin 0 -> 1720 bytes ...493591a768dccbd5ba0922131cea0d7bb9e620f25b | Bin 0 -> 1177 bytes ...775af9185b6ba45a07edc611ef9b3c6dc8aaea2105 | Bin 0 -> 598 bytes ...77e219cd288a8933202de5bd2f67532085f14343dc | Bin 0 -> 644 bytes ...00dda1f3dc51d88f552cf58e138c237598ce259ffd | Bin 0 -> 444 bytes ...bb5eb820ca1692d21db7508dcb43a471b11980cba9 | Bin 0 -> 2138 bytes ...e9e1070477927232cac61b0b87c602a5d7ea138786 | Bin 0 -> 1731 bytes ...28a662e94a1f3636adfd6e65721039922fee63d804 | Bin 0 -> 649 bytes ...2ec57fe5709389f8ef9bff89f6bad753f4ca4549fd | Bin 0 -> 1350 bytes ...bb91a5ffb2118cb82eda53996ebdd34dee5db2aa50 | Bin 0 -> 1212 bytes ...22b356f5c1d6d8958d4d978673d8e6f6c94981f22a | Bin 0 -> 1573 bytes ...7ee52faa84249352464ead727d6302de01a5463745 | Bin 0 -> 1265 bytes ...1648d98248a7f4701827e602e1b54ca8d9f7d86132 | Bin 0 -> 1107 bytes ...a35f1e81f3d9877ceb82eb0984fce773e2671a5617 | Bin 0 -> 538 bytes ...c3496335d814216b6c8be2ecc7b2b5011fa7fea9d7 | Bin 0 -> 1995 bytes ...c992d968adc740803c67aad0aa83c35f7c0586e60c | Bin 0 -> 1182 bytes ...8367ebd0fc093115c4c640ce94e537fd1788f1a7a4 | Bin 0 -> 2533 bytes ...f4f7a6d412c99f3ebe25cfce925a0780ee4a415bbf | Bin 0 -> 4087 bytes ...f36524c630d17e32c417eb19183dca88f6fedf5544 | Bin 0 -> 880 bytes ...844b11bdd3448f0d1ada7e2ac6ca7dbcf4b7624d48 | Bin 0 -> 1066 bytes ...dfe830df6e14ae2de2dd22ed49c33fcbcce167af50 | Bin 0 -> 1479 bytes ...3dca0e7f9da520dde23b73175cf051a6275fa219b7 | Bin 0 -> 2299 bytes ...cb6ba521ccf27a394263c0c35a44e9f80b65fa6b83 | Bin 0 -> 1564 bytes ...4cf5bd76b16c84e5b387e7c2f857eba3e02a9e9baa | Bin 0 -> 1127 bytes ...4ad19483bf5fe8c4e95b2ba9c8ff5565e615f026c6 | Bin 0 -> 1127 bytes ...5906c3e864d73aadb0992ce84a26aedebd79c0939a | Bin 0 -> 2091 bytes ...c63423e6325b75ad1e73f4cd213941ff72b1e48f82 | Bin 0 -> 1290 bytes ...11dfabf7a0f7b59f5a4843a0bb0b47f1345defd321 | Bin 0 -> 1068 bytes ...da2d3bcbeee94b72d8d092fc45ced3cba1954066af | Bin 0 -> 1121 bytes ...37c0060e57dba22b0f9e9687f37c12e0cba16f1049 | Bin 0 -> 1370 bytes ...47ab5ac21c43144f0c0d11dc69bf3a1c11b81380a0 | Bin 0 -> 3658 bytes ...7c7e1c9b66ab86821d0d9958e04f2369aebe8076d8 | Bin 0 -> 1183 bytes ...5be73e5aed4d5bfb2db581921fa8b13795d1e80e20 | Bin 0 -> 2217 bytes ...e39912c1cfd8c6a143c816a7ebd85772ac4aaf4f90 | Bin 0 -> 1524 bytes ...650cb0d09d6eea75f331b08ebc83e4fc7df893e798 | Bin 0 -> 397 bytes ...69c64803b97bda7f43265ef568990eda62f5fbc070 | Bin 0 -> 881 bytes ...c447489ef6e7b461b987acb0bba6ee1dc4cb97b756 | Bin 0 -> 2071 bytes ...03ee380a8c2869e70528f587b035373f3cf2b7bd55 | Bin 0 -> 1041 bytes ...db6e8a8cb8c53868cbf8919c89c9f76111c8d13fbb | Bin 0 -> 1131 bytes ...b3d60f9c19a695715926e5def4d99390f5f54e36f9 | Bin 0 -> 1026 bytes ...c5a0a7728f55220b140ccf8e2352cb317268f2ef64 | Bin 0 -> 1885 bytes ...52f5aa40c731b7411727c072e6d57ea9947201a047 | Bin 0 -> 1789 bytes ...0af0b0192a692ff9b1369fe4122571a1eb7ef9ca3c | Bin 0 -> 1103 bytes ...4b0d50b7d8002c2f10e92879e2ed12bb4eec2eeb29 | Bin 0 -> 818 bytes ...b25e35cb30b357d75a9ef25a3f1beccd56f936c0d1 | Bin 0 -> 1079 bytes ...115796a69ca683a083387ae315bebc3aecccb2f655 | Bin 0 -> 1291 bytes ...921561b7ee39940081b0daaca9c54fcae977df097a | Bin 0 -> 1761 bytes ...98337d93c41979912d2f451381fe6c32bb536769d0 | Bin 0 -> 1902 bytes ...590a0ad2fc45dbd2bb9a64b236d59b72245401a093 | Bin 0 -> 748 bytes .../crash-2023-06-08_17.27.31-client.txt | 104 ++++ .../crash-2023-06-08_17.35.41-client.txt | 104 ++++ workspace/logs/2023-06-08-1.log.gz | Bin 2342 -> 2575 bytes workspace/logs/2023-06-08-2.log.gz | Bin 2727 -> 2659 bytes workspace/logs/2023-06-08-3.log.gz | Bin 2895 -> 2654 bytes workspace/logs/2023-06-08-4.log.gz | Bin 0 -> 2658 bytes workspace/logs/2023-06-08-5.log.gz | Bin 0 -> 2900 bytes workspace/logs/2023-06-08-6.log.gz | Bin 0 -> 2515 bytes workspace/logs/2023-06-08-7.log.gz | Bin 0 -> 2583 bytes workspace/logs/latest.log | 346 +++++------ workspace/options.txt | 14 +- workspace/optionsof.txt | 82 +-- .../resourcepacks/4Verzide_V2_lf128x.zip | Bin 0 -> 16460654 bytes .../data/Mineshaft.dat | Bin 16010 -> 15997 bytes .../data/Stronghold.dat | Bin 2821 -> 5142 bytes .../data/villages.dat | Bin 56 -> 56 bytes .../data/villages_end.dat | Bin 56 -> 56 bytes .../data/villages_nether.dat | Bin 56 -> 56 bytes .../Copy of Copy of mcpworldppdsa_/level.dat | Bin 1339 -> 1248 bytes .../level.dat_old | Bin 1340 -> 1247 bytes .../01d9f825-5509-3b83-aacf-c98ce0dce1c7.dat | Bin 0 -> 671 bytes .../0704e0ba-eaf6-3b26-b880-53fd45ec3b48.dat | Bin 0 -> 672 bytes .../09805145-bb70-3fc1-9783-30845f8dd6d0.dat | Bin 0 -> 674 bytes .../2659329e-1c65-3850-9659-d27fc655aa3c.dat | Bin 0 -> 672 bytes .../2a68c4a4-c1ba-3396-a626-ac7041e25da5.dat | Bin 0 -> 673 bytes .../2eef3335-8d1f-3428-af42-f3cec9010d4c.dat | Bin 0 -> 670 bytes .../2f0d3d8c-afbe-358f-b8f3-786d7b0f9259.dat | Bin 0 -> 672 bytes .../31a9aee6-8c2b-389d-b14e-b75d71479611.dat | Bin 0 -> 687 bytes .../3b1946fe-c2d1-3fab-8b74-bd39d8b52fb4.dat | Bin 0 -> 613 bytes .../3c28cca8-db38-324d-ac91-779beed87c8d.dat | Bin 0 -> 671 bytes .../408d12c9-559c-3212-bca5-d1a3fc38a0f7.dat | Bin 0 -> 665 bytes .../409ad871-75ba-3dbd-b116-807d64800e7d.dat | Bin 0 -> 672 bytes .../41dc22e0-3e7d-3bce-88c0-a274eb3e3859.dat | Bin 0 -> 673 bytes .../46f780a1-2e26-3e88-a90a-02cf37fe1547.dat | Bin 0 -> 674 bytes .../55199b58-d04f-3d22-9ce2-5472509a024b.dat | Bin 0 -> 686 bytes .../6004b361-ef29-34d2-b89c-32df237908c7.dat | Bin 0 -> 670 bytes .../600ef575-e50b-3323-b0f1-19e3a176b08b.dat | Bin 0 -> 673 bytes .../60d19c6d-8381-348f-9d23-cb28708609fc.dat | Bin 0 -> 668 bytes .../618c707a-83d7-31ad-b075-bd98e2c75926.dat | Bin 0 -> 673 bytes .../6ae8fe40-3ccb-3755-8fd2-c5445728b386.dat | Bin 0 -> 676 bytes .../6db1171d-4fa6-31cb-b425-1896281a26e2.dat | Bin 0 -> 623 bytes .../6e946422-0041-3048-9c85-48e4f886211a.dat | Bin 0 -> 671 bytes .../74e89738-6c9e-4f59-83ef-d365849e6049.dat | Bin 0 -> 684 bytes .../7ef37f89-ec95-314c-ad83-8a71ac6e461c.dat | Bin 0 -> 674 bytes .../7fac0f4d-6ee9-33e9-a874-7b4a3cc238c6.dat | Bin 0 -> 688 bytes .../8dbdaed5-4750-31ee-aa4f-4c3b2bfbc6f7.dat | Bin 0 -> 673 bytes .../a205b8da-efc6-37ad-8e1d-84c0239cdd21.dat | Bin 0 -> 685 bytes .../ad8236b9-e26f-349c-902e-7100197cd86d.dat | Bin 0 -> 673 bytes .../b7a940e4-3cde-3275-9c73-2f71fe593c98.dat | Bin 0 -> 672 bytes .../cb3fd6c5-1d0c-334b-a8d4-85d2c85eb576.dat | Bin 0 -> 674 bytes .../d96be705-d0ae-31d3-afba-31a637d80f6d.dat | Bin 0 -> 673 bytes .../d978d670-4b07-3a90-bfb6-b4e7c70fe7fc.dat | Bin 0 -> 674 bytes .../f2937d48-a72f-3375-bb6f-69c5f204d185.dat | Bin 0 -> 673 bytes .../f318a6c7-0ff1-368e-9d3e-1b850b84da5e.dat | Bin 0 -> 677 bytes .../f4642d2b-29f9-34b7-8b90-e6570e856434.dat | Bin 0 -> 670 bytes .../fb8576b0-fae6-3c1e-b44e-6422260d3c41.dat | Bin 0 -> 676 bytes .../region/r.-1.0.mca | Bin 3297280 -> 3784704 bytes .../region/r.-1.1.mca | Bin 1228800 -> 1589248 bytes .../region/r.-2.0.mca | Bin 53248 -> 299008 bytes .../region/r.-2.1.mca | Bin 0 -> 12288 bytes .../region/r.0.0.mca | Bin 1622016 -> 2138112 bytes .../region/r.0.1.mca | Bin 876544 -> 1007616 bytes .../session.lock | Bin 8 -> 8 bytes .../01d9f825-5509-3b83-aacf-c98ce0dce1c7.json | 1 + .../0704e0ba-eaf6-3b26-b880-53fd45ec3b48.json | 1 + .../09805145-bb70-3fc1-9783-30845f8dd6d0.json | 1 + .../2659329e-1c65-3850-9659-d27fc655aa3c.json | 1 + .../2a68c4a4-c1ba-3396-a626-ac7041e25da5.json | 1 + .../2eef3335-8d1f-3428-af42-f3cec9010d4c.json | 1 + .../2f0d3d8c-afbe-358f-b8f3-786d7b0f9259.json | 1 + .../31a9aee6-8c2b-389d-b14e-b75d71479611.json | 1 + .../3b1946fe-c2d1-3fab-8b74-bd39d8b52fb4.json | 1 + .../3c28cca8-db38-324d-ac91-779beed87c8d.json | 1 + .../408d12c9-559c-3212-bca5-d1a3fc38a0f7.json | 1 + .../409ad871-75ba-3dbd-b116-807d64800e7d.json | 1 + .../41dc22e0-3e7d-3bce-88c0-a274eb3e3859.json | 1 + .../46f780a1-2e26-3e88-a90a-02cf37fe1547.json | 1 + .../55199b58-d04f-3d22-9ce2-5472509a024b.json | 1 + .../6004b361-ef29-34d2-b89c-32df237908c7.json | 1 + .../600ef575-e50b-3323-b0f1-19e3a176b08b.json | 1 + .../60d19c6d-8381-348f-9d23-cb28708609fc.json | 1 + .../618c707a-83d7-31ad-b075-bd98e2c75926.json | 1 + .../6ae8fe40-3ccb-3755-8fd2-c5445728b386.json | 1 + .../6db1171d-4fa6-31cb-b425-1896281a26e2.json | 1 + .../6e946422-0041-3048-9c85-48e4f886211a.json | 1 + .../74e89738-6c9e-4f59-83ef-d365849e6049.json | 1 + .../7ef37f89-ec95-314c-ad83-8a71ac6e461c.json | 1 + .../7fac0f4d-6ee9-33e9-a874-7b4a3cc238c6.json | 1 + .../8dbdaed5-4750-31ee-aa4f-4c3b2bfbc6f7.json | 1 + .../a205b8da-efc6-37ad-8e1d-84c0239cdd21.json | 1 + .../ad8236b9-e26f-349c-902e-7100197cd86d.json | 1 + .../b7a940e4-3cde-3275-9c73-2f71fe593c98.json | 1 + .../cb3fd6c5-1d0c-334b-a8d4-85d2c85eb576.json | 1 + .../d96be705-d0ae-31d3-afba-31a637d80f6d.json | 1 + .../d978d670-4b07-3a90-bfb6-b4e7c70fe7fc.json | 1 + .../f2937d48-a72f-3375-bb6f-69c5f204d185.json | 1 + .../f318a6c7-0ff1-368e-9d3e-1b850b84da5e.json | 1 + .../f4642d2b-29f9-34b7-8b90-e6570e856434.json | 1 + .../fb8576b0-fae6-3c1e-b44e-6422260d3c41.json | 1 + workspace/screenshots/2023-06-08_14.56.23.png | Bin 0 -> 921587 bytes workspace/settings/configs/default.json | 158 +++-- workspace/usercache.json | 2 +- 382 files changed, 2097 insertions(+), 454 deletions(-) create mode 100644 src/main/java/rip/athena/client/gui/clickgui/components/themes/SimpleGradientButton.java create mode 100644 src/main/java/rip/athena/client/gui/clickgui/components/themes/TriColorGradientButton.java create mode 100644 src/main/java/rip/athena/client/gui/clickgui/pages/ThemesPage.java create mode 100644 src/main/java/rip/athena/client/theme/Theme.java create mode 100644 src/main/java/rip/athena/client/theme/ThemeManager.java create mode 100644 src/main/java/rip/athena/client/utils/MathUtil.java create mode 100644 src/main/java/rip/athena/client/utils/render/ColorUtil.java create mode 100644 src/main/java/rip/athena/client/utils/shader/ShaderUtil.java create mode 100644 src/main/resources/assets/minecraft/Athena/gui/menu/themes.png create mode 100644 src/main/resources/assets/minecraft/Athena/gui/mods/customtext.png create mode 100644 src/main/resources/assets/minecraft/Athena/gui/mods/entityhud.png create mode 100644 src/main/resources/assets/minecraft/Athena/logo/pride.png create mode 100644 src/main/resources/assets/minecraft/Athena/menu/test.png create mode 100644 src/main/resources/assets/minecraft/Athena/menu/wallpaper2.png create mode 100644 src/main/resources/assets/minecraft/Athena/shaders/vertex.vsh create mode 100644 workspace/assets/skins/10/105974cb598c5ecab2b5bd6a334fc95a2a0891b171727d81f3a4e7fedae7014e create mode 100644 workspace/assets/skins/11/11260b07d5c7dbbf60791496ede7968fe5b515002009da6b472a1c7b440fe85e create mode 100644 workspace/assets/skins/11/1186f67ea413ca0d25089f4eb84af78d9f0d443352547168036f867617541920 create mode 100644 workspace/assets/skins/15/156f6170b0ad7ea4d7f9bc3f502fc04d26e514975e1291bce5a28b3a9e25f6c9 create mode 100644 workspace/assets/skins/15/15a73c678e28f6af20373ff36dfe096bc0f75920c45ff3f0210fba29b7fdf1b create mode 100644 workspace/assets/skins/15/15c6937cd8a5f81ef6d7c318617c4bbb7de70071a30aa822577436cef233d652 create mode 100644 workspace/assets/skins/16/167a4e905feb4cfb4bb08d5fdf2b7292121f442492dc876fb131672bbb9885f7 create mode 100644 workspace/assets/skins/16/1683b587105003e5ce7ef063ebc64fda9b010ef786d2344de465df16ad2943a4 create mode 100644 workspace/assets/skins/16/16d7485d7c8a2a81645d5c8071188f84ca2dce8ad4b117ea04dab93723d92dce create mode 100644 workspace/assets/skins/16/16db1a23b2853fe70dc0a80eb60533d8b2e7e8235092c273ea98ea907f45cb49 create mode 100644 workspace/assets/skins/18/182006a0e4be71ee5b99b736826ae80b829990e522989719bad1a9106872765c create mode 100644 workspace/assets/skins/18/18a51dbba4daf809dcd2eaa5edaa0ec16da653b29471bc0b96727e8d9b22d539 create mode 100644 workspace/assets/skins/1c/1cdcc419996b7e9828c18bbde3ca8f81f76a9fda735c521fc9713a063e77b2d0 create mode 100644 workspace/assets/skins/1d/1ddbc04d01daa5c395d948624c20dfb30085831f3f1aabf2602e10beeec74d0 create mode 100644 workspace/assets/skins/1e/1e286fdbe671b6f201ecfb5f49a2004ab6e3f34bd8c30a69fa196a8606d82ead create mode 100644 workspace/assets/skins/1e/1e60d9290edc89c2f07946f2d6851d55670ac9b517c21e3c5a1842fe11a60704 create mode 100644 workspace/assets/skins/1f/1f2ec90632eefe206830fb8edc0165bb7036179cefb4fcbf90de83e6f96217fc create mode 100644 workspace/assets/skins/1f/1f4dd8bfd50dc89943dcf9782129220562c89c680df31295e669b666c2febc2 create mode 100644 workspace/assets/skins/21/21b2cbe51e308ec3113bbe61077b1847bda598b26ee4c4c52c8d97657a09469c create mode 100644 workspace/assets/skins/23/23d96d47ebbcd5567c708d45787338686449b7473c49dd7a4bf5dae39016bc50 create mode 100644 workspace/assets/skins/24/245ca2fb3e5d6f33853dbeb8f032f3af7a82475f6a7b0c2b95a4310e7dfb1f3c create mode 100644 workspace/assets/skins/24/24caef008db1c8b9e8c6d7eeeacf495104998bb6bc60d073e0832c64fdd1537a create mode 100644 workspace/assets/skins/24/24d06a73207976205e4b2bd7b06f8f556268012254810afe68a380e9f57b6b68 create mode 100644 workspace/assets/skins/25/25c7e7acf8b1536959c0d50ad6a2481db5fb35434ef0a2c0fe5f36cc72420697 create mode 100644 workspace/assets/skins/25/25e595761afefde74eb062ca9be70f3ba3b241536ce27bb82c1e8e8ea171491e create mode 100644 workspace/assets/skins/27/27d33e39a32c13b5dd68cd350033184758b68c2b0c2595c9337082451f7e5e8 create mode 100644 workspace/assets/skins/29/2901bf8625bfd140881f07fb53c21051394713dbed5cb8f70142b4f404060188 create mode 100644 workspace/assets/skins/29/29d6fd494e550051d5cf69a0c77a83f96ff85fdb106ed7ee7c42e8fea0b21831 create mode 100644 workspace/assets/skins/2a/2aad97659f256f842acc5fc73ecc45a92ddd14bcc32455fb41ec28011b12ff48 create mode 100644 workspace/assets/skins/2b/2bd76ba841fc29d84c57f9300e61e2dfc97af815300b4b0af00c7df20b9ac63 create mode 100644 workspace/assets/skins/2c/2cb2bb0e2d8395b4d783c715a9fb99911178327e779022a9a5e51c2e6ef62fff create mode 100644 workspace/assets/skins/2d/2d8f159aded11c12359dbc6e7a96e58de33c3f1c4374f28917a38c039a0ea626 create mode 100644 workspace/assets/skins/2e/2e00120fec50f2838d2d34116d772f18fd59cbee07f8f7a9211f1492817ed37a create mode 100644 workspace/assets/skins/30/30499fecfe3742ca68e610fb94b843de0687d28a0571b79cc316fabe38a2f839 create mode 100644 workspace/assets/skins/31/3105e48c3db1732e2292d310ea02059bffe272580c7bef73b3ed38266d1228bc create mode 100644 workspace/assets/skins/31/31a1ae9baa8440de288b74fe1d6a221c2bc278346d239c66cdff782bef2075de create mode 100644 workspace/assets/skins/34/342f0b5467bbef080159899239ad4a7d1c6f4953be527b5a2e5d302cf0a64301 create mode 100644 workspace/assets/skins/34/349a96637d498dc54b2157ec7d5d92a64e382a630368b9f52350dbc1d11c007c create mode 100644 workspace/assets/skins/34/34b12dd2d99c47e1913c4b1d4d9faf69ad61e95ae27cd4e9f9fe5e30a6343a16 create mode 100644 workspace/assets/skins/35/35b15671d4528cc0a28764ca45ccc13e2b23ff748c6af51896220485a1e60872 create mode 100644 workspace/assets/skins/38/384d6ea3cd5c56c9c1b6ec25b9a114828f5ba497d49d32274870477b8aa63476 create mode 100644 workspace/assets/skins/3a/3af727d9e7033df68564bacaaa803c0c4a10d5f9a5fd2bafce31996702f7a9fd create mode 100644 workspace/assets/skins/3c/3c8912cf972a82cda423ef4d2b566ef8f1bc2b1e90b3fabf24a2c9fcbcdb4585 create mode 100644 workspace/assets/skins/41/411ece0db9d4ae9b2e6f2ffe206a0c20c2dc5ee3378b62dcdae624e9faef199d create mode 100644 workspace/assets/skins/42/42511a9a4e6bee5741d74f0b09ab582d166a9a7b3aa08e6557d80e78ad675b00 create mode 100644 workspace/assets/skins/42/42b44754364e7e22176300a849cec798c6f02da94425ec41dad0134100fb6956 create mode 100644 workspace/assets/skins/43/43189e54ec64847057dad5ae2cb78f72e00b3d11aeeeefab7235484cdfe6c06e create mode 100644 workspace/assets/skins/44/441d3912135833ddf0256839e87d105592c05f7d6b6c9e5d5ec05ca276d5e115 create mode 100644 workspace/assets/skins/44/444e81d33d9ada8d83f1959dfc4c06ec7f56e7871001231876dcfa345fe41192 create mode 100644 workspace/assets/skins/44/44792467d159498e72bbdc1782e43c477d83206a482caae121e5d09b2dd0b0c9 create mode 100644 workspace/assets/skins/45/451b97e0182b655ba6eb5a6b42df9dcc2d12fd4026fd72920278a0df7673de63 create mode 100644 workspace/assets/skins/45/454adaa5babd0ebb85febb933533c0fd53d15431ab9fce036a2744de75181ac2 create mode 100644 workspace/assets/skins/47/478253c4c5f653966fd37b941895d01e005505d9fc6d6a855cccc2d10665f427 create mode 100644 workspace/assets/skins/48/482dedbf1941da5d6e79f6289c433aa8178a0d0dc2bc1efb79dc1224fad2f2ea create mode 100644 workspace/assets/skins/49/494ed9b42b53695dd638c14e6736e867465fece1a02fead2791ed31641fd7ec5 create mode 100644 workspace/assets/skins/49/4983aab68ddad245a99b5e36d66ddf2c5d2a16162db26eb8cfdde4fc65bd654a create mode 100644 workspace/assets/skins/49/49c331cddb8c49e95d4793f7fb15f9255942d9ee6b8dc48edad7adeb74d913fb create mode 100644 workspace/assets/skins/49/49e54d8c26f3da75ad98aae926ca711eb4cce9ea6cda06923791b494af0a998c create mode 100644 workspace/assets/skins/4a/4a77bdc4a771bf74379fb2efe6c8c5f7249b29fb1cfda53b6a1f7a6d6bd7737 create mode 100644 workspace/assets/skins/4a/4a77db5a5ccd00d44b54c6483ce854a9076a058116bdcdddeb539f5de6db719f create mode 100644 workspace/assets/skins/4a/4ae3f769bf2f602029bef69e90eb73b7b1a92babb416f428366a05d5d11bacde create mode 100644 workspace/assets/skins/4c/4c730211dbc1190c27fc79cbfa1f85e736655c92f33976d1eabf78cc4c6ed0f6 create mode 100644 workspace/assets/skins/4e/4ea85cf2533f0ddf56bb404d684b7a5ca5f799af27f6f0fa81d60962ea9a769c create mode 100644 workspace/assets/skins/50/50064a7bb5e251046e6439be1f4b71456dfa81750d9a3de465b5d7528a273ea4 create mode 100644 workspace/assets/skins/50/50a805d763ef5170140b9b73d97c70ba8a588e59de2f499780596d3231e73df1 create mode 100644 workspace/assets/skins/50/50ed567f3b5d696ffffc94a258c59b5de5f343b81fe16988405f654a12fed4e8 create mode 100644 workspace/assets/skins/51/516d75d779cae67274449fd4869cec37234cc9e2dfaae65d57bcc0cd8c96892b create mode 100644 workspace/assets/skins/53/532b2c9ff32bd731dda915adb34027346a96aa6d65f295c0526fd18d37411278 create mode 100644 workspace/assets/skins/54/547db2f0944ddb8d5b4869e8f962c9b0119298b3b5bcd6ebeb34941560b66875 create mode 100644 workspace/assets/skins/54/54970f42fe32e7f4f8160d82ae47ca800ace53e9daab695d7bd5533ced8c311f create mode 100644 workspace/assets/skins/57/5748efbb75f3e46943a346bbd592e987b3ea16085f0fade6bbc159b143e28de create mode 100644 workspace/assets/skins/57/5776b73da3ec304c75a395b055a481bef39e23a0b40e444a38e06655cae8439c create mode 100644 workspace/assets/skins/58/58b76d000e9b8a87c287b2eb2ba394c2a04128b3072e35c5d4160fffff2f5a86 create mode 100644 workspace/assets/skins/5a/5a47bda2b5e2476a2036ff419c9576f83507fc4635287b91f3d08319e96bc64b create mode 100644 workspace/assets/skins/5a/5a4c8a068052b4431bf70ace133a12738350909f1759e091e19ecf827b60b35b create mode 100644 workspace/assets/skins/5b/5b3846c8f6bc81bc168abde1b27da75eab4025ab8540c6038869689084661623 create mode 100644 workspace/assets/skins/5b/5b5b79ab0ff56591227d16da264cad582caa94032f2370fed7cfa5654d617f65 create mode 100644 workspace/assets/skins/5e/5e36c4c592c248c0aae218e6538fa40820ea4d9f689dae199ad6960f9657db2e create mode 100644 workspace/assets/skins/61/61525946f99a5ba0fac358a16817407254b049bef54ae048c3e914d52db68561 create mode 100644 workspace/assets/skins/66/66e2de9869cf49646cf640bde6d76f85ca10ee81f543c9bed60abbe6ce3af3dc create mode 100644 workspace/assets/skins/68/685c65b23b7c40256a7814611a11e9cc02dfc0f51ad8f47fd0e408b566e95e64 create mode 100644 workspace/assets/skins/68/68fe2e127bae9d737f18076b908debb7144d66e19943151fc7e322e1dcd9e979 create mode 100644 workspace/assets/skins/6b/6bd8fd13e72cebe375bf87bcb7e4bb37587cd8ea26cf4402af5f05b9e3598556 create mode 100644 workspace/assets/skins/70/706d3e63323afed2dc942f768d6f89f3a5f44cf9298d299a49b6303a69beb5f4 create mode 100644 workspace/assets/skins/70/70837d25018719e8cfae5b2f4ef3afa608eabc8e2dce8bf02c8bab73ae790bd1 create mode 100644 workspace/assets/skins/72/725b4a721bacbd6feeaefc773acd366922ddc3772ef4b59e9cb208114e306bb9 create mode 100644 workspace/assets/skins/72/7272a293adc8dbb54472cb242c0d68c5fd4005b614998bdf28b50f738433a19f create mode 100644 workspace/assets/skins/72/72c4851f7a4262caa43c167e4a0f05c32b9318aa25bd55bcd55185992a173361 create mode 100644 workspace/assets/skins/75/75378be25bb4cda2f3e9a70bb7cb49a19ecb07b5e04461057e433926c06bc55e create mode 100644 workspace/assets/skins/75/757d265bbad29b11c9c521f88c635be3f6af6c9b171cf849b627192a4d2f3fbf create mode 100644 workspace/assets/skins/76/765d9fa8649de8536c08c7bf3f926fb39fb5dbdcf720d100a75fb935311d3ef8 create mode 100644 workspace/assets/skins/76/76910bfed8c53293730817f81eb1cb0f6996123c75555ead16f0286aadf4c6d8 create mode 100644 workspace/assets/skins/76/76fad1f5968fb39ab2a3e023cde0e74a03da2896512a8b3b87ac80818b2cfa5c create mode 100644 workspace/assets/skins/79/7903fa7c79d9431ccda7fb3ef15eadacb8f6b750dd63a417c64617287fe8a85 create mode 100644 workspace/assets/skins/7a/7a5efa08716ba36a7cc430f3de2be3d68e339573f1789e6e8adca24e2c6d07b create mode 100644 workspace/assets/skins/7b/7b59ddc1f35234fd901ec65ba2bc02962c40090786744387cd3267c75cc27f16 create mode 100644 workspace/assets/skins/7b/7ba0f68f156f3864637528e6ac5366243f130f53adcea9a3ab5a6b8405f45f70 create mode 100644 workspace/assets/skins/7c/7ce2819a70f178812918823df1d7a0501aa092c52a639ffa12ab44bff0c7c534 create mode 100644 workspace/assets/skins/7d/7d6df1ea9085754bbc014f0821989ddab794c4e53c1993fd8bc681ce42c94fc3 create mode 100644 workspace/assets/skins/7e/7e1748dc6a687fa7c4c3315bae2847a6e1bf4b490f90aa43c533681ce169466 create mode 100644 workspace/assets/skins/80/808b9b0c3b9745de2d376f51a967264be661e98dec73ba0437d3b0e4450f11e6 create mode 100644 workspace/assets/skins/81/81c5dcb027d02270393ceae42ea8536bb817fe337984f5d35a0285a45b55cba create mode 100644 workspace/assets/skins/83/8324459fb51ab7f52c1e97065f2f8c93c03fce5eee7c01432b74b0ab36d7e2e0 create mode 100644 workspace/assets/skins/83/836c5d909d26635a018e06db5080ea8fd41c6ed833ed00277b620177209098fe create mode 100644 workspace/assets/skins/84/841c7ef14d2c0c538008b38099f935371faaa87161ecba2022f68c090d7db80c create mode 100644 workspace/assets/skins/86/863a6d8660d518ea5fb732d84d8efed1d53547d200eb43898c03abb1a5989316 create mode 100644 workspace/assets/skins/87/878f38242da1c0161545870b4716304dd89211c617833e7d53309462b3b6a5be create mode 100644 workspace/assets/skins/89/89c542274ea7687d1884163a1e2e2a7409964d4c9e44511589cf6e465f91febb create mode 100644 workspace/assets/skins/8a/8adcaa598473c05940986eb5d9cb1e2241cf73debaff44bbb5bd3a567629ba43 create mode 100644 workspace/assets/skins/8b/8b0eeac65944d1285bea205c79a22f78d6741644e4abffd2f70bdf5f2b443a47 create mode 100644 workspace/assets/skins/8b/8b2ef728cebc7f83b9683585c39d41ddd802b701ae04a5eb22c6bd7aa24ea9d0 create mode 100644 workspace/assets/skins/8e/8e8e28a6f4477dcc43950d53ba59b813cbdda8aa1b2ef1f0b3c93f64cbf89bac create mode 100644 workspace/assets/skins/90/9070bea73298b9fbecdb7ad8e053c2eab35edce17bc0e0222600edbf05b2c83b create mode 100644 workspace/assets/skins/93/931943b9549ea753deb25c6e6803db21472274514613eb495b02e92401c14da4 create mode 100644 workspace/assets/skins/93/93352a084eaa63f319dd156da6a84889afbfff92694cc56727b2c4c7490d8c95 create mode 100644 workspace/assets/skins/93/93f04d4aa6ffd1116e794f61f853e08b88fd2321cedea40c87bbcdee9c4570b9 create mode 100644 workspace/assets/skins/94/94095157834607a98f30cbf2674407831398cb2ac86e5715e8b800a5ae90b3d2 create mode 100644 workspace/assets/skins/94/945dbc199244be30aaeb2894f1e5179e009c219a458042dd58e228e73a88b649 create mode 100644 workspace/assets/skins/94/947084d8a144be4cc4d47198736ed31fb57294d6aaaee240ed6effdf5f1bb701 create mode 100644 workspace/assets/skins/95/954aa49f293d9255e8215c2315109a5a182196ed873b633e17e6ef730d21522c create mode 100644 workspace/assets/skins/95/95514822307cb38ec0a45659e7524d45777760b2bef7f617bb80701438741acd create mode 100644 workspace/assets/skins/95/955597599c41fb2644b75f461ab2bf8336c69935317cdafbfa86fe1fc5a46225 create mode 100644 workspace/assets/skins/95/95bb47f3d604c2a6f1fdf68efc41e78c92ab45ddc5ec35e5a7ba2ae56b6c0fdb create mode 100644 workspace/assets/skins/96/965c06db0f9e0f370a3e6d943dbac46da6bf3d696b28e4263725ad41c743fa3e create mode 100644 workspace/assets/skins/97/97a2b8c4f4eac8b2a45211f10a625c5dc6634d4206fbe8f0d499aeaa530f8b61 create mode 100644 workspace/assets/skins/97/97ee83138df0afff12fdaa2e1f4a1a6e4fdb05ff744dadd46e1dfc1485c0e489 create mode 100644 workspace/assets/skins/98/982ed89aafc6908f3c2d59d0ac59367c3fec6e5b20b8afa3e5feda763726ade7 create mode 100644 workspace/assets/skins/98/983ec6663d034aef00ea343324dd0195e190b7a151790a913336841b1a814e70 create mode 100644 workspace/assets/skins/98/98538a411781a329febe9dc700408b6cba3bb079f3af9581c5e41c4f19cce687 create mode 100644 workspace/assets/skins/99/993e895f15f79a76e5360e96c67266bd484881f8cce31e38803cd1c7990d4125 create mode 100644 workspace/assets/skins/99/99455e56422544529f824ae3a14c74bba3d24bff9d1d68f70b6c395ed0c605ac create mode 100644 workspace/assets/skins/99/999a8f579aa9e6ebbef14497e781a794596a6f9db4424aa646102f5b5d82142 create mode 100644 workspace/assets/skins/9a/9a4634838f637ace414f72910fbcf9291145dcc36db0c145a996ee7529d5f710 create mode 100644 workspace/assets/skins/9a/9af61405dbaaf60a8acf580224e9be18580b90a73fa81c4f15a3c8ad1989bbff create mode 100644 workspace/assets/skins/9c/9c05e38dedb59e35a35f6c77af909ae6b24aa332e6391a33863b0e36df376a2b create mode 100644 workspace/assets/skins/9c/9c8471a96ee0fb284f580198aaca98351a5a7dbb7576928e08a0a1248ed82eb0 create mode 100644 workspace/assets/skins/9e/9ebe66b247029dddebd5c9ee56cc21b25227b08f950ac8b94e7161d6fc591cbb create mode 100644 workspace/assets/skins/9f/9f67d2c98383671d4949b7793741487e6dc6a0d3118e409d3912f9f93f9e805a create mode 100644 workspace/assets/skins/a0/a0b66fbda4be9cd08adc9171a29dc156367698747f019bd3491fdb9262edcfab create mode 100644 workspace/assets/skins/a1/a10f8759a390c5be650b5350d004b004801f1b8f1e0caf95917130f64d9ac868 create mode 100644 workspace/assets/skins/a2/a251e16f95f8d3380530cfb882a36e67164faf265bf57e8ee3afbddd2c3a2646 create mode 100644 workspace/assets/skins/a4/a49010af6598f19571d049dcb32e5699037307a20a5d6f0a5a589c4ee14acded create mode 100644 workspace/assets/skins/a4/a49de59fc5c7a1ad14ec5e97f04e8821e830a6f5581100484f9e467542822847 create mode 100644 workspace/assets/skins/a4/a4eb94b7ff61124fd14c794fdcbf56083108a6deb391e1128016362b9e77d052 create mode 100644 workspace/assets/skins/a4/a4ed31e4fbccbc1011d8606ed4b4fb3562bd86f90255a4773a29ad0811cc900f create mode 100644 workspace/assets/skins/a6/a6ad7e115778ac61126c4445ace9f614c1717669ba99a3804fe0ca329ccddb0b create mode 100644 workspace/assets/skins/a7/a7bedf9dc406aa8818552c185b0ebb2b9d019160dbd4f35aa947ae83564e637a create mode 100644 workspace/assets/skins/a8/a89ccc22c8657db09a4a2257ba591e7d3ec5919806d5e978e0e7d923224617c5 create mode 100644 workspace/assets/skins/a9/a9843ea638ce965591bde227e1bacba239b37f636c39b21294a4ae5bb7ff5805 create mode 100644 workspace/assets/skins/aa/aa3e7cee64112c13f1e2ddf27d7dc7e4df688d93114ad8cddec99790f3e3280a create mode 100644 workspace/assets/skins/ab/ab600bd58f302722edc805831fda7f223347fbd3baaaa03e378812a7746eb12f create mode 100644 workspace/assets/skins/ac/ac2e237d6e0977384b186426b67fb3e9a3637912b879d2e086608b20560eec77 create mode 100644 workspace/assets/skins/ac/ac46ea75f43201c94b59f4a2429a0eca083f794a5675df913b4af7850e42d64 create mode 100644 workspace/assets/skins/ac/ace6f03f5da39814f3ea09c1332712951d5049fd52473736c642be870c1263ca create mode 100644 workspace/assets/skins/ad/ad233873edfab3c424ac90101f8738a75a1a729fa328371d3f84cc0198b127df create mode 100644 workspace/assets/skins/b1/b19ef4cf9651fdf8c82c4360486d6e63ad0a48064bc30446b6e0a64e1136233d create mode 100644 workspace/assets/skins/b3/b34a8bd7d328a3c0e03da822afe934a34cc4bfcb5a5e2c7ecca598d75dea9ec4 create mode 100644 workspace/assets/skins/b3/b3c78ddc32cd2bbd43ab9aaca97bcf23ec8c8da83a7ec28c2cdf3c08c83ab147 create mode 100644 workspace/assets/skins/b4/b498563b8d3db9bb36f4e81bd7369e15f3f704e9653d6dafa93441705b507a9b create mode 100644 workspace/assets/skins/b6/b6613758059b443f5f3e5b77e000eed64d52a4ad2e4ca71cd8256973753cb72d create mode 100644 workspace/assets/skins/b6/b6aadaec19432a7cf69d1c3f2c03a564dc4eae826ad83adc19eb8c7405e0034f create mode 100644 workspace/assets/skins/b6/b6aeceba255555600ca2a3046d63ee2d97dd424ecc291cd1fe21ba6f53398d71 create mode 100644 workspace/assets/skins/b8/b8e025fc38c8d1ab7de5402ea780cf8396c3e275e568471aff0437fb1356a716 create mode 100644 workspace/assets/skins/ba/ba0ce605d0d2660d20d988ae90dae9672f51e6b6c4780fc4a887cc60c895a8b5 create mode 100644 workspace/assets/skins/bc/bc25f628caa0d24057f068b46be5db37af38537968eb809799f749d8606c7fe6 create mode 100644 workspace/assets/skins/bc/bc53c106059f5654c21b4c4ed8cc0beeb8dd1698438545d84925288ddaedda65 create mode 100644 workspace/assets/skins/bc/bce1d217280aeb213a6fd5590f0c22dddd3e42a867f09639e6a91e5a5c32498e create mode 100644 workspace/assets/skins/bd/bd7df4183f9d689df7d181aba01b5de0acda74e11cbf77ef2084a68be49694f6 create mode 100644 workspace/assets/skins/be/be87430cd01f6fa91a53266a64d55a06a65923b1cf7e500c50ca3072699acfe9 create mode 100644 workspace/assets/skins/bf/bfaffa17e62917643fb09c7e5dbc398e09b256bf2e1197499a9bdaec90c9a823 create mode 100644 workspace/assets/skins/bf/bfb578575a6fcee1ff21e16040e2ac9dc1e9f8aed502eb8789069f12d91bdc6d create mode 100644 workspace/assets/skins/c0/c01fa703b5552dae1bafa84a18127b020ca7761ccfff5d47d87f34a0b7e27073 create mode 100644 workspace/assets/skins/c0/c0882974c39cd68d5881aaf14d78b7744ed4574f95ab106b1215e8d1075160fb create mode 100644 workspace/assets/skins/c0/c0bdb3ced23bef2c3fc325b4e6ed8d012d552831d2920c004d763766a2113966 create mode 100644 workspace/assets/skins/c1/c13c3544b8380b31c16d80ac89b64f07e27fbdf3ad61c7b6d69fb7ddbe34c6e4 create mode 100644 workspace/assets/skins/c1/c186634e01796fd8cecc39091c49be6c439606f0eca766068fe098aa7f61b8b2 create mode 100644 workspace/assets/skins/c5/c57f023997749f2587e946312e5b4d9c58f1d105bd016c91ed9615cb12826263 create mode 100644 workspace/assets/skins/c5/c5df6740d469673a6449aa3d8eb5f351facd83085228bbcac084f69410f0bb48 create mode 100644 workspace/assets/skins/c6/c6e8c72cb54a4d8b66174ce9b9f22f1d6b7d989ecdb7f6d9703795472cba2ff7 create mode 100644 workspace/assets/skins/c7/c708a01238d7d3f52f0cd9fcf77cfdd13353532628fae5c824fdfa8d59c1eca create mode 100644 workspace/assets/skins/c9/c93b29d9b1c158ac457f09c93c1315517ea66a0c32e7fc711f7da82b98cb0198 create mode 100644 workspace/assets/skins/c9/c943e438b591313667d5690f832036d72a275da1af33087e1fdbbbc0aff5d0b create mode 100644 workspace/assets/skins/ca/caa814e54fb16ac4782dcc4964074bf08c086d0d8ad674f86392cb261f7ffe50 create mode 100644 workspace/assets/skins/cd/cd7d2eccece6cf72fe2bbd425353823813f0b663e9187cd8c7312f7f206dda70 create mode 100644 workspace/assets/skins/cf/cf6e72d9c42fcc653f0e58a88a72e387287df1f37e0974936ee35d060a0d269e create mode 100644 workspace/assets/skins/cf/cf9d2d9f837b6ff94e6b9f593ac5daad5e1bd2dad3abb1563a509fdbdb1cd2bf create mode 100644 workspace/assets/skins/d4/d417fa9825e69aba9c4ef877672ed55411b086f6fb419e662d0928230eda35f5 create mode 100644 workspace/assets/skins/d4/d42c98f2c33bd0ec2c087e493591a768dccbd5ba0922131cea0d7bb9e620f25b create mode 100644 workspace/assets/skins/d4/d4e5c4d9c737cc3af0157d775af9185b6ba45a07edc611ef9b3c6dc8aaea2105 create mode 100644 workspace/assets/skins/d4/d4e959fe6aa0789df8a4df77e219cd288a8933202de5bd2f67532085f14343dc create mode 100644 workspace/assets/skins/d6/d66bd5bdcef7dd5da1964000dda1f3dc51d88f552cf58e138c237598ce259ffd create mode 100644 workspace/assets/skins/d6/d6dece842bb5082c3bb7d9bb5eb820ca1692d21db7508dcb43a471b11980cba9 create mode 100644 workspace/assets/skins/d8/d80fd55f4b66e8ab99c07de9e1070477927232cac61b0b87c602a5d7ea138786 create mode 100644 workspace/assets/skins/d8/d85c1867269270774911b328a662e94a1f3636adfd6e65721039922fee63d804 create mode 100644 workspace/assets/skins/d9/d999eb593856344db80d572ec57fe5709389f8ef9bff89f6bad753f4ca4549fd create mode 100644 workspace/assets/skins/d9/d9eb64e674a49b8382e9c3bb91a5ffb2118cb82eda53996ebdd34dee5db2aa50 create mode 100644 workspace/assets/skins/db/dbb29e60c2a540d09283de22b356f5c1d6d8958d4d978673d8e6f6c94981f22a create mode 100644 workspace/assets/skins/db/dbc5282a63f60761533cb17ee52faa84249352464ead727d6302de01a5463745 create mode 100644 workspace/assets/skins/dc/dc067d9d1fff995099eee81648d98248a7f4701827e602e1b54ca8d9f7d86132 create mode 100644 workspace/assets/skins/dc/dc59419fa6a199cd102a42a35f1e81f3d9877ceb82eb0984fce773e2671a5617 create mode 100644 workspace/assets/skins/de/de4be4aa6ae0627c27b3b9c3496335d814216b6c8be2ecc7b2b5011fa7fea9d7 create mode 100644 workspace/assets/skins/de/de647076151abb5a9c81fbc992d968adc740803c67aad0aa83c35f7c0586e60c create mode 100644 workspace/assets/skins/de/deaa89583f9256c55924a38367ebd0fc093115c4c640ce94e537fd1788f1a7a4 create mode 100644 workspace/assets/skins/de/def894c1c500ddabe1f699f4f7a6d412c99f3ebe25cfce925a0780ee4a415bbf create mode 100644 workspace/assets/skins/df/df7798055a0418e1755e4cf36524c630d17e32c417eb19183dca88f6fedf5544 create mode 100644 workspace/assets/skins/df/dfe60d4990b419abe35f81844b11bdd3448f0d1ada7e2ac6ca7dbcf4b7624d48 create mode 100644 workspace/assets/skins/e0/e0bd60828c28bd3fc77977dfe830df6e14ae2de2dd22ed49c33fcbcce167af50 create mode 100644 workspace/assets/skins/e2/e2ab4191150ac8608aa5fa3dca0e7f9da520dde23b73175cf051a6275fa219b7 create mode 100644 workspace/assets/skins/e5/e505f48e1afb1bc862764dcb6ba521ccf27a394263c0c35a44e9f80b65fa6b83 create mode 100644 workspace/assets/skins/e7/e7cfcdce9959218d6f9c1b4cf5bd76b16c84e5b387e7c2f857eba3e02a9e9baa create mode 100644 workspace/assets/skins/e8/e85ee70b7607f3eefbdb7b4ad19483bf5fe8c4e95b2ba9c8ff5565e615f026c6 create mode 100644 workspace/assets/skins/e8/e8e8bdbeec65641c95b7035906c3e864d73aadb0992ce84a26aedebd79c0939a create mode 100644 workspace/assets/skins/ea/eab12251fffd8fbc0cf6ddc63423e6325b75ad1e73f4cd213941ff72b1e48f82 create mode 100644 workspace/assets/skins/ec/ec13fa8aac84c270c59aae11dfabf7a0f7b59f5a4843a0bb0b47f1345defd321 create mode 100644 workspace/assets/skins/ec/ec2cd4c04a0c4b911be5b0da2d3bcbeee94b72d8d092fc45ced3cba1954066af create mode 100644 workspace/assets/skins/ef/ef3509d6a0eb759a817eb637c0060e57dba22b0f9e9687f37c12e0cba16f1049 create mode 100644 workspace/assets/skins/ef/eff3c5ed2ec961a5c046e247ab5ac21c43144f0c0d11dc69bf3a1c11b81380a0 create mode 100644 workspace/assets/skins/f1/f1032fb4dad53ad4f8b6517c7e1c9b66ab86821d0d9958e04f2369aebe8076d8 create mode 100644 workspace/assets/skins/f1/f134c00cb1dda76ea6d5405be73e5aed4d5bfb2db581921fa8b13795d1e80e20 create mode 100644 workspace/assets/skins/f1/f163bd16ba83e283a5ab3e39912c1cfd8c6a143c816a7ebd85772ac4aaf4f90 create mode 100644 workspace/assets/skins/f1/f1c96dd74fd17b50428196650cb0d09d6eea75f331b08ebc83e4fc7df893e798 create mode 100644 workspace/assets/skins/f1/f1cd5de9696d12183fbc769c64803b97bda7f43265ef568990eda62f5fbc070 create mode 100644 workspace/assets/skins/f3/f315588bdc46d5fa6868ebc447489ef6e7b461b987acb0bba6ee1dc4cb97b756 create mode 100644 workspace/assets/skins/f4/f44b7fadd44758998e348503ee380a8c2869e70528f587b035373f3cf2b7bd55 create mode 100644 workspace/assets/skins/f4/f4639031594fea6b3084f7db6e8a8cb8c53868cbf8919c89c9f76111c8d13fbb create mode 100644 workspace/assets/skins/f6/f607485da6937fafb8d9e2b3d60f9c19a695715926e5def4d99390f5f54e36f9 create mode 100644 workspace/assets/skins/f6/f6423c0ec942a93334be52c5a0a7728f55220b140ccf8e2352cb317268f2ef64 create mode 100644 workspace/assets/skins/f7/f736cec5299e81052e7c8652f5aa40c731b7411727c072e6d57ea9947201a047 create mode 100644 workspace/assets/skins/f8/f81b2ee7fdc67c0dd1a4910af0b0192a692ff9b1369fe4122571a1eb7ef9ca3c create mode 100644 workspace/assets/skins/f9/f99d58d940bcb2d7b0d7544b0d50b7d8002c2f10e92879e2ed12bb4eec2eeb29 create mode 100644 workspace/assets/skins/fb/fb840cac11b7ec9c448c54b25e35cb30b357d75a9ef25a3f1beccd56f936c0d1 create mode 100644 workspace/assets/skins/fb/fbf9b998e2139fb3f94c09115796a69ca683a083387ae315bebc3aecccb2f655 create mode 100644 workspace/assets/skins/fc/fc6d9f2e0469e95ae208fd921561b7ee39940081b0daaca9c54fcae977df097a create mode 100644 workspace/assets/skins/fc/fc76d2939265b1ac8f195398337d93c41979912d2f451381fe6c32bb536769d0 create mode 100644 workspace/assets/skins/fd/fdfeca43ff1003a0f2139e590a0ad2fc45dbd2bb9a64b236d59b72245401a093 create mode 100644 workspace/crash-reports/crash-2023-06-08_17.27.31-client.txt create mode 100644 workspace/crash-reports/crash-2023-06-08_17.35.41-client.txt create mode 100644 workspace/logs/2023-06-08-4.log.gz create mode 100644 workspace/logs/2023-06-08-5.log.gz create mode 100644 workspace/logs/2023-06-08-6.log.gz create mode 100644 workspace/logs/2023-06-08-7.log.gz create mode 100644 workspace/resourcepacks/4Verzide_V2_lf128x.zip create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/01d9f825-5509-3b83-aacf-c98ce0dce1c7.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/0704e0ba-eaf6-3b26-b880-53fd45ec3b48.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/09805145-bb70-3fc1-9783-30845f8dd6d0.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/2659329e-1c65-3850-9659-d27fc655aa3c.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/2a68c4a4-c1ba-3396-a626-ac7041e25da5.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/2eef3335-8d1f-3428-af42-f3cec9010d4c.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/2f0d3d8c-afbe-358f-b8f3-786d7b0f9259.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/31a9aee6-8c2b-389d-b14e-b75d71479611.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/3b1946fe-c2d1-3fab-8b74-bd39d8b52fb4.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/3c28cca8-db38-324d-ac91-779beed87c8d.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/408d12c9-559c-3212-bca5-d1a3fc38a0f7.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/409ad871-75ba-3dbd-b116-807d64800e7d.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/41dc22e0-3e7d-3bce-88c0-a274eb3e3859.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/46f780a1-2e26-3e88-a90a-02cf37fe1547.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/55199b58-d04f-3d22-9ce2-5472509a024b.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/6004b361-ef29-34d2-b89c-32df237908c7.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/600ef575-e50b-3323-b0f1-19e3a176b08b.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/60d19c6d-8381-348f-9d23-cb28708609fc.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/618c707a-83d7-31ad-b075-bd98e2c75926.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/6ae8fe40-3ccb-3755-8fd2-c5445728b386.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/6db1171d-4fa6-31cb-b425-1896281a26e2.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/6e946422-0041-3048-9c85-48e4f886211a.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/74e89738-6c9e-4f59-83ef-d365849e6049.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/7ef37f89-ec95-314c-ad83-8a71ac6e461c.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/7fac0f4d-6ee9-33e9-a874-7b4a3cc238c6.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/8dbdaed5-4750-31ee-aa4f-4c3b2bfbc6f7.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/a205b8da-efc6-37ad-8e1d-84c0239cdd21.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/ad8236b9-e26f-349c-902e-7100197cd86d.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/b7a940e4-3cde-3275-9c73-2f71fe593c98.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/cb3fd6c5-1d0c-334b-a8d4-85d2c85eb576.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/d96be705-d0ae-31d3-afba-31a637d80f6d.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/d978d670-4b07-3a90-bfb6-b4e7c70fe7fc.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/f2937d48-a72f-3375-bb6f-69c5f204d185.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/f318a6c7-0ff1-368e-9d3e-1b850b84da5e.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/f4642d2b-29f9-34b7-8b90-e6570e856434.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/playerdata/fb8576b0-fae6-3c1e-b44e-6422260d3c41.dat create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/region/r.-2.1.mca create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/01d9f825-5509-3b83-aacf-c98ce0dce1c7.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/0704e0ba-eaf6-3b26-b880-53fd45ec3b48.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/09805145-bb70-3fc1-9783-30845f8dd6d0.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/2659329e-1c65-3850-9659-d27fc655aa3c.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/2a68c4a4-c1ba-3396-a626-ac7041e25da5.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/2eef3335-8d1f-3428-af42-f3cec9010d4c.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/2f0d3d8c-afbe-358f-b8f3-786d7b0f9259.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/31a9aee6-8c2b-389d-b14e-b75d71479611.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/3b1946fe-c2d1-3fab-8b74-bd39d8b52fb4.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/3c28cca8-db38-324d-ac91-779beed87c8d.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/408d12c9-559c-3212-bca5-d1a3fc38a0f7.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/409ad871-75ba-3dbd-b116-807d64800e7d.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/41dc22e0-3e7d-3bce-88c0-a274eb3e3859.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/46f780a1-2e26-3e88-a90a-02cf37fe1547.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/55199b58-d04f-3d22-9ce2-5472509a024b.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/6004b361-ef29-34d2-b89c-32df237908c7.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/600ef575-e50b-3323-b0f1-19e3a176b08b.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/60d19c6d-8381-348f-9d23-cb28708609fc.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/618c707a-83d7-31ad-b075-bd98e2c75926.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/6ae8fe40-3ccb-3755-8fd2-c5445728b386.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/6db1171d-4fa6-31cb-b425-1896281a26e2.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/6e946422-0041-3048-9c85-48e4f886211a.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/74e89738-6c9e-4f59-83ef-d365849e6049.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/7ef37f89-ec95-314c-ad83-8a71ac6e461c.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/7fac0f4d-6ee9-33e9-a874-7b4a3cc238c6.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/8dbdaed5-4750-31ee-aa4f-4c3b2bfbc6f7.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/a205b8da-efc6-37ad-8e1d-84c0239cdd21.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/ad8236b9-e26f-349c-902e-7100197cd86d.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/b7a940e4-3cde-3275-9c73-2f71fe593c98.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/cb3fd6c5-1d0c-334b-a8d4-85d2c85eb576.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/d96be705-d0ae-31d3-afba-31a637d80f6d.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/d978d670-4b07-3a90-bfb6-b4e7c70fe7fc.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/f2937d48-a72f-3375-bb6f-69c5f204d185.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/f318a6c7-0ff1-368e-9d3e-1b850b84da5e.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/f4642d2b-29f9-34b7-8b90-e6570e856434.json create mode 100644 workspace/saves/Copy of Copy of mcpworldppdsa_/stats/fb8576b0-fae6-3c1e-b44e-6422260d3c41.json create mode 100644 workspace/screenshots/2023-06-08_14.56.23.png diff --git a/src/main/java/net/minecraft/client/gui/GuiButton.java b/src/main/java/net/minecraft/client/gui/GuiButton.java index 11b92f6d..d69dee2e 100644 --- a/src/main/java/net/minecraft/client/gui/GuiButton.java +++ b/src/main/java/net/minecraft/client/gui/GuiButton.java @@ -7,6 +7,7 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.ResourceLocation; import rip.athena.client.font.FontManager; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -96,8 +97,8 @@ public class GuiButton extends Gui this.mouseDragged(mc, mouseX, mouseY); int j = 14737632; - DrawUtils.drawRoundedRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, 4, hovered ? new Color(200,200,200,100).getRGB() : new Color(100,100,100,100).getRGB()); - DrawUtils.drawRoundedRect(this.xPosition + 1, this.yPosition + 1, (this.xPosition + this.width) - 1, (this.yPosition + this.height) - 1, 3, new Color(22, 24, 27,100).getRGB()); + RoundedUtils.drawRoundedRect(this.xPosition, this.yPosition, this.xPosition + this.width, this.yPosition + this.height, 12, hovered ? new Color(200,200,200,100).getRGB() : new Color(100,100,100,100).getRGB()); + RoundedUtils.drawRoundedRect(this.xPosition + 1, this.yPosition + 1, (this.xPosition + this.width) - 1, (this.yPosition + this.height) - 1, 12, new Color(22, 24, 27,100).getRGB()); if (!this.enabled) diff --git a/src/main/java/rip/athena/client/Athena.java b/src/main/java/rip/athena/client/Athena.java index 90c046d8..f16bb24b 100644 --- a/src/main/java/rip/athena/client/Athena.java +++ b/src/main/java/rip/athena/client/Athena.java @@ -17,6 +17,7 @@ import rip.athena.client.requests.ContentType; import rip.athena.client.requests.WebRequest; import rip.athena.client.requests.WebRequestResult; import rip.athena.client.socket.SocketClient; +import rip.athena.client.theme.ThemeManager; import rip.athena.client.utils.PrefixedLogger; import rip.athena.client.utils.input.KeybindManager; @@ -57,6 +58,7 @@ public class Athena { private NotificationManager notificationManager; private ConfigManager configManager; private ModuleManager moduleManager; + private ThemeManager themeManager; private MacroManager macroManager; private HUDManager hudManager; private EventBus eventBus; @@ -74,8 +76,6 @@ public class Athena { MAIN_DIR.mkdir(); } - - if(SocketClient.isClientRunning()) { JOptionPane.showMessageDialog(null, "Port 1337 already in use."); System.exit(0); @@ -83,6 +83,7 @@ public class Athena { this.configManager = new ConfigManager(CONFIGS_DIR); this.moduleManager = new ModuleManager(); + this.themeManager = new ThemeManager(); this.macroManager = new MacroManager(); this.hudManager = new HUDManager(); this.eventBus = new EventBus(); diff --git a/src/main/java/rip/athena/client/config/save/Config.java b/src/main/java/rip/athena/client/config/save/Config.java index 22dece73..ffef14ea 100644 --- a/src/main/java/rip/athena/client/config/save/Config.java +++ b/src/main/java/rip/athena/client/config/save/Config.java @@ -15,6 +15,7 @@ import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.macros.Macro; import rip.athena.client.modules.Module; import rip.athena.client.modules.impl.render.Crosshair; +import rip.athena.client.theme.Theme; import rip.athena.client.utils.StringUtils; import rip.athena.client.utils.file.FileHandler; import rip.athena.client.utils.input.BindType; @@ -125,7 +126,7 @@ public class Config { } } } - + JSONObject hud = json.getJSONObject("hud"); for(String element : hud.keySet()) { @@ -143,7 +144,16 @@ public class Config { } } } - + + String themeIdentifier = obj.getString("theme"); + + for (Theme theme : Theme.values()) { + if (theme.name().equalsIgnoreCase(themeIdentifier)) { + Athena.INSTANCE.getThemeManager().setTheme(theme); + break; + } + } + JSONArray macroList = obj.getJSONArray("macros"); for(int i = 0; i < macroList.length(); i++) { @@ -355,7 +365,7 @@ public class Config { obj.put("enabled", mod.isToggled()); obj.put("bind", mod.getKeyBind()); obj.put("bindtype", mod.getBindType().toString()); - + for(ConfigEntry entry : mod.getEntries()) { entry.appendToConfig(entry.getKey(), entry.getValue(mod), settingsObj); } @@ -364,7 +374,9 @@ public class Config { obj.put("hud", hudObj); config.put(mod.getName(), obj); } - + + config.put("theme", Athena.INSTANCE.getThemeManager().getTheme().name()); + JSONArray macros = new JSONArray(); for(Macro macro : Athena.INSTANCE.getMacroManager().getMacros()) { @@ -380,7 +392,7 @@ public class Config { config.put("macros", macros); JSONObject fps = new JSONObject(); - + List buffer = new ArrayList<>(); for(Class clazz : SettingsPage.BLOCKS) { diff --git a/src/main/java/rip/athena/client/gui/clickgui/Category.java b/src/main/java/rip/athena/client/gui/clickgui/Category.java index cea1bf25..e2bafeb8 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/Category.java +++ b/src/main/java/rip/athena/client/gui/clickgui/Category.java @@ -12,7 +12,8 @@ public enum Category { MACROS("MACROS", "Athena/gui/mods/cps.png"), WAYPOINTS("WAYPOINTS", "Athena/gui/menu/waypoints.png"), PROFILES("PROFILES", "Athena/gui/menu/profiles.png"), - COSMETICS("COSMETICS", "Athena/gui/menu/cosmetics.png"); + COSMETICS("COSMETICS", "Athena/gui/menu/cosmetics.png"), + THEMES("THEMES", "Athena/gui/menu/themes.png"); private String name; private String icon; diff --git a/src/main/java/rip/athena/client/gui/clickgui/IngameMenu.java b/src/main/java/rip/athena/client/gui/clickgui/IngameMenu.java index 352e5784..7528ae5d 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/IngameMenu.java +++ b/src/main/java/rip/athena/client/gui/clickgui/IngameMenu.java @@ -136,11 +136,14 @@ public class IngameMenu extends MinecraftMenuImpl implements DrawImpl { drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth()); - RoundedUtils.drawRoundedOutline(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 54, 5, new Color(50, 50, 50, 255).getRGB()); - RoundedUtils.drawRoundedRect(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 54, new Color(30, 30, 30, 255).getRGB()); + RoundedUtils.drawRoundedOutline(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 32, 5, new Color(50, 50, 50, 255).getRGB()); + RoundedUtils.drawRoundedRect(menu.getX(), menu.getY(), menu.getX() + menu.getWidth(), menu.getY() + menu.getHeight(), 32, new Color(30, 30, 30, 255).getRGB()); + + rip.athena.client.utils.font.FontManager.getNunitoBold(50).drawString(Athena.INSTANCE.getClientName().toUpperCase(), menu.getX() + 40, menu.getY() + 20, MENU_HEADER_TEXT_COLOR); + + //DrawUtils.drawImage(new ResourceLocation("Athena/logo/pride.png"), (int) (menu.getX() + FontManager.font1.getStringWidth(Athena.INSTANCE.getClientName().toUpperCase()) + 70), (int) (menu.getY() - 10 + FontManager.font1.getHeight(Athena.INSTANCE.getClientName().toUpperCase())), 30, 30); + - rip.athena.client.utils.font.FontManager.getNunitoBold(50).drawString(Athena.INSTANCE.getClientName().toUpperCase(), menu.getX() + 60, menu.getY() + 20, MENU_HEADER_TEXT_COLOR); - //DrawUtils.drawImage(new ResourceLocation("Athena/logo/Athena.png"), (int) (menu.getX() + FontManager.font1.getStringWidth(Athena.INSTANCE.getClientName().toUpperCase()) + 70), (int) (menu.getY() - 10 + FontManager.font1.getHeight(Athena.INSTANCE.getClientName().toUpperCase())), 30, 30); drawShadowDown(menu.getX(), menu.getY() + 58, menu.getWidth()); if(category != null) { diff --git a/src/main/java/rip/athena/client/gui/clickgui/PageManager.java b/src/main/java/rip/athena/client/gui/clickgui/PageManager.java index a03a3743..d1dc7110 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/PageManager.java +++ b/src/main/java/rip/athena/client/gui/clickgui/PageManager.java @@ -34,6 +34,7 @@ public class PageManager { pages.put(Category.WAYPOINTS, new WaypointsPage(mc, menu, parent)); pages.put(Category.PROFILES, new ProfilesPage(mc, menu, parent)); pages.put(Category.COSMETICS, new CosmeticsPage(mc, menu, parent)); + pages.put(Category.THEMES, new ThemesPage(mc, menu, parent)); } public Map getPages() { diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/mods/CategoryButton.java b/src/main/java/rip/athena/client/gui/clickgui/components/mods/CategoryButton.java index 495a9a89..636681b0 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/components/mods/CategoryButton.java +++ b/src/main/java/rip/athena/client/gui/clickgui/components/mods/CategoryButton.java @@ -2,6 +2,7 @@ package rip.athena.client.gui.clickgui.components.mods; import net.minecraft.client.Minecraft; import net.minecraft.util.ResourceLocation; +import rip.athena.client.Athena; import rip.athena.client.font.FontManager; import rip.athena.client.gui.framework.components.MenuButton; import rip.athena.client.gui.framework.draw.ButtonState; @@ -58,8 +59,9 @@ public class CategoryButton extends MenuButton { //RoundedUtils.drawRoundedRect(x + 9, y - 1, x + width - 19, y + height + 1, 12, new Color(50,50,50,255).getRGB()); if(isActive()) { - RoundedUtils.drawRoundedRect(x + 29, y - 1, x + width - 19, y + height + 1, 12, new Color(50, 50, 50, 255).getRGB()); - RoundedUtils.drawRoundedRect(x + 30, y, x + width - 20, y + height, 12, new Color(25,25,25,255).getRGB()); + RoundedUtils.drawGradientRound(x + 30, y, width - 40, height, 12, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + //RoundedUtils.drawRoundedRect(x + 29, y - 1, x + width - 19, y + height + 1, 12, new Color(50, 50, 50, 255).getRGB()); + //RoundedUtils.drawRoundedRect(x + 30, y, x + width - 20, y + height, 12, new Color(25,25,25,255).getRGB()); } if(Settings.customGuiFont) { rip.athena.client.utils.font.FontManager.getNunitoBold(20).drawString(text, x + 70, y + height / 2 - (getStringHeight(text) / 2) + 2, textColor); diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/mods/MenuModSlider.java b/src/main/java/rip/athena/client/gui/clickgui/components/mods/MenuModSlider.java index 05fbf031..c1626260 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/components/mods/MenuModSlider.java +++ b/src/main/java/rip/athena/client/gui/clickgui/components/mods/MenuModSlider.java @@ -2,6 +2,7 @@ package rip.athena.client.gui.clickgui.components.mods; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; +import rip.athena.client.Athena; import rip.athena.client.font.FontManager; import rip.athena.client.gui.framework.components.MenuSlider; import rip.athena.client.gui.framework.draw.ButtonState; @@ -100,7 +101,8 @@ public class MenuModSlider extends MenuSlider { linePos += minOffset; } - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x + 1, y + 1, linePos, height - 1, backgroundColor); + RoundedUtils.drawGradientRound(x + 1, y + 1, linePos, height - 1, 6,Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(x + 1, y + 1, linePos, height - 1, backgroundColor); int cursorPos = linePos; int cursorWidth = 20; diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModCategoryButton.java b/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModCategoryButton.java index c64b7bd4..7d2dab44 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModCategoryButton.java +++ b/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModCategoryButton.java @@ -1,6 +1,7 @@ package rip.athena.client.gui.clickgui.components.mods; import net.minecraft.client.Minecraft; +import rip.athena.client.Athena; import rip.athena.client.font.FontManager; import rip.athena.client.gui.framework.components.MenuButton; import rip.athena.client.gui.framework.draw.ButtonState; @@ -65,13 +66,14 @@ public class ModCategoryButton extends MenuButton { GlStateManager.color(1, 1, 1); if(isActive()) { - RoundedUtils.drawRoundedRect(x + 17, y - 1, x + width - 19, y + height - 4, 12, new Color(50,50,50,255).getRGB()); - RoundedUtils.drawRoundedRect(x + 18, y, x + width - 20, y + height - 5, 12, backgroundColor); + RoundedUtils.drawGradientRound(x + 17, y - 1, width - 23, height - 4, 12, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + //RoundedUtils.drawRoundedRect(x + 17, y - 1, x + width - 6, y + height - 4, 12, new Color(50,50,50,255).getRGB()); + //RoundedUtils.drawRoundedRect(x + 18, y, x + width - 7, y + height - 5, 12, backgroundColor); //drawHorizontalLine(x + (width / 2 - getStringWidth(text) / 2), y + 29, (int)Minecraft.getMinecraft().fontRendererObj.getStringWidth(text), 2, textColor); } if(Settings.customGuiFont) { - rip.athena.client.utils.font.FontManager.getNunitoBold(20).drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, textColor); + rip.athena.client.utils.font.FontManager.getNunitoBold(25).drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, textColor); } else { Minecraft.getMinecraft().fontRendererObj.drawString(text, x + (width / 2 - getStringWidth(text) / 2), y + height / 2 - (getStringHeight(text) / 2) - 3, textColor); } diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModScrollPane.java b/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModScrollPane.java index 82766a97..f2572883 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModScrollPane.java +++ b/src/main/java/rip/athena/client/gui/clickgui/components/mods/ModScrollPane.java @@ -1,6 +1,7 @@ package rip.athena.client.gui.clickgui.components.mods; import net.minecraft.client.renderer.GlStateManager; +import rip.athena.client.Athena; import rip.athena.client.gui.framework.MenuComponent; import rip.athena.client.gui.framework.MenuPriority; import rip.athena.client.gui.framework.components.MenuDraggable; @@ -11,6 +12,7 @@ import net.minecraft.client.Minecraft; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; import java.util.Collections; @@ -228,19 +230,27 @@ public class ModScrollPane extends MenuScrollPane { scrollerHeight -= 3; GlStateManager.color(1, 1,1); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 3, y - 2, scrollerWidth + 6, scrollerHeight + 8, 83886080); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 2, y - 1, scrollerWidth + 4, scrollerHeight + 6, 369098752); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 1, y, scrollerWidth + 2, scrollerHeight + 4, 587202560); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 3, y - 2, scrollerWidth + 6, scrollerHeight + 8, 83886080); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 2, y - 1, scrollerWidth + 4, scrollerHeight + 6, 369098752); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 1, y, scrollerWidth + 2, scrollerHeight + 4, 587202560); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX, y + 1, scrollerWidth, scrollerHeight + 2, getColor(DrawType.LINE, ButtonState.NORMAL)); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX + 1, y + 2, scrollerWidth - 2, scrollerHeight, getColor(DrawType.BACKGROUND, ButtonState.NORMAL)); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX, y + 1, scrollerWidth, scrollerHeight + 2, getColor(DrawType.LINE, ButtonState.NORMAL)); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX + 1, y + 2, scrollerWidth - 2, scrollerHeight, getColor(DrawType.BACKGROUND, ButtonState.NORMAL)); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 3, newY - 3, scrollerWidth + 6, newSize + 6, 83886080); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 2, newY - 2, scrollerWidth + 4, newSize + 4, 369098752); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 1, newY - 1, scrollerWidth + 2, newSize + 2, 587202560); + RoundedUtils.drawRoundedRect(scrollerX + 2, y + 2, scrollerX + scrollerWidth - 2, y + scrollerHeight, 6, getColor(DrawType.BACKGROUND, ButtonState.NORMAL)); + + //RoundedUtils.drawRoundedRect(scrollerX - 3, newY - 3, scrollerWidth + 6, newSize + 6, 12, -1); + + RoundedUtils.drawGradientRound(scrollerX, newY - 3, scrollerWidth, newSize, 6,Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + + //RoundedUtils.drawRoundedRect(scrollerX, newY - 3, scrollerX + scrollerWidth, newY + newSize, 6, -1); + + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 3, newY - 3, scrollerWidth + 6, newSize + 6, 83886080); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 2, newY - 2, scrollerWidth + 4, newSize + 4, 369098752); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX - 1, newY - 1, scrollerWidth + 2, newSize + 2, 587202560); //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX, newY, scrollerWidth, newSize, getColor(DrawType.LINE, scrollerState)); - rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX + 1, newY + 1, scrollerWidth - 2, newSize - 2, getColor(DrawType.BACKGROUND, scrollerState)); + //rip.athena.client.gui.framework.draw.DrawImpl.drawRect(scrollerX + 1, newY + 1, scrollerWidth - 2, newSize - 2, getColor(DrawType.BACKGROUND, scrollerState)); } } diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/mods/SearchTextfield.java b/src/main/java/rip/athena/client/gui/clickgui/components/mods/SearchTextfield.java index 8e84e85f..7a0c8c41 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/components/mods/SearchTextfield.java +++ b/src/main/java/rip/athena/client/gui/clickgui/components/mods/SearchTextfield.java @@ -13,6 +13,7 @@ import rip.athena.client.gui.clickgui.IngameMenu; import rip.athena.client.modules.impl.other.Settings; import rip.athena.client.utils.render.DrawUtils; import org.lwjgl.input.Keyboard; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -66,8 +67,8 @@ public class SearchTextfield extends MenuTextField { GlStateManager.color(1, 1,1); - DrawUtils.drawRoundedRect(x - 4, y - 4, x + width + 5, y + height + 5, 10, 83886080); - DrawUtils.drawRoundedRect(x - 2, y - 2, x + width + 3, y + height + 3, 10, 587202560); + RoundedUtils.drawRoundedRect(x - 4, y - 4, x + width + 5, y + height + 5, 24, 83886080); + RoundedUtils.drawRoundedRect(x - 2, y - 2, x + width + 3, y + height + 3, 24, 587202560); /*DrawUtils.drawRoundedRect(x - 1, y - 1, x + width + 2, y + height + 2, 10, lineColor); DrawUtils.drawRoundedRect(x, y, x + width + 1, y + height + 1, 10, lineColor); @@ -136,7 +137,7 @@ public class SearchTextfield extends MenuTextField { if(Settings.customGuiFont) { textHeight = (int) FontManager.baloo17.getHeight(textToDraw); - drawVerticalLine(x + 10 + (int)rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(textToDraw.substring(0, toRender)) + 1, y + height / 2 - textHeight / 2, textHeight, 1, textColor); + drawVerticalLine(x + 10 + (int)rip.athena.client.utils.font.FontManager.getNunito(20).width(textToDraw.substring(0, toRender)) + 1, y + height / 2 - textHeight / 2, textHeight, 1, textColor); } else { textHeight = Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT; drawVerticalLine(x + 10 + (int)Minecraft.getMinecraft().fontRendererObj.getStringWidth(textToDraw.substring(0, toRender)) + 1, y + height / 2 - textHeight / 2, textHeight, 1, textColor); @@ -191,7 +192,7 @@ public class SearchTextfield extends MenuTextField { bestIndex = i; } - position += (int)rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(text.charAt(i) + ""); + position += (int)rip.athena.client.utils.font.FontManager.getNunito(20).width(text.charAt(i) + ""); } if(mouseX > position) { @@ -202,6 +203,8 @@ public class SearchTextfield extends MenuTextField { index = 0; } } + + DrawUtils.drawImage(new ResourceLocation("Athena/gui/menu/search.png"), x + width - 30, y + 5, 20, 20); mouseDown = false; } diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/themes/SimpleGradientButton.java b/src/main/java/rip/athena/client/gui/clickgui/components/themes/SimpleGradientButton.java new file mode 100644 index 00000000..5745ec35 --- /dev/null +++ b/src/main/java/rip/athena/client/gui/clickgui/components/themes/SimpleGradientButton.java @@ -0,0 +1,101 @@ +package rip.athena.client.gui.clickgui.components.themes; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import rip.athena.client.Athena; +import rip.athena.client.font.FontManager; +import rip.athena.client.gui.clickgui.IngameMenu; +import rip.athena.client.gui.framework.components.MenuButton; +import rip.athena.client.gui.framework.draw.ButtonState; +import rip.athena.client.gui.framework.draw.DrawType; +import rip.athena.client.modules.impl.other.Settings; +import rip.athena.client.theme.Theme; +import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; + +import java.awt.*; + +/** + * @author Athena Development + * @project Athena-Client + * @date 6/2/2023 + */ + +public class SimpleGradientButton extends MenuButton { + protected boolean leftColorChange; + + public SimpleGradientButton(Theme theme, int x, int y, int width, int height, boolean leftColorChange) { + super(theme, x, y, width, height); + this.leftColorChange = leftColorChange; + } + + @Override + public void onInitColors() { + setColor(DrawType.BACKGROUND, ButtonState.NORMAL, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.ACTIVE, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.HOVER, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.HOVERACTIVE, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.DISABLED, new Color(255, 255, 255, IngameMenu.MENU_ALPHA)); + + setColor(DrawType.LINE, ButtonState.NORMAL, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.ACTIVE, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.HOVER, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.HOVERACTIVE, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.DISABLED, new Color(255, 255, 255, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.POPUP, new Color(28, 28, 30, IngameMenu.MENU_ALPHA)); + + setColor(DrawType.TEXT, ButtonState.NORMAL, new Color(56, 56, 58, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.ACTIVE, new Color(90, 90, 94, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.HOVER, new Color(75, 75, 78, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.HOVERACTIVE, new Color(100, 100, 104, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.DISABLED, new Color(255, 255, 255, IngameMenu.MENU_ALPHA)); + } + + @Override + public void onRender() { + int x = this.getRenderX(); + int y = this.getRenderY(); + int mouseX = parent.getMouseX(); + int width = this.width; + + int backgroundColor = getColor(DrawType.BACKGROUND, lastState); + int lineColor = getColor(DrawType.LINE, lastState); + int textColor = getColor(DrawType.TEXT, lastState); + int linePopupColor = getColor(DrawType.LINE, ButtonState.POPUP); + + GlStateManager.color(1,1,1); + //RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 12.0f, new Color(50,50,50,255).getRGB()); + + RoundedUtils.drawGradientRound(x, y, width, height, 6, theme.getFirstColor(), theme.getFirstColor(), theme.getSecondColor(), theme.getSecondColor()); + GlStateManager.color(1,1,1); + + mouseDown = false; + } + + @Override + public void drawText(String string, int x, int y, int color) { + if(Settings.customGuiFont) { + rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string, x - 3, y, color); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString(string, x, y, color); + } + } + + @Override + public int getStringWidth(String string) { + if(Settings.customGuiFont) { + return (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(string) - 1; + } else { + return Minecraft.getMinecraft().fontRendererObj.getStringWidth(string); + } + } + + @Override + public int getStringHeight(String string) { + if(Settings.customGuiFont) { + return (int) FontManager.baloo17.getHeight(string) + 1; + } else { + return Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT; + } + } +} diff --git a/src/main/java/rip/athena/client/gui/clickgui/components/themes/TriColorGradientButton.java b/src/main/java/rip/athena/client/gui/clickgui/components/themes/TriColorGradientButton.java new file mode 100644 index 00000000..e55503e4 --- /dev/null +++ b/src/main/java/rip/athena/client/gui/clickgui/components/themes/TriColorGradientButton.java @@ -0,0 +1,98 @@ +package rip.athena.client.gui.clickgui.components.themes; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GlStateManager; +import rip.athena.client.font.FontManager; +import rip.athena.client.gui.clickgui.IngameMenu; +import rip.athena.client.gui.framework.components.MenuButton; +import rip.athena.client.gui.framework.draw.ButtonState; +import rip.athena.client.gui.framework.draw.DrawType; +import rip.athena.client.modules.impl.other.Settings; +import rip.athena.client.theme.Theme; +import rip.athena.client.utils.render.RoundedUtils; + +import java.awt.*; + +/** + * @author Athena Development + * @project Athena-Client + * @date 6/2/2023 + */ + +public class TriColorGradientButton extends MenuButton { + protected boolean leftColorChange; + + public TriColorGradientButton(Theme theme, int x, int y, int width, int height, boolean leftColorChange) { + super(theme, x, y, width, height); + this.leftColorChange = leftColorChange; + } + + @Override + public void onInitColors() { + setColor(DrawType.BACKGROUND, ButtonState.NORMAL, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.ACTIVE, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.HOVER, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.HOVERACTIVE, new Color(35, 35, 35, IngameMenu.MENU_ALPHA)); + setColor(DrawType.BACKGROUND, ButtonState.DISABLED, new Color(255, 255, 255, IngameMenu.MENU_ALPHA)); + + setColor(DrawType.LINE, ButtonState.NORMAL, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.ACTIVE, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.HOVER, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.HOVERACTIVE, new Color(52, 52, 53, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.DISABLED, new Color(255, 255, 255, IngameMenu.MENU_ALPHA)); + setColor(DrawType.LINE, ButtonState.POPUP, new Color(28, 28, 30, IngameMenu.MENU_ALPHA)); + + setColor(DrawType.TEXT, ButtonState.NORMAL, new Color(56, 56, 58, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.ACTIVE, new Color(90, 90, 94, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.HOVER, new Color(75, 75, 78, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.HOVERACTIVE, new Color(100, 100, 104, IngameMenu.MENU_ALPHA)); + setColor(DrawType.TEXT, ButtonState.DISABLED, new Color(255, 255, 255, IngameMenu.MENU_ALPHA)); + } + + @Override + public void onRender() { + int x = this.getRenderX(); + int y = this.getRenderY(); + int mouseX = parent.getMouseX(); + int width = this.width; + + int backgroundColor = getColor(DrawType.BACKGROUND, lastState); + int lineColor = getColor(DrawType.LINE, lastState); + int textColor = getColor(DrawType.TEXT, lastState); + int linePopupColor = getColor(DrawType.LINE, ButtonState.POPUP); + + GlStateManager.color(1,1,1); + //RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 12.0f, new Color(50,50,50,255).getRGB()); + + RoundedUtils.drawGradientRound(x, y, width, height, 6, theme.getFirstColor(), theme.getSecondColor(), theme.getThirdColor(), theme.getFirstColor()); + + mouseDown = false; + } + + @Override + public void drawText(String string, int x, int y, int color) { + if(Settings.customGuiFont) { + rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string, x - 3, y, color); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString(string, x, y, color); + } + } + + @Override + public int getStringWidth(String string) { + if(Settings.customGuiFont) { + return (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(string) - 1; + } else { + return Minecraft.getMinecraft().fontRendererObj.getStringWidth(string); + } + } + + @Override + public int getStringHeight(String string) { + if(Settings.customGuiFont) { + return (int) FontManager.baloo17.getHeight(string) + 1; + } else { + return Minecraft.getMinecraft().fontRendererObj.FONT_HEIGHT; + } + } +} diff --git a/src/main/java/rip/athena/client/gui/clickgui/pages/ModsPage.java b/src/main/java/rip/athena/client/gui/clickgui/pages/ModsPage.java index 85f15845..c6bd4414 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/pages/ModsPage.java +++ b/src/main/java/rip/athena/client/gui/clickgui/pages/ModsPage.java @@ -129,7 +129,7 @@ public class ModsPage extends Page { for (Category category : Category.values()) { if (!category.isHidden()) { - MenuButton comp = new ModCategoryButton(category, x, y, (int) (30 + rip.athena.client.utils.font.FontManager.getNunitoBold(30).width(category.getText())), height) { + MenuButton comp = new ModCategoryButton(category, x - 20, y, (int) (35 + rip.athena.client.utils.font.FontManager.getNunitoBold(30).width(category.getText())), height) { @Override public void onAction() { for (rip.athena.client.gui.framework.MenuComponent component : menu.getComponents()) { @@ -257,6 +257,7 @@ public class ModsPage extends Page { int sliderWidth = pane.getWidth() - xSpacing * 2; for (ConfigEntry configEntry : activeModule.getEntries()) { + GlStateManager.color(1,1,1); final FeatureText label; String key = configEntry.getKey().toUpperCase(); diff --git a/src/main/java/rip/athena/client/gui/clickgui/pages/ProfilesPage.java b/src/main/java/rip/athena/client/gui/clickgui/pages/ProfilesPage.java index 9998a343..e1f216f9 100644 --- a/src/main/java/rip/athena/client/gui/clickgui/pages/ProfilesPage.java +++ b/src/main/java/rip/athena/client/gui/clickgui/pages/ProfilesPage.java @@ -238,11 +238,10 @@ public class ProfilesPage extends Page { drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(32, 32, 32, 225).getRGB()); if(Settings.customGuiFont) { - FontManager.vision16.drawString("PROFILES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR); + rip.athena.client.utils.font.FontManager.getNunitoBold(30).drawString("PROFILES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR); } else { - mc.fontRendererObj.drawString("PROFILES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR); + Minecraft.getMinecraft().fontRendererObj.drawString("PROFILES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR); } - //drawHorizontalLine(menu.getX() + 31, menu.getY() + 110, menu.getWidth() - width - 31 * 2, 3, IngameMenu.MENU_LINE_COLOR); rip.athena.client.gui.framework.draw.DrawImpl.drawRect(menu.getX() + menu.getWidth() - width, menu.getY() + 58, width, menu.getHeight() - 58, MacrosPage.MENU_SIDE_BG_COLOR); diff --git a/src/main/java/rip/athena/client/gui/clickgui/pages/ThemesPage.java b/src/main/java/rip/athena/client/gui/clickgui/pages/ThemesPage.java new file mode 100644 index 00000000..7c637cfc --- /dev/null +++ b/src/main/java/rip/athena/client/gui/clickgui/pages/ThemesPage.java @@ -0,0 +1,142 @@ +package rip.athena.client.gui.clickgui.pages; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import org.apache.commons.lang3.RandomStringUtils; +import org.json.JSONException; +import rip.athena.client.Athena; +import rip.athena.client.config.save.Config; +import rip.athena.client.gui.clickgui.IngameMenu; +import rip.athena.client.gui.clickgui.Page; +import rip.athena.client.gui.clickgui.components.macros.MacroButton; +import rip.athena.client.gui.clickgui.components.macros.MacroTextfield; +import rip.athena.client.gui.clickgui.components.macros.SimpleTextButton; +import rip.athena.client.gui.clickgui.components.mods.ModCategoryButton; +import rip.athena.client.gui.clickgui.components.mods.ModScrollPane; +import rip.athena.client.gui.clickgui.components.profiles.ProfilesBase; +import rip.athena.client.gui.clickgui.components.profiles.ProfilesBlueButton; +import rip.athena.client.gui.clickgui.components.themes.SimpleGradientButton; +import rip.athena.client.gui.clickgui.components.themes.TriColorGradientButton; +import rip.athena.client.gui.framework.Menu; +import rip.athena.client.gui.framework.TextPattern; +import rip.athena.client.gui.framework.draw.DrawImpl; +import rip.athena.client.modules.impl.other.Settings; +import rip.athena.client.requests.ContentType; +import rip.athena.client.requests.WebRequest; +import rip.athena.client.requests.WebRequestResult; +import rip.athena.client.theme.Theme; +import rip.athena.client.utils.font.FontManager; +import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; + +import java.awt.*; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.NoSuchElementException; + +/** + * @author Athena Development + * @project Athena-Client + * @date 6/2/2023 + */ + +public class ThemesPage extends Page { + + private ModScrollPane scrollPane; + private Theme activeTheme; + + public ThemesPage(Minecraft mc, Menu menu, IngameMenu parent) { + super(mc, menu, parent); + } + + @Override + public void onInit() { + int width = 300; + + scrollPane = new ModScrollPane(260, 140, menu.getWidth() - width - 10 * 2, menu.getHeight() - 141, false); + populateScrollPane(); + } + + + @Override + public void onRender() { + int y = menu.getY() + 59; + int height = 32; + + if(Settings.customGuiFont) { + rip.athena.client.utils.font.FontManager.getNunitoBold(30).drawString("THEMES | " + Athena.INSTANCE.getThemeManager().getTheme().getTheme(), menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR); + } else { + Minecraft.getMinecraft().fontRendererObj.drawString("THEMES", menu.getX() + 235, menu.getY() + 80, IngameMenu.MENU_HEADER_TEXT_COLOR); + } + + RoundedUtils.drawGradientRound(menu.getX() + 275, menu.getY() + 110, menu.getX() + 120, 20, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + + drawVerticalLine(menu.getX() + 215, y + height - 30, height + 432, 3, new Color(32, 32, 32, 225).getRGB()); + + } + + private void populateScrollPane() { + scrollPane.getComponents().clear(); + + int spacing = 15; + int height = 70; + + int y = spacing; + int x = spacing; + + int defaultX = spacing; + + int width = 190; + int maxWidth = scrollPane.getWidth() - spacing * 2; + + for(Theme theme : Theme.values()) { + if (theme.isTriColor()) { + scrollPane.addComponent(new TriColorGradientButton(theme, x, y, width, height, false) { + @Override + public void onAction() { + setActive(false); + Athena.INSTANCE.getThemeManager().setTheme(theme); + populateScrollPane(); + } + }); + } else { + scrollPane.addComponent(new SimpleGradientButton(theme, x, y, width, height, false) { + @Override + public void onAction() { + setActive(false); + Athena.INSTANCE.getThemeManager().setTheme(theme); + populateScrollPane(); + } + }); + } + + + x += spacing + width; + + if(x + spacing + width > maxWidth) { + x = defaultX; + y += height + spacing; + } + } + } + + @Override + public void onLoad() { + menu.addComponent(scrollPane); + } + + @Override + public void onUnload() { + + } + + @Override + public void onOpen() { + + } + + @Override + public void onClose() { + + } +} diff --git a/src/main/java/rip/athena/client/gui/framework/components/MenuButton.java b/src/main/java/rip/athena/client/gui/framework/components/MenuButton.java index fba8155f..3b4e4219 100644 --- a/src/main/java/rip/athena/client/gui/framework/components/MenuButton.java +++ b/src/main/java/rip/athena/client/gui/framework/components/MenuButton.java @@ -4,6 +4,7 @@ import net.minecraft.client.renderer.GlStateManager; import rip.athena.client.gui.framework.MenuComponent; import rip.athena.client.gui.framework.draw.ButtonState; import rip.athena.client.gui.framework.draw.DrawType; +import rip.athena.client.theme.Theme; import java.awt.*; @@ -18,6 +19,7 @@ public class MenuButton extends MenuComponent { protected int minOffset = 2; protected boolean mouseDown = false; protected boolean active = false; + protected Theme theme; protected ButtonState lastState = ButtonState.NORMAL; public MenuButton(String text, int x, int y){ @@ -29,6 +31,11 @@ public class MenuButton extends MenuComponent { super(x, y, width, height); this.text = text; } + + public MenuButton(Theme theme, int x, int y, int width, int height) { + super(x, y, width, height); + this.theme = theme; + } @Override public void onInitColors() { diff --git a/src/main/java/rip/athena/client/gui/menu/AthenaMenu.java b/src/main/java/rip/athena/client/gui/menu/AthenaMenu.java index fcace24d..804f49f7 100644 --- a/src/main/java/rip/athena/client/gui/menu/AthenaMenu.java +++ b/src/main/java/rip/athena/client/gui/menu/AthenaMenu.java @@ -319,19 +319,19 @@ public class AthenaMenu extends GuiScreen implements GuiYesNoCallback public void drawScreen(int mouseX, int mouseY, float partialTicks) { - DrawUtils.drawImage(new ResourceLocation("Athena/menu/wallpaper.jpg"), 0, 0, width, height); + DrawUtils.drawImage(new ResourceLocation("Athena/menu/test.png"), 0, 0, width, height); int[] size = InputUtils.getWindowsSize(); int startX = size[0] / 2; int startY = size[1] / 2; int x = startX - 75; - int y = this.height / 4 + 18; + int y = this.height / 4 + 28; int width = 150; int height = 100; - FontManager.vision30.drawString(Athena.INSTANCE.getClientName().toUpperCase(), - this.width / 2 - 88 + FontManager.vision30.getStringWidth(Athena.INSTANCE.getClientName().toUpperCase()), y, new Color(255, 255, 255).getRGB()); + rip.athena.client.utils.font.FontManager.getNunitoBold(30).drawString(Athena.INSTANCE.getClientName().toUpperCase(), + this.width / 2 - 88 + rip.athena.client.utils.font.FontManager.getNunitoBold(30).width(Athena.INSTANCE.getClientName().toUpperCase()), y, new Color(255, 255, 255).getRGB()); GlStateManager.pushMatrix(); DrawUtils.drawImage(new ResourceLocation("Athena/menu/exit.png"),startX + startX - 20, 10, 10, 10); diff --git a/src/main/java/rip/athena/client/gui/notifications/Notification.java b/src/main/java/rip/athena/client/gui/notifications/Notification.java index bfd86db2..522a62e5 100644 --- a/src/main/java/rip/athena/client/gui/notifications/Notification.java +++ b/src/main/java/rip/athena/client/gui/notifications/Notification.java @@ -5,8 +5,10 @@ import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.font.FontManager; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -92,8 +94,8 @@ public class Notification { DrawUtils.drawImage(NotificationManager.LOGO, x - 24, y - 20, 20, 20); - drawRect(x - width, y - height, x, y - Math.round(20 * oldDelta), BACKGROUND_COLOR); - + drawRect(x, y, x, y - Math.round(20 * oldDelta), BACKGROUND_COLOR); + if(textOutDelta == 1) { float timeLeft = getDeltaByTime(4000, (int)MAX_TIME - 4000 - FADEOUT_TIME); drawRect(x - width - stringWidth, y, x - Math.round((width + stringWidth) * (1 - timeLeft)), y - 1, color); diff --git a/src/main/java/rip/athena/client/modules/impl/render/CPS.java b/src/main/java/rip/athena/client/modules/impl/render/CPS.java index a22e2960..81b3216c 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/CPS.java +++ b/src/main/java/rip/athena/client/modules/impl/render/CPS.java @@ -1,6 +1,7 @@ package rip.athena.client.modules.impl.render; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.events.SubscribeEvent; import rip.athena.client.events.types.input.MouseDownEvent; @@ -33,7 +34,7 @@ public class CPS extends Module { @ConfigValue.Boolean(name = "Background") private boolean backGround = true; - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Color(name = "Background Color") @@ -80,10 +81,14 @@ public class CPS extends Module { int height = hud.getHeight(); if(backGround) { - if(backgroundMode.equalsIgnoreCase("Modern")) { - RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 12.0f, new Color(50, 50, 50, 255).getRGB()); - RoundedUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 12.0f, new Color(35, 35, 35, 255).getRGB()); - + if(backgroundMode.equalsIgnoreCase("Modern")) { + if(Athena.INSTANCE.getThemeManager().getTheme().isTriColor()) { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getThirdColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor()); + } else { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, background.getRGB(), background.getRGB()); } @@ -97,9 +102,9 @@ public class CPS extends Module { hud.setHeight((int)FontManager.baloo17.getHeight(string) + 7); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY + 1, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY + 1, true, true); } else if(isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY + 1, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY + 1, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(25).drawString(string,(int) (posX) + 1, (int)posY + 2, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/Clock.java b/src/main/java/rip/athena/client/modules/impl/render/Clock.java index 0ce8129b..4d40b975 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/Clock.java +++ b/src/main/java/rip/athena/client/modules/impl/render/Clock.java @@ -1,12 +1,14 @@ package rip.athena.client.modules.impl.render; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.font.FontManager; import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; import java.time.LocalDateTime; @@ -24,7 +26,7 @@ public class Clock extends Module { @ConfigValue.List(name = "Clock Format", values = {"yyyy/MM/dd HH:mm:ss","MM/dd/yyyy", "dd/MM/yyyy", "dd/MM/yyyy hh:mm a" , "MM/dd/yyyy hh:mm a" ,"E, MMM dd yyyy","hh:mm a", "hh:mm:ss a", "yyyy-MM-dd"}) private String format = "yyyy/MM/dd HH:mm:ss"; - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Background") @@ -83,9 +85,9 @@ public class Clock extends Module { if(backGround) { if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, background.getRGB(), background.getRGB()); } @@ -99,9 +101,9 @@ public class Clock extends Module { hud.setHeight((int)FontManager.baloo17.getHeight(string) + 7); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY, true, true); } else if(isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string,(int) (posX), (int)posY, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/Coordinates.java b/src/main/java/rip/athena/client/modules/impl/render/Coordinates.java index 8577d5e9..a5f36b26 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/Coordinates.java +++ b/src/main/java/rip/athena/client/modules/impl/render/Coordinates.java @@ -13,6 +13,7 @@ import net.minecraft.client.resources.model.IBakedModel; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.events.SubscribeEvent; import rip.athena.client.events.types.input.KeyDownEvent; @@ -21,6 +22,7 @@ import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -63,7 +65,7 @@ public class Coordinates extends Module { @ConfigValue.List(name = "Display Mode", values = {"Horizontal", "Vertical"}, description = "How the hud should be displayed") private String displayMode = "Vertical"; - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Color(name = "Background Color") @@ -197,11 +199,11 @@ public class Coordinates extends Module { if(this.shadedCoords) { if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { - DrawUtils.drawGradientRect(posX, posY, posX + width, posY + height, backgroundColor.getRGB(), backgroundColor.getRGB()); + DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, backgroundColor.getRGB(), backgroundColor.getRGB()); } } @@ -218,7 +220,6 @@ public class Coordinates extends Module { if (this.displayMode.equalsIgnoreCase("Vertical")) { GL11.glPushMatrix(); GL11.glEnable(GL11.GL_ALPHA_TEST); - FontRenderer var8 = mc.fontRendererObj; if (mc.thePlayer.posX > 0) { myPosX = (int) MathHelper.floor_double(mc.thePlayer.posX); } else { @@ -262,10 +263,11 @@ public class Coordinates extends Module { if(this.shadedCoords) { if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { - DrawUtils.drawGradientRect(posX, posY, posX + width, posY + height, backgroundColor.getRGB(), backgroundColor.getRGB()); + DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, backgroundColor.getRGB(), backgroundColor.getRGB()); } } @@ -315,7 +317,7 @@ public class Coordinates extends Module { public int getStringWidth(String text) { if (this.customFont) { - return (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(30).width(text); + return (int) rip.athena.client.utils.font.FontManager.getProductSansRegular(25).width(text); } else { return mc.fontRendererObj.getStringWidth(text); } @@ -401,11 +403,11 @@ public class Coordinates extends Module { public void drawString(String text, double posX, double posY, Color color) { if (this.customFont) { if (color.getBlue() == 5 && color.getRed() == 5 && color.getGreen() == 5) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, text, (int) posX, (int) posY - 2, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), text, (int) posX, (int) posY - 2, true, true); } else if (color.getBlue() == 6 && color.getRed() == 6 && color.getGreen() == 6) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, text, (int) posX, (int) posY - 2, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), text, (int) posX, (int) posY - 2, false, true); } else { - rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(text, (int) posX, (int) posY - 2, color.getRGB()); + rip.athena.client.utils.font.FontManager.getProductSansRegular(25).drawString(text, (int) posX, (int) posY - 2, color.getRGB()); } } else { if (color.getBlue() == 5 && color.getRed() == 5 && color.getGreen() == 5) { diff --git a/src/main/java/rip/athena/client/modules/impl/render/CustomText.java b/src/main/java/rip/athena/client/modules/impl/render/CustomText.java index f7bec3aa..08d3dba4 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/CustomText.java +++ b/src/main/java/rip/athena/client/modules/impl/render/CustomText.java @@ -1,12 +1,14 @@ package rip.athena.client.modules.impl.render; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.font.FontManager; import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -26,7 +28,7 @@ public class CustomText extends Module { @ConfigValue.Boolean(name = "Custom Font") private boolean customFont = false; - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Background") @@ -45,7 +47,7 @@ public class CustomText extends Module { private int width = 56; private int height = 18; public CustomText() { - super("Custom Text", Category.RENDER); + super("Custom Text", Category.RENDER, "Athena/gui/mods/customtext.png"); hud = new HUDElement("customtext", width, height) { @Override @@ -70,14 +72,19 @@ public class CustomText extends Module { int height = hud.getHeight(); if(backGround) { - if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + if(backgroundMode.equalsIgnoreCase("Modern")) { + if(Athena.INSTANCE.getThemeManager().getTheme().isTriColor()) { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getThirdColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor()); + } else { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, background.getRGB(), background.getRGB()); } } + float posY = hud.getY() + 2; float posX = hud.getX() + 9; @@ -86,9 +93,9 @@ public class CustomText extends Module { hud.setHeight((int)FontManager.baloo17.getHeight(customText) + 7); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, customText, (int) (posX), (int) posY + 1, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), customText, (int) (posX), (int) posY + 1, true, true); } else if(isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, customText, (int) (posX), (int) posY + 1, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), customText, (int) (posX), (int) posY + 1, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(customText,(int) (posX), (int)posY + 1, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/EntityHUD.java b/src/main/java/rip/athena/client/modules/impl/render/EntityHUD.java index ecabb179..2c555deb 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/EntityHUD.java +++ b/src/main/java/rip/athena/client/modules/impl/render/EntityHUD.java @@ -1,12 +1,14 @@ package rip.athena.client.modules.impl.render; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.font.FontManager; import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -17,7 +19,7 @@ import java.awt.*; */ public class EntityHUD extends Module { - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Background") @@ -43,7 +45,7 @@ public class EntityHUD extends Module { private int height = 18; public EntityHUD() { - super("Entity HUD", Category.RENDER); + super("Entity HUD", Category.RENDER, "Athena/gui/mods/entityhud.png"); hud = new HUDElement("entityhud", width, height) { @Override @@ -71,9 +73,9 @@ public class EntityHUD extends Module { if(backGround) { if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, background.getRGB(), background.getRGB()); } @@ -87,9 +89,9 @@ public class EntityHUD extends Module { hud.setHeight((int)FontManager.baloo17.getHeight(string) + 7); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY, true, true); } else if(isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string,(int) (posX), (int)posY, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java b/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java index a4f0e3d3..b2b80b85 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java +++ b/src/main/java/rip/athena/client/modules/impl/render/FPSMod.java @@ -1,5 +1,6 @@ package rip.athena.client.modules.impl.render; +import net.minecraft.client.renderer.GlStateManager; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import rip.athena.client.Athena; @@ -10,12 +11,16 @@ import rip.athena.client.events.types.render.RenderType; import rip.athena.client.font.FontManager; import rip.athena.client.font.FontUtils; import rip.athena.client.gui.hud.HUDElement; +import rip.athena.client.gui.menu.AthenaMenu; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; +import static org.lwjgl.opengl.GL11.GL_GREATER; + /** * @author Athena Development * @project Athena-Client @@ -23,7 +28,7 @@ import java.awt.*; */ public class FPSMod extends Module { - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Background") @@ -77,9 +82,13 @@ public class FPSMod extends Module { if(backGround) { if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + if(Athena.INSTANCE.getThemeManager().getTheme().isTriColor()) { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getThirdColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor()); + } else { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColorWave().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, background.getRGB(), background.getRGB()); } @@ -93,11 +102,13 @@ public class FPSMod extends Module { hud.setHeight((int)FontManager.baloo17.getHeight(string) + 7); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY + 1, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY + 1, true, true); } else if(isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY + 1, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY + 1, false, true); } else { - rip.athena.client.utils.font.FontManager.getPoppinsRegular(25).drawString(string,(int) (posX), (int)posY + 3, color.getRGB()); + rip.athena.client.utils.font.FontManager.getProductSansRegular(25).drawString(string,(int) (posX) + 1, (int)posY + 2, color.getRGB()); + + //rip.athena.client.utils.font.FontManager.getPoppinsRegular(25).drawString(string,(int) (posX), (int)posY + 3, color.getRGB()); //rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string,(int) (posX), (int)posY + 1, color.getRGB()); } } else { diff --git a/src/main/java/rip/athena/client/modules/impl/render/Keystrokes.java b/src/main/java/rip/athena/client/modules/impl/render/Keystrokes.java index fe1ffa89..bede8b1d 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/Keystrokes.java +++ b/src/main/java/rip/athena/client/modules/impl/render/Keystrokes.java @@ -356,9 +356,9 @@ public class Keystrokes extends Module { public void drawString(String text, float posX, float posY, Color color) { if (this.isCustomFont) { if (isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, text, (int)posX + 1, (int)posY, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), text, (int)posX + 1, (int)posY, true, true); } else if (isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, text, (int)posX + 1, (int)posY, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), text, (int)posX + 1, (int)posY, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(text, (int)posX + 1, (int)posY, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/MemoryUsage.java b/src/main/java/rip/athena/client/modules/impl/render/MemoryUsage.java index 74d5d62d..ecd126a4 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/MemoryUsage.java +++ b/src/main/java/rip/athena/client/modules/impl/render/MemoryUsage.java @@ -1,12 +1,14 @@ package rip.athena.client.modules.impl.render; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.font.FontManager; import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -19,7 +21,7 @@ public class MemoryUsage extends Module { @ConfigValue.Boolean(name = "Percentage", description = "Show memory usage in percentage.") private boolean percentage = false; - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Background") @@ -81,16 +83,15 @@ public class MemoryUsage extends Module { if(this.percentage) { string = "Memory: " + percentage + "%"; } - int width = hud.getWidth(); int height = hud.getHeight(); if(backGround) { if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, background.getRGB(), background.getRGB()); } @@ -104,9 +105,9 @@ public class MemoryUsage extends Module { hud.setHeight((int)FontManager.baloo17.getHeight(string) + 7); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY, true, true); } else if(isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, string, (int) (posX), (int) posY, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), string, (int) (posX), (int) posY, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(string,(int) (posX), (int)posY, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/PotCounter.java b/src/main/java/rip/athena/client/modules/impl/render/PotCounter.java index 361e196a..f4aebf00 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/PotCounter.java +++ b/src/main/java/rip/athena/client/modules/impl/render/PotCounter.java @@ -6,12 +6,14 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.FoodStats; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.config.ConfigValue; import rip.athena.client.font.FontManager; import rip.athena.client.gui.hud.HUDElement; import rip.athena.client.modules.Category; import rip.athena.client.modules.Module; import rip.athena.client.utils.render.DrawUtils; +import rip.athena.client.utils.render.RoundedUtils; import java.awt.*; @@ -25,7 +27,7 @@ public class PotCounter extends Module { @ConfigValue.Color(name = "Color") private Color color = Color.WHITE; - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") private String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Background") @@ -94,10 +96,14 @@ public class PotCounter extends Module { int height = hud.getHeight(); if(background) { - if(backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(hud.getX() + 1, hud.getY() + 1, hud.getX() + width - 1, hud.getY() + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + if(backgroundMode.equalsIgnoreCase("Modern")) { + if(Athena.INSTANCE.getThemeManager().getTheme().isTriColor()) { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getThirdColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor()); + } else { + RoundedUtils.drawGradientRound(hud.getX(), hud.getY(), hud.getWidth(), hud.getHeight(), 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } + } else if (backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.drawGradientRect(hud.getX(), hud.getY(), hud.getX() + width, hud.getY() + height, backgroundColor.getRGB(), backgroundColor.getRGB()); } @@ -111,9 +117,9 @@ public class PotCounter extends Module { hud.setHeight((int) (FontManager.baloo17.getHeight(str) + 7)); if(isUsingStaticChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, str, (int) posX, (int) posY + 1, true, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), str, (int) posX, (int) posY + 1, true, true); } else if (isUsingWaveChroma) { - DrawUtils.drawCustomFontChromaString(FontManager.baloo17, str, (int) posX, (int) posY + 1, false, true); + DrawUtils.drawCustomFontChromaString(rip.athena.client.utils.font.FontManager.getProductSansRegular(25), str, (int) posX, (int) posY + 1, false, true); } else { rip.athena.client.utils.font.FontManager.getProductSansRegular(30).drawString(str, (int) posX, (int) posY + 1, color.getRGB()); } diff --git a/src/main/java/rip/athena/client/modules/impl/render/TPS.java b/src/main/java/rip/athena/client/modules/impl/render/TPS.java index 5d4ae8f4..99bf0db6 100644 --- a/src/main/java/rip/athena/client/modules/impl/render/TPS.java +++ b/src/main/java/rip/athena/client/modules/impl/render/TPS.java @@ -21,7 +21,7 @@ import java.util.concurrent.CopyOnWriteArrayList; */ public class TPS extends Module { - @ConfigValue.List(name = "Display Mode", values = {"Modern", "Old"}, description = "Chose display of background") + @ConfigValue.List(name = "Display Mode", values = {"Modern", "Fade", "Old"}, description = "Chose display of background") public static String backgroundMode = "Modern"; @ConfigValue.Boolean(name = "Preset Color") @@ -148,14 +148,12 @@ public class TPS extends Module { } GL11.glColor4f(1F, 1F, 1F, 1F); GL11.glPopMatrix(); - - + float x = 14; float lastValue = 0; int i = 0; - if(mode.equalsIgnoreCase("Graph") ||mode.equalsIgnoreCase("Both")) { GL11.glPushMatrix(); diff --git a/src/main/java/rip/athena/client/theme/Theme.java b/src/main/java/rip/athena/client/theme/Theme.java new file mode 100644 index 00000000..f9003d03 --- /dev/null +++ b/src/main/java/rip/athena/client/theme/Theme.java @@ -0,0 +1,211 @@ +package rip.athena.client.theme; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import net.minecraft.util.EnumChatFormatting; +import rip.athena.client.utils.render.ColorUtil; + +import javax.vecmath.Vector2d; +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; + +import static net.minecraft.util.EnumChatFormatting.*; +import static net.minecraft.util.EnumChatFormatting.DARK_GREEN; + +/** + * @author Athena Development + * @project Athena-Client + * @date 6/8/2023 + */ + +@Getter +public enum Theme implements ColorUtil { + + ATHENA("Athena", new Color(7, 64, 170), new Color(4, 83, 97), DARK_PURPLE, false, KeyColors.PURPLE, KeyColors.RED), + AUBERGINE("Aubergine", new Color(170, 7, 107), new Color(97, 4, 95), DARK_PURPLE, false, KeyColors.PURPLE, KeyColors.RED), + AQUA("Aqua", new Color(185, 250, 255), new Color(79, 199, 200), EnumChatFormatting.AQUA, false, KeyColors.AQUA), + BANANA("Banana", new Color(253, 236, 177), new Color(255, 255, 255), YELLOW, false, KeyColors.YELLOW), + BLEND("Blend", new Color(71, 148, 253), new Color(71, 253, 160), EnumChatFormatting.AQUA, false, KeyColors.AQUA, KeyColors.LIME), + BLOSSOM("Blossom", new Color(226, 208, 249), new Color(49, 119, 115), DARK_AQUA, false, KeyColors.PINK, KeyColors.GRAY), + BUBBLEGUM("Bubblegum", new Color(243, 145, 216), new Color(152, 165, 243), LIGHT_PURPLE, false, KeyColors.PINK, KeyColors.PURPLE), + CANDY_CANE("Candy Cane", new Color(255, 255, 255), new Color(255, 0, 0), RED, false, KeyColors.RED), + CHERRY("Cherry", new Color(187, 55, 125), new Color(251, 211, 233), RED, false, KeyColors.RED, KeyColors.PURPLE, KeyColors.PINK), + CHRISTMAS("Christmas", new Color(255, 64, 64), new Color(255, 255, 255), new Color(64, 255, 64), RED, true, KeyColors.RED, KeyColors.LIME), + CORAL("Coral", new Color(244, 168, 150), new Color(52, 133, 151), DARK_AQUA, false, KeyColors.PINK, KeyColors.ORANGE, KeyColors.DARK_BLUE), + DIGITAL_HORIZON("Digital Horizon", new Color(95, 195, 228), new Color(229, 93, 135), EnumChatFormatting.AQUA, false, KeyColors.AQUA, KeyColors.RED, KeyColors.PINK), + EXPRESS("Express", new Color(173, 83, 137), new Color(60, 16, 83), DARK_PURPLE, false, KeyColors.PURPLE, KeyColors.PINK), + LIME_WATER("Lime Water", new Color(18, 255, 247), new Color(179, 255, 171), EnumChatFormatting.AQUA, false, KeyColors.AQUA, KeyColors.LIME), + LUSH("Lush", new Color(168, 224, 99), new Color(86, 171, 47), GREEN, false, KeyColors.LIME, KeyColors.DARK_GREEN), + HALOGEN("Halogen", new Color(255, 65, 108), new Color(255, 75, 43), RED, false, KeyColors.RED, KeyColors.ORANGE), + HYPER("Hyper", new Color(236, 110, 173), new Color(52, 148, 230), LIGHT_PURPLE, false, KeyColors.PINK, KeyColors.DARK_BLUE, KeyColors.AQUA), + MAGIC("Magic", new Color(74, 0, 224), new Color(142, 45, 226), BLUE, false, KeyColors.DARK_BLUE, KeyColors.PURPLE), + MAY("May", new Color(253, 219, 245), new Color(238, 79, 238), LIGHT_PURPLE, false, KeyColors.PINK, KeyColors.PURPLE), + ORANGE_JUICE("Orange Juice", new Color(252, 74, 26), new Color(247, 183, 51), GOLD, false, KeyColors.ORANGE, KeyColors.YELLOW), + PASTEL("Pastel", new Color(243, 155, 178), new Color(207, 196, 243), LIGHT_PURPLE, false, KeyColors.PINK), + PUMPKIN("Pumpkin", new Color(241, 166, 98), new Color(255, 216, 169), new Color(227, 139, 42), GOLD, true, KeyColors.ORANGE), + SATIN("Satin", new Color(215, 60, 67), new Color(140, 23, 39), RED, false, KeyColors.RED), + SNOWY_SKY("Snowy Sky", new Color(1, 171, 179), new Color(234, 234, 234), new Color(18, 232, 232), EnumChatFormatting.AQUA, true, KeyColors.AQUA, KeyColors.GRAY), + STEEL_FADE("Steel Fade", new Color(66, 134, 244), new Color(55, 59, 68), BLUE, false, KeyColors.DARK_BLUE, KeyColors.GRAY), + SUNDAE("Sundae", new Color(206, 74, 126), new Color(122, 44, 77), RED, false, KeyColors.PINK, KeyColors.PURPLE, KeyColors.RED), + SUNKIST("Sunkist", new Color(242, 201, 76), new Color(242, 153, 74), YELLOW,false, KeyColors.YELLOW, KeyColors.ORANGE), + WATER("Water", new Color(12, 232, 199), new Color(12, 163, 232), EnumChatFormatting.AQUA, false, KeyColors.AQUA, KeyColors.DARK_BLUE), + WINTER("Winter", Color.WHITE, Color.WHITE, GRAY, false, KeyColors.GRAY, KeyColors.GRAY), + WOOD("Wood", new Color(79, 109, 81), new Color(170, 139, 87), new Color(240, 235, 206), DARK_GREEN, true, KeyColors.DARK_GREEN); + + private final String theme; + private final Color firstColor, secondColor, thirdColor; + private final EnumChatFormatting chatAccentColor; + private final ArrayList keyColors; + private final boolean triColor; + + Theme(String theme, Color firstColor, Color secondColor, EnumChatFormatting chatAccentColor, boolean triColor, KeyColors... keyColors) { + this.theme = theme; + this.firstColor = this.thirdColor = firstColor; + this.secondColor = secondColor; + this.chatAccentColor = chatAccentColor; + this.keyColors = new ArrayList<>(Arrays.asList(keyColors)); + this.triColor = triColor; + } + Theme(String theme, Color firstColor, Color secondColor, Color thirdColor, EnumChatFormatting chatAccentColor, boolean triColor, KeyColors... keyColors) { + this.theme = theme; + this.firstColor = firstColor; + this.secondColor = secondColor; + this.thirdColor = thirdColor; + this.chatAccentColor = chatAccentColor; + this.keyColors = new ArrayList<>(Arrays.asList(keyColors)); + this.triColor = triColor; + } + + public Color getFirstColor() { + return firstColor; + } + + public Color getSecondColor() { + return secondColor; + } + + public Color getThirdColor() { + return thirdColor; + } + + /** + * Calculates the accent color at a specific screen point. Depending on the position on the screen, the + * accent has a slightly different color (blending between the two or three accent colors) to create an + * interesting gradient effect. + * + * @param screenCoordinates The screen coordinates to calculate the accent color for + * @return The determined target color for the provided coordinates, between the two or three accent colors of the theme + * @author Hazsi + * @since 10/11/2022 + */ + public Color getAccentColor(Vector2d screenCoordinates) { + + // Three color blending + if (this.triColor) { + double blendFactor = this.getBlendFactor(screenCoordinates); + + // Blend between first and second color + if (blendFactor <= 0.5) return ColorUtil.mixColors(getSecondColor(), getFirstColor(), blendFactor * 2D); + // Blend between second and third color + else return ColorUtil.mixColors(getThirdColor(), getSecondColor(), (blendFactor - 0.5) * 2D); + } + + // Two color blending + return ColorUtil.mixColors(getFirstColor(), getSecondColor(), getBlendFactor(screenCoordinates)); + } + + public double getWaveFactor(Vector2d screenCoordinates) { + double waveLength = 200.0; // Adjust this value to control the wavelength of the wave + double waveSpeed = 0.01; // Adjust this value to control the speed of the wave + double offsetX = (screenCoordinates.getX() / waveLength) - (System.currentTimeMillis() * waveSpeed); + double waveOffset = Math.sin(offsetX); + return (waveOffset + 1.0) / 2.0; // Normalize the wave offset to the range [0, 1] + } + + + private Color getColorFromWave(double waveFactor) { + // Interpolate between the first and second color using the wave factor + int red = (int) (getFirstColor().getRed() + waveFactor * (getSecondColor().getRed() - getFirstColor().getRed())); + int green = (int) (getFirstColor().getGreen() + waveFactor * (getSecondColor().getGreen() - getFirstColor().getGreen())); + int blue = (int) (getFirstColor().getBlue() + waveFactor * (getSecondColor().getBlue() - getFirstColor().getBlue())); + return new Color(red, green, blue); + } + + public Color getAccentColorWave(Vector2d screenCoordinates) { + double waveIntensity = 0.5; // Adjust this value to control the intensity of the wave + + double blendFactor = getBlendFactor(screenCoordinates) * waveIntensity; + + // Three color blending + if (this.triColor) { + // Calculate the interpolated color between the first and second colors + Color color1 = ColorUtil.mixColors(getSecondColor(), getFirstColor(), blendFactor); + + // Calculate the interpolated color between the second and third colors + Color color2 = ColorUtil.mixColors(getThirdColor(), getSecondColor(), blendFactor); + + // Blend between the two interpolated colors based on the blend factor + if (blendFactor <= 0.5) return ColorUtil.mixColors(color2, color1, blendFactor * 2.0); + else return ColorUtil.mixColors(color1, color2, (blendFactor - 0.5) * 2.0); + } + + // Two color blending + return ColorUtil.mixColors(getFirstColor(), getSecondColor(), blendFactor); + } + + public Color getAccentColorWave() { + return getAccentColorWave(new Vector2d(0.0, 0.0)); + } + + public Color getAccentColor() { + return getAccentColor(new Vector2d(0.0, 0.0)); + } + + @Deprecated + public int getRound() { + return 4; + } + + public Color getDropShadow() { + return new Color(0, 0, 0, 160); + } + + /** + * Determines the blending factor between the themes two accent colors at a specific screen coordinate + * + * @param screenCoordinates The screen coordinate to calculate the blend factor for + * @return The blending factor, in a range of [0, 1] (inclusive) between the two accent colors of the theme + * @author Hazsi + * @since 10/11/2022 + */ + public double getBlendFactor(Vector2d screenCoordinates) { + return Math.sin(System.currentTimeMillis() / 600.0D + + screenCoordinates.getX() * 0.005D + + screenCoordinates.getY() * 0.06D + ) * 0.5D + 0.5D; + } + + @Deprecated + public Color getBackgroundShade() { + return new Color(0, 0, 0, 100); + } + + @Getter + @AllArgsConstructor + public enum KeyColors { + RED(new Color(255, 50, 50)), + ORANGE(new Color(255, 128, 50)), + YELLOW(new Color(255, 255, 50)), + LIME(new Color(128, 255, 50)), + DARK_GREEN(new Color(50, 128, 50)), + AQUA(new Color(50, 200, 255)), + DARK_BLUE(new Color(50, 100, 200)), + PURPLE(new Color(128, 50, 255)), + PINK(new Color(255, 128, 255)), + GRAY(new Color(100, 100, 110)); + + private final Color color; + } + +} diff --git a/src/main/java/rip/athena/client/theme/ThemeManager.java b/src/main/java/rip/athena/client/theme/ThemeManager.java new file mode 100644 index 00000000..ae7f441b --- /dev/null +++ b/src/main/java/rip/athena/client/theme/ThemeManager.java @@ -0,0 +1,18 @@ +package rip.athena.client.theme; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author Athena Development + * @project Athena-Client + * @date 6/8/2023 + */ + +@Getter +@Setter +public class ThemeManager { + + private Theme theme = Theme.ATHENA; + +} diff --git a/src/main/java/rip/athena/client/utils/MathUtil.java b/src/main/java/rip/athena/client/utils/MathUtil.java new file mode 100644 index 00000000..9e4691e6 --- /dev/null +++ b/src/main/java/rip/athena/client/utils/MathUtil.java @@ -0,0 +1,92 @@ +package rip.athena.client.utils; + +import lombok.experimental.UtilityClass; +import net.minecraft.util.MathHelper; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.concurrent.ThreadLocalRandom; + +/** + * @author Patrick, Hazsi + * @since 11/17/2021 + */ +@UtilityClass +public class MathUtil { + + /** + * Method which returns a double between two input numbers + * + * @param min minimal number + * @param max maximal number + * @return random between both numbers + */ + public double getRandom(double min, double max) { + if (min == max) { + return min; + } else if (min > max) { + final double d = min; + min = max; + max = d; + } + return ThreadLocalRandom.current().nextDouble(min, max); + } + + public double round(final double value, final int places) { + final BigDecimal bigDecimal = BigDecimal.valueOf(value); + + return bigDecimal.setScale(places, RoundingMode.HALF_UP).doubleValue(); + } + + public double round(final double value, final int scale, final double inc) { + final double halfOfInc = inc / 2.0; + final double floored = Math.floor(value / inc) * inc; + + if (value >= floored + halfOfInc) { + return new BigDecimal(Math.ceil(value / inc) * inc) + .setScale(scale, RoundingMode.HALF_UP) + .doubleValue(); + } else { + return new BigDecimal(floored) + .setScale(scale, RoundingMode.HALF_UP) + .doubleValue(); + } + } + + public double roundWithSteps(final double value, final double steps) { + double a = ((Math.round(value / steps)) * steps); + a *= 1000; + a = (int) a; + a /= 1000; + return a; + } + + public double lerp(final double a, final double b, final double c) { + return a + c * (b - a); + } + + public float lerp(final float a, final float b, final float c) { + return a + c * (b - a); + } + + /** + * Gets the distance to the position. Args: x, y, z + */ + public double getDistance(final double x1, final double y1, final double z1, final double x2, final double y2, final double z2) { + final double d0 = x2 - x1; + final double d1 = y2 - y1; + final double d2 = z2 - z1; + return MathHelper.sqrt_double(d0 * d0 + d1 * d1 + d2 * d2); + } + + /** + * Clamps a number, n, to be within a specified range + * @param min The minimum permitted value of the input + * @param max The maximum permitted value of the input + * @param n The input number to clamp + * @return The input, bounded by the specified minimum and maximum values + */ + public double clamp(double min, double max, double n) { + return Math.max(min, Math.min(max, n)); + } +} \ No newline at end of file diff --git a/src/main/java/rip/athena/client/utils/file/FileHandler.java b/src/main/java/rip/athena/client/utils/file/FileHandler.java index 30e2e9a8..d90bdd34 100644 --- a/src/main/java/rip/athena/client/utils/file/FileHandler.java +++ b/src/main/java/rip/athena/client/utils/file/FileHandler.java @@ -58,7 +58,22 @@ public class FileHandler { return bytes; } - + + public static String readInputStream(InputStream inputStream) { + StringBuilder stringBuilder = new StringBuilder(); + + try { + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + String line; + while ((line = bufferedReader.readLine()) != null) + stringBuilder.append(line).append('\n'); + + } catch (Exception e) { + e.printStackTrace(); + } + return stringBuilder.toString(); + } + public String getContent(boolean ignoreComments) throws IOException { StringBuilder builder = new StringBuilder(); diff --git a/src/main/java/rip/athena/client/utils/render/ColorUtil.java b/src/main/java/rip/athena/client/utils/render/ColorUtil.java new file mode 100644 index 00000000..eb34cf2b --- /dev/null +++ b/src/main/java/rip/athena/client/utils/render/ColorUtil.java @@ -0,0 +1,83 @@ +package rip.athena.client.utils.render; + +import org.lwjgl.opengl.GL11; +import rip.athena.client.utils.MathUtil; + +import java.awt.*; + +public interface ColorUtil { + + /** + * Method which colors using a hex code + * + * @param hex used hex code + */ + static void glColor(final int hex) { + final float a = (hex >> 24 & 0xFF) / 255.0F; + final float r = (hex >> 16 & 0xFF) / 255.0F; + final float g = (hex >> 8 & 0xFF) / 255.0F; + final float b = (hex & 0xFF) / 255.0F; + GL11.glColor4f(r, g, b, a); + } + + /** + * Method which colors using a color + * + * @param color used color + */ + static void glColor(final Color color) { + GL11.glColor4f(color.getRed() / 255.0F, color.getGreen() / 255.0F, color.getBlue() / 255.0F, color.getAlpha() / 255.0F); + } + + static Color darker(final Color color, final float factor) { + return new Color(Math.max((int) (color.getRed() * factor), 0), + Math.max((int) (color.getGreen() * factor), 0), + Math.max((int) (color.getBlue() * factor), 0), + color.getAlpha()); + } + + static Color brighter(final Color color, final float factor) { + int red = color.getRed(); + int green = color.getGreen(); + int blue = color.getBlue(); + final int alpha = color.getAlpha(); + + final int i = (int) (1 / (1 - factor)); + if (red == 0 && green == 0 && blue == 0) { + return new Color(i, i, i, alpha); + } + + if (red > 0 && red < i) red = i; + if (green > 0 && green < i) green = i; + if (blue > 0 && blue < i) blue = i; + + return new Color(Math.min((int) (red / factor), 255), + Math.min((int) (green / factor), 255), + Math.min((int) (blue / factor), 255), + alpha); + } + + static Color withRed(final Color color, final int red) { + return new Color(red, color.getGreen(), color.getBlue()); + } + + static Color withGreen(final Color color, final int green) { + return new Color(color.getRed(), green, color.getBlue()); + } + + static Color withBlue(final Color color, final int blue) { + return new Color(color.getRed(), color.getGreen(), blue); + } + + static Color withAlpha(final Color color, final int alpha) { + return new Color(color.getRed(), color.getGreen(), color.getBlue(), (int) MathUtil.clamp(0, 255, alpha)); + } + + static Color mixColors(final Color color1, final Color color2, final double percent) { + final double inverse_percent = 1.0 - percent; + final int redPart = (int) (color1.getRed() * percent + color2.getRed() * inverse_percent); + final int greenPart = (int) (color1.getGreen() * percent + color2.getGreen() * inverse_percent); + final int bluePart = (int) (color1.getBlue() * percent + color2.getBlue() * inverse_percent); + return new Color(redPart, greenPart, bluePart); + } +} diff --git a/src/main/java/rip/athena/client/utils/render/DrawUtils.java b/src/main/java/rip/athena/client/utils/render/DrawUtils.java index ce5913f9..146dec2b 100644 --- a/src/main/java/rip/athena/client/utils/render/DrawUtils.java +++ b/src/main/java/rip/athena/client/utils/render/DrawUtils.java @@ -12,9 +12,15 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL13; import rip.athena.client.font.FontUtils; +import rip.athena.client.utils.font.Font; +import rip.athena.client.utils.font.FontManager; +import rip.athena.client.utils.shader.ShaderUtil; import java.awt.*; +import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA; +import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA; + /** * @author Athena Development * @project Athena-Client @@ -22,6 +28,8 @@ import java.awt.*; */ public enum DrawUtils { + + BLACK(-16711423), BLUE(-12028161), DARKBLUE(-12621684), @@ -47,6 +55,41 @@ public enum DrawUtils { this.c = co; } + private static final ShaderUtil gradientMaskShader = new ShaderUtil("gradientMask"); + + public static void applyGradientHorizontal(float x, float y, float width, float height, float alpha, Color left, Color right, Runnable content) { + applyGradient(x, y, width, height, alpha, left, left, right, right, content); + } + + public static void applyGradient(float x, float y, float width, float height, float alpha, Color bottomLeft, Color topLeft, Color bottomRight, Color topRight, Runnable content) { + GlStateManager.color(1, 1, 1, 1); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + gradientMaskShader.init(); + + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + + gradientMaskShader.setUniformf("location", x * sr.getScaleFactor(), (Minecraft.getMinecraft().displayHeight - (height * sr.getScaleFactor())) - (y * sr.getScaleFactor())); + gradientMaskShader.setUniformf("rectSize", width * sr.getScaleFactor(), height * sr.getScaleFactor()); + gradientMaskShader.setUniformf("alpha", alpha); + gradientMaskShader.setUniformi("tex", 0); + // Bottom Left + gradientMaskShader.setUniformf("color1", bottomLeft.getRed() / 255f, bottomLeft.getGreen() / 255f, bottomLeft.getBlue() / 255f); + //Top left + gradientMaskShader.setUniformf("color2", topLeft.getRed() / 255f, topLeft.getGreen() / 255f, topLeft.getBlue() / 255f); + //Bottom Right + gradientMaskShader.setUniformf("color3", bottomRight.getRed() / 255f, bottomRight.getGreen() / 255f, bottomRight.getBlue() / 255f); + //Top Right + gradientMaskShader.setUniformf("color4", topRight.getRed() / 255f, topRight.getGreen() / 255f, topRight.getBlue() / 255f); + + //Apply the gradient to whatever is put here + content.run(); + + gradientMaskShader.unload(); + GlStateManager.disableBlend(); + } + public static void displayFilledRectangle(int x1, int y1, int x2, int y2, Color color) { GL11.glPushMatrix(); @@ -243,7 +286,7 @@ public enum DrawUtils { GL11.glPopMatrix(); } - public static void drawCustomFontChromaString(FontUtils font, String string, int x, int y, boolean static_chroma, boolean shadow) { + public static void drawCustomFontChromaString(Font font, String string, int x, int y, boolean static_chroma, boolean shadow) { Minecraft mc = Minecraft.getMinecraft(); if (static_chroma) { @@ -256,7 +299,7 @@ public enum DrawUtils { int i = Color.HSBtoRGB(l % (int) 2000.0F / 2000.0F, 0.8F, 0.8F); String tmp = String.valueOf(textChar); font.drawString(tmp, xTmp, y, i); - xTmp += font.getStringWidth(tmp); + xTmp += font.width(tmp); } } } diff --git a/src/main/java/rip/athena/client/utils/render/HUDUtil.java b/src/main/java/rip/athena/client/utils/render/HUDUtil.java index e713fd42..8f51f7f7 100644 --- a/src/main/java/rip/athena/client/utils/render/HUDUtil.java +++ b/src/main/java/rip/athena/client/utils/render/HUDUtil.java @@ -9,6 +9,7 @@ import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import org.lwjgl.opengl.GL11; +import rip.athena.client.Athena; import rip.athena.client.font.FontManager; import rip.athena.client.modules.impl.render.TPS; @@ -25,9 +26,9 @@ public class HUDUtil { if(bG) { if(TPS.backgroundMode.equalsIgnoreCase("Modern")) { - DrawUtils.drawRoundedRect(x, y, x + width, y + height, 4.0f, new Color(50, 50, 50, 255).getRGB()); - DrawUtils.drawRoundedRect(x + 1, y + 1, x + width - 1, y + height - 1, 4.0f, new Color(35, 35, 35, 255).getRGB()); - + RoundedUtils.drawGradientRound(x, y, width, height, 6, Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getFirstColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor(), Athena.INSTANCE.getThemeManager().getTheme().getSecondColor()); + } else if (TPS.backgroundMode.equalsIgnoreCase("Fade")) { + RoundedUtils.drawRoundedRect(x, y, x + width, y + height, 8.0f, Athena.INSTANCE.getThemeManager().getTheme().getAccentColor().getRGB()); } else { DrawUtils.displayFilledRectangle(x, y, x+width, y+height, bColor); } diff --git a/src/main/java/rip/athena/client/utils/render/RoundedUtils.java b/src/main/java/rip/athena/client/utils/render/RoundedUtils.java index f3099ab1..170245f8 100644 --- a/src/main/java/rip/athena/client/utils/render/RoundedUtils.java +++ b/src/main/java/rip/athena/client/utils/render/RoundedUtils.java @@ -2,15 +2,52 @@ package rip.athena.client.utils.render; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import org.lwjgl.opengl.GL11; +import rip.athena.client.utils.shader.ShaderUtil; + +import java.awt.*; + import static org.lwjgl.opengl.GL11.*; public class RoundedUtils { final static Minecraft mc = Minecraft.getMinecraft(); final static FontRenderer fr = mc.fontRendererObj; + private static final ShaderUtil roundedGradientShader = new ShaderUtil("roundedRectGradient"); + + public static void drawGradientRound(float x, float y, float width, float height, float radius, Color bottomLeft, Color topLeft, Color bottomRight, Color topRight) { + GlStateManager.enableAlpha(); + GlStateManager.alphaFunc(GL_GREATER, (float) (0 * .01)); + GlStateManager.color(1, 1, 1, 1); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + roundedGradientShader.init(); + setupRoundedRectUniforms(x, y, width, height, radius, roundedGradientShader); + //Top left + roundedGradientShader.setUniformf("color1", topLeft.getRed() / 255f, topLeft.getGreen() / 255f, topLeft.getBlue() / 255f, topLeft.getAlpha() / 255f); + // Bottom Left + roundedGradientShader.setUniformf("color2", bottomLeft.getRed() / 255f, bottomLeft.getGreen() / 255f, bottomLeft.getBlue() / 255f, bottomLeft.getAlpha() / 255f); + //Top Right + roundedGradientShader.setUniformf("color3", topRight.getRed() / 255f, topRight.getGreen() / 255f, topRight.getBlue() / 255f, topRight.getAlpha() / 255f); + //Bottom Right + roundedGradientShader.setUniformf("color4", bottomRight.getRed() / 255f, bottomRight.getGreen() / 255f, bottomRight.getBlue() / 255f, bottomRight.getAlpha() / 255f); + ShaderUtil.drawQuads(x - 1, y - 1, width + 2, height + 2); + roundedGradientShader.unload(); + GlStateManager.disableBlend(); + } + + private static void setupRoundedRectUniforms(float x, float y, float width, float height, float radius, ShaderUtil roundedTexturedShader) { + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + roundedTexturedShader.setUniformf("location", x * sr.getScaleFactor(), + (Minecraft.getMinecraft().displayHeight - (height * sr.getScaleFactor())) - (y * sr.getScaleFactor())); + roundedTexturedShader.setUniformf("rectSize", width * sr.getScaleFactor(), height * sr.getScaleFactor()); + roundedTexturedShader.setUniformf("radius", radius * sr.getScaleFactor()); + } + public static void enableGL2D() { glDisable(GL_DEPTH_TEST); glEnable(GL_BLEND); @@ -112,12 +149,12 @@ public class RoundedUtils { glVertex2d(x1 - radius + Math.sin(i * Math.PI / 180.0D) * radius, y + radius + Math.cos(i * Math.PI / 180.0D) * radius); glEnd(); glEnable(GL_TEXTURE_2D); - glDisable(GL_BLEND); + //glDisable(GL_BLEND); glDisable(GL_LINE_SMOOTH); glDisable(GL_BLEND); glDisable(GL_LINE_SMOOTH); glScaled(2.0D, 2.0D, 2.0D); - glEnable(GL_BLEND); + //glEnable(GL_BLEND); glPopAttrib(); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); } diff --git a/src/main/java/rip/athena/client/utils/shader/ShaderUtil.java b/src/main/java/rip/athena/client/utils/shader/ShaderUtil.java new file mode 100644 index 00000000..ee2a5846 --- /dev/null +++ b/src/main/java/rip/athena/client/utils/shader/ShaderUtil.java @@ -0,0 +1,539 @@ +package rip.athena.client.utils.shader; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.util.ResourceLocation; +import rip.athena.client.utils.file.FileHandler; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +import static net.minecraft.client.renderer.OpenGlHelper.glGetProgrami; +import static net.minecraft.client.renderer.OpenGlHelper.glGetShaderi; +import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.opengl.GL20.*; +import static org.lwjgl.opengl.GL20.GL_LINK_STATUS; + +/** + * @author Athena Development + * @project Athena-Client + * @date 6/8/2023 + */ +public class ShaderUtil { + + private final int programID; + + public ShaderUtil(String fragmentShaderLoc, String vertexShaderLoc) { + int program = glCreateProgram(); + try { + int fragmentShaderID; + switch (fragmentShaderLoc) { + case "kawaseUpGlow": + fragmentShaderID = createShader(new ByteArrayInputStream(kawaseUpGlow.getBytes()), GL_FRAGMENT_SHADER); + break; + case "glow": + fragmentShaderID = createShader(new ByteArrayInputStream(glowShader.getBytes()), GL_FRAGMENT_SHADER); + break; + case "chams": + fragmentShaderID = createShader(new ByteArrayInputStream(chams.getBytes()), GL_FRAGMENT_SHADER); + break; + case "roundRectTexture": + fragmentShaderID = createShader(new ByteArrayInputStream(roundRectTexture.getBytes()), GL_FRAGMENT_SHADER); + break; + case "roundRectOutline": + fragmentShaderID = createShader(new ByteArrayInputStream(roundRectOutline.getBytes()), GL_FRAGMENT_SHADER); + break; + case "kawaseUpBloom": + fragmentShaderID = createShader(new ByteArrayInputStream(kawaseUpBloom.getBytes()), GL_FRAGMENT_SHADER); + break; + case "kawaseDownBloom": + fragmentShaderID = createShader(new ByteArrayInputStream(kawaseDownBloom.getBytes()), GL_FRAGMENT_SHADER); + break; + case "kawaseUp": + fragmentShaderID = createShader(new ByteArrayInputStream(kawaseUp.getBytes()), GL_FRAGMENT_SHADER); + break; + case "kawaseDown": + fragmentShaderID = createShader(new ByteArrayInputStream(kawaseDown.getBytes()), GL_FRAGMENT_SHADER); + break; + case "gradientMask": + fragmentShaderID = createShader(new ByteArrayInputStream(gradientMask.getBytes()), GL_FRAGMENT_SHADER); + break; + case "mask": + fragmentShaderID = createShader(new ByteArrayInputStream(mask.getBytes()), GL_FRAGMENT_SHADER); + break; + case "gradient": + fragmentShaderID = createShader(new ByteArrayInputStream(gradient.getBytes()), GL_FRAGMENT_SHADER); + break; + case "roundedRect": + fragmentShaderID = createShader(new ByteArrayInputStream(roundedRect.getBytes()), GL_FRAGMENT_SHADER); + break; + case "roundedRectGradient": + fragmentShaderID = createShader(new ByteArrayInputStream(roundedRectGradient.getBytes()), GL_FRAGMENT_SHADER); + break; + default: + fragmentShaderID = createShader(Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation(fragmentShaderLoc)).getInputStream(), GL_FRAGMENT_SHADER); + break; + } + glAttachShader(program, fragmentShaderID); + + int vertexShaderID = createShader(Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation(vertexShaderLoc)).getInputStream(), GL_VERTEX_SHADER); + glAttachShader(program, vertexShaderID); + + + } catch (IOException e) { + e.printStackTrace(); + } + + glLinkProgram(program); + int status = glGetProgrami(program, GL_LINK_STATUS); + + if (status == 0) { + throw new IllegalStateException("Shader failed to link!"); + } + this.programID = program; + } + + public ShaderUtil(String fragmentShadersrc, boolean notUsed) { + int program = glCreateProgram(); + int fragmentShaderID = createShader(new ByteArrayInputStream(fragmentShadersrc.getBytes()), GL_FRAGMENT_SHADER); + int vertexShaderID = 0; + try { + vertexShaderID = createShader(Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation("Athena/shaders/vertex.vsh")).getInputStream(), GL_VERTEX_SHADER); + } catch (IOException e) { + throw new RuntimeException(e); + } + + glAttachShader(program, fragmentShaderID); + glAttachShader(program, vertexShaderID); + + + + glLinkProgram(program); + int status = glGetProgrami(program, GL_LINK_STATUS); + if (status == 0) { + throw new IllegalStateException("Shader failed to link!"); + } + this.programID = program; + + } + + public ShaderUtil(String fragmentShaderLoc) { + this(fragmentShaderLoc, "Athena/shaders/vertex.vsh"); + } + + public void init() { + glUseProgram(programID); + } + + public void unload() { + glUseProgram(0); + } + + public int getUniform(String name) { + return glGetUniformLocation(programID, name); + } + + + public void setUniformf(String name, float... args) { + int loc = glGetUniformLocation(programID, name); + switch (args.length) { + case 1: + glUniform1f(loc, args[0]); + break; + case 2: + glUniform2f(loc, args[0], args[1]); + break; + case 3: + glUniform3f(loc, args[0], args[1], args[2]); + break; + case 4: + glUniform4f(loc, args[0], args[1], args[2], args[3]); + break; + } + } + + public void setUniformi(String name, int... args) { + int loc = glGetUniformLocation(programID, name); + if (args.length > 1) glUniform2i(loc, args[0], args[1]); + else glUniform1i(loc, args[0]); + } + + public static void drawQuads(float x, float y, float width, float height) { + glBegin(GL_QUADS); + glTexCoord2f(0, 0); + glVertex2f(x, y); + glTexCoord2f(0, 1); + glVertex2f(x, y + height); + glTexCoord2f(1, 1); + glVertex2f(x + width, y + height); + glTexCoord2f(1, 0); + glVertex2f(x + width, y); + glEnd(); + } + + public static void drawQuads() { + ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft()); + float width = (float) sr.getScaledWidth_double(); + float height = (float) sr.getScaledHeight_double(); + glBegin(GL_QUADS); + glTexCoord2f(0, 1); + glVertex2f(0, 0); + glTexCoord2f(0, 0); + glVertex2f(0, height); + glTexCoord2f(1, 0); + glVertex2f(width, height); + glTexCoord2f(1, 1); + glVertex2f(width, 0); + glEnd(); + } + + public static void drawQuads(float width, float height) { + glBegin(GL_QUADS); + glTexCoord2f(0, 1); + glVertex2f(0, 0); + glTexCoord2f(0, 0); + glVertex2f(0, height); + glTexCoord2f(1, 0); + glVertex2f(width, height); + glTexCoord2f(1, 1); + glVertex2f(width, 0); + glEnd(); + } + + private int createShader(InputStream inputStream, int shaderType) { + int shader = glCreateShader(shaderType); + glShaderSource(shader, FileHandler.readInputStream(inputStream)); + glCompileShader(shader); + + + if (glGetShaderi(shader, GL_COMPILE_STATUS) == 0) { + System.out.println(glGetShaderInfoLog(shader, 4096)); + throw new IllegalStateException(String.format("Shader (%s) failed to compile!", shaderType)); + } + + return shader; + } + + private String kawaseUpGlow = "#version 120\n" + + "\n" + + "uniform sampler2D inTexture, textureToCheck;\n" + + "uniform vec2 halfpixel, offset, iResolution;\n" + + "uniform bool check;\n" + + "uniform float lastPass;\n" + + "uniform float exposure;\n" + + "\n" + + "void main() {\n" + + " if(check && texture2D(textureToCheck, gl_TexCoord[0].st).a != 0.0) discard;\n" + + " vec2 uv = vec2(gl_FragCoord.xy / iResolution);\n" + + "\n" + + " vec4 sum = texture2D(inTexture, uv + vec2(-halfpixel.x * 2.0, 0.0) * offset);\n" + + " sum.rgb *= sum.a;\n" + + " vec4 smpl1 = texture2D(inTexture, uv + vec2(-halfpixel.x, halfpixel.y) * offset);\n" + + " smpl1.rgb *= smpl1.a;\n" + + " sum += smpl1 * 2.0;\n" + + " vec4 smp2 = texture2D(inTexture, uv + vec2(0.0, halfpixel.y * 2.0) * offset);\n" + + " smp2.rgb *= smp2.a;\n" + + " sum += smp2;\n" + + " vec4 smp3 = texture2D(inTexture, uv + vec2(halfpixel.x, halfpixel.y) * offset);\n" + + " smp3.rgb *= smp3.a;\n" + + " sum += smp3 * 2.0;\n" + + " vec4 smp4 = texture2D(inTexture, uv + vec2(halfpixel.x * 2.0, 0.0) * offset);\n" + + " smp4.rgb *= smp4.a;\n" + + " sum += smp4;\n" + + " vec4 smp5 = texture2D(inTexture, uv + vec2(halfpixel.x, -halfpixel.y) * offset);\n" + + " smp5.rgb *= smp5.a;\n" + + " sum += smp5 * 2.0;\n" + + " vec4 smp6 = texture2D(inTexture, uv + vec2(0.0, -halfpixel.y * 2.0) * offset);\n" + + " smp6.rgb *= smp6.a;\n" + + " sum += smp6;\n" + + " vec4 smp7 = texture2D(inTexture, uv + vec2(-halfpixel.x, -halfpixel.y) * offset);\n" + + " smp7.rgb *= smp7.a;\n" + + " sum += smp7 * 2.0;\n" + + " vec4 result = sum / 12.0;\n" + + " gl_FragColor = vec4(result.rgb / result.a, mix(result.a, 1.0 - exp(-result.a * exposure), step(0.0, lastPass)));\n" + + "}"; + + private String glowShader = "#version 120\n" + + "\n" + + "uniform sampler2D textureIn, textureToCheck;\n" + + "uniform vec2 texelSize, direction;\n" + + "uniform vec3 color;\n" + + "uniform bool avoidTexture;\n" + + "uniform float exposure, radius;\n" + + "uniform float weights[256];\n" + + "\n" + + "#define offset direction * texelSize\n" + + "\n" + + "void main() {\n" + + " if (direction.y == 1 && avoidTexture) {\n" + + " if (texture2D(textureToCheck, gl_TexCoord[0].st).a != 0.0) discard;\n" + + " }\n" + + " vec4 innerColor = texture2D(textureIn, gl_TexCoord[0].st);\n" + + " innerColor.rgb *= innerColor.a;\n" + + " innerColor *= weights[0];\n" + + " for (float r = 1.0; r <= radius; r++) {\n" + + " vec4 colorCurrent1 = texture2D(textureIn, gl_TexCoord[0].st + offset * r);\n" + + " vec4 colorCurrent2 = texture2D(textureIn, gl_TexCoord[0].st - offset * r);\n" + + "\n" + + " colorCurrent1.rgb *= colorCurrent1.a;\n" + + " colorCurrent2.rgb *= colorCurrent2.a;\n" + + "\n" + + " innerColor += (colorCurrent1 + colorCurrent2) * weights[int(r)];\n" + + " }\n" + + "\n" + + " gl_FragColor = vec4(innerColor.rgb / innerColor.a, mix(innerColor.a, 1.0 - exp(-innerColor.a * exposure), step(0.0, direction.y)));\n" + + "}\n"; + + private String chams = + "#version 120\n" + + "\n" + + "uniform sampler2D textureIn;\n" + + "uniform vec4 color;\n" + + "void main() {\n" + + " float alpha = texture2D(textureIn, gl_TexCoord[0].st).a;\n" + + + " gl_FragColor = vec4(color.rgb, color.a * mix(0.0, alpha, step(0.0, alpha)));\n" + + "}\n"; + + private String roundRectTexture = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform sampler2D textureIn;\n" + + "uniform float radius, alpha;\n" + + "\n" + + "float roundedBoxSDF(vec2 centerPos, vec2 size, float radius) {\n" + + " return length(max(abs(centerPos) -size, 0.)) - radius;\n" + + "}\n" + + "\n" + + "\n" + + "void main() {\n" + + " float distance = roundedBoxSDF((rectSize * .5) - (gl_TexCoord[0].st * rectSize), (rectSize * .5) - radius - 1., radius);\n" + + " float smoothedAlpha = (1.0-smoothstep(0.0, 2.0, distance)) * alpha;\n" + + " gl_FragColor = vec4(texture2D(textureIn, gl_TexCoord[0].st).rgb, smoothedAlpha);\n" + + "}"; + + private String roundRectOutline = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform vec4 color, outlineColor;\n" + + "uniform float radius, outlineThickness;\n" + + "\n" + + "float roundedSDF(vec2 centerPos, vec2 size, float radius) {\n" + + " return length(max(abs(centerPos) - size + radius, 0.0)) - radius;\n" + + "}\n" + + "\n" + + "void main() {\n" + + " float distance = roundedSDF(gl_FragCoord.xy - location - (rectSize * .5), (rectSize * .5) + (outlineThickness *.5) - 1.0, radius);\n" + + "\n" + + " float blendAmount = smoothstep(0., 2., abs(distance) - (outlineThickness * .5));\n" + + "\n" + + " vec4 insideColor = (distance < 0.) ? color : vec4(outlineColor.rgb, 0.0);\n" + + " gl_FragColor = mix(outlineColor, insideColor, blendAmount);\n" + + "\n" + + "}"; + + private String kawaseUpBloom = "#version 120\n" + + "\n" + + "uniform sampler2D inTexture, textureToCheck;\n" + + "uniform vec2 halfpixel, offset, iResolution;\n" + + "uniform int check;\n" + + "\n" + + "void main() {\n" + + " // if(check && texture2D(textureToCheck, gl_TexCoord[0].st).a > 0.0) discard;\n" + + " vec2 uv = vec2(gl_FragCoord.xy / iResolution);\n" + + "\n" + + " vec4 sum = texture2D(inTexture, uv + vec2(-halfpixel.x * 2.0, 0.0) * offset);\n" + + " sum.rgb *= sum.a;\n" + + " vec4 smpl1 = texture2D(inTexture, uv + vec2(-halfpixel.x, halfpixel.y) * offset);\n" + + " smpl1.rgb *= smpl1.a;\n" + + " sum += smpl1 * 2.0;\n" + + " vec4 smp2 = texture2D(inTexture, uv + vec2(0.0, halfpixel.y * 2.0) * offset);\n" + + " smp2.rgb *= smp2.a;\n" + + " sum += smp2;\n" + + " vec4 smp3 = texture2D(inTexture, uv + vec2(halfpixel.x, halfpixel.y) * offset);\n" + + " smp3.rgb *= smp3.a;\n" + + " sum += smp3 * 2.0;\n" + + " vec4 smp4 = texture2D(inTexture, uv + vec2(halfpixel.x * 2.0, 0.0) * offset);\n" + + " smp4.rgb *= smp4.a;\n" + + " sum += smp4;\n" + + " vec4 smp5 = texture2D(inTexture, uv + vec2(halfpixel.x, -halfpixel.y) * offset);\n" + + " smp5.rgb *= smp5.a;\n" + + " sum += smp5 * 2.0;\n" + + " vec4 smp6 = texture2D(inTexture, uv + vec2(0.0, -halfpixel.y * 2.0) * offset);\n" + + " smp6.rgb *= smp6.a;\n" + + " sum += smp6;\n" + + " vec4 smp7 = texture2D(inTexture, uv + vec2(-halfpixel.x, -halfpixel.y) * offset);\n" + + " smp7.rgb *= smp7.a;\n" + + " sum += smp7 * 2.0;\n" + + " vec4 result = sum / 12.0;\n" + + " gl_FragColor = vec4(result.rgb / result.a, mix(result.a, result.a * (1.0 - texture2D(textureToCheck, gl_TexCoord[0].st).a),check));\n" + + "}"; + + private String kawaseDownBloom = "#version 120\n" + + "\n" + + "uniform sampler2D inTexture;\n" + + "uniform vec2 offset, halfpixel, iResolution;\n" + + "\n" + + "void main() {\n" + + " vec2 uv = vec2(gl_FragCoord.xy / iResolution);\n" + + " vec4 sum = texture2D(inTexture, gl_TexCoord[0].st);\n" + + " sum.rgb *= sum.a;\n" + + " sum *= 4.0;\n" + + " vec4 smp1 = texture2D(inTexture, uv - halfpixel.xy * offset);\n" + + " smp1.rgb *= smp1.a;\n" + + " sum += smp1;\n" + + " vec4 smp2 = texture2D(inTexture, uv + halfpixel.xy * offset);\n" + + " smp2.rgb *= smp2.a;\n" + + " sum += smp2;\n" + + " vec4 smp3 = texture2D(inTexture, uv + vec2(halfpixel.x, -halfpixel.y) * offset);\n" + + " smp3.rgb *= smp3.a;\n" + + " sum += smp3;\n" + + " vec4 smp4 = texture2D(inTexture, uv - vec2(halfpixel.x, -halfpixel.y) * offset);\n" + + " smp4.rgb *= smp4.a;\n" + + " sum += smp4;\n" + + " vec4 result = sum / 8.0;\n" + + " gl_FragColor = vec4(result.rgb / result.a, result.a);\n" + + "}"; + + private String kawaseUp = "#version 120\n" + + "\n" + + "uniform sampler2D inTexture, textureToCheck;\n" + + "uniform vec2 halfpixel, offset, iResolution;\n" + + "uniform int check;\n" + + "\n" + + "void main() {\n" + + " vec2 uv = vec2(gl_FragCoord.xy / iResolution);\n" + + " vec4 sum = texture2D(inTexture, uv + vec2(-halfpixel.x * 2.0, 0.0) * offset);\n" + + " sum += texture2D(inTexture, uv + vec2(-halfpixel.x, halfpixel.y) * offset) * 2.0;\n" + + " sum += texture2D(inTexture, uv + vec2(0.0, halfpixel.y * 2.0) * offset);\n" + + " sum += texture2D(inTexture, uv + vec2(halfpixel.x, halfpixel.y) * offset) * 2.0;\n" + + " sum += texture2D(inTexture, uv + vec2(halfpixel.x * 2.0, 0.0) * offset);\n" + + " sum += texture2D(inTexture, uv + vec2(halfpixel.x, -halfpixel.y) * offset) * 2.0;\n" + + " sum += texture2D(inTexture, uv + vec2(0.0, -halfpixel.y * 2.0) * offset);\n" + + " sum += texture2D(inTexture, uv + vec2(-halfpixel.x, -halfpixel.y) * offset) * 2.0;\n" + + "\n" + + " gl_FragColor = vec4(sum.rgb /12.0, mix(1.0, texture2D(textureToCheck, gl_TexCoord[0].st).a, check));\n" + + "}\n"; + + private String kawaseDown = "#version 120\n" + + "\n" + + "uniform sampler2D inTexture;\n" + + "uniform vec2 offset, halfpixel, iResolution;\n" + + "\n" + + "void main() {\n" + + " vec2 uv = vec2(gl_FragCoord.xy / iResolution);\n" + + " vec4 sum = texture2D(inTexture, gl_TexCoord[0].st) * 4.0;\n" + + " sum += texture2D(inTexture, uv - halfpixel.xy * offset);\n" + + " sum += texture2D(inTexture, uv + halfpixel.xy * offset);\n" + + " sum += texture2D(inTexture, uv + vec2(halfpixel.x, -halfpixel.y) * offset);\n" + + " sum += texture2D(inTexture, uv - vec2(halfpixel.x, -halfpixel.y) * offset);\n" + + " gl_FragColor = vec4(sum.rgb * .125, 1.0);\n" + + "}\n"; + + private String gradientMask = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform sampler2D tex;\n" + + "uniform vec3 color1, color2, color3, color4;\n" + + "uniform float alpha;\n" + + "\n" + + "#define NOISE .5/255.0\n" + + "\n" + + "vec3 createGradient(vec2 coords, vec3 color1, vec3 color2, vec3 color3, vec3 color4){\n" + + " vec3 color = mix(mix(color1.rgb, color2.rgb, coords.y), mix(color3.rgb, color4.rgb, coords.y), coords.x);\n" + + " //Dithering the color from https://shader-tutorial.dev/advanced/color-banding-dithering/\n" + + " color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898,78.233))) * 43758.5453));\n" + + " return color;\n" + + "}\n" + + "\n" + + "void main() {\n" + + " vec2 coords = (gl_FragCoord.xy - location) / rectSize;\n" + + " float texColorAlpha = texture2D(tex, gl_TexCoord[0].st).a;\n" + + " gl_FragColor = vec4(createGradient(coords, color1, color2, color3, color4), texColorAlpha * alpha);\n" + + "}"; + + private String mask = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform sampler2D u_texture, u_texture2;\n" + + "void main() {\n" + + " vec2 coords = (gl_FragCoord.xy - location) / rectSize;\n" + + " float texColorAlpha = texture2D(u_texture, gl_TexCoord[0].st).a;\n" + + " vec3 tex2Color = texture2D(u_texture2, gl_TexCoord[0].st).rgb;\n" + + " gl_FragColor = vec4(tex2Color, texColorAlpha);\n" + + "}"; + + + private String gradient = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform sampler2D tex;\n" + + "uniform vec4 color1, color2, color3, color4;\n" + + "#define NOISE .5/255.0\n" + + "\n" + + "vec4 createGradient(vec2 coords, vec4 color1, vec4 color2, vec4 color3, vec4 color4){\n" + + " vec4 color = mix(mix(color1, color2, coords.y), mix(color3, color4, coords.y), coords.x);\n" + + " //Dithering the color\n" + + " // from https://shader-tutorial.dev/advanced/color-banding-dithering/\n" + + " color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898, 78.233))) * 43758.5453));\n" + + " return color;\n" + + "}\n" + + "\n" + + "void main() {\n" + + " vec2 coords = (gl_FragCoord.xy - location) / rectSize;\n" + + " gl_FragColor = createGradient(coords, color1, color2, color3, color4);\n" + + "}"; + + private String roundedRectGradient = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform vec4 color1, color2, color3, color4;\n" + + "uniform float radius;\n" + + "\n" + + "#define NOISE .5/255.0\n" + + "\n" + + "float roundSDF(vec2 p, vec2 b, float r) {\n" + + " return length(max(abs(p) - b , 0.0)) - r;\n" + + "}\n" + + "\n" + + "vec4 createGradient(vec2 coords, vec4 color1, vec4 color2, vec4 color3, vec4 color4){\n" + + " vec4 color = mix(mix(color1, color2, coords.y), mix(color3, color4, coords.y), coords.x);\n" + + " //Dithering the color\n" + + " // from https://shader-tutorial.dev/advanced/color-banding-dithering/\n" + + " color += mix(NOISE, -NOISE, fract(sin(dot(coords.xy, vec2(12.9898, 78.233))) * 43758.5453));\n" + + " return color;\n" + + "}\n" + + "\n" + + "void main() {\n" + + " vec2 st = gl_TexCoord[0].st;\n" + + " vec2 halfSize = rectSize * .5;\n" + + " \n" + + " // use the bottom leftColor as the alpha\n"+ + " float smoothedAlpha = (1.0-smoothstep(0.0, 2., roundSDF(halfSize - (gl_TexCoord[0].st * rectSize), halfSize - radius - 1., radius)));\n" + + " vec4 gradient = createGradient(st, color1, color2, color3, color4);" + + " gl_FragColor = vec4(gradient.rgb, gradient.a * smoothedAlpha);\n" + + "}"; + + + private String roundedRect = "#version 120\n" + + "\n" + + "uniform vec2 location, rectSize;\n" + + "uniform vec4 color;\n" + + "uniform float radius;\n" + + "uniform bool blur;\n" + + "\n" + + "float roundSDF(vec2 p, vec2 b, float r) {\n" + + " return length(max(abs(p) - b, 0.0)) - r;\n" + + "}\n" + + "\n" + + "\n" + + "void main() {\n" + + " vec2 rectHalf = rectSize * .5;\n" + + " // Smooth the result (free antialiasing).\n" + + " float smoothedAlpha = (1.0-smoothstep(0.0, 1.0, roundSDF(rectHalf - (gl_TexCoord[0].st * rectSize), rectHalf - radius - 1., radius))) * color.a;\n" + + " gl_FragColor = vec4(color.rgb, smoothedAlpha);// mix(quadColor, shadowColor, 0.0);\n" + + "\n" + + "}"; + +} diff --git a/src/main/resources/assets/minecraft/Athena/gui/menu/themes.png b/src/main/resources/assets/minecraft/Athena/gui/menu/themes.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6c1d00de39b6ba24c6e82494d10d750d16d6b6 GIT binary patch literal 800 zcmV+*1K<3KP)n0v=of9?TQqffZl{SOHdm74XUgEK(pN#XcRbsgY5gN|2?_Prmb&lpOtwF_Atc zmB}0>`s1rEge0)*dX`UfNSHI7ro@x$UVAbEI-dPFvxGVCD!fJpg*#(56b6rNC>}I37EPyrT}J zDNteaKhgJ)dxCJ!VQ^IDEuZE+Y`y#OBk@dSme_jF)xnf z0%278tDF)Br>ri<(?26D&KBS;gjhVTg`}JQ4pFhAlYW-R$O0b4a?TI}8c3j_i+*l~ zur&*Yn)){!AcX@R^q0946L80J`~u2Iq8z_~s;Gdf%%*HUXYi8O;Z{_@ZB#zqVyqWa#aV$6<_c#~`FP9WUQCt8g<`-s7DVNf00G7?A=5Xp@oqE$ zf$X)V5~e3}#;4N>IM5h>q)fn}-uSXg0t#CRC@mUa+)Y4vJpm04gIY|iP^7|pB~89f zDioA1Eb{z*rg9?QW*v2kyUNf-eR_ZmG28ESOiI9(n03{|9s%PvMKSvy zm5$qx^&NQXij74&q{q&|J@B+HW4@+s6y%7{}rN&_E;Dl0k&_PA*xTgX9A^J2*raGdKv&*__-B79t4kBq>PfltF|J9ZF{x zQNdtbnqqGeniQJtCw>9#?LF^%?r@$*Ns=T<5)w7q^w{QzDJT4O!jvPn>CvX9>Y`4E zF&F&H1!FqYRW)qTXU9e7#puvD8MJ*Z7P<(XBxvre9Vq%REWsO)<95k5_!i1*$ z(IO|5oR)miVnIj?TJl4aoX~Qb^1(V2EKFFJ2S!*K$sS!Sb!CeNr&v0rAxjLfHjo`Q zSz>L;rmWD%Lti$ibB>2|>asuwFCAH6jF+*(qs9U+3u+3DHlErFjUJwQ3XL5+?I<)3 z@pP!rnBr-w&^W`>nL=ZUr=>#U5>J;3jT1c06dGUg^hKd@h^GUE##=mXDKwtp>4`$) z9-i(hG-~|D%THP09bR6^0uS)gmIYS%g@;eF!V5e+k`)>(u=ax$+2JMD9?BA{OtADp z*0_(I3+~7sud(u29$4W33tRHSExr@lM{4rJ2Hyy2pH=zdHlGP)pBwVWP2Lm28&(tx z&nfGv;-VzQMoEf|k`x;yDK<({Y?P$fC`qwVl47GI#m0;>W{Qm=WegP?89CRLlPNwj z_Lx)DF}q|+k|arzYM>xh4F#!cC`eU9L8=;N6fslPFr6eJWC1(j@MNI_E3K|vrL5Ft?%N|6*rL|B&jCWE4zF1pxyQGqXd zV=p2oqf4TjpaY?-7h0M@US*s5?Tv}MJJ+tY^M7D|zS|idexKQSo}C#-DKB2UcySg| zN!GRcJTB7=z-KNpU9a*(xJG1xr0Y}v1xC3`njU~k%yLSH`m-=k7XkTzAXYgbAMnW% z@JxDrAHOXDjnV;0{IUcz$UlW@Ede$10mm%?>*AQmjv zVs1pOIw7{`P<|-e_+Yy7pO9UC3g`HNbv8(ys0G}|NjjMzt$Y^c)Z;w2C6&+Ps?8O@ zQPxPPo=zc8i7!nIbGQ6x_Vbm2B$&GogW8_W>PYTQ9~qncK*h1$Y(5 zl6s24LI4c1c^2AZ^7%*Bks<+*XLGdQvdeT^9c7Gj8?ey^a9JrTEcbZHY1T8B0HfUi zT(ALbRZ1yJ=yotSI@|!fuqidWcfTdH2?UTv$g)y5L;Cg|PmMglG`lGrHjbYX+GPQX z?Wb_WSi?DKdPnC1;H;A=95vn;_VGmq;EA&-Y%pdD%Lvkt7(hC8VSjIWKTnN#gl;i~ zO~=k*6$hx|4)6bto3M}@%M=zE*4hBBNC%v@0eokMY``Pi-_~~K%dMYm`&bv?CyS&4 zava{igeZ^+D0F-W) zf*y06LM9u%W5T_tdi|cakz}w&B?Pd_e6{=#8~^>035OTNot{* zLo8=u)Rxx03N^tcmNOJ0X%>Q l@BkVEO#Z*@#fz7L<`1UE=-K36X#4;G002ovPDHLkV1j2cv^W3& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/minecraft/Athena/logo/pride.png b/src/main/resources/assets/minecraft/Athena/logo/pride.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4504c436990541b6432f1e608dd2971a96c0d7 GIT binary patch literal 289923 zcmeFYV|OM|*Dc&h$Ho=gw%u{A*tTukwr$(CosK$o(y{Hg@8>!9`xDNmGv=sKW7Mb* zwfA0o?zQHc6(KJx4iAG3^W(=4c%X!c;*TGo*gt-Nm_tGQdxG4h=2?=FK#UaEU81#MwV3|I?de#&gWE%zzkdoA|Dd#e0W#4+ZX;j6psJlOH zu04gWfr8hhz`g6gCt z_njwDo0}}7?pO6V_`sLT+`twrCCL#L8<3E^M@!Tq+nuA;cc=_Sm2GXBj`Z%hI39sJ z{Jv;6U>}0!wX+QT%CmhIozwZ~4fp>a^iz-!CJG8*kvK&8`S)wme_mmLn`LJBjV2`+ z2U6Mg;ip$aG-vmZzR(7NTJSOyCg&v~FF>l`lAmBfXr$6HHMRrwZ-_bBN0>g^5h^9h z;w99WP(0u+03D=@@gTuHP-T55uMs;K|7RIq457jUMlpuuKG=!mDNODZ1Ch=rh(9!b zWLTRpq?_+cZ3xq<>lUt5G{(|i_NN&T2}5ANU6VtTk2Hoef-bDl`cNb1n>fS<4**)*y>hnTC~1II~t?lpn=u207>Qo66;7gujAXsSc%8JQ2#t(7)J9)c#oP?wZ;GD`77L4P@i_OkzW((oo3tZuOQU49o z*Z+(-E$-Iu1DU${F4Mc>0*>t^f)~?IB)$8WEZE3-wW2)eV)6%87EE6G7X0$L-B*Ky(hT8JK zsFMZ@58@4fAeM`>;fkwHCX1|D1FCUBKl7p`Dak_s>{M|oYZpHhMbN?TV&Y|yi!s9` zkquGR9|;hHXbWt ziKelo@UB-L&s9+=2up+^lc|cpNxE&=-%$k6YPwW+>Xyai8BP{9C?4xCF{h0fnjytd z?cI^a>y-yG=lEwfqA9>&zJ2`4X2ua~f%Bw-LW}c z?6%_bUaB4#kPlQUgYt0ICfM;~M)lF_Dj|dX4+82SKn=wXsvPk6ozb0|FUVB0I(lp7 zyo3=|K)!Oy$`zTPMA#1ygIVfKIipvtBe|<273WO%F(ezQxYWigO?cyCe;P4#hNd#?v4{p+v?oL3+}#`GJ6MYuA+JtX85pE5VufsA{g4C^r2nZQ z8JaH;6krd7kI(}XGg^!QTe_!iDPc1!6wk!a$4IRGh}KoSfBGK|{zxNX6s*$x8!s`p z&{#d0BfZ&0lA!yk_mw2DIEVT(W)5tn&-4HYo_Itid$e5BWr#?#REfcT5aDN)_1C$l zSsDGvl#;Am<-9rbS0E3PjDv27;&OdHp^sIr4nhhkXcNe9Bvd8AZ=niO(xocwClDh( zW;hp%1W8Cnk4nIDiD|I5?Ma1?2ziK!^ciqa_uI17&%O$_U9$KXILA;4P7* zm5dc38)ZX@8(cD+2REje969(hAn0Qq!~@$g#}O~Z3jI=+1S2P0_LM})9WdIH9c{*eaZf%NQ6a+jWWxv?C7yzmKJggMZ)WP)-l}ujF z(02r5`dd&v=8Ny?g+iT#U{a!Leq;co1_bm&W6n_{q2rQ3&*=vwa^iRbe^^@5R1`!* z;k2l>884oLO1qckr)W3lE7$my(tV|48hdwIQQMLc6B6H?B2&(nFH7?K;*TIvT*4us zBl+Pqr*?it^BzC46F0_<{FFeQlLnIMM9D(S1hPmG`A7~prd=U8GWfiad_LP!L1636 zTUqT*!!O<&_HANI;`))wDrCv#r0Ksn`lMz^zQ3$q){Zwxj z`bol9u%SxUFX>-7p(!B@go_p5iycOWO_GI}XK9uNhXA|m^m0SMPvM!%5OV=m5PRPa zN^bJDX~!8>bWdQ!$UK-gBbK4ftB@R&PLz=QnuwCW3d!Ln3nPd9@6m`Mz6(hAjiPm9 zrAb-NaLTb|#zT>YD>}tAOmGOs1lKNLEe04TbIJH?MpzF+8Zld0C0bl7VGSx3Vs$q& z%wB)(o89MiK{EY*iPYuc>Rw*Rk7kDCf;q$>kY?BFA2UcKaT(`1%!|RI##Jgz+SETF z7H7yN6sJTV`vDHYWV|Qm^zdD>i-!HuL{x8q>S_a>U#~3KiJ>^$giD%y1SM)jIo?*p zf=f0l_5+R05qC3JWExexpG=%MLu_!MpU{5S#IyYbvm-^wq!-tMd$7OWZsq;BoedKo zGvrFHz@6FhkGS8wI?kvwbnkY{hC79dwylEG1sA;Rrn&$Yg*Bo<(TpY3l?A*`??l+V z+*{55F)`?W@C_B9tK!cvlV2M?e!QR#A)E;I@$e^k0ax4tcK8q%#@s;!-tqU?!Y~mm zZswTd<(sV0LS?GCFDJg7Pmti>Ft39_zV9lDsDM$mhe?*F=xH?Lp<*F2+z6%SDU+#3 z&xoRQwwOV_rve>W7V4_TQ)6#8T#|d*MsU}nePuEXIvmW~=bn-L>eWgyT_#v)<<*_N z0f}%;1-xRHf>fbg=ze{J1c`WOGqE6jPB6Y@Z#Y%14+Rde#GAt;=7*MB`}HP$MgDOh zWRYVcIu^fhH$0YR*AS+Jg#Pk5vK0AA!I6CJXqzhI!Xa+eRbytRzlx>gZbn;2>hYf; zHT%%5M#qu>iDDf@f$gf^GxHKVv4~C38uB11S%n$AgFE{>^2&k#a)}e6zL9#AP@pJ# zfItZMB@tO~24RA*5J*Up=J8}iy{gFfL4JH_z+?wCab?wsoxy$%6B`OC6&p~=wL&m&(XI%yr(e|})i|Wya$_2*iPoTTgSXPlZ*VKKIGrIVfbwwM) zd?!bd+BltP#hMMDJ5h#0?oygepb4?Pf;dpH0Q(k+iHWKm(?v;MaIZ@Y1p>J?0$?eu zcte;SJyeiTa7p+xMK>}dX@9r5I3ZzP5G$s?c%Hb&54RCbY-ud$w>TA4LUFvZIk21r zl#C8Jv*zP@NSl(0RhoiZEC7niFBRYv9y9Vg7v^A4N~TH3?H=(tnz**{O+rCAB$WfO zM9vfV6kQJY#?ad`G86&zAq-YY)HXLI^?mlm*m*4zCylf@-PI%CV3Q@gOGbH)5W0kgQ*Bkh@q1gtX znqr2vYV}SLRolxclk(qN-+z$0WWPdIygEdj@}!A5M%LWRf)Z4p?*`*qi}!7!T)@|t z6B16u5?AWZPXU;=EqS$}Z&#C2{{L9G#C!?xfi?O7QW6D>$`#ZflnJ z3Yrf{nOQKaB83f~1<#9<|b8I=R*eZajtLV*#XBqWN3#4vUEC105BtwooOzs=6^ z27!uMyeX5YEvw7~GSAtT62WDVo0cNE-1zo7yLxqSx1@fVh_B9q?fw-h_K0|q z3~~w&m98U>PsK#lvg~*gxmS?)v^O{xmG;8-FWU+riR#CN_DYko^JwDPEqGj3b1E-L zs8b$$!Y(Oa&rRIQNHNpuG+f7sdcC>bu~^{OwGKD5r-(;-z+Adxj8|{?g%wRiAO}kW z!=8;UQZZ9&o`_}D^|^XvXa?4A=l8vmDj|^;pTa1dLCdu9)fQ@w`pwY2U8KRgHWcbx zPo43$9iQB%TNs|@6h^SWNia18W#(cBC;qv2=J;`VpZ%AKk}wiQl(Ip&krJWLd-d+j zM>yfH7zuVnn8o*oPi&_V52l*?-(lX(48;Ju(>vY)rDEAl@^LhUabpW*6{`FdpgvQT z1a&sQQq{o8nohJ>&kWx0E56mN8~8X>3|3N^n`r1zUicC;AjOaj)#x^@m=E-Ld20sn zt~^`Of4@Qna~*p)K5L9~t{)YIgE`ydC_k&Kfsa0;gFFU9vxBk^G2)@t-F>b+zQ-;* zroSxN`BgEJ&Fi_;^&DOkv&OW&oaIPgXsdTQ%xZ-2;C_>C-%SLpmly0TnbUxFw?QGL z;9-hq@_2`(0(O>nWjI&`LUv|D~oCny`2+YIU> z_!!y+TE4;C{~fYekxE}mbiL_eiWmLxV;Ud-bZv0H zd%d2K`}hl1v9LBkHny{4PhePOG2v@o9Y^{m5mov9Vz{YLH9q|ziedVFi2w^np2Q2F zRMu*tVy{Y0J3YATwdd`D8Yi)PLQJCl8pyy@*=wQ-xcPNuL``5T=fr$T38^+%{j)3r z3+ZU<+OK8S`lECaJK4-Q&}bE-cA18hT&y;92twoonX>|X`6!lH%%>V;vImfo4%{Hl zy#ZsfV-)0sZ+sa{RFp~DAQ?($z@($Z4_cDgF)4-$u82{w5!%v5Kh4M3+oLr_S0vwm z1i4ttL)R>M;WnZ2L8F?10aEw8K^x;k=G{Ad-ndsHrYW}Wx5cnuw_$9glsQM6*nO;B zjkoiRBEVAfce6-BqWmWx=vPAkG0bNX$PR)WGrH;NRMS`jmlX9C4OIyUG1I!O&5JY4 z(Q;_yiL$xslU*8f%xHj;k9t9`t%b-s4}*{3zi7%8(=lHDG=f{c!RG8b!` z#cZ=PMmlSXPCU4RS8rVf;bG|hAedaut!(^l8C*`;m?K74Q^rD}Ft<_{sW>Ro4S=Ap zusWFt-iwnzhBd*#3<1F+0%uc=ETw|v}&T|D*$Pa1l zU5lLc(M_ktJ++oc557>Ain^~~ISL#g7gw|U;pJA$G-ht58Fb}hC3K=5wAz&S(B;}S zFZNB(3(QeYC;;yB8NFpIOj7tLeQ5tn$9H!^`oG}3p1IJ!TEh+`?xnduJ*ci;^;wIM zV%1LzurjZcxr_w<0>rwv2zXs-v$!vkmS~6C&@<*AU?RS(G3Vnk)k>2lJh}4_j?G>A zMKsIXKyWi;D5ma;DcNA{yOK^$Wda)x6@VtzW@3}raEj(aB6RO=2Hz^2wd&ljD0QGc zdC#b23#vJZ+wTrx4JJo#Zdxg;hjt+GUYv=5hP<@JtBO!NlO9YF*}z%#v9`B=IfFrIA`zarlcNzJbaH zRs=|_rj%3`R4hOYvYoZ~s&J08hP7fbgD-V9S1pnx_!4vBD2|zmuxkVG-1>%;v`dMa zIfynN0U)_U`tk$7t$YVpM`XKRfb#l%hs1)dx4*oD29J05Tzfz9ha-88y?*j^FW1pGD-3DZE3e5+;J&q z%2=j-ocehPH={@D3yH?_t`9AeI+j^q?F7IBr+!@+LAlyIg3;w6O}h5x$z-OZ8=uu9 z&huF(slnT!On#T^?hg~wrJHf zNehKTzboo1gTf7u$xG}fr!X2i(?aDaS`sfWV5z8RlqV92l(P&=8nVYmP(MKOViH{c z5>0^_@Z~sE2CpCzI%%B=2S&j@w{-SA+c+BdU8UE>-go3Ce!np(MVz(>YB5IBl(X zlk$gRIt8VjsIGc805NMTg%iWMc0FuHSIG~I{s)C<^fzdczW?s~eq2zWa+wUjZ2 z*P?gAn2P)XA(FC=I&_Yhj4c74Vv6&^8n88yLCd5+Z-toZb)bs^1HH|_K+dS?sL4U8 zM4uymV3k!Q$(w<#0;#19er)-Tl%gsxG{Gx=;l`Sn5+$MijQNhNqW%h> z3+%ThGy1sqKevY*HG92!-zZhwv`l=qGU%5z#wxhGzaV+eLCMfoB30TnO^~4A$AL|b zPgvR`EDD@10q<~ra#tPHSPZzQ$>Fv5UcI&6)PZT#7>_B7@AXJkR!u(&Y6)rPw~7*V zMB5bMj9v+AjpMO&Zl5bw%tm>TA_(CAY~~QRekUOKr%ngk`Lno8Dt(~<`JdamT$s_0$WR#pcy{q~%vh|etVqHYY@{@MOZG6(C(5J~GHcQ0i_wNzexvX2 z>*&V5PB2rtYR9Q0+!Ih^`50c|mYQ{pf+$eG(#}>|h*GSjc9~E4p<5JS zvPBCHxVeikI~CJr~| z{@Y$qIV6WRLV{rflKWcF$yQ{H30CXdG5^#Or6T86#76{Z-mE4{IyE6h3h~B3WudVP zMtJc810#25yElTT-*xhgYCX9qSNwx%2RofSkfhVnK2H-Fj5+fq_xZY^e`hgcvG4RR z`|gKjl?_g#pt~Qhc_D9CzqOz~xSj;Fj*mZ&lHZCSDEg*}4gN|x!9V%UVSFohv6m~; zRC_#S4s6%bCw6m6htK(Be1-LfvkH_>Hc^ZN+bJ+vOLW8A?@x*l9cabC|5hrGHtPLy zXNSd;OO+Sn7o>I9Wa%WSq<~C{OiP)3`2B(b#Z0ScS{i~{t6!oRqc>RNXm(Q`3#kXQ zCYhR&sXfliIIEQVAfO+P8$;rrAWNURv#6Zc{V3d(EX=QE!5y|7s$VxA>Ne7S%k`_b z2ot>KFl(DVUaVm)q6tSPy~7Zc+YonYNw1QljIhKtcKLD=(oWv8R-mdsy^RYc=HlcS z5dnTwfi*9BtQkAng;BkYKjsqeLS9R+^8VAvN+xh$pYYLmLvw`S&sD6Uxq2K#5FAT6 zoeEH+yKH6mSA~j2wRnbVLc?L2$%g>9PvBuhN0f9(Kru#CnF?_pGwN(2v3n56q%jht z^6cPoD&e6SlMr{e*PGBu#q8kk6VM#`MiPyaI~C4d)kLc*M5QB;RWjbUP{ZAOYk8|= zf~t*1#n7-xxHs6?-4agXF3sw};gr{OcD=BVxu&5K)2CV{S*P#1q%Y{Xm|YQ{W|*A? zG;gBYmN=fc12pzTp?7Da)CpP_YPdWvwwKdb;(v12%@NV=lqpANF5Jk( z4wR|Y3Yol0%4_&Ynr4KcH|?@)9i-{I+-2d9L^EO#G9UzU(?yR#aE7V;V^<@P>^1s<(W6kT)Tcuuf6M_@89&!L>Ba(}>%g zS0*bbbtG-7jFqj$n*P`ZM)D;K`B9C2Ok#D$fC`ytW4-H{r)y&{18roJpI8iY}@y+p$m{uZiC5{;H{PhArAu+6Gzf<^KLin6)nPrPrj1Vw8 z_DMuh!Jxkk{F)%5YYeu*D&@e!+w>Mr+g@{=5Wh}|fLU;yj|A2ulul~g)=VI;QPT4C zlJaZuA(N)D>4n^#xo{Ti&EHZa79%YW>3{jb?jE-cz?JRmqVJ z*4}&9K|{SR?2}`K%Lbdm+$dV2{!p9E>YEj!sqeav&w?vM8E;JUj%+ zK=|8T7|#5?eIjMx*CDiCNSp^OR$Ti@UIa9ARo6L50ux+819mc>$W zQ9_$k+0X#vL_|Yl8f@K=b&zDVt2>@H#aeVat=3y4`mYYyU3Bgga$M%ef1k@U=)5>( z3vj;&OoU9eyuy~|_WuFIBKn&FheK?qYfs>d4 z$FBJn2FRAj<-of?L6oOH3^gYI_z{!{s9gE7B`S)TMw_20ZpWog{qE5QF3+t4?coOT z7|Q4o8=u+{DbN+Se=#d z@f~Z%Mu=TKZ+Fv-b-7AKu9uTL{{f2(z@l7&0@DsOrjaJYW9AK@r_ekgX=2?EPoDR9 zM%rMxj4o`~gb__cnAZ<49!)wqk=92!Vw8+}#KgoD@gb7UNf-mz;Gl+np+7xIKRDP0 z?!1FDj0k*o3WKb5B;7VeRRVS@C<(LP^6{U0g3q_V7r@Y@%a-=nSg2{ESR0VmyE+?U zeYKQ{^aQXEb^UmUKlhumcbH2a-mOsA@)q0%jlqlP(;Of?NHOUX1oO%mXXCv%ZLsI% z@CdzAjrmTPJ?Z4P2mJhOV}quVE`eZF&~+DS1_DX@;d7DObB%L;W37hyw^Z_Z z=OQ^&;9n{IkT&VZYNxim1L++xN#+iPORzOz17JpyHF5GX#gwW_GTKq90j!iupxD?| zH`A+_qGJ|I=!Dl}E~N_OsAK0txR#N8>b=v!KZyzz7P5G@1*CD|p`$%<_FELdLgD0j zygvj9`sU(c*izjaB~}+sjuR=Fn@)@q<1r`b*arO6Yo7F%X=ZRa#n) zI)#j{n+%NFgM#{Mk@Rl*4;}#)X%n(UX48Qg!XnM<7KoYWb*{b4Fwi`{nf1eF1{5K0 zSG~da3{~ls6f{4-20o{=5;`Mi@DZYarxme0Lx9siCMXl*XHS4H`Sj7?O)wsqG%&ZK zZOT?OJNv$!rb2Z#l5^u*N1y(X;)EQ2RyUh0%me(QIG$KU$dv3;6RG)tX@Ouu_u`NJ zR-iY6r%+S>T`6JXZcE8?{iz=$RZOa=!T#ZE1dKp6n+No6O31G0X#5kI=%t!=jtQCx zFN&FPHrB+B9+c*ysvjUV!4?#>zSGIYl#gAPpdUK!$13wrXe*Y zRY9USxn&F*`I*@5fbbf2L@=)mAZ1q^LcS`>02B?})fMb^U)P$Hf3g|HMx>yW6@de3 zV1i;bZEn&$4dW8??eg-Pyl%$8kVUxcc$rKB_w0?&&?q;whAQnWO_r&+*1k@5Qgtc_ zQ<|c@g99tKI6?6lRz=TZX~RBIsX}l{mSYeG-8bsYA+lv!m3}=~y*>Q_nCr#yH4(@o zkZZc$TuEcU6$<6bj}vR1rr+VrdMxURqgn#MOQEg>a?!5!dOLg@BEz0!|xiD@eELsAMW|W0n&`!J?3(msXM+y ztJe_M4~DnKeX@O$ zoRAphKGV73=^Gy4I8_P~QPktG7^=1CL40az|0(p4l;AJboWP3kGXUh{YL`Yo38Z}` zYf9;|ptg{u!5m)I@GvZeQ(E!8r$KS6(xV^bN$R=v9}M_1dAg^!Zu z95lX8$){W{ZqcFtVq^rt%2|qBaz;dhLyW`Grv~f!^W*O!5ZG~s^CkGhnivl=;vOIq zM8zPn&>~Iik1OiaD_5|xo#3y30*?hDN&azV8%@sOWaUahRt>F4IjY%U-?Q zs9PxHIk?r_q%FimAST!o+?(2d74H!H(i7X0B5_)|&fvvPpX|dpA+2{3S8t)XK9i!z z!S1FU%H|igZ?IWWM}~8m>$ryJs>N_;;~j{rUo9`J4*k(Fz>pWd>ts!NewOnRbY? zs6=_}5bi;f)q7pAjP3YzFmZ^%Kv{pi$X#$wqpAfnSEQHX&E;*-EwjN0S?5x%4X zU;=L<&BLpOgB}Ri8q?n9i*QPI3o-aJa3Tt!oLy*_FUwI&SOR@)8fM>>+^=-)8U6-F zZ#q;xw639Owv=Th%AZ~ChAO6u+!dmhjqEWe@zZZX%SI^d`1X&8m>2w17 z`iiq$LC1?bBciB$l>7D7MP zsDR#WMlU&K@3d~Yg)85ssh-aQQ+9e(Y+nzwN_%+`?oYvj;6o-<2R6&hk0u0LVI7-{ z16s5&<-X|FBQ|lgpk1yPdMn-W!dNa7uPUazueRn1`O@!blfnALU+>v#;25*nnn4W% z?9uR$-z86{03XEr0g0Di)c0W^s`uil^CMugl%!%W(BScG!WPSkt^KHE5I<*Zui*>( z$gX+QIVbQA3-eN zj#xs^)A8@5!!7Te^9Uvi`SV;jF22+Md-HzOyc&MzgAL7wDiR8E?-Yj`&!7VCp zlrW}v6-~kwe7%EFoIi`7WEi{*L}E_jlV6BLlE-O61oHhSg`P&D$ey%rK;~~bz}=6U zPxri(L=Ke^xcb%NNVcRk!s)4foGau--w{I*7in!}BNm3fq*yEnhW8DIN zO*exoAP?3EV}o{W!+n1!&5lA)lyglJ0CFw;cU@7jU$%rLKdTZ9Us+Rg4lv(a7OH6T zrgvdtCM-FEyOZj&$L+WWVj=G<9FB{QJz{2>cS9r6bKiL$H)FOMF{B`M!FpX-z~doX z%)gqFn|&$sH|m0;91+%3RI6>qSh9v9mf?X0x!Y2Amoq|`EOlPTHx#QL6pw&Pw>u&={`8bn-)zD9oi!5#+q zkAWO=QT;m};7HR?Wob^%9bU)QjOlUK2LV~y;XJ96`Oiezqiff5v$e9Yqjr+a5zDH6 zwL_pHg@*d_gvhdbfzV&8mbHtyG?bme#0c%rHa+sxlPJX3^g29DMPqGXOn?34rN+J& z)B`Ei3mCO??cWd;Or7GuKE*ISfEBP`YS%Y^`DFI3yU%8hC?Mc_lSr0X{A8UCa4PLp zXY~MSIcWf8J@V8dT)&vrQz8(l)p{DGwXio-;aSKyE=#w_=eQ3&%Ti(uAe-gwzJ0TG zqyRzBZj4vNfQD;nEs_w;*?Mp!*t!NkE~$;J(B!>ww=}}ftI1TO;cUep-#;;;lF0v~ zdQxV|PlweF)aEAbOY-1V7B(5;09b7PPy#pr6-68xzZbNGA7!X2(}=T8+nEv5F) z%ZF?!Q<&#GPnntEgso3|Jm~_{SJL!y8#Ajc3?9g)cu}-fH0gOyp@5W-5{V?3-TSNC zE(A_oH`_I~rv{5{y;&z~b9~w9&nXEQHM%n87>a-pF>n|fss$3!<(V3b&5e*AEQYR2 z?VoaL%}l2GIxYA2$XyJh z<+*(4nZ5H?1h<$rxfwS<{R*J%SV(}9b2-6GUs8k%V=+f%l~X0pFtHu2ks&eCx~0mQQD$0AgsFtb`hg7)hnfyK)ZMA zvB}r3eni#(br}MDKWAwC_Zd+dS%efClw^CsO+B}=QG9i}dZs9?;ZW`+v^1?!VZ^k` zG-;~|AqBg+Ato+7F$%i895qL-uE0WbYg#EVrP+_*(1`bf2=Z?NxyJ|!h9tL-zFX$N ziLib+SSFDHLkJxxnS6MuMAf3xV+l;KU#JO`18MtBvCS+T2QBV zXed<TE^|TJaR;7eCU(bl~eFIuGW<(lrd1^-Os2@U`aG# zS)Ui23+{D`*Z$y<9d;)9ZLf?a8y~~2fK^RJA+aNns*Wl*KK_2x)V75yl2`^d|LwDB z^YOMFu=83JpV+$*<|^$;l(+_Q>SCjS({iC`Dg7S-h8gsma(o=`2@7M}do(3MhxT5t z+gxyM`SjvNbnXhsdqb9oQVeRO56)>L?QWsK&SgL><0P4aJv5K$Ny6FAlhkR;(%$qv z@9|KEh&-I<`+Ywjd=pNUl#@_eMmIL?T0#{yVfrl9G;R*>4WvACP^_B)LWDdt$Vc)> zZ`Y=t)(lu{|NYw`j93)01m%u(2FJu2ig^Kh>sLq0D_ZlB!ko)ZO=DmSZx&M54d0VK z&pGJE5&~(QItwU^4#5_u&DU)9)#KPfsOsx8!@xkBVLTVS0zo*$D0CVq6Z zP8LF;!h4+yLRZY+aK4^-FU>6Yr@b+KlwvetPoV!P4$=~htzF=47FaLrD^+J@kzi7#PCjE(ifg zJ$G}92?MS8y1PQ&OBbN>Si-4B5H2=we+i26uXg$ZSSuQy+#HJ6 z1L!LvyQ+AY0(Ohy4-dxXsY^XoggC3;-Yo3air_P&)Jlxx6tZS^5*A|F2)|o?`#~6e zE`I4c@E`}w1^%iKQ8hARMg&lsG@VE6+EO5F{w=nAtW~%sV5^?SKLpr_z{{OrdFTfU z>F^{!S!tQLOCp9_|tLLP;C6XumlJXfn}=xFi?IXQMl=*)Thrl+!M7 zd2`7D#QvnjSIk}FAmX9?ENap8$ys#pBg~QP8XRx~?o-AQBk_@iQD87tX5y2MhJl+_ zWMOD-f7>XbP1hXBZ!P6TUPqLt2nZm_Ex>&&#5+s&+G&I-ovU419PxUu?vUe?fs`dBR<82NZflCA6sT z%|yp*tieGQ2O--v?jI4f?%aNz+Qumoi=_R{L0Q-&Y?&*lfd?+lQfNI+7UIWZB1ujZG>@Qp`-Cyc#2xEhp5C2^IMD3WFmW z8Q#N^7_E%#<&{;CkbjF?7QBZIE+PD*YCwr}7(~KPrX|__CABvEj9&-AnogH=W5yfj zS(IxQj7FP%SlE^zSDqTbGAyD~86?|(dXQEp4AvmJ3T%Ig#GTiY{k2P>)eZjRqI04t zDySKPE3n1q{8z6~{eGL~E$B}(#-|2~E8e!V0iUl@Ma*2ahPg8@04kMINAVIa$Ytcb zXnTN}_^uKT0`~;=m*vtR&!kYef>%BFuN=W8Wht7RB3ZhzaZQlHRuGGf0V?Ov@#epE z2h-5)#iJ1{ZEi*>NtrP)(L&3Ww%N~L#}p~6aku1~5%5>fo219giBalA=Qn2!9emM4 znb_6bD(%xmuk%?sYuDZn>=;4OBpQD=X9tLBl|KWj89^=fRQ;)MVtSI=T8jQ0iq0$J_4_rxUQ3h zi`0X57W%N@$ndDV1{SCtvr!fcSm&J0NEb2-w3D^}V)O)Alm zV0(L!rfT2YfqyCCYs0bflgWQuH%VpL|C~>h>oL9d3hp;7(YL^n-s*|NoD`=(@=Y5H z(X(3Ga+e4r8LqVDggLe)d=k-d!E*1wuuNRvY$6HISbzgyX>y8#OVE=2*0>BeDI2Q) z_|e#)Q0+l+qi*}1#zPp@A#iaZ=NfP|Nii;EHv?P7wU!OHu7Glkl z0Yd3EdjrYyBuA^)=x6g{k;K-qxOX$4?(w~~n+NGNLAr<%F(z!b1#Ho&jCF1A>WSFs zH_9^&TvKuwTi&`;)F~DDc7&`^a3LXq)(cWw9?gn~* zcvO_IlLWNJ5v#<#m%M9ruBH(9T^teWs6Y26wqD)JN>+vw`YMLGY(?-cfqz2}8W+=! zn@+3EdlN}O-pu^=sl-I2T8EL_mkFcKNl7k__;FPg1yf{)O;2&Jq%J+8j`G(>m6dqW z79BUMme7c+CD6Bi!^@F2;Ab727*8n)_hoKW%!bT;;LYL}8#Fu^5T;9;x{O6H8QW_ z(T9nLDdUuFs`2f9A#Ah#eZm1%-M^8{WR<dA)pdK3o4L)zSM`;)BX907{dw@8W#R9CTFa|=5oY_c1>?Ticsd@Y8p?<=0rl_` zf1FSl$$pcGbQ?#iLakAzC$V_d1r6my^T>PlkBR(|5b#*vV62CQEaWI=KzVZfBo&N|E-ttEGJt#39r5qq_(=WS-Hr^?up z3$Tg^%b&`n6%;LsAwTK(HJKhpomQ4z82Hw~1cpP~$;4hoyXU|u6pR9uq zG>vs_i&;~~pn$GQfQV-p8;>4P9MEaV0W>OgQ?3UmmK|Q7efMQ{Qr~kZxRd2n$ckhX zV8Fx?z!WS`MmW@DR}j!V_qH+xt>Tz((%=wa4HcTaeq9xd*JKiR`zjJVXi9Xr;6Ao+ zcefM0sVj89mgmxb&o|9A z@@ynksPP<3gq6A5|5a}CAiIVY=oJ_u>q0rD{d|8#ZXX%Z`S-6BWK%_c-4yDjvx_8t`@PU%&>$m5yQW zi`84zOWLIesOw>FcdF+`5ws{iHW(($ctIL^9+f~J=h(fBt)6hSdSDI%qvJNN=oU_= zKR-Pz&l}75qMrLkl}z&qBt4+I;|@>7c;#_opiE3Kquvr!4i`>-hQlEUb3efyUg4*E zX=K+6eV*%OxUB5p2yMj9uQo+%ox9z7T6@JF=8W7^YadpCf%r#+JJrLqP6y3o^ zz|pF(CZ-c3!y0=BzMP`!HO;_hlROUK)Px;M9JyY*GML zr>!vhs~D3-dvDPtJ+(8oqGZW?RfJKt_;jtG%LyGUk<{$vizl=@tiX2OHDCFvqbE2t z(Pql%o41P#rKRRMeM$|GrDJy!=pUz@{zw(e)g)~p<1i;#R^V|QsLE^>uS*T&eA6(#J}uLw zfU;zaKe#M%IRTFC;9m87IbS?qBYADZ4E(F&`*r~dQ`mG6PDS|Ci6%_kit5D+X$C(2 zpsB`yn$w%ua(&@+7ZUPI8?nAVrlwF2M+*N+s;RgMKi*=c_C_(xY9Q)-(SRF>>&R4zV z;vBxiW}k84M@B623zikO2~6%Jzh=A?Z|IY=&^|vDNdkOy2{h;Q(vubzi1=mu8>nNx zi|j9L`k{=Kb30xu(EEqH%KEoO?Zl|5H7SDH2hV-o%T=zbx715G19={9x6TXAzo(2Cjg_nXd{ zim7u9SU*U3?FA;2Ch)Z7avar|d8iSJGL^~Y`)Ns(9oHb~rr?AKz#OT$zVf^e zGpnQLE>Ge4MN0Wu^GrDQaz=mqnO5ckeU@eJ>(5*($=9-XUuX5L`+Z(~&(HG$FPu>M z#JdB-u#`|MNrDXQsB%_e8$IWJ%xX0f^|WSf{x@dZp7}I5ira_?d{q&cSf*PsqfB$p zk_P1?mDL4j5z+qIZx3gF^ahn01{5(eY$8D-KA7H=Mdm^~zL;T&p9f zB^iLQ#_@M;ueooMSaL^CCUNB?R#JAM95>_@;EfU`?w=%t|E{bv5DoTNB}r8o(x*`a z{9*n^Za)Po?@v}_xJfdt4G#t1E6x8W4zYA{1g@H0YM2-sNNULc{A`-tpUCaTK*`GZLk#rQsQE1`^d@!1r>y5wL;&O4hR+x3afkWulS&60vA zOU3+9klHOtr?<8Y=C&*Z?;5<>7hQL(8k4>;6R&M*3wy0iAb;X~(!O`Y=JKNU_RHaY zqX%OT^*~-7fmA|)e_|hs+LK5vX@Kkcov^MXX-sDd2~yb&Q9++{G*DA*A=&gOl4J&F z%d?_=?-f~AFqDI_b5m=488Z`F8o5Fv7; z&7-xyu_Q~zZ8DhaXt_V5037LSq*MuHYR!;@ZOFdSMuKGP$#iWZ)LIGDhAg^>Z#~`R zSad^PaOv%1ski>wr5Q@_ul;m`s_Ye>4*J(IMQxfMc88$NGak|(nMcR!Xc>iFX2IA7 z>O7%5WM?Re`DZz(%Vq*zzqudkLJG3<9A0~q-}~gi2Sm!;E}sv?_DI&V^RJHc>u0H$ z8b)t_v|~KHX50_Y-B0!3(Uhn8#+l9@g+(WUjhg8h&WzDuj>;8+!w6YK^6immV@vA@vPbT87@y0J>tqnpwmKTduP|u_@ZOZ!9L?(qy!r!Ad=a*Q~JL zI^zT)iS_ou;L$^83u1Mb22bqGV8vNBv~+qTbcfpwMd&?$*SMBpopfJ&+LboHxmbqPJH<~iO6rc3NoS`Q>{VXTs` z$Hs&7F8^TkMs;^}#D@11^-YyOuJ6{c;SU81f4gl{URkj|P?ACd;DuqP8g z4#=WyOH}xCTLyP4pnO}cQHIlOaOk;+qS2=I%+@I2pJr zKS(&~tv8a9sdM$%*GSa22{QGuBQkm%Q)E}geVAdPmS){CRzligst|Il4jMLS^dRzjr>#s{IT z18Ic`95FLx7Rs*oSy9O)vUdL7q*v`|E{5W-d*cd3}4lwIN&=6U(>j04u< z2`-;BG$NE0$)5_{=|N;8+tB&KLG*5*Qx&LfSKW!BL>i}1%c;{&F_G4V^`q=3x{SrQJyS1aP75*~37;opOj?sR;|s*)86oa!A5btP&#s}i z-hr+Vq8(~Vsv0mt0nf;YyvI;scn$H;v2|LKj<=BItx*Q=!ErET=`gQZi3*Zz*QAtq zH#QjT%HW}pBH1=fDcrBmu-@_Zw(%Eyar2Y~Gx?HOjLh^*Qz4MFXfv7dDGM14_p7jG zVEnad4Z0Z@O;H~;9(Ely)=2@S(G0;rrhaO^nRuXwNvyeB{r{Q^)~tGaVfBt_n7CJ(RFP4G$(xz1P@KMZJoU$^BvxEps#@9JFZ?FA zEk)3YjXP2ch<5)E<;*j2-!v&QH3~)tEiD8Ll-K9dygs8vyX_3eV!@uQ z5?gy^@pVNUmsjm$$|F`am9~j2PZ{55Ne)2ACge2T=?92A|8XFMxonF!h2KmF<61rW zK&3276o$E(lyLr#(P3L0EfejwEZpOVncKCD?6M{@(rlHeUtXJu{P{}(`CqhCG0^xY zKrc5)^WF%(C!+GthI=gDO-l5$>T0E!o|m4r%;I>XWuM@W1>9y;sd{K77hf}P5+3g8 z;=?PBFV#<~3qh!(0D!FGgg&(^R19%)Zo{&Awg1nG6S`a#5<5$SVmnQ zlvLqK`(gt9lBLt&9Up-%8ikI`-!d)|k|Lg>)*^>7Uqu0g9Z||y6wrGyPIil$dRhX9 zh{BnYV%o|iw523IHKhs3zMZI?*$Ch2K3H|sw#u>4hHS(=Nnp%NnjaKoB=xn>k{DJZ z){Qu|c&U97R4D8ibR@8TAczh(cBWjK&1EgwYovsqtc1hX{XFFdKHFF}3%6&49_(uM zp@$mWijFRauC^GVVHWlhDY9;3V$Lw!Pa;T(!(EDRCIbkG#YQL-o>@z!qGtYNSPGK|o5kc_E}(LnS(c`Vvmq+n+K z-v;l=6m7kL{eHX%ooY*aUeMz&m z(K1tlo>p4cMbx;xQoo@!>{t7DC|GK@3fyO_;`ddY+KQ-uN$Gs5> zf2d~mahtQMqK;}uKcWgF(n>E<^g?qgi_NS|hJ3xT$a;Q!ZT>LnVo7g1nf zu0-~}t?;-5s3|p~(;bAyE+F6yVaG=DR~ajTUpauVl>AVrOJbzYhvo))fiIaz3-m&G zJI7$9?vv~=nJeeK3e2eV9x6t()ANrNOB z>4T0sTHFVNWQG@k-bBF~=f#yL;B`IXG>dI^Us7z)bv!x}IdIaeo+|5w_0zFZp`R9re+vVNP_^4tp@{&WA? z-YN7ir-EjUMT14u=vMD?qc0xE&Ui+>GbX6lj#3_SACloFt#*nu9@T~8F@r{sPONq4 z=WxL=RYMiev6M8PFOA*q5KuTm+B!8RIhK^lu$##IwgfkiG(tZVXf(01^G6x!TQNS8 z3NqMPsJ5INCo?EtAc{h{>o#>5tL`v}C8Qr59Lye;3B78^pEm5e%)_1l2$k zEYyJ(uFh8L-OCFE%avTjv=jXL$5srjkg~{oQi?0ACY(8L^@|O zB9tI9sS#@G8y{M;11WkzkvI*als_n_F+s3$AX^WxDUPJYLlmGG$htWvQ>Vf*vS3-5 zQ+wEz0p|}u&%TSq_Ez-v_M^Qmiq~Hq$HpBV#AO~hDrH2TR3jBtf!XSX`?)c6=JEw( zGN;gF=okqEl`=TUXYRZ6omf^Czmbw9XsTAgNc7DX7YH*`bYVp>?+5z;jd{dMO3negiT)>AUL>AW0oA zduVEUX$$qUb!+h8Ev?e;+`$Zf zy4`rgoEP46eZ4#%Gq^lHb6el|+&!eAHg`oe<}9m4fJ#x1^!UhuH;tQ4(%o@JY2fA} z+c2&>t?FAhU)}i2FE;gy-xd-0*CFs~PyA{L6UTM4wMP{qIJ=r8G-r}zVRC46iW$)f zG6`gpWSB8k2C|a+U^JoZ)WwCW4Hs17^%V~N_2#6iIYAtIElC7aOQq*J;5{K>Oj_u% zW9|t>FBs>Xzm5r5H76aKQ=bl#rL^>AGMib6{U>)B#9(ZkWdMkQHFLyf_*|ThJ9H<&=^(HbJZ9*Rl%gcSz-CR z?8`-!c>a8&uj$Ed`CIpo;~W1vl)tW7l%3r?2LlOQ zjdfCHU_uOEKfNA--VSh8Br==sg<-k@kALsrcu^+ftRkZ=pH&BoHjHqXI!+A4b$0p? zAs-N3Jr&>w4j@Fy2a~-3itJt_C8WHmOu?#jKrSCcohgp>@aSll4W%TbovIQh$g5Qegy+EDf;~!v~(U; zBU!U|=h?%{mW4LGtGET$^ezOcLY7Pf!y# zLt6x6(HNxE!4ZijprE$Vfo)nCf-GuCz8np4L`V_L*WyNaObU0>h&Y+CPf1HqOC2a{ z-=)lpDTH#H8jrd%+j71wxp7GezOT{pcw=|s=SS%!HBL@4V*-=BOc&;;tyDQ~DV2P8 z)&&3JErdrrsX)c4)Y96ZLxE-%LLI9S>5)@=D>FEf(HC2s;|0nw;hLl7N)eTEq@G%i z-5dRP9;)nq%vi2fG@gI5Xc32A9s*U7QM@nr%3_2=56*!dW+G)Vc`^fi&6jO6tl!B=moVbG0u5V>9oMkba zXz~`zB)qy~fVNjdd6E-Pz1DYctCyoZ(0e1CP_@1O+{nXQ#?{Y0Fcy6E{l90^IA-x= zcK(g;V2NrKW*Me+Zz-KK6UYBz1v31YWZT>ZU znDfiaSMzK%Fg%4#d$(1#An6Cqu87P~L=RWa%gt8_C{*%G|+G z4^8+VjM-|Oc4ve0q&qssgS!%Ta*fTk5B}#5F{AMhu3=E3>gY{kyd#?YSiZory7I#% zm9{`qcsnQ$MFu%UcQPYbOKMx7?~61GTl!nZr2 zE~p|Vk_=op0o|lB1j&LO9D-h?z&e>AE&=;x?@V5=n(=uEK36`=O` zLR8PHhI66>6PH_{E!IPAE5?+W7L*dN(qYdhZU@n&N%|qCsmJqg#9$^3jSRh0J$-4& z^DQW%m#R`pu0g^m6#4{QB%s^d&XbZUQ58DKlx-#t=@cG;{V9w-l|q1oybLxDj!`<7 zjZ!?dJ%R%V>E%n0+xBt22d+3yskhwsW3%Ql$_*)|*W1p?D%D`Ai+355y|E&bKE8|5 zv}~i!jcJ^2+MUh8OBy58wNhDtrt?iG%CA8GIyVw~_EM%ujfeY!80WGvu1CO>5&?_O zGog4z113y83zS&F{i_BKbqT#cCK^=A3vA}*UoXIKe=s|>*Hk|YhNR5BU5HF6mD#41 zYGy?`1E9nWmQtfJ*BqjbA3c2IJ`@uFV()+yzkPN1$+aCmta?G&+Wsa3UAYeXh-33W zKV_0gVKq1=!N@*6>gE=Jr4^ErR9TCw1dMjK;03SdCpYYkG+VQMxTx9mA+fFJ5%XWV z2N&!b)4p@d`Gr3hRxc7BT;SO27xeatsWd6gYgF6f>cQSYIb2V*!Fb>eEFu=#@&$TS zr^2w1;T=zbAf`@7nA2g|IZe2HLFrFc*4ytn+9IQ9_lu2Lat+Qvlbpx zE1muIQ;P4Hap@%J$lx*DI)U4Jh>~Z{E?HwUdFIp#?mBV} zz|Z;;l+Ohk^{VD{j?pw2Lc7a{S4J!}uacdDg-4nKh^cBFPSxnY->g*q>iu6Xmtu%S zyG|xiQAZ)s^i$+>QbcZP%W3;sDkbyOcE82%N%yD><1^$~QKi$Aea9-<_3#YY(|c8qas2@V zGTLz>SwGW?)y;;X%NBOz-;(mQVPM3M$x4c&c_L_LobZO*&^BCySy#-aY{E0prxTEr zA4kjTz2sP02JZl6=cSavi;zUNcL*jk$%8kt)UxUak))}`mX-(|E-XHl{6$M7aKB9t z@{}ZoM|dPiHzVwmQi~{=a*Qf*V2qXsM{6N;Q*N??f)r|XWvI25C(HZYvH<33>7~lb z=^@QhrwaX@;;!Cp>D^_+?35Nx*jB<|r7YpoyyMs2ePUkl_USX(I_*{^3=)a%xlr~8 zSK6@CoD3=VDUqI?Z;+!hgVh_T!F=KgyO zLYCfKh@rtTq!^iwL|o^_gdiqNB=RjoWga)p8jd+g|9LY`qQ8YHJ(?Vs_$aZlt7}ib zsxvscflOa7D+zmRmL6rMk_&?b)vBs#X34W;;LEiT6TS_+4#RtuC^5+3&W`Th?ZNJQ zAK-4g+~N7|9u|Lmg#U2;_lmQluU&NJl*QSI9tG2sjnf8QjeFaXJO;93^Ckpm)zc(7 zfe5E?R1+J8#7^imdx_94e`y=I)p8iJZ$P_j0t~Ty$O}miVAQwpG%Nl{ZLcSNt|^E* zw3pGUZ(^F8vxT~fKi59QFNp~J4FWSw(BAP|yLWn`NU{Ib6j?I#L(5OXAJ+_Eo7?bE zYa;dNE^-Ta>p<-GQc4!|gBb099psLhuS;>KxpeV9NhH6cXLK}=;ZV`+(6e^(ZhHG^ zCDfKMjy=kSifQHe%f4P%VaJpiM*LQlee{vvkL`M9TtQuE?=^tjA4)BoTWtKrIm=bo zPor#PhTfV?P=%hiNkNZ1oBFhoLw-}|$l}x%Ay!;3eD9L?IPAX0w^1Db;`hb&Lhzv>T zz~N!YWGztD+aU3c!^cuRUt-4fe~jNtO5y8g9v339CaR1C!b6Gz@Yk0({xn~Ula+Fn zWWQI3?QIJ94=RzQm9=Y-!S40rNFI=4tfL)V%K-G5QY5II(qz|wQ;`=48UIip~^1LN4|7bsPPi&&TYH>o3rJKX@hv= zc@1`SDexL)lAN?kKrN4}d*avsVh}(6`2oqDZ?9qS%-R5S>*M@vu2g^QI#*uJHGi7? z!%Kd9R?uFLE3cdJgIzEFeBH`fSTJMZw510QrZ9FOiISNHXeUr75OwwJe`zdd8iy)X z#yDe=8C6pXU>!}taY7xE2VLkP)@utj^=RqcKBd@Tu?J*TBgxTW;^#JpGa9*tG>NUl zB+fO1f-Fj(y2B*aRvd%UtiW{Qd+@~xj8gr>I5C26El@v}yWav4$Mer7^~OXyhOO-dsi%u63O1RhP2IM8mM#%lw0zZoovQKs^-U$GzmHR#v!xwh%HLu&z{Yw1gQR!npUfXcR%&&EnuU)?Z&M^-83&lGQzD|$M1A+{?5v$d4$5M)@r3AgV|gdUSK4e`AULi6?I=zP>g!2FWHr>@=S=3K6XM8YzU%R6s+4 ze4IM&NW~n}HJPi<$j`fm1Tn~CK_M-X87J^DV&M^IY=|TsbK)KcNn~-yP{wc3=q){= z)Ox{Wh~zT5>nK$EUAJp#LsGAM$A4&d|20F*Xnf42TxiD+${j`rh%?YoswRwb^i5i- z88CfzgXSz*nIHyL}^;9;G2}ho9uNWtdFVr0D)u zsI&^wb&!y;S&(+eAV8^XXM+P8TG6Vtq@CZ^PaO=CN#T=7pL9gk%sK?(U!evCq-vR>u9H9^1r|iyU@^Lu zjMTz1IH?D$X)$%>R2RY%?x*x2F#1je+6F6rK0k5QdeZTpNJ=(q`ysobo=KlTex|0VBV?w>xn=`RPj?+M*-ZprJtKD+Xz-^^GW zZui4X<)D1M51~vqX@1us!VII3T9L~doJgvMAZaF}J5LB?atq1qBD7qy3YxwM0%kI^ z8{*MDln}PaGWQ?j#P8!iYf>BXmj!7`l8aFG zi79`s0~(H6&S5UHgn<9(0SkR1tqPEPv(~@$k2Z>vot=@)>s}ZZ0Bl7=elkluuNQ zEX$E5O21CkxcWXkx-0VL?&p)wQblrSQjTPyM0#4Cfs?eS@ifWlP@$GOLC7*OB;h0j z(#YkgptB0bJqiJBG1O<#SdsvV_%3AVq~f)J7X^A}UO#j_nMYpz`+f%2wunkzam;_<-D zOHrd_s8s8^jmkJ<(CE#!Ky0d6g6W|wsUq7cDB)A^QkrA%kt-Vl&NIJZbRM9pX zNJulj*M>xhiu}_S(5sdHGu;K3XB_H*R>X+}s*>eHmPgNyLQ47y)LGIkH%(GSONUxU zdfpm~W5xv(7gMcpbhzO41Eqxriqzf5{3`xuOf9)>JFi7LBDGh zb7nbVnA3>ljvd4uk-$&#d9gflHtKQHQo#gA1y58HGAIfXIV4D~YE#H(WoQ68isD0= z3?@#mEWW#r=pZ{o-?{NL`&q`oD0QFSnDL&l034yHhhc1z(#BA@W(2gEUR3*1L5ujrLe_k30*TFM^;w zA~~j(a2e7tB&tU3z^n;j(q%tpt^xfmDag_~(wb5M(8b>Sau^L~RGl%EQQH1* zByhN1{U1F;iYNasM_`4?zR;c~?Vd$i_$i3*bC_`FGrr@-Q{ZNhPI4rj=%vQ~XQmWr ze(x9y-QWlFa#E^p5xAI-%7mGNOz2r!pS7wx+bnAD^pb4!}DNa${eR6kAmW>i*Fdx=m5?`9A3rl_bqOQmuD)W|pU}3`Dg!m^HeSwkEqx z&7fzf8_ak=b%%^&f>S{IgZ-Gu7r;0<1Hq&OGqnUe0|8WZc7VyVK@ry>;*LO)pi&8W zy2U5k;L(vTMvy);jlw_%a2TNM1V`M0kvK`>P<^r~1632zxo1le3}=uYp_gZrf*JB3 zv@=C0Se8I9`K^>nsDv{#iu?q%hEX787-8|cTkm@@9NhC_m_K{u=}d>0Dl2|QvgWOf z=a8iM3?6OA3&$Q8^SM!S)J4c{SOxDpyAe025v6XKnMYB1C@_NmBZIhidZoDIOaqpl zY-M)+eoXdUPvVW|f*_=c3YNfy?_J`L&qT_LG_f02R8(}W>LJ%$;+_;LDS#toR1!QZ zQRvaOc8myUDWuYVDC?SNHIpHI5Sk+BH|_b|dhDd#Qk8-fSi{g$`|k7#*_0{4^lKf2 zLCr!J;YR$3=LA?t{pST=^p{;$^KnbP(FtQ@WAE`2UxVT@5{4yxVv0bcL_FcUWHS_H zy8Kjx^jy7%DCZ|MD=w$y6vqF!9qCz}up~;UV<&+7_Snz<(}?>J`E7v}FH!%059zG& z&w0GJkW>95vSgP0a)9HOPr(b_yW!sz!{#V{`O{0(-?=-_|J;G+W0*q=#w-P>V<|bc z6n}g|qE4sMOq3*US~`uL(6iY^tQt}h8|Svv%kYhF!tl6J$4^VD;+ms%rEHW@a5s-0 zJk)k84iSORgFrkY?@m+7P*WR&@VpmKkD9K@1sS=0=@feTwiHcL>DX$cNAda+L2=!? zy37P^M8Ikm_smjD<~jq}%5_RC*_iYYWr$kHIhxalf-|MT^t?HQ*0-;c0QXm`bm^_K|UBFw&$q zm{kKo59UxQ{1HjEU)8T6v4KO$ng6;Way0(tl1{ffv`0^5uI_Y&5GPK>?vV`k^qafp z%JIMtngVO9i7PR%Ie;ZP_fPcRnCAX{vfs|Qxd9E0jnqLxHM^sU3-L%FnT@SN*h%jQ zZYw1#Zh~uDFH$6aRX{|d_P6qprk9JHNP)t-KEyiKL#nJopuH2L#BSQx(v7~z23T!W zrl6a;a#jh#SvSh$xMq@BxUp##$?K0FKm%ja)KFElIF8zP|@?js5CH=)&wYE8^1jTRmDbp z@6QK*_Jdg!4}MdD?|jme`ipbRew2RuTgeNrKkf_-QEEvm4J*&eLt|4K61@NqwFY;r z^P)gb9wo$S$;_GydD(1)y7nR(+yU46Rm2D*B_1hAB20=j1r)W~ViZva$?;bf;_~w- z{`#g4_0x%=F4K&)@z%$GH;fwwN0X~Up$y*bQ@%1Vh_RYM){MjgZR0Kz()~y>EQ5|J>6bN_C*nktMN*2;DOvW6B%fjtZQ*2H1x#e z0_0R;jDiM+GKxAy3iCC%a*CjB7^Ag^if5=0^1--kRCRKjTzVr8`p~;Bh!#)IE!zMK zxkpb}Af?uPDjQRr?b;D0mNbSaWEWDHO^X#On}AD@$}_1WCyBV>55zFJUV}+0oTyCs z=dz?*G(@e06Dkv>VF?K;{g)0gqwzNvcCIOOqqIVbNJj>p#4XrK@#P82qNhlsGHf1_ z-1SDQf91;^7+azS^Y%CdN~}4j{bcByN=E=8if(sP&ik^H@*sC6=)()?rSt?zh`T8r zAI73(6y;8~VBLMx$ znT%HO3kn^iJ~@K=5?UaOVPYDd2}2xFNF-dZ){K`BZLi6ip* zM$9NBl4D~51|%aC$dIl`n;UWBZ%C>M9GxAKQWXk<95@pE3WS3gBCit%m0z+X|-++c%P7MYP z3g^+aG|>t}rUA=XNvJFaM&cuKEs;aFgkdP6RoC87uV2A1c^(wIsJ6PD?w#W0l*u@S z@+qzqc&{C6l084ayC-&c?i?i1c%Z!>+n(=aPMQMt*oBhpOQlPRbV}{Y6DSRF#|83Z zuX#K@f7q|uKHcE@IVEM@@CSpDNex&Q;Ns{ZhlFC9AY00m{7%kAVdHz_q0vziqJM8V z?82l*y2mp9IL=xVZrm9_%X#(k6TVZQsT=RY<@fBtHGkMHo%g$GL4K3Z`g)neyQ0R< zAm&ZnV$5KMOwinHktwwWisWfWNp0UqjE+e=!0j8k7{1Ok&z)!)t@?KqL)jiAh&w4@JH;!hto(cy&WYR+Psm=XPWwqt;yf zP4&vd8}Th%$!V{xk|Hkm)C4eEqQ&EUYKn_a11!x*)bvS1u?Xl7oHOzEA_lOwA&pFu{UK-KI3 zl@_S<5LF{)lEC6ACpG*8wyy5P-~p2UCbh|DA2z@B{C?SATA#>3IU+|QYe6s=gsq6h zUNT2Rw1hNthwzp=iA57LGp8BA%!#s?6QXVq(()J^%|K4;&e9?^+I9r-_%m)ulw&Ba z4M9#(xQ>XcjEao6%p}&exgD45>0xtJVBJg9B|_=Hjv)r}?H;HY0dg`X&O~CQ2V$e{ z6g4=iGZw6z0NK(!M2AxtB=)8d=z)q#8vc|T>6~CyjRpzgE@HYzjR3 z{v%XVYM5b5WwBaNet&)if9=OTT3@s7|Iz8wS*V;ulvS7Gfm?U)=%8~Y^=_PSp+Tw$ z3?AIj>A=GqUC;2cAWO!nhw}bgk%?c_4adHHk`3plg_Cbt!S-BVXgnOqoJ{e`wF{N^ zEBnW>_eU>5m6W1wuWr|_WK5>5@t~SkArt3NopqKSiQ+J|@Q#tAEoD5`?SOmzS`s&9 zkbWZ!Ihm(1w6}Pdk<1npkfW!yfMdgrIHA-2V{fiYZ%)vt5Y{k z&nqE|`D#!XF`@x#_v>-7J;NWa2c0)PuV9e_^YRqF6Ep&828AXQpJ{q? zQnMVdkr9%{Zj>%i8!wnH#2-I8Uv~wC1IDD55uA$5@*zRCLy?jus;KLWDwFWA$<#aP z5$4TScHyR_p#t5vW^wmk`QNtb? znLTDuPlk*}3I?)dz-G^csU@FWoqG@B31U-s`pgKEs$mbgH3z!;$-~4((gY;R#gL^$ zB8CH$71fb?=omd)0Xm~95?HEnIM8}G z>oc23ik35B_tRr2IMxl_6eX;rR@L>}UqiS2>lsU4To$9qR@SG*;3krxttLD8idt|- z=b>U25id#kE%y-wILXa zz*JERp(}vQhzogzwFprQt~^2JVn-d1Ni}OB>>|RoSqoQY7e@Ay0;e_zla(z+|9j6r zTcvLtJ(%G8G)eEod2_LL`W9h;!1v3G1`>Nlbk>O6tfPMOValMqwFh0#4Ee8Zjj`Rc z_flQRK8A*RHD1uAJ6rarhHHH{KnOu6Tx#%EvgN{JV+t zOE*eT@QW<2e?ExJjBTk~9U4cWcEn|g491RMe)rO8=9?abo7j-~Gl#9j^h2szJrt@i=3XULv}Qk0`y@tKAUVX6*&L5``$Hff1`=Y!*n-K*Gfv+e zJ)|0V!U$eDKV$!KA>~Yh9wl~pli1Up_fyI-eCU=el1Z+*VWIWA%#asPZsc~Jw|SUo zwC|0^r$;9IG9Qmp>FwN$CS{i!O~XTvtt+_OR6T0x7*UT#clqOW))M2c@qq`9nI!$X zVsCg-rB*XZNu=ae?a}^e6}p6Gl(gypI&OEO`G#>&v5)S(GUW@ZV0;>}H`WPusp@P6 z_j&_^yq#X|#s8FvP(06nF9LI@{&>qD^4lDlq`jz(y1ItrRF04m*)pbkWRdZ%gKrbB zA{s%X5vL3Uw0V?3wl(Qu6S~QFs4q_0*bEzP2}o}x9lyU*pO_*gnZi7MuIrv&>KuAW z3YRRau{T_Vq4ojtEn!eul!d`=z!1%OCHfRx>Nq^)Tpgjgw~;!^vgrWL3&hKgt1yX5 zpR*^(prv+MA1NbhB~c^?4Uik6I7p&k8JY{zl(Fs*;!u;tdnO#mEENlzGl;PyapdUW zWb_Of&HkZq8uxe<8{ZfYtRTgML*<@l1iX0@U+|X&hM{khx%RLBy;tVQ9Q}Vj(D=)I zeM>`$V$z5&ggK|rAdbR5L|kNNPF@}F4);OpRR|jL6}zN9-*VsnQEI37U=-9EojW_h z?HwK4QqIZez5KK{5nqMX3ycNJpB*2$ynJX?;W@utbc?c*0*sb421p&Qaq$9}s2-?h zsIPVB8mP#d`0<~)?tNaswN678PtXE7cZ7{OgLW5Y6CL6*+o)&3m|51g<`sWpdX@eM zNis8AQK}|GG%wzblcQ=AkuR57G4vM)`DKhFP6b8&6ea%jP8fTLDl)~HB)3)tLdC>u zNJ(fdtszA`0qY;|U}z|p;xLg1NsP4nNe@FpZKe}aC^i>B*+=cQCXywuVc;4GBilng zu((i2ZUwdPlKy9P%xk#`4{!{v={&YdE!Sjz zvv0KmdP58{qqxI53mHAvaWZ#I(A?P9C4i-Dgs!jvTc`=Vs+1fYCX#XaJv4@Ibxk1{D% zD#z0FAIUKAdKK6dOWklVNAmmYAlv$)cFB0WGRvO64!js>{HNdi6YVNpVX;v2-fH5K-@KaB=Y*+w0f*iX6ekBmVVuHVt)zm}Z+1hYc^JoRhn zxBKJ2j}0YO{VI+7L0tl0zwG==^^1=wNUC=sXZ<-eum$p*YKwr` z%Yh*M>I?k zyPI0N7Lg8yhJpqE2=PiNouQ*DQFSwvI!Xt29H0&uT3K|uNJU*q?X5N#NSG@@k-fTy zh^;;2BsdlZLyYUBomK;VZtxWG_t3-ElTiL9_Y-qNDx+n&!;kA`;$|&%z-Gx1ZEtH3 z)daJasEAEW9-g?sLb+-VL(q(3~bVDJ5{iR-T0tvF}&HS{brb=>l;KTKNoZhzY! zt?LBLm}o|14`rcTJSr2+MYk2ErWREd*BHEh1vQXB%Z1=}NN{l__f4Y?)=O96-1jeK z(v9eWw>CtZ&z-AfdIm7;qc&8noqTAL*#GW0iKFSz9f@FKg%$-=N=nn~U*IXr;TlJW zOZB);s_0mx=6^J-jC;@BpSDd>8f9k;2CpcaSAyrG-WO`dVof_JMwv#&bpCc90tuz| z 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 G6nDi)HSn?pukxbH*`MMkjq1&kC-p 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

qR8eptZ#x9omJB)mUiVryeehZb& zpGs|-zgm081n>>{dwkSM5Pt}E*E!v#mxIOw)M!;ZkXT((9xyGiGh+^eIoHu4<1Rjq zHZwP!r8@W-gfSn??lI7_(q=s<0!At{DBeoAe2$UoiM%NTur8YO>H${qKgs)lR=k?N zxld=a^ai0}s>jHD2p|t0<0-L9QT2NFz?|lN{&9ZA*I=BD->mo&rH5f3KdQjRI0CV7z!2RV7etXm)DmPX6+yMM*P%s|s4+p5t*%XWo5H%Z$nT!%X<#BuFQhrkH1XZYl?|7!LL6gcNt z${*v!|BxYw|B}quatx&fNbxL%(IwT2gtHHohALg@)PjBD zk=S?6%AfpcvP8b_yxY0?g}=LOJ%?yl_t*#i{OtO}GmVK4FU+N1JUlw|oHILSskR2r z>t*E3RlDhqO}o3f7M^N`C&VN~+8u;>dfMgGn9=atcI9k5i!>A{#w_0%D1Gz!fo+ilWrO)XuA_ydLw{ z540H8)jn))E1(*#XN#+#!$172k6y2Dd8;~9Z?Zr@E)h_+W_zP_kkJvOQ)V`8wXSg# z4RF}`sqli{>}vj=XjKCr6}w+Q6CwCi=_xCt5XULlK(|Kds?IH#3iK zz8%@UHS<{;7y;eQffo4cye-vG)8HU^jK1ch7(~5yT@{tFkO1VmLd$d7(!leM1!7G5UE z_&TYGkv*!lUE+Z0m>jWHS{re}{sl~PV6}s=;>5^uaaezvHGYVS>tWvOBX?#H&N(S6GzW%3>?9bpZ?F-MXQ@g_TDATapotL4 zQ3&|jr>UAi`WvVWWEd4$g&!Q=LZdQ_&e`4lu-zM(0zxKB$UP#VU~Tb89ZL^ zMaeU*MI{bWnACU<90FE7<40Y*L6X~fX6t$Iq*?b8MZT|rW3)#oF}4&MItREUB{TA< z(Q}G@1&IdNqCgCasb4Mf8swKecf6Jo9VI>5%eqMT6J?M!hC*Apzkzi^zWgktMm+cf z@TkJvhYI(wFwXP2v1kdkp-77Jpod%P7}`(}0%h4xM~Hm@Y66j2{{*xi@QQ*wFuD~1 z_MQfaNogX#>>9GwEQM5w_mmM`BT0vz#R}~jDT5tM_jEsea!1?BKfRIlE{RrE6_&n8 z3bY(k6Hr!($8{jBt)(^F+uUP!Zrh0%36y{YtRfD|Fa}&CpqgtFL#|#AvKjAdMB?hR z9|BSPIgrsKrKG(9)TSQ!zaEqIMp`br*6jy|xV7-wULf%~bIGxU#?LL-4_^TVArbXlQz`7? zaIiEZQ^T3E%sK-61mObFd70}?;T_V;MAw66zsbPGM>xyt`MXBEI2su%G1<)!O!o8d zvE1+Ilq>H7CKsI~m0Id3#&^8VcJ4oGG&|N}pIc9Gq(vJJZZCcAtvlV%b}U%?tjnSI zZ@$`7#k;m5(5ISt`u`aCG#mtH(Oc7=S?(&san?lFy-zq~|Cx3@p^ zz`uQsZ>B$AcZo)Me&dBAFsI;6DGI#9L93wC)KiG?9|TApXjKo6WqIF z@X;G2S*S6;K@WYY0RkruadHxj^@RF&BWYTsls^cI!$h^4P; zPm(_zH&xwx`gxs@NI3vhP!w>zR9_z2ukq^~9DWiW{C6>B0xHMc$m6GRxJ+P2{q*S| znLjAZ3Pet-(pZnr{%iV*z5mG*cJe4P*DlCjLQDjwbC?xlRK5CrjPD&p_cG__L6W#XgT1o#Sl4$M4?vk6%>)#UtDhm zb0hD|`xmV>pkzrhtC#rRMb=lo8Nm6*p{CQif~WV^-r}EtKBYD-m43Z$IRUCk~p!E)j zug2LB0ga3{YQf+_uwQ3S@Of5N;a;rUeK-!kVK-$uZPDmJ59b7|GNfXf`YLB#2ZY0i zBs+&sL})!~$1%wJ0p!php>@?5ZnN(hMC#4wn#42X7B0PcLP?KH$GP3wk*l`iOLIF% z!{Z&Jw!eVyL}%RofX|s>j>7jN*Z-HRW}j(Zw)2Ctwi0A`AiSz`_q5uvaoWG1R&vL6 zE6?DJ58zJAv0(#{cpVM&VSl=qwS}?ozk%htk3{Zjm)YMVQ$2yQjh>NpaG=X^d4MFw zL5BJmMc3Ne3!+j8Am{V+VU(LIWSn6v$F->|z}rDF(K%3D0!@Y46yY?LGF}O4#T2L- z)kjuEq@iMAoCW2Xkb)Usg@rG)!$VQzIU(vlhgF$IcAlTt`QgbkfewqRzRVZbunhFP|`roMKI3%{<`nW19{$N%5WdTuR-RtnRND+i);V;w(evt(TY%(Vzm-8`s))>T9!9_L2JeaaHciI}< z0HGOGwJBJ0DU>wK3c(ND74{I$sbvz$+F9Q3e9>~iuoVvb8cCJ|0Z>Vni#kI|mshPT zXfOn?+zvcHD8(JEsN?u-Jnt~nsmZc~DfSfAFg_WZ;z@kHG7o2Pj>W!N1VLD9RCWBm z+888cexT?o>r~L%^D#oGQiR@lYoFl5QA(Bi34SER2Gk$LL`0*(YwDr#S3#f$Kkd0P zgP%MCBOIYd`i4Pq4>)fN*vZ#O&V3|?1<0!+$a+DS%d5Zv%EHIkz$na%^di=a~CJEE58L>B=ukQ;_Qo%p6iub+;N)RG3z)sY& zUk}k4gTAm=GzbsyETAqkS6lUZVR2!E3DiA}o!S^EwM$Z7{#2c9@X zw44O35ZvPori(+uQXo!a-d6&pfe&l}DQ0Nv_|dpG<6O+jBd6wr>vOPYgCcH;w*yb9 z9$%Ls5~e!#UZJ7cGEH1VHIe&QqsrGq$59rwa?9Dt#;bt4|uez1oL*24P_CpRNC(+ktrQ^tD zA1&H&Lz~S(^nG-7%I0PkY?uRT1GmlUTGEcNPDinVPd2YwiGaUG+wsdYW?ZVUJux2%lXKj#nZZqfjcm^AMke$;k%P&7c zTbXPA>VMf|`#Omg^wGv?)izyJONr-Vlp>;o3C9~LoPfQKOzv`Bl~w;AU+;)J?`=T+ zmt6NBe$OuZz^zByZyN1wX}#fStn=GmZEx=CtAEF-i8k|rwsH$Ri+}viED?5seNFy* z{_Sghv;6t`OElV;RYL&OTmYwu>W3b-_!wSm!y}f-(*dYbaDWakl) z?KLS2c#s+(QI=ak3;Ga{(S~rD*6Frz5Wv3nd0Km32D2iARHmZIgV1##3ZX#ep@8IT zB)f*7SDsk*oz^jAjwxhiP@)MF@9^O3F zd?imb(izPArWkcENP8IDN|86EKcC=9PSY#Jw|mPM1dYB2VZ%GnWaTmmoKPe6eKnrj zhnu1Uxk@rZ&5Ti{NiFQTvidf34Ge zy%1%Y=+y=}4NC_*O|Lc%xyym6U%bo(@V*yW{tc?e2$tka*Aht9xQ!fMcD07drjRTJ z0v=>|6$ER-6>M2eAYv3vNA+Pgc5K; zq}aG4s$4ty9Tgk8cC}NhGU4+KE53doITtFl?WgYg{Er)-tRG z&ykdyB9w1394`Xrp)|k;o9CMOCm^#L)+53&L2u9S@&yPgc^1CFeJ_BJR`|YNH+7W+ zPaL3^`R@f#D%z>_WaDkT#y>;SSXuGgyGZVPLksK?iXuKjh z(eNv}Y!R|(9c1WNOKwf#ybp3}q6^X^t;8{g&|M_4h{#igOWR%q73Nkx<_)Py*bshG(UEl*f(paX!;xpJh#6 zn7?A5e)CT2;yi#zWNRQ_7k8+z5E7cOH4-q?)DjDzE#G7Z{Ex36yEFbrmrs*$4pnb$ z4~LWA|LlDC4_#c@`{QSFI}ROfupd6KX`}urYouix1s#QtD?O7HXo0=1*Z+Zk`&!>D zf4=S#jmS{T{S_eJ5*fcNjsLX;;#JV}IE7>g@o=RBvvnwXi3Y1KXt_q&BP-l0tq?CL z5s-qK3F2WF{4>Cb#&yYThB>D^Y+J#>Pa+U%g7FMr!Nk-@$swhT1B4M}SIWUt1FJ%K z8-R20_hQ0>)=)XFz!O-*_ru2lpjNg4Y5RbE8+knyfE!4*}|kd4_sg5}-a%-rB|Qn19AY2T#1Yr|Irsc%?NwW>u(Aubh!Blugu5y2ybKEFo$ zMh9FBzCg4IMmMub^tpTl`U1#7k=YSGod%kYt3(JhuNncrwxn_FO~_dJ>V&QH{r(Q*cI#;yrf=O?79oYTdV$u=N}HWUW?Fb@$x4rHFfEn=PaJ+RwH+GR z1}-D4fvNFo#Jr66rTWkD;j|?XDKM@b6%Ex*W`KK2WmJKDR(FzLQ{`KN>)|$XKn`%5HC!;I%y=vKNEMWyBIpw2{irT{xPsOQs8#k+1w_N4 z6;T5!BhaL?o|$0lMQ6gvA+9qM&@AwUvBRpI7f7zmp)>=b7n2{?yPiFM&|vEpHU< zMNk6uXX_tBRDu~%4!8CSPqqW9}{yfT&%VhQ!NVEuyK}bk-j0=cDgbv8uOxK__ zU}@zv8zMBnW4?=4%Ax2NTWk(3c3z3zj>hGq=t5LAZpk zX-Dyl8E~hp8`Y8wxFQha+t{mzFHPH5yC1Zp{Uu8yG0%XW`Cj6MuQIBg=gB9V|8dUE zNoMBotok(=jU;Ma3APeN_-WV|*|wdGoaa%{z~b+QZ&y0O$K|~q7-5dmXtVY3{4$W1 zfozzZ?GyQ&dj^Vn_KQV(X#SXe^Z}AAlJC%Ji^V3ic-R_jAcy5>Xo4723$`rMQv^HO z`g(Os{XvJKtjznRIybI;|H&d)^VZj?%XaDSo^SiTZEw2KdT&#r!+8tRn?S`9pzxeL zhgEyH(Dhw)1HbUEzw^!V@9QqnDE6oJxn#}38M1yxlGk8i|0_D-*vA75!VEb=p^@f0XZ+;A7KLg zMh6Mp4Xq5Q;-08_V(!NpiKa&`quS5IxKA;+p`;-;M6jUd;6UQz3`UK_oQYAU^Wvf5 z=XH#hTMa1MPgU;@^3#%wLRM?0gmcV;uS9il3?rGhD#3xX7slcl&ul)0+z>j_S?K;53jG{G%{ zS4Phy@I18ms)lu4sx<+`v34 zB!oqHxGLc}J`xjEL(+X~dG)y>Fp)P7^nw7MXkBgO^%H-LVT2w1@)}$}KZDu;_bCV(T%ghc__gW6 z5|gCY4X-qtO{8oud$u>yZ9B={egZ=J_R%^!#(DS2>}l)q50MbFw|UO%m;)2UG%wGK zWSATrMe1`4&Ys2f29gfe@+yfTNQ_+lW$Lz_f1Lqonj>-jDDTlfP=jb1wI`71zhy3D z&%pcG*+{Fqso$pX=4p}_5MC&=43m6zwb}lJw%lp<=5wIgujQN;c~zNSoDugMw6W66 zK=Oswl699W$HIRIvUX({igX+O?zE^xldGnzV6!_pGybm$b%V1HS3TG(Jt}f7L^w1kKYj+d2NO= zkN=DSach`WQNx%ZuSGx_Y8^<=^}5I=XqZpmN@u{t07*TN0bK+^lZA>>@`oG2mgVDph{0Rr}5?}L)78$+CMzl zlFCuEai~%;sv4&EEzZ58{<)AFKD*{hFcRV8luV4`#!mqtV+neICv1*4R)IfP%#I3S<;umAM+K z6J>2&!)`7CHdmIQTw8_HFtcThGzZ%~+Dv7N%V0f;#TrAVu8~}|^>FBF@Q9{oLOKy= zMQtCca*8BYSldC*j#Rf%1I>^WIC=uCKrjZjFDtJUm%GL^|D>K_i|}n?_^)l zs;a}~GmTG%AJ@=&p!@Z6oRIun2sJ{2;9KJRLXxZSeLM-Kco-aT8zco~5>AiwNY$+2 zd0Bi}0Q-BWd&63t&374k9^W6TYVB?4GXN% z#tOim7J5P)@`kW^j*3e54uFPngVI=i)~EzsW^@RK_p|RE_#l4BnJx)knTo$6wlq>p zA#g#U^PFr$;RJ-)WaM~~Z+O*oK&?a`q7nvho*IW1iN{0GJ{M30G6PNr^iJXgho&m@ zQQBbs<$;d0qc%u3pyXK zFlUdRU9}54kTYIFSpi}8jRdY*d&GX8a{2@ut)HxHa6b6RS$J)#`PDtG7JFgY&N0Z) zICC7xo$3lT;#nb8R9g%3cA+!$WLA^}BYoaMQZ<0J`xgkj)>g7b3Z0KH&)J-iEP2$> zUMUW<2#_dY-f|B~IN_8OM1Y15RD~SchS^^(p0*T!hkqN+z%j-(Y(gmI5x;~<7)8W1 z30ZV=)%KDseYS%M)jY570&(eU?X!n)>%FkLXlKS}?Xz!;LtHP}5YBmNJTMlJ)-Tb& z%Y&Hsap_#1-L#(uk$fH37vp_ahFeMCmu(+K$wPc3hUr>+q20F8LwW5sS{*}NLGWT4wA)zCN=Td zme_X-7_aHb``OkNBOkP%d^~D@Nn!M73{t$A&l(R++Htn(-gLwU*c+c^%tFs@p0U1) zed;)dT5xOrN5-;T$^W$t$+{*ZH9BZ2ZuNa$PwIZO7Bh9{np)$wWCd=uH8rR z^@o42VGIBNUqABq7vA?HX7BsH{mFOV7V`b%*ql4okT2h{QL9EzgD7s0aCXH*+a7ET z-TS%q&BwkO0{C^8XxQiN`RKiotLdFKTocJlzO~*6a}H!q@G?+nnO-aPG`m;wOgVE# zLE1W~Y;w)Pw;lSAh87r^54V zkdJJ^A&%nt0(32?lGo<2LgoN#zR^mTrTON%s1|ebK_CEnNdR`z;CLPknht_!!1DK; z3ppo($X#{int`Et%>k}CMDw~#kK2WnUsS_W@1fWUzk)E2YLnhI?IJ&BS;`tJv_OK8 zkUU}{R^j3+1VmURNf1A-#%OE7`;#2BbYZrjc=1O_H2hQ~TYLi&3OFoEDm;4`sRop= z=w~?$M8K_p&Ikc<#FnAL-1*u9NsJ4Kz1`bPy6IgAqAQh|+ z#H!|3rojKyTH{CTAeA`ohd6(G-YY>I7G3Ubg-W?1yfvl|K~f=NqI^u$THpn=9ULHi zsVXEPEvR=y(iJ19=8#DgI0%CzunuNq5e$a%B7p+)`cxJ1+6fSs;sugbkZ9XO0!%|b z#KfgAfi9io#YtAftVIPLLXG=ZmdCl48DA0~d>fx^w6Ew~CFsjwj(zC>iv-|-WHp^r zy?qtyN~G9M8d4G@aFvl!moTV`_frWnVq3{r1`@CAoW+xHnM&&=gUYRRIzv>A%;NRI zTjaU#!CB1JrnnXicUHJ21sQ&p7}Xdj}iaJaWLB0bW!I6yU&I)0KIExq2`5|FE2oPqPqLm4<*wu3Bp1Np%6 zI>vmoCx4(D*(yFd*C?7ka=IS(Ue+GOG%FWp&03&ULPyj?z+h9EM&3xl-J?B^%CCvf ztH;2-Kmv&GP8ECjFLCb51vZMbxC>*sO`Ovfc;1%ILW+;RXUZm zchdU3>#mA@Et56oM%pmX<`s~cdsd!D(Sj6}J<$hjBNTCC2HEU*u5`K@9DJK~_8;z> z|G5<&=?)~YiT!!|?e)@^H}d{x-~E;9TmHRd;X|i3KKLQC59)ij#_jgI687<-M6|sI z3PUH)`M%!Bqsc_z^?x^A`P{$v`~R8#?)pnKSpAJ-8-E?SA@&;uET|p&09Zh$zjEsL z>H#Z|c*u=doCN8~RmlgauGJrQ2>@~gts+;fDA=)SH5;YEp(7PZ0Rovr1dDT6Wu(>P zd}?fG3_X)Wy)X696+D5=s?6Mwx4sU|8iy?n2ulF>rBqtAs4c)#4@4GWPC~w)p98uK zqRimf!xIBXyEG1%R2C(6waYUN%^mm`;vED)51AO0r8lh-+9TyAu1i(8OtPrn#j;mo zAn2s3D567^48Y^#fl$a0z+o2)I@Pq#k}61&1db;!K!;K5xy;*o9TaK~%;m2?QjhcM?^4NwVHHJidS9utl%0wa|_NuNVwIB?Ha zYhHW-FKHogIYNax31Y%w30yUL*0E@dZ6e!aporPcxGb_->Wt`fMQG9F;(#cm zMv4USOCZd9NsvQTD*l1w%n@LA?G5ikXv!wP=pq%(v){zVaS22k8Scl8u{sZ`qWewd zR(O&ZBe|)2GwV%qSA~00rd{W%m+s8~sbUEouw|0b2m!DF!dA!RSMhRlZTvs3&y#Il|iAZ7$7N& zf_KM##ljgC#2N@%k-=5k&q2IQ%Ji^Z+C=U_LOThyXR5-tV~`Yc@Rwu;<^nZKxnuZ> zlt758Gmzdep!2meXwT1Q*Z!lOCeD;AGda)WLY^7$p=bkb`8*({6}-cb2l!ry*+gZM zq=KYWd^W$@h6YS*E|%}(oELe@=U&=!p9n77 zFJlO|m-ShlS+=zXX7)T4vMZnuZ+ct8{unRqtfu;s_=JJj^X#!2^GtG>Vrg(=JLIVr zw(=%OMaOj2&fZB&gSq9+7%c_Jm~^Yi>K74cmfc1Z|ai_inM zD#Y6opQ*S;!NQi&@Wnh2O$?;Afy@bp2(8_somFwdsPqliF@|5wIQHbzH~OrZVEh2X z=pKONP)AGZOdMYt+(N?>=WX=J?e^+z4fg8bJ+`(D89LA7{K|qAAe^p|^*&E~ruMosOzg!Fz)Hv(b7^o%&9PMe3bn55S6IdojzBjc>RT7)F9yA~)R=gLW`FkE9 z-v9%@uzq&G%8#LxXkbF8%K_#xbR&cATtOl%85;j~ILsY+5h!O+u+y+F$?5orB{rj% zG*Fp2Bq?Eh9>PS4AlDTDdJm|DLK31$uijL(MXDI4#0Eu*RMMp?K*OH&K9a!k$T~9T zfV)!3uzd)IoKCEr0s|M&$ASZHabWlGO2~Mth!fIWRJg92| zW0E9`>*L_{@pDyqjqC>w?WbC&8mYl<3zIcOfK>vlQ4z;bxM^Fzt5N6J1A75;lHbR= z*vH`!he+v>3?b=ystGXGs)7$>HWvhd5Jz>$&CzS9(533#@;Bi}HLhEnl$WvpMq{Yp zK^6%@zzcGS`M9nioC0q+lc0V1TT`+7Xe0SS3sfZvuB|TdA$3orl;DqLkV3lF4wy5@Kjf8<^#yyf?!%|gg{RK#7{Gb{|&><8_7DAfa|@rSOOAgx%qLND?-*)kX8~}ZNt8vD!KL;734YYm84eutmlow9tn{& z$*VyfEpM;$ab0D?LJ{e^YoM5S%`BIXXRz1^szTBefb6L$qVltmQcGx&j{xf3JNdwn z6xjqG6Kdh9mBr_YD7hD^#=VorNSP1sBSG-ND{>^+Q~>?@_YD+J%Au-I5?up(IwUxZ z1lnPpJX1CKR1nn4YBTV5VfIB#4iKv zPV(&!gCKnvl(7x7Ie`nWjrZGYr$}OH3Eq)wr&Bg)2`Y1!^=d2gL8f@^={XCMlwE?< zd~F(IH719D5ub(VGoUnhWuyjZwIJ`jNWeV{Zy@#ztK+w3 z+)q4WgyIA-FEe?NupAXX1YVM-22jjxpbZ^d=aF>6j_mRUE|S1J&Crp5PEFVsnNu_e zVZJpzZ--d!I`024>%2!133By$S|R?8Q+CzIt{jl*-E>Gh=aE zV|LI6%A!%67TbC^yeY~7_QI==F~suxHEW{fk_Yva5byP&cI*213`r;Vpe{@CMNTyKa5@zD^4a;7?_4c5|7k~}a`UYRg7-fG3HJ#Kn=r%Y@ciP$bOPtpm6sTERp_$NT!@qw2Kl8t@OGLxYR97}0uKo=g{qLm_?#(3N zRPh2cv@=gqSeA-{>d%{2sl!MIqvD0!FUfwZJP3;GF0is#@`CY;pdK>l($9uC+)6-} zVy9;@V1gLnvD=wDv<0&=E1?4W-iNtR6&NBXf+XLIlJQD)5M_u@20sJec@A6VZNy>Y z2YBcduUxJ*$Im8sxHPHNr41p&AXPx(ABbu1Vh>*7VN+{HUJDfuV&or?0hwhmVz!wqj~U_R%{g zh-o+(r#GNmfY-dnOpK9`SZoGWrYfJ-$Rvw<#91>HkWs>j6ubq7cov^_kv z2mdHJ35cM>%R8F8!P}Nug9sW>)=%Z0fM}Kn*5B~l!+0+xvINZyd1(ltqIKfuewU%X%U7;Mr5^!< zFG(e%FCFH5wlawqUXH9MC$qiR&E|%XMbJ?Q@mQgF zUqx}HNW^-$eZ5@%OFXAl63v}?+G)H-n$NLL3naS%FKxDB%HLmR%dJx+jPjW`Q*gxz z!ngI}nz_l0q$-w}_}6@tslA^7t)L@nt(+k%JmZ>~*bNhQjn-&<0jqI&;DF?%0&(l+ z%vs!%JgNjkrZ6-~%e=%z<;!`%ZL|2PuiMWMn< zh`FvctmnhMB)2?I8?60H^9AcBLAsX$;W74O8h(-F!G2mN(eUocgnc-0jGaU(AJqUPGT#~mGUVLYIIH@i zg4AKf!xUuBNKlogsxq1RXrwYHq)#mp$P6lUJR%zbOhr(LUUPtv?E%P{er8H|OhCcP zBJVM7-BUo)u=Ej>syq=HS^y!O3Io6fMe#;RP<(KBtn~sfm1&-V+k#dRP=~CrZfMUg;5PCz4*0Xo6a@{@% zQGQ6A9^s7#wXy^X!C2@3u9p>&3}u5(vQbpKh1VCdA^g0`fvOgQH@`$a%zUo~%wACt zCQ4QyZ+cZHFD?2()pO9{uSEDH0dr)htmlM4E23M81kVMEbPjOs1XmB5)~|1!i(Znk zW!gj^l<(y=ql2aLJULM6(2+q(Nwv>4%Zy0LQBJ{~@5=zkCnq5xRv@9FR>s{olObSz z%*1Q24dV6t6IQ zL9l9FyarW$c9zdDUch9Ey_F?7XH8v>MVXQn`9Hr{u=*mfggSVACG+Gp0h9t&_MgWz zX5Ts>4Qd$)wb_y}ZT*^np#Z3g4{n6V_aLDQ<3C}S;OgKxP@qy5sn_#l(FJn9Jgy2Y zI+uGWgfPnUt7qA>>XZGpCbh{%o}^CmL-aT}w3DiuNkh^ZAxJy4*O=-@OAO~oNmz6r zcxF&N)AnM|!dvk+694ky`1y(yNDp2p^>YkP1WB1-z+W4QITP2dh|*+;WLN_LU->-B zpRY1$^mv|^Z?IqJuCuqJ2)ehu%XWj7#knU(Xu-T@4+v)${AkXPqwL+Iw1t$QHLWG= z2F%)qudy&kf;ROkkV|HCq)FX%+z!mBXNx?F9RJl1Q1Fk^NYNXQ!8~ zDyRN6lI@FR$}!qgeQ>^ZkwkTKoiWH+J6MYjP(8T9Bt)E*ASQmY%44kWpF?W><}o#0SclP2>ai4YmfcLaHqY3!(boRdVg3`i`Tgyv_8aV6FN7+KS{iFNaE9| zoSJCURZ-AA0xdHJd%m@go7IKsA&I^ppjt{X75L ziSc(R$avEaxiY6KJC8rg=@9vw|4V4_SNWyQfrHr%U*HZ`MH9{((;S`&;NCO zA{x3ckzgix%KwSl&Gsf{Q*9l-0x^(E)kKV>(v@^A)JSwDn3dEH0k(|*L8}7F(J~Q@ zqY=B!bp~&EuAFTcSrPSoWWciaRqtJsF-fCopCC)+ge=9`;Buy;0#l+PiKDy-0@yyg z=&uVL#Gd(3hW&%sI?VUWNaQ>N9pF@5Yj|6P;cEl{swfR)5{FJ+6`rp@B`m\|K1 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