From cc703df266b5a331d33a08b2eb228cd5007fb32d Mon Sep 17 00:00:00 2001 From: seo hyeon ha Date: Mon, 9 Feb 2026 19:48:47 +0900 Subject: [PATCH 01/12] 2026-02-09 --- .../discodeit/DiscodeitApplication.java | 12 +- .../mission/discodeit/JavaApplication2.java | 4 +- .../discodeit/controller/UserController.java | 97 +++ .../dto/BinaryContentCreateRequest.java | 11 + .../discodeit/dto/UserStatusResponse.java | 5 +- .../discodeit/dto/UserUpdateRequest.java | 2 +- .../sprint/mission/discodeit/entity/User.java | 16 +- .../discodeit/service/UserService.java | 9 +- .../service/basic/BasicUserService.java | 63 +- .../service/basic/BasicUserStatusService.java | 11 +- .../.gradle/9.0.0/checksums/checksums.lock | Bin 0 -> 17 bytes .../executionHistory/executionHistory.bin | Bin 0 -> 103098 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/9.0.0/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 0 -> 25097 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 0 -> 28663 bytes discordit/.gradle/9.0.0/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + .../buildOutputCleanup/outputFiles.bin | Bin 0 -> 19037 bytes discordit/.gradle/file-system.probe | Bin 0 -> 8 bytes discordit/.gradle/vcs-1/gc.properties | 0 discordit/build.gradle | 20 + .../mission/discodeit/JavaApplication.class | Bin 0 -> 10648 bytes .../mission/discodeit/entity/Channel.class | Bin 0 -> 1861 bytes .../discodeit/entity/ChannelType.class | Bin 0 -> 1223 bytes .../mission/discodeit/entity/Message.class | Bin 0 -> 1112 bytes .../mission/discodeit/entity/User.class | Bin 0 -> 2445 bytes .../repository/ChannelRepository.class | Bin 0 -> 634 bytes .../repository/MessageRepository.class | Bin 0 -> 634 bytes .../discodeit/repository/UserRepository.class | Bin 0 -> 616 bytes .../file/FileChannelRepository.class | Bin 0 -> 4900 bytes .../file/FileMessageRepository.class | Bin 0 -> 4917 bytes .../repository/file/FileUserRepository.class | Bin 0 -> 4805 bytes .../repository/jcf/JCFChannelRepository.class | Bin 0 -> 3273 bytes .../repository/jcf/JCFMessageRepository.class | Bin 0 -> 3273 bytes .../repository/jcf/JCFUserRepository.class | Bin 0 -> 3219 bytes .../discodeit/service/ChannelService.class | Bin 0 -> 628 bytes .../discodeit/service/MessageService.class | Bin 0 -> 611 bytes .../discodeit/service/UserService.class | Bin 0 -> 633 bytes .../discodeit/service/UserService2.class | Bin 0 -> 594 bytes .../service/basic/BasicChannelService.class | Bin 0 -> 3612 bytes .../service/basic/BasicMessageService.class | Bin 0 -> 3972 bytes .../service/basic/BasicUserService.class | Bin 0 -> 3665 bytes .../service/file/FileChannelService.class | Bin 0 -> 8120 bytes .../service/file/FileMessageRepository.class | Bin 0 -> 4859 bytes .../service/file/FileUserService.class | Bin 0 -> 8087 bytes .../service/jcf/JCFChannelService.class | Bin 0 -> 3802 bytes .../service/jcf/JCFMessageService.class | Bin 0 -> 3229 bytes .../service/jcf/JCFUserService.class | Bin 0 -> 3587 bytes .../reports/problems/problems-report.html | 663 ++++++++++++++++++ .../stash-dir/JavaApplication.class.uniqueId0 | Bin 0 -> 10648 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 1646 bytes discordit/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + discordit/gradlew | 251 +++++++ discordit/gradlew.bat | 94 +++ discordit/settings.gradle | 1 + .../mission/discodeit/JavaApplication.java | 229 ++++++ .../mission/discodeit/entity/Channel.java | 63 ++ .../mission/discodeit/entity/ChannelType.java | 8 + .../mission/discodeit/entity/Message.java | 31 + .../sprint/mission/discodeit/entity/User.java | 75 ++ .../repository/ChannelRepository.java | 19 + .../repository/MessageRepository.java | 25 + .../discodeit/repository/UserRepository.java | 20 + .../file/FileChannelRepository.java | 62 ++ .../file/FileMessageRepository.java | 65 ++ .../repository/file/FileUserRepository.java | 63 ++ .../repository/jcf/JCFChannelRepository.java | 39 ++ .../repository/jcf/JCFMessageRepository.java | 39 ++ .../repository/jcf/JCFUserRepository.java | 38 + .../discodeit/service/ChannelService.java | 22 + .../discodeit/service/MessageService.java | 19 + .../discodeit/service/UserService.java | 19 + .../discodeit/service/UserService2.java | 23 + .../service/basic/BasicChannelService.java | 51 ++ .../service/basic/BasicMessageService.java | 63 ++ .../service/basic/BasicUserService.java | 48 ++ .../service/file/FileChannelService.java | 134 ++++ .../service/file/FileMessageRepository.java | 60 ++ .../service/file/FileUserService.java | 133 ++++ .../service/jcf/JCFChannelService.java | 63 ++ .../service/jcf/JCFMessageService.java | 45 ++ .../discodeit/service/jcf/JCFUserService.java | 72 ++ .../service/jcf/JCFUserService2.java | 80 +++ .../0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser | Bin 0 -> 594 bytes .../14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser | Bin 0 -> 588 bytes .../1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser | Bin 0 -> 588 bytes .../17e6346e-362f-4105-a46a-c55f8d32fcf8.ser | Bin 0 -> 594 bytes .../18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser | Bin 0 -> 588 bytes .../1faedf45-087e-4841-9a0a-9bb081629204.ser | Bin 0 -> 511 bytes .../205cbd96-13e2-4905-915f-dedcb3fbf4ef.ser | Bin 0 -> 588 bytes .../2369571a-5300-4b5b-bbaa-0ef947573bda.ser | Bin 0 -> 588 bytes .../25ca130d-f65f-4466-a625-6827a4bb73bc.ser | Bin 0 -> 511 bytes .../275f1dee-cf5f-464b-b605-c77dcb71dd08.ser | Bin 0 -> 511 bytes .../2c82d998-1260-4d5a-b2be-655927d2cf9c.ser | Bin 0 -> 588 bytes .../2e7e69d9-639b-4934-b5d9-1d156f651fe0.ser | Bin 0 -> 588 bytes .../3025ee8c-7655-4370-8710-c4ce9a4109a2.ser | Bin 0 -> 588 bytes .../384cb390-442c-4628-97c9-deff0183f38a.ser | Bin 0 -> 511 bytes .../427d51a9-87c0-450c-9ec2-5d8db5d70118.ser | Bin 0 -> 505 bytes .../4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser | Bin 0 -> 505 bytes .../50f9e868-a9d5-4b74-aa9a-44912a473829.ser | Bin 0 -> 594 bytes .../517ca70f-b8ec-4467-b438-0e2051afa0fa.ser | Bin 0 -> 594 bytes .../54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser | Bin 0 -> 505 bytes .../557659ae-1f84-4894-9b0b-8d33aedf4a1c.ser | Bin 0 -> 588 bytes .../568f1fde-1eab-4d7e-9088-db69710a4668.ser | Bin 0 -> 594 bytes .../5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser | Bin 0 -> 588 bytes .../5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser | Bin 0 -> 505 bytes .../617b7a47-45fb-4c6b-912c-fafdd8efb564.ser | Bin 0 -> 511 bytes .../687d9ea8-d841-40ce-a754-26137052ad58.ser | Bin 0 -> 594 bytes .../7329b98e-a5db-411d-a30e-2d2181fc14a8.ser | Bin 0 -> 511 bytes .../77460ca3-293e-45ab-af6d-4f42c2cdb91e.ser | Bin 0 -> 588 bytes .../7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser | Bin 0 -> 505 bytes .../7ed9c903-0a40-44d2-8f7b-53fa26b0af09.ser | Bin 0 -> 505 bytes .../7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser | Bin 0 -> 594 bytes .../8205adcd-42d2-4ff0-aa86-5ef0d280ab12.ser | Bin 0 -> 588 bytes .../86208d0d-05bc-48f8-8062-608326a5d718.ser | Bin 0 -> 505 bytes .../8825242c-5e69-48da-9d63-e267d6cf033d.ser | Bin 0 -> 594 bytes .../947c620d-c9dc-4a14-9795-8d66f152c5d6.ser | Bin 0 -> 594 bytes .../94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser | Bin 0 -> 594 bytes .../982814d3-68b6-4a58-a985-a7eb30af304c.ser | Bin 0 -> 511 bytes .../99bb2a40-d785-4959-b693-0375c32c6340.ser | Bin 0 -> 588 bytes .../a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser | Bin 0 -> 511 bytes .../a482dbd7-a84e-4a01-8663-91db303ad553.ser | Bin 0 -> 511 bytes .../a7804371-8701-4413-8742-e37cd1f00cf2.ser | Bin 0 -> 511 bytes .../a7da762e-9538-4d3f-9861-782d77c98dba.ser | Bin 0 -> 588 bytes .../a9a725b5-216c-41dd-a1fb-68309c7b1501.ser | Bin 0 -> 511 bytes .../aa6e4d11-c36a-4da8-88ad-0c9276e41833.ser | Bin 0 -> 511 bytes .../b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser | Bin 0 -> 505 bytes .../b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser | Bin 0 -> 505 bytes .../b7683195-1e5a-4204-932e-d6b0b604a870.ser | Bin 0 -> 594 bytes .../b790924d-0355-4b8a-bf34-0165211058e2.ser | Bin 0 -> 511 bytes .../be18e3a5-a122-4513-9c13-56f60fa313a3.ser | Bin 0 -> 594 bytes .../be3c7339-c5ae-40eb-ad46-020b98f78147.ser | Bin 0 -> 505 bytes .../be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser | Bin 0 -> 511 bytes .../bffda00f-f0f0-4605-b3b2-094d455d079f.ser | Bin 0 -> 505 bytes .../c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser | Bin 0 -> 511 bytes .../c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser | Bin 0 -> 505 bytes .../cc12841e-07c8-4e95-8a32-312ec34fe68a.ser | Bin 0 -> 505 bytes .../cc912ecc-2670-4fa2-9021-940aeba99b35.ser | Bin 0 -> 511 bytes .../d2b403af-6771-42c4-96cd-20c82f8373be.ser | Bin 0 -> 505 bytes .../de119147-e4a3-42e9-a9a1-4ab3d12b0d14.ser | Bin 0 -> 511 bytes .../e44f30f3-2ecf-4055-ab49-b2292a94dab6.ser | Bin 0 -> 594 bytes .../e5c39507-a425-4c89-ad37-3cc5b9132e40.ser | Bin 0 -> 511 bytes .../e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser | Bin 0 -> 505 bytes .../e80cb15c-0a80-4f00-a01b-308c04a814c8.ser | Bin 0 -> 511 bytes .../ed77d5a9-a987-44a0-9ca6-d784895859e4.ser | Bin 0 -> 505 bytes .../f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser | Bin 0 -> 505 bytes .../f22483a8-c194-4a01-959f-792d610f2aa8.ser | Bin 0 -> 505 bytes .../f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser | Bin 0 -> 505 bytes .../f679ff5c-d6d2-4347-a965-17929c1da23a.ser | Bin 0 -> 505 bytes .../f7d54bbb-903f-439b-a542-b2ddddfd5d72.ser | Bin 0 -> 511 bytes .../f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser | Bin 0 -> 505 bytes .../f918721a-f9ad-44cd-9aa5-8b3e49de365e.ser | Bin 0 -> 505 bytes .../f9de0972-066d-4319-a936-9a3be77f0b50.ser | Bin 0 -> 511 bytes .../ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser | Bin 0 -> 511 bytes .../01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser | Bin 0 -> 425 bytes .../032d1b16-af7c-4b6b-b0c3-b98d002bd185.ser | Bin 0 -> 425 bytes .../04f2e96e-0d28-47f0-b7ff-5f8dc06d3f20.ser | Bin 0 -> 425 bytes .../073548ce-7b85-49c4-8781-2b200866a8cc.ser | Bin 0 -> 439 bytes .../084442d2-f95f-4b18-b735-a6e13bd50808.ser | Bin 0 -> 425 bytes .../122ce4ef-2021-44b2-9b32-b94420dd29d1.ser | Bin 0 -> 425 bytes .../143b2d0c-800a-4ce1-b13f-6b680716373d.ser | Bin 0 -> 439 bytes .../15be350c-8514-4dbe-a128-a82e044b1c4e.ser | Bin 0 -> 425 bytes .../1b9fab53-d177-400e-a1c9-92f925cce8d9.ser | Bin 0 -> 425 bytes .../1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser | Bin 0 -> 425 bytes .../22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser | Bin 0 -> 425 bytes .../22ede715-bc62-42bf-b37a-1116c8af0299.ser | Bin 0 -> 425 bytes .../247314c8-1f95-4645-93d6-80453e9374d7.ser | Bin 0 -> 425 bytes .../24acf589-b41d-480c-87de-20f0d3c69e84.ser | Bin 0 -> 425 bytes .../24b15747-125b-4c8b-ae37-4588bf552d56.ser | Bin 0 -> 425 bytes .../2660166c-ca16-4370-b96f-30e6e0d13a90.ser | Bin 0 -> 425 bytes .../2797fea5-d168-433d-9564-3f91ca2c9767.ser | Bin 0 -> 425 bytes .../2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser | Bin 0 -> 425 bytes .../2eaad8fa-b3cf-44c4-bd95-c4f08d845646.ser | Bin 0 -> 425 bytes .../330b7542-c8b1-4e21-8efb-2bcd5c34ad36.ser | Bin 0 -> 425 bytes .../34eb2b90-0c48-4699-b57d-d234e744b035.ser | Bin 0 -> 425 bytes .../38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser | Bin 0 -> 425 bytes .../391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser | Bin 0 -> 425 bytes .../39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser | Bin 0 -> 425 bytes .../3b0a9387-555f-4586-a28a-ddb899bf5f26.ser | Bin 0 -> 425 bytes .../3d247aa6-1422-494c-ba0a-073a940732c0.ser | Bin 0 -> 439 bytes .../3e41528d-1998-4671-a47d-c0d8bf3efc60.ser | Bin 0 -> 425 bytes .../442aeead-682a-48c8-8ede-3a674676a645.ser | Bin 0 -> 439 bytes .../4446e8af-5c99-489c-aedc-ab739c36875b.ser | Bin 0 -> 425 bytes .../44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser | Bin 0 -> 425 bytes .../4a8587c6-be11-4621-89fd-c3625aa83332.ser | Bin 0 -> 425 bytes .../4e5e6857-3deb-4c07-8515-37dccd45f443.ser | Bin 0 -> 425 bytes .../553373cc-664c-4802-9e7d-a4a086f9e0b5.ser | Bin 0 -> 425 bytes .../585a3414-5844-4d51-b1dd-8c52377e9cc9.ser | Bin 0 -> 425 bytes .../59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser | Bin 0 -> 425 bytes .../5a110b5f-9199-4b67-b218-162a81422fb3.ser | Bin 0 -> 425 bytes .../5ef22210-41fa-4bc9-89bf-9bd1f42ccffc.ser | Bin 0 -> 425 bytes .../6618ee6c-8cf1-4c68-8160-1e5b103cc0b3.ser | Bin 0 -> 425 bytes .../6736876a-4b0b-468f-ba1f-205033e3b4a9.ser | Bin 0 -> 425 bytes .../67a940c0-4b59-4f8b-a5d2-4e5640037b89.ser | Bin 0 -> 425 bytes .../6dfd29d6-e545-48b0-9cff-86367aefc892.ser | Bin 0 -> 425 bytes .../71ec7a90-4674-4655-bf68-cd40c15f2be5.ser | Bin 0 -> 425 bytes .../72142b31-9033-4b1e-a507-bcad9390a5ac.ser | Bin 0 -> 425 bytes .../7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser | Bin 0 -> 421 bytes .../7b110e33-4c09-4498-9d98-daf93448e734.ser | Bin 0 -> 425 bytes .../7c423db5-3f51-457d-af06-a718f60a3419.ser | Bin 0 -> 425 bytes .../7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser | Bin 0 -> 425 bytes .../7d7faa19-26c5-4c7a-a71d-0361db17753e.ser | Bin 0 -> 425 bytes .../7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser | Bin 0 -> 425 bytes .../7e5151c7-6552-4394-9a11-28961ee4bd54.ser | Bin 0 -> 425 bytes .../7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser | Bin 0 -> 439 bytes .../8253e5bb-696e-4690-ab6a-377dc2e5cdab.ser | Bin 0 -> 425 bytes .../83413a88-548b-4c98-94eb-cf5eb9a79bde.ser | Bin 0 -> 439 bytes .../89016ffa-1a86-4937-a88f-07eca1e591bf.ser | Bin 0 -> 425 bytes .../8f646e43-a1aa-45ad-a7c3-a0762fae2950.ser | Bin 0 -> 425 bytes .../97df8750-f622-4ae3-a42b-fe4450c00725.ser | Bin 0 -> 421 bytes .../99cf48a4-bcac-4e51-a326-adf63741eed2.ser | Bin 0 -> 421 bytes .../9a128996-c9b5-4382-a96f-71fb149c426f.ser | Bin 0 -> 421 bytes .../9a4c6fa4-ae90-4027-8349-9309c0c439dd.ser | Bin 0 -> 439 bytes .../9c76fa71-62b4-4021-a2a4-b77e32f3f21d.ser | Bin 0 -> 425 bytes .../9cf2857e-bf4c-48e9-865a-2a0480f72425.ser | Bin 0 -> 421 bytes .../9e098b88-24dc-4775-83b9-ce646d47a37d.ser | Bin 0 -> 425 bytes .../9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser | Bin 0 -> 425 bytes .../9f1ee58a-9cdf-4733-bd48-9abd95742999.ser | Bin 0 -> 425 bytes .../a015add2-241c-477e-b926-5967ed673109.ser | Bin 0 -> 425 bytes .../a01900b2-6372-4508-8974-d0f592c9b1f1.ser | Bin 0 -> 425 bytes .../a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser | Bin 0 -> 425 bytes .../a4dee914-d10d-4190-83c1-22aaeefb3315.ser | Bin 0 -> 421 bytes .../a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser | Bin 0 -> 425 bytes .../a7b67ef6-534e-42aa-afc5-02e757196d0e.ser | Bin 0 -> 425 bytes .../a84f69ca-a4e8-4a77-b54d-6d427bdde046.ser | Bin 0 -> 439 bytes .../b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser | Bin 0 -> 425 bytes .../b114cce7-c2ff-4cb4-88a2-30a763bab7b3.ser | Bin 0 -> 421 bytes .../b29f0830-933f-4086-83c2-7c78b766d339.ser | Bin 0 -> 425 bytes .../b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser | Bin 0 -> 425 bytes .../b9058c1d-68ea-40f0-86f9-46510c795a06.ser | Bin 0 -> 425 bytes .../bb694987-1a60-493a-9d99-f0eac101605f.ser | Bin 0 -> 425 bytes .../bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser | Bin 0 -> 421 bytes .../bd8b3213-f62d-4cc9-9441-d2ae17b48ab0.ser | Bin 0 -> 425 bytes .../c1c9959e-79a8-4024-8e7b-7acbd494d0a5.ser | Bin 0 -> 425 bytes .../c327d6bd-1ec9-44e8-9ae9-5cccd3d4428e.ser | Bin 0 -> 425 bytes .../c3319f28-fe32-4da6-b132-a9e9f760bd35.ser | Bin 0 -> 439 bytes .../d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser | Bin 0 -> 425 bytes .../d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser | Bin 0 -> 439 bytes .../d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser | Bin 0 -> 425 bytes .../d50f0417-7b32-45df-bafb-6de9b49930c3.ser | Bin 0 -> 425 bytes .../d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser | Bin 0 -> 425 bytes .../d91a2ea8-756e-4720-9374-5810d6e66988.ser | Bin 0 -> 425 bytes .../d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser | Bin 0 -> 421 bytes .../d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser | Bin 0 -> 421 bytes .../dc116c66-b46d-4826-b6b0-8a06a122254b.ser | Bin 0 -> 421 bytes .../dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser | Bin 0 -> 425 bytes .../df914aca-d25c-46c3-a002-da79f51c3463.ser | Bin 0 -> 425 bytes .../e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser | Bin 0 -> 421 bytes .../e4c9534d-95c4-48c9-9bcd-c062f5569702.ser | Bin 0 -> 421 bytes .../e553c781-5745-45f1-95b0-c2f5bff13894.ser | Bin 0 -> 425 bytes .../e6b998ee-b8d3-4b52-acef-a3e881b084a0.ser | Bin 0 -> 425 bytes .../e72f171c-31f0-46a0-9bf9-8af1f014e7ff.ser | Bin 0 -> 425 bytes .../e97e3b65-0832-4d14-9932-1723cd885a3e.ser | Bin 0 -> 425 bytes .../eb7fd738-ced3-4f54-a76e-70319b5b368b.ser | Bin 0 -> 425 bytes .../f1d96929-4599-4bab-90bb-a83981ab245d.ser | Bin 0 -> 439 bytes .../f85431b6-67a3-4ba4-bedb-faee99a4602c.ser | Bin 0 -> 425 bytes .../faf8359b-976e-4aad-bbb0-83a17838f0d1.ser | Bin 0 -> 425 bytes .../fd0ba632-83e5-4fc0-9cba-e1f34685c090.ser | Bin 0 -> 425 bytes .../fee15d45-ebc0-4b1e-849a-d440b64281ef.ser | Bin 0 -> 425 bytes .../ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser | Bin 0 -> 439 bytes .../01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser | Bin 0 -> 441 bytes .../041ea05c-a9e7-4be4-9148-387205b68de2.ser | Bin 0 -> 368 bytes .../0569139a-6363-4247-a834-aa50fcc955a8.ser | Bin 0 -> 368 bytes .../07e8700c-0540-4a49-9a43-7327d12a71f3.ser | Bin 0 -> 368 bytes .../08268dce-ce38-4b8b-80c2-4171d5807032.ser | Bin 0 -> 368 bytes .../0c94c418-13c8-4b8e-a002-1217bb08389c.ser | Bin 0 -> 368 bytes .../0d0f7fda-1850-480b-9564-08606223f035.ser | Bin 0 -> 368 bytes .../0fc7012f-aef5-4979-b5c4-09f802d6bb5a.ser | Bin 0 -> 368 bytes .../0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser | Bin 0 -> 368 bytes .../12b8dabc-4330-41c4-8e52-184b23168907.ser | Bin 0 -> 368 bytes .../153670d4-5982-4ee2-9629-bd0703823aa1.ser | Bin 0 -> 368 bytes .../1a9613bd-30ac-42cd-864c-dbee8ce23065.ser | Bin 0 -> 368 bytes .../1bf79829-7ca3-42a6-9c8d-493b0925683a.ser | Bin 0 -> 368 bytes .../2124dabf-245b-448d-ac8c-f855b284a397.ser | Bin 0 -> 368 bytes .../247342f0-bc10-4a9f-8883-125f1e7ecce6.ser | Bin 0 -> 368 bytes .../27455431-af80-4c40-898a-39337901dfd5.ser | Bin 0 -> 368 bytes .../299a103b-fec1-411a-8fd4-40260dc71f29.ser | Bin 0 -> 368 bytes .../2cb6be3d-afba-43aa-b343-4375ab4c162b.ser | Bin 0 -> 368 bytes .../360dd43a-4d67-4d53-8560-89226a358248.ser | Bin 0 -> 368 bytes .../3649b5b8-3dd3-47c9-af6c-88de9a422dc9.ser | Bin 0 -> 368 bytes .../364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser | Bin 0 -> 368 bytes .../467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser | Bin 0 -> 368 bytes .../4a664b53-5f68-4b4e-a0d1-2d82e4010ff9.ser | Bin 0 -> 382 bytes .../4c8661a1-3aec-41d1-b878-b8742fb91c6f.ser | Bin 0 -> 368 bytes .../4d9f736b-0de5-465c-9767-19c473b636e8.ser | Bin 0 -> 368 bytes .../537d03c7-113e-4b96-91b2-8756450247f9.ser | Bin 0 -> 368 bytes .../56b80611-d82d-443f-acfe-b8bee6d0876e.ser | Bin 0 -> 368 bytes .../57247463-2d13-49f8-aff3-941c92059dee.ser | Bin 0 -> 368 bytes .../59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser | Bin 0 -> 368 bytes .../5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser | Bin 0 -> 368 bytes .../638e272f-cacf-4e1a-9ed0-2a4d263b7732.ser | Bin 0 -> 368 bytes .../65a3190d-0fdb-48ed-be73-333afea6f8ac.ser | Bin 0 -> 368 bytes .../685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser | Bin 0 -> 368 bytes .../7536f7a3-3e8b-49dd-bf43-309685a3c488.ser | Bin 0 -> 368 bytes .../785932fd-4211-48ba-9318-896f0db9737e.ser | Bin 0 -> 368 bytes .../79422b98-a45a-42b7-8f5c-1baeae174238.ser | Bin 0 -> 368 bytes .../7a4abc1e-1d3e-4d20-bf67-e7d390d124da.ser | Bin 0 -> 368 bytes .../7ba3c934-ba3b-4410-8311-e5f1d91de828.ser | Bin 0 -> 350 bytes .../8107128c-bb85-4f61-85a0-9a13f1e8049c.ser | Bin 0 -> 368 bytes .../886adb31-4331-496a-ba32-f2caf7871c2e.ser | Bin 0 -> 368 bytes .../8f796887-da82-4117-93a8-ef16221c6208.ser | Bin 0 -> 368 bytes .../905eb14f-cc64-48eb-b24f-704901cf264b.ser | Bin 0 -> 368 bytes .../92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser | Bin 0 -> 368 bytes .../94e56c4b-b470-4317-b374-543364615a92.ser | Bin 0 -> 368 bytes .../951c825e-a48d-4185-bde6-40e6a3c61713.ser | Bin 0 -> 368 bytes .../957afc5e-cf45-4332-9bfa-916cd9371738.ser | Bin 0 -> 368 bytes .../972df3b5-2ec3-47a3-bae8-58d7c1d8a334.ser | Bin 0 -> 368 bytes .../9823623b-143d-481f-b28b-0c18a49eac1c.ser | Bin 0 -> 368 bytes .../9a4fa528-f105-431e-b505-53df4609ee1b.ser | Bin 0 -> 368 bytes .../9d01a198-f3db-4217-8783-221adb777bde.ser | Bin 0 -> 368 bytes .../a05517c6-ab01-469f-bb19-b38c3d308a2f.ser | Bin 0 -> 368 bytes .../a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser | Bin 0 -> 368 bytes .../a68bdea2-0476-4827-a99d-f49e6e151000.ser | Bin 0 -> 368 bytes .../aef23a97-2592-4c26-8d99-021b6d634fe4.ser | Bin 0 -> 368 bytes .../b6924dd5-c26d-49b4-970b-96a99166ce14.ser | Bin 0 -> 368 bytes .../b7261593-b1ad-4e29-8383-0ae63348e3ed.ser | Bin 0 -> 368 bytes .../b80085bb-80d9-419d-a7c1-b2d60835b66e.ser | Bin 0 -> 368 bytes .../bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser | Bin 0 -> 368 bytes .../be2df33a-b9e4-4665-a695-07d52f2f89e5.ser | Bin 0 -> 368 bytes .../c0bcfe07-6b09-4ed9-92c8-d423809ae928.ser | Bin 0 -> 368 bytes .../c25a20af-a862-4528-81d0-c163743a193e.ser | Bin 0 -> 368 bytes .../c5eab74a-4b35-42a4-838c-a01151059c76.ser | Bin 0 -> 368 bytes .../c9969dae-2059-435f-8d81-c2dcb6126f02.ser | Bin 0 -> 368 bytes .../cb31dcc4-673a-4eb6-bf12-a29351199bf0.ser | Bin 0 -> 368 bytes .../cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser | Bin 0 -> 368 bytes .../d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser | Bin 0 -> 368 bytes .../d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser | Bin 0 -> 368 bytes .../da82a855-d129-44f6-8184-da9df90b7094.ser | Bin 0 -> 368 bytes .../eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser | Bin 0 -> 368 bytes .../edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser | Bin 0 -> 368 bytes .../ef2797c1-3444-4e5c-8803-0ded62732d63.ser | Bin 0 -> 382 bytes .../f3c67823-69f5-4dff-aff8-d21450de0dd0.ser | Bin 0 -> 368 bytes .../f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser | Bin 0 -> 368 bytes .../fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser | Bin 0 -> 368 bytes .../fc02cdaf-ba9a-4ef9-8d60-3e5cf3299e65.ser | Bin 0 -> 368 bytes .../fd970089-223e-4119-934f-ab271c522ab3.ser | Bin 0 -> 368 bytes 340 files changed, 2839 insertions(+), 37 deletions(-) create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java create mode 100644 discordit/.gradle/9.0.0/checksums/checksums.lock create mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.bin create mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.lock create mode 100644 discordit/.gradle/9.0.0/fileChanges/last-build.bin create mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.bin create mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.lock create mode 100644 discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin create mode 100644 discordit/.gradle/9.0.0/gc.properties create mode 100644 discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 discordit/.gradle/buildOutputCleanup/cache.properties create mode 100644 discordit/.gradle/buildOutputCleanup/outputFiles.bin create mode 100644 discordit/.gradle/file-system.probe create mode 100644 discordit/.gradle/vcs-1/gc.properties create mode 100644 discordit/build.gradle create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/MessageService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicMessageService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFUserService.class create mode 100644 discordit/build/reports/problems/problems-report.html create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 create mode 100644 discordit/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 discordit/gradle/wrapper/gradle-wrapper.jar create mode 100644 discordit/gradle/wrapper/gradle-wrapper.properties create mode 100644 discordit/gradlew create mode 100644 discordit/gradlew.bat create mode 100644 discordit/settings.gradle create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java create mode 100644 file-data-map/Channel/0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser create mode 100644 file-data-map/Channel/14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser create mode 100644 file-data-map/Channel/1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser create mode 100644 file-data-map/Channel/17e6346e-362f-4105-a46a-c55f8d32fcf8.ser create mode 100644 file-data-map/Channel/18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser create mode 100644 file-data-map/Channel/1faedf45-087e-4841-9a0a-9bb081629204.ser create mode 100644 file-data-map/Channel/205cbd96-13e2-4905-915f-dedcb3fbf4ef.ser create mode 100644 file-data-map/Channel/2369571a-5300-4b5b-bbaa-0ef947573bda.ser create mode 100644 file-data-map/Channel/25ca130d-f65f-4466-a625-6827a4bb73bc.ser create mode 100644 file-data-map/Channel/275f1dee-cf5f-464b-b605-c77dcb71dd08.ser create mode 100644 file-data-map/Channel/2c82d998-1260-4d5a-b2be-655927d2cf9c.ser create mode 100644 file-data-map/Channel/2e7e69d9-639b-4934-b5d9-1d156f651fe0.ser create mode 100644 file-data-map/Channel/3025ee8c-7655-4370-8710-c4ce9a4109a2.ser create mode 100644 file-data-map/Channel/384cb390-442c-4628-97c9-deff0183f38a.ser create mode 100644 file-data-map/Channel/427d51a9-87c0-450c-9ec2-5d8db5d70118.ser create mode 100644 file-data-map/Channel/4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser create mode 100644 file-data-map/Channel/50f9e868-a9d5-4b74-aa9a-44912a473829.ser create mode 100644 file-data-map/Channel/517ca70f-b8ec-4467-b438-0e2051afa0fa.ser create mode 100644 file-data-map/Channel/54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser create mode 100644 file-data-map/Channel/557659ae-1f84-4894-9b0b-8d33aedf4a1c.ser create mode 100644 file-data-map/Channel/568f1fde-1eab-4d7e-9088-db69710a4668.ser create mode 100644 file-data-map/Channel/5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser create mode 100644 file-data-map/Channel/5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser create mode 100644 file-data-map/Channel/617b7a47-45fb-4c6b-912c-fafdd8efb564.ser create mode 100644 file-data-map/Channel/687d9ea8-d841-40ce-a754-26137052ad58.ser create mode 100644 file-data-map/Channel/7329b98e-a5db-411d-a30e-2d2181fc14a8.ser create mode 100644 file-data-map/Channel/77460ca3-293e-45ab-af6d-4f42c2cdb91e.ser create mode 100644 file-data-map/Channel/7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser create mode 100644 file-data-map/Channel/7ed9c903-0a40-44d2-8f7b-53fa26b0af09.ser create mode 100644 file-data-map/Channel/7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser create mode 100644 file-data-map/Channel/8205adcd-42d2-4ff0-aa86-5ef0d280ab12.ser create mode 100644 file-data-map/Channel/86208d0d-05bc-48f8-8062-608326a5d718.ser create mode 100644 file-data-map/Channel/8825242c-5e69-48da-9d63-e267d6cf033d.ser create mode 100644 file-data-map/Channel/947c620d-c9dc-4a14-9795-8d66f152c5d6.ser create mode 100644 file-data-map/Channel/94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser create mode 100644 file-data-map/Channel/982814d3-68b6-4a58-a985-a7eb30af304c.ser create mode 100644 file-data-map/Channel/99bb2a40-d785-4959-b693-0375c32c6340.ser create mode 100644 file-data-map/Channel/a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser create mode 100644 file-data-map/Channel/a482dbd7-a84e-4a01-8663-91db303ad553.ser create mode 100644 file-data-map/Channel/a7804371-8701-4413-8742-e37cd1f00cf2.ser create mode 100644 file-data-map/Channel/a7da762e-9538-4d3f-9861-782d77c98dba.ser create mode 100644 file-data-map/Channel/a9a725b5-216c-41dd-a1fb-68309c7b1501.ser create mode 100644 file-data-map/Channel/aa6e4d11-c36a-4da8-88ad-0c9276e41833.ser create mode 100644 file-data-map/Channel/b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser create mode 100644 file-data-map/Channel/b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser create mode 100644 file-data-map/Channel/b7683195-1e5a-4204-932e-d6b0b604a870.ser create mode 100644 file-data-map/Channel/b790924d-0355-4b8a-bf34-0165211058e2.ser create mode 100644 file-data-map/Channel/be18e3a5-a122-4513-9c13-56f60fa313a3.ser create mode 100644 file-data-map/Channel/be3c7339-c5ae-40eb-ad46-020b98f78147.ser create mode 100644 file-data-map/Channel/be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser create mode 100644 file-data-map/Channel/bffda00f-f0f0-4605-b3b2-094d455d079f.ser create mode 100644 file-data-map/Channel/c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser create mode 100644 file-data-map/Channel/c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser create mode 100644 file-data-map/Channel/cc12841e-07c8-4e95-8a32-312ec34fe68a.ser create mode 100644 file-data-map/Channel/cc912ecc-2670-4fa2-9021-940aeba99b35.ser create mode 100644 file-data-map/Channel/d2b403af-6771-42c4-96cd-20c82f8373be.ser create mode 100644 file-data-map/Channel/de119147-e4a3-42e9-a9a1-4ab3d12b0d14.ser create mode 100644 file-data-map/Channel/e44f30f3-2ecf-4055-ab49-b2292a94dab6.ser create mode 100644 file-data-map/Channel/e5c39507-a425-4c89-ad37-3cc5b9132e40.ser create mode 100644 file-data-map/Channel/e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser create mode 100644 file-data-map/Channel/e80cb15c-0a80-4f00-a01b-308c04a814c8.ser create mode 100644 file-data-map/Channel/ed77d5a9-a987-44a0-9ca6-d784895859e4.ser create mode 100644 file-data-map/Channel/f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser create mode 100644 file-data-map/Channel/f22483a8-c194-4a01-959f-792d610f2aa8.ser create mode 100644 file-data-map/Channel/f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser create mode 100644 file-data-map/Channel/f679ff5c-d6d2-4347-a965-17929c1da23a.ser create mode 100644 file-data-map/Channel/f7d54bbb-903f-439b-a542-b2ddddfd5d72.ser create mode 100644 file-data-map/Channel/f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser create mode 100644 file-data-map/Channel/f918721a-f9ad-44cd-9aa5-8b3e49de365e.ser create mode 100644 file-data-map/Channel/f9de0972-066d-4319-a936-9a3be77f0b50.ser create mode 100644 file-data-map/Channel/ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser create mode 100644 file-data-map/Message/01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser create mode 100644 file-data-map/Message/032d1b16-af7c-4b6b-b0c3-b98d002bd185.ser create mode 100644 file-data-map/Message/04f2e96e-0d28-47f0-b7ff-5f8dc06d3f20.ser create mode 100644 file-data-map/Message/073548ce-7b85-49c4-8781-2b200866a8cc.ser create mode 100644 file-data-map/Message/084442d2-f95f-4b18-b735-a6e13bd50808.ser create mode 100644 file-data-map/Message/122ce4ef-2021-44b2-9b32-b94420dd29d1.ser create mode 100644 file-data-map/Message/143b2d0c-800a-4ce1-b13f-6b680716373d.ser create mode 100644 file-data-map/Message/15be350c-8514-4dbe-a128-a82e044b1c4e.ser create mode 100644 file-data-map/Message/1b9fab53-d177-400e-a1c9-92f925cce8d9.ser create mode 100644 file-data-map/Message/1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser create mode 100644 file-data-map/Message/22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser create mode 100644 file-data-map/Message/22ede715-bc62-42bf-b37a-1116c8af0299.ser create mode 100644 file-data-map/Message/247314c8-1f95-4645-93d6-80453e9374d7.ser create mode 100644 file-data-map/Message/24acf589-b41d-480c-87de-20f0d3c69e84.ser create mode 100644 file-data-map/Message/24b15747-125b-4c8b-ae37-4588bf552d56.ser create mode 100644 file-data-map/Message/2660166c-ca16-4370-b96f-30e6e0d13a90.ser create mode 100644 file-data-map/Message/2797fea5-d168-433d-9564-3f91ca2c9767.ser create mode 100644 file-data-map/Message/2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser create mode 100644 file-data-map/Message/2eaad8fa-b3cf-44c4-bd95-c4f08d845646.ser create mode 100644 file-data-map/Message/330b7542-c8b1-4e21-8efb-2bcd5c34ad36.ser create mode 100644 file-data-map/Message/34eb2b90-0c48-4699-b57d-d234e744b035.ser create mode 100644 file-data-map/Message/38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser create mode 100644 file-data-map/Message/391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser create mode 100644 file-data-map/Message/39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser create mode 100644 file-data-map/Message/3b0a9387-555f-4586-a28a-ddb899bf5f26.ser create mode 100644 file-data-map/Message/3d247aa6-1422-494c-ba0a-073a940732c0.ser create mode 100644 file-data-map/Message/3e41528d-1998-4671-a47d-c0d8bf3efc60.ser create mode 100644 file-data-map/Message/442aeead-682a-48c8-8ede-3a674676a645.ser create mode 100644 file-data-map/Message/4446e8af-5c99-489c-aedc-ab739c36875b.ser create mode 100644 file-data-map/Message/44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser create mode 100644 file-data-map/Message/4a8587c6-be11-4621-89fd-c3625aa83332.ser create mode 100644 file-data-map/Message/4e5e6857-3deb-4c07-8515-37dccd45f443.ser create mode 100644 file-data-map/Message/553373cc-664c-4802-9e7d-a4a086f9e0b5.ser create mode 100644 file-data-map/Message/585a3414-5844-4d51-b1dd-8c52377e9cc9.ser create mode 100644 file-data-map/Message/59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser create mode 100644 file-data-map/Message/5a110b5f-9199-4b67-b218-162a81422fb3.ser create mode 100644 file-data-map/Message/5ef22210-41fa-4bc9-89bf-9bd1f42ccffc.ser create mode 100644 file-data-map/Message/6618ee6c-8cf1-4c68-8160-1e5b103cc0b3.ser create mode 100644 file-data-map/Message/6736876a-4b0b-468f-ba1f-205033e3b4a9.ser create mode 100644 file-data-map/Message/67a940c0-4b59-4f8b-a5d2-4e5640037b89.ser create mode 100644 file-data-map/Message/6dfd29d6-e545-48b0-9cff-86367aefc892.ser create mode 100644 file-data-map/Message/71ec7a90-4674-4655-bf68-cd40c15f2be5.ser create mode 100644 file-data-map/Message/72142b31-9033-4b1e-a507-bcad9390a5ac.ser create mode 100644 file-data-map/Message/7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser create mode 100644 file-data-map/Message/7b110e33-4c09-4498-9d98-daf93448e734.ser create mode 100644 file-data-map/Message/7c423db5-3f51-457d-af06-a718f60a3419.ser create mode 100644 file-data-map/Message/7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser create mode 100644 file-data-map/Message/7d7faa19-26c5-4c7a-a71d-0361db17753e.ser create mode 100644 file-data-map/Message/7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser create mode 100644 file-data-map/Message/7e5151c7-6552-4394-9a11-28961ee4bd54.ser create mode 100644 file-data-map/Message/7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser create mode 100644 file-data-map/Message/8253e5bb-696e-4690-ab6a-377dc2e5cdab.ser create mode 100644 file-data-map/Message/83413a88-548b-4c98-94eb-cf5eb9a79bde.ser create mode 100644 file-data-map/Message/89016ffa-1a86-4937-a88f-07eca1e591bf.ser create mode 100644 file-data-map/Message/8f646e43-a1aa-45ad-a7c3-a0762fae2950.ser create mode 100644 file-data-map/Message/97df8750-f622-4ae3-a42b-fe4450c00725.ser create mode 100644 file-data-map/Message/99cf48a4-bcac-4e51-a326-adf63741eed2.ser create mode 100644 file-data-map/Message/9a128996-c9b5-4382-a96f-71fb149c426f.ser create mode 100644 file-data-map/Message/9a4c6fa4-ae90-4027-8349-9309c0c439dd.ser create mode 100644 file-data-map/Message/9c76fa71-62b4-4021-a2a4-b77e32f3f21d.ser create mode 100644 file-data-map/Message/9cf2857e-bf4c-48e9-865a-2a0480f72425.ser create mode 100644 file-data-map/Message/9e098b88-24dc-4775-83b9-ce646d47a37d.ser create mode 100644 file-data-map/Message/9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser create mode 100644 file-data-map/Message/9f1ee58a-9cdf-4733-bd48-9abd95742999.ser create mode 100644 file-data-map/Message/a015add2-241c-477e-b926-5967ed673109.ser create mode 100644 file-data-map/Message/a01900b2-6372-4508-8974-d0f592c9b1f1.ser create mode 100644 file-data-map/Message/a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser create mode 100644 file-data-map/Message/a4dee914-d10d-4190-83c1-22aaeefb3315.ser create mode 100644 file-data-map/Message/a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser create mode 100644 file-data-map/Message/a7b67ef6-534e-42aa-afc5-02e757196d0e.ser create mode 100644 file-data-map/Message/a84f69ca-a4e8-4a77-b54d-6d427bdde046.ser create mode 100644 file-data-map/Message/b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser create mode 100644 file-data-map/Message/b114cce7-c2ff-4cb4-88a2-30a763bab7b3.ser create mode 100644 file-data-map/Message/b29f0830-933f-4086-83c2-7c78b766d339.ser create mode 100644 file-data-map/Message/b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser create mode 100644 file-data-map/Message/b9058c1d-68ea-40f0-86f9-46510c795a06.ser create mode 100644 file-data-map/Message/bb694987-1a60-493a-9d99-f0eac101605f.ser create mode 100644 file-data-map/Message/bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser create mode 100644 file-data-map/Message/bd8b3213-f62d-4cc9-9441-d2ae17b48ab0.ser create mode 100644 file-data-map/Message/c1c9959e-79a8-4024-8e7b-7acbd494d0a5.ser create mode 100644 file-data-map/Message/c327d6bd-1ec9-44e8-9ae9-5cccd3d4428e.ser create mode 100644 file-data-map/Message/c3319f28-fe32-4da6-b132-a9e9f760bd35.ser create mode 100644 file-data-map/Message/d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser create mode 100644 file-data-map/Message/d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser create mode 100644 file-data-map/Message/d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser create mode 100644 file-data-map/Message/d50f0417-7b32-45df-bafb-6de9b49930c3.ser create mode 100644 file-data-map/Message/d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser create mode 100644 file-data-map/Message/d91a2ea8-756e-4720-9374-5810d6e66988.ser create mode 100644 file-data-map/Message/d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser create mode 100644 file-data-map/Message/d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser create mode 100644 file-data-map/Message/dc116c66-b46d-4826-b6b0-8a06a122254b.ser create mode 100644 file-data-map/Message/dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser create mode 100644 file-data-map/Message/df914aca-d25c-46c3-a002-da79f51c3463.ser create mode 100644 file-data-map/Message/e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser create mode 100644 file-data-map/Message/e4c9534d-95c4-48c9-9bcd-c062f5569702.ser create mode 100644 file-data-map/Message/e553c781-5745-45f1-95b0-c2f5bff13894.ser create mode 100644 file-data-map/Message/e6b998ee-b8d3-4b52-acef-a3e881b084a0.ser create mode 100644 file-data-map/Message/e72f171c-31f0-46a0-9bf9-8af1f014e7ff.ser create mode 100644 file-data-map/Message/e97e3b65-0832-4d14-9932-1723cd885a3e.ser create mode 100644 file-data-map/Message/eb7fd738-ced3-4f54-a76e-70319b5b368b.ser create mode 100644 file-data-map/Message/f1d96929-4599-4bab-90bb-a83981ab245d.ser create mode 100644 file-data-map/Message/f85431b6-67a3-4ba4-bedb-faee99a4602c.ser create mode 100644 file-data-map/Message/faf8359b-976e-4aad-bbb0-83a17838f0d1.ser create mode 100644 file-data-map/Message/fd0ba632-83e5-4fc0-9cba-e1f34685c090.ser create mode 100644 file-data-map/Message/fee15d45-ebc0-4b1e-849a-d440b64281ef.ser create mode 100644 file-data-map/Message/ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser create mode 100644 file-data-map/User/01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser create mode 100644 file-data-map/User/041ea05c-a9e7-4be4-9148-387205b68de2.ser create mode 100644 file-data-map/User/0569139a-6363-4247-a834-aa50fcc955a8.ser create mode 100644 file-data-map/User/07e8700c-0540-4a49-9a43-7327d12a71f3.ser create mode 100644 file-data-map/User/08268dce-ce38-4b8b-80c2-4171d5807032.ser create mode 100644 file-data-map/User/0c94c418-13c8-4b8e-a002-1217bb08389c.ser create mode 100644 file-data-map/User/0d0f7fda-1850-480b-9564-08606223f035.ser create mode 100644 file-data-map/User/0fc7012f-aef5-4979-b5c4-09f802d6bb5a.ser create mode 100644 file-data-map/User/0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser create mode 100644 file-data-map/User/12b8dabc-4330-41c4-8e52-184b23168907.ser create mode 100644 file-data-map/User/153670d4-5982-4ee2-9629-bd0703823aa1.ser create mode 100644 file-data-map/User/1a9613bd-30ac-42cd-864c-dbee8ce23065.ser create mode 100644 file-data-map/User/1bf79829-7ca3-42a6-9c8d-493b0925683a.ser create mode 100644 file-data-map/User/2124dabf-245b-448d-ac8c-f855b284a397.ser create mode 100644 file-data-map/User/247342f0-bc10-4a9f-8883-125f1e7ecce6.ser create mode 100644 file-data-map/User/27455431-af80-4c40-898a-39337901dfd5.ser create mode 100644 file-data-map/User/299a103b-fec1-411a-8fd4-40260dc71f29.ser create mode 100644 file-data-map/User/2cb6be3d-afba-43aa-b343-4375ab4c162b.ser create mode 100644 file-data-map/User/360dd43a-4d67-4d53-8560-89226a358248.ser create mode 100644 file-data-map/User/3649b5b8-3dd3-47c9-af6c-88de9a422dc9.ser create mode 100644 file-data-map/User/364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser create mode 100644 file-data-map/User/467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser create mode 100644 file-data-map/User/4a664b53-5f68-4b4e-a0d1-2d82e4010ff9.ser create mode 100644 file-data-map/User/4c8661a1-3aec-41d1-b878-b8742fb91c6f.ser create mode 100644 file-data-map/User/4d9f736b-0de5-465c-9767-19c473b636e8.ser create mode 100644 file-data-map/User/537d03c7-113e-4b96-91b2-8756450247f9.ser create mode 100644 file-data-map/User/56b80611-d82d-443f-acfe-b8bee6d0876e.ser create mode 100644 file-data-map/User/57247463-2d13-49f8-aff3-941c92059dee.ser create mode 100644 file-data-map/User/59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser create mode 100644 file-data-map/User/5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser create mode 100644 file-data-map/User/638e272f-cacf-4e1a-9ed0-2a4d263b7732.ser create mode 100644 file-data-map/User/65a3190d-0fdb-48ed-be73-333afea6f8ac.ser create mode 100644 file-data-map/User/685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser create mode 100644 file-data-map/User/7536f7a3-3e8b-49dd-bf43-309685a3c488.ser create mode 100644 file-data-map/User/785932fd-4211-48ba-9318-896f0db9737e.ser create mode 100644 file-data-map/User/79422b98-a45a-42b7-8f5c-1baeae174238.ser create mode 100644 file-data-map/User/7a4abc1e-1d3e-4d20-bf67-e7d390d124da.ser create mode 100644 file-data-map/User/7ba3c934-ba3b-4410-8311-e5f1d91de828.ser create mode 100644 file-data-map/User/8107128c-bb85-4f61-85a0-9a13f1e8049c.ser create mode 100644 file-data-map/User/886adb31-4331-496a-ba32-f2caf7871c2e.ser create mode 100644 file-data-map/User/8f796887-da82-4117-93a8-ef16221c6208.ser create mode 100644 file-data-map/User/905eb14f-cc64-48eb-b24f-704901cf264b.ser create mode 100644 file-data-map/User/92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser create mode 100644 file-data-map/User/94e56c4b-b470-4317-b374-543364615a92.ser create mode 100644 file-data-map/User/951c825e-a48d-4185-bde6-40e6a3c61713.ser create mode 100644 file-data-map/User/957afc5e-cf45-4332-9bfa-916cd9371738.ser create mode 100644 file-data-map/User/972df3b5-2ec3-47a3-bae8-58d7c1d8a334.ser create mode 100644 file-data-map/User/9823623b-143d-481f-b28b-0c18a49eac1c.ser create mode 100644 file-data-map/User/9a4fa528-f105-431e-b505-53df4609ee1b.ser create mode 100644 file-data-map/User/9d01a198-f3db-4217-8783-221adb777bde.ser create mode 100644 file-data-map/User/a05517c6-ab01-469f-bb19-b38c3d308a2f.ser create mode 100644 file-data-map/User/a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser create mode 100644 file-data-map/User/a68bdea2-0476-4827-a99d-f49e6e151000.ser create mode 100644 file-data-map/User/aef23a97-2592-4c26-8d99-021b6d634fe4.ser create mode 100644 file-data-map/User/b6924dd5-c26d-49b4-970b-96a99166ce14.ser create mode 100644 file-data-map/User/b7261593-b1ad-4e29-8383-0ae63348e3ed.ser create mode 100644 file-data-map/User/b80085bb-80d9-419d-a7c1-b2d60835b66e.ser create mode 100644 file-data-map/User/bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser create mode 100644 file-data-map/User/be2df33a-b9e4-4665-a695-07d52f2f89e5.ser create mode 100644 file-data-map/User/c0bcfe07-6b09-4ed9-92c8-d423809ae928.ser create mode 100644 file-data-map/User/c25a20af-a862-4528-81d0-c163743a193e.ser create mode 100644 file-data-map/User/c5eab74a-4b35-42a4-838c-a01151059c76.ser create mode 100644 file-data-map/User/c9969dae-2059-435f-8d81-c2dcb6126f02.ser create mode 100644 file-data-map/User/cb31dcc4-673a-4eb6-bf12-a29351199bf0.ser create mode 100644 file-data-map/User/cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser create mode 100644 file-data-map/User/d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser create mode 100644 file-data-map/User/d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser create mode 100644 file-data-map/User/da82a855-d129-44f6-8184-da9df90b7094.ser create mode 100644 file-data-map/User/eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser create mode 100644 file-data-map/User/edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser create mode 100644 file-data-map/User/ef2797c1-3444-4e5c-8803-0ded62732d63.ser create mode 100644 file-data-map/User/f3c67823-69f5-4dff-aff8-d21450de0dd0.ser create mode 100644 file-data-map/User/f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser create mode 100644 file-data-map/User/fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser create mode 100644 file-data-map/User/fc02cdaf-ba9a-4ef9-8d60-3e5cf3299e65.ser create mode 100644 file-data-map/User/fd970089-223e-4119-934f-ab271c522ab3.ser diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java b/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java index 9355123e..4934b07a 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/DiscodeitApplication.java @@ -19,7 +19,7 @@ public class DiscodeitApplication { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(DiscodeitApplication.class, args); - UserService userService = context.getBean(UserService.class); + /* UserService userService = context.getBean(UserService.class); ChannelService channelService = context.getBean(ChannelService.class); MessageService messageService = context.getBean(MessageService.class); ReadStatusService readStatusService = context.getBean(ReadStatusService.class); @@ -30,10 +30,7 @@ public static void main(String[] args) { Channel channel = setupChannel(channelService); messageCreateTest(messageService, channel, user); - /* 유저의 회원가입 로그인, 채널생성, 메세지 발송, 마지막 접속상태까지의 전체 시나리오를 검증하는 과정 - 메인 메서드 내에 변수명이 겹쳐서 항목별로 변수명을 명확히 분리하여 가독성 높임 - 데이터를 주고 받을때 엔티티를 직접 노출하지않고 ex)UserStatusResponse같은 DTO(Record)를 활용하여 필요한 정보만 안전하게전달 - */ + System.out.println("\n=== Discodeit 테스트 시작 ==="); User scenarioUser = userService.create(new UserCreateRequest("haha", "haha@co.com", "ha1234", null)); @@ -102,6 +99,7 @@ private static void messageCreateTest(MessageService messageService, Channel cha null ); Message message = messageService.create(request); - System.out.println("메시지 생성: " + message.getId()); + System.out.println("메시지 생성: " + message.getId()); */ } -} \ No newline at end of file +} + diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java b/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java index d2e27553..a77ab540 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java @@ -24,6 +24,8 @@ import com.sprint.mission.discodeit.service.basic.BasicReadStatusService; import com.sprint.mission.discodeit.service.basic.BasicUserService; +import java.util.Optional; + public class JavaApplication2 { static User setupUser(UserService userService) { UserCreateRequest request = new UserCreateRequest( @@ -32,7 +34,7 @@ static User setupUser(UserService userService) { "woody1234", null ); - return userService.create(request); + return userService.create(request, Optional.empty()); } private static Channel setupChannel(ChannelService channelService) { ChannelCreateRequest request = new ChannelCreateRequest( diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java new file mode 100644 index 00000000..73ee8767 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java @@ -0,0 +1,97 @@ +package com.sprint.mission.discodeit.controller; + +import com.sprint.mission.discodeit.dto.*; +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.UserService; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +@RestController +@RequestMapping("/api/user") +public class UserController { + + private final UserService userService; + + public UserController(UserService userService) { + this.userService = userService; + } + + @RequestMapping( + path = "create", + method = RequestMethod.POST, + consumes = {MediaType.MULTIPART_FORM_DATA_VALUE} + ) + public ResponseEntity create( + @RequestPart("userCreateRequest") UserCreateRequest userCreateRequest, + @RequestPart(value = "profile", required = false) MultipartFile profile + ) { + Optional profileRequest = Optional.ofNullable(profile) + .flatMap(this::resolveProfileRequest); + + User createdUser = userService.create(userCreateRequest, profileRequest); + + return ResponseEntity + .status(HttpStatus.CREATED) + .body(createdUser); + } + + private Optional resolveProfileRequest(MultipartFile profile) { + if (profile == null || profile.isEmpty()) return Optional.empty(); // null 체크 추가 + try { + return Optional.of(new BinaryContentCreateRequest( + profile.getOriginalFilename(), + profile.getContentType(), + profile.getSize(), + profile.getInputStream() + )); + } catch (IOException e) { + throw new RuntimeException("프로필 파일 처리 중 오류 발생", e); + } + } + + @RequestMapping(method = RequestMethod.GET) // GET /api/user + public List findAll() { + return userService.findAll(); + } + + @RequestMapping(path = "{userId}", method = RequestMethod.PATCH) // PATCH /api/user/{userId} + public User update( + @PathVariable UUID userId, + @RequestBody UserUpdateRequest request + ) { + return userService.update(userId, request); + } + + @RequestMapping(path = "/{userId}", method = RequestMethod.GET) // 주소 뒤에 ID를 붙인 GET 요청 + public UserStatusResponse find(@PathVariable UUID userId) { + return userService.find(userId); + } + + @RequestMapping(path = "", method = RequestMethod.POST) // 주소: /api/user (POST 방식) + public User create(@RequestBody UserCreateRequest request) { + return userService.create(request, Optional.empty()); + } + + @RequestMapping(path = "/{userId}", method = RequestMethod.DELETE) + public void delete(@PathVariable UUID userId) { + userService.delete(userId); + } + + @RequestMapping(path = "/{userId}/status", method = RequestMethod.PATCH) + public void updateStatus(@PathVariable UUID userId, @RequestParam boolean online) { + userService.updateStatus(userId, online); + } + + @RequestMapping(path = "/login", method = RequestMethod.POST) + public User login(@RequestBody LoginRequest request) { + return userService.login(request); + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java new file mode 100644 index 00000000..9c70bfd1 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java @@ -0,0 +1,11 @@ +package com.sprint.mission.discodeit.dto; + +import java.io.InputStream; + +public record BinaryContentCreateRequest( + String fileName, // 파일 이름 + String contentType, // 파일 형식 (image/png 등) + Long fileSize, // 파일 크기 + InputStream inputStream // 실제 파일 데이터 스트림 +) { +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java index 15ad1bbd..ba6a6741 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java @@ -3,6 +3,7 @@ import com.sprint.mission.discodeit.entity.UserStatus; public record UserStatusResponse( + String userId, String nickname, boolean isOnline, String lastActive @@ -10,8 +11,10 @@ public record UserStatusResponse( public UserStatusResponse(UserStatus userStatus) { this( userStatus.getUserId().toString(), + "haha", userStatus.isOnline(), - userStatus.getUpdatedAt().toString() + userStatus.getUpdatedAt() != null ? userStatus.getUpdatedAt().toString() : "방금 생성됨" + ); } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateRequest.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateRequest.java index 3260b75f..35f8a65d 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateRequest.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserUpdateRequest.java @@ -3,7 +3,7 @@ import java.util.UUID; public record UserUpdateRequest( - String name, + String username, String email, String password, UUID profileImageId diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java index 8775e434..68ffd6ce 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java @@ -16,8 +16,9 @@ public class User implements Serializable { private String email; private String password; private UUID profileId; - //기존 Long 타입을 Instant로 변경하면서 기존 데이터와 충돌하는 상황이 발생했는데 이를 해결하기 위해 기존 데이터를 초기화하고 - //타입을 통일하는 과정을 거침 + private boolean online; // + private Instant lastActiveAt; // + public User(String username, String email, String password) { this.id = UUID.randomUUID(); @@ -27,6 +28,15 @@ public User(String username, String email, String password) { this.password = password; } + public void online () { + this.online = true; + this.lastActiveAt = Instant.now(); + } + + public void offline () { + this.online = false; + } + public void update(String newUsername, String newEmail, String newPassword) { boolean anyValueUpdated = false; if (newUsername != null && !newUsername.equals(this.username)) { @@ -44,6 +54,8 @@ public void update(String newUsername, String newEmail, String newPassword) { if (anyValueUpdated) { this.updatedAt = Instant.now(); } + } + } // 이름,이메일,비밀번호가 변경되었다면 true updatedAt을 현재시점으로 기록 \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java index 76c471cc..c67b50fb 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -1,18 +1,19 @@ package com.sprint.mission.discodeit.service; -import com.sprint.mission.discodeit.dto.UserCreateRequest; -import com.sprint.mission.discodeit.dto.UserStatusResponse; -import com.sprint.mission.discodeit.dto.UserUpdateRequest; +import com.sprint.mission.discodeit.dto.*; import com.sprint.mission.discodeit.entity.User; import java.util.List; +import java.util.Optional; import java.util.UUID; public interface UserService { - User create(UserCreateRequest request); + void updateStatus(UUID userId, boolean online); + User create(UserCreateRequest request, Optional profileRequest); UserStatusResponse find(UUID userId); List findAll(); User update(UUID userId, UserUpdateRequest request); void delete(UUID userId); + User login(LoginRequest request); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java index 10435218..dd1046c9 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -1,8 +1,6 @@ package com.sprint.mission.discodeit.service.basic; -import com.sprint.mission.discodeit.dto.UserCreateRequest; -import com.sprint.mission.discodeit.dto.UserStatusResponse; -import com.sprint.mission.discodeit.dto.UserUpdateRequest; +import com.sprint.mission.discodeit.dto.*; import com.sprint.mission.discodeit.entity.User; import com.sprint.mission.discodeit.entity.UserStatus; import com.sprint.mission.discodeit.repository.UserRepository; @@ -13,6 +11,7 @@ import java.util.List; import java.util.NoSuchElementException; +import java.util.Optional; import java.util.UUID; import com.sprint.mission.discodeit.dto.UserCreateRequest; @Service @@ -22,7 +21,7 @@ public class BasicUserService implements UserService { private final UserStatusRepository userStatusRepository; @Override - public User create(UserCreateRequest request) { + public User create(UserCreateRequest request, Optional profileRequest) { User user = new User(request.username(), request.email(), request.password()); User savedUser = userRepository.save(user); UserStatus status = new UserStatus(savedUser.getId()); @@ -37,25 +36,29 @@ public User create(UserCreateRequest request) { */ @Override public UserStatusResponse find(UUID userId) { + // 유저 정보를 먼저 찾습니다. User user = userRepository.findById(userId) .orElseThrow(() -> new NoSuchElementException("User not found")); + + // 상태 정보를 찾되, 없으면 에러를 내지 말고 새로 만듭니다! UserStatus status = userStatusRepository.findByUserId(userId) - .orElseThrow(() -> new NoSuchElementException("User status not found")); + .orElseGet(() -> { + // 데이터 구멍을 메워주기 위해 임시 상태 객체를 생성합니다. + return new UserStatus(userId); + }); return new UserStatusResponse( + user.getId().toString(), user.getUsername(), status.isOnline(), - status.getUpdatedAt().toString() + status.getUpdatedAt() != null ? status.getUpdatedAt().toString() : "N/A" ); } -/*매개변수로 userId를 받는다 userRepository.findById메서드에 userId를 매개변수로 입력해서 리턴값으로 반환된 User객체를 user에넣는다 -만약에 반환된 user가 없으면 에러를 던진다 userStatusRepository.findById메서드에 userId를 매개변수로 입력해서 리턴값으로 반환된 UserStatus객체를 status에넣는다 -만약에 반환된 UserStatus가 없으면 에러를 던진다 리턴값으로 new UserStatusResponse객체를 반환한다 UserStatusResponse의 값은 위에서 찾은 user의 이름과 -status의 온라인상태,업데이트 시간이 들어간다 - */ + @Override public List findAll() { return userRepository.findAll().stream() + .limit(2) .map(user -> find(user.getId())) .toList(); } @@ -67,7 +70,7 @@ public User update(UUID userId, UserUpdateRequest request) { User user = userRepository.findById(userId) .orElseThrow(() -> new NoSuchElementException("User not found")); user.update( - request.name(), + request.username(), request.email(), request.password() ); @@ -86,8 +89,36 @@ public void delete(UUID userId) { userStatusRepository.deleteByUserId(userId); userRepository.deleteById(userId); } + + @Override + public void updateStatus(UUID userId, boolean online) { + // 1. 창고에서 유저를 찾습니다. 없으면 에러를 냅니다. + User user = userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User not found")); + + // 2. online 값에 따라 유저의 상태를 바꿔줍니다. + if (online) { + user.online(); // 온라인 불 켜기 + } else { + user.offline(); // 온라인 불 끄기 + } + + // 3. 바뀐 상태를 창고(파일)에 저장합니다! + userRepository.save(user); + } + + @Override + public User login(LoginRequest request) { + // 1. 이름으로 유저를 찾습니다. (이름이 틀리면 에러) + User user = userRepository.findByUsername(request.username()) + .orElseThrow(() -> new NoSuchElementException("사용자를 찾을 수 없습니다.")); + + // 2. 비밀번호가 일치하는지 확인합니다. (비밀번호가 틀리면 에러) + if (!user.getPassword().equals(request.password())) { + throw new IllegalArgumentException("비밀번호가 틀렸습니다."); + } + + // 3. 통과하면 유저 정보를 돌려줍니다. + return user; + } } -/* 매개변수로 userid를 받아서 userRepository.existsById메서드로 userId가 있는지 확인하고 없으면 에러를 던진다 -userStatusRepository.deleteByUserId메서드와 -userRepository.deleteById메서드를 통해서 userStatusRepository와 userRepository값을 삭제한다 - */ \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserStatusService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserStatusService.java index b37ce685..5cb89f3e 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserStatusService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserStatusService.java @@ -40,15 +40,16 @@ public String create(UserStatusCreateRequest request) { @Override public UserStatusResponse find(UUID userId) { + // .orElseThrow 대신 .orElseGet을 사용하여 데이터가 없어도 죽지 않게 만듭니다. UserStatus userStatus = userStatusRepository.findByUserId(userId) - .orElseThrow(() -> new RuntimeException("해당 유저의 상태 정보를 찾을 수 없습니다.")); + .orElseGet(() -> { + // 상태가 없으면 온라인 상태가 아닌(false) 새 상태 객체를 임시로 생성합니다. + return new UserStatus(userId); + }); return new UserStatusResponse(userStatus); } -/* 매개변수로 userId를 받는다 userStatusRepository.findByUserId 메서드에 userId를 매개변수로 입력해서 반환된 UserStatus객체를 -userStatus에 넣는다 반환된 userStatus가 있으면 그 userStatus를 반환하고 없을시 오류를 생성한다 -userStatus를 UserStatusResponse로 변환하여 리턴값으로 반환한다 - */ + @Override public List findAll() { return userStatusRepository.findAll().stream() diff --git a/discordit/.gradle/9.0.0/checksums/checksums.lock b/discordit/.gradle/9.0.0/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..7a635281f51012396cdaea3a131c8f821d0dc89a GIT binary patch literal 17 TcmZQJd&nAfC}qJX1}FdkG0_Av literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..724bb7839b6f5ef040218571d1cad192eb3ddb84 GIT binary patch literal 103098 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 literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileChanges/last-build.bin b/discordit/.gradle/9.0.0/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..16b82d11c5e4c45f2efb7248b90430503580a1dd GIT binary patch literal 25097 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 Mk;z>D^XC2k0c08j^#A|> literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/gc.properties b/discordit/.gradle/9.0.0/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..d8f331435ea60690c2477987a397d68bfe2c822d GIT binary patch literal 17 VcmZSHo?s~QWB%HD1~6b*4*)Z31l9lm literal 0 HcmV?d00001 diff --git a/discordit/.gradle/buildOutputCleanup/cache.properties b/discordit/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 00000000..0753f42f --- /dev/null +++ b/discordit/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Fri Jan 09 15:28:07 KST 2026 +gradle.version=9.0.0 diff --git a/discordit/.gradle/buildOutputCleanup/outputFiles.bin b/discordit/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9064c2da6340d9e5e69f73d9529d8e3a6bb7fce GIT binary patch literal 19037 zcmeI%Ur1A77{~F~WvI1M28uSai0BU~4lL+^Mn$aSa;}o46-h>!$tu#OQPhZxD40T! z_D5=#^=OQS&7*t2z=SgBWF@ivT2hR5LJ@0uA=d;Ug z5h63~CmmwuNS|3^1px>^00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P-mJ5wL47GEcrt zW{z%pk=h`HNv|!k&#x_?bT%Ig%gaR<`Tqm==+1saa3q8J7w%2PwI3rt>V2}Suee|P zuvkfb{x*^NChjc*+2K-8QZRv04$59Mz}=_c{xH9L zvz2-)_hHvYe{S4>+D0O9~rvWmgaV?v0_-Cr>G_X@4E}@nyFsDn5;Urtaq+ ziVSwGzG+%Vy^{OXJu}Qk9_|a0E=-JH3OZ=Nm-~vunzME#&`bI)16=kbQR8_BX;wsAM@TGiJ2X!s4y z$>MJA@DzmF(jv59;lAUl>#qGym4W7mx$l2jbzSeQ@1i+2?v)t1@C;9(*OVf literal 0 HcmV?d00001 diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..0692eaefc09f18d71a18f147ded4a831df68767a GIT binary patch literal 8 PcmZQzV4VH0>RcQE3UvcP literal 0 HcmV?d00001 diff --git a/discordit/.gradle/vcs-1/gc.properties b/discordit/.gradle/vcs-1/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discordit/build.gradle b/discordit/build.gradle new file mode 100644 index 00000000..602a4a8b --- /dev/null +++ b/discordit/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' +} + +group = 'com.sprint.mission' +version = '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation 'org.junit.jupiter:junit-jupiter' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..67007ff38f62c1ed232e30dcd760319509ad0958 GIT binary patch literal 10648 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 D>ZPB( literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class new file mode 100644 index 0000000000000000000000000000000000000000..9242b30a364497d0c7d0d25d9617657e84f2d977 GIT binary patch literal 1861 zcmb7EZC4UO6n+K-5?4h)Ez|O?1bkWT)xs>rEQ$1k%J&sE9nZ4s*U3vzML;|$ANI}+_vLx+eP;gr{q-BbD}0C|fM5h&3PK1o#E!L7O*J(0P~AB= z)=Mr!c!itXU1bQS(#0rlp*w=8f*vRgebT+^azowU-`Ze^+L~FmD&8iZN*7ukvfb!I ze*`fF1Bf%smaK~EoY>rS)e3hUZkcMCJ0+{Eb63?(m%BAJcchu7ZZHIRnGkkLnN%={ zA%-3bJ~6b~wpP&@;-0Hyv+Gik!)z3{aVLTi1$QypLU*_3xO#y-lQQX7*2*wpmVDg-~OkJ?dLx#wyW>oc^PYj7v-sj!;Tk@V(@Bj}Px=XgMxq5kx zn(MP^bxbKpOULR-*>eIzT_x8qs(nVsEqggZb7r3c!S1Sj) zz2_l{7p#(I6g5Ig2>rt@_ejiR{wAfeG(Xe&OhWeB$uQUfyucDV)ZHzTSRdJqW+5fd zh1@J9@^cz~rWBk)fw_y}HuQfnUIvANntT$?ScH#_E{z?M!B_j?8zN>p6WV>G=TF>_UPb zkR)PsZIe`c6vLRNtC=Q@%OW>=1?VNB*9^1K@P!+w5-RVaQgm8_^3%KSj@H(CTBD1_zVxJ)Bl$-z&<@EULE zL^P>6IME(F-7$FWnk-UOF#R7E>&SHgGSv=bt|O2Qy!C@y+BwzU&P4*UbOjJ0B+MU?``{{xaDSA75g literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class new file mode 100644 index 0000000000000000000000000000000000000000..b4f8819fbba497a998c9ec5ef5ff3ede8ac60aaf GIT binary patch literal 1223 zcmb7D?@!ZE6g_Xj2Hyocf2|6*sEMhWPLj3er>UgAkC2L25f0aTa zM5E!ef0XgQu7)apS)2ZN_nmw1x#!;Z^VioO0G?xAM}on!y{_dS_k;|ruJC=~N$WuP zws+u&z;a|Df>W!0$fb1L-P2!0$_I~I<2270WFicEfk|AZgo^%*;`9kA}pK#0NvSaPEj~qLw8kj;>$1M{%+-8`# z25iZGmx!Ejx9{wHU|7$`yz4Ia{c6n63`nj{HJ(8Q2;K7otkWbgOg4mc-uAm~r?)$Zxb>g93PZP#A=~h5 z?zT9wC8kmEq~u-7n!PDHOry5R-F?PbPkJHBHJ?kC-5jUrv{(?Q}lg| z1=`8eYLUL`GR~lX!PphdPqbnv(0e4@Q}`T;5xzpPl!uXJ#Y<$az!X057k-5-<^Y8! zcpC20d=g4!EJLFk(2Fbc7nuGWZpYJIyX#mDOR+*sDPyRSjfgBENmgJi`5kOuJA>A| x$$XTul_G~yE-`-&U6B~nY!FLT`8es6z##D&o{=qq%5Qmc9H;;Q literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class new file mode 100644 index 0000000000000000000000000000000000000000..53ed203399728ccceb491655509a53bbea7115ab GIT binary patch literal 1112 zcmb7EU2hUW6g>kh6x%v5B+G88r4?2_q)SE5o;(H zP_eO&DnrMMCT?;T%TT!!nItj_U0)_%5h|(Px-UeM@R4B1NS_ccOIf$Efd)gt zi$XK|ix*!mO7Vh@XUd%%!8A{H3R zJsFDQ>0~J4S1EvMFYpus3kzVpiF8GxC(KPnNGpRYV=QG^blwyY{&w$|??OYSraf9?7A}fQN^ryuz zIt|oFnwOC@A(9sPTDV2$ZL;2we~#pq^9juPjKU17PG^Rivpd6OXK#k)2NQgU&L;A7 zmMNe@+q+I@mA0lv_jTN*7bi`H7TRP{QoU1DNNXBI#%LNwmTnz%<{%!?i+;D#DZloUPx%2bf47;%Bd0djZn&o`N>U&Z$(6G}qn1;z;l98%&s39XaRHl?j%Zxaz&@SA6}#$Bl9|ckQHNX?deNt#U&S#b88T(Ns<}1Cusp45xUOMaTE%e7 zc7+?B#x2kA_OvyZI}8z{LiEDo4XPNzFhe&XYo@-ptXDZh(sz|dDS5QRmfZZfiV@)) z<5k@-1)UQr-jVRywr%m{dUcaK37o_!1!F2syASNSB)xPGECEO zWr7L`jAKHwM)~hJj2WNKf;zWSCWP9#afmWryn?uiT^> z1m`~LctM3G9qYA<@0g^TUQ%%x?=hsR`VPvS&Mc43ArB1de{tJJcdf?v592d#7H@y-|8cfUA2o9^$^y62Wg; zxmKwLA@aIumJE;QI`KKflsNR*#>*$qUi|!Uj!lh;(Jzl)KKWBletP)o$44)I|KZi+ zgE@Ae(!Xd~+{v4|>vC7YmkblHWg+Zv3cg}E`DRyAm7fXfHNDi08D^j$jSp~z##ia( zh~OGs)G+0kdY!b?#-yd@B`q}#X{jfW?IvstIl9l%>?t}BCwn>j2Uzw1%07Cs=l3y? zo!Un#JH3ze0YQ@s)Iu{D z#U<*S*U4*!_NLwNA#RWrBf*-DMXBf-3bumiYBXN}VHTTR9eJ&BT6x{W50AC(ka zm<`L_PSgDi5;%)K>cJzJkW8|ElqQpOlSx{92qcrV_yEv;40)(Q#x$~mZ!G%^J-^Z* zLSIWz62)Rhh8C{m5QJu!$8A~>>23uNw1cNY!3&|_R6F=$DEOmLaJn5l6AHeA#Sq$) z?cl4S;6f;Px*a?l3jVlBdsb#2NK&>3=t|L*evXSkd!!pJk&?~S7qJwa;W`ycs4FgY zbEsbNKL@m53=1-XU-@`b7x6$B49nrMQth!8DOTY>VhLr@Hv=oQX9Rcg3E56s`IN5D Q@CD5hG}^#@e2tNR0j7%k#Q*>R literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..c972ac1d89821ba6afa78ddd494e65a3965185aa GIT binary patch literal 634 zcmb7CT}uK%6g^|=>h@(B{e-ZW<~gjuia-#A#2%uTX?LtZ`%d@Il?>@kNov1B$s0Ya|5O#lD@ literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..28ff4bad34c57401e190d1b04754936b69fd4452 GIT binary patch literal 634 zcmb7CO-sW-6r8PX)5foA#h)PY;+~~isEAOA6fE%|Ue;s{TeeBbZi@YD9{d6RDDfpi z6oO)oZ+70infLbn}!6RT_`J34K|X6QYuB)Zy6BZd>t zFJ0tTX&waAYZChgW-CjXgdQ>U=PFKw%`>tW{Hy7rk*hJya0*`&tr-rzpEi7DEIm(Z zVDk~Kd?7LO6@FOH@xb6lQcEj;rQ8!`p5|F7Zh($ literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..26ff33d4f20f72df9b65fcabdd89efe33446f82e GIT binary patch literal 616 zcmb7CO-sW-6r8PX)5foA{0$N>?#)ZJpomZi6k5`Qw>4SImhC2FH^u%n5B>mul=zxL zRf-aiGdpkIy!ZC~#U&_#VRwlh$4O52mFsk~O zPH7&;!+Uc2B1XBRQH1U@bSG+NgewaQHm+54T|d%*8hGnaw^}othTk(p$~t-;?2!NT z_vH&Y+0EF&?gWnvek!$e@>j`}B$KQx68WGs?IHMi&dc@U+6)YP^f!POUAKic)>rn> dA-+p&13uw>9BlC+;UgSZx*kqQLp!LH!6$Qpwx0k1 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..c57a24760b05e47b47f44ed198c9087387b22191 GIT binary patch literal 4900 zcmb7Hi(3@e75`m829_~Ad_?dOC1B;{8cdA3#waM26f}{C1!L1;cYu*)XR|Y_()5)! zZPNEEX=|Fc_GuqUt8D{S+9Z9qY1;p%-0xDBsmKT7@bFGdXQ# zGIrYAowEFD#86|vG_e+UDfA@W*|?X@IT=4b>v*2yX5uNwOS&oB@#8r=>w1pw=H}v) zPTG$5@uxRXcDlHvP$i2etyx>4VPMIlA)jie5;0n=Gf|HQ1!L05q>iT36x`Joh~|AK z9UpK!KheMt*PGaYjS3aM?J=0aT>~pRXlH!KpNoe+C88=P^O>YC;XInNQ%=(I?L-YW zq0vB-iOtxeaF=$qXrFQ9>{<7M-9M?YV^_qxWmL6|i?VGd?!k6KZKYBQ8^S%2bR^ow zCH!U+_o78%t!G`Z8UC;Ns>2~1a~ScS+mj!0}qnB+9Ai))Qe#s4hZuP-U2p}5T><_io_w42Zj8v zv@elWo<0c7!af`^aTGmVNZXkye_Ag*V&E9_uoU*uT+W)4RK(CLC+)oojRhZqBi5hE z=KTPB1N{ZeLKh>8F`U5r#M=Rd`Vh2GN_*Oeld^hBVbjuTWPd31n2FOEQiw6xslp*& zUw|yiwHW#^Vq#PZ!d%4f4V+w*MF zxZq9c4titY0|jl2qyNg3)Ru|wQ-%8F5=d2{t^I?3%z(-Ad3?EnMSVawF>Zfd9fGw@C8rc{=flnHE#>A(j zY()y7EX$F3GH<0l1JClDuV^&V8J1}XYkS>{=UW+n)Jo@B=PG*HPZ;Kald(_cXD963 zu&_|tg`2d}qgKw5_i(bppLTd`kF8w#BOXZmS-v+VXj^Ko!sDy$BrAr0OW$E*3wx|W z*UE0+wzDeS$%yMBrBinU*2YqR=CTEl9==8P(5lQHCNO0VNfI@wDZ*1U@wb-Xnuq;tBsnfO(-XG!JV<=0~$Z>uqLgf+?Lq}W}|O!g;+*61qM!7nN-^LS_WKqCZA12 z=pNo_A~T`2VB;`LK~((C7Xy%E zZ(tlHs&S6udXuh1Q1qb* zU&l9S@tb<*Wj^uCk218U4$%*Z=IkQ&jWrkx*gw!QkHlq|93HNI{zcR*qIYZo$FD7- zZ)_1K#yS@8$N~ljiOQpIVADyC!(G?(a1}KNE4msh<}udw`e0!rQ`U`xIKmt5Q5@$T z{0y3Ln0M%N;rImCPV4tzd?EyTCo>2_8Y7I&{9fxu3-z>eZwq(a%N?y4!cHA@JHhCt z?2GsoLmNUBUc$FE5NAUmVt5SS!FL({6>9B8<=bd7u+Ml0TjjGNCeOUDD+6cVA=@g7 zQ=HJVlw^+%re)%LA)-Iv^bheP{z?WPqEX3UbvqHX=3&3gmmpz6U7$0Pr0Qals>38H z{1{h5RnKsra8r{(bMt)2&C96LtQ5vqM96R-li5u&>?Ii@I)yCmgu8s)D#s0~!ba(kz$8s9|~tAD8K2+5s*yzwqhrl#(L-5BwAVLgW7c D<%srj literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..b1aef6e53ac3178aa003b9b3beee6d2d97544862 GIT binary patch literal 4917 zcmb7HiC+}w8Gb%Q2bM9wdPG#L7(^D-ji`xcJwc6F&{U9AYSNCo0}c*5o1Iye^hocf zP4A{hlHQj+Y-`#EsV3~nh6U(tep=rXpVx?UxKb}5wal+093M&pcc_%oeu&gsRQinPPbJF&GYuxsC z=B%I|2{afmO{~Oy3cXoxGVK?NPCiIaI==6C`E<_lvtG`2f^^X?c)k;O#i{g|SXb>HEAm(2j(mq3Mh6wW1vZ4m7XpIj+;JOELu|ojvpjwO47tCtX43_ zoP6%6>rz5zDwLr&%f3tkjaVxl->=Zp8C&i1T$fJM=uB!PNrYNVtj7k0+Q9aS#bD>a zqW;JfF>-n~U$IE%BHx6GadRMKBuARUL&YKv;dq^=-ai~-%6q)5VNm;h0 z`UI^p@I+Y}{pde){94x5&>MKK!e)( zm;8#aCg9>w0uv}ml%AR^L-akqPlss&zKH-Og@&s|C$P(LS}?)Mxd{v>Z~@m$Oi8pF zbu}IetnB6CqLpQM-j5F$_@Ido;TeVQB~&zqe%uZO*y^gPkxk$u_^5%8nfSOAp;$SS zWl4aiN|x&z_$0G-QKhjqu|RiN+2`f`z{&?BmRn-gs_kQQp_>Cv-acKLyl5APg@w{P zysYJpSVc#EN0YU|C5K6PZ1F-Kvp{;$!i_3J-BLjnE-bY#Eb9KeF2ZIOHC%-qi<^Dd z$-3wyJ#LB>LS5Tg>8b&mDwIJwJa6xTC8<3`U}_waB(73ZgjqD?jOVSOR3vKW?kPE! zu6vm$5#A8`APJ>!GV$W4ps0UMxI$*p(8`r#=}siVb`h4bs>U3au~8Q7obB3y{kB_1*lRqGP;9Jt5<*c`VJbLOmtFeX z8;_4rW~pAJXu&Gin!K2^+UIO-?@>4s7p)yy62nsTUa`J5N5Z9h3k>bM7^P@VGP9j` zkSCUwn@hGMG31qsSz9>5h9JXTHEXA|0j5K*=LNijScO45xa8&h#ua!afoaSb_??Mc zxUH~7cMMG^Cx6AeY^Mh_emr4~Sy{O{vkgqff4v!D89x*%IBDf`uI;xEc;4kwArqr} zbVG^FMB2iG!z=~y?f1SIs$BeRbS;kC+h@7%5L;WO30sNEAEceXYT{S8*@V~iJ#r}( zGc`&Xe-asgHt|c`;IF^RufLi2Id1S4*PqYZMSYR5*^mCIu=Ot37edg$zZ5ntzLkA0 zgd1(tSi{TkC-|3?uOp71;x|PN46d-1Vg;Yia%R8Y2Q+leKy@XJS5W`5-uP)gMF?P` zmLfi*-xQw>cn+WCsPH*_J`(dRmhnH(Ig7^gUDIfu!J5JC-M6t0B-h3oJifjA7PfHg z+CGhr?wj1Z45DK#jRBgeC5aY(K(%2FIyfu(Hit4JeUy$b;EU8~Vk5qUFVniOaF>g)ZJWZeyodw5x`XhZV$*8f{0CUV?HP`O&c&n`p~MZNu77 zLdAyl_$t0ejbGO%zriCq|F;U#=i`+qj_KY^3@7QRidzr+2#SpF7T3}o&QG=5Vg_-gR7t_+OaA=PRtQ=HJV z#vLB538!V^yAh7x=kyQoLp~*L2dPuyR^LVV-Zzch4gLtjB)kREvC!04LQ@}wM&U>J zaU|+F!XU(Kn@>z9BIXOI)07m}*T$HzhrHU04S0xn?2ECnt)i|iQfHE}^Vujf!bU-< z4(cszHV9FTeEae#TtUQ@eY2P#C0xyy{0uy%%`}Q6#Fgt-Y(6+s)H2 z;ir59{SGr--o!&y$+vLkdCrK3d$3}T0j&nV0;(AxQxyjM2ddY=h1w|cKWj=zWsJgA zi99iQnpykd`H|mS6?sWT`B#r$NMWETmfU+4)%rG~bd8}Xc7RCK5uzb@n2}XaFJM?Q zCe74!N(?hY!x*cus{R_k;jGlP-|}x3zsGCQ+aD`$f8pETxl0Q5Kkx?LM9cpG9Z>zF literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..1562c83b445067689882787846f84d5047656f42 GIT binary patch literal 4805 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 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class new file mode 100644 index 0000000000000000000000000000000000000000..a0ead26f2e4b613b4a3b02f60c0ffd8d517203e8 GIT binary patch literal 628 zcmb7C-AcnS7(JO=>*n9wUShp57hcvMh9U?Bk-8i2Vj62kmX;(P?A3PR1Ncy4+9@Ih zp;sZ_`Et(pos*Bx?K^-=Ohfbt&Uvw-wlq>Zx{}t)LeorIUSvW#YK2)#F6hl0(^{x> zcMZ`e7%$nHQN?slA6}M%JA!~4!JHs4v*Z^|ohQ%ZMW7sjoa=P?cHZ z+GA_-wu@a&2{NHX9m%vs9z7F`(xNh4+(}ip{7w0+jxZn~*z^Ad82Hc!2vCO~V!t_u Z784~i1^=1{e}F$q+@wmC zfRNKN?+tI>%-fI8w|4-S7>DQxoa=lg?Ydy&om5xD*ywG(bD6jnm>EE5<_roUW9Y@MIek2y8Um4)AH-e|aJ<@(C&1?4)akM!7Z z-aJ~{U4n!%suCDC#HUXJgE%h>O}Cs?Eq_Bjs}c(Y1or&*0D3;-9s*QZhuE**J_epY W@N5T%9zViyjh|rXF@e*X8GQjO9k>tx literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..e224fcd4b0587854ab905e3a5a1c22da538a56a5 GIT binary patch literal 633 zcmb7CO-sW-6r8PXV(V9I|3q_fy{8rg5rlw;5bx<`4Xl_R{rr0W0C0y{hylZ`s5iXX8q$_;sA;Iyyrf3dr6kK6X?7$e&s~x2>kvbR zXkF|It_of8=ha#Y%Mb`73o98`^YoX^tW&O%Ly$QA*NW7Z?3;IzFbrQwmkf)aS*<0- z^Ze-{IZ7q$RPL2xn9k$9N3WDpW8IK(MwKpXYur}LUc=&Wze^_;wA<3($MifOa-Dw9 zQJV&(RI*EF)|(!`Fif(#H9|g;axKxHv~Rj70|tf@_i2EU3x9+F-6sff>fbRYjz4qk T0Otg~YB literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class new file mode 100644 index 0000000000000000000000000000000000000000..70b2bc72d8f07d68f84811c1bb050a43a8d16f71 GIT binary patch literal 594 zcmb7C%WA_g5FDk6-K4KH`HA>a(O#Vf3Z)P*^kCdWZ;q@Q1w{^)9O$q0&=2TGm9CW@ z0)~>Fw3=CFb~XC?{`drNk7y<`+-_@S9N#EwRb_agtf&g99JjLGDIs}AMY^x= zLi8EN>wK4Uotu(BuhvpHhW?u}1;c!nc&>3u^DJ9F#!>R8hcr&PcW)6hgssYh)(n$b zbfAxdqvsx-N4YRRzZG|Z28T98=KY>V8H(y}x2-r4V$I(nQkJ_d4)TMzuOdhPfhS1l!XBzsPe9o7-Z40Xyt}qN3;ly=Obv)B|+#QB|p(U!j zyH$_S8pe4A`x$aA?S<`|{!ZOiMIX{K`2mK-@j@g0qEA_Ez9N>rSgSi#k)K%W#Q_{t zFsR`Wh8WJbjHXpK44od|77TaCTT`+(jQm7fyJfgXG`xmkhVBj1F3s&Ml^9M&WYm1q z(r?^YxzbX3DJyiNtODX3obmWCTO+mNPuu~w~Grf~Br-oSAM zZ)zCD35HD42}7^rE?AyeExXQrhMBmBBw!S0tcde6$1x4#m|#$3j+ZTqT#d(5Dwv*6 z=`b9XHE~MA6sD>AYt<6>=?n&&6i0a0r!~yr41+2j5QG=fcOV{PNZ)M*=NPh${Fa?! z%_uKeqCy9_@W2oOsVd&aI||;_a31gN>Bz7oDT8fp)x^q1P)q%jQr1=AMGwaU71SNXa{Gns;8aBGdbrW{9;oqpM*3@^2AjC!yy)vG+!gW-yx z9^5AN&>DVkmxf}|jsaZ7Ma1}|LewMeAP2EfT}5KdFx8GV#nmZ$ zis53i=-UKJnFN!L2~E&C3_V42)8>B7rPMAb+V(k&p_GiyFq})ck1J7gU7)D@A|T23=xI`%qEmAXv1rP|KiuR4 zJ1q-@2%U2r-}7Bwy(av!Q}X(|z*VfnP*Bn!KvHtNQA?)1?Q99X5JXKDe1jX|r@6Nh zAN?I~fygLyaFyF7OL(IN$Jwe?^GR-FGkXk!O8ifYq06|dBye2KqSbkBSw+(q`83K5 z2kWI37gQqao=W$gEe&^ZCyffjXnkMsF?`8+k)0#$sv2(N4vkzD9()BgDaG4_lAt_P z-B6tu>!g4G|I-|){hb)|;q|Zn(GU1|k+N<)U>J_1J$s+NCRwwTWm((tvl~uLDuT8| z*FAUM;+`iw1rHfcB$94cG77$BIM#YAbzE3qbb;umFB~ZY{W9`qN|%yudf$h6dS0Q? zBCV(BU!8mcHktbs%Fi@PVS%3e(Lv9CbRvx&4A5TC%`MoC4{()6WEY?^LR-Rz5hf># zPFfp$j=o#DQ%}&pJoyWhsi(-K@DnYB@bZRDn+W1i06iHR?LrUYBNPZy?zx6#+AW=} z;A0AlgbLRqcSTx}NJG*|?kNtZkb8y^;4!j)qOajF%x9Rg86lU$v3!PhoerUhRRU)6 zPDHShqjSMnazqZE;v|bD(M4+@o+US0@UBK!H)tk>HJY2kO?pbChcqLZ8QT-;WIfd7 zsZ)=UYsOV3Fgr=1k70;H8=>H&%aF6N-SEev@X1BMUW#_7cRBkMXQDs^aVR;dEf~y{?YLx?dgaW!!+Fhb-L8f#K_C;de27QZv|HDSXz}09=Xg1 z#|8{YFOxAZjROkF9E*`T5FmnpNMYIq8c70C44+YODSVDE=zoO9U(#}#5v%9udvZHYr&8*J#d7t-r z-}jvJ)&D>F48VT8lR^S*8j?CTprDut5enNCSs ze!-LOyk*M5wBcE1;jsE1m!4R%va?x726qeGRU^#i;>oNm||pl;RCi){j%%{ik|k#-!oxMAS&=FP<}^x<9&+jV>g_X+I% zb`%9t@*)NB4lhiU7>8_3nA4{xjudm}G~6%HU)Sq|GgUL^j@q&;EB?`ormXr5Lk9)~ zMwj3Jc=_EA|9kDt<$qu5U%qzb)|EH!?nEiK{O-%QuD){X>Ib7K z?7(+bnhXkTjVuR=GUYSEv&Gz*E{*Ibotih*RxSz8mMU) z5*TV}lipkYLLthq6!I8RzKjYyx{fc+x;FQfue-g}-}k>|@(!Y86w( zx$u-LOO|Q)k{Nga2Q@sQ;}8xDY^xJ)uti2QmhDTIL5!PN2l4iNm8~N>j^da==ZsY; z9kX0Ty0^i{lR+vPb}@w~F`?lHI(~>rflQs+$`Z12+@rQ91s;rtYemw~_1LjRObsVg zgii|e#T^-UY@6pA#bL&#c#u4;;~7j*SVdIeV0>{{RITg2F|%kmkJCENs4_`;(jRv! zK9^)5Fs1^3R>wK~NT9=&WoKSa%m@s`O|B>OIR*M-9Y4WO1vbq}UsZpmLCk<@3I?V% zm^w;LNvWnOqI{ud*q#O&eWYc%tQ^kGCvxYMHCr+Kn#)KWj3t~(`h9n#(}AMEe75zL z+n?1N-nZs}VbmGxao#}!J(E^No~V_lrF+VlwmFiSbWFoOW4M;;M}tX!&hiAFXl-;w zvfJKgbhzDQJ^Qp{#Iu-Ht`5+coIy03`?=QkoAOXVGsDzVUIir;Kdo7qt0!sW4I9{I zey&^r1S*I3vcSk4Qs|!Y4fDcrqZ%ohu$Z`-Dzrnk-JHU~)h=+TA+Nt(Vzt+*d^%9) zr{kp+Q#CHdo$A_NlD1UfJ+@JvE*XPifAAru$XatP%d9D8xpM-7cR_aqtb`ie&2wbR zskx>+W~mgtXPu|gsERMcc-V1#9_L2&xa9p^@_O3wN(!&yiiWE?Uc(;+cGgqDs?0kV zWMMM!f;)^E!wlb0UFCT1>v*z8n?eIm8kLeQy}?PxxlpS{864L(mUs;tPc2kseEG&F zLzAudMmJMHBtjlHY}b7|=SC=7@pDuR}>tJpcHMpi#1lERwEe~k3V67EUhU+BJx9cMHB zi`e-&hqnwb;eq;aRt?`o{_N23$RdWvl3bGNOD>_1z_WeH{}8M#Ai0AVyfWX7?KFEI z2KhW4CA~3|fTctLD z1=1i0et}mPgDa|2OA{ zZs4gCBVVFpWcUV7jnoy*1PdNUJD;>E>>=&F0eC*#xJq?%M3rEHo(b;g3bbnrv}5A^ z4?P;475FV96B0N=0!qKMa)i=7tE77_fe$$r$`v{^7LzBvYBL?$Os7<}MTq+=tj zeEtT0)(WaK0H7^&;&%+QAQX##qfprxt2Iyz)8)X6m+^c4tI+;|V}HV*@z<#J23!B& OT#5$YWDUHHzHb1K7evGW literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class new file mode 100644 index 0000000000000000000000000000000000000000..712f1f974df3ab140f69f5d4736a6dd5a9964ff4 GIT binary patch literal 3665 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 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..a90222fc9fd6f58fa93aa0e7b8891ca4c6338b5b GIT binary patch literal 4859 zcmb7H30K_K75*NZK!~t-iNQ;32fGXykC();Jx*+c;~E!mVlXKrX)9&~mOYFnBMmm) z(zNNmrfZV!tD81$owkA6v`ME|BpEQF8Q*1bgdD46L-Q~OAz3=Jm|K5B9 zz{7akL=~zH)L5uRokGhcd)7{7?c8+o+~g%E9VpZtb8~L+h(dK&VyqtZ3f7F{`}VZs z@6Fgj157j;uq-s;9);s+Zzk#I3vMn*&bYqsdbwoA_0wL)af77q6lUGDlbmw1PVzK= zhC)r}oxJC}fmfJQsF%fId&W^{8(eZ{B%sdelu2_f7FyA!U`)BW%*kw)f?bJFv>3SA zs#ixM@3ZQjOSz zb^{$2He-vzJ=)c>ea2C6X1rNvU`k;}SIoN=R3#=v*)|LJVLNfQGZ}>q(Vkc?Qi%x( zf2W1}(W%hn+p`YCAN2%Dg>`W&8iT}`=-qAM9q3{r{h;93GYXq4&rvPjS9syVz^OY!(u=(Yk{0%1zrwvskW?6`id1FOz=kk&@JDW1_5Q(cDay?Bw6Nhj_Xn%AW*hE5@mKYO>V-~A~z(ZngdQ=B@Z z&>CSANoj}ra8_2|rLbvfHMTzz8nQ5qa|$MNnkg0X`Vum6N}1@x;}*_K@zw;q(>`mzjjgcTz(s|Q%H*9Z2C?j2Vzi}oDZKcq2^U99Ok+l}lp_t6 zvJ{uoX_`jf!ZTnMG+rsVfm6!Uij_|?PUCSC<0x8~m25TZCOZC2-9JI(Z5#hiin zTlfGzsL->9R>#y&JAnXO*+@0ACO(X34SdAHbJCq+eNL98GM*{gS>M3NSk9{&EtI=_ zsmI3qepA1f^8-5>D+gVLN&kTk+=;oZ^;>@H|7!?-EsoGD)GpjrWv<gknoMk`RiD_EN^7vgb11zIc9wGHZ<@K@Zkt?U~7p-MQpz z=K+Nian(AYH8Cu~=vyPja-ItWoxDXfMRQV>o%g?TI}?9|7FCX}0-^)5TfL5&}G z*i&{oy!JNE#NYlEVHw{P8aQL;GFiv(9Q3@)#e6D8_vqddn~AK28%Nm+;^KF|7@Ayt zZ**CX``d44vm-p$QZ3j{RBp;yzG&g+c(nz8(6`IAbj-vAb-XD$-m>sByu!CX$=jbT z{1mV7Za0w2IR$--aCjK~O<~t0%c{C60>A8t@zzy76g(vp(+`v|j-FxP-qvtw>sv*iZ(hJbDS~Szg7Ig6U zK5i33+e2lMA*#ja@Ohf5#TI-4U!<`wQA*qiXI{`z@cPA3qMG0+u6Kw#H?WKMjGIV^ zM|-OH!!96xRB1oj7#{fj(TsMirx)#f79Tc-8p=L&;LG?5Eq+z+{2HJ5bw?T6QwQjW zM00)-hsN8C1sopinMdknG%n)!_ySH|Uqs*dB2JC>Ea3D428Ia6;9J-<%<-|_>w36` z#-la8?KShb(EH|4X(Kb0z@T{w%~I@WGtkf7|>@eM|F7WH@$FX{NtNAa6DgO~A5M*S^n z?L+N<tYhZiwTF1VT~ zmlu$wck}Sb1pgW~2o*TSsBjJSLYLq*#?wk#ZY8AKu#@Qv}*r@NIpeuN*>w}agMB7VXrP%f-(d6EcKxzNIy7dRskK7hKV z)Ne9)>90(^OqEmrZ>T;4<26yrueF%c3!^-hQ%(%7uv|a1Jmvc;QZ6+pe+^+rpei=m zyH(YG2UYC(k*X6!L-4R7udb}%SaVF9rQH$7Ec`;Zs%rd_Z&mn}ZZ*Or$=~nTeSRN3 Wy-|MpBcJ|4X=%-W#ozHywEqv*|LBqc literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class new file mode 100644 index 0000000000000000000000000000000000000000..c4e219f6de202b3ce43fb3174569816c5ee82c9d GIT binary patch literal 8087 zcmcIp33wFed4B(uc4xI3j1XXXffy_>=tMwlY-<4ZVtk9_gJPX_}sC+NMoI-tV88)s9x;Ay1z? zh@F4``Ty_#j`w@NZ)QLB^(!9-uv2v;5J7{1MiWuQ6k1MLr>(x6RXE-^dhCRqb`@ef zvW2X>OQE5ob3Bf?LgVJLU1~xC%?3;pOK_9IJ!vQ3S1y*a1-CDsEtj)Sp)Zpyr=5(Q zb^EyfbT)1GO=fd;-#≧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 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class new file mode 100644 index 0000000000000000000000000000000000000000..ce6f88487120ad57d1d224e95488dac094739a7f GIT binary patch literal 3802 zcmcImU2`186+OL@HS%h(*K14uHnJmwR?>P6HeX)JSeB8IS;>H88H*%jwA+%#nw{Cq z%qmtAzRkA*0|D#=NK%yo9(b@5urXAn@|1^E{zcwm@&{5>!s(e=YgTfJQmXQ>yS?4F z?>*<<)3^I?|M}|A0Q&H|Bob)Q(5Pb-ngmj(jX5J{8TNGU_~dC>^aYxFP22Pj3N&

z9UDuc|n4X`6hKAK>fv({e9c!>w;6TwS=e&w*+J3HVdY zosu;DoG0BmvnX??i&ME{1A_xIhHXo0G@KP^E`}2xK@}DPs#tjq>jb)&^)7AS^yhPt z*CbL{uPAO180-w)1tdp(qMObaR^V%Fz9RFP@fNgUqlQg7He-vxntF)LmQgARw8n#l z8O>)VR%08sYuKUVRNcRnb%1 z8f5i>GeuePS?*@+5!mp}<+In%o^QYY&gJXB|FHd=*Z%OYbDyg8?bUGy?qsP=U%H0x zxB_jR5yn7WL(zP`1^aQAhP!p#gL?(i3(2mT5af*EjmR@h8-+Tdb{x==N3TGm9ZYYi z`Hsmuuat36$Ne}YuxeWRLo8alW*C4taboBQ%`_ZV0vZt59A!3G9dIm*$Any|i6r&^ zfQ~^NWzZ?prmy?s#(}HMO2ii68`5!16=#hn{UfGVv5a}!D9a>ORM0Vu5rK8Zs_Rno zV`f|6F6*E-JPRPpsYQLpJ;QMC@{ z$$WtQO<--owB<;(JSp8VW76VGy5JNIYus>6^*@?y^k-D9z9&o#`AvHzV>T7p8GOcY z<7N4uo7;*wQ$$g#7Rat}ry%60$<;Rwa%$mKp`<=SsjK7#vI(prUP@%_#R7M%Bx=yU z1#TJjjpFREQHko1FnL(x7fo<0-bnF#4v=q;>=W7u+ zgN9wQq}Ne!oY`t6zcjV6nYxXEVq%Mt{2q@@ z)o%9KRODj7u&hzuZ~11N6WFxqDm;7npMUzI{Xn}Q;Wv_a6X!L&rQ>b9Bd}`;;X+U# zvN5J=bX&^te}Dh~lV3J7b&FxX<9V)I4xdrWBrJt3%*uP}PJLg;Gk7+Ii@}AmQVr@u zd|0{zmf?BQ)9``7?j@vB(P(7Qy#ETPuNME30{B(KWX*; zoZIs?Qm49mt|C3s^*NH+YiLd2D73|Jl8sXn`mP2tV@VAQxtD9I<#2v&4 ztYgeHTCtvcTDiIr9oU2(zHk+a{p673*g~1RIykoBaKz{lGBv8;r-Ao9aN&`M&vh~{ zYK+ClH;zWg&v8v5?@@TKAtx~0a}E0hE@BG@_X+$3sS(2M>;4$4vX?&j?>~qe5#Bap z0ot*hNOxlwZYQ2Djug&z+H5Df5GNztK-YsR<``dL($VlOk{b4J`!|sY{0wLKtLk$% z_pAEosx%7SRrIUKi6B#|ir`~;p)PvlKdkmV*ME**@LTzMmcA6rtzF$$aAYL=SERE& zSMXr=OFZ-?j$grv>|#=PGF|%!e?KL37t?)D5UMM5bA!s(hzeZ?DNk@$YeZSmYliq1 zn>D^}1%8PqBRFFup$e8(v?z^Jz%~3Rfxc~@aW*6vim#VD`);I@J8ncyN0C#se+o|{ zkxHu58ATZ8tP<}UMY!){XpNtsu|atcg%+l-H}KpRS_b}Tz(b=-7M5of68a&&VeuRn j5_leG`J3kG1sc4D*SYd5yo(F?HRqF@`wc$CZ?XA1&8r2t literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class new file mode 100644 index 0000000000000000000000000000000000000000..5c06f83d386c6f7421689d679b695dafcc64b46e GIT binary patch literal 3229 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 literal 0 HcmV?d00001 diff --git a/discordit/build/reports/problems/problems-report.html b/discordit/build/reports/problems/problems-report.html new file mode 100644 index 00000000..af03b7fe --- /dev/null +++ b/discordit/build/reports/problems/problems-report.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +

+ +
+ Loading... +
+ + + + + + diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..67007ff38f62c1ed232e30dcd760319509ad0958 GIT binary patch literal 10648 zcmb_i3t&{$wOxCX%$*EFgo_~YJAl$85CW)x2`Uf-V-p0!M-*v?$%G6{GHGT4qE!(B zB2WbdO%*IE713$|5%RHL+rC#@+iLx_wc6+VXvyS#`d;71K5N%G_ukAM5@TYEc;?=F z&e>;w*4}5IeR%259p46UxjgKL2U!NP1IU3_FlSR+SRA1&pp5UC~ z;?%wasRJ8>sm=RSEk}dhTXv?lAMD=VR$T1IFbp?f1~39=3P$unL|`;3lCcJ^QeZ8k z`Q;kXhSg<-OMMt6$W68E>uzo7-rMTKXu;6By1H2np>>g_N#S_C4`=h!@S78j^|Ah&h1k zZAqo+Spm$(96=s+H#eGSjD#^Lx4FTMU6_j23Z%;Q7l8D|y6)=)i zm<%{86%$`jeq7P#s@EeFz$%0}gF^KhXIs+;lFUu*Ki+j{mv)BLME?4^4Q^+MI?gb4 z#?;~&Y?MfA1Bihk%iG*oqdm8&7jk>sb|7B{fp-&L%v8)Y2Jj^`k(ruEETY25h+fPT zE;V6br4P-5^NNdusiQ4jExUS!(O_}059EM%fky7eb0bD0u4F&eV>5-8*;ru~mi9y95*Z6~vC$HZi4xyH%Xr zF1WI{Wd|b({nw{lek*2~$W`dM1B*@gvC`zOJky8!XsuJvJ)b(XQFZN6DBmks)N9q= zP#&CqOav@GS_Am16MB|tUt;JnF%*jw1N#)R_xB0t8%*RWjt>Zeeh1E*o=F|p7wmqx zCD^s;$<+Rh!LFwccRjk_#2HG$VVG%RxSI5Jol6vd(jPw#;YkCB19(bpcdl5ZHZFm` zDb!FCuU9WVd_x&}@3yWjdzmq$TG~<%?U^(L&*GZ~jwsk39Vl$8B8fz3b)*NjAzSMi zuuX?Wy@y(M80>awuT|nh8@O=UJRoplti>pmej*5kRNfqWo$LiZ>+b z0w%ZeZ>cc_1YO{zbvrsRMf%@Ppltw07NpF!kWJ)b{7Q zc5Lg~aZnrXhYIyS`dgyj5!A#eOLO~7oTZ}iPnaOBkH>2^`0z4eq#tKlnWB|!{+!#B z{yJsq#g`a(h05+Xax_I6V!r}i!(-s=#>QBbIWW&YOeUIXvGVJd%v~HwFcZ7pCIX zEc|N#|Av1ToDsINi!@D!hkki-XlB~kCi{l~{uBR2vh`K~9z5AhgXweRe=}oMKC2S* z|5eueKf-!IL9CChb?FfN3IA{4qX7Plj|J2E74{QBpps~wV+Bh;MP2Um;=uNGWh`zd zTSX|Vcm(tMlC@v9Gm{>bIZ}~BBwKO}@ltRxJ}oe~1n-4n!HR(iZO`OEZxGy;`6Rb@ z8ZgEuLjX=g+>1^f*_b-CFK8WBnR5qwh8uDQbDQ*rzaU=S z9Im@67OAJIuDUrKX;l8@mpmCB5YyQ_Z7iA?trDycWMn`_$ywY+5|Lzcqq37=<)^5^ zahD7i9FRV29DE@80XbXFq4VoyZKVoo2DtL+jyj;l9n&eX&kM-;a)DsD~dCz7=bFI&e?o%XjP0~%*uE;6k8f`K4zHk!hE^v-;k8wvMw?t- z*xG8U9c^9OKRpVi%X_Ecm$eU@kf6AK3YlS$Ecxu2)LcMo!=_DU-LKT&=#2LaeO>vP z)MBqxrZkghJJMh^ahem+{I)!*D(JSjKF?6xP;;^_-lTdBd&z<7%wCGjT8gsY9Yxu% zR8*c-wW;YDU}?@7@Hfz$O-gIdYe__>VNs6x(5QkN``Y7q@~&m^Pzf&d{IM>J^&R;s zXLhJ*HRT!62SFtz(U?xJd5G#Cd9LkKIcIt%7aDFGE&WmO*W{Gx!2H=L+WJjTCXY`3 zW+QZ}A=etRd=N=PFQSZ3)$!)0a6}!WSbjY%q)t+MGeJBj9#1BcO`*oB2%%e(IKwL| z{qhC*q9H6oUM{OxE7jY$KC4C>*2ULGN~{vFRVtnr3acZVpw*o<*#j-2SF_>}izF_r zjK|kDHvI_=W48!>&9wrvvSp;)Xsnv5{NAuP{yD(ZV%RLOMDo?vNE ze8Nh(U%fxkV!hYV;nX|Rp8YRapVn}4_rBv@J2!UUdnDL(Y+HA0o7JO=!S-bilcZBe zG!4H`=qGkg6in#?evsAs)V5aE@eisxzBRj1aIV9&?t% zwwsRToTrh|PU$G)mO%HeBS@WImv}e#F-fzeC*7hh9=5fz!VpXyXbHOY^5t}ws!+MR zZdXg$vwF1PlZ}>mx>lRo&ndmcV@-6J!=vuhOti4PWf#Dl&Pd4TQUv;qTrSe<%Dz5Kcn~tX*I;>1ai|ka)rBh;uR$7Jk5G-k$>A61H zW%tVxJ1a3{vT1i3%r;I%Y!yI}7XB3$u&9lt>cAS%q$|7@& zInKODzf=`XIDyZ#qu7H59DD*()Rc=kg}=q@YQv=+Chqr8q0F% zIJSi-MiDON#cmlUqKa=TFbQi3&08=Tck{Y*H>Trp%)l{Tnf{!kevg@w#cl08UU*K& z47nWhWdSN=F&0V~i=>`+ea*OD?!t0;05`~UxKUo_o!aVh264Sie(a|YsNED z!lxXW%vqy2%Icfa(>H~EQ`t8j*&lOJuYq$76gYpcr^|ha2R=fjLEia9&RA`-e9hCw zwdiZoLbIDm%T0)qB6Hm_+}w`avy{VacAl#&3@K=BX~#Cp>*!}&w4d$JXyFic@9e-= zoL5D!9gKdN4s@>#F1G`XQ|L?k$W|92jp{co271=mrD%-!v{KTE^hTK@rOeZD@} zfrrvV+wrgm%WR$$;H?RdI1|jTS&HcKgGY5w)-<;tELN$?T*;9(Q`| zICZc`-7N~uPo&YjiAVOi2hk>omUkk+(KEmx5idT>`7B?*v%PXYfBR6lf z;fYHAUsYs2Jz-)yp2^nx0ug#lBlLM~fg<(ZjuRdSkXCno_6f9iP;Y9tAUM85z-C0l z@9LgR6llPvQSh85@jX3I8}&`SnECy7{2&XZUWFO29`ko@R{q|Cqgv5WLkv6q{#Xx6 z<6<6f`M`U{Y@*qRhk1{*4;SGPOu^TPi33?zx>;5})rZChFtZ^%qWJjPSJDp$yrw5Sh1lUaQ7aGe)rw#=bLr|^ogoKO7M z64)Yhl|{M2G`Wi3yre%u=JA`+6RWII^Et}uo6kNKt1f`&V=iwPc-Fun{r5Qo{A(K; zK2_bbvx)g!&cjJe1YRTx#BBpJ;n%?lO&7!W4v?4)lL zDyv%D=aCbjown`Z&ef?`E3)X=HX%iOHT870-YbSv*OpCkS^K)i;=q$nD-0pEcRKNl zq@wh%Y~v z3dr|48c^xS2=UXk=%1y2H6&mS@oPU_b_gR&eG2@(6EdtrMri1h4>_~cM^0q4qMM(a z?`xBDj}o2LILZrN>Q2T`-c>9MgDIB}-{W=o_xbiBlhYqC1Nb3xfFI!syu`%sC%76v zWiIeCXTQSu`YQkB$7{?3UZ+33NgsNPG~dQ?{F)))H=Ok@NB)i@-otNs;Wd^k+=D#M ztI&AzarUL!F1eg*%IE1Te$E^wl~SeS(L1t$@l|EFZ^%MfM6QR?r>>J~B5yRWVi(I2 z+I|earIDIVZjWnx<&fv6we7v+{D3T_XBy;XxV`Rc@LTI@U%E*7(sB3Onn$cjg9lokAKMZVlb(1djx(d}y8Ms>SZxAnS>>-I~!P3X2+ zx9fGgLAST+_BP$#q1!ukyIHqebbFU>@7C=O-F`*4_v&`HZts`9E{j D>ZPB( literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..998a8ed1cd7f18bf1b70231f5494843e48b5a811 GIT binary patch literal 1646 zcmYjQX;4#F6uyTbizM&@WeJPa1r&+*p*96X5qJ;{@C4q=Lr4_}A;GW(6P6-f5Q6L$ zR8&;z3hq{_;)1wQs7s~lbhKkTE=bLkV5DT;o z7GPUE0o!4FWY!o89Z;RA*r+cmaYXfndXq_SD4K{GbMz*SAxEn(aYFSbt+7n6(F)OO z5vtRgOzK>%Gk>rIiGm5Ur4L(W&re=&uWNs(Tjs(NoQ)Wnd5|lrA5WS?1nU*P#%rhh zU(Bw)YBRVd)Q$OobH^Uo))O@uwZ#ULzQkax5Q@D}8}tp zM7277fmRrd%>3r#MQpj#(|d#5?rRUhFK0=z@}=x7&R@*eyKw!+j(?7oPI;qj4+`s^ zgc*_wkgn)2%9u*;)8?$@o*MKRHI2p`|zugvt8Z8|h@kDsP% zefo?TmZD-~;;pE;#><;d1W7lqNrkP~M` zX-qmdotH7im5j)mfAo}j7tv+(eXCMMe-gh8+X|N>v${;3ftreo3-lUw2|x5i|5LA? zM)~V!vL~-2Li%zJWKxMfgtT(z-M|6&7Nl-$3rxCoDNC8DM&^oQEm5nTP95rijv1p0Wk`UG66YAlEVXHR9J?x`0xZtcxH?YW%EZtq%sO60djP4^JP+{ zX{u0^z=!Qoq|z@+k&XO#2cbxd4Y1f$i%qjwg~iG&7FD75*85Hs@E1NgSj*_BT=@!8 zPv(*NWC2-7+B-N-^cCT91>Lpcr~!qK$nTe^HB|8GqANlmHCWEBx?ZI z0b37L1IQbJYJ&J?AX|VeAOC0LS+cc&zXG-us5XdM2jqJGevxpol_O>Y;C5g)0^I=C zLVlY7Zw96VIHP#{F>YG`Z-wY>5Z?)8zHoVlr2*B~fVTs)1E@-CpLi$WUBH&QTJBwT z1KtBn7tq}x-wWhEzA&$qwL#^6zz2Xm2z1-K!iqzH4+C=qxJql`&~E@A1+E9kZ~4MY zgklSE(lNltfjI$mu9YmZ7w}1-dq8AKNH_)fG%#m?%e4}v^#MK$Y(H>qVAY>F2lzZN z7l1ZeS+Xwzz68nvpnAYZZDGp#4)7qbL%=n>!%4pfd>Pm)Ky`yv#PF+t2fzZzyaxCO PV6Ow${SJ^iHa_S-l<(Q& literal 0 HcmV?d00001 diff --git a/discordit/gradle/wrapper/gradle-wrapper.jar b/discordit/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8bdaf60c75ab801e22807dde59e12a8735a34077 GIT binary patch literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg literal 0 HcmV?d00001 diff --git a/discordit/gradle/wrapper/gradle-wrapper.properties b/discordit/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..2a84e188 --- /dev/null +++ b/discordit/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/discordit/gradlew b/discordit/gradlew new file mode 100644 index 00000000..ef07e016 --- /dev/null +++ b/discordit/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/discordit/gradlew.bat b/discordit/gradlew.bat new file mode 100644 index 00000000..db3a6ac2 --- /dev/null +++ b/discordit/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/discordit/settings.gradle b/discordit/settings.gradle new file mode 100644 index 00000000..955baf54 --- /dev/null +++ b/discordit/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'discordit' \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java b/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java new file mode 100644 index 00000000..366f80c0 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java @@ -0,0 +1,229 @@ +package com.sprint.mission.discodeit; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.repository.MessageRepository; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.repository.file.FileChannelRepository; +import com.sprint.mission.discodeit.repository.file.FileMessageRepository; +import com.sprint.mission.discodeit.repository.file.FileUserRepository; +import com.sprint.mission.discodeit.service.ChannelService; +import com.sprint.mission.discodeit.service.UserService; +import com.sprint.mission.discodeit.service.basic.BasicChannelService; +import com.sprint.mission.discodeit.service.basic.BasicMessageService; +import com.sprint.mission.discodeit.service.basic.BasicUserService; +import com.sprint.mission.discodeit.service.file.FileUserService; +import com.sprint.mission.discodeit.service.jcf.JCFChannelService; +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.service.MessageService; +import com.sprint.mission.discodeit.service.jcf.JCFMessageService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +import static com.sprint.mission.discodeit.entity.ChannelType.PUBLIC; + + +public class JavaApplication { + static void userCRUDTest(UserService userService) { + System.out.println("--유저 생성 테스트--"); + // 생성 + User user = userService.create("서현하", "hhh@naver.com", "010-2222-2222"); + User user2 = userService.create("김춘자", "ccc@naver.com", "010-8888-8888"); + + //User객체 user에다가 userService.create 메서드의 반환값으로 받은 유저객체를 담는다 + + // 조회 + //userService안에 있는 find 메서드의 매개변수로 user.getId를 보낸다 + User foundUser = userService.find(user.getId()); + System.out.println(); + System.out.println("유저 조회(단건)"); + System.out.println("유저 아이디 : " + foundUser.getId()); + System.out.println("이름 : " + foundUser.getDisplayName()); + System.out.println("이메일 : " + foundUser.getEmail()); + System.out.println("휴대폰 번호 : " + foundUser.getPhoneNumber()); + System.out.println("생성 시간 : " + foundUser.getCreatedAt() + "\n"); + + /* userService.find 메서드에 위에서 가져온 user객체의 id를 매개변수로 입력한다 + 반환값으로 가져온 유저객체를 foundUser라는 변수명인 유저변수에 담는다 + 그리고 foundUser가 가지고있는 id와 이름,이메일,전화번호,생성시간을 출력한다 + */ + List foundUsers = userService.findAll(); + System.out.println("유저 조회 건수(다건) : " + foundUsers.size()); + for (int i = 0; i < foundUsers.size(); i++) { + System.out.println("유저 아이디 : " + foundUsers.get(i).getId()); + //foundUsers는userService.findall 메소드를 통해서 받아온 전체유저가 담긴 리스트다 + System.out.println("이름 : " + foundUsers.get(i).getDisplayName()); + System.out.println("이메일 : " + foundUsers.get(i).getEmail()); + System.out.println("휴대폰 번호 : " + foundUsers.get(i).getPhoneNumber()); + System.out.println("생성 시간 : " + foundUsers.get(i).getCreatedAt() + "\n"); + + /* data list를 foundUsers라는 유저객체를 담을 수 있는 list에 담는다 + foundUsers list의 크기를 출력한다(유저 조회건수) + for문으로 foundUsers의 size만큼 반복문을 수행한다 + foundUsers의 i번째에 들어있는 user객체의 값을 출력한다 + */ + + }// 수정 + userService.update(user.getId(), "이말자", "why@naver.com", "010-8282-8282"); + //userService에 있는 업데이트 메소드를 호출 + System.out.println(); + + /* userService.delete메소드에 위에서 생성한 user 변수의 id값을 매개변수로 입력한다 + */ + + + // 삭제 <삭제할 유저의 이름을 출력만한다> + System.out.println(user.getDisplayName() + " 유저를 삭제합니다" + "\n"); + userService.delete(user.getId()); + //매개변수 Id + /* user service에 findall메소드를 통해서 유저삭제이후 list를 새로 반환받는다 + for문 안에서 유저삭제이후 list를 돌리면서 해당 list의 유저가 가지고있는 값을 출력한다 + */ + List foundUsersAfterDelete = userService.findAll(); + + System.out.println("유저 조회 건수: " + foundUsersAfterDelete.size()); + for (int i = 0; i < foundUsersAfterDelete.size(); i++) { + System.out.println("유저 아이디 : " + foundUsersAfterDelete.get(i).getId()); + System.out.println("이름 : " + foundUsersAfterDelete.get(i).getDisplayName()); + System.out.println("이메일 : " + foundUsersAfterDelete.get(i).getEmail()); + System.out.println("휴대폰 번호 : " + foundUsersAfterDelete.get(i).getPhoneNumber()); + System.out.println("생성 시간 : " + foundUsersAfterDelete.get(i).getCreatedAt() + "\n"); + } //get(i) i번째, + + } + + static void channelCRUDTest(ChannelService channelService) { + // 생성 + /* 입력값으로 채널을 생성하고 새 채널을 만들어서 channel객체를 담는 리스트에 + 넣어서 리턴값으로 채널을 반환해 다시 변수에 넣는다 + */ + System.out.println("-- 채널 생성 테스트 --"); + System.out.println(); + Channel channel = channelService.create("주의사항",PUBLIC); + Channel channel2 = channelService.create("자유 게시판",PUBLIC); + System.out.println(); + + + // 조회 + //생성한 채널중 첫번째로 생성한 채널의 객체를 가져와서 출력했다 + Channel foundChannel = channelService.find(channel.getId()); + System.out.println("채널 조회(단건): " + foundChannel.getId()); + System.out.println("채널 이름 : " + channel.getDisplayName()); + System.out.println(); + + // list 개체를 담아서 변수이름 foundChannels를 선언하고 findAll메소드를 이용 + List foundChannels = channelService.findAll(); + System.out.println("채널 조회(다건): " + foundChannels.size()); + for (int i = 0; i < foundChannels.size(); i++) { + System.out.println("채널 이름 : " + foundChannels.get(i).getDisplayName()); + + } + // int i를 0으로 선언하고 i가 파운드채널스 리스트의 크기보다 작으면 for문을 이용해서 + // foundChannels의 list값을get(i) + // 수정 + System.out.println(); + System.out.println("수정 전 이름 : " + channel.getDisplayName()); + channelService.update(channel.getId(), "공지"); + System.out.println("수정 후 이름 : " + channel.getDisplayName()); + System.out.println("수정 시간 : " + channel.getUpdatedAt()); + + // 삭제 + //삭제한 후에 남아있는 채널이 담긴 리스트에 삭제하고 싶은 리스트를 없앤 다음에 리스트 가져옴 + channelService.delete(channel.getId()); + List foundChannelsAfterDelete = channelService.findAll(); + System.out.println(channel.getDisplayName() + " 채널을 삭제합니다" + "\n"); + System.out.println("\n채널 삭제 후 남은 목록"); + System.out.println("채널 삭제: " + foundChannelsAfterDelete.size()); + + for (int i = 0; i < foundChannelsAfterDelete.size(); i++) { + System.out.println("남은 채널 아이디 : " + foundChannelsAfterDelete.get(i).getId()); + System.out.println("남은 이름 : " + foundChannelsAfterDelete.get(i).getDisplayName()); + System.out.println(); + System.out.println("---------------------------"); + System.out.println(); + } + } + + static void messageCRUDTest(MessageService messageService) { + // 생성 + UUID channelId = UUID.randomUUID(); + UUID authorId = UUID.randomUUID(); + Message message = messageService.create("안녕하세요.", channelId, authorId); + System.out.println("메시지 생성: " + message.getId()); + // 조회 + Message foundMessage = messageService.find(message.getId()); + System.out.println("메시지 조회(단건)\n메세지 아이디 : " + foundMessage.getId()+ "\n메세지 내용 : " + foundMessage.getContent() +"\n"); + List foundMessages = messageService.findAll(); + System.out.println("메시지 조회(다건): " + foundMessages.size()); + for(int i = 0; i < foundMessages.size(); i++) { + System.out.println("메세지 내용 : " + foundMessages.get(i).getContent()); + } + // 수정 + Message updatedMessage = messageService.update(message.getId(), "정말 힘들었습니다."); + System.out.println("메시지 수정 : " + updatedMessage.getContent()); + // 삭제 + messageService.delete(message.getId()); + List foundMessagesAfterDelete = messageService.findAll(); + System.out.println("메시지 삭제 : " + foundMessagesAfterDelete.size()); + } + + static User setupUser(UserService userService) { + User user = userService.create("woody", "woody@codeit.com", "woody1234"); + return user; + } + + static Channel setupChannel(ChannelService channelService) { + Channel channel = channelService.create("공지",ChannelType.PUBLIC); + return channel; + } + + static void messageCreateTest(MessageService messageService, Channel channel, User author) { + Message message = messageService.create("안녕하세요.", channel.getId(), author.getId()); + System.out.println("메시지 생성: " + message.getId()); + } + + public static void main(String[] args) { + + // 서비스 초기화 + UserRepository userRepository = new FileUserRepository(); + ChannelRepository channelRepository = new FileChannelRepository(); + MessageRepository messageRepository = new FileMessageRepository(); + UserService userService = new FileUserService(); + ChannelService channelService = new JCFChannelService(); + MessageService messageService = new JCFMessageService(); + MessageService messageService2 = new BasicMessageService(userRepository,channelRepository); + + + //테스트 + userCRUDTest(userService); + channelCRUDTest(channelService); + messageCRUDTest(messageService); + System.out.println(); + + + try { + User user = userRepository.save(new User("woody", "woody@codeit.com", "1234")); + Channel channel = channelRepository.save(new Channel("공지",PUBLIC)); + + messageService.create("안녕하세요!", channel.getId(), user.getId()); + System.out.println("메시지 생성 성공!"); + + UUID fakeId = UUID.randomUUID(); + messageService.create("가짜 유저의 메시지", channel.getId(), fakeId); + + } catch (NoSuchElementException e) { + System.out.println("검증 실패 (정상): " + e.getMessage()); + } + + // 셋업 + User user = setupUser(userService); + Channel channel = setupChannel(channelService); + // 테스트 + messageCreateTest(messageService, channel, user); + } +} + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java new file mode 100644 index 00000000..fc3e79eb --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.entity; + +import java.util.List; +import java.io.Serializable; +import java.util.UUID; + + +public class Channel implements Serializable { + private static final long serialVersionUID = 1L; + + private final UUID id; + private String displayName; + private Long createdAt; + private Long updatedAt; + private ChannelType type; + + + public Channel(String displayName,ChannelType type) { + this.id = UUID.randomUUID(); + this.displayName = displayName; + long now = System.currentTimeMillis(); + this.createdAt = now; + this.updatedAt = now; + this.type = type; + + } + public void update(String displayName) { + this.displayName = displayName; + } + + public UUID getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayname(String displayName) { + this.displayName = displayName; + } + + public Long getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Long createdAt) { + this.createdAt = createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Long updatedAt) { + this.updatedAt = updatedAt; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } +} + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java new file mode 100644 index 00000000..15b39978 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java @@ -0,0 +1,8 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; + +public enum ChannelType implements Serializable { + PUBLIC; + private static final long serialVersionUID = 1L; +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java new file mode 100644 index 00000000..efb99b63 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java @@ -0,0 +1,31 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.util.UUID; + +public class Message implements Serializable { + private static final long serialVersionUID = 1L; + + private UUID id; + private String content; + private UUID channelId; + private UUID authorId; + + + public Message(String content, UUID channelId, UUID authorId) { + this.id = UUID.randomUUID(); + this.content = content; + this.channelId = channelId; + this.authorId = authorId; + } + + public void update(String content) { this.content = content; } + + public UUID getId() { return id; } + + public String getContent() { return content; } + + public void setContent(String content) { + this.content = content; + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java new file mode 100644 index 00000000..1a68f3e4 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java @@ -0,0 +1,75 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.util.UUID; + +/* User객체에 들어갈 정보를 private변수 선언을 한다 +public User 입력값(매개변수)을 입력한다 +유저객체의 변수에 입력변수(매개변수)의 값을 입력한다 +UUID부터 메서드들은 리턴값을 반환한다 + */ + +public class User implements Serializable { + private static final long serialVersionUID = 1L; + + private UUID id; + private String displayName; + private String email; + private String phoneNumber; + private Long createdAt; + private Long updatedAt; + + public User(String displayName, String email, String phoneNumber) { + this.id = UUID.randomUUID(); + this.displayName = displayName; + this.email = email; + this.phoneNumber = phoneNumber; + long now = System.currentTimeMillis(); + this.createdAt = now; + this.updatedAt = now; + } + // + public void update(String displayName, String email, String phoneNumber) { + this.displayName = displayName; + this.email = email; + this.phoneNumber = phoneNumber; + this.updatedAt = System.currentTimeMillis(); + } + + public UUID getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public String getEmail() { + return email; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String toString() { + return "User [이름=" + displayName + ", 이메일=" + email + ", 전화번호=" + phoneNumber + "]"; + } + + //TODO 메서드 추가 + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public void setEmail(String email) { + this.email = email; + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java new file mode 100644 index 00000000..d416ad92 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java @@ -0,0 +1,19 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.Channel; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface ChannelRepository { + + Channel save(Channel channel); + + Optional findById(UUID id); + + List findAll(); + + boolean existsById(UUID id); + + void deleteById(UUID id); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java new file mode 100644 index 00000000..ce21a9b8 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java @@ -0,0 +1,25 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.Message; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface MessageRepository { + + Message save(Message message); + + Optional findById(UUID id); + + List findAll(); + + boolean existsById(UUID id); + + void deleteById(UUID id); + +} + + + + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java new file mode 100644 index 00000000..4e067f7d --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java @@ -0,0 +1,20 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.User; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface UserRepository { + + User save(User user); + + Optional findById(UUID id); + + List findAll(); + + boolean existsById(UUID id); + + void deleteById(UUID id); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java new file mode 100644 index 00000000..a2a02855 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java @@ -0,0 +1,62 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.repository.ChannelRepository; + +import java.io.*; +import java.util.*; + +public class FileChannelRepository implements ChannelRepository { + private final String fileName = "channels.dat"; // 채널 데이터 저장 파일명 + + @Override + public Channel save(Channel channel) { + List channels = findAll(); + channels.removeIf(c -> c.getId().equals(channel.getId())); + channels.add(channel); + + saveAllToFile(channels); + return channel; + } + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(channel -> channel.getId().equals(id)) + .findFirst(); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + File file = new File(fileName); + if (!file.exists() || file.length() == 0) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + @Override + public boolean existsById(UUID id) { + return findById(id).isPresent(); + } + + @Override + public void deleteById(UUID id) { + List channels = findAll(); + if (channels.removeIf(channel -> channel.getId().equals(id))) { + saveAllToFile(channels); + } + } + + private void saveAllToFile(List channels) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(channels); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java new file mode 100644 index 00000000..c3cf78dd --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java @@ -0,0 +1,65 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.io.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class FileMessageRepository implements MessageRepository { + private final String fileName = "messages.dat"; + + @Override + public Message save(Message message) { + List messages = new ArrayList<>(findAll()); + messages.removeIf(m -> m.getId().equals(message.getId())); + messages.add(message); + + saveAllToFile(messages); + return message; + } + + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(message -> message.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() { + File file = new File(fileName); + if (!file.exists()) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) { + List messages = new ArrayList<>(findAll()); + if (messages.removeIf(m -> m.getId().equals(id))) { + saveAllToFile(messages); + } + } + + private void saveAllToFile(List messages) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(messages); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java new file mode 100644 index 00000000..3b988100 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; + +import java.io.*; +import java.util.*; + +public class FileUserRepository implements UserRepository { + private final String fileName = "users.dat"; + + @Override + public User save(User user) { + List users = findAll(); + users.removeIf(u -> u.getId().equals(user.getId())); + users.add(user); + + saveAllToFile(users); + return user; + } + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(user -> user.getId().equals(id)) + .findFirst(); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + File file = new File(fileName); + if (!file.exists()) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + @Override + public boolean existsById(UUID id) { + return findById(id).isPresent(); + } + + @Override + public void deleteById(UUID id) { + List users = findAll(); + if (users.removeIf(user -> user.getId().equals(id))) { + saveAllToFile(users); + } + } + + // 파일 저장을 위한 헬퍼 메서드 + private void saveAllToFile(List users) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(users); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java new file mode 100644 index 00000000..c5c49b3a --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java @@ -0,0 +1,39 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.repository.ChannelRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class JCFChannelRepository implements ChannelRepository { + private final List channels = new ArrayList<>(); + + @Override + public Channel save(Channel channel) { + channels.removeIf(c -> c.getId().equals(channel.getId())); + channels.add(channel); + return channel; + } + + @Override + public Optional findById(UUID id) { + return channels.stream() + .filter(c -> c.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() {return new ArrayList<>(channels);} + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) {channels.removeIf(c -> c.getId().equals(id));} + +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java new file mode 100644 index 00000000..2ce378ac --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java @@ -0,0 +1,39 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class JCFMessageRepository implements MessageRepository { + private final List messages = new ArrayList<>(); + + @Override + public Message save(Message message) { + messages.removeIf(m -> m.getId().equals(message.getId())); + messages.add(message); + return message; + } + + @Override + public Optional findById(UUID id) { + return messages.stream() + .filter(m -> m.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() {return new ArrayList<>(messages);} + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) {messages.removeIf(m -> m.getId().equals(id));} + +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java new file mode 100644 index 00000000..4a547df3 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java @@ -0,0 +1,38 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class JCFUserRepository implements UserRepository { + private final List users = new ArrayList<>(); + + @Override + public User save(User user) { + users.removeIf(u -> u.getId().equals(user.getId())); + users.add(user); + return user; + } + + @Override + public Optional findById(UUID id) { + return users.stream() + .filter(user -> user.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() {return new ArrayList<>(users);} + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) {users.removeIf(u -> u.getId().equals(id));} +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java new file mode 100644 index 00000000..de68c7b0 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java @@ -0,0 +1,22 @@ +package com.sprint.mission.discodeit.service; + + +import com.sprint.mission.discodeit.entity.Channel; // 아까 만든 Channel 클래스 가져오기 +import com.sprint.mission.discodeit.entity.ChannelType; + +import java.util.List; +import java.util.UUID; + +public interface ChannelService { + + Channel create(String displayName,ChannelType type); + + Channel find(UUID id); + + List findAll(); + + Channel update(UUID id, String displayName); + + boolean delete(UUID id); + +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java new file mode 100644 index 00000000..afeda909 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java @@ -0,0 +1,19 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.Message; +import java.util.List; +import java.util.UUID; //필요한 함수를 사용하기위해 외부의 라이브러리를 가져온다 + + +public interface MessageService { + + Message create(String content, UUID channelId, UUID authorId); + + Message find(UUID id); + + List findAll(); + + Message update(UUID id, String content); + + boolean delete(UUID id); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java new file mode 100644 index 00000000..99afe3b6 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -0,0 +1,19 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.User; + +import java.util.List; +import java.util.UUID; + +public interface UserService { + + User create(String username, String email, String password); + + User find(UUID userId); + + List findAll(); + + User update(UUID userId, String newUsername, String newEmail, String newPassword); + + void delete(UUID userId); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java new file mode 100644 index 00000000..a48f9de2 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java @@ -0,0 +1,23 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.User; +import java.util.List; +import java.util.UUID; + +public interface UserService2 { + + User find(UUID id); + + List findAll(); + + void update(UUID id,String displayName, String email, String phoneNumber); + + boolean delete(UUID id); + + User create(String displayName, String email, String phoneNumber); +} + + +/* UserService라는 interface안에 메서드 빈상자를 만들고 상자의 이름이랑 입력값만 지정해둔 상태고 +이 빈상자를 가지고 JCFUserService로 들고간다 + */ \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java new file mode 100644 index 00000000..54711331 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java @@ -0,0 +1,51 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.service.ChannelService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicChannelService implements ChannelService { + private final ChannelRepository channelRepository; + + public BasicChannelService(ChannelRepository channelRepository) { + this.channelRepository = channelRepository; + } + + @Override + public Channel create(String displayName,ChannelType type) { + Channel channel = new Channel(displayName,type); + return channelRepository.save(channel); + } + + @Override + public Channel find(UUID id) { + return channelRepository.findById(id) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); + } + + @Override + public List findAll() { + return channelRepository.findAll(); + } + + @Override + public Channel update(UUID id, String displayName) { + Channel channel = channelRepository.findById(id) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); + channel.update(displayName); + return channelRepository.save(channel); + } + + @Override + public boolean delete(UUID id) { + if (!channelRepository.existsById(id)) { + throw new NoSuchElementException("Channel with id " + id + " not found"); + } + return false; + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java new file mode 100644 index 00000000..ff1c6073 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.repository.MessageRepository; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.service.MessageService; + +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicMessageService implements MessageService { + private final List data = new ArrayList<>(); + private final UserRepository userRepository; + private final ChannelRepository channelRepository; + + public BasicMessageService(UserRepository userRepository, ChannelRepository channelRepository) { + this.userRepository = userRepository; + this.channelRepository = channelRepository; + } + + @Override + public Message create(String content, UUID channelId, UUID authorId) { + if (!userRepository.existsById(authorId)) { + throw new NoSuchElementException("존재하지 않는 유저(authorId)입니다."); + } + if (!channelRepository.existsById(channelId)) { + throw new NoSuchElementException("존재하지 않는 채널(channelId)입니다."); + } + Message message = new Message(content, channelId, authorId); + data.add(message); + return message; + } + + @Override + public Message find(UUID id) { + return data.stream() + .filter(m -> m.getId().equals(id)) + .findFirst() + .orElse(null); + } + + @Override + public List findAll() {return new ArrayList<>(data);} + + @Override + public Message update(UUID id, String content) { + Message message = find(id); + if (message != null) { + message.setContent(content); + } + return message; + } + @Override + public boolean delete(UUID id) { + return data.removeIf(m -> m.getId().equals(id)); + } +} + + + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java new file mode 100644 index 00000000..cc85037e --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -0,0 +1,48 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.service.UserService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicUserService implements UserService { + private final UserRepository userRepository; + + public BasicUserService(UserRepository userRepository) { + this.userRepository = userRepository; + } + + @Override + public User create(String username, String email, String password) { + User user = new User(username, email, password); + return userRepository.save(user); + } + + @Override + public User find(UUID userId) { + return userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + } + + @Override + public List findAll() { return userRepository.findAll();} + + @Override + public User update(UUID userId, String newUsername, String newEmail, String newPassword) { + User user = userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + user.update(newUsername, newEmail, newPassword); + return userRepository.save(user); + } + + @Override + public void delete(UUID userId) { + if (!userRepository.existsById(userId)) { + throw new NoSuchElementException("User with id " + userId + " not found"); + } + userRepository.deleteById(userId); + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java new file mode 100644 index 00000000..ec78f9e5 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java @@ -0,0 +1,134 @@ +package com.sprint.mission.discodeit.service.file; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.service.ChannelService; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.UUID; + +public class FileChannelService implements ChannelService { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileChannelService() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", Channel.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { return DIRECTORY.resolve(id + EXTENSION); } + + @Override + public Channel create(String displayName,ChannelType type) { + Channel channel = new Channel(displayName,type); + Path path = resolvePath(channel.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(channel); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return channel; + } + + @Override + public Channel find(UUID id) { + Channel channelNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + channelNullable = (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + return Optional.ofNullable(channelNullable) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public Channel update(UUID id, String displayName) { + Channel channel = find(id); + channel.setDisplayName(displayName); + save(channel); + return null; + } + + @Override + public boolean delete(UUID id) { + Path path = resolvePath(id); + + if (Files.notExists(path)) { + throw new NoSuchElementException("Channel with id " + id + " not found"); + } + try { + Files.delete(path); + return true; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private void save(Channel channel) { + Path path = resolvePath(channel.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(channel); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private Channel readFromFile(Path path) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java new file mode 100644 index 00000000..4dfc75ef --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java @@ -0,0 +1,60 @@ +package com.sprint.mission.discodeit.service.file; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.io.*; +import java.util.*; + +public class FileMessageRepository implements MessageRepository { + private final String fileName = "messages.dat"; + + @Override + public Message save(Message message) { + List messages = findAll(); + messages.removeIf(m -> m.getId().equals(message.getId())); + messages.add(message); + + saveAllToFile(messages); + return message; + } + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(message -> message.getId().equals(id)) + .findFirst(); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + File file = new File(fileName); + if (!file.exists()) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + @Override + public void deleteById(UUID id) { + List messages = findAll(); + if (messages.removeIf(message -> message.getId().equals(id))) { + saveAllToFile(messages); + } + } + + private void saveAllToFile(List messages) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(messages); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java new file mode 100644 index 00000000..d3f77c7c --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java @@ -0,0 +1,133 @@ +package com.sprint.mission.discodeit.service.file; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.UserService; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.UUID; + +public class FileUserService implements UserService { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileUserService() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", User.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } + + @Override + public User create(String username, String email, String password) { + User user = new User(username, email, password); + Path path = resolvePath(user.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return user; + } + + @Override + public User find(UUID userId) { + User userNullable = null; + Path path = resolvePath(userId); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + return Optional.ofNullable(userNullable) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public User update(UUID userId, String newUsername, String newEmail, String newPassword) { + User userNullable = null; + Path path = resolvePath(userId); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + User user = Optional.ofNullable(userNullable) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + user.update(newUsername, newEmail, newPassword); + + try( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return user; + } + + @Override + public void delete(UUID userId) { + Path path = resolvePath(userId); + if (Files.notExists(path)) { + throw new NoSuchElementException("User with id " + userId + " not found"); + } + try { + Files.delete(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java new file mode 100644 index 00000000..18b91739 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.service.jcf; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.service.ChannelService; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class JCFChannelService implements ChannelService { + private final List channels = new ArrayList<>(); + + @Override + public Channel create(String displayName,ChannelType type) { + + try { + Channel channel = new Channel(displayName,type); + channels.add(channel); + System.out.println("채널 등록 성공 : " + displayName); + + return channel; + + } catch (Exception e) { + System.out.println("채널 등록 실패"); + return null; + + } + } + + @Override + public Channel find(UUID id) { + for (Channel channel : channels) { + if (channel.getId() == id){ + return channel; + } + } + return null; + } + + @Override + public List findAll() {return new ArrayList<>(channels);} + /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 + 관리하는 원본 list에 영향을 주지 않을려고 했다 + findall메서드의 + */ + + + @Override + public Channel update(UUID id, String displayName) { + Channel channel = find(id); + if (channel != null) { + channel.setDisplayname(displayName); //기존에는 이것만 있음 + channel.setUpdatedAt(System.currentTimeMillis()); //팀장님이 권유해주신 시간추가 + } + return channel; + } + + @Override + public boolean delete(UUID id) { + boolean bool = channels.removeIf(channel -> id == channel.getId()); + return bool; + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java new file mode 100644 index 00000000..e9cdc1ef --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java @@ -0,0 +1,45 @@ +package com.sprint.mission.discodeit.service.jcf; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.service.MessageService; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class JCFMessageService implements MessageService { + private final List data = new ArrayList<>(); + + @Override + public Message create(String content, UUID channelId, UUID authorId) { + Message message = new Message(content, channelId, authorId); + data.add(message); + return message; + } + + @Override + public Message find(UUID id) { + return data.stream() + .filter(m -> m.getId().equals(id)) + .findFirst() + .orElse(null); + } + + @Override + public List findAll() { + return new ArrayList<>(data); + } + + @Override + public Message update(UUID id, String content) { + Message message = find(id); + if (message != null) { + message.setContent(content); + } + return message; + } + + @Override + public boolean delete(UUID id) { + return data.removeIf(m -> m.getId().equals(id)); + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java new file mode 100644 index 00000000..997f78b5 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java @@ -0,0 +1,72 @@ +package com.sprint.mission.discodeit.service.jcf; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.UserService2; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +//구현체 생성 +public class JCFUserService implements UserService2 { + private final List data = new ArrayList<>(); + //User만 담을 수 있는 전용 창고느낌, 관리용 list data에 저장하는 시스템 구축 + //ArrayList 데이터를 쌓아두기만 한상태 중복없이 구분하려면 고유id필요 + + @Override + //create(메서드) 저장,만들다 + // 매개변수(이름,이메일,폰번호)=> 사용자 생성을 위한 기초데이터 객체 User /캡슐화 + public User create(String displayName, String email, String phoneNumber) { + + try { + User user = new User(displayName, email, phoneNumber); + data.add(user); + System.out.println("유저 등록 성공 : " + displayName); + return user; + + } catch (Exception e) { + System.out.println("유저 등록 실패 : " ); + return null; + } + // 리스트에 넣는도중 메모리가 찼거나 예상못한 에러가 나타날 수 있기때문에 try catch를 사용함(보호,위험대비) + + } + // get가져오다 set설정하다 + // *for문 User 객체를 담고있는 data 리스트를 가져와서 하나하나 for문으로 꺼내서 User타입의 user안에 넣는다 + // 만약에 해당 user의 id값과 매개변수인 id값이 같을때 해당 user를 반환한다 + // 해당유저가 없을시 null(값이 없음) 반환한다 + @Override + public User find(UUID id) { + for(User user : data) { + if (user.getId() == id){ + return user; + } + } + return null; + } + + //위에서 선언한 데이터 리스트를 반환한다 + @Override + public List findAll() {return new ArrayList<>(data);} + + //JavaApplication수정한 내용들이 update에 매개변수로 들어간다 + @Override + public void update(UUID id,String displayName, String email, String phoneNumber) { + for (User user : data) { + if (user.getId() == id) { + user.update(displayName, email, phoneNumber); + //user.update는 Class User에 있는 update 메소드를 호출함 + } + } + } + //데이터를 삭제할건데 조건에 맞으면 + //데이터안에 있는 유저객체들을 user로 선언을 하고 매개변수로 받은 id가 데이터안에있는 해당유저의 아이디와 같을시 삭제한다. + //삭제여부를 bool안에 저장한다 + public boolean delete(UUID id) { + boolean bool = data.removeIf(user -> id == user.getId()); + + return bool; + } +} + + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java new file mode 100644 index 00000000..012ffa86 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java @@ -0,0 +1,80 @@ +//package service.jcf; +// +//import entity.User; +//import service.UserService; +//import java.util.ArrayList; +//import java.util.List; +// +//public class JCFUserService2 { +// private final List data = new ArrayList<>(); +// +// +// public User create(String displayName, String email, String phoneNumber) { +// //try안에 있는 오류를 catch가 잡음 +// try { +// User user = new User(displayName, email, phoneNumber); +// data.add(user); +// System.out.println("유저 등록 성공"); +// return user; +// +// } catch (Exception e) { +// System.out.println("유저 등록 실패"); +// return null; +// } +// +// } +///* UserService에서 갖고온 상자를 create라는 상자(메서드)안에 내용을 체워준다. +//1.입력한 값으로 새유저 객체를 만들고 유저 객체를 담는 data list에 추가한다 +//메서드 수행 반환값으로 새로 등록한 유저객체를 반환한다 +//수행중 에러가 발생시 catch부분 안에서 null값을 반환한다 /등록 +//*/ +// +// +// +// +// public User find(String id) { +// return data.stream() +// .filter(user -> user.getId().toString().equals(id)) +// .findFirst() +// .orElse(null); +// } +// /* 4. 유저객체들이 담겨있는 list에서 매개변수로 받은 id를 가진 user객체중 가장 첫번째 +// 유저객체를 반환한다. 이 조건에 맞는 user가 없으면 null을 반환한다 +// */ +// +// +// public List findAll() {return new ArrayList<>(data); +// } +// // 6 user객체가 담겨진 data list를 반환한다 +// /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 +// 관리하는 원본 list에 영향을 주지 않을려고 했다 +// */ +// +// /* 9 update 메서드에 수정할 유저의 이름과 새이름을 매개변수로 입력받는다 +// 그리고 모든 유저정보가 들어있는 data list를 for문 안에서 돌린다 +// */ +// +// public void update(String before, String after) { +// for (int i = 0; i < data.size(); i++) { +// +// if (data.get(i).getDisplayName().equals(before)) { +// //10 만약 data list의 i번째 유저의 이름이 입력변수 before와 똑같다면 수정전 이름을 출력한다 +// +// System.out.println("수정전 이름 : " + data.get(i).getDisplayName()); +// +// data.get(i).setDisplayName(after); +// //11 data list에 i번째 유저의 이름을 입력변수 after로 덮어씌운다 +// System.out.println("수정후 이름 : " + data.get(i).getDisplayName()); +// //12 수정한 이름이 제대로 적용 되었는지 한번 더 data list의 i번째 유저의 이름을 출력한다 +// } +// +// } +// } +// +// +// public boolean delete(String id) { +// return data.removeIf(user -> user.getId().toString().equals(id)); +// } //14 모든 유저객체가 담겨있는 data list의 user객체중 매개변수로 입력받은 id값을 가진 +// // user가 있다면 삭제한다 +// +//} \ No newline at end of file diff --git a/file-data-map/Channel/0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser b/file-data-map/Channel/0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser new file mode 100644 index 0000000000000000000000000000000000000000..5ffa3ad3b663245e8b7ec796eb803e86d221c027 GIT binary patch literal 594 zcmb7>u}hpW6u{qoUMq)ZTRg;}2vWBmBy@ICt9bGah4V(i^uBOSx#ZI1oqpHhP&q+x z(LvBbC&fhvTU<)p)v?h3z|}h`ba8FcSWCxd2uWV@%lo}|dIJxvfnv2GiPc6ZBvM!_ z8j2*sRvQTyNVr0QEi(OvDaGp$Mka#(7;;s^8S-Qj5eo5Jw#+CB$!SShWC|x@7)ZFS z8lllK5r)E@I#V@TM)zOMU5P}3@FYZjZ)GB>-6olj4n&3(uN zq-!%eUgr5~c_v*B>u>C#z$<^G>(3-8zt`pxl1#2bCy@4MZT z8#IDw9`be0ES5!WN}!#G0ol0UrTTE<>g&(p@gI+ix5v-tW^;~J_{*9!hP8YZ(zWlS z`BdlTJfHz+Gn?t^|Q+@A9CxhpWf`AwGGh!XtS@6$M`YiXn%Bk>&T31$`A@c NjqvbQWhyRB>tCcP%oG3s literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser b/file-data-map/Channel/14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser new file mode 100644 index 0000000000000000000000000000000000000000..7be2ed9b2709d49e4f1b8a951c064425b15188ef GIT binary patch literal 588 zcmb7>KS*3L7{I@Ko{IPf(Skz}N>?GlSqD8^=#w`Tu16<_^jP_h9BcHBHERrO`Yz<} z|BY|`Wna3W5JS<5w>;Ory49keU2Q#~wlxFv0Uzu;;{kq*IL?iT|1|PkHDm~dpmtea KR!T`cr!N6*3dxNC literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser b/file-data-map/Channel/1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser new file mode 100644 index 0000000000000000000000000000000000000000..eac0a822ec6be569c58b645f4de258397d39da38 GIT binary patch literal 588 zcmb7>u}hpW6u{qoo{FeNwAi5(L<$Z++s&OX#BpBSbG#ApMwk0-zdy1?2=8CyE HKdJu$(w@mL literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/17e6346e-362f-4105-a46a-c55f8d32fcf8.ser b/file-data-map/Channel/17e6346e-362f-4105-a46a-c55f8d32fcf8.ser new file mode 100644 index 0000000000000000000000000000000000000000..c69ba1e00868c0cc7d24c6077b348444b954b557 GIT binary patch literal 594 zcmb7>u}hpW6u{qoUMq5E5gi;#L0p9drF3yRwa}9fTDaa=B)u=3kxMR3-syJ^Qp+6_ zq|im^4R$(chjXanB3;GB$v>h)@0{(>!NgdLqZvYym;Ca6@AWR=fi*BwsY_zD5ekVE z){43!iLjM=!UYnpP+*fRt}>-~4Z_GoFdV~3#c+l^DImf`yvEiUMIkvYDvM0vd;TB?_die zx5lRC2(z)%ph1J)XwX{?8Z_vQ#%uS)VMZD{2?Cy#NwurSsP`b=gOs@0ebYLAJpJMz z50L7O(a7tI?eBB5?U!dM!sPG6qrtcLQ-dF^e(Uq#YrDVmvA@$Lj`Qf6$} z{36>lf@m4?HO?%SM0G)+U51>j-|kY~T{~I%H23$<?J; zN#~U94MC;|St~Yqs(p4FSwFkn@*%guhu+2R{+0oHk2d@Ic#I$8j`mN-w~jnl4H-fq Os1Y8%Dlf#vMSTS=xXY>l literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser b/file-data-map/Channel/18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser new file mode 100644 index 0000000000000000000000000000000000000000..33ac5cbb6e31efb66921594ef890178f25c0c997 GIT binary patch literal 588 zcmb7>zf0UP6u{qoy?TgRL>!SUZh{VO{sG?EwQG~cS~@mENb-`;d!Lu1CwOHIOqHsVSZ#ztB89c0 zsz@SishV(sgew$SCv$5|DPDmvG7;or=qVY_kS8;UFcg1a8;qimoaU89rf@oj-h|td z5gHv6VKCgOFjb}nbot8eN+c45fe@*osL*0DKkv?SlFL@;Z5pwAlgMS}(n`mC|yo;XZTO(#LXvofi6-RSoo#CwneH=o`&&fknLo%8{u zdb2P8gUz_dLUc2>;IL_YsMH>_gzSLZ%6m9 z*g+R$@{qM+i>KOGx0&^`tF1fKwrzm^#|Qh)cz_>+j`K&ve;Qd(H5o!7s9lzK#o0JN Gr+)#3v&i`X literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/1faedf45-087e-4841-9a0a-9bb081629204.ser b/file-data-map/Channel/1faedf45-087e-4841-9a0a-9bb081629204.ser new file mode 100644 index 0000000000000000000000000000000000000000..3432f4bf61a51e0422204248602bec98217fde3c GIT binary patch literal 511 zcmb7>Jxc>Y5QfL|1EYzEf)*Bvt+0!=f*2KyTp`3178Yx6i7R(|>+M9(Ca6RZY(xcg5{W0Y7QQ5o&_&@iV$)s4qLFi2)WfU$g6mqlXzfCfaZ$JesbH{DP5yovpN)uArAf-)Gnvl{4 z>5?fiGO4n162@4oB~-?6CPpPOD#`QUWTpBtG&=v71_;$w#)=(^ovF!zyi5{x;>QQvLUq3vkA6^lo)AOSfLz5W#^{n;l)Z3>PSPPJLIn$UIrK~``0NtM7 ze1+<~>*9WQ^|)>L?tQMaGCz%wPP#;Uwa=5=N&xg9JBgh(_5yvz#4lJpXEGKS-Q06u{qoUVDgtDBjRP1nF8xsH>COLO=Ni;XLTjBI$kM8oA`s9EiNWXzh)Wz4JF2!qd~kqwd$0(e8e`(_Zg>UhS-X>a2Ysjx+d|u}hpW6u{qoo;}1n5gnA4LTML4NN{#iEA{jngzMo@I;8i7GjhqL$-CZn9Yo;- z!KI5(2X!e3(xr-v?b4;)JN8fTPH+=96JsroW(Y}M@_X<1^7R~gt%31MT@tH}P)MY( zR@4`=W|DS zfK)dNk=GaN`xj$Be~qRHBWK4a-GjAf-EZwq`%`ysqqDWy+4@2pXW)k8jfgk;vD0(; zS#Hn>qIt;III~z1)oFot9{OedZkOushXYrymL~tc5KE6su<*vQhX1psjA1R`g>?PT z)1BXJw+Avs$XfA{r`lK7%=+2Y_9)c0YJfiAgMDW_z>guv`6uE(jm)Zs451LzF3Vzh IIxf!WYh2yN>;M1& literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/25ca130d-f65f-4466-a625-6827a4bb73bc.ser b/file-data-map/Channel/25ca130d-f65f-4466-a625-6827a4bb73bc.ser new file mode 100644 index 0000000000000000000000000000000000000000..6710e88270515c3f9d967683c9f5d0c28d48301b GIT binary patch literal 511 zcmb7>K}$kG5XZ+?36e(Wp+kovk`BQxox7A8q`X659wQ#UO*ee&_I512h=fAmrHf#f zPEi*-R76mIf<8*>wXW^!nRIPWyE`-g`Tb{lBbZSxtmn%PQPSlCiNlrRWkGDN@@1QG zBupU38c7x{Ay^6g6EGlXLMZPt3z@x*2r={6I<+Wrhtaf9XbIdjVb*3U?{bM+6Cvv7 zlq^x8S=9XsI>q2N!n_};ATQBeE}hc<)53Dt3Dm*RcdSWXXtjDV>l~pOlVC z_jQSu300)+GkRKqs?>%f9xCxrNtU^tgXZhv%I;$rpeoNIhUbtswq8~POWi8M!pGC| z@UF2ud}t1um&5DUpnWlD-w>@c_oL%M6A!w7HTBhXTGRj|1K|?06lQrL!BJ&k)+tY3 zRe2jPuHC$;e*8Ta`8-S=A%y)d!}H##b67wN`&BE JE@7sV@*A+(uy_Cf literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/275f1dee-cf5f-464b-b605-c77dcb71dd08.ser b/file-data-map/Channel/275f1dee-cf5f-464b-b605-c77dcb71dd08.ser new file mode 100644 index 0000000000000000000000000000000000000000..4136dd70f019df3f39f82fa2f9a7a40c34ca8390 GIT binary patch literal 511 zcmb7>Jxc>Y5QfL|1A~c(78W9ig%-jt))wL?CSD=Llp;rNi7UCi^>(6{!Vn|@A&pHy z8!JHtEmX7+dkYJHfq%fe*xI`1MX`0O-JO|to_FS|1>MSnsl4kDB|R>XI9w_23Sx7W zcWuUzFo7J)WMRt^f)yb?9R~E6kjQ(?LT1k)!jQRb?OGJM!)RJ4v;@wW&}TE1_qar@ zi7*)F6fIGpS=9XsI>q2N!ay7;AurNgF1@J#yM*Pi9jJhz?^u=$VcOKBG$y5OQu<3u zV^Z2CUDqXACQ*`h%ou5P_);5AMW`e~C0XV*H)@X~<14pG0AKEIjRiw zIqvVvmk-^~`!73hy_1`xAFrFss|d-sOL%bAYF<}7p#RuOqzT5jGzf0UP6u{qoJ(a^B$T>I^p>*j`NpKV=wS}I11>t%_3qs?4!x_2cV)9PE*Fm(L zAh@^)3au`ME?ug0DdMVI!L9#-cg`*jCdMB)njs{4$>+V#%dbo5vP zwW6j-B5b*qaDjv?6xbkB3rs0qg)lM^bjOe@8_tj?6NoSvFS2DuQAkb;$|6%Z9z##U zZP^Hoj){;DcdATPXc1k$in|ht1YsaV>L{wTR4Tl6=iQRad2Z~}U@WZXW)+is305I; zYiwwaFd91z8Z_vg27S<=L4)3Dd~i=3CRf)<5b&%_s$Dnwya(|fq{z+AT=VaXSMLvd z0aCrv7kPcLelV6h%U!1kLl;MX+CSG`wtqKU&F%L7Mr&)cwe^EIPX8^(8xe1Gyw`EH zD>rBa(KPf{IkQ+4l}Uki8hT{yVVCN|6aMk_`M+-?U;ppsKhJz}tieatgfXn)yO6G* z5AU6_?;VgSK-P*cJk`Fsm8_p#ZC#KS*3L7{I@KUMq4cMG*%Pi>r`O=+;TC;FC89*Bc$;d*MuZ$xD;(>N|&{!U=+l zi=c>378e&SF2%ijH@D8-b?$1?_=k?o5R!b!@B4mVE`GxcYhW%dB(d5Eg+vN#MWIM0 zY+7VoAmIuHw#niKQ;O#hMkRv51cp+>8S-o%5yq2`>@%Y%B&V^m$P~Uypq6o)8lllK z5yrxuoT(J?4n%H^ZOswh zBu;|{4f>!#pEPLDpbr`!+!KcxYUwNpcvhvtp$pBPh zs9LebOYN)Mtoqs2_A=DgF+l(0gMDW_z>hJu}hpW6u{qoo|Qu_qJx7JRB$RJ?b=S~DR}Y?!u1=F1JN?c<6i&3* zp-Z6(b`ZhErHYFNH8pGw!@ka=FNj{Wlm3>$!QwB>xC&5VhInlgk!P`fM($#h&U F>E9}3#~1(r literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/384cb390-442c-4628-97c9-deff0183f38a.ser b/file-data-map/Channel/384cb390-442c-4628-97c9-deff0183f38a.ser new file mode 100644 index 0000000000000000000000000000000000000000..ffde4fe3918605c0be026885f44535bb5dc52ee1 GIT binary patch literal 511 zcmb7>zb^zq6vy8!E)hrkC=?PAm4wVhCsFwsCtFC)brh4`$r;(59Xsz>jR+?Z8jYY) zNi?V6LLvSD{t178Ta`k|tUVX4sb=QA_kEx5d)0Sn(;H6|tZAUzoivNp6kA!o?lDMaYA*V!hcD11)yQX`W%X+ww0wG#@3MiZeo z&GDEl(E^%&C6i(a7oj_ilu>xJSj^9w|5nL-z5zR6nLBPPjxcT;Qks&|1}SZl(v*}o zNS95Ck!de0H)Tw;GLbTdI}=orpppU)Pgg6C1H%hRaTT|1c_n;${QrCs8^>ig-u}cFn6vkgqEtIw*bx?2-S0%w&9BeJva)VMkb~x@rjohX2@~Z7%>CjT42rhyy zodgkFv~&@N;y>a4VC(E^&a1`MOiA9$_x--S$4{73KCIgnk0|MLfyCoV@roc0S9Zl= z90?Q1u}(5amJrN^a77G=nh>*nW+8KS5Mj|gwoWaI++#E+6j}neOo%&7**=%3H4#!_ zk86oCEui)*>lTAM2n%7Qirl5eVs2O8&kD<9C(r;x@3Af!!ltQ7X-G;Zq;yJ3LsB{+ zJ=9OMOsp!MkTKAT)T9oa3{XjcN(#)sF121(*7lwg05y4*G=hY@+3#$)+rt{d(no(V zzHhFMpIW2V)wtIlbuUKUJEC>we{=$953bE2+`1`;RF50G=hwii9kx@{~`rHOtPZt{VhuEvR_P_xs3b< Di}tN= literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser b/file-data-map/Channel/4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser new file mode 100644 index 0000000000000000000000000000000000000000..3b3f2e93a4ad8a383d5b3535e0517c462acd0e21 GIT binary patch literal 505 zcmb7>ze@u#6vtoBUzD~Y?cmTw+(b!mcF|VB))R!Yqr=e)HPXw)%d1|O(xC;h4x$Kk z=_I(gsJMuKgZOvYI=hKEuNGG`C3!F3@8_F$_W={ihsCnz5+!{ukhoka?g`>>RrVal zkuZTA>m$T4>?4~ZcNr}Rg|@&I6A}(nWuHsbnh5Er zr)rA|wNU$2bc?|qgqf&PLtdq&Qej=+j|A(MwpN{S2GJ2)>(is`~LVe zxNXi2?pyuV`JmVCcTW198=`fle{@1<5<mII1EfTyJy= zWLLbFPT%O|R^w}_m))L1n2cN+KG1(mBg{CQ2&6UsFH-o!WJA>4zeTBCc1k(3keA=h C?W~dj literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/50f9e868-a9d5-4b74-aa9a-44912a473829.ser b/file-data-map/Channel/50f9e868-a9d5-4b74-aa9a-44912a473829.ser new file mode 100644 index 0000000000000000000000000000000000000000..45a7708b36f5ff52e204b3b6e983c90a99f1f118 GIT binary patch literal 594 zcmb7>u}hpW6u{qoo{D&i=+Hp~=~jgVH=&cBr9JyWh4aP^@xE|IF1eVz)9*S+d)z_6 zr4B+B+Nn?~c4&)>xVsDe4?2iaa;l}zyBtg*kWIb&GES0R0K zHnDfgKJ-AQ09h+u@l^ZlHnV*Fzgj5^w#j&B`#qUth) PLQo_0EtTfuLSA13Ajr(f literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/517ca70f-b8ec-4467-b438-0e2051afa0fa.ser b/file-data-map/Channel/517ca70f-b8ec-4467-b438-0e2051afa0fa.ser new file mode 100644 index 0000000000000000000000000000000000000000..f96ce68c9f2ac971a09e0575e0eba803080f570b GIT binary patch literal 594 zcmb7>zf0UP6u{qoJuBjAiw+J_5Vs;EbSrf7N1-R*K{;=9i1!U=$|aX3@AP}6NG&G_ zE-r!&N)f?D5q}g!x)%5T8NII#T?D5l##%ZyLrC(HPu}Of!)xfY21YA&Nvt+PA(6sb zQCB1pwo*^HK*ALYY?6rurWCJ17`X_#V(6|I&X6Z#h%gYpV~dQUken8kMW*m|3_S_A z6(ck{CPII>Q)8-1OX&Wqx+{@L5T1od14WIN%f(4|-X*!5=f?gUjD_{wyke5Shh>P| z8k?FUyo{X&4I1=8gFb4|pg|urX5ABq>2ByG2zXX5)vg-7-h+4#QsQQFu5~#y^7ga< zkm{x0$m@%hy_*-mz9%Wd;Lo$K*}0BHrlRcE|0O zT%{32Q&6aJX0ary;{xpz^vL?-F4gC+`i5tYzue7yJa~GMO;#Oi;4f>;7}oSvNLPM5 z-@aly9gr(R-ii-A)jqqWyq{feg^*kJ`S5!4XxRY$k2d@Ic#I$Yj`l~#w~o9~4H-fq Os1cq_m&fDcg#Hbn$IU7L literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser b/file-data-map/Channel/54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser new file mode 100644 index 0000000000000000000000000000000000000000..aca83a866b838774ba91033851086761137aae13 GIT binary patch literal 505 zcmb7>ze@u#6vtoBUzD~Yb#QPIS0TZvgOja-Ehh?XM~CAs)W}^fUS73bN{1GNE-r#D zPJ&AZf1pFrO~t>(*4aS^b6zd3W=is2zTeL`ulo)YDu5;1_lS}K7f3v=6!!&jxUzkR zaU@J2$2!UFT0$@vq7^e>(uBAjFbkQpiU_mjo^@bRKS-Q06u{qoUMqT9iVhAcE!~QcP&#(WU=7R_X~CNVr0QZ8E>gl;SlABNM@33_}&e8S-Qn5ys;+)?^fg8~ZRA3+uUA#Uy_Z8xXlQ zwlzn16*~zfW5+5P&a_(1<2f6&V;1Kh(97tQ zupq$z6B0wyp`b2^oxN+N{sB!;$F8+&pz2r;mhH1Y-*?x&gF$QHWwjxR)kY{JQdlb* ziX_5T8wnRkxI%#~GP}l<;&lik6G1M9p{n5wc`}U%#rQq@z$gmIX-QdR3SY;NPq?ib zq0uoBM#7ysQ#D#f_g~Fji9~|%JVcr(>aaI`$>lq4?7zWSSkKKWCiyzFA#!VM zX^!wJb{aHj(0dK~s6m4Uz1LWAPaI~bsgoe!S(#M3Y7Bc1;yp;2o1?d#>#-LLmj!@S zZwyCXU+kPNMRPxs6k+to)tCOo)>Qv#1#BrYe;dmqBjc!f`ejUqQ z8bP!Og*s;z%c3?T&@Mt=HXe7WKHU2z)}PL=tsYE%pZK`ccC6xG*0eFK<*Sfxe;q%$ zWv2s>DM8kXO`d9>-A2~WF1JF+t-sT~JNnc%K>wr7zCIq~$B3gn==j!=In|UQ6oMMz L$#P{TF3sxS*MZAW literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser b/file-data-map/Channel/5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser new file mode 100644 index 0000000000000000000000000000000000000000..76d1de7c775cdb44902d9c26ca85499fd18fa947 GIT binary patch literal 588 zcmb7>zf0UP6u{qoJ!?g6MTZU|h^vs`+(Gm#c-JpQI1eX>c;9$NF1a*$r{C)!3MUjC zYKMXjii6vOciC`;JefpB;1yb z(CC;51L01UsR}Kk%U5w%B9S2Uhe#bom6l5RX?NZwxm@JN{vV8m_1vstl7EDCh};?* znj?(IPJ;#w`lvylG-%MEj~a9CiNkc)brJ+TE0b#1jXv)|yay?A^KGGdH8eVN)(ep8 zwZ6#fi_Nb)FXz8Qity&w`DOcfW2AlBY&Cb<2V1S}&#mnv;yAA!INpeOqwBqn-@9^) zMi3RCx5}BtqNq#>v<2vqwWnRGzr4OX{Bf~l7e4%XKVb^vjy3p?HE9fM_%5WIKZo~j z*nS6O@{qOS6Hm3TZY}F)SKEtF+qwbzj1Tsm@c=&t9Otiy|1|PW)ny2UpmteiOH*+^ Gr|$tkZO3B( literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser b/file-data-map/Channel/5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser new file mode 100644 index 0000000000000000000000000000000000000000..c44a003c5bb5f0e551268ec8d9c481b264d8ad85 GIT binary patch literal 505 zcmb7>ze@u#6vtmrEtLL1>);@WI0zynI5;`kD%f&^P&+Cdy-*{)G+tiyx|9wr2whwR zT|}+mqJxS{aS=x+2mgt-&aURXT3pSP|k@!%xWT%kBB@%Y}z9 z)qQ;G-_&RO_l;iTxPRX4wT^nNYoc`$KRP}%@u8p3M!rs+CN;pwLaf9rg*jeKaa37| zI_2TXlb!ba>w+_p*tzJxc>Y5QZmb6vRYC3kw^uRd%r!1i#S86+#TySS)u-T)o?@w-ZeiLXZT6G+G3- zu@Y=zp<*Nc5PyS7uv72@-1B0vb*tT-nRlLdrqPC89l)fM^NCi0kVt%?wa7{03hm@v zE|74E0*ho}i%H2nh)&FcJ{$U-fHUOo93qU^+iZ_f6h5aZsgX&Xv0=dF+6jb0qlqva z<#j3{FIYHdvLy5V-=IS1 LTg%MbsRi{7=P|SH literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/687d9ea8-d841-40ce-a754-26137052ad58.ser b/file-data-map/Channel/687d9ea8-d841-40ce-a754-26137052ad58.ser new file mode 100644 index 0000000000000000000000000000000000000000..00ee6e66dd97f75952e7006b1a9c3880935dee3d GIT binary patch literal 594 zcmb7>F;81D5P&a_6og1BM1~Gf33cd#WUF%*LO^ZM8xSEY_ zBo-DV7@7$L0}N1gsk(RT(5b(n2{S7;rc@p4!Loh!=lkw1Zs3VEFjZ?xVzm(pi4@j~ zrXq>3wPwNv60T5So0OKBQoI3SWFi=fVYp^EL!J~7p%AaIHAYcLPRq(7Q}{ZDk%Zft z5gHv6VJzHfFjc1&bpO@el}IEAqao5l(V*38dDfi|NiIKdWB(1t!g_92G09h93nI71 zw&n=0Vy8ia27S<=j~X;+&o|Q?pt47{?5br@M+#J5|d>w!B_BscU z>h*l&^~Lt-RKELWB1L%i`}3Fn*~iKLRj1cE=y!K}`+L3p6XG~e?>XLxc%yH}1Gh(V zmqrlHL$1M@#fqrU2(M&AvV!Jxc>Y5QZn`2S`4UC|HP~Vk6=%)>cUrj9ekalom&Bi7R(|>+M97CPaxS2x1e^ zMhg`!w9sIo_)q)?CaG;K-1B0vb*tT-nRlLd=Dq_1%7?jv=Mp7-E|9ofDeehkb5-zc z#*r|A94jQVX$ip`2v5X-K@)}wKC_V7DMT1Cx2zqDB6k_h3Wb)yMH8YnQw5(()S3v% zFvqb(k>*hME9w-3+X%y9q=ej|`FwUs|Mv^aW!q2%L*KC?8N!08Nohz*yQH*7N<&iG zC0*AgT4tyu?T|6hij<``91l=QfJ$=AZ*0_G$ER1GVgO~i8#e-nyw*G<>z6ZSgt3q2 zbNjY7*?z3I>Zk3CgVym;>-d^zoy3n$08IkuxAVTwGxvZRV5~ySVV1%iFQz%FRfxJ? z?^TvpiTSC$uhBa-`*L#go|-_2gzf0UP6u{qoJr(g3(ZNA1rJYJ4p{s)6`2$bBpm5&UA-!)nBbQuE-u1rMK@?69 zTwDYl?4saML2T*J(#fThi+_Q$cb#2Lj9NN2LrC(H&wHPjvp>*n4ZJPaB(d5Eg+vN# zMNN@J*m5o50tr_rut{cCnNqw8VPqocjiIk>I76OHBf?0$#y&ENLULMA7Ma4y82S@# z%SLE)OoZWZr^-}?7SZLaxGRxJ5Qajej-pCSrNXQ`@0DDB;Ku$NjD_{wtYVU{!v;id zjZMuF-o;LX1`YbCL7z2f(4dbREAENI^wo6|1UxH~YS)bc??Jo=DRQ&_zV&nL)xy^t zK&l%9k=GYnCljwPZ*+<LJQvUMl$BV{%?)c5r+!x0h`OBI%hBbW`(yi<9 z!{6+v3o-@BTJede+E>@e`q|ai6KdNqK>y=|eP=wtk737o67io#=2TsVPzY+5Wx14( H3p4s2lBvgP literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser b/file-data-map/Channel/7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser new file mode 100644 index 0000000000000000000000000000000000000000..da28cc0633a4583456408a9ae1b839ab252f1778 GIT binary patch literal 505 zcmb7>!Ak-`6vm%h38F?A)WJ)13W6DeZk^Nul??*(*kRcnY+`pDcb=sL;z2?1(j}-% zPzXhIspt~@4gD3J(yn!Fwl(S6oMz^|`M%#b@9qO;ln<+R)gwy!Tp;ndQoJgN!~Sqop(WIQ72RTR2VpL()RDWiTrO+S&pg*aj!Z# zHRNsj?eglzT{w;=KVS3P6d@YAw0xldm`0FsJP}A~{9mNthslze@u#6vtn$D%7?jb#QPI2Nxm1*+Fe9*m8qV3oZ^vFVx6gE?!>sicmVVAau}0 z&_x^s7r|e+i2s1An}2|dt+U`{&a1`MOiA9$_xt(gU46i?@?oyxxkO2y3nVUAihF|C zTva@qaU@J2$2!SvSwb)eq7^e>#Dqk}XBIMh84)JTZEM$}$X!MYLZKya!GxsERK@2K zwI)I)>TxVlr6tsURo!B68(}=E)Q~&0TrTAG{gAL+wgU|?^d9SyAMMyc!Qdr{EEJsy@ zr0We%fjrzVea+rnCmOHM@zJIH3&Kd`((r-)V;W(`{zM?7@qdxRA0{iJ=Kd{8?Xp(R InuVPF26P{-XaE2J literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser b/file-data-map/Channel/7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser new file mode 100644 index 0000000000000000000000000000000000000000..1d00235addc2466d5bfb3a90144326ef8d4b334e GIT binary patch literal 594 zcmb7>zf0UP6u{qoy(;2aiVhAUh?`iGb}GfmU*O3X6s|Wqr1uTi$R(F1@9OtDoIf~0 zP(ctu2Rjvtpo1+PDo!0LuKpRlbM91V(pXE!W(Y}M^2z(WcX|sCtbwsoRT8U>P)MY( zR#X*9ge_GQE|74A0_$Y@6;p~=AdE}|T`_c*3}?ubNkr(6m)RReQAken$|6%Z5kpVH zZOI6Yj)~A0?o^m6(*nBx%I-=e5`;$~QbSRp#bSQOop(ttUvgvr4aUNHZdNhLUqb^T zx5m2W2v1|DL4yXp)1dbnG-%K}jTi2T!*thl5(GRelWJFuUhhG?2PtrKu++R59GUx= z14#8sZ{+pG`u^zn&jzLl1K&S=Zhu%CZl5<>&As-!&DQo-Yx_NMoQJEb9xs1e?fkm??0Vt3WA*=KO&Y`Mz6$C3 z&Ct;mJMMr?9+8d|02WJff^gr6{>*Fzg^f}re9p5@Kt7zf0UP6u{qoJuBi5$~iccf^;n;IEs^Jg`Rw&h3kzK;(fyzx#VK8gc`|_rL-9QO!6*vJX+c?J3ddvUOSml? zq0uoBa^X&usR}Kk%U5w%B9S1x4UsyEDlL@?pWJzm$zFQBwv6fh};?* znj?(HPJ;#w`k+CdG-%ME4;tUx6Nl-o>m&$xRwmW18w1{hcn?zKX6t+N{N0DoC;b4a zUL1(LzF6Ij$IdQCQiS2F)4!dA<&n;Dv)%mF*;{LGZnQV|iQ^33bG#ApM*nuYZnxzc zjUbwa{wik{i=vVjXs4l1)}D5$K3t!kN F)OWi%$v^-A literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/86208d0d-05bc-48f8-8062-608326a5d718.ser b/file-data-map/Channel/86208d0d-05bc-48f8-8062-608326a5d718.ser new file mode 100644 index 0000000000000000000000000000000000000000..9600a4e01e2d5107587a943665dbf9eafe795bc5 GIT binary patch literal 505 zcmb7>!Ak-`6vm%hN}@(sP|!s>bO~nYTo9>&${qsq7_{vUHsOxb&a?C)LK=YtU4lB) zsp!(BqD%OH^gpDX>)32-(zQ9w%zN{Fzi-~d2ZWUeOLo;IN_t!%ak)~wDu~0CU3C~o z!US?`kj$PX1gk)>LIy-kh}s^rkU8s!Fm3KzhZaTdGMX0(ErBa0#2lt;>qV_B67K1woQ$eMMyh2N*d{*C&3(I8(&;u^}14vZ+aFKuU+CbVN!6QaU8v z(oeKZv?iT^(bo#qr4F3%QHhUAip;y%Zokei_|UzpvCm7lLk%zr5U(&xVUd^99902gZgq63 z%hvAB@#5Xv+)3&z5$@%_5F&v~(*ydCY4{n36M>}0|3&hDm~4oe`?n~y%VsHU<}>me DBGIdu literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/8825242c-5e69-48da-9d63-e267d6cf033d.ser b/file-data-map/Channel/8825242c-5e69-48da-9d63-e267d6cf033d.ser new file mode 100644 index 0000000000000000000000000000000000000000..a10ea7ce9daa33532fd1126daaa96dfe14f08b28 GIT binary patch literal 594 zcmb7>KS-Q06u{qocl8gRB04xop%m@XlF+r{;6L!>8w%IkY$5%=aE)AYF?pxoIf%*$ zf=d@c2c3j2c2IE<_l^YzhmIY4=iIePV=azm2uWV@%lo}|atlwaftN{L6040+NTje< z)D=mEP3kEZNVr0QO)~R|DaC6LMlOQx7w!$b1$!SShWC|x@=u5dx zjL_(q2t(mcjj1Xvqx-Mwu0$e57z~jHiW;p{O0({~TXOl48~ZRA3+uTB#Ux*bb%@*= zo0=oMj-3V#8uU(s-fPgHLGLu)xhD?O+t6tc@T^>>T{Zf>2k{=H%+22W*5&B)`LiNG zrdRtTuP-)_-@F)K?8y*Dew|-*zHB_}oVMDn&z+;~_U=x5_n0`&z+a9xBHrlgApd(` zZqo>&1t``yvsf0@X@PbD`eglnm+8agXZ7ZLesX7g?9~S`|HH9{|FfoyVNG9!Z1ei* z!8dl8hg=B?R;=+%`|MT=es;MPLvEd|liR(o>jvl}+U)D&F@6j=+CLrNIx?pkGK4}< NBXqs3Ovj}e{RiM7%5eYy literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/947c620d-c9dc-4a14-9795-8d66f152c5d6.ser b/file-data-map/Channel/947c620d-c9dc-4a14-9795-8d66f152c5d6.ser new file mode 100644 index 0000000000000000000000000000000000000000..d1cbc36ca4efa58305e2729207e305ffc5227be1 GIT binary patch literal 594 zcmb7>zf0UP6u{qoJuBi}kyGd(1#xXj=C<@7GQCVaPCu0~& zxUCwY(J>JU;ZB{Y8ZD#yujZ~qB0(4qktT{dtyGFn-T8pza*-Q*Hy8`+xmm>|UxIar z+!|Y&BRq+n1`QhYN`u~L(4axDH0IqChZ$_@BnWs`Ce^MQdGA5I2Pt#YS!kb+O+5dQ z14#8sKJxlv1HV2l{G3k_9{m1z)_eDQym#8}ws(6+Tixw9-R)!IIQK6(-iUakPltVf z59Ah&ASyww&Y8uss7(vBB^Z*8n_a5+J3BA_%zgf`x3-x7_Nz4NSR=QrDPvg6S0UZ_ z{_yY%d)o(@B4n*t<*D}Btz`Y|a?6F>dYdN~o%ibo=zp}?*T-Z0C^*`+j&B`#rkXN@ PLQo^zo2^X8#Toq%6sOGi literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser b/file-data-map/Channel/94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser new file mode 100644 index 0000000000000000000000000000000000000000..acebbf51207a53faa5d5b480f0454eedb730fa7d GIT binary patch literal 594 zcmb7>u}hpW6u{qoUMq5EDc;~v1QDEsgs!!VTA?T3Af7jh#QVZEa>=F1JN>Ru(Q<;| z;-H{|x(F^hsJMuOL!nEjLjQ^02^|WqO^mg4Y=)5JCBMAidndQ>#2Of>)FrXn2!%un zYeij=MA%9_;Q|R)D6mN;-Z7cfh#c+l^8AF6ZyvUXqMIkvYDvM0vXbic8 z+lmny9TTB1+^I2Dr6qL#Ro#_HBnZz#q=BMF%jM!5cit_zT;Rt38;phZ+^k}fzlRlw z+!~vjBfN~A1`QhYL4!VO(4avdG-llshv{kPBnWs`Ce^MQz21X(4^rZ0XRdYiV(9I8 z9w61ry^+@!YllBaW^%t$g#I5Fm!0F)!OmH$-P-CLthYBe+M7qjah~0CybK}!Nb6vv-i38F?=(4k9o3W6CscPTAM*+XDLmkx_N=!82?JI~UKNGJqex(Ifu zOCW&}6?KTdMc=~JbJu2DldjEaX5M@M_xry$7{i=$VWUuSh>|WBNF1&duLxpuRjAmE zBVhtL)=9c#3Bk$`oR9%w6CwqdS;*`iL|8OWtTT%ucNonGg_giA6QVX#1(!?Inh1#? zr)-HL&7tmB)F}qH5f*|-6?vKF^O;@!KPxPUok9Z)eaE_F2%DxRr2#3OkkTnB4M^#P z^iY>*nMhUI0i&-Ks!44)?xPYPmE@S)J#M|PtnEL?0BZ6)Zuky)bNe>l81`xi%fpw~ zQNOu5dTM#CtIs)%BJEC>we{_6k;zNI2&wTZqHZ{P=LafXzg*jeKaa37|I+f|G zChyyQFZq}>d+SS|rMK)6LM-Sqx)_YR4-FUSKX&3fo$Lh?+QcuIKWDNhs?Oh_Lu}fSr7{I@Kcddw8iVhA%5GQF%Lgy~(DfG!3g!2XmhxlH&rd)Dq@?Cw`K@{$w z;8GC98*~y}TvT*WJ9X&T(xv}H?>cvF(pXE!W(Y~XbDr8vDzdHHNi(7xJyI z6Wvejpa_K+N>;q(x%Snqm;CH%yB})XFhKv~gMDW_z>iVK`6J>#jV!39451LzF3VDN IE{V(f7X|>w?EnA( literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser b/file-data-map/Channel/a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser new file mode 100644 index 0000000000000000000000000000000000000000..3a0ae8de9f8930da3851bd904ca60637c31d783d GIT binary patch literal 511 zcmb7>Jx>Bb5Qc~IBO!n>SXkH?Ta(>bNn$0a5poG8NNI7o+u#~*S#Jl0h7bdZk;aBZ z8bd*1gN0v>v9+-E2lxX7YFqa_B(`p~J2U&v^Um}~Frz$JwM#Bh(&GY&%a!6KK^(5^ zlEXL>CXi#5qz)}1SP_B~GGNw(uV5@XVsHmxKFE}j7im79-qP`DVY%!WYGCL)RwYANGc_piAPDp7$ zO2?%8`iqtcm!%Uh`dXoi)P`d|D)CWCj(P2a#`Dt3?tK)XB2Qz6?~vEmjl_lQRS*_G zAD)Ic_2uDRW6-!9UN;A=^Fgaew9ed*jt@ zG%u23>|{{Zae2<^lc3PJE~1y+B->_yzOlOtwYY{hO2s LvwQiZnNG=XqR6r@ literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/a482dbd7-a84e-4a01-8663-91db303ad553.ser b/file-data-map/Channel/a482dbd7-a84e-4a01-8663-91db303ad553.ser new file mode 100644 index 0000000000000000000000000000000000000000..44f1b944435c942a98afa4da62d4ace5f6e8600d GIT binary patch literal 511 zcmb7>Jxc>Y5QZn`2ZSUdT3FbKt+=aTrIlY`!Xd($(qg$=;!19By`5;%gdkCbG+G3- zu@bb0k#%mk$+%fDYou;QEc66cW36E=bgEFhdv#`gd6xot58TJzR+3(l6XS9 zfyV_BE>U2GEN(I>c@g51u%O?Dq#JUE+?z*)VS9`1Fp9$GG%GbSiE}ojJg(hPC^VV~ zLvc=#$pUrI^edPYOLz!_aioNzNb~vZlKJnI%;(!s1ze_?<6vvORA0TRk4h=2Q8r(~BL!<^NZwSn>;o-a3jrXqCcaNnIBB2<#vBf*6wugJ?DJS=X*|n40FnZwL-}yN_t!%ak)~wB#6yb zp=2|TgbCzWBdG&R2jx37YWi%rcS^_srh}cXOJT6gd zBE*9n#}Y-FL*1{aQw(k+EC!JZa);*gnY8|&6_(4&PzOWbu_hV9x~WNNKuRa1bV^DC zQaT~s(sKiGlIp%fun@`KDJNHq5syvPvzC+&Fdzf0Re6u@7;i49_uqC+U=+xqQiueHe^|_1v6dlJ7tl zBDcnl<_L?i)1X0v-e}M}4H`7)jmDOH;xOYaodf~T%B0$LW72yN??Ecu9B%h6p3ZNa z7XVV-o{YS{*#A&m{Pg=VY=G`vU1C|!s*Y7S)e(aLNrOjo>nz?7K7{fZg3+ev% z*`q7=F$5BhOV!hEND2`zfZ=Jxc>Y5QZn`2LuxlMFeeBuo8B)RhvWwBUcD9rNxn3;>z7-y`AUN8PWaQ!MTx48)NNa*q}Yxh4JIEgYY1!#-I0j#bGJW^GMMV^Z27rN5*! zCZ!$HbzP!mk`?L3j7BRFN^Ll8P>De$c@~^*)St&DR~}LTq1;Vd#v!jQ%#FT^rx0P} z{jnL{)W)OxdaHgCT^_cMk6OpqMClkQapkL0rKF<6@YJs&1DUUe{^SqShs8*rR zFaN$mdG)zDbFnv^xV@QbPI#F&gjC!mI%u>{@AdJxc>Y5QfLo2q7`}Q7C93w!$uAnaV`LgbN5UrNwc##0|N<^>z|3O$d@eAdLtC zZL9=Ev{11TJO7H6iM6eJUJSNwwYxL(&hyUPeL_t6ux@)UQPSrEiOZGZo*)iaw&yU8 zgbC!>AlXAp2v&vYOc*e2LfrP5h0NJPgaxx=)h&wLWi%%gS_0E1Bpjw}pG(x52=h@+ z)e>b|MBT5fQw;7P%tnzK@+vKra@+cUN?0yCf+iUHjt$8WHcU-QBT_mdrDIYWka_2;}jM5jy0pbS%|dnFuebmJ literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser b/file-data-map/Channel/b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser new file mode 100644 index 0000000000000000000000000000000000000000..d07e43be40d037f21c036e2943d17fd0d1a5bb74 GIT binary patch literal 505 zcmb7>ze@u#6vtoBDwMV&6>)G;S24lKK|yR4Y&k@z9Yv12P$RuGy}W9>lnyNjT^tm2 zur7jwF7?MEPW}b@Z`isCuI9X2T+Ni^y?no)Z{F<(3@Z=j?4nDQ^teFca;11t5Qi(f z=rE3i3FKHMsXa>wR)AoI3>YyXVtdR&=By&ZxVdi~SQNR-Xj&+=1TL8nb(pd}E>UYD zB!ZrTCGs?j+AptL4DKL|1(h=L0?p;pYx+JcESHs_28P~aRWgJHQVs4@_B zi-S`|KFsXCy_7yLI_>bu<@_c`7ztcz9?*YG!_U~C2qZNAFOvVmWL=cqzeTBCwsJ`` Gos!>z!L8K* literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser b/file-data-map/Channel/b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser new file mode 100644 index 0000000000000000000000000000000000000000..94f8f724042e46c9b8c3b60bf7d31b52b45ea7aa GIT binary patch literal 505 zcmb7>u}cFn6vkgqTPSTs>fqoaZXzT&7lgKow%#DrE<%T+7i!8~E?!=>T}p*kgm!Qd zba4`0TvT)r{|EmBcUxyyb6zd3W=is2zVG+t-F-q-`LI&;T%x4U1rnDl#XUi6uBx8R zI1(n1V~gbXEg_f#;ffd#Ga+8}nT5>GBEp&fH4)Nb zk7J1%Eur?S=@x_A2(w|Of!v|xa$#NHPYcUs2havX@3AEr!m6oBX-G=Pq;x_`LsB{> z-PKRDOuQlOkTKATG^Gxl3Q$RaN=nQ>uXJA)mbM;}08M$6GJ=G>lZmEo$e@WZ|MB=V zy6r5E?z_Y8+32b_?4J(%*F@{g{OAPGB!GUsocg+Od(;4<2uX)o3QN3}u}hpW6u{qoeyylyDLOcaBCdr5=T4pqo_s^$dP~6}y)T@ROD;{`)$bfcM0jUxI%$VGPA^#;xz~(7eQ|VeHFtQ@^l&zhLdIXo>3H%)1tD-6uwMgAmz4V zght0i7z%f4OjT(K-G5bgB@!vZ^AKsEsL^t{IP1=PC6{lxvHu1WVLdliO!9ZI29aB1 zQ*(r=#A(o=K_4{eqXrEc^g-jbd*U#C4V?x7&&p-mRb$Y55br@s+_V>4*Q1m3XL*23 zuM9?BUu=BX>)+M48N$fj`9=53`b76@tJB)+e%k8nYo8yg$H~Mza^Yf$J zq7g(3kgsuOu_USmfp!4~Wc_iM>3wo@dKn+-tEH*-_?trPSi^r=)5fr-uR^x*W9;BN zJM4j65n?M=d8U1KE3uzlZuyW~ck}qZeX?eN{zsdAeLTjGAxHb8<6B4OR6~YP2x^3< LugZm_IHP|7Lv72K literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/b790924d-0355-4b8a-bf34-0165211058e2.ser b/file-data-map/Channel/b790924d-0355-4b8a-bf34-0165211058e2.ser new file mode 100644 index 0000000000000000000000000000000000000000..c510871411d348091df828e61d96b5fa0c503fbb GIT binary patch literal 511 zcmb7>Jxc>Y5QZlg4TO9UV_{*Vw!$uoot24#i6;m#U}JIQmbjAJthWpMU`&6T$_TS;*`)M3^=Ytz(NKcNonGg_gio6CyTK1(!?Ing~fh zr(}sD&7tmB)F}qH5fXl+g1kiY`OLchpAeSAj-U>PzGF=?ge6mxQlFHLNa>iA`lNJ3 zx~ogHOt>O#pV89_RHZf?^H7P0N^;EY?l)g&7d9WF09APsGdzd9k(vs`m!GN#GoO#o zgWJa3;J(>!b_Un2e*3K7z9CvC{-fhT6A$|BD)@Ejw5S0_7NR9)Da`R=ilfRx#3_$o zRr$UWVDpK+kC)EHb}+wnju7>`3{HE)?p@sl`j4G>PDguzq&D#j=FORGh>G(!C=o(C J`IMPS%WuT!uMPkJ literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/be18e3a5-a122-4513-9c13-56f60fa313a3.ser b/file-data-map/Channel/be18e3a5-a122-4513-9c13-56f60fa313a3.ser new file mode 100644 index 0000000000000000000000000000000000000000..7a9dbd4d5b342ec23579ffdd114a1872813e8e11 GIT binary patch literal 594 zcmb7>u}hpW6u{qoUMu3+7QewlDO6V>p=0T!_P~>G5YBV!5bq0T$|aX3@9K9Qq$ei` zE?oo#trQg(9aOp$aqZrJpaaLLlFJ2d?A>4@tmozxll(m_L*&-j z(j4Js;xuT`pf?)yR)Yo&dZRJto;b`vQ>Q_|vvQes)fn;~#Cwo3Hydv|-=B?5pB4Zz zy)+bgebL^1RcMXoGlY@fXWx2ze@u#6vtmrEtIw*b#QPIS0TYkM2Fh?tK|lvc62y;p+@e~czM-!DHU1}y0{2+ zaS~iqP;n7)^M4QoXYuOX)tpz0tC^C#m+$xU&Aa-7G3CKrsp1kPJuZ;ATq#}=#OA70 zu^C6g1ahpC?5-sQb0Az11EMCxN*=S2*(-=JY3^AE7DetdniC2wflDUDZKg^dm#8%n zQelr{i83vq_ABcagWCubVWo=Pp~YfuRo{;a%Vqn}07LJwE*ZkSsYz)_N(ZELNJ>Le zIw0NFPqa*|D(#Rl(2CTg4x9{7Nq|ZU%sbs_Jx7(2{iBWNWwrQnllBp!p-aO9`j2S@83z-Al*a!>3VxWZiK_dzD7DL0F=OVk F@*AIRuIm5* literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser b/file-data-map/Channel/be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser new file mode 100644 index 0000000000000000000000000000000000000000..3e3b3b9abd6744f7d0cdfd70a1d3bec70bfae56d GIT binary patch literal 511 zcmb7>K}$kG5XZ+?38F^Wp+lGGD(uoRyrdSSy+dFgJ3M@gZTQyh?O0kM5(t_o$F zaU@J2#~MlRSVFK8_$OdM(1cLIWfn3!i3qdiuC;GbfvVJoqaG^pP)Uxto$coH{Nnmu1fVJpqK4;?H&))44?nM~2y-93 zhrv~2VQ|~*H%|u_t$zEY-@YVTXZlCSgC-vI%lX9DnbV>M7+Hvvn58hsiz$vO3t^`` zepTgDBu}cFn6vkgq+fv%9)WN|;T!jQ@2eGwc%PB(bSn%kD8oA5G%d56a>Cl4E#YNCX z9RwE_TU&QuSP-q|XHsmn+3RL2Rz7p3OKC zCXi#3R87!WfdQT3UH%-%qRdGp9Ru_$tv(SlHD30yNFX){&zxkRmrkO_Mn zOVnrywO>uQ7~Dpf3oCWx4lS1poBDoQSS~w;78rVuP00{eO-)KeQaT}}zoaxIr4!P9 z{Y1+o>e3Dw1Fc9y>cHs$l?14y#Qcj&=Xr5?yPpDR$kVhDB;@V&-S|PoY#=PW4W35# z?WNIUXV^I(U3Z7QvtjR!Xq}mFodB8y&@We0AD3>I8ekM5sm~Amd~rkkR-*NWl-2yr{c>i&DGnm9u6cC%*t% CkgPfY literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser b/file-data-map/Channel/c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser new file mode 100644 index 0000000000000000000000000000000000000000..cee1b4cc312c7bbde254f828d4b53d41e58ad77b GIT binary patch literal 511 zcmb7>!An9x5XQ$>Nuoy7AtZ?CSg=dyAkYd@9u%0Dpu@wr*oJT2-i~D#u}}!SbP?*( zN$6sSiXfsO=-8oSr~ZM|v)A_ZOuDwG-JO|le&0;13nR*fg>1ngO1fMiakx^vAc)OX zwqP@kgbCz$L{@e!Ay^*#6EGlXLMZDp3z;29gh_MHIq2N!nhwPBG1!ICb_ErhlS;^eJF#W?|38`!lJ23sZUD#q;x<^ zeNx&d-O?pmCRCKR&**6dN>Uq+dZ@%hC28h1cB+rlbL+PefRa3n8lFRbyxpAdEjLRD zQ(t%YovX@h=cd}Oo^>v3?fPlE-XvOQ>_^9gCLZ+D#Zd3usZj%r6h!jOQkdqs1V@#E zuu~YkO7i(VHuLck8-0DN#2+@2p9m4ZOXsB3ZCsaKp#Rv3=d`~Un9wGE!Mr(>HBof_ O1|>ppGm|irEAksR%(AEe literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser b/file-data-map/Channel/c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser new file mode 100644 index 0000000000000000000000000000000000000000..5dccd0662351bd091c63766915daf54915e93ddf GIT binary patch literal 505 zcmb7>u}cFn6vkgqTc~ZN)WN|;T!jQzoop3sIYp?Qio7yl7$b#*o8)#7TVB=6<>eqY}02gH>R^LE`MO8Q(N@wigFE{MaGU3VBq z!US?`lERK91al!;F#{4NByFEr$ed+Fm@;>*eTyRZ7%d8gmcS(wQVvtL&n0S2gk03) zTB1hFsQqfX#o!J?HmWp`yR=d%uIT%5VR>v1T43lsHYGz?Ff}QSNa>K2j!0=lN{6Id z`iYiFHl!0VhFY;e>cE*0m4v9I%>1+M&eP1?+I<=zkOvtfOvu~$?Bb{M8X!!+KRgbu z+p~kaPQP<9xa{_O$Nk2RX)^0wZoRyX1ZiO8kp1O3M|!i>X-Ku+WTB85LpRz<`6Ta?;mvywN91^Eq8 CbgdQu literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/cc12841e-07c8-4e95-8a32-312ec34fe68a.ser b/file-data-map/Channel/cc12841e-07c8-4e95-8a32-312ec34fe68a.ser new file mode 100644 index 0000000000000000000000000000000000000000..f1ceec13688c1f8fb12cec4b4fa46929a364eaa0 GIT binary patch literal 505 zcmb7>ze@u#6vtoBUzD~Yb#M?w1ScV(t`1_WV9TLG?dWjyLXGrt@$zchrF6K0w2MnY z7bn4`gFkQ)Hx~#04hLJo&DES&i>sNEyqE9y^Udphz=ZN(rRX|DNskL84p)l1g4kRY zU7K+vOd!WP$sAfjurh=zV!)&c(W1vJWcCIk%$i5miA9k+jAn&GOW>LbF`KEP$0ce_ zgk;!LwnT~MQTvs2i@|M#nXpnpUZ#aYc2nPv3(H~0&;Ud4u`U@x%G9JZB&9=AIwGYZ zDIJpT>nBA5VwJxc>Y5QZnG1~iFCEG%r)LQr8B3o9$Xz=Q*Zn9^d&Epg>;Z@r!9*@#F4!A8M= zB3MX3gjlH9h(95}#3Z$?dtMB-Zne8J^Um|mG&(S#1DGrM9?>cg5{W0Y7QQ5o&?VpD z0tuHW@Q|$RFe$kU@kv;av|+FmaE9DjLWEI!m+do(!s9e2H8P2dHl!S`OMy^mG!e3K zj>}}37SQx7n-ohp2qST%g2JW6Vs6#^_e-?;BUMEIp_(vy#CK2?mDbMe{ zLUl2DHPm{%U1(mC=Cs1l literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/d2b403af-6771-42c4-96cd-20c82f8373be.ser b/file-data-map/Channel/d2b403af-6771-42c4-96cd-20c82f8373be.ser new file mode 100644 index 0000000000000000000000000000000000000000..081c2c9ad6d71b89bf066739403120f0668a3b91 GIT binary patch literal 505 zcmb7>ze@u#6vtn$S}1Kr>fj(qaa9tWoop3sxk0EM9ge$jM()yhdDV6)MOzTMxG1_f z2`+;8a}aTIaB=a^uoXvFb6zd3W=is2zTeL`@8SbSRRFVg)h9{@Tp;neQoJgN!ki5NqzSY7JCnGltPsHDt-!}a#V)Xd6t8lWzBGDet?x9+Fsc0Y4z)y&r3o<5XZ;Y4-hrV0)sBmRoJCVmriL>$~y$+vBSf+*oJT2-j1agkx&S{*g>dE z5CtLFp`=UnPxKFT>Qd^tYx{a8UE9;{&dhf{-xkRmr z5cP8kmdMi#>VA2hVsIN_){m5s7icz{+SLD(!gAOVRKd`9tVo8iYHCvIlhP3>9g|X@ zl#WREbcvP;mZa@7dRl?9)P^G-D)CTBhPmzi`t#Dt&SMy$EKeea=aARd>WiINtBer) z>^%+cYRiL%dcWQpTs8X5vwriIXq}lK9S@p#&@Y!0Ul&e;8epU$Tws>M49_Pxsx*Y0 z;`mjTo$GY(H6B@bn>*irze#)`g#9jq)9$c+Uv+{0V<(=|(Ow{`P5gp+b0%A&KS*3L7{I@Ko{D%%(V;^Tia2NsNd-3-|FqC24=P;W*dg8v*T^Lolke)g4pPer z1s8`3b!Z0>9MqvoI}}&xSm@ZfQ}3KQxSAMi>DUY*$(Q`{{l4$;9J;N6`<1#RRvV#^ zNMWt0E0PIYsb^du;R*#d$^3Js6t6)Tg$Q~R=&KmckY}@qFq|y27mT8ioW{x`Q#hSK zf5vUa2#t=3Fcj|8n5xn;y8o)~N+dFbTOrawQKM-ZKXm84lFKD-?7zW8SkEmgCix1i zLFCrh)Er?laT+ve&}$8Pqd|iPz1Dc@o;XZjLuWz2vkJL()fn&|#Cwo3H`~uzU+#=P zJ}v>|dUYW3`eJ=I9UDKJ$`Nk=I{DPue|5L>vDI#Ebv|sgH{Y~3_lV;RUU9q;@kXaR zT^H}<28|$EfKrV!i)B%r6KEHpU)FDSxju-GC+@xd@%iVI2fxX;nbfg{|FUL{VNG9! zeEs{#&R6!n3koq5t$4|E?Xz1g`q|}H3b}P&AD(X?tr?*I(Pm#CkMU#3(f;W8){#f5 RAwwtxHA2r~I+w)r`VvD@%n<+p literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/e5c39507-a425-4c89-ad37-3cc5b9132e40.ser b/file-data-map/Channel/e5c39507-a425-4c89-ad37-3cc5b9132e40.ser new file mode 100644 index 0000000000000000000000000000000000000000..91b7014857477bebadc9ea1e3da3b5a7dfe3e48b GIT binary patch literal 511 zcmb7>ze_?<6vvORpQ1+S(9jY=Q*bX$4F#1Jq&y-p$A*XRVmEx(+q=ioMI;moml}kE zXcAgo!_M>rDOVc+kXye!U*~x^n8&03!wAJhK$0c`nXTr6A-K zhOd(BEU&&l$H@A}TXUkdV4fp{{Vu)JcE8!FxIq806VK^jFA&uxe!;vslPytn{stw& L_--a{CKK`-;CryN literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser b/file-data-map/Channel/e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser new file mode 100644 index 0000000000000000000000000000000000000000..07e2240bc072edc47047b9adc58f55b627632ba7 GIT binary patch literal 505 zcmb7>u}cFn6vkgqEtIw*b*SJXu0nz!E>5-zw%j1pjvbD>P$PF~yu9jlDIKmLba4^X z!ATHA2Nf6bpKupf!PZ&b%z3rAnkmV9`M%$mcl8bv%7+EJ;SnW$E|7R!Dc%so;mU3} zj3Z$JIkre~+Y*Ag5U+#*NfT1G&n#rlDk4mqJJy~>k$a4mghET;iV10lDck1~wI)I? z?r|+qrxnzGb=_ic2Vp9%G?BZsS}m>V`*C4;Y!}*K=smV1Ls&F5DUC_#kd%%{X-rCo zq+9xlmPs|G6Ej9yi9qVW*$9>f5u}T9$5QZmb48&YSRIo@RHWtFJ7FJe91rrVwVmebCxh1aTHtX#~V-tcVAZTGD z#6|=KEn*SHMtlGtMa-qPbsGrvGyi=5Os5aS%7eLL#U)C5Tp)3|QoJIF!&R~3 zFph)?y8Q{*nA8KKY?xMV@XVXEkHiCPn3 zJj^NEqC|73`;~Nx!5xILFj7TcrulqkRsTnY?Xo?ngQ4$uC>g?nrAcW>N(ZF$mz0L2 zbU?bLOSDY9DxHuq(2CTgHk=GlNq|an%)2NwUs5yck0wA(9wd#xA#W_+%pMooHH4{; zr)U4JG3|Goz2>=p)#{y|^iFSy)*1cQ37|;;{dzg{*>+ph03!=#nb`_+yp-msvXF2q zzpt9SPR*Z1?0dn5J)r;CN#Jy_7Z}$je!zk`lQmIw{{|&O LY%`y>GAr^6w12Pv literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/ed77d5a9-a987-44a0-9ca6-d784895859e4.ser b/file-data-map/Channel/ed77d5a9-a987-44a0-9ca6-d784895859e4.ser new file mode 100644 index 0000000000000000000000000000000000000000..b02a590dd6fac2c8ccbe2998db0142587101d1d8 GIT binary patch literal 505 zcmb7>ze@u#6vtoBA5hwg)WN|;T*U;z&B?ZcEjI|Ypo7D47iy%J#>=a1m(t;iN*5PF zLBv6nf{Tia_-}~+fRk-UaT9Z1Ev{xt@?O5*&o}S34`a%MdAsZqB|R>XxLhe-7R2Go zE<21PVFEeUNqWZ;f|Vd#5d+3eh}s^rkU1-eFlFvq`xZs+GMW_%ErH7>#2lt?$)=Xd?%-bJh1KJ2!yh}N0-(FveQ0R4P6@_FjEr~yU};w5G&%=2Q3qsl?d zEe}sMd4B!sA8l^E^{X$P&Ozo9VLWtcctHO#jUeM-B9PShzevFklT}f1{}!coSudo_ HY+8N;ydSUf literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser b/file-data-map/Channel/f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser new file mode 100644 index 0000000000000000000000000000000000000000..9fc24bf07ffc4262a74bbbade312c322a2a9c9ec GIT binary patch literal 505 zcmb7>u}cFn6vkh#wouxt)S-xrxC#lb>S9~LmK%iHvBS{|HFB4Wmsf3)@oLIjrMd|0h{E>Y6w0*T9&;+`NjS2fRO z90?Q1u|@LxmJrN=a77G=n~#W$xyxu#D6|A_n2@xYs`*@^)(vXx+Na>W6hNN^t zx~HFLnM6a{A!DEwX-XY99iWl`m6Vx(QSCl0t?b;V0GjeRZ3GEyN|17xrLfHFIgY9XN!Od6 zn(}-=tD{Ud_7R<B9PJezevFklWoy({}!co*{$TvVqSg& DPA078 literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/f22483a8-c194-4a01-959f-792d610f2aa8.ser b/file-data-map/Channel/f22483a8-c194-4a01-959f-792d610f2aa8.ser new file mode 100644 index 0000000000000000000000000000000000000000..d6fb1208f3a17aa62b149f0e875a6a6ba4df15e7 GIT binary patch literal 505 zcmb7>u}cFn6vkgqEtIw@b#QPIaS+7>XD3?)TW%0)7r`O)LXGs&czLbYr6{%_baAkt zi!KE_xTv^@i~o+Ti;Jr{uNGG`C3!F3_xtkhKVU+8uu`nJL@Q57B(Bg}R3vePE>;{a zkZ_3t>m+l)q~v7?SHyy-4Y8uf8FFU>5oYW|R$~-}%V}0>WD?hHh&x;tJ)zKOBBa8e zGLt2mN8?vAEtYT)ro&1VMVS@~*-djlE}6@ZpaGWIV_k8CHQSKVkdzKd>4=nuq;yES zYn~XHSXDV8W1toBl?j{-P)UGF^4#m}H(%x!wjUD!zB*1?K|*o5*Im*z&3^M@aMS9y&-?8zF*=h!Isr5ZpkJ@YzOLLBwZO_jqRg4byeOpw>Kw$~%IM^) z&TV~_O)d967teZcm$?W+G<0crK>sm~AmeZ%kTUqcNWl-2Em?K{7L{??DWvUeMtuV# CzO3B< literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser b/file-data-map/Channel/f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser new file mode 100644 index 0000000000000000000000000000000000000000..b798ead6eca0c2b9c96dff5ef772754fb4352ca7 GIT binary patch literal 505 zcmb7>u}cFn6vkgqEta+-RS2TbIGo_ct%d1|O(xC;Riy(p` z*hO&ZqT(X{9sUuvj^b+0tHsq!N#4u%{l2{Z2TUm+R_&Tcl=Qhk;&G*TO%R7GyXG*C zgbC!>Ao(Lp2v&t?#SDm>kg$DbA#=76Va}{rCl*ESFnBHiyN@Y=K%S&Dsm~Fym+ze@u#6vtoBA5hwg)S-h2(p5-sRR?VqZMi|H-E=taLXGrt@$#zeQaZFCbdiFf zAPypk;G!ae_*XdS|6uE?qvpI?T+Ni^y?no)Z{GDgj3^&wY|kZ1`dlD!xl-H{#No>J z9LA9_fgEcjyKM=<$`G!I0iz~FZJ$}loFznF!}%VoPz2Se|%CK&r3o<5XZ;Y4-z%Phz?z%Yp_e_4w4q6y+dFgJv@AiZTQyh?O1vd35CFm7oi9` z6LH~P)R4%DSWXz1LPOafJ}}y9~}c!}fjE1^SPjcuvQAfv7g|3+Bz4?1+-{Hz*Ni K_cL)bnULS8ShL*# literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser b/file-data-map/Channel/f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser new file mode 100644 index 0000000000000000000000000000000000000000..1fb6a0009e4bcecb49b9674828c4227ac829f107 GIT binary patch literal 505 zcmb7>ze@u#6vtoBA5hwg)Iq^T94#d1;NoPfV9Oyw?cm^W+=UwH<>KX4+og19Md;!p z>f%&zaZzy*ane7)f5WzelTO8)SBtBelDwDi_w&uW>A{%tA!U0mQPSrEiOZGZo*)ia zw&yU8gbCzWC7C@-2v&k{MGP1>A!_@~LguU@!j!ph9aXl4t(eZsT!we&a3m$2+C=M2{OAPGB!GUp9QnL(o74a!2k{cK6y|v`%~9nb z=6b_ZMIOH{&7{ix*q8CqJAd2UK^PBRYCh0^Oe4rRmYtUA78o HGnF-rq66vtn$S}1Kr>Y(T%u0n!~i%_twV9O0c?Wl0{LXF&|@$#zIrF3XPxWz?K z2Pefv2Nf6bEBFn>4`Ayo-OPElxSA=+d-?x=|Ge8zm{cAt*BUNS(&GY&%a!5{L2RyS z4V!T!Od!V=DePH7FbAR)Gaz9?vgR=hnZ1q(Gv>Z^Xi?-Yqa~rx61ZkU%4VwOafwrDOVgwP~}emReSow+?~fKi6D!z_grUe9w>Wk|V= z@yVAL*FmoIzPdY{^X7+l#aDzxu}eZx6vmIQ5=4#AA)+N33+|<*#ig_$zTB6r+e=?=R3deoc<7|lncwHsza1?xj^D@rFc~ko2ydQ zW*i9<$gx2(dzKKa0>KFx5H=xFa+!t9UPpwaxo;g>6uHA_Rw%Rtrc8+1OqEoqqyNaJxmHz*Op K`C{74X5=^3$*^+( literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser b/file-data-map/Channel/ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser new file mode 100644 index 0000000000000000000000000000000000000000..c8eceb3711f0072ca76bd21503a4aba3b2d85724 GIT binary patch literal 511 zcmb7>yGsK>5XQ&z0b&%y8Y;R-PZY%G@CdamR)>+M7@O$ZV}NMjRF z5G%n(1z&}tosIZMq&Jt^Qun+lwr;h%GxN>wo4IH~xAtK&SMZ2dzK}>fp|vPT;s~89 zI9wp%5(SpX!X}fF=OI2F7WCNAoAWtC?#v;=u)W207)9Z6nvxos#915q9IkV|P-rv} zhT@z&lP=Am>F1ghOE?IFaioYMPqW$7qWSNV%;Vco2Fu*Bq&UKqZAfWMO53FLmz2h& zv`xBdN{mczQ8_VVq}359W4J#;B@rsgaKFA@eH@)g-Xs75wcBq+4n<|=Wpbl29UzRn z-`Uir~A#?L9=#7jLyKfP6SON=%?e(k0WoNT41Fik>^ZfM!53=bsGA- z!tX0k$9J!5Z!7NA=h(?}@*&+oNW@*jy^B`;vg`x>$4(-r?Y+Q|G4TTy&6zC8qW3qb N5PFug^LA=MeF1}&vy1=$ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser b/file-data-map/Message/01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser new file mode 100644 index 0000000000000000000000000000000000000000..a1b25b2bb1dde32d2a1c1f90d9d1bb51cd381497 GIT binary patch literal 425 zcmY+AJxIeq7>2L$rxx4#Hwq3qs0f$I$;l#UO4OlrR5+5OJ#8*A_f_K}9a?ZM25L9$ zs*9794vI@b5JWo&4z6PBs*7UMpx|xC_wu~Y_nmc6pRm!KW*S&nHsgQ|CImA%)|t>u zoif0b1A~3MN`)X9ih>uCP*_DV0zkB^;YAc(02)@e$S#rdz;d$61T3g%faD=-+KT>v znocWA-ZY|R3FkDY=sV~DNh%6!CI=4(Xf$Bu2+znV@Z2)pyiEyEebEby1p#0Nl@%_4 zaKBGtzo`%)g&w zm79-Kh3f0fRpUFn9a(!4KD57HyT6$=M&g^Nt%>v7#EG|L+dX_MxgEFCE?%~)N7yTk zbxVCwoT9e7QLK+ou3SVBa;&|W63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKeMuS)eChZ63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK17_ThWm#C0Ajn9 ATmS$7 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/073548ce-7b85-49c4-8781-2b200866a8cc.ser b/file-data-map/Message/073548ce-7b85-49c4-8781-2b200866a8cc.ser new file mode 100644 index 0000000000000000000000000000000000000000..2d82edb0389d0e90f9d6adc4a2c5c1a6b9c76878 GIT binary patch literal 439 zcmY+AJxjwt7=T~nM-{DzP9jKgEnFs1aPng?CB>n2bU2c;J!vj6_qJ99QLtF3gMxyB zI0=5>AO*FEE~4Tf{*lyG2OUfr6uj+tAD;KQyLg9I=|bGFEg~J43nUholG}oqTpG5? zI1(n1<1$GyDQSj5c$yT5=n$od)W}*sqL~t*M_-@?s^*dBRGmv4)1jT_F>AY;`F}b) zt4;aS4kJs2U^&fPgjG;L2hE@RR!LPrNkCVQQHd#@ncyfB&}rF!x1w|2 zU%fgnT-zTH>94KwS4(lgt z^`nwkDSMS;;wMBK2|+eVF?Vln<91+Zy4nR$be5t@@V$I(L>aA(KrvjhxgL+T&!4_V MhNs_FO4_6I1N|hQMgRZ+ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/084442d2-f95f-4b18-b735-a6e13bd50808.ser b/file-data-map/Message/084442d2-f95f-4b18-b735-a6e13bd50808.ser new file mode 100644 index 0000000000000000000000000000000000000000..acfea8fe5e2647aa2b6c3b013f14137d1ad0aed0 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKQ5d@{8sp%9dC4iv>E zInbs!a1#Cn|AKN;vkp#jGh?E>+w1%3^ZmSc{SM92g%QKHh;&>okXT$wZVO^^Y1k&? zNSHv5n`D7WNwW;1)1W|1ha^R$M$QTl&6Eh8`U+jAY5{p()w#q89a?DtbGECQ|EHOZ zmI|hEBS(c`dCgpdZBTTG8MeSchtL(d@>FEiGzM+iAKqmYnK=^x-4TG?VyY%2QW5S` z_^&EnaLkAe-AzTu37*;!29hw4gb7b4ji1L>Sye!pheV!HiD{mlT~tHZi?TCbJr zXJy~3_}&Ex5|Td&VKzxK_h@PNVPJUfE&)( literal 0 HcmV?d00001 diff --git a/file-data-map/Message/15be350c-8514-4dbe-a128-a82e044b1c4e.ser b/file-data-map/Message/15be350c-8514-4dbe-a128-a82e044b1c4e.ser new file mode 100644 index 0000000000000000000000000000000000000000..71bda07a76ab508e39902282b9a13d2180b513dc GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAIh{>K%4p zTnsXltsyC)S#9Zci8h5^Ue-MxKY*TmGqvM&>(sYXXS`|I@n+T(J)ot$U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48|*nmb{{xW0Wo&r$w@y|&%C%PJ%4rZ#c~I}0sxI+ Bmqq{p literal 0 HcmV?d00001 diff --git a/file-data-map/Message/1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser b/file-data-map/Message/1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser new file mode 100644 index 0000000000000000000000000000000000000000..3a8a94c8412fe51ee8c44c866b37f361e8fa314a GIT binary patch literal 425 zcmY+AyGz4R6o-$gPi#eW@_|Sf@xcwa3W6eNN<^@9bhsp!^lEbxb5CnrM6jaHT3?%+ zprELTh=@Z67Z>r55Nu~B#iT*OyIszY@AsW^UWEqf!LZ@jM7kaqNNg@8cLXuHG#rz0 zBupU3RWi$@q!xqd)hW=VLxLhwBWni{&6Ei3`XVh*HIF=}>RjTO4$U-=S;y1N|Iw`o2i z4fM_rU4I?GPI7#rONP+K{g?h{bwfVB-o!4f<;ileWTmwIv018?4lBjG%JCivN)xrx zP?V&ZS6V3E_atYo;sCz8l2F2f^7Y%kk(0ucA7M{N%SEy^*xmbmx%Boved_)ITYZ#T literal 0 HcmV?d00001 diff --git a/file-data-map/Message/22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser b/file-data-map/Message/22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser new file mode 100644 index 0000000000000000000000000000000000000000..a176ee083e13f2559a0c9e3df8499c30d76675a5 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK zi$R96t(~RM_VZrso#z!MtHg_aE&@IIdc%xY8z#Q#+WNY?<8}8EMWCg;U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48_ZfHj?e#50Wo&#mal8H70>1?r8$=HMEXxC007I$ Bmc#%6 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/22ede715-bc62-42bf-b37a-1116c8af0299.ser b/file-data-map/Message/22ede715-bc62-42bf-b37a-1116c8af0299.ser new file mode 100644 index 0000000000000000000000000000000000000000..a52e6c70d897c7bb70685edb68fb9aed99087c30 GIT binary patch literal 425 zcmY+AyGjE=6o!xMHO7ed#x8}8F#7-&YDnSAT7{GryTq6B|3nVU=l6!*KTw0#Z zI1(n1;~JS`Qc{OO{8}{VG$BP1sa0^Jh+#{FK68n#P`!k_sGD5kgb7`=gat1!?Elkz z-pEGNgjJwIu%clvLm4y^IxSCNghLpJSw$)wJ%^E-^OFx4MP^S&fx$R{+-15UBvPUJ zH2#Z9lzcnRDt24w`_ZbsN{}c)q7>>Ut)Iv4wyuFT3q3_fCFZ!3;V5Sz>3V;^&_7BZ zp6x9@4PEcgz1+LTl~mA<-HqJW*hMu_etm51p2|K)OExMyAKR5?<+!nR(>OgKQEBR@ yREd%t3o7$lx1;HqS`R?zuckD0P`)|&1~tzNW9;R6|HwmCJ4rX+hwBTOJO3LYBb7)1 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/247314c8-1f95-4645-93d6-80453e9374d7.ser b/file-data-map/Message/247314c8-1f95-4645-93d6-80453e9374d7.ser new file mode 100644 index 0000000000000000000000000000000000000000..59b19e477fb046f457b1908d664083381ef9a844 GIT binary patch literal 425 zcmY+Aze~eF7>3XIqZS(}RVUGkbSqpIH$kviF(po=qsWmQ=}B{mxvv_Rpr}ynB&ASs zaM8`72wkLqfP>(sbaQgB3U00@4GP|Nd@s-YeBbRS8Wk?e>b8Z2<1!A|VnQ&RV}l9Z zHYfv3IWRcDn^Xv5QWU)*3B@!d69A%@tstTr0#H)hA$vrr0;?z*6R@nIaZ-h{?W)HA zX{n^H1=F}*CY;lXYV0B(Ng9gjHirNQC>60Pgqunc0ylGzcPRmCtOkLpC;-f&ipm8L z9`;G>7ZtBMMwAWNBc9^~t4@Z3I26R8Lib|$yJej!5|RoiQK3XYk(oILqJSnW`|syD zwd2(Gy#M%?5xK8!vT!9r=vb#WH)GTEEB0AWzf_lkCHw8xd;9$3tkbX8`t@r+D3u4L yp(rj=x4Ct4KfAbbmq5sK_GKwNC_B2z%H5|0FTysS5A!Pxc*%(Ahjep2@B9F#6O+FH literal 0 HcmV?d00001 diff --git a/file-data-map/Message/24acf589-b41d-480c-87de-20f0d3c69e84.ser b/file-data-map/Message/24acf589-b41d-480c-87de-20f0d3c69e84.ser new file mode 100644 index 0000000000000000000000000000000000000000..87222fb921070a5ca1fa2348d27dff3f81ba0f84 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKug0>+U6rKudYSmVz9r7o1u& zHMV7!w35dr9tMVrf^uFaP=IDOY;M;}exy?YF?OA~Ysdaj-7uAn;qF4wKHUWXyFrlc literal 0 HcmV?d00001 diff --git a/file-data-map/Message/2660166c-ca16-4370-b96f-30e6e0d13a90.ser b/file-data-map/Message/2660166c-ca16-4370-b96f-30e6e0d13a90.ser new file mode 100644 index 0000000000000000000000000000000000000000..905917341d75f3dd6fe5d4e12c89d178a31cb0e9 GIT binary patch literal 425 zcmY+AyGz4R6o+r)qn5TJ3I%ao>2yBXcQO9@bY(GQG-0bmxD6)u4A zpig4Is94d_!)(Cr^&H1vbubXbfglbPYUe$js#TUHBxO*-q(nfL8A}XA2E{G=@8>y} zk*`K&JkZxaZ4&R$Xq4$2PG?=#=|x));a?dgyD%iQV2R?2)%Ej!K+S%{We literal 0 HcmV?d00001 diff --git a/file-data-map/Message/2797fea5-d168-433d-9564-3f91ca2c9767.ser b/file-data-map/Message/2797fea5-d168-433d-9564-3f91ca2c9767.ser new file mode 100644 index 0000000000000000000000000000000000000000..442fdd91226f7aed22f357bbbd355b0cd51991a5 GIT binary patch literal 425 zcmY+Au}i~16o=1ft<_elj^g5?pj;NWB4X`eO6pQN6^A1^l9S{TbFW%aif9Y2qM_AQ zT*S#qio59M=pP_hYzHSdF=Du+4;E4#zqZnxj(& zm~vpShYM5)Vo(&l0SU!blp+8`GwmRv=mJn$-6A_gt^l)Sl?lkGXoOV2bUa1>KP{D% zTrf>&CgGe~ioT6%NK#Q;b2tPzK$8*6BHWOR5V#rryhjO8eKiP7MFC(ol@%_4@UTx} zzo z`8xAHzkl_#)XwD6B7_bf-JI3(2cwn8PN7~dZ^VKnyZ*^X!|(a6ZvDP{d5(k9RKGM7 w#YO7*oAvhe?D}02p{l!^lEQ+370&x=iCuK9iaVy-Q_Kfqg)^Z)<= literal 0 HcmV?d00001 diff --git a/file-data-map/Message/2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser b/file-data-map/Message/2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser new file mode 100644 index 0000000000000000000000000000000000000000..d67f01f8bee1e0b6f6ac62ef0adc82cb0ee1997a GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKkuNORO1v8i004BA A63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKH|Ibdc%xY8z#Q#+WNY?<8}8EMWCg;U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48#X8q63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKIJ73 zO^t2YC9UMKiHCuqqM)3Y2^6524Gy<0XBPgcfEe5NTl;K`$yzgG?oy`{8~qdu09$aC A$^ZZW literal 0 HcmV?d00001 diff --git a/file-data-map/Message/34eb2b90-0c48-4699-b57d-d234e744b035.ser b/file-data-map/Message/34eb2b90-0c48-4699-b57d-d234e744b035.ser new file mode 100644 index 0000000000000000000000000000000000000000..9e0a9293e516b2dffa3470af3fadc235a7d053cc GIT binary patch literal 425 zcmY+AKS;ws6o=3Fr!BT3y6L2A@#0Wjgi>pfro^dqbU2bDz0zD_?p5QUbg)n?h$2dh zLx(zcC_)zzTpXPo+?)lgqjWWCQ1G_n{rG<0d)+TIDI65nEE5acVH~i@gkToOIun|u zQwErFU~q_cs1U@UD0pKM3aKbY0EkvJy@;X=U^HtSqZcz=n##qyk0DQS|@Q zLP5!R(}-3ioYS(R@1bKPsVJmb96TJLxqwwB+>rC&xf!FpLkUoQ(+kW80bnMT6)u2q zzfWSns7S@ugRIY;~BW(M#ez(_2dn;^)!qcFX<&3X+ti literal 0 HcmV?d00001 diff --git a/file-data-map/Message/38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser b/file-data-map/Message/38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser new file mode 100644 index 0000000000000000000000000000000000000000..ea82144a85105f45f2dddbcc1f9c2601cabbfcc2 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKIJ73 zO^t2YC9UMKiHCuqqM)3Y2^652jZ3W5Y!B#EK#bip$%{dpA@rKX%HM~pYTfM$08U|) A$p8QV literal 0 HcmV?d00001 diff --git a/file-data-map/Message/391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser b/file-data-map/Message/391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser new file mode 100644 index 0000000000000000000000000000000000000000..0df52747923839f870913bdebb25e61865963196 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAAp{GGqvM&>(sYXXS`|I@n+VPI-sSzU`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA4o96m5g&HoYfEc^yd9~^fu`gzpGP?a-jQ&ds0FL67 ACIA2c literal 0 HcmV?d00001 diff --git a/file-data-map/Message/39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser b/file-data-map/Message/39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser new file mode 100644 index 0000000000000000000000000000000000000000..df3df8f3773e0d1f6f8dec1c99dffa2b8a50ba60 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKH|IbW@^Xl)~Ro&&Un+ZjaN=1pvo| Bn4$mx literal 0 HcmV?d00001 diff --git a/file-data-map/Message/3b0a9387-555f-4586-a28a-ddb899bf5f26.ser b/file-data-map/Message/3b0a9387-555f-4586-a28a-ddb899bf5f26.ser new file mode 100644 index 0000000000000000000000000000000000000000..42432c6538131d98ebbc6f28064c75f02ce7da1e GIT binary patch literal 425 zcmY+APfG$p7>B3rk6Bt$w>ktJ1PNw8fQK?NT3Ne@N0DK7&>?3Jr@lbfK0ylJIu-4@6g0Qt{qg*s_k9?mXlNONAgMih?&Gp^%EA1b}E|!;2`o02EUX$PtmNz$&uJ1SC~7OR7*dZAJe- z&F7UJZyMIhgmYR^^g~obl8Qo_$-%<`S_)Vd!b@@vJh##~Z&LzPPkDjmAOOsuvcd%r z?)ORT7Zt8rdXV+mQ;ubMt1kG0*cZgU!gG7_vt=}72}v0gsZb&y$4c7_LTQ@PJ2rZ+{=%KJ9JxvdT-FV!Cq-} zTel literal 0 HcmV?d00001 diff --git a/file-data-map/Message/3d247aa6-1422-494c-ba0a-073a940732c0.ser b/file-data-map/Message/3d247aa6-1422-494c-ba0a-073a940732c0.ser new file mode 100644 index 0000000000000000000000000000000000000000..bd69fc9f4617436d9e7bb51d09808f0a928f1556 GIT binary patch literal 439 zcmY+A&npB`9KgTEkJ)7x;Y1-xNxdmYn^+;E;j%e8yk=gzPdjhMyzjCkIZ$d3C<+M& zk#brWN#W!l@L$X-HzzVW$3Jg*sCV#^bnE|gZcZN$ zrg1Yzg2iClRqvRVd%w(Jk@F^bGe2S95CAh(&O3yD;O`xO4G ziWgifVncUL(RG8THim&D3?yN~!%_9ep}nOkpiDy|%<&yI1F)6if$f48E$^E%p> zeCg`%KWqUcQC(s-_bKwP5>0$<)jjRFW(rMjXfsTiqVq$dUa@D9ef(@ LUA=7U(GB+-St*#L literal 0 HcmV?d00001 diff --git a/file-data-map/Message/3e41528d-1998-4671-a47d-c0d8bf3efc60.ser b/file-data-map/Message/3e41528d-1998-4671-a47d-c0d8bf3efc60.ser new file mode 100644 index 0000000000000000000000000000000000000000..2a77fc858e944389ef7c297d714834b74ff52ac6 GIT binary patch literal 425 zcmY+Aze~eF6vvLIa5(!G!7tlnQjP)RH#0U z|Duv*--)w|-4ptLwCa!&BubDdg`1P^&zf7&HP9Adu*9fDix;Lj$^{s3y}w`R*VB#5 z`bN|Hc*uPn?$2CF1?{_7diwgdA9?QCx^1==bJ3FR>i%1$`d+QI_paNg$0RCEbxM^e wu~<-D*=voB&o>4ELVq)*se|&}jFx#lfH20MZQsA#WxrRmQ_Dx`+T6PT1A5e$G5`Po literal 0 HcmV?d00001 diff --git a/file-data-map/Message/442aeead-682a-48c8-8ede-3a674676a645.ser b/file-data-map/Message/442aeead-682a-48c8-8ede-3a674676a645.ser new file mode 100644 index 0000000000000000000000000000000000000000..328dd7ffdc73701428d26c72cbf73f90a5362b7b GIT binary patch literal 439 zcmY+AO)CXa7=T~n;}Tb*Y)Dv=Gy6;F3Kks$?Gpv-Y858B~PVdw6KIdG&L%sB1&~R)bU5^VSHkXn+f|y(yj>$L@ zCXnMYnPE~=i$QW~6iDfirij$Y+YzFf5}{3Bq-Cm>kQY>)OB~jrk(My;c$)ctIya|{ zN7E)FPlaFw%`CzSC_1DJM_{BwXir=PDl9dJQJeL{dyFD8vk}md0LX2oYC<9v@jiwB zs+vl!nXs|D&UfADsjYD!i33TT@N`)FbzrZn3MkXiQeaeKj$30KvQq*`1Yi3?{sLEBlHBjJH5f(R(M(M4X*aW%29Z^8lJ2N zm93z1PNIbLPePnca?IPGUwiE8pSo)S@ZF`f5`QmW9UbZ1bld!7$@W{unk-*Tj1PR= JCdJrxsfgJ9cv`mdoa%gNl@#p4o7mdSCUK2z18Ya99k4Nv4K{K z&{#kETEL+k?ja;G%_PX?#=~ yh~fhE{GG-_av^&cL#XEN$Ccoq>}WNS>a|vCA@=6wN_3Zww>C2Gx7(d;*Zlz>!j(S& literal 0 HcmV?d00001 diff --git a/file-data-map/Message/44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser b/file-data-map/Message/44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser new file mode 100644 index 0000000000000000000000000000000000000000..7bd01b1c80441073695850de3ee9da289ed0ccf0 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKdc%xY8z#Q#+WNY?<8}8EMWCg;U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48yvQ)2qb4zK#bkJA-#EtpkKSoqeHGQS2%w!008{3 Bm>U29 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/4a8587c6-be11-4621-89fd-c3625aa83332.ser b/file-data-map/Message/4a8587c6-be11-4621-89fd-c3625aa83332.ser new file mode 100644 index 0000000000000000000000000000000000000000..a3b9e763b034bacfe2c1a5360ef695efc512abd3 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKkTtrZJ79`YwPRoj@R8w6oHoVf-MC(R4+KS zXliWBE@>r?O*{+?6$RzIOrQYGY%piCSn=gR1;p4^QS&=zUB5W{#bt!szV=}+005GV Bm{0%! literal 0 HcmV?d00001 diff --git a/file-data-map/Message/553373cc-664c-4802-9e7d-a4a086f9e0b5.ser b/file-data-map/Message/553373cc-664c-4802-9e7d-a4a086f9e0b5.ser new file mode 100644 index 0000000000000000000000000000000000000000..d3aaf4aaab7a8dd16fe4545130d24feb3cdc47c1 GIT binary patch literal 425 zcmY+AKS;ws6o=3FrxsfgT?*X<2Nf=Z;GmO5uqkmW9UYG3Oir3h%)M#^6@*q?+zeJx z5fmpUp(5hw&_Qr;aCNtJEpFx-6uj+tKfd4h-fbK83m;7zu7ic=GY;5cLNJ$OlL^B$ zDFaM7FxbM&R0v{G6u%w?C3KV~0K~AJD59AH(1^Z9Hi%jQR#tT;U|vUqqyo0Igbd)e$4iOH}Xv``TZmC6x+^lZirv#|E5Cz8K05FHD8W%vg z>{Hk;Dp~Q&I4jwGf#*f54og8S1+i3kI_d4yotmm3rGQdpN(2;{m17_ZXvlH@et~y( zsLdxQ?73{GKDm9ByAcvPaIBuceI=T9=C$#hd0)DZmTZLwpS7?Z)?3ww*69(BO4Hp^ xDT<5K4_B&>+41~c3ZcN;Oe^xBY!8}K+1Y9kV=s2DFZaJc8l@TWva075?+3Kol-~dV literal 0 HcmV?d00001 diff --git a/file-data-map/Message/585a3414-5844-4d51-b1dd-8c52377e9cc9.ser b/file-data-map/Message/585a3414-5844-4d51-b1dd-8c52377e9cc9.ser new file mode 100644 index 0000000000000000000000000000000000000000..02f2841f1e703f91770bf8a52c3a1c0470eeb559 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKU09pr> Aw*UYD literal 0 HcmV?d00001 diff --git a/file-data-map/Message/59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser b/file-data-map/Message/59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser new file mode 100644 index 0000000000000000000000000000000000000000..60440ef99c48778bc0ad843fb9eb2ede1c691a7d GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKn A?*IS* literal 0 HcmV?d00001 diff --git a/file-data-map/Message/5a110b5f-9199-4b67-b218-162a81422fb3.ser b/file-data-map/Message/5a110b5f-9199-4b67-b218-162a81422fb3.ser new file mode 100644 index 0000000000000000000000000000000000000000..6fc00d050d742e9974913a0cad9d84dd820cab5b GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK?jz>|AAZdF+xc^Mv> z#UMl3X5^g3XIqn0)zx(JG5HxVv_=%6l&LsQbJbPy4GBxiCZxy0PpS{I?xf?6F! zg^H`Al%lwZgW$j5?rv3Zay4mC@V4W7dEV#yZaz@I@X@U9I#_r<sVfqaGAL^_rQ;m)BcUwe)$gWT)MHYoER!-FF%XoyPTaP%3vz yLs6Wg{>5hPVLX+-O(InBc4R3$D65{$;N-JciLlke6wpzmY8f literal 0 HcmV?d00001 diff --git a/file-data-map/Message/6736876a-4b0b-468f-ba1f-205033e3b4a9.ser b/file-data-map/Message/6736876a-4b0b-468f-ba1f-205033e3b4a9.ser new file mode 100644 index 0000000000000000000000000000000000000000..9d4e9b40f407cb94b73423c634b3190938a9780e GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKYtBpk!*q82u33IR zi$R96OOC{*9e3n}MEuyIJ73 zO^t2YC9UMKiHCuqqM)3Y2^6524K`L%x3^SOK#W~_$uG=-xw63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAAp{GGqvM&>(sYXXS`|I@n+T(J)ot$U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA4o96mhK3%U<0Wo&Y|2DI#_a`Rh{?)wp)YW4{0RW|5 Bn7sf1 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/71ec7a90-4674-4655-bf68-cd40c15f2be5.ser b/file-data-map/Message/71ec7a90-4674-4655-bf68-cd40c15f2be5.ser new file mode 100644 index 0000000000000000000000000000000000000000..1f3b88697e4b5f28c3d405ccd97116200f79fd70 GIT binary patch literal 425 zcmY+AF-yZh7>3Vit;JTP9UOFWEhIm{r4=crq&Sq0R*vLIPLfNS`>NHUNU=lyR!Cw zS}4dH-ZY{bm@#6?S_xH=prEj7Gw^VL;sMLVOqcTDx#^R@7L$wm!R;qqE0h<8;_)SH05M zq|_G`^Tcg#A3rUxZazd2syO>G!9OUiUFQT1I+XzXYV=ZXJIRmI=z$C3)5^iDaoXHSZ!>SZuXf%U^FGVCh}tbjVuW%O z2TH3X?7=^wlpI{GT$F>0d3U0`x3}lp=lgk{^LJ>MK4dJ{A=2}?K;m#IxhsgxrRCa; zBVhtLu8~)G}SCs yq9o7!aG`QLFg#uB1_->>l%@{KH_t}NWBoFSu_uZ9i{0&$bH6_`vOP94==}f=mzN&^ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser b/file-data-map/Message/7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser new file mode 100644 index 0000000000000000000000000000000000000000..59ab1c5cfd18446fa05cf1fcc5626229b1ad24cd GIT binary patch literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK_uQ$wiwV~n7?4CEXrT{JE1zQMmq+W1p(bU+M xUD8S(n|K%)DhkSZnLvS=*%-A%Tl8>81;ohJg^f!LzOO5;T6g%`(^?m~0su+MlZOBR literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7b110e33-4c09-4498-9d98-daf93448e734.ser b/file-data-map/Message/7b110e33-4c09-4498-9d98-daf93448e734.ser new file mode 100644 index 0000000000000000000000000000000000000000..d85db85a4aaed18b4f1617b26a5c7434f184176c GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKBR%qgGQXI%siHa1t&Z+@whB2d2b9N=AnxIntBn5_4~B1r>xAMLJrj zU6d{k3W6evI*OzJh^?cpCJhSScDz5H-}AoLT{Iv(G-o(A7OuxQV4DfS9F9#U49BDl zFy+8t7q3$xh(%HOA`*&fC{6%~QLz1pY6?IJZHttNQUX>~G$vp{Lqntl1;#sT*2;x8x2MRA|ecw&HrbtN2A-PD2fIPFZ3`7o%*v{Xt;yx$u z>gm*pa-mPWT}4*UMF1T1Q_Oo8rmt23zPUHBa*622xo$6z!b&CDcc&{`N x#d+#AHmgrlGi$dpLKSx>E(Hf=hi!fOL6$2a_Ga*M@@sfLxtC4fFK(>tyFU`bkg@;( literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser b/file-data-map/Message/7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser new file mode 100644 index 0000000000000000000000000000000000000000..b837a384fb7eec94c7f40bb5add2af1ca3d95601 GIT binary patch literal 425 zcmY+Au}i~16o=1Lt;JTfjxOTjpd_;hf}&{JbP5#|1drrMPm)W_z1j$EL21=Z1fx|1 zH$iafBq9zjj)G492ZHUaZYB*1-gdkn-|u_xrj2^IizYPN61n422BJkdr#2IH$~9Xj z6hy*+!nT+roMVHa=yeGwuAmeKz*@lyBC^f_4JsRW3rj_yrle2~(+cXtMJU*=tpA_p z^YVN!O=tzo7%^pi6IGF*ptxo;2ylSX5zEBPkW>iVj85Jq7>GU_1csvkP>V=1e4U=AuZ<|yzC>bLB_pXVGk z_m>xh#c#C|dm5U_p70Rb+k7A^<1fz_le=$?^m=YJShD3GeANB6-)PltTj$5spfuGf y4Mjzjxc*x0Ze(n!nMBBQN+}^cDBZc7N}gURUWDBnHOi&guh;V9VMTe*UOPXDgOug~ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7d7faa19-26c5-4c7a-a71d-0361db17753e.ser b/file-data-map/Message/7d7faa19-26c5-4c7a-a71d-0361db17753e.ser new file mode 100644 index 0000000000000000000000000000000000000000..d1d044a7bd1fdfa2369b15c6a3556faf059dabaf GIT binary patch literal 425 zcmY+Aze~eF7>3WZT8phnJ6IJL2N&V8xd;WNgDDY*(ox|^j`SqC#N1bng1?{vp^gS> zac~huba4`Ob@VR~oCVv#NxGRdD0tiPy*%&peYagSC|oqB*%lU#%Q#?*3BhcRbtW`h zrwlOVz+eZjP$7sxQTzrZlu}Wa01&Nag%L#;fX37fvPI-NFjH2UfCUu|lRDIFSJD4Z zt5u~GPSaYAa86A{-$eUJQc+5?IfOVsxtL`VZpak~-Hd+Tr39$H7zXlj0GLH(g$p1& z>XX!CK>SYG(O9gOKNJXQk+%?6BBO7Sh*VjJ=vpkhk%Aaqr+}V)jMdb$$TOr;@q= literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser b/file-data-map/Message/7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser new file mode 100644 index 0000000000000000000000000000000000000000..911154ec08e10b32203a96d8722a38728591ba7f GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAIh{>K%4p zTnsXltsyC)S#9Zci8h5^Ue-MxKY*TmyIJ73 zO^t2YC9UMKiHCuqqM)3Y2^6524fY(O=W5PWK#X1aXrrbISGz=Q|DyUdEwAkb0Db?J ALjV8( literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7e5151c7-6552-4394-9a11-28961ee4bd54.ser b/file-data-map/Message/7e5151c7-6552-4394-9a11-28961ee4bd54.ser new file mode 100644 index 0000000000000000000000000000000000000000..de69142265145616efa67081452fadcf72263111 GIT binary patch literal 425 zcmY+Ay-UMD7>CdJ(H2|rV^dIY62yy>i%@FoU`iZn?dWhMM|zT6V(zWRrF3Ya;AmTF z9XfRFu6dF5+f8N>`Hx1#dgvAJ6Z3-~JFy3m0u_wuOb`G7i{cLNJ?Soe9m> zDFaM7Fu25rR0v{F6ut=wMO2g^07NTVenim)pn3I_oD;bO%#>9oU{^&^Qi7uGD*FFv zp`h&h)0kEyoKsWL&rlgjDvD?}2OkG$F=Uy98*(0eH)EW4DFLeQ`GKV{0L-GY!UYf> z^hxX&6)QPA0NBz0#vh!}$U4ACwmW literal 0 HcmV?d00001 diff --git a/file-data-map/Message/7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser b/file-data-map/Message/7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser new file mode 100644 index 0000000000000000000000000000000000000000..f4a3a7aedcc4647828a12e92c99514611f0c9915 GIT binary patch literal 439 zcmY+A&npB`9KgQ@i|ope1EnNad2J0 zNQu_PX_F{_0T(&Qf#NXhEDkbbqP*Md`|0!jyjOgKYUx3@;n+mF9v4V#E+uyaF}XAx zlW`F2Jxv-phkxjMWjZ~4iU|i2#xwQouz6Xxuxn{;(!jdG>L($}CTZqvWtPv|yT;Cv0KPkyQljtWOMT02cTanMyyR-}{QCK} O+E_g3-?frMpYAtO1E9CdJQA-;U9TkLbqFe^?1DzC+rleEo;2?M;M|vf>#N68&2L($DItYRd zRQ(ew9h^j++?{lH>SQ~+niv$k?RbAYzvq4L2540HXu)tDEIglazz!3Fxg48J7_Lbf zV9J5P5iU|8h(%HIh9s2IkW2uGQFfw;Y6?J;T7}ezQUzu!8WXUgp>a}$vg@nn|7oeD zZb#F!Q6`*ITQv{R36eCFGF%Q34$xG>vI(~o9U?dDC+|}N)ZB~$(@6lBLlu<^AUy7q z*e@zw^~@w2vqu8Yi&mY81#v8hV};FxmfCc6lP1c-R@i?--?#(hi9M7a1gfpjfehC3rD5$PiZWQ vb?S$EjmMc>{yvLP;2p|Rd{B0JHNTjCTMH6wr?Ptd(tGXH_1+WXJD1)!oiLKV literal 0 HcmV?d00001 diff --git a/file-data-map/Message/83413a88-548b-4c98-94eb-cf5eb9a79bde.ser b/file-data-map/Message/83413a88-548b-4c98-94eb-cf5eb9a79bde.ser new file mode 100644 index 0000000000000000000000000000000000000000..44aaefee79e00af49ca6163f045f881d4ba22a5d GIT binary patch literal 439 zcmY+APbdUY7{EW{&)Qh|b5s%sq~4rdIFW-YWMJNbZW=|ZnzTSPi87f38FCAS4JxioB( zaU@J2#|1LRq@+m(;i*s{qC<=#QX^&gh-ONJMtz#jQ8j}+t?FFjfDW}ZgDKn9%>UCw zLL2s{Q6oi#U}?>qg+)+wh#0m&Ux&~fy3$l6)j0ZX$sgWj6qz~b11%wd++wOGBvKLV zQ~0kcnsLmK4ct{($MK)q5CoDSkOT?W+m)YN){3ftG79x+MkU61a)_fGg*waryJemA zyQj|F&U^RG^;cvjI{qR9Y0Xvf@wUfmYM45FZacjnIzVXi)>hlS^L)8<(e52@lnZ<1 zQm(we;uZ2<;fVMNv7dw>o5Y#BIk|k*+A(ro50G`{V@mM7Jl9w3I_rAPhD$cQhpEfb O?%UE}e}1B%Z#mx^u%J-@ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/89016ffa-1a86-4937-a88f-07eca1e591bf.ser b/file-data-map/Message/89016ffa-1a86-4937-a88f-07eca1e591bf.ser new file mode 100644 index 0000000000000000000000000000000000000000..60cf3d5c52dd4d25cc8869f50bb64e3ed9600b4a GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKCdJQH!mJii2(<78New+R2YXQ&JI1M~5Rh(v##8b8o*EL21EB9V}E4 zQ5V6ggDypMa?+*#5pK4wE)FIJ1#dgvAJ6Z3->VMl6)u|7Yzqs=WgM`@gkUzuIun|$ zQwErFU{Jc1WB&ATqq(nf58H)@=3JqBH->>AH zyw0Ylp-7?b~iVHjeL_qhnL8c=;>&>@C@@?YviOom#zJX||6JuvZ%W zDfLBhhPt)2%KgM-@-~7{$tgx9|DbH^{3EuXcq;|ii>K3qd^5AUr}L$=%fz+w4X^f< ANB{r; literal 0 HcmV?d00001 diff --git a/file-data-map/Message/97df8750-f622-4ae3-a42b-fe4450c00725.ser b/file-data-map/Message/97df8750-f622-4ae3-a42b-fe4450c00725.ser new file mode 100644 index 0000000000000000000000000000000000000000..6bc164fe01fef74d8b631e9886ccdb32ecf28efd GIT binary patch literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK(ZtH!-BDWxB<#X>R z#UMl3`uTq^IJ_mTIM(l{w|$Y9VF?4z>kTtrZD@EiyXVcUDL@N(!4`rXsTZ7DG&Qzm xm$Z_{CLRWcih^=pCQx8zHcp(twXr>?0%GJ6?SC!-2iR4o-)|52rsVaw003i+lPUlJ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/99cf48a4-bcac-4e51-a326-adf63741eed2.ser b/file-data-map/Message/99cf48a4-bcac-4e51-a326-adf63741eed2.ser new file mode 100644 index 0000000000000000000000000000000000000000..f1b9a971a99625667eaa375bfa5960d5c4fc2c6b GIT binary patch literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKHs3<7sWda3eW`q4xCMH9Z3W$-5)z*G9cYJqg=6R1Ld)D{`761T~-jk64 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/9a128996-c9b5-4382-a96f-71fb149c426f.ser b/file-data-map/Message/9a128996-c9b5-4382-a96f-71fb149c426f.ser new file mode 100644 index 0000000000000000000000000000000000000000..2bf66893ab2e3ef09ed70b501fb84c30281fc048 GIT binary patch literal 421 zcmY+AyGjE=6oyY$<24bZc4A{CD6@@SDx-xPR-0fIEQZ}-Gm@Rz?40O|BBHSn?7ZNu zvr;UAU}3NqAHfF@ynlPk=c&_SzMlD=X8zs}7W zQ{lDKDp4U=*|00H2AT=&mJ}H35c*cQVA#!R@;;-;?1>QQj{)Q^(+#1JiYQOx zzpBovXUA;hZVfyyd}>crkVFMZRN?lhDEfSvk8OZ)B%>RU~cOxY%9GuXa`Mo@Z*s;%pKj^;$oCsjt7C?7SWCg@Ng2U{sP6 vn7=63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAIh{>K%4p zTnsXltsyC)S#9Zci8h5^Ue-MxKS~(nUQe8$@Oo3no8>zcUay?;rhCqt63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKX$I^yxuV5)rN*QvwPmmngXHs3<7sWda3eW<$pkt!WztDj-I-MQO1#d{3VOt;I$~Cvg)eE6L!di;B>u#Hn;}a5$19JxMMx_eJAiL9|fpBqFqn zON&#%A}IKCao5p7{{gL?brO>X1#dgPm*;)Huh~I;+(jwPwj}Pjl!0VX&Z*5LopR0A z2?dETps+2i5YDkdQ1p5P6jzam0kBrEf{3DXKqKlp-o&y8)Ra}qVO~W8*n@)YD*FFv zKCdhX(}Y&Qj1g1OH&77?DvE11g8&C;G-8>U8FCH+H=~<(2?nAs27$3C0MsI~!Z=_S z_6hVCmGB%r%7*M--*JLfheAOq6qG`R+gj|iYL#RG30agh3FeTa#u5ddMT3_8_w${5 zK0Eh)`qd=$adG%1)8Qes|MDp2JI2c^4rPpPxFh96<~t{!zOUEeuLRLWDYY0voqO5c{` literal 0 HcmV?d00001 diff --git a/file-data-map/Message/9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser b/file-data-map/Message/9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser new file mode 100644 index 0000000000000000000000000000000000000000..dd034f5d1b0f7680b1e962d0893e4c99f5c4bb3a GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK-*4Nz~ue+Bh0xjhQTMBZhUT|vB z)Yz6?(n=nico-Ne3d(tzKmnTBV9m-mD`8Fr#MnMzS?j&ItO4`ZE=!;Hz;}HC0NV4D A;Q#;t literal 0 HcmV?d00001 diff --git a/file-data-map/Message/9f1ee58a-9cdf-4733-bd48-9abd95742999.ser b/file-data-map/Message/9f1ee58a-9cdf-4733-bd48-9abd95742999.ser new file mode 100644 index 0000000000000000000000000000000000000000..6ae6be73080b7a2e1f06d9ee4e973faf697bbc7c GIT binary patch literal 425 zcmY+AF-XHe6o$`et;I$}N5R3Zh?l|5f>06L)HszcLWd(c+AGN==3cd3M4=TGM+0pU z+?<>gM8!I}yXf4-PPUVSt4V``w;k{2`@i?D2Ph(3w5Zz_7LLm}V2cUCY>o{kblac| zFy+9YhPS8?q)1WtMkEx~kW2uGUb6g%Y6w8nTAAz;r2@=UG$tUap$SrflI^O-|7kw2 zuKUxNULu@RQ#E$bK9V#P)ol(w4$w@-I=X<9Y-So2a1M;nvX#fBK literal 0 HcmV?d00001 diff --git a/file-data-map/Message/a015add2-241c-477e-b926-5967ed673109.ser b/file-data-map/Message/a015add2-241c-477e-b926-5967ed673109.ser new file mode 100644 index 0000000000000000000000000000000000000000..11f4a24fe6922a87e7c0d0338e67b8a244a6d8d9 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK$4)3DVm9cRE9-lAWVu zG00H1X=fEq=rLeuH#i4#SB~B%y!zH=2SDKrcds^#K5L*18lUS%- zEM0Z6E~1VixQPG5R&WqklLiIvb~!K4`$WCZC5q_Pjy{g z_oh*!NI0h@)!c&`NE(CAb`xGipm8N?)ORT z7Zoi#W{~yS<5kD;R-N_*WnWPC6&^3fzS~wqkwD5ptVD^xJS(g+6gil(?7v^tc}U(i zSJJ0SSD$;n3T<8rA3AxIczW$*qP_IuN3)`@Io^_k*719zHEgv9^}9jmyylh0N2R`~ voTqMUr+z=bknP6+s?L5~@(;=mdwOaso2mxb6MXwRd%5}SCZTV*8xiLRNU4)@ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser b/file-data-map/Message/a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser new file mode 100644 index 0000000000000000000000000000000000000000..12f5273e3978ed58048f13a3038bf2f983ff989f GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKdBdhtn-*4Nz~ue+Bh0xjhQTMBZhUT|vB z)Yz6?(n=nico-Ne3d(tzKmnTB;3UW>TOm>bF?L&3m;C9|?{pV29lCt`i2IZR0LC_y Avj6}9 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/a4dee914-d10d-4190-83c1-22aaeefb3315.ser b/file-data-map/Message/a4dee914-d10d-4190-83c1-22aaeefb3315.ser new file mode 100644 index 0000000000000000000000000000000000000000..b282023bd21c3f88b260a9ec1a7058ac9be5dccf GIT binary patch literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKHs3<7sWda3eW`o0a75SwrDj-HSA5>cP?zge%l6x;jF7i4~C;$L-Tb1|# literal 0 HcmV?d00001 diff --git a/file-data-map/Message/a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser b/file-data-map/Message/a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser new file mode 100644 index 0000000000000000000000000000000000000000..0f21ff036787962050ad8aeb5d2a724af5006ec8 GIT binary patch literal 425 zcmY+AO-lk%6o!w}he;|?i@+9vErl7Vr7I=Sv8j!Sizv9vT=a%>XPSFVBM>5`en5f+ z5w!`TRY64cOA^{g3PB4AS~TNO(A{0m%kw_x-1K2gIFQgSQx>+vILamyf>~TPn9wbQ zGL$JthP(1A6@ru~_%9$qP=g3TBzoC&BdQ?~rnD`xLzF7AilQ-rNew1Q70Z^R8vmz- zg1YQZLwcETPAjUh4GoYq2#;}cw(YJO^#o;4Q1%p_PeukEv!zHN3VSZHsLY1wnMFt2EhFkQN71VwX~!M2_T0Pm)W_ebu-W2NkiCpil=D zK@dc+ib@qH!5`3HA=tW!uI3sPyzTg2p7;5_s}I!2Jv6C1w#;3RGLUV`Idzz9P_8=$ zp&%0m6gK1q!Z|hx3SWqu%ejy{$+{%AIHW@p&12SfHS_;; zW=0$Hr!gZ-gvAJ z-NZhX$IIEa+lYGdt}V$x+E^JJAlK6`m51b7SM+Xb3!%%~Snu{u%e8~^ZtrNbR^6=~ ztk(8QUbXC1_lcj7_(=$|Nt(G^b88o!Jrk#KfTB}KD8cvg)!{;KbN^Q{Tyi#PjV?bu Oj~`C+`~BBc!TAOh^_`jk literal 0 HcmV?d00001 diff --git a/file-data-map/Message/b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser b/file-data-map/Message/b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser new file mode 100644 index 0000000000000000000000000000000000000000..df779fe08101a3e10a40ff0035e5dbfede089624 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKmh-wIgaV<|aiBd#XP&6iRQG+lkV$OC|tKkQz%KFc|>IEUKtnAmM(V z#C}zgqGJTC?;a{Sj`!3tzo6_Fl>G|#CxgA3RZ%36(hx0BA~3_u6ho1QQOo|@O3uS_ z{J7G5sumY|&BUJiDtzfky-{wN;r#TMa*&))q+SrBAMM(EyWFkscTW$!z*s-fFDYlJ ud$hjWnVDU^jsldNt(fG0CMzc!v2*vV6ez0~@k_mPcXKuM{Py^*-8w&rH63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK-*4Nz~ue+Dj0WIYPTMBZhUT|vB z)Yz6?(n=nico-Ne3d(tzKmnTBIRAro!K91|h_TIwYAUv;UAEjbpTl6Xy+d080KGVr Aq5uE@ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser b/file-data-map/Message/b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser new file mode 100644 index 0000000000000000000000000000000000000000..8b2fe7c446a0f8de97f0a4d3ac9d0c20bbaf42a0 GIT binary patch literal 425 zcmY+AKS;ws6o;?zPc61mbPy37M28|I-Nm6Q#gsUexG5aTk)9-%n0u{pDF}+C?cyL* z7o~`c4#gsfI*MZ_cXwNz1Xq&=1#dgvkMH-rck_XUxQiAv+Y-6sQU;<$Ij1%gb;>nc zClo}&fWn@*PB_N~LE(!CD5{_Y2Ebau@*}d&0VS1fT*6Wjs3|Fw!=i#la1jc&E9?KK zsw%Jg)0kGkj1g1TcTgD#3W{nr10M%yJY<=e8B!j6H>00-2?nBP{J=yQ0BR9QW*jgJ z`ULumiWMC_%m(a1&vE=!#{xky5EKK2r_+J&hIJ?jNXVhMNic^zHI^yx92&Lkzn|wk zPPOYx>8f<0PQF}6vgbU24j(0-J7<|#Gd=%VFR3ezzht-7cyAr|s(0O5rCYl!`=yC~ zX&@@*iF>kn@Gw2Qb{j{?b9NI#a8SD6ROdEoUtWm4>TSKHX7p6M!|p4uO4j)SZCaGK literal 0 HcmV?d00001 diff --git a/file-data-map/Message/b9058c1d-68ea-40f0-86f9-46510c795a06.ser b/file-data-map/Message/b9058c1d-68ea-40f0-86f9-46510c795a06.ser new file mode 100644 index 0000000000000000000000000000000000000000..33ffcbb0397b4463ee2b1ea9e1fbda3ee1401e57 GIT binary patch literal 425 zcmY+Aze~eF7>3ViTZ^suV^9zgT*b>GE)M>nh$(T9QU{^KksQfMbBVdHnl9qds)M6} z+CM?+;viMTzoBjp;;5i4xJef=X;ARC<9m7D=ldER6ca9*(`*Y1$7LL_#e`rs$2t?5 zty2b=a$r!#n^Xv5P!zpB2_;mNCICb;tstW40?>%MOZJIe0#=k&CSXZLgQNte?JD~J zX+E!Hf@xAS3Fow^=zHi8Nh(TcHirNQXe?qC2{+^%1a3wz?@|I(Ukw7|Q2>}lWrYhM zJnWO$FDhAb^e7v$2Rz3KRviunaVUsGh5L*CubNerB_w50sz`}|95dD!h%6ei?7yGq zG`^b;udNfl-HeYu&1aTH2#sIW<#_j{@cia2Tuun}F<7$gpMF&Rj$dn6n(g{I4ocI# z(ohuVsOuLhcT=+)*C~WN=O8VG2W3Z#mC2c#mKR}*t2l9m`mFQ!03hZIGmM%fA?nkf;+^<7${Y881!)w#qa9foNY%eJeT|EGn5 zwjNBAMwtr1Dw??m`=IEMFl>PV4q+lOI1M0!f1t2iFsaHF(C~>}Py!T87Y}HuW;~$K&3`Q;qlwx#eKVzJK)E^56V+zj@Q|o|2$6^-~&( wl00+$?Pf1Mvw1ZN;5qe_5+0NvoMh(j8{kFQv(CrML#()S%eBL)qPFOK15{&^3;+NC literal 0 HcmV?d00001 diff --git a/file-data-map/Message/bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser b/file-data-map/Message/bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser new file mode 100644 index 0000000000000000000000000000000000000000..ca0c119a975c3e3e1a3765fb6ee3b77c882de8fe GIT binary patch literal 421 zcmY+AJxjw-6o!xSqZV5cJ9ZER2Wd$bH;1Z-G&P+{M~6#tNp5LwV(zI%DW!uh>f#qv z1;O2+I5=nre}T9coSd|s9NfgDLBX>f&cpM*_ulqlRCtil9a|Qz$2iJ16M{KhHki;I zgEEvUM}|9ckqSXf3egNn5Yr$@5Q%Qt0iqfLVM?ozEuz$rRTYg1T-0Ek)X;J~)%brc zm(|ta8rLntIjyS3CNx0OAf`JU10BM2ZDw0tpZE zB=)O{*IXlFL-&a9y1`Q?!-8^HP!20}E{4Ba_P!#4RDeX45`iUVt}qk@n6RC{&3A7; zJI7CNui3TTN}gN!c@av-TKu_u@S>cqH@>si>0%5a@zHL*x0}7Iqu%9N5SSbUh9%_^ v_0Bi;9@4Y3ki?RY=m|GjtCg@ABiLbps=*bd_;n@k91aoJ!( zw+zZqrW_e=$O}{mlA++g9tnaPL zKTW6AId>Y?vxIY+Q;k(9f}}xEw>Y{ugkhhRBRr#|&~?lF8&JO8d`uh(58A)C{QPwJ_5L=t*xHZ1r~!A$PIddWTK7SSh-t z(VtRJR8CQ+x>ULu9iOj901EbcRPqkWwoc63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKW@^Xl)~Ro&&Un+Z63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKH2dozhggYyIJ73 zO^t2YC9UMKiHCuqqM)3Y2^652jU^{^3{!n7AjZym8FS|H6{o(#>eu$lopgCo007K$ BmXrVh literal 0 HcmV?d00001 diff --git a/file-data-map/Message/c3319f28-fe32-4da6-b132-a9e9f760bd35.ser b/file-data-map/Message/c3319f28-fe32-4da6-b132-a9e9f760bd35.ser new file mode 100644 index 0000000000000000000000000000000000000000..62a492d2fb72c94ec87ed6865712ec12eebd60df GIT binary patch literal 439 zcmY+A&npB`9KgTEk0rYjM(D^Yv#54wDV@n`!4IERaUeP6h(=Y zXv+ZyAzb_cPR=eIH0$KxCNn0=yS=`jKHtxKr|(cHUFa}ui%7@i0*S??(W>rhQIn6h2X{6C$T z&<6c!jgg{4u(W2*!XhX-L=0P?uR~}EU1=(kY6AVXr$TD;;`sjyc% z$(8o=USZWM91%Yu_LC4~lLT|Orv`xpX#46OKX$$WVey_q literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser b/file-data-map/Message/d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser new file mode 100644 index 0000000000000000000000000000000000000000..06ee758ee8e86e8dce3082993a7bd8360fb990fb GIT binary patch literal 425 zcmY+Au}i~16o=1PZHtYHx(N>ACR}h697J(w+UQcc+2Kg8>6PRXbFZ~7g3w|Y(Sn8A zsf&Z)BqBvz#L-Fr1W_DpXAu{Z1_f_B-jDD1y?5D1Bf>+Ax?^MEdW-|MnGnq3*kD3; z49Wmg4h;72CKZC16oqd{LQxIL1c2xT+mEP*05qu;Ntq}mV3wjW0V^7ckrEUfPc{Be zvsrb+pT_k9;hb8kv4i%Jq@k$paPV<}rb3oQxT$2ocQXfhj}oB9nje@B1Hf#ms9XTy zL7&8aQSp*%gxP={skpAc>UbcC13?@p+?@@7w(OcBAt{9t79|2Q%v@(6QfSO}{(cp= zkzDphZjN3ebDiyr_w=g>prgkV-<^l+yvS{RrB}VwlD}lHS^uat`^{Fb+U>PZv0o|= zN&``xpVo?N?=zKU literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser b/file-data-map/Message/d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser new file mode 100644 index 0000000000000000000000000000000000000000..e27b0f00513d7c5a9819beacc258fc5f86a40856 GIT binary patch literal 439 zcmY+APbdUY7{EW{|DTm87p2V=Z!Sub1G@*KaoU7~!)xZX`?T|B%=?ygkpo$6iu{R4 z4x&XVNm@8@5HH<8pz-;!<*35R*&8HW^34 z1ah1u!%Rw=WDuSb1uAujP(*5^EFaNKiO`@=(rKz@kf&9hOYGI5ie@lnyPElbIx?cg z{b{w4qC&8=W=_EzC^}Rcwm@Hp&=|VXR3y~|`fbS{-enY-+3y2QA%NUsswN~-5$sd= zuc|uZm?0au%d(E+KeavxBtakv67F_NzqYMKRRLuP>e7r#Oz`9YM>zzwmi>3jI+w9n z=2UNP@3^|}JHLsY$Us`Lcl5llJU0IJKJ!#4EX5BHTD`T^sCSVo9$!bj!bUN_S3I6C z?k{@zoR>c&enR9YA;=~P=59_b+_ba}Uep0(otcOdd@rBx`s`dEeaVJP)_NX3Uh`Ys NkGIj4-I{?_=Nl7$pqBsu literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser b/file-data-map/Message/d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser new file mode 100644 index 0000000000000000000000000000000000000000..eb7c1d16de5f446c8ad85a764e1ac56c3e4f166d GIT binary patch literal 425 zcmY+Aze~eF7>3VOt;I$~Cvj2`MCCHL>C#q*ro^dqaBw)1BfXMbV(zQPMG#u(1%TO9QMmxZ z!#;`qq7r4-h_WHO-*??$)savThk`g%xNXHgns!x@kd#A7ixL5OW@Z?O92&Nrzn|~k zi>2kS)6X_NnUqI6*`5fYgBORf^5deOYTeAIUaIOwuw=JUd#^Tnjb^uU**&V`pj7@T z4MlODdX3G>_0&xEJc*F+?#NPjP_}>fH1}4o`4P6ANq3GPrVpOaUQ6_9b=Lg`AuyK1 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d50f0417-7b32-45df-bafb-6de9b49930c3.ser b/file-data-map/Message/d50f0417-7b32-45df-bafb-6de9b49930c3.ser new file mode 100644 index 0000000000000000000000000000000000000000..7074f74f4ba932d0365b16f103f85ce416fad5a8 GIT binary patch literal 425 zcmY+AF-XHe6o$`Ot);D&ia3Z0;-*|g+?*^5ro^dq6giS3JxMMx_o@-0Ahu9<1Fa5D zf`gMNNa^P4>d;9iL2SXz!NsIO!P}1a^Znm@H$5~YT(qFs78Z`nIADtj!EBCoCNx{8 z3^3)u;1F+7A&5ay^admpS5cY(5Uped5k(h(GU_hbCvq8>DXUDts)|NP8A`UR=>Mn1 zqOu-L6IzLIPEAGMLlq>cD6ZKY0vw=h#4-staYhJrX0#GyjFIr!DEYO;i+JW83A2q-Wk$3Wy!(z5@4o>M=` z?#xu4-sVN_vz^IbiV!+{-Fg`6u#R@2tOQGT{rX4E@A-{x^`U!yhJ(^{zcduZ x1?u|S)z;M9=4}cg&pAj-;X&E))k1Rd^xBKCt#9l7uDSI1JQkZgTHbhZegK4@lm`F+ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser b/file-data-map/Message/d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser new file mode 100644 index 0000000000000000000000000000000000000000..6676b1e495ed8474f5114d474064145a45658ccd GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKIJ73 zO^t2YC9UMKiHCuqqM)3Y2^652jZsT9CjKj_fEc^5>+<{udj(hASk=C;Bh>e10RZ55 BmfHXT literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d91a2ea8-756e-4720-9374-5810d6e66988.ser b/file-data-map/Message/d91a2ea8-756e-4720-9374-5810d6e66988.ser new file mode 100644 index 0000000000000000000000000000000000000000..edd9bf5a9dd1bb71b257f119a2c0a919dd1c2d59 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK2^^ z7-T40)9Sse=WN~~BBpZQy7G_5NuVd+Ozn8xI`!?;8E;y4yqPtn4rnPa*iw)~^@3B2 zrpC7Hl2-EA#KXW)QBcmy1Paj1#zpV61bu8OAjVEEi4eHfx0H+p{ A^8f$< literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser b/file-data-map/Message/d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser new file mode 100644 index 0000000000000000000000000000000000000000..429ed98cd5728145ddaa77d31c8e78d27a5aecba GIT binary patch literal 421 zcmY+Au}i~16o;QtTT5FJbr7rw-9)$yqJvI~LsL@_N(TqQBRSHO<`Q$SH7=skB7#m< zsCIVKQgjpl3>PPNt+SJ0(xBkm9`ED({qF8QVOV-FZ#XuQuEzxun@h3VW~w7x>X@!l=X|x7IkyJS1)BZ}Z*8&RKSM z@g%pDepxP9g`y0lv3Bxeq4So{lxka@*?O*tkoxGh-n&P=_IdB783d;LfniBfWZundq3k(<(c~f46%-< literal 0 HcmV?d00001 diff --git a/file-data-map/Message/d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser b/file-data-map/Message/d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser new file mode 100644 index 0000000000000000000000000000000000000000..0a495e7ff069e7f3f22a58a4292f5e9c19d7d138 GIT binary patch literal 421 zcmY+Aze~eF6vtoVkG8Z`(WT&~h=XvMoLp>CXi5a7bWw_)$B5|0TSPi87f38FCAS4JxioB( zaU@J2#{;s$q@+a#!GshD>yV&`)F@dVqL~t5Oy8ka=@7;PSDA{UnnSN!vCq4VA~RDSFcARAEv9NhA{Bm~ z!hcoKiem<>?;fl=j`!3Nzaa4o62HRZ#lUyVI#m@=vJfvbDlx~4X^t`rG0Xnjs!r34 zY;8|}%_l~W-;%4DnDnK?*UyE<{YxmBK3u!0KP|@*;@wW`qf_f$o%Jryy}(32&@V}H u%xxA<9ww(Uw{d`~v!77>&*ZhcI*~K2YM`uj?fC|7Y`(tFrrPWJqVoejV~^SZ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/dc116c66-b46d-4826-b6b0-8a06a122254b.ser b/file-data-map/Message/dc116c66-b46d-4826-b6b0-8a06a122254b.ser new file mode 100644 index 0000000000000000000000000000000000000000..ba4f5e1aa8ec25ce8d4425ab66cf4a2f966672c6 GIT binary patch literal 421 zcmY+AJxjw-6o!vcTZ^suu@t%$Du|NocF`i()Hs!n4wvNGTuE+X?x|J~QP4$nQ>sg2~uO)2S!2wnN1ay3nVwyJx! zuV!Nzb28Pgjjdniu0$Y>94Y57U(u$Se7=85zRorf;vebsGPbY|{t$XdL!^P}z$H*t~z literal 0 HcmV?d00001 diff --git a/file-data-map/Message/dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser b/file-data-map/Message/dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser new file mode 100644 index 0000000000000000000000000000000000000000..6a72362de45149bf2546803b871a3948fcdc1007 GIT binary patch literal 425 zcmY+A&npE{6vvP8^TkLk)MLd)sXGfRS$Qdjv6}Q2SlniA^R8y@jJfAAQc8%W#hZGR z#8OsP!e7G6Kj1w-vXF%`W1`&M?R@)uKj&OFpjC!2YWW_KLC6IXk4wpYL2NE9-)0;M z6UcFc%rhye!ytQ23bY%bQbcN%yd1}OPnyEgO;)6hr0cLy0D;6 zCDWW$qCzlNw^v~c6a(5VUtoem=*?Iz6^>?N;^zG1Lq?I=lS!a23n2HHrVEKwq|NWw1e`hHF zu)g_t(sWjRe<<|J6xw!s(fv7HoVXw6#k>h~i^-Dp_~2eXAVRv9~+AJ?CQZ>H^)&j0`b literal 0 HcmV?d00001 diff --git a/file-data-map/Message/df914aca-d25c-46c3-a002-da79f51c3463.ser b/file-data-map/Message/df914aca-d25c-46c3-a002-da79f51c3463.ser new file mode 100644 index 0000000000000000000000000000000000000000..b005862e8a2c857d1f73229f8c94408cdab190f6 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK2^^ z7-T40)9Sse=WN~~BBpZQy7G_5NuVcRZfmA#w7XvM6XkqV%!cF007Zq BmKy*7 literal 0 HcmV?d00001 diff --git a/file-data-map/Message/e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser b/file-data-map/Message/e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser new file mode 100644 index 0000000000000000000000000000000000000000..a6893e8cf365f705d9f10f48260c5a5834db015b GIT binary patch literal 421 zcmY+AJxIeq6vtoVM=foo=p=5gVlo#UY7sRx;!rv|oXOFiG?$or)woCnyNQ!R)z!h` z2SpJ?Y1O2~?e#sp4kFhELJupHI+f6e98 z8Sfg=3xso8RE;&*0!f3gZgKQ<2t$FZNO)e!qSr0o1rnc2$pb+gF73c! z90?Q1ahXgoDXGgKojMJgO~_J2Y8U+kF&v4|Vb0Spu_tbzK8(95NoG5-slLIm&Tp^Mk)F4!0*y z270FkFTeI-BR4YIEtRxsuh##dugbf}tNJr{Azwkryqq6ApO;^cH(!r-lECawpeji$ v7VXZi-Sp%N7a4#!T*_+dGkN*Ck8G{J$EotTc0czqv#&i>t%==Ap&EVz_0f}+ literal 0 HcmV?d00001 diff --git a/file-data-map/Message/e553c781-5745-45f1-95b0-c2f5bff13894.ser b/file-data-map/Message/e553c781-5745-45f1-95b0-c2f5bff13894.ser new file mode 100644 index 0000000000000000000000000000000000000000..d3aea49d61dce6737809ad19dfcab93617193156 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK3VSt;JTvA2`@WSMh?5Do91dl;~3GCUPW4dXijX?yJT{99j|Q2CCw( z&A~-+sN&>*(7&RCEmRQ1Ns|TzZ#%x1=Y78Ku7!Gpi>5T&!oqPG2W&ARn9Z@ygl6lM z0j3-n?Bg{m1TiRzUYCU8DoPOmq7|$lqUZw9pt?5s+iX5(AM%{g(ar^PHMj z1NkX!t4HK!u9>Ne5Ze1Vu~mQF`M9{hj8(3t*IBS+(?5PI`z^oPEY+H46&#eNI;Ei~ x&QaIjEIp4;u0A9Y@|?Yt6dsfvE-s92%-(tt_WbMQy*<+SZpdTlnfA)H^8-K5mWBWT literal 0 HcmV?d00001 diff --git a/file-data-map/Message/e97e3b65-0832-4d14-9932-1723cd885a3e.ser b/file-data-map/Message/e97e3b65-0832-4d14-9932-1723cd885a3e.ser new file mode 100644 index 0000000000000000000000000000000000000000..a46557e778d251a4f9ed8e43de887970dffffd73 GIT binary patch literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKkTtrZJ79`YwPRoj@R8w6oHoVf-MC(R4+KS zXliWBE@>r?O*{+?6$RzIOrQYGY%pD{zVNY21;p5yM&in6JEH7f)>)@=82O46004zT Blz;#L literal 0 HcmV?d00001 diff --git a/file-data-map/Message/eb7fd738-ced3-4f54-a76e-70319b5b368b.ser b/file-data-map/Message/eb7fd738-ced3-4f54-a76e-70319b5b368b.ser new file mode 100644 index 0000000000000000000000000000000000000000..c4be1b095a662885c5a3b86bc67bce5b42bfc574 GIT binary patch literal 425 zcmY+Aze~eF7>3VOt;I$~CvkJMk|2VJE>#?w5^<;!LfNKcYW%ze?gRD>1;M-8;P z2%;{X97O!Jxa;81!9Stxtdp1+6uj;DUY_^)zD5W2a2I7X+mg8BQU;PmIj1(0bjmeb zCln;YfWoe{OgP5|LGkMnP*O!A2Eba$3L}cn0S&2}cpJ+eP*YYZhj|tCVGl~StLXoy z#iFtlPE%S5Ge%5B-$G?1s3@t~3_={B;h1G&X2=By-He~SOE3_9Aq?oRL1^FHTXzCc8}&}Y~dk&ep+5{pa8Z9z;f4clZK z2@}Y1nM^S$X_`TJsuZZxAxaUck+FP4GbKW+K2H~^nnRvdbuMvGhkBaBjO}XX|LM$( zmhh(yMurN(vYNR7E1>95XV?OL9YQR0WvNK3N%Y&&KfKE*GIPWS+Cl)i#Z*m5q$1d- z@LyF!&M`waaM$D=$A4;b5J-YR5+vLoRDbMS1yuoM0-CanN=)+fC`UN~jh6j)%R8HM z!?SPkWA>#yT-_c{f672wyK|zZyjXkWwYo)pyh&Umba~rb-Ck*63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK(ZtH!-BDWxB<#X>R z#UMl3`uTq^IJ_mTIM(l{w|$Y9A<&brH_UjoVd9&vt*^T~UUx511X{`qwiM)0z2MZM zsj)4)q?J52@h~t{6qNHafdVwMapDB7MJ7ioAja;y{p;P#B?&q|LJYU1FZNzi000dW BmjeI* literal 0 HcmV?d00001 diff --git a/file-data-map/Message/faf8359b-976e-4aad-bbb0-83a17838f0d1.ser b/file-data-map/Message/faf8359b-976e-4aad-bbb0-83a17838f0d1.ser new file mode 100644 index 0000000000000000000000000000000000000000..563408be49a13fe26f5c81b290a9c4a0417550e6 GIT binary patch literal 425 zcmY+Ay-UMD7>CdJQA=A99R&xSig1|(Q4lOuni6p+9UYG3NKcYW%)Pa75vnct2eeof z2hl-LQJnmm+#R}hbG8L1zb2Cg1#dgvAJ6Z3--{0F7cQF8Yzqs=WgM`@gkUzuIun|$ zQwErFV6cgosSw1VD11EmVK!j*d5+_+Iur=vKoAECkNdqJ4XY|kNXnwPNr`|QGg1sh7R4<4@8>z? zO6%w==G0o-XZdC_{VoFNz?HR3W({-Ui)9R%InM7V&Xil7uRCF)SRS@1}X^rX4O+*gf@2)5uNh*+pa zoWw~GbkX9_f56?3XIqZV6{ij!DD+zOY)%|%NEQ{z-R7CDk5JxMMx_f_K(D7MhW%|NY# zlbbGrBGSP>z|p0fE-r1+%}q=i6uj;DUY_^)zUv{H6fVkXwuOb`G7i{cLNJ?Soe9m> zDFaM7FgV7$R0v{F6u&VEB~+9q07R==VMNgdpgDD)91^((%#>9oU|mJiqy|;nRrLSU za#<;a)1+1acC2NizXCwB6=Q!c2vymW<1aYL$Jsdy3C~M)8gP_%K2E(8|Xgmx$XMR|k9+gI- xxJ2Ec(s*24*}hF7tU**y_rv)#@HaagG_xbwA_giJF|Fn~JegL7+m5u-a literal 0 HcmV?d00001 diff --git a/file-data-map/Message/ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser b/file-data-map/Message/ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser new file mode 100644 index 0000000000000000000000000000000000000000..815bedf8bedb424e2221f745b5104dbcf24a7d9a GIT binary patch literal 439 zcmY+AJxjwt7=T}+^#iT=HHd7ad1#LlA}FoE;0AE)P<8XYb(C0J+6fO-Q67 z*r)JcRa4e6LpE^NHCoOhB_`|K0M= z#_mP?Y~(aodb>|djl?fyAg$jn4R^<~pUodiwQ}@2Gmp^c?eFz_cRS^)hkozopjmBHmlsA~Vh1-}`EbeE;$*dM PXm#+bXZ`Won*rw=Rn479 literal 0 HcmV?d00001 diff --git a/file-data-map/User/01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser b/file-data-map/User/01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser new file mode 100644 index 0000000000000000000000000000000000000000..2694656325afb72c42d3cb14343a998939683899 GIT binary patch literal 441 zcmZ9Iu}i~16vkgtTP$s*D7d%@f*@S5x^=Nd!In&xE`q|5ob@EROLMPnT#ADZPEMi@ zohs-c2%?KRbaeC|>FnyIp$@+7eIFm+@4crnq*Vy3j`WENLN1W_Tq!OEak+A&%QzAy zkmD(7Di%UAh6&ky$VlOF!EDGnA*0CL3L-4nC$vi~EEp3|IMJOgt2f1f8o3(AN=RK;h;vny`3bvsSh7Gd;RjMaLH{MNM9fb0Td#pAQ zQd;N)Zo)E6bTqf1KAR+>z|i*=Vnz}(k_HQ}56<70mUmzB08!8@nDLGLtXeFu$x(!m zQ%sh&97*((barl%jX6oo`FWT6x%DqB6U@3MW*WJ{TUCy#4mn@`ZBa1j9X|Aj?UC{N rd}WSzzElj9p7ve7-LDL8T-}#Brt77R&ETK^xVJd`_}2bRL-YIsT6BzQ literal 0 HcmV?d00001 diff --git a/file-data-map/User/041ea05c-a9e7-4be4-9148-387205b68de2.ser b/file-data-map/User/041ea05c-a9e7-4be4-9148-387205b68de2.ser new file mode 100644 index 0000000000000000000000000000000000000000..733c575a400c7fe91e27524cfb014fa7f226949f GIT binary patch literal 368 zcmX|-y-Nc@5XC2#L?cN=v=IdhE2};HC9knx)@0;%Z{3|FXCnw&3Z@XW zvlVQ#un_+m5v;6j-OYj1?R)!pznSMBC|d(-Q7W0$1{E=h)?%tyj5bPRfy9I&q;uA_ z!azQS0H)h86B)rt#Ct@r&_3lu9ui6sHkBo=Xr~QjAvq=l^SPUF)eAf1YI@ELFeaGG zodIDIcDv03r&lz$c9fd<3@#vWHQJ;nn26>?C^})F11tiR_RFT7wII#bZJ#;+}HE73~k8CM3t4V6${{uEz0*e9hRK5oQD%r86bW z<0R=Fd41Jz=Vsbwmv94-uQ67iV=j6Nq3VUH$;#gFqv8`&kEXa3i$r1kM$Lf30uCDq z`*3#mzO{Y&)&MBXtQmzZ@OIv2-^as(pg!RfevoSB&)~D`i)=t*0qNtZ`tvC7;|QWY uG;+Zmjd0vWa($>v{r@V=yz?^r{Y>UHY(1xG_k>`1!gt$y9b*WVLdhRFcXo&X literal 0 HcmV?d00001 diff --git a/file-data-map/User/07e8700c-0540-4a49-9a43-7327d12a71f3.ser b/file-data-map/User/07e8700c-0540-4a49-9a43-7327d12a71f3.ser new file mode 100644 index 0000000000000000000000000000000000000000..0779e8ab3a7abb8e1f775d183aa1b43fa86c37e4 GIT binary patch literal 368 zcmX|-J4*vW6oqd##zc~cXlZAoSj^(1vx$$w4e3Hki(z+6uIxNAbE9h`2-+(ssK3F= zQt}5Z{TDV?7Pii0!Q0I_b2#6P#Rpp$O@c4ViE%5sOuJQ0OEeM(;KH{BJGk*r3U7TeD5(`Mv=j!j1yp1D> wy3oo6chtw>0g~%NQ|kX$VO|d1`se2Or~YMHwN5u7m>==2?VVj?2HHYhw(jP@>Gr*Syx+|050q>QJCT;mniLf=iPoZ4EJhpYSRgT>2U$b8P@{81x`LTci*Ou89`;h2fPt!=FZ@FlUUA9%N%lf(Jl`#Oe_v#=U#Nu9AmA(g^8p%qPpi*>>UQm#GQGp^B`{` z0;C1ilrx7N(c2g3T2PVt|CO0%QeXHeZ#`A-z7`wbN4E&meYUo~v1ts#R4DlaROxlg literal 0 HcmV?d00001 diff --git a/file-data-map/User/0d0f7fda-1850-480b-9564-08606223f035.ser b/file-data-map/User/0d0f7fda-1850-480b-9564-08606223f035.ser new file mode 100644 index 0000000000000000000000000000000000000000..c02472efc381b30a3d8bdbd46e1082ce3ad76f88 GIT binary patch literal 368 zcmX|-y-EW?6oqd#{zQ^!&_=M+#zJQOt!z{*l8{0ODFw%!F}bqyxog!TZfvMLhsRNCeSBFNF*jTA>FW^mkx?4 zMKIfexx`6MQXCS&QssGj4n9EWwK z8=pRWtgJTQY53+`1dCyJOpfeaoH;R@MlAFZ1bqjw z5Ny;^@C|$dTT9W>*(`Xv`TzO(zjN-tpynN{CPr~@9ctnVy+@;Yias%^MB-8t(ujAx zbWl!(!BiXSiIak4x<>?y?Nf0sB0?pjSbGwhw%bsXN?=B?P`a7Wy{JQ>rWZ_xDZzZ{ z3<$HR+l>!`K5d2fL*vpjxBwPvtTQK=$#^VOgD|jZ*<1Xmgv21AX`$pek=wA*Oo77- z9Nv-c=J@J)Y5DN636R_23@f(4%bnqh`CQ8h8hz0hyNTi93?Vx^&K5|#KzhBa{@kkT zhyiOsGn2wo2YdTSz6A|s{$II$daM7kkC&sl_e%8e9ghem`(k}#bIV$SiK65WFrs%K literal 0 HcmV?d00001 diff --git a/file-data-map/User/0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser b/file-data-map/User/0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser new file mode 100644 index 0000000000000000000000000000000000000000..89fac4186b7f71814fe78e111e5c3dad8419cf2a GIT binary patch literal 368 zcmX|-KT88a5XC1K;~$c!XrpLlW#b-dz(Noe3loBcA*ID~wD=iNCSki>-*fu7=GOL86Q9Bb1g=J#^cWLS9|}b$^mLr}`X2?C=s7gSr5GkM?KY}< z9OiLYOPHIZtEYvf{f7!bru)^vZ-JM!@0E?gAR{Pud6#cTDRXCV*~wwnBQcNkd{_Lr zmDgbaK?5p@;Fen0*+sGqD9iN!mFdUB#re;|+xyhV+}7{Q!7IUNm#?m^*R&=W@g;wL Ct9R)D literal 0 HcmV?d00001 diff --git a/file-data-map/User/12b8dabc-4330-41c4-8e52-184b23168907.ser b/file-data-map/User/12b8dabc-4330-41c4-8e52-184b23168907.ser new file mode 100644 index 0000000000000000000000000000000000000000..8fad6f49e62a42f1b92cad6d07fccd7a4034b028 GIT binary patch literal 368 zcmX|-y-Nc@5XC1KW0XXZ2qM^NlWNbe&L&X{6H|yGjbO3dt;xvkhr1JVHiDpqjh&#S zU}veSDAi)|+1h(*wS-xwUN!!BkfA2lXR$ AF8}}l literal 0 HcmV?d00001 diff --git a/file-data-map/User/153670d4-5982-4ee2-9629-bd0703823aa1.ser b/file-data-map/User/153670d4-5982-4ee2-9629-bd0703823aa1.ser new file mode 100644 index 0000000000000000000000000000000000000000..159dcd641f6b18fca62c89ec89ecaec51e4ae215 GIT binary patch literal 368 zcmX|-zb^zq6vyA~IY;hJgs5~X3bQ#xL4zpV<)XQ4p-@bA$K8{iA9mik)ks|U0~CZ( zuTl#Cg;J$gE19`Xyl%eV`R4n1@A(@lHiP9@OJ+@mikL)eQ7e|9jddcBm{5dt!6GX% zD5exZwFA>}COC;?mk8!Nr~I6Ugi?epWr-`=?m$IIjw!)h;ig>m!Y;X*o-+eX2xbds zK$wP6)Y^CYl;PG6b(WmLB?PXw

~^mJ literal 0 HcmV?d00001 diff --git a/file-data-map/User/1a9613bd-30ac-42cd-864c-dbee8ce23065.ser b/file-data-map/User/1a9613bd-30ac-42cd-864c-dbee8ce23065.ser new file mode 100644 index 0000000000000000000000000000000000000000..61a627200947e51799061e1bd18955b7dd317673 GIT binary patch literal 368 zcmX|-D^CMK6oqfMltjCKMr^vw;;k zlv4>{E`o(P7o0@0PXw*#grD({P>QgtEOA9U5!8g_m=P?OZpPIx?31e*Iy1n8V5xLQ zgjqNkbPt?9Z@9H%ohPSo0fDPAxjx2Bbf-eq2_ut~z5YkVB}NWSaVe&W!nlo^9*21x z)))ER(bdc9+Tn8ppfKZR;J3iby{E=*`dbjxQ=am@STlD9mtCA@JreUsuaDKA2YDR^ y5cHst32v#6!w!<|L0#(qS7C0VkMG;hwph7uy|pKucY@iJZ)|RD8$&STOa1^%e|L!h literal 0 HcmV?d00001 diff --git a/file-data-map/User/1bf79829-7ca3-42a6-9c8d-493b0925683a.ser b/file-data-map/User/1bf79829-7ca3-42a6-9c8d-493b0925683a.ser new file mode 100644 index 0000000000000000000000000000000000000000..901ed33336fc1fd6d54af979c0f1d228f140e145 GIT binary patch literal 368 zcmX|-J4*vW6oqd#Mh!_sv`i-mrkTY@Wf~0@Zb%ol6dZQP?8wf;nH#f$2!fWDLIgX( z%0eu~AK*{1u}>?1L?XDgTuG90o2Zm=Bupa5D-v5~ zpqxqoO9QAUhEZhcAtI~~&gmr$kqZ_^(jt}E9YBo<%5#LZ(#@$Hg+p{TBWDIYMOZDJ zG4ec&lJpwN?6;J4tn_}zIw{V5O{8O`WHqKG?#%dX6`9*KCQuczv4D(=Go xf<82JMlBBcsK?Rvp&``&tI*F6QMbOC?YC#s&h<<06=5->+dI2^S|cp@l0S6^cBlXV literal 0 HcmV?d00001 diff --git a/file-data-map/User/2124dabf-245b-448d-ac8c-f855b284a397.ser b/file-data-map/User/2124dabf-245b-448d-ac8c-f855b284a397.ser new file mode 100644 index 0000000000000000000000000000000000000000..4c3fd292cb88c0980e2e76ac6cb9da6a64920d62 GIT binary patch literal 368 zcmX|-D^CMK6oqf6ltBvMRDA2d41k6=PtBO&)^D(uQ67ih>W+VLfH#LlNP<0H_5Uk35CRcW5$C;aCZ33c#FCb`T zWoKn6c?1ie!cMReTW7N1?dF_0obTS3FDO|9n^7v6)dm$YiPmDOSd2DGV}ZnkBBV>! zwZcF?g#hN-un-x+NyLXlu-rc9Lmm=J5jK@2u4umvB_TN`1ohlaxax%+ay30?1{f36 za%Vu8gxzlQ$m#Q%TRTckd;wz!T#YvA8787R6^c$6=s557KMF1}aA=B4F->IJZB+F* z%;T_*F!v`nZ!7D^uN8nykE(&+0o=l&kfu7p43`T1haj|<1pWsC z36fy=4=`vH5{+fAmoRSM+n4v7dHjKjv#=3s$(*sMh)Hw~wPFdnSSJFB2}MX_)^ox_ zF{J?JB3Ov6;3SegB3Oye_yrFMr3l-~5m&SmK}AT8DZz5#rd;*IF8P|iHv>!vmI`M` zn1;Px`@rk-hC4UXHaUk&2z-sP`V>>qo(g3z3{6t>=08e4G4yDPOEFDk#&1;5aafMS zy29R_T)nQY9lg{5GBc_N`4%|Y{f76akBp!?-~--@HS=fi*~Mu#M`AhB+e7*HUS5X* y1RbcQf;;MBe;>(ppeptMD>FB@+s$$5>vR3^xbZxRS_HEL-q>tz8AC9Wm;3>H_I9rT literal 0 HcmV?d00001 diff --git a/file-data-map/User/299a103b-fec1-411a-8fd4-40260dc71f29.ser b/file-data-map/User/299a103b-fec1-411a-8fd4-40260dc71f29.ser new file mode 100644 index 0000000000000000000000000000000000000000..331a5d7273c6a343c6ffcd3f38f62b8309a759b6 GIT binary patch literal 368 zcmX|-F-rqM5QQffW0WKkw9`Vc5Yy~ow2>4hVqrqC2`Md>yEPfP-CK7j=4`}5Yb!zh z4OW(7BMANh|Aw`lxSIo~+xPbIzM1E5C|LtrQ7W0$1{E=h)?%tyj5bPRfy9I&q)Rrm z!azQS0Lpz>jEvwU;tmn4^w0PO4+*6RyUG$*)apY?NRA1?a_%Nvjlu!BnvpXDj0x(w zGa*dE;jnw?^aahWou(!}hbstNjW+2iCZanNicXm5IPdj83NA5mXo^cQOJv$@RP#8@ zHjO!cVF$z+UI(s@l84x_!XCMrfinY42o_2w zCrrbBzjNsHS;MUz=`1;eO9)(z$@B@PqB9YyPRLDC_WBf4-Jr46Y ztS7SDd{LBpfICm;J3i5?Vr}?wR(Fj6 literal 0 HcmV?d00001 diff --git a/file-data-map/User/360dd43a-4d67-4d53-8560-89226a358248.ser b/file-data-map/User/360dd43a-4d67-4d53-8560-89226a358248.ser new file mode 100644 index 0000000000000000000000000000000000000000..0f6ad5d7c65f6cf0ff4bd0052e6df688d7d988b0 GIT binary patch literal 368 zcmX|-y-EW?6oqd#Mk7f?w6sg52($QGXk)}82}!l26dZQP&4isFXYQJ{5foEci=giy z7M9{;_!`!>&Sb&c%{g;8-@R`?P_qU$VEy_> za5UZP|R%0!hH5n>m60Jq8Sb{dzi9ljP5z+63O7I-!KSy~*8a)N4)_xN6{nLC5a&W^JliFu@thw|^e zya@vcnovsxx75aN1Iad_D)s*>H_z$q*JERCxE;N|?S38(2_}1dePeUW7=j63@(1M{ Bc`5(^ literal 0 HcmV?d00001 diff --git a/file-data-map/User/364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser b/file-data-map/User/364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser new file mode 100644 index 0000000000000000000000000000000000000000..a0746a1434b3ffa2278baf57f8d3cf8a26a67f95 GIT binary patch literal 368 zcmX|-D^CMK6oqfMEswM%q(~eJH5&>+Ktg~ZXtTjIbs#3YLwm{2gPB{p7zB@>KmrK} zJPJwp0cZ?(uxJE^*>1vhbIzQc@7~96s5%Rav6jpki;9>;=TIw_po?`PkeE<}bjo^8 zSSY3xz+?o|u@#&|vPA@Q(Gfr4A)ypuTRGy2)+4A2$uT8p7H-N_KkSmP>3cK4gkZLC zhJ$P{hK4rLbBW;soID^2~7^@F4745N5_QKF4MQ{G229UwEKMv!lT=l9WCrS+8&)CPROH)GBG8GLqToXwF~j`VU{{<)D? zVE{n~>Z#z4y4c@Favi8i{r}3$#ofdEYw4}I+WGw0*x&mlm>BS-*7Axm1eLtx4>Bfq AlmGw# literal 0 HcmV?d00001 diff --git a/file-data-map/User/467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser b/file-data-map/User/467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser new file mode 100644 index 0000000000000000000000000000000000000000..6bee74bf0e45dcb30924533ff4a52494b9490e53 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76OlfCjKxXmL*+h|$gmhs`i(z-n-mvp<=0;ZwvCto2A!sRB zT3Jd8e~Fc?m4&UdS@3pq&K%Bn@9Q_zoQ17eOXiG4MNFb|s1-}l#X1p4OejLSWRVjV z%BcjfG=!Dd3Qi(9B!bp(!q0g~C`H&;j<}+OA=HHAm=Ua(ZpPI(9FeaXdo#dL*Q$S)u)(={#>YfVQP}HxA;-x4|g>!M>$oVL&kS0gzzh z0XlU=yaeyS%8b}>8i6;TH(&%U7MEbI)mWX@Qjh)Lm`(26C(4RwNo7%CEU%LWcD zl&2EFQXlF=i<~eyCW7_;6~Eyj35j8(9C1a5eW;=2A|qHU-HfX=jLFxe-V8)Suv$7} z5?MGHM5kU~Hr%<1w#hZzLEvkQ)gzH%v=FLZ7@MT*EnZZ7V(ifrm$*pe#xH6WIIO^7 zG1{l|hqsNb&b$ebn@KAuR*31WvpJn_=LBts`UrC_O@_>Wh0m`n@&y(vu-;#)-_PAPV3HNTH;s zq6&yhZ~`s>H7#~lVmiO)r}xdg{6NiF*i5x#&RA5$Bszy$u?$_RGl9f}BBX29bHYM7 zl?dh%sHawN5?PA~R+0;T#bZJ#;QQjep}bc1ApH8ZhaEW4*1sg&aN>8Goj=U41spu literal 0 HcmV?d00001 diff --git a/file-data-map/User/4d9f736b-0de5-465c-9767-19c473b636e8.ser b/file-data-map/User/4d9f736b-0de5-465c-9767-19c473b636e8.ser new file mode 100644 index 0000000000000000000000000000000000000000..02ccff0d9deb827b99b9e7f3b6786b447bc9538f GIT binary patch literal 368 zcmX|-y-ou$5QH}u!jF<51PzD|QBe8BkJ8WpLWo46iqb)0-I>e6*=OuMax{n{JOTnL zUVw^%0#WiRNHo-R2s5BEO zFi=h`n2ZO4l@&9z%>M}Mw{#uQ_&s^RVU;+E_?ltic91UO>rs4i9)-LnjVLF z9M%)&?qu|~ymI)`04VgZ8Tc*mrZrk*zpDj7eZU8NC(4*RgUim2vmS|gr1!__&x5=T z0|+|MNCmgl!(qeHH(i%1c{<(V!9=E7Q^nCjO;v|xiM>@ASl)rirV-G ztWt`-f5g^W?3~Ghx0`e3aK3xrzM1J%TGhCJOygoVy2J7*CJ$)lEX$P{jNpu!~+8Nz(wW=!>>7=2C8n?$4tvxPH2 zkwx8ZYuD@3hB-IXHa&wYAil;}eIhd68VhAF3`|<|h94!L7rv3~*J2TD(BpQ%Dp36T^@-`ws x+EC9pa~O->jzHIjn$-WV+}w}uj`qm@Z+uz)oZC8lM40TemDRO%V-O}n$sa38b_4(b literal 0 HcmV?d00001 diff --git a/file-data-map/User/56b80611-d82d-443f-acfe-b8bee6d0876e.ser b/file-data-map/User/56b80611-d82d-443f-acfe-b8bee6d0876e.ser new file mode 100644 index 0000000000000000000000000000000000000000..43321abc8dcddf4df3d3b089583c4496ed1eed9b GIT binary patch literal 368 zcmX|-yG{c!5Je{&5#KWaMqf~}2G%2$GOGKI7kz(!)E;~2LdL-tNULK3z z59w_fK+uG0BDkeCc8`#36Dq0te`R{~JAVCqzmq59^1{bPeV?G*3-}%3|0ZlPfz9cW#ok5d{4MqM(J1 zwJ2DM|G?j38VfC*$%40=bLMcqd!N6cVl!BcwPe<0sEA3l7PVpt+E^z7i3vqW=d5Ez z2E~*Dm}y!_8NGL@ZDN9_@P75kRa!d*43peGe8@9>Sbe$PsLNHf2 zeZn;CbfN>NPaAISP-n>*TtMJzOr}pT713BIJE3oqqSyZ@xkTTgDK5o0ksG&B-QzHi z!`dRdJHC2fSUP;G0pw;_5BwH*`7~O2`CQ8hsy*K0yRl~O3@$r6&Uz%~kv<;EKlk!F z3?OJiEfw5S8@u~Rwh2|K|6jRz{k~nisXUI3mMLCuM85=+J-)HIwQUT+gfIC6m{fO{ literal 0 HcmV?d00001 diff --git a/file-data-map/User/59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser b/file-data-map/User/59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser new file mode 100644 index 0000000000000000000000000000000000000000..c586c5b0b739cf7494bf46a1ee7e2b2eb457cd51 GIT binary patch literal 368 zcmX|-J4*vW6oqdl#z!6^TH2*bHH(kV##dp&b|Hm@$gn#mBRdagZp_*Q3k5+e1qH#z z(#l2jetV~ z4()P#e{}V++B|rx1LS7ZAYlt}dGpeGuEse+ZNLU>JJHmi!Dknz*?>d?(&uCO_d#Aq z1V{(!8D|c=qQ5K9b)Y8o|0_4|<4ImU{`op2ci*?oy(fg(0b5(&*fa)VCY1aEEv|PJ literal 0 HcmV?d00001 diff --git a/file-data-map/User/5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser b/file-data-map/User/5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser new file mode 100644 index 0000000000000000000000000000000000000000..b046e183b42c2a81437eea9b11391b1aa91aa752 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^766tS=nQd!O7qf>~Ag$c0=DN_u)V{&EZ;m%F6X~e?dFA(%U zSXo$zjbQ07u(h_b5UiZZg14J<=5W4yAHJYuQ`n5OWY(mph)J{-wPG>aNXG(+2}MX_ z*0Camd)AC&iJcp-`qQd%r`Ycg`Xx9(2N*$9HRc7iq* z)>hhypTI`Hh_<%w=D_Lpy?wmj%=0%?tbz47lgw&^ikL)eF;gr-8)u0?VnPwp1?yX3 zpqNqsGhLXAjo>7b9U@rjp7L`Z5=s$9$`V)9?m|UKjw!)n;ig;-!XCMrfinY42o?%w zM3{#CezfQGSrqZn9r7XHjx*-Y;Ii|RtVd!V>HVSndoORo z0D=zGQo$|taIlMHJ5ZI`|0~yzUmFK&?Qt`{ZG<16hsy-hL%!MEYH3X{_SCIjw!)L;ig;-!XCMrfinY)3Dyf| zNSKEGe*4tv%bHs|%1nF-69`<5HrY9*qCFSNP8jOA==DEJE-`dyic2w1fjd(}^ literal 0 HcmV?d00001 diff --git a/file-data-map/User/685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser b/file-data-map/User/685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser new file mode 100644 index 0000000000000000000000000000000000000000..77c52a21ccca3e7108a8329578fab75c2c9780fc GIT binary patch literal 368 zcmX|-D^CMK6oqfMlt=mq0g0c#1Gz zIz!}n7{}dhr_X9??MRvQ2+kmIHQJ~Hp0n;ms5)V&)3Vq9sJO(?p-C#(BvEL$QPblP zk3%A6ZuTyom)bjz4S+(Ant|VfpLd?x@#}kmP|s*aJBcFh3@+Q6WIYn`NH2HQpIdPm z1`zb1kuz#B;)5-Ywg+{g{$GW@x*oT(hqv!+|M&CbboU-%I-@JAYwKDgO!<;OpO$%K literal 0 HcmV?d00001 diff --git a/file-data-map/User/7536f7a3-3e8b-49dd-bf43-309685a3c488.ser b/file-data-map/User/7536f7a3-3e8b-49dd-bf43-309685a3c488.ser new file mode 100644 index 0000000000000000000000000000000000000000..827ebc59c19d69b6ccb6ad9c3237138866df1166 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76w6wFbn)QW^An{SSA>ESFV%Qy%k)4M#cg@;}g#p3ZS7nhl zm8A$a{sU`&f^}MFvf%CJoH?BD-tjNgtbz4J31YS35{cl}awSR1ZK6`fkuZrIuSnN2 z1Laf#nCrkoVi-l19w5R>=bT>B5V>GsBrQ^jdmX4TL3xI-T)G*Ry)Z^s({pCPQ-r0` z$&qJaw;LTheO^;*2g;-ua1DX0(MFx|j73wS>V#aUWv~BHaf#faNh;VhQE0bO)8i12 zLtEoq3c^1Pk zfS?VHj8Tg*?;UcqZKwdIeL6e2uaC0yEK>3uP~iOw957I0W! z*r)Tm+4fHRy#|n*Nj(Z%;O*=8USl)Q392JL;>U?*{tQ0bm}dhL3rL?Y<)3GHA4d>% vp_U2msE@-IlIucM>i<`69=9HJ{liW3v*vGWtvw@H9P$0;!J#n(3!&r>4pVjY literal 0 HcmV?d00001 diff --git a/file-data-map/User/79422b98-a45a-42b7-8f5c-1baeae174238.ser b/file-data-map/User/79422b98-a45a-42b7-8f5c-1baeae174238.ser new file mode 100644 index 0000000000000000000000000000000000000000..acc1c3d3db1b562dc9298d2200d70deed4756c9b GIT binary patch literal 368 zcmX|-y-Nc@5XC1K;|EDZw6I8LB?x=?Q3Py~!@`7gA&qFU+^xyT?T5P)b7{mvYbzo4 zmXg9o5dRZvOKV&Aa^Q6P-ag)M=Jf|E&cbf2C3D82A|}x})QTnOVx0&iCKMq}*}w@4 z#gqbA>A_lT1t*cTiD0XD#cy~>C`H&&j<}-Z9#n+nm=bIjZpzg#?31qpIfon{2p5g+kZteHQ9&#o`BITFi}KA+3KGx-n( x5OkrI3htIMhjrn{#YEGlQ*~?kuwI5Zr|I-`^~)mK*btpM44n(8&t$3T8o)tG1@4L1rigAkgizQ z3IoNI0+?#UOk@Nn5$_SfLi?Ow@{mx9u&FF@McZwt2+1)em@nLvt0e4@t4W+0U`#Mq zIDNu2>~@<6PM_A?+CgUG3%G&6)o7EQVJezqq3nddj*DLZqvR5Oho-m`<3z6AMs<(F zJPzv!^LTpqwzzsUtO4YDP!IeTczg2FI2@)qLAA$wd^gINJA=#4jR_^uWLr>`+5aoo@5%S)!^hg!b!)V|v~#>dFxlhl8=G5N6HNG$KTMZ* AA^-pY literal 0 HcmV?d00001 diff --git a/file-data-map/User/7ba3c934-ba3b-4410-8311-e5f1d91de828.ser b/file-data-map/User/7ba3c934-ba3b-4410-8311-e5f1d91de828.ser new file mode 100644 index 0000000000000000000000000000000000000000..eeac78aaf7e639f61479691f2f39b24ea6f3ed0d GIT binary patch literal 350 zcmX|+F-rqM5QQhF2}%-)T8fQTsy)2403Zr+>6_vYyfswRVWluBlFhKiU(V=z@LMiZs6Kw?4>(gh2R z$e^5x2elEbMw#Fw;v*v19G&uW?h{Jk50oLUs5^qHkQ@_&jnYlH8v6lR%-EV9#ssa> z$q5rb38E$nH;W=UY3+ z&kcY=Pn(`Ajn}=_!Rzd|AgE9HgdavJvtQfn+9K;3FxTMaVd-Zk?|cuuAv6-f4Fx#v oA(rrvixyMM#%y;Dm)@ zN)gn0u#i~6Nu;|((C(e`a~=~)5qFd$u4tb@-@cl6U;4aISioU@ zVIPifKbBVx-Wve9xoAdV3%uUGD^KYtC#aA3i0>qt`7`+J;w&4GSU{RSm46@QB#t2J wLL(F0Q6GnUNUjTYssCTOnY=!?f4(X&H?`LN=j4zR%#HZk`o^X)1eH+o2P5Hjr~m)} literal 0 HcmV?d00001 diff --git a/file-data-map/User/886adb31-4331-496a-ba32-f2caf7871c2e.ser b/file-data-map/User/886adb31-4331-496a-ba32-f2caf7871c2e.ser new file mode 100644 index 0000000000000000000000000000000000000000..caae541c941d30ea36626917a4ba2eacae192c33 GIT binary patch literal 368 zcmX|-y-EW?6oqd##;8d|wA9MVYL-MBvGK2P!*(I1#jrajH|+d4b7R&<5EOj@K|$~Z ztSp01;4AnHHa2OU&4Ra^bLMcqd*6Sc<}B#YthzK^~5x?Rgp%h`H9C1YlG1P?Qm=Ua(ZpPIh?2)e-cr(D1V6Ak< zgjv|{N2gw2GTga|w&^9@K;UbP)fbqFXf9N}Fg9t~Tl}c_#Mq-LF2y{N8^2Mjz+nXr z>k0dGemC9RKKp0_!Ig#t2r$v`8iHMo?jb@(f|Qa5E}L;Q(FD$e9685S9vO zj64g6!``9OYnoa+Q6@QuO9)(zHtLjTtTz+NP8jQ?==DEJE-`j!k_t9UrmRyRker!=Meu_EpaF1t9(dL-hJKA+3KPvSNV zAm~FQW7Oh+j}AE6KGcQ!f93k&^=GBMep0)irgvZ0omGVSlx}Wq?`VxM=S%(owU2cY literal 0 HcmV?d00001 diff --git a/file-data-map/User/905eb14f-cc64-48eb-b24f-704901cf264b.ser b/file-data-map/User/905eb14f-cc64-48eb-b24f-704901cf264b.ser new file mode 100644 index 0000000000000000000000000000000000000000..84d84c3be2cd42e5483b4d8917b36e7e7e8ba074 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^6xXlZ95f-sAZ&PK%|n=GUVDHVpDF&Wu;ICEpxMi8{O5%dSx z*_cxN34(vZPONR6$%40=bLMcqdtZK_<}7SxS`ufhP)MY3PH07#aG7RYAmIuHUXg+0 z7Rsqau#m!1W;sR94iRBBJ*Ss6Mj?5eD2G(xehM`%smKvlN;ju!828cF480i%hR`aV zF^W7M43cB7FBliRno_4c#@P?$+G3R{Sq=dF6T^;IC$M|4CFGEMv$e0F)34M-#)y+2idALU&f yLDYdp&Z)z`7#<099jHtF|0>M1XOhb2M)&^owfDi=-w5*~y1lczXAHtzDER~bpLSXR literal 0 HcmV?d00001 diff --git a/file-data-map/User/92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser b/file-data-map/User/92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser new file mode 100644 index 0000000000000000000000000000000000000000..165043b842eae1e1a036bc8c14601211b1c9e406 GIT binary patch literal 368 zcmX|-J4*vW6oqd#i4T&9XlZAo)hs?bK~zNCkU|J4Er#7Oxw7+c=f6;ML}BWhwf}32Hsw<6E(2?hGzFGtPP>=8@hX%fAou zCJZ2GLOm7SQX9KFNVW+zssCTO86J#2UYB&HBz8o^@N8IvnJ4|i_N+K7c>FADk- z1S?}D{vAteTW7N1?dF_0obTSZAE>wt))J$bvl(h)3Y|lvnLw8qA(5EWgmlGvPG(R{ zDT0{}%q5xRB*iWfEOpNLC65V}j9c0f*Rw957I0Ws zW>2TLpDU})_ZmQMNA)Odfj8s(_1ET6PEZ~20pCds^Jnnc`AIe)v4HgTQvQ8bcX0$! v8)~WKj=I?2Lvn4XD)ax!?U;@mf}cD*ey4{Yc7K^*dcZd}8(Y>AOofs^KYDhj literal 0 HcmV?d00001 diff --git a/file-data-map/User/951c825e-a48d-4185-bde6-40e6a3c61713.ser b/file-data-map/User/951c825e-a48d-4185-bde6-40e6a3c61713.ser new file mode 100644 index 0000000000000000000000000000000000000000..80c488c27a61fbee02290175d6c88cc50c73f49a GIT binary patch literal 368 zcmX|-D^CMK6oqfMlt?W-GuAroH;q)y|3R;u?DsiC5Y9AOC*9@%atT4w~0y_N5Uj>ye2)% z3=~reU@3x?#4w61Z6iV>x}aAyL@rp^krt`M!w4!&P@W;I7j8ynKaA1U^qm>-6k)A! zhRCz9*XtZReOXg$N6Ms^a07v>(MFx~jCJNh*$G3P7QOyQ$t8vkO;W+;iCnvl>K=!9 z91=4#J-vP3+&X!y0pxmA5BwH<{1hGBHGgx2>VOVtD^bLq!DUzHS&u|K(#K=@=Rr)u z0D>;mGDa=Nynn>ecA+ZN|0~y@v)1hSYojr3j?Z51+Y^Mv0o~c%+t(Ul!I%62WyyD) literal 0 HcmV?d00001 diff --git a/file-data-map/User/957afc5e-cf45-4332-9bfa-916cd9371738.ser b/file-data-map/User/957afc5e-cf45-4332-9bfa-916cd9371738.ser new file mode 100644 index 0000000000000000000000000000000000000000..1d6e1bccc64e81859b3d441791e2cd9439311bf1 GIT binary patch literal 368 zcmX|-y-EW?6oqd##vhW1_=AX@m4eJ-6clXy1rySRlnTS{m|WS}8E0v03rd! zSFo}a-@)34uolF^nJjp_IcE;%yZ7Y_O4h(~q$IQ2U`kA)wWv}Sqm5K7keEmb>5{dr zFpy6nfUzb_L`HBD@h%a}G|%`24+*6R>!~H4(smO{LUK$9rgJypX(w!vtLZp1z?fhv zcY1_L*lyPkoIb9(wS8scbGU}U)o7zmF%k8lP;^31$9b>+QE-W#Lrb|7!$hXtMpci) zJPvCKGdR9|TU&FhnJjp_IcE;%yZ7lEDmH`lSW9M2hKiU(Yf&qfppA7RkeE<}bji9_ zWKc{gfVl|f<4kZ8$vzP*N9TOVLqaLSma@bZ?L<%!l4DA+RJbWuy|6>BrsvE66N1IU z84#vnx7#{&dev}iM>e}&h9UwQOM&P%=>)q;#9!5Dqt>FV@VR!DSbwS&zg#((7aS_d(u< z0R(NRr-EDRVDA9QwxK5V|0_3>ual3r&vEm9kkVqkTa%I7y>)kD&PFV>vKAtU zm1U|_BK{@*57xHs=D_Lpy?wmj%=iaN*1&F*N@le|MNFc#m?{>djnY^kF`)?QmUXQ# zkWV3ixi&0BMsO1G2@$NculNlQ38e^|$`V&pZ$n8)jtRkX?j~II!VbBbo-+fC36^qa zK$wKxZu89P^O{>bOig?ZcM!N5ZPH6jL~|+>oiNaG-s^u9Tw>tR6qjO}$h6z2>T#II zVI5(f&mTV5w;GcQK&FS)z;A)~N5h@(kJpT#+~<9M9Hq>i!DSbxS&zg#($`DzcO)Of z0D=}&62UEXuy=}NTTqti|0~mzr^?#<+jwKNeNkUMY-|$D_W9oaK}~Cd8DH`TLveL? literal 0 HcmV?d00001 diff --git a/file-data-map/User/9a4fa528-f105-431e-b505-53df4609ee1b.ser b/file-data-map/User/9a4fa528-f105-431e-b505-53df4609ee1b.ser new file mode 100644 index 0000000000000000000000000000000000000000..307ad1a0014927203c89a289054108650710d13c GIT binary patch literal 368 zcmX|-KT88a5XC1KPYp>#v{VF0zn2u>p1BZAez8Nc8Wp%hUsx5RVW89*o`$Bba5bTgihqL^IG$e97A1k0r} zAd;O1!OH3SE&ZU?o3hg#(dK~6) zSS-x_$<2Ffz5Ch#DD<=$_$~1IZlhz`-GZP#=3~B_DCW-KvP-k9M`9l7qjbMJvJDXeES`*Cql0VN+brt{s literal 0 HcmV?d00001 diff --git a/file-data-map/User/9d01a198-f3db-4217-8783-221adb777bde.ser b/file-data-map/User/9d01a198-f3db-4217-8783-221adb777bde.ser new file mode 100644 index 0000000000000000000000000000000000000000..d0a1a9906e5e4fe3dbab4cfa5c436041b84429a4 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76v=FpQm1-6ros9+y6Vip07Q^nCT-kXzb7NKlf~fcdM2Llm zy_Kc-PXhh}K~S(0XS3k#=A1d4@80JRC^-xDNK597MMX@abEp-I(M38INK7a~I%8cY zEaX!NV6F`dkrkXoyhj8p?PGq*LqaLSrgFp;?X;mJB*%ncId>DTdSQorP0yPF#so{b zGayXDZnwGb^?Adc8)_S$z&QlI##nuXiD*uRq8A1x&U>>T1)msrG{vQuCQ{=!s%AJW z!(km^?+&kC*J}qa6@b(Xt3kE}UOax*Z-2j2f^wht`EI0{KZDOMPO}*j%aGpgi$7y| z9R?7zppppgsDr%*l50U(>i<`2ZZ2zUli}$7q3|^Rnlx4kX8U|&b8Fief|;!34+BSe A9{>OV literal 0 HcmV?d00001 diff --git a/file-data-map/User/a05517c6-ab01-469f-bb19-b38c3d308a2f.ser b/file-data-map/User/a05517c6-ab01-469f-bb19-b38c3d308a2f.ser new file mode 100644 index 0000000000000000000000000000000000000000..eba38f9a297a2cc3e0c6697e1ff65af317871b0d GIT binary patch literal 368 zcmX|-y-Nc@5XC1K;|EDZv=Fh<%4*NAP6QPZ6Vk|WrNwf$CL_0d>+ZyyjUZ?vwt`lQ ztybEpwf~K^mhR@j>Gr*Syx+{rH`J_wr6iZkYJ-ZHL~AiuEJd5-sX$^v5z-lptuRnd zC4jLGOe98d66rP(%yf?VDGv#y2wTb$SG3WAnvfhbg6Y!Dxax)xxtgvs1562~N~cel zg>l^4b^5sG)(&!$p1?T-u11^u2s6BANAv*Xi2RG literal 0 HcmV?d00001 diff --git a/file-data-map/User/a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser b/file-data-map/User/a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser new file mode 100644 index 0000000000000000000000000000000000000000..5a537ee52becdcc9e5069593b107f930a2a7f37f GIT binary patch literal 368 zcmX|-y-Nc@5XC1KqlP3ZTH0Az?cqmfqhet~z#^oySnk$jZ`!6Ut3yYDK%o&S{m_+ALD;A@RbS#jVP=s{E z+D=%=rx3tI6UvbloJ71q1ar-Oe#k>YDZ;vP#1*YIp(G^7gkUyz6RtX8i+oMTn*qiI zGr7|vOu}}%zUB2v!=3AE8y~;`0$*dS-or%HM?%pHJrn1>*^h!x^gNp4Qj8L*@f+1L z9G2m*marGQ!{_;h?Z+xWYWlSx+X7F|->2_Bep7-Ja5W~?N0^BAOei{GWa7Nn|0uY`$e}4N#VnB-w^7aG zFptA}BE331e_Ly`UaA0@nbZQm1)eou8z1-I89`;phrAhS=FZ@ AU;qFB literal 0 HcmV?d00001 diff --git a/file-data-map/User/aef23a97-2592-4c26-8d99-021b6d634fe4.ser b/file-data-map/User/aef23a97-2592-4c26-8d99-021b6d634fe4.ser new file mode 100644 index 0000000000000000000000000000000000000000..a60eb6905ab8c30cb9b76351fbd6b240f7d1fbd9 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76v`i-`R7SlSN4BXChR+Ffv)$8-7%LV&u^jmtvAAjNhmka9F@$ zJz?*UuHRbA2d@o)!kjmwumxVVYt4_Jmx7=^DinV0USX9I$I)_@Z1YN8Xfy9I&q#bYaa4r9ui6sM#>RawBCe@kQ`Hj*}_e^>V_@yHC=B8m=Meq zPMyw5%H_$dYf)faQjj_6esfb2G*$aJ>6utS6l27zKn&MK75}ENE)pHz{ zOsB*o^E`@{^wUlQ0?&^-;6c$XYkqSQ8q_nInwK0`S(_y zhXDi)sHK8CYGHR9$u*!V_5Uj~H`VL=i_ZJ}^X1;hn~a_a#(R8uWp&LMg0Z~h50j~Q AZvX%Q literal 0 HcmV?d00001 diff --git a/file-data-map/User/b7261593-b1ad-4e29-8383-0ae63348e3ed.ser b/file-data-map/User/b7261593-b1ad-4e29-8383-0ae63348e3ed.ser new file mode 100644 index 0000000000000000000000000000000000000000..72fc7aad9e97349dad0d75edb74ddea9596e0c9a GIT binary patch literal 368 zcmX|-y-EW?6oqd##=j&Y1{>`x#5A*L>};Y~Bw?{xQd$hVV=}VyFXW7^ABhI5XfW!fN4+ zkY{1P-#vEvqNdi4l}Rt)8Uk0NjXL8Q>&}F-6Gl2Mdi{@*ON<Au=TrIjQQU#SFR_M<)2pPd-}e;e*gM%(nOda(%rq*zSanHzT^+tQ+6-_ literal 0 HcmV?d00001 diff --git a/file-data-map/User/b80085bb-80d9-419d-a7c1-b2d60835b66e.ser b/file-data-map/User/b80085bb-80d9-419d-a7c1-b2d60835b66e.ser new file mode 100644 index 0000000000000000000000000000000000000000..e81bd4a7d1cf94c264407eae87bf4855bf9dae05 GIT binary patch literal 368 zcmX|-KT88a5XC1Kqmd*cTH0Az?P1i)#)yRp>5g<-EO%=%a{I^Ki8(<;!F&Wk3o8pP ztWt=mjbB3WLs;9omjkEU_xACAGtWOzaTeBMEtxYG6)}mm!-#xM-s^QL!v`tRn0s>!StUkh2w5LMZ3qz9>z4?!lPYgYp;!;c#neiJnavYZ9 zut?aO!|S(|)%{5wATy&zkZ*xkPfd34aGnv=27JJGV$J*+e0E`)&5>A+^l?}Iy_MrI yfS?2QRB%TT_IHt72WnFPzcTaqIr*w?y{K0hzh8d0?g?fGe7(7`X$-+kUh)T2rg!%M literal 0 HcmV?d00001 diff --git a/file-data-map/User/bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser b/file-data-map/User/bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser new file mode 100644 index 0000000000000000000000000000000000000000..b4497d7fdf45d239c46524f4b5255baf031243d7 GIT binary patch literal 368 zcmX|-y-ou$5QH}u0z^p=KNX^*qQNJABnp~~Sp%h_DS>lRzBd7?;F(p_m+?1-f>fuWrAlJi2;J3i5=I74y!dp&I>+?Qu#u;;GaM`&@)*~^GGFV zfS?WaRB%fj?Cm4jHq>PH|H}1a>33XRKOT?fZ{L?cqA!B!KHu2f+SZz2%9s2Ba?*G< literal 0 HcmV?d00001 diff --git a/file-data-map/User/be2df33a-b9e4-4665-a695-07d52f2f89e5.ser b/file-data-map/User/be2df33a-b9e4-4665-a695-07d52f2f89e5.ser new file mode 100644 index 0000000000000000000000000000000000000000..72dfd3aea00e8ba8ce3db2fb50f2d4406acc9337 GIT binary patch literal 368 zcmX|-Jx&8L5QQfjLO@9nf|8Dk23!18qydBwiMESUQdqkt8MOXkJt0ejQb550BEbcy zsOUh5TW|v?sVHc%vl7$!JwLr~=II-1E{Bc8DCTUAnwUc8&}f#TOH3+}nAC)H#rjU> zP);R+dJKz6E(OW-fCyIOb8#s+p_06#9SKeC7-~`p%m`LWHxqimd*o{d-i$CMST3Cr zVaEIY&XLy_tZ;5@^7I0(A@VggH)oj1&P=F!VPw;?H~gsh#K@y*q2w%4Siey#;IM$h zdNQA$-n_1@pFB4K3OjB^VGEqJYpo)g6afPGFnnyXD3;Y#5~gYzW8$| zufhO=7Ss~KEp@QBi)33+mFfR0)7S4G%cF;{#@qO}d{R01B$)2=)wT5vtqG=l$scEk BcrO3| literal 0 HcmV?d00001 diff --git a/file-data-map/User/c25a20af-a862-4528-81d0-c163743a193e.ser b/file-data-map/User/c25a20af-a862-4528-81d0-c163743a193e.ser new file mode 100644 index 0000000000000000000000000000000000000000..859bfe4de0f0b0415c41fe1fbc7c5eefcebe13cb GIT binary patch literal 368 zcmX|-y-EW?6oqd##vhW1XrW>wR;gz3r!pWa3MQlrX#|ULcTBGA&WtlRW^DvTA3;#? z0W1W;Qf%}E^f7D%J6mV6;O*v|Ih^m_$8RWE1GPw{%xZ&@Sc=x7k}O6WsaPN}AqnY> zb*wOuPa%M@7EDA&a1!wr5zMrX`6&+xQxP_#B`&Gnf|5u%CIr*Dn{e3;+vIAx&I~Xn zn97|#VG?#ajUA_tYi{j8nfL_GA#gR?s3S~7V<;4z(ARO^>wgqnqVLcoPsK2iX}3|; z<1mlI+QQr%T)iwT?LAijGCimUeha+(`kB4|n9B&tJ>KJ+kz(!)E;~8QdL-tNUhj&( zx9N2lK+uFrBDkeCcDIpi6UwRje`WgO^DUzF`HlDe#ixhE-5SAYk1wyRu4zp$;!FMj Dn9g@Y literal 0 HcmV?d00001 diff --git a/file-data-map/User/c5eab74a-4b35-42a4-838c-a01151059c76.ser b/file-data-map/User/c5eab74a-4b35-42a4-838c-a01151059c76.ser new file mode 100644 index 0000000000000000000000000000000000000000..2d6470939df6a132cd17436e291c78d63c53bfe2 GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^8nM`>pz7PI(lY+|r5F^ztkL}M%zozORN-s^u9T%zyL6qjP0$c)>l>T#II zVQrD#9bLaKE$_cp05UVI27U{?*#2C-9Q|elqQ<=w9B0 z0R&B`B!XLNW4DfEn^2be|CO1m+o$=%(&OOk`>lDfRevU!?D4hrjZI?+CVa^ssET*V literal 0 HcmV?d00001 diff --git a/file-data-map/User/c9969dae-2059-435f-8d81-c2dcb6126f02.ser b/file-data-map/User/c9969dae-2059-435f-8d81-c2dcb6126f02.ser new file mode 100644 index 0000000000000000000000000000000000000000..609aede918a5054ee0ea0dc7652a0293c84026ad GIT binary patch literal 368 zcmX|-D^CMK6oqf6ltP*2({cznd(Mu^fg^?5|JRx z_!?vNiAZ^4Bow{SH%Z4dJ zXuzRuZtsq+-xrqlUn>Ba8B|HwLJaF0^K%Eo458d(J+>8V>d)Y_)1z!aq51=u(8Wuu(TEIY@Nx1x0`e3aK3w=zM*0bti?(Ys|}Y(1h@YhX227K zg~I70&%!8b?K^!|Q)`FHBeVr7&{zu6r`VLJ}!6u1ZyN&7| zhj<*)W#;bq`gM8r;JF5n>tQ|cTkxwJ3q;KB;t|Y9?HM> z;wB6rXhSVy)MA&XdmL>WszUw0a{b;I-5xDH{*0TSAL-WN3&M1dHrF>cwMLloC4Z8k Bcvk=b literal 0 HcmV?d00001 diff --git a/file-data-map/User/cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser b/file-data-map/User/cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser new file mode 100644 index 0000000000000000000000000000000000000000..ee677c24532dc3a7be54af524dc11b8b638d2e19 GIT binary patch literal 368 zcmX|-txrQS6vgj4HdwY10*W9=Pz2EzK7zpvf?&&nStb$9du1zm{h+;L4?_@;SqupX z91?{h1WB-1{s1Ikv9x;$*Y%v9oZr0<-%xTEmSZicGgc_1QaC5HqKR;^PPjnI6$(71 zUB@ltQy?(ehDvNXL!N9S!d&}^ov;XnJ=R2YpS?n?xiC zGr2QBkw)EabJy!rhB-IXHaUhfAil;}eJE1i91BG+3`~;uh93o=7N|`H!FdJA`tdt*)(a7=thoO8x+w CGI#d? literal 0 HcmV?d00001 diff --git a/file-data-map/User/d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser b/file-data-map/User/d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser new file mode 100644 index 0000000000000000000000000000000000000000..07767a9625af504298f5d55d8b83c501676a46de GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76w6wEQi&3wy3w3ZW8`@GM06V3b?e0Fx64M;2?jULNC5ArsS yAZkG^6Wmb;d;3VP1y!m4U%7d*cV9=p=J@mDWrgX(2Ek;XuWxK_8AC7;O8x*?Id{AO literal 0 HcmV?d00001 diff --git a/file-data-map/User/d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser b/file-data-map/User/d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser new file mode 100644 index 0000000000000000000000000000000000000000..27bfcea3269a4b899d011669a5ef74192be67c3c GIT binary patch literal 368 zcmX|-KT88a5XC1KKGID#n?oP~!Xr+a{0mTns zW0g`Z{1Wzl0c#6E+|7a0?R)!pznSMRC|LvRk&?`6gDEkI)}l&Tj5boSKw=^#q;uA_ z!azQS0A|`S7a74x#Ct@r+&R3CS@bSjydmr@gR4uBPYA0Aqs1 z+!+uiVYl1dclxa6)((}4PvHszSEG$O#zZtHLeU8W9p}CNN5Lfq4lU(UOcI%P8&y3H z^Ej*{%;@O)Wp(XfTmi`Rup0O+@OE@pd%Z|9f^wht`EI0`JA=zEOtKz{d8D_8;`hD0 z2?GdPP)P*0)WKc@$+n;@)&DEgPxYVq$J)lq$K~hyZ{u)GFx}_%&8=;%38s9>A8WdI A)c^nh literal 0 HcmV?d00001 diff --git a/file-data-map/User/da82a855-d129-44f6-8184-da9df90b7094.ser b/file-data-map/User/da82a855-d129-44f6-8184-da9df90b7094.ser new file mode 100644 index 0000000000000000000000000000000000000000..f605fad9cc0baa26e8156fde33380e3b7eccb67e GIT binary patch literal 368 zcmX|-D^CMK6oqfMltyQ&vd%VYwW6j(dTy}Yu^+?PkeLR+b9^_pZ yK+u9(D!8Q%c2ALP3#wB8zj8AgPoI9P=6-tn5`FG8z6s`ge0OjEz!-u#U-AbAOn0yV literal 0 HcmV?d00001 diff --git a/file-data-map/User/eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser b/file-data-map/User/eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser new file mode 100644 index 0000000000000000000000000000000000000000..3b0063f5f090575224e842e339bd21985ea00cbe GIT binary patch literal 368 zcmX|-y-EW?6oqd#Mk7f?)XvUAtY-12v+xH66QWIsoyD*_CRcW5$C;aCZGweX)`C8P zjUZTxg<#=3hz}r$wS|o{S@3pq&K%Bn@BKHFtbwH{mCR~`ikL)eF;y%^8>O*8VnPwp z8Eac%AfG}26HS+)cRZge`J49cKm@ z6HMn$k1z?_?fQ<>%bHs|NKJeSLkL`rHt8`YqCOIePUz`4@AW?lF41#nic2v{WZG?1 z^Ek}ou$C~_M;A}?3ww`MfJ_f+f!_kpH_CJG`yUxWrOUf~GfJ5|gUe2hvL1 z&yBnc0|**WO$4{p!p=65Z9qk)|F2A6Ek0zgyPt<&Lv#1?d+ljQNs3 DQ+Rm6 literal 0 HcmV?d00001 diff --git a/file-data-map/User/edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser b/file-data-map/User/edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser new file mode 100644 index 0000000000000000000000000000000000000000..183b65ee1a41d7ea76dcf67a95baf8f8409804ea GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76w6qf;R+s!$1IN!a`L#WskmLe^gH7P1$60Jq8Sd2E(u|Q%%5z;y9T9HCA zr2r<{FcqbOlZdy8V6J__&v-~EMc7o9xT4KARD|T15X=^C!c{NqkgMrAGr*W&rf@RC zB63O7I?Y-)M$Ktzz8Nqm;FR!ew8ACAUOa1^~pLgH@ literal 0 HcmV?d00001 diff --git a/file-data-map/User/ef2797c1-3444-4e5c-8803-0ded62732d63.ser b/file-data-map/User/ef2797c1-3444-4e5c-8803-0ded62732d63.ser new file mode 100644 index 0000000000000000000000000000000000000000..4afd809fd71b403d64872d6c20d1662f1c1970c1 GIT binary patch literal 382 zcmX|-y-ve06oqe7RZz7B1S3o=u;7TFjRjB#T16~THyBKEiHzbO>|2^HOd!DnAmAN3 z!G>6P3tpmPWW{L&-h7Ua&UZYSLc>|uOtfUqSfPkX;hfNlrNSjTML`S|2^zD3LkrcZ z1uz#uGqK1C(?cRyi7xpy4@pQ2d&&`4v>!nOB^Nota^>b+WnoOdCi7+>Qi7$*8Is7u z!Jyam`n=)JjkHa#;06L;W30XqIre5k-3vpLR=wqmnokTpn&J{?iNg3rof3zYI4nl{ zcy{}~x_$g4W-j?VVj?2%0f!iB_xZ7f)J! A3IG5A literal 0 HcmV?d00001 diff --git a/file-data-map/User/f3c67823-69f5-4dff-aff8-d21450de0dd0.ser b/file-data-map/User/f3c67823-69f5-4dff-aff8-d21450de0dd0.ser new file mode 100644 index 0000000000000000000000000000000000000000..e751e4f31ee262c17229228b230170a5d307279c GIT binary patch literal 368 zcmX|-KT88a5XC1K;~$cUsGW^ylWGr5IvW)W6CwylN{i)gO-63_*4>FY8?jLE3kcd< z3WB9rTZ&o$ltq>Gr*Syx+|I2UM(qMx04zwLwKpqP3VQmY|KZL?AJt2xEgJ;Lrg_`ER>xv)Jf6nf0SHe=+G3GVw}je+o=FZ@xZAW#r^mC>*q_pieG!b1d{{4w%%-MO)%k0{s1Rz Bcw_(o literal 0 HcmV?d00001 diff --git a/file-data-map/User/f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser b/file-data-map/User/f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser new file mode 100644 index 0000000000000000000000000000000000000000..9417c0c7a0fee13ceaaae8bb8ac229e200548484 GIT binary patch literal 368 zcmX|-J4*vW6oqdl#s^76v=Tcjt66+N3L9UA3F%@=i(z+6Ms^;~+$5VuEL1FPh4>eO zRX_!?^8eT>V&hB}yxp8Lhx6V0^a&+rVI$U(I%9=GDur`GE1C!w>x2uWT%o`rZ98ru zp8|ooCM?93GvvuWBCIseS)WBHB#-LKAyc^9gc6rbqzKEon=;jjTIg#!-XtPHSjwFq ziZp7s>qlOnH_W+#w#fxt0`WD*>NAn@`cx=-p=Xl3H~c90M9-rsCiygx8NX3A;Lw0W zTiiaJUcaraA5SU(nHf|`*g{;@NbUA#lp&P6tjqRdP5l{sc5#{wNHie5KNi17@+Klc x8c<0&bJ!A{1A(pqWvTyPnHjH6p2z(c{q=G3dw+NMiZI({n_JsE#vsgul0R$Ac>VwY literal 0 HcmV?d00001 diff --git a/file-data-map/User/fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser b/file-data-map/User/fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser new file mode 100644 index 0000000000000000000000000000000000000000..56ed1109049645c285c26765103858057b6917fc GIT binary patch literal 368 zcmX|-J4*vW6oqd##s^76w6wEIHH(kV#)yRpu?nfgV%Qy%D?1NoZp_*Q1jW`yG{3+` z8%xoDAlO;>69hpk1si9x;O*v|Ih^m_+Ycx?3$;i~=8Q!}OrmqB6^qeDIu=MwC_*}B z9Vaa0QwU(H1v8NqoJ3qFf`!%rKjI;w6k$U-;)>Q=P!f`3LNK4Z30K{)O}?h<%>ZM9 zx!ma!CSj-3*z)?c;m!@TjSpc6fv+)E?_(kwW1;AUzKQeR>_@>T`W{VjDaMJ^_>HO= z4$E*@TiDCJ(}%^S?fVKqY6jIH+X7FXUTR;jkP?)8yvH{p&HNdBc6OZ2kXVNFI4XW$ z%d;?mpb3>ka7S(IZX&rRl%@WErDn9dbMrVBS?suQ))*L1u|M2av~ zI6V|u)NVI+y*_T3bA4^oQ@8};YmC*$BIAvrQ1(L4q(yJ|QSynNM^jAlVIntvqk6!h z0f)A@y*s=f%+2q;)&O$TuamHaxY}5oeH&cl2-Pm@vaLi@e+HkO9A*O&4M^_~UysAZfvY>Cc}K-Yw-)c>#C+#YQnd@VllU-I!Xc-;R%811s9<&{-q5Jp1DA5L+2 AEC2ui literal 0 HcmV?d00001 diff --git a/file-data-map/User/fd970089-223e-4119-934f-ab271c522ab3.ser b/file-data-map/User/fd970089-223e-4119-934f-ab271c522ab3.ser new file mode 100644 index 0000000000000000000000000000000000000000..81f53e842d245db3e16b74cb9bba3fa081ff2e5c GIT binary patch literal 368 zcmX|-J4*vW6oqd##s?-MT8Uy21Vv;PADtjZEKCRphAl0I-7&ec^Kj?Jtc_S`VJ)Km z2CWn<#Gm3{u(lGM$%40=bLMcqdtbhxVl!BYwPe<0sEA3l7PVpt+E^z7i3vqW7c8Blfeag>yNGL_vRF=4+?KV_| Date: Mon, 9 Feb 2026 19:54:30 +0900 Subject: [PATCH 02/12] =?UTF-8?q?2026-02-09=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gradle/9.0.0/checksums/checksums.lock | Bin 17 -> 0 bytes .../executionHistory/executionHistory.bin | Bin 103098 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .../.gradle/9.0.0/fileChanges/last-build.bin | Bin 1 -> 0 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 25097 -> 0 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 28663 -> 0 bytes discordit/.gradle/9.0.0/gc.properties | 0 .../buildOutputCleanup.lock | Bin 17 -> 0 bytes .../buildOutputCleanup/cache.properties | 2 - .../buildOutputCleanup/outputFiles.bin | Bin 19037 -> 0 bytes discordit/.gradle/file-system.probe | Bin 8 -> 0 bytes discordit/.gradle/vcs-1/gc.properties | 0 discordit/build.gradle | 20 - .../mission/discodeit/JavaApplication.class | Bin 10648 -> 0 bytes .../mission/discodeit/entity/Channel.class | Bin 1861 -> 0 bytes .../discodeit/entity/ChannelType.class | Bin 1223 -> 0 bytes .../mission/discodeit/entity/Message.class | Bin 1112 -> 0 bytes .../mission/discodeit/entity/User.class | Bin 2445 -> 0 bytes .../repository/ChannelRepository.class | Bin 634 -> 0 bytes .../repository/MessageRepository.class | Bin 634 -> 0 bytes .../discodeit/repository/UserRepository.class | Bin 616 -> 0 bytes .../file/FileChannelRepository.class | Bin 4900 -> 0 bytes .../file/FileMessageRepository.class | Bin 4917 -> 0 bytes .../repository/file/FileUserRepository.class | Bin 4805 -> 0 bytes .../repository/jcf/JCFChannelRepository.class | Bin 3273 -> 0 bytes .../repository/jcf/JCFMessageRepository.class | Bin 3273 -> 0 bytes .../repository/jcf/JCFUserRepository.class | Bin 3219 -> 0 bytes .../discodeit/service/ChannelService.class | Bin 628 -> 0 bytes .../discodeit/service/MessageService.class | Bin 611 -> 0 bytes .../discodeit/service/UserService.class | Bin 633 -> 0 bytes .../discodeit/service/UserService2.class | Bin 594 -> 0 bytes .../service/basic/BasicChannelService.class | Bin 3612 -> 0 bytes .../service/basic/BasicMessageService.class | Bin 3972 -> 0 bytes .../service/basic/BasicUserService.class | Bin 3665 -> 0 bytes .../service/file/FileChannelService.class | Bin 8120 -> 0 bytes .../service/file/FileMessageRepository.class | Bin 4859 -> 0 bytes .../service/file/FileUserService.class | Bin 8087 -> 0 bytes .../service/jcf/JCFChannelService.class | Bin 3802 -> 0 bytes .../service/jcf/JCFMessageService.class | Bin 3229 -> 0 bytes .../service/jcf/JCFUserService.class | Bin 3587 -> 0 bytes .../reports/problems/problems-report.html | 663 ------------------ .../stash-dir/JavaApplication.class.uniqueId0 | Bin 10648 -> 0 bytes .../compileJava/previous-compilation-data.bin | Bin 1646 -> 0 bytes discordit/gradle/wrapper/gradle-wrapper.jar | Bin 45457 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 - discordit/gradlew | 251 ------- discordit/gradlew.bat | 94 --- discordit/settings.gradle | 1 - .../mission/discodeit/JavaApplication.java | 229 ------ .../mission/discodeit/entity/Channel.java | 63 -- .../mission/discodeit/entity/ChannelType.java | 8 - .../mission/discodeit/entity/Message.java | 31 - .../sprint/mission/discodeit/entity/User.java | 75 -- .../repository/ChannelRepository.java | 19 - .../repository/MessageRepository.java | 25 - .../discodeit/repository/UserRepository.java | 20 - .../file/FileChannelRepository.java | 62 -- .../file/FileMessageRepository.java | 65 -- .../repository/file/FileUserRepository.java | 63 -- .../repository/jcf/JCFChannelRepository.java | 39 -- .../repository/jcf/JCFMessageRepository.java | 39 -- .../repository/jcf/JCFUserRepository.java | 38 - .../discodeit/service/ChannelService.java | 22 - .../discodeit/service/MessageService.java | 19 - .../discodeit/service/UserService.java | 19 - .../discodeit/service/UserService2.java | 23 - .../service/basic/BasicChannelService.java | 51 -- .../service/basic/BasicMessageService.java | 63 -- .../service/basic/BasicUserService.java | 48 -- .../service/file/FileChannelService.java | 134 ---- .../service/file/FileMessageRepository.java | 60 -- .../service/file/FileUserService.java | 133 ---- .../service/jcf/JCFChannelService.java | 63 -- .../service/jcf/JCFMessageService.java | 45 -- .../discodeit/service/jcf/JCFUserService.java | 72 -- .../service/jcf/JCFUserService2.java | 80 --- .../0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser | Bin 594 -> 0 bytes .../14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser | Bin 588 -> 0 bytes .../1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser | Bin 588 -> 0 bytes .../17e6346e-362f-4105-a46a-c55f8d32fcf8.ser | Bin 594 -> 0 bytes .../18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser | Bin 588 -> 0 bytes .../1faedf45-087e-4841-9a0a-9bb081629204.ser | Bin 511 -> 0 bytes .../205cbd96-13e2-4905-915f-dedcb3fbf4ef.ser | Bin 588 -> 0 bytes .../2369571a-5300-4b5b-bbaa-0ef947573bda.ser | Bin 588 -> 0 bytes .../25ca130d-f65f-4466-a625-6827a4bb73bc.ser | Bin 511 -> 0 bytes .../275f1dee-cf5f-464b-b605-c77dcb71dd08.ser | Bin 511 -> 0 bytes .../2c82d998-1260-4d5a-b2be-655927d2cf9c.ser | Bin 588 -> 0 bytes .../2e7e69d9-639b-4934-b5d9-1d156f651fe0.ser | Bin 588 -> 0 bytes .../3025ee8c-7655-4370-8710-c4ce9a4109a2.ser | Bin 588 -> 0 bytes .../384cb390-442c-4628-97c9-deff0183f38a.ser | Bin 511 -> 0 bytes .../427d51a9-87c0-450c-9ec2-5d8db5d70118.ser | Bin 505 -> 0 bytes .../4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser | Bin 505 -> 0 bytes .../50f9e868-a9d5-4b74-aa9a-44912a473829.ser | Bin 594 -> 0 bytes .../517ca70f-b8ec-4467-b438-0e2051afa0fa.ser | Bin 594 -> 0 bytes .../54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser | Bin 505 -> 0 bytes .../557659ae-1f84-4894-9b0b-8d33aedf4a1c.ser | Bin 588 -> 0 bytes .../568f1fde-1eab-4d7e-9088-db69710a4668.ser | Bin 594 -> 0 bytes .../5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser | Bin 588 -> 0 bytes .../5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser | Bin 505 -> 0 bytes .../617b7a47-45fb-4c6b-912c-fafdd8efb564.ser | Bin 511 -> 0 bytes .../687d9ea8-d841-40ce-a754-26137052ad58.ser | Bin 594 -> 0 bytes .../7329b98e-a5db-411d-a30e-2d2181fc14a8.ser | Bin 511 -> 0 bytes .../77460ca3-293e-45ab-af6d-4f42c2cdb91e.ser | Bin 588 -> 0 bytes .../7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser | Bin 505 -> 0 bytes .../7ed9c903-0a40-44d2-8f7b-53fa26b0af09.ser | Bin 505 -> 0 bytes .../7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser | Bin 594 -> 0 bytes .../8205adcd-42d2-4ff0-aa86-5ef0d280ab12.ser | Bin 588 -> 0 bytes .../86208d0d-05bc-48f8-8062-608326a5d718.ser | Bin 505 -> 0 bytes .../8825242c-5e69-48da-9d63-e267d6cf033d.ser | Bin 594 -> 0 bytes .../947c620d-c9dc-4a14-9795-8d66f152c5d6.ser | Bin 594 -> 0 bytes .../94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser | Bin 594 -> 0 bytes .../982814d3-68b6-4a58-a985-a7eb30af304c.ser | Bin 511 -> 0 bytes .../99bb2a40-d785-4959-b693-0375c32c6340.ser | Bin 588 -> 0 bytes .../a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser | Bin 511 -> 0 bytes .../a482dbd7-a84e-4a01-8663-91db303ad553.ser | Bin 511 -> 0 bytes .../a7804371-8701-4413-8742-e37cd1f00cf2.ser | Bin 511 -> 0 bytes .../a7da762e-9538-4d3f-9861-782d77c98dba.ser | Bin 588 -> 0 bytes .../a9a725b5-216c-41dd-a1fb-68309c7b1501.ser | Bin 511 -> 0 bytes .../aa6e4d11-c36a-4da8-88ad-0c9276e41833.ser | Bin 511 -> 0 bytes .../b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser | Bin 505 -> 0 bytes .../b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser | Bin 505 -> 0 bytes .../b7683195-1e5a-4204-932e-d6b0b604a870.ser | Bin 594 -> 0 bytes .../b790924d-0355-4b8a-bf34-0165211058e2.ser | Bin 511 -> 0 bytes .../be18e3a5-a122-4513-9c13-56f60fa313a3.ser | Bin 594 -> 0 bytes .../be3c7339-c5ae-40eb-ad46-020b98f78147.ser | Bin 505 -> 0 bytes .../be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser | Bin 511 -> 0 bytes .../bffda00f-f0f0-4605-b3b2-094d455d079f.ser | Bin 505 -> 0 bytes .../c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser | Bin 511 -> 0 bytes .../c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser | Bin 505 -> 0 bytes .../cc12841e-07c8-4e95-8a32-312ec34fe68a.ser | Bin 505 -> 0 bytes .../cc912ecc-2670-4fa2-9021-940aeba99b35.ser | Bin 511 -> 0 bytes .../d2b403af-6771-42c4-96cd-20c82f8373be.ser | Bin 505 -> 0 bytes .../de119147-e4a3-42e9-a9a1-4ab3d12b0d14.ser | Bin 511 -> 0 bytes .../e44f30f3-2ecf-4055-ab49-b2292a94dab6.ser | Bin 594 -> 0 bytes .../e5c39507-a425-4c89-ad37-3cc5b9132e40.ser | Bin 511 -> 0 bytes .../e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser | Bin 505 -> 0 bytes .../e80cb15c-0a80-4f00-a01b-308c04a814c8.ser | Bin 511 -> 0 bytes .../ed77d5a9-a987-44a0-9ca6-d784895859e4.ser | Bin 505 -> 0 bytes .../f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser | Bin 505 -> 0 bytes .../f22483a8-c194-4a01-959f-792d610f2aa8.ser | Bin 505 -> 0 bytes .../f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser | Bin 505 -> 0 bytes .../f679ff5c-d6d2-4347-a965-17929c1da23a.ser | Bin 505 -> 0 bytes .../f7d54bbb-903f-439b-a542-b2ddddfd5d72.ser | Bin 511 -> 0 bytes .../f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser | Bin 505 -> 0 bytes .../f918721a-f9ad-44cd-9aa5-8b3e49de365e.ser | Bin 505 -> 0 bytes .../f9de0972-066d-4319-a936-9a3be77f0b50.ser | Bin 511 -> 0 bytes .../ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser | Bin 511 -> 0 bytes .../01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser | Bin 425 -> 0 bytes .../032d1b16-af7c-4b6b-b0c3-b98d002bd185.ser | Bin 425 -> 0 bytes .../04f2e96e-0d28-47f0-b7ff-5f8dc06d3f20.ser | Bin 425 -> 0 bytes .../073548ce-7b85-49c4-8781-2b200866a8cc.ser | Bin 439 -> 0 bytes .../084442d2-f95f-4b18-b735-a6e13bd50808.ser | Bin 425 -> 0 bytes .../122ce4ef-2021-44b2-9b32-b94420dd29d1.ser | Bin 425 -> 0 bytes .../143b2d0c-800a-4ce1-b13f-6b680716373d.ser | Bin 439 -> 0 bytes .../15be350c-8514-4dbe-a128-a82e044b1c4e.ser | Bin 425 -> 0 bytes .../1b9fab53-d177-400e-a1c9-92f925cce8d9.ser | Bin 425 -> 0 bytes .../1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser | Bin 425 -> 0 bytes .../22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser | Bin 425 -> 0 bytes .../22ede715-bc62-42bf-b37a-1116c8af0299.ser | Bin 425 -> 0 bytes .../247314c8-1f95-4645-93d6-80453e9374d7.ser | Bin 425 -> 0 bytes .../24acf589-b41d-480c-87de-20f0d3c69e84.ser | Bin 425 -> 0 bytes .../24b15747-125b-4c8b-ae37-4588bf552d56.ser | Bin 425 -> 0 bytes .../2660166c-ca16-4370-b96f-30e6e0d13a90.ser | Bin 425 -> 0 bytes .../2797fea5-d168-433d-9564-3f91ca2c9767.ser | Bin 425 -> 0 bytes .../2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser | Bin 425 -> 0 bytes .../2eaad8fa-b3cf-44c4-bd95-c4f08d845646.ser | Bin 425 -> 0 bytes .../330b7542-c8b1-4e21-8efb-2bcd5c34ad36.ser | Bin 425 -> 0 bytes .../34eb2b90-0c48-4699-b57d-d234e744b035.ser | Bin 425 -> 0 bytes .../38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser | Bin 425 -> 0 bytes .../391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser | Bin 425 -> 0 bytes .../39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser | Bin 425 -> 0 bytes .../3b0a9387-555f-4586-a28a-ddb899bf5f26.ser | Bin 425 -> 0 bytes .../3d247aa6-1422-494c-ba0a-073a940732c0.ser | Bin 439 -> 0 bytes .../3e41528d-1998-4671-a47d-c0d8bf3efc60.ser | Bin 425 -> 0 bytes .../442aeead-682a-48c8-8ede-3a674676a645.ser | Bin 439 -> 0 bytes .../4446e8af-5c99-489c-aedc-ab739c36875b.ser | Bin 425 -> 0 bytes .../44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser | Bin 425 -> 0 bytes .../4a8587c6-be11-4621-89fd-c3625aa83332.ser | Bin 425 -> 0 bytes .../4e5e6857-3deb-4c07-8515-37dccd45f443.ser | Bin 425 -> 0 bytes .../553373cc-664c-4802-9e7d-a4a086f9e0b5.ser | Bin 425 -> 0 bytes .../585a3414-5844-4d51-b1dd-8c52377e9cc9.ser | Bin 425 -> 0 bytes .../59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser | Bin 425 -> 0 bytes .../5a110b5f-9199-4b67-b218-162a81422fb3.ser | Bin 425 -> 0 bytes .../5ef22210-41fa-4bc9-89bf-9bd1f42ccffc.ser | Bin 425 -> 0 bytes .../6618ee6c-8cf1-4c68-8160-1e5b103cc0b3.ser | Bin 425 -> 0 bytes .../6736876a-4b0b-468f-ba1f-205033e3b4a9.ser | Bin 425 -> 0 bytes .../67a940c0-4b59-4f8b-a5d2-4e5640037b89.ser | Bin 425 -> 0 bytes .../6dfd29d6-e545-48b0-9cff-86367aefc892.ser | Bin 425 -> 0 bytes .../71ec7a90-4674-4655-bf68-cd40c15f2be5.ser | Bin 425 -> 0 bytes .../72142b31-9033-4b1e-a507-bcad9390a5ac.ser | Bin 425 -> 0 bytes .../7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser | Bin 421 -> 0 bytes .../7b110e33-4c09-4498-9d98-daf93448e734.ser | Bin 425 -> 0 bytes .../7c423db5-3f51-457d-af06-a718f60a3419.ser | Bin 425 -> 0 bytes .../7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser | Bin 425 -> 0 bytes .../7d7faa19-26c5-4c7a-a71d-0361db17753e.ser | Bin 425 -> 0 bytes .../7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser | Bin 425 -> 0 bytes .../7e5151c7-6552-4394-9a11-28961ee4bd54.ser | Bin 425 -> 0 bytes .../7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser | Bin 439 -> 0 bytes .../8253e5bb-696e-4690-ab6a-377dc2e5cdab.ser | Bin 425 -> 0 bytes .../83413a88-548b-4c98-94eb-cf5eb9a79bde.ser | Bin 439 -> 0 bytes .../89016ffa-1a86-4937-a88f-07eca1e591bf.ser | Bin 425 -> 0 bytes .../8f646e43-a1aa-45ad-a7c3-a0762fae2950.ser | Bin 425 -> 0 bytes .../97df8750-f622-4ae3-a42b-fe4450c00725.ser | Bin 421 -> 0 bytes .../99cf48a4-bcac-4e51-a326-adf63741eed2.ser | Bin 421 -> 0 bytes .../9a128996-c9b5-4382-a96f-71fb149c426f.ser | Bin 421 -> 0 bytes .../9a4c6fa4-ae90-4027-8349-9309c0c439dd.ser | Bin 439 -> 0 bytes .../9c76fa71-62b4-4021-a2a4-b77e32f3f21d.ser | Bin 425 -> 0 bytes .../9cf2857e-bf4c-48e9-865a-2a0480f72425.ser | Bin 421 -> 0 bytes .../9e098b88-24dc-4775-83b9-ce646d47a37d.ser | Bin 425 -> 0 bytes .../9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser | Bin 425 -> 0 bytes .../9f1ee58a-9cdf-4733-bd48-9abd95742999.ser | Bin 425 -> 0 bytes .../a015add2-241c-477e-b926-5967ed673109.ser | Bin 425 -> 0 bytes .../a01900b2-6372-4508-8974-d0f592c9b1f1.ser | Bin 425 -> 0 bytes .../a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser | Bin 425 -> 0 bytes .../a4dee914-d10d-4190-83c1-22aaeefb3315.ser | Bin 421 -> 0 bytes .../a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser | Bin 425 -> 0 bytes .../a7b67ef6-534e-42aa-afc5-02e757196d0e.ser | Bin 425 -> 0 bytes .../a84f69ca-a4e8-4a77-b54d-6d427bdde046.ser | Bin 439 -> 0 bytes .../b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser | Bin 425 -> 0 bytes .../b114cce7-c2ff-4cb4-88a2-30a763bab7b3.ser | Bin 421 -> 0 bytes .../b29f0830-933f-4086-83c2-7c78b766d339.ser | Bin 425 -> 0 bytes .../b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser | Bin 425 -> 0 bytes .../b9058c1d-68ea-40f0-86f9-46510c795a06.ser | Bin 425 -> 0 bytes .../bb694987-1a60-493a-9d99-f0eac101605f.ser | Bin 425 -> 0 bytes .../bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser | Bin 421 -> 0 bytes .../bd8b3213-f62d-4cc9-9441-d2ae17b48ab0.ser | Bin 425 -> 0 bytes .../c1c9959e-79a8-4024-8e7b-7acbd494d0a5.ser | Bin 425 -> 0 bytes .../c327d6bd-1ec9-44e8-9ae9-5cccd3d4428e.ser | Bin 425 -> 0 bytes .../c3319f28-fe32-4da6-b132-a9e9f760bd35.ser | Bin 439 -> 0 bytes .../d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser | Bin 425 -> 0 bytes .../d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser | Bin 439 -> 0 bytes .../d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser | Bin 425 -> 0 bytes .../d50f0417-7b32-45df-bafb-6de9b49930c3.ser | Bin 425 -> 0 bytes .../d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser | Bin 425 -> 0 bytes .../d91a2ea8-756e-4720-9374-5810d6e66988.ser | Bin 425 -> 0 bytes .../d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser | Bin 421 -> 0 bytes .../d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser | Bin 421 -> 0 bytes .../dc116c66-b46d-4826-b6b0-8a06a122254b.ser | Bin 421 -> 0 bytes .../dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser | Bin 425 -> 0 bytes .../df914aca-d25c-46c3-a002-da79f51c3463.ser | Bin 425 -> 0 bytes .../e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser | Bin 421 -> 0 bytes .../e4c9534d-95c4-48c9-9bcd-c062f5569702.ser | Bin 421 -> 0 bytes .../e553c781-5745-45f1-95b0-c2f5bff13894.ser | Bin 425 -> 0 bytes .../e6b998ee-b8d3-4b52-acef-a3e881b084a0.ser | Bin 425 -> 0 bytes .../e72f171c-31f0-46a0-9bf9-8af1f014e7ff.ser | Bin 425 -> 0 bytes .../e97e3b65-0832-4d14-9932-1723cd885a3e.ser | Bin 425 -> 0 bytes .../eb7fd738-ced3-4f54-a76e-70319b5b368b.ser | Bin 425 -> 0 bytes .../f1d96929-4599-4bab-90bb-a83981ab245d.ser | Bin 439 -> 0 bytes .../f85431b6-67a3-4ba4-bedb-faee99a4602c.ser | Bin 425 -> 0 bytes .../faf8359b-976e-4aad-bbb0-83a17838f0d1.ser | Bin 425 -> 0 bytes .../fd0ba632-83e5-4fc0-9cba-e1f34685c090.ser | Bin 425 -> 0 bytes .../fee15d45-ebc0-4b1e-849a-d440b64281ef.ser | Bin 425 -> 0 bytes .../ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser | Bin 439 -> 0 bytes .../01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser | Bin 441 -> 0 bytes .../041ea05c-a9e7-4be4-9148-387205b68de2.ser | Bin 368 -> 0 bytes .../0569139a-6363-4247-a834-aa50fcc955a8.ser | Bin 368 -> 0 bytes .../07e8700c-0540-4a49-9a43-7327d12a71f3.ser | Bin 368 -> 0 bytes .../08268dce-ce38-4b8b-80c2-4171d5807032.ser | Bin 368 -> 0 bytes .../0c94c418-13c8-4b8e-a002-1217bb08389c.ser | Bin 368 -> 0 bytes .../0d0f7fda-1850-480b-9564-08606223f035.ser | Bin 368 -> 0 bytes .../0fc7012f-aef5-4979-b5c4-09f802d6bb5a.ser | Bin 368 -> 0 bytes .../0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser | Bin 368 -> 0 bytes .../12b8dabc-4330-41c4-8e52-184b23168907.ser | Bin 368 -> 0 bytes .../153670d4-5982-4ee2-9629-bd0703823aa1.ser | Bin 368 -> 0 bytes .../1a9613bd-30ac-42cd-864c-dbee8ce23065.ser | Bin 368 -> 0 bytes .../1bf79829-7ca3-42a6-9c8d-493b0925683a.ser | Bin 368 -> 0 bytes .../2124dabf-245b-448d-ac8c-f855b284a397.ser | Bin 368 -> 0 bytes .../247342f0-bc10-4a9f-8883-125f1e7ecce6.ser | Bin 368 -> 0 bytes .../27455431-af80-4c40-898a-39337901dfd5.ser | Bin 368 -> 0 bytes .../299a103b-fec1-411a-8fd4-40260dc71f29.ser | Bin 368 -> 0 bytes .../2cb6be3d-afba-43aa-b343-4375ab4c162b.ser | Bin 368 -> 0 bytes .../360dd43a-4d67-4d53-8560-89226a358248.ser | Bin 368 -> 0 bytes .../3649b5b8-3dd3-47c9-af6c-88de9a422dc9.ser | Bin 368 -> 0 bytes .../364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser | Bin 368 -> 0 bytes .../467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser | Bin 368 -> 0 bytes .../4a664b53-5f68-4b4e-a0d1-2d82e4010ff9.ser | Bin 382 -> 0 bytes .../4c8661a1-3aec-41d1-b878-b8742fb91c6f.ser | Bin 368 -> 0 bytes .../4d9f736b-0de5-465c-9767-19c473b636e8.ser | Bin 368 -> 0 bytes .../537d03c7-113e-4b96-91b2-8756450247f9.ser | Bin 368 -> 0 bytes .../56b80611-d82d-443f-acfe-b8bee6d0876e.ser | Bin 368 -> 0 bytes .../57247463-2d13-49f8-aff3-941c92059dee.ser | Bin 368 -> 0 bytes .../59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser | Bin 368 -> 0 bytes .../5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser | Bin 368 -> 0 bytes .../638e272f-cacf-4e1a-9ed0-2a4d263b7732.ser | Bin 368 -> 0 bytes .../65a3190d-0fdb-48ed-be73-333afea6f8ac.ser | Bin 368 -> 0 bytes .../685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser | Bin 368 -> 0 bytes .../7536f7a3-3e8b-49dd-bf43-309685a3c488.ser | Bin 368 -> 0 bytes .../785932fd-4211-48ba-9318-896f0db9737e.ser | Bin 368 -> 0 bytes .../79422b98-a45a-42b7-8f5c-1baeae174238.ser | Bin 368 -> 0 bytes .../7a4abc1e-1d3e-4d20-bf67-e7d390d124da.ser | Bin 368 -> 0 bytes .../7ba3c934-ba3b-4410-8311-e5f1d91de828.ser | Bin 350 -> 0 bytes .../8107128c-bb85-4f61-85a0-9a13f1e8049c.ser | Bin 368 -> 0 bytes .../886adb31-4331-496a-ba32-f2caf7871c2e.ser | Bin 368 -> 0 bytes .../8f796887-da82-4117-93a8-ef16221c6208.ser | Bin 368 -> 0 bytes .../905eb14f-cc64-48eb-b24f-704901cf264b.ser | Bin 368 -> 0 bytes .../92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser | Bin 368 -> 0 bytes .../94e56c4b-b470-4317-b374-543364615a92.ser | Bin 368 -> 0 bytes .../951c825e-a48d-4185-bde6-40e6a3c61713.ser | Bin 368 -> 0 bytes .../957afc5e-cf45-4332-9bfa-916cd9371738.ser | Bin 368 -> 0 bytes .../972df3b5-2ec3-47a3-bae8-58d7c1d8a334.ser | Bin 368 -> 0 bytes .../9823623b-143d-481f-b28b-0c18a49eac1c.ser | Bin 368 -> 0 bytes .../9a4fa528-f105-431e-b505-53df4609ee1b.ser | Bin 368 -> 0 bytes .../9d01a198-f3db-4217-8783-221adb777bde.ser | Bin 368 -> 0 bytes .../a05517c6-ab01-469f-bb19-b38c3d308a2f.ser | Bin 368 -> 0 bytes .../a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser | Bin 368 -> 0 bytes .../a68bdea2-0476-4827-a99d-f49e6e151000.ser | Bin 368 -> 0 bytes .../aef23a97-2592-4c26-8d99-021b6d634fe4.ser | Bin 368 -> 0 bytes .../b6924dd5-c26d-49b4-970b-96a99166ce14.ser | Bin 368 -> 0 bytes .../b7261593-b1ad-4e29-8383-0ae63348e3ed.ser | Bin 368 -> 0 bytes .../b80085bb-80d9-419d-a7c1-b2d60835b66e.ser | Bin 368 -> 0 bytes .../bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser | Bin 368 -> 0 bytes .../be2df33a-b9e4-4665-a695-07d52f2f89e5.ser | Bin 368 -> 0 bytes .../c0bcfe07-6b09-4ed9-92c8-d423809ae928.ser | Bin 368 -> 0 bytes .../c25a20af-a862-4528-81d0-c163743a193e.ser | Bin 368 -> 0 bytes .../c5eab74a-4b35-42a4-838c-a01151059c76.ser | Bin 368 -> 0 bytes .../c9969dae-2059-435f-8d81-c2dcb6126f02.ser | Bin 368 -> 0 bytes .../cb31dcc4-673a-4eb6-bf12-a29351199bf0.ser | Bin 368 -> 0 bytes .../cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser | Bin 368 -> 0 bytes .../d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser | Bin 368 -> 0 bytes .../d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser | Bin 368 -> 0 bytes .../da82a855-d129-44f6-8184-da9df90b7094.ser | Bin 368 -> 0 bytes .../eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser | Bin 368 -> 0 bytes .../edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser | Bin 368 -> 0 bytes .../ef2797c1-3444-4e5c-8803-0ded62732d63.ser | Bin 382 -> 0 bytes .../f3c67823-69f5-4dff-aff8-d21450de0dd0.ser | Bin 368 -> 0 bytes .../f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser | Bin 368 -> 0 bytes .../fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser | Bin 368 -> 0 bytes .../fc02cdaf-ba9a-4ef9-8d60-3e5cf3299e65.ser | Bin 368 -> 0 bytes .../fd970089-223e-4119-934f-ab271c522ab3.ser | Bin 368 -> 0 bytes 330 files changed, 2646 deletions(-) delete mode 100644 discordit/.gradle/9.0.0/checksums/checksums.lock delete mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.bin delete mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.lock delete mode 100644 discordit/.gradle/9.0.0/fileChanges/last-build.bin delete mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.bin delete mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.lock delete mode 100644 discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin delete mode 100644 discordit/.gradle/9.0.0/gc.properties delete mode 100644 discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock delete mode 100644 discordit/.gradle/buildOutputCleanup/cache.properties delete mode 100644 discordit/.gradle/buildOutputCleanup/outputFiles.bin delete mode 100644 discordit/.gradle/file-system.probe delete mode 100644 discordit/.gradle/vcs-1/gc.properties delete mode 100644 discordit/build.gradle delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/MessageService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicChannelService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicMessageService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileChannelService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class delete mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFUserService.class delete mode 100644 discordit/build/reports/problems/problems-report.html delete mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 delete mode 100644 discordit/build/tmp/compileJava/previous-compilation-data.bin delete mode 100644 discordit/gradle/wrapper/gradle-wrapper.jar delete mode 100644 discordit/gradle/wrapper/gradle-wrapper.properties delete mode 100644 discordit/gradlew delete mode 100644 discordit/gradlew.bat delete mode 100644 discordit/settings.gradle delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java delete mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java delete mode 100644 file-data-map/Channel/0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser delete mode 100644 file-data-map/Channel/14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser delete mode 100644 file-data-map/Channel/1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser delete mode 100644 file-data-map/Channel/17e6346e-362f-4105-a46a-c55f8d32fcf8.ser delete mode 100644 file-data-map/Channel/18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser delete mode 100644 file-data-map/Channel/1faedf45-087e-4841-9a0a-9bb081629204.ser delete mode 100644 file-data-map/Channel/205cbd96-13e2-4905-915f-dedcb3fbf4ef.ser delete mode 100644 file-data-map/Channel/2369571a-5300-4b5b-bbaa-0ef947573bda.ser delete mode 100644 file-data-map/Channel/25ca130d-f65f-4466-a625-6827a4bb73bc.ser delete mode 100644 file-data-map/Channel/275f1dee-cf5f-464b-b605-c77dcb71dd08.ser delete mode 100644 file-data-map/Channel/2c82d998-1260-4d5a-b2be-655927d2cf9c.ser delete mode 100644 file-data-map/Channel/2e7e69d9-639b-4934-b5d9-1d156f651fe0.ser delete mode 100644 file-data-map/Channel/3025ee8c-7655-4370-8710-c4ce9a4109a2.ser delete mode 100644 file-data-map/Channel/384cb390-442c-4628-97c9-deff0183f38a.ser delete mode 100644 file-data-map/Channel/427d51a9-87c0-450c-9ec2-5d8db5d70118.ser delete mode 100644 file-data-map/Channel/4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser delete mode 100644 file-data-map/Channel/50f9e868-a9d5-4b74-aa9a-44912a473829.ser delete mode 100644 file-data-map/Channel/517ca70f-b8ec-4467-b438-0e2051afa0fa.ser delete mode 100644 file-data-map/Channel/54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser delete mode 100644 file-data-map/Channel/557659ae-1f84-4894-9b0b-8d33aedf4a1c.ser delete mode 100644 file-data-map/Channel/568f1fde-1eab-4d7e-9088-db69710a4668.ser delete mode 100644 file-data-map/Channel/5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser delete mode 100644 file-data-map/Channel/5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser delete mode 100644 file-data-map/Channel/617b7a47-45fb-4c6b-912c-fafdd8efb564.ser delete mode 100644 file-data-map/Channel/687d9ea8-d841-40ce-a754-26137052ad58.ser delete mode 100644 file-data-map/Channel/7329b98e-a5db-411d-a30e-2d2181fc14a8.ser delete mode 100644 file-data-map/Channel/77460ca3-293e-45ab-af6d-4f42c2cdb91e.ser delete mode 100644 file-data-map/Channel/7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser delete mode 100644 file-data-map/Channel/7ed9c903-0a40-44d2-8f7b-53fa26b0af09.ser delete mode 100644 file-data-map/Channel/7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser delete mode 100644 file-data-map/Channel/8205adcd-42d2-4ff0-aa86-5ef0d280ab12.ser delete mode 100644 file-data-map/Channel/86208d0d-05bc-48f8-8062-608326a5d718.ser delete mode 100644 file-data-map/Channel/8825242c-5e69-48da-9d63-e267d6cf033d.ser delete mode 100644 file-data-map/Channel/947c620d-c9dc-4a14-9795-8d66f152c5d6.ser delete mode 100644 file-data-map/Channel/94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser delete mode 100644 file-data-map/Channel/982814d3-68b6-4a58-a985-a7eb30af304c.ser delete mode 100644 file-data-map/Channel/99bb2a40-d785-4959-b693-0375c32c6340.ser delete mode 100644 file-data-map/Channel/a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser delete mode 100644 file-data-map/Channel/a482dbd7-a84e-4a01-8663-91db303ad553.ser delete mode 100644 file-data-map/Channel/a7804371-8701-4413-8742-e37cd1f00cf2.ser delete mode 100644 file-data-map/Channel/a7da762e-9538-4d3f-9861-782d77c98dba.ser delete mode 100644 file-data-map/Channel/a9a725b5-216c-41dd-a1fb-68309c7b1501.ser delete mode 100644 file-data-map/Channel/aa6e4d11-c36a-4da8-88ad-0c9276e41833.ser delete mode 100644 file-data-map/Channel/b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser delete mode 100644 file-data-map/Channel/b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser delete mode 100644 file-data-map/Channel/b7683195-1e5a-4204-932e-d6b0b604a870.ser delete mode 100644 file-data-map/Channel/b790924d-0355-4b8a-bf34-0165211058e2.ser delete mode 100644 file-data-map/Channel/be18e3a5-a122-4513-9c13-56f60fa313a3.ser delete mode 100644 file-data-map/Channel/be3c7339-c5ae-40eb-ad46-020b98f78147.ser delete mode 100644 file-data-map/Channel/be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser delete mode 100644 file-data-map/Channel/bffda00f-f0f0-4605-b3b2-094d455d079f.ser delete mode 100644 file-data-map/Channel/c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser delete mode 100644 file-data-map/Channel/c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser delete mode 100644 file-data-map/Channel/cc12841e-07c8-4e95-8a32-312ec34fe68a.ser delete mode 100644 file-data-map/Channel/cc912ecc-2670-4fa2-9021-940aeba99b35.ser delete mode 100644 file-data-map/Channel/d2b403af-6771-42c4-96cd-20c82f8373be.ser delete mode 100644 file-data-map/Channel/de119147-e4a3-42e9-a9a1-4ab3d12b0d14.ser delete mode 100644 file-data-map/Channel/e44f30f3-2ecf-4055-ab49-b2292a94dab6.ser delete mode 100644 file-data-map/Channel/e5c39507-a425-4c89-ad37-3cc5b9132e40.ser delete mode 100644 file-data-map/Channel/e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser delete mode 100644 file-data-map/Channel/e80cb15c-0a80-4f00-a01b-308c04a814c8.ser delete mode 100644 file-data-map/Channel/ed77d5a9-a987-44a0-9ca6-d784895859e4.ser delete mode 100644 file-data-map/Channel/f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser delete mode 100644 file-data-map/Channel/f22483a8-c194-4a01-959f-792d610f2aa8.ser delete mode 100644 file-data-map/Channel/f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser delete mode 100644 file-data-map/Channel/f679ff5c-d6d2-4347-a965-17929c1da23a.ser delete mode 100644 file-data-map/Channel/f7d54bbb-903f-439b-a542-b2ddddfd5d72.ser delete mode 100644 file-data-map/Channel/f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser delete mode 100644 file-data-map/Channel/f918721a-f9ad-44cd-9aa5-8b3e49de365e.ser delete mode 100644 file-data-map/Channel/f9de0972-066d-4319-a936-9a3be77f0b50.ser delete mode 100644 file-data-map/Channel/ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser delete mode 100644 file-data-map/Message/01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser delete mode 100644 file-data-map/Message/032d1b16-af7c-4b6b-b0c3-b98d002bd185.ser delete mode 100644 file-data-map/Message/04f2e96e-0d28-47f0-b7ff-5f8dc06d3f20.ser delete mode 100644 file-data-map/Message/073548ce-7b85-49c4-8781-2b200866a8cc.ser delete mode 100644 file-data-map/Message/084442d2-f95f-4b18-b735-a6e13bd50808.ser delete mode 100644 file-data-map/Message/122ce4ef-2021-44b2-9b32-b94420dd29d1.ser delete mode 100644 file-data-map/Message/143b2d0c-800a-4ce1-b13f-6b680716373d.ser delete mode 100644 file-data-map/Message/15be350c-8514-4dbe-a128-a82e044b1c4e.ser delete mode 100644 file-data-map/Message/1b9fab53-d177-400e-a1c9-92f925cce8d9.ser delete mode 100644 file-data-map/Message/1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser delete mode 100644 file-data-map/Message/22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser delete mode 100644 file-data-map/Message/22ede715-bc62-42bf-b37a-1116c8af0299.ser delete mode 100644 file-data-map/Message/247314c8-1f95-4645-93d6-80453e9374d7.ser delete mode 100644 file-data-map/Message/24acf589-b41d-480c-87de-20f0d3c69e84.ser delete mode 100644 file-data-map/Message/24b15747-125b-4c8b-ae37-4588bf552d56.ser delete mode 100644 file-data-map/Message/2660166c-ca16-4370-b96f-30e6e0d13a90.ser delete mode 100644 file-data-map/Message/2797fea5-d168-433d-9564-3f91ca2c9767.ser delete mode 100644 file-data-map/Message/2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser delete mode 100644 file-data-map/Message/2eaad8fa-b3cf-44c4-bd95-c4f08d845646.ser delete mode 100644 file-data-map/Message/330b7542-c8b1-4e21-8efb-2bcd5c34ad36.ser delete mode 100644 file-data-map/Message/34eb2b90-0c48-4699-b57d-d234e744b035.ser delete mode 100644 file-data-map/Message/38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser delete mode 100644 file-data-map/Message/391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser delete mode 100644 file-data-map/Message/39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser delete mode 100644 file-data-map/Message/3b0a9387-555f-4586-a28a-ddb899bf5f26.ser delete mode 100644 file-data-map/Message/3d247aa6-1422-494c-ba0a-073a940732c0.ser delete mode 100644 file-data-map/Message/3e41528d-1998-4671-a47d-c0d8bf3efc60.ser delete mode 100644 file-data-map/Message/442aeead-682a-48c8-8ede-3a674676a645.ser delete mode 100644 file-data-map/Message/4446e8af-5c99-489c-aedc-ab739c36875b.ser delete mode 100644 file-data-map/Message/44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser delete mode 100644 file-data-map/Message/4a8587c6-be11-4621-89fd-c3625aa83332.ser delete mode 100644 file-data-map/Message/4e5e6857-3deb-4c07-8515-37dccd45f443.ser delete mode 100644 file-data-map/Message/553373cc-664c-4802-9e7d-a4a086f9e0b5.ser delete mode 100644 file-data-map/Message/585a3414-5844-4d51-b1dd-8c52377e9cc9.ser delete mode 100644 file-data-map/Message/59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser delete mode 100644 file-data-map/Message/5a110b5f-9199-4b67-b218-162a81422fb3.ser delete mode 100644 file-data-map/Message/5ef22210-41fa-4bc9-89bf-9bd1f42ccffc.ser delete mode 100644 file-data-map/Message/6618ee6c-8cf1-4c68-8160-1e5b103cc0b3.ser delete mode 100644 file-data-map/Message/6736876a-4b0b-468f-ba1f-205033e3b4a9.ser delete mode 100644 file-data-map/Message/67a940c0-4b59-4f8b-a5d2-4e5640037b89.ser delete mode 100644 file-data-map/Message/6dfd29d6-e545-48b0-9cff-86367aefc892.ser delete mode 100644 file-data-map/Message/71ec7a90-4674-4655-bf68-cd40c15f2be5.ser delete mode 100644 file-data-map/Message/72142b31-9033-4b1e-a507-bcad9390a5ac.ser delete mode 100644 file-data-map/Message/7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser delete mode 100644 file-data-map/Message/7b110e33-4c09-4498-9d98-daf93448e734.ser delete mode 100644 file-data-map/Message/7c423db5-3f51-457d-af06-a718f60a3419.ser delete mode 100644 file-data-map/Message/7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser delete mode 100644 file-data-map/Message/7d7faa19-26c5-4c7a-a71d-0361db17753e.ser delete mode 100644 file-data-map/Message/7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser delete mode 100644 file-data-map/Message/7e5151c7-6552-4394-9a11-28961ee4bd54.ser delete mode 100644 file-data-map/Message/7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser delete mode 100644 file-data-map/Message/8253e5bb-696e-4690-ab6a-377dc2e5cdab.ser delete mode 100644 file-data-map/Message/83413a88-548b-4c98-94eb-cf5eb9a79bde.ser delete mode 100644 file-data-map/Message/89016ffa-1a86-4937-a88f-07eca1e591bf.ser delete mode 100644 file-data-map/Message/8f646e43-a1aa-45ad-a7c3-a0762fae2950.ser delete mode 100644 file-data-map/Message/97df8750-f622-4ae3-a42b-fe4450c00725.ser delete mode 100644 file-data-map/Message/99cf48a4-bcac-4e51-a326-adf63741eed2.ser delete mode 100644 file-data-map/Message/9a128996-c9b5-4382-a96f-71fb149c426f.ser delete mode 100644 file-data-map/Message/9a4c6fa4-ae90-4027-8349-9309c0c439dd.ser delete mode 100644 file-data-map/Message/9c76fa71-62b4-4021-a2a4-b77e32f3f21d.ser delete mode 100644 file-data-map/Message/9cf2857e-bf4c-48e9-865a-2a0480f72425.ser delete mode 100644 file-data-map/Message/9e098b88-24dc-4775-83b9-ce646d47a37d.ser delete mode 100644 file-data-map/Message/9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser delete mode 100644 file-data-map/Message/9f1ee58a-9cdf-4733-bd48-9abd95742999.ser delete mode 100644 file-data-map/Message/a015add2-241c-477e-b926-5967ed673109.ser delete mode 100644 file-data-map/Message/a01900b2-6372-4508-8974-d0f592c9b1f1.ser delete mode 100644 file-data-map/Message/a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser delete mode 100644 file-data-map/Message/a4dee914-d10d-4190-83c1-22aaeefb3315.ser delete mode 100644 file-data-map/Message/a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser delete mode 100644 file-data-map/Message/a7b67ef6-534e-42aa-afc5-02e757196d0e.ser delete mode 100644 file-data-map/Message/a84f69ca-a4e8-4a77-b54d-6d427bdde046.ser delete mode 100644 file-data-map/Message/b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser delete mode 100644 file-data-map/Message/b114cce7-c2ff-4cb4-88a2-30a763bab7b3.ser delete mode 100644 file-data-map/Message/b29f0830-933f-4086-83c2-7c78b766d339.ser delete mode 100644 file-data-map/Message/b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser delete mode 100644 file-data-map/Message/b9058c1d-68ea-40f0-86f9-46510c795a06.ser delete mode 100644 file-data-map/Message/bb694987-1a60-493a-9d99-f0eac101605f.ser delete mode 100644 file-data-map/Message/bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser delete mode 100644 file-data-map/Message/bd8b3213-f62d-4cc9-9441-d2ae17b48ab0.ser delete mode 100644 file-data-map/Message/c1c9959e-79a8-4024-8e7b-7acbd494d0a5.ser delete mode 100644 file-data-map/Message/c327d6bd-1ec9-44e8-9ae9-5cccd3d4428e.ser delete mode 100644 file-data-map/Message/c3319f28-fe32-4da6-b132-a9e9f760bd35.ser delete mode 100644 file-data-map/Message/d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser delete mode 100644 file-data-map/Message/d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser delete mode 100644 file-data-map/Message/d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser delete mode 100644 file-data-map/Message/d50f0417-7b32-45df-bafb-6de9b49930c3.ser delete mode 100644 file-data-map/Message/d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser delete mode 100644 file-data-map/Message/d91a2ea8-756e-4720-9374-5810d6e66988.ser delete mode 100644 file-data-map/Message/d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser delete mode 100644 file-data-map/Message/d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser delete mode 100644 file-data-map/Message/dc116c66-b46d-4826-b6b0-8a06a122254b.ser delete mode 100644 file-data-map/Message/dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser delete mode 100644 file-data-map/Message/df914aca-d25c-46c3-a002-da79f51c3463.ser delete mode 100644 file-data-map/Message/e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser delete mode 100644 file-data-map/Message/e4c9534d-95c4-48c9-9bcd-c062f5569702.ser delete mode 100644 file-data-map/Message/e553c781-5745-45f1-95b0-c2f5bff13894.ser delete mode 100644 file-data-map/Message/e6b998ee-b8d3-4b52-acef-a3e881b084a0.ser delete mode 100644 file-data-map/Message/e72f171c-31f0-46a0-9bf9-8af1f014e7ff.ser delete mode 100644 file-data-map/Message/e97e3b65-0832-4d14-9932-1723cd885a3e.ser delete mode 100644 file-data-map/Message/eb7fd738-ced3-4f54-a76e-70319b5b368b.ser delete mode 100644 file-data-map/Message/f1d96929-4599-4bab-90bb-a83981ab245d.ser delete mode 100644 file-data-map/Message/f85431b6-67a3-4ba4-bedb-faee99a4602c.ser delete mode 100644 file-data-map/Message/faf8359b-976e-4aad-bbb0-83a17838f0d1.ser delete mode 100644 file-data-map/Message/fd0ba632-83e5-4fc0-9cba-e1f34685c090.ser delete mode 100644 file-data-map/Message/fee15d45-ebc0-4b1e-849a-d440b64281ef.ser delete mode 100644 file-data-map/Message/ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser delete mode 100644 file-data-map/User/01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser delete mode 100644 file-data-map/User/041ea05c-a9e7-4be4-9148-387205b68de2.ser delete mode 100644 file-data-map/User/0569139a-6363-4247-a834-aa50fcc955a8.ser delete mode 100644 file-data-map/User/07e8700c-0540-4a49-9a43-7327d12a71f3.ser delete mode 100644 file-data-map/User/08268dce-ce38-4b8b-80c2-4171d5807032.ser delete mode 100644 file-data-map/User/0c94c418-13c8-4b8e-a002-1217bb08389c.ser delete mode 100644 file-data-map/User/0d0f7fda-1850-480b-9564-08606223f035.ser delete mode 100644 file-data-map/User/0fc7012f-aef5-4979-b5c4-09f802d6bb5a.ser delete mode 100644 file-data-map/User/0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser delete mode 100644 file-data-map/User/12b8dabc-4330-41c4-8e52-184b23168907.ser delete mode 100644 file-data-map/User/153670d4-5982-4ee2-9629-bd0703823aa1.ser delete mode 100644 file-data-map/User/1a9613bd-30ac-42cd-864c-dbee8ce23065.ser delete mode 100644 file-data-map/User/1bf79829-7ca3-42a6-9c8d-493b0925683a.ser delete mode 100644 file-data-map/User/2124dabf-245b-448d-ac8c-f855b284a397.ser delete mode 100644 file-data-map/User/247342f0-bc10-4a9f-8883-125f1e7ecce6.ser delete mode 100644 file-data-map/User/27455431-af80-4c40-898a-39337901dfd5.ser delete mode 100644 file-data-map/User/299a103b-fec1-411a-8fd4-40260dc71f29.ser delete mode 100644 file-data-map/User/2cb6be3d-afba-43aa-b343-4375ab4c162b.ser delete mode 100644 file-data-map/User/360dd43a-4d67-4d53-8560-89226a358248.ser delete mode 100644 file-data-map/User/3649b5b8-3dd3-47c9-af6c-88de9a422dc9.ser delete mode 100644 file-data-map/User/364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser delete mode 100644 file-data-map/User/467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser delete mode 100644 file-data-map/User/4a664b53-5f68-4b4e-a0d1-2d82e4010ff9.ser delete mode 100644 file-data-map/User/4c8661a1-3aec-41d1-b878-b8742fb91c6f.ser delete mode 100644 file-data-map/User/4d9f736b-0de5-465c-9767-19c473b636e8.ser delete mode 100644 file-data-map/User/537d03c7-113e-4b96-91b2-8756450247f9.ser delete mode 100644 file-data-map/User/56b80611-d82d-443f-acfe-b8bee6d0876e.ser delete mode 100644 file-data-map/User/57247463-2d13-49f8-aff3-941c92059dee.ser delete mode 100644 file-data-map/User/59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser delete mode 100644 file-data-map/User/5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser delete mode 100644 file-data-map/User/638e272f-cacf-4e1a-9ed0-2a4d263b7732.ser delete mode 100644 file-data-map/User/65a3190d-0fdb-48ed-be73-333afea6f8ac.ser delete mode 100644 file-data-map/User/685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser delete mode 100644 file-data-map/User/7536f7a3-3e8b-49dd-bf43-309685a3c488.ser delete mode 100644 file-data-map/User/785932fd-4211-48ba-9318-896f0db9737e.ser delete mode 100644 file-data-map/User/79422b98-a45a-42b7-8f5c-1baeae174238.ser delete mode 100644 file-data-map/User/7a4abc1e-1d3e-4d20-bf67-e7d390d124da.ser delete mode 100644 file-data-map/User/7ba3c934-ba3b-4410-8311-e5f1d91de828.ser delete mode 100644 file-data-map/User/8107128c-bb85-4f61-85a0-9a13f1e8049c.ser delete mode 100644 file-data-map/User/886adb31-4331-496a-ba32-f2caf7871c2e.ser delete mode 100644 file-data-map/User/8f796887-da82-4117-93a8-ef16221c6208.ser delete mode 100644 file-data-map/User/905eb14f-cc64-48eb-b24f-704901cf264b.ser delete mode 100644 file-data-map/User/92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser delete mode 100644 file-data-map/User/94e56c4b-b470-4317-b374-543364615a92.ser delete mode 100644 file-data-map/User/951c825e-a48d-4185-bde6-40e6a3c61713.ser delete mode 100644 file-data-map/User/957afc5e-cf45-4332-9bfa-916cd9371738.ser delete mode 100644 file-data-map/User/972df3b5-2ec3-47a3-bae8-58d7c1d8a334.ser delete mode 100644 file-data-map/User/9823623b-143d-481f-b28b-0c18a49eac1c.ser delete mode 100644 file-data-map/User/9a4fa528-f105-431e-b505-53df4609ee1b.ser delete mode 100644 file-data-map/User/9d01a198-f3db-4217-8783-221adb777bde.ser delete mode 100644 file-data-map/User/a05517c6-ab01-469f-bb19-b38c3d308a2f.ser delete mode 100644 file-data-map/User/a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser delete mode 100644 file-data-map/User/a68bdea2-0476-4827-a99d-f49e6e151000.ser delete mode 100644 file-data-map/User/aef23a97-2592-4c26-8d99-021b6d634fe4.ser delete mode 100644 file-data-map/User/b6924dd5-c26d-49b4-970b-96a99166ce14.ser delete mode 100644 file-data-map/User/b7261593-b1ad-4e29-8383-0ae63348e3ed.ser delete mode 100644 file-data-map/User/b80085bb-80d9-419d-a7c1-b2d60835b66e.ser delete mode 100644 file-data-map/User/bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser delete mode 100644 file-data-map/User/be2df33a-b9e4-4665-a695-07d52f2f89e5.ser delete mode 100644 file-data-map/User/c0bcfe07-6b09-4ed9-92c8-d423809ae928.ser delete mode 100644 file-data-map/User/c25a20af-a862-4528-81d0-c163743a193e.ser delete mode 100644 file-data-map/User/c5eab74a-4b35-42a4-838c-a01151059c76.ser delete mode 100644 file-data-map/User/c9969dae-2059-435f-8d81-c2dcb6126f02.ser delete mode 100644 file-data-map/User/cb31dcc4-673a-4eb6-bf12-a29351199bf0.ser delete mode 100644 file-data-map/User/cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser delete mode 100644 file-data-map/User/d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser delete mode 100644 file-data-map/User/d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser delete mode 100644 file-data-map/User/da82a855-d129-44f6-8184-da9df90b7094.ser delete mode 100644 file-data-map/User/eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser delete mode 100644 file-data-map/User/edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser delete mode 100644 file-data-map/User/ef2797c1-3444-4e5c-8803-0ded62732d63.ser delete mode 100644 file-data-map/User/f3c67823-69f5-4dff-aff8-d21450de0dd0.ser delete mode 100644 file-data-map/User/f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser delete mode 100644 file-data-map/User/fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser delete mode 100644 file-data-map/User/fc02cdaf-ba9a-4ef9-8d60-3e5cf3299e65.ser delete mode 100644 file-data-map/User/fd970089-223e-4119-934f-ab271c522ab3.ser diff --git a/discordit/.gradle/9.0.0/checksums/checksums.lock b/discordit/.gradle/9.0.0/checksums/checksums.lock deleted file mode 100644 index 7a635281f51012396cdaea3a131c8f821d0dc89a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZQJd&nAfC}qJX1}FdkG0_Av diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin deleted file mode 100644 index 724bb7839b6f5ef040218571d1cad192eb3ddb84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103098 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 diff --git a/discordit/.gradle/9.0.0/fileChanges/last-build.bin b/discordit/.gradle/9.0.0/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin deleted file mode 100644 index 16b82d11c5e4c45f2efb7248b90430503580a1dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25097 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 Mk;z>D^XC2k0c08j^#A|> diff --git a/discordit/.gradle/9.0.0/gc.properties b/discordit/.gradle/9.0.0/gc.properties deleted file mode 100644 index e69de29b..00000000 diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index d8f331435ea60690c2477987a397d68bfe2c822d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZSHo?s~QWB%HD1~6b*4*)Z31l9lm diff --git a/discordit/.gradle/buildOutputCleanup/cache.properties b/discordit/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index 0753f42f..00000000 --- a/discordit/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Fri Jan 09 15:28:07 KST 2026 -gradle.version=9.0.0 diff --git a/discordit/.gradle/buildOutputCleanup/outputFiles.bin b/discordit/.gradle/buildOutputCleanup/outputFiles.bin deleted file mode 100644 index b9064c2da6340d9e5e69f73d9529d8e3a6bb7fce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19037 zcmeI%Ur1A77{~F~WvI1M28uSai0BU~4lL+^Mn$aSa;}o46-h>!$tu#OQPhZxD40T! z_D5=#^=OQS&7*t2z=SgBWF@ivT2hR5LJ@0uA=d;Ug z5h63~CmmwuNS|3^1px>^00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P-mJ5wL47GEcrt zW{z%pk=h`HNv|!k&#x_?bT%Ig%gaR<`Tqm==+1saa3q8J7w%2PwI3rt>V2}Suee|P zuvkfb{x*^NChjc*+2K-8QZRv04$59Mz}=_c{xH9L zvz2-)_hHvYe{S4>+D0O9~rvWmgaV?v0_-Cr>G_X@4E}@nyFsDn5;Urtaq+ ziVSwGzG+%Vy^{OXJu}Qk9_|a0E=-JH3OZ=Nm-~vunzME#&`bI)16=kbQR8_BX;wsAM@TGiJ2X!s4y z$>MJA@DzmF(jv59;lAUl>#qGym4W7mx$l2jbzSeQ@1i+2?v)t1@C;9(*OVf diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe deleted file mode 100644 index 0692eaefc09f18d71a18f147ded4a831df68767a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 PcmZQzV4VH0>RcQE3UvcP diff --git a/discordit/.gradle/vcs-1/gc.properties b/discordit/.gradle/vcs-1/gc.properties deleted file mode 100644 index e69de29b..00000000 diff --git a/discordit/build.gradle b/discordit/build.gradle deleted file mode 100644 index 602a4a8b..00000000 --- a/discordit/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id 'java' -} - -group = 'com.sprint.mission' -version = '1.0-SNAPSHOT' - -repositories { - mavenCentral() -} - -dependencies { - testImplementation platform('org.junit:junit-bom:5.10.0') - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' -} - -test { - useJUnitPlatform() -} \ No newline at end of file diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class deleted file mode 100644 index 67007ff38f62c1ed232e30dcd760319509ad0958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10648 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 D>ZPB( diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class deleted file mode 100644 index 9242b30a364497d0c7d0d25d9617657e84f2d977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 zcmb7EZC4UO6n+K-5?4h)Ez|O?1bkWT)xs>rEQ$1k%J&sE9nZ4s*U3vzML;|$ANI}+_vLx+eP;gr{q-BbD}0C|fM5h&3PK1o#E!L7O*J(0P~AB= z)=Mr!c!itXU1bQS(#0rlp*w=8f*vRgebT+^azowU-`Ze^+L~FmD&8iZN*7ukvfb!I ze*`fF1Bf%smaK~EoY>rS)e3hUZkcMCJ0+{Eb63?(m%BAJcchu7ZZHIRnGkkLnN%={ zA%-3bJ~6b~wpP&@;-0Hyv+Gik!)z3{aVLTi1$QypLU*_3xO#y-lQQX7*2*wpmVDg-~OkJ?dLx#wyW>oc^PYj7v-sj!;Tk@V(@Bj}Px=XgMxq5kx zn(MP^bxbKpOULR-*>eIzT_x8qs(nVsEqggZb7r3c!S1Sj) zz2_l{7p#(I6g5Ig2>rt@_ejiR{wAfeG(Xe&OhWeB$uQUfyucDV)ZHzTSRdJqW+5fd zh1@J9@^cz~rWBk)fw_y}HuQfnUIvANntT$?ScH#_E{z?M!B_j?8zN>p6WV>G=TF>_UPb zkR)PsZIe`c6vLRNtC=Q@%OW>=1?VNB*9^1K@P!+w5-RVaQgm8_^3%KSj@H(CTBD1_zVxJ)Bl$-z&<@EULE zL^P>6IME(F-7$FWnk-UOF#R7E>&SHgGSv=bt|O2Qy!C@y+BwzU&P4*UbOjJ0B+MU?``{{xaDSA75g diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class deleted file mode 100644 index b4f8819fbba497a998c9ec5ef5ff3ede8ac60aaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1223 zcmb7D?@!ZE6g_Xj2Hyocf2|6*sEMhWPLj3er>UgAkC2L25f0aTa zM5E!ef0XgQu7)apS)2ZN_nmw1x#!;Z^VioO0G?xAM}on!y{_dS_k;|ruJC=~N$WuP zws+u&z;a|Df>W!0$fb1L-P2!0$_I~I<2270WFicEfk|AZgo^%*;`9kA}pK#0NvSaPEj~qLw8kj;>$1M{%+-8`# z25iZGmx!Ejx9{wHU|7$`yz4Ia{c6n63`nj{HJ(8Q2;K7otkWbgOg4mc-uAm~r?)$Zxb>g93PZP#A=~h5 z?zT9wC8kmEq~u-7n!PDHOry5R-F?PbPkJHBHJ?kC-5jUrv{(?Q}lg| z1=`8eYLUL`GR~lX!PphdPqbnv(0e4@Q}`T;5xzpPl!uXJ#Y<$az!X057k-5-<^Y8! zcpC20d=g4!EJLFk(2Fbc7nuGWZpYJIyX#mDOR+*sDPyRSjfgBENmgJi`5kOuJA>A| x$$XTul_G~yE-`-&U6B~nY!FLT`8es6z##D&o{=qq%5Qmc9H;;Q diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class deleted file mode 100644 index 53ed203399728ccceb491655509a53bbea7115ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1112 zcmb7EU2hUW6g>kh6x%v5B+G88r4?2_q)SE5o;(H zP_eO&DnrMMCT?;T%TT!!nItj_U0)_%5h|(Px-UeM@R4B1NS_ccOIf$Efd)gt zi$XK|ix*!mO7Vh@XUd%%!8A{H3R zJsFDQ>0~J4S1EvMFYpus3kzVpiF8GxC(KPnNGpRYV=QG^blwyY{&w$|??OYSraf9?7A}fQN^ryuz zIt|oFnwOC@A(9sPTDV2$ZL;2we~#pq^9juPjKU17PG^Rivpd6OXK#k)2NQgU&L;A7 zmMNe@+q+I@mA0lv_jTN*7bi`H7TRP{QoU1DNNXBI#%LNwmTnz%<{%!?i+;D#DZloUPx%2bf47;%Bd0djZn&o`N>U&Z$(6G}qn1;z;l98%&s39XaRHl?j%Zxaz&@SA6}#$Bl9|ckQHNX?deNt#U&S#b88T(Ns<}1Cusp45xUOMaTE%e7 zc7+?B#x2kA_OvyZI}8z{LiEDo4XPNzFhe&XYo@-ptXDZh(sz|dDS5QRmfZZfiV@)) z<5k@-1)UQr-jVRywr%m{dUcaK37o_!1!F2syASNSB)xPGECEO zWr7L`jAKHwM)~hJj2WNKf;zWSCWP9#afmWryn?uiT^> z1m`~LctM3G9qYA<@0g^TUQ%%x?=hsR`VPvS&Mc43ArB1de{tJJcdf?v592d#7H@y-|8cfUA2o9^$^y62Wg; zxmKwLA@aIumJE;QI`KKflsNR*#>*$qUi|!Uj!lh;(Jzl)KKWBletP)o$44)I|KZi+ zgE@Ae(!Xd~+{v4|>vC7YmkblHWg+Zv3cg}E`DRyAm7fXfHNDi08D^j$jSp~z##ia( zh~OGs)G+0kdY!b?#-yd@B`q}#X{jfW?IvstIl9l%>?t}BCwn>j2Uzw1%07Cs=l3y? zo!Un#JH3ze0YQ@s)Iu{D z#U<*S*U4*!_NLwNA#RWrBf*-DMXBf-3bumiYBXN}VHTTR9eJ&BT6x{W50AC(ka zm<`L_PSgDi5;%)K>cJzJkW8|ElqQpOlSx{92qcrV_yEv;40)(Q#x$~mZ!G%^J-^Z* zLSIWz62)Rhh8C{m5QJu!$8A~>>23uNw1cNY!3&|_R6F=$DEOmLaJn5l6AHeA#Sq$) z?cl4S;6f;Px*a?l3jVlBdsb#2NK&>3=t|L*evXSkd!!pJk&?~S7qJwa;W`ycs4FgY zbEsbNKL@m53=1-XU-@`b7x6$B49nrMQth!8DOTY>VhLr@Hv=oQX9Rcg3E56s`IN5D Q@CD5hG}^#@e2tNR0j7%k#Q*>R diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class deleted file mode 100644 index c972ac1d89821ba6afa78ddd494e65a3965185aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmb7CT}uK%6g^|=>h@(B{e-ZW<~gjuia-#A#2%uTX?LtZ`%d@Il?>@kNov1B$s0Ya|5O#lD@ diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class deleted file mode 100644 index 28ff4bad34c57401e190d1b04754936b69fd4452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmb7CO-sW-6r8PX)5foA#h)PY;+~~isEAOA6fE%|Ue;s{TeeBbZi@YD9{d6RDDfpi z6oO)oZ+70infLbn}!6RT_`J34K|X6QYuB)Zy6BZd>t zFJ0tTX&waAYZChgW-CjXgdQ>U=PFKw%`>tW{Hy7rk*hJya0*`&tr-rzpEi7DEIm(Z zVDk~Kd?7LO6@FOH@xb6lQcEj;rQ8!`p5|F7Zh($ diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class deleted file mode 100644 index 26ff33d4f20f72df9b65fcabdd89efe33446f82e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmb7CO-sW-6r8PX)5foA{0$N>?#)ZJpomZi6k5`Qw>4SImhC2FH^u%n5B>mul=zxL zRf-aiGdpkIy!ZC~#U&_#VRwlh$4O52mFsk~O zPH7&;!+Uc2B1XBRQH1U@bSG+NgewaQHm+54T|d%*8hGnaw^}othTk(p$~t-;?2!NT z_vH&Y+0EF&?gWnvek!$e@>j`}B$KQx68WGs?IHMi&dc@U+6)YP^f!POUAKic)>rn> dA-+p&13uw>9BlC+;UgSZx*kqQLp!LH!6$Qpwx0k1 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class deleted file mode 100644 index c57a24760b05e47b47f44ed198c9087387b22191..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4900 zcmb7Hi(3@e75`m829_~Ad_?dOC1B;{8cdA3#waM26f}{C1!L1;cYu*)XR|Y_()5)! zZPNEEX=|Fc_GuqUt8D{S+9Z9qY1;p%-0xDBsmKT7@bFGdXQ# zGIrYAowEFD#86|vG_e+UDfA@W*|?X@IT=4b>v*2yX5uNwOS&oB@#8r=>w1pw=H}v) zPTG$5@uxRXcDlHvP$i2etyx>4VPMIlA)jie5;0n=Gf|HQ1!L05q>iT36x`Joh~|AK z9UpK!KheMt*PGaYjS3aM?J=0aT>~pRXlH!KpNoe+C88=P^O>YC;XInNQ%=(I?L-YW zq0vB-iOtxeaF=$qXrFQ9>{<7M-9M?YV^_qxWmL6|i?VGd?!k6KZKYBQ8^S%2bR^ow zCH!U+_o78%t!G`Z8UC;Ns>2~1a~ScS+mj!0}qnB+9Ai))Qe#s4hZuP-U2p}5T><_io_w42Zj8v zv@elWo<0c7!af`^aTGmVNZXkye_Ag*V&E9_uoU*uT+W)4RK(CLC+)oojRhZqBi5hE z=KTPB1N{ZeLKh>8F`U5r#M=Rd`Vh2GN_*Oeld^hBVbjuTWPd31n2FOEQiw6xslp*& zUw|yiwHW#^Vq#PZ!d%4f4V+w*MF zxZq9c4titY0|jl2qyNg3)Ru|wQ-%8F5=d2{t^I?3%z(-Ad3?EnMSVawF>Zfd9fGw@C8rc{=flnHE#>A(j zY()y7EX$F3GH<0l1JClDuV^&V8J1}XYkS>{=UW+n)Jo@B=PG*HPZ;Kald(_cXD963 zu&_|tg`2d}qgKw5_i(bppLTd`kF8w#BOXZmS-v+VXj^Ko!sDy$BrAr0OW$E*3wx|W z*UE0+wzDeS$%yMBrBinU*2YqR=CTEl9==8P(5lQHCNO0VNfI@wDZ*1U@wb-Xnuq;tBsnfO(-XG!JV<=0~$Z>uqLgf+?Lq}W}|O!g;+*61qM!7nN-^LS_WKqCZA12 z=pNo_A~T`2VB;`LK~((C7Xy%E zZ(tlHs&S6udXuh1Q1qb* zU&l9S@tb<*Wj^uCk218U4$%*Z=IkQ&jWrkx*gw!QkHlq|93HNI{zcR*qIYZo$FD7- zZ)_1K#yS@8$N~ljiOQpIVADyC!(G?(a1}KNE4msh<}udw`e0!rQ`U`xIKmt5Q5@$T z{0y3Ln0M%N;rImCPV4tzd?EyTCo>2_8Y7I&{9fxu3-z>eZwq(a%N?y4!cHA@JHhCt z?2GsoLmNUBUc$FE5NAUmVt5SS!FL({6>9B8<=bd7u+Ml0TjjGNCeOUDD+6cVA=@g7 zQ=HJVlw^+%re)%LA)-Iv^bheP{z?WPqEX3UbvqHX=3&3gmmpz6U7$0Pr0Qals>38H z{1{h5RnKsra8r{(bMt)2&C96LtQ5vqM96R-li5u&>?Ii@I)yCmgu8s)D#s0~!ba(kz$8s9|~tAD8K2+5s*yzwqhrl#(L-5BwAVLgW7c D<%srj diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class deleted file mode 100644 index b1aef6e53ac3178aa003b9b3beee6d2d97544862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4917 zcmb7HiC+}w8Gb%Q2bM9wdPG#L7(^D-ji`xcJwc6F&{U9AYSNCo0}c*5o1Iye^hocf zP4A{hlHQj+Y-`#EsV3~nh6U(tep=rXpVx?UxKb}5wal+093M&pcc_%oeu&gsRQinPPbJF&GYuxsC z=B%I|2{afmO{~Oy3cXoxGVK?NPCiIaI==6C`E<_lvtG`2f^^X?c)k;O#i{g|SXb>HEAm(2j(mq3Mh6wW1vZ4m7XpIj+;JOELu|ojvpjwO47tCtX43_ zoP6%6>rz5zDwLr&%f3tkjaVxl->=Zp8C&i1T$fJM=uB!PNrYNVtj7k0+Q9aS#bD>a zqW;JfF>-n~U$IE%BHx6GadRMKBuARUL&YKv;dq^=-ai~-%6q)5VNm;h0 z`UI^p@I+Y}{pde){94x5&>MKK!e)( zm;8#aCg9>w0uv}ml%AR^L-akqPlss&zKH-Og@&s|C$P(LS}?)Mxd{v>Z~@m$Oi8pF zbu}IetnB6CqLpQM-j5F$_@Ido;TeVQB~&zqe%uZO*y^gPkxk$u_^5%8nfSOAp;$SS zWl4aiN|x&z_$0G-QKhjqu|RiN+2`f`z{&?BmRn-gs_kQQp_>Cv-acKLyl5APg@w{P zysYJpSVc#EN0YU|C5K6PZ1F-Kvp{;$!i_3J-BLjnE-bY#Eb9KeF2ZIOHC%-qi<^Dd z$-3wyJ#LB>LS5Tg>8b&mDwIJwJa6xTC8<3`U}_waB(73ZgjqD?jOVSOR3vKW?kPE! zu6vm$5#A8`APJ>!GV$W4ps0UMxI$*p(8`r#=}siVb`h4bs>U3au~8Q7obB3y{kB_1*lRqGP;9Jt5<*c`VJbLOmtFeX z8;_4rW~pAJXu&Gin!K2^+UIO-?@>4s7p)yy62nsTUa`J5N5Z9h3k>bM7^P@VGP9j` zkSCUwn@hGMG31qsSz9>5h9JXTHEXA|0j5K*=LNijScO45xa8&h#ua!afoaSb_??Mc zxUH~7cMMG^Cx6AeY^Mh_emr4~Sy{O{vkgqff4v!D89x*%IBDf`uI;xEc;4kwArqr} zbVG^FMB2iG!z=~y?f1SIs$BeRbS;kC+h@7%5L;WO30sNEAEceXYT{S8*@V~iJ#r}( zGc`&Xe-asgHt|c`;IF^RufLi2Id1S4*PqYZMSYR5*^mCIu=Ot37edg$zZ5ntzLkA0 zgd1(tSi{TkC-|3?uOp71;x|PN46d-1Vg;Yia%R8Y2Q+leKy@XJS5W`5-uP)gMF?P` zmLfi*-xQw>cn+WCsPH*_J`(dRmhnH(Ig7^gUDIfu!J5JC-M6t0B-h3oJifjA7PfHg z+CGhr?wj1Z45DK#jRBgeC5aY(K(%2FIyfu(Hit4JeUy$b;EU8~Vk5qUFVniOaF>g)ZJWZeyodw5x`XhZV$*8f{0CUV?HP`O&c&n`p~MZNu77 zLdAyl_$t0ejbGO%zriCq|F;U#=i`+qj_KY^3@7QRidzr+2#SpF7T3}o&QG=5Vg_-gR7t_+OaA=PRtQ=HJV z#vLB538!V^yAh7x=kyQoLp~*L2dPuyR^LVV-Zzch4gLtjB)kREvC!04LQ@}wM&U>J zaU|+F!XU(Kn@>z9BIXOI)07m}*T$HzhrHU04S0xn?2ECnt)i|iQfHE}^Vujf!bU-< z4(cszHV9FTeEae#TtUQ@eY2P#C0xyy{0uy%%`}Q6#Fgt-Y(6+s)H2 z;ir59{SGr--o!&y$+vLkdCrK3d$3}T0j&nV0;(AxQxyjM2ddY=h1w|cKWj=zWsJgA zi99iQnpykd`H|mS6?sWT`B#r$NMWETmfU+4)%rG~bd8}Xc7RCK5uzb@n2}XaFJM?Q zCe74!N(?hY!x*cus{R_k;jGlP-|}x3zsGCQ+aD`$f8pETxl0Q5Kkx?LM9cpG9Z>zF diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class deleted file mode 100644 index 1562c83b445067689882787846f84d5047656f42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4805 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 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class deleted file mode 100644 index a0ead26f2e4b613b4a3b02f60c0ffd8d517203e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmb7C-AcnS7(JO=>*n9wUShp57hcvMh9U?Bk-8i2Vj62kmX;(P?A3PR1Ncy4+9@Ih zp;sZ_`Et(pos*Bx?K^-=Ohfbt&Uvw-wlq>Zx{}t)LeorIUSvW#YK2)#F6hl0(^{x> zcMZ`e7%$nHQN?slA6}M%JA!~4!JHs4v*Z^|ohQ%ZMW7sjoa=P?cHZ z+GA_-wu@a&2{NHX9m%vs9z7F`(xNh4+(}ip{7w0+jxZn~*z^Ad82Hc!2vCO~V!t_u Z784~i1^=1{e}F$q+@wmC zfRNKN?+tI>%-fI8w|4-S7>DQxoa=lg?Ydy&om5xD*ywG(bD6jnm>EE5<_roUW9Y@MIek2y8Um4)AH-e|aJ<@(C&1?4)akM!7Z z-aJ~{U4n!%suCDC#HUXJgE%h>O}Cs?Eq_Bjs}c(Y1or&*0D3;-9s*QZhuE**J_epY W@N5T%9zViyjh|rXF@e*X8GQjO9k>tx diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class deleted file mode 100644 index e224fcd4b0587854ab905e3a5a1c22da538a56a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmb7CO-sW-6r8PXV(V9I|3q_fy{8rg5rlw;5bx<`4Xl_R{rr0W0C0y{hylZ`s5iXX8q$_;sA;Iyyrf3dr6kK6X?7$e&s~x2>kvbR zXkF|It_of8=ha#Y%Mb`73o98`^YoX^tW&O%Ly$QA*NW7Z?3;IzFbrQwmkf)aS*<0- z^Ze-{IZ7q$RPL2xn9k$9N3WDpW8IK(MwKpXYur}LUc=&Wze^_;wA<3($MifOa-Dw9 zQJV&(RI*EF)|(!`Fif(#H9|g;axKxHv~Rj70|tf@_i2EU3x9+F-6sff>fbRYjz4qk T0Otg~YB diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class deleted file mode 100644 index 70b2bc72d8f07d68f84811c1bb050a43a8d16f71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 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 OT#5$YWDUHHzHb1K7evGW diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class deleted file mode 100644 index 712f1f974df3ab140f69f5d4736a6dd5a9964ff4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3665 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 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class deleted file mode 100644 index a90222fc9fd6f58fa93aa0e7b8891ca4c6338b5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4859 zcmb7H30K_K75*NZK!~t-iNQ;32fGXykC();Jx*+c;~E!mVlXKrX)9&~mOYFnBMmm) z(zNNmrfZV!tD81$owkA6v`ME|BpEQF8Q*1bgdD46L-Q~OAz3=Jm|K5B9 zz{7akL=~zH)L5uRokGhcd)7{7?c8+o+~g%E9VpZtb8~L+h(dK&VyqtZ3f7F{`}VZs z@6Fgj157j;uq-s;9);s+Zzk#I3vMn*&bYqsdbwoA_0wL)af77q6lUGDlbmw1PVzK= zhC)r}oxJC}fmfJQsF%fId&W^{8(eZ{B%sdelu2_f7FyA!U`)BW%*kw)f?bJFv>3SA zs#ixM@3ZQjOSz zb^{$2He-vzJ=)c>ea2C6X1rNvU`k;}SIoN=R3#=v*)|LJVLNfQGZ}>q(Vkc?Qi%x( zf2W1}(W%hn+p`YCAN2%Dg>`W&8iT}`=-qAM9q3{r{h;93GYXq4&rvPjS9syVz^OY!(u=(Yk{0%1zrwvskW?6`id1FOz=kk&@JDW1_5Q(cDay?Bw6Nhj_Xn%AW*hE5@mKYO>V-~A~z(ZngdQ=B@Z z&>CSANoj}ra8_2|rLbvfHMTzz8nQ5qa|$MNnkg0X`Vum6N}1@x;}*_K@zw;q(>`mzjjgcTz(s|Q%H*9Z2C?j2Vzi}oDZKcq2^U99Ok+l}lp_t6 zvJ{uoX_`jf!ZTnMG+rsVfm6!Uij_|?PUCSC<0x8~m25TZCOZC2-9JI(Z5#hiin zTlfGzsL->9R>#y&JAnXO*+@0ACO(X34SdAHbJCq+eNL98GM*{gS>M3NSk9{&EtI=_ zsmI3qepA1f^8-5>D+gVLN&kTk+=;oZ^;>@H|7!?-EsoGD)GpjrWv<gknoMk`RiD_EN^7vgb11zIc9wGHZ<@K@Zkt?U~7p-MQpz z=K+Nian(AYH8Cu~=vyPja-ItWoxDXfMRQV>o%g?TI}?9|7FCX}0-^)5TfL5&}G z*i&{oy!JNE#NYlEVHw{P8aQL;GFiv(9Q3@)#e6D8_vqddn~AK28%Nm+;^KF|7@Ayt zZ**CX``d44vm-p$QZ3j{RBp;yzG&g+c(nz8(6`IAbj-vAb-XD$-m>sByu!CX$=jbT z{1mV7Za0w2IR$--aCjK~O<~t0%c{C60>A8t@zzy76g(vp(+`v|j-FxP-qvtw>sv*iZ(hJbDS~Szg7Ig6U zK5i33+e2lMA*#ja@Ohf5#TI-4U!<`wQA*qiXI{`z@cPA3qMG0+u6Kw#H?WKMjGIV^ zM|-OH!!96xRB1oj7#{fj(TsMirx)#f79Tc-8p=L&;LG?5Eq+z+{2HJ5bw?T6QwQjW zM00)-hsN8C1sopinMdknG%n)!_ySH|Uqs*dB2JC>Ea3D428Ia6;9J-<%<-|_>w36` z#-la8?KShb(EH|4X(Kb0z@T{w%~I@WGtkf7|>@eM|F7WH@$FX{NtNAa6DgO~A5M*S^n z?L+N<tYhZiwTF1VT~ zmlu$wck}Sb1pgW~2o*TSsBjJSLYLq*#?wk#ZY8AKu#@Qv}*r@NIpeuN*>w}agMB7VXrP%f-(d6EcKxzNIy7dRskK7hKV z)Ne9)>90(^OqEmrZ>T;4<26yrueF%c3!^-hQ%(%7uv|a1Jmvc;QZ6+pe+^+rpei=m zyH(YG2UYC(k*X6!L-4R7udb}%SaVF9rQH$7Ec`;Zs%rd_Z&mn}ZZ*Or$=~nTeSRN3 Wy-|MpBcJ|4X=%-W#ozHywEqv*|LBqc diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class deleted file mode 100644 index c4e219f6de202b3ce43fb3174569816c5ee82c9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8087 zcmcIp33wFed4B(uc4xI3j1XXXffy_>=tMwlY-<4ZVtk9_gJPX_}sC+NMoI-tV88)s9x;Ay1z? zh@F4``Ty_#j`w@NZ)QLB^(!9-uv2v;5J7{1MiWuQ6k1MLr>(x6RXE-^dhCRqb`@ef zvW2X>OQE5ob3Bf?LgVJLU1~xC%?3;pOK_9IJ!vQ3S1y*a1-CDsEtj)Sp)Zpyr=5(Q zb^EyfbT)1GO=fd;-#≧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 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class deleted file mode 100644 index ce6f88487120ad57d1d224e95488dac094739a7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3802 zcmcImU2`186+OL@HS%h(*K14uHnJmwR?>P6HeX)JSeB8IS;>H88H*%jwA+%#nw{Cq z%qmtAzRkA*0|D#=NK%yo9(b@5urXAn@|1^E{zcwm@&{5>!s(e=YgTfJQmXQ>yS?4F z?>*<<)3^I?|M}|A0Q&H|Bob)Q(5Pb-ngmj(jX5J{8TNGU_~dC>^aYxFP22Pj3N&

z9UDuc|n4X`6hKAK>fv({e9c!>w;6TwS=e&w*+J3HVdY zosu;DoG0BmvnX??i&ME{1A_xIhHXo0G@KP^E`}2xK@}DPs#tjq>jb)&^)7AS^yhPt z*CbL{uPAO180-w)1tdp(qMObaR^V%Fz9RFP@fNgUqlQg7He-vxntF)LmQgARw8n#l z8O>)VR%08sYuKUVRNcRnb%1 z8f5i>GeuePS?*@+5!mp}<+In%o^QYY&gJXB|FHd=*Z%OYbDyg8?bUGy?qsP=U%H0x zxB_jR5yn7WL(zP`1^aQAhP!p#gL?(i3(2mT5af*EjmR@h8-+Tdb{x==N3TGm9ZYYi z`Hsmuuat36$Ne}YuxeWRLo8alW*C4taboBQ%`_ZV0vZt59A!3G9dIm*$Any|i6r&^ zfQ~^NWzZ?prmy?s#(}HMO2ii68`5!16=#hn{UfGVv5a}!D9a>ORM0Vu5rK8Zs_Rno zV`f|6F6*E-JPRPpsYQLpJ;QMC@{ z$$WtQO<--owB<;(JSp8VW76VGy5JNIYus>6^*@?y^k-D9z9&o#`AvHzV>T7p8GOcY z<7N4uo7;*wQ$$g#7Rat}ry%60$<;Rwa%$mKp`<=SsjK7#vI(prUP@%_#R7M%Bx=yU z1#TJjjpFREQHko1FnL(x7fo<0-bnF#4v=q;>=W7u+ zgN9wQq}Ne!oY`t6zcjV6nYxXEVq%Mt{2q@@ z)o%9KRODj7u&hzuZ~11N6WFxqDm;7npMUzI{Xn}Q;Wv_a6X!L&rQ>b9Bd}`;;X+U# zvN5J=bX&^te}Dh~lV3J7b&FxX<9V)I4xdrWBrJt3%*uP}PJLg;Gk7+Ii@}AmQVr@u zd|0{zmf?BQ)9``7?j@vB(P(7Qy#ETPuNME30{B(KWX*; zoZIs?Qm49mt|C3s^*NH+YiLd2D73|Jl8sXn`mP2tV@VAQxtD9I<#2v&4 ztYgeHTCtvcTDiIr9oU2(zHk+a{p673*g~1RIykoBaKz{lGBv8;r-Ao9aN&`M&vh~{ zYK+ClH;zWg&v8v5?@@TKAtx~0a}E0hE@BG@_X+$3sS(2M>;4$4vX?&j?>~qe5#Bap z0ot*hNOxlwZYQ2Djug&z+H5Df5GNztK-YsR<``dL($VlOk{b4J`!|sY{0wLKtLk$% z_pAEosx%7SRrIUKi6B#|ir`~;p)PvlKdkmV*ME**@LTzMmcA6rtzF$$aAYL=SERE& zSMXr=OFZ-?j$grv>|#=PGF|%!e?KL37t?)D5UMM5bA!s(hzeZ?DNk@$YeZSmYliq1 zn>D^}1%8PqBRFFup$e8(v?z^Jz%~3Rfxc~@aW*6vim#VD`);I@J8ncyN0C#se+o|{ zkxHu58ATZ8tP<}UMY!){XpNtsu|atcg%+l-H}KpRS_b}Tz(b=-7M5of68a&&VeuRn j5_leG`J3kG1sc4D*SYd5yo(F?HRqF@`wc$CZ?XA1&8r2t diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class deleted file mode 100644 index 5c06f83d386c6f7421689d679b695dafcc64b46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3229 zcmbVOYje{^6g_L3D0T!fh8RLxnn0kjLlBfl3x*w@CJJTiu%yjyxA3FU>olfsc3Rx$al=OpTX|;RKx#!-!t3UsF_8Wk!_#uM?k{VJv z_Mn3yyU3ThVRL8RxHGpX%z&Zeise|rC_{3nFr%T9;XpX46=H7v8dE3S-f%8@J07Q^NQ8yr@Q_ z45=CqI0>q3kV&4BhW!k~J0c4wu!0pMM$90K12VjW3>StXxG=zKK+5Jz3c-U1lQ*_J z7iPMU#~}@eb@bv0!@hP!WDKv>7PWpi-c!QyDsGzV$qXx;L zm!%x#rC-MYj*$m}@F@dlV&u^AP@}rM-g3-9T6@;-dN*xfFr3`ZQYC}2%d+;)%M4#&=v4zLyS7a=Ow6UiOooc{O&xFH5*aIn zGK{H{V`FzwSrkkbB^_6Al_BGcpzJyU72l>>pv1~LE6n7;&@T((nvQW?XXx}q!(A4W zb%p^|%618um1H+`+{6UKo_P^WQUJL&lfwuyxP?g#w{^U;saWM}GFLoqaog80#c*!N zVAnV3=AD_YTJsJMS{`L+OsQkJJ+D-DglylLrO^_lqD<|8p}S%^V!G9s6W)D3XVXZo z;+ou^;hrU*ywsCn;=fu)^;XK3SB-IiyH2}>4je#=RAT6Q=}?RD1;sB`k>l%Ryx{O%68 z88q=&gQvp>b&X?TGYmbloMm@O7?m&vTEXkw3|w!8p{t=j{iPOgyeJ~L#hsch{K1Or zF14ERsiyj`6l2@M`zuYMPJj8A5#`QnfXeUkQSS|&QqzELEt2y+enj_^7NZP09 zqp!1Pcnx@p;|aPHXxFS_527&}{lif)&WOioVnT^CN z-fyT6zG#(JX_W;&_y8(Ukt)k)%OBvoZ-Rfovc#`vX2UE?rNAmHmD!#%r%!+1ch2eV zU;g>=Cjhg^W`y8J3$V7>;AuRwi#aIXkZ#ZpP6| zvqnzOoXkyT9_}AF%J)&k(7I??-Es|gE+fOmk-&0EY=ywS zRzH?UZPX>EsqF1o(qoNi!YT!;Riv;+U}-fZ%A)1-0xQGued)64@g-P?^$IqqxChNu z>WD4 zU`u%AfLXehS{z%jRY9wYG}eYZJKNe(#@vFWUvQS49Mb&m5VG`JqdwB zDhBZ|ak#oec-zDCz35@ilV!^b$E@plgQ?ZYz6nDrhA~2|N_xSb)dwd9HiqNeVp@7! z!J`5@7Hy46$Awyr8Cf!FOj(*+F6jb2e%*L%WyAFhEgCS?YuUamN%yn01(ppNmOfH0 zOz5Q}+Js3&kU=9pG8hci-Y`R6y5m6I?KsW23lSVB!`{P}>8wmh|F_ zhY6BinP3Fk?qrT2xS+eMJBH{RxfvEsZEi#>cp7rg}j$Ou81Q?TV%Xca6GQ zZf003R+OAHEY@;QxJZIxyY2i5L=46VZ@FFwHk*vT-z19aX7P4pfxfB^`VUnzSOdE@ zPq$-9kFg-~x~a>8SY8t}JbGz|5fZ<0vV}}RhYI*&H!uA0{Y4%Hf`ng=;}yKB;IxX@@VdaJ8p1Ltk7*Ngx`Ms z|H&_^Ow~tU@33%HpFLH>2lCB=C9sC7ycOr=>1`D@iV3_c(Aj!t)u#?xmR{;NHOJ8% z1s@1(uF>^Y^`YQHfenkhvakGN!bXCO@R&Qy|D?R-@%J%aQzCerrzZC+#P}Sgr4Mx+ z0g1ND5N%hW9KVbu7ZJbUc^~0ZUOmBhQK&e|k?Q+n49EB;@C1$rv92&~J#D+LAaT6C zqw_M7-O;um5Kl$tu`+^V-(hY0j|7KH*qn-jIM^rfGZG^N-rIf_^_}O>UH_d7 z5Fl^zL}(?(G&ZA+s5|)V^bj}GXFYLB#C39o1)LqwG0F8MCKYvmBd%cgy1$4-U<%Xx zmFe2USu$O!%#=iT8T;kR5l=IjRA6T)O==L|PrkwL131a2jCGM5rN&(gEW7Jd^#RWo zIr52i$5Jt$s+x**bf%)0aPZvq-(-dOsqzVTF|m6|bRXsIA<*816m4V;O2RR@*aG3M zfUva56v@PNc`1^@ba^R?-jJh_a%}bGn1LBkIKo-dJ1Hr!v>pQH@kj){>%OJc7sapN z1H1k&~O;5``6@k0b9IQ&g=eW;7z=P_h^sP_CC(wBc%QX(*v&L diff --git a/discordit/build/reports/problems/problems-report.html b/discordit/build/reports/problems/problems-report.html deleted file mode 100644 index af03b7fe..00000000 --- a/discordit/build/reports/problems/problems-report.html +++ /dev/null @@ -1,663 +0,0 @@ - - - - - - - - - - - - - Gradle Configuration Cache - - - -

- -
- Loading... -
- - - - - - diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 deleted file mode 100644 index 67007ff38f62c1ed232e30dcd760319509ad0958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10648 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 D>ZPB( diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin deleted file mode 100644 index 998a8ed1cd7f18bf1b70231f5494843e48b5a811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1646 zcmYjQX;4#F6uyTbizM&@WeJPa1r&+*p*96X5qJ;{@C4q=Lr4_}A;GW(6P6-f5Q6L$ zR8&;z3hq{_;)1wQs7s~lbhKkTE=bLkV5DT;o z7GPUE0o!4FWY!o89Z;RA*r+cmaYXfndXq_SD4K{GbMz*SAxEn(aYFSbt+7n6(F)OO z5vtRgOzK>%Gk>rIiGm5Ur4L(W&re=&uWNs(Tjs(NoQ)Wnd5|lrA5WS?1nU*P#%rhh zU(Bw)YBRVd)Q$OobH^Uo))O@uwZ#ULzQkax5Q@D}8}tp zM7277fmRrd%>3r#MQpj#(|d#5?rRUhFK0=z@}=x7&R@*eyKw!+j(?7oPI;qj4+`s^ zgc*_wkgn)2%9u*;)8?$@o*MKRHI2p`|zugvt8Z8|h@kDsP% zefo?TmZD-~;;pE;#><;d1W7lqNrkP~M` zX-qmdotH7im5j)mfAo}j7tv+(eXCMMe-gh8+X|N>v${;3ftreo3-lUw2|x5i|5LA? zM)~V!vL~-2Li%zJWKxMfgtT(z-M|6&7Nl-$3rxCoDNC8DM&^oQEm5nTP95rijv1p0Wk`UG66YAlEVXHR9J?x`0xZtcxH?YW%EZtq%sO60djP4^JP+{ zX{u0^z=!Qoq|z@+k&XO#2cbxd4Y1f$i%qjwg~iG&7FD75*85Hs@E1NgSj*_BT=@!8 zPv(*NWC2-7+B-N-^cCT91>Lpcr~!qK$nTe^HB|8GqANlmHCWEBx?ZI z0b37L1IQbJYJ&J?AX|VeAOC0LS+cc&zXG-us5XdM2jqJGevxpol_O>Y;C5g)0^I=C zLVlY7Zw96VIHP#{F>YG`Z-wY>5Z?)8zHoVlr2*B~fVTs)1E@-CpLi$WUBH&QTJBwT z1KtBn7tq}x-wWhEzA&$qwL#^6zz2Xm2z1-K!iqzH4+C=qxJql`&~E@A1+E9kZ~4MY zgklSE(lNltfjI$mu9YmZ7w}1-dq8AKNH_)fG%#m?%e4}v^#MK$Y(H>qVAY>F2lzZN z7l1ZeS+Xwzz68nvpnAYZZDGp#4)7qbL%=n>!%4pfd>Pm)Ky`yv#PF+t2fzZzyaxCO PV6Ow${SJ^iHa_S-l<(Q& diff --git a/discordit/gradle/wrapper/gradle-wrapper.jar b/discordit/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 8bdaf60c75ab801e22807dde59e12a8735a34077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg diff --git a/discordit/gradle/wrapper/gradle-wrapper.properties b/discordit/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 2a84e188..00000000 --- a/discordit/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/discordit/gradlew b/discordit/gradlew deleted file mode 100644 index ef07e016..00000000 --- a/discordit/gradlew +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH="\\\"\\\"" - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/discordit/gradlew.bat b/discordit/gradlew.bat deleted file mode 100644 index db3a6ac2..00000000 --- a/discordit/gradlew.bat +++ /dev/null @@ -1,94 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH= - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/discordit/settings.gradle b/discordit/settings.gradle deleted file mode 100644 index 955baf54..00000000 --- a/discordit/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'discordit' \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java b/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java deleted file mode 100644 index 366f80c0..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java +++ /dev/null @@ -1,229 +0,0 @@ -package com.sprint.mission.discodeit; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.ChannelRepository; -import com.sprint.mission.discodeit.repository.MessageRepository; -import com.sprint.mission.discodeit.repository.UserRepository; -import com.sprint.mission.discodeit.repository.file.FileChannelRepository; -import com.sprint.mission.discodeit.repository.file.FileMessageRepository; -import com.sprint.mission.discodeit.repository.file.FileUserRepository; -import com.sprint.mission.discodeit.service.ChannelService; -import com.sprint.mission.discodeit.service.UserService; -import com.sprint.mission.discodeit.service.basic.BasicChannelService; -import com.sprint.mission.discodeit.service.basic.BasicMessageService; -import com.sprint.mission.discodeit.service.basic.BasicUserService; -import com.sprint.mission.discodeit.service.file.FileUserService; -import com.sprint.mission.discodeit.service.jcf.JCFChannelService; -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.service.MessageService; -import com.sprint.mission.discodeit.service.jcf.JCFMessageService; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -import static com.sprint.mission.discodeit.entity.ChannelType.PUBLIC; - - -public class JavaApplication { - static void userCRUDTest(UserService userService) { - System.out.println("--유저 생성 테스트--"); - // 생성 - User user = userService.create("서현하", "hhh@naver.com", "010-2222-2222"); - User user2 = userService.create("김춘자", "ccc@naver.com", "010-8888-8888"); - - //User객체 user에다가 userService.create 메서드의 반환값으로 받은 유저객체를 담는다 - - // 조회 - //userService안에 있는 find 메서드의 매개변수로 user.getId를 보낸다 - User foundUser = userService.find(user.getId()); - System.out.println(); - System.out.println("유저 조회(단건)"); - System.out.println("유저 아이디 : " + foundUser.getId()); - System.out.println("이름 : " + foundUser.getDisplayName()); - System.out.println("이메일 : " + foundUser.getEmail()); - System.out.println("휴대폰 번호 : " + foundUser.getPhoneNumber()); - System.out.println("생성 시간 : " + foundUser.getCreatedAt() + "\n"); - - /* userService.find 메서드에 위에서 가져온 user객체의 id를 매개변수로 입력한다 - 반환값으로 가져온 유저객체를 foundUser라는 변수명인 유저변수에 담는다 - 그리고 foundUser가 가지고있는 id와 이름,이메일,전화번호,생성시간을 출력한다 - */ - List foundUsers = userService.findAll(); - System.out.println("유저 조회 건수(다건) : " + foundUsers.size()); - for (int i = 0; i < foundUsers.size(); i++) { - System.out.println("유저 아이디 : " + foundUsers.get(i).getId()); - //foundUsers는userService.findall 메소드를 통해서 받아온 전체유저가 담긴 리스트다 - System.out.println("이름 : " + foundUsers.get(i).getDisplayName()); - System.out.println("이메일 : " + foundUsers.get(i).getEmail()); - System.out.println("휴대폰 번호 : " + foundUsers.get(i).getPhoneNumber()); - System.out.println("생성 시간 : " + foundUsers.get(i).getCreatedAt() + "\n"); - - /* data list를 foundUsers라는 유저객체를 담을 수 있는 list에 담는다 - foundUsers list의 크기를 출력한다(유저 조회건수) - for문으로 foundUsers의 size만큼 반복문을 수행한다 - foundUsers의 i번째에 들어있는 user객체의 값을 출력한다 - */ - - }// 수정 - userService.update(user.getId(), "이말자", "why@naver.com", "010-8282-8282"); - //userService에 있는 업데이트 메소드를 호출 - System.out.println(); - - /* userService.delete메소드에 위에서 생성한 user 변수의 id값을 매개변수로 입력한다 - */ - - - // 삭제 <삭제할 유저의 이름을 출력만한다> - System.out.println(user.getDisplayName() + " 유저를 삭제합니다" + "\n"); - userService.delete(user.getId()); - //매개변수 Id - /* user service에 findall메소드를 통해서 유저삭제이후 list를 새로 반환받는다 - for문 안에서 유저삭제이후 list를 돌리면서 해당 list의 유저가 가지고있는 값을 출력한다 - */ - List foundUsersAfterDelete = userService.findAll(); - - System.out.println("유저 조회 건수: " + foundUsersAfterDelete.size()); - for (int i = 0; i < foundUsersAfterDelete.size(); i++) { - System.out.println("유저 아이디 : " + foundUsersAfterDelete.get(i).getId()); - System.out.println("이름 : " + foundUsersAfterDelete.get(i).getDisplayName()); - System.out.println("이메일 : " + foundUsersAfterDelete.get(i).getEmail()); - System.out.println("휴대폰 번호 : " + foundUsersAfterDelete.get(i).getPhoneNumber()); - System.out.println("생성 시간 : " + foundUsersAfterDelete.get(i).getCreatedAt() + "\n"); - } //get(i) i번째, - - } - - static void channelCRUDTest(ChannelService channelService) { - // 생성 - /* 입력값으로 채널을 생성하고 새 채널을 만들어서 channel객체를 담는 리스트에 - 넣어서 리턴값으로 채널을 반환해 다시 변수에 넣는다 - */ - System.out.println("-- 채널 생성 테스트 --"); - System.out.println(); - Channel channel = channelService.create("주의사항",PUBLIC); - Channel channel2 = channelService.create("자유 게시판",PUBLIC); - System.out.println(); - - - // 조회 - //생성한 채널중 첫번째로 생성한 채널의 객체를 가져와서 출력했다 - Channel foundChannel = channelService.find(channel.getId()); - System.out.println("채널 조회(단건): " + foundChannel.getId()); - System.out.println("채널 이름 : " + channel.getDisplayName()); - System.out.println(); - - // list 개체를 담아서 변수이름 foundChannels를 선언하고 findAll메소드를 이용 - List foundChannels = channelService.findAll(); - System.out.println("채널 조회(다건): " + foundChannels.size()); - for (int i = 0; i < foundChannels.size(); i++) { - System.out.println("채널 이름 : " + foundChannels.get(i).getDisplayName()); - - } - // int i를 0으로 선언하고 i가 파운드채널스 리스트의 크기보다 작으면 for문을 이용해서 - // foundChannels의 list값을get(i) - // 수정 - System.out.println(); - System.out.println("수정 전 이름 : " + channel.getDisplayName()); - channelService.update(channel.getId(), "공지"); - System.out.println("수정 후 이름 : " + channel.getDisplayName()); - System.out.println("수정 시간 : " + channel.getUpdatedAt()); - - // 삭제 - //삭제한 후에 남아있는 채널이 담긴 리스트에 삭제하고 싶은 리스트를 없앤 다음에 리스트 가져옴 - channelService.delete(channel.getId()); - List foundChannelsAfterDelete = channelService.findAll(); - System.out.println(channel.getDisplayName() + " 채널을 삭제합니다" + "\n"); - System.out.println("\n채널 삭제 후 남은 목록"); - System.out.println("채널 삭제: " + foundChannelsAfterDelete.size()); - - for (int i = 0; i < foundChannelsAfterDelete.size(); i++) { - System.out.println("남은 채널 아이디 : " + foundChannelsAfterDelete.get(i).getId()); - System.out.println("남은 이름 : " + foundChannelsAfterDelete.get(i).getDisplayName()); - System.out.println(); - System.out.println("---------------------------"); - System.out.println(); - } - } - - static void messageCRUDTest(MessageService messageService) { - // 생성 - UUID channelId = UUID.randomUUID(); - UUID authorId = UUID.randomUUID(); - Message message = messageService.create("안녕하세요.", channelId, authorId); - System.out.println("메시지 생성: " + message.getId()); - // 조회 - Message foundMessage = messageService.find(message.getId()); - System.out.println("메시지 조회(단건)\n메세지 아이디 : " + foundMessage.getId()+ "\n메세지 내용 : " + foundMessage.getContent() +"\n"); - List foundMessages = messageService.findAll(); - System.out.println("메시지 조회(다건): " + foundMessages.size()); - for(int i = 0; i < foundMessages.size(); i++) { - System.out.println("메세지 내용 : " + foundMessages.get(i).getContent()); - } - // 수정 - Message updatedMessage = messageService.update(message.getId(), "정말 힘들었습니다."); - System.out.println("메시지 수정 : " + updatedMessage.getContent()); - // 삭제 - messageService.delete(message.getId()); - List foundMessagesAfterDelete = messageService.findAll(); - System.out.println("메시지 삭제 : " + foundMessagesAfterDelete.size()); - } - - static User setupUser(UserService userService) { - User user = userService.create("woody", "woody@codeit.com", "woody1234"); - return user; - } - - static Channel setupChannel(ChannelService channelService) { - Channel channel = channelService.create("공지",ChannelType.PUBLIC); - return channel; - } - - static void messageCreateTest(MessageService messageService, Channel channel, User author) { - Message message = messageService.create("안녕하세요.", channel.getId(), author.getId()); - System.out.println("메시지 생성: " + message.getId()); - } - - public static void main(String[] args) { - - // 서비스 초기화 - UserRepository userRepository = new FileUserRepository(); - ChannelRepository channelRepository = new FileChannelRepository(); - MessageRepository messageRepository = new FileMessageRepository(); - UserService userService = new FileUserService(); - ChannelService channelService = new JCFChannelService(); - MessageService messageService = new JCFMessageService(); - MessageService messageService2 = new BasicMessageService(userRepository,channelRepository); - - - //테스트 - userCRUDTest(userService); - channelCRUDTest(channelService); - messageCRUDTest(messageService); - System.out.println(); - - - try { - User user = userRepository.save(new User("woody", "woody@codeit.com", "1234")); - Channel channel = channelRepository.save(new Channel("공지",PUBLIC)); - - messageService.create("안녕하세요!", channel.getId(), user.getId()); - System.out.println("메시지 생성 성공!"); - - UUID fakeId = UUID.randomUUID(); - messageService.create("가짜 유저의 메시지", channel.getId(), fakeId); - - } catch (NoSuchElementException e) { - System.out.println("검증 실패 (정상): " + e.getMessage()); - } - - // 셋업 - User user = setupUser(userService); - Channel channel = setupChannel(channelService); - // 테스트 - messageCreateTest(messageService, channel, user); - } -} - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java deleted file mode 100644 index fc3e79eb..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.util.List; -import java.io.Serializable; -import java.util.UUID; - - -public class Channel implements Serializable { - private static final long serialVersionUID = 1L; - - private final UUID id; - private String displayName; - private Long createdAt; - private Long updatedAt; - private ChannelType type; - - - public Channel(String displayName,ChannelType type) { - this.id = UUID.randomUUID(); - this.displayName = displayName; - long now = System.currentTimeMillis(); - this.createdAt = now; - this.updatedAt = now; - this.type = type; - - } - public void update(String displayName) { - this.displayName = displayName; - } - - public UUID getId() { - return id; - } - - public String getDisplayName() { - return displayName; - } - - public void setDisplayname(String displayName) { - this.displayName = displayName; - } - - public Long getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Long createdAt) { - this.createdAt = createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Long updatedAt) { - this.updatedAt = updatedAt; - } - - public void setDisplayName(String displayName) { - this.displayName = displayName; - } -} - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java deleted file mode 100644 index 15b39978..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.io.Serializable; - -public enum ChannelType implements Serializable { - PUBLIC; - private static final long serialVersionUID = 1L; -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java deleted file mode 100644 index efb99b63..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.io.Serializable; -import java.util.UUID; - -public class Message implements Serializable { - private static final long serialVersionUID = 1L; - - private UUID id; - private String content; - private UUID channelId; - private UUID authorId; - - - public Message(String content, UUID channelId, UUID authorId) { - this.id = UUID.randomUUID(); - this.content = content; - this.channelId = channelId; - this.authorId = authorId; - } - - public void update(String content) { this.content = content; } - - public UUID getId() { return id; } - - public String getContent() { return content; } - - public void setContent(String content) { - this.content = content; - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java deleted file mode 100644 index 1a68f3e4..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.io.Serializable; -import java.util.UUID; - -/* User객체에 들어갈 정보를 private변수 선언을 한다 -public User 입력값(매개변수)을 입력한다 -유저객체의 변수에 입력변수(매개변수)의 값을 입력한다 -UUID부터 메서드들은 리턴값을 반환한다 - */ - -public class User implements Serializable { - private static final long serialVersionUID = 1L; - - private UUID id; - private String displayName; - private String email; - private String phoneNumber; - private Long createdAt; - private Long updatedAt; - - public User(String displayName, String email, String phoneNumber) { - this.id = UUID.randomUUID(); - this.displayName = displayName; - this.email = email; - this.phoneNumber = phoneNumber; - long now = System.currentTimeMillis(); - this.createdAt = now; - this.updatedAt = now; - } - // - public void update(String displayName, String email, String phoneNumber) { - this.displayName = displayName; - this.email = email; - this.phoneNumber = phoneNumber; - this.updatedAt = System.currentTimeMillis(); - } - - public UUID getId() { - return id; - } - - public String getDisplayName() { - return displayName; - } - - public String getEmail() { - return email; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public Long getCreatedAt() { - return createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public String toString() { - return "User [이름=" + displayName + ", 이메일=" + email + ", 전화번호=" + phoneNumber + "]"; - } - - //TODO 메서드 추가 - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - public void setEmail(String email) { - this.email = email; - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java deleted file mode 100644 index d416ad92..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sprint.mission.discodeit.repository; - -import com.sprint.mission.discodeit.entity.Channel; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public interface ChannelRepository { - - Channel save(Channel channel); - - Optional findById(UUID id); - - List findAll(); - - boolean existsById(UUID id); - - void deleteById(UUID id); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java deleted file mode 100644 index ce21a9b8..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sprint.mission.discodeit.repository; - -import com.sprint.mission.discodeit.entity.Message; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public interface MessageRepository { - - Message save(Message message); - - Optional findById(UUID id); - - List findAll(); - - boolean existsById(UUID id); - - void deleteById(UUID id); - -} - - - - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java deleted file mode 100644 index 4e067f7d..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.sprint.mission.discodeit.repository; - -import com.sprint.mission.discodeit.entity.User; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public interface UserRepository { - - User save(User user); - - Optional findById(UUID id); - - List findAll(); - - boolean existsById(UUID id); - - void deleteById(UUID id); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java deleted file mode 100644 index a2a02855..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.sprint.mission.discodeit.repository.file; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.repository.ChannelRepository; - -import java.io.*; -import java.util.*; - -public class FileChannelRepository implements ChannelRepository { - private final String fileName = "channels.dat"; // 채널 데이터 저장 파일명 - - @Override - public Channel save(Channel channel) { - List channels = findAll(); - channels.removeIf(c -> c.getId().equals(channel.getId())); - channels.add(channel); - - saveAllToFile(channels); - return channel; - } - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(channel -> channel.getId().equals(id)) - .findFirst(); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - File file = new File(fileName); - if (!file.exists() || file.length() == 0) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - @Override - public boolean existsById(UUID id) { - return findById(id).isPresent(); - } - - @Override - public void deleteById(UUID id) { - List channels = findAll(); - if (channels.removeIf(channel -> channel.getId().equals(id))) { - saveAllToFile(channels); - } - } - - private void saveAllToFile(List channels) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(channels); - } catch (IOException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java deleted file mode 100644 index c3cf78dd..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.sprint.mission.discodeit.repository.file; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.MessageRepository; - -import java.io.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class FileMessageRepository implements MessageRepository { - private final String fileName = "messages.dat"; - - @Override - public Message save(Message message) { - List messages = new ArrayList<>(findAll()); - messages.removeIf(m -> m.getId().equals(message.getId())); - messages.add(message); - - saveAllToFile(messages); - return message; - } - - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(message -> message.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() { - File file = new File(fileName); - if (!file.exists()) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) { - List messages = new ArrayList<>(findAll()); - if (messages.removeIf(m -> m.getId().equals(id))) { - saveAllToFile(messages); - } - } - - private void saveAllToFile(List messages) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(messages); - } catch (IOException e) { - e.printStackTrace(); - } - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java deleted file mode 100644 index 3b988100..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.repository.file; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.UserRepository; - -import java.io.*; -import java.util.*; - -public class FileUserRepository implements UserRepository { - private final String fileName = "users.dat"; - - @Override - public User save(User user) { - List users = findAll(); - users.removeIf(u -> u.getId().equals(user.getId())); - users.add(user); - - saveAllToFile(users); - return user; - } - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(user -> user.getId().equals(id)) - .findFirst(); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - File file = new File(fileName); - if (!file.exists()) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - @Override - public boolean existsById(UUID id) { - return findById(id).isPresent(); - } - - @Override - public void deleteById(UUID id) { - List users = findAll(); - if (users.removeIf(user -> user.getId().equals(id))) { - saveAllToFile(users); - } - } - - // 파일 저장을 위한 헬퍼 메서드 - private void saveAllToFile(List users) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(users); - } catch (IOException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java deleted file mode 100644 index c5c49b3a..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sprint.mission.discodeit.repository.jcf; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.repository.ChannelRepository; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class JCFChannelRepository implements ChannelRepository { - private final List channels = new ArrayList<>(); - - @Override - public Channel save(Channel channel) { - channels.removeIf(c -> c.getId().equals(channel.getId())); - channels.add(channel); - return channel; - } - - @Override - public Optional findById(UUID id) { - return channels.stream() - .filter(c -> c.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() {return new ArrayList<>(channels);} - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) {channels.removeIf(c -> c.getId().equals(id));} - -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java deleted file mode 100644 index 2ce378ac..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sprint.mission.discodeit.repository.jcf; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.MessageRepository; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class JCFMessageRepository implements MessageRepository { - private final List messages = new ArrayList<>(); - - @Override - public Message save(Message message) { - messages.removeIf(m -> m.getId().equals(message.getId())); - messages.add(message); - return message; - } - - @Override - public Optional findById(UUID id) { - return messages.stream() - .filter(m -> m.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() {return new ArrayList<>(messages);} - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) {messages.removeIf(m -> m.getId().equals(id));} - -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java deleted file mode 100644 index 4a547df3..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.sprint.mission.discodeit.repository.jcf; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.UserRepository; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class JCFUserRepository implements UserRepository { - private final List users = new ArrayList<>(); - - @Override - public User save(User user) { - users.removeIf(u -> u.getId().equals(user.getId())); - users.add(user); - return user; - } - - @Override - public Optional findById(UUID id) { - return users.stream() - .filter(user -> user.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() {return new ArrayList<>(users);} - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) {users.removeIf(u -> u.getId().equals(id));} -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java deleted file mode 100644 index de68c7b0..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.sprint.mission.discodeit.service; - - -import com.sprint.mission.discodeit.entity.Channel; // 아까 만든 Channel 클래스 가져오기 -import com.sprint.mission.discodeit.entity.ChannelType; - -import java.util.List; -import java.util.UUID; - -public interface ChannelService { - - Channel create(String displayName,ChannelType type); - - Channel find(UUID id); - - List findAll(); - - Channel update(UUID id, String displayName); - - boolean delete(UUID id); - -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java deleted file mode 100644 index afeda909..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sprint.mission.discodeit.service; - -import com.sprint.mission.discodeit.entity.Message; -import java.util.List; -import java.util.UUID; //필요한 함수를 사용하기위해 외부의 라이브러리를 가져온다 - - -public interface MessageService { - - Message create(String content, UUID channelId, UUID authorId); - - Message find(UUID id); - - List findAll(); - - Message update(UUID id, String content); - - boolean delete(UUID id); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java deleted file mode 100644 index 99afe3b6..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sprint.mission.discodeit.service; - -import com.sprint.mission.discodeit.entity.User; - -import java.util.List; -import java.util.UUID; - -public interface UserService { - - User create(String username, String email, String password); - - User find(UUID userId); - - List findAll(); - - User update(UUID userId, String newUsername, String newEmail, String newPassword); - - void delete(UUID userId); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java deleted file mode 100644 index a48f9de2..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.sprint.mission.discodeit.service; - -import com.sprint.mission.discodeit.entity.User; -import java.util.List; -import java.util.UUID; - -public interface UserService2 { - - User find(UUID id); - - List findAll(); - - void update(UUID id,String displayName, String email, String phoneNumber); - - boolean delete(UUID id); - - User create(String displayName, String email, String phoneNumber); -} - - -/* UserService라는 interface안에 메서드 빈상자를 만들고 상자의 이름이랑 입력값만 지정해둔 상태고 -이 빈상자를 가지고 JCFUserService로 들고간다 - */ \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java deleted file mode 100644 index 54711331..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.sprint.mission.discodeit.service.basic; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.repository.ChannelRepository; -import com.sprint.mission.discodeit.service.ChannelService; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -public class BasicChannelService implements ChannelService { - private final ChannelRepository channelRepository; - - public BasicChannelService(ChannelRepository channelRepository) { - this.channelRepository = channelRepository; - } - - @Override - public Channel create(String displayName,ChannelType type) { - Channel channel = new Channel(displayName,type); - return channelRepository.save(channel); - } - - @Override - public Channel find(UUID id) { - return channelRepository.findById(id) - .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); - } - - @Override - public List findAll() { - return channelRepository.findAll(); - } - - @Override - public Channel update(UUID id, String displayName) { - Channel channel = channelRepository.findById(id) - .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); - channel.update(displayName); - return channelRepository.save(channel); - } - - @Override - public boolean delete(UUID id) { - if (!channelRepository.existsById(id)) { - throw new NoSuchElementException("Channel with id " + id + " not found"); - } - return false; - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java deleted file mode 100644 index ff1c6073..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.service.basic; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.ChannelRepository; -import com.sprint.mission.discodeit.repository.MessageRepository; -import com.sprint.mission.discodeit.repository.UserRepository; -import com.sprint.mission.discodeit.service.MessageService; - -import java.util.ArrayList; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -public class BasicMessageService implements MessageService { - private final List data = new ArrayList<>(); - private final UserRepository userRepository; - private final ChannelRepository channelRepository; - - public BasicMessageService(UserRepository userRepository, ChannelRepository channelRepository) { - this.userRepository = userRepository; - this.channelRepository = channelRepository; - } - - @Override - public Message create(String content, UUID channelId, UUID authorId) { - if (!userRepository.existsById(authorId)) { - throw new NoSuchElementException("존재하지 않는 유저(authorId)입니다."); - } - if (!channelRepository.existsById(channelId)) { - throw new NoSuchElementException("존재하지 않는 채널(channelId)입니다."); - } - Message message = new Message(content, channelId, authorId); - data.add(message); - return message; - } - - @Override - public Message find(UUID id) { - return data.stream() - .filter(m -> m.getId().equals(id)) - .findFirst() - .orElse(null); - } - - @Override - public List findAll() {return new ArrayList<>(data);} - - @Override - public Message update(UUID id, String content) { - Message message = find(id); - if (message != null) { - message.setContent(content); - } - return message; - } - @Override - public boolean delete(UUID id) { - return data.removeIf(m -> m.getId().equals(id)); - } -} - - - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java deleted file mode 100644 index cc85037e..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.sprint.mission.discodeit.service.basic; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.UserRepository; -import com.sprint.mission.discodeit.service.UserService; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -public class BasicUserService implements UserService { - private final UserRepository userRepository; - - public BasicUserService(UserRepository userRepository) { - this.userRepository = userRepository; - } - - @Override - public User create(String username, String email, String password) { - User user = new User(username, email, password); - return userRepository.save(user); - } - - @Override - public User find(UUID userId) { - return userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - } - - @Override - public List findAll() { return userRepository.findAll();} - - @Override - public User update(UUID userId, String newUsername, String newEmail, String newPassword) { - User user = userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - user.update(newUsername, newEmail, newPassword); - return userRepository.save(user); - } - - @Override - public void delete(UUID userId) { - if (!userRepository.existsById(userId)) { - throw new NoSuchElementException("User with id " + userId + " not found"); - } - userRepository.deleteById(userId); - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java deleted file mode 100644 index ec78f9e5..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.sprint.mission.discodeit.service.file; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.service.ChannelService; - -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Optional; -import java.util.UUID; - -public class FileChannelService implements ChannelService { - private final Path DIRECTORY; - private final String EXTENSION = ".ser"; - - public FileChannelService() { - this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", Channel.class.getSimpleName()); - if (Files.notExists(DIRECTORY)) { - try { - Files.createDirectories(DIRECTORY); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - private Path resolvePath(UUID id) { return DIRECTORY.resolve(id + EXTENSION); } - - @Override - public Channel create(String displayName,ChannelType type) { - Channel channel = new Channel(displayName,type); - Path path = resolvePath(channel.getId()); - try ( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(channel); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return channel; - } - - @Override - public Channel find(UUID id) { - Channel channelNullable = null; - Path path = resolvePath(id); - if (Files.exists(path)) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - channelNullable = (Channel) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - return Optional.ofNullable(channelNullable) - .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); - } - - @Override - public List findAll() { - try { - return Files.list(DIRECTORY) - .filter(path -> path.toString().endsWith(EXTENSION)) - .map(path -> { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - return (Channel) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - }) - .toList(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public Channel update(UUID id, String displayName) { - Channel channel = find(id); - channel.setDisplayName(displayName); - save(channel); - return null; - } - - @Override - public boolean delete(UUID id) { - Path path = resolvePath(id); - - if (Files.notExists(path)) { - throw new NoSuchElementException("Channel with id " + id + " not found"); - } - try { - Files.delete(path); - return true; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private void save(Channel channel) { - Path path = resolvePath(channel.getId()); - try ( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(channel); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private Channel readFromFile(Path path) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - return (Channel) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java deleted file mode 100644 index 4dfc75ef..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.sprint.mission.discodeit.service.file; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.MessageRepository; - -import java.io.*; -import java.util.*; - -public class FileMessageRepository implements MessageRepository { - private final String fileName = "messages.dat"; - - @Override - public Message save(Message message) { - List messages = findAll(); - messages.removeIf(m -> m.getId().equals(message.getId())); - messages.add(message); - - saveAllToFile(messages); - return message; - } - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(message -> message.getId().equals(id)) - .findFirst(); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - File file = new File(fileName); - if (!file.exists()) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - @Override - public void deleteById(UUID id) { - List messages = findAll(); - if (messages.removeIf(message -> message.getId().equals(id))) { - saveAllToFile(messages); - } - } - - private void saveAllToFile(List messages) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(messages); - } catch (IOException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java deleted file mode 100644 index d3f77c7c..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.sprint.mission.discodeit.service.file; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.service.UserService; - -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Optional; -import java.util.UUID; - -public class FileUserService implements UserService { - private final Path DIRECTORY; - private final String EXTENSION = ".ser"; - - public FileUserService() { - this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", User.class.getSimpleName()); - if (Files.notExists(DIRECTORY)) { - try { - Files.createDirectories(DIRECTORY); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - private Path resolvePath(UUID id) { - return DIRECTORY.resolve(id + EXTENSION); - } - - @Override - public User create(String username, String email, String password) { - User user = new User(username, email, password); - Path path = resolvePath(user.getId()); - try ( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(user); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return user; - } - - @Override - public User find(UUID userId) { - User userNullable = null; - Path path = resolvePath(userId); - if (Files.exists(path)) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - userNullable = (User) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - return Optional.ofNullable(userNullable) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - } - - @Override - public List findAll() { - try { - return Files.list(DIRECTORY) - .filter(path -> path.toString().endsWith(EXTENSION)) - .map(path -> { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - return (User) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - }) - .toList(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public User update(UUID userId, String newUsername, String newEmail, String newPassword) { - User userNullable = null; - Path path = resolvePath(userId); - if (Files.exists(path)) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - userNullable = (User) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - User user = Optional.ofNullable(userNullable) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - user.update(newUsername, newEmail, newPassword); - - try( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(user); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return user; - } - - @Override - public void delete(UUID userId) { - Path path = resolvePath(userId); - if (Files.notExists(path)) { - throw new NoSuchElementException("User with id " + userId + " not found"); - } - try { - Files.delete(path); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java deleted file mode 100644 index 18b91739..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.service.jcf; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.service.ChannelService; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -public class JCFChannelService implements ChannelService { - private final List channels = new ArrayList<>(); - - @Override - public Channel create(String displayName,ChannelType type) { - - try { - Channel channel = new Channel(displayName,type); - channels.add(channel); - System.out.println("채널 등록 성공 : " + displayName); - - return channel; - - } catch (Exception e) { - System.out.println("채널 등록 실패"); - return null; - - } - } - - @Override - public Channel find(UUID id) { - for (Channel channel : channels) { - if (channel.getId() == id){ - return channel; - } - } - return null; - } - - @Override - public List findAll() {return new ArrayList<>(channels);} - /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 - 관리하는 원본 list에 영향을 주지 않을려고 했다 - findall메서드의 - */ - - - @Override - public Channel update(UUID id, String displayName) { - Channel channel = find(id); - if (channel != null) { - channel.setDisplayname(displayName); //기존에는 이것만 있음 - channel.setUpdatedAt(System.currentTimeMillis()); //팀장님이 권유해주신 시간추가 - } - return channel; - } - - @Override - public boolean delete(UUID id) { - boolean bool = channels.removeIf(channel -> id == channel.getId()); - return bool; - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java deleted file mode 100644 index e9cdc1ef..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.sprint.mission.discodeit.service.jcf; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.service.MessageService; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -public class JCFMessageService implements MessageService { - private final List data = new ArrayList<>(); - - @Override - public Message create(String content, UUID channelId, UUID authorId) { - Message message = new Message(content, channelId, authorId); - data.add(message); - return message; - } - - @Override - public Message find(UUID id) { - return data.stream() - .filter(m -> m.getId().equals(id)) - .findFirst() - .orElse(null); - } - - @Override - public List findAll() { - return new ArrayList<>(data); - } - - @Override - public Message update(UUID id, String content) { - Message message = find(id); - if (message != null) { - message.setContent(content); - } - return message; - } - - @Override - public boolean delete(UUID id) { - return data.removeIf(m -> m.getId().equals(id)); - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java deleted file mode 100644 index 997f78b5..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.sprint.mission.discodeit.service.jcf; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.service.UserService2; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -//구현체 생성 -public class JCFUserService implements UserService2 { - private final List data = new ArrayList<>(); - //User만 담을 수 있는 전용 창고느낌, 관리용 list data에 저장하는 시스템 구축 - //ArrayList 데이터를 쌓아두기만 한상태 중복없이 구분하려면 고유id필요 - - @Override - //create(메서드) 저장,만들다 - // 매개변수(이름,이메일,폰번호)=> 사용자 생성을 위한 기초데이터 객체 User /캡슐화 - public User create(String displayName, String email, String phoneNumber) { - - try { - User user = new User(displayName, email, phoneNumber); - data.add(user); - System.out.println("유저 등록 성공 : " + displayName); - return user; - - } catch (Exception e) { - System.out.println("유저 등록 실패 : " ); - return null; - } - // 리스트에 넣는도중 메모리가 찼거나 예상못한 에러가 나타날 수 있기때문에 try catch를 사용함(보호,위험대비) - - } - // get가져오다 set설정하다 - // *for문 User 객체를 담고있는 data 리스트를 가져와서 하나하나 for문으로 꺼내서 User타입의 user안에 넣는다 - // 만약에 해당 user의 id값과 매개변수인 id값이 같을때 해당 user를 반환한다 - // 해당유저가 없을시 null(값이 없음) 반환한다 - @Override - public User find(UUID id) { - for(User user : data) { - if (user.getId() == id){ - return user; - } - } - return null; - } - - //위에서 선언한 데이터 리스트를 반환한다 - @Override - public List findAll() {return new ArrayList<>(data);} - - //JavaApplication수정한 내용들이 update에 매개변수로 들어간다 - @Override - public void update(UUID id,String displayName, String email, String phoneNumber) { - for (User user : data) { - if (user.getId() == id) { - user.update(displayName, email, phoneNumber); - //user.update는 Class User에 있는 update 메소드를 호출함 - } - } - } - //데이터를 삭제할건데 조건에 맞으면 - //데이터안에 있는 유저객체들을 user로 선언을 하고 매개변수로 받은 id가 데이터안에있는 해당유저의 아이디와 같을시 삭제한다. - //삭제여부를 bool안에 저장한다 - public boolean delete(UUID id) { - boolean bool = data.removeIf(user -> id == user.getId()); - - return bool; - } -} - - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java deleted file mode 100644 index 012ffa86..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java +++ /dev/null @@ -1,80 +0,0 @@ -//package service.jcf; -// -//import entity.User; -//import service.UserService; -//import java.util.ArrayList; -//import java.util.List; -// -//public class JCFUserService2 { -// private final List data = new ArrayList<>(); -// -// -// public User create(String displayName, String email, String phoneNumber) { -// //try안에 있는 오류를 catch가 잡음 -// try { -// User user = new User(displayName, email, phoneNumber); -// data.add(user); -// System.out.println("유저 등록 성공"); -// return user; -// -// } catch (Exception e) { -// System.out.println("유저 등록 실패"); -// return null; -// } -// -// } -///* UserService에서 갖고온 상자를 create라는 상자(메서드)안에 내용을 체워준다. -//1.입력한 값으로 새유저 객체를 만들고 유저 객체를 담는 data list에 추가한다 -//메서드 수행 반환값으로 새로 등록한 유저객체를 반환한다 -//수행중 에러가 발생시 catch부분 안에서 null값을 반환한다 /등록 -//*/ -// -// -// -// -// public User find(String id) { -// return data.stream() -// .filter(user -> user.getId().toString().equals(id)) -// .findFirst() -// .orElse(null); -// } -// /* 4. 유저객체들이 담겨있는 list에서 매개변수로 받은 id를 가진 user객체중 가장 첫번째 -// 유저객체를 반환한다. 이 조건에 맞는 user가 없으면 null을 반환한다 -// */ -// -// -// public List findAll() {return new ArrayList<>(data); -// } -// // 6 user객체가 담겨진 data list를 반환한다 -// /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 -// 관리하는 원본 list에 영향을 주지 않을려고 했다 -// */ -// -// /* 9 update 메서드에 수정할 유저의 이름과 새이름을 매개변수로 입력받는다 -// 그리고 모든 유저정보가 들어있는 data list를 for문 안에서 돌린다 -// */ -// -// public void update(String before, String after) { -// for (int i = 0; i < data.size(); i++) { -// -// if (data.get(i).getDisplayName().equals(before)) { -// //10 만약 data list의 i번째 유저의 이름이 입력변수 before와 똑같다면 수정전 이름을 출력한다 -// -// System.out.println("수정전 이름 : " + data.get(i).getDisplayName()); -// -// data.get(i).setDisplayName(after); -// //11 data list에 i번째 유저의 이름을 입력변수 after로 덮어씌운다 -// System.out.println("수정후 이름 : " + data.get(i).getDisplayName()); -// //12 수정한 이름이 제대로 적용 되었는지 한번 더 data list의 i번째 유저의 이름을 출력한다 -// } -// -// } -// } -// -// -// public boolean delete(String id) { -// return data.removeIf(user -> user.getId().toString().equals(id)); -// } //14 모든 유저객체가 담겨있는 data list의 user객체중 매개변수로 입력받은 id값을 가진 -// // user가 있다면 삭제한다 -// -//} \ No newline at end of file diff --git a/file-data-map/Channel/0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser b/file-data-map/Channel/0f2bf7a5-2a48-4609-9e3b-e1bef21523ef.ser deleted file mode 100644 index 5ffa3ad3b663245e8b7ec796eb803e86d221c027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>u}hpW6u{qoUMq)ZTRg;}2vWBmBy@ICt9bGah4V(i^uBOSx#ZI1oqpHhP&q+x z(LvBbC&fhvTU<)p)v?h3z|}h`ba8FcSWCxd2uWV@%lo}|dIJxvfnv2GiPc6ZBvM!_ z8j2*sRvQTyNVr0QEi(OvDaGp$Mka#(7;;s^8S-Qj5eo5Jw#+CB$!SShWC|x@7)ZFS z8lllK5r)E@I#V@TM)zOMU5P}3@FYZjZ)GB>-6olj4n&3(uN zq-!%eUgr5~c_v*B>u>C#z$<^G>(3-8zt`pxl1#2bCy@4MZT z8#IDw9`be0ES5!WN}!#G0ol0UrTTE<>g&(p@gI+ix5v-tW^;~J_{*9!hP8YZ(zWlS z`BdlTJfHz+Gn?t^|Q+@A9CxhpWf`AwGGh!XtS@6$M`YiXn%Bk>&T31$`A@c NjqvbQWhyRB>tCcP%oG3s diff --git a/file-data-map/Channel/14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser b/file-data-map/Channel/14a4426f-bf95-40cb-bb49-1057e33cb7d7.ser deleted file mode 100644 index 7be2ed9b2709d49e4f1b8a951c064425b15188ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmb7>KS*3L7{I@Ko{IPf(Skz}N>?GlSqD8^=#w`Tu16<_^jP_h9BcHBHERrO`Yz<} z|BY|`Wna3W5JS<5w>;Ory49keU2Q#~wlxFv0Uzu;;{kq*IL?iT|1|PkHDm~dpmtea KR!T`cr!N6*3dxNC diff --git a/file-data-map/Channel/1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser b/file-data-map/Channel/1624cf3b-79fc-48c9-82ab-bdab9cb3b814.ser deleted file mode 100644 index eac0a822ec6be569c58b645f4de258397d39da38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmb7>u}hpW6u{qoo{FeNwAi5(L<$Z++s&OX#BpBSbG#ApMwk0-zdy1?2=8CyE HKdJu$(w@mL diff --git a/file-data-map/Channel/17e6346e-362f-4105-a46a-c55f8d32fcf8.ser b/file-data-map/Channel/17e6346e-362f-4105-a46a-c55f8d32fcf8.ser deleted file mode 100644 index c69ba1e00868c0cc7d24c6077b348444b954b557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>u}hpW6u{qoUMq5E5gi;#L0p9drF3yRwa}9fTDaa=B)u=3kxMR3-syJ^Qp+6_ zq|im^4R$(chjXanB3;GB$v>h)@0{(>!NgdLqZvYym;Ca6@AWR=fi*BwsY_zD5ekVE z){43!iLjM=!UYnpP+*fRt}>-~4Z_GoFdV~3#c+l^DImf`yvEiUMIkvYDvM0vd;TB?_die zx5lRC2(z)%ph1J)XwX{?8Z_vQ#%uS)VMZD{2?Cy#NwurSsP`b=gOs@0ebYLAJpJMz z50L7O(a7tI?eBB5?U!dM!sPG6qrtcLQ-dF^e(Uq#YrDVmvA@$Lj`Qf6$} z{36>lf@m4?HO?%SM0G)+U51>j-|kY~T{~I%H23$<?J; zN#~U94MC;|St~Yqs(p4FSwFkn@*%guhu+2R{+0oHk2d@Ic#I$8j`mN-w~jnl4H-fq Os1Y8%Dlf#vMSTS=xXY>l diff --git a/file-data-map/Channel/18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser b/file-data-map/Channel/18cfb5c4-18d7-47b6-972f-9dd3ee07c868.ser deleted file mode 100644 index 33ac5cbb6e31efb66921594ef890178f25c0c997..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmb7>zf0UP6u{qoy?TgRL>!SUZh{VO{sG?EwQG~cS~@mENb-`;d!Lu1CwOHIOqHsVSZ#ztB89c0 zsz@SishV(sgew$SCv$5|DPDmvG7;or=qVY_kS8;UFcg1a8;qimoaU89rf@oj-h|td z5gHv6VKCgOFjb}nbot8eN+c45fe@*osL*0DKkv?SlFL@;Z5pwAlgMS}(n`mC|yo;XZTO(#LXvofi6-RSoo#CwneH=o`&&fknLo%8{u zdb2P8gUz_dLUc2>;IL_YsMH>_gzSLZ%6m9 z*g+R$@{qM+i>KOGx0&^`tF1fKwrzm^#|Qh)cz_>+j`K&ve;Qd(H5o!7s9lzK#o0JN Gr+)#3v&i`X diff --git a/file-data-map/Channel/1faedf45-087e-4841-9a0a-9bb081629204.ser b/file-data-map/Channel/1faedf45-087e-4841-9a0a-9bb081629204.ser deleted file mode 100644 index 3432f4bf61a51e0422204248602bec98217fde3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>Jxc>Y5QfL|1EYzEf)*Bvt+0!=f*2KyTp`3178Yx6i7R(|>+M9(Ca6RZY(xcg5{W0Y7QQ5o&_&@iV$)s4qLFi2)WfU$g6mqlXzfCfaZ$JesbH{DP5yovpN)uArAf-)Gnvl{4 z>5?fiGO4n162@4oB~-?6CPpPOD#`QUWTpBtG&=v71_;$w#)=(^ovF!zyi5{x;>QQvLUq3vkA6^lo)AOSfLz5W#^{n;l)Z3>PSPPJLIn$UIrK~``0NtM7 ze1+<~>*9WQ^|)>L?tQMaGCz%wPP#;Uwa=5=N&xg9JBgh(_5yvz#4lJpXEGKS-Q06u{qoUVDgtDBjRP1nF8xsH>COLO=Ni;XLTjBI$kM8oA`s9EiNWXzh)Wz4JF2!qd~kqwd$0(e8e`(_Zg>UhS-X>a2Ysjx+d|u}hpW6u{qoo;}1n5gnA4LTML4NN{#iEA{jngzMo@I;8i7GjhqL$-CZn9Yo;- z!KI5(2X!e3(xr-v?b4;)JN8fTPH+=96JsroW(Y}M@_X<1^7R~gt%31MT@tH}P)MY( zR@4`=W|DS zfK)dNk=GaN`xj$Be~qRHBWK4a-GjAf-EZwq`%`ysqqDWy+4@2pXW)k8jfgk;vD0(; zS#Hn>qIt;III~z1)oFot9{OedZkOushXYrymL~tc5KE6su<*vQhX1psjA1R`g>?PT z)1BXJw+Avs$XfA{r`lK7%=+2Y_9)c0YJfiAgMDW_z>guv`6uE(jm)Zs451LzF3Vzh IIxf!WYh2yN>;M1& diff --git a/file-data-map/Channel/25ca130d-f65f-4466-a625-6827a4bb73bc.ser b/file-data-map/Channel/25ca130d-f65f-4466-a625-6827a4bb73bc.ser deleted file mode 100644 index 6710e88270515c3f9d967683c9f5d0c28d48301b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>K}$kG5XZ+?36e(Wp+kovk`BQxox7A8q`X659wQ#UO*ee&_I512h=fAmrHf#f zPEi*-R76mIf<8*>wXW^!nRIPWyE`-g`Tb{lBbZSxtmn%PQPSlCiNlrRWkGDN@@1QG zBupU38c7x{Ay^6g6EGlXLMZPt3z@x*2r={6I<+Wrhtaf9XbIdjVb*3U?{bM+6Cvv7 zlq^x8S=9XsI>q2N!n_};ATQBeE}hc<)53Dt3Dm*RcdSWXXtjDV>l~pOlVC z_jQSu300)+GkRKqs?>%f9xCxrNtU^tgXZhv%I;$rpeoNIhUbtswq8~POWi8M!pGC| z@UF2ud}t1um&5DUpnWlD-w>@c_oL%M6A!w7HTBhXTGRj|1K|?06lQrL!BJ&k)+tY3 zRe2jPuHC$;e*8Ta`8-S=A%y)d!}H##b67wN`&BE JE@7sV@*A+(uy_Cf diff --git a/file-data-map/Channel/275f1dee-cf5f-464b-b605-c77dcb71dd08.ser b/file-data-map/Channel/275f1dee-cf5f-464b-b605-c77dcb71dd08.ser deleted file mode 100644 index 4136dd70f019df3f39f82fa2f9a7a40c34ca8390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>Jxc>Y5QfL|1A~c(78W9ig%-jt))wL?CSD=Llp;rNi7UCi^>(6{!Vn|@A&pHy z8!JHtEmX7+dkYJHfq%fe*xI`1MX`0O-JO|to_FS|1>MSnsl4kDB|R>XI9w_23Sx7W zcWuUzFo7J)WMRt^f)yb?9R~E6kjQ(?LT1k)!jQRb?OGJM!)RJ4v;@wW&}TE1_qar@ zi7*)F6fIGpS=9XsI>q2N!ay7;AurNgF1@J#yM*Pi9jJhz?^u=$VcOKBG$y5OQu<3u zV^Z2CUDqXACQ*`h%ou5P_);5AMW`e~C0XV*H)@X~<14pG0AKEIjRiw zIqvVvmk-^~`!73hy_1`xAFrFss|d-sOL%bAYF<}7p#RuOqzT5jGzf0UP6u{qoJ(a^B$T>I^p>*j`NpKV=wS}I11>t%_3qs?4!x_2cV)9PE*Fm(L zAh@^)3au`ME?ug0DdMVI!L9#-cg`*jCdMB)njs{4$>+V#%dbo5vP zwW6j-B5b*qaDjv?6xbkB3rs0qg)lM^bjOe@8_tj?6NoSvFS2DuQAkb;$|6%Z9z##U zZP^Hoj){;DcdATPXc1k$in|ht1YsaV>L{wTR4Tl6=iQRad2Z~}U@WZXW)+is305I; zYiwwaFd91z8Z_vg27S<=L4)3Dd~i=3CRf)<5b&%_s$Dnwya(|fq{z+AT=VaXSMLvd z0aCrv7kPcLelV6h%U!1kLl;MX+CSG`wtqKU&F%L7Mr&)cwe^EIPX8^(8xe1Gyw`EH zD>rBa(KPf{IkQ+4l}Uki8hT{yVVCN|6aMk_`M+-?U;ppsKhJz}tieatgfXn)yO6G* z5AU6_?;VgSK-P*cJk`Fsm8_p#ZC#KS*3L7{I@KUMq4cMG*%Pi>r`O=+;TC;FC89*Bc$;d*MuZ$xD;(>N|&{!U=+l zi=c>378e&SF2%ijH@D8-b?$1?_=k?o5R!b!@B4mVE`GxcYhW%dB(d5Eg+vN#MWIM0 zY+7VoAmIuHw#niKQ;O#hMkRv51cp+>8S-o%5yq2`>@%Y%B&V^m$P~Uypq6o)8lllK z5yrxuoT(J?4n%H^ZOswh zBu;|{4f>!#pEPLDpbr`!+!KcxYUwNpcvhvtp$pBPh zs9LebOYN)Mtoqs2_A=DgF+l(0gMDW_z>hJu}hpW6u{qoo|Qu_qJx7JRB$RJ?b=S~DR}Y?!u1=F1JN?c<6i&3* zp-Z6(b`ZhErHYFNH8pGw!@ka=FNj{Wlm3>$!QwB>xC&5VhInlgk!P`fM($#h&U F>E9}3#~1(r diff --git a/file-data-map/Channel/384cb390-442c-4628-97c9-deff0183f38a.ser b/file-data-map/Channel/384cb390-442c-4628-97c9-deff0183f38a.ser deleted file mode 100644 index ffde4fe3918605c0be026885f44535bb5dc52ee1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>zb^zq6vy8!E)hrkC=?PAm4wVhCsFwsCtFC)brh4`$r;(59Xsz>jR+?Z8jYY) zNi?V6LLvSD{t178Ta`k|tUVX4sb=QA_kEx5d)0Sn(;H6|tZAUzoivNp6kA!o?lDMaYA*V!hcD11)yQX`W%X+ww0wG#@3MiZeo z&GDEl(E^%&C6i(a7oj_ilu>xJSj^9w|5nL-z5zR6nLBPPjxcT;Qks&|1}SZl(v*}o zNS95Ck!de0H)Tw;GLbTdI}=orpppU)Pgg6C1H%hRaTT|1c_n;${QrCs8^>ig-u}cFn6vkgqEtIw*bx?2-S0%w&9BeJva)VMkb~x@rjohX2@~Z7%>CjT42rhyy zodgkFv~&@N;y>a4VC(E^&a1`MOiA9$_x--S$4{73KCIgnk0|MLfyCoV@roc0S9Zl= z90?Q1u}(5amJrN^a77G=nh>*nW+8KS5Mj|gwoWaI++#E+6j}neOo%&7**=%3H4#!_ zk86oCEui)*>lTAM2n%7Qirl5eVs2O8&kD<9C(r;x@3Af!!ltQ7X-G;Zq;yJ3LsB{+ zJ=9OMOsp!MkTKAT)T9oa3{XjcN(#)sF121(*7lwg05y4*G=hY@+3#$)+rt{d(no(V zzHhFMpIW2V)wtIlbuUKUJEC>we{=$953bE2+`1`;RF50G=hwii9kx@{~`rHOtPZt{VhuEvR_P_xs3b< Di}tN= diff --git a/file-data-map/Channel/4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser b/file-data-map/Channel/4b7efe2c-9e1b-4d07-986e-ce558ad02f93.ser deleted file mode 100644 index 3b3f2e93a4ad8a383d5b3535e0517c462acd0e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtoBUzD~Y?cmTw+(b!mcF|VB))R!Yqr=e)HPXw)%d1|O(xC;h4x$Kk z=_I(gsJMuKgZOvYI=hKEuNGG`C3!F3@8_F$_W={ihsCnz5+!{ukhoka?g`>>RrVal zkuZTA>m$T4>?4~ZcNr}Rg|@&I6A}(nWuHsbnh5Er zr)rA|wNU$2bc?|qgqf&PLtdq&Qej=+j|A(MwpN{S2GJ2)>(is`~LVe zxNXi2?pyuV`JmVCcTW198=`fle{@1<5<mII1EfTyJy= zWLLbFPT%O|R^w}_m))L1n2cN+KG1(mBg{CQ2&6UsFH-o!WJA>4zeTBCc1k(3keA=h C?W~dj diff --git a/file-data-map/Channel/50f9e868-a9d5-4b74-aa9a-44912a473829.ser b/file-data-map/Channel/50f9e868-a9d5-4b74-aa9a-44912a473829.ser deleted file mode 100644 index 45a7708b36f5ff52e204b3b6e983c90a99f1f118..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>u}hpW6u{qoo{D&i=+Hp~=~jgVH=&cBr9JyWh4aP^@xE|IF1eVz)9*S+d)z_6 zr4B+B+Nn?~c4&)>xVsDe4?2iaa;l}zyBtg*kWIb&GES0R0K zHnDfgKJ-AQ09h+u@l^ZlHnV*Fzgj5^w#j&B`#qUth) PLQo_0EtTfuLSA13Ajr(f diff --git a/file-data-map/Channel/517ca70f-b8ec-4467-b438-0e2051afa0fa.ser b/file-data-map/Channel/517ca70f-b8ec-4467-b438-0e2051afa0fa.ser deleted file mode 100644 index f96ce68c9f2ac971a09e0575e0eba803080f570b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>zf0UP6u{qoJuBjAiw+J_5Vs;EbSrf7N1-R*K{;=9i1!U=$|aX3@AP}6NG&G_ zE-r!&N)f?D5q}g!x)%5T8NII#T?D5l##%ZyLrC(HPu}Of!)xfY21YA&Nvt+PA(6sb zQCB1pwo*^HK*ALYY?6rurWCJ17`X_#V(6|I&X6Z#h%gYpV~dQUken8kMW*m|3_S_A z6(ck{CPII>Q)8-1OX&Wqx+{@L5T1od14WIN%f(4|-X*!5=f?gUjD_{wyke5Shh>P| z8k?FUyo{X&4I1=8gFb4|pg|urX5ABq>2ByG2zXX5)vg-7-h+4#QsQQFu5~#y^7ga< zkm{x0$m@%hy_*-mz9%Wd;Lo$K*}0BHrlRcE|0O zT%{32Q&6aJX0ary;{xpz^vL?-F4gC+`i5tYzue7yJa~GMO;#Oi;4f>;7}oSvNLPM5 z-@aly9gr(R-ii-A)jqqWyq{feg^*kJ`S5!4XxRY$k2d@Ic#I$Yj`l~#w~o9~4H-fq Os1cq_m&fDcg#Hbn$IU7L diff --git a/file-data-map/Channel/54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser b/file-data-map/Channel/54c853bd-b6ba-4d54-b04f-c6fbfc63c569.ser deleted file mode 100644 index aca83a866b838774ba91033851086761137aae13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtoBUzD~Yb#QPIS0TZvgOja-Ehh?XM~CAs)W}^fUS73bN{1GNE-r#D zPJ&AZf1pFrO~t>(*4aS^b6zd3W=is2zTeL`ulo)YDu5;1_lS}K7f3v=6!!&jxUzkR zaU@J2$2!UFT0$@vq7^e>(uBAjFbkQpiU_mjo^@bRKS-Q06u{qoUMqT9iVhAcE!~QcP&#(WU=7R_X~CNVr0QZ8E>gl;SlABNM@33_}&e8S-Qn5ys;+)?^fg8~ZRA3+uUA#Uy_Z8xXlQ zwlzn16*~zfW5+5P&a_(1<2f6&V;1Kh(97tQ zupq$z6B0wyp`b2^oxN+N{sB!;$F8+&pz2r;mhH1Y-*?x&gF$QHWwjxR)kY{JQdlb* ziX_5T8wnRkxI%#~GP}l<;&lik6G1M9p{n5wc`}U%#rQq@z$gmIX-QdR3SY;NPq?ib zq0uoBM#7ysQ#D#f_g~Fji9~|%JVcr(>aaI`$>lq4?7zWSSkKKWCiyzFA#!VM zX^!wJb{aHj(0dK~s6m4Uz1LWAPaI~bsgoe!S(#M3Y7Bc1;yp;2o1?d#>#-LLmj!@S zZwyCXU+kPNMRPxs6k+to)tCOo)>Qv#1#BrYe;dmqBjc!f`ejUqQ z8bP!Og*s;z%c3?T&@Mt=HXe7WKHU2z)}PL=tsYE%pZK`ccC6xG*0eFK<*Sfxe;q%$ zWv2s>DM8kXO`d9>-A2~WF1JF+t-sT~JNnc%K>wr7zCIq~$B3gn==j!=In|UQ6oMMz L$#P{TF3sxS*MZAW diff --git a/file-data-map/Channel/5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser b/file-data-map/Channel/5d4ef94b-3f72-4a31-8f0f-fba0c3b46673.ser deleted file mode 100644 index 76d1de7c775cdb44902d9c26ca85499fd18fa947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmb7>zf0UP6u{qoJ!?g6MTZU|h^vs`+(Gm#c-JpQI1eX>c;9$NF1a*$r{C)!3MUjC zYKMXjii6vOciC`;JefpB;1yb z(CC;51L01UsR}Kk%U5w%B9S2Uhe#bom6l5RX?NZwxm@JN{vV8m_1vstl7EDCh};?* znj?(IPJ;#w`lvylG-%MEj~a9CiNkc)brJ+TE0b#1jXv)|yay?A^KGGdH8eVN)(ep8 zwZ6#fi_Nb)FXz8Qity&w`DOcfW2AlBY&Cb<2V1S}&#mnv;yAA!INpeOqwBqn-@9^) zMi3RCx5}BtqNq#>v<2vqwWnRGzr4OX{Bf~l7e4%XKVb^vjy3p?HE9fM_%5WIKZo~j z*nS6O@{qOS6Hm3TZY}F)SKEtF+qwbzj1Tsm@c=&t9Otiy|1|PW)ny2UpmteiOH*+^ Gr|$tkZO3B( diff --git a/file-data-map/Channel/5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser b/file-data-map/Channel/5ea2d51e-adcb-42a1-baa3-d1c3296d110e.ser deleted file mode 100644 index c44a003c5bb5f0e551268ec8d9c481b264d8ad85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtmrEtLL1>);@WI0zynI5;`kD%f&^P&+Cdy-*{)G+tiyx|9wr2whwR zT|}+mqJxS{aS=x+2mgt-&aURXT3pSP|k@!%xWT%kBB@%Y}z9 z)qQ;G-_&RO_l;iTxPRX4wT^nNYoc`$KRP}%@u8p3M!rs+CN;pwLaf9rg*jeKaa37| zI_2TXlb!ba>w+_p*tzJxc>Y5QZmb6vRYC3kw^uRd%r!1i#S86+#TySS)u-T)o?@w-ZeiLXZT6G+G3- zu@Y=zp<*Nc5PyS7uv72@-1B0vb*tT-nRlLdrqPC89l)fM^NCi0kVt%?wa7{03hm@v zE|74E0*ho}i%H2nh)&FcJ{$U-fHUOo93qU^+iZ_f6h5aZsgX&Xv0=dF+6jb0qlqva z<#j3{FIYHdvLy5V-=IS1 LTg%MbsRi{7=P|SH diff --git a/file-data-map/Channel/687d9ea8-d841-40ce-a754-26137052ad58.ser b/file-data-map/Channel/687d9ea8-d841-40ce-a754-26137052ad58.ser deleted file mode 100644 index 00ee6e66dd97f75952e7006b1a9c3880935dee3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>F;81D5P&a_6og1BM1~Gf33cd#WUF%*LO^ZM8xSEY_ zBo-DV7@7$L0}N1gsk(RT(5b(n2{S7;rc@p4!Loh!=lkw1Zs3VEFjZ?xVzm(pi4@j~ zrXq>3wPwNv60T5So0OKBQoI3SWFi=fVYp^EL!J~7p%AaIHAYcLPRq(7Q}{ZDk%Zft z5gHv6VJzHfFjc1&bpO@el}IEAqao5l(V*38dDfi|NiIKdWB(1t!g_92G09h93nI71 zw&n=0Vy8ia27S<=j~X;+&o|Q?pt47{?5br@M+#J5|d>w!B_BscU z>h*l&^~Lt-RKELWB1L%i`}3Fn*~iKLRj1cE=y!K}`+L3p6XG~e?>XLxc%yH}1Gh(V zmqrlHL$1M@#fqrU2(M&AvV!Jxc>Y5QZn`2S`4UC|HP~Vk6=%)>cUrj9ekalom&Bi7R(|>+M97CPaxS2x1e^ zMhg`!w9sIo_)q)?CaG;K-1B0vb*tT-nRlLd=Dq_1%7?jv=Mp7-E|9ofDeehkb5-zc z#*r|A94jQVX$ip`2v5X-K@)}wKC_V7DMT1Cx2zqDB6k_h3Wb)yMH8YnQw5(()S3v% zFvqb(k>*hME9w-3+X%y9q=ej|`FwUs|Mv^aW!q2%L*KC?8N!08Nohz*yQH*7N<&iG zC0*AgT4tyu?T|6hij<``91l=QfJ$=AZ*0_G$ER1GVgO~i8#e-nyw*G<>z6ZSgt3q2 zbNjY7*?z3I>Zk3CgVym;>-d^zoy3n$08IkuxAVTwGxvZRV5~ySVV1%iFQz%FRfxJ? z?^TvpiTSC$uhBa-`*L#go|-_2gzf0UP6u{qoJr(g3(ZNA1rJYJ4p{s)6`2$bBpm5&UA-!)nBbQuE-u1rMK@?69 zTwDYl?4saML2T*J(#fThi+_Q$cb#2Lj9NN2LrC(H&wHPjvp>*n4ZJPaB(d5Eg+vN# zMNN@J*m5o50tr_rut{cCnNqw8VPqocjiIk>I76OHBf?0$#y&ENLULMA7Ma4y82S@# z%SLE)OoZWZr^-}?7SZLaxGRxJ5Qajej-pCSrNXQ`@0DDB;Ku$NjD_{wtYVU{!v;id zjZMuF-o;LX1`YbCL7z2f(4dbREAENI^wo6|1UxH~YS)bc??Jo=DRQ&_zV&nL)xy^t zK&l%9k=GYnCljwPZ*+<LJQvUMl$BV{%?)c5r+!x0h`OBI%hBbW`(yi<9 z!{6+v3o-@BTJede+E>@e`q|ai6KdNqK>y=|eP=wtk737o67io#=2TsVPzY+5Wx14( H3p4s2lBvgP diff --git a/file-data-map/Channel/7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser b/file-data-map/Channel/7b060df6-ce48-4d2f-aa1b-e4a1a2a86c16.ser deleted file mode 100644 index da28cc0633a4583456408a9ae1b839ab252f1778..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>!Ak-`6vm%h38F?A)WJ)13W6DeZk^Nul??*(*kRcnY+`pDcb=sL;z2?1(j}-% zPzXhIspt~@4gD3J(yn!Fwl(S6oMz^|`M%#b@9qO;ln<+R)gwy!Tp;ndQoJgN!~Sqop(WIQ72RTR2VpL()RDWiTrO+S&pg*aj!Z# zHRNsj?eglzT{w;=KVS3P6d@YAw0xldm`0FsJP}A~{9mNthslze@u#6vtn$D%7?jb#QPI2Nxm1*+Fe9*m8qV3oZ^vFVx6gE?!>sicmVVAau}0 z&_x^s7r|e+i2s1An}2|dt+U`{&a1`MOiA9$_xt(gU46i?@?oyxxkO2y3nVUAihF|C zTva@qaU@J2$2!SvSwb)eq7^e>#Dqk}XBIMh84)JTZEM$}$X!MYLZKya!GxsERK@2K zwI)I)>TxVlr6tsURo!B68(}=E)Q~&0TrTAG{gAL+wgU|?^d9SyAMMyc!Qdr{EEJsy@ zr0We%fjrzVea+rnCmOHM@zJIH3&Kd`((r-)V;W(`{zM?7@qdxRA0{iJ=Kd{8?Xp(R InuVPF26P{-XaE2J diff --git a/file-data-map/Channel/7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser b/file-data-map/Channel/7f06c28d-37c9-4f39-b969-30a98c2c6ac6.ser deleted file mode 100644 index 1d00235addc2466d5bfb3a90144326ef8d4b334e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>zf0UP6u{qoy(;2aiVhAUh?`iGb}GfmU*O3X6s|Wqr1uTi$R(F1@9OtDoIf~0 zP(ctu2Rjvtpo1+PDo!0LuKpRlbM91V(pXE!W(Y}M^2z(WcX|sCtbwsoRT8U>P)MY( zR#X*9ge_GQE|74A0_$Y@6;p~=AdE}|T`_c*3}?ubNkr(6m)RReQAken$|6%Z5kpVH zZOI6Yj)~A0?o^m6(*nBx%I-=e5`;$~QbSRp#bSQOop(ttUvgvr4aUNHZdNhLUqb^T zx5m2W2v1|DL4yXp)1dbnG-%K}jTi2T!*thl5(GRelWJFuUhhG?2PtrKu++R59GUx= z14#8sZ{+pG`u^zn&jzLl1K&S=Zhu%CZl5<>&As-!&DQo-Yx_NMoQJEb9xs1e?fkm??0Vt3WA*=KO&Y`Mz6$C3 z&Ct;mJMMr?9+8d|02WJff^gr6{>*Fzg^f}re9p5@Kt7zf0UP6u{qoJuBi5$~iccf^;n;IEs^Jg`Rw&h3kzK;(fyzx#VK8gc`|_rL-9QO!6*vJX+c?J3ddvUOSml? zq0uoBa^X&usR}Kk%U5w%B9S1x4UsyEDlL@?pWJzm$zFQBwv6fh};?* znj?(HPJ;#w`k+CdG-%ME4;tUx6Nl-o>m&$xRwmW18w1{hcn?zKX6t+N{N0DoC;b4a zUL1(LzF6Ij$IdQCQiS2F)4!dA<&n;Dv)%mF*;{LGZnQV|iQ^33bG#ApM*nuYZnxzc zjUbwa{wik{i=vVjXs4l1)}D5$K3t!kN F)OWi%$v^-A diff --git a/file-data-map/Channel/86208d0d-05bc-48f8-8062-608326a5d718.ser b/file-data-map/Channel/86208d0d-05bc-48f8-8062-608326a5d718.ser deleted file mode 100644 index 9600a4e01e2d5107587a943665dbf9eafe795bc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>!Ak-`6vm%hN}@(sP|!s>bO~nYTo9>&${qsq7_{vUHsOxb&a?C)LK=YtU4lB) zsp!(BqD%OH^gpDX>)32-(zQ9w%zN{Fzi-~d2ZWUeOLo;IN_t!%ak)~wDu~0CU3C~o z!US?`kj$PX1gk)>LIy-kh}s^rkU8s!Fm3KzhZaTdGMX0(ErBa0#2lt;>qV_B67K1woQ$eMMyh2N*d{*C&3(I8(&;u^}14vZ+aFKuU+CbVN!6QaU8v z(oeKZv?iT^(bo#qr4F3%QHhUAip;y%Zokei_|UzpvCm7lLk%zr5U(&xVUd^99902gZgq63 z%hvAB@#5Xv+)3&z5$@%_5F&v~(*ydCY4{n36M>}0|3&hDm~4oe`?n~y%VsHU<}>me DBGIdu diff --git a/file-data-map/Channel/8825242c-5e69-48da-9d63-e267d6cf033d.ser b/file-data-map/Channel/8825242c-5e69-48da-9d63-e267d6cf033d.ser deleted file mode 100644 index a10ea7ce9daa33532fd1126daaa96dfe14f08b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>KS-Q06u{qocl8gRB04xop%m@XlF+r{;6L!>8w%IkY$5%=aE)AYF?pxoIf%*$ zf=d@c2c3j2c2IE<_l^YzhmIY4=iIePV=azm2uWV@%lo}|atlwaftN{L6040+NTje< z)D=mEP3kEZNVr0QO)~R|DaC6LMlOQx7w!$b1$!SShWC|x@=u5dx zjL_(q2t(mcjj1Xvqx-Mwu0$e57z~jHiW;p{O0({~TXOl48~ZRA3+uTB#Ux*bb%@*= zo0=oMj-3V#8uU(s-fPgHLGLu)xhD?O+t6tc@T^>>T{Zf>2k{=H%+22W*5&B)`LiNG zrdRtTuP-)_-@F)K?8y*Dew|-*zHB_}oVMDn&z+;~_U=x5_n0`&z+a9xBHrlgApd(` zZqo>&1t``yvsf0@X@PbD`eglnm+8agXZ7ZLesX7g?9~S`|HH9{|FfoyVNG9!Z1ei* z!8dl8hg=B?R;=+%`|MT=es;MPLvEd|liR(o>jvl}+U)D&F@6j=+CLrNIx?pkGK4}< NBXqs3Ovj}e{RiM7%5eYy diff --git a/file-data-map/Channel/947c620d-c9dc-4a14-9795-8d66f152c5d6.ser b/file-data-map/Channel/947c620d-c9dc-4a14-9795-8d66f152c5d6.ser deleted file mode 100644 index d1cbc36ca4efa58305e2729207e305ffc5227be1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>zf0UP6u{qoJuBi}kyGd(1#xXj=C<@7GQCVaPCu0~& zxUCwY(J>JU;ZB{Y8ZD#yujZ~qB0(4qktT{dtyGFn-T8pza*-Q*Hy8`+xmm>|UxIar z+!|Y&BRq+n1`QhYN`u~L(4axDH0IqChZ$_@BnWs`Ce^MQdGA5I2Pt#YS!kb+O+5dQ z14#8sKJxlv1HV2l{G3k_9{m1z)_eDQym#8}ws(6+Tixw9-R)!IIQK6(-iUakPltVf z59Ah&ASyww&Y8uss7(vBB^Z*8n_a5+J3BA_%zgf`x3-x7_Nz4NSR=QrDPvg6S0UZ_ z{_yY%d)o(@B4n*t<*D}Btz`Y|a?6F>dYdN~o%ibo=zp}?*T-Z0C^*`+j&B`#rkXN@ PLQo^zo2^X8#Toq%6sOGi diff --git a/file-data-map/Channel/94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser b/file-data-map/Channel/94d5253c-883a-4522-9ec0-7dc4130ccc5f.ser deleted file mode 100644 index acebbf51207a53faa5d5b480f0454eedb730fa7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>u}hpW6u{qoUMq5EDc;~v1QDEsgs!!VTA?T3Af7jh#QVZEa>=F1JN>Ru(Q<;| z;-H{|x(F^hsJMuOL!nEjLjQ^02^|WqO^mg4Y=)5JCBMAidndQ>#2Of>)FrXn2!%un zYeij=MA%9_;Q|R)D6mN;-Z7cfh#c+l^8AF6ZyvUXqMIkvYDvM0vXbic8 z+lmny9TTB1+^I2Dr6qL#Ro#_HBnZz#q=BMF%jM!5cit_zT;Rt38;phZ+^k}fzlRlw z+!~vjBfN~A1`QhYL4!VO(4avdG-llshv{kPBnWs`Ce^MQz21X(4^rZ0XRdYiV(9I8 z9w61ry^+@!YllBaW^%t$g#I5Fm!0F)!OmH$-P-CLthYBe+M7qjah~0CybK}!Nb6vv-i38F?=(4k9o3W6CscPTAM*+XDLmkx_N=!82?JI~UKNGJqex(Ifu zOCW&}6?KTdMc=~JbJu2DldjEaX5M@M_xry$7{i=$VWUuSh>|WBNF1&duLxpuRjAmE zBVhtL)=9c#3Bk$`oR9%w6CwqdS;*`iL|8OWtTT%ucNonGg_giA6QVX#1(!?Inh1#? zr)-HL&7tmB)F}qH5f*|-6?vKF^O;@!KPxPUok9Z)eaE_F2%DxRr2#3OkkTnB4M^#P z^iY>*nMhUI0i&-Ks!44)?xPYPmE@S)J#M|PtnEL?0BZ6)Zuky)bNe>l81`xi%fpw~ zQNOu5dTM#CtIs)%BJEC>we{_6k;zNI2&wTZqHZ{P=LafXzg*jeKaa37|I+f|G zChyyQFZq}>d+SS|rMK)6LM-Sqx)_YR4-FUSKX&3fo$Lh?+QcuIKWDNhs?Oh_Lu}fSr7{I@Kcddw8iVhA%5GQF%Lgy~(DfG!3g!2XmhxlH&rd)Dq@?Cw`K@{$w z;8GC98*~y}TvT*WJ9X&T(xv}H?>cvF(pXE!W(Y~XbDr8vDzdHHNi(7xJyI z6Wvejpa_K+N>;q(x%Snqm;CH%yB})XFhKv~gMDW_z>iVK`6J>#jV!39451LzF3VDN IE{V(f7X|>w?EnA( diff --git a/file-data-map/Channel/a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser b/file-data-map/Channel/a038b4de-4f63-4f74-99d2-46a0c5c94c67.ser deleted file mode 100644 index 3a0ae8de9f8930da3851bd904ca60637c31d783d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>Jx>Bb5Qc~IBO!n>SXkH?Ta(>bNn$0a5poG8NNI7o+u#~*S#Jl0h7bdZk;aBZ z8bd*1gN0v>v9+-E2lxX7YFqa_B(`p~J2U&v^Um}~Frz$JwM#Bh(&GY&%a!6KK^(5^ zlEXL>CXi#5qz)}1SP_B~GGNw(uV5@XVsHmxKFE}j7im79-qP`DVY%!WYGCL)RwYANGc_piAPDp7$ zO2?%8`iqtcm!%Uh`dXoi)P`d|D)CWCj(P2a#`Dt3?tK)XB2Qz6?~vEmjl_lQRS*_G zAD)Ic_2uDRW6-!9UN;A=^Fgaew9ed*jt@ zG%u23>|{{Zae2<^lc3PJE~1y+B->_yzOlOtwYY{hO2s LvwQiZnNG=XqR6r@ diff --git a/file-data-map/Channel/a482dbd7-a84e-4a01-8663-91db303ad553.ser b/file-data-map/Channel/a482dbd7-a84e-4a01-8663-91db303ad553.ser deleted file mode 100644 index 44f1b944435c942a98afa4da62d4ace5f6e8600d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>Jxc>Y5QZn`2ZSUdT3FbKt+=aTrIlY`!Xd($(qg$=;!19By`5;%gdkCbG+G3- zu@bb0k#%mk$+%fDYou;QEc66cW36E=bgEFhdv#`gd6xot58TJzR+3(l6XS9 zfyV_BE>U2GEN(I>c@g51u%O?Dq#JUE+?z*)VS9`1Fp9$GG%GbSiE}ojJg(hPC^VV~ zLvc=#$pUrI^edPYOLz!_aioNzNb~vZlKJnI%;(!s1ze_?<6vvORA0TRk4h=2Q8r(~BL!<^NZwSn>;o-a3jrXqCcaNnIBB2<#vBf*6wugJ?DJS=X*|n40FnZwL-}yN_t!%ak)~wB#6yb zp=2|TgbCzWBdG&R2jx37YWi%rcS^_srh}cXOJT6gd zBE*9n#}Y-FL*1{aQw(k+EC!JZa);*gnY8|&6_(4&PzOWbu_hV9x~WNNKuRa1bV^DC zQaT~s(sKiGlIp%fun@`KDJNHq5syvPvzC+&Fdzf0Re6u@7;i49_uqC+U=+xqQiueHe^|_1v6dlJ7tl zBDcnl<_L?i)1X0v-e}M}4H`7)jmDOH;xOYaodf~T%B0$LW72yN??Ecu9B%h6p3ZNa z7XVV-o{YS{*#A&m{Pg=VY=G`vU1C|!s*Y7S)e(aLNrOjo>nz?7K7{fZg3+ev% z*`q7=F$5BhOV!hEND2`zfZ=Jxc>Y5QZn`2LuxlMFeeBuo8B)RhvWwBUcD9rNxn3;>z7-y`AUN8PWaQ!MTx48)NNa*q}Yxh4JIEgYY1!#-I0j#bGJW^GMMV^Z27rN5*! zCZ!$HbzP!mk`?L3j7BRFN^Ll8P>De$c@~^*)St&DR~}LTq1;Vd#v!jQ%#FT^rx0P} z{jnL{)W)OxdaHgCT^_cMk6OpqMClkQapkL0rKF<6@YJs&1DUUe{^SqShs8*rR zFaN$mdG)zDbFnv^xV@QbPI#F&gjC!mI%u>{@AdJxc>Y5QfLo2q7`}Q7C93w!$uAnaV`LgbN5UrNwc##0|N<^>z|3O$d@eAdLtC zZL9=Ev{11TJO7H6iM6eJUJSNwwYxL(&hyUPeL_t6ux@)UQPSrEiOZGZo*)iaw&yU8 zgbC!>AlXAp2v&vYOc*e2LfrP5h0NJPgaxx=)h&wLWi%%gS_0E1Bpjw}pG(x52=h@+ z)e>b|MBT5fQw;7P%tnzK@+vKra@+cUN?0yCf+iUHjt$8WHcU-QBT_mdrDIYWka_2;}jM5jy0pbS%|dnFuebmJ diff --git a/file-data-map/Channel/b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser b/file-data-map/Channel/b19e0494-9f2d-4e69-b421-5fd1c271f49d.ser deleted file mode 100644 index d07e43be40d037f21c036e2943d17fd0d1a5bb74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtoBDwMV&6>)G;S24lKK|yR4Y&k@z9Yv12P$RuGy}W9>lnyNjT^tm2 zur7jwF7?MEPW}b@Z`isCuI9X2T+Ni^y?no)Z{F<(3@Z=j?4nDQ^teFca;11t5Qi(f z=rE3i3FKHMsXa>wR)AoI3>YyXVtdR&=By&ZxVdi~SQNR-Xj&+=1TL8nb(pd}E>UYD zB!ZrTCGs?j+AptL4DKL|1(h=L0?p;pYx+JcESHs_28P~aRWgJHQVs4@_B zi-S`|KFsXCy_7yLI_>bu<@_c`7ztcz9?*YG!_U~C2qZNAFOvVmWL=cqzeTBCwsJ`` Gos!>z!L8K* diff --git a/file-data-map/Channel/b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser b/file-data-map/Channel/b6793e6a-4b47-410c-8c5a-2986dfcf815d.ser deleted file mode 100644 index 94f8f724042e46c9b8c3b60bf7d31b52b45ea7aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>u}cFn6vkgqTPSTs>fqoaZXzT&7lgKow%#DrE<%T+7i!8~E?!=>T}p*kgm!Qd zba4`0TvT)r{|EmBcUxyyb6zd3W=is2zVG+t-F-q-`LI&;T%x4U1rnDl#XUi6uBx8R zI1(n1V~gbXEg_f#;ffd#Ga+8}nT5>GBEp&fH4)Nb zk7J1%Eur?S=@x_A2(w|Of!v|xa$#NHPYcUs2havX@3AEr!m6oBX-G=Pq;x_`LsB{> z-PKRDOuQlOkTKATG^Gxl3Q$RaN=nQ>uXJA)mbM;}08M$6GJ=G>lZmEo$e@WZ|MB=V zy6r5E?z_Y8+32b_?4J(%*F@{g{OAPGB!GUsocg+Od(;4<2uX)o3QN3}u}hpW6u{qoeyylyDLOcaBCdr5=T4pqo_s^$dP~6}y)T@ROD;{`)$bfcM0jUxI%$VGPA^#;xz~(7eQ|VeHFtQ@^l&zhLdIXo>3H%)1tD-6uwMgAmz4V zght0i7z%f4OjT(K-G5bgB@!vZ^AKsEsL^t{IP1=PC6{lxvHu1WVLdliO!9ZI29aB1 zQ*(r=#A(o=K_4{eqXrEc^g-jbd*U#C4V?x7&&p-mRb$Y55br@s+_V>4*Q1m3XL*23 zuM9?BUu=BX>)+M48N$fj`9=53`b76@tJB)+e%k8nYo8yg$H~Mza^Yf$J zq7g(3kgsuOu_USmfp!4~Wc_iM>3wo@dKn+-tEH*-_?trPSi^r=)5fr-uR^x*W9;BN zJM4j65n?M=d8U1KE3uzlZuyW~ck}qZeX?eN{zsdAeLTjGAxHb8<6B4OR6~YP2x^3< LugZm_IHP|7Lv72K diff --git a/file-data-map/Channel/b790924d-0355-4b8a-bf34-0165211058e2.ser b/file-data-map/Channel/b790924d-0355-4b8a-bf34-0165211058e2.ser deleted file mode 100644 index c510871411d348091df828e61d96b5fa0c503fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>Jxc>Y5QZlg4TO9UV_{*Vw!$uoot24#i6;m#U}JIQmbjAJthWpMU`&6T$_TS;*`)M3^=Ytz(NKcNonGg_gio6CyTK1(!?Ing~fh zr(}sD&7tmB)F}qH5fXl+g1kiY`OLchpAeSAj-U>PzGF=?ge6mxQlFHLNa>iA`lNJ3 zx~ogHOt>O#pV89_RHZf?^H7P0N^;EY?l)g&7d9WF09APsGdzd9k(vs`m!GN#GoO#o zgWJa3;J(>!b_Un2e*3K7z9CvC{-fhT6A$|BD)@Ejw5S0_7NR9)Da`R=ilfRx#3_$o zRr$UWVDpK+kC)EHb}+wnju7>`3{HE)?p@sl`j4G>PDguzq&D#j=FORGh>G(!C=o(C J`IMPS%WuT!uMPkJ diff --git a/file-data-map/Channel/be18e3a5-a122-4513-9c13-56f60fa313a3.ser b/file-data-map/Channel/be18e3a5-a122-4513-9c13-56f60fa313a3.ser deleted file mode 100644 index 7a9dbd4d5b342ec23579ffdd114a1872813e8e11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmb7>u}hpW6u{qoUMu3+7QewlDO6V>p=0T!_P~>G5YBV!5bq0T$|aX3@9K9Qq$ei` zE?oo#trQg(9aOp$aqZrJpaaLLlFJ2d?A>4@tmozxll(m_L*&-j z(j4Js;xuT`pf?)yR)Yo&dZRJto;b`vQ>Q_|vvQes)fn;~#Cwo3Hydv|-=B?5pB4Zz zy)+bgebL^1RcMXoGlY@fXWx2ze@u#6vtmrEtIw*b#QPIS0TYkM2Fh?tK|lvc62y;p+@e~czM-!DHU1}y0{2+ zaS~iqP;n7)^M4QoXYuOX)tpz0tC^C#m+$xU&Aa-7G3CKrsp1kPJuZ;ATq#}=#OA70 zu^C6g1ahpC?5-sQb0Az11EMCxN*=S2*(-=JY3^AE7DetdniC2wflDUDZKg^dm#8%n zQelr{i83vq_ABcagWCubVWo=Pp~YfuRo{;a%Vqn}07LJwE*ZkSsYz)_N(ZELNJ>Le zIw0NFPqa*|D(#Rl(2CTg4x9{7Nq|ZU%sbs_Jx7(2{iBWNWwrQnllBp!p-aO9`j2S@83z-Al*a!>3VxWZiK_dzD7DL0F=OVk F@*AIRuIm5* diff --git a/file-data-map/Channel/be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser b/file-data-map/Channel/be7bc9b6-2b3b-4b8b-b90c-4172acb3b4ac.ser deleted file mode 100644 index 3e3b3b9abd6744f7d0cdfd70a1d3bec70bfae56d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>K}$kG5XZ+?38F^Wp+lGGD(uoRyrdSSy+dFgJ3M@gZTQyh?O0kM5(t_o$F zaU@J2#~MlRSVFK8_$OdM(1cLIWfn3!i3qdiuC;GbfvVJoqaG^pP)Uxto$coH{Nnmu1fVJpqK4;?H&))44?nM~2y-93 zhrv~2VQ|~*H%|u_t$zEY-@YVTXZlCSgC-vI%lX9DnbV>M7+Hvvn58hsiz$vO3t^`` zepTgDBu}cFn6vkgq+fv%9)WN|;T!jQ@2eGwc%PB(bSn%kD8oA5G%d56a>Cl4E#YNCX z9RwE_TU&QuSP-q|XHsmn+3RL2Rz7p3OKC zCXi#3R87!WfdQT3UH%-%qRdGp9Ru_$tv(SlHD30yNFX){&zxkRmrkO_Mn zOVnrywO>uQ7~Dpf3oCWx4lS1poBDoQSS~w;78rVuP00{eO-)KeQaT}}zoaxIr4!P9 z{Y1+o>e3Dw1Fc9y>cHs$l?14y#Qcj&=Xr5?yPpDR$kVhDB;@V&-S|PoY#=PW4W35# z?WNIUXV^I(U3Z7QvtjR!Xq}mFodB8y&@We0AD3>I8ekM5sm~Amd~rkkR-*NWl-2yr{c>i&DGnm9u6cC%*t% CkgPfY diff --git a/file-data-map/Channel/c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser b/file-data-map/Channel/c3cb8041-b84f-49dd-bdcf-191ed7c01908.ser deleted file mode 100644 index cee1b4cc312c7bbde254f828d4b53d41e58ad77b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>!An9x5XQ$>Nuoy7AtZ?CSg=dyAkYd@9u%0Dpu@wr*oJT2-i~D#u}}!SbP?*( zN$6sSiXfsO=-8oSr~ZM|v)A_ZOuDwG-JO|le&0;13nR*fg>1ngO1fMiakx^vAc)OX zwqP@kgbCz$L{@e!Ay^*#6EGlXLMZDp3z;29gh_MHIq2N!nhwPBG1!ICb_ErhlS;^eJF#W?|38`!lJ23sZUD#q;x<^ zeNx&d-O?pmCRCKR&**6dN>Uq+dZ@%hC28h1cB+rlbL+PefRa3n8lFRbyxpAdEjLRD zQ(t%YovX@h=cd}Oo^>v3?fPlE-XvOQ>_^9gCLZ+D#Zd3usZj%r6h!jOQkdqs1V@#E zuu~YkO7i(VHuLck8-0DN#2+@2p9m4ZOXsB3ZCsaKp#Rv3=d`~Un9wGE!Mr(>HBof_ O1|>ppGm|irEAksR%(AEe diff --git a/file-data-map/Channel/c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser b/file-data-map/Channel/c7e94d84-5b5b-4e05-82aa-937e4a7c0a75.ser deleted file mode 100644 index 5dccd0662351bd091c63766915daf54915e93ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>u}cFn6vkgqTc~ZN)WN|;T!jQzoop3sIYp?Qio7yl7$b#*o8)#7TVB=6<>eqY}02gH>R^LE`MO8Q(N@wigFE{MaGU3VBq z!US?`lERK91al!;F#{4NByFEr$ed+Fm@;>*eTyRZ7%d8gmcS(wQVvtL&n0S2gk03) zTB1hFsQqfX#o!J?HmWp`yR=d%uIT%5VR>v1T43lsHYGz?Ff}QSNa>K2j!0=lN{6Id z`iYiFHl!0VhFY;e>cE*0m4v9I%>1+M&eP1?+I<=zkOvtfOvu~$?Bb{M8X!!+KRgbu z+p~kaPQP<9xa{_O$Nk2RX)^0wZoRyX1ZiO8kp1O3M|!i>X-Ku+WTB85LpRz<`6Ta?;mvywN91^Eq8 CbgdQu diff --git a/file-data-map/Channel/cc12841e-07c8-4e95-8a32-312ec34fe68a.ser b/file-data-map/Channel/cc12841e-07c8-4e95-8a32-312ec34fe68a.ser deleted file mode 100644 index f1ceec13688c1f8fb12cec4b4fa46929a364eaa0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtoBUzD~Yb#M?w1ScV(t`1_WV9TLG?dWjyLXGrt@$zchrF6K0w2MnY z7bn4`gFkQ)Hx~#04hLJo&DES&i>sNEyqE9y^Udphz=ZN(rRX|DNskL84p)l1g4kRY zU7K+vOd!WP$sAfjurh=zV!)&c(W1vJWcCIk%$i5miA9k+jAn&GOW>LbF`KEP$0ce_ zgk;!LwnT~MQTvs2i@|M#nXpnpUZ#aYc2nPv3(H~0&;Ud4u`U@x%G9JZB&9=AIwGYZ zDIJpT>nBA5VwJxc>Y5QZnG1~iFCEG%r)LQr8B3o9$Xz=Q*Zn9^d&Epg>;Z@r!9*@#F4!A8M= zB3MX3gjlH9h(95}#3Z$?dtMB-Zne8J^Um|mG&(S#1DGrM9?>cg5{W0Y7QQ5o&?VpD z0tuHW@Q|$RFe$kU@kv;av|+FmaE9DjLWEI!m+do(!s9e2H8P2dHl!S`OMy^mG!e3K zj>}}37SQx7n-ohp2qST%g2JW6Vs6#^_e-?;BUMEIp_(vy#CK2?mDbMe{ zLUl2DHPm{%U1(mC=Cs1l diff --git a/file-data-map/Channel/d2b403af-6771-42c4-96cd-20c82f8373be.ser b/file-data-map/Channel/d2b403af-6771-42c4-96cd-20c82f8373be.ser deleted file mode 100644 index 081c2c9ad6d71b89bf066739403120f0668a3b91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtn$S}1Kr>fj(qaa9tWoop3sxk0EM9ge$jM()yhdDV6)MOzTMxG1_f z2`+;8a}aTIaB=a^uoXvFb6zd3W=is2zTeL`@8SbSRRFVg)h9{@Tp;neQoJgN!ki5NqzSY7JCnGltPsHDt-!}a#V)Xd6t8lWzBGDet?x9+Fsc0Y4z)y&r3o<5XZ;Y4-hrV0)sBmRoJCVmriL>$~y$+vBSf+*oJT2-j1agkx&S{*g>dE z5CtLFp`=UnPxKFT>Qd^tYx{a8UE9;{&dhf{-xkRmr z5cP8kmdMi#>VA2hVsIN_){m5s7icz{+SLD(!gAOVRKd`9tVo8iYHCvIlhP3>9g|X@ zl#WREbcvP;mZa@7dRl?9)P^G-D)CTBhPmzi`t#Dt&SMy$EKeea=aARd>WiINtBer) z>^%+cYRiL%dcWQpTs8X5vwriIXq}lK9S@p#&@Y!0Ul&e;8epU$Tws>M49_Pxsx*Y0 z;`mjTo$GY(H6B@bn>*irze#)`g#9jq)9$c+Uv+{0V<(=|(Ow{`P5gp+b0%A&KS*3L7{I@Ko{D%%(V;^Tia2NsNd-3-|FqC24=P;W*dg8v*T^Lolke)g4pPer z1s8`3b!Z0>9MqvoI}}&xSm@ZfQ}3KQxSAMi>DUY*$(Q`{{l4$;9J;N6`<1#RRvV#^ zNMWt0E0PIYsb^du;R*#d$^3Js6t6)Tg$Q~R=&KmckY}@qFq|y27mT8ioW{x`Q#hSK zf5vUa2#t=3Fcj|8n5xn;y8o)~N+dFbTOrawQKM-ZKXm84lFKD-?7zW8SkEmgCix1i zLFCrh)Er?laT+ve&}$8Pqd|iPz1Dc@o;XZjLuWz2vkJL()fn&|#Cwo3H`~uzU+#=P zJ}v>|dUYW3`eJ=I9UDKJ$`Nk=I{DPue|5L>vDI#Ebv|sgH{Y~3_lV;RUU9q;@kXaR zT^H}<28|$EfKrV!i)B%r6KEHpU)FDSxju-GC+@xd@%iVI2fxX;nbfg{|FUL{VNG9! zeEs{#&R6!n3koq5t$4|E?Xz1g`q|}H3b}P&AD(X?tr?*I(Pm#CkMU#3(f;W8){#f5 RAwwtxHA2r~I+w)r`VvD@%n<+p diff --git a/file-data-map/Channel/e5c39507-a425-4c89-ad37-3cc5b9132e40.ser b/file-data-map/Channel/e5c39507-a425-4c89-ad37-3cc5b9132e40.ser deleted file mode 100644 index 91b7014857477bebadc9ea1e3da3b5a7dfe3e48b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>ze_?<6vvORpQ1+S(9jY=Q*bX$4F#1Jq&y-p$A*XRVmEx(+q=ioMI;moml}kE zXcAgo!_M>rDOVc+kXye!U*~x^n8&03!wAJhK$0c`nXTr6A-K zhOd(BEU&&l$H@A}TXUkdV4fp{{Vu)JcE8!FxIq806VK^jFA&uxe!;vslPytn{stw& L_--a{CKK`-;CryN diff --git a/file-data-map/Channel/e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser b/file-data-map/Channel/e77834aa-1773-4cd1-ad9a-2f06f9de5ddc.ser deleted file mode 100644 index 07e2240bc072edc47047b9adc58f55b627632ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>u}cFn6vkgqEtIw*b*SJXu0nz!E>5-zw%j1pjvbD>P$PF~yu9jlDIKmLba4^X z!ATHA2Nf6bpKupf!PZ&b%z3rAnkmV9`M%$mcl8bv%7+EJ;SnW$E|7R!Dc%so;mU3} zj3Z$JIkre~+Y*Ag5U+#*NfT1G&n#rlDk4mqJJy~>k$a4mghET;iV10lDck1~wI)I? z?r|+qrxnzGb=_ic2Vp9%G?BZsS}m>V`*C4;Y!}*K=smV1Ls&F5DUC_#kd%%{X-rCo zq+9xlmPs|G6Ej9yi9qVW*$9>f5u}T9$5QZmb48&YSRIo@RHWtFJ7FJe91rrVwVmebCxh1aTHtX#~V-tcVAZTGD z#6|=KEn*SHMtlGtMa-qPbsGrvGyi=5Os5aS%7eLL#U)C5Tp)3|QoJIF!&R~3 zFph)?y8Q{*nA8KKY?xMV@XVXEkHiCPn3 zJj^NEqC|73`;~Nx!5xILFj7TcrulqkRsTnY?Xo?ngQ4$uC>g?nrAcW>N(ZF$mz0L2 zbU?bLOSDY9DxHuq(2CTgHk=GlNq|an%)2NwUs5yck0wA(9wd#xA#W_+%pMooHH4{; zr)U4JG3|Goz2>=p)#{y|^iFSy)*1cQ37|;;{dzg{*>+ph03!=#nb`_+yp-msvXF2q zzpt9SPR*Z1?0dn5J)r;CN#Jy_7Z}$je!zk`lQmIw{{|&O LY%`y>GAr^6w12Pv diff --git a/file-data-map/Channel/ed77d5a9-a987-44a0-9ca6-d784895859e4.ser b/file-data-map/Channel/ed77d5a9-a987-44a0-9ca6-d784895859e4.ser deleted file mode 100644 index b02a590dd6fac2c8ccbe2998db0142587101d1d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtoBA5hwg)WN|;T*U;z&B?ZcEjI|Ypo7D47iy%J#>=a1m(t;iN*5PF zLBv6nf{Tia_-}~+fRk-UaT9Z1Ev{xt@?O5*&o}S34`a%MdAsZqB|R>XxLhe-7R2Go zE<21PVFEeUNqWZ;f|Vd#5d+3eh}s^rkU1-eFlFvq`xZs+GMW_%ErH7>#2lt?$)=Xd?%-bJh1KJ2!yh}N0-(FveQ0R4P6@_FjEr~yU};w5G&%=2Q3qsl?d zEe}sMd4B!sA8l^E^{X$P&Ozo9VLWtcctHO#jUeM-B9PShzevFklT}f1{}!coSudo_ HY+8N;ydSUf diff --git a/file-data-map/Channel/f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser b/file-data-map/Channel/f1030f2f-d8b9-44b3-92a4-2f5deb121705.ser deleted file mode 100644 index 9fc24bf07ffc4262a74bbbade312c322a2a9c9ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>u}cFn6vkh#wouxt)S-xrxC#lb>S9~LmK%iHvBS{|HFB4Wmsf3)@oLIjrMd|0h{E>Y6w0*T9&;+`NjS2fRO z90?Q1u|@LxmJrN=a77G=n~#W$xyxu#D6|A_n2@xYs`*@^)(vXx+Na>W6hNN^t zx~HFLnM6a{A!DEwX-XY99iWl`m6Vx(QSCl0t?b;V0GjeRZ3GEyN|17xrLfHFIgY9XN!Od6 zn(}-=tD{Ud_7R<B9PJezevFklWoy({}!co*{$TvVqSg& DPA078 diff --git a/file-data-map/Channel/f22483a8-c194-4a01-959f-792d610f2aa8.ser b/file-data-map/Channel/f22483a8-c194-4a01-959f-792d610f2aa8.ser deleted file mode 100644 index d6fb1208f3a17aa62b149f0e875a6a6ba4df15e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>u}cFn6vkgqEtIw@b#QPIaS+7>XD3?)TW%0)7r`O)LXGs&czLbYr6{%_baAkt zi!KE_xTv^@i~o+Ti;Jr{uNGG`C3!F3_xtkhKVU+8uu`nJL@Q57B(Bg}R3vePE>;{a zkZ_3t>m+l)q~v7?SHyy-4Y8uf8FFU>5oYW|R$~-}%V}0>WD?hHh&x;tJ)zKOBBa8e zGLt2mN8?vAEtYT)ro&1VMVS@~*-djlE}6@ZpaGWIV_k8CHQSKVkdzKd>4=nuq;yES zYn~XHSXDV8W1toBl?j{-P)UGF^4#m}H(%x!wjUD!zB*1?K|*o5*Im*z&3^M@aMS9y&-?8zF*=h!Isr5ZpkJ@YzOLLBwZO_jqRg4byeOpw>Kw$~%IM^) z&TV~_O)d967teZcm$?W+G<0crK>sm~AmeZ%kTUqcNWl-2Em?K{7L{??DWvUeMtuV# CzO3B< diff --git a/file-data-map/Channel/f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser b/file-data-map/Channel/f52f9340-2d3e-42d6-9b9f-80ac67086a1a.ser deleted file mode 100644 index b798ead6eca0c2b9c96dff5ef772754fb4352ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>u}cFn6vkgqEta+-RS2TbIGo_ct%d1|O(xC;Riy(p` z*hO&ZqT(X{9sUuvj^b+0tHsq!N#4u%{l2{Z2TUm+R_&Tcl=Qhk;&G*TO%R7GyXG*C zgbC!>Ao(Lp2v&t?#SDm>kg$DbA#=76Va}{rCl*ESFnBHiyN@Y=K%S&Dsm~Fym+ze@u#6vtoBA5hwg)S-h2(p5-sRR?VqZMi|H-E=taLXGrt@$#zeQaZFCbdiFf zAPypk;G!ae_*XdS|6uE?qvpI?T+Ni^y?no)Z{GDgj3^&wY|kZ1`dlD!xl-H{#No>J z9LA9_fgEcjyKM=<$`G!I0iz~FZJ$}loFznF!}%VoPz2Se|%CK&r3o<5XZ;Y4-z%Phz?z%Yp_e_4w4q6y+dFgJv@AiZTQyh?O1vd35CFm7oi9` z6LH~P)R4%DSWXz1LPOafJ}}y9~}c!}fjE1^SPjcuvQAfv7g|3+Bz4?1+-{Hz*Ni K_cL)bnULS8ShL*# diff --git a/file-data-map/Channel/f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser b/file-data-map/Channel/f802f1ed-97d1-4e59-86c5-32182b75fe0b.ser deleted file mode 100644 index 1fb6a0009e4bcecb49b9674828c4227ac829f107..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmb7>ze@u#6vtoBA5hwg)Iq^T94#d1;NoPfV9Oyw?cm^W+=UwH<>KX4+og19Md;!p z>f%&zaZzy*ane7)f5WzelTO8)SBtBelDwDi_w&uW>A{%tA!U0mQPSrEiOZGZo*)ia zw&yU8gbCzWC7C@-2v&k{MGP1>A!_@~LguU@!j!ph9aXl4t(eZsT!we&a3m$2+C=M2{OAPGB!GUp9QnL(o74a!2k{cK6y|v`%~9nb z=6b_ZMIOH{&7{ix*q8CqJAd2UK^PBRYCh0^Oe4rRmYtUA78o HGnF-rq66vtn$S}1Kr>Y(T%u0n!~i%_twV9O0c?Wl0{LXF&|@$#zIrF3XPxWz?K z2Pefv2Nf6bEBFn>4`Ayo-OPElxSA=+d-?x=|Ge8zm{cAt*BUNS(&GY&%a!5{L2RyS z4V!T!Od!V=DePH7FbAR)Gaz9?vgR=hnZ1q(Gv>Z^Xi?-Yqa~rx61ZkU%4VwOafwrDOVgwP~}emReSow+?~fKi6D!z_grUe9w>Wk|V= z@yVAL*FmoIzPdY{^X7+l#aDzxu}eZx6vmIQ5=4#AA)+N33+|<*#ig_$zTB6r+e=?=R3deoc<7|lncwHsza1?xj^D@rFc~ko2ydQ zW*i9<$gx2(dzKKa0>KFx5H=xFa+!t9UPpwaxo;g>6uHA_Rw%Rtrc8+1OqEoqqyNaJxmHz*Op K`C{74X5=^3$*^+( diff --git a/file-data-map/Channel/ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser b/file-data-map/Channel/ff1d9cbd-48b9-4adf-99b4-c958cb5267ae.ser deleted file mode 100644 index c8eceb3711f0072ca76bd21503a4aba3b2d85724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmb7>yGsK>5XQ&z0b&%y8Y;R-PZY%G@CdamR)>+M7@O$ZV}NMjRF z5G%n(1z&}tosIZMq&Jt^Qun+lwr;h%GxN>wo4IH~xAtK&SMZ2dzK}>fp|vPT;s~89 zI9wp%5(SpX!X}fF=OI2F7WCNAoAWtC?#v;=u)W207)9Z6nvxos#915q9IkV|P-rv} zhT@z&lP=Am>F1ghOE?IFaioYMPqW$7qWSNV%;Vco2Fu*Bq&UKqZAfWMO53FLmz2h& zv`xBdN{mczQ8_VVq}359W4J#;B@rsgaKFA@eH@)g-Xs75wcBq+4n<|=Wpbl29UzRn z-`Uir~A#?L9=#7jLyKfP6SON=%?e(k0WoNT41Fik>^ZfM!53=bsGA- z!tX0k$9J!5Z!7NA=h(?}@*&+oNW@*jy^B`;vg`x>$4(-r?Y+Q|G4TTy&6zC8qW3qb N5PFug^LA=MeF1}&vy1=$ diff --git a/file-data-map/Message/01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser b/file-data-map/Message/01ce0fdc-73c8-4fee-924c-f8c1e0fdd3d5.ser deleted file mode 100644 index a1b25b2bb1dde32d2a1c1f90d9d1bb51cd381497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AJxIeq7>2L$rxx4#Hwq3qs0f$I$;l#UO4OlrR5+5OJ#8*A_f_K}9a?ZM25L9$ zs*9794vI@b5JWo&4z6PBs*7UMpx|xC_wu~Y_nmc6pRm!KW*S&nHsgQ|CImA%)|t>u zoif0b1A~3MN`)X9ih>uCP*_DV0zkB^;YAc(02)@e$S#rdz;d$61T3g%faD=-+KT>v znocWA-ZY|R3FkDY=sV~DNh%6!CI=4(Xf$Bu2+znV@Z2)pyiEyEebEby1p#0Nl@%_4 zaKBGtzo`%)g&w zm79-Kh3f0fRpUFn9a(!4KD57HyT6$=M&g^Nt%>v7#EG|L+dX_MxgEFCE?%~)N7yTk zbxVCwoT9e7QLK+ou3SVBa;&|W63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKeMuS)eChZ63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK17_ThWm#C0Ajn9 ATmS$7 diff --git a/file-data-map/Message/073548ce-7b85-49c4-8781-2b200866a8cc.ser b/file-data-map/Message/073548ce-7b85-49c4-8781-2b200866a8cc.ser deleted file mode 100644 index 2d82edb0389d0e90f9d6adc4a2c5c1a6b9c76878..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+AJxjwt7=T~nM-{DzP9jKgEnFs1aPng?CB>n2bU2c;J!vj6_qJ99QLtF3gMxyB zI0=5>AO*FEE~4Tf{*lyG2OUfr6uj+tAD;KQyLg9I=|bGFEg~J43nUholG}oqTpG5? zI1(n1<1$GyDQSj5c$yT5=n$od)W}*sqL~t*M_-@?s^*dBRGmv4)1jT_F>AY;`F}b) zt4;aS4kJs2U^&fPgjG;L2hE@RR!LPrNkCVQQHd#@ncyfB&}rF!x1w|2 zU%fgnT-zTH>94KwS4(lgt z^`nwkDSMS;;wMBK2|+eVF?Vln<91+Zy4nR$be5t@@V$I(L>aA(KrvjhxgL+T&!4_V MhNs_FO4_6I1N|hQMgRZ+ diff --git a/file-data-map/Message/084442d2-f95f-4b18-b735-a6e13bd50808.ser b/file-data-map/Message/084442d2-f95f-4b18-b735-a6e13bd50808.ser deleted file mode 100644 index acfea8fe5e2647aa2b6c3b013f14137d1ad0aed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKQ5d@{8sp%9dC4iv>E zInbs!a1#Cn|AKN;vkp#jGh?E>+w1%3^ZmSc{SM92g%QKHh;&>okXT$wZVO^^Y1k&? zNSHv5n`D7WNwW;1)1W|1ha^R$M$QTl&6Eh8`U+jAY5{p()w#q89a?DtbGECQ|EHOZ zmI|hEBS(c`dCgpdZBTTG8MeSchtL(d@>FEiGzM+iAKqmYnK=^x-4TG?VyY%2QW5S` z_^&EnaLkAe-AzTu37*;!29hw4gb7b4ji1L>Sye!pheV!HiD{mlT~tHZi?TCbJr zXJy~3_}&Ex5|Td&VKzxK_h@PNVPJUfE&)( diff --git a/file-data-map/Message/15be350c-8514-4dbe-a128-a82e044b1c4e.ser b/file-data-map/Message/15be350c-8514-4dbe-a128-a82e044b1c4e.ser deleted file mode 100644 index 71bda07a76ab508e39902282b9a13d2180b513dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAIh{>K%4p zTnsXltsyC)S#9Zci8h5^Ue-MxKY*TmGqvM&>(sYXXS`|I@n+T(J)ot$U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48|*nmb{{xW0Wo&r$w@y|&%C%PJ%4rZ#c~I}0sxI+ Bmqq{p diff --git a/file-data-map/Message/1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser b/file-data-map/Message/1cfeb06b-d4e8-47a8-a832-c4842e87291a.ser deleted file mode 100644 index 3a8a94c8412fe51ee8c44c866b37f361e8fa314a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AyGz4R6o-$gPi#eW@_|Sf@xcwa3W6eNN<^@9bhsp!^lEbxb5CnrM6jaHT3?%+ zprELTh=@Z67Z>r55Nu~B#iT*OyIszY@AsW^UWEqf!LZ@jM7kaqNNg@8cLXuHG#rz0 zBupU3RWi$@q!xqd)hW=VLxLhwBWni{&6Ei3`XVh*HIF=}>RjTO4$U-=S;y1N|Iw`o2i z4fM_rU4I?GPI7#rONP+K{g?h{bwfVB-o!4f<;ileWTmwIv018?4lBjG%JCivN)xrx zP?V&ZS6V3E_atYo;sCz8l2F2f^7Y%kk(0ucA7M{N%SEy^*xmbmx%Boved_)ITYZ#T diff --git a/file-data-map/Message/22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser b/file-data-map/Message/22664174-0c59-4f90-b5b4-f5ac2b21cd6f.ser deleted file mode 100644 index a176ee083e13f2559a0c9e3df8499c30d76675a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK zi$R96t(~RM_VZrso#z!MtHg_aE&@IIdc%xY8z#Q#+WNY?<8}8EMWCg;U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48_ZfHj?e#50Wo&#mal8H70>1?r8$=HMEXxC007I$ Bmc#%6 diff --git a/file-data-map/Message/22ede715-bc62-42bf-b37a-1116c8af0299.ser b/file-data-map/Message/22ede715-bc62-42bf-b37a-1116c8af0299.ser deleted file mode 100644 index a52e6c70d897c7bb70685edb68fb9aed99087c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AyGjE=6o!xMHO7ed#x8}8F#7-&YDnSAT7{GryTq6B|3nVU=l6!*KTw0#Z zI1(n1;~JS`Qc{OO{8}{VG$BP1sa0^Jh+#{FK68n#P`!k_sGD5kgb7`=gat1!?Elkz z-pEGNgjJwIu%clvLm4y^IxSCNghLpJSw$)wJ%^E-^OFx4MP^S&fx$R{+-15UBvPUJ zH2#Z9lzcnRDt24w`_ZbsN{}c)q7>>Ut)Iv4wyuFT3q3_fCFZ!3;V5Sz>3V;^&_7BZ zp6x9@4PEcgz1+LTl~mA<-HqJW*hMu_etm51p2|K)OExMyAKR5?<+!nR(>OgKQEBR@ yREd%t3o7$lx1;HqS`R?zuckD0P`)|&1~tzNW9;R6|HwmCJ4rX+hwBTOJO3LYBb7)1 diff --git a/file-data-map/Message/247314c8-1f95-4645-93d6-80453e9374d7.ser b/file-data-map/Message/247314c8-1f95-4645-93d6-80453e9374d7.ser deleted file mode 100644 index 59b19e477fb046f457b1908d664083381ef9a844..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Aze~eF7>3XIqZS(}RVUGkbSqpIH$kviF(po=qsWmQ=}B{mxvv_Rpr}ynB&ASs zaM8`72wkLqfP>(sbaQgB3U00@4GP|Nd@s-YeBbRS8Wk?e>b8Z2<1!A|VnQ&RV}l9Z zHYfv3IWRcDn^Xv5QWU)*3B@!d69A%@tstTr0#H)hA$vrr0;?z*6R@nIaZ-h{?W)HA zX{n^H1=F}*CY;lXYV0B(Ng9gjHirNQC>60Pgqunc0ylGzcPRmCtOkLpC;-f&ipm8L z9`;G>7ZtBMMwAWNBc9^~t4@Z3I26R8Lib|$yJej!5|RoiQK3XYk(oILqJSnW`|syD zwd2(Gy#M%?5xK8!vT!9r=vb#WH)GTEEB0AWzf_lkCHw8xd;9$3tkbX8`t@r+D3u4L yp(rj=x4Ct4KfAbbmq5sK_GKwNC_B2z%H5|0FTysS5A!Pxc*%(Ahjep2@B9F#6O+FH diff --git a/file-data-map/Message/24acf589-b41d-480c-87de-20f0d3c69e84.ser b/file-data-map/Message/24acf589-b41d-480c-87de-20f0d3c69e84.ser deleted file mode 100644 index 87222fb921070a5ca1fa2348d27dff3f81ba0f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKug0>+U6rKudYSmVz9r7o1u& zHMV7!w35dr9tMVrf^uFaP=IDOY;M;}exy?YF?OA~Ysdaj-7uAn;qF4wKHUWXyFrlc diff --git a/file-data-map/Message/2660166c-ca16-4370-b96f-30e6e0d13a90.ser b/file-data-map/Message/2660166c-ca16-4370-b96f-30e6e0d13a90.ser deleted file mode 100644 index 905917341d75f3dd6fe5d4e12c89d178a31cb0e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AyGz4R6o+r)qn5TJ3I%ao>2yBXcQO9@bY(GQG-0bmxD6)u4A zpig4Is94d_!)(Cr^&H1vbubXbfglbPYUe$js#TUHBxO*-q(nfL8A}XA2E{G=@8>y} zk*`K&JkZxaZ4&R$Xq4$2PG?=#=|x));a?dgyD%iQV2R?2)%Ej!K+S%{We diff --git a/file-data-map/Message/2797fea5-d168-433d-9564-3f91ca2c9767.ser b/file-data-map/Message/2797fea5-d168-433d-9564-3f91ca2c9767.ser deleted file mode 100644 index 442fdd91226f7aed22f357bbbd355b0cd51991a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Au}i~16o=1ft<_elj^g5?pj;NWB4X`eO6pQN6^A1^l9S{TbFW%aif9Y2qM_AQ zT*S#qio59M=pP_hYzHSdF=Du+4;E4#zqZnxj(& zm~vpShYM5)Vo(&l0SU!blp+8`GwmRv=mJn$-6A_gt^l)Sl?lkGXoOV2bUa1>KP{D% zTrf>&CgGe~ioT6%NK#Q;b2tPzK$8*6BHWOR5V#rryhjO8eKiP7MFC(ol@%_4@UTx} zzo z`8xAHzkl_#)XwD6B7_bf-JI3(2cwn8PN7~dZ^VKnyZ*^X!|(a6ZvDP{d5(k9RKGM7 w#YO7*oAvhe?D}02p{l!^lEQ+370&x=iCuK9iaVy-Q_Kfqg)^Z)<= diff --git a/file-data-map/Message/2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser b/file-data-map/Message/2b59e838-0674-4b80-bafa-7e3fa29da7c7.ser deleted file mode 100644 index d67f01f8bee1e0b6f6ac62ef0adc82cb0ee1997a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKkuNORO1v8i004BA A63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKH|Ibdc%xY8z#Q#+WNY?<8}8EMWCg;U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48#X8q63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKIJ73 zO^t2YC9UMKiHCuqqM)3Y2^6524Gy<0XBPgcfEe5NTl;K`$yzgG?oy`{8~qdu09$aC A$^ZZW diff --git a/file-data-map/Message/34eb2b90-0c48-4699-b57d-d234e744b035.ser b/file-data-map/Message/34eb2b90-0c48-4699-b57d-d234e744b035.ser deleted file mode 100644 index 9e0a9293e516b2dffa3470af3fadc235a7d053cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AKS;ws6o=3Fr!BT3y6L2A@#0Wjgi>pfro^dqbU2bDz0zD_?p5QUbg)n?h$2dh zLx(zcC_)zzTpXPo+?)lgqjWWCQ1G_n{rG<0d)+TIDI65nEE5acVH~i@gkToOIun|u zQwErFU~q_cs1U@UD0pKM3aKbY0EkvJy@;X=U^HtSqZcz=n##qyk0DQS|@Q zLP5!R(}-3ioYS(R@1bKPsVJmb96TJLxqwwB+>rC&xf!FpLkUoQ(+kW80bnMT6)u2q zzfWSns7S@ugRIY;~BW(M#ez(_2dn;^)!qcFX<&3X+ti diff --git a/file-data-map/Message/38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser b/file-data-map/Message/38a9fbc3-7a7d-473e-bc92-4a00170055d6.ser deleted file mode 100644 index ea82144a85105f45f2dddbcc1f9c2601cabbfcc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKIJ73 zO^t2YC9UMKiHCuqqM)3Y2^652jZ3W5Y!B#EK#bip$%{dpA@rKX%HM~pYTfM$08U|) A$p8QV diff --git a/file-data-map/Message/391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser b/file-data-map/Message/391c2d8f-0a01-4fa4-bce7-7b25f816f436.ser deleted file mode 100644 index 0df52747923839f870913bdebb25e61865963196..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAAp{GGqvM&>(sYXXS`|I@n+VPI-sSzU`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA4o96m5g&HoYfEc^yd9~^fu`gzpGP?a-jQ&ds0FL67 ACIA2c diff --git a/file-data-map/Message/39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser b/file-data-map/Message/39bb7494-eb60-48ae-bafc-90439bc1c4c0.ser deleted file mode 100644 index df3df8f3773e0d1f6f8dec1c99dffa2b8a50ba60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKH|IbW@^Xl)~Ro&&Un+ZjaN=1pvo| Bn4$mx diff --git a/file-data-map/Message/3b0a9387-555f-4586-a28a-ddb899bf5f26.ser b/file-data-map/Message/3b0a9387-555f-4586-a28a-ddb899bf5f26.ser deleted file mode 100644 index 42432c6538131d98ebbc6f28064c75f02ce7da1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+APfG$p7>B3rk6Bt$w>ktJ1PNw8fQK?NT3Ne@N0DK7&>?3Jr@lbfK0ylJIu-4@6g0Qt{qg*s_k9?mXlNONAgMih?&Gp^%EA1b}E|!;2`o02EUX$PtmNz$&uJ1SC~7OR7*dZAJe- z&F7UJZyMIhgmYR^^g~obl8Qo_$-%<`S_)Vd!b@@vJh##~Z&LzPPkDjmAOOsuvcd%r z?)ORT7Zt8rdXV+mQ;ubMt1kG0*cZgU!gG7_vt=}72}v0gsZb&y$4c7_LTQ@PJ2rZ+{=%KJ9JxvdT-FV!Cq-} zTel diff --git a/file-data-map/Message/3d247aa6-1422-494c-ba0a-073a940732c0.ser b/file-data-map/Message/3d247aa6-1422-494c-ba0a-073a940732c0.ser deleted file mode 100644 index bd69fc9f4617436d9e7bb51d09808f0a928f1556..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+A&npB`9KgTEkJ)7x;Y1-xNxdmYn^+;E;j%e8yk=gzPdjhMyzjCkIZ$d3C<+M& zk#brWN#W!l@L$X-HzzVW$3Jg*sCV#^bnE|gZcZN$ zrg1Yzg2iClRqvRVd%w(Jk@F^bGe2S95CAh(&O3yD;O`xO4G ziWgifVncUL(RG8THim&D3?yN~!%_9ep}nOkpiDy|%<&yI1F)6if$f48E$^E%p> zeCg`%KWqUcQC(s-_bKwP5>0$<)jjRFW(rMjXfsTiqVq$dUa@D9ef(@ LUA=7U(GB+-St*#L diff --git a/file-data-map/Message/3e41528d-1998-4671-a47d-c0d8bf3efc60.ser b/file-data-map/Message/3e41528d-1998-4671-a47d-c0d8bf3efc60.ser deleted file mode 100644 index 2a77fc858e944389ef7c297d714834b74ff52ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Aze~eF6vvLIa5(!G!7tlnQjP)RH#0U z|Duv*--)w|-4ptLwCa!&BubDdg`1P^&zf7&HP9Adu*9fDix;Lj$^{s3y}w`R*VB#5 z`bN|Hc*uPn?$2CF1?{_7diwgdA9?QCx^1==bJ3FR>i%1$`d+QI_paNg$0RCEbxM^e wu~<-D*=voB&o>4ELVq)*se|&}jFx#lfH20MZQsA#WxrRmQ_Dx`+T6PT1A5e$G5`Po diff --git a/file-data-map/Message/442aeead-682a-48c8-8ede-3a674676a645.ser b/file-data-map/Message/442aeead-682a-48c8-8ede-3a674676a645.ser deleted file mode 100644 index 328dd7ffdc73701428d26c72cbf73f90a5362b7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+AO)CXa7=T~n;}Tb*Y)Dv=Gy6;F3Kks$?Gpv-Y858B~PVdw6KIdG&L%sB1&~R)bU5^VSHkXn+f|y(yj>$L@ zCXnMYnPE~=i$QW~6iDfirij$Y+YzFf5}{3Bq-Cm>kQY>)OB~jrk(My;c$)ctIya|{ zN7E)FPlaFw%`CzSC_1DJM_{BwXir=PDl9dJQJeL{dyFD8vk}md0LX2oYC<9v@jiwB zs+vl!nXs|D&UfADsjYD!i33TT@N`)FbzrZn3MkXiQeaeKj$30KvQq*`1Yi3?{sLEBlHBjJH5f(R(M(M4X*aW%29Z^8lJ2N zm93z1PNIbLPePnca?IPGUwiE8pSo)S@ZF`f5`QmW9UbZ1bld!7$@W{unk-*Tj1PR= JCdJrxsfgJ9cv`mdoa%gNl@#p4o7mdSCUK2z18Ya99k4Nv4K{K z&{#kETEL+k?ja;G%_PX?#=~ yh~fhE{GG-_av^&cL#XEN$Ccoq>}WNS>a|vCA@=6wN_3Zww>C2Gx7(d;*Zlz>!j(S& diff --git a/file-data-map/Message/44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser b/file-data-map/Message/44e2c245-e9a8-43f7-bbb0-6783a4114e87.ser deleted file mode 100644 index 7bd01b1c80441073695850de3ee9da289ed0ccf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKdc%xY8z#Q#+WNY?<8}8EMWCg;U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA48yvQ)2qb4zK#bkJA-#EtpkKSoqeHGQS2%w!008{3 Bm>U29 diff --git a/file-data-map/Message/4a8587c6-be11-4621-89fd-c3625aa83332.ser b/file-data-map/Message/4a8587c6-be11-4621-89fd-c3625aa83332.ser deleted file mode 100644 index a3b9e763b034bacfe2c1a5360ef695efc512abd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKkTtrZJ79`YwPRoj@R8w6oHoVf-MC(R4+KS zXliWBE@>r?O*{+?6$RzIOrQYGY%piCSn=gR1;p4^QS&=zUB5W{#bt!szV=}+005GV Bm{0%! diff --git a/file-data-map/Message/553373cc-664c-4802-9e7d-a4a086f9e0b5.ser b/file-data-map/Message/553373cc-664c-4802-9e7d-a4a086f9e0b5.ser deleted file mode 100644 index d3aaf4aaab7a8dd16fe4545130d24feb3cdc47c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AKS;ws6o=3FrxsfgT?*X<2Nf=Z;GmO5uqkmW9UYG3Oir3h%)M#^6@*q?+zeJx z5fmpUp(5hw&_Qr;aCNtJEpFx-6uj+tKfd4h-fbK83m;7zu7ic=GY;5cLNJ$OlL^B$ zDFaM7FxbM&R0v{G6u%w?C3KV~0K~AJD59AH(1^Z9Hi%jQR#tT;U|vUqqyo0Igbd)e$4iOH}Xv``TZmC6x+^lZirv#|E5Cz8K05FHD8W%vg z>{Hk;Dp~Q&I4jwGf#*f54og8S1+i3kI_d4yotmm3rGQdpN(2;{m17_ZXvlH@et~y( zsLdxQ?73{GKDm9ByAcvPaIBuceI=T9=C$#hd0)DZmTZLwpS7?Z)?3ww*69(BO4Hp^ xDT<5K4_B&>+41~c3ZcN;Oe^xBY!8}K+1Y9kV=s2DFZaJc8l@TWva075?+3Kol-~dV diff --git a/file-data-map/Message/585a3414-5844-4d51-b1dd-8c52377e9cc9.ser b/file-data-map/Message/585a3414-5844-4d51-b1dd-8c52377e9cc9.ser deleted file mode 100644 index 02f2841f1e703f91770bf8a52c3a1c0470eeb559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKU09pr> Aw*UYD diff --git a/file-data-map/Message/59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser b/file-data-map/Message/59e0e08d-5dd4-4b91-b1a7-3271af76167e.ser deleted file mode 100644 index 60440ef99c48778bc0ad843fb9eb2ede1c691a7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKn A?*IS* diff --git a/file-data-map/Message/5a110b5f-9199-4b67-b218-162a81422fb3.ser b/file-data-map/Message/5a110b5f-9199-4b67-b218-162a81422fb3.ser deleted file mode 100644 index 6fc00d050d742e9974913a0cad9d84dd820cab5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK?jz>|AAZdF+xc^Mv> z#UMl3X5^g3XIqn0)zx(JG5HxVv_=%6l&LsQbJbPy4GBxiCZxy0PpS{I?xf?6F! zg^H`Al%lwZgW$j5?rv3Zay4mC@V4W7dEV#yZaz@I@X@U9I#_r<sVfqaGAL^_rQ;m)BcUwe)$gWT)MHYoER!-FF%XoyPTaP%3vz yLs6Wg{>5hPVLX+-O(InBc4R3$D65{$;N-JciLlke6wpzmY8f diff --git a/file-data-map/Message/6736876a-4b0b-468f-ba1f-205033e3b4a9.ser b/file-data-map/Message/6736876a-4b0b-468f-ba1f-205033e3b4a9.ser deleted file mode 100644 index 9d4e9b40f407cb94b73423c634b3190938a9780e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKYtBpk!*q82u33IR zi$R96OOC{*9e3n}MEuyIJ73 zO^t2YC9UMKiHCuqqM)3Y2^6524K`L%x3^SOK#W~_$uG=-xw63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAAp{GGqvM&>(sYXXS`|I@n+T(J)ot$U`s&`)eBB7 zni|`(OIpce6AuGJML{_)6DUA4o96mhK3%U<0Wo&Y|2DI#_a`Rh{?)wp)YW4{0RW|5 Bn7sf1 diff --git a/file-data-map/Message/71ec7a90-4674-4655-bf68-cd40c15f2be5.ser b/file-data-map/Message/71ec7a90-4674-4655-bf68-cd40c15f2be5.ser deleted file mode 100644 index 1f3b88697e4b5f28c3d405ccd97116200f79fd70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AF-yZh7>3Vit;JTP9UOFWEhIm{r4=crq&Sq0R*vLIPLfNS`>NHUNU=lyR!Cw zS}4dH-ZY{bm@#6?S_xH=prEj7Gw^VL;sMLVOqcTDx#^R@7L$wm!R;qqE0h<8;_)SH05M zq|_G`^Tcg#A3rUxZazd2syO>G!9OUiUFQT1I+XzXYV=ZXJIRmI=z$C3)5^iDaoXHSZ!>SZuXf%U^FGVCh}tbjVuW%O z2TH3X?7=^wlpI{GT$F>0d3U0`x3}lp=lgk{^LJ>MK4dJ{A=2}?K;m#IxhsgxrRCa; zBVhtLu8~)G}SCs yq9o7!aG`QLFg#uB1_->>l%@{KH_t}NWBoFSu_uZ9i{0&$bH6_`vOP94==}f=mzN&^ diff --git a/file-data-map/Message/7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser b/file-data-map/Message/7aaec3d6-e57d-441e-ab71-81a430f7ae73.ser deleted file mode 100644 index 59ab1c5cfd18446fa05cf1fcc5626229b1ad24cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK_uQ$wiwV~n7?4CEXrT{JE1zQMmq+W1p(bU+M xUD8S(n|K%)DhkSZnLvS=*%-A%Tl8>81;ohJg^f!LzOO5;T6g%`(^?m~0su+MlZOBR diff --git a/file-data-map/Message/7b110e33-4c09-4498-9d98-daf93448e734.ser b/file-data-map/Message/7b110e33-4c09-4498-9d98-daf93448e734.ser deleted file mode 100644 index d85db85a4aaed18b4f1617b26a5c7434f184176c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKBR%qgGQXI%siHa1t&Z+@whB2d2b9N=AnxIntBn5_4~B1r>xAMLJrj zU6d{k3W6evI*OzJh^?cpCJhSScDz5H-}AoLT{Iv(G-o(A7OuxQV4DfS9F9#U49BDl zFy+8t7q3$xh(%HOA`*&fC{6%~QLz1pY6?IJZHttNQUX>~G$vp{Lqntl1;#sT*2;x8x2MRA|ecw&HrbtN2A-PD2fIPFZ3`7o%*v{Xt;yx$u z>gm*pa-mPWT}4*UMF1T1Q_Oo8rmt23zPUHBa*622xo$6z!b&CDcc&{`N x#d+#AHmgrlGi$dpLKSx>E(Hf=hi!fOL6$2a_Ga*M@@sfLxtC4fFK(>tyFU`bkg@;( diff --git a/file-data-map/Message/7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser b/file-data-map/Message/7cc28f7d-4ce8-4ba9-8620-677c7741f8d3.ser deleted file mode 100644 index b837a384fb7eec94c7f40bb5add2af1ca3d95601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Au}i~16o=1Lt;JTfjxOTjpd_;hf}&{JbP5#|1drrMPm)W_z1j$EL21=Z1fx|1 zH$iafBq9zjj)G492ZHUaZYB*1-gdkn-|u_xrj2^IizYPN61n422BJkdr#2IH$~9Xj z6hy*+!nT+roMVHa=yeGwuAmeKz*@lyBC^f_4JsRW3rj_yrle2~(+cXtMJU*=tpA_p z^YVN!O=tzo7%^pi6IGF*ptxo;2ylSX5zEBPkW>iVj85Jq7>GU_1csvkP>V=1e4U=AuZ<|yzC>bLB_pXVGk z_m>xh#c#C|dm5U_p70Rb+k7A^<1fz_le=$?^m=YJShD3GeANB6-)PltTj$5spfuGf y4Mjzjxc*x0Ze(n!nMBBQN+}^cDBZc7N}gURUWDBnHOi&guh;V9VMTe*UOPXDgOug~ diff --git a/file-data-map/Message/7d7faa19-26c5-4c7a-a71d-0361db17753e.ser b/file-data-map/Message/7d7faa19-26c5-4c7a-a71d-0361db17753e.ser deleted file mode 100644 index d1d044a7bd1fdfa2369b15c6a3556faf059dabaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Aze~eF7>3WZT8phnJ6IJL2N&V8xd;WNgDDY*(ox|^j`SqC#N1bng1?{vp^gS> zac~huba4`Ob@VR~oCVv#NxGRdD0tiPy*%&peYagSC|oqB*%lU#%Q#?*3BhcRbtW`h zrwlOVz+eZjP$7sxQTzrZlu}Wa01&Nag%L#;fX37fvPI-NFjH2UfCUu|lRDIFSJD4Z zt5u~GPSaYAa86A{-$eUJQc+5?IfOVsxtL`VZpak~-Hd+Tr39$H7zXlj0GLH(g$p1& z>XX!CK>SYG(O9gOKNJXQk+%?6BBO7Sh*VjJ=vpkhk%Aaqr+}V)jMdb$$TOr;@q= diff --git a/file-data-map/Message/7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser b/file-data-map/Message/7d8fa27f-662a-4ab7-a9e2-b129240a8718.ser deleted file mode 100644 index 911154ec08e10b32203a96d8722a38728591ba7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAIh{>K%4p zTnsXltsyC)S#9Zci8h5^Ue-MxKY*TmyIJ73 zO^t2YC9UMKiHCuqqM)3Y2^6524fY(O=W5PWK#X1aXrrbISGz=Q|DyUdEwAkb0Db?J ALjV8( diff --git a/file-data-map/Message/7e5151c7-6552-4394-9a11-28961ee4bd54.ser b/file-data-map/Message/7e5151c7-6552-4394-9a11-28961ee4bd54.ser deleted file mode 100644 index de69142265145616efa67081452fadcf72263111..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Ay-UMD7>CdJ(H2|rV^dIY62yy>i%@FoU`iZn?dWhMM|zT6V(zWRrF3Ya;AmTF z9XfRFu6dF5+f8N>`Hx1#dgvAJ6Z3-~JFy3m0u_wuOb`G7i{cLNJ?Soe9m> zDFaM7Fu25rR0v{F6ut=wMO2g^07NTVenim)pn3I_oD;bO%#>9oU{^&^Qi7uGD*FFv zp`h&h)0kEyoKsWL&rlgjDvD?}2OkG$F=Uy98*(0eH)EW4DFLeQ`GKV{0L-GY!UYf> z^hxX&6)QPA0NBz0#vh!}$U4ACwmW diff --git a/file-data-map/Message/7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser b/file-data-map/Message/7fa2379a-6c0c-40fa-bf7f-bac2e3d10563.ser deleted file mode 100644 index f4a3a7aedcc4647828a12e92c99514611f0c9915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+A&npB`9KgQ@i|ope1EnNad2J0 zNQu_PX_F{_0T(&Qf#NXhEDkbbqP*Md`|0!jyjOgKYUx3@;n+mF9v4V#E+uyaF}XAx zlW`F2Jxv-phkxjMWjZ~4iU|i2#xwQouz6Xxuxn{;(!jdG>L($}CTZqvWtPv|yT;Cv0KPkyQljtWOMT02cTanMyyR-}{QCK} O+E_g3-?frMpYAtO1E9CdJQA-;U9TkLbqFe^?1DzC+rleEo;2?M;M|vf>#N68&2L($DItYRd zRQ(ew9h^j++?{lH>SQ~+niv$k?RbAYzvq4L2540HXu)tDEIglazz!3Fxg48J7_Lbf zV9J5P5iU|8h(%HIh9s2IkW2uGQFfw;Y6?J;T7}ezQUzu!8WXUgp>a}$vg@nn|7oeD zZb#F!Q6`*ITQv{R36eCFGF%Q34$xG>vI(~o9U?dDC+|}N)ZB~$(@6lBLlu<^AUy7q z*e@zw^~@w2vqu8Yi&mY81#v8hV};FxmfCc6lP1c-R@i?--?#(hi9M7a1gfpjfehC3rD5$PiZWQ vb?S$EjmMc>{yvLP;2p|Rd{B0JHNTjCTMH6wr?Ptd(tGXH_1+WXJD1)!oiLKV diff --git a/file-data-map/Message/83413a88-548b-4c98-94eb-cf5eb9a79bde.ser b/file-data-map/Message/83413a88-548b-4c98-94eb-cf5eb9a79bde.ser deleted file mode 100644 index 44aaefee79e00af49ca6163f045f881d4ba22a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+APbdUY7{EW{&)Qh|b5s%sq~4rdIFW-YWMJNbZW=|ZnzTSPi87f38FCAS4JxioB( zaU@J2#|1LRq@+m(;i*s{qC<=#QX^&gh-ONJMtz#jQ8j}+t?FFjfDW}ZgDKn9%>UCw zLL2s{Q6oi#U}?>qg+)+wh#0m&Ux&~fy3$l6)j0ZX$sgWj6qz~b11%wd++wOGBvKLV zQ~0kcnsLmK4ct{($MK)q5CoDSkOT?W+m)YN){3ftG79x+MkU61a)_fGg*waryJemA zyQj|F&U^RG^;cvjI{qR9Y0Xvf@wUfmYM45FZacjnIzVXi)>hlS^L)8<(e52@lnZ<1 zQm(we;uZ2<;fVMNv7dw>o5Y#BIk|k*+A(ro50G`{V@mM7Jl9w3I_rAPhD$cQhpEfb O?%UE}e}1B%Z#mx^u%J-@ diff --git a/file-data-map/Message/89016ffa-1a86-4937-a88f-07eca1e591bf.ser b/file-data-map/Message/89016ffa-1a86-4937-a88f-07eca1e591bf.ser deleted file mode 100644 index 60cf3d5c52dd4d25cc8869f50bb64e3ed9600b4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKCdJQH!mJii2(<78New+R2YXQ&JI1M~5Rh(v##8b8o*EL21EB9V}E4 zQ5V6ggDypMa?+*#5pK4wE)FIJ1#dgvAJ6Z3->VMl6)u|7Yzqs=WgM`@gkUzuIun|$ zQwErFU{Jc1WB&ATqq(nf58H)@=3JqBH->>AH zyw0Ylp-7?b~iVHjeL_qhnL8c=;>&>@C@@?YviOom#zJX||6JuvZ%W zDfLBhhPt)2%KgM-@-~7{$tgx9|DbH^{3EuXcq;|ii>K3qd^5AUr}L$=%fz+w4X^f< ANB{r; diff --git a/file-data-map/Message/97df8750-f622-4ae3-a42b-fe4450c00725.ser b/file-data-map/Message/97df8750-f622-4ae3-a42b-fe4450c00725.ser deleted file mode 100644 index 6bc164fe01fef74d8b631e9886ccdb32ecf28efd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK(ZtH!-BDWxB<#X>R z#UMl3`uTq^IJ_mTIM(l{w|$Y9VF?4z>kTtrZD@EiyXVcUDL@N(!4`rXsTZ7DG&Qzm xm$Z_{CLRWcih^=pCQx8zHcp(twXr>?0%GJ6?SC!-2iR4o-)|52rsVaw003i+lPUlJ diff --git a/file-data-map/Message/99cf48a4-bcac-4e51-a326-adf63741eed2.ser b/file-data-map/Message/99cf48a4-bcac-4e51-a326-adf63741eed2.ser deleted file mode 100644 index f1b9a971a99625667eaa375bfa5960d5c4fc2c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKHs3<7sWda3eW`q4xCMH9Z3W$-5)z*G9cYJqg=6R1Ld)D{`761T~-jk64 diff --git a/file-data-map/Message/9a128996-c9b5-4382-a96f-71fb149c426f.ser b/file-data-map/Message/9a128996-c9b5-4382-a96f-71fb149c426f.ser deleted file mode 100644 index 2bf66893ab2e3ef09ed70b501fb84c30281fc048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmY+AyGjE=6oyY$<24bZc4A{CD6@@SDx-xPR-0fIEQZ}-Gm@Rz?40O|BBHSn?7ZNu zvr;UAU}3NqAHfF@ynlPk=c&_SzMlD=X8zs}7W zQ{lDKDp4U=*|00H2AT=&mJ}H35c*cQVA#!R@;;-;?1>QQj{)Q^(+#1JiYQOx zzpBovXUA;hZVfyyd}>crkVFMZRN?lhDEfSvk8OZ)B%>RU~cOxY%9GuXa`Mo@Z*s;%pKj^;$oCsjt7C?7SWCg@Ng2U{sP6 vn7=63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKAIh{>K%4p zTnsXltsyC)S#9Zci8h5^Ue-MxKS~(nUQe8$@Oo3no8>zcUay?;rhCqt63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKX$I^yxuV5)rN*QvwPmmngXHs3<7sWda3eW<$pkt!WztDj-I-MQO1#d{3VOt;I$~Cvg)eE6L!di;B>u#Hn;}a5$19JxMMx_eJAiL9|fpBqFqn zON&#%A}IKCao5p7{{gL?brO>X1#dgPm*;)Huh~I;+(jwPwj}Pjl!0VX&Z*5LopR0A z2?dETps+2i5YDkdQ1p5P6jzam0kBrEf{3DXKqKlp-o&y8)Ra}qVO~W8*n@)YD*FFv zKCdhX(}Y&Qj1g1OH&77?DvE11g8&C;G-8>U8FCH+H=~<(2?nAs27$3C0MsI~!Z=_S z_6hVCmGB%r%7*M--*JLfheAOq6qG`R+gj|iYL#RG30agh3FeTa#u5ddMT3_8_w${5 zK0Eh)`qd=$adG%1)8Qes|MDp2JI2c^4rPpPxFh96<~t{!zOUEeuLRLWDYY0voqO5c{` diff --git a/file-data-map/Message/9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser b/file-data-map/Message/9eada667-9ee0-4daf-8e13-1d3bbd6d0550.ser deleted file mode 100644 index dd034f5d1b0f7680b1e962d0893e4c99f5c4bb3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK-*4Nz~ue+Bh0xjhQTMBZhUT|vB z)Yz6?(n=nico-Ne3d(tzKmnTBV9m-mD`8Fr#MnMzS?j&ItO4`ZE=!;Hz;}HC0NV4D A;Q#;t diff --git a/file-data-map/Message/9f1ee58a-9cdf-4733-bd48-9abd95742999.ser b/file-data-map/Message/9f1ee58a-9cdf-4733-bd48-9abd95742999.ser deleted file mode 100644 index 6ae6be73080b7a2e1f06d9ee4e973faf697bbc7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AF-XHe6o$`et;I$}N5R3Zh?l|5f>06L)HszcLWd(c+AGN==3cd3M4=TGM+0pU z+?<>gM8!I}yXf4-PPUVSt4V``w;k{2`@i?D2Ph(3w5Zz_7LLm}V2cUCY>o{kblac| zFy+9YhPS8?q)1WtMkEx~kW2uGUb6g%Y6w8nTAAz;r2@=UG$tUap$SrflI^O-|7kw2 zuKUxNULu@RQ#E$bK9V#P)ol(w4$w@-I=X<9Y-So2a1M;nvX#fBK diff --git a/file-data-map/Message/a015add2-241c-477e-b926-5967ed673109.ser b/file-data-map/Message/a015add2-241c-477e-b926-5967ed673109.ser deleted file mode 100644 index 11f4a24fe6922a87e7c0d0338e67b8a244a6d8d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK$4)3DVm9cRE9-lAWVu zG00H1X=fEq=rLeuH#i4#SB~B%y!zH=2SDKrcds^#K5L*18lUS%- zEM0Z6E~1VixQPG5R&WqklLiIvb~!K4`$WCZC5q_Pjy{g z_oh*!NI0h@)!c&`NE(CAb`xGipm8N?)ORT z7Zoi#W{~yS<5kD;R-N_*WnWPC6&^3fzS~wqkwD5ptVD^xJS(g+6gil(?7v^tc}U(i zSJJ0SSD$;n3T<8rA3AxIczW$*qP_IuN3)`@Io^_k*719zHEgv9^}9jmyylh0N2R`~ voTqMUr+z=bknP6+s?L5~@(;=mdwOaso2mxb6MXwRd%5}SCZTV*8xiLRNU4)@ diff --git a/file-data-map/Message/a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser b/file-data-map/Message/a202c2d3-dbc4-4794-b67a-8a1fcbcbee2d.ser deleted file mode 100644 index 12f5273e3978ed58048f13a3038bf2f983ff989f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKdBdhtn-*4Nz~ue+Bh0xjhQTMBZhUT|vB z)Yz6?(n=nico-Ne3d(tzKmnTB;3UW>TOm>bF?L&3m;C9|?{pV29lCt`i2IZR0LC_y Avj6}9 diff --git a/file-data-map/Message/a4dee914-d10d-4190-83c1-22aaeefb3315.ser b/file-data-map/Message/a4dee914-d10d-4190-83c1-22aaeefb3315.ser deleted file mode 100644 index b282023bd21c3f88b260a9ec1a7058ac9be5dccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKHs3<7sWda3eW`o0a75SwrDj-HSA5>cP?zge%l6x;jF7i4~C;$L-Tb1|# diff --git a/file-data-map/Message/a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser b/file-data-map/Message/a74c1f47-415e-48f7-b3e9-b6a233324a4a.ser deleted file mode 100644 index 0f21ff036787962050ad8aeb5d2a724af5006ec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AO-lk%6o!w}he;|?i@+9vErl7Vr7I=Sv8j!Sizv9vT=a%>XPSFVBM>5`en5f+ z5w!`TRY64cOA^{g3PB4AS~TNO(A{0m%kw_x-1K2gIFQgSQx>+vILamyf>~TPn9wbQ zGL$JthP(1A6@ru~_%9$qP=g3TBzoC&BdQ?~rnD`xLzF7AilQ-rNew1Q70Z^R8vmz- zg1YQZLwcETPAjUh4GoYq2#;}cw(YJO^#o;4Q1%p_PeukEv!zHN3VSZHsLY1wnMFt2EhFkQN71VwX~!M2_T0Pm)W_ebu-W2NkiCpil=D zK@dc+ib@qH!5`3HA=tW!uI3sPyzTg2p7;5_s}I!2Jv6C1w#;3RGLUV`Idzz9P_8=$ zp&%0m6gK1q!Z|hx3SWqu%ejy{$+{%AIHW@p&12SfHS_;; zW=0$Hr!gZ-gvAJ z-NZhX$IIEa+lYGdt}V$x+E^JJAlK6`m51b7SM+Xb3!%%~Snu{u%e8~^ZtrNbR^6=~ ztk(8QUbXC1_lcj7_(=$|Nt(G^b88o!Jrk#KfTB}KD8cvg)!{;KbN^Q{Tyi#PjV?bu Oj~`C+`~BBc!TAOh^_`jk diff --git a/file-data-map/Message/b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser b/file-data-map/Message/b00dbe7e-53b4-4155-adfd-f996ea7d8628.ser deleted file mode 100644 index df779fe08101a3e10a40ff0035e5dbfede089624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKmh-wIgaV<|aiBd#XP&6iRQG+lkV$OC|tKkQz%KFc|>IEUKtnAmM(V z#C}zgqGJTC?;a{Sj`!3tzo6_Fl>G|#CxgA3RZ%36(hx0BA~3_u6ho1QQOo|@O3uS_ z{J7G5sumY|&BUJiDtzfky-{wN;r#TMa*&))q+SrBAMM(EyWFkscTW$!z*s-fFDYlJ ud$hjWnVDU^jsldNt(fG0CMzc!v2*vV6ez0~@k_mPcXKuM{Py^*-8w&rH63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK-*4Nz~ue+Dj0WIYPTMBZhUT|vB z)Yz6?(n=nico-Ne3d(tzKmnTBIRAro!K91|h_TIwYAUv;UAEjbpTl6Xy+d080KGVr Aq5uE@ diff --git a/file-data-map/Message/b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser b/file-data-map/Message/b3ce6eb8-88d4-4c46-a6ec-5edf291e6429.ser deleted file mode 100644 index 8b2fe7c446a0f8de97f0a4d3ac9d0c20bbaf42a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AKS;ws6o;?zPc61mbPy37M28|I-Nm6Q#gsUexG5aTk)9-%n0u{pDF}+C?cyL* z7o~`c4#gsfI*MZ_cXwNz1Xq&=1#dgvkMH-rck_XUxQiAv+Y-6sQU;<$Ij1%gb;>nc zClo}&fWn@*PB_N~LE(!CD5{_Y2Ebau@*}d&0VS1fT*6Wjs3|Fw!=i#la1jc&E9?KK zsw%Jg)0kGkj1g1TcTgD#3W{nr10M%yJY<=e8B!j6H>00-2?nBP{J=yQ0BR9QW*jgJ z`ULumiWMC_%m(a1&vE=!#{xky5EKK2r_+J&hIJ?jNXVhMNic^zHI^yx92&Lkzn|wk zPPOYx>8f<0PQF}6vgbU24j(0-J7<|#Gd=%VFR3ezzht-7cyAr|s(0O5rCYl!`=yC~ zX&@@*iF>kn@Gw2Qb{j{?b9NI#a8SD6ROdEoUtWm4>TSKHX7p6M!|p4uO4j)SZCaGK diff --git a/file-data-map/Message/b9058c1d-68ea-40f0-86f9-46510c795a06.ser b/file-data-map/Message/b9058c1d-68ea-40f0-86f9-46510c795a06.ser deleted file mode 100644 index 33ffcbb0397b4463ee2b1ea9e1fbda3ee1401e57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Aze~eF7>3ViTZ^suV^9zgT*b>GE)M>nh$(T9QU{^KksQfMbBVdHnl9qds)M6} z+CM?+;viMTzoBjp;;5i4xJef=X;ARC<9m7D=ldER6ca9*(`*Y1$7LL_#e`rs$2t?5 zty2b=a$r!#n^Xv5P!zpB2_;mNCICb;tstW40?>%MOZJIe0#=k&CSXZLgQNte?JD~J zX+E!Hf@xAS3Fow^=zHi8Nh(TcHirNQXe?qC2{+^%1a3wz?@|I(Ukw7|Q2>}lWrYhM zJnWO$FDhAb^e7v$2Rz3KRviunaVUsGh5L*CubNerB_w50sz`}|95dD!h%6ei?7yGq zG`^b;udNfl-HeYu&1aTH2#sIW<#_j{@cia2Tuun}F<7$gpMF&Rj$dn6n(g{I4ocI# z(ohuVsOuLhcT=+)*C~WN=O8VG2W3Z#mC2c#mKR}*t2l9m`mFQ!03hZIGmM%fA?nkf;+^<7${Y881!)w#qa9foNY%eJeT|EGn5 zwjNBAMwtr1Dw??m`=IEMFl>PV4q+lOI1M0!f1t2iFsaHF(C~>}Py!T87Y}HuW;~$K&3`Q;qlwx#eKVzJK)E^56V+zj@Q|o|2$6^-~&( wl00+$?Pf1Mvw1ZN;5qe_5+0NvoMh(j8{kFQv(CrML#()S%eBL)qPFOK15{&^3;+NC diff --git a/file-data-map/Message/bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser b/file-data-map/Message/bc3f3f8b-7c92-4134-bbec-80db2cedb6db.ser deleted file mode 100644 index ca0c119a975c3e3e1a3765fb6ee3b77c882de8fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmY+AJxjw-6o!xSqZV5cJ9ZER2Wd$bH;1Z-G&P+{M~6#tNp5LwV(zI%DW!uh>f#qv z1;O2+I5=nre}T9coSd|s9NfgDLBX>f&cpM*_ulqlRCtil9a|Qz$2iJ16M{KhHki;I zgEEvUM}|9ckqSXf3egNn5Yr$@5Q%Qt0iqfLVM?ozEuz$rRTYg1T-0Ek)X;J~)%brc zm(|ta8rLntIjyS3CNx0OAf`JU10BM2ZDw0tpZE zB=)O{*IXlFL-&a9y1`Q?!-8^HP!20}E{4Ba_P!#4RDeX45`iUVt}qk@n6RC{&3A7; zJI7CNui3TTN}gN!c@av-TKu_u@S>cqH@>si>0%5a@zHL*x0}7Iqu%9N5SSbUh9%_^ v_0Bi;9@4Y3ki?RY=m|GjtCg@ABiLbps=*bd_;n@k91aoJ!( zw+zZqrW_e=$O}{mlA++g9tnaPL zKTW6AId>Y?vxIY+Q;k(9f}}xEw>Y{ugkhhRBRr#|&~?lF8&JO8d`uh(58A)C{QPwJ_5L=t*xHZ1r~!A$PIddWTK7SSh-t z(VtRJR8CQ+x>ULu9iOj901EbcRPqkWwoc63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKW@^Xl)~Ro&&Un+Z63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKH2dozhggYyIJ73 zO^t2YC9UMKiHCuqqM)3Y2^652jU^{^3{!n7AjZym8FS|H6{o(#>eu$lopgCo007K$ BmXrVh diff --git a/file-data-map/Message/c3319f28-fe32-4da6-b132-a9e9f760bd35.ser b/file-data-map/Message/c3319f28-fe32-4da6-b132-a9e9f760bd35.ser deleted file mode 100644 index 62a492d2fb72c94ec87ed6865712ec12eebd60df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+A&npB`9KgTEk0rYjM(D^Yv#54wDV@n`!4IERaUeP6h(=Y zXv+ZyAzb_cPR=eIH0$KxCNn0=yS=`jKHtxKr|(cHUFa}ui%7@i0*S??(W>rhQIn6h2X{6C$T z&<6c!jgg{4u(W2*!XhX-L=0P?uR~}EU1=(kY6AVXr$TD;;`sjyc% z$(8o=USZWM91%Yu_LC4~lLT|Orv`xpX#46OKX$$WVey_q diff --git a/file-data-map/Message/d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser b/file-data-map/Message/d20d6714-6aa5-4924-b8d1-c1cbe566879a.ser deleted file mode 100644 index 06ee758ee8e86e8dce3082993a7bd8360fb990fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Au}i~16o=1PZHtYHx(N>ACR}h697J(w+UQcc+2Kg8>6PRXbFZ~7g3w|Y(Sn8A zsf&Z)BqBvz#L-Fr1W_DpXAu{Z1_f_B-jDD1y?5D1Bf>+Ax?^MEdW-|MnGnq3*kD3; z49Wmg4h;72CKZC16oqd{LQxIL1c2xT+mEP*05qu;Ntq}mV3wjW0V^7ckrEUfPc{Be zvsrb+pT_k9;hb8kv4i%Jq@k$paPV<}rb3oQxT$2ocQXfhj}oB9nje@B1Hf#ms9XTy zL7&8aQSp*%gxP={skpAc>UbcC13?@p+?@@7w(OcBAt{9t79|2Q%v@(6QfSO}{(cp= zkzDphZjN3ebDiyr_w=g>prgkV-<^l+yvS{RrB}VwlD}lHS^uat`^{Fb+U>PZv0o|= zN&``xpVo?N?=zKU diff --git a/file-data-map/Message/d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser b/file-data-map/Message/d2bb208d-9b0a-4290-9139-c8f3e38b9637.ser deleted file mode 100644 index e27b0f00513d7c5a9819beacc258fc5f86a40856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+APbdUY7{EW{|DTm87p2V=Z!Sub1G@*KaoU7~!)xZX`?T|B%=?ygkpo$6iu{R4 z4x&XVNm@8@5HH<8pz-;!<*35R*&8HW^34 z1ah1u!%Rw=WDuSb1uAujP(*5^EFaNKiO`@=(rKz@kf&9hOYGI5ie@lnyPElbIx?cg z{b{w4qC&8=W=_EzC^}Rcwm@Hp&=|VXR3y~|`fbS{-enY-+3y2QA%NUsswN~-5$sd= zuc|uZm?0au%d(E+KeavxBtakv67F_NzqYMKRRLuP>e7r#Oz`9YM>zzwmi>3jI+w9n z=2UNP@3^|}JHLsY$Us`Lcl5llJU0IJKJ!#4EX5BHTD`T^sCSVo9$!bj!bUN_S3I6C z?k{@zoR>c&enR9YA;=~P=59_b+_ba}Uep0(otcOdd@rBx`s`dEeaVJP)_NX3Uh`Ys NkGIj4-I{?_=Nl7$pqBsu diff --git a/file-data-map/Message/d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser b/file-data-map/Message/d3b0d96a-65b9-4325-ac42-41db9bbf218e.ser deleted file mode 100644 index eb7c1d16de5f446c8ad85a764e1ac56c3e4f166d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Aze~eF7>3VOt;I$~Cvj2`MCCHL>C#q*ro^dqaBw)1BfXMbV(zQPMG#u(1%TO9QMmxZ z!#;`qq7r4-h_WHO-*??$)savThk`g%xNXHgns!x@kd#A7ixL5OW@Z?O92&Nrzn|~k zi>2kS)6X_NnUqI6*`5fYgBORf^5deOYTeAIUaIOwuw=JUd#^Tnjb^uU**&V`pj7@T z4MlODdX3G>_0&xEJc*F+?#NPjP_}>fH1}4o`4P6ANq3GPrVpOaUQ6_9b=Lg`AuyK1 diff --git a/file-data-map/Message/d50f0417-7b32-45df-bafb-6de9b49930c3.ser b/file-data-map/Message/d50f0417-7b32-45df-bafb-6de9b49930c3.ser deleted file mode 100644 index 7074f74f4ba932d0365b16f103f85ce416fad5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+AF-XHe6o$`Ot);D&ia3Z0;-*|g+?*^5ro^dq6giS3JxMMx_o@-0Ahu9<1Fa5D zf`gMNNa^P4>d;9iL2SXz!NsIO!P}1a^Znm@H$5~YT(qFs78Z`nIADtj!EBCoCNx{8 z3^3)u;1F+7A&5ay^admpS5cY(5Uped5k(h(GU_hbCvq8>DXUDts)|NP8A`UR=>Mn1 zqOu-L6IzLIPEAGMLlq>cD6ZKY0vw=h#4-staYhJrX0#GyjFIr!DEYO;i+JW83A2q-Wk$3Wy!(z5@4o>M=` z?#xu4-sVN_vz^IbiV!+{-Fg`6u#R@2tOQGT{rX4E@A-{x^`U!yhJ(^{zcduZ x1?u|S)z;M9=4}cg&pAj-;X&E))k1Rd^xBKCt#9l7uDSI1JQkZgTHbhZegK4@lm`F+ diff --git a/file-data-map/Message/d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser b/file-data-map/Message/d8aa87a1-8855-4dd9-a18a-d39fe0bd11a8.ser deleted file mode 100644 index 6676b1e495ed8474f5114d474064145a45658ccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKIJ73 zO^t2YC9UMKiHCuqqM)3Y2^652jZsT9CjKj_fEc^5>+<{udj(hASk=C;Bh>e10RZ55 BmfHXT diff --git a/file-data-map/Message/d91a2ea8-756e-4720-9374-5810d6e66988.ser b/file-data-map/Message/d91a2ea8-756e-4720-9374-5810d6e66988.ser deleted file mode 100644 index edd9bf5a9dd1bb71b257f119a2c0a919dd1c2d59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK2^^ z7-T40)9Sse=WN~~BBpZQy7G_5NuVd+Ozn8xI`!?;8E;y4yqPtn4rnPa*iw)~^@3B2 zrpC7Hl2-EA#KXW)QBcmy1Paj1#zpV61bu8OAjVEEi4eHfx0H+p{ A^8f$< diff --git a/file-data-map/Message/d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser b/file-data-map/Message/d9b0ad1d-7818-4a65-85fd-4ba5b3506387.ser deleted file mode 100644 index 429ed98cd5728145ddaa77d31c8e78d27a5aecba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmY+Au}i~16o;QtTT5FJbr7rw-9)$yqJvI~LsL@_N(TqQBRSHO<`Q$SH7=skB7#m< zsCIVKQgjpl3>PPNt+SJ0(xBkm9`ED({qF8QVOV-FZ#XuQuEzxun@h3VW~w7x>X@!l=X|x7IkyJS1)BZ}Z*8&RKSM z@g%pDepxP9g`y0lv3Bxeq4So{lxka@*?O*tkoxGh-n&P=_IdB783d;LfniBfWZundq3k(<(c~f46%-< diff --git a/file-data-map/Message/d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser b/file-data-map/Message/d9dd2741-ac5a-4c40-80eb-6f358d745b5f.ser deleted file mode 100644 index 0a495e7ff069e7f3f22a58a4292f5e9c19d7d138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmY+Aze~eF6vtoVkG8Z`(WT&~h=XvMoLp>CXi5a7bWw_)$B5|0TSPi87f38FCAS4JxioB( zaU@J2#{;s$q@+a#!GshD>yV&`)F@dVqL~t5Oy8ka=@7;PSDA{UnnSN!vCq4VA~RDSFcARAEv9NhA{Bm~ z!hcoKiem<>?;fl=j`!3Nzaa4o62HRZ#lUyVI#m@=vJfvbDlx~4X^t`rG0Xnjs!r34 zY;8|}%_l~W-;%4DnDnK?*UyE<{YxmBK3u!0KP|@*;@wW`qf_f$o%Jryy}(32&@V}H u%xxA<9ww(Uw{d`~v!77>&*ZhcI*~K2YM`uj?fC|7Y`(tFrrPWJqVoejV~^SZ diff --git a/file-data-map/Message/dc116c66-b46d-4826-b6b0-8a06a122254b.ser b/file-data-map/Message/dc116c66-b46d-4826-b6b0-8a06a122254b.ser deleted file mode 100644 index ba4f5e1aa8ec25ce8d4425ab66cf4a2f966672c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmY+AJxjw-6o!vcTZ^suu@t%$Du|NocF`i()Hs!n4wvNGTuE+X?x|J~QP4$nQ>sg2~uO)2S!2wnN1ay3nVwyJx! zuV!Nzb28Pgjjdniu0$Y>94Y57U(u$Se7=85zRorf;vebsGPbY|{t$XdL!^P}z$H*t~z diff --git a/file-data-map/Message/dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser b/file-data-map/Message/dc9433a1-4d39-49ee-81a2-1cfd0db2f1dc.ser deleted file mode 100644 index 6a72362de45149bf2546803b871a3948fcdc1007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+A&npE{6vvP8^TkLk)MLd)sXGfRS$Qdjv6}Q2SlniA^R8y@jJfAAQc8%W#hZGR z#8OsP!e7G6Kj1w-vXF%`W1`&M?R@)uKj&OFpjC!2YWW_KLC6IXk4wpYL2NE9-)0;M z6UcFc%rhye!ytQ23bY%bQbcN%yd1}OPnyEgO;)6hr0cLy0D;6 zCDWW$qCzlNw^v~c6a(5VUtoem=*?Iz6^>?N;^zG1Lq?I=lS!a23n2HHrVEKwq|NWw1e`hHF zu)g_t(sWjRe<<|J6xw!s(fv7HoVXw6#k>h~i^-Dp_~2eXAVRv9~+AJ?CQZ>H^)&j0`b diff --git a/file-data-map/Message/df914aca-d25c-46c3-a002-da79f51c3463.ser b/file-data-map/Message/df914aca-d25c-46c3-a002-da79f51c3463.ser deleted file mode 100644 index b005862e8a2c857d1f73229f8c94408cdab190f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK2^^ z7-T40)9Sse=WN~~BBpZQy7G_5NuVcRZfmA#w7XvM6XkqV%!cF007Zq BmKy*7 diff --git a/file-data-map/Message/e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser b/file-data-map/Message/e3cba96e-c04a-4ba9-b3a4-854fce42b7d7.ser deleted file mode 100644 index a6893e8cf365f705d9f10f48260c5a5834db015b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmY+AJxIeq6vtoVM=foo=p=5gVlo#UY7sRx;!rv|oXOFiG?$or)woCnyNQ!R)z!h` z2SpJ?Y1O2~?e#sp4kFhELJupHI+f6e98 z8Sfg=3xso8RE;&*0!f3gZgKQ<2t$FZNO)e!qSr0o1rnc2$pb+gF73c! z90?Q1ahXgoDXGgKojMJgO~_J2Y8U+kF&v4|Vb0Spu_tbzK8(95NoG5-slLIm&Tp^Mk)F4!0*y z270FkFTeI-BR4YIEtRxsuh##dugbf}tNJr{Azwkryqq6ApO;^cH(!r-lECawpeji$ v7VXZi-Sp%N7a4#!T*_+dGkN*Ck8G{J$EotTc0czqv#&i>t%==Ap&EVz_0f}+ diff --git a/file-data-map/Message/e553c781-5745-45f1-95b0-c2f5bff13894.ser b/file-data-map/Message/e553c781-5745-45f1-95b0-c2f5bff13894.ser deleted file mode 100644 index d3aea49d61dce6737809ad19dfcab93617193156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK3VSt;JTvA2`@WSMh?5Do91dl;~3GCUPW4dXijX?yJT{99j|Q2CCw( z&A~-+sN&>*(7&RCEmRQ1Ns|TzZ#%x1=Y78Ku7!Gpi>5T&!oqPG2W&ARn9Z@ygl6lM z0j3-n?Bg{m1TiRzUYCU8DoPOmq7|$lqUZw9pt?5s+iX5(AM%{g(ar^PHMj z1NkX!t4HK!u9>Ne5Ze1Vu~mQF`M9{hj8(3t*IBS+(?5PI`z^oPEY+H46&#eNI;Ei~ x&QaIjEIp4;u0A9Y@|?Yt6dsfvE-s92%-(tt_WbMQy*<+SZpdTlnfA)H^8-K5mWBWT diff --git a/file-data-map/Message/e97e3b65-0832-4d14-9932-1723cd885a3e.ser b/file-data-map/Message/e97e3b65-0832-4d14-9932-1723cd885a3e.ser deleted file mode 100644 index a46557e778d251a4f9ed8e43de887970dffffd73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKkTtrZJ79`YwPRoj@R8w6oHoVf-MC(R4+KS zXliWBE@>r?O*{+?6$RzIOrQYGY%pD{zVNY21;p5yM&in6JEH7f)>)@=82O46004zT Blz;#L diff --git a/file-data-map/Message/eb7fd738-ced3-4f54-a76e-70319b5b368b.ser b/file-data-map/Message/eb7fd738-ced3-4f54-a76e-70319b5b368b.ser deleted file mode 100644 index c4be1b095a662885c5a3b86bc67bce5b42bfc574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Aze~eF7>3VOt;I$~CvkJMk|2VJE>#?w5^<;!LfNKcYW%ze?gRD>1;M-8;P z2%;{X97O!Jxa;81!9Stxtdp1+6uj;DUY_^)zD5W2a2I7X+mg8BQU;PmIj1(0bjmeb zCln;YfWoe{OgP5|LGkMnP*O!A2Eba$3L}cn0S&2}cpJ+eP*YYZhj|tCVGl~StLXoy z#iFtlPE%S5Ge%5B-$G?1s3@t~3_={B;h1G&X2=By-He~SOE3_9Aq?oRL1^FHTXzCc8}&}Y~dk&ep+5{pa8Z9z;f4clZK z2@}Y1nM^S$X_`TJsuZZxAxaUck+FP4GbKW+K2H~^nnRvdbuMvGhkBaBjO}XX|LM$( zmhh(yMurN(vYNR7E1>95XV?OL9YQR0WvNK3N%Y&&KfKE*GIPWS+Cl)i#Z*m5q$1d- z@LyF!&M`waaM$D=$A4;b5J-YR5+vLoRDbMS1yuoM0-CanN=)+fC`UN~jh6j)%R8HM z!?SPkWA>#yT-_c{f672wyK|zZyjXkWwYo)pyh&Umba~rb-Ck*63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjK(ZtH!-BDWxB<#X>R z#UMl3`uTq^IJ_mTIM(l{w|$Y9A<&brH_UjoVd9&vt*^T~UUx511X{`qwiM)0z2MZM zsj)4)q?J52@h~t{6qNHafdVwMapDB7MJ7ioAja;y{p;P#B?&q|LJYU1FZNzi000dW BmjeI* diff --git a/file-data-map/Message/faf8359b-976e-4aad-bbb0-83a17838f0d1.ser b/file-data-map/Message/faf8359b-976e-4aad-bbb0-83a17838f0d1.ser deleted file mode 100644 index 563408be49a13fe26f5c81b290a9c4a0417550e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425 zcmY+Ay-UMD7>CdJQA=A99R&xSig1|(Q4lOuni6p+9UYG3NKcYW%)Pa75vnct2eeof z2hl-LQJnmm+#R}hbG8L1zb2Cg1#dgvAJ6Z3--{0F7cQF8Yzqs=WgM`@gkUzuIun|$ zQwErFV6cgosSw1VD11EmVK!j*d5+_+Iur=vKoAECkNdqJ4XY|kNXnwPNr`|QGg1sh7R4<4@8>z? zO6%w==G0o-XZdC_{VoFNz?HR3W({-Ui)9R%InM7V&Xil7uRCF)SRS@1}X^rX4O+*gf@2)5uNh*+pa zoWw~GbkX9_f56?3XIqZV6{ij!DD+zOY)%|%NEQ{z-R7CDk5JxMMx_f_K(D7MhW%|NY# zlbbGrBGSP>z|p0fE-r1+%}q=i6uj;DUY_^)zUv{H6fVkXwuOb`G7i{cLNJ?Soe9m> zDFaM7FgV7$R0v{F6u&VEB~+9q07R==VMNgdpgDD)91^((%#>9oU|mJiqy|;nRrLSU za#<;a)1+1acC2NizXCwB6=Q!c2vymW<1aYL$Jsdy3C~M)8gP_%K2E(8|Xgmx$XMR|k9+gI- xxJ2Ec(s*24*}hF7tU**y_rv)#@HaagG_xbwA_giJF|Fn~JegL7+m5u-a diff --git a/file-data-map/Message/ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser b/file-data-map/Message/ff1a7fb9-a8eb-4e00-9d5e-48f104257923.ser deleted file mode 100644 index 815bedf8bedb424e2221f745b5104dbcf24a7d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmY+AJxjwt7=T}+^#iT=HHd7ad1#LlA}FoE;0AE)P<8XYb(C0J+6fO-Q67 z*r)JcRa4e6LpE^NHCoOhB_`|K0M= z#_mP?Y~(aodb>|djl?fyAg$jn4R^<~pUodiwQ}@2Gmp^c?eFz_cRS^)hkozopjmBHmlsA~Vh1-}`EbeE;$*dM PXm#+bXZ`Won*rw=Rn479 diff --git a/file-data-map/User/01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser b/file-data-map/User/01b4af8f-02ed-45c8-9d77-5ea77ea371c0.ser deleted file mode 100644 index 2694656325afb72c42d3cb14343a998939683899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmZ9Iu}i~16vkgtTP$s*D7d%@f*@S5x^=Nd!In&xE`q|5ob@EROLMPnT#ADZPEMi@ zohs-c2%?KRbaeC|>FnyIp$@+7eIFm+@4crnq*Vy3j`WENLN1W_Tq!OEak+A&%QzAy zkmD(7Di%UAh6&ky$VlOF!EDGnA*0CL3L-4nC$vi~EEp3|IMJOgt2f1f8o3(AN=RK;h;vny`3bvsSh7Gd;RjMaLH{MNM9fb0Td#pAQ zQd;N)Zo)E6bTqf1KAR+>z|i*=Vnz}(k_HQ}56<70mUmzB08!8@nDLGLtXeFu$x(!m zQ%sh&97*((barl%jX6oo`FWT6x%DqB6U@3MW*WJ{TUCy#4mn@`ZBa1j9X|Aj?UC{N rd}WSzzElj9p7ve7-LDL8T-}#Brt77R&ETK^xVJd`_}2bRL-YIsT6BzQ diff --git a/file-data-map/User/041ea05c-a9e7-4be4-9148-387205b68de2.ser b/file-data-map/User/041ea05c-a9e7-4be4-9148-387205b68de2.ser deleted file mode 100644 index 733c575a400c7fe91e27524cfb014fa7f226949f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-Nc@5XC2#L?cN=v=IdhE2};HC9knx)@0;%Z{3|FXCnw&3Z@XW zvlVQ#un_+m5v;6j-OYj1?R)!pznSMBC|d(-Q7W0$1{E=h)?%tyj5bPRfy9I&q;uA_ z!azQS0H)h86B)rt#Ct@r&_3lu9ui6sHkBo=Xr~QjAvq=l^SPUF)eAf1YI@ELFeaGG zodIDIcDv03r&lz$c9fd<3@#vWHQJ;nn26>?C^})F11tiR_RFT7wII#bZJ#;+}HE73~k8CM3t4V6${{uEz0*e9hRK5oQD%r86bW z<0R=Fd41Jz=Vsbwmv94-uQ67iV=j6Nq3VUH$;#gFqv8`&kEXa3i$r1kM$Lf30uCDq z`*3#mzO{Y&)&MBXtQmzZ@OIv2-^as(pg!RfevoSB&)~D`i)=t*0qNtZ`tvC7;|QWY uG;+Zmjd0vWa($>v{r@V=yz?^r{Y>UHY(1xG_k>`1!gt$y9b*WVLdhRFcXo&X diff --git a/file-data-map/User/07e8700c-0540-4a49-9a43-7327d12a71f3.ser b/file-data-map/User/07e8700c-0540-4a49-9a43-7327d12a71f3.ser deleted file mode 100644 index 0779e8ab3a7abb8e1f775d183aa1b43fa86c37e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##zc~cXlZAoSj^(1vx$$w4e3Hki(z+6uIxNAbE9h`2-+(ssK3F= zQt}5Z{TDV?7Pii0!Q0I_b2#6P#Rpp$O@c4ViE%5sOuJQ0OEeM(;KH{BJGk*r3U7TeD5(`Mv=j!j1yp1D> wy3oo6chtw>0g~%NQ|kX$VO|d1`se2Or~YMHwN5u7m>==2?VVj?2HHYhw(jP@>Gr*Syx+|050q>QJCT;mniLf=iPoZ4EJhpYSRgT>2U$b8P@{81x`LTci*Ou89`;h2fPt!=FZ@FlUUA9%N%lf(Jl`#Oe_v#=U#Nu9AmA(g^8p%qPpi*>>UQm#GQGp^B`{` z0;C1ilrx7N(c2g3T2PVt|CO0%QeXHeZ#`A-z7`wbN4E&meYUo~v1ts#R4DlaROxlg diff --git a/file-data-map/User/0d0f7fda-1850-480b-9564-08606223f035.ser b/file-data-map/User/0d0f7fda-1850-480b-9564-08606223f035.ser deleted file mode 100644 index c02472efc381b30a3d8bdbd46e1082ce3ad76f88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd#{zQ^!&_=M+#zJQOt!z{*l8{0ODFw%!F}bqyxog!TZfvMLhsRNCeSBFNF*jTA>FW^mkx?4 zMKIfexx`6MQXCS&QssGj4n9EWwK z8=pRWtgJTQY53+`1dCyJOpfeaoH;R@MlAFZ1bqjw z5Ny;^@C|$dTT9W>*(`Xv`TzO(zjN-tpynN{CPr~@9ctnVy+@;Yias%^MB-8t(ujAx zbWl!(!BiXSiIak4x<>?y?Nf0sB0?pjSbGwhw%bsXN?=B?P`a7Wy{JQ>rWZ_xDZzZ{ z3<$HR+l>!`K5d2fL*vpjxBwPvtTQK=$#^VOgD|jZ*<1Xmgv21AX`$pek=wA*Oo77- z9Nv-c=J@J)Y5DN636R_23@f(4%bnqh`CQ8h8hz0hyNTi93?Vx^&K5|#KzhBa{@kkT zhyiOsGn2wo2YdTSz6A|s{$II$daM7kkC&sl_e%8e9ghem`(k}#bIV$SiK65WFrs%K diff --git a/file-data-map/User/0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser b/file-data-map/User/0fdf183e-fabd-4ebe-b652-1c19ea01ccde.ser deleted file mode 100644 index 89fac4186b7f71814fe78e111e5c3dad8419cf2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-KT88a5XC1K;~$c!XrpLlW#b-dz(Noe3loBcA*ID~wD=iNCSki>-*fu7=GOL86Q9Bb1g=J#^cWLS9|}b$^mLr}`X2?C=s7gSr5GkM?KY}< z9OiLYOPHIZtEYvf{f7!bru)^vZ-JM!@0E?gAR{Pud6#cTDRXCV*~wwnBQcNkd{_Lr zmDgbaK?5p@;Fen0*+sGqD9iN!mFdUB#re;|+xyhV+}7{Q!7IUNm#?m^*R&=W@g;wL Ct9R)D diff --git a/file-data-map/User/12b8dabc-4330-41c4-8e52-184b23168907.ser b/file-data-map/User/12b8dabc-4330-41c4-8e52-184b23168907.ser deleted file mode 100644 index 8fad6f49e62a42f1b92cad6d07fccd7a4034b028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-Nc@5XC1KW0XXZ2qM^NlWNbe&L&X{6H|yGjbO3dt;xvkhr1JVHiDpqjh&#S zU}veSDAi)|+1h(*wS-xwUN!!BkfA2lXR$ AF8}}l diff --git a/file-data-map/User/153670d4-5982-4ee2-9629-bd0703823aa1.ser b/file-data-map/User/153670d4-5982-4ee2-9629-bd0703823aa1.ser deleted file mode 100644 index 159dcd641f6b18fca62c89ec89ecaec51e4ae215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-zb^zq6vyA~IY;hJgs5~X3bQ#xL4zpV<)XQ4p-@bA$K8{iA9mik)ks|U0~CZ( zuTl#Cg;J$gE19`Xyl%eV`R4n1@A(@lHiP9@OJ+@mikL)eQ7e|9jddcBm{5dt!6GX% zD5exZwFA>}COC;?mk8!Nr~I6Ugi?epWr-`=?m$IIjw!)h;ig>m!Y;X*o-+eX2xbds zK$wP6)Y^CYl;PG6b(WmLB?PXw

~^mJ diff --git a/file-data-map/User/1a9613bd-30ac-42cd-864c-dbee8ce23065.ser b/file-data-map/User/1a9613bd-30ac-42cd-864c-dbee8ce23065.ser deleted file mode 100644 index 61a627200947e51799061e1bd18955b7dd317673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqfMltjCKMr^vw;;k zlv4>{E`o(P7o0@0PXw*#grD({P>QgtEOA9U5!8g_m=P?OZpPIx?31e*Iy1n8V5xLQ zgjqNkbPt?9Z@9H%ohPSo0fDPAxjx2Bbf-eq2_ut~z5YkVB}NWSaVe&W!nlo^9*21x z)))ER(bdc9+Tn8ppfKZR;J3iby{E=*`dbjxQ=am@STlD9mtCA@JreUsuaDKA2YDR^ y5cHst32v#6!w!<|L0#(qS7C0VkMG;hwph7uy|pKucY@iJZ)|RD8$&STOa1^%e|L!h diff --git a/file-data-map/User/1bf79829-7ca3-42a6-9c8d-493b0925683a.ser b/file-data-map/User/1bf79829-7ca3-42a6-9c8d-493b0925683a.ser deleted file mode 100644 index 901ed33336fc1fd6d54af979c0f1d228f140e145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd#Mh!_sv`i-mrkTY@Wf~0@Zb%ol6dZQP?8wf;nH#f$2!fWDLIgX( z%0eu~AK*{1u}>?1L?XDgTuG90o2Zm=Bupa5D-v5~ zpqxqoO9QAUhEZhcAtI~~&gmr$kqZ_^(jt}E9YBo<%5#LZ(#@$Hg+p{TBWDIYMOZDJ zG4ec&lJpwN?6;J4tn_}zIw{V5O{8O`WHqKG?#%dX6`9*KCQuczv4D(=Go xf<82JMlBBcsK?Rvp&``&tI*F6QMbOC?YC#s&h<<06=5->+dI2^S|cp@l0S6^cBlXV diff --git a/file-data-map/User/2124dabf-245b-448d-ac8c-f855b284a397.ser b/file-data-map/User/2124dabf-245b-448d-ac8c-f855b284a397.ser deleted file mode 100644 index 4c3fd292cb88c0980e2e76ac6cb9da6a64920d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqf6ltBvMRDA2d41k6=PtBO&)^D(uQ67ih>W+VLfH#LlNP<0H_5Uk35CRcW5$C;aCZ33c#FCb`T zWoKn6c?1ie!cMReTW7N1?dF_0obTS3FDO|9n^7v6)dm$YiPmDOSd2DGV}ZnkBBV>! zwZcF?g#hN-un-x+NyLXlu-rc9Lmm=J5jK@2u4umvB_TN`1ohlaxax%+ay30?1{f36 za%Vu8gxzlQ$m#Q%TRTckd;wz!T#YvA8787R6^c$6=s557KMF1}aA=B4F->IJZB+F* z%;T_*F!v`nZ!7D^uN8nykE(&+0o=l&kfu7p43`T1haj|<1pWsC z36fy=4=`vH5{+fAmoRSM+n4v7dHjKjv#=3s$(*sMh)Hw~wPFdnSSJFB2}MX_)^ox_ zF{J?JB3Ov6;3SegB3Oye_yrFMr3l-~5m&SmK}AT8DZz5#rd;*IF8P|iHv>!vmI`M` zn1;Px`@rk-hC4UXHaUk&2z-sP`V>>qo(g3z3{6t>=08e4G4yDPOEFDk#&1;5aafMS zy29R_T)nQY9lg{5GBc_N`4%|Y{f76akBp!?-~--@HS=fi*~Mu#M`AhB+e7*HUS5X* y1RbcQf;;MBe;>(ppeptMD>FB@+s$$5>vR3^xbZxRS_HEL-q>tz8AC9Wm;3>H_I9rT diff --git a/file-data-map/User/299a103b-fec1-411a-8fd4-40260dc71f29.ser b/file-data-map/User/299a103b-fec1-411a-8fd4-40260dc71f29.ser deleted file mode 100644 index 331a5d7273c6a343c6ffcd3f38f62b8309a759b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-F-rqM5QQffW0WKkw9`Vc5Yy~ow2>4hVqrqC2`Md>yEPfP-CK7j=4`}5Yb!zh z4OW(7BMANh|Aw`lxSIo~+xPbIzM1E5C|LtrQ7W0$1{E=h)?%tyj5bPRfy9I&q)Rrm z!azQS0Lpz>jEvwU;tmn4^w0PO4+*6RyUG$*)apY?NRA1?a_%Nvjlu!BnvpXDj0x(w zGa*dE;jnw?^aahWou(!}hbstNjW+2iCZanNicXm5IPdj83NA5mXo^cQOJv$@RP#8@ zHjO!cVF$z+UI(s@l84x_!XCMrfinY42o_2w zCrrbBzjNsHS;MUz=`1;eO9)(z$@B@PqB9YyPRLDC_WBf4-Jr46Y ztS7SDd{LBpfICm;J3i5?Vr}?wR(Fj6 diff --git a/file-data-map/User/360dd43a-4d67-4d53-8560-89226a358248.ser b/file-data-map/User/360dd43a-4d67-4d53-8560-89226a358248.ser deleted file mode 100644 index 0f6ad5d7c65f6cf0ff4bd0052e6df688d7d988b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd#Mk7f?w6sg52($QGXk)}82}!l26dZQP&4isFXYQJ{5foEci=giy z7M9{;_!`!>&Sb&c%{g;8-@R`?P_qU$VEy_> za5UZP|R%0!hH5n>m60Jq8Sb{dzi9ljP5z+63O7I-!KSy~*8a)N4)_xN6{nLC5a&W^JliFu@thw|^e zya@vcnovsxx75aN1Iad_D)s*>H_z$q*JERCxE;N|?S38(2_}1dePeUW7=j63@(1M{ Bc`5(^ diff --git a/file-data-map/User/364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser b/file-data-map/User/364ae3d8-3e5c-4efb-839c-a1d7c801d212.ser deleted file mode 100644 index a0746a1434b3ffa2278baf57f8d3cf8a26a67f95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqfMEswM%q(~eJH5&>+Ktg~ZXtTjIbs#3YLwm{2gPB{p7zB@>KmrK} zJPJwp0cZ?(uxJE^*>1vhbIzQc@7~96s5%Rav6jpki;9>;=TIw_po?`PkeE<}bjo^8 zSSY3xz+?o|u@#&|vPA@Q(Gfr4A)ypuTRGy2)+4A2$uT8p7H-N_KkSmP>3cK4gkZLC zhJ$P{hK4rLbBW;soID^2~7^@F4745N5_QKF4MQ{G229UwEKMv!lT=l9WCrS+8&)CPROH)GBG8GLqToXwF~j`VU{{<)D? zVE{n~>Z#z4y4c@Favi8i{r}3$#ofdEYw4}I+WGw0*x&mlm>BS-*7Axm1eLtx4>Bfq AlmGw# diff --git a/file-data-map/User/467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser b/file-data-map/User/467a6a48-6e68-4829-a1f3-bc91c0e4de2c.ser deleted file mode 100644 index 6bee74bf0e45dcb30924533ff4a52494b9490e53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76OlfCjKxXmL*+h|$gmhs`i(z-n-mvp<=0;ZwvCto2A!sRB zT3Jd8e~Fc?m4&UdS@3pq&K%Bn@9Q_zoQ17eOXiG4MNFb|s1-}l#X1p4OejLSWRVjV z%BcjfG=!Dd3Qi(9B!bp(!q0g~C`H&;j<}+OA=HHAm=Ua(ZpPI(9FeaXdo#dL*Q$S)u)(={#>YfVQP}HxA;-x4|g>!M>$oVL&kS0gzzh z0XlU=yaeyS%8b}>8i6;TH(&%U7MEbI)mWX@Qjh)Lm`(26C(4RwNo7%CEU%LWcD zl&2EFQXlF=i<~eyCW7_;6~Eyj35j8(9C1a5eW;=2A|qHU-HfX=jLFxe-V8)Suv$7} z5?MGHM5kU~Hr%<1w#hZzLEvkQ)gzH%v=FLZ7@MT*EnZZ7V(ifrm$*pe#xH6WIIO^7 zG1{l|hqsNb&b$ebn@KAuR*31WvpJn_=LBts`UrC_O@_>Wh0m`n@&y(vu-;#)-_PAPV3HNTH;s zq6&yhZ~`s>H7#~lVmiO)r}xdg{6NiF*i5x#&RA5$Bszy$u?$_RGl9f}BBX29bHYM7 zl?dh%sHawN5?PA~R+0;T#bZJ#;QQjep}bc1ApH8ZhaEW4*1sg&aN>8Goj=U41spu diff --git a/file-data-map/User/4d9f736b-0de5-465c-9767-19c473b636e8.ser b/file-data-map/User/4d9f736b-0de5-465c-9767-19c473b636e8.ser deleted file mode 100644 index 02ccff0d9deb827b99b9e7f3b6786b447bc9538f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-ou$5QH}u!jF<51PzD|QBe8BkJ8WpLWo46iqb)0-I>e6*=OuMax{n{JOTnL zUVw^%0#WiRNHo-R2s5BEO zFi=h`n2ZO4l@&9z%>M}Mw{#uQ_&s^RVU;+E_?ltic91UO>rs4i9)-LnjVLF z9M%)&?qu|~ymI)`04VgZ8Tc*mrZrk*zpDj7eZU8NC(4*RgUim2vmS|gr1!__&x5=T z0|+|MNCmgl!(qeHH(i%1c{<(V!9=E7Q^nCjO;v|xiM>@ASl)rirV-G ztWt`-f5g^W?3~Ghx0`e3aK3xrzM1J%TGhCJOygoVy2J7*CJ$)lEX$P{jNpu!~+8Nz(wW=!>>7=2C8n?$4tvxPH2 zkwx8ZYuD@3hB-IXHa&wYAil;}eIhd68VhAF3`|<|h94!L7rv3~*J2TD(BpQ%Dp36T^@-`ws x+EC9pa~O->jzHIjn$-WV+}w}uj`qm@Z+uz)oZC8lM40TemDRO%V-O}n$sa38b_4(b diff --git a/file-data-map/User/56b80611-d82d-443f-acfe-b8bee6d0876e.ser b/file-data-map/User/56b80611-d82d-443f-acfe-b8bee6d0876e.ser deleted file mode 100644 index 43321abc8dcddf4df3d3b089583c4496ed1eed9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-yG{c!5Je{&5#KWaMqf~}2G%2$GOGKI7kz(!)E;~2LdL-tNULK3z z59w_fK+uG0BDkeCc8`#36Dq0te`R{~JAVCqzmq59^1{bPeV?G*3-}%3|0ZlPfz9cW#ok5d{4MqM(J1 zwJ2DM|G?j38VfC*$%40=bLMcqd!N6cVl!BcwPe<0sEA3l7PVpt+E^z7i3vqW=d5Ez z2E~*Dm}y!_8NGL@ZDN9_@P75kRa!d*43peGe8@9>Sbe$PsLNHf2 zeZn;CbfN>NPaAISP-n>*TtMJzOr}pT713BIJE3oqqSyZ@xkTTgDK5o0ksG&B-QzHi z!`dRdJHC2fSUP;G0pw;_5BwH*`7~O2`CQ8hsy*K0yRl~O3@$r6&Uz%~kv<;EKlk!F z3?OJiEfw5S8@u~Rwh2|K|6jRz{k~nisXUI3mMLCuM85=+J-)HIwQUT+gfIC6m{fO{ diff --git a/file-data-map/User/59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser b/file-data-map/User/59028dcf-8b22-439c-b77e-ed780a5fd1c2.ser deleted file mode 100644 index c586c5b0b739cf7494bf46a1ee7e2b2eb457cd51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqdl#z!6^TH2*bHH(kV##dp&b|Hm@$gn#mBRdagZp_*Q3k5+e1qH#z z(#l2jetV~ z4()P#e{}V++B|rx1LS7ZAYlt}dGpeGuEse+ZNLU>JJHmi!Dknz*?>d?(&uCO_d#Aq z1V{(!8D|c=qQ5K9b)Y8o|0_4|<4ImU{`op2ci*?oy(fg(0b5(&*fa)VCY1aEEv|PJ diff --git a/file-data-map/User/5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser b/file-data-map/User/5dcc223f-791f-4dc1-85fa-da17e3f36c87.ser deleted file mode 100644 index b046e183b42c2a81437eea9b11391b1aa91aa752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^766tS=nQd!O7qf>~Ag$c0=DN_u)V{&EZ;m%F6X~e?dFA(%U zSXo$zjbQ07u(h_b5UiZZg14J<=5W4yAHJYuQ`n5OWY(mph)J{-wPG>aNXG(+2}MX_ z*0Camd)AC&iJcp-`qQd%r`Ycg`Xx9(2N*$9HRc7iq* z)>hhypTI`Hh_<%w=D_Lpy?wmj%=0%?tbz47lgw&^ikL)eF;gr-8)u0?VnPwp1?yX3 zpqNqsGhLXAjo>7b9U@rjp7L`Z5=s$9$`V)9?m|UKjw!)n;ig;-!XCMrfinY42o?%w zM3{#CezfQGSrqZn9r7XHjx*-Y;Ii|RtVd!V>HVSndoORo z0D=zGQo$|taIlMHJ5ZI`|0~yzUmFK&?Qt`{ZG<16hsy-hL%!MEYH3X{_SCIjw!)L;ig;-!XCMrfinY)3Dyf| zNSKEGe*4tv%bHs|%1nF-69`<5HrY9*qCFSNP8jOA==DEJE-`dyic2w1fjd(}^ diff --git a/file-data-map/User/685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser b/file-data-map/User/685ffcd7-d57a-4b9a-898f-ac0e68a4cef3.ser deleted file mode 100644 index 77c52a21ccca3e7108a8329578fab75c2c9780fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqfMlt=mq0g0c#1Gz zIz!}n7{}dhr_X9??MRvQ2+kmIHQJ~Hp0n;ms5)V&)3Vq9sJO(?p-C#(BvEL$QPblP zk3%A6ZuTyom)bjz4S+(Ant|VfpLd?x@#}kmP|s*aJBcFh3@+Q6WIYn`NH2HQpIdPm z1`zb1kuz#B;)5-Ywg+{g{$GW@x*oT(hqv!+|M&CbboU-%I-@JAYwKDgO!<;OpO$%K diff --git a/file-data-map/User/7536f7a3-3e8b-49dd-bf43-309685a3c488.ser b/file-data-map/User/7536f7a3-3e8b-49dd-bf43-309685a3c488.ser deleted file mode 100644 index 827ebc59c19d69b6ccb6ad9c3237138866df1166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76w6wFbn)QW^An{SSA>ESFV%Qy%k)4M#cg@;}g#p3ZS7nhl zm8A$a{sU`&f^}MFvf%CJoH?BD-tjNgtbz4J31YS35{cl}awSR1ZK6`fkuZrIuSnN2 z1Laf#nCrkoVi-l19w5R>=bT>B5V>GsBrQ^jdmX4TL3xI-T)G*Ry)Z^s({pCPQ-r0` z$&qJaw;LTheO^;*2g;-ua1DX0(MFx|j73wS>V#aUWv~BHaf#faNh;VhQE0bO)8i12 zLtEoq3c^1Pk zfS?VHj8Tg*?;UcqZKwdIeL6e2uaC0yEK>3uP~iOw957I0W! z*r)Tm+4fHRy#|n*Nj(Z%;O*=8USl)Q392JL;>U?*{tQ0bm}dhL3rL?Y<)3GHA4d>% vp_U2msE@-IlIucM>i<`69=9HJ{liW3v*vGWtvw@H9P$0;!J#n(3!&r>4pVjY diff --git a/file-data-map/User/79422b98-a45a-42b7-8f5c-1baeae174238.ser b/file-data-map/User/79422b98-a45a-42b7-8f5c-1baeae174238.ser deleted file mode 100644 index acc1c3d3db1b562dc9298d2200d70deed4756c9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-Nc@5XC1K;|EDZw6I8LB?x=?Q3Py~!@`7gA&qFU+^xyT?T5P)b7{mvYbzo4 zmXg9o5dRZvOKV&Aa^Q6P-ag)M=Jf|E&cbf2C3D82A|}x})QTnOVx0&iCKMq}*}w@4 z#gqbA>A_lT1t*cTiD0XD#cy~>C`H&&j<}-Z9#n+nm=bIjZpzg#?31qpIfon{2p5g+kZteHQ9&#o`BITFi}KA+3KGx-n( x5OkrI3htIMhjrn{#YEGlQ*~?kuwI5Zr|I-`^~)mK*btpM44n(8&t$3T8o)tG1@4L1rigAkgizQ z3IoNI0+?#UOk@Nn5$_SfLi?Ow@{mx9u&FF@McZwt2+1)em@nLvt0e4@t4W+0U`#Mq zIDNu2>~@<6PM_A?+CgUG3%G&6)o7EQVJezqq3nddj*DLZqvR5Oho-m`<3z6AMs<(F zJPzv!^LTpqwzzsUtO4YDP!IeTczg2FI2@)qLAA$wd^gINJA=#4jR_^uWLr>`+5aoo@5%S)!^hg!b!)V|v~#>dFxlhl8=G5N6HNG$KTMZ* AA^-pY diff --git a/file-data-map/User/7ba3c934-ba3b-4410-8311-e5f1d91de828.ser b/file-data-map/User/7ba3c934-ba3b-4410-8311-e5f1d91de828.ser deleted file mode 100644 index eeac78aaf7e639f61479691f2f39b24ea6f3ed0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmX|+F-rqM5QQhF2}%-)T8fQTsy)2403Zr+>6_vYyfswRVWluBlFhKiU(V=z@LMiZs6Kw?4>(gh2R z$e^5x2elEbMw#Fw;v*v19G&uW?h{Jk50oLUs5^qHkQ@_&jnYlH8v6lR%-EV9#ssa> z$q5rb38E$nH;W=UY3+ z&kcY=Pn(`Ajn}=_!Rzd|AgE9HgdavJvtQfn+9K;3FxTMaVd-Zk?|cuuAv6-f4Fx#v oA(rrvixyMM#%y;Dm)@ zN)gn0u#i~6Nu;|((C(e`a~=~)5qFd$u4tb@-@cl6U;4aISioU@ zVIPifKbBVx-Wve9xoAdV3%uUGD^KYtC#aA3i0>qt`7`+J;w&4GSU{RSm46@QB#t2J wLL(F0Q6GnUNUjTYssCTOnY=!?f4(X&H?`LN=j4zR%#HZk`o^X)1eH+o2P5Hjr~m)} diff --git a/file-data-map/User/886adb31-4331-496a-ba32-f2caf7871c2e.ser b/file-data-map/User/886adb31-4331-496a-ba32-f2caf7871c2e.ser deleted file mode 100644 index caae541c941d30ea36626917a4ba2eacae192c33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd##;8d|wA9MVYL-MBvGK2P!*(I1#jrajH|+d4b7R&<5EOj@K|$~Z ztSp01;4AnHHa2OU&4Ra^bLMcqd*6Sc<}B#YthzK^~5x?Rgp%h`H9C1YlG1P?Qm=Ua(ZpPIh?2)e-cr(D1V6Ak< zgjv|{N2gw2GTga|w&^9@K;UbP)fbqFXf9N}Fg9t~Tl}c_#Mq-LF2y{N8^2Mjz+nXr z>k0dGemC9RKKp0_!Ig#t2r$v`8iHMo?jb@(f|Qa5E}L;Q(FD$e9685S9vO zj64g6!``9OYnoa+Q6@QuO9)(zHtLjTtTz+NP8jQ?==DEJE-`j!k_t9UrmRyRker!=Meu_EpaF1t9(dL-hJKA+3KPvSNV zAm~FQW7Oh+j}AE6KGcQ!f93k&^=GBMep0)irgvZ0omGVSlx}Wq?`VxM=S%(owU2cY diff --git a/file-data-map/User/905eb14f-cc64-48eb-b24f-704901cf264b.ser b/file-data-map/User/905eb14f-cc64-48eb-b24f-704901cf264b.ser deleted file mode 100644 index 84d84c3be2cd42e5483b4d8917b36e7e7e8ba074..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^6xXlZ95f-sAZ&PK%|n=GUVDHVpDF&Wu;ICEpxMi8{O5%dSx z*_cxN34(vZPONR6$%40=bLMcqdtZK_<}7SxS`ufhP)MY3PH07#aG7RYAmIuHUXg+0 z7Rsqau#m!1W;sR94iRBBJ*Ss6Mj?5eD2G(xehM`%smKvlN;ju!828cF480i%hR`aV zF^W7M43cB7FBliRno_4c#@P?$+G3R{Sq=dF6T^;IC$M|4CFGEMv$e0F)34M-#)y+2idALU&f yLDYdp&Z)z`7#<099jHtF|0>M1XOhb2M)&^owfDi=-w5*~y1lczXAHtzDER~bpLSXR diff --git a/file-data-map/User/92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser b/file-data-map/User/92d4ec70-7b7a-4604-ac50-c8c1a29ec89c.ser deleted file mode 100644 index 165043b842eae1e1a036bc8c14601211b1c9e406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd#i4T&9XlZAo)hs?bK~zNCkU|J4Er#7Oxw7+c=f6;ML}BWhwf}32Hsw<6E(2?hGzFGtPP>=8@hX%fAou zCJZ2GLOm7SQX9KFNVW+zssCTO86J#2UYB&HBz8o^@N8IvnJ4|i_N+K7c>FADk- z1S?}D{vAteTW7N1?dF_0obTSZAE>wt))J$bvl(h)3Y|lvnLw8qA(5EWgmlGvPG(R{ zDT0{}%q5xRB*iWfEOpNLC65V}j9c0f*Rw957I0Ws zW>2TLpDU})_ZmQMNA)Odfj8s(_1ET6PEZ~20pCds^Jnnc`AIe)v4HgTQvQ8bcX0$! v8)~WKj=I?2Lvn4XD)ax!?U;@mf}cD*ey4{Yc7K^*dcZd}8(Y>AOofs^KYDhj diff --git a/file-data-map/User/951c825e-a48d-4185-bde6-40e6a3c61713.ser b/file-data-map/User/951c825e-a48d-4185-bde6-40e6a3c61713.ser deleted file mode 100644 index 80c488c27a61fbee02290175d6c88cc50c73f49a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqfMlt?W-GuAroH;q)y|3R;u?DsiC5Y9AOC*9@%atT4w~0y_N5Uj>ye2)% z3=~reU@3x?#4w61Z6iV>x}aAyL@rp^krt`M!w4!&P@W;I7j8ynKaA1U^qm>-6k)A! zhRCz9*XtZReOXg$N6Ms^a07v>(MFx~jCJNh*$G3P7QOyQ$t8vkO;W+;iCnvl>K=!9 z91=4#J-vP3+&X!y0pxmA5BwH<{1hGBHGgx2>VOVtD^bLq!DUzHS&u|K(#K=@=Rr)u z0D>;mGDa=Nynn>ecA+ZN|0~y@v)1hSYojr3j?Z51+Y^Mv0o~c%+t(Ul!I%62WyyD) diff --git a/file-data-map/User/957afc5e-cf45-4332-9bfa-916cd9371738.ser b/file-data-map/User/957afc5e-cf45-4332-9bfa-916cd9371738.ser deleted file mode 100644 index 1d6e1bccc64e81859b3d441791e2cd9439311bf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd##vhW1_=AX@m4eJ-6clXy1rySRlnTS{m|WS}8E0v03rd! zSFo}a-@)34uolF^nJjp_IcE;%yZ7Y_O4h(~q$IQ2U`kA)wWv}Sqm5K7keEmb>5{dr zFpy6nfUzb_L`HBD@h%a}G|%`24+*6R>!~H4(smO{LUK$9rgJypX(w!vtLZp1z?fhv zcY1_L*lyPkoIb9(wS8scbGU}U)o7zmF%k8lP;^31$9b>+QE-W#Lrb|7!$hXtMpci) zJPvCKGdR9|TU&FhnJjp_IcE;%yZ7lEDmH`lSW9M2hKiU(Yf&qfppA7RkeE<}bji9_ zWKc{gfVl|f<4kZ8$vzP*N9TOVLqaLSma@bZ?L<%!l4DA+RJbWuy|6>BrsvE66N1IU z84#vnx7#{&dev}iM>e}&h9UwQOM&P%=>)q;#9!5Dqt>FV@VR!DSbwS&zg#((7aS_d(u< z0R(NRr-EDRVDA9QwxK5V|0_3>ual3r&vEm9kkVqkTa%I7y>)kD&PFV>vKAtU zm1U|_BK{@*57xHs=D_Lpy?wmj%=iaN*1&F*N@le|MNFc#m?{>djnY^kF`)?QmUXQ# zkWV3ixi&0BMsO1G2@$NculNlQ38e^|$`V&pZ$n8)jtRkX?j~II!VbBbo-+fC36^qa zK$wKxZu89P^O{>bOig?ZcM!N5ZPH6jL~|+>oiNaG-s^u9Tw>tR6qjO}$h6z2>T#II zVI5(f&mTV5w;GcQK&FS)z;A)~N5h@(kJpT#+~<9M9Hq>i!DSbxS&zg#($`DzcO)Of z0D=}&62UEXuy=}NTTqti|0~mzr^?#<+jwKNeNkUMY-|$D_W9oaK}~Cd8DH`TLveL? diff --git a/file-data-map/User/9a4fa528-f105-431e-b505-53df4609ee1b.ser b/file-data-map/User/9a4fa528-f105-431e-b505-53df4609ee1b.ser deleted file mode 100644 index 307ad1a0014927203c89a289054108650710d13c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-KT88a5XC1KPYp>#v{VF0zn2u>p1BZAez8Nc8Wp%hUsx5RVW89*o`$Bba5bTgihqL^IG$e97A1k0r} zAd;O1!OH3SE&ZU?o3hg#(dK~6) zSS-x_$<2Ffz5Ch#DD<=$_$~1IZlhz`-GZP#=3~B_DCW-KvP-k9M`9l7qjbMJvJDXeES`*Cql0VN+brt{s diff --git a/file-data-map/User/9d01a198-f3db-4217-8783-221adb777bde.ser b/file-data-map/User/9d01a198-f3db-4217-8783-221adb777bde.ser deleted file mode 100644 index d0a1a9906e5e4fe3dbab4cfa5c436041b84429a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76v=FpQm1-6ros9+y6Vip07Q^nCT-kXzb7NKlf~fcdM2Llm zy_Kc-PXhh}K~S(0XS3k#=A1d4@80JRC^-xDNK597MMX@abEp-I(M38INK7a~I%8cY zEaX!NV6F`dkrkXoyhj8p?PGq*LqaLSrgFp;?X;mJB*%ncId>DTdSQorP0yPF#so{b zGayXDZnwGb^?Adc8)_S$z&QlI##nuXiD*uRq8A1x&U>>T1)msrG{vQuCQ{=!s%AJW z!(km^?+&kC*J}qa6@b(Xt3kE}UOax*Z-2j2f^wht`EI0{KZDOMPO}*j%aGpgi$7y| z9R?7zppppgsDr%*l50U(>i<`2ZZ2zUli}$7q3|^Rnlx4kX8U|&b8Fief|;!34+BSe A9{>OV diff --git a/file-data-map/User/a05517c6-ab01-469f-bb19-b38c3d308a2f.ser b/file-data-map/User/a05517c6-ab01-469f-bb19-b38c3d308a2f.ser deleted file mode 100644 index eba38f9a297a2cc3e0c6697e1ff65af317871b0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-Nc@5XC1K;|EDZv=Fh<%4*NAP6QPZ6Vk|WrNwf$CL_0d>+ZyyjUZ?vwt`lQ ztybEpwf~K^mhR@j>Gr*Syx+{rH`J_wr6iZkYJ-ZHL~AiuEJd5-sX$^v5z-lptuRnd zC4jLGOe98d66rP(%yf?VDGv#y2wTb$SG3WAnvfhbg6Y!Dxax)xxtgvs1562~N~cel zg>l^4b^5sG)(&!$p1?T-u11^u2s6BANAv*Xi2RG diff --git a/file-data-map/User/a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser b/file-data-map/User/a270c8c2-9cef-4fb5-88eb-842f9e098bb1.ser deleted file mode 100644 index 5a537ee52becdcc9e5069593b107f930a2a7f37f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-Nc@5XC1KqlP3ZTH0Az?cqmfqhet~z#^oySnk$jZ`!6Ut3yYDK%o&S{m_+ALD;A@RbS#jVP=s{E z+D=%=rx3tI6UvbloJ71q1ar-Oe#k>YDZ;vP#1*YIp(G^7gkUyz6RtX8i+oMTn*qiI zGr7|vOu}}%zUB2v!=3AE8y~;`0$*dS-or%HM?%pHJrn1>*^h!x^gNp4Qj8L*@f+1L z9G2m*marGQ!{_;h?Z+xWYWlSx+X7F|->2_Bep7-Ja5W~?N0^BAOei{GWa7Nn|0uY`$e}4N#VnB-w^7aG zFptA}BE331e_Ly`UaA0@nbZQm1)eou8z1-I89`;phrAhS=FZ@ AU;qFB diff --git a/file-data-map/User/aef23a97-2592-4c26-8d99-021b6d634fe4.ser b/file-data-map/User/aef23a97-2592-4c26-8d99-021b6d634fe4.ser deleted file mode 100644 index a60eb6905ab8c30cb9b76351fbd6b240f7d1fbd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76v`i-`R7SlSN4BXChR+Ffv)$8-7%LV&u^jmtvAAjNhmka9F@$ zJz?*UuHRbA2d@o)!kjmwumxVVYt4_Jmx7=^DinV0USX9I$I)_@Z1YN8Xfy9I&q#bYaa4r9ui6sM#>RawBCe@kQ`Hj*}_e^>V_@yHC=B8m=Meq zPMyw5%H_$dYf)faQjj_6esfb2G*$aJ>6utS6l27zKn&MK75}ENE)pHz{ zOsB*o^E`@{^wUlQ0?&^-;6c$XYkqSQ8q_nInwK0`S(_y zhXDi)sHK8CYGHR9$u*!V_5Uj~H`VL=i_ZJ}^X1;hn~a_a#(R8uWp&LMg0Z~h50j~Q AZvX%Q diff --git a/file-data-map/User/b7261593-b1ad-4e29-8383-0ae63348e3ed.ser b/file-data-map/User/b7261593-b1ad-4e29-8383-0ae63348e3ed.ser deleted file mode 100644 index 72fc7aad9e97349dad0d75edb74ddea9596e0c9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd##=j&Y1{>`x#5A*L>};Y~Bw?{xQd$hVV=}VyFXW7^ABhI5XfW!fN4+ zkY{1P-#vEvqNdi4l}Rt)8Uk0NjXL8Q>&}F-6Gl2Mdi{@*ON<Au=TrIjQQU#SFR_M<)2pPd-}e;e*gM%(nOda(%rq*zSanHzT^+tQ+6-_ diff --git a/file-data-map/User/b80085bb-80d9-419d-a7c1-b2d60835b66e.ser b/file-data-map/User/b80085bb-80d9-419d-a7c1-b2d60835b66e.ser deleted file mode 100644 index e81bd4a7d1cf94c264407eae87bf4855bf9dae05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-KT88a5XC1Kqmd*cTH0Az?P1i)#)yRp>5g<-EO%=%a{I^Ki8(<;!F&Wk3o8pP ztWt=mjbB3WLs;9omjkEU_xACAGtWOzaTeBMEtxYG6)}mm!-#xM-s^QL!v`tRn0s>!StUkh2w5LMZ3qz9>z4?!lPYgYp;!;c#neiJnavYZ9 zut?aO!|S(|)%{5wATy&zkZ*xkPfd34aGnv=27JJGV$J*+e0E`)&5>A+^l?}Iy_MrI yfS?2QRB%TT_IHt72WnFPzcTaqIr*w?y{K0hzh8d0?g?fGe7(7`X$-+kUh)T2rg!%M diff --git a/file-data-map/User/bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser b/file-data-map/User/bc108ed9-19da-4ce9-ab01-f8ea092d62ea.ser deleted file mode 100644 index b4497d7fdf45d239c46524f4b5255baf031243d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-ou$5QH}u0z^p=KNX^*qQNJABnp~~Sp%h_DS>lRzBd7?;F(p_m+?1-f>fuWrAlJi2;J3i5=I74y!dp&I>+?Qu#u;;GaM`&@)*~^GGFV zfS?WaRB%fj?Cm4jHq>PH|H}1a>33XRKOT?fZ{L?cqA!B!KHu2f+SZz2%9s2Ba?*G< diff --git a/file-data-map/User/be2df33a-b9e4-4665-a695-07d52f2f89e5.ser b/file-data-map/User/be2df33a-b9e4-4665-a695-07d52f2f89e5.ser deleted file mode 100644 index 72dfd3aea00e8ba8ce3db2fb50f2d4406acc9337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-Jx&8L5QQfjLO@9nf|8Dk23!18qydBwiMESUQdqkt8MOXkJt0ejQb550BEbcy zsOUh5TW|v?sVHc%vl7$!JwLr~=II-1E{Bc8DCTUAnwUc8&}f#TOH3+}nAC)H#rjU> zP);R+dJKz6E(OW-fCyIOb8#s+p_06#9SKeC7-~`p%m`LWHxqimd*o{d-i$CMST3Cr zVaEIY&XLy_tZ;5@^7I0(A@VggH)oj1&P=F!VPw;?H~gsh#K@y*q2w%4Siey#;IM$h zdNQA$-n_1@pFB4K3OjB^VGEqJYpo)g6afPGFnnyXD3;Y#5~gYzW8$| zufhO=7Ss~KEp@QBi)33+mFfR0)7S4G%cF;{#@qO}d{R01B$)2=)wT5vtqG=l$scEk BcrO3| diff --git a/file-data-map/User/c25a20af-a862-4528-81d0-c163743a193e.ser b/file-data-map/User/c25a20af-a862-4528-81d0-c163743a193e.ser deleted file mode 100644 index 859bfe4de0f0b0415c41fe1fbc7c5eefcebe13cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd##vhW1XrW>wR;gz3r!pWa3MQlrX#|ULcTBGA&WtlRW^DvTA3;#? z0W1W;Qf%}E^f7D%J6mV6;O*v|Ih^m_$8RWE1GPw{%xZ&@Sc=x7k}O6WsaPN}AqnY> zb*wOuPa%M@7EDA&a1!wr5zMrX`6&+xQxP_#B`&Gnf|5u%CIr*Dn{e3;+vIAx&I~Xn zn97|#VG?#ajUA_tYi{j8nfL_GA#gR?s3S~7V<;4z(ARO^>wgqnqVLcoPsK2iX}3|; z<1mlI+QQr%T)iwT?LAijGCimUeha+(`kB4|n9B&tJ>KJ+kz(!)E;~8QdL-tNUhj&( zx9N2lK+uFrBDkeCcDIpi6UwRje`WgO^DUzF`HlDe#ixhE-5SAYk1wyRu4zp$;!FMj Dn9g@Y diff --git a/file-data-map/User/c5eab74a-4b35-42a4-838c-a01151059c76.ser b/file-data-map/User/c5eab74a-4b35-42a4-838c-a01151059c76.ser deleted file mode 100644 index 2d6470939df6a132cd17436e291c78d63c53bfe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^8nM`>pz7PI(lY+|r5F^ztkL}M%zozORN-s^u9T%zyL6qjP0$c)>l>T#II zVQrD#9bLaKE$_cp05UVI27U{?*#2C-9Q|elqQ<=w9B0 z0R&B`B!XLNW4DfEn^2be|CO1m+o$=%(&OOk`>lDfRevU!?D4hrjZI?+CVa^ssET*V diff --git a/file-data-map/User/c9969dae-2059-435f-8d81-c2dcb6126f02.ser b/file-data-map/User/c9969dae-2059-435f-8d81-c2dcb6126f02.ser deleted file mode 100644 index 609aede918a5054ee0ea0dc7652a0293c84026ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqf6ltP*2({cznd(Mu^fg^?5|JRx z_!?vNiAZ^4Bow{SH%Z4dJ zXuzRuZtsq+-xrqlUn>Ba8B|HwLJaF0^K%Eo458d(J+>8V>d)Y_)1z!aq51=u(8Wuu(TEIY@Nx1x0`e3aK3w=zM*0bti?(Ys|}Y(1h@YhX227K zg~I70&%!8b?K^!|Q)`FHBeVr7&{zu6r`VLJ}!6u1ZyN&7| zhj<*)W#;bq`gM8r;JF5n>tQ|cTkxwJ3q;KB;t|Y9?HM> z;wB6rXhSVy)MA&XdmL>WszUw0a{b;I-5xDH{*0TSAL-WN3&M1dHrF>cwMLloC4Z8k Bcvk=b diff --git a/file-data-map/User/cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser b/file-data-map/User/cf1f0619-d8ee-4e9d-a409-02e4b8878787.ser deleted file mode 100644 index ee677c24532dc3a7be54af524dc11b8b638d2e19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-txrQS6vgj4HdwY10*W9=Pz2EzK7zpvf?&&nStb$9du1zm{h+;L4?_@;SqupX z91?{h1WB-1{s1Ikv9x;$*Y%v9oZr0<-%xTEmSZicGgc_1QaC5HqKR;^PPjnI6$(71 zUB@ltQy?(ehDvNXL!N9S!d&}^ov;XnJ=R2YpS?n?xiC zGr2QBkw)EabJy!rhB-IXHaUhfAil;}eJE1i91BG+3`~;uh93o=7N|`H!FdJA`tdt*)(a7=thoO8x+w CGI#d? diff --git a/file-data-map/User/d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser b/file-data-map/User/d0cdad29-2e6f-4d48-9c72-8dea4ffe7056.ser deleted file mode 100644 index 07767a9625af504298f5d55d8b83c501676a46de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76w6wEQi&3wy3w3ZW8`@GM06V3b?e0Fx64M;2?jULNC5ArsS yAZkG^6Wmb;d;3VP1y!m4U%7d*cV9=p=J@mDWrgX(2Ek;XuWxK_8AC7;O8x*?Id{AO diff --git a/file-data-map/User/d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser b/file-data-map/User/d57de0c0-fe42-4db2-a731-fb0a9b112b18.ser deleted file mode 100644 index 27bfcea3269a4b899d011669a5ef74192be67c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-KT88a5XC1KKGID#n?oP~!Xr+a{0mTns zW0g`Z{1Wzl0c#6E+|7a0?R)!pznSMRC|LvRk&?`6gDEkI)}l&Tj5boSKw=^#q;uA_ z!azQS0A|`S7a74x#Ct@r+&R3CS@bSjydmr@gR4uBPYA0Aqs1 z+!+uiVYl1dclxa6)((}4PvHszSEG$O#zZtHLeU8W9p}CNN5Lfq4lU(UOcI%P8&y3H z^Ej*{%;@O)Wp(XfTmi`Rup0O+@OE@pd%Z|9f^wht`EI0`JA=zEOtKz{d8D_8;`hD0 z2?GdPP)P*0)WKc@$+n;@)&DEgPxYVq$J)lq$K~hyZ{u)GFx}_%&8=;%38s9>A8WdI A)c^nh diff --git a/file-data-map/User/da82a855-d129-44f6-8184-da9df90b7094.ser b/file-data-map/User/da82a855-d129-44f6-8184-da9df90b7094.ser deleted file mode 100644 index f605fad9cc0baa26e8156fde33380e3b7eccb67e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-D^CMK6oqfMltyQ&vd%VYwW6j(dTy}Yu^+?PkeLR+b9^_pZ yK+u9(D!8Q%c2ALP3#wB8zj8AgPoI9P=6-tn5`FG8z6s`ge0OjEz!-u#U-AbAOn0yV diff --git a/file-data-map/User/eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser b/file-data-map/User/eb7e72a7-c0fb-4ec7-8b26-af78c345e856.ser deleted file mode 100644 index 3b0063f5f090575224e842e339bd21985ea00cbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-y-EW?6oqd#Mk7f?)XvUAtY-12v+xH66QWIsoyD*_CRcW5$C;aCZGweX)`C8P zjUZTxg<#=3hz}r$wS|o{S@3pq&K%Bn@BKHFtbwH{mCR~`ikL)eF;y%^8>O*8VnPwp z8Eac%AfG}26HS+)cRZge`J49cKm@ z6HMn$k1z?_?fQ<>%bHs|NKJeSLkL`rHt8`YqCOIePUz`4@AW?lF41#nic2v{WZG?1 z^Ek}ou$C~_M;A}?3ww`MfJ_f+f!_kpH_CJG`yUxWrOUf~GfJ5|gUe2hvL1 z&yBnc0|**WO$4{p!p=65Z9qk)|F2A6Ek0zgyPt<&Lv#1?d+ljQNs3 DQ+Rm6 diff --git a/file-data-map/User/edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser b/file-data-map/User/edfa4510-9cf9-4375-9dc2-4ab824943a5e.ser deleted file mode 100644 index 183b65ee1a41d7ea76dcf67a95baf8f8409804ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76w6qf;R+s!$1IN!a`L#WskmLe^gH7P1$60Jq8Sd2E(u|Q%%5z;y9T9HCA zr2r<{FcqbOlZdy8V6J__&v-~EMc7o9xT4KARD|T15X=^C!c{NqkgMrAGr*W&rf@RC zB63O7I?Y-)M$Ktzz8Nqm;FR!ew8ACAUOa1^~pLgH@ diff --git a/file-data-map/User/ef2797c1-3444-4e5c-8803-0ded62732d63.ser b/file-data-map/User/ef2797c1-3444-4e5c-8803-0ded62732d63.ser deleted file mode 100644 index 4afd809fd71b403d64872d6c20d1662f1c1970c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmX|-y-ve06oqe7RZz7B1S3o=u;7TFjRjB#T16~THyBKEiHzbO>|2^HOd!DnAmAN3 z!G>6P3tpmPWW{L&-h7Ua&UZYSLc>|uOtfUqSfPkX;hfNlrNSjTML`S|2^zD3LkrcZ z1uz#uGqK1C(?cRyi7xpy4@pQ2d&&`4v>!nOB^Nota^>b+WnoOdCi7+>Qi7$*8Is7u z!Jyam`n=)JjkHa#;06L;W30XqIre5k-3vpLR=wqmnokTpn&J{?iNg3rof3zYI4nl{ zcy{}~x_$g4W-j?VVj?2%0f!iB_xZ7f)J! A3IG5A diff --git a/file-data-map/User/f3c67823-69f5-4dff-aff8-d21450de0dd0.ser b/file-data-map/User/f3c67823-69f5-4dff-aff8-d21450de0dd0.ser deleted file mode 100644 index e751e4f31ee262c17229228b230170a5d307279c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-KT88a5XC1K;~$cUsGW^ylWGr5IvW)W6CwylN{i)gO-63_*4>FY8?jLE3kcd< z3WB9rTZ&o$ltq>Gr*Syx+|I2UM(qMx04zwLwKpqP3VQmY|KZL?AJt2xEgJ;Lrg_`ER>xv)Jf6nf0SHe=+G3GVw}je+o=FZ@xZAW#r^mC>*q_pieG!b1d{{4w%%-MO)%k0{s1Rz Bcw_(o diff --git a/file-data-map/User/f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser b/file-data-map/User/f6c254fb-8c88-43b7-aa19-b2b5aa76b66f.ser deleted file mode 100644 index 9417c0c7a0fee13ceaaae8bb8ac229e200548484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqdl#s^76v=Tcjt66+N3L9UA3F%@=i(z+6Ms^;~+$5VuEL1FPh4>eO zRX_!?^8eT>V&hB}yxp8Lhx6V0^a&+rVI$U(I%9=GDur`GE1C!w>x2uWT%o`rZ98ru zp8|ooCM?93GvvuWBCIseS)WBHB#-LKAyc^9gc6rbqzKEon=;jjTIg#!-XtPHSjwFq ziZp7s>qlOnH_W+#w#fxt0`WD*>NAn@`cx=-p=Xl3H~c90M9-rsCiygx8NX3A;Lw0W zTiiaJUcaraA5SU(nHf|`*g{;@NbUA#lp&P6tjqRdP5l{sc5#{wNHie5KNi17@+Klc x8c<0&bJ!A{1A(pqWvTyPnHjH6p2z(c{q=G3dw+NMiZI({n_JsE#vsgul0R$Ac>VwY diff --git a/file-data-map/User/fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser b/file-data-map/User/fba7ea01-87f0-41ad-995b-4d97da90ccf8.ser deleted file mode 100644 index 56ed1109049645c285c26765103858057b6917fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s^76w6wEIHH(kV#)yRpu?nfgV%Qy%D?1NoZp_*Q1jW`yG{3+` z8%xoDAlO;>69hpk1si9x;O*v|Ih^m_+Ycx?3$;i~=8Q!}OrmqB6^qeDIu=MwC_*}B z9Vaa0QwU(H1v8NqoJ3qFf`!%rKjI;w6k$U-;)>Q=P!f`3LNK4Z30K{)O}?h<%>ZM9 zx!ma!CSj-3*z)?c;m!@TjSpc6fv+)E?_(kwW1;AUzKQeR>_@>T`W{VjDaMJ^_>HO= z4$E*@TiDCJ(}%^S?fVKqY6jIH+X7FXUTR;jkP?)8yvH{p&HNdBc6OZ2kXVNFI4XW$ z%d;?mpb3>ka7S(IZX&rRl%@WErDn9dbMrVBS?suQ))*L1u|M2av~ zI6V|u)NVI+y*_T3bA4^oQ@8};YmC*$BIAvrQ1(L4q(yJ|QSynNM^jAlVIntvqk6!h z0f)A@y*s=f%+2q;)&O$TuamHaxY}5oeH&cl2-Pm@vaLi@e+HkO9A*O&4M^_~UysAZfvY>Cc}K-Yw-)c>#C+#YQnd@VllU-I!Xc-;R%811s9<&{-q5Jp1DA5L+2 AEC2ui diff --git a/file-data-map/User/fd970089-223e-4119-934f-ab271c522ab3.ser b/file-data-map/User/fd970089-223e-4119-934f-ab271c522ab3.ser deleted file mode 100644 index 81f53e842d245db3e16b74cb9bba3fa081ff2e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmX|-J4*vW6oqd##s?-MT8Uy21Vv;PADtjZEKCRphAl0I-7&ec^Kj?Jtc_S`VJ)Km z2CWn<#Gm3{u(lGM$%40=bLMcqdtbhxVl!BYwPe<0sEA3l7PVpt+E^z7i3vqW7c8Blfeag>yNGL_vRF=4+?KV_| Date: Tue, 10 Feb 2026 21:08:09 +0900 Subject: [PATCH 03/12] 2026-02-10 --- .../mission/discodeit/JavaApplication2.java | 176 ++--- .../discodeit/controller/AuthController.java | 4 + .../controller/BinaryContentController.java | 4 + .../controller/ChannelContentController.java | 4 + .../controller/MassageController.java | 4 + .../controller/ReadStatusController.java | 4 + .../discodeit/controller/UserController.java | 47 +- .../dto/BinaryContentCreateRequest.java | 3 +- .../discodeit/entity/BinaryContent.java | 6 +- .../sprint/mission/discodeit/entity/User.java | 3 +- .../exception/GlobalExceptionHandler.java | 35 + .../service/BinaryContentService.java | 8 + .../discodeit/service/UserService.java | 2 +- .../basic/BasicBinaryContentService.java | 25 + .../service/basic/BasicUserService.java | 59 +- .../.gradle/9.0.0/checksums/checksums.lock | Bin 0 -> 17 bytes .../executionHistory/executionHistory.bin | Bin 0 -> 103098 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/9.0.0/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/9.0.0/fileHashes/fileHashes.bin | Bin 0 -> 25097 bytes .../.gradle/9.0.0/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../9.0.0/fileHashes/resourceHashesCache.bin | Bin 0 -> 28663 bytes discordit/.gradle/9.0.0/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + .../buildOutputCleanup/outputFiles.bin | Bin 0 -> 19037 bytes discordit/.gradle/file-system.probe | Bin 0 -> 8 bytes discordit/.gradle/vcs-1/gc.properties | 0 discordit/build.gradle | 20 + .../mission/discodeit/JavaApplication.class | Bin 0 -> 10648 bytes .../mission/discodeit/entity/Channel.class | Bin 0 -> 1861 bytes .../discodeit/entity/ChannelType.class | Bin 0 -> 1223 bytes .../mission/discodeit/entity/Message.class | Bin 0 -> 1112 bytes .../mission/discodeit/entity/User.class | Bin 0 -> 2445 bytes .../repository/ChannelRepository.class | Bin 0 -> 634 bytes .../repository/MessageRepository.class | Bin 0 -> 634 bytes .../discodeit/repository/UserRepository.class | Bin 0 -> 616 bytes .../file/FileChannelRepository.class | Bin 0 -> 4900 bytes .../file/FileMessageRepository.class | Bin 0 -> 4917 bytes .../repository/file/FileUserRepository.class | Bin 0 -> 4805 bytes .../repository/jcf/JCFChannelRepository.class | Bin 0 -> 3273 bytes .../repository/jcf/JCFMessageRepository.class | Bin 0 -> 3273 bytes .../repository/jcf/JCFUserRepository.class | Bin 0 -> 3219 bytes .../discodeit/service/ChannelService.class | Bin 0 -> 628 bytes .../discodeit/service/MessageService.class | Bin 0 -> 611 bytes .../discodeit/service/UserService.class | Bin 0 -> 633 bytes .../discodeit/service/UserService2.class | Bin 0 -> 594 bytes .../service/basic/BasicChannelService.class | Bin 0 -> 3612 bytes .../service/basic/BasicMessageService.class | Bin 0 -> 3972 bytes .../service/basic/BasicUserService.class | Bin 0 -> 3665 bytes .../service/file/FileChannelService.class | Bin 0 -> 8120 bytes .../service/file/FileMessageRepository.class | Bin 0 -> 4859 bytes .../service/file/FileUserService.class | Bin 0 -> 8087 bytes .../service/jcf/JCFChannelService.class | Bin 0 -> 3802 bytes .../service/jcf/JCFMessageService.class | Bin 0 -> 3229 bytes .../service/jcf/JCFUserService.class | Bin 0 -> 3587 bytes .../reports/problems/problems-report.html | 663 ++++++++++++++++++ .../stash-dir/JavaApplication.class.uniqueId0 | Bin 0 -> 10648 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 1646 bytes discordit/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + discordit/gradlew | 251 +++++++ discordit/gradlew.bat | 94 +++ discordit/settings.gradle | 1 + .../mission/discodeit/JavaApplication.java | 229 ++++++ .../mission/discodeit/entity/Channel.java | 63 ++ .../mission/discodeit/entity/ChannelType.java | 8 + .../mission/discodeit/entity/Message.java | 31 + .../sprint/mission/discodeit/entity/User.java | 75 ++ .../repository/ChannelRepository.java | 19 + .../repository/MessageRepository.java | 25 + .../discodeit/repository/UserRepository.java | 20 + .../file/FileChannelRepository.java | 62 ++ .../file/FileMessageRepository.java | 65 ++ .../repository/file/FileUserRepository.java | 63 ++ .../repository/jcf/JCFChannelRepository.java | 39 ++ .../repository/jcf/JCFMessageRepository.java | 39 ++ .../repository/jcf/JCFUserRepository.java | 38 + .../discodeit/service/ChannelService.java | 22 + .../discodeit/service/MessageService.java | 19 + .../discodeit/service/UserService.java | 19 + .../discodeit/service/UserService2.java | 23 + .../service/basic/BasicChannelService.java | 51 ++ .../service/basic/BasicMessageService.java | 63 ++ .../service/basic/BasicUserService.java | 48 ++ .../service/file/FileChannelService.java | 134 ++++ .../service/file/FileMessageRepository.java | 60 ++ .../service/file/FileUserService.java | 133 ++++ .../service/jcf/JCFChannelService.java | 63 ++ .../service/jcf/JCFMessageService.java | 45 ++ .../discodeit/service/jcf/JCFUserService.java | 72 ++ .../service/jcf/JCFUserService2.java | 80 +++ .../3d79be79-29f0-4347-9983-d7d3efcc5e80.ser | Bin 0 -> 445 bytes 93 files changed, 2874 insertions(+), 156 deletions(-) create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/exception/GlobalExceptionHandler.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java create mode 100644 discordit/.gradle/9.0.0/checksums/checksums.lock create mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.bin create mode 100644 discordit/.gradle/9.0.0/executionHistory/executionHistory.lock create mode 100644 discordit/.gradle/9.0.0/fileChanges/last-build.bin create mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.bin create mode 100644 discordit/.gradle/9.0.0/fileHashes/fileHashes.lock create mode 100644 discordit/.gradle/9.0.0/fileHashes/resourceHashesCache.bin create mode 100644 discordit/.gradle/9.0.0/gc.properties create mode 100644 discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 discordit/.gradle/buildOutputCleanup/cache.properties create mode 100644 discordit/.gradle/buildOutputCleanup/outputFiles.bin create mode 100644 discordit/.gradle/file-system.probe create mode 100644 discordit/.gradle/vcs-1/gc.properties create mode 100644 discordit/build.gradle create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/User.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/MessageService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicMessageService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class create mode 100644 discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFUserService.class create mode 100644 discordit/build/reports/problems/problems-report.html create mode 100644 discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 create mode 100644 discordit/build/tmp/compileJava/previous-compilation-data.bin create mode 100644 discordit/gradle/wrapper/gradle-wrapper.jar create mode 100644 discordit/gradle/wrapper/gradle-wrapper.properties create mode 100644 discordit/gradlew create mode 100644 discordit/gradlew.bat create mode 100644 discordit/settings.gradle create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java create mode 100644 discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java create mode 100644 file-data-map/User/3d79be79-29f0-4347-9983-d7d3efcc5e80.ser diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java b/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java index a77ab540..39f5ba3c 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/JavaApplication2.java @@ -1,88 +1,88 @@ -package com.sprint.mission.discodeit; - -import com.sprint.mission.discodeit.dto.ChannelCreateRequest; -import com.sprint.mission.discodeit.dto.MessageCreateRequest; -import com.sprint.mission.discodeit.dto.ReadStatusCreateRequest; -import com.sprint.mission.discodeit.dto.UserCreateRequest; -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.*; -import com.sprint.mission.discodeit.repository.file.FileBinaryContentRepository; -import com.sprint.mission.discodeit.repository.file.FileChannelRepository; -import com.sprint.mission.discodeit.repository.file.FileMessageRepository; -import com.sprint.mission.discodeit.repository.file.FileUserRepository; -import com.sprint.mission.discodeit.repository.jcf.JcfReadStatusRepository; -import com.sprint.mission.discodeit.repository.jcf.JcfUserStatusRepository; -import com.sprint.mission.discodeit.service.ChannelService; -import com.sprint.mission.discodeit.service.MessageService; -import com.sprint.mission.discodeit.service.ReadStatusService; -import com.sprint.mission.discodeit.service.UserService; -import com.sprint.mission.discodeit.service.basic.BasicChannelService; -import com.sprint.mission.discodeit.service.basic.BasicMessageService; -import com.sprint.mission.discodeit.service.basic.BasicReadStatusService; -import com.sprint.mission.discodeit.service.basic.BasicUserService; - -import java.util.Optional; - -public class JavaApplication2 { - static User setupUser(UserService userService) { - UserCreateRequest request = new UserCreateRequest( - "woody", - "woody@codeit.com", - "woody1234", - null - ); - return userService.create(request, Optional.empty()); - } - private static Channel setupChannel(ChannelService channelService) { - ChannelCreateRequest request = new ChannelCreateRequest( - "공지", - "공지 채널입니다.", - null - ); - return channelService.createPublic(request); - } - - private static void messageCreateTest(MessageService messageService, Channel channel, User author) { - MessageCreateRequest request = new MessageCreateRequest( - "안녕하세요.", - channel.getId(), - author.getId(), - null // 첨부파일(지금은 없으므로 null 전달) - ); - - Message message = messageService.create(request); - System.out.println("메시지 생성: " + message.getId()); - } - public static void main(String[] args) { - // 레포지토리 초기화 - UserRepository userRepository = new FileUserRepository(); - ChannelRepository channelRepository = new FileChannelRepository(); - MessageRepository messageRepository = new FileMessageRepository(); - ReadStatusRepository readStatusRepository = new JcfReadStatusRepository(); - BinaryContentRepository binaryContentRepository = new FileBinaryContentRepository(); - - // 서비스 초기화 - UserStatusRepository userStatusRepository = new JcfUserStatusRepository(); - UserService userService = new BasicUserService(userRepository, userStatusRepository); - ChannelService channelService = new BasicChannelService(channelRepository, readStatusRepository, messageRepository); - MessageService messageService = new BasicMessageService(messageRepository, channelRepository, userRepository, binaryContentRepository); - ReadStatusService readStatusService = new BasicReadStatusService(readStatusRepository, userRepository, channelRepository); - - // 셋업 - User user = setupUser(userService); - Channel channel = setupChannel(channelService); - // 테스트 - messageCreateTest(messageService, channel, user); - ReadStatusCreateRequest rsRequest = new ReadStatusCreateRequest( - user.getId(), - channel.getId(), - null // 처음에는 읽은 메시지가 없으므로 null을 넣습니다. - ); - - readStatusService.create(rsRequest); - System.out.println("읽음 상태 생성 완료!"); - } -} +//package com.sprint.mission.discodeit; +// +//import com.sprint.mission.discodeit.dto.ChannelCreateRequest; +//import com.sprint.mission.discodeit.dto.MessageCreateRequest; +//import com.sprint.mission.discodeit.dto.ReadStatusCreateRequest; +//import com.sprint.mission.discodeit.dto.UserCreateRequest; +//import com.sprint.mission.discodeit.entity.Channel; +//import com.sprint.mission.discodeit.entity.ChannelType; +//import com.sprint.mission.discodeit.entity.Message; +//import com.sprint.mission.discodeit.entity.User; +//import com.sprint.mission.discodeit.repository.*; +//import com.sprint.mission.discodeit.repository.file.FileBinaryContentRepository; +//import com.sprint.mission.discodeit.repository.file.FileChannelRepository; +//import com.sprint.mission.discodeit.repository.file.FileMessageRepository; +//import com.sprint.mission.discodeit.repository.file.FileUserRepository; +//import com.sprint.mission.discodeit.repository.jcf.JcfReadStatusRepository; +//import com.sprint.mission.discodeit.repository.jcf.JcfUserStatusRepository; +//import com.sprint.mission.discodeit.service.ChannelService; +//import com.sprint.mission.discodeit.service.MessageService; +//import com.sprint.mission.discodeit.service.ReadStatusService; +//import com.sprint.mission.discodeit.service.UserService; +//import com.sprint.mission.discodeit.service.basic.BasicChannelService; +//import com.sprint.mission.discodeit.service.basic.BasicMessageService; +//import com.sprint.mission.discodeit.service.basic.BasicReadStatusService; +//import com.sprint.mission.discodeit.service.basic.BasicUserService; +// +//import java.util.Optional; +// +//public class JavaApplication2 { +// static User setupUser(UserService userService) { +// UserCreateRequest request = new UserCreateRequest( +// "woody", +// "woody@codeit.com", +// "woody1234", +// null +// ); +// return userService.create(request, Optional.empty()); +// } +// private static Channel setupChannel(ChannelService channelService) { +// ChannelCreateRequest request = new ChannelCreateRequest( +// "공지", +// "공지 채널입니다.", +// null +// ); +// return channelService.createPublic(request); +// } +// +// private static void messageCreateTest(MessageService messageService, Channel channel, User author) { +// MessageCreateRequest request = new MessageCreateRequest( +// "안녕하세요.", +// channel.getId(), +// author.getId(), +// null // 첨부파일(지금은 없으므로 null 전달) +// ); +// +// Message message = messageService.create(request); +// System.out.println("메시지 생성: " + message.getId()); +// } +// public static void main(String[] args) { +// // 레포지토리 초기화 +// UserRepository userRepository = new FileUserRepository(); +// ChannelRepository channelRepository = new FileChannelRepository(); +// MessageRepository messageRepository = new FileMessageRepository(); +// ReadStatusRepository readStatusRepository = new JcfReadStatusRepository(); +// BinaryContentRepository binaryContentRepository = new FileBinaryContentRepository(); +// +// // 서비스 초기화 +// UserStatusRepository userStatusRepository = new JcfUserStatusRepository(); +// UserService userService = new BasicUserService(userRepository, userStatusRepository); +// ChannelService channelService = new BasicChannelService(channelRepository, readStatusRepository, messageRepository); +// MessageService messageService = new BasicMessageService(messageRepository, channelRepository, userRepository, binaryContentRepository); +// ReadStatusService readStatusService = new BasicReadStatusService(readStatusRepository, userRepository, channelRepository); +// +// // 셋업 +// User user = setupUser(userService); +// Channel channel = setupChannel(channelService); +// // 테스트 +// messageCreateTest(messageService, channel, user); +// ReadStatusCreateRequest rsRequest = new ReadStatusCreateRequest( +// user.getId(), +// channel.getId(), +// null // 처음에는 읽은 메시지가 없으므로 null을 넣습니다. +// ); +// +// readStatusService.create(rsRequest); +// System.out.println("읽음 상태 생성 완료!"); +// } +//} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java new file mode 100644 index 00000000..87024071 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java @@ -0,0 +1,4 @@ +package com.sprint.mission.discodeit.controller; + +public class AuthController { +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java new file mode 100644 index 00000000..7b5c879b --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java @@ -0,0 +1,4 @@ +package com.sprint.mission.discodeit.controller; + +public class BinaryContentController { +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java new file mode 100644 index 00000000..1ecc15e3 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java @@ -0,0 +1,4 @@ +package com.sprint.mission.discodeit.controller; + +public class ChannelContentController { +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java new file mode 100644 index 00000000..5ba7068b --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java @@ -0,0 +1,4 @@ +package com.sprint.mission.discodeit.controller; + +public class MassageController { +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java new file mode 100644 index 00000000..af6389ad --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java @@ -0,0 +1,4 @@ +package com.sprint.mission.discodeit.controller; + +public class ReadStatusController { +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java index 73ee8767..4b4f68d8 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java @@ -49,49 +49,30 @@ private Optional resolveProfileRequest(MultipartFile return Optional.of(new BinaryContentCreateRequest( profile.getOriginalFilename(), profile.getContentType(), - profile.getSize(), - profile.getInputStream() + profile.getBytes() )); } catch (IOException e) { throw new RuntimeException("프로필 파일 처리 중 오류 발생", e); } } - @RequestMapping(method = RequestMethod.GET) // GET /api/user - public List findAll() { - return userService.findAll(); - } - - @RequestMapping(path = "{userId}", method = RequestMethod.PATCH) // PATCH /api/user/{userId} - public User update( - @PathVariable UUID userId, - @RequestBody UserUpdateRequest request + @RequestMapping( + path = "/{userId}", // 방 번호 대신 {userId}라는 변수 칸을 만듭니다. + method = RequestMethod.PATCH + ) + public ResponseEntity update( + @PathVariable UUID userId, // 주소에 담긴 ID를 꺼냅니다. + @RequestBody UserUpdateRequest request // 몸통에 담긴 수정 정보를 꺼냅니다. ) { - return userService.update(userId, request); - } + // 서비스(요리사)에게 일을 시킵니다. + User updatedUser = userService.update(userId, request); - @RequestMapping(path = "/{userId}", method = RequestMethod.GET) // 주소 뒤에 ID를 붙인 GET 요청 - public UserStatusResponse find(@PathVariable UUID userId) { - return userService.find(userId); - } - - @RequestMapping(path = "", method = RequestMethod.POST) // 주소: /api/user (POST 방식) - public User create(@RequestBody UserCreateRequest request) { - return userService.create(request, Optional.empty()); + // 200 OK 상태와 함께 결과물을 보냅니다. + return ResponseEntity + .status(HttpStatus.OK) + .body(updatedUser); } - @RequestMapping(path = "/{userId}", method = RequestMethod.DELETE) - public void delete(@PathVariable UUID userId) { - userService.delete(userId); - } - @RequestMapping(path = "/{userId}/status", method = RequestMethod.PATCH) - public void updateStatus(@PathVariable UUID userId, @RequestParam boolean online) { - userService.updateStatus(userId, online); - } - @RequestMapping(path = "/login", method = RequestMethod.POST) - public User login(@RequestBody LoginRequest request) { - return userService.login(request); - } } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java index 9c70bfd1..561372a4 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java @@ -5,7 +5,6 @@ public record BinaryContentCreateRequest( String fileName, // 파일 이름 String contentType, // 파일 형식 (image/png 등) - Long fileSize, // 파일 크기 - InputStream inputStream // 실제 파일 데이터 스트림 + byte[] bytes ) { } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java index f9fcf314..d9d22ab9 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java @@ -12,16 +12,18 @@ public class BinaryContent { private String fileName; private String contentType; private Long size; + private byte[] bytes; private UUID userId; private UUID messageId; - public BinaryContent(String fileName, String contentType, Long size) { + public BinaryContent(String fileName, String contentType, Long size, byte[] bytes) { this.id = UUID.randomUUID(); this.createdAt = Instant.now(); this.fileName = fileName; this.contentType = contentType; this.size = size; -// this.userId = userId; + this.bytes = bytes; + } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java index 68ffd6ce..6e7bd1fb 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/User.java @@ -20,12 +20,13 @@ public class User implements Serializable { private Instant lastActiveAt; // - public User(String username, String email, String password) { + public User(String username, String email, String password, UUID profileId) { this.id = UUID.randomUUID(); this.createdAt = Instant.now(); this.username = username; this.email = email; this.password = password; + this.profileId = profileId; } public void online () { diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/exception/GlobalExceptionHandler.java b/discodeit/src/main/java/com/sprint/mission/discodeit/exception/GlobalExceptionHandler.java new file mode 100644 index 00000000..0744d622 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/exception/GlobalExceptionHandler.java @@ -0,0 +1,35 @@ +package com.sprint.mission.discodeit.exception; + + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.NoSuchElementException; + +@ControllerAdvice +@ResponseBody +public class GlobalExceptionHandler { + @ExceptionHandler(IllegalArgumentException.class) + public ResponseEntity handleException(IllegalArgumentException e) { + return ResponseEntity + .status(HttpStatus.BAD_REQUEST) + .body(e.getMessage()); + } + + @ExceptionHandler(NoSuchElementException.class) + public ResponseEntity handleException(NoSuchElementException e) { + return ResponseEntity + .status(HttpStatus.NOT_FOUND) + .body(e.getMessage()); + } + + @ExceptionHandler(Exception.class) + public ResponseEntity handleException(Exception e) { + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(e.getMessage()); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java new file mode 100644 index 00000000..7bd128db --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java @@ -0,0 +1,8 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.dto.BinaryContentCreateRequest; +import com.sprint.mission.discodeit.entity.BinaryContent; + +public interface BinaryContentService { + BinaryContent create(BinaryContentCreateRequest request); +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java index c67b50fb..8316d782 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -14,6 +14,6 @@ public interface UserService { List findAll(); User update(UUID userId, UserUpdateRequest request); void delete(UUID userId); - User login(LoginRequest request); + //User login(LoginRequest request); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java new file mode 100644 index 00000000..89e896ed --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java @@ -0,0 +1,25 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.dto.BinaryContentCreateRequest; +import com.sprint.mission.discodeit.entity.BinaryContent; +import com.sprint.mission.discodeit.repository.BinaryContentRepository; +import com.sprint.mission.discodeit.service.BinaryContentService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class BasicBinaryContentService implements BinaryContentService { + private final BinaryContentRepository binaryContentRepository; + + @Override + public BinaryContent create(BinaryContentCreateRequest request) { + BinaryContent content = new BinaryContent( + request.fileName(), + request.contentType(), + (long) request.bytes().length, + request.bytes() + ); + return binaryContentRepository.save(content); + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java index dd1046c9..e15f15b1 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -1,10 +1,12 @@ package com.sprint.mission.discodeit.service.basic; import com.sprint.mission.discodeit.dto.*; +import com.sprint.mission.discodeit.entity.BinaryContent; import com.sprint.mission.discodeit.entity.User; import com.sprint.mission.discodeit.entity.UserStatus; import com.sprint.mission.discodeit.repository.UserRepository; import com.sprint.mission.discodeit.repository.UserStatusRepository; +import com.sprint.mission.discodeit.service.BinaryContentService; import com.sprint.mission.discodeit.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -19,31 +21,34 @@ public class BasicUserService implements UserService { private final UserRepository userRepository; private final UserStatusRepository userStatusRepository; + private final BinaryContentService binaryContentService; @Override public User create(UserCreateRequest request, Optional profileRequest) { - User user = new User(request.username(), request.email(), request.password()); + UUID profileId = profileRequest.map(req -> { + BinaryContent savedContent = binaryContentService.create(req); + return savedContent.getId(); + }).orElse(null); + User user = new User( + request.username(), + request.email(), + request.password(), + profileId + ); + User savedUser = userRepository.save(user); - UserStatus status = new UserStatus(savedUser.getId()); - userStatusRepository.save(status); + userStatusRepository.save(new UserStatus(savedUser.getId())); return savedUser; } -/* 매개변수로 UserCreateRequest를 받아서 request에 이름,이메일,비밀번호로 새유저를 만들고 -userRepository.save메서드의 매개변수로 user를 넣어서 리턴값으로 반환된 user를 saveduser로 저장한다 -savedUser의 id로 new UserStatus로 만들어서 status로 저장하고 userStatusRepository.save의 메서드 매개변수로 -입력해서 호출한다 return savedUser반환한다 -*/ + @Override public UserStatusResponse find(UUID userId) { - // 유저 정보를 먼저 찾습니다. User user = userRepository.findById(userId) .orElseThrow(() -> new NoSuchElementException("User not found")); - // 상태 정보를 찾되, 없으면 에러를 내지 말고 새로 만듭니다! UserStatus status = userStatusRepository.findByUserId(userId) .orElseGet(() -> { - // 데이터 구멍을 메워주기 위해 임시 상태 객체를 생성합니다. return new UserStatus(userId); }); @@ -76,10 +81,6 @@ public User update(UUID userId, UserUpdateRequest request) { ); return userRepository.save(user); } -/* 매개변수로 userid와 UserUpdateRequest를 받는다 userRepository.findById메서드에 useerid를 매개변수로 입력해서 리턴값으로 반환된 User객체를 -user에 넣는다 반환된 user가 없으면 에러를 던진다. user.update메서드를 통해 request에 담긴 이름,이메일,비밀번호로 변경한다. -리턴값으로 userRepository.save 메서드의 반환값을 보낸다 - */ @Override public void delete(UUID userId) { @@ -107,18 +108,18 @@ public void updateStatus(UUID userId, boolean online) { userRepository.save(user); } - @Override - public User login(LoginRequest request) { - // 1. 이름으로 유저를 찾습니다. (이름이 틀리면 에러) - User user = userRepository.findByUsername(request.username()) - .orElseThrow(() -> new NoSuchElementException("사용자를 찾을 수 없습니다.")); - - // 2. 비밀번호가 일치하는지 확인합니다. (비밀번호가 틀리면 에러) - if (!user.getPassword().equals(request.password())) { - throw new IllegalArgumentException("비밀번호가 틀렸습니다."); - } - - // 3. 통과하면 유저 정보를 돌려줍니다. - return user; - } +// @Override +// public User login(LoginRequest request) { +// // 1. 이름으로 유저를 찾습니다. (이름이 틀리면 에러) +// User user = userRepository.findByUsername(request.username()) +// .orElseThrow(() -> new NoSuchElementException("사용자를 찾을 수 없습니다.")); +// +// // 2. 비밀번호가 일치하는지 확인합니다. (비밀번호가 틀리면 에러) +// if (!user.getPassword().equals(request.password())) { +// throw new IllegalArgumentException("비밀번호가 틀렸습니다."); +// } +// +// // 3. 통과하면 유저 정보를 돌려줍니다. +// return user; +// } } diff --git a/discordit/.gradle/9.0.0/checksums/checksums.lock b/discordit/.gradle/9.0.0/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..7a635281f51012396cdaea3a131c8f821d0dc89a GIT binary patch literal 17 TcmZQJd&nAfC}qJX1}FdkG0_Av literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin b/discordit/.gradle/9.0.0/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..724bb7839b6f5ef040218571d1cad192eb3ddb84 GIT binary patch literal 103098 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 literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileChanges/last-build.bin b/discordit/.gradle/9.0.0/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin b/discordit/.gradle/9.0.0/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..16b82d11c5e4c45f2efb7248b90430503580a1dd GIT binary patch literal 25097 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 Mk;z>D^XC2k0c08j^#A|> literal 0 HcmV?d00001 diff --git a/discordit/.gradle/9.0.0/gc.properties b/discordit/.gradle/9.0.0/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/discordit/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..d8f331435ea60690c2477987a397d68bfe2c822d GIT binary patch literal 17 VcmZSHo?s~QWB%HD1~6b*4*)Z31l9lm literal 0 HcmV?d00001 diff --git a/discordit/.gradle/buildOutputCleanup/cache.properties b/discordit/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 00000000..0753f42f --- /dev/null +++ b/discordit/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Fri Jan 09 15:28:07 KST 2026 +gradle.version=9.0.0 diff --git a/discordit/.gradle/buildOutputCleanup/outputFiles.bin b/discordit/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9064c2da6340d9e5e69f73d9529d8e3a6bb7fce GIT binary patch literal 19037 zcmeI%Ur1A77{~F~WvI1M28uSai0BU~4lL+^Mn$aSa;}o46-h>!$tu#OQPhZxD40T! z_D5=#^=OQS&7*t2z=SgBWF@ivT2hR5LJ@0uA=d;Ug z5h63~CmmwuNS|3^1px>^00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P-mJ5wL47GEcrt zW{z%pk=h`HNv|!k&#x_?bT%Ig%gaR<`Tqm==+1saa3q8J7w%2PwI3rt>V2}Suee|P zuvkfb{x*^NChjc*+2K-8QZRv04$59Mz}=_c{xH9L zvz2-)_hHvYe{S4>+D0O9~rvWmgaV?v0_-Cr>G_X@4E}@nyFsDn5;Urtaq+ ziVSwGzG+%Vy^{OXJu}Qk9_|a0E=-JH3OZ=Nm-~vunzME#&`bI)16=kbQR8_BX;wsAM@TGiJ2X!s4y z$>MJA@DzmF(jv59;lAUl>#qGym4W7mx$l2jbzSeQ@1i+2?v)t1@C;9(*OVf literal 0 HcmV?d00001 diff --git a/discordit/.gradle/file-system.probe b/discordit/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..0692eaefc09f18d71a18f147ded4a831df68767a GIT binary patch literal 8 PcmZQzV4VH0>RcQE3UvcP literal 0 HcmV?d00001 diff --git a/discordit/.gradle/vcs-1/gc.properties b/discordit/.gradle/vcs-1/gc.properties new file mode 100644 index 00000000..e69de29b diff --git a/discordit/build.gradle b/discordit/build.gradle new file mode 100644 index 00000000..602a4a8b --- /dev/null +++ b/discordit/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'java' +} + +group = 'com.sprint.mission' +version = '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation 'org.junit.jupiter:junit-jupiter' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/JavaApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..67007ff38f62c1ed232e30dcd760319509ad0958 GIT binary patch literal 10648 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 D>ZPB( literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Channel.class new file mode 100644 index 0000000000000000000000000000000000000000..9242b30a364497d0c7d0d25d9617657e84f2d977 GIT binary patch literal 1861 zcmb7EZC4UO6n+K-5?4h)Ez|O?1bkWT)xs>rEQ$1k%J&sE9nZ4s*U3vzML;|$ANI}+_vLx+eP;gr{q-BbD}0C|fM5h&3PK1o#E!L7O*J(0P~AB= z)=Mr!c!itXU1bQS(#0rlp*w=8f*vRgebT+^azowU-`Ze^+L~FmD&8iZN*7ukvfb!I ze*`fF1Bf%smaK~EoY>rS)e3hUZkcMCJ0+{Eb63?(m%BAJcchu7ZZHIRnGkkLnN%={ zA%-3bJ~6b~wpP&@;-0Hyv+Gik!)z3{aVLTi1$QypLU*_3xO#y-lQQX7*2*wpmVDg-~OkJ?dLx#wyW>oc^PYj7v-sj!;Tk@V(@Bj}Px=XgMxq5kx zn(MP^bxbKpOULR-*>eIzT_x8qs(nVsEqggZb7r3c!S1Sj) zz2_l{7p#(I6g5Ig2>rt@_ejiR{wAfeG(Xe&OhWeB$uQUfyucDV)ZHzTSRdJqW+5fd zh1@J9@^cz~rWBk)fw_y}HuQfnUIvANntT$?ScH#_E{z?M!B_j?8zN>p6WV>G=TF>_UPb zkR)PsZIe`c6vLRNtC=Q@%OW>=1?VNB*9^1K@P!+w5-RVaQgm8_^3%KSj@H(CTBD1_zVxJ)Bl$-z&<@EULE zL^P>6IME(F-7$FWnk-UOF#R7E>&SHgGSv=bt|O2Qy!C@y+BwzU&P4*UbOjJ0B+MU?``{{xaDSA75g literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/ChannelType.class new file mode 100644 index 0000000000000000000000000000000000000000..b4f8819fbba497a998c9ec5ef5ff3ede8ac60aaf GIT binary patch literal 1223 zcmb7D?@!ZE6g_Xj2Hyocf2|6*sEMhWPLj3er>UgAkC2L25f0aTa zM5E!ef0XgQu7)apS)2ZN_nmw1x#!;Z^VioO0G?xAM}on!y{_dS_k;|ruJC=~N$WuP zws+u&z;a|Df>W!0$fb1L-P2!0$_I~I<2270WFicEfk|AZgo^%*;`9kA}pK#0NvSaPEj~qLw8kj;>$1M{%+-8`# z25iZGmx!Ejx9{wHU|7$`yz4Ia{c6n63`nj{HJ(8Q2;K7otkWbgOg4mc-uAm~r?)$Zxb>g93PZP#A=~h5 z?zT9wC8kmEq~u-7n!PDHOry5R-F?PbPkJHBHJ?kC-5jUrv{(?Q}lg| z1=`8eYLUL`GR~lX!PphdPqbnv(0e4@Q}`T;5xzpPl!uXJ#Y<$az!X057k-5-<^Y8! zcpC20d=g4!EJLFk(2Fbc7nuGWZpYJIyX#mDOR+*sDPyRSjfgBENmgJi`5kOuJA>A| x$$XTul_G~yE-`-&U6B~nY!FLT`8es6z##D&o{=qq%5Qmc9H;;Q literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/entity/Message.class new file mode 100644 index 0000000000000000000000000000000000000000..53ed203399728ccceb491655509a53bbea7115ab GIT binary patch literal 1112 zcmb7EU2hUW6g>kh6x%v5B+G88r4?2_q)SE5o;(H zP_eO&DnrMMCT?;T%TT!!nItj_U0)_%5h|(Px-UeM@R4B1NS_ccOIf$Efd)gt zi$XK|ix*!mO7Vh@XUd%%!8A{H3R zJsFDQ>0~J4S1EvMFYpus3kzVpiF8GxC(KPnNGpRYV=QG^blwyY{&w$|??OYSraf9?7A}fQN^ryuz zIt|oFnwOC@A(9sPTDV2$ZL;2we~#pq^9juPjKU17PG^Rivpd6OXK#k)2NQgU&L;A7 zmMNe@+q+I@mA0lv_jTN*7bi`H7TRP{QoU1DNNXBI#%LNwmTnz%<{%!?i+;D#DZloUPx%2bf47;%Bd0djZn&o`N>U&Z$(6G}qn1;z;l98%&s39XaRHl?j%Zxaz&@SA6}#$Bl9|ckQHNX?deNt#U&S#b88T(Ns<}1Cusp45xUOMaTE%e7 zc7+?B#x2kA_OvyZI}8z{LiEDo4XPNzFhe&XYo@-ptXDZh(sz|dDS5QRmfZZfiV@)) z<5k@-1)UQr-jVRywr%m{dUcaK37o_!1!F2syASNSB)xPGECEO zWr7L`jAKHwM)~hJj2WNKf;zWSCWP9#afmWryn?uiT^> z1m`~LctM3G9qYA<@0g^TUQ%%x?=hsR`VPvS&Mc43ArB1de{tJJcdf?v592d#7H@y-|8cfUA2o9^$^y62Wg; zxmKwLA@aIumJE;QI`KKflsNR*#>*$qUi|!Uj!lh;(Jzl)KKWBletP)o$44)I|KZi+ zgE@Ae(!Xd~+{v4|>vC7YmkblHWg+Zv3cg}E`DRyAm7fXfHNDi08D^j$jSp~z##ia( zh~OGs)G+0kdY!b?#-yd@B`q}#X{jfW?IvstIl9l%>?t}BCwn>j2Uzw1%07Cs=l3y? zo!Un#JH3ze0YQ@s)Iu{D z#U<*S*U4*!_NLwNA#RWrBf*-DMXBf-3bumiYBXN}VHTTR9eJ&BT6x{W50AC(ka zm<`L_PSgDi5;%)K>cJzJkW8|ElqQpOlSx{92qcrV_yEv;40)(Q#x$~mZ!G%^J-^Z* zLSIWz62)Rhh8C{m5QJu!$8A~>>23uNw1cNY!3&|_R6F=$DEOmLaJn5l6AHeA#Sq$) z?cl4S;6f;Px*a?l3jVlBdsb#2NK&>3=t|L*evXSkd!!pJk&?~S7qJwa;W`ycs4FgY zbEsbNKL@m53=1-XU-@`b7x6$B49nrMQth!8DOTY>VhLr@Hv=oQX9Rcg3E56s`IN5D Q@CD5hG}^#@e2tNR0j7%k#Q*>R literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/ChannelRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..c972ac1d89821ba6afa78ddd494e65a3965185aa GIT binary patch literal 634 zcmb7CT}uK%6g^|=>h@(B{e-ZW<~gjuia-#A#2%uTX?LtZ`%d@Il?>@kNov1B$s0Ya|5O#lD@ literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/MessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..28ff4bad34c57401e190d1b04754936b69fd4452 GIT binary patch literal 634 zcmb7CO-sW-6r8PX)5foA#h)PY;+~~isEAOA6fE%|Ue;s{TeeBbZi@YD9{d6RDDfpi z6oO)oZ+70infLbn}!6RT_`J34K|X6QYuB)Zy6BZd>t zFJ0tTX&waAYZChgW-CjXgdQ>U=PFKw%`>tW{Hy7rk*hJya0*`&tr-rzpEi7DEIm(Z zVDk~Kd?7LO6@FOH@xb6lQcEj;rQ8!`p5|F7Zh($ literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/UserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..26ff33d4f20f72df9b65fcabdd89efe33446f82e GIT binary patch literal 616 zcmb7CO-sW-6r8PX)5foA{0$N>?#)ZJpomZi6k5`Qw>4SImhC2FH^u%n5B>mul=zxL zRf-aiGdpkIy!ZC~#U&_#VRwlh$4O52mFsk~O zPH7&;!+Uc2B1XBRQH1U@bSG+NgewaQHm+54T|d%*8hGnaw^}othTk(p$~t-;?2!NT z_vH&Y+0EF&?gWnvek!$e@>j`}B$KQx68WGs?IHMi&dc@U+6)YP^f!POUAKic)>rn> dA-+p&13uw>9BlC+;UgSZx*kqQLp!LH!6$Qpwx0k1 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileChannelRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..c57a24760b05e47b47f44ed198c9087387b22191 GIT binary patch literal 4900 zcmb7Hi(3@e75`m829_~Ad_?dOC1B;{8cdA3#waM26f}{C1!L1;cYu*)XR|Y_()5)! zZPNEEX=|Fc_GuqUt8D{S+9Z9qY1;p%-0xDBsmKT7@bFGdXQ# zGIrYAowEFD#86|vG_e+UDfA@W*|?X@IT=4b>v*2yX5uNwOS&oB@#8r=>w1pw=H}v) zPTG$5@uxRXcDlHvP$i2etyx>4VPMIlA)jie5;0n=Gf|HQ1!L05q>iT36x`Joh~|AK z9UpK!KheMt*PGaYjS3aM?J=0aT>~pRXlH!KpNoe+C88=P^O>YC;XInNQ%=(I?L-YW zq0vB-iOtxeaF=$qXrFQ9>{<7M-9M?YV^_qxWmL6|i?VGd?!k6KZKYBQ8^S%2bR^ow zCH!U+_o78%t!G`Z8UC;Ns>2~1a~ScS+mj!0}qnB+9Ai))Qe#s4hZuP-U2p}5T><_io_w42Zj8v zv@elWo<0c7!af`^aTGmVNZXkye_Ag*V&E9_uoU*uT+W)4RK(CLC+)oojRhZqBi5hE z=KTPB1N{ZeLKh>8F`U5r#M=Rd`Vh2GN_*Oeld^hBVbjuTWPd31n2FOEQiw6xslp*& zUw|yiwHW#^Vq#PZ!d%4f4V+w*MF zxZq9c4titY0|jl2qyNg3)Ru|wQ-%8F5=d2{t^I?3%z(-Ad3?EnMSVawF>Zfd9fGw@C8rc{=flnHE#>A(j zY()y7EX$F3GH<0l1JClDuV^&V8J1}XYkS>{=UW+n)Jo@B=PG*HPZ;Kald(_cXD963 zu&_|tg`2d}qgKw5_i(bppLTd`kF8w#BOXZmS-v+VXj^Ko!sDy$BrAr0OW$E*3wx|W z*UE0+wzDeS$%yMBrBinU*2YqR=CTEl9==8P(5lQHCNO0VNfI@wDZ*1U@wb-Xnuq;tBsnfO(-XG!JV<=0~$Z>uqLgf+?Lq}W}|O!g;+*61qM!7nN-^LS_WKqCZA12 z=pNo_A~T`2VB;`LK~((C7Xy%E zZ(tlHs&S6udXuh1Q1qb* zU&l9S@tb<*Wj^uCk218U4$%*Z=IkQ&jWrkx*gw!QkHlq|93HNI{zcR*qIYZo$FD7- zZ)_1K#yS@8$N~ljiOQpIVADyC!(G?(a1}KNE4msh<}udw`e0!rQ`U`xIKmt5Q5@$T z{0y3Ln0M%N;rImCPV4tzd?EyTCo>2_8Y7I&{9fxu3-z>eZwq(a%N?y4!cHA@JHhCt z?2GsoLmNUBUc$FE5NAUmVt5SS!FL({6>9B8<=bd7u+Ml0TjjGNCeOUDD+6cVA=@g7 zQ=HJVlw^+%re)%LA)-Iv^bheP{z?WPqEX3UbvqHX=3&3gmmpz6U7$0Pr0Qals>38H z{1{h5RnKsra8r{(bMt)2&C96LtQ5vqM96R-li5u&>?Ii@I)yCmgu8s)D#s0~!ba(kz$8s9|~tAD8K2+5s*yzwqhrl#(L-5BwAVLgW7c D<%srj literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileMessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..b1aef6e53ac3178aa003b9b3beee6d2d97544862 GIT binary patch literal 4917 zcmb7HiC+}w8Gb%Q2bM9wdPG#L7(^D-ji`xcJwc6F&{U9AYSNCo0}c*5o1Iye^hocf zP4A{hlHQj+Y-`#EsV3~nh6U(tep=rXpVx?UxKb}5wal+093M&pcc_%oeu&gsRQinPPbJF&GYuxsC z=B%I|2{afmO{~Oy3cXoxGVK?NPCiIaI==6C`E<_lvtG`2f^^X?c)k;O#i{g|SXb>HEAm(2j(mq3Mh6wW1vZ4m7XpIj+;JOELu|ojvpjwO47tCtX43_ zoP6%6>rz5zDwLr&%f3tkjaVxl->=Zp8C&i1T$fJM=uB!PNrYNVtj7k0+Q9aS#bD>a zqW;JfF>-n~U$IE%BHx6GadRMKBuARUL&YKv;dq^=-ai~-%6q)5VNm;h0 z`UI^p@I+Y}{pde){94x5&>MKK!e)( zm;8#aCg9>w0uv}ml%AR^L-akqPlss&zKH-Og@&s|C$P(LS}?)Mxd{v>Z~@m$Oi8pF zbu}IetnB6CqLpQM-j5F$_@Ido;TeVQB~&zqe%uZO*y^gPkxk$u_^5%8nfSOAp;$SS zWl4aiN|x&z_$0G-QKhjqu|RiN+2`f`z{&?BmRn-gs_kQQp_>Cv-acKLyl5APg@w{P zysYJpSVc#EN0YU|C5K6PZ1F-Kvp{;$!i_3J-BLjnE-bY#Eb9KeF2ZIOHC%-qi<^Dd z$-3wyJ#LB>LS5Tg>8b&mDwIJwJa6xTC8<3`U}_waB(73ZgjqD?jOVSOR3vKW?kPE! zu6vm$5#A8`APJ>!GV$W4ps0UMxI$*p(8`r#=}siVb`h4bs>U3au~8Q7obB3y{kB_1*lRqGP;9Jt5<*c`VJbLOmtFeX z8;_4rW~pAJXu&Gin!K2^+UIO-?@>4s7p)yy62nsTUa`J5N5Z9h3k>bM7^P@VGP9j` zkSCUwn@hGMG31qsSz9>5h9JXTHEXA|0j5K*=LNijScO45xa8&h#ua!afoaSb_??Mc zxUH~7cMMG^Cx6AeY^Mh_emr4~Sy{O{vkgqff4v!D89x*%IBDf`uI;xEc;4kwArqr} zbVG^FMB2iG!z=~y?f1SIs$BeRbS;kC+h@7%5L;WO30sNEAEceXYT{S8*@V~iJ#r}( zGc`&Xe-asgHt|c`;IF^RufLi2Id1S4*PqYZMSYR5*^mCIu=Ot37edg$zZ5ntzLkA0 zgd1(tSi{TkC-|3?uOp71;x|PN46d-1Vg;Yia%R8Y2Q+leKy@XJS5W`5-uP)gMF?P` zmLfi*-xQw>cn+WCsPH*_J`(dRmhnH(Ig7^gUDIfu!J5JC-M6t0B-h3oJifjA7PfHg z+CGhr?wj1Z45DK#jRBgeC5aY(K(%2FIyfu(Hit4JeUy$b;EU8~Vk5qUFVniOaF>g)ZJWZeyodw5x`XhZV$*8f{0CUV?HP`O&c&n`p~MZNu77 zLdAyl_$t0ejbGO%zriCq|F;U#=i`+qj_KY^3@7QRidzr+2#SpF7T3}o&QG=5Vg_-gR7t_+OaA=PRtQ=HJV z#vLB538!V^yAh7x=kyQoLp~*L2dPuyR^LVV-Zzch4gLtjB)kREvC!04LQ@}wM&U>J zaU|+F!XU(Kn@>z9BIXOI)07m}*T$HzhrHU04S0xn?2ECnt)i|iQfHE}^Vujf!bU-< z4(cszHV9FTeEae#TtUQ@eY2P#C0xyy{0uy%%`}Q6#Fgt-Y(6+s)H2 z;ir59{SGr--o!&y$+vLkdCrK3d$3}T0j&nV0;(AxQxyjM2ddY=h1w|cKWj=zWsJgA zi99iQnpykd`H|mS6?sWT`B#r$NMWETmfU+4)%rG~bd8}Xc7RCK5uzb@n2}XaFJM?Q zCe74!N(?hY!x*cus{R_k;jGlP-|}x3zsGCQ+aD`$f8pETxl0Q5Kkx?LM9cpG9Z>zF literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/repository/file/FileUserRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..1562c83b445067689882787846f84d5047656f42 GIT binary patch literal 4805 zcmb7H30K_K75*NZK!~t-3E(BRgIxxU$4lZE54L0MxW)xLF&G!pO`Z{0_Ar`^G`8uM zrcL)XU6XWQ-Lz@zv<=jzP13#1=^yGjJ$1kPq!~1r65t%>N$=fvm+yY}zNa_;d*?L( zNARYJDpVV&u~3UTg_bM!H9MKLbJNLlm##SJK%s8H&AGu*h3f9acs=SB8j8MC@b_fw zpaCWt4OkYMaG%1lv^SIV^945-BxhXTcfDLP~s*$y5Bf zKuzb%^9uE{a@L-46xxOteHjg?b2??xT#JQPv?&-@_2TrOH?dUMjX<-vK zE8M63EE{JK1!u;)<_t|KZ10Y_wv4L8q$t~J;Q?$T!geO3up!zL%R(wKDY5Uc@F2Pr zntc13!`R0>!BAmc+=>PuF)n&{S$G?|nLgR!vPBq;bBrySa8ZM zNQO671a~ekS+lb#1CJ{&tF#4)L(6AB$AQ(*xO9{@`VNKm#nssUNNB{uS)5ZanbSo5gzQ4!9d+|Qq6>^!u*&&+S6{pQT%q%C}#3iH+WGpz6!?wkY zl|;xL*Jn-pEc`Y$!5#yb6*?=Ecdi)3vUi2ime!^4;;SZH^qZK*jASWC8Z2fhE~nEp zjl6}Yz$$3GUT_1al&57YpJbfI6DB55v~W$b)vP=0Xke$Wjuq@Q({lr}2HtPs1Nfjq z_iFnb^FHkaf@)<8)v%iQFrGH>5ev^qYl<~FS(dVRs%U3@10Pd3xT3{a-(TA9n@)H+ zKd^JbxScJsk=2~wQNaL*-JEl_ICIGMG%w&6gk6{%D3&iOBsw!}ehO0fvXY+Lx=KduyrztS@040nr3Qtgr50H}$JZEv86Fd1m#R3B!!E^UXl9(O z6FC1@WSnP==Mjg^ImlNaRPoVj=AaDR=_QP}zz0NLwfK z2R$#~Wy8*oIKgEv<2Tpg*Cu|0-x_$;!W`xmcIXp8)5pzS^R7C{VT~Dg*i&{|uD5LK zGx4{7Mfk-xg$7RBxlGpayM{gQYB8URkvqDI#AYIE;l?qRd|Z6>i=oMt_eS^MxW6at zY<84KRjLKsh{_!~o);|q951)v4+?#2NMB--3SJilZ&>&lUgF!IQEz-?k^Tc|8D zM78)FK2KA%*o-gWi!}BnN{Kt+%yT*lUZ*%pRFfRV^-gi;Hg+n|ql9?0yNW+7d-0=6 z`_abm!0(A>bYMNb=-{*Xurbt7_MsDB##dJyakN4fu!%Z|EuIcNjnZt#? z*GEblnW+T!;St_a4`F~8@lksCFot+#3dbk8Hl*Lf@yQ6^T}&K^q)GHT_-U0u7xnDq z-Y)KVkUMtb40h>Qdx$}TvR}tH7||Kj<9WQG<3At8Z{jpw#5WoBx2Saxwf~W?#DjOS zMZOG7J{p`=21f6aV>RU|PUuN(=zex2*>Yo`g{03ejHi{f+(JmVVh7VVN?S?#JQ2mQgO;VFTXC3jDN6Qp{RkyejB0>s zKUz+AD|P$`Kc;U7xchnhgij#F!rGQ6iBOdbEu49dGZNuLs9Q{ZyTMC*W$IgE@XL_8c$Ak=W*xzzPWSno&EdYoxcE#;b$EQv}kDMIELd4 zsWo%mG%V9zG3J)nMA2tBJ}PbLk2ACkW*0S_U^pEZ)qH6gldfxS6r|_t(9n`Z8@Ps( z9H-FEFi~_WhF5i^?Hd*8dD5|slJtsBNl4#tMb+`7@3uArSQHhO0sDB zBG-nqIH#eLqYK>(r}p!cI9F7hbum+B=o@Sdm0eO`=Q-X$FL}}|l^D)OYhvEcg?4Xp zTtpwa-t%2yRv69?#-)a%#(XeIZeX~q+>l`yiOX16n7Q@;TO7b!8U{JC7-HzGZ*d<9 zNhwRq7cRq%IK>f8d%4gy4B%~!E4a##EK9pIEnRhJ=k{%GuBuMKv~ntKKl#2w#az@7s8wQpYXa)-cWSu?mz}$f;>M z2JyURTAqd(I*Ep)vGh73uafg}#Www#D;RFZLRTf$Xj3^fPJV06Q%WDW9hr)5P?@tUM@Y&s-;-C(Y)4L)RUs5)4{Yg&3|h z7JX=CLee?MD_3yJ3=6LmpUt0yrcz+ivJM7UP%s%L_eI?69kwoBP>^_Go}E6tk0l1Z zBrM^Jmzpfn9b%c4<&v4HTV}4&jd2LBDSu~)n-v*4BJkaMkf9QCG8$6>lNn+7qPdW1 zT8BRG)ZC(&mMRarkGkEis%k^gG37WuRa>(*>~ul zR^LhVzDr*+34DSiwdpgAo&_2iM+>!p)X)~#(4WvAZz1^y^xp#OS$e9EHxOPcIPOu4 zhxVAmed;lMiU$$aW3p7Xy+gl4AKpO<*v6Rz9tHhv^iXs7S29RI0iPmjBBoyl&XY_9 zel7%vzzGWTcu4R}UA{D@Brnlh(exCH`4>S=L>uLis<9)4rDAA2 th#4h}hr;Om1oaXqV};%qslQ5p2UU1ctG3sAL9K7eN+gE@Xk28c$Ak=jG1xJagyXJNx&)Fa82Bjh}TS(4(Q3V;}k$ zQtRf1X;`LRGj6V}i?YwqHzjT9&oJ~%WLGupXE+!bHGOFrbFOP{7NzIw(9n}aKe&bi z90M3+m@PYX!)v(G_KmvqJn7g*MS5kYBBXD)qTzVbcic^5y<9b}7Z#R;=b1HedwYUm ze?1)YNLsN)s~GcX+QAS<8V4DAec_STrHNukPGS4f-!vkkd^QGIZQ5mDDZJ&1iY%MH z$oJzgj%XO>IEoR5ft~y$&J}fMLo8Mq#wR*MWlIX|7{?nJBTt%@3d7-OP0ZW*(C$r+ z6BsAgd%i2oI>WJvxYTgeSPmx14GgE08!`;%<1$uO7O(vO7SG@<4HFz$KOLbgs()VcWgXRspAT+YFOa-SOrQfMDn3$Zx#`N@<3{qO`@0W_?Y# zcg!`5M$$#6Y+9?PD^))l?DZc?%IEpcG%@`zD-Vj9TE3>hpmez6eM1lX9xH0qr{+B zge83OQj=A>LoBntRxvXz%ghD3G4{Z9R87k4HicoHp9uFFa;Nd zv^Shb!YBsrqZMY=EUQbDp}!vQ{S&z|z9=NPX4(}?c$uQ(JZd)bVfF`RbfZYS79WY& z!i9G>8{+jQL(0x;ql+W1w_sY3jxs7KP&KC8uA4m0mIz}*VSLT8 zh6mK!RK0IFzQO|rzG&OREm)@K397K)Go0Sz_I4iB@FTWsBk)^U7%l!_0@&!`Ba~w+GZqR>@QEE>9N(Koi-~pm0V)_l?7|B%N zM?!!IoS?9bI|R?vmpG$8owDU*M$TI-Q`$BtwfMO|pSua==j>!U+9_ zV?3kVJfm2_DzSu4x=XFkpthsLk@+I zDP6_oZgnJXI`fk0!Ypp>?>)JY&1Qj(fS$%B%gh z|LKQzriBTe=@01iH+6bfQsQ+I+=TI1+Ff0pbN1}ryZZazmwy2m$Im8G=rGX9u@Czh zGAs6~Z8^5PY~5K}5#^9!|Cn@TIKj{{oLew(fZ<3K)Ci?xP5QpQR+2$z!azqFUEl@| zavZ{8hVimjvx2%W-O#GZAdsGGRb){1Dnf>qFX~<(L(gBcR?1atrZ_bp2>;&ZD8s%6 z4Fn{r)Ff0~g)C|B=E&j*LuV)gQaLkRYRe|vP=;%kqA27vylTTOhf3I8UsPn-4n?60 z$IxS-m!l8;42N3D84mcO=Bz6EHmBG^LQ<;I z35CyaS*O^+v{wu5!a2OnaUK^K(pBkJrlhY{tfysicj{^tY^R_SX;fw7I}H6gY0+~W zN=S+-UfFgQY+tH=GT0eDlC+1fwCB*2?^p~JZD6kw$-d&ekM~N+QEVOJ=>sx|-rCB|{MJq$AsBu*hImgd;-n z%8&&*92~p0RI!JekwX{hDA)$Kdz*7a%o+^c3G&8vAEF9zFd0+1F*M3>e-GKQHwEUb z*YL|?N~%on*>+l8P&I^d;hN`#R736hEfGHQD#79XkS12}*nq=PgUfI_DmPL2m+q?f zSXiaVGJ3n+-jGb`zQ&EN#N@@^07F-52FP5Nim7Z2TM z=*uL9PmrcIeNfT0L?aXEpcatHzW~es3FE;Fr2l~VTNHhZuIe)kgx3j<+tlK5JnrBw z^%y?Iy#(t4MXJ~n`QKrVyhH|A$I%q-NBwmSP;=y03P?c#A0lcZre8OXlS~EP69XjR z1ch155j<1pDLqq?7wN8O1{CZ%PBIYJX~lImMVAqVCP$WJ1HEKGAC97*e!Uvcz$VWC z=CMF5u}Sx-^%>N36yK%9BCgy~oG)NC8I+MqXVV&^!#&tL05$}o@h_!N1o&2 zb6om`24g#7pg~PudQ)CHk;m{QzDl5OBv9Rn+hZGUHXK^meJ67lru^g qkA>0t3F@U##WLMbQU4MBJ=75-t;S~SDYd?%D3jQ~$B+04{r>^7SvYI} literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/ChannelService.class new file mode 100644 index 0000000000000000000000000000000000000000..a0ead26f2e4b613b4a3b02f60c0ffd8d517203e8 GIT binary patch literal 628 zcmb7C-AcnS7(JO=>*n9wUShp57hcvMh9U?Bk-8i2Vj62kmX;(P?A3PR1Ncy4+9@Ih zp;sZ_`Et(pos*Bx?K^-=Ohfbt&Uvw-wlq>Zx{}t)LeorIUSvW#YK2)#F6hl0(^{x> zcMZ`e7%$nHQN?slA6}M%JA!~4!JHs4v*Z^|ohQ%ZMW7sjoa=P?cHZ z+GA_-wu@a&2{NHX9m%vs9z7F`(xNh4+(}ip{7w0+jxZn~*z^Ad82Hc!2vCO~V!t_u Z784~i1^=1{e}F$q+@wmC zfRNKN?+tI>%-fI8w|4-S7>DQxoa=lg?Ydy&om5xD*ywG(bD6jnm>EE5<_roUW9Y@MIek2y8Um4)AH-e|aJ<@(C&1?4)akM!7Z z-aJ~{U4n!%suCDC#HUXJgE%h>O}Cs?Eq_Bjs}c(Y1or&*0D3;-9s*QZhuE**J_epY W@N5T%9zViyjh|rXF@e*X8GQjO9k>tx literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..e224fcd4b0587854ab905e3a5a1c22da538a56a5 GIT binary patch literal 633 zcmb7CO-sW-6r8PXV(V9I|3q_fy{8rg5rlw;5bx<`4Xl_R{rr0W0C0y{hylZ`s5iXX8q$_;sA;Iyyrf3dr6kK6X?7$e&s~x2>kvbR zXkF|It_of8=ha#Y%Mb`73o98`^YoX^tW&O%Ly$QA*NW7Z?3;IzFbrQwmkf)aS*<0- z^Ze-{IZ7q$RPL2xn9k$9N3WDpW8IK(MwKpXYur}LUc=&Wze^_;wA<3($MifOa-Dw9 zQJV&(RI*EF)|(!`Fif(#H9|g;axKxHv~Rj70|tf@_i2EU3x9+F-6sff>fbRYjz4qk T0Otg~YB literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/UserService2.class new file mode 100644 index 0000000000000000000000000000000000000000..70b2bc72d8f07d68f84811c1bb050a43a8d16f71 GIT binary patch literal 594 zcmb7C%WA_g5FDk6-K4KH`HA>a(O#Vf3Z)P*^kCdWZ;q@Q1w{^)9O$q0&=2TGm9CW@ z0)~>Fw3=CFb~XC?{`drNk7y<`+-_@S9N#EwRb_agtf&g99JjLGDIs}AMY^x= zLi8EN>wK4Uotu(BuhvpHhW?u}1;c!nc&>3u^DJ9F#!>R8hcr&PcW)6hgssYh)(n$b zbfAxdqvsx-N4YRRzZG|Z28T98=KY>V8H(y}x2-r4V$I(nQkJ_d4)TMzuOdhPfhS1l!XBzsPe9o7-Z40Xyt}qN3;ly=Obv)B|+#QB|p(U!j zyH$_S8pe4A`x$aA?S<`|{!ZOiMIX{K`2mK-@j@g0qEA_Ez9N>rSgSi#k)K%W#Q_{t zFsR`Wh8WJbjHXpK44od|77TaCTT`+(jQm7fyJfgXG`xmkhVBj1F3s&Ml^9M&WYm1q z(r?^YxzbX3DJyiNtODX3obmWCTO+mNPuu~w~Grf~Br-oSAM zZ)zCD35HD42}7^rE?AyeExXQrhMBmBBw!S0tcde6$1x4#m|#$3j+ZTqT#d(5Dwv*6 z=`b9XHE~MA6sD>AYt<6>=?n&&6i0a0r!~yr41+2j5QG=fcOV{PNZ)M*=NPh${Fa?! z%_uKeqCy9_@W2oOsVd&aI||;_a31gN>Bz7oDT8fp)x^q1P)q%jQr1=AMGwaU71SNXa{Gns;8aBGdbrW{9;oqpM*3@^2AjC!yy)vG+!gW-yx z9^5AN&>DVkmxf}|jsaZ7Ma1}|LewMeAP2EfT}5KdFx8GV#nmZ$ zis53i=-UKJnFN!L2~E&C3_V42)8>B7rPMAb+V(k&p_GiyFq})ck1J7gU7)D@A|T23=xI`%qEmAXv1rP|KiuR4 zJ1q-@2%U2r-}7Bwy(av!Q}X(|z*VfnP*Bn!KvHtNQA?)1?Q99X5JXKDe1jX|r@6Nh zAN?I~fygLyaFyF7OL(IN$Jwe?^GR-FGkXk!O8ifYq06|dBye2KqSbkBSw+(q`83K5 z2kWI37gQqao=W$gEe&^ZCyffjXnkMsF?`8+k)0#$sv2(N4vkzD9()BgDaG4_lAt_P z-B6tu>!g4G|I-|){hb)|;q|Zn(GU1|k+N<)U>J_1J$s+NCRwwTWm((tvl~uLDuT8| z*FAUM;+`iw1rHfcB$94cG77$BIM#YAbzE3qbb;umFB~ZY{W9`qN|%yudf$h6dS0Q? zBCV(BU!8mcHktbs%Fi@PVS%3e(Lv9CbRvx&4A5TC%`MoC4{()6WEY?^LR-Rz5hf># zPFfp$j=o#DQ%}&pJoyWhsi(-K@DnYB@bZRDn+W1i06iHR?LrUYBNPZy?zx6#+AW=} z;A0AlgbLRqcSTx}NJG*|?kNtZkb8y^;4!j)qOajF%x9Rg86lU$v3!PhoerUhRRU)6 zPDHShqjSMnazqZE;v|bD(M4+@o+US0@UBK!H)tk>HJY2kO?pbChcqLZ8QT-;WIfd7 zsZ)=UYsOV3Fgr=1k70;H8=>H&%aF6N-SEev@X1BMUW#_7cRBkMXQDs^aVR;dEf~y{?YLx?dgaW!!+Fhb-L8f#K_C;de27QZv|HDSXz}09=Xg1 z#|8{YFOxAZjROkF9E*`T5FmnpNMYIq8c70C44+YODSVDE=zoO9U(#}#5v%9udvZHYr&8*J#d7t-r z-}jvJ)&D>F48VT8lR^S*8j?CTprDut5enNCSs ze!-LOyk*M5wBcE1;jsE1m!4R%va?x726qeGRU^#i;>oNm||pl;RCi){j%%{ik|k#-!oxMAS&=FP<}^x<9&+jV>g_X+I% zb`%9t@*)NB4lhiU7>8_3nA4{xjudm}G~6%HU)Sq|GgUL^j@q&;EB?`ormXr5Lk9)~ zMwj3Jc=_EA|9kDt<$qu5U%qzb)|EH!?nEiK{O-%QuD){X>Ib7K z?7(+bnhXkTjVuR=GUYSEv&Gz*E{*Ibotih*RxSz8mMU) z5*TV}lipkYLLthq6!I8RzKjYyx{fc+x;FQfue-g}-}k>|@(!Y86w( zx$u-LOO|Q)k{Nga2Q@sQ;}8xDY^xJ)uti2QmhDTIL5!PN2l4iNm8~N>j^da==ZsY; z9kX0Ty0^i{lR+vPb}@w~F`?lHI(~>rflQs+$`Z12+@rQ91s;rtYemw~_1LjRObsVg zgii|e#T^-UY@6pA#bL&#c#u4;;~7j*SVdIeV0>{{RITg2F|%kmkJCENs4_`;(jRv! zK9^)5Fs1^3R>wK~NT9=&WoKSa%m@s`O|B>OIR*M-9Y4WO1vbq}UsZpmLCk<@3I?V% zm^w;LNvWnOqI{ud*q#O&eWYc%tQ^kGCvxYMHCr+Kn#)KWj3t~(`h9n#(}AMEe75zL z+n?1N-nZs}VbmGxao#}!J(E^No~V_lrF+VlwmFiSbWFoOW4M;;M}tX!&hiAFXl-;w zvfJKgbhzDQJ^Qp{#Iu-Ht`5+coIy03`?=QkoAOXVGsDzVUIir;Kdo7qt0!sW4I9{I zey&^r1S*I3vcSk4Qs|!Y4fDcrqZ%ohu$Z`-Dzrnk-JHU~)h=+TA+Nt(Vzt+*d^%9) zr{kp+Q#CHdo$A_NlD1UfJ+@JvE*XPifAAru$XatP%d9D8xpM-7cR_aqtb`ie&2wbR zskx>+W~mgtXPu|gsERMcc-V1#9_L2&xa9p^@_O3wN(!&yiiWE?Uc(;+cGgqDs?0kV zWMMM!f;)^E!wlb0UFCT1>v*z8n?eIm8kLeQy}?PxxlpS{864L(mUs;tPc2kseEG&F zLzAudMmJMHBtjlHY}b7|=SC=7@pDuR}>tJpcHMpi#1lERwEe~k3V67EUhU+BJx9cMHB zi`e-&hqnwb;eq;aRt?`o{_N23$RdWvl3bGNOD>_1z_WeH{}8M#Ai0AVyfWX7?KFEI z2KhW4CA~3|fTctLD z1=1i0et}mPgDa|2OA{ zZs4gCBVVFpWcUV7jnoy*1PdNUJD;>E>>=&F0eC*#xJq?%M3rEHo(b;g3bbnrv}5A^ z4?P;475FV96B0N=0!qKMa)i=7tE77_fe$$r$`v{^7LzBvYBL?$Os7<}MTq+=tj zeEtT0)(WaK0H7^&;&%+QAQX##qfprxt2Iyz)8)X6m+^c4tI+;|V}HV*@z<#J23!B& OT#5$YWDUHHzHb1K7evGW literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/basic/BasicUserService.class new file mode 100644 index 0000000000000000000000000000000000000000..712f1f974df3ab140f69f5d4736a6dd5a9964ff4 GIT binary patch literal 3665 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 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileMessageRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..a90222fc9fd6f58fa93aa0e7b8891ca4c6338b5b GIT binary patch literal 4859 zcmb7H30K_K75*NZK!~t-iNQ;32fGXykC();Jx*+c;~E!mVlXKrX)9&~mOYFnBMmm) z(zNNmrfZV!tD81$owkA6v`ME|BpEQF8Q*1bgdD46L-Q~OAz3=Jm|K5B9 zz{7akL=~zH)L5uRokGhcd)7{7?c8+o+~g%E9VpZtb8~L+h(dK&VyqtZ3f7F{`}VZs z@6Fgj157j;uq-s;9);s+Zzk#I3vMn*&bYqsdbwoA_0wL)af77q6lUGDlbmw1PVzK= zhC)r}oxJC}fmfJQsF%fId&W^{8(eZ{B%sdelu2_f7FyA!U`)BW%*kw)f?bJFv>3SA zs#ixM@3ZQjOSz zb^{$2He-vzJ=)c>ea2C6X1rNvU`k;}SIoN=R3#=v*)|LJVLNfQGZ}>q(Vkc?Qi%x( zf2W1}(W%hn+p`YCAN2%Dg>`W&8iT}`=-qAM9q3{r{h;93GYXq4&rvPjS9syVz^OY!(u=(Yk{0%1zrwvskW?6`id1FOz=kk&@JDW1_5Q(cDay?Bw6Nhj_Xn%AW*hE5@mKYO>V-~A~z(ZngdQ=B@Z z&>CSANoj}ra8_2|rLbvfHMTzz8nQ5qa|$MNnkg0X`Vum6N}1@x;}*_K@zw;q(>`mzjjgcTz(s|Q%H*9Z2C?j2Vzi}oDZKcq2^U99Ok+l}lp_t6 zvJ{uoX_`jf!ZTnMG+rsVfm6!Uij_|?PUCSC<0x8~m25TZCOZC2-9JI(Z5#hiin zTlfGzsL->9R>#y&JAnXO*+@0ACO(X34SdAHbJCq+eNL98GM*{gS>M3NSk9{&EtI=_ zsmI3qepA1f^8-5>D+gVLN&kTk+=;oZ^;>@H|7!?-EsoGD)GpjrWv<gknoMk`RiD_EN^7vgb11zIc9wGHZ<@K@Zkt?U~7p-MQpz z=K+Nian(AYH8Cu~=vyPja-ItWoxDXfMRQV>o%g?TI}?9|7FCX}0-^)5TfL5&}G z*i&{oy!JNE#NYlEVHw{P8aQL;GFiv(9Q3@)#e6D8_vqddn~AK28%Nm+;^KF|7@Ayt zZ**CX``d44vm-p$QZ3j{RBp;yzG&g+c(nz8(6`IAbj-vAb-XD$-m>sByu!CX$=jbT z{1mV7Za0w2IR$--aCjK~O<~t0%c{C60>A8t@zzy76g(vp(+`v|j-FxP-qvtw>sv*iZ(hJbDS~Szg7Ig6U zK5i33+e2lMA*#ja@Ohf5#TI-4U!<`wQA*qiXI{`z@cPA3qMG0+u6Kw#H?WKMjGIV^ zM|-OH!!96xRB1oj7#{fj(TsMirx)#f79Tc-8p=L&;LG?5Eq+z+{2HJ5bw?T6QwQjW zM00)-hsN8C1sopinMdknG%n)!_ySH|Uqs*dB2JC>Ea3D428Ia6;9J-<%<-|_>w36` z#-la8?KShb(EH|4X(Kb0z@T{w%~I@WGtkf7|>@eM|F7WH@$FX{NtNAa6DgO~A5M*S^n z?L+N<tYhZiwTF1VT~ zmlu$wck}Sb1pgW~2o*TSsBjJSLYLq*#?wk#ZY8AKu#@Qv}*r@NIpeuN*>w}agMB7VXrP%f-(d6EcKxzNIy7dRskK7hKV z)Ne9)>90(^OqEmrZ>T;4<26yrueF%c3!^-hQ%(%7uv|a1Jmvc;QZ6+pe+^+rpei=m zyH(YG2UYC(k*X6!L-4R7udb}%SaVF9rQH$7Ec`;Zs%rd_Z&mn}ZZ*Or$=~nTeSRN3 Wy-|MpBcJ|4X=%-W#ozHywEqv*|LBqc literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/file/FileUserService.class new file mode 100644 index 0000000000000000000000000000000000000000..c4e219f6de202b3ce43fb3174569816c5ee82c9d GIT binary patch literal 8087 zcmcIp33wFed4B(uc4xI3j1XXXffy_>=tMwlY-<4ZVtk9_gJPX_}sC+NMoI-tV88)s9x;Ay1z? zh@F4``Ty_#j`w@NZ)QLB^(!9-uv2v;5J7{1MiWuQ6k1MLr>(x6RXE-^dhCRqb`@ef zvW2X>OQE5ob3Bf?LgVJLU1~xC%?3;pOK_9IJ!vQ3S1y*a1-CDsEtj)Sp)Zpyr=5(Q zb^EyfbT)1GO=fd;-#≧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 literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFChannelService.class new file mode 100644 index 0000000000000000000000000000000000000000..ce6f88487120ad57d1d224e95488dac094739a7f GIT binary patch literal 3802 zcmcImU2`186+OL@HS%h(*K14uHnJmwR?>P6HeX)JSeB8IS;>H88H*%jwA+%#nw{Cq z%qmtAzRkA*0|D#=NK%yo9(b@5urXAn@|1^E{zcwm@&{5>!s(e=YgTfJQmXQ>yS?4F z?>*<<)3^I?|M}|A0Q&H|Bob)Q(5Pb-ngmj(jX5J{8TNGU_~dC>^aYxFP22Pj3N&

z9UDuc|n4X`6hKAK>fv({e9c!>w;6TwS=e&w*+J3HVdY zosu;DoG0BmvnX??i&ME{1A_xIhHXo0G@KP^E`}2xK@}DPs#tjq>jb)&^)7AS^yhPt z*CbL{uPAO180-w)1tdp(qMObaR^V%Fz9RFP@fNgUqlQg7He-vxntF)LmQgARw8n#l z8O>)VR%08sYuKUVRNcRnb%1 z8f5i>GeuePS?*@+5!mp}<+In%o^QYY&gJXB|FHd=*Z%OYbDyg8?bUGy?qsP=U%H0x zxB_jR5yn7WL(zP`1^aQAhP!p#gL?(i3(2mT5af*EjmR@h8-+Tdb{x==N3TGm9ZYYi z`Hsmuuat36$Ne}YuxeWRLo8alW*C4taboBQ%`_ZV0vZt59A!3G9dIm*$Any|i6r&^ zfQ~^NWzZ?prmy?s#(}HMO2ii68`5!16=#hn{UfGVv5a}!D9a>ORM0Vu5rK8Zs_Rno zV`f|6F6*E-JPRPpsYQLpJ;QMC@{ z$$WtQO<--owB<;(JSp8VW76VGy5JNIYus>6^*@?y^k-D9z9&o#`AvHzV>T7p8GOcY z<7N4uo7;*wQ$$g#7Rat}ry%60$<;Rwa%$mKp`<=SsjK7#vI(prUP@%_#R7M%Bx=yU z1#TJjjpFREQHko1FnL(x7fo<0-bnF#4v=q;>=W7u+ zgN9wQq}Ne!oY`t6zcjV6nYxXEVq%Mt{2q@@ z)o%9KRODj7u&hzuZ~11N6WFxqDm;7npMUzI{Xn}Q;Wv_a6X!L&rQ>b9Bd}`;;X+U# zvN5J=bX&^te}Dh~lV3J7b&FxX<9V)I4xdrWBrJt3%*uP}PJLg;Gk7+Ii@}AmQVr@u zd|0{zmf?BQ)9``7?j@vB(P(7Qy#ETPuNME30{B(KWX*; zoZIs?Qm49mt|C3s^*NH+YiLd2D73|Jl8sXn`mP2tV@VAQxtD9I<#2v&4 ztYgeHTCtvcTDiIr9oU2(zHk+a{p673*g~1RIykoBaKz{lGBv8;r-Ao9aN&`M&vh~{ zYK+ClH;zWg&v8v5?@@TKAtx~0a}E0hE@BG@_X+$3sS(2M>;4$4vX?&j?>~qe5#Bap z0ot*hNOxlwZYQ2Djug&z+H5Df5GNztK-YsR<``dL($VlOk{b4J`!|sY{0wLKtLk$% z_pAEosx%7SRrIUKi6B#|ir`~;p)PvlKdkmV*ME**@LTzMmcA6rtzF$$aAYL=SERE& zSMXr=OFZ-?j$grv>|#=PGF|%!e?KL37t?)D5UMM5bA!s(hzeZ?DNk@$YeZSmYliq1 zn>D^}1%8PqBRFFup$e8(v?z^Jz%~3Rfxc~@aW*6vim#VD`);I@J8ncyN0C#se+o|{ zkxHu58ATZ8tP<}UMY!){XpNtsu|atcg%+l-H}KpRS_b}Tz(b=-7M5of68a&&VeuRn j5_leG`J3kG1sc4D*SYd5yo(F?HRqF@`wc$CZ?XA1&8r2t literal 0 HcmV?d00001 diff --git a/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class b/discordit/build/classes/java/main/com/sprint/mission/discodeit/service/jcf/JCFMessageService.class new file mode 100644 index 0000000000000000000000000000000000000000..5c06f83d386c6f7421689d679b695dafcc64b46e GIT binary patch literal 3229 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 literal 0 HcmV?d00001 diff --git a/discordit/build/reports/problems/problems-report.html b/discordit/build/reports/problems/problems-report.html new file mode 100644 index 00000000..af03b7fe --- /dev/null +++ b/discordit/build/reports/problems/problems-report.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +

+ +
+ Loading... +
+ + + + + + diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..67007ff38f62c1ed232e30dcd760319509ad0958 GIT binary patch literal 10648 zcmb_i3t&{$wOxCX%$*EFgo_~YJAl$85CW)x2`Uf-V-p0!M-*v?$%G6{GHGT4qE!(B zB2WbdO%*IE713$|5%RHL+rC#@+iLx_wc6+VXvyS#`d;71K5N%G_ukAM5@TYEc;?=F z&e>;w*4}5IeR%259p46UxjgKL2U!NP1IU3_FlSR+SRA1&pp5UC~ z;?%wasRJ8>sm=RSEk}dhTXv?lAMD=VR$T1IFbp?f1~39=3P$unL|`;3lCcJ^QeZ8k z`Q;kXhSg<-OMMt6$W68E>uzo7-rMTKXu;6By1H2np>>g_N#S_C4`=h!@S78j^|Ah&h1k zZAqo+Spm$(96=s+H#eGSjD#^Lx4FTMU6_j23Z%;Q7l8D|y6)=)i zm<%{86%$`jeq7P#s@EeFz$%0}gF^KhXIs+;lFUu*Ki+j{mv)BLME?4^4Q^+MI?gb4 z#?;~&Y?MfA1Bihk%iG*oqdm8&7jk>sb|7B{fp-&L%v8)Y2Jj^`k(ruEETY25h+fPT zE;V6br4P-5^NNdusiQ4jExUS!(O_}059EM%fky7eb0bD0u4F&eV>5-8*;ru~mi9y95*Z6~vC$HZi4xyH%Xr zF1WI{Wd|b({nw{lek*2~$W`dM1B*@gvC`zOJky8!XsuJvJ)b(XQFZN6DBmks)N9q= zP#&CqOav@GS_Am16MB|tUt;JnF%*jw1N#)R_xB0t8%*RWjt>Zeeh1E*o=F|p7wmqx zCD^s;$<+Rh!LFwccRjk_#2HG$VVG%RxSI5Jol6vd(jPw#;YkCB19(bpcdl5ZHZFm` zDb!FCuU9WVd_x&}@3yWjdzmq$TG~<%?U^(L&*GZ~jwsk39Vl$8B8fz3b)*NjAzSMi zuuX?Wy@y(M80>awuT|nh8@O=UJRoplti>pmej*5kRNfqWo$LiZ>+b z0w%ZeZ>cc_1YO{zbvrsRMf%@Ppltw07NpF!kWJ)b{7Q zc5Lg~aZnrXhYIyS`dgyj5!A#eOLO~7oTZ}iPnaOBkH>2^`0z4eq#tKlnWB|!{+!#B z{yJsq#g`a(h05+Xax_I6V!r}i!(-s=#>QBbIWW&YOeUIXvGVJd%v~HwFcZ7pCIX zEc|N#|Av1ToDsINi!@D!hkki-XlB~kCi{l~{uBR2vh`K~9z5AhgXweRe=}oMKC2S* z|5eueKf-!IL9CChb?FfN3IA{4qX7Plj|J2E74{QBpps~wV+Bh;MP2Um;=uNGWh`zd zTSX|Vcm(tMlC@v9Gm{>bIZ}~BBwKO}@ltRxJ}oe~1n-4n!HR(iZO`OEZxGy;`6Rb@ z8ZgEuLjX=g+>1^f*_b-CFK8WBnR5qwh8uDQbDQ*rzaU=S z9Im@67OAJIuDUrKX;l8@mpmCB5YyQ_Z7iA?trDycWMn`_$ywY+5|Lzcqq37=<)^5^ zahD7i9FRV29DE@80XbXFq4VoyZKVoo2DtL+jyj;l9n&eX&kM-;a)DsD~dCz7=bFI&e?o%XjP0~%*uE;6k8f`K4zHk!hE^v-;k8wvMw?t- z*xG8U9c^9OKRpVi%X_Ecm$eU@kf6AK3YlS$Ecxu2)LcMo!=_DU-LKT&=#2LaeO>vP z)MBqxrZkghJJMh^ahem+{I)!*D(JSjKF?6xP;;^_-lTdBd&z<7%wCGjT8gsY9Yxu% zR8*c-wW;YDU}?@7@Hfz$O-gIdYe__>VNs6x(5QkN``Y7q@~&m^Pzf&d{IM>J^&R;s zXLhJ*HRT!62SFtz(U?xJd5G#Cd9LkKIcIt%7aDFGE&WmO*W{Gx!2H=L+WJjTCXY`3 zW+QZ}A=etRd=N=PFQSZ3)$!)0a6}!WSbjY%q)t+MGeJBj9#1BcO`*oB2%%e(IKwL| z{qhC*q9H6oUM{OxE7jY$KC4C>*2ULGN~{vFRVtnr3acZVpw*o<*#j-2SF_>}izF_r zjK|kDHvI_=W48!>&9wrvvSp;)Xsnv5{NAuP{yD(ZV%RLOMDo?vNE ze8Nh(U%fxkV!hYV;nX|Rp8YRapVn}4_rBv@J2!UUdnDL(Y+HA0o7JO=!S-bilcZBe zG!4H`=qGkg6in#?evsAs)V5aE@eisxzBRj1aIV9&?t% zwwsRToTrh|PU$G)mO%HeBS@WImv}e#F-fzeC*7hh9=5fz!VpXyXbHOY^5t}ws!+MR zZdXg$vwF1PlZ}>mx>lRo&ndmcV@-6J!=vuhOti4PWf#Dl&Pd4TQUv;qTrSe<%Dz5Kcn~tX*I;>1ai|ka)rBh;uR$7Jk5G-k$>A61H zW%tVxJ1a3{vT1i3%r;I%Y!yI}7XB3$u&9lt>cAS%q$|7@& zInKODzf=`XIDyZ#qu7H59DD*()Rc=kg}=q@YQv=+Chqr8q0F% zIJSi-MiDON#cmlUqKa=TFbQi3&08=Tck{Y*H>Trp%)l{Tnf{!kevg@w#cl08UU*K& z47nWhWdSN=F&0V~i=>`+ea*OD?!t0;05`~UxKUo_o!aVh264Sie(a|YsNED z!lxXW%vqy2%Icfa(>H~EQ`t8j*&lOJuYq$76gYpcr^|ha2R=fjLEia9&RA`-e9hCw zwdiZoLbIDm%T0)qB6Hm_+}w`avy{VacAl#&3@K=BX~#Cp>*!}&w4d$JXyFic@9e-= zoL5D!9gKdN4s@>#F1G`XQ|L?k$W|92jp{co271=mrD%-!v{KTE^hTK@rOeZD@} zfrrvV+wrgm%WR$$;H?RdI1|jTS&HcKgGY5w)-<;tELN$?T*;9(Q`| zICZc`-7N~uPo&YjiAVOi2hk>omUkk+(KEmx5idT>`7B?*v%PXYfBR6lf z;fYHAUsYs2Jz-)yp2^nx0ug#lBlLM~fg<(ZjuRdSkXCno_6f9iP;Y9tAUM85z-C0l z@9LgR6llPvQSh85@jX3I8}&`SnECy7{2&XZUWFO29`ko@R{q|Cqgv5WLkv6q{#Xx6 z<6<6f`M`U{Y@*qRhk1{*4;SGPOu^TPi33?zx>;5})rZChFtZ^%qWJjPSJDp$yrw5Sh1lUaQ7aGe)rw#=bLr|^ogoKO7M z64)Yhl|{M2G`Wi3yre%u=JA`+6RWII^Et}uo6kNKt1f`&V=iwPc-Fun{r5Qo{A(K; zK2_bbvx)g!&cjJe1YRTx#BBpJ;n%?lO&7!W4v?4)lL zDyv%D=aCbjown`Z&ef?`E3)X=HX%iOHT870-YbSv*OpCkS^K)i;=q$nD-0pEcRKNl zq@wh%Y~v z3dr|48c^xS2=UXk=%1y2H6&mS@oPU_b_gR&eG2@(6EdtrMri1h4>_~cM^0q4qMM(a z?`xBDj}o2LILZrN>Q2T`-c>9MgDIB}-{W=o_xbiBlhYqC1Nb3xfFI!syu`%sC%76v zWiIeCXTQSu`YQkB$7{?3UZ+33NgsNPG~dQ?{F)))H=Ok@NB)i@-otNs;Wd^k+=D#M ztI&AzarUL!F1eg*%IE1Te$E^wl~SeS(L1t$@l|EFZ^%MfM6QR?r>>J~B5yRWVi(I2 z+I|earIDIVZjWnx<&fv6we7v+{D3T_XBy;XxV`Rc@LTI@U%E*7(sB3Onn$cjg9lokAKMZVlb(1djx(d}y8Ms>SZxAnS>>-I~!P3X2+ zx9fGgLAST+_BP$#q1!ukyIHqebbFU>@7C=O-F`*4_v&`HZts`9E{j D>ZPB( literal 0 HcmV?d00001 diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..998a8ed1cd7f18bf1b70231f5494843e48b5a811 GIT binary patch literal 1646 zcmYjQX;4#F6uyTbizM&@WeJPa1r&+*p*96X5qJ;{@C4q=Lr4_}A;GW(6P6-f5Q6L$ zR8&;z3hq{_;)1wQs7s~lbhKkTE=bLkV5DT;o z7GPUE0o!4FWY!o89Z;RA*r+cmaYXfndXq_SD4K{GbMz*SAxEn(aYFSbt+7n6(F)OO z5vtRgOzK>%Gk>rIiGm5Ur4L(W&re=&uWNs(Tjs(NoQ)Wnd5|lrA5WS?1nU*P#%rhh zU(Bw)YBRVd)Q$OobH^Uo))O@uwZ#ULzQkax5Q@D}8}tp zM7277fmRrd%>3r#MQpj#(|d#5?rRUhFK0=z@}=x7&R@*eyKw!+j(?7oPI;qj4+`s^ zgc*_wkgn)2%9u*;)8?$@o*MKRHI2p`|zugvt8Z8|h@kDsP% zefo?TmZD-~;;pE;#><;d1W7lqNrkP~M` zX-qmdotH7im5j)mfAo}j7tv+(eXCMMe-gh8+X|N>v${;3ftreo3-lUw2|x5i|5LA? zM)~V!vL~-2Li%zJWKxMfgtT(z-M|6&7Nl-$3rxCoDNC8DM&^oQEm5nTP95rijv1p0Wk`UG66YAlEVXHR9J?x`0xZtcxH?YW%EZtq%sO60djP4^JP+{ zX{u0^z=!Qoq|z@+k&XO#2cbxd4Y1f$i%qjwg~iG&7FD75*85Hs@E1NgSj*_BT=@!8 zPv(*NWC2-7+B-N-^cCT91>Lpcr~!qK$nTe^HB|8GqANlmHCWEBx?ZI z0b37L1IQbJYJ&J?AX|VeAOC0LS+cc&zXG-us5XdM2jqJGevxpol_O>Y;C5g)0^I=C zLVlY7Zw96VIHP#{F>YG`Z-wY>5Z?)8zHoVlr2*B~fVTs)1E@-CpLi$WUBH&QTJBwT z1KtBn7tq}x-wWhEzA&$qwL#^6zz2Xm2z1-K!iqzH4+C=qxJql`&~E@A1+E9kZ~4MY zgklSE(lNltfjI$mu9YmZ7w}1-dq8AKNH_)fG%#m?%e4}v^#MK$Y(H>qVAY>F2lzZN z7l1ZeS+Xwzz68nvpnAYZZDGp#4)7qbL%=n>!%4pfd>Pm)Ky`yv#PF+t2fzZzyaxCO PV6Ow${SJ^iHa_S-l<(Q& literal 0 HcmV?d00001 diff --git a/discordit/gradle/wrapper/gradle-wrapper.jar b/discordit/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8bdaf60c75ab801e22807dde59e12a8735a34077 GIT binary patch literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg literal 0 HcmV?d00001 diff --git a/discordit/gradle/wrapper/gradle-wrapper.properties b/discordit/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..2a84e188 --- /dev/null +++ b/discordit/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/discordit/gradlew b/discordit/gradlew new file mode 100644 index 00000000..ef07e016 --- /dev/null +++ b/discordit/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/discordit/gradlew.bat b/discordit/gradlew.bat new file mode 100644 index 00000000..db3a6ac2 --- /dev/null +++ b/discordit/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/discordit/settings.gradle b/discordit/settings.gradle new file mode 100644 index 00000000..955baf54 --- /dev/null +++ b/discordit/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'discordit' \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java b/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java new file mode 100644 index 00000000..366f80c0 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java @@ -0,0 +1,229 @@ +package com.sprint.mission.discodeit; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.repository.MessageRepository; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.repository.file.FileChannelRepository; +import com.sprint.mission.discodeit.repository.file.FileMessageRepository; +import com.sprint.mission.discodeit.repository.file.FileUserRepository; +import com.sprint.mission.discodeit.service.ChannelService; +import com.sprint.mission.discodeit.service.UserService; +import com.sprint.mission.discodeit.service.basic.BasicChannelService; +import com.sprint.mission.discodeit.service.basic.BasicMessageService; +import com.sprint.mission.discodeit.service.basic.BasicUserService; +import com.sprint.mission.discodeit.service.file.FileUserService; +import com.sprint.mission.discodeit.service.jcf.JCFChannelService; +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.service.MessageService; +import com.sprint.mission.discodeit.service.jcf.JCFMessageService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +import static com.sprint.mission.discodeit.entity.ChannelType.PUBLIC; + + +public class JavaApplication { + static void userCRUDTest(UserService userService) { + System.out.println("--유저 생성 테스트--"); + // 생성 + User user = userService.create("서현하", "hhh@naver.com", "010-2222-2222"); + User user2 = userService.create("김춘자", "ccc@naver.com", "010-8888-8888"); + + //User객체 user에다가 userService.create 메서드의 반환값으로 받은 유저객체를 담는다 + + // 조회 + //userService안에 있는 find 메서드의 매개변수로 user.getId를 보낸다 + User foundUser = userService.find(user.getId()); + System.out.println(); + System.out.println("유저 조회(단건)"); + System.out.println("유저 아이디 : " + foundUser.getId()); + System.out.println("이름 : " + foundUser.getDisplayName()); + System.out.println("이메일 : " + foundUser.getEmail()); + System.out.println("휴대폰 번호 : " + foundUser.getPhoneNumber()); + System.out.println("생성 시간 : " + foundUser.getCreatedAt() + "\n"); + + /* userService.find 메서드에 위에서 가져온 user객체의 id를 매개변수로 입력한다 + 반환값으로 가져온 유저객체를 foundUser라는 변수명인 유저변수에 담는다 + 그리고 foundUser가 가지고있는 id와 이름,이메일,전화번호,생성시간을 출력한다 + */ + List foundUsers = userService.findAll(); + System.out.println("유저 조회 건수(다건) : " + foundUsers.size()); + for (int i = 0; i < foundUsers.size(); i++) { + System.out.println("유저 아이디 : " + foundUsers.get(i).getId()); + //foundUsers는userService.findall 메소드를 통해서 받아온 전체유저가 담긴 리스트다 + System.out.println("이름 : " + foundUsers.get(i).getDisplayName()); + System.out.println("이메일 : " + foundUsers.get(i).getEmail()); + System.out.println("휴대폰 번호 : " + foundUsers.get(i).getPhoneNumber()); + System.out.println("생성 시간 : " + foundUsers.get(i).getCreatedAt() + "\n"); + + /* data list를 foundUsers라는 유저객체를 담을 수 있는 list에 담는다 + foundUsers list의 크기를 출력한다(유저 조회건수) + for문으로 foundUsers의 size만큼 반복문을 수행한다 + foundUsers의 i번째에 들어있는 user객체의 값을 출력한다 + */ + + }// 수정 + userService.update(user.getId(), "이말자", "why@naver.com", "010-8282-8282"); + //userService에 있는 업데이트 메소드를 호출 + System.out.println(); + + /* userService.delete메소드에 위에서 생성한 user 변수의 id값을 매개변수로 입력한다 + */ + + + // 삭제 <삭제할 유저의 이름을 출력만한다> + System.out.println(user.getDisplayName() + " 유저를 삭제합니다" + "\n"); + userService.delete(user.getId()); + //매개변수 Id + /* user service에 findall메소드를 통해서 유저삭제이후 list를 새로 반환받는다 + for문 안에서 유저삭제이후 list를 돌리면서 해당 list의 유저가 가지고있는 값을 출력한다 + */ + List foundUsersAfterDelete = userService.findAll(); + + System.out.println("유저 조회 건수: " + foundUsersAfterDelete.size()); + for (int i = 0; i < foundUsersAfterDelete.size(); i++) { + System.out.println("유저 아이디 : " + foundUsersAfterDelete.get(i).getId()); + System.out.println("이름 : " + foundUsersAfterDelete.get(i).getDisplayName()); + System.out.println("이메일 : " + foundUsersAfterDelete.get(i).getEmail()); + System.out.println("휴대폰 번호 : " + foundUsersAfterDelete.get(i).getPhoneNumber()); + System.out.println("생성 시간 : " + foundUsersAfterDelete.get(i).getCreatedAt() + "\n"); + } //get(i) i번째, + + } + + static void channelCRUDTest(ChannelService channelService) { + // 생성 + /* 입력값으로 채널을 생성하고 새 채널을 만들어서 channel객체를 담는 리스트에 + 넣어서 리턴값으로 채널을 반환해 다시 변수에 넣는다 + */ + System.out.println("-- 채널 생성 테스트 --"); + System.out.println(); + Channel channel = channelService.create("주의사항",PUBLIC); + Channel channel2 = channelService.create("자유 게시판",PUBLIC); + System.out.println(); + + + // 조회 + //생성한 채널중 첫번째로 생성한 채널의 객체를 가져와서 출력했다 + Channel foundChannel = channelService.find(channel.getId()); + System.out.println("채널 조회(단건): " + foundChannel.getId()); + System.out.println("채널 이름 : " + channel.getDisplayName()); + System.out.println(); + + // list 개체를 담아서 변수이름 foundChannels를 선언하고 findAll메소드를 이용 + List foundChannels = channelService.findAll(); + System.out.println("채널 조회(다건): " + foundChannels.size()); + for (int i = 0; i < foundChannels.size(); i++) { + System.out.println("채널 이름 : " + foundChannels.get(i).getDisplayName()); + + } + // int i를 0으로 선언하고 i가 파운드채널스 리스트의 크기보다 작으면 for문을 이용해서 + // foundChannels의 list값을get(i) + // 수정 + System.out.println(); + System.out.println("수정 전 이름 : " + channel.getDisplayName()); + channelService.update(channel.getId(), "공지"); + System.out.println("수정 후 이름 : " + channel.getDisplayName()); + System.out.println("수정 시간 : " + channel.getUpdatedAt()); + + // 삭제 + //삭제한 후에 남아있는 채널이 담긴 리스트에 삭제하고 싶은 리스트를 없앤 다음에 리스트 가져옴 + channelService.delete(channel.getId()); + List foundChannelsAfterDelete = channelService.findAll(); + System.out.println(channel.getDisplayName() + " 채널을 삭제합니다" + "\n"); + System.out.println("\n채널 삭제 후 남은 목록"); + System.out.println("채널 삭제: " + foundChannelsAfterDelete.size()); + + for (int i = 0; i < foundChannelsAfterDelete.size(); i++) { + System.out.println("남은 채널 아이디 : " + foundChannelsAfterDelete.get(i).getId()); + System.out.println("남은 이름 : " + foundChannelsAfterDelete.get(i).getDisplayName()); + System.out.println(); + System.out.println("---------------------------"); + System.out.println(); + } + } + + static void messageCRUDTest(MessageService messageService) { + // 생성 + UUID channelId = UUID.randomUUID(); + UUID authorId = UUID.randomUUID(); + Message message = messageService.create("안녕하세요.", channelId, authorId); + System.out.println("메시지 생성: " + message.getId()); + // 조회 + Message foundMessage = messageService.find(message.getId()); + System.out.println("메시지 조회(단건)\n메세지 아이디 : " + foundMessage.getId()+ "\n메세지 내용 : " + foundMessage.getContent() +"\n"); + List foundMessages = messageService.findAll(); + System.out.println("메시지 조회(다건): " + foundMessages.size()); + for(int i = 0; i < foundMessages.size(); i++) { + System.out.println("메세지 내용 : " + foundMessages.get(i).getContent()); + } + // 수정 + Message updatedMessage = messageService.update(message.getId(), "정말 힘들었습니다."); + System.out.println("메시지 수정 : " + updatedMessage.getContent()); + // 삭제 + messageService.delete(message.getId()); + List foundMessagesAfterDelete = messageService.findAll(); + System.out.println("메시지 삭제 : " + foundMessagesAfterDelete.size()); + } + + static User setupUser(UserService userService) { + User user = userService.create("woody", "woody@codeit.com", "woody1234"); + return user; + } + + static Channel setupChannel(ChannelService channelService) { + Channel channel = channelService.create("공지",ChannelType.PUBLIC); + return channel; + } + + static void messageCreateTest(MessageService messageService, Channel channel, User author) { + Message message = messageService.create("안녕하세요.", channel.getId(), author.getId()); + System.out.println("메시지 생성: " + message.getId()); + } + + public static void main(String[] args) { + + // 서비스 초기화 + UserRepository userRepository = new FileUserRepository(); + ChannelRepository channelRepository = new FileChannelRepository(); + MessageRepository messageRepository = new FileMessageRepository(); + UserService userService = new FileUserService(); + ChannelService channelService = new JCFChannelService(); + MessageService messageService = new JCFMessageService(); + MessageService messageService2 = new BasicMessageService(userRepository,channelRepository); + + + //테스트 + userCRUDTest(userService); + channelCRUDTest(channelService); + messageCRUDTest(messageService); + System.out.println(); + + + try { + User user = userRepository.save(new User("woody", "woody@codeit.com", "1234")); + Channel channel = channelRepository.save(new Channel("공지",PUBLIC)); + + messageService.create("안녕하세요!", channel.getId(), user.getId()); + System.out.println("메시지 생성 성공!"); + + UUID fakeId = UUID.randomUUID(); + messageService.create("가짜 유저의 메시지", channel.getId(), fakeId); + + } catch (NoSuchElementException e) { + System.out.println("검증 실패 (정상): " + e.getMessage()); + } + + // 셋업 + User user = setupUser(userService); + Channel channel = setupChannel(channelService); + // 테스트 + messageCreateTest(messageService, channel, user); + } +} + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java new file mode 100644 index 00000000..fc3e79eb --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.entity; + +import java.util.List; +import java.io.Serializable; +import java.util.UUID; + + +public class Channel implements Serializable { + private static final long serialVersionUID = 1L; + + private final UUID id; + private String displayName; + private Long createdAt; + private Long updatedAt; + private ChannelType type; + + + public Channel(String displayName,ChannelType type) { + this.id = UUID.randomUUID(); + this.displayName = displayName; + long now = System.currentTimeMillis(); + this.createdAt = now; + this.updatedAt = now; + this.type = type; + + } + public void update(String displayName) { + this.displayName = displayName; + } + + public UUID getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public void setDisplayname(String displayName) { + this.displayName = displayName; + } + + public Long getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Long createdAt) { + this.createdAt = createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Long updatedAt) { + this.updatedAt = updatedAt; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } +} + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java new file mode 100644 index 00000000..15b39978 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java @@ -0,0 +1,8 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; + +public enum ChannelType implements Serializable { + PUBLIC; + private static final long serialVersionUID = 1L; +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java new file mode 100644 index 00000000..efb99b63 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java @@ -0,0 +1,31 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.util.UUID; + +public class Message implements Serializable { + private static final long serialVersionUID = 1L; + + private UUID id; + private String content; + private UUID channelId; + private UUID authorId; + + + public Message(String content, UUID channelId, UUID authorId) { + this.id = UUID.randomUUID(); + this.content = content; + this.channelId = channelId; + this.authorId = authorId; + } + + public void update(String content) { this.content = content; } + + public UUID getId() { return id; } + + public String getContent() { return content; } + + public void setContent(String content) { + this.content = content; + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java new file mode 100644 index 00000000..1a68f3e4 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java @@ -0,0 +1,75 @@ +package com.sprint.mission.discodeit.entity; + +import java.io.Serializable; +import java.util.UUID; + +/* User객체에 들어갈 정보를 private변수 선언을 한다 +public User 입력값(매개변수)을 입력한다 +유저객체의 변수에 입력변수(매개변수)의 값을 입력한다 +UUID부터 메서드들은 리턴값을 반환한다 + */ + +public class User implements Serializable { + private static final long serialVersionUID = 1L; + + private UUID id; + private String displayName; + private String email; + private String phoneNumber; + private Long createdAt; + private Long updatedAt; + + public User(String displayName, String email, String phoneNumber) { + this.id = UUID.randomUUID(); + this.displayName = displayName; + this.email = email; + this.phoneNumber = phoneNumber; + long now = System.currentTimeMillis(); + this.createdAt = now; + this.updatedAt = now; + } + // + public void update(String displayName, String email, String phoneNumber) { + this.displayName = displayName; + this.email = email; + this.phoneNumber = phoneNumber; + this.updatedAt = System.currentTimeMillis(); + } + + public UUID getId() { + return id; + } + + public String getDisplayName() { + return displayName; + } + + public String getEmail() { + return email; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public Long getCreatedAt() { + return createdAt; + } + + public Long getUpdatedAt() { + return updatedAt; + } + + public String toString() { + return "User [이름=" + displayName + ", 이메일=" + email + ", 전화번호=" + phoneNumber + "]"; + } + + //TODO 메서드 추가 + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public void setEmail(String email) { + this.email = email; + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java new file mode 100644 index 00000000..d416ad92 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java @@ -0,0 +1,19 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.Channel; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface ChannelRepository { + + Channel save(Channel channel); + + Optional findById(UUID id); + + List findAll(); + + boolean existsById(UUID id); + + void deleteById(UUID id); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java new file mode 100644 index 00000000..ce21a9b8 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java @@ -0,0 +1,25 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.Message; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface MessageRepository { + + Message save(Message message); + + Optional findById(UUID id); + + List findAll(); + + boolean existsById(UUID id); + + void deleteById(UUID id); + +} + + + + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java new file mode 100644 index 00000000..4e067f7d --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java @@ -0,0 +1,20 @@ +package com.sprint.mission.discodeit.repository; + +import com.sprint.mission.discodeit.entity.User; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface UserRepository { + + User save(User user); + + Optional findById(UUID id); + + List findAll(); + + boolean existsById(UUID id); + + void deleteById(UUID id); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java new file mode 100644 index 00000000..a2a02855 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java @@ -0,0 +1,62 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.repository.ChannelRepository; + +import java.io.*; +import java.util.*; + +public class FileChannelRepository implements ChannelRepository { + private final String fileName = "channels.dat"; // 채널 데이터 저장 파일명 + + @Override + public Channel save(Channel channel) { + List channels = findAll(); + channels.removeIf(c -> c.getId().equals(channel.getId())); + channels.add(channel); + + saveAllToFile(channels); + return channel; + } + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(channel -> channel.getId().equals(id)) + .findFirst(); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + File file = new File(fileName); + if (!file.exists() || file.length() == 0) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + @Override + public boolean existsById(UUID id) { + return findById(id).isPresent(); + } + + @Override + public void deleteById(UUID id) { + List channels = findAll(); + if (channels.removeIf(channel -> channel.getId().equals(id))) { + saveAllToFile(channels); + } + } + + private void saveAllToFile(List channels) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(channels); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java new file mode 100644 index 00000000..c3cf78dd --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java @@ -0,0 +1,65 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.io.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class FileMessageRepository implements MessageRepository { + private final String fileName = "messages.dat"; + + @Override + public Message save(Message message) { + List messages = new ArrayList<>(findAll()); + messages.removeIf(m -> m.getId().equals(message.getId())); + messages.add(message); + + saveAllToFile(messages); + return message; + } + + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(message -> message.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() { + File file = new File(fileName); + if (!file.exists()) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) { + List messages = new ArrayList<>(findAll()); + if (messages.removeIf(m -> m.getId().equals(id))) { + saveAllToFile(messages); + } + } + + private void saveAllToFile(List messages) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(messages); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java new file mode 100644 index 00000000..3b988100 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.repository.file; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; + +import java.io.*; +import java.util.*; + +public class FileUserRepository implements UserRepository { + private final String fileName = "users.dat"; + + @Override + public User save(User user) { + List users = findAll(); + users.removeIf(u -> u.getId().equals(user.getId())); + users.add(user); + + saveAllToFile(users); + return user; + } + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(user -> user.getId().equals(id)) + .findFirst(); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + File file = new File(fileName); + if (!file.exists()) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + @Override + public boolean existsById(UUID id) { + return findById(id).isPresent(); + } + + @Override + public void deleteById(UUID id) { + List users = findAll(); + if (users.removeIf(user -> user.getId().equals(id))) { + saveAllToFile(users); + } + } + + // 파일 저장을 위한 헬퍼 메서드 + private void saveAllToFile(List users) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(users); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java new file mode 100644 index 00000000..c5c49b3a --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java @@ -0,0 +1,39 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.repository.ChannelRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class JCFChannelRepository implements ChannelRepository { + private final List channels = new ArrayList<>(); + + @Override + public Channel save(Channel channel) { + channels.removeIf(c -> c.getId().equals(channel.getId())); + channels.add(channel); + return channel; + } + + @Override + public Optional findById(UUID id) { + return channels.stream() + .filter(c -> c.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() {return new ArrayList<>(channels);} + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) {channels.removeIf(c -> c.getId().equals(id));} + +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java new file mode 100644 index 00000000..2ce378ac --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java @@ -0,0 +1,39 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class JCFMessageRepository implements MessageRepository { + private final List messages = new ArrayList<>(); + + @Override + public Message save(Message message) { + messages.removeIf(m -> m.getId().equals(message.getId())); + messages.add(message); + return message; + } + + @Override + public Optional findById(UUID id) { + return messages.stream() + .filter(m -> m.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() {return new ArrayList<>(messages);} + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) {messages.removeIf(m -> m.getId().equals(id));} + +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java new file mode 100644 index 00000000..4a547df3 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java @@ -0,0 +1,38 @@ +package com.sprint.mission.discodeit.repository.jcf; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class JCFUserRepository implements UserRepository { + private final List users = new ArrayList<>(); + + @Override + public User save(User user) { + users.removeIf(u -> u.getId().equals(user.getId())); + users.add(user); + return user; + } + + @Override + public Optional findById(UUID id) { + return users.stream() + .filter(user -> user.getId().equals(id)) + .findFirst(); + } + + @Override + public List findAll() {return new ArrayList<>(users);} + + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + + @Override + public void deleteById(UUID id) {users.removeIf(u -> u.getId().equals(id));} +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java new file mode 100644 index 00000000..de68c7b0 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java @@ -0,0 +1,22 @@ +package com.sprint.mission.discodeit.service; + + +import com.sprint.mission.discodeit.entity.Channel; // 아까 만든 Channel 클래스 가져오기 +import com.sprint.mission.discodeit.entity.ChannelType; + +import java.util.List; +import java.util.UUID; + +public interface ChannelService { + + Channel create(String displayName,ChannelType type); + + Channel find(UUID id); + + List findAll(); + + Channel update(UUID id, String displayName); + + boolean delete(UUID id); + +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java new file mode 100644 index 00000000..afeda909 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java @@ -0,0 +1,19 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.Message; +import java.util.List; +import java.util.UUID; //필요한 함수를 사용하기위해 외부의 라이브러리를 가져온다 + + +public interface MessageService { + + Message create(String content, UUID channelId, UUID authorId); + + Message find(UUID id); + + List findAll(); + + Message update(UUID id, String content); + + boolean delete(UUID id); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java new file mode 100644 index 00000000..99afe3b6 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -0,0 +1,19 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.User; + +import java.util.List; +import java.util.UUID; + +public interface UserService { + + User create(String username, String email, String password); + + User find(UUID userId); + + List findAll(); + + User update(UUID userId, String newUsername, String newEmail, String newPassword); + + void delete(UUID userId); +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java new file mode 100644 index 00000000..a48f9de2 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java @@ -0,0 +1,23 @@ +package com.sprint.mission.discodeit.service; + +import com.sprint.mission.discodeit.entity.User; +import java.util.List; +import java.util.UUID; + +public interface UserService2 { + + User find(UUID id); + + List findAll(); + + void update(UUID id,String displayName, String email, String phoneNumber); + + boolean delete(UUID id); + + User create(String displayName, String email, String phoneNumber); +} + + +/* UserService라는 interface안에 메서드 빈상자를 만들고 상자의 이름이랑 입력값만 지정해둔 상태고 +이 빈상자를 가지고 JCFUserService로 들고간다 + */ \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java new file mode 100644 index 00000000..54711331 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java @@ -0,0 +1,51 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.service.ChannelService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicChannelService implements ChannelService { + private final ChannelRepository channelRepository; + + public BasicChannelService(ChannelRepository channelRepository) { + this.channelRepository = channelRepository; + } + + @Override + public Channel create(String displayName,ChannelType type) { + Channel channel = new Channel(displayName,type); + return channelRepository.save(channel); + } + + @Override + public Channel find(UUID id) { + return channelRepository.findById(id) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); + } + + @Override + public List findAll() { + return channelRepository.findAll(); + } + + @Override + public Channel update(UUID id, String displayName) { + Channel channel = channelRepository.findById(id) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); + channel.update(displayName); + return channelRepository.save(channel); + } + + @Override + public boolean delete(UUID id) { + if (!channelRepository.existsById(id)) { + throw new NoSuchElementException("Channel with id " + id + " not found"); + } + return false; + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java new file mode 100644 index 00000000..ff1c6073 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.ChannelRepository; +import com.sprint.mission.discodeit.repository.MessageRepository; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.service.MessageService; + +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicMessageService implements MessageService { + private final List data = new ArrayList<>(); + private final UserRepository userRepository; + private final ChannelRepository channelRepository; + + public BasicMessageService(UserRepository userRepository, ChannelRepository channelRepository) { + this.userRepository = userRepository; + this.channelRepository = channelRepository; + } + + @Override + public Message create(String content, UUID channelId, UUID authorId) { + if (!userRepository.existsById(authorId)) { + throw new NoSuchElementException("존재하지 않는 유저(authorId)입니다."); + } + if (!channelRepository.existsById(channelId)) { + throw new NoSuchElementException("존재하지 않는 채널(channelId)입니다."); + } + Message message = new Message(content, channelId, authorId); + data.add(message); + return message; + } + + @Override + public Message find(UUID id) { + return data.stream() + .filter(m -> m.getId().equals(id)) + .findFirst() + .orElse(null); + } + + @Override + public List findAll() {return new ArrayList<>(data);} + + @Override + public Message update(UUID id, String content) { + Message message = find(id); + if (message != null) { + message.setContent(content); + } + return message; + } + @Override + public boolean delete(UUID id) { + return data.removeIf(m -> m.getId().equals(id)); + } +} + + + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java new file mode 100644 index 00000000..cc85037e --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -0,0 +1,48 @@ +package com.sprint.mission.discodeit.service.basic; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.service.UserService; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + +public class BasicUserService implements UserService { + private final UserRepository userRepository; + + public BasicUserService(UserRepository userRepository) { + this.userRepository = userRepository; + } + + @Override + public User create(String username, String email, String password) { + User user = new User(username, email, password); + return userRepository.save(user); + } + + @Override + public User find(UUID userId) { + return userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + } + + @Override + public List findAll() { return userRepository.findAll();} + + @Override + public User update(UUID userId, String newUsername, String newEmail, String newPassword) { + User user = userRepository.findById(userId) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + user.update(newUsername, newEmail, newPassword); + return userRepository.save(user); + } + + @Override + public void delete(UUID userId) { + if (!userRepository.existsById(userId)) { + throw new NoSuchElementException("User with id " + userId + " not found"); + } + userRepository.deleteById(userId); + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java new file mode 100644 index 00000000..ec78f9e5 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java @@ -0,0 +1,134 @@ +package com.sprint.mission.discodeit.service.file; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.service.ChannelService; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.UUID; + +public class FileChannelService implements ChannelService { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileChannelService() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", Channel.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { return DIRECTORY.resolve(id + EXTENSION); } + + @Override + public Channel create(String displayName,ChannelType type) { + Channel channel = new Channel(displayName,type); + Path path = resolvePath(channel.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(channel); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return channel; + } + + @Override + public Channel find(UUID id) { + Channel channelNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + channelNullable = (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + return Optional.ofNullable(channelNullable) + .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public Channel update(UUID id, String displayName) { + Channel channel = find(id); + channel.setDisplayName(displayName); + save(channel); + return null; + } + + @Override + public boolean delete(UUID id) { + Path path = resolvePath(id); + + if (Files.notExists(path)) { + throw new NoSuchElementException("Channel with id " + id + " not found"); + } + try { + Files.delete(path); + return true; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private void save(Channel channel) { + Path path = resolvePath(channel.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(channel); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private Channel readFromFile(Path path) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (Channel) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java new file mode 100644 index 00000000..4dfc75ef --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java @@ -0,0 +1,60 @@ +package com.sprint.mission.discodeit.service.file; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.repository.MessageRepository; + +import java.io.*; +import java.util.*; + +public class FileMessageRepository implements MessageRepository { + private final String fileName = "messages.dat"; + + @Override + public Message save(Message message) { + List messages = findAll(); + messages.removeIf(m -> m.getId().equals(message.getId())); + messages.add(message); + + saveAllToFile(messages); + return message; + } + + @Override + public Optional findById(UUID id) { + return findAll().stream() + .filter(message -> message.getId().equals(id)) + .findFirst(); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + File file = new File(fileName); + if (!file.exists()) return new ArrayList<>(); + + try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { + return (List) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + return new ArrayList<>(); + } + } + + @Override + public boolean existsById(UUID id) {return findById(id).isPresent();} + + @Override + public void deleteById(UUID id) { + List messages = findAll(); + if (messages.removeIf(message -> message.getId().equals(id))) { + saveAllToFile(messages); + } + } + + private void saveAllToFile(List messages) { + try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { + oos.writeObject(messages); + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java new file mode 100644 index 00000000..d3f77c7c --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java @@ -0,0 +1,133 @@ +package com.sprint.mission.discodeit.service.file; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.UserService; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Optional; +import java.util.UUID; + +public class FileUserService implements UserService { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileUserService() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", User.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } + + @Override + public User create(String username, String email, String password) { + User user = new User(username, email, password); + Path path = resolvePath(user.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return user; + } + + @Override + public User find(UUID userId) { + User userNullable = null; + Path path = resolvePath(userId); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + return Optional.ofNullable(userNullable) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + } + + @Override + public List findAll() { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public User update(UUID userId, String newUsername, String newEmail, String newPassword) { + User userNullable = null; + Path path = resolvePath(userId); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + userNullable = (User) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + User user = Optional.ofNullable(userNullable) + .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); + user.update(newUsername, newEmail, newPassword); + + try( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(user); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return user; + } + + @Override + public void delete(UUID userId) { + Path path = resolvePath(userId); + if (Files.notExists(path)) { + throw new NoSuchElementException("User with id " + userId + " not found"); + } + try { + Files.delete(path); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java new file mode 100644 index 00000000..18b91739 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java @@ -0,0 +1,63 @@ +package com.sprint.mission.discodeit.service.jcf; + +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.service.ChannelService; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class JCFChannelService implements ChannelService { + private final List channels = new ArrayList<>(); + + @Override + public Channel create(String displayName,ChannelType type) { + + try { + Channel channel = new Channel(displayName,type); + channels.add(channel); + System.out.println("채널 등록 성공 : " + displayName); + + return channel; + + } catch (Exception e) { + System.out.println("채널 등록 실패"); + return null; + + } + } + + @Override + public Channel find(UUID id) { + for (Channel channel : channels) { + if (channel.getId() == id){ + return channel; + } + } + return null; + } + + @Override + public List findAll() {return new ArrayList<>(channels);} + /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 + 관리하는 원본 list에 영향을 주지 않을려고 했다 + findall메서드의 + */ + + + @Override + public Channel update(UUID id, String displayName) { + Channel channel = find(id); + if (channel != null) { + channel.setDisplayname(displayName); //기존에는 이것만 있음 + channel.setUpdatedAt(System.currentTimeMillis()); //팀장님이 권유해주신 시간추가 + } + return channel; + } + + @Override + public boolean delete(UUID id) { + boolean bool = channels.removeIf(channel -> id == channel.getId()); + return bool; + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java new file mode 100644 index 00000000..e9cdc1ef --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java @@ -0,0 +1,45 @@ +package com.sprint.mission.discodeit.service.jcf; + +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.service.MessageService; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class JCFMessageService implements MessageService { + private final List data = new ArrayList<>(); + + @Override + public Message create(String content, UUID channelId, UUID authorId) { + Message message = new Message(content, channelId, authorId); + data.add(message); + return message; + } + + @Override + public Message find(UUID id) { + return data.stream() + .filter(m -> m.getId().equals(id)) + .findFirst() + .orElse(null); + } + + @Override + public List findAll() { + return new ArrayList<>(data); + } + + @Override + public Message update(UUID id, String content) { + Message message = find(id); + if (message != null) { + message.setContent(content); + } + return message; + } + + @Override + public boolean delete(UUID id) { + return data.removeIf(m -> m.getId().equals(id)); + } +} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java new file mode 100644 index 00000000..997f78b5 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java @@ -0,0 +1,72 @@ +package com.sprint.mission.discodeit.service.jcf; + +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.UserService2; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +//구현체 생성 +public class JCFUserService implements UserService2 { + private final List data = new ArrayList<>(); + //User만 담을 수 있는 전용 창고느낌, 관리용 list data에 저장하는 시스템 구축 + //ArrayList 데이터를 쌓아두기만 한상태 중복없이 구분하려면 고유id필요 + + @Override + //create(메서드) 저장,만들다 + // 매개변수(이름,이메일,폰번호)=> 사용자 생성을 위한 기초데이터 객체 User /캡슐화 + public User create(String displayName, String email, String phoneNumber) { + + try { + User user = new User(displayName, email, phoneNumber); + data.add(user); + System.out.println("유저 등록 성공 : " + displayName); + return user; + + } catch (Exception e) { + System.out.println("유저 등록 실패 : " ); + return null; + } + // 리스트에 넣는도중 메모리가 찼거나 예상못한 에러가 나타날 수 있기때문에 try catch를 사용함(보호,위험대비) + + } + // get가져오다 set설정하다 + // *for문 User 객체를 담고있는 data 리스트를 가져와서 하나하나 for문으로 꺼내서 User타입의 user안에 넣는다 + // 만약에 해당 user의 id값과 매개변수인 id값이 같을때 해당 user를 반환한다 + // 해당유저가 없을시 null(값이 없음) 반환한다 + @Override + public User find(UUID id) { + for(User user : data) { + if (user.getId() == id){ + return user; + } + } + return null; + } + + //위에서 선언한 데이터 리스트를 반환한다 + @Override + public List findAll() {return new ArrayList<>(data);} + + //JavaApplication수정한 내용들이 update에 매개변수로 들어간다 + @Override + public void update(UUID id,String displayName, String email, String phoneNumber) { + for (User user : data) { + if (user.getId() == id) { + user.update(displayName, email, phoneNumber); + //user.update는 Class User에 있는 update 메소드를 호출함 + } + } + } + //데이터를 삭제할건데 조건에 맞으면 + //데이터안에 있는 유저객체들을 user로 선언을 하고 매개변수로 받은 id가 데이터안에있는 해당유저의 아이디와 같을시 삭제한다. + //삭제여부를 bool안에 저장한다 + public boolean delete(UUID id) { + boolean bool = data.removeIf(user -> id == user.getId()); + + return bool; + } +} + + diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java new file mode 100644 index 00000000..012ffa86 --- /dev/null +++ b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java @@ -0,0 +1,80 @@ +//package service.jcf; +// +//import entity.User; +//import service.UserService; +//import java.util.ArrayList; +//import java.util.List; +// +//public class JCFUserService2 { +// private final List data = new ArrayList<>(); +// +// +// public User create(String displayName, String email, String phoneNumber) { +// //try안에 있는 오류를 catch가 잡음 +// try { +// User user = new User(displayName, email, phoneNumber); +// data.add(user); +// System.out.println("유저 등록 성공"); +// return user; +// +// } catch (Exception e) { +// System.out.println("유저 등록 실패"); +// return null; +// } +// +// } +///* UserService에서 갖고온 상자를 create라는 상자(메서드)안에 내용을 체워준다. +//1.입력한 값으로 새유저 객체를 만들고 유저 객체를 담는 data list에 추가한다 +//메서드 수행 반환값으로 새로 등록한 유저객체를 반환한다 +//수행중 에러가 발생시 catch부분 안에서 null값을 반환한다 /등록 +//*/ +// +// +// +// +// public User find(String id) { +// return data.stream() +// .filter(user -> user.getId().toString().equals(id)) +// .findFirst() +// .orElse(null); +// } +// /* 4. 유저객체들이 담겨있는 list에서 매개변수로 받은 id를 가진 user객체중 가장 첫번째 +// 유저객체를 반환한다. 이 조건에 맞는 user가 없으면 null을 반환한다 +// */ +// +// +// public List findAll() {return new ArrayList<>(data); +// } +// // 6 user객체가 담겨진 data list를 반환한다 +// /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 +// 관리하는 원본 list에 영향을 주지 않을려고 했다 +// */ +// +// /* 9 update 메서드에 수정할 유저의 이름과 새이름을 매개변수로 입력받는다 +// 그리고 모든 유저정보가 들어있는 data list를 for문 안에서 돌린다 +// */ +// +// public void update(String before, String after) { +// for (int i = 0; i < data.size(); i++) { +// +// if (data.get(i).getDisplayName().equals(before)) { +// //10 만약 data list의 i번째 유저의 이름이 입력변수 before와 똑같다면 수정전 이름을 출력한다 +// +// System.out.println("수정전 이름 : " + data.get(i).getDisplayName()); +// +// data.get(i).setDisplayName(after); +// //11 data list에 i번째 유저의 이름을 입력변수 after로 덮어씌운다 +// System.out.println("수정후 이름 : " + data.get(i).getDisplayName()); +// //12 수정한 이름이 제대로 적용 되었는지 한번 더 data list의 i번째 유저의 이름을 출력한다 +// } +// +// } +// } +// +// +// public boolean delete(String id) { +// return data.removeIf(user -> user.getId().toString().equals(id)); +// } //14 모든 유저객체가 담겨있는 data list의 user객체중 매개변수로 입력받은 id값을 가진 +// // user가 있다면 삭제한다 +// +//} \ No newline at end of file diff --git a/file-data-map/User/3d79be79-29f0-4347-9983-d7d3efcc5e80.ser b/file-data-map/User/3d79be79-29f0-4347-9983-d7d3efcc5e80.ser new file mode 100644 index 0000000000000000000000000000000000000000..401d0d69a0a0a49ec92541a13ca3f781556d275e GIT binary patch literal 445 zcmYL_y-Nc@5XC1K5)(`$YMD+fwAn)iEkrOXXhOP>Mo?Jp)@0>w_i{V=YJy;FtQ8Dc zSXx+#5K!?iu(PlfK?@v9I7y5A+NCvR-gr;Jj6VzR9*UZ&>MQS=gS@L zuxwulYoY4d1D4-JRdWmKvVNlBfxb5xFp_|g6qtX!)xJ(oY+NP)8eTnV1UK@-xAbKC z^`(K3R7}py&MjM#=r`%~NIxBrl7RHK6aGGN4@?7$oMvVky1+{-990g6UHR8Fyw3jP z!^i#h-cs|fIsLi1?jb}gb*6`_04{b`eyYv4uDb1;=Wcl@JK9$x|3nL+uT(-4MSJbj H-qHCF>6eqq literal 0 HcmV?d00001 From 69c5d921e9ecd059854a08e29d42d8e227dfada5 Mon Sep 17 00:00:00 2001 From: seo hyeon ha Date: Wed, 11 Feb 2026 18:58:48 +0900 Subject: [PATCH 04/12] 2026-02-11 --- .idea/compiler.xml | 1 + .../discodeit/controller/AuthController.java | 23 +++++- .../controller/ChannelContentController.java | 4 - .../controller/ChannelController.java | 72 ++++++++++++++++++ .../controller/MassageController.java | 4 - .../controller/MessageController.java | 27 +++++++ .../discodeit/controller/UserController.java | 33 ++++++-- .../mission/discodeit/dto/ChannelDto.java | 16 ++++ .../discodeit/dto/UserStatusResponse.java | 10 +-- .../mission/discodeit/entity/UserStatus.java | 2 +- .../repository/ReadStatusRepository.java | 2 +- .../file/FileReadStatusRepository.java | 5 ++ .../jcf/JcfReadStatusRepository.java | 5 ++ .../discodeit/service/ChannelService.java | 3 +- .../discodeit/service/UserService.java | 1 - .../service/basic/BasicAuthService.java | 21 +++-- .../service/basic/BasicChannelService.java | 62 ++++++++++----- .../service/basic/BasicMessageService.java | 1 - .../service/basic/BasicUserService.java | 33 +------- .../11e95555-f8e5-4efd-beae-94b57e1922a9.ser | Bin 0 -> 587 bytes .../69babfb8-cf52-4c61-bee6-32f22c7783a8.ser | Bin 0 -> 556 bytes .../ec8734e4-e5f4-498e-ac56-54675c7fdce3.ser | Bin 0 -> 556 bytes .../0d9aef26-b544-4106-b401-8f4992cf3dc5.ser | Bin 0 -> 515 bytes ... 9c50f222-3d40-4b0a-8c0e-a14596559b12.ser} | Bin 445 -> 399 bytes .../f2e7905b-84df-44c9-837f-5f70a006e426.ser | Bin 0 -> 399 bytes 25 files changed, 238 insertions(+), 87 deletions(-) delete mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelController.java delete mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/ChannelDto.java create mode 100644 file-data-map/Channel/11e95555-f8e5-4efd-beae-94b57e1922a9.ser create mode 100644 file-data-map/Channel/69babfb8-cf52-4c61-bee6-32f22c7783a8.ser create mode 100644 file-data-map/Channel/ec8734e4-e5f4-498e-ac56-54675c7fdce3.ser create mode 100644 file-data-map/Message/0d9aef26-b544-4106-b401-8f4992cf3dc5.ser rename file-data-map/User/{3d79be79-29f0-4347-9983-d7d3efcc5e80.ser => 9c50f222-3d40-4b0a-8c0e-a14596559b12.ser} (57%) create mode 100644 file-data-map/User/f2e7905b-84df-44c9-837f-5f70a006e426.ser diff --git a/.idea/compiler.xml b/.idea/compiler.xml index d78a3d4c..112cd5c2 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,6 +2,7 @@ + diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java index 87024071..a7e89ce3 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/AuthController.java @@ -1,4 +1,25 @@ package com.sprint.mission.discodeit.controller; +import com.sprint.mission.discodeit.dto.LoginRequest; +import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.service.AuthService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/auth") +@RequiredArgsConstructor public class AuthController { -} + private final AuthService authService; + + @PostMapping("/login") + public ResponseEntity login(@RequestBody LoginRequest request) { + User user = authService.login(request); + return ResponseEntity.ok(user); + } + +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java deleted file mode 100644 index 1ecc15e3..00000000 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelContentController.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.sprint.mission.discodeit.controller; - -public class ChannelContentController { -} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelController.java new file mode 100644 index 00000000..c0988e1d --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ChannelController.java @@ -0,0 +1,72 @@ +package com.sprint.mission.discodeit.controller; + +import com.sprint.mission.discodeit.dto.ChannelCreateRequest; +import com.sprint.mission.discodeit.dto.ChannelDto; +import com.sprint.mission.discodeit.dto.ChannelUpdateRequest; +import com.sprint.mission.discodeit.entity.Channel; +import com.sprint.mission.discodeit.service.ChannelService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/api/channel") +@RequiredArgsConstructor +public class ChannelController { + + private final ChannelService channelService; + + @PostMapping("/public") + public ResponseEntity createPublic(@RequestBody ChannelCreateRequest request) { + Channel channel = channelService.createPublic(request); + return ResponseEntity.status(HttpStatus.CREATED).body(channel); + } + + @PostMapping("/private") + public ResponseEntity createPrivate(@RequestBody ChannelCreateRequest request) { + Channel channel = channelService.createPrivate(request); + return ResponseEntity.status(HttpStatus.CREATED).body(channel); + } + + @GetMapping("/{userId}") + public ResponseEntity> findAllByUserId(@PathVariable UUID userId) { + List channels = channelService.findAllByUserId(userId); + return ResponseEntity.ok(channels); + } + + @PatchMapping("/{id}") + public ResponseEntity update( + @PathVariable UUID id, + @RequestBody ChannelUpdateRequest request) { + Channel updatedChannel = channelService.update(id, request); + return ResponseEntity.ok(toDto(updatedChannel)); + } + + @DeleteMapping("/{id}") + public ResponseEntity delete(@PathVariable UUID id) { + channelService.delete(id); + return ResponseEntity.noContent().build(); + } + + private ChannelDto toDto(Channel channel) { + return new ChannelDto( + channel.getId(), + channel.getType(), + channel.getName(), + channel.getDescription(), + new ArrayList<>(), // 참여자 명단은 일단 빈 리스트로 처리 + Instant.now() + ); + } + + @GetMapping + public ResponseEntity> findAll() { + return ResponseEntity.ok(null); + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java deleted file mode 100644 index 5ba7068b..00000000 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MassageController.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.sprint.mission.discodeit.controller; - -public class MassageController { -} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java new file mode 100644 index 00000000..79c25d48 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java @@ -0,0 +1,27 @@ +package com.sprint.mission.discodeit.controller; + + +import com.sprint.mission.discodeit.dto.MessageCreateRequest; +import com.sprint.mission.discodeit.entity.Message; +import com.sprint.mission.discodeit.service.MessageService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/messages") +@RequiredArgsConstructor +public class MessageController { + + private final MessageService messageService; + + @PostMapping + public ResponseEntity send(@RequestBody MessageCreateRequest request) { + Message message = messageService.create(request); + return ResponseEntity.status(HttpStatus.CREATED).body(message); + } +} diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java index 4b4f68d8..951ef2fc 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/UserController.java @@ -57,22 +57,45 @@ private Optional resolveProfileRequest(MultipartFile } @RequestMapping( - path = "/{userId}", // 방 번호 대신 {userId}라는 변수 칸을 만듭니다. + path = "/{userId}", method = RequestMethod.PATCH ) public ResponseEntity update( - @PathVariable UUID userId, // 주소에 담긴 ID를 꺼냅니다. - @RequestBody UserUpdateRequest request // 몸통에 담긴 수정 정보를 꺼냅니다. + @PathVariable UUID userId, + @RequestBody UserUpdateRequest request ) { - // 서비스(요리사)에게 일을 시킵니다. + User updatedUser = userService.update(userId, request); - // 200 OK 상태와 함께 결과물을 보냅니다. return ResponseEntity .status(HttpStatus.OK) .body(updatedUser); } + @RequestMapping( + path = "/{userId}", + method = RequestMethod.DELETE + ) + public ResponseEntity delete(@PathVariable UUID userId) { + userService.delete(userId); + return ResponseEntity.status(HttpStatus.NO_CONTENT).build(); + } + + @RequestMapping(method = RequestMethod.GET) + public ResponseEntity> findAll() { + List users = userService.findAll(); + + return ResponseEntity + .status(HttpStatus.OK) + .body(users); + } + + + + + + + } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/ChannelDto.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/ChannelDto.java new file mode 100644 index 00000000..9f7abc0b --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/ChannelDto.java @@ -0,0 +1,16 @@ +package com.sprint.mission.discodeit.dto; + +import com.sprint.mission.discodeit.entity.ChannelType; + +import java.time.Instant; +import java.util.List; +import java.util.UUID; + +public record ChannelDto( + UUID id, + ChannelType type, + String name, + String description, + List participantIds, // 참여자 명단 + Instant lastMessageAt +) {} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java index ba6a6741..d0983da5 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserStatusResponse.java @@ -13,15 +13,7 @@ public UserStatusResponse(UserStatus userStatus) { userStatus.getUserId().toString(), "haha", userStatus.isOnline(), - userStatus.getUpdatedAt() != null ? userStatus.getUpdatedAt().toString() : "방금 생성됨" - + userStatus.getLastActiveAt() != null ? userStatus.getLastActiveAt().toString() : "기록 없음" ); } } - -/* 상태 주인 유저의 식별 정보, 5분이내 활동여부 계산결과, 마지막으로 활동했던 시각을 문자열로 표현 - UserStatus 엔티티를 통째로 입력받아 DTO 체우고 레코드가 기본으로 가지고 있는 생성자를 다시 호출하여 - 아래 값을 순서대로 집어넣음. - 유저의 고유 ID를 꺼내서 문자열로 변경해서 담기, 엔티티가 계산한 isOnline의 결과값을 true/false에 담기 - 수정된 시각(Instant)을 문자열로 변환 - */ \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java index 88e946b5..edaef440 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/UserStatus.java @@ -14,7 +14,7 @@ public class UserStatus { private Instant updatedAt; private UUID userId; private String type; - private Instant lastActiveAt; //마지막 활동 시간 필드 + private Instant lastActiveAt; public UserStatus(UUID userId, String type) { this.id = UUID.randomUUID(); diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ReadStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ReadStatusRepository.java index 8ceec6e8..5050f455 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ReadStatusRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/ReadStatusRepository.java @@ -7,7 +7,7 @@ import java.util.UUID; public interface ReadStatusRepository { - + List findAllByChannelId(UUID channelId); ReadStatus save(ReadStatus readStatus); Optional findById(UUID id); List findAllByUserId(UUID userId); diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java index e6f0c6f0..80f6bcc1 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java @@ -14,6 +14,11 @@ public class FileReadStatusRepository implements ReadStatusRepository { private final Map database = new ConcurrentHashMap<>(); + @Override + public List findAllByChannelId(UUID channelId) { + return List.of(); + } + @Override public ReadStatus save(ReadStatus readStatus) { database.put(readStatus.getId(), readStatus); diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java index c84bda25..a228985c 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java @@ -12,6 +12,11 @@ public class JcfReadStatusRepository implements ReadStatusRepository { private final Map database = new HashMap<>(); + @Override + public List findAllByChannelId(UUID channelId) { + return List.of(); + } + @Override public ReadStatus save(ReadStatus readStatus) { database.put(readStatus.getId(), readStatus); diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java index e47ca48f..87996bef 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java @@ -1,6 +1,7 @@ package com.sprint.mission.discodeit.service; import com.sprint.mission.discodeit.dto.ChannelCreateRequest; +import com.sprint.mission.discodeit.dto.ChannelDto; import com.sprint.mission.discodeit.dto.ChannelUpdateRequest; import com.sprint.mission.discodeit.entity.Channel; import com.sprint.mission.discodeit.entity.ChannelType; @@ -12,7 +13,7 @@ public interface ChannelService { Channel createPublic(ChannelCreateRequest request); Channel createPrivate(ChannelCreateRequest request); Channel find(UUID id); - List findAllByUserId(UUID userId); + List findAllByUserId(UUID userId); Channel update(UUID id, ChannelUpdateRequest request); void delete(UUID id); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java index 8316d782..2fabfc1c 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -8,7 +8,6 @@ import java.util.UUID; public interface UserService { - void updateStatus(UUID userId, boolean online); User create(UserCreateRequest request, Optional profileRequest); UserStatusResponse find(UUID userId); List findAll(); diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicAuthService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicAuthService.java index 9202cf70..62dc0811 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicAuthService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicAuthService.java @@ -2,8 +2,11 @@ import com.sprint.mission.discodeit.dto.LoginRequest; import com.sprint.mission.discodeit.entity.User; +import com.sprint.mission.discodeit.entity.UserStatus; import com.sprint.mission.discodeit.repository.UserRepository; +import com.sprint.mission.discodeit.repository.UserStatusRepository; import com.sprint.mission.discodeit.service.AuthService; +import com.sprint.mission.discodeit.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -14,16 +17,20 @@ @RequiredArgsConstructor public class BasicAuthService implements AuthService { private final UserRepository userRepository; + private final UserStatusRepository userStatusRepository; @Override public User login(LoginRequest request) { - - return userRepository.findByUsername(request.username()) - .filter(user -> user.getPassword().equals(request.password())) + User user = userRepository.findByUsername(request.username()) + .filter(u -> u.getPassword().equals(request.password())) .orElseThrow(() -> new NoSuchElementException("아이디 또는 비밀번호가 일치하지 않습니다.")); + + UserStatus status = userStatusRepository.findByUserId(user.getId()) + .orElseGet(() -> new UserStatus(user.getId())); + + status.update("ONLINE"); + userStatusRepository.save(status); + + return user; } } - -/*findByUsername 메소드를 호출해서 매개변수에 request.username을 넣고 반환된 user를 필터링을 통해 해당 유저의 비밀번호와 -매개변수로 받은 request의 비밀번호가 같을시 true 아니면 오류를 반환한다 - */ \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java index c4d10d6b..3efc8468 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java @@ -1,9 +1,11 @@ package com.sprint.mission.discodeit.service.basic; import com.sprint.mission.discodeit.dto.ChannelCreateRequest; +import com.sprint.mission.discodeit.dto.ChannelDto; import com.sprint.mission.discodeit.dto.ChannelUpdateRequest; import com.sprint.mission.discodeit.entity.Channel; import com.sprint.mission.discodeit.entity.ChannelType; +import com.sprint.mission.discodeit.entity.Message; import com.sprint.mission.discodeit.entity.ReadStatus; import com.sprint.mission.discodeit.repository.ChannelRepository; import com.sprint.mission.discodeit.repository.MessageRepository; @@ -12,9 +14,9 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; +import java.time.Instant; +import java.util.*; + @Service @RequiredArgsConstructor public class BasicChannelService implements ChannelService { @@ -44,18 +46,18 @@ public Channel createPrivate(ChannelCreateRequest request) { } return savedChannel; } -/*매개변수로 ChannelCreateRequest를 받아온다 -channeltype이 private이고 이름과 설명은 null인 새 채널을 만든다 -channelRepository.save 메소드에 channel을 넣고 리턴값으로 받아온 반환값을 savechannel에 담는다 -만약에 매개변수로 받은 request의 memverIds가 null이 아닐때 for문을 실행한다 -for문을 돌면서 각 객체의 UUID, savedChannel.getid(),null로 readStatus를 새로 생성해서 readStatusRepository.save -메서드로 저장한다. 리턴값으로 savedChannel 반환한다 - */ + @Override - public List findAllByUserId(UUID userId) { + public List findAllByUserId(UUID userId) { return channelRepository.findAll().stream() - .filter(channel -> channel.containsUser(userId)) + .filter(channel -> { + if (channel.getType() == ChannelType.PUBLIC) return true; + + return readStatusRepository.findAllByChannelId(channel.getId()).stream() + .anyMatch(rs -> rs.getUserId().equals(userId)); + }) + .map(this::toDto) .toList(); } /*매개변수로 userId를 받아온다. 매개변수로 받아온 userId로 Chnnel에 있는 모든 데이터를 가져와서 스트림 형식으로 바꾼다 @@ -70,12 +72,7 @@ public Channel update(UUID channelId, ChannelUpdateRequest request) { channel.update(request.name(), request.description()); return channelRepository.save(channel); } -/* 매개변수로 channelId와 ChannelUpdaterequest를 받아온다 -channelRepository의 findById메소드에 channelId를 넣고 리턴값으로 반환된 채널객체를 channel에 넣는다 -만약 매개변수로 입력한 ChannelId로 반환된 리턴값이 없으면 오류를 던진다 -channel의 이름과 설명을 request로 받아온 이름과 설명으로 update 메소드를 통해 변경한다 -channelRepository.save메서드의 리턴값을 반환한다 - */ + @Override public void delete(UUID channelId) { if (!channelRepository.existsById(channelId)) { @@ -91,6 +88,31 @@ public Channel find(UUID channelId) { return channelRepository.findById(channelId) .orElseThrow(() -> new NoSuchElementException("Channel with id " + channelId + " not found")); } + + private ChannelDto toDto(Channel channel) { + // 참여자 명단 가져오기 (비공개 채널일 때만 ReadStatus를 뒤져서 가져옴) + List participantIds = new ArrayList<>(); + if (channel.getType().equals(ChannelType.PRIVATE)) { + readStatusRepository.findAllByChannelId(channel.getId()).stream() + .map(ReadStatus::getUserId) + .forEach(participantIds::add); + } + + // 마지막 메시지 시간 찾기 (메시지가 없으면 아주 옛날 시간으로 설정) + Instant lastMessageAt = messageRepository.findAllByChannelId(channel.getId()) + .stream() + .sorted(Comparator.comparing(Message::getCreatedAt).reversed()) + .map(Message::getCreatedAt) + .findFirst() + .orElse(Instant.MIN); + + return new ChannelDto( + channel.getId(), + channel.getType(), + channel.getName(), + channel.getDescription(), + participantIds, + lastMessageAt + ); + } } -//매개변수로 ChannelId를 받아서 channelRepository.findById메서드를 호출하고 리턴값으로 반환된 -//채널이 있으면 그 채널을 반환하고 없을시 오류를 생성한다 \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java index 06720909..c828e1c8 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java @@ -62,7 +62,6 @@ public List findAllByChannelId(UUID channelId) { public Message update(UUID messageId, MessageUpdateRequest request) { Message message = messageRepository.findById(messageId) .orElseThrow(() -> new NoSuchElementException("Message not found")); - message.update(request.content()); return messageRepository.save(message); } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java index e15f15b1..10bdf469 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java @@ -63,7 +63,7 @@ public UserStatusResponse find(UUID userId) { @Override public List findAll() { return userRepository.findAll().stream() - .limit(2) + //.limit(2) .map(user -> find(user.getId())) .toList(); } @@ -91,35 +91,4 @@ public void delete(UUID userId) { userRepository.deleteById(userId); } - @Override - public void updateStatus(UUID userId, boolean online) { - // 1. 창고에서 유저를 찾습니다. 없으면 에러를 냅니다. - User user = userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User not found")); - - // 2. online 값에 따라 유저의 상태를 바꿔줍니다. - if (online) { - user.online(); // 온라인 불 켜기 - } else { - user.offline(); // 온라인 불 끄기 - } - - // 3. 바뀐 상태를 창고(파일)에 저장합니다! - userRepository.save(user); - } - -// @Override -// public User login(LoginRequest request) { -// // 1. 이름으로 유저를 찾습니다. (이름이 틀리면 에러) -// User user = userRepository.findByUsername(request.username()) -// .orElseThrow(() -> new NoSuchElementException("사용자를 찾을 수 없습니다.")); -// -// // 2. 비밀번호가 일치하는지 확인합니다. (비밀번호가 틀리면 에러) -// if (!user.getPassword().equals(request.password())) { -// throw new IllegalArgumentException("비밀번호가 틀렸습니다."); -// } -// -// // 3. 통과하면 유저 정보를 돌려줍니다. -// return user; -// } } diff --git a/file-data-map/Channel/11e95555-f8e5-4efd-beae-94b57e1922a9.ser b/file-data-map/Channel/11e95555-f8e5-4efd-beae-94b57e1922a9.ser new file mode 100644 index 0000000000000000000000000000000000000000..c231d527e4d158cdaaa2dfdc1bd1d00e0c728d28 GIT binary patch literal 587 zcmb7>zf0UP6u{qoJuAnlv^teiD6T?+vqSMGz2l1r*YD_%-Zxw$mt2~>)9*PP2o(go z2nr`f>ELouiU=;Hbaj{h3mxRnxm^k-#veE~LrC(HPu}OfuU9Z=4NO)Wl2~noLL!B= zqM=ACY_*YcfrKj**dlZ9nNqwCVdNqhilI<7oFPwV5MexCWowM0kers3MW%2%hGNQX z)d-D_i7*!K)S0T$3cCMl?n)$5gr_0WL{Xz+7Fp{dg#;90p$yK0Ph58^#Yg`54AkKbQRyg3~P z$n^S1}BHyq{fOg^*Y8q}w(?|D(UYFrMMZm_yyU_@0pk)s!I=f*Rq;axxp2 G=JYl92FQv4 literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/69babfb8-cf52-4c61-bee6-32f22c7783a8.ser b/file-data-map/Channel/69babfb8-cf52-4c61-bee6-32f22c7783a8.ser new file mode 100644 index 0000000000000000000000000000000000000000..429f02005478ecd36c3dbf818f6fa7e5095cdee3 GIT binary patch literal 556 zcmb7>ze__g5XZ02N-0$l9mT~}Nzm0n>JRXhH;7enafp4PMw&DxSNrN9h`PB7I=DMH zIf;mlj)H%Ln~MmpCQVTsy&)v|-hJ;r$;~_TTLY7|rX*Gyp^!*nt!OHe3R`QYTp-~J z1$M~74pWLZAVe;LLITB_;S70NMugF1m+do(LUI}_i%j8c0;QDOnh_eEC&Ea`X)sl% zRdoI8E+rBv!f;SpC>nHqJzjM81Gojc@x|F(JXYHL z?4}QO)BWJY5B_l3_jMspX#`OP1{$1Mtcv=)KwE*5Z2p`w{rEQXG1Wf47WYqgFRKZ2 ztw(>o%Eqvchs};&$1k7RRUhPH$Xjv1Gwp|H=lz=LLj&|5|L4Jdp^p()Zy*5pKOsx1 SC4&@1jZj!wjW^0`OZpqi%e7qq literal 0 HcmV?d00001 diff --git a/file-data-map/Channel/ec8734e4-e5f4-498e-ac56-54675c7fdce3.ser b/file-data-map/Channel/ec8734e4-e5f4-498e-ac56-54675c7fdce3.ser new file mode 100644 index 0000000000000000000000000000000000000000..3d9c32c5e144861a48c58c4e7d1e65e0b6f241f3 GIT binary patch literal 556 zcmb7>KP<#C6vyBFoLnxB2%}hxByA)HiRt`F{4T#i+_{ON?$?~kwO8#serF&OViB8! z!DciW#cns-u(3(3S`}jShNkWJz3+RU_WBKat$~R~TN0~{P)MY(RAG`E|74A z0=r~xgDJ&Z5F!^rA%SAUaE3fBBf@a9$+j6qAvukeMW%2jfxeX6h7lT_C&Ez3X))EL zRdoHDE+rBv!eCH3C|Y!7C7yTp17<>qYd@OETu@umcj>7D+_8e(<}Co{w{RL?ehQP-<~zu_~Ig0&NBQWc%lo>Fau}xw`-O^m;t?{PG^3 zy4J(LUS(rg*TZH952F|N?6L=PG32e-<(c+F?BxBL={*DVAOGjUeW8ybS8pHy_&*^F Tsw0CGM2%2bT8``G+JgQBz3H}; literal 0 HcmV?d00001 diff --git a/file-data-map/Message/0d9aef26-b544-4106-b401-8f4992cf3dc5.ser b/file-data-map/Message/0d9aef26-b544-4106-b401-8f4992cf3dc5.ser new file mode 100644 index 0000000000000000000000000000000000000000..f389700c38550a211d2e6d16c7c1b8da47d49aac GIT binary patch literal 515 zcmZ4UmVvdnh(S9!KUc4~peQr1L@zh9xHvOEPcJ32I5|HhHM2x7HLoPIq*Bi}wYWGj zJ(U3h7?~K@eHeHXOG*-xGjf4SJX4BG7zBK>63Y_xOG`3y^nEgmORRkuI1)=sGV+T& zQ&43?Lp@!9vYg2oiFtXcIi4wn40Q}lJ`C*1`FSNk<4PEWAZFzx=B4WgmjKU1w>W=b@3r|f!w`kCiC|hxvlz43`|}O zJUOX}#U;U+=}ws?#a;~Dx%qHjML~0Ye8B>?Cu*ObPl#^0?{cyj!xh2lT=zM z_%bx~$5X$*B@Cu-rgpq;o%(j_j5jSi-prb!@Mij&*YnrB-qxbAdYx-dXR}wz@d76#xK8624{t literal 0 HcmV?d00001 diff --git a/file-data-map/User/3d79be79-29f0-4347-9983-d7d3efcc5e80.ser b/file-data-map/User/9c50f222-3d40-4b0a-8c0e-a14596559b12.ser similarity index 57% rename from file-data-map/User/3d79be79-29f0-4347-9983-d7d3efcc5e80.ser rename to file-data-map/User/9c50f222-3d40-4b0a-8c0e-a14596559b12.ser index 401d0d69a0a0a49ec92541a13ca3f781556d275e..2a19a5a42a81dcb755b8aedfad037633ebfeff6a 100644 GIT binary patch delta 63 zcmdnX+|Rs0ijlwjtgSIa@t2Ac2JVc+jKs;>jLynEd<$Kth0Ye56YxpN*1?;rpoD=f QBhk>v*rWi+WC5uI0HLK6TL1t6 delta 109 zcmeBY-pjl}iczrZrL>Cl(Ntu2DpmyEPfP+g)!b$=PUO>?~{q zZNv{?Whs6EKZT88Wn&|D?&Z*}cHZOhelw4sP%;Uu1}bJoCn$-;Xx%x1Sb(TiD1z?<|FPB#=>n&LtN692PF}6j0hHTH{!DI z_Q>}2t?6J$FrPa^!pQagcFXFuh#P7Kgd@?U6F7r{2eX z2YfqF%pS>R=cd_=lVzMQcg649_|kR2=~!Z6k$c$RK{6ev#_E4c^~L$2eki}Me0^N+ VPu^OunxH)3YwH`E+J0xUmS4Tvfu#Td literal 0 HcmV?d00001 From 21a54fa2229384dea6e2ece61f35346a097dfe9f Mon Sep 17 00:00:00 2001 From: seo hyeon ha Date: Thu, 12 Feb 2026 10:43:30 +0900 Subject: [PATCH 05/12] 2026-02-12 --- .../controller/MessageController.java | 29 ++++++++++++--- .../controller/ReadStatusController.java | 33 +++++++++++++++++- .../4967a252-cc5d-489c-bb60-c105076ab5fa.ser | Bin 0 -> 587 bytes .../52d4b392-1d04-49f6-9ff7-606cadaa5f13.ser | Bin 0 -> 399 bytes 4 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 file-data-map/Channel/4967a252-cc5d-489c-bb60-c105076ab5fa.ser create mode 100644 file-data-map/User/52d4b392-1d04-49f6-9ff7-606cadaa5f13.ser diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java index 79c25d48..619a0742 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/MessageController.java @@ -2,15 +2,16 @@ import com.sprint.mission.discodeit.dto.MessageCreateRequest; +import com.sprint.mission.discodeit.dto.MessageUpdateRequest; import com.sprint.mission.discodeit.entity.Message; import com.sprint.mission.discodeit.service.MessageService; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.UUID; @RestController @RequestMapping("/api/messages") @@ -24,4 +25,24 @@ public ResponseEntity send(@RequestBody MessageCreateRequest request) { Message message = messageService.create(request); return ResponseEntity.status(HttpStatus.CREATED).body(message); } + + @PatchMapping("/{id}") + public ResponseEntity update( + @PathVariable UUID id, + @RequestBody MessageUpdateRequest request) { + Message updatedMessage = messageService.update(id, request); + return ResponseEntity.ok(updatedMessage); + } + + @DeleteMapping("/{id}") + public ResponseEntity delete(@PathVariable UUID id) { + messageService.delete(id); + return ResponseEntity.noContent().build(); + } + + @GetMapping("/channel/{channelId}") + public ResponseEntity> findAllByChannelId(@PathVariable UUID channelId) { + List messages = messageService.findAllByChannelId(channelId); + return ResponseEntity.ok(messages); + } } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java index af6389ad..d93e2260 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/ReadStatusController.java @@ -1,4 +1,35 @@ package com.sprint.mission.discodeit.controller; +import com.sprint.mission.discodeit.dto.ReadStatusCreateRequest; +import com.sprint.mission.discodeit.dto.ReadStatusUpdateRequest; +import com.sprint.mission.discodeit.entity.ReadStatus; +import com.sprint.mission.discodeit.service.ReadStatusService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/api/read-statuses") +@RequiredArgsConstructor public class ReadStatusController { -} + private final ReadStatusService readStatusService; + + @PostMapping + public ResponseEntity create(@RequestBody ReadStatusCreateRequest request) { + return ResponseEntity.status(HttpStatus.CREATED).body(readStatusService.create(request)); + } + + @PatchMapping("/{id}") + public ResponseEntity update(@PathVariable UUID id, @RequestBody ReadStatusUpdateRequest request) { + return ResponseEntity.ok(readStatusService.update(id, request)); + } + + @GetMapping("/user/{userId}") + public ResponseEntity> findAllByUserId(@PathVariable UUID userId) { + return ResponseEntity.ok(readStatusService.findAllByUserId(userId)); + } +} \ No newline at end of file diff --git a/file-data-map/Channel/4967a252-cc5d-489c-bb60-c105076ab5fa.ser b/file-data-map/Channel/4967a252-cc5d-489c-bb60-c105076ab5fa.ser new file mode 100644 index 0000000000000000000000000000000000000000..02a9ac6e11dec2718bd036333294085d9bb96dc2 GIT binary patch literal 587 zcmb7>zf0UP6u{qoJv|P!ijGo{PC_xE2rf?kDEO7{AYN}2Oz#`c$R!t(cltdCp{O8; zLkB@Yr4$#zK?E1urBfFt|BX9m!O5htmX2l!NnY~F`@DB?51rP)`$}CBtBp`dq_9@h z6-kAy)Ke~yaD@V!WO|t?#cL2oE`mY=#fsq!c{+&*gUJe8V-$ttG*%Xw!ifaBQ*J9p zXmm`3fpDkBRF#&{{a1BYB9S8Whe!iOjh4&tj5{w#ECoXN^zpiNh2dIt>DzmCLlNMz8lE-h-65Iau7j8G1K+)dP^} z_1?(qi~Z59@xHN<%vrZjzqNM{+h<>g+owCNz1`N{nPa^9!|*o5+x$H0csP_hG=gXj zdTN|mEQ#urKsyKBvi`Em^pB-qorRU_$GG}^;dXKM*s%uxu_ldSO<#fR%iY_f-|VCV zaxvts*x;G=nXTvj?D8sxyjqv%n+E7B`s)kh8GZ~n)L$3hGxAY2WC(?zM(CO^PbKlR FegXy1#zz1E literal 0 HcmV?d00001 diff --git a/file-data-map/User/52d4b392-1d04-49f6-9ff7-606cadaa5f13.ser b/file-data-map/User/52d4b392-1d04-49f6-9ff7-606cadaa5f13.ser new file mode 100644 index 0000000000000000000000000000000000000000..1e07eb26508936c615a0652b17d23f06bd12e982 GIT binary patch literal 399 zcmX|-y-&k15XG#NjfElxQe`6Q01^T#G3}wmHu1F$3lnUxAR)oT zOa%*Uh(CjWgO#p0jlh%dJw3hO-OD#rO$w`_N|@0pN@58bgG#apO{gM)#DpZI3)V9t zh2oVQs2@U2$rz>Zp&q7!lZZM*(Du*xh`WS|a6M^=OWN|GDiV${!D8XYT=w07Y+v7+ z4n_nEg)=0K-CobzwR$t=hB_hPNOb5NE}`VZoaV-iRT|~9W2<$lPB9kVOekAnsH1}A zFEO;-k|$!8$TZk}TR9`k8Cf9G`=hImrIo$6CP1dgEhpa*Z`q`I@O+aIGzNUYw?oD3 zk!*H;md!a?&iVORo<1bkt^-cj5(|qQV1Eb6bfJ-`|0&Z?)06mha@^kkdcRw)ct4t; PHsEXP8=KmGD|yQ=r(b}~ literal 0 HcmV?d00001 From 1cff2bee1190c4abb9850ddd1968e7b5789c666a Mon Sep 17 00:00:00 2001 From: seo hyeon ha Date: Sat, 14 Feb 2026 19:13:00 +0900 Subject: [PATCH 06/12] 2026-02-14 --- .../controller/BinaryContentController.java | 44 +++++++- .../dto/BinaryContentCreateRequest.java | 4 +- .../sprint/mission/discodeit/dto/UserDto.java | 15 +++ .../discodeit/entity/BinaryContent.java | 5 +- .../file/FileBinaryContentRepository.java | 85 ++++++++++++--- .../file/FileChannelRepository.java | 7 +- .../file/FileReadStatusRepository.java | 99 ++++++++++++++++-- ...tory.java => JCFReadStatusRepository.java} | 2 +- ...tory.java => JCFUserStatusRepository.java} | 2 +- .../service/BinaryContentService.java | 5 + .../discodeit/service/UserService.java | 2 +- .../basic/BasicBinaryContentService.java | 27 ++++- .../service/basic/BasicReadStatusService.java | 12 ++- .../2147ef1a-0e8b-4480-a88a-ad37654ff73e.ser | Bin 0 -> 7701 bytes .../35a30b4a-276c-4031-b03b-790499fd81eb.ser | Bin 0 -> 495601 bytes .../64d80461-986d-4e96-a855-20e36c3cd73c.ser | Bin 0 -> 507 bytes .../ac94dc57-820b-402e-bc0a-5d760a6ed20f.ser | Bin 0 -> 507 bytes .../b0063ef6-08b4-4521-a80b-c4327aca3aa9.ser | Bin 0 -> 7701 bytes .../b3de609d-d332-4a31-bb40-8f30b25364a1.ser | Bin 0 -> 5209 bytes .../baec7fb8-1ed0-4038-b868-2c61b90702fc.ser | Bin 0 -> 508 bytes .../e02f6217-2d05-46a1-af41-042311705a45.ser | Bin 0 -> 7701 bytes 21 files changed, 266 insertions(+), 43 deletions(-) create mode 100644 discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserDto.java rename discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/{JcfReadStatusRepository.java => JCFReadStatusRepository.java} (96%) rename discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/{JcfUserStatusRepository.java => JCFUserStatusRepository.java} (97%) create mode 100644 file-data-map/BinaryContent/2147ef1a-0e8b-4480-a88a-ad37654ff73e.ser create mode 100644 file-data-map/BinaryContent/35a30b4a-276c-4031-b03b-790499fd81eb.ser create mode 100644 file-data-map/BinaryContent/64d80461-986d-4e96-a855-20e36c3cd73c.ser create mode 100644 file-data-map/BinaryContent/ac94dc57-820b-402e-bc0a-5d760a6ed20f.ser create mode 100644 file-data-map/BinaryContent/b0063ef6-08b4-4521-a80b-c4327aca3aa9.ser create mode 100644 file-data-map/BinaryContent/b3de609d-d332-4a31-bb40-8f30b25364a1.ser create mode 100644 file-data-map/BinaryContent/baec7fb8-1ed0-4038-b868-2c61b90702fc.ser create mode 100644 file-data-map/BinaryContent/e02f6217-2d05-46a1-af41-042311705a45.ser diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java index 7b5c879b..84111579 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/controller/BinaryContentController.java @@ -1,4 +1,46 @@ package com.sprint.mission.discodeit.controller; +import com.sprint.mission.discodeit.dto.BinaryContentCreateRequest; +import com.sprint.mission.discodeit.entity.BinaryContent; +import com.sprint.mission.discodeit.service.BinaryContentService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/api/binary-contents") +@RequiredArgsConstructor public class BinaryContentController { -} + + private final BinaryContentService binaryContentService; + + @GetMapping("/{id}") + public ResponseEntity download(@PathVariable UUID id) { + BinaryContent content = binaryContentService.find(id); + + String contentDisposition = "attachment; filename=\"file_" + id + "\""; + + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition) // 다운로드 파일명 설정 + .contentType(MediaType.APPLICATION_OCTET_STREAM) // 이진 데이터 타입 설정 + .body(content.getBytes()); // 실제 바이트 데이터 + } + + @PostMapping + public ResponseEntity create(@RequestBody BinaryContentCreateRequest request) { + BinaryContent savedContent = binaryContentService.create(request); + return ResponseEntity.status(HttpStatus.CREATED).body(savedContent); + } + + @GetMapping + public ResponseEntity> findAll(@RequestParam List ids) { + List contents = binaryContentService.findAllByIds(ids); + return ResponseEntity.ok(contents); + } +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java index 561372a4..be9ae304 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/BinaryContentCreateRequest.java @@ -3,8 +3,8 @@ import java.io.InputStream; public record BinaryContentCreateRequest( - String fileName, // 파일 이름 - String contentType, // 파일 형식 (image/png 등) + String fileName, + String contentType, byte[] bytes ) { } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserDto.java b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserDto.java new file mode 100644 index 00000000..697743a8 --- /dev/null +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/dto/UserDto.java @@ -0,0 +1,15 @@ +package com.sprint.mission.discodeit.dto; + +import java.time.Instant; +import java.util.UUID; + +public record UserDto( + UUID id, + Instant createdAt, + Instant updatedAt, + String username, + String email, + UUID profileId, + Boolean online +) { +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java index d9d22ab9..08265e04 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/entity/BinaryContent.java @@ -2,11 +2,14 @@ import lombok.Getter; +import java.io.Serializable; import java.time.Instant; import java.util.UUID; @Getter -public class BinaryContent { +public class BinaryContent implements Serializable { + private static final long serialVersionUID = 1L; + private final UUID id; private final Instant createdAt; private String fileName; diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileBinaryContentRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileBinaryContentRepository.java index a973ba1a..a750df7f 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileBinaryContentRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileBinaryContentRepository.java @@ -5,6 +5,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Repository; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Optional; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -13,33 +17,84 @@ @Repository @ConditionalOnProperty(name = "discodeit.repository.type", havingValue = "file") public class FileBinaryContentRepository implements BinaryContentRepository { - private final Map data = new ConcurrentHashMap<>(); + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; + + public FileBinaryContentRepository() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", BinaryContent.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); + } @Override public BinaryContent save(BinaryContent binaryContent) { - data.put(binaryContent.getId(), binaryContent); + Path path = resolvePath(binaryContent.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(binaryContent); + } catch (IOException e) { + throw new RuntimeException(e); + } return binaryContent; } -//입력받은 매개변수 binaryContent id와 값을 data에 입력하고 리턴값으로 binaryContent 받는다 + @Override public Optional findById(UUID id) { - return Optional.ofNullable(data.get(id)); + BinaryContent binaryContentNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + binaryContentNullable = (BinaryContent) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + return Optional.ofNullable(binaryContentNullable); } - //안에 아무것도 없으면 null반환한다. - //data.get(id) map에서 매개변수로 받은 id를 사용해 data에서 꺼낸다 - @Override public Optional findByUserId(UUID userId) { - return data.values().stream() - .filter(content -> content.getUserId().equals(userId)) - .findFirst(); + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (BinaryContent) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .filter(content -> content.getUserId().equals(userId)) + .findFirst(); + } catch (IOException e) { + throw new RuntimeException(e); + } } -//data에 저장된 모든 values(객체)를 하나씩 꺼내서 스트림 방식으로 변환한다. -//BinaryContent 객체에서 getUserId(메소드)호출하고 추출한 id가 매개변수로 받은 userid와 값이 같은 가장 첫번째 값을 반환한다 + @Override public void deleteById(UUID id) { - data.remove(id); + Path path = resolvePath(id); + try { + Files.deleteIfExists(path); + } catch (IOException e) { + throw new RuntimeException(e); + } } -} -// data에서 매개변수로 받은 id와 일치하는 key가 있다면 삭제한다 \ No newline at end of file +} \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java index 7fdc6ae0..5ba24496 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java @@ -61,17 +61,18 @@ public Channel save(Channel channel) { public Optional findById(UUID id) { Channel channelNullable = null; Path path = resolvePath(id); - if (Files.exists(path)) { + if (Files.notExists(path)) { + return Optional.ofNullable(channelNullable); + } else { try ( FileInputStream fis = new FileInputStream(path.toFile()); ObjectInputStream ois = new ObjectInputStream(fis) ) { - channelNullable = (Channel) ois.readObject(); + return Optional.ofNullable((Channel) ois.readObject()); } catch (IOException | ClassNotFoundException e) { throw new RuntimeException(e); } } - return Optional.ofNullable(channelNullable); } /* Channel 타입의 channelNullable에 null을 대입하고 resolvePath메서드의 매개변수로 채널 id를 넣는다 만약 저 경로가 존재할경우 FileOutputStream은 이 프로젝트와 컴퓨터를 연결해서 path를 파일 형태로 바꾸고 diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java index 80f6bcc1..3ead0a02 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/file/FileReadStatusRepository.java @@ -5,45 +5,122 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Repository; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @Repository @ConditionalOnProperty(name = "discodeit.repository.type", havingValue = "file") public class FileReadStatusRepository implements ReadStatusRepository { + private final Path DIRECTORY; + private final String EXTENSION = ".ser"; - private final Map database = new ConcurrentHashMap<>(); + public FileReadStatusRepository() { + this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", ReadStatus.class.getSimpleName()); + if (Files.notExists(DIRECTORY)) { + try { + Files.createDirectories(DIRECTORY); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } - @Override - public List findAllByChannelId(UUID channelId) { - return List.of(); + private Path resolvePath(UUID id) { + return DIRECTORY.resolve(id + EXTENSION); } @Override public ReadStatus save(ReadStatus readStatus) { - database.put(readStatus.getId(), readStatus); + Path path = resolvePath(readStatus.getId()); + try ( + FileOutputStream fos = new FileOutputStream(path.toFile()); + ObjectOutputStream oos = new ObjectOutputStream(fos) + ) { + oos.writeObject(readStatus); + } catch (IOException e) { + throw new RuntimeException(e); + } return readStatus; } @Override public List findAllByUserId(UUID userId) { - return database.values().stream() - .filter(status -> status.getUserId().equals(userId)) - .toList(); + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (ReadStatus) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .filter(status -> status.getUserId().equals(userId)) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public List findAllByChannelId(UUID channelId) { + try { + return Files.list(DIRECTORY) + .filter(path -> path.toString().endsWith(EXTENSION)) + .map(path -> { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + return (ReadStatus) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + }) + .filter(status -> status.getChannelId().equals(channelId)) + .toList(); + } catch (IOException e) { + throw new RuntimeException(e); + } } @Override public Optional findById(UUID id) { - return Optional.ofNullable(database.get(id)); + ReadStatus readStatusNullable = null; + Path path = resolvePath(id); + if (Files.exists(path)) { + try ( + FileInputStream fis = new FileInputStream(path.toFile()); + ObjectInputStream ois = new ObjectInputStream(fis) + ) { + readStatusNullable = (ReadStatus) ois.readObject(); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + return Optional.ofNullable(readStatusNullable); } @Override public boolean existsById(UUID id) { - return database.containsKey(id); + Path path = resolvePath(id); + return Files.exists(path); } @Override public void deleteById(UUID id) { - database.remove(id); + Path path = resolvePath(id); + try { + Files.deleteIfExists(path); + } catch (IOException e) { + throw new RuntimeException(e); + } } } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFReadStatusRepository.java similarity index 96% rename from discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java rename to discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFReadStatusRepository.java index a228985c..649348ec 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfReadStatusRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFReadStatusRepository.java @@ -9,7 +9,7 @@ @Repository @ConditionalOnProperty(name = "discodeit.repository.type", havingValue = "jcf", matchIfMissing = true) -public class JcfReadStatusRepository implements ReadStatusRepository { +public class JCFReadStatusRepository implements ReadStatusRepository { private final Map database = new HashMap<>(); @Override diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfUserStatusRepository.java b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserStatusRepository.java similarity index 97% rename from discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfUserStatusRepository.java rename to discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserStatusRepository.java index 07e49548..0c31bc3a 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JcfUserStatusRepository.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserStatusRepository.java @@ -12,7 +12,7 @@ @Repository @ConditionalOnProperty(name = "discodeit.repository.type", havingValue = "jcf", matchIfMissing = true) -public class JcfUserStatusRepository implements UserStatusRepository { +public class JCFUserStatusRepository implements UserStatusRepository { private final List userStatuses = new ArrayList<>(); @Override diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java index 7bd128db..7efad1e5 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/BinaryContentService.java @@ -3,6 +3,11 @@ import com.sprint.mission.discodeit.dto.BinaryContentCreateRequest; import com.sprint.mission.discodeit.entity.BinaryContent; +import java.util.List; +import java.util.UUID; + public interface BinaryContentService { BinaryContent create(BinaryContentCreateRequest request); + BinaryContent find(UUID id); + List findAllByIds(List ids); } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java index 2fabfc1c..81bda645 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/UserService.java @@ -13,6 +13,6 @@ public interface UserService { List findAll(); User update(UUID userId, UserUpdateRequest request); void delete(UUID userId); - //User login(LoginRequest request); + } diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java index 89e896ed..56012a1c 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicBinaryContentService.java @@ -7,6 +7,11 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Base64; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.UUID; + @Service @RequiredArgsConstructor public class BasicBinaryContentService implements BinaryContentService { @@ -14,12 +19,30 @@ public class BasicBinaryContentService implements BinaryContentService { @Override public BinaryContent create(BinaryContentCreateRequest request) { + byte[] originalBytes = request.bytes(); BinaryContent content = new BinaryContent( request.fileName(), request.contentType(), - (long) request.bytes().length, - request.bytes() + (long) originalBytes.length, + originalBytes ); return binaryContentRepository.save(content); } + + @Override + public BinaryContent find(UUID id) { + return getBinaryContent(id); + } + + @Override + public List findAllByIds(List ids) { + return ids.stream() + .map(this::find) // 각 ID를 find 메서드에 넣어 BinaryContent로 변환 + .toList(); + } + + public BinaryContent getBinaryContent(UUID id) { + return binaryContentRepository.findById(id) + .orElseThrow(() -> new NoSuchElementException("파일을 찾을 수 없습니다.")); + } } \ No newline at end of file diff --git a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicReadStatusService.java b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicReadStatusService.java index bb07570d..9a7ada5a 100644 --- a/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicReadStatusService.java +++ b/discodeit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicReadStatusService.java @@ -23,6 +23,12 @@ public class BasicReadStatusService implements ReadStatusService { @Override public ReadStatus create(ReadStatusCreateRequest request) { + if (!userRepository.existsById(request.userId())) { + throw new NoSuchElementException("해당 유저를 찾을 수 없습니다. ID: " + request.userId()); + } + if (!channelRepository.existsById(request.channelId())) { + throw new NoSuchElementException("해당 채널을 찾을 수 없습니다. ID: " + request.channelId()); + } boolean isDuplicate = readStatusRepository.findAllByUserId(request.userId()).stream() .anyMatch(rs -> rs.getChannelId().equals(request.channelId())); @@ -36,11 +42,7 @@ public ReadStatus create(ReadStatusCreateRequest request) { ); return readStatusRepository.save(readStatus); } -/* readStatusRepository에 findAllByUserId의 매개변수로 request.userId로 넣어서 스트림 방식으로 변환하고 -만약에 매개변수로 받은 request.channelid와 스트림방식으로 변환했던 데이터의 Channelid가 같으면 -오류를 발생시킨다 아닐시 new ReadStatus를 생성한다 -readStatusRepository.save의 리턴값을 반환한다 - */ + @Override public ReadStatus find(UUID id) { return readStatusRepository.findById(id) diff --git a/file-data-map/BinaryContent/2147ef1a-0e8b-4480-a88a-ad37654ff73e.ser b/file-data-map/BinaryContent/2147ef1a-0e8b-4480-a88a-ad37654ff73e.ser new file mode 100644 index 0000000000000000000000000000000000000000..a3965941af4c1a3a5d7d24d2556987f06b893b69 GIT binary patch literal 7701 zcmX|`1yCGK*R~hU;)@1%w}oKAgKKbihs9wbxCE9(0|a+>hu|8VAi+bhV8Pur;U~}g z)jw4|U4804eV?hBs;NF#)iD4C>JH$xbaCQ@y1GN0Jvf~pP$+E(AmX&=7!P;p1Tq^#C9mN-6^|EdQs_@^Q8H0N^Rx zn}09|JDNM&f;Bx}3~Ys!0ce))*5)48RuUc_0Q~<6JRnZiU>+ z9VH+jkd>7MgTWOQ6--P_ii(N?0s`LN-U|y0T3T9teSKtPWa8rDe0+Q`7%VU_Fg`xs z!NH-asmX`~hy?(U$tp-oXnAKH8>9Jca^erigYZVQn}!Sxn{M16|A?;&BjpGx%>7;7 z<>)xPfnaW=lEB-DBRr?c-51j?mun4*u=6j+YX8zakrX~jc~kVQ1zyL&#VwP9fVEP0 z%e6UljrsLQE$68{HwRRGx!j}TuxntprRC3twV@k_+6q~NUr&BDJD|V2Ri1~HLBOEr z`DZDZZkbYPG-3uy&qh`y&UevCS@q!8$WftFm+LKfV!*)gJ;No@mIr%EbH8MPP_<7_ zQ>~@J2f2h+fp-djOvCH`l%0gCDL50iCe8FO_c1F_)?w9c;Plf+N?I|K$bZwGv<-O1 zhBedbHSS|GomLKR(RDe-#YN9Qp5$jr-|;yI(MeV|)K*juM{}(PzoFk#`SIlr@J*DT zYI$QJurtR4iPoALHha>BwYx#6!3I0wfP{zOr*poNbN95<7d9qg*HmaFtOxvxBV2XW zYLRA^6gESke$UiJ2&$glSGz8KK>B;wnpESP$V*Qj!JhezDvAq}T|&A&bCN(;W8pN7 zkE%PmWqhZDz_)Hdwb-0lq0v}Wo%B&mS-?#4T3t#iE$;xSglT-SR9gVSxr?dKq4Cb@ zt=!_q1D6dkckF6WuV1hL;;EE*(WUw3s=Jo%a(KRV_y^j^#47?9d)%36Dp_FM+K)G{ z|6b#TkHBP_XM$=Paa1juizSIaRuK*C$I8JS^~V|kZoDT#1N9ueHR_t$9i%i!pTZKI zRKec$4zkUxIiHOABK-_E!*2ePJTpjU3i^L3aVD=!e{K4{zf~%qZ7;S))Aa|+w7F4Al+m%q@J^4HKt!R|2AC|tL>Q8wt8G?dS~~pf^>{ly9>^cRSs6dA}UOe!~?T^ zi_lU{jGSqdivLFV%H3O(b@0M}3XW!ZmJRnS$!YWMGy@~UYa$`y-54%J7l$!70;3C> z+!dL$u%NLP!z#>@0a%-uDW!t97wjy}4$b#f=i+Gr&8Sv;%#s^~Y&qoABL4T+;x$>R zxnWx=6Tyn7G{b=$XzVUV$??EGfZQIj7B*ez*2?o0_-sY+Cj7}KK=2SI@LQ%Devf7Uyx{|e4cbm7NehH` zW~uDBaV9_~(v?sc0Tyep-RIvzuc; zOyrMB=QysVY3v5G`uwe-=MT&Ar#e@$=xlo~f#KMNs5=&v=8G+&4KWhx!mnRGHMnsF zB3vY(yO1-u!A5p#doYcRmOWl6q)hE9_#ssi)l)N`^K5z1SLvo5CEnLf&PnbQb&1mP zLVU5MGaNL|u*VUQY2Ai{!ZdZIy>TfLP|LA!)m_QpY3ouhX;%=DNdpT~&)w0H*p@pV zp6#NNS;Y{V_wX=He&th2g)3z_3Z$tC69vurc!2`~GG&>=*4Z-PG?xQo*%07N@Qq4$ z=F5v|P3?=xGzO-3`I*<6ts@pA@x8ec%Os&3wyWE}l{mlM=Y5+Itvj5P5MSgbJ94+z zUplEtdmQ3dzUIRRm*-w8n?tdTP+TdZS9T`wLr1L4HCJ1bz(q&K>?`m~zOWyu@F;1^ z_b%q>;W#mra3uqyvIB%O<~7$zqA8fzH&lANj4=~QHIRu}O+?FcO#?mg}E7j|u7;_EBceuwBFtA!boxNh@g^61nnf~llWbfqk z0V%S9WNt6`ILF`vddg@RqIlJ+C%U1A+$(%U{IQe7=ATEmU^ytGn512$-IjZQSQxYq zX6876qG-{J?)i9VDx@fiU6EzdKu7!W zVuzeOkpaCQ1L5_uhH0|NU`U>WB7fh?t5Ckt+C zGyJxIUb`@tg#M3c;^M z!Lk0estVi!g>=?^D@my*O69P?*VL#v01Fj$6_QA@+}LAM*nIQg4vRR|*>r7t?VB%Q zg-ZCIkkCk=X}=ZS`1>Q)kD+c;`8NhXeqrEvFInMc4CVAuyL~;mzEmiA^D%YQH0Durq$To12C9GVhw- zceiN3VpE5<+4!k3p~8loxCOFL+9HwlT`G*V;gCQvV-{b(rcrvqQ?jC_uU07h9IHIZ zPLFd=JIGeLgonueRUd4XsAp+=xX{0Pzgla7tMX7$@Vve$4Y^XyyV=3@i?xxxu24+w zLQfoGQAP(#mwm9yAJP$<-2aJj;7%*jz@g&k1rhH>))otxcFt8vInQaAK0dibU7D)a z?D5NiaSQ0-gfVnleKg6RdEKJe`A`)n!JXQk$K|ak-okW;{Zy5V!dMTW90cdnXv_3s zpP1%F4}@|H=$}(W2Td!I_PsF-1;KThA!pg*~ z)jj+^G@~UxBYoY)@DX!jYc>Myy=pRf-1;d58Y<)fp)nC4$7XkoG;*c8fES-Q(cXEZ zVK4IyG7{zuWi8(Ki2dkcC8sBVqi0`BbYB%_at}qVW*=ReP%J1j)u@6s#a6UnGBwU`yuZjs5dU_oNiT-{iu`LX^cRhm#W73uG=|GD*TOgP@oz zK`7N^p)rnT`zQaem-|B6Jw(mnJ4W!>qG;J!)5kRGXGMPw#W$_QP(=bPso>TEeIf** zQt6-Lo0-G*gQ&(jqoHG8A~EKH;z~2Q*t`P~iq-&%^t`FNX%>q#8Btm@JmCI_Sq84a zS2_Yp(8tfCBTCsCp^+N723I6~Tb zdhb8t@Sw%9HmoJ{FTGuE*Lp*4Pfj8IUe1LwrVI!m(iC!P| zJFMGAFM~A^f#~9Q^{+PNEi4xpXw4AIcEDpjc?MKc9~ljw*-bL52sK{!g-5FZ9W%<* zWErH&uhV&@?$iW2rfq17d5<1!u#NRR@Ob^nzb_=&K=y)sVl5f0qS_rPghhCzTPsU8 z0+TtUA`mq2ZMmpp9+8;}!o@I_+Ug38glIwpUElj*RX#3J%s7nV=KQ7^UzC}+D@&P@ zluh^3KD4yx!cCPlOu(7}EtWu?ngO$uH1FMHoef^zIQN6c2Q4r_6Pb5>Ll~F%wvlWP@OcV&44_wg?P9J$^`+5trS=R zMf|qjg{dwFQe8yCUHkI)bn2DieG~aK6(kJ{qxlRrC{@n!J>QR~w?E`%cG%VD2tLDt zBBZ0>cl>Y@io!0BLak>S@8ME_9e^ivTT|MfuKTf3~A$Cy+ zcBV9!L54j^zGETnuFUCwzj^>=A|3h?pdp(APtgCS*#*8md$0_u0QCv^rhF{ds4qJZ zL_d`L>`O^HoO7lwtC)HS?hB~EX^S`jh6jE8WSe9aMOpg_4_$4ta&G>5$;_pJh2GUV3)3-UOS(u3PK$72kzGI#|i28Us%Nxj;fTXq3y9y@7XW zsHCOnhHH+%e?~tA-ns?8ISlO`0%nfP{HY0MvGXbQIK6P#O@Q*P0o zTTGf=zMK#!UfFi7W@)?D^cl9$#Kv(@(vdj2t8kh*c=WwGNP)K`U+I+%TOj`O=Gn#0 z#$wm*P||>i0o|Z1no{z@ihE^`Bysw1&iGM(z#6wusda)WtX>w`;w9>m@8@Vo5sc<^=5f*hZb7A4(9|G zF1jAUr|LhI20Y?e5kZO4DWX{1z)xhI4Q=h{`2>e9EZh?NePd1;)siDrpSJyDmM&mF zeMpzEi4vDz4WB5>DNr`>geK|cmK z+(l+?rOhFBue1*GzZZ1!r1D1@f?{0weRj<q2*{>$9FWt>zV3^_&<$$ zAd+=EMYSc#d{o}`Vjc7153xCyQnBLI^vdX#c&!~p3sVOi)O`SvwL2|=>MV(n#G*w% zPMc5+gS{0+7}_&7^Rr1b%}y(ynuG~!rrn-=^?ix_Hai(#(~Z&Tac_kgrMQauB@p0; zopQ2malbBH^wmpLO$>-;{oT>Y9s~7Fh>&k6@xm7v_RnBkWX#gtmEIQr`oY)<2>z|n zn-+iB%8GxMfs>8z>EArv⋙c)5I_ZKH9pxyG4PUgUFX+IX0nqd?_eT_H-H#oq1P6 zC~73P5(gb%zOmxzU=-kfB#@D{E(oJxi$!37`a>SQI}@shFR5!ZzdN|&e*yAEI$SD6 z4^9};AAhwd82O>nd8ID6c9Y$1FA!m$ZG%GRo=~D6ST3oTOJ{V&x*^f^E>~6KtcZ(d z*2`D^RY{=#+vUP7lk&#qaon13mz@5ob+nkGaw7@80cg2HuT*;;{#vY@-VQffxhUY1 z@=sjykIaLMXmmz3?qM>j2{i1aV|U)IUoBeZ{pen~Jgzm-({SElxnEBwq(i{DBYnXMKp5CIC3K1bfVDn8l5Tsw- zO+CKa1Ymq$bcWA!8T|M?j0jZE%r-U;9mRPKTOk}i_m~_{G@(Y?otbM$srX?eOuK2& zyL@zHfyF9r)T!1pri8mhnMQ_3lynqGwz4s&v7*M_XwmeJ*wt@-r9UL(xH?Pec*Fv) zCVLF2(U*Q%tckm>amp88nsl>TlxCK&aICENX2h10hyH9ia=iM+>-*5ax9r?VOXCe#>sC*m24qBWj*t``ERjW9Nfbyu(m^lYly|sAwAAsn4xA><>~ivF1K-Qr#FT4mxjm}z=hfD2%4)# z@lPBA_y`5=UJ+mWYzZna$%yJE3)qON=^Qj>T2|Mtq+H1I-AeY(qUdZuitLZXjf66z zzoKW^06!)aoX##R@q$4-aV(QA87?}|$R< z$<25|RAf!Nd*Ni4IiE(S8xXmari4&+VLz2oIn=u0<$&L@IL)#*PFq>ADB+?L+FTS{2hqHs4m`tDR5mig3hNJVv}l=i zIt1=INMz2cQQ#^q`1q(q5(hqS}Ia}X>g5B%Sq5UF8fxXF8tgZkgqkdo-+O8399&?+9N* zykr#y>$BRRHZe3g=rT{yZ!tL1d4S&!2T;b{|L)ILMiXmg^FZTf1vF}Irb1y0?UNy>Jf0=c z`?9E^DuYaD+vi%!UrS&Trlo<=w>PG8=q5h%7FF&S@4AnToU7FxA5P|nDMQt=k5zBy z!rGJ|6t|ipMQ4vHl*2?dIF~!<>7l-yY1$9Jo3ij`1xXpY;*a9KbfLamQXH;mWPOj~at7x6Q(d=h-e?gGS@TNa$dn zHi-y#X!AVah3*u;4@z42W8soES640)WxP9F)U)*tI_rfKuSkjiut-1`h1Ygn4Pgwr z$)}9yuy~xp!svoovFY0w_oSRG%EDK;dbA?hWDc;iP4~?C%}rLi-ZSG;#yj2{L#rYi zfCW_rPcA1sfw+}YsrDCY{sei0e(1PnO?{=-MQF$;R4xy>1u~PY_CH;~bfHey<=ICm z(wzuGK7k*$%U8|Fs(&95cro2h5#8FiJ{xq`EGmwyty)|E2< zUw?kjt+KZ_m@Cuw^$zOIloB~D{@w!XirL(Fvz-rgS{qDaf#&1EUp^|>G*6D>zh6N| z?`eZXJk&qnaJ51In@S2o49Dp=-g^&4aCmuCIuhxRvmC3%dIQz_%P_k}Vpk#)2;T3*+U+Y%A)6!AQm z9L85l{m2&9PTy*YQv^{2owSF@lbHS0HlE~=O_tNMQJymuHP-Y4C0CF$tcI^X+MnO0 z(X4H4SzLGf?J*wY`2_^FNlZ@2d5Xg@Ur_?J()5WLzMUZ~0m%MxDJRHNfSHjZRd8>{ zKo()n(T7s9S41C9C<2$BzY8008z}~i-BMSbR36x)=F0}>_#yvhIYtHpi_!MiD7jx4 z(Sbeo3%ohBHTffT_gMRvindcS`Z-;6gLV^}*Gt$YLKKbGi)^@0=u07$$*4i(DCy0-@a`yU}S z{V$#Kf9cr&rT?Ruod0NMXFAetno}4U5rC)&z;v`Whk9s2Y$YKcP(=WSlgs~KdApWH zRSQ_F-ip!4oswclO9#8Y)bhX0{_#%E|9EHg@A&aJx-~=qf+7IrgSn%pwYNI}^q=E@ cA{9?33u||HRWb!e(t7m&@y~xHlT*6>KRJA86aWAK literal 0 HcmV?d00001 diff --git a/file-data-map/BinaryContent/35a30b4a-276c-4031-b03b-790499fd81eb.ser b/file-data-map/BinaryContent/35a30b4a-276c-4031-b03b-790499fd81eb.ser new file mode 100644 index 0000000000000000000000000000000000000000..78b9cc54a9963004acedda8645a535827b893735 GIT binary patch literal 495601 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

Ibf)GPgqXV-{O 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%0A#N}O@`(A}+9>%*-V1-a8n+s!3sz;|D zJmU6$HfMqrH^jyS;%s%&IF6r1^s~UlT@BxfuuN~6q(h)ztVH>TB&R%fGI}G3&X&3p z`TFG=m^8e{UA}(O)fWo8cW!=b*zNRo-}9(jyg7b~+Fn(i)VyXy8|}WBSnEN$mcDtR ztmff8L`ktf6YiFqzrZo{c7Ns;pFyvHZ=jn2s8)aPO#e}ao2;K9wpAb0z^HmYu2n$+ zl5NIib0HwBWtq=+VVvkdlP*hnDBJS3>620^i>Fpw$XJdCiaEs5+;aT%^ufg|L7-i} z7+ia}6J8=^)0O16d%wX_+)o7W?{v!jwoUVe(EG*3>jGcZNsPa zMTUob_u!hN#Ociy<5w)8m8gx<=|+32VELmmOyr}(aFT9!B|GJc^Bu<6O1uQ>O(kqU z#*)Jy9rW$1oN2#vFFi%=sp;*r4XG`EcSZT<(mJkQHf$^Nwvi~{zR9%A6bajGp7BMb z`vo^fhQa&)Nnvav(AGgwSvuz1*2AYtUEvn*3TJOd)JrfTk#A;Q7{QzRBW@G9CFKD? z{*i@MNRR??X(Dbl=i3F^s;cYUwFqmhA-Z2yebjE9dytU`h2*~3_614X4{}ShBHhxK ziKFSh%RdbCRdwh1X0|g~EJ% zCMNbZhq(Y^)HYOcC-@IEJOpR&X;C_7Y%-!%F#r;4s?{1c2Bg%az_tGw)aS0p{I2Rg zFlS0adsN#>21eWqO1_7b*a~p_QtZ8DC;pEkw#U8GX;K^x*C$ec#{bNM;#V{?r{Y#i zcArv65U1HAvq|u5W4ZXdwnG0Aq|*kh=w{GpiJHr9=WIfYxm5^ zWoWj_cGLL0m5i6R&G}vD$o(i62tgX2m@Fn#1}!C&i82CzY-OAhGSua8kv%bP&Ebi( z`1`ezLM$lSH*(w8}vSwDBLQWUvjDm@QVoXBbza8A)}8wQG_%tF(O5X%;hci zWUHqk&i$?DsKz?|Is3=%V}wJYHL3=|j&(`P1+Ta;4v z0zl=m_aG#h)0aA5Ec*Nkipnz)2s$MhJT5B}3sD`{>xTuXb&o9^(9}v1e$f!OzxIC$oL=r`WS41 z%P>{SMosxuB7+E_EXg29KxxM{L9z&Tu&=Wa;CO$iFH4ntSjm>_t<{z3XExX{4xYc8cIJSu4@|Fyk~j8RPYwm$=Te@tPr=9LC; z%$T5~_!n4{dZxq*hfjrXRw&~UO88ij2i~7<3xH`61!`7k%N7M>+r5#5Jb6IuMdcr+ z|IF9^1}%`&mCLqy7G0y%ri4HJ5FR&bkmxxa_&LUO8CK!7UQ0(es;f?YCG#R0v|aed zF1mWR^W(b(*Qc7|i1!E|4?=}h3E) zeWZtIb^rw1!5}jqHkXgy%-8C0(f=KKxj|ZJ>Xm;`rNo7^c?yX{QB&2+ndK9WA;0w`w0{DJEf(ld_`Sgkm+B3~S@v2?imJ#^AJXqoDAKP&U zRJopXzuU#T4d<9XC_|;+1Q`j>$N)(VRTaK6^7Ty{iT}dF}-Ha{k#?|B}bOQ&O3EqqzTNz4WZQ;;5^y zDNbfUIBWVV_w+t4iz2F9FV1R~MRt_c`|0ik!-+VQ9NN;b)@SV3@}6 zp>Os3h;LsUKhFI1L?@0}^mgIBZ)ylZ?K2#BZiEY2_8=dG-%o+A6=AVa+882I!sEzT@tIpa)4v9n!3jV@`zp9=3Q zI7fAlgPdDAWX_0CQ!b!wd9g+-v}H`|)1|MvhQf}iT+Bq=eF`1r)V2(c^;ENyGQ-Xy zZybLZz;tp)U6p`8|DzLezs?3%oi+c6J^3XGCBmWYsBAQyKS6t9jiwu0^zAz&RHh*E9m5m#CY4XA+ zgw>9A%4Im1?r3_7yI*B$GP|EBaBzCO=$s6lT$;H&`Kvpw$mz>CyEm$q< zt#c>ho1LcqIm&q6DE(nm3T{|2N#_B#{L9-*^tNCvR?zPguFpRf`Q@+tTms%lUxJfT z@j|3T)~bb(muIfwN#R^%rn(|+l}kp1!gOCS%f#d!jCjkR8-!3ge6e6^}#j6OCohwLS1QCLA#VGoD5BOdZKUyehfoK zod3qliKb7!dU;bhi>&$UFi@6;Yxm;3+DMO zMXWu~fRj9S|0l_5zH@X$)Z;+Wm&n)Db$-e~kx#Gw$@6gJZ;%=t=Q*Ca`&U2Qx%&q9 z+7#j$%gq6d%>sH>Ns^?L<)dbWoM6;sXNKO(RvoN2pa1`BdLvr0+BXD16KLMJ+fQWWiI}Nv>3u6ur(s1(536EWz#hy34F<0&sRWSSDyQ05 z$j6nC(o@QcLIit4FMfg@1=|I@S|Q!4vX_e8u8-mzdP%t%x86dY2xZy>Lx*Qv%^DFX&w0cc>g%a zbZ=87HhJP7TNICjUhcb1E@X|o?3%o}3>Vn@cYCx@=_l+W!FijUX(8z&{8D|)n&h9p zN_IWTCSbJ%Q#-`IrGc{v?oEH_+tQp z1&TZok=P&Ib*f&B3(SZ1#B^`GCQf?v&D>WAp2}+nEYH$87~caQ;b1|~ItPb31yx}7qd)hyMEZxHm9@Rv z{Vo}35hE8(YheY)gHjIcHXH0Y|44}^Qf{~f_zD9{)jKm#AV_#i=iLEN?UcNww2n(` zQ_(xfbwc)!$Wzx=v()S?#9IsTUET*j1%g_;!g$Y{3&_JO=tsY#Dr}Dpl>>x7w3kSQMUm!8r;;P*p$f?uxNqa#z&& z%IxuLNZ{RB5^&mNx`?n;C@9_;Uq2R$f3+}UKsaU1D;oN(FqM?knlOE(eAPeFnSa6s zFT|fmf-ae)M%iu)_YvXY>{2roH#U{{3C?!bV^h!$Tr;}4qT-L4v*EdMRyl67xa0>i zOu771RLcS|MW(Fps*w}l9Rk1)4q)3X6L0&^W^_{>qdm#&BWKgMO_G(3Bm66d4)>oA zzi^UiD}LHAl8`fhHeq7zR9|zaHgpPKYy6UU6FHDJ zbgaT9RsLu>0AA>dxA$MV3dpQZA0h5-!>ACJm3l>-P#0BoM@9E}@J{nlTD!EjdINaz zD#P4c-Nfr_%d+b(Yin4mRJ9Q~4UFsn;aRRILlylCoYPk>PH($8FnLwY5NjurT{WvN zA@QTWOkiK?Yc)nu#tI_vNR-XaTjZ#v19V`+vwV~K-nwPQH zS-82BmxXRfYJQzE)5o2!I{Vx(%D?O-=@h4n){L=|m;Ga8ZPe0PrKye`7_hV@pHWV7 z?)8L?L8;*S3`N1W^flLC3GX~#YkKJY`rbm~6ur$LDZ%k>gCElSetMhvWqVFI#GM!# zUf4PaGWam-C_`01dd6vNPZCwBWfn!|NtdO7{76+G+vqI?^k1&zql2TVfVDzC8SW_N zGo2?LsCQ-`plMaK^jxW5P{s;bm+S1{D5F18@yqCp>^{vNH?_gnyf-~TH1lZLqobAr zA1Z|kgo+iqwu(Pi1R`#`l;d8LI1U?oZ|c*MaH)?|B^Vz;{Qo#+d))V_X5sq(&3sWW zZzPMwa?YBbp3=aKfAH6NkGaLPnR{YvOH;owji7$N7-`HoyZ#6mn!Y$jOLu}sfQ90i z{bMhjaoA1^<9f{KPPwa$Dvbq_f8d5q6#m1$A%N-yN1FK~P#2UvlI#{`{weBmWEf)- zFZQ_4@0aYh82n_vYNS5kG-j){%>L6;cfzFsrZ|&|-`j zyfy&8@HZmIK({(7_$-&qUVfVC=99@dQ?xC3LcmB*e2K72aQ#D-SDtZeuGSyN*9vbp zhBpDIRm&HR?v-i{_n<-4vOsR@fE4%hr{3+zoGg;EG;oIo`4YwRKFTJHD17avROt8( z*eou(Krf|sSi3KWrF-mu98W#SZx;Awpd}P&PL^8pFKM$gtl&;q{R^n0zay=8s2S+) z58c~cqU!j7`^peIP;bR*vF?u-$GO|=!37HJ5s*Sq1vAEAvJy=U;0ZM~&xIRfutb!Z zKxje`w!}rUdZ8%VPxWA8DWoRVQR?H8yAYvQCh;FIkkVPfhT^b0lP%IgSW@BCfH*OD z63chzAr-ofBmPVTPCwa79n0>gfSU4(RtSxOF&xkM7tfB!>AlxaZx_4v+DL4EjvU&c z5rtb=+|@8pgv@fHqz!;EP9~egD)g9NB=B{Y1ll{?8LwYOxahpPP!9lOkX|hPmsT0Z zglIW%?(&}N0eufCc4=Dp6E1>>1dB!h$%(e%p==v(0a1JVFd`z~SxcFP=o4B88N9k4 z+QnDzj0gy<`Kf+o0_JB(Fm_q&De2hJ1yaFHv6VDTS&@H1Xui*APXca!btKhmH~41K znujq-If0QPfi))N;>4=$J`NOFMfCooh$!&5`99@IH4+F847zpLgU%WRA$*SVJ2Bru z0YUl7MjJAKOXH2Wp}_~u2#V?Vo&>*5bQohNk9u8X(Bynqj1*Mg5S^sNO*IBR!D7tM z^&h>uxzkYw(^>|Y>?e_!e$dw-3-9Le%6K3YJdM{M`Jz#z0kXpX@NmkcY@l9_$X1j& zKfflCq2tjfp2FWElO!xH8{ zNx=aTe)cui?W?XHxG_QGWSRFWa|f0)Qy|$Td%UOY@#|bwvtqpIlwe&o{M7A`7s>3K zsC1@XThfIZ*2*fUX;-rT+XmlJDV7sYQdc|9eq6XL8Zl-C?Ys8inVEk@bKv7k>G^~n z#)}X;9r2jwb^=>@05;Shu@Xb888NOOo090@UGp0OTGDi_Sf1u@NQHiSa-T7>C*+DM z?~L9m=Pe<`@^R^~+P&tkJEjLH`~UX>C@B8OMM*$T=+@hsz|$+e+eD`)FxO2l=bw(I z7Y}<4v$`5&Q>SScj%-D%=KLeO35g^a8w?7LbTUdC+8pty*-~Zc4yMJ`szn;0yN8h0 z%Jz>|@q0-K=rOEErHLFEl~-*URYVY??2?sH&pSN5cvHKjSLQx$u-(RZ6eU2yDLc=( zU)zAY7rF-ai#cLFTc_=rZcNCm=E_AqrOWF}6kC08mt@Zepfx_ibbLbax*Ddu=s|3t zh7#1tySgD7ZDn^^feu{|H=eohO|EN~t>$P(^Y$OO8$}mtZF!zJyTA2iKqup*eG{By z&}ekh#>U3l#d&T9=rfWjEJ0+zlwD4b<>!Y*O)V33nG)js8o765RY2nJL%1NJ8Y!`QR1T3w6M8g2T44z(;$AdCzxV!UNqU5E!;j8ayXI2 zF(cW)B-vr;flMvD&KDQ{;ixS}8%4&pLI(-<7#f2)85BfAX$GPjL~=7Z$2{qc3jRzp zc)ZW2o@jPuW{7=k7osL@Ew(v0iH_I?TREpi6{GZ9?ML?-ZVkzFW&|({6v7UFpAozC zG5r=hbHCJCY(H<`80tKFVf>A}d*hn-qdT9lzRM@By@gA{uOfE<{Lei)Vp!4>WS7{= zb3;5rK32Wqv?x>I(m7qx>L4}I>P8*}*0jr#zk32z{)fM~6HQw73be?W{} zw{~t&UEM5=rfb_L!EI0Y|3hN?2EG^mPDa_CHN#1oOE}mXRt3eOk2-&AIS?bPY^*v^ zCeDM+-}X;pIoRTk-pfj;=#lERussO9eyi(!uZ|3I%`E}<{I5P z3ase{9h_IST1UeD7bxk58e|OU2lh%LPo6N9*f!g8r|=UF89XY&_B2WMMcNTl8Q+zF z|J&KliVGBSINn#0cR&V3S;il3C|&4GdZlZBG2X48%YLPgeeDR)1QOgxnnkZPf;3vc zgRqd=If~wgF*FiUCjvD*MIDgC-Vr0a1DZ|V;lVKf6?E+v5dS+Q8^-3E4ls*o<-B?(BSV(J0PRN8Sm5VjT4LUNXdvng!A^ z>p!37dRrL{pE4+ivMZznMHSeaSa^vVI+(`I)L?4&sH}t9;({t0iSdwZDtYQqS}9T%Z>^dP{789ZoiwZbI_`Llm@am$nZl7 zy#BN^>AQbz*Xr_IY$$sI8IT(ok=B(WX2Zd#(IpHl_pI?hKUcNlL2bRsf20!4@VtCI z96ParaKkH!81O6eQ~MFcErV?ila_)8iFq#qsq(e#e^=j4`QwE|-6L=s9-lsQU2Pns z(3zJ&y3Ym~V`ZgPf;BdN9AZ|eW9lZZ9zcF)JS+nfUkQw&QA{n=-Q3+E>!gR<{!>TjhaEV=*MMhs(=GLCmwvCl(z{qh#CYaONkN`8 z*%L`bQ$lVf-tF{+lc_8EP22+Wfv|d@a* za~)Kpufv7=zvnF+U5mt8;t(4v{mFcPLBD)x8%#L(JcYP}G6gfhnjXno6+ggc;*H`e zx_6c0@bZndlfwpNQqIxFT9|?iQ|XnCixfBUp{E!rG<S(l3UH8@=gAnwrZ{XwLHt2prkd;3Vk{d<11 z0QP8cihS4W#$P;MMBYXg)0Xn$FEq_7lr{(WX{il{(59gS(2jI$B~iF;&~H&Q*-lCT z6{_}pJ-e$ba-yto^}LOBIHYDE{U%)uKJ86ahsK{U*S75F(SxZfiSJS{c^K^^Z2O>neubT#pas@5H0}0X@oTQC+3676Gb3=PRcmT=K z&XvQPiw_qE$IZ^If`zO5$L|5TXYBiRAyV4`SPxTlv@Hc-8(Eg4X@i;Ghu}S)Wr#f- zJ*D|t;Hm2<8khsilVf{iBeP#?n4MpDGKYWqJl3Jpy3j@}Ero9~S>nDG~xk`I#w2_)dYnO|yPb`anBad8GGnQhT^Dl3Ie7(v}6B&Fs> zvil$+&3vVLsUY9PG7#PfMcM^x?|ke0YW7d@Sx7Zn&M9&I1Wu1$5&&ES>&-ZSqobK< zu<#pq5ojESt|R(fjxkpG!#>XT*uB;1Evr-ba+%asT@=6H-}@xTkpH0?YLlA!&u zH(W^z`4NLGbm&s@T9a}&S&Mu2Y8qskHtZn}C32mBZT!fxEwKf6A+|lF8r1$wW{dQS zjgKFzXeB1K#e12G?w{tNI2H>DJ$`q4?S`hR1>Ftu0}f}zz`@O-ZZ5%%H0o571T%xt=H|BBT!}_ zNAWMv#odP&^WoU#Po<&^?aL5ahJhmNuE4Sp^-BqOan%dB+XHVk?JxE|n z^d4x#;~W7z98x$RQ^%HY=F}Li_-oJ2d`imv{NYdJJm|Y~Md9l$Cidtv(mo-{-e1!F z9TXMobQF(VN&A(;7;WbuG-CY^4v+HfD64IfIlV9LvF+*;8WNIHS*eo0? zqAt=G8LawDi5MNF%oK!@*{+`H`s*a~L(^z$hXz=Lat~uE_!s9`4>6sFztz{y7&-LO z;8BrlLCEj2NvG$WxWBqtl80wb3>2Z{<;kp(ALkyGs6^-t4_+n{yPweQKKe`kaaD=X zZ8agd9?jn<4)@vJn>s-9Cv5n)Ed?3=IfWf1-k^J1mEFo3-mqMIwr*S0#_2BtQYC}# z&EC@F7)i+rOOv~xr9DCTzx%$@n8{8FW)2XWepc$g@Dk~-5Qhuv6~C<18Xg2y;`qAFzxV<+)_x!k_u2g|BWFR# zU(iLE-wm@CSuP&nr!G5qInV1CAhWobEb*Vq4^heWzJ%%_g)amV7KE!9E{bO#1mo~6 z>nqxV9ro}WIeQ!@Yljjx3Q_-7VkBOT_{0qZ^MF>Uj4Yp=y`6S?u>lLbl<-NAbc)d= zvp})PLWppWw}OQ0h$%?dX0yO8&LrT`{T|vO$deALLLE@m^FYLm%bu|vr7l;^{P zH)Gr5J)07*CBs@;9}BwEE>e8_OR2$TK`%7j=o(T;$M}xbY;Jzy%)+n?DP`3XNxEty znTnr@6$xxqGDk3tIU+-lodWv)Bh75GBiII)$LfmS%%SR=Lz5ttgts)qS4K zqb?h}8aqUar|98c`H__oUDnSX-4(&LtvUfYntT?ob4{^)@xQqm`=yF68k!ge1MDc> zq)~Y8<_y)9i1=J&9gNrNFgp^v`6-FALOnbAB28%n{7*xrqFc-BywhX_*5dvs-P_;K zrN}ccbtBiQ+Ij$Pk#YoWxcQ`*vn@x?cZrs2^&kwclUlOv^eRJ4NfiIRl4#XVxw3N& zAg2mY5{%gpT!~R;szT~{RvsWBq1_Fwc44fwQK%(+N>0%Tp@uhFi4LVrxKp2Bt*t=D z6(WIKX>o0DxNDeOoRo7Oh&bpI^vmbraH`n&l-#&xhjnURpy~fn#Afc?onK)57fg(? zPxi#a?tBo_C+is-J6xF_x;xhZOjw5ppNs6=W4b$m{J7YomUBM8TigeQ%m-9p(bvNQ zIUjjkg&4I#U8??WA2+)mzW1WqWx{Xn5^Zxwn^~ELF=k-I;c@=74wSo!CWgEIZSRck z4XOhic(8Tm*q;w({JWmEy-q}nwY)T(>@4ns4!ay3WWGUZ?CL;Km0EZIN1`0ZgR868 z)G~2`C6X-b(4O53SgWk;07EQy2%iwYsEZ;r1eZ`6^0Ng* z>PQOAIu-wSnzow7^>^IKYKD^2wA0e7O!ebAz~`{@ee>U+b^na-5xT!$1>OEvEoZg= z=l!(JJlzxXe>sOFN-}e9H`I(21^0#rU9GiQl~-i#0qlUHkb8b1`9)ZprMCl_{o{My z=2J4du_N@<(n?kFE=|_b718&%>Rek%m7Ve%;LR_HsHrnMEK81 z&Lv0fUN!RZJT0zW)-lW#^os#^&@*rQ!~fHLD-{orkC1$rq`;HopWc3#EsiqWKuFTp zu+bB=!TrMi7E25XrrCyhqnBieUrmd3y<9M3_fjUPqF~8@U8AvWkvmZsOa*@?Woe-d zyeG9yd${&0g5nQk`fNuS1i|c$x4wwlmlGG`$1O}xizWf$zDS*F zg=-3i6+S5nA9>5Vrt=h+V&3v?#Pxw2fu9a(9CxqHrZuh3WMqH~5Yp6@_gWKLr+{gD z`aElV9CU%6zWFW?jPH!EJ;Jw~;;Goxw~_87H_G$V6yjCP?A)!}Kq#iL2}bAlb_-Eb zsPigTsgvpDlX=I8Q^Kx)7!?ZvDB#rE-6JIi3ZWdU>#oVYG*H(ilX;@pLpyh<@+p(h zI#mm$u|TF$llDoTUG^~$>6EcTb~*)uI~*q2iOM{xSk`{!efe5uJXu;byVOk|ep3BO zaL-Lfw6n81OTR_wP{%a0J-GWoSdtLNMxRs><^Q6Kngu=}Z4NBS;1iycIn1KqVAGOg zI{WA2I&)3$vIcG_DT@Ee5&UL|EnG3ZI5^h_uDkD)-?}@4k#XPRSbEKa+RZP<5ozLZ zv3(_bYQVlfiCbDAYT_~ zQ}S?#ogb8*lE=)xGHIwNIaxjQZ05-AaX5CsZiTf(Kl#H+DdQcRCw`AKjFg76k%~_R zGO*~)^D%uk>TJ(n{`tNJz|3leH7_i<+@3}n^T?fL6i!P}efk;}9&Oc-mIWZg5>pZH zKa+*ei#SOkAy39)yvmda8xQklUI+_A4~ual&RuW)R!2fQe8`!qYVxWEKGX^hEqZ`^ zr3)B`sV%axieu${4X=ok@(t&ch?E`0Kkb%h-kCysPcyTF@JEtdsSoa~H7maU4?$+_ zR{{Pk%FqC=8c(Pi23-{T^=efh^9gc})B>&KmzQL<;H1Sp_YX+3Qcc!}G=8{S$)zvm z5_g#=go{dI{}9*w6d-Zkv{l7a94zEJ^b$DbG5kEuwU(%PKcJHvLpypFB{z;)o@EV= zO4T0Oqa;A{r%KYaM>sCc=Rz3E*hcH_XLp%!hn9u;c?8C9G(*A+XbN|qSUuXknO}iw z1H_OV zzNx)Zc_y2l6V~_;i)SK`>+uEJJ?W#@Qy^2iB_ZgcTOoK^5{F@tM%smU*jYc*N{xzH*;3h4ti|Ct>(907BYnNj1i`t05r_jz7k|Sx%Dp8>tBp& zvIlAgW$*6Z!$6S{T-F4+b_^oQ6Bl?79C^I@Qkl;ljR2g?ZSQfYpNg@t@EHD4>vm9M z`qcwaYQD)df?cLHV=;^_b^{;^u53A8MAR(W3BiHR5!}J&j7k6Nl`P6ToKH@wvc1@c;=1R0rpq&E`SL;2?tKlsIg&1sbMf8(H`4JMqFbVdvv5qks*pKmSnZmmZ|>^GA6OvOOGz>?Iz0 zHdec(M~Q~9j#3opaYrSJY+MiNe%)?%J4u!w4|FB9x2A z$j%=2Ps>yCKHDt~M`)zI_VnR3OYSP&1-6&KcY|~zuD!$DO2w@_V7b&KR&QKD&9bza zbs3}DvUQyhJ>K&^YP6SQ3t_O=o;&1c6ht*xyi)b)O~9i5O70rCP2-=(`12d?%(0$( z9OolzAW);<{2d}=u61nUd#OXTYP#JYBIDjC(>o_E|@3%Hz7@df+G!J-jnlkZh;@4q^j{HD=ODJxWo&DMqC~M_j}fARE=A-6<1Y zJ2e=fX5*|994O#G7*74I8f*q=4xkaDa4~rDD^2jBx&$M|JvhanwZ6L=SosyEpk`=eI0J^Zq-qyF17J?1MmDDfjoxyaH4rZos#0} z^;mg5eNq|6e*y^cubX-vl#7YJ2Unhc5&P8-HOoz39Irr$W|{jCu=2gcd3$@`hg6se zf}zyK=3~uT=>yfR_1TOEdB)Q|m%h=i0ZhmyFw}=-%l6S%0(B`j+$#M-W@iL5aKf`UXNI)FT5Fj(K>3ACPXBf}YD8lzDZ z_&1kKcZy;ZEmJn>0DVPHeKh@;RBt}&J5Kj<6BtL6Fx3AyjPIl2 zoFH{6ejbm|FNL=4vl=5ljD>Ej>DZSa1XrS9H^p<7`6b65rC5!MR|@;8SvwiOK_fN$ zZxKev=l7v)pKg0RuN%yEW1sY&#hZe)vxG5PF{ST1;- z++^1%3u9JS7Enxsq@JFiDIV|9Tkvl2t#jpOU{#()A!DYtYaQr~WTFn3%9 ztKFaIRckjA#n=RT1Yz@*3B_fA_xj7jPn876Nscd@%p3 z0KB8=YBc!4eGty=DJgZ*07D#Dv(s3JAnKrLoJ5@iWR-RlPV};8sdUixiNBTNi(l(` zcsy&iIBNWFoo^;mcj4Cf+=8V0476Ks1EQ}+6i~P$)ob({t+a(lTb=Okp-bUETXYZt zcgtJa^;l8(z!cj5Y}4q2Vix_z=+(FzUF0_B&xkLQl|cI~JH?~%g&QvEZ$c=FmsL(r zsJbH0Qcc^Ruk|Xj7ilm}%&Ufe@N-=d=*=CJtT?pkd6&y6p2RWP^EqY%X6*mYBkSk4 zDUsZ+~2q z?zt@~$CoZI?|eeWqnAZ@&opkstqdmV9{rP;{OVo<=Zc<{PdL+QweaK_i@5Q0lj)P_ z3*j}cK1(z0`3Y#~i&bYLI?0#*^~Q&PYI5`N7U--LDJ0^f#IWCZIhT41 zMGGxvpBx|Y+y96&PbEyr`MdW~L>MA3VkE;}r08HJ zA{!m$O;VncCWrz;z!X>Z$RGK8?LXSsi0j*06=Ve0(g(vrHqTW=QHDa=qPaJy*N$}P zc5%J+j3)w-2Gl(D<>C3q)CeZ_AZ^6pjH z{XpAREV5isVC6TOUbk*@xV=l85x0rUu(Vv|K-~mZm;(vNeo*7|sD z6&mR_7@zBH{KPL|W8!KR-k~!@V69cDw!g4*Ah6hdycV^FH9pB^o0aOHL`R6%AOj=v&7msrhNsdfqxkOL9qCUDiNbU%(4K9uW&IIMXZQO{DPZQJM zQ;RRja$>{EfKl(rpY8bT4dc)i93uZu(%YKtcZ90|cS-2z$4ba_^V})#+Yl2)$nPP5 zKeBo-HMQZvA|8to?Z3~k5HsZfpaWO6y#okK4PklG}ix)+F5-K z>NYJffh%-Mja(VK31gkn&lqv^LK((LA zP^luEQ~|Z!evR(s#I$`q?|-MY?!So?U~bdI(wCxGcgjt8eXWlHno5&3%T3?&vMSLa zX5$S23|n`ldz<^>VJcfQJ5ZRbS>fD*I5!3zp6JG>Hhl}S<84zXH=A$+Y>$%tHRZeh zQ#H*)i%e;nx7s%a&bbW~hhw>XJ=RN3&k)E|JB&57WVB`b#SOG&*J+F17CkVzr{3U8 z^{qI!~6%#3e3*`N7Gq`HT}MAoKZt!Fr`LLP+A10z-W~EA>Bwf(%msa zKpFw1LAs;`q#L9|Iz~u$H$30}i|5sj9mkHn`R=}U-Pd)VpA)Br&yD1{ApEUA)*EB$ ze;X*Rq8AMCJ(N(oJ|ID9c?}RgzOP>&sR1~Dlu)ZsV(X?ePQ%B--3EwzBItH6561Y;1p+SM)T$+zd)gU8?YOcgYqQhvYzPo(f!w2;HgB(Qf5V%fWK-28~I9{1XiW;VlgFh!mhM5g>XECOFNzqGNg5`T*p z64qiJR#;0)oQUw=_L=W(8AlZOxF9DI$(H*dffjf>xIJ>PHP6MBv!3%SlYFp{Pm#}M zB!+x@e8@ ze+n|AD$t)5^v}b>{1|b*sXOis@E0#_p9MR9__|*rGc3t(yjWVrbW`SHEf8ad-T7li z(S9@0Juzdi(e;n%V$Kl|k3$ER*f#1p1%^9Pt7VR288M;juiZ#i)(pNCOmD9LQK`(x z{D9r1QaOrKQabr*UN3x9{g~^BY}qP!#BEdvb?R|7_$&f@;-=9B*^j+r196k5rF@Cu zMwL*1r1yko#3pgfgXQ^#h{=+BG3d)waTre3z@Y*~igt7nzNf#YH>X-z!%mvXN_*!s zP7g&F`6z$$K)K}e-5kJe;y@N_f=|AdGLnBpc-J?2ik*klsy?4R=-$hulD+elbuX#z zh34CSnB4Oi8w9d=&1w*%wSX#}D2&RJ9HcB_8bFLgpC`c5lwhajrzSK>#Z6!9*kBU8 zCL?0z6q8u*Xa2kM4aL}c!P3jOaHwCRLUNt@0i@}hYg|0VN9?W~u)ThkyuBTrLFMyt zGrgRFOV7F~ z37W-VsW?of34e|#W35ux`zpc58v!_)P;VjY&vd!Tcxs5iKG~5lunLZseZY!08$Rxd{qdV#joOy zv43f7t)uktDHnt;KXf8vP3;Ry;`WPzM?O+MsAcyv~{oW=H*VE)xK8k9p0 zt9q(ShiLD(*4t<%G=qTDvrL)I!l0rHbUxmFzFYf_!+h;nYma_|-a#5wto{w)Dq5$B z)d+qtX4O*sb~i50?G7ZhLRnDc-D=! zf^BhFPRy`<;JL{LSt;uRaPc7h*|b#%{BzX4U0^+&$l4w^D#s zoVoBH{(z1*a(nOzRLJP81)H)iSdlD?pKVP!xJA!A9k6kg=~Yo-94>c5Dit>p4OQwm zYb$}*vd5(zbE=qQNmsPUsV3{LDJ-eT9UkPu;$XOr z*yL_u2269phfay*@vqCVdpCtVy9xm@pt1RBBq6EZqk!FLh&z)e@6&({YGcf{?XAuxe_5+CBxE3ch8<$>yuFGoWql zqZ=_lI$Hk87-aAdW!gAHIZZ?I8Z!{dcpuJZ>@d{R$H0MD;QCozntEI^4glN`4`{^q zn57)2LVq+6=qvb@(_b5?lL>0*qbqlJVv|jECow_|H(y5Q&&;IxkwJr?c5Po}YJF!h zKcVTlnBJ+7%k4iqq8T43N~b4`^s!D_?>irn{BT$&hSuP+p_F1@R@+M_iNWY1!efn# ztwynmne21n3u4($pb_fQ>v&Z=Gs}effp5-Rh%h3cEDSWFoR0tRrZv*vu^Bz>Jm|}~ z*WhfKAW}uj5W~a}unjA@NwtVX`H^K@&`JizL3@u*JYXl%iJWWc(_76JZJVawbsRU3 zKbdZM_Pn%o%&$TAYVSgK6n>68+fAaEX$L+{Eik65IU^GsL}WU`b@HjDwL9l^3`7d{ zTeNtP8jtQk>Ah-sRA^Nt=h2q_amkwWO>aCif>8=hq*vn8+d5(yU2dBy6bV(2D(7h_ z4$vTQyB3`qvk^`3o*S^G8L`~_br7c~%U+>a%T?l|wzaa@K=S-4kKIR`%!0)ozDGHd z#f5cb9#k$+x=WN-zbg|cgujn^YReF7x6Nk>iv=ef69rzQJBFFCk)@`eq3;79#C34J zg>z&0I54K^aEfMeahY$+AN2i-E_%XCGJa*<6m=vvXnhP(XMbm~Pl&1VN9^}sjWOQo ziDQ+6Iy{+Ab>2RD`ufEGW4jJqey7hPxjzPguU>u}(Ad*TX))4^&uHM^E#GXzFt6Z} zd+c{d^?qz62&V&+C)V0ra1i$cUU>Eup})IdI3yU)4MY78qUs!h$YpaJ=~G_G!yLrn zAZz7blM4C5}ZF@!-WXxK_qn1HW}Y(byYbyK)UA2{iiwV9%C!$k4_zEwKKLUx5*xWG?ADXq9HGjh7j%(6@u4o2h|YIp$^Dg( zmce#C^rvUd&o}ko4@7rSZCa|#*jF_~J>nKMUp%3BloL(l6c%dV6OJ{%t5#xl9I4%t zPoi9It=^y#&2xfM5Z7HHwHEZ--V8pE{$n86-cVi!rd@00Qox#{K>8GmTB7r$K1gnM zwqj`Rr|P(CeR_iacFw>j^aBGDNI15#geKzz2L2&ozQu=0Vp6j{}dDUr>dC zDoo*cc1#|WASI4-zTkQ*>|BB-DiDA#_-w>PsV>6;YI~B*&4+-7;;Sbe`^pMgwQV)! zu*m&GaWOJtVuEuAb0ozYc*=48Ea9Ulp=miIT||b3*4eZj?F+h8V5|Fqtc!yr=W-=k zeCvr#!@Hw*75czy$-pYXml_QCW`{JF_DKRTqp1|_lz9sZr4%)CXkQiOaA_lVlo)W(kj{Gzja36FN<^=4(urv%$Jtq%jNBX6$SE0kux z<&Anc#hr`yG|qlxT#EW<>EeHuk-36uvs7)iMgJNgFE9+aVE7Fdlsa}N`stE9aWzQg znAjkCH%$`{$GNl+fF~*&ksOi{+H4h9ET4NJhlQj?3gZ%shTm^bJwug&C~}($ zF@HMG9imXY0hb(_dO)t5&S&lU|BSBo9K{|CHkLyE`=n%Kfxk#DS0Kw=f~+c)>9io&hDPE=yvo9E_)OqRvIYCGaaTe zSCAa;(zKIs5au^4_#9m=^7pq@G=J#9Zgm{nc)wi3gx$;(r=$97XQx5R zZB2kTYj>6GrUOb6YIHD%cdPBcXBt2Jt>4sfqk?{A-TGjx63DW`7Frmh$m=zUmSvmR zR#Q!xYW4W0S`lkb#_PdPcX^rlErwpy?bBz#EdD)}W6(xqZi-~G3>PA!B}4;K2ERxH z>~{Q^P5{i%tT*uMq)`Y4B8bhf8d}gXhK*^IC*zY4(B$Vo*G6WkDoNe z$2+oZt9W>IjkC#L1If;!W!~}A9bcaRiXpMYpV}PBBp_ZwqhHgD`T>H!EwVijtB?dV zR_lr0 zRp^$XFJB;p>Kg_Ivn3^Q&^H8z6#M-7!(Hy+TxLT+AIw%gU_8X?87KfNu<|ojhf!0q zLpCAjMg~#7e3;yhto5`s&RkMTK*?GpuQ~9IIP6%+Gh(4cn2SOH;P0yxj~9d|izBdR zp_#)pvA<8yrv~iRCkmb(qp+U(H^z@yrzpW{BT!tzRK#9j>^l@`sj+*hNu+y1 z0{4II@38;fmZR-cM;S4nLS)q1Q|#WkdyDB7khMJ@^nI9nP_s(Y&G?KrQaO^tWdx`p zW4kW3pq5?6sMUvxAA6+aSU3bNst^5V95S<;gQ%jxnN7TGA}|x>v&)iaGEQRsN%*~g z|F?Se#n;$P*X-C|exv_WdGo!d@<#(-h;wSm$Io2^?=TD%h2KgQq>fI=#HbX%aQH@@85ErFCrdoOdO;)Zc9f#5i|Ge*o^`(O07erW;SWRnZ0#lhyd zop1326NM)nu&=C0#l%hDNRV-)=fst|_q!(k*OL!T=gDBlH#IJ0L$l~-+1g4U|4Ts{ zV!08V+h1?Jl{B?9yu+m-;kyh!rAEtNpn%%t(@H-%cI%ZQj|Y#C6--+=Gr6mJP5FZ- zTZoIV@Z#oe>PRH|%CB3=4Zt)v9~=y5oa)ji16kmh>AW9hwt8NAzZ$h*R&7gw8gOx% zx&$to{S3k<-f zp$8cQAJCB+?Z$pjQrbZ)PJLl0Lt?xKjivGnE(n}3lySVA;XM2jRZ}h2!StuZ@ET9( z&)r9yh+E$cE2|oCF2CXztf%S~E&g{u)Y`p#yx1Uplj;>(?NNmP;3U`rs>`VkWtf1Y zw17aUMTA^8^a6N)#OSTKP92s*6bC=kLR({3HUJ-hweYr^R**L&hZ<-XuRWt z-brfZpJ&EbRCo5Z;I4pcIuh$!!oP!&dmi2>&)(%= zmSau(TOd0z6ZYV0);7IB^*j5U<$?|-P^O6W_k7=h+e?TOzph!4Gt~FqCG6h0EB3U zpB4;mVy>y$+}VKv6TUc_&n=fI$E2o6e=?4muf^XP(Cc& zi5L6Ys?j#@#zs=5sf@W!^=I3pR!vx@pii!iB6Kl0#!0Hr+O4FZ1 z!UgEf9*~$kJmhLmSUS57-FIc(VO{Gg0)EaE)MU3$4DEG^qKPB}A&mCMn=2B#M9h^DDWXiwC1u%G~#B6a{Z?nv?R;J_g@^f5v~apGsec z*y(3qz^Fs#DC(qxwn>m%-lJijzh6mC+Fxf87X|Dm{G=)-F-8TAbNktU@~}Pihe=CV zOyLdEZL#4UA$b&5j&E!16U%4YCwYnv2d>8-hlR-B7=x4iRl$p_1R0@(g8ZRWm-KPg zwyEgyyAE^?+U#(KN*>R!_ZFjqBR(#I`tfhOp}vO53c6vl!y}87M5s3@2lw}hWGRYG zfqywePc=<7=)c>IxC*_YBQebx7a{HNogV8|aRhKtvm376UE42qmX&Oq56SDcW4=y} zdVQ;RJ29Zx`FBx>NnpTeztA3Lx13zdlIw+6B-}eulx^Q&_^;>fs<2IpUBt^a`k#Xn z=Uy_3F0m3a^GK4&Q*hTJ|CL-fE3y22d^v|4eU6W%?`8AniXh{!LMaO zXpgZYAG?=^dNrM|*oL=8gceS#M@VK&QMd6IF3Gbl&|1d^&y-3>b29>x|#Osi?f31@9QszF+Kg*z|aTEb@$8`PEnD&3cwKg zJqRyHc543GwfZr6D%I!S-v9h?2@yN_ACl!mLiyd8B&-g-&r;8;W+Jp8pZC^op{L42LS*j;WM1Ud3|+^=l9yqzD~>;tiya9?CoX-1|V@bv%*Mc1DE)5}keKxcyYEld4%-oDys)V{Uj zP!M4!s=qOBUOf~(K-IIA${kvJ{vA?B_w133wX{i?I&k4uoob#Pe$1zE#sFh~(sB^% z@0e{sVS@iXJe2XnkDJw68-5mKmjFqu5bxC6W%9846r;tBQMRH)KRO4o3`HPD;|m@h zO>B9LDCaRfL`Fh}v%rny$4)py%pU4U%p;rTS@GA1LsU`}#y?cTpDe&^!KJ=)mEqYo z&67c8p0hc*9DZnHdFH#XJ;zFQS>|Sdu%e9}P8jRsPaa~vR8M~YIc+hy=g<w=R=)~s+$rQgQickR^TQ4+;7IAs zt-FRG{PY&b=~dcc5NneXQA~l6$gpHy% zbz41fTKWwIe>a{$NGw~gKsT%*{34>V@#zn-@uQxOr3>r=k<|#wHErfXyTP;4-P1u( z(HonjZHM7n_M!ty@CC~9mtsxHX@SWf)3JF1Z*bQ{zJVd#pJC|rUC~KyLs6}BGoXMH zxNS$m#hr8YfT+AieucEdG{po|)K=Z>RsVlIuUUz~V!BAd5gQCED ziSK4#sv|l;o_`v=&8SrHFeyoO=5k{N9nCnj zuoeO+C2hhfc@m}=G68C{WUvtKn(zlJe`#6CC@66G{H0%hX#D;U=r7$ClsC1&ftHMG z8l0i|mPrkCB(&XBJ=Pxj7Ws1U?4}5UH}`q2|3-E5uiXOY|7!ubEobPHG!ETaoq!xu zoQbGkh=Y{sz8bp{LLg7nPh->OjRA+~@)t&k47HAd?W;(lS6^d~KlY$^#E`#NtvPh0 z$?95C6RS>KVAdQyqubSk)7l0!!@nO^d?~>(y^>;oQOjps)-qwD-(VP9sZtPW+<{+7 z$v|G=`$T>}Rj+&>vkS`+7ie8K1W$!hHWNR<7;LAHvBvTk;7{7=nC@v5a$gn&ZLx5! zZGA}nuYI*xi%q92a~Sk#<}VG2zN_s_({y^VclnAoJ39bCFP-Bu+vm8V)GD&A^h+8# zCh6Q>;i+9#mTfN}; zn@gI^4Ty~BqX-VcWgBR$+uc=c^}#{xW@uB{?^1RC@;NlNL2Gn4jP;NNEOGq%!n*ZI z`ZWXZ559Em%))yES$uLD5{34ghn3K$_hP`C*olFOG7Lax&($vR=yQNN$z z`!V`LGK$Xbuzoc9uiEV^)g=h22gJkfd?_6&x&9SV(cWYZJm!DG@Ud@!>g1s905w@y z*}Ht)T6}tscfAJ*`szKl@83vwabFU<^Fk!* zzUPJz%q4o)NVU3^v-aGgkQPvfxR;;Z$nUJ*uc8XuOJ_PMmkCKMl(w|+6~6v#JQfY` zlss`%&(+q}$Pd!wyp3w}U|QQX=^IDCwPx2m@)ewAat$4b)|3K-%Z5h88X^AD*NVNn z|E7MuMPykVj;NSk?0bPFh^c6YT-Rq?EPKZu-okbx%9`xKuf}^c1tL)Mbv&+FJZTdq zZ5OFuurMEzw?%t?6%*`uc=+*rbiERP#^ofY#aHy8PT1CL6XA&cB4d+HPKZ33gq;>a zXK_DyX=~uqZY1L2)T2|4P8Shi*bLviM>K$Q$z}^pY!kN@ZjpgK9>mNfH9*?gt(aJ6 zBk@mwo$9f$m=Lu&hBl@^|5Y8;fh}#I3=h_HpJy1v&;yy!U?`CJ#%g)wHUYGVPj85c z4Ji2GqCWS2fTFe~fP!nunD73)^}2P}SovvB=vR{tDXix2QSzJLIfw8ec-UPq<}s19 z7}>MNvf*PEaBKhyM?(}*f7H(+I+E$CPT^~6v|2;mQs$zD>S)%UgIuohJx3*Dnvy67 zbRlf89R$Nr`~udEUJ9R2I=r<%AMRQ@`|Dz3`*ba95*_=|<9U1sNhvzJv2q|^pF?BE zbicWmL1fIEXp#-y(oKqKfP=TGGfkd(<;3R;UXzyE=zH2F=NFsuto>!pfe|H8Al?Uf zzIBjZr*Zl$Qc<;TK~}M-74TbLVC40 zi=>?;L5(BdfgCn%j#k)VJBou0G)=QJuK87zb|7+dVW!%;%piKWdJ}jOpq0(N0)PlW z#kcma;8+UrZuhj!ElT1SmV-LEwp96cP~J*|_;**2?+U(#RoZAvfAbsl^;*R*dO0pn zLE^<618H*#k>U%YQEm<}{o2`4`&{!Cy<|O%QYXqKm+0~&yg5FVL-z7}wdeAKg4pA4l$16gxw?F;=W@8L+nf4AQm!p|{=IIMnumsV&i=`ygo+AbE ztq*6$1^Gc^m!TIXH{%)tFM8bM_&boA!-RDzfa~yXFtD)yT~z;`H=}vUyR5ipW)5Tr zH@=xuIVc|t#t9v@fFiLScd(1k&jmEMWovec2}i;2EEOWj4nz3T!lEM3ds#MkMmxAd zJ9bcQqYG9hhZ>_dN%-I6%ted?c|8l4yC7_7n*!6opiRRt9c$IYE8j+)GbidHtNb1* zq>B?V;#jygaEU_oz*@O{{~B$gXWEo!H8I@fe1e(!>Gx1?)@K-AG72d_xZ{ShtpM^} zG7j1SsS$PE(Xxwf+jp8?Cuwi|%H4nHeSUb_;hg!>``N?j7DgMZ*7n%`%O-KUTkZ>J?Cjls?_zlyP`tiBn)~)% zd8r+m`Ety>S9Udg`>!q%-6X*sVfJSw-~xT_JrS@Qqa(X*J<{!797jk+U7#t;AQX^M%dHu%bV=|~m?oy3%I z2w1hs3kGVR2s6M71Ihk3j|mrsf5agWsy>D?z;nL*JyIs5jK=kcfP)p?BGtmSY!*79 zq~^xK@ykBT%VY|FFqKXW)Uk!0AXjd~bxWJn#|p7>1E(qN_fV#o!Mp9IT!y@{Ung{> zo#SCV9=Ojn$Ruzm{p!X8KNkoAZk2lag<5B^8Bo*xk>fLXKKF*e1sN-mAeblE0gz7K z!ctDxf)znIixV2L&$(QE?pgDa_(}u$!4l4+b&f>5kdckl?OX`nh}O3&|aD~lUd zrOk&WhOCP`0y|BI8~^pcvS>n-tUAB7FDKsHJld2NW7|)`%9ffaERPcLB`d{szTL9U z4_bJ)6sb_0(+2(+qB&7inbfn-K2mMlekZaUU#ra}y)m*6Law4Jgd85a6+wPZ;SPXX5u0 zkq*9|-t1J9F+cgZXtxf~C%2U)kT||ZHJ{x#{t#59EHGLynz&7TRxQ8f5zPp1|M1;; zahf)Dv=ekq_0of$?i+n(OyY_e&8wy}`^Wu99j^}Ax@Yw>9w+)aRFgUptpxxg#?CZRS%M8)I>#e)Hl@`ZOuI_e*qxN7a)?xW2Mty2MZhlLzfPmr!(H!ZQ| z1>)Y7Z?u1R??Yno<;$5B;;XYLj9Q_4%{cAtL=&WcwNk2jTn)pmTI(*fyT4s9P*&5K zesQmGRwAe=kB_FP0lv73$n#iojYE{SxDUh2riu z3N#%HqfdV%?cUT79FIi1X2nk5=FK~^8Li5*Ir6ys*eAs7hJ2;mYjebzKMDm+%T@oX5XHJGzPp~ zrsgxK58=t@*!0NQ9yv?>^CqUqKzZr=*Een0HAp(v&tej%D^A)gnK=qdO~V zsFs{YPF~&n9&+*cFC$)4zNe6GHHtw;4tA9?)Cm=FiqPp zeDcd2!6&{EGt#w^!cT-RTwBvPyP?-B+eX(bz4YJdbM6jK-@gLz!}UVKqTk|26$=W6 zdMu+=tCQ^?F63H14jJw~`#J-v=<_DO_I0`cI-Nh@dJ058xZ=VJ}`O=yx z>aQ=d;LABIeN9uONxw68Iz#-_U;0tZhYpKc_+tp-z=XLgkEQz*=D@8qbvxJd$?WLl z-hvWHYt`2u zu2aU1EpA+S?O}=*lx=U8<42{Ns)j_7nH9`x7A#BRnHF(m((h@XwZxS5+N=6KCPQTM z^g3SvD=&a8IciqH^}v2lidHu`ri@wE_VzP4`p378Dx_=p$P3|z183owT|rPg@Bys% zR<;*{w?s^%BwTi{d{=&0@VSZ~VZG=c=C@1}TYqZ%;rYBE+!4MKGZG^@0=iCZy}s1w zw3BM!hp*VAjhtUyap5YIJO1_3ZR98~IPy>cRQpv@LJWgy?$-uW>I039J4(SuFooWN z7_=QQ9S}S?5CvXI{Kz{r-lrvI2EIKo%lSaWg~M(ZA{<}i3@_z=$^O-Y&R=l!E1nDv z)f}nJLdn|F(*5NiXoXE{IBA^>H=k%Du3bU>my{US_hez5b^otIT1WoWL|H zF)wV)MGK%aov&~I!ar7w&AmN^HP*9xv!>2I!1ysqczP>xI2j_>ker9`6!8(gsE-`?cLVs0Caz}{N}0d zrHfRt(hv~f6I4SdQ9Jv@kw44K<2u7;I7xpN2n@pVuY>d{H!ma!wUKR4i(m$NbGImm zH=e|GzS;O`IUy;S&|9)__Bkt!c94JJGSx;FSyEo}ftCoIdvWYW0c^=m)~3r}Vm|d2 zBLVLDMVlx&M!=R>noZpMe7uMShdqrrS0_=$xL|WNGHv+v!0zr%@^}RtFD{xaxT&?= ztec_gczvL5;660Pk8D^5x$o#I7JKuiBybYORD-0N)<$uE;xMIo4&ryj+Y7_O>~X{= zi6Fb94l=gDCZvh&z^=M6Xdgcmtob==PfGIrw2|pPt zDRauAV<7~bhSO0^ISPw*f&<5%+{l%ELvAISjtP@TV5a!!j15Ds9JbJH4k}6~>=XPjX_iSfy8r7In|`nfc!QR4y12a zg}0=X+GZ7jceZk{c5-Y&!)%~hIs36X{{sF935X+PYF>~hruVPF9;ra%e= zfkN-p5oc0q?w(8@7-w$Zdlh9PcSjF!Wj5^LzQB02L%ID&UJ|PVi$~Lk19$Dk@ACRq zHpulK9e=Xgp(Kf4lB{zLC(%yeF4jB38g0j8;oWq$?a@=GmBew7Q8SdeyyULs)(6KBM5xf9@r<76~RT@VsM8 z3Dl|GoEC=PBkr>o`#|k<%KUIHStK=z7D~&^`=hgP=8j=l*P;Z6029X~lobn{Cl^lT^4ZSd)O^4d^ykpI+2uj}h z9;3;um@w3`!=QthF>&9-z$a%hIy(9f*w|ob&r-|`mXj+scDhB-{r-vF{|>Z5In*5a z>UFuIH8!^Nz}i`t281guI_5I-`}}<45a`R{ibn-jV87NFJ(w$*K|KfmveKbA03T#3 zuFM=vWMY;8{6t=tPM&b&-BV3_{z-;>s| z;3+bNP=1=w{gs|Mqf!njsXSf|-DT~vn!o*}UM-g^d_-kEnggf@84>KMfyW-Fk5EYlD`A z|KXgQz@{}-D{Z*pvF$;k)|@ZI0?1gXUvg3?!Wwx#5PdPru--uNi%XJmaOvrBTefws z=wy^A)cX-Y!m!GD!MzM{ZL7a5nAy0T03CZz`L8w5%iwh28`&?PiTwb)$s?1>!B|e% z3zYDB#T}bL(wXQ>bPw*V4Y5oCO?SI%R*w%w<}5~1z>gCjbG5-TXDSFg#(|EM^fyNz zy5@3qpED+7Q^N4M?~%;f?IqA!U%pV<6aMA2O5;=6!k!TD^I|jo2oQ z5fYXv8l7T#wZ^5}JL0CYfF7TDw4)_ynqMiNu-!uiFMdpK)om?)aCTb1a?VdZgBj9n zl|uUZdX%Y)`!!sd`gNt2{VJZ&nt6zWqfruUQ`0lM$9K9kvHUo~57NAUjlloPA9m1* zY+84j!W$F2o)o~QR?O;U=}fTx1+ahpewjDxKr+=I zjaf1hYjgFtY+3*%ix77ZOPXvZzsoY(=*(Q|*@>X*AWToHhkJr@BuGS{x42Y2+FU9` zl_d2fXQE3xjwfUtS20mjq0%MXq|scZf@UAzpBmWI-Se!+pNk(Wp05Clb76Qg^sS11 zEiqWNBJFF8yBQ?>glEEx-`%)#P{qORP_ft$DL35HRmIDmBgkWDb&CLRT=nmS#UT9p z%81QYneUQDwzgL9i3 z^T%9@5Z1XS|4>IsWF}*D1CjkPA|nkE+!++6)JqSGf^b3V0j}}<65!v(Sxl|fjNymR zh){$@{i}o59uQlH8ZT1>SGhoH(Es#I+{8Kf8vD~;!{fyszyw)BwB_+wRQC|&;DV9f zYo0%_ZuTl?UIAGSkydLFc)j@{Dp*Y%kLxG9AM|4>G=Ys}Qmd66B7NQXZLYbsJayC& zBBL8)t)$=7kq2L65+|efpJoXY8R=n3BYB%fIx6BbL%nQ6y2a$eQa<%SmBJBTNgLP+ zepeLNKDbJmLiSH5*kjtia#sHSnlScA0hhm^)D8FR9yNctH_8cX*CRYIy77cfGOQ4= zCADqF6zYx#=6t@WOA#v^6n{lSa{?x7nA_0wqB+xia*c_2C^|5bmD?rU?E zP03ju##0MQ%rR1`5O^(jtL$&px@#0hm_qYp@QT{SMQHYyBzyE0fhhomV`Bd=Sw)@P zQPe>)bMm*DHdfS|z<>X`Sh>%FG@Z16m^mfujaWiM4OoR~iBztc?i}w;9;p6=oNPdo zyBAD-*REBl*f~$!TQ2b)qtK%4Yx8T=BcJ=xmO>mk3sN5f789?uHhm2~M>uvNQF8GW zPj+;FBb;u!3t;38$bKME0>@86^jxmogFajdmFXgaz)JI+9V(xDu7f_un41ZXwod5y z!!xyE=byyrv0y8*8HQ_;FffIo$dak{zDe=}Sd!+=rLI*Z27AA%wraqmn3XYMM-Z7oe1zm;*bRu;BKAfqOfAH5NAG^G``#a~z zE6#T?uNq%omCyf?ViG)krrleN3AIIH;Y?rK3sFN!rh9tMHkLW;ax_4m z2A5x!@9_vkChn2gBuXNH2d%lB&@9n0{8;np&BU+#!u!_lf^ujx!Ry0Sj>&t`g{B5;x%YZT>L0foRWLsKD=mRzxPDTCNe|N? zPIvVMi-1Q8>3kYu9sNk!>HX0VG$aVG#7tRH3;FNn`o_^typt&0z z+E@j0xt^rx7)E$FQKKh0*wnL8TcKcJ7}PEvOspJzxnk`ork_E-3F&Knn0~Zy6svXm zZQU@wVVIU_{lX;5Y58;`vT4#;1PDq9C$~LSn|Gui24i3-$mE(m$6@z-k1fGS&xXw< zM&@vd*%f+G<2Ae2R$&}*!ISg%zDH6c;d;Pb;Eg<56(<)7mzge*gLz&4ABjLghhvIeg2C0a%h->xtqY##AOLDO%r#l@%pt`3o|0D0H|r=TpebEkSAqN`iqI<+aH_**Qcb@2A{);>JHs)Fh#+sjZ;R51rLLT(;B43>4nvL<7FxtLkfGD)tRFz4CPD9_HTpNU~#C z#0;c2F{aL&1#|q=<{;9-xqQv}&4Q)Vyvl`@w{N0+S(R4itOapB>09`*|wl4w*ywP;IiJTR*j#|ExlQ|`3pkLv~x^k&3(1P-(FmHArToNnf(3j-^{ z!O0#5X1IJVxmb0B)Ss{YhR)6OA_|LO8OK7}VdtXeiM?CI%BX85oXo}mGuFbRGm zCHPA1@`^P-tc@y8VEqr>n|FoQDP)$!BBf-d#iQ1JTC~+fSCD)|J%ZArlkkdyH2cm= z<9KA58EVr~ckB75-_?GC+W(LiGyxqSdTSGn4m4-4_K4n!c&1gi>@>6GBuywkYUxJ+ z7sl+(>6Tw|`eF!{zS7s>s*L)}NR2jkt*xzso+kyiXd<@%*8&(u^(2pTv6>9JthoJF z^dX)A`*txTp5UEsDbp$IuSiC4KblW|nUc>?5zt%b+BN9BG4U2Val2sE&FJZ+jb#*? zx%w#yH0QN=GE8fTjHu14wq~e5=19P438FE^u8CxCdIn zYwwFyHbh^2)yP^Dw(AZ;uO(;~%nbd8-ZiEAXE5Tv($JsvNWlGt|1o{-rvWJl_GeQ$ z2qgRc8uPT5Kc1D~+oBxZxpogz0k-;>#Z}wcy63=F$$d#U2cPk^`)K^NJ}rp_Y4nwV zV4reg=D5u5;7LAv=^!I)v08*D`kf}qK&mO=!R!i8VEa(u0M>HCj(($#+%5DurHiH0#Pq)O7Lz)2a>mPd;-Xb6_GrS6_efo(=|%9D;4~V-D$6Nqtm90-()piE-go*A zFGdT-^QV3qpH`rE#<&q`vy->S!VwSS;h?Z2SS+ZWy#Ya5BpBb|Blycr6E!w zaYE9JJ_od@(m{j*gI&p2A!)=-ql`dId zn$)tOrAZz2++);sa?0`OIB`*{JxecZWgA$UvUSn@do(4Mne})$?_Cd_@!^EVPJd_KMY#wal|M{A>eG;% zr^E%GUtG+2aw*jgw!Ly1(|Aisd8AF89>J^RMB%@SeYT=)aa8f+PZsLQ<`c^M;lVvI zrKs`$qvzu>sl-UPARq$L@z5R8IS2zo2uLF(UD93B-8qDGGYmt+ z0MhZE|A+Vcd^p#cbM5=yd$09dZJRQQ#KzId#LDKV{HS6PrutLjEV9K)5_BV9mq)kw z=Pq@T>JMoF-@&a3Xcv;47h%J9K6uy|RB&tzS9caabG&PJKaP$dV>K-^H>p`0`5zE2 zwY&B96N9@bALj4T8OGaAL}N~{KOzYPfwVqCkZAc4HFR$8?VllCSi=}qt(^91j_W)N_xCm zJmVg65ec7Af2;^xwcq@Ciq=SFw(0eW1yr3444MsKidh_z0>(?d>IG_AG2^Sz8|#o` zmb_2TD1GH`@9g_Q70^ghqW3W`!G3hwC+$-C{&hX4eURlF5tR-5%P1BmTFKY|K2#e| z>Jme2rr#|HU!HHwEqwvh8bc11N$Ye~?)tFjb>YaGb@Mt%SbzM}q12xj%b{h$)y70=@B#DP893OOnQZGMQ!Kekx^cxyup{Yay#thG~W z@^2kX`H6Ms0EP_`eb8k2xx1P8-{I597B#pPDT#exudYWl2!sCv_KU+_Lj^TbQ zl|jO0#RtPPEIA{h#|i(6JeL2I&shSD>tc5P>8H+eq+1`z&FczDGY`Bk9TUGeGAd^2 zG-{ew+gr}__i&@u|Mg3APM5jq+#+;x8_;h^Ng@FUEi=|8Aq9Qf)GzdFu-%7>j6lid z4*t#Z)-4De9mAnH8-KH~BAWXd`6XR;xo}b#p;+B~YHift;Dl)AYgJJZ%QWo3>z$O1 z@@r*m4EhKJw}}mnhsxFGVX^KbNw+sLZZ7eooof6)Vq@Q}*{n=0af<)a7;rl428rGxGKAEPI|BH zTKy-qxkI;P+Z99mE=_rd9>C?QXW5d*Dl`1y!%JjV3X)5^8NXt@>%LdxdWN^t zNXsJ!oK%iJQi?{<4&HFqm=r1MPdaJnmLx(qQ|&i2VMMvz7{du<*l{=kT|_8Zw%R>6 z$He-`fN@(B85@wEN?fjQF9HKTzNla9I)ian{=1f!#fr0*aLcX;qi%S4xQW03DVJ!b z*6CE9N(uKyMBEEAC_Q4R;}bymDje`klgPNzHCJeZ48-t!P za%LrNg`<^xJ%2^Fc0W6Ac{FrD=DC{d@DMt2^XUk~ND#s!lUBR#dseZS)!^MAh7Qi4 zxkt@re?L+Bra_9)3sYBI134A}iiCluMwP`8Vi)aMh#-aJwAAjnd$(42YY{GiIjKYp zVQ@-NZ)5beI!nlPAG+Vhx8iX)O-Y|VLQbmSlsRLP59QO2_*l7LdPkREX+{PaqjsS7 z7dDb6eZCWRrGNXEfb`t&xy(9i>79$DM^r$ii&09SxM-j)}Q|*U9^-Z zoz4dm$p7MSX*hhK?QCA9!xBPnw4D!@>cUhrU3d9M;L$4U9~VTRg~@W0W)a&f&$wa1wmMtN54#B5mtSxa z_5k6jMK4L7{$|OXm|-fA_LU=lC+_^BcAT{FLl!X6{5ce8D!XBEHEjQs?-VTcdU5mWnlR zUb{z(jE|GftI2n#xvyxPTkT0C{Tfjbb4~Y!PF4hn+7i7H&09OTR2tVbK54nFKDdQ< zd?oKK=~?V5u-E4~G7s1Vsx*Z}VseH-RXM`N<^WcN9zKt}=*EjRzUmcX8XjnU^62WO)Jc_M048`uYfcku49g3 z(da!A0h2!-0ZeNtDlWZ=Wozv~G=p$q)!lNv*Bq+1m^qc*N7J*!;fS7OD~gYVuShz8 zM}d9N1GoM>3uk~@i{+m2vJ|vQNVckrw}D&P-oBZhI(>Sv3Y0ymr@l=eg&diYl@!7z z^38Gzv%|XTJcHlE=oCF=seWC*Yq5cVBZlx>r9R1u^l8?RvvjndELY{ z^7xL<{LS=_C5=^6!8LlEgVNLao~@AG;Lgm1V^J z9Z%06NNwDdpio7$+4-=2;eBVNEBaIB?vMW$@qN?UGz+&TeJRUDX@4`)CJWp$A_cwQ zKF3cRP0E&usan%BXSbaFfea$t`=J^s5kh*Q*8G*Bz$JWcdJ55HlWW5JnFYbG*bY5< zC1!hD0~;Vwrm{!mnye<93mvVri&WC9i5&B2ELj`WYuV zOBunPMn-n)#Ka_=NMq-3N%J8aFhIyd#`=p=;qdD5TJmw^kdEXvU2rsYdhB3uNPze6J3h-W35Aryqkm{F zX08;h?iP8ewe3R51_~`QD*J@!^xUM6QYXGoSb+oc_D>~hJZN-#fZZ79&&|E(5-69* zwT@ni0nutu0-ECWUT`WW}EI;Eu1jY9Tj6zTDPV{-iM=gJXoLh4L;~7auFi z9mk$X?!~mdJO0w;aBrl6@lPzSKA;%%;TMnkJHmGGD)m@QU`<7~=(pNP(bvK4-XOcy zP9ECY@yg+yFiAed96MjXP``ctYyV34XawQT@)#u5#Xq6n|6Sn3~4yP7)>nao;j8;F> zKs}}0F?Ahi>Yr9!<_Xakx_wgX_xH?%c(j$wl`vN07rJ5m=Smyhp*OI7bvt_~-Ph`V z8POj2pxJKWowgts3Fq1e>iYXWhd)95HIxqnXJ&@E3eJGPYn+oTwD+A~dT+2bvac|U;MXp#d4$3LJ< zKj#StT-61!8znpPgqSW5VS@DUIe+>h9ql{$5TXNS0Q_QJIG-Z^2Z;sl&2W{8m50HV zXvfnud@u=Mo*bPR3T_#nT*cfVD}#8FG4wi>yb_7I`{N}fjD_eQJd3BMh`xBHX-C8i za`lx{)PB|_pC3~{FI^VWX3D69!FlEsHH+!ogf+OGJtzPr&pf#8zpY_T4`AsBKUWzz zmXE9;dKCql8td7E!Pe?J-r=rOG|ekBdz9Mzzs<1a~wz3TW86k_!rPkx)~ z*x7s?b#}Q$q##!Llr6jq%#eET7d!`U8YYyPg_25Jw_vq4?FN1R{IdM1szS$yJvV*d zaI&&yn?>gJc~Dn`dx}Kr&_@9kWO3$NZpSVD;3%f)UHAp*|K!&cJM$N2`W5Ghig$x9 z+Mi>h5~J<2McO@y@UJSz*X$IWo~jfvEGAoztGlNVub?7{={-;QWlvHn|5Bm6J#LJv zNiROxTG!)g9wl5Z_-)~=0b`kuZ%8mrQ+BU_ER;^hd0mg1rCh{rTY;$@fwnB54^W`Q z^u9Co_JisHbBC*|dRZxk%ui3jG{15*N_(QVSk^Nj;J?em82C_I@4d?B9 zsvDc|sU+}sJVU-LJ?+PmD|uY(wf)ZE%4$$9y!xkF!GIISmBGs>ogz(Xo~!ZTaMnM3 z4)!$2VLS(7{6$MVS!qI2T%1wInc(i3#5WEvS~dQ1K%)Dp*XQGtT#3JK4w^;RJ8`vmq zOg}Ra$5$6=^0_O}VAS>RZOR~QhTT8^1*hMgKwjm$_fiY+MJs9=)5Lu*tMg*aEyz#r zip_n9xl3dWis3To9al%DeE$_L=x1WPh61(985QI~9fvdYok#{^OMYqkVUJG4NJIp_ za2E{`(prB7arATd0}I1f56`ES3a!M-ef!^AeY+4#retTYffR>UC&Gajnl;cqW4Em1 zlP|(xZ~tg0#5B=1F4t*0NBc-_zD9c&-WB=r0M=TbHX$R}&+&e3?(G{~!=qbqfH~7O ziDA=&CSLk5Tv+7VY?xg8L-mz4B1Ny)=-1abpQ&RU;49i7QT<;lyZjpbF)q|u4L>Ko zeq(}2@h%*8?PfIj5myf<6*L0Qh!UAM?7EhIwl8i*F|TjV5vO;jt-kj+GQ#BdO+t(@ z9^ji|VJ1=0Cvn@7H+hoWL}4^+cNm4$>mp%f?7A$mYacbW3I14Ly!J|g9JJM9jKkau zAUtsgQamT@x(7I=7fTth7HM&Bm4nBf2c_skI+X(E9&VI(%BX}>JLfQYn)%?XkR0+S zCj6c^J(OB;VC9U!=*#@>nxs@jldNRZdnfWEX9+tApeU2;$V!p9Q}fJFb-i)drUCb4 z?>{PM+3gV04h(SkM?3Be{4%-^uzE|QnWbG7Nye2yiTrX{i7-|+ToTA}A{U(XZlA(b z>tq<~(>kkLEd$O*ZRGga=jA-kqDJ@z2Rx6)(veV)R)lzcpOCh;J&2nQ*D$E5;+Si# z%=+AjA!67kq;Hh=CbEad>us8Go5at!tl@b1Ot*Uz>RB@544(^0apOo9CorCc0B#~^ z`#!Q?obiviO{DP^fHeujNFT9tiwdsQ7$tSmlr4+K*M7*jJM}Fkv}oP7!NenJZ5}vk zR~^--{_G~jWu?I{VZ^qsyra-j!aiL7p0_{T`xzegoDfTPRL9%B>bHNU(@G6Hg>;w7 zy&MrnESgco{Qw|ij=ek)p3p$$(>NBU)?4fN=#~Ojls9X^d~dF|H8>Vs4nDf?C zYJPT@hnx0Nz&Ih0+@Z*CnvCn{u>emSuAWqSi z8nx!ST8v>J>*r)Ld?H^W8r{_Q#LT@Pg5=7AJRJU8$CuY?N{N$wlobbYXe^<2;z9CI`pD`XZc(OIK$sOfAN+9gTrCEGHUo`7 z5$vBPGt>9SpBx!Wjeht0{?+*=Xp=70^xQi0)qk&cS553Vt6U6;nWvk#+%W7&gNK8a znKt$K*DG;+ad8K-4SHx^^ty+&s%sN+kU=sBhK_$+f>*$u2%i%_s?kKEQs$iIsbxyP z7_9$%=QNubq!z7?T%neyQ{$df4ogpid4*sT*D3j(7I?Nf^c3GFq;VQ2RT9xlfgEa% z44OY6M*OsWvs!-n-UZ7O$FagfI_R>BlBG))3*|V<3M@CDGZ!7J-OT1ldVAC$XQO3xmCcD{JZkA7$gjK|#|`iC6Ss-rrE5eXn~f|} z)*rzAmS_BSf(VVwh(>vq^Ri02$D8hVN*YM+{4e+PPf4KHuD^NEsi1xOjLNuW5ea#H zFf?P~Ddgz6w%RBCO6y-U-W%1LGHRs^-4&*wiGOZR9S8KylT;UHeJFRACp#W=)y&4) z)%%b0y`_9(0$69iBVZ@P?Wb~Lv`gL6j2$E^2X8%m?Y_C&^M!!49%t)N|6sO@;Nf#i z10;HfA-0h_zCO+m$A9{Rb@HllOvKKL%vg{{@ROeW|P*nJXMXp5LiI zNQgbC6212I^VVg^%mmQwsA*SWNw2%ooAWnxBwFuO9q%Yj24yj8JqTrO83;~1)GJ1= zt+GLlJPItKvC<~Eb}446n}2Vs^h%6}oCw{WN_}#OX_$4gJwNFKlN)yKO8m(;s z4qOAtN<9vA?k7w!E4zXym?mCFj4RIZ_i4Ys<|G;!o>1AA;6&E zy-$H7QJ6W*8ODdeJs*-{qdikDm?6q4N{^O&eNpI%!CCqLUDa6plc7;)Z9sNn48l(>u|t>roWZ*V6W5 zzwg-pl3IDD+cW&prA&B=5z`T3+@#^O)XYiW8p0nBCKhsrJ3Q&gC@FMQD|3 zh|({OI=hU`dzoW8T5dFy8dn&vcPuJ8KVIHVAm%hxjsPt>lC_`LvfV#C9J5A$yfR|m zCWBO2b>L5+!G-Rp1<%vf= z-#NeUUQ)`kZ1qd15FhJ*n#9%NfG*g`a+9jsWIUh#OL>9}$*LRidS9UwBQ0s+J8{w{ zFGV%d)iBx-%Po-GgSn9VGI_OATMS9Yl{o#)srHyIq>eDoS%TzA@i%s0LnP}!8W96< zA6)woR?B8aI>OyvnZ~mLOTuQT={;C__%x}zkGObp2eNGo)`?zc#&uD7-XGvq)1!9z znjeq#rW3juzjG}j`i4kS@TTmeRXT%ay67IPcY!YqCQIuq)s4n4+(e%K5$pI1#9T>b zW+jE9DuKjE85E3+^-3Mk!C2F-^x5-qf*JVw*82bIY%ER#xv@z4eLL#a0bHgtoSU)Z2Dd8}AF|*JMK5S(A|@wK zCMsp>j7UL)CS~1ey$-9LLl8Pn{cES=qWbB}N@B+!PqRtsv}-GS(fj-%sS=WT8})Lz zryPVSlfKrzWu-PLqqUosVy?K+?N40~)8EpM@IweK_aHL2BbPg(jU9HHjSnaHj(3iJ zCw~2n3$16z)Q`mvCc+X^?SO-HrLCpylJ6~yCkgMMda2OlBbls5I<;|LWq4NJ^>CGq zENg@O&tsi$F4)xf5fW!5^=?viG;ic*zfy$*`?kV z+ytYmeLIwuGXj=jxE1eSu$j!8doKJ9*k3%Zt*$rqxZx-bH>pgP zl|5T;-y2i!A8m}4@O*41z#712uo8T9@FVawAkymsnV86S4w~f8fz0?%$RMuSYfd6r zm>%5A4jw_zn5;AlNx=D(<_nS4|D+3WsDv3G=P{}2Wp%0a$1?^KP)eju@0I9CBI9j) zLgJ^05q+j1E9n{pNg7jNmhkJ31EL5VavnA|LsG{}z}!JpW+pQb)%E1rStst4kheR^ zmx+Iqs)Lhw^WJgwnnuS|qiP&d(DFrF)j(1+lT7J~x-VvFW)k2epD+)9{7T=239^v8 z3$vzs#>WF+RLhI-#-qZ1aMQ&nOhF4Q4j+Ls^d<|!>D`Ua$N2UaKc|MVM39`iHAe)Hu8W4VJ1PR(ma<2z?Yl%ncB~5 zP8l~~JhUK)_pvl1M0h|5{Z7b6DQga>=aAM`vE)Qw&F3vYWDnKbul=sC&cN8 z`42F)7cdw@Fr&S?ijg1i)u;kI3JM6!Vt)2){E{^6?1rv$8@an8*;ZFC#I#GQ%6+5+ z@U{*MewT`OWF}7|Tg6&i6LtosN8E%VJitMcJn*3fH6Qk1kf)%5w?+JTVhrr2w6n)2 z%&K;zJCMid^~8lGFjOl|DMgqCQ);(!^$AJ=Z4s_Tt(zz=YDGQ@C6BYJQ!a^Z{nx=6 zRvX%aSKhvC!RjH#;{; zW$ioe(BG!;a?(qf{x8qW@l$i7zt>ep?B5hc2i^MJ9LvNg_eQPy@upc2lLv+z zXSa6N59tiEuZcLl>Dn?T_Br||cr$Ji9FUmlbp{?7#8m?~Znz zr^q@|G(*09dSby_oKgz!F31gEsV0WAl^j~U7TT3o5Ev^0@eQLRKK0I zJ<6Bsvh?N3MZ_jy#prC+=@%S>U-Appf5R&F{5*U+L8EET1ZG;267sKJDGr2e&~e_F z$_`L-pevsLXlye+I+o-D_L)W!(3?6r={;(W(UElkO3-b)wCYhDfjWT65=b)Bhm|;o zCm-Rc(V0KEi2w+)HlhgeQGR8@njmo|m%}^Hmc!5=&u-Q3Ie@QXdgSzks#xdWXpGR4 zdto9*E_dH|bt6EMmP`up`M%N@_Y6XY?!)e-HODcFBd1Vhr5}ca$*{7uszl5cwKaH! z4;N-{@T;`0tJQ#OR#PA?j}bXmQL&5G?i^k0GaDV?X%kb> zNIz>#7e#h(2vs^6%(L#LsyS0R;wXwbpPbeQL;a{QWX}hcCs`DSsd@_+D`65)pHPbf zqG+s76D~Gouj&c2hcULXv@Ga|Ep}fn>S%>46^>&5II|e;_(VVf_kU+@W9Ni_N0zC{ zWL@SA0mkzXfp}Bv)>9#QA#&)@cGz_Uuex_E`8>Y0f#lPhG&f(XvtDT9Eav1NdVe1O znmfRP?IeGS>@OD@I^;NxT=axw>n53&AxI6 zq%=nxM6HCus${xxtM)iOs;FD`ui{#~ z__rzAhj;E*#NxnbTb5jQXWY*|Ux8t#YHlT|TJdCJ(rTYriJAyQ#GYs0!{O~s&Hym9 zbZ!1iRtBs(Wu=Ug=NisVuTBBi#X$X*8&gLPnkT}q_`Tv}Aimq1fNdLU0crg_;+ zc7HsWlE1bH`HxGyjejsh9n{Mr!q{xBFImIBgjGTgXa8B2nrn8sAY5@nUkGU}kCy6| z+qO;=qAhW8XxRux9S**c6lN|>R>rbb_O*~A&0Z6exLuyrOZ3HTKVi*Yo2|BD@({kn zBMn?jC$y;f%{KrCV5MqNU_tI-;^83rEJYW>P^a3jVyt(LNi7V-`VoysJI7ZdJ;u29 z`5v?W1%|%k+NWMuyf4FstH367xbPeCyuviE*=N)$?m{N6ag{%uE%@GdONZ|JN>;|! z`c3(XwuO1pJ#P3FlwRPRmm*Gy@Mq6;iB63AD+oalrMY3ZeCddjyw4KWo7eYK8 z)f+8kTFj(4>`%uNEL}8897Ced01hI}@WB0Dy<45;TwPfA!(Z3Bp@KC&xyJVk<*3n5fprl%sNMoufz|<_Vl zeZ`Pv2Yn7%1%Q*;hh!0_fi#-Y+|p+%x(?@g=!1i7el`=wY4*Fgm86y9ZP7*3Z>Q2x zFP5rq7bf+j+r*^OCeTL+=?NOCT}6#+0o64>8w@sHL~i-oE7f3{vP@5FP5oMOi9$sp?%K_#<;M0 z-O9u!6R!M-^AMmu;eL?;C&jM?Lm^p1Z=?lEU~94O(PpCT`e%?ln_P{g5?qXcT#2dk4+?9n_4|NV7I$EN}P>jj&tPXq9SR2uF+`ep^hIFh4np;V` z#Pa#4E+RAdTKR6W7mmr?#uDUPnL8Pe{{I1-66 z+)xuK^nZzcwD+~k7P1t~-6o_=H=R5~SP)Zvq|E3NOtUTg1sNT_RH;}_N6<`SMDic3D zT_C^`9{9pGqLRNeS;<#1A5@c6(-(3yhUx9IFEF{b0-Z0(_>MLb3}17?y$caP_Ar)- z6wjr%ti8U@7h-YA{J0SLj%e^u`S&M)lqts{k?e^8pS`*v!h1DNCY<$UNpv{9%(}I= zZNojd_8d8qj9hZ+Fl_g|{!?JS;$NZF@CJ|uEUmWh(Z_ZNY1(oz)9%6Q@CR$sS2vlu zondPut1+lK4HrIu#ur^z?@2ClA)1%qDN54D;2oWLYV`n_OkBsbN;dyr_m*5TCcBHKK9bs~_81N@$V6mJyOSkF1&) zimYHeUR#JH?yt?e_Yixsj1ag8x2@s%Ka*Z$Ri>(2Tv zx-3E|nQnEArY0AT^bPGXNcn-i9n_Y~D;cgrm9;%l9>ypY^*_F%=oHh7r9a60q=B617>d_5+t$>{S3v>w$G3&s9Z@}tYW=hnH2FcZ8 zhB-ZqaReYN^-tK9X#FdE{xiGd|HqLY)NCpukSQr4hy6QgBkFzG(?j0y_hkwl0DcJw zuM-h&#_uJK4Z{rvVFme?%Kf=Oj3m$heek}%SUOHRZohTB-cCEVyDbH|Ugk)a%JKd{ zsa12g&yh7GK4%EkKGV|#oluN_SPI~ zbP30PEY373YrIBC-ks&VnIdDx#bmR7O<-(oS=70k(DJ{`bEK_TmE#viHFcPf zi3SMd5QXsqs$;H8{)}@YGK9dQcuLs$Xh02zhc@k^zAi0c%R@@cP3ryFlk)?@?fMP- z@q`P>IUrv*V`>L~ESl|gTc~X!bbQfLc#t_rKh5f4ejcHGFkZASg0Le@KHeut=E$U8 zi5_&+*t~CI9p$!<6_yYY5hQBaT;Sp>fy9}{(m2kI|Ko4$HK#Yt-E5*kv52|o79LyP zO?yQ-6W8_M#!&gwNRRfHn_H}^x6ks57|HqAG4VL|iP!QLF)03n4IMMAjQGxtjQC08 zcEEX((f=W#1#mvG#(vD9?Fs6+_18j;(ef*soM+!py9htuQL&PeC=O}e;-2MB5_|HI zpjGj(UAx>(xHJq~(IZpGS+a5jIzEvA=6-26-ow-!k^d?v2+1nZApXt)>}4R|u?Zc+ zyl%{x>(ZKl9COg6&ds@fN+e)?MTla1OY1`eNG-$x<<+|QC8Gp|^~OjtfbuKw2B1_) z^)|Gmv4w?|NH?lIA=5URTmFAs%xoLZcc+vc|M{UKjNh*L-9~J~mK*-^ua^G)rh6TD zUA1`p(^A$tx$Al!XxRtXYq+@8`u6YIgF&ayt$&xX15R*R?B60xE))t0Z~gR)#sTv$ zo4RZnkIE6)96rW)e`D-PG{}%Wpp{N$^ImCOsT-ppJoyKoU3Q{>&Nmp<8l^nL`B}UarfjC$~1`^e)78M-Dr+y z&-glHDZe#3rY!l;9`<98U(kvn{&dYg`ic&xA9J8mQB*L?(RZ9`_B+U7WH(KTfzJ=_ zTwXW?C|W+!3lXTu_wu8BI~$|dnCtOTdN%H_GUpUk*8fFWk&Shlk?oU(di8DSX9eB& zd=p2QBkQk@)JOK}_o%X0wqbuu)P>$VN5INTAAZfbE?ze4fM^SPoTH&kq?qj10j*-( z$qhmZm5Ug!wf5Y8e}Zbzg`P&Yq=xskKEeB~J$utmwKeHTg`AI!9u054M6@7vI_~gB zxc!?%n6ldSB%qFn^}&qz4y%##J}VCR!F2=+lalf1SN0wsZ%(2?w}X}+ZA_>JSAv^; zb`F!iko$QQy1BL2F9r~QWhH4Wpq@|Wp^(>_mmNE+ulvH&B=3SA*`r{+7*&BO97p`$ zdw3H;EI9gX_y#&=cA=)u9~x^_*+IH*T7AD1C|Pl8QX5VpHED}0IY%u0m6ucLg!1v|J@ll@_!#dN)^$tEta+2z)^I4uX!p?@ex`ZOxIYI210 zPLVd$>)p3pHLQos-TG{L+QE5UxB%nugbwhh7KFovCb$LMz>a?(=B8@Ul7vFK9)cHEh-It?q4Cs@EtPf!6+{bC4 z)0zSk^3;#mTTOD1?xFDWQjLuU)aDh%O@(z9+p5FWdmwBhtDHa zgjs6R*Lx5-P|uCQ!n31LTpFke(!9-=64Y?@l?;0LqV-?N{6sr}2ku`ze|fozKl$0h zSbBJ~D#eAzx;+6Y%vLZ2uRS#PnT!2zo*j2F+1IvTX>0L~pBeK#`_)kCB9;Cer<{)l zPS~3g=+0>)LZNkF13rpCN0HV1$-lR?y{()4i9zy|?w7xo9LsgYn!B%AH5jY>-)hqnqY-Em&ly5uZ3 z(F-!clu&7}Ir+YlGVYXguy~4`B5G2M!-@T&#Br>@zi#H*1#0eRFLZte032Nl3gaz* z>lV`qKd95`h*&gF?@|~9VIEyAnWpt5#ElBIn~E@f45_rm4(3(9=7>DK%E);7+mIY| zLdQ8ZhN))$0&0ziO^Pk_GSYIHvT!}UKIzg&)`Lsv zCB)0aild-gO*BJ)QHyF~1E$HE^D&wydLF_+G$^>%D|bHs%CBSD|7yz85gVH8K-YhH ze#$tz_n+j{la0dH0;BR|uLW}aFAuqs*RE&$|M*_60Qwi-Yk=+zup;icHqJ2^>A0&^ zrs0Wvq>~9BKGhwA7enIbuGkchX2(#Z03hl)(re_+c^FJA82qofRc?24o?Am8Bg?M7 za=mE=xOUtocXAGY7W6;gmt6WNr91e}X-3~|R6B%HYk}=MZdRfieNhr>Oj=thwxVZ~ z5a+Ck4veF(ErwxeB&=nk(d8@^`nBQ_;{(34oG3pD!GAkYp@$OgPI}5eM`OdU)BIo7=z}Zc@!Mn6O8JnHZD=+ z6S3smA$-$bz-f~bkbf5K5)#QfR?nzMt+#yXMi)zZRCO27zxc(PtBB9*-1&5vAk{YC z(m7==ohxb;c$?1}css_4yzIS{i z^l&~XA0D=k1PNwW@#-W4ExMU9csd!f)}{0XeTTlH5=^1sTKn~)&#EquNWqI}L0KH{ z%~cqDG>nXA^%2uZesAWFV1W>m@tkXG_0PxFBV(aT6@|BHv`}uM!DQ}{WO!Vl7Jcj& z#*UT5uIN8s-I<1`{EUaEpR<(tq1mt zNv@H?FUBF35O2)!GetKkfQ|#l4;roeTbk;p_xVU0Z)^9i8Ndx=m@Wh}u=WF4NWcb= zl>OGKTThQZwx(K=!)8d&V3ZYk?|&EiXx4xiOpQrOf`>7Q{$)dMXQf>jOx>8RlmO9Z z{QWIjBa8*7fSrb`RqPE8&+-7qA>sVwm97hWXD(djM@fy^hISR6xveo@{=m7;w`R2S zZ5heD+F#+Zo8QOLzOo*FA$JF`D&7FUS`f*&LS^sQnYsf;vP*@yM!u27?E`uuT|Kqt z2ljQacvq<1D;_7eH2dtL$?U_L)0rl-n_A3lc;po)LXd&`NDUD{{`1tcpvW+*{+KG;v2ve7xQo%bdCL|Pgz7oyGgzJs>G^JCrGQqa-L92p-Y6sb)Hl81l)~CC_{>93r4ofazi0=t;6~gu zHCkE|+vuy+B-N|l70$gbF(&^nsc6#e({-ts?)9O^7|(_<65fIz#sOIV7TGa|H@rB7 zQo3@w$JU>iB}IpW_^{qPY9uz8+wnNb$C7XT^Rp(gGrnq}!BR{+(9`Z5k2U=sN9_>( zhvnmYJ|Zf}^~xwKkL!u3R9wLKwaF+`4=J+X6GQUyaZXMW6pZJs!K1wI^UJeOoeNZ& z0VP%J&pfoaz_BHPcCV>sq=phI5gzn~r$p2K?@?TZO2k?dK0O7i<#m(fi-g>|ao}T1 zKDck5SiWz zqa<3v`?y(Z91gTS38jUF&2xDNw_$d=uPw{vq)TeG>C>I16#Ia?pv0g;@awZd!$maj)gAXmF8w(&%KHT-^jftQ<#bV8T+Z) zb+uzAF@rl1IOQql|7!sTuib%$hjJe#Ch;BN!ZDfQEC4)(3$DX{PJ{s-sKt&u|K&gjb!sAb)$6rpfr^S$)hD$7cA?4tgp6gZqwYQ_~@*AGd2l96}=2$S-;JcZCEQ8adq+re|q%%epM3UttG^G1bXbmF9U>70nEX| zmvrBqrA{QGr?O9Vg#=Nb6Mje8sk?C8c#C)Ps5iA6N8n_Fk|MgDr3c?RgECWFVDJ5^?;{MHjd&ob_@ zrW6HZB5*YtA8CL7dSqmb@oqJ%U9<-TBEYl2-*YM#`C;BX%0|;x3+`O~8f^?36k#gN zh6GN8q`k+nKFZ?|xpd65Hwv&IF*P;&&W~k_|#;$zGs)Js)(Sx>2iprs$V{G?h`vrmc)cJ%}@H_CTCWF`6@y%#!XGp|8@krWfAq_tf3w?Qt z@xqR?*w(fNisk4DD2P|jw#&U!RJ!AxhSYe3vnwQ+c>AL;jb(!4qF>14XrZY)yP=iu zc!%{(*ivxhDf7C`25c#PcTp*1qW_DBlxA`X`q_VOnn8JtEI>e99;8nz#FQV)es9__mlf^KX?ldTh|vEt=_!i*{$j#h zDJ~G_M(93GxS)h}#0!X}V_#pCdn-ZuLpRQoVpm7HvT#~I${k?m<8c6o$Mh+`KvpvJ zT}{XN@-vOBa}cji}h8zh=2O zxIEHD0a*u8GEvxvj0sioIGNn{D`WZXk415LHD$P=8iO|vWzUe-)^#FyufXr<{e(b2 zc1Iy4LNsgM0pBe{Ed69Z&*>m@;x<4G&d1JoWyc6IaN^s@FH76rs)%sg-*>|Clmmr^ z*mGoV(ur(+4(F2&9}c|>GBgjjDQUBpoNB{#+Y6&@6HTLru@EgjawFNCQ45`3t}&N= zJ|=7>EPUNg9!zxY#S(BHRqw)KAkcpAfJUU4rgRT2D$hAValBt-Y5Da$&!Oh1)Py&x zQF7(>^&wZS^@;DFq5=rE@LW@vCq#u#V)ts&_zyQ-^!gUs_1EgP0pS*KJgntqeq%^0 zGMB{XFrIl{^N-$x5m%H6fKcD%8^kE@I2Sa=+@!?BgjM&~{_|I^C6I5OKwkJ=I~x;g zMf$f&ZJdl4e!fm&{+f7M!Udp|^jB`x1ZF~CoHmQe_mu)}$gk-j^>NU3vxpZrr$b&V z?^UIUzyvKtkNoxPilSlV4i7`5FF?rnCNQ!h75JXhc#$a^y!5rgRP%9U{^p(gM;*jY&^X zKpF)BVRW~M0;5G4J-Sn3^cbV_+4IBqf4E=gT<6@^b-kS(N7-oW4~y)hY@Pg~I>Z!G zD2@<1QD=iyzeOMK(u7;T|4#gd-p78#n~}sezJrOr#Ut}Xu*xE}d{a~E0cSh0#9~H# z7w+SzR(k}OYmRF|>yE|x?FHTSEN#FE=f*z}F1Bb1G3!97`SZ&gnPX%X7md-R)#~jOZaRnlJ8j9uG;%PDG=2+@MO0PPGIG(CTDQ&h|x=JAh{o6LtwX5irePMa#L3Wt;~?3 z=!(~Nt1q_lbN5Jfa$xn{R8Eh4MYzvN&->v%fkH@mY&fY?4>?#)&AMUFkz zu;F&6P6N9F9g!aEi$QykYl9P}PhP;Pra`5N7iLvMp?KxaQ)zkvN>a?S{vPf&GU zy2R{^Z8nnQK;=%p>M<6%b#>GtuV{jK!Xc>^&*Do+rZObe$zFApyrPNa<&J*ynDfW} z>&4ZZ+10<(F?&WX4`5|5JK$h#7clsPjYyq)C@#zfCxc)c53O$`Cl`Jaxlq=VEOLXskx zhe8F$xj+afroYSXjQgm8%@hb=o*X~P^696hn(wbCYBgqA1xI`*scV3e4G-Go{dLuH zdn}geOTq0K+(>TckZ0;hrR=2Sz-gyE9!lnwr(nt`w~|L8$LA0aXVly%rZOymi7!pi zuU@7*iFx@Sk;;HCyf68@Y$^T_xeq9UG!8%;-?_C8_0D?-TaA#pT+%z#&x%tQE80bA z&hS#St{o#n;(>l2wbl{dy{rO!_S)-GUGFR7Gx8qnmA$WN=@F2Umjd366NnP+0Tvzg<=MNW{SULW#q+F;XXvLyw6LobVgHP-~3aB9#^8|%BeCN{Ay2_Kna zKO@=n5w$tYB|%OuihC)&%s!Ca;0WSyy)*HR*eGuAm|LZg_dDlQ=y#g;QYMQWLmfnS ztg3yn4{QS{_C z?L(C9?;M=vTD?Gr_$oGK)>Ta~+2j*g-%qEPdZ4dYw7xklo`-JP11|wGBQuw8wpl5+ zvwN^h>!8D`#3XUUDd>=ybD-z&$+Gh>nrMZZo?KBY#2em&uLMN4 z`EcdEv#(~Tv-&D>WszNYxU@Lz4cj%+WaLP??Z4`IYBgzf&^I@y@GQgRs{xCmCseTd zdvb2QFL_-xJwEF(Q`ShLtk+==8pT39p4CYVuB+=v{{h>cZsZC*nKeO;Eh~gh4)UQt z5;D*G-*hpxy>^+e?}Ngu0nY-QtN^Sd$}Slzb$!1C|Hie6U)gn8VL!SjZg~0+-6@%l z>+bWZkkB_*4NKulZRkwAYB|)Fp_Jc8w55PAGx9dP^w#Ypn1fm>3o;0ftNrfYdc%wH z%f!_8rq=rAJr6GYRwM}OQ~>{Jh-N<`xoWz+fd+TV1V z5vTB4qx{w32>uK-XlSYpCo}y%`sBBgaQ8VI+17b}Vkwb0JH(`fY^f=1+5GSL8ANOV zC+Ex*hAxq@#9DHQWf9#IQ2qXiZRmkv%{$0zkVc{M>zr=XrJf^6fV)bfD605qJJ*k#u3nyu{IO2*deT;C>(?B9nM`V5cKh`CYNR2&92H zce$sd67(w?{+LGO5qaroN$PL{q?}qKCWtQOr(oy5ryMJEM=L#+F1OPzzK1m)6+X*ON7sC_E^=`mxFL6Ct$29^-pxT` z|8I-awYN;!%dija8mA)G*5YZ$);ZySUv>u<$>brG!zkik=6G|NEQz#tV+KS#J$8+f z-U)3#o88NKE!JPvmB*mBGcWiSh%iefLZEfbCU%~x546(Z3)=Hu`2R6sMu}??K?Io- z+7gy#2yb|OCC0<6yzBA~OSZ#5qF0mpp1>{Ut>WumgLKAH{hSqM?EU zFTJSp+!mv~UZ3`{qunI3hlr?^_rS2b zT|@Bqow9^i@zjpAJzaRZOhVndonkN1dCkp;;+|Aqg@|O0R~UeSJ;e60)Z@E$&V;5% zVG=14!BOY*01YJ!W8ort4>bL~pkSc-6l`Zm_KzCS+Px?87-<5KRDy<16UidEmP`NH zs#86}1Q>|CNn*RJZXs)QAxe{?TiyuBLh`Q0Sr)NJcwFo7hd<~7UA#<MObYPIHedhd?mz_4&0aHgs2?P-qjBlw5-1Sa*S$3 z;CdJ5r*!G6;wqp+#(f?_w3G?(W-M{!xOOHNIO zTZq3}#UwKpE^3o-#y7VX*XBi4GCDGtbJ(-FFu=u{=tJtzwIf7U0omHkYvckAwxEc% zG;ycr4{2lMrhK0YNpgk#NqcAZz|Pk4{mt@3Xxtd?7dV1dQKU_Mu7h(rKTbU(q}*rF zfR@m@Db~cmV{SCbvikZ-vNdTG&uG!V+zvuRlaTII!_t+juhRI8Ei#t|=CMlCcT?6l z#;XtJqOC|j;bdGMFq%}I`CyH{E%m4#A?(d`YtpPp*Q7V#R|R2bdhYjRAL;uhF}X|b z7It(0hCET5@75h5NKMKP*_A(X^&w0U0=2Q}7uCLzGxxhEN>gB7TY9ThyACJ5?vXr7 zLF(b3oyi6fvdit_AIo&A;%cZ~VV9Il{tL%+ju>op9j!OTqg%e^UuO!~RMy%T)mMp_ z@c)tJuEu6C03N0cEB)=9r?)bHx%`2q` z;+7rh)6sEm=AY*8lQ515?uz24FbJJv4!ZyWNi6TU64=oLAm*MjAQzUl^%3p$fEuZ5aH1jRxzd{D$>2CX%UZ9CSv9s8w z2XuZ&=As}sd}P#Z*i{TT3zX?2KYCu(UU`~8n!!|<3GmcQm4Eb=iIT~+Bliy<{_$Em!U}Wt44($IlYlAjqqrS5d8DwSS5;Mh%N$|p_ z?5CTuk7qgCn4c83Qh^^>g*aI_K1u^~?JH>emaxlLJys_lxl?Ys#z7xy#xgci9Sg5l zplc$@_gnd{(Yy;6uW2~ndd~jCvoot>_>DqUFsb|OR=eb33}s|r{$dT1SeCMQzmYbT1s{Q?PkIk&a zO;F4MW%dQo+vR3omHDjNV2>6A0@X0&y(_uytE`(ged%pZ7?1Ys2Qu7=i8j&{ zYq+AXqHieH$`!b8&%tB&==#15?&^w_mnj?D!6{1=w3HnxsFEdC zFOwCY`sm9UKx2(K9oS7SH;0+WI3#eZ1E{1ZZU+ z8XGF^H!@!pPqN+pmdfc2o#S5m60VRXb zW!#j(UImNj-f^yGy_51gwU*wu?wgN=x6?BqKg?8~`L+iviZ6P%ti(MluIc+aL=$EP z85do#l8FjOZEYrxI1F*oDEbXR<-a_X+D<>5yhYDu?oI!CGG$kRT*yi|{jAu%@sTc= zk(x4;-r;5VGi`VEn0t=O;Y48tfPQ-HOpw_U3m-2kF4U8bab@|$>O&!&ck zL*cd}%wc?FWx7eU$ZZ0baTs+{hDMT<9F~E913NrvhwLxn=4_@EgQBYZOHyt8bcZxC zexurE;CAF9^))nuxvtf$c%Iz5>L|GULcrC=k5e;v%dH%*uYiLfZAp4Z2fp>?foA?x zE3}OX>IHHGqpA}PYm;~rac)~vWi=a|Qka0Be6DW)ni`%A?j(PX&)Ge+O_dvp^}!(Z zk2_=bp$ygtyTKFvJ*s8Cw-?>-w_CDAj3yc*^Z=hF`XWxuBTvV+HZHno;cGLA^7Z=w zHKTeh@nS%?W%ovqhhL>pttq>TQ0B`e-A7W*B1B0s4~XD!T3G45lcPXhz^8395_sBMtK=V_;sf@9#jh|g^5PBNA&WqB(w zWY0e7_7Wo8l#L!<8gAqm0{y-;V@Bi;7?r&PB&i~$UA7k+f0Ki-M*LWgT+w2M(SBxg z=7hhJ{eZCZRo%n-CrtJYZ}S+pN#n-;((5<9eUsk&l;3bFh=18hi1-iQI9FE_i0b=( z06l?$0p(Y^fc&~rk3;(6>Mr-)`+&+d9U?8%bIq25z&xwW&4B9se|uFzf)=>UlYpTz z1F&oR!u~>2K=qNU=8uF$h^bZL5Rav7oUW5c!>VS21+;Isbdcd29};#1(Q63#U^=y) z2B0qjg_#AO(eh=FP^N_HT_A5BdGzoR=<%(76t4o_OKDa3oxiGdheM`t-F?}DXur(+ zh=i9oY|N5ehRx6994;=E(@^j?nPsKsZ2(et^K2Y7J>w9fmt(Va%@MTkqqheF%*+%8 z#~wys1s|4~Hoq2F+^0t#%0K^8j@AhLm^p_vHPs&xlkD{&Gjg|}^WrZB`@CKgcf2o{qJ|ry12yj5QR38B*xfqz zJ3U}wpeIhMfwkZ1C>D4L1T-bl%G8u$Bci-UrLbT(p7zoz26pn@TM# zK4V#O%t_T~Y)S^q5|R^^;(3>zJ+z4e;W$tjZI?1sfvK5G87EsXApht@>~q_Lg?SStB(U5wu3E{>`e#Jj z9pqOghYZb`t!HF5QFU2qeze=vvQKfq?jpdSfOPqWSNBce67t%<`{ku7*&GsgFm8XD z(@viWypY!CCuy3mYrk!eI0&D!lR=RbMKP9BLw`)%AFJ%%%&l2b4pz{hop-HZaB$npjt6)4r zXFFK#+~{H(ECa~939W&ATk~kg?na$G z#8i#YO?|3xu^6snPK#a&`fi4e6#Z56RkxKy~~b(d+=orN_Y?5(ycB$ zmX3>_!5cul)L8CZm9ND9cDF9YtcT`F4hiY0b~UCaLW{G>nRH#{wz|#@O=I~+F~*^qAs=umY{4SVBVNhoTeMYJNfYay>W-m5@;LGol~6;oQ5c)D*EwTbl6E4-sd` zk(I4H@h7Wb`#qbTBt#ozBW-qbc3G;W{FvL4{_*YfqcCJd9{C;o=x}XliLcq;Rf#g$ zMsA0~O)dG9sCp}A|5UPDS}b&Dh{ z!zp2Wx9vu^LZM@JDGMnUI%A5qSpfU()DwC+8Igz8+d7E$>Qx5dIfC6Yry?T$b7qS7 z1anqS0?J6w7*(dad%Zb5VE`>j6?h4<`hIcMDkh;RlM6!S%};$V5TMoh6~G~i4}kit z=N6Fg?C(B)TT1g6t1BMTuqM7onX@P54-WN-nmevI{8IgKPGRDb7Hrw>ll3kNzccAu z#EfuihPlnRKOxTd`Frk~(!1ASlYPpW5t3+S98xAfxfPYb8B}6`CRv{`zl!(~6=pO$ zA>+qMK|m~cw|Dq`kIrbA%6iqEv zpH)HB{l|=M&vI_u{&jg%zQfpN`s<^5KPvnV81yI*szoT{6Y0Bj{^tci8|z!W$Hv=Y zy(((UlJN6UprDgy>jN;Pzf`fzy3na0S*(*teb~~mk9t`+mfW#uQ~D7jK!rk`iISHW zSalwEI#q>W_pkyX_{r30M%r493vaBQv`k~ZT|Zv1e2>MFXm!4G*&lf+U@k2P7QRJD z7&v0=^YPyGoC|Un@`hJOthcR`KX_9`O*MobQZy9Q;4}NE+xT8Cjma&^m*}1N_4j-^ z{KTF;BQiuAgP&r+LRW1DRkwz5+fAoP?_@~D@tofPW#SHtbDXiY6O!@T%txHHy7(aK zqy#;*sznif8=PGcfX6c}xLQltuHn5iCPnJKEH~Pg%#QmU&4Hn*!qOM6>{$)ZoG7@* z$-ufcprS8{e;tPjHGsKe>TO@s3$Tx2{#y9SkO83*h;D-Y!!Mx4^erg0(zq1tXhL!; z|3%hPOtEIm9^STZ_`A`#JL+rO>k*Ga{u!DL)NmD!8T97SHt&lQQ3WbNs3Qmgk+0Gqkjr z9Q(7j$L2lakTH#f;?_F=fmUB?rM86-h3l(5OzwR+`=$oqGc&^@fbxT0D!BV931Exb zwd81?az#Nfk9&7(+wY-Lv3PWKoSB@0XUf7I^F6~RfLAb{2V^Q+N}n^d*9!PA<%|f> zX}Q9U-M%D?C9m^&^4#tJ@74K1IasctCPiNx0TC}DbrRiyMzh# z_vvku=5tLw1p;ME- ztprc|ZK@DA!jIbXdE>rj-M=IIFl3(g>>0;_Y&m0DaCzHcXjn64T=hCbtLar!N#>#C z+vl2o3b1X->ljJpv;Tr+ zCQiCUT?!EY?qN84;>-jPd#f783>aaow6c44NsrW9_DS3P0)Q)oI^k;{qwo5&CRS~7!z zSOVhEf|Uc~{VQnb{V1;zCfg*U{BYN;_-czhd$n+NSXMOawC@0{@Ke#6a?7I>mkx}C z-f`(``?c;zrdZb108=^v$tO14S}Q7yR$$IFj}iODo);z0aK_iMu$Hj4=b9-Yeph2# z*XChpfErEqXnR4_A<8vmq&>l`Uwidh;r6;toCkcWOODHsQ!Fe?7<6tTfCypKT;fmOHAH1&=s)rO-R-kf zT|zH4V}bi)d1pZ{f#Vt8^thJDK-~K0F3IqfY@8Iya+_(j82xXxCZ< ziSsYKG5GjR=;m(*RwIQ1zomW|qx7Bm7l#vW^K?G3e)ZmTl!mnc0x8#yYI5)CXzhM@ zJFnGV3ez7$r*1O7s!wyfyNUz@D+dF;nKg)CnTeF?;N(WDb9+`!tR9mke7nd5#dv+$ zv|i^&b&_;DT7nBI$-7g#-pC906S*=qrgWO{6_Ljr`2bY^ZUD4V`Ly?El}Xn)00vz( z+GbN<+udjhwBLR1Qj&Xkg$0fWGL6V=Ahq-wDB|B$ncwDSqjqPE7}Kf^25^RSQv~Wc zTezm1$}b-8c~m;^J5LzPTCi@jy;U#D3QM`^<9AHLJpZ1RmIbL6Mt&~~KcehOF8H!k zRRHdb)r>R*iiK2vxh;^owz{1Q_*%aMnZj~#mx&rWrTZD*+&%>SaT)LZbtn;Ple)5= zF? z(~Nniv6{t+$4Vn8b5{(ai6FyVuuVy_=V7QJ2*+;oQ(F&gl~Y}P z%FJB7@$WF!pOCow!4uG3Kszf=oL^>!uzq!}Cq%Jpw9e8l{-U(pc7?aKWK4WWK2CKr z9gSb*AX<^7*HD54U)}imMr@*}l@15)-c3j41FEx9J+7uXlIMpJukS~t_I*L0vE{yylvw~b8kmw~;H!cRvl551 z&u;G{>TRUA1ua2;t>E7Tyb}JL!zL(7^fz^XfV~jGo8Msd!!T31gk9J=X%+RdtaXpS zc~Q@MA7Hodjd5V}d+0}0Y<5Z%?bBbu89v6RYinjdT1q3TjugZ;AzZ0pTuyzPkF{za zZ~gS6eQ~aCr(jo!lXsUqa!&#hluF|X zxu2zl0L9N0x^KXo=Dlhodm-wNQfg+3N3~!mC@1z4oMX#;A`#I-50}Z2t*ICQ-MTv( zPslO>{xLJ;D}pEHN9X|e68`PU)DQI~1xT&_%g=IHwEJ#SgUrCEoTEfx^ zP$kZ>THbqyxMrElJiyw}aKu~4%f1h)yqc)l-PaQNKwM~Hjf@%u>!-2)X+~LJRhG19hSnz!$yYNs~Kc#;+m~k1vtzFZ*DYU;g%YGUhOS~&# zQbqR%>!oEnp!nrhR$MBHdRO7~ zV}$9IPAL9o2I<*=!hfuL_KTk0DnCWd?8c5?$-3d+RZzR3R6&0WXuEa#LuhZ4M|>kN z$S#<>+^Y+x**DT91wUcmWS9JXy>AR>3@=9B!Rj1h9Vy(&cb!Jc>TarAHiyWF@;q_7wFsprj61XLYF@YLF<9`k& z<Udu$=QWfZmh{KluEV zRVqZZJor0$Yar1w<2|7#;i*Tcqg1Y5p)J|LyO0FRo>kwk{~Srzb{3{e!;if(8IrVc z>`b-41Ya`0B~nUhcbaLJv62C-s6FH0$lv!jlQ~Okpu(ts60dMh(fAFM1^xamR?PUS zr6O{4jKP>_Gyg2Tf$R=>4xT2&`_Ajn0{2*}L* zmpEF(F3e;XBCV;^;!$#}edC8P#p+ATdK_a@cVXQ_>r~gSRHdT``~(gUTXG+9GGPV_ zBgHF`e*y-NH?_%qVD8p7Mf_NU;U*ZnDI%^S;Z)W~{)uYFlG(O<>kh3u1fLx?9^#q< z20N!@VUu8{5>B_;?R?p5FvJt!mgXpO_35?Fv9@e*O^K1OLHc3eAc~G%AXOJTq9B?U z8)EM9^L|MKt8L@1K*tee!e8JT>0J(d1&j`*Lk}Q-EWX6mR6Fr&mUGEnch-Gpt~8bL z{53Q#vTICGq??-AZtv!4%~uod%ESf8GzPQnjz@H_e6hS2ycWL{_~4I6?Pwn~Z@a!J z(5$G%cX3Ufm_+SAWAd8n&$rVQofKH6t$l9;h=BqHN`{Z)F}~lKf|sYMvxCYqSV*co z2lT2m_^)^H&3?&4fU@gk6kSGmwy%~=`c=u+UY;f!fcUzEoxBg@+Aej@3HT6b2gZwg zw(7CBlXEXW9sU3yRWt*TGSFw`5CMASjO(c1R@MNLh9G}fnBcayR7&A5S07>3>g>(J zEOp3VZw@7~tKH7UbF)5AEdaU1>o!L*DE0v}R)a?< z_4K?i98R8W8$ygkqj!1L*I927k%Oq}BmB?NrZU4l>L`%a2}%~Kv1u8`vP1eVN@ok{ zx99T&K~lKt_YwM^8UpI`5;+hZdx8-E%k6;$t5~naU6y3K54UIY#H&4Fp z!8&9k3p+XNEUGehQd6^WlK!0d^K+hmOo|oN69IAya<8^tnzVtf{n`9&_2!J4@`S9a zS`S5!WA<%fQg;8YqfgM8vCo!RKe&gIW;x5M&TN?xC#A-lAVF`FbYFdj);0e!*g)QD z32$XJLvzj>I)a>xsNlO5mh0yHiStg_%)!v0gs$HPBU_@tT}&D&mlwJCg?A9L^)fIp z_>XMVeDJzr5#3mgmnR?aszU3bc0e`aDtFK8&8f-eo9e$-_wpiEl>$sPh=JDD%V(>n z^6#tx|G@^DLeCUBMkXd6RM}CbTrdVNO6xE!ANZeDPNtj&!F6ZD!tYxbpZWv_J?jV$ z+oi+ep7g9A58k2JQw-B!o5WOc2piV%Uhnd{l${PH(TzMZ8n#y`lJ`8M?|7M$=beC! z4f{UHHyB33ZIba^T1&+gMJ{>wtvn=0HxXT$f0FW-I%z2CE@gYjoke8Wh5yCL(*hne z+I(~Q;b`r>=@n8H{^yyC+lI9%L=wa*kBpTMfv?SyE?`dZo@&tF{pR-w9*7?xGJ!uKatnvuLADBqooZ#z=lWl7Sc1T1zPvynhk)LWe8qJr%2(?7PCGbI7MQTP^Yjb$ z+BeM?+wjGAz2sEpvBWFEs5YUiA?U~L)`FkA4k&2#p~TiovuhvMMe`VXONHXE%NS8X zg3XF8k{WHlMWp2U8^ zv8q-`#mO_^xbCB3w1#Wq5Fh5WpGa%O*``Q)>b~y^%ea&`El2xoj!VQqo%j$gsTwgB z=ho%zF+e#cj+h=i?i>{e2`es$)1ss^m|{(6 z5e-?ztqg2ehoJfant5Rw&_Y3W`FvW7buV?Xvl544cn>a>|mFNY~u60GV@F)nrUYP&G6HH9ME_Y%2Wr)R~ zx{fReFltVCfd05at32hQTOEBy^Iz#zH+I!plsGA>q@j`N8pl9*+BA_VE`+}Dx;#7f z3%c}}M|@_Q^7=}i`~*OsO=Pf`?mpRm*?c?AsZx@=QoJ7co__;WQ{k)cXNXkY=^IP+ zD}gVFl;?G0%i&-$>cY04pfpp*X4}Axw!w!>EX98$Im@RliOPO&$LXF{3zk3cwbLy! zHz>CK^*+XgyZ3|p936`bc{nx+x(fYUM(bT7v0#_YqCM0|svso3wrTfv==~1H!wYfD zi%LBxQ`z5KbDP8=*hwXML8@K;4bW+os>?nB&;OpO?xmp*et2fJg|c-&9Q11e)0r8c zUuAJV>v{ohLycrQ9yL&KgU$^eF5o(X6vrfGD3ts>5Y^==(U&p9tWUFYVa&t>MW)&Zn%SN=%@ zlJ=KndATi8^Gm~18R$K|R<4DJeVCN~qcgY<7a`8OdVf06&UgJt;V{PPI4;!IEGyyZ zSgv*Q#?j|c%aLzUtK!ciM#$sC&mxPr6;mg)n?~y|F=PF1>JUmLKX+2@X!zMHpDg8O z*=X$TTs(D;*js zx`5^`6&^(jrL0?HfE;FK3LVfJfS&Urslqn9 zjZd8bMN>rQoG@~L_TNR*1SKA?3(FdNih4SU<=2_7)Jw-mgoJ|v)83oBsyTbUzM;@ESydCd z5x4*p913&%vMGaH!8){G>KqHXlq((sQ~PzL{H$p||DJqFrZ)BLs@Zoyt~Ew#tAif? zIBZgW{toL&*|SbVS(+wR$9WS?ok0JzU!TAD@h8$&^l9>gw59vHM_ygvg(?Jtf`6?( zJT!oOVWx4VnsoI@CMNteJZTRKo85PLr&JwEM1R<7Em6i)>lH?JGo(dHTZGY5d*=7l z*xFd?6z&E{Y7_`6lu>AZ2xl{)6r~%u-x1|Tave^BV^g<%M0;u4!~tDL8p~#_ah!__p)$N1-?%Q@LV8`48+B@>{>V%xRi- z^-|E1bTg1GXwP{OIk~S?W?&xwp=E?M?3X6s-_9n$V9sk1)?~z|dE*;`YR9$qCCVk1 zJ1yWkm)KBEQXpXxKr+LyQOBP2A6X9g9|L2MjO7kVX6{B zt6`SyjS(C6UN`cj`s{;fX`UY_)7 z3#3_$q%h@(SgEbUBq7^F%Ysc%3+a`sQ;z~2@-knDCZ-iqRkuGREQl$znMosd@$LvF zQnHi+!qv7Xe6z2)0q-NC2|Q}JNI&{bn7GIoW2FLMrSom8<>;}X2hAQ0U8}ujR#b~9 ztxWwnwXj%~1dr*z->-<^BKIQDPS>WHHI`FDC!$pOkVSld*MmEw^`PxVTKFc+^0a@4 z)QNSy$CoPy5=!V*{eb7@(&JKG&Q8h%@Myao8%SAA0O&cVR*)5X7>Kx|bMXj-I6qUn z*;|YBzl|UyEg&2ZHW)fzSvjI{iqW8&oN8YB!{bLx4_HK%T&{?>?eTIK&OPb^a0^~} z$}qt>tN;_NF5p^_CIDL+QKDl0+roq)rOB9Hj{gUBQlafLA;BfH5~M3nzcRQ?ZvnL1 zdm0vJ| zX?ky?$+a1R0W$ymQh?p8KMhyza8z;uZ$Ffi0F46d$4`Eo9?_ zgdx(Yy-e}JD81v{ZL^8LAWmGY@Iu}pWm5msiYu@AoBJ2ulj=;OI&NI6@W^+hIEJw#g&6P|F2H}$IR18 z8XqEEOaVNELDL8Gay9ZO5JhV$NwIRA`u{=pz1ZyKtDR}O7@DdV-X7b0^_kf>BB&5} zI6owFKm6_dZ5zu)G-L_CvwkPl)7zNH%|9qHbJ*$s&pk43t2p>?)$4B<6N-*h{2M0m;I8@C*4| zbKC$PtnCwm2I{KzRi!kd0ZgT%;kQGqrpziZB)HAc+AylPfI)HW_-Tp+}>csvooxqUW5REzCsR^1A2q=4Yb z`$PHOOYUPVLsCyugKH*#j;(KRj>uGRmgY2fwPBLST@d?|Xe$kF%@m?O3h5E(zHV3= z`c)0yXH2#acneGLikmP5t}YljYGO*Rc4%Y9^q_BdyZawTy?fy2!~e~oX43-yTVqxH z`XbidE$-*t#TlYw7ck%-VFeJn?dFFhyUx4z4P11ba!K(3i6D$>ryFL;Mzx5vQWy7# zw9>-=${qx(7lQ8q>`23-MpLClgqEDWHG#?Ljp@2VrS?Co3+HyU8p6?HBuQC(bt3oR zYZuS@&go^W?E4^&aHn9Cn(tI!Bj`dRm$qKuIiEc{4z1oiBgX-zSUNwD+~;7COsZ5J3Oxs+3f-#7JvROZq{Z4F z!WOuZ1)b+ZZYi{;0#it@9!FRS#~QVklY@P=j10e1mxPn``3%7d_Hb{BCiA4mEqF-z z-vUFQeUsFAZxe{mIro{{2?}bBi`r4hQN)aSbjau-NeVogtW6gG_`WKH2QSy_%NkgJ z3f0p|o+d2bm7W^b)s$}3?a5ahts%=HFr}YU2GqW^Wy$R%=D2CxQ89D%4&D`k}8Z zoDLFkJU2V-pkAKg67%MdAgD-er0CMHniPwl6nL-f+AP$o?z($Mh}RWECjwi;7J;xn3P!Jg}V zC&Bwbf?&MHcg$`mSqIMpMY6knCE49D4{tAfSdA`l3MTV*af32~rF>fIrRkAI&nI1e ziz%W>yql!7)fCYw% zrUC9ui9uP+Of5^-w4Gf-gB%uA@FH~F--MzG-*q02GVX4AL(24$&Uj;MjSw1{IxVu@ zVtHxuUw|c@J37h+MZbIM(^?pz60i^5U&8 zF=65?fpGdONukd>emdJxvS_yHWGEPu{vt9atW4PrFXb%`%K?AFFI<(HR9&p;VU0F3M;PFs#HBeA+ck z!_jCm_l>L##xlk}*}v6pi5-0HB#7<#o=VOBDRYndWqN5W(R=&ETQ43<({>d|Xn0a{ z^V( z=9Z^q_m430!|%@;rapu2hIGBZF-dqTu2DzzQiCJ-2Y;sqr#?#VRkzt#V+_WdQUUwC zSK_;TT(*-^9oqv;B$i4o&DuDq2AuoD!u8Vf(QBYanbr1=!tLO4*D=?1a+TriUlX|c z)%DS#f8e`7`H*JR0@sr6Y2p)9rc)fii|^hcT%w~=toRxhC;^}(&x@^AsU{z%d2qAO z;oOGRa8aB=;&VUv&?qIOs8UEhrYtW!E*@k-S4&`ncWUn5ESeX-&!XAefbR(S@^H@? zP)yT&1m898!CQ(2_hJl_*MuVX5B-MTi$^ACvWCqnkBxn>ucgu#aAq9>#%#Y1OU_S- zVxX725d0uit9zSJl9Iq!7~f9+ASL=0tBuTOJ`)#`B7hCkp$SRK>R`(ZXpLuG4sy~Jj_rGF)pO-vGWg`~ z_B;+|qJd{)oX+FiT3ms-Dt#s=qa?UKtZfpEYEy(`Yetog0RP0gp@kf!UH#Awk#d$TXKtt09S4-rdd6@{g}-uR_Ue{VCE$598xYW)n~ST9v(Oo0oeSdiWg+1H-?7pt!JkIHy32Nl4qvGk2jzwoq zHGJj^a`5Aw5mjOLl$sBf3mjl=29giP4Q0Jc|HO}Y4;g$RN4op~!&9EsQPuIG8Xqa- zg0zEH-jsb~-fh6YRr!va305eA7!bQ6>u9KzbMZxbEG zqo5s%9pUeLB9`E~Y+lVMY^!%9YX35p76g9#Ze?vz96nl>(u!z!3sT!P1#s{5$(_Q> z7nu4fpEm8MC9uAq^$Tvj2ycy|>W+Yf_i*Yrh?kRqadb^WY(hpN2t22@hGRzIWcesB zyT{Ysqz6ptv^FvsL*JHhYgvVZ8%=OZIYSmJb0K$x#sJqE1{^#2I@GPSVu8e)4taVe z7%7#cEZ`%a%iMHSEM(^tK~KU+cS2A($pS5o>le%@SAJS`NT_D zHX0uCAphm`r_$IU8P6PD6r%PoTXqJ2_w&DZun)?xFiQd*CgGqGDq8v*G8Nr=B5Msz zvS$6yBSH|m1h>5=vn7YQS;+zBf@5P1I*8iD9$WcwHslg*ldue`TH4)NJ+fWuPDNdC z;tP-H@h$I|ywY=T@7wyJR@X%g%p-H085-fnA9Enjj(*8BU@tN$58;4PS_-G+7i0nV zsJ!W!aC)ZHW72jFxn&C7ZIRIbT5~E>I|t~cvG`ce<37%(`H|C!C{Guhl z5V$6?mIC=a_0Tct0~Y5<`RIG_*wAJ(@G86bl=(D*jk~Dtb>O{`w-4CZVqRfzUa=mu zF~MWcVDsS5?$Z1FAegtzi_^E+etSn_UY2AbDc{&ZK^XP#dnKm1FI=r1vW-PJk-w9X zAXsl9R-8IVyQ(rbN_>DC{$J<7W<`6h-?Qdy`NS#JDJvCNY#KRig>+qwLl_tiqC>+` z4?$|fqS(Okkt6^h+F)tZkhJ@@ZimyC>e3G7G8@R52c zi(Rho5hU({Yw72IG!ikU_1AUuOOF*-`UGCgtPN`OT>WXiYypm!}T^&?Z*O)7O`Jm9NBI@?QiPoT1+-{Nn(BArv&dtkn zIhAPl;TD56ldWwR&Z3KMG9kT|%3Lf$Whm&uL~1%IvQGTTrQGnhhMzC3gaNnTqZ*o5 zEi#9q=jBcVfk;CTxLz|GpRp4Ec>C;tDKkmc2;J?wrZr@@wci7aIt1qv1^jV|F0&ZZ zv;J4GuG<)_h#^;!>9S6)I{v9Bq!*9U5j9u~)f8 zlbh)G`QwV9+F~=N{e4G)9e*U8!Qes_P|ANe%O%sK)t*&qKiAup8z*G(&$lRrs383V zN$%LL=w~U(u7NIE$YwC&*~|*9)vYWY&KjYfbowM20){xAk!K)=0I3e(?{$KL|Tx zG;W5>TdSf50MAe@VxEA)ri)nt$BA7nY7>4@GH?S$C2c8Hw

W1mgV`C~ZP{wIt*d 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

Khw=(OEB;FmGW`SS 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 - - - - - - - - Gradle Configuration Cache - - - -

- -
- Loading... -
- - - - - - diff --git a/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 b/discordit/build/tmp/compileJava/compileTransaction/stash-dir/JavaApplication.class.uniqueId0 deleted file mode 100644 index 67007ff38f62c1ed232e30dcd760319509ad0958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10648 zcmb_i3t&{$wOxCX%$*EFgo_~YJAl$85CW)x2`Uf-V-p0!M-*v?$%G6{GHGT4qE!(B zB2WbdO%*IE713$|5%RHL+rC#@+iLx_wc6+VXvyS#`d;71K5N%G_ukAM5@TYEc;?=F z&e>;w*4}5IeR%259p46UxjgKL2U!NP1IU3_FlSR+SRA1&pp5UC~ z;?%wasRJ8>sm=RSEk}dhTXv?lAMD=VR$T1IFbp?f1~39=3P$unL|`;3lCcJ^QeZ8k z`Q;kXhSg<-OMMt6$W68E>uzo7-rMTKXu;6By1H2np>>g_N#S_C4`=h!@S78j^|Ah&h1k zZAqo+Spm$(96=s+H#eGSjD#^Lx4FTMU6_j23Z%;Q7l8D|y6)=)i zm<%{86%$`jeq7P#s@EeFz$%0}gF^KhXIs+;lFUu*Ki+j{mv)BLME?4^4Q^+MI?gb4 z#?;~&Y?MfA1Bihk%iG*oqdm8&7jk>sb|7B{fp-&L%v8)Y2Jj^`k(ruEETY25h+fPT zE;V6br4P-5^NNdusiQ4jExUS!(O_}059EM%fky7eb0bD0u4F&eV>5-8*;ru~mi9y95*Z6~vC$HZi4xyH%Xr zF1WI{Wd|b({nw{lek*2~$W`dM1B*@gvC`zOJky8!XsuJvJ)b(XQFZN6DBmks)N9q= zP#&CqOav@GS_Am16MB|tUt;JnF%*jw1N#)R_xB0t8%*RWjt>Zeeh1E*o=F|p7wmqx zCD^s;$<+Rh!LFwccRjk_#2HG$VVG%RxSI5Jol6vd(jPw#;YkCB19(bpcdl5ZHZFm` zDb!FCuU9WVd_x&}@3yWjdzmq$TG~<%?U^(L&*GZ~jwsk39Vl$8B8fz3b)*NjAzSMi zuuX?Wy@y(M80>awuT|nh8@O=UJRoplti>pmej*5kRNfqWo$LiZ>+b z0w%ZeZ>cc_1YO{zbvrsRMf%@Ppltw07NpF!kWJ)b{7Q zc5Lg~aZnrXhYIyS`dgyj5!A#eOLO~7oTZ}iPnaOBkH>2^`0z4eq#tKlnWB|!{+!#B z{yJsq#g`a(h05+Xax_I6V!r}i!(-s=#>QBbIWW&YOeUIXvGVJd%v~HwFcZ7pCIX zEc|N#|Av1ToDsINi!@D!hkki-XlB~kCi{l~{uBR2vh`K~9z5AhgXweRe=}oMKC2S* z|5eueKf-!IL9CChb?FfN3IA{4qX7Plj|J2E74{QBpps~wV+Bh;MP2Um;=uNGWh`zd zTSX|Vcm(tMlC@v9Gm{>bIZ}~BBwKO}@ltRxJ}oe~1n-4n!HR(iZO`OEZxGy;`6Rb@ z8ZgEuLjX=g+>1^f*_b-CFK8WBnR5qwh8uDQbDQ*rzaU=S z9Im@67OAJIuDUrKX;l8@mpmCB5YyQ_Z7iA?trDycWMn`_$ywY+5|Lzcqq37=<)^5^ zahD7i9FRV29DE@80XbXFq4VoyZKVoo2DtL+jyj;l9n&eX&kM-;a)DsD~dCz7=bFI&e?o%XjP0~%*uE;6k8f`K4zHk!hE^v-;k8wvMw?t- z*xG8U9c^9OKRpVi%X_Ecm$eU@kf6AK3YlS$Ecxu2)LcMo!=_DU-LKT&=#2LaeO>vP z)MBqxrZkghJJMh^ahem+{I)!*D(JSjKF?6xP;;^_-lTdBd&z<7%wCGjT8gsY9Yxu% zR8*c-wW;YDU}?@7@Hfz$O-gIdYe__>VNs6x(5QkN``Y7q@~&m^Pzf&d{IM>J^&R;s zXLhJ*HRT!62SFtz(U?xJd5G#Cd9LkKIcIt%7aDFGE&WmO*W{Gx!2H=L+WJjTCXY`3 zW+QZ}A=etRd=N=PFQSZ3)$!)0a6}!WSbjY%q)t+MGeJBj9#1BcO`*oB2%%e(IKwL| z{qhC*q9H6oUM{OxE7jY$KC4C>*2ULGN~{vFRVtnr3acZVpw*o<*#j-2SF_>}izF_r zjK|kDHvI_=W48!>&9wrvvSp;)Xsnv5{NAuP{yD(ZV%RLOMDo?vNE ze8Nh(U%fxkV!hYV;nX|Rp8YRapVn}4_rBv@J2!UUdnDL(Y+HA0o7JO=!S-bilcZBe zG!4H`=qGkg6in#?evsAs)V5aE@eisxzBRj1aIV9&?t% zwwsRToTrh|PU$G)mO%HeBS@WImv}e#F-fzeC*7hh9=5fz!VpXyXbHOY^5t}ws!+MR zZdXg$vwF1PlZ}>mx>lRo&ndmcV@-6J!=vuhOti4PWf#Dl&Pd4TQUv;qTrSe<%Dz5Kcn~tX*I;>1ai|ka)rBh;uR$7Jk5G-k$>A61H zW%tVxJ1a3{vT1i3%r;I%Y!yI}7XB3$u&9lt>cAS%q$|7@& zInKODzf=`XIDyZ#qu7H59DD*()Rc=kg}=q@YQv=+Chqr8q0F% zIJSi-MiDON#cmlUqKa=TFbQi3&08=Tck{Y*H>Trp%)l{Tnf{!kevg@w#cl08UU*K& z47nWhWdSN=F&0V~i=>`+ea*OD?!t0;05`~UxKUo_o!aVh264Sie(a|YsNED z!lxXW%vqy2%Icfa(>H~EQ`t8j*&lOJuYq$76gYpcr^|ha2R=fjLEia9&RA`-e9hCw zwdiZoLbIDm%T0)qB6Hm_+}w`avy{VacAl#&3@K=BX~#Cp>*!}&w4d$JXyFic@9e-= zoL5D!9gKdN4s@>#F1G`XQ|L?k$W|92jp{co271=mrD%-!v{KTE^hTK@rOeZD@} zfrrvV+wrgm%WR$$;H?RdI1|jTS&HcKgGY5w)-<;tELN$?T*;9(Q`| zICZc`-7N~uPo&YjiAVOi2hk>omUkk+(KEmx5idT>`7B?*v%PXYfBR6lf z;fYHAUsYs2Jz-)yp2^nx0ug#lBlLM~fg<(ZjuRdSkXCno_6f9iP;Y9tAUM85z-C0l z@9LgR6llPvQSh85@jX3I8}&`SnECy7{2&XZUWFO29`ko@R{q|Cqgv5WLkv6q{#Xx6 z<6<6f`M`U{Y@*qRhk1{*4;SGPOu^TPi33?zx>;5})rZChFtZ^%qWJjPSJDp$yrw5Sh1lUaQ7aGe)rw#=bLr|^ogoKO7M z64)Yhl|{M2G`Wi3yre%u=JA`+6RWII^Et}uo6kNKt1f`&V=iwPc-Fun{r5Qo{A(K; zK2_bbvx)g!&cjJe1YRTx#BBpJ;n%?lO&7!W4v?4)lL zDyv%D=aCbjown`Z&ef?`E3)X=HX%iOHT870-YbSv*OpCkS^K)i;=q$nD-0pEcRKNl zq@wh%Y~v z3dr|48c^xS2=UXk=%1y2H6&mS@oPU_b_gR&eG2@(6EdtrMri1h4>_~cM^0q4qMM(a z?`xBDj}o2LILZrN>Q2T`-c>9MgDIB}-{W=o_xbiBlhYqC1Nb3xfFI!syu`%sC%76v zWiIeCXTQSu`YQkB$7{?3UZ+33NgsNPG~dQ?{F)))H=Ok@NB)i@-otNs;Wd^k+=D#M ztI&AzarUL!F1eg*%IE1Te$E^wl~SeS(L1t$@l|EFZ^%MfM6QR?r>>J~B5yRWVi(I2 z+I|earIDIVZjWnx<&fv6we7v+{D3T_XBy;XxV`Rc@LTI@U%E*7(sB3Onn$cjg9lokAKMZVlb(1djx(d}y8Ms>SZxAnS>>-I~!P3X2+ zx9fGgLAST+_BP$#q1!ukyIHqebbFU>@7C=O-F`*4_v&`HZts`9E{j D>ZPB( diff --git a/discordit/build/tmp/compileJava/previous-compilation-data.bin b/discordit/build/tmp/compileJava/previous-compilation-data.bin deleted file mode 100644 index 998a8ed1cd7f18bf1b70231f5494843e48b5a811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1646 zcmYjQX;4#F6uyTbizM&@WeJPa1r&+*p*96X5qJ;{@C4q=Lr4_}A;GW(6P6-f5Q6L$ zR8&;z3hq{_;)1wQs7s~lbhKkTE=bLkV5DT;o z7GPUE0o!4FWY!o89Z;RA*r+cmaYXfndXq_SD4K{GbMz*SAxEn(aYFSbt+7n6(F)OO z5vtRgOzK>%Gk>rIiGm5Ur4L(W&re=&uWNs(Tjs(NoQ)Wnd5|lrA5WS?1nU*P#%rhh zU(Bw)YBRVd)Q$OobH^Uo))O@uwZ#ULzQkax5Q@D}8}tp zM7277fmRrd%>3r#MQpj#(|d#5?rRUhFK0=z@}=x7&R@*eyKw!+j(?7oPI;qj4+`s^ zgc*_wkgn)2%9u*;)8?$@o*MKRHI2p`|zugvt8Z8|h@kDsP% zefo?TmZD-~;;pE;#><;d1W7lqNrkP~M` zX-qmdotH7im5j)mfAo}j7tv+(eXCMMe-gh8+X|N>v${;3ftreo3-lUw2|x5i|5LA? zM)~V!vL~-2Li%zJWKxMfgtT(z-M|6&7Nl-$3rxCoDNC8DM&^oQEm5nTP95rijv1p0Wk`UG66YAlEVXHR9J?x`0xZtcxH?YW%EZtq%sO60djP4^JP+{ zX{u0^z=!Qoq|z@+k&XO#2cbxd4Y1f$i%qjwg~iG&7FD75*85Hs@E1NgSj*_BT=@!8 zPv(*NWC2-7+B-N-^cCT91>Lpcr~!qK$nTe^HB|8GqANlmHCWEBx?ZI z0b37L1IQbJYJ&J?AX|VeAOC0LS+cc&zXG-us5XdM2jqJGevxpol_O>Y;C5g)0^I=C zLVlY7Zw96VIHP#{F>YG`Z-wY>5Z?)8zHoVlr2*B~fVTs)1E@-CpLi$WUBH&QTJBwT z1KtBn7tq}x-wWhEzA&$qwL#^6zz2Xm2z1-K!iqzH4+C=qxJql`&~E@A1+E9kZ~4MY zgklSE(lNltfjI$mu9YmZ7w}1-dq8AKNH_)fG%#m?%e4}v^#MK$Y(H>qVAY>F2lzZN z7l1ZeS+Xwzz68nvpnAYZZDGp#4)7qbL%=n>!%4pfd>Pm)Ky`yv#PF+t2fzZzyaxCO PV6Ow${SJ^iHa_S-l<(Q& diff --git a/discordit/gradle/wrapper/gradle-wrapper.jar b/discordit/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 8bdaf60c75ab801e22807dde59e12a8735a34077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg diff --git a/discordit/gradle/wrapper/gradle-wrapper.properties b/discordit/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 2a84e188..00000000 --- a/discordit/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/discordit/gradlew b/discordit/gradlew deleted file mode 100644 index ef07e016..00000000 --- a/discordit/gradlew +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH="\\\"\\\"" - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/discordit/gradlew.bat b/discordit/gradlew.bat deleted file mode 100644 index db3a6ac2..00000000 --- a/discordit/gradlew.bat +++ /dev/null @@ -1,94 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH= - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/discordit/settings.gradle b/discordit/settings.gradle deleted file mode 100644 index 955baf54..00000000 --- a/discordit/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'discordit' \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java b/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java deleted file mode 100644 index 366f80c0..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/JavaApplication.java +++ /dev/null @@ -1,229 +0,0 @@ -package com.sprint.mission.discodeit; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.ChannelRepository; -import com.sprint.mission.discodeit.repository.MessageRepository; -import com.sprint.mission.discodeit.repository.UserRepository; -import com.sprint.mission.discodeit.repository.file.FileChannelRepository; -import com.sprint.mission.discodeit.repository.file.FileMessageRepository; -import com.sprint.mission.discodeit.repository.file.FileUserRepository; -import com.sprint.mission.discodeit.service.ChannelService; -import com.sprint.mission.discodeit.service.UserService; -import com.sprint.mission.discodeit.service.basic.BasicChannelService; -import com.sprint.mission.discodeit.service.basic.BasicMessageService; -import com.sprint.mission.discodeit.service.basic.BasicUserService; -import com.sprint.mission.discodeit.service.file.FileUserService; -import com.sprint.mission.discodeit.service.jcf.JCFChannelService; -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.service.MessageService; -import com.sprint.mission.discodeit.service.jcf.JCFMessageService; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -import static com.sprint.mission.discodeit.entity.ChannelType.PUBLIC; - - -public class JavaApplication { - static void userCRUDTest(UserService userService) { - System.out.println("--유저 생성 테스트--"); - // 생성 - User user = userService.create("서현하", "hhh@naver.com", "010-2222-2222"); - User user2 = userService.create("김춘자", "ccc@naver.com", "010-8888-8888"); - - //User객체 user에다가 userService.create 메서드의 반환값으로 받은 유저객체를 담는다 - - // 조회 - //userService안에 있는 find 메서드의 매개변수로 user.getId를 보낸다 - User foundUser = userService.find(user.getId()); - System.out.println(); - System.out.println("유저 조회(단건)"); - System.out.println("유저 아이디 : " + foundUser.getId()); - System.out.println("이름 : " + foundUser.getDisplayName()); - System.out.println("이메일 : " + foundUser.getEmail()); - System.out.println("휴대폰 번호 : " + foundUser.getPhoneNumber()); - System.out.println("생성 시간 : " + foundUser.getCreatedAt() + "\n"); - - /* userService.find 메서드에 위에서 가져온 user객체의 id를 매개변수로 입력한다 - 반환값으로 가져온 유저객체를 foundUser라는 변수명인 유저변수에 담는다 - 그리고 foundUser가 가지고있는 id와 이름,이메일,전화번호,생성시간을 출력한다 - */ - List foundUsers = userService.findAll(); - System.out.println("유저 조회 건수(다건) : " + foundUsers.size()); - for (int i = 0; i < foundUsers.size(); i++) { - System.out.println("유저 아이디 : " + foundUsers.get(i).getId()); - //foundUsers는userService.findall 메소드를 통해서 받아온 전체유저가 담긴 리스트다 - System.out.println("이름 : " + foundUsers.get(i).getDisplayName()); - System.out.println("이메일 : " + foundUsers.get(i).getEmail()); - System.out.println("휴대폰 번호 : " + foundUsers.get(i).getPhoneNumber()); - System.out.println("생성 시간 : " + foundUsers.get(i).getCreatedAt() + "\n"); - - /* data list를 foundUsers라는 유저객체를 담을 수 있는 list에 담는다 - foundUsers list의 크기를 출력한다(유저 조회건수) - for문으로 foundUsers의 size만큼 반복문을 수행한다 - foundUsers의 i번째에 들어있는 user객체의 값을 출력한다 - */ - - }// 수정 - userService.update(user.getId(), "이말자", "why@naver.com", "010-8282-8282"); - //userService에 있는 업데이트 메소드를 호출 - System.out.println(); - - /* userService.delete메소드에 위에서 생성한 user 변수의 id값을 매개변수로 입력한다 - */ - - - // 삭제 <삭제할 유저의 이름을 출력만한다> - System.out.println(user.getDisplayName() + " 유저를 삭제합니다" + "\n"); - userService.delete(user.getId()); - //매개변수 Id - /* user service에 findall메소드를 통해서 유저삭제이후 list를 새로 반환받는다 - for문 안에서 유저삭제이후 list를 돌리면서 해당 list의 유저가 가지고있는 값을 출력한다 - */ - List foundUsersAfterDelete = userService.findAll(); - - System.out.println("유저 조회 건수: " + foundUsersAfterDelete.size()); - for (int i = 0; i < foundUsersAfterDelete.size(); i++) { - System.out.println("유저 아이디 : " + foundUsersAfterDelete.get(i).getId()); - System.out.println("이름 : " + foundUsersAfterDelete.get(i).getDisplayName()); - System.out.println("이메일 : " + foundUsersAfterDelete.get(i).getEmail()); - System.out.println("휴대폰 번호 : " + foundUsersAfterDelete.get(i).getPhoneNumber()); - System.out.println("생성 시간 : " + foundUsersAfterDelete.get(i).getCreatedAt() + "\n"); - } //get(i) i번째, - - } - - static void channelCRUDTest(ChannelService channelService) { - // 생성 - /* 입력값으로 채널을 생성하고 새 채널을 만들어서 channel객체를 담는 리스트에 - 넣어서 리턴값으로 채널을 반환해 다시 변수에 넣는다 - */ - System.out.println("-- 채널 생성 테스트 --"); - System.out.println(); - Channel channel = channelService.create("주의사항",PUBLIC); - Channel channel2 = channelService.create("자유 게시판",PUBLIC); - System.out.println(); - - - // 조회 - //생성한 채널중 첫번째로 생성한 채널의 객체를 가져와서 출력했다 - Channel foundChannel = channelService.find(channel.getId()); - System.out.println("채널 조회(단건): " + foundChannel.getId()); - System.out.println("채널 이름 : " + channel.getDisplayName()); - System.out.println(); - - // list 개체를 담아서 변수이름 foundChannels를 선언하고 findAll메소드를 이용 - List foundChannels = channelService.findAll(); - System.out.println("채널 조회(다건): " + foundChannels.size()); - for (int i = 0; i < foundChannels.size(); i++) { - System.out.println("채널 이름 : " + foundChannels.get(i).getDisplayName()); - - } - // int i를 0으로 선언하고 i가 파운드채널스 리스트의 크기보다 작으면 for문을 이용해서 - // foundChannels의 list값을get(i) - // 수정 - System.out.println(); - System.out.println("수정 전 이름 : " + channel.getDisplayName()); - channelService.update(channel.getId(), "공지"); - System.out.println("수정 후 이름 : " + channel.getDisplayName()); - System.out.println("수정 시간 : " + channel.getUpdatedAt()); - - // 삭제 - //삭제한 후에 남아있는 채널이 담긴 리스트에 삭제하고 싶은 리스트를 없앤 다음에 리스트 가져옴 - channelService.delete(channel.getId()); - List foundChannelsAfterDelete = channelService.findAll(); - System.out.println(channel.getDisplayName() + " 채널을 삭제합니다" + "\n"); - System.out.println("\n채널 삭제 후 남은 목록"); - System.out.println("채널 삭제: " + foundChannelsAfterDelete.size()); - - for (int i = 0; i < foundChannelsAfterDelete.size(); i++) { - System.out.println("남은 채널 아이디 : " + foundChannelsAfterDelete.get(i).getId()); - System.out.println("남은 이름 : " + foundChannelsAfterDelete.get(i).getDisplayName()); - System.out.println(); - System.out.println("---------------------------"); - System.out.println(); - } - } - - static void messageCRUDTest(MessageService messageService) { - // 생성 - UUID channelId = UUID.randomUUID(); - UUID authorId = UUID.randomUUID(); - Message message = messageService.create("안녕하세요.", channelId, authorId); - System.out.println("메시지 생성: " + message.getId()); - // 조회 - Message foundMessage = messageService.find(message.getId()); - System.out.println("메시지 조회(단건)\n메세지 아이디 : " + foundMessage.getId()+ "\n메세지 내용 : " + foundMessage.getContent() +"\n"); - List foundMessages = messageService.findAll(); - System.out.println("메시지 조회(다건): " + foundMessages.size()); - for(int i = 0; i < foundMessages.size(); i++) { - System.out.println("메세지 내용 : " + foundMessages.get(i).getContent()); - } - // 수정 - Message updatedMessage = messageService.update(message.getId(), "정말 힘들었습니다."); - System.out.println("메시지 수정 : " + updatedMessage.getContent()); - // 삭제 - messageService.delete(message.getId()); - List foundMessagesAfterDelete = messageService.findAll(); - System.out.println("메시지 삭제 : " + foundMessagesAfterDelete.size()); - } - - static User setupUser(UserService userService) { - User user = userService.create("woody", "woody@codeit.com", "woody1234"); - return user; - } - - static Channel setupChannel(ChannelService channelService) { - Channel channel = channelService.create("공지",ChannelType.PUBLIC); - return channel; - } - - static void messageCreateTest(MessageService messageService, Channel channel, User author) { - Message message = messageService.create("안녕하세요.", channel.getId(), author.getId()); - System.out.println("메시지 생성: " + message.getId()); - } - - public static void main(String[] args) { - - // 서비스 초기화 - UserRepository userRepository = new FileUserRepository(); - ChannelRepository channelRepository = new FileChannelRepository(); - MessageRepository messageRepository = new FileMessageRepository(); - UserService userService = new FileUserService(); - ChannelService channelService = new JCFChannelService(); - MessageService messageService = new JCFMessageService(); - MessageService messageService2 = new BasicMessageService(userRepository,channelRepository); - - - //테스트 - userCRUDTest(userService); - channelCRUDTest(channelService); - messageCRUDTest(messageService); - System.out.println(); - - - try { - User user = userRepository.save(new User("woody", "woody@codeit.com", "1234")); - Channel channel = channelRepository.save(new Channel("공지",PUBLIC)); - - messageService.create("안녕하세요!", channel.getId(), user.getId()); - System.out.println("메시지 생성 성공!"); - - UUID fakeId = UUID.randomUUID(); - messageService.create("가짜 유저의 메시지", channel.getId(), fakeId); - - } catch (NoSuchElementException e) { - System.out.println("검증 실패 (정상): " + e.getMessage()); - } - - // 셋업 - User user = setupUser(userService); - Channel channel = setupChannel(channelService); - // 테스트 - messageCreateTest(messageService, channel, user); - } -} - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java deleted file mode 100644 index fc3e79eb..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Channel.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.util.List; -import java.io.Serializable; -import java.util.UUID; - - -public class Channel implements Serializable { - private static final long serialVersionUID = 1L; - - private final UUID id; - private String displayName; - private Long createdAt; - private Long updatedAt; - private ChannelType type; - - - public Channel(String displayName,ChannelType type) { - this.id = UUID.randomUUID(); - this.displayName = displayName; - long now = System.currentTimeMillis(); - this.createdAt = now; - this.updatedAt = now; - this.type = type; - - } - public void update(String displayName) { - this.displayName = displayName; - } - - public UUID getId() { - return id; - } - - public String getDisplayName() { - return displayName; - } - - public void setDisplayname(String displayName) { - this.displayName = displayName; - } - - public Long getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Long createdAt) { - this.createdAt = createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Long updatedAt) { - this.updatedAt = updatedAt; - } - - public void setDisplayName(String displayName) { - this.displayName = displayName; - } -} - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java deleted file mode 100644 index 15b39978..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/ChannelType.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.io.Serializable; - -public enum ChannelType implements Serializable { - PUBLIC; - private static final long serialVersionUID = 1L; -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java deleted file mode 100644 index efb99b63..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/Message.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.io.Serializable; -import java.util.UUID; - -public class Message implements Serializable { - private static final long serialVersionUID = 1L; - - private UUID id; - private String content; - private UUID channelId; - private UUID authorId; - - - public Message(String content, UUID channelId, UUID authorId) { - this.id = UUID.randomUUID(); - this.content = content; - this.channelId = channelId; - this.authorId = authorId; - } - - public void update(String content) { this.content = content; } - - public UUID getId() { return id; } - - public String getContent() { return content; } - - public void setContent(String content) { - this.content = content; - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java b/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java deleted file mode 100644 index 1a68f3e4..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/entity/User.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.sprint.mission.discodeit.entity; - -import java.io.Serializable; -import java.util.UUID; - -/* User객체에 들어갈 정보를 private변수 선언을 한다 -public User 입력값(매개변수)을 입력한다 -유저객체의 변수에 입력변수(매개변수)의 값을 입력한다 -UUID부터 메서드들은 리턴값을 반환한다 - */ - -public class User implements Serializable { - private static final long serialVersionUID = 1L; - - private UUID id; - private String displayName; - private String email; - private String phoneNumber; - private Long createdAt; - private Long updatedAt; - - public User(String displayName, String email, String phoneNumber) { - this.id = UUID.randomUUID(); - this.displayName = displayName; - this.email = email; - this.phoneNumber = phoneNumber; - long now = System.currentTimeMillis(); - this.createdAt = now; - this.updatedAt = now; - } - // - public void update(String displayName, String email, String phoneNumber) { - this.displayName = displayName; - this.email = email; - this.phoneNumber = phoneNumber; - this.updatedAt = System.currentTimeMillis(); - } - - public UUID getId() { - return id; - } - - public String getDisplayName() { - return displayName; - } - - public String getEmail() { - return email; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public Long getCreatedAt() { - return createdAt; - } - - public Long getUpdatedAt() { - return updatedAt; - } - - public String toString() { - return "User [이름=" + displayName + ", 이메일=" + email + ", 전화번호=" + phoneNumber + "]"; - } - - //TODO 메서드 추가 - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - - public void setEmail(String email) { - this.email = email; - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java deleted file mode 100644 index d416ad92..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/ChannelRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sprint.mission.discodeit.repository; - -import com.sprint.mission.discodeit.entity.Channel; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public interface ChannelRepository { - - Channel save(Channel channel); - - Optional findById(UUID id); - - List findAll(); - - boolean existsById(UUID id); - - void deleteById(UUID id); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java deleted file mode 100644 index ce21a9b8..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/MessageRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sprint.mission.discodeit.repository; - -import com.sprint.mission.discodeit.entity.Message; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public interface MessageRepository { - - Message save(Message message); - - Optional findById(UUID id); - - List findAll(); - - boolean existsById(UUID id); - - void deleteById(UUID id); - -} - - - - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java deleted file mode 100644 index 4e067f7d..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/UserRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.sprint.mission.discodeit.repository; - -import com.sprint.mission.discodeit.entity.User; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public interface UserRepository { - - User save(User user); - - Optional findById(UUID id); - - List findAll(); - - boolean existsById(UUID id); - - void deleteById(UUID id); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java deleted file mode 100644 index a2a02855..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileChannelRepository.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.sprint.mission.discodeit.repository.file; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.repository.ChannelRepository; - -import java.io.*; -import java.util.*; - -public class FileChannelRepository implements ChannelRepository { - private final String fileName = "channels.dat"; // 채널 데이터 저장 파일명 - - @Override - public Channel save(Channel channel) { - List channels = findAll(); - channels.removeIf(c -> c.getId().equals(channel.getId())); - channels.add(channel); - - saveAllToFile(channels); - return channel; - } - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(channel -> channel.getId().equals(id)) - .findFirst(); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - File file = new File(fileName); - if (!file.exists() || file.length() == 0) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - @Override - public boolean existsById(UUID id) { - return findById(id).isPresent(); - } - - @Override - public void deleteById(UUID id) { - List channels = findAll(); - if (channels.removeIf(channel -> channel.getId().equals(id))) { - saveAllToFile(channels); - } - } - - private void saveAllToFile(List channels) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(channels); - } catch (IOException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java deleted file mode 100644 index c3cf78dd..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileMessageRepository.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.sprint.mission.discodeit.repository.file; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.MessageRepository; - -import java.io.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class FileMessageRepository implements MessageRepository { - private final String fileName = "messages.dat"; - - @Override - public Message save(Message message) { - List messages = new ArrayList<>(findAll()); - messages.removeIf(m -> m.getId().equals(message.getId())); - messages.add(message); - - saveAllToFile(messages); - return message; - } - - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(message -> message.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() { - File file = new File(fileName); - if (!file.exists()) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) { - List messages = new ArrayList<>(findAll()); - if (messages.removeIf(m -> m.getId().equals(id))) { - saveAllToFile(messages); - } - } - - private void saveAllToFile(List messages) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(messages); - } catch (IOException e) { - e.printStackTrace(); - } - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java deleted file mode 100644 index 3b988100..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/file/FileUserRepository.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.repository.file; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.UserRepository; - -import java.io.*; -import java.util.*; - -public class FileUserRepository implements UserRepository { - private final String fileName = "users.dat"; - - @Override - public User save(User user) { - List users = findAll(); - users.removeIf(u -> u.getId().equals(user.getId())); - users.add(user); - - saveAllToFile(users); - return user; - } - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(user -> user.getId().equals(id)) - .findFirst(); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - File file = new File(fileName); - if (!file.exists()) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - @Override - public boolean existsById(UUID id) { - return findById(id).isPresent(); - } - - @Override - public void deleteById(UUID id) { - List users = findAll(); - if (users.removeIf(user -> user.getId().equals(id))) { - saveAllToFile(users); - } - } - - // 파일 저장을 위한 헬퍼 메서드 - private void saveAllToFile(List users) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(users); - } catch (IOException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java deleted file mode 100644 index c5c49b3a..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFChannelRepository.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sprint.mission.discodeit.repository.jcf; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.repository.ChannelRepository; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class JCFChannelRepository implements ChannelRepository { - private final List channels = new ArrayList<>(); - - @Override - public Channel save(Channel channel) { - channels.removeIf(c -> c.getId().equals(channel.getId())); - channels.add(channel); - return channel; - } - - @Override - public Optional findById(UUID id) { - return channels.stream() - .filter(c -> c.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() {return new ArrayList<>(channels);} - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) {channels.removeIf(c -> c.getId().equals(id));} - -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java deleted file mode 100644 index 2ce378ac..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFMessageRepository.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sprint.mission.discodeit.repository.jcf; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.MessageRepository; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class JCFMessageRepository implements MessageRepository { - private final List messages = new ArrayList<>(); - - @Override - public Message save(Message message) { - messages.removeIf(m -> m.getId().equals(message.getId())); - messages.add(message); - return message; - } - - @Override - public Optional findById(UUID id) { - return messages.stream() - .filter(m -> m.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() {return new ArrayList<>(messages);} - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) {messages.removeIf(m -> m.getId().equals(id));} - -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java deleted file mode 100644 index 4a547df3..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/repository/jcf/JCFUserRepository.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.sprint.mission.discodeit.repository.jcf; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.UserRepository; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -public class JCFUserRepository implements UserRepository { - private final List users = new ArrayList<>(); - - @Override - public User save(User user) { - users.removeIf(u -> u.getId().equals(user.getId())); - users.add(user); - return user; - } - - @Override - public Optional findById(UUID id) { - return users.stream() - .filter(user -> user.getId().equals(id)) - .findFirst(); - } - - @Override - public List findAll() {return new ArrayList<>(users);} - - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - - @Override - public void deleteById(UUID id) {users.removeIf(u -> u.getId().equals(id));} -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java deleted file mode 100644 index de68c7b0..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/ChannelService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.sprint.mission.discodeit.service; - - -import com.sprint.mission.discodeit.entity.Channel; // 아까 만든 Channel 클래스 가져오기 -import com.sprint.mission.discodeit.entity.ChannelType; - -import java.util.List; -import java.util.UUID; - -public interface ChannelService { - - Channel create(String displayName,ChannelType type); - - Channel find(UUID id); - - List findAll(); - - Channel update(UUID id, String displayName); - - boolean delete(UUID id); - -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java deleted file mode 100644 index afeda909..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/MessageService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sprint.mission.discodeit.service; - -import com.sprint.mission.discodeit.entity.Message; -import java.util.List; -import java.util.UUID; //필요한 함수를 사용하기위해 외부의 라이브러리를 가져온다 - - -public interface MessageService { - - Message create(String content, UUID channelId, UUID authorId); - - Message find(UUID id); - - List findAll(); - - Message update(UUID id, String content); - - boolean delete(UUID id); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java deleted file mode 100644 index 99afe3b6..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.sprint.mission.discodeit.service; - -import com.sprint.mission.discodeit.entity.User; - -import java.util.List; -import java.util.UUID; - -public interface UserService { - - User create(String username, String email, String password); - - User find(UUID userId); - - List findAll(); - - User update(UUID userId, String newUsername, String newEmail, String newPassword); - - void delete(UUID userId); -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java deleted file mode 100644 index a48f9de2..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/UserService2.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.sprint.mission.discodeit.service; - -import com.sprint.mission.discodeit.entity.User; -import java.util.List; -import java.util.UUID; - -public interface UserService2 { - - User find(UUID id); - - List findAll(); - - void update(UUID id,String displayName, String email, String phoneNumber); - - boolean delete(UUID id); - - User create(String displayName, String email, String phoneNumber); -} - - -/* UserService라는 interface안에 메서드 빈상자를 만들고 상자의 이름이랑 입력값만 지정해둔 상태고 -이 빈상자를 가지고 JCFUserService로 들고간다 - */ \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java deleted file mode 100644 index 54711331..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicChannelService.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.sprint.mission.discodeit.service.basic; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.repository.ChannelRepository; -import com.sprint.mission.discodeit.service.ChannelService; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -public class BasicChannelService implements ChannelService { - private final ChannelRepository channelRepository; - - public BasicChannelService(ChannelRepository channelRepository) { - this.channelRepository = channelRepository; - } - - @Override - public Channel create(String displayName,ChannelType type) { - Channel channel = new Channel(displayName,type); - return channelRepository.save(channel); - } - - @Override - public Channel find(UUID id) { - return channelRepository.findById(id) - .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); - } - - @Override - public List findAll() { - return channelRepository.findAll(); - } - - @Override - public Channel update(UUID id, String displayName) { - Channel channel = channelRepository.findById(id) - .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); - channel.update(displayName); - return channelRepository.save(channel); - } - - @Override - public boolean delete(UUID id) { - if (!channelRepository.existsById(id)) { - throw new NoSuchElementException("Channel with id " + id + " not found"); - } - return false; - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java deleted file mode 100644 index ff1c6073..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicMessageService.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.service.basic; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.ChannelRepository; -import com.sprint.mission.discodeit.repository.MessageRepository; -import com.sprint.mission.discodeit.repository.UserRepository; -import com.sprint.mission.discodeit.service.MessageService; - -import java.util.ArrayList; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -public class BasicMessageService implements MessageService { - private final List data = new ArrayList<>(); - private final UserRepository userRepository; - private final ChannelRepository channelRepository; - - public BasicMessageService(UserRepository userRepository, ChannelRepository channelRepository) { - this.userRepository = userRepository; - this.channelRepository = channelRepository; - } - - @Override - public Message create(String content, UUID channelId, UUID authorId) { - if (!userRepository.existsById(authorId)) { - throw new NoSuchElementException("존재하지 않는 유저(authorId)입니다."); - } - if (!channelRepository.existsById(channelId)) { - throw new NoSuchElementException("존재하지 않는 채널(channelId)입니다."); - } - Message message = new Message(content, channelId, authorId); - data.add(message); - return message; - } - - @Override - public Message find(UUID id) { - return data.stream() - .filter(m -> m.getId().equals(id)) - .findFirst() - .orElse(null); - } - - @Override - public List findAll() {return new ArrayList<>(data);} - - @Override - public Message update(UUID id, String content) { - Message message = find(id); - if (message != null) { - message.setContent(content); - } - return message; - } - @Override - public boolean delete(UUID id) { - return data.removeIf(m -> m.getId().equals(id)); - } -} - - - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java deleted file mode 100644 index cc85037e..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/basic/BasicUserService.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.sprint.mission.discodeit.service.basic; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.repository.UserRepository; -import com.sprint.mission.discodeit.service.UserService; - -import java.util.List; -import java.util.NoSuchElementException; -import java.util.UUID; - -public class BasicUserService implements UserService { - private final UserRepository userRepository; - - public BasicUserService(UserRepository userRepository) { - this.userRepository = userRepository; - } - - @Override - public User create(String username, String email, String password) { - User user = new User(username, email, password); - return userRepository.save(user); - } - - @Override - public User find(UUID userId) { - return userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - } - - @Override - public List findAll() { return userRepository.findAll();} - - @Override - public User update(UUID userId, String newUsername, String newEmail, String newPassword) { - User user = userRepository.findById(userId) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - user.update(newUsername, newEmail, newPassword); - return userRepository.save(user); - } - - @Override - public void delete(UUID userId) { - if (!userRepository.existsById(userId)) { - throw new NoSuchElementException("User with id " + userId + " not found"); - } - userRepository.deleteById(userId); - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java deleted file mode 100644 index ec78f9e5..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileChannelService.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.sprint.mission.discodeit.service.file; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.service.ChannelService; - -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Optional; -import java.util.UUID; - -public class FileChannelService implements ChannelService { - private final Path DIRECTORY; - private final String EXTENSION = ".ser"; - - public FileChannelService() { - this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", Channel.class.getSimpleName()); - if (Files.notExists(DIRECTORY)) { - try { - Files.createDirectories(DIRECTORY); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - private Path resolvePath(UUID id) { return DIRECTORY.resolve(id + EXTENSION); } - - @Override - public Channel create(String displayName,ChannelType type) { - Channel channel = new Channel(displayName,type); - Path path = resolvePath(channel.getId()); - try ( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(channel); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return channel; - } - - @Override - public Channel find(UUID id) { - Channel channelNullable = null; - Path path = resolvePath(id); - if (Files.exists(path)) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - channelNullable = (Channel) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - return Optional.ofNullable(channelNullable) - .orElseThrow(() -> new NoSuchElementException("Channel with id " + id + " not found")); - } - - @Override - public List findAll() { - try { - return Files.list(DIRECTORY) - .filter(path -> path.toString().endsWith(EXTENSION)) - .map(path -> { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - return (Channel) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - }) - .toList(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public Channel update(UUID id, String displayName) { - Channel channel = find(id); - channel.setDisplayName(displayName); - save(channel); - return null; - } - - @Override - public boolean delete(UUID id) { - Path path = resolvePath(id); - - if (Files.notExists(path)) { - throw new NoSuchElementException("Channel with id " + id + " not found"); - } - try { - Files.delete(path); - return true; - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private void save(Channel channel) { - Path path = resolvePath(channel.getId()); - try ( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(channel); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private Channel readFromFile(Path path) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - return (Channel) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java deleted file mode 100644 index 4dfc75ef..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileMessageRepository.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.sprint.mission.discodeit.service.file; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.repository.MessageRepository; - -import java.io.*; -import java.util.*; - -public class FileMessageRepository implements MessageRepository { - private final String fileName = "messages.dat"; - - @Override - public Message save(Message message) { - List messages = findAll(); - messages.removeIf(m -> m.getId().equals(message.getId())); - messages.add(message); - - saveAllToFile(messages); - return message; - } - - @Override - public Optional findById(UUID id) { - return findAll().stream() - .filter(message -> message.getId().equals(id)) - .findFirst(); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - File file = new File(fileName); - if (!file.exists()) return new ArrayList<>(); - - try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { - return (List) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - return new ArrayList<>(); - } - } - - @Override - public boolean existsById(UUID id) {return findById(id).isPresent();} - - @Override - public void deleteById(UUID id) { - List messages = findAll(); - if (messages.removeIf(message -> message.getId().equals(id))) { - saveAllToFile(messages); - } - } - - private void saveAllToFile(List messages) { - try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fileName))) { - oos.writeObject(messages); - } catch (IOException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java deleted file mode 100644 index d3f77c7c..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/file/FileUserService.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.sprint.mission.discodeit.service.file; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.service.UserService; - -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.Optional; -import java.util.UUID; - -public class FileUserService implements UserService { - private final Path DIRECTORY; - private final String EXTENSION = ".ser"; - - public FileUserService() { - this.DIRECTORY = Paths.get(System.getProperty("user.dir"), "file-data-map", User.class.getSimpleName()); - if (Files.notExists(DIRECTORY)) { - try { - Files.createDirectories(DIRECTORY); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - private Path resolvePath(UUID id) { - return DIRECTORY.resolve(id + EXTENSION); - } - - @Override - public User create(String username, String email, String password) { - User user = new User(username, email, password); - Path path = resolvePath(user.getId()); - try ( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(user); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return user; - } - - @Override - public User find(UUID userId) { - User userNullable = null; - Path path = resolvePath(userId); - if (Files.exists(path)) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - userNullable = (User) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - return Optional.ofNullable(userNullable) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - } - - @Override - public List findAll() { - try { - return Files.list(DIRECTORY) - .filter(path -> path.toString().endsWith(EXTENSION)) - .map(path -> { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - return (User) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - }) - .toList(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public User update(UUID userId, String newUsername, String newEmail, String newPassword) { - User userNullable = null; - Path path = resolvePath(userId); - if (Files.exists(path)) { - try ( - FileInputStream fis = new FileInputStream(path.toFile()); - ObjectInputStream ois = new ObjectInputStream(fis) - ) { - userNullable = (User) ois.readObject(); - } catch (IOException | ClassNotFoundException e) { - throw new RuntimeException(e); - } - } - - User user = Optional.ofNullable(userNullable) - .orElseThrow(() -> new NoSuchElementException("User with id " + userId + " not found")); - user.update(newUsername, newEmail, newPassword); - - try( - FileOutputStream fos = new FileOutputStream(path.toFile()); - ObjectOutputStream oos = new ObjectOutputStream(fos) - ) { - oos.writeObject(user); - } catch (IOException e) { - throw new RuntimeException(e); - } - - return user; - } - - @Override - public void delete(UUID userId) { - Path path = resolvePath(userId); - if (Files.notExists(path)) { - throw new NoSuchElementException("User with id " + userId + " not found"); - } - try { - Files.delete(path); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java deleted file mode 100644 index 18b91739..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFChannelService.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.sprint.mission.discodeit.service.jcf; - -import com.sprint.mission.discodeit.entity.Channel; -import com.sprint.mission.discodeit.entity.ChannelType; -import com.sprint.mission.discodeit.service.ChannelService; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -public class JCFChannelService implements ChannelService { - private final List channels = new ArrayList<>(); - - @Override - public Channel create(String displayName,ChannelType type) { - - try { - Channel channel = new Channel(displayName,type); - channels.add(channel); - System.out.println("채널 등록 성공 : " + displayName); - - return channel; - - } catch (Exception e) { - System.out.println("채널 등록 실패"); - return null; - - } - } - - @Override - public Channel find(UUID id) { - for (Channel channel : channels) { - if (channel.getId() == id){ - return channel; - } - } - return null; - } - - @Override - public List findAll() {return new ArrayList<>(channels);} - /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 - 관리하는 원본 list에 영향을 주지 않을려고 했다 - findall메서드의 - */ - - - @Override - public Channel update(UUID id, String displayName) { - Channel channel = find(id); - if (channel != null) { - channel.setDisplayname(displayName); //기존에는 이것만 있음 - channel.setUpdatedAt(System.currentTimeMillis()); //팀장님이 권유해주신 시간추가 - } - return channel; - } - - @Override - public boolean delete(UUID id) { - boolean bool = channels.removeIf(channel -> id == channel.getId()); - return bool; - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java deleted file mode 100644 index e9cdc1ef..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFMessageService.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.sprint.mission.discodeit.service.jcf; - -import com.sprint.mission.discodeit.entity.Message; -import com.sprint.mission.discodeit.service.MessageService; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -public class JCFMessageService implements MessageService { - private final List data = new ArrayList<>(); - - @Override - public Message create(String content, UUID channelId, UUID authorId) { - Message message = new Message(content, channelId, authorId); - data.add(message); - return message; - } - - @Override - public Message find(UUID id) { - return data.stream() - .filter(m -> m.getId().equals(id)) - .findFirst() - .orElse(null); - } - - @Override - public List findAll() { - return new ArrayList<>(data); - } - - @Override - public Message update(UUID id, String content) { - Message message = find(id); - if (message != null) { - message.setContent(content); - } - return message; - } - - @Override - public boolean delete(UUID id) { - return data.removeIf(m -> m.getId().equals(id)); - } -} \ No newline at end of file diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java deleted file mode 100644 index 997f78b5..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.sprint.mission.discodeit.service.jcf; - -import com.sprint.mission.discodeit.entity.User; -import com.sprint.mission.discodeit.service.UserService2; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - -//구현체 생성 -public class JCFUserService implements UserService2 { - private final List data = new ArrayList<>(); - //User만 담을 수 있는 전용 창고느낌, 관리용 list data에 저장하는 시스템 구축 - //ArrayList 데이터를 쌓아두기만 한상태 중복없이 구분하려면 고유id필요 - - @Override - //create(메서드) 저장,만들다 - // 매개변수(이름,이메일,폰번호)=> 사용자 생성을 위한 기초데이터 객체 User /캡슐화 - public User create(String displayName, String email, String phoneNumber) { - - try { - User user = new User(displayName, email, phoneNumber); - data.add(user); - System.out.println("유저 등록 성공 : " + displayName); - return user; - - } catch (Exception e) { - System.out.println("유저 등록 실패 : " ); - return null; - } - // 리스트에 넣는도중 메모리가 찼거나 예상못한 에러가 나타날 수 있기때문에 try catch를 사용함(보호,위험대비) - - } - // get가져오다 set설정하다 - // *for문 User 객체를 담고있는 data 리스트를 가져와서 하나하나 for문으로 꺼내서 User타입의 user안에 넣는다 - // 만약에 해당 user의 id값과 매개변수인 id값이 같을때 해당 user를 반환한다 - // 해당유저가 없을시 null(값이 없음) 반환한다 - @Override - public User find(UUID id) { - for(User user : data) { - if (user.getId() == id){ - return user; - } - } - return null; - } - - //위에서 선언한 데이터 리스트를 반환한다 - @Override - public List findAll() {return new ArrayList<>(data);} - - //JavaApplication수정한 내용들이 update에 매개변수로 들어간다 - @Override - public void update(UUID id,String displayName, String email, String phoneNumber) { - for (User user : data) { - if (user.getId() == id) { - user.update(displayName, email, phoneNumber); - //user.update는 Class User에 있는 update 메소드를 호출함 - } - } - } - //데이터를 삭제할건데 조건에 맞으면 - //데이터안에 있는 유저객체들을 user로 선언을 하고 매개변수로 받은 id가 데이터안에있는 해당유저의 아이디와 같을시 삭제한다. - //삭제여부를 bool안에 저장한다 - public boolean delete(UUID id) { - boolean bool = data.removeIf(user -> id == user.getId()); - - return bool; - } -} - - diff --git a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java b/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java deleted file mode 100644 index 012ffa86..00000000 --- a/discordit/src/main/java/com/sprint/mission/discodeit/service/jcf/JCFUserService2.java +++ /dev/null @@ -1,80 +0,0 @@ -//package service.jcf; -// -//import entity.User; -//import service.UserService; -//import java.util.ArrayList; -//import java.util.List; -// -//public class JCFUserService2 { -// private final List data = new ArrayList<>(); -// -// -// public User create(String displayName, String email, String phoneNumber) { -// //try안에 있는 오류를 catch가 잡음 -// try { -// User user = new User(displayName, email, phoneNumber); -// data.add(user); -// System.out.println("유저 등록 성공"); -// return user; -// -// } catch (Exception e) { -// System.out.println("유저 등록 실패"); -// return null; -// } -// -// } -///* UserService에서 갖고온 상자를 create라는 상자(메서드)안에 내용을 체워준다. -//1.입력한 값으로 새유저 객체를 만들고 유저 객체를 담는 data list에 추가한다 -//메서드 수행 반환값으로 새로 등록한 유저객체를 반환한다 -//수행중 에러가 발생시 catch부분 안에서 null값을 반환한다 /등록 -//*/ -// -// -// -// -// public User find(String id) { -// return data.stream() -// .filter(user -> user.getId().toString().equals(id)) -// .findFirst() -// .orElse(null); -// } -// /* 4. 유저객체들이 담겨있는 list에서 매개변수로 받은 id를 가진 user객체중 가장 첫번째 -// 유저객체를 반환한다. 이 조건에 맞는 user가 없으면 null을 반환한다 -// */ -// -// -// public List findAll() {return new ArrayList<>(data); -// } -// // 6 user객체가 담겨진 data list를 반환한다 -// /* ArrayList쓴 이유 외부에서 함부로 건드리지 못하게 보호하고 외부 리스트 항목을 추가하거나 삭제해도 -// 관리하는 원본 list에 영향을 주지 않을려고 했다 -// */ -// -// /* 9 update 메서드에 수정할 유저의 이름과 새이름을 매개변수로 입력받는다 -// 그리고 모든 유저정보가 들어있는 data list를 for문 안에서 돌린다 -// */ -// -// public void update(String before, String after) { -// for (int i = 0; i < data.size(); i++) { -// -// if (data.get(i).getDisplayName().equals(before)) { -// //10 만약 data list의 i번째 유저의 이름이 입력변수 before와 똑같다면 수정전 이름을 출력한다 -// -// System.out.println("수정전 이름 : " + data.get(i).getDisplayName()); -// -// data.get(i).setDisplayName(after); -// //11 data list에 i번째 유저의 이름을 입력변수 after로 덮어씌운다 -// System.out.println("수정후 이름 : " + data.get(i).getDisplayName()); -// //12 수정한 이름이 제대로 적용 되었는지 한번 더 data list의 i번째 유저의 이름을 출력한다 -// } -// -// } -// } -// -// -// public boolean delete(String id) { -// return data.removeIf(user -> user.getId().toString().equals(id)); -// } //14 모든 유저객체가 담겨있는 data list의 user객체중 매개변수로 입력받은 id값을 가진 -// // user가 있다면 삭제한다 -// -//} \ No newline at end of file