From 8ed66f45aafded584cd20f4be43ead9d641f6eec Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Sat, 3 Oct 2020 18:04:47 +0530 Subject: [PATCH 01/15] Added init() function --- Soham-Pal/Makefile | 21 ++++++ Soham-Pal/scripts/build.sh | 16 +++++ Soham-Pal/scripts/imperium.sh | 7 ++ Soham-Pal/src/main.cpp | 128 ++++++++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+) create mode 100644 Soham-Pal/Makefile create mode 100644 Soham-Pal/scripts/build.sh create mode 100644 Soham-Pal/scripts/imperium.sh create mode 100644 Soham-Pal/src/main.cpp diff --git a/Soham-Pal/Makefile b/Soham-Pal/Makefile new file mode 100644 index 0000000..5a0af37 --- /dev/null +++ b/Soham-Pal/Makefile @@ -0,0 +1,21 @@ +CXX := g++ +CXX_FLAGS := -std=c++17 -ggdb +BIN := bin +SRC := src +INCLUDE := +LIB := lib +LIBRARIES := +EXECUTABLE := main + +all: $(BIN)/$(EXECUTABLE) + +run: clean all + @echo "run called" + ./$(BIN)/$(EXECUTABLE) + +$(BIN)/$(EXECUTABLE): $(SRC)/*.cpp + $(CXX) $(CXX_FLAGS) -I$(INCLUDE) -L$(LIB) $^ -o $ ~/imperium/$(BIN)/$(EXECUTABLE) $(LIBRARIES) -lssl -lcrypto + +clean: + @echo "clean called" + @rm -rf -d ~/imperium/$(BIN)/* \ No newline at end of file diff --git a/Soham-Pal/scripts/build.sh b/Soham-Pal/scripts/build.sh new file mode 100644 index 0000000..6ad91f7 --- /dev/null +++ b/Soham-Pal/scripts/build.sh @@ -0,0 +1,16 @@ +#!/bin/bash +sudo apt-get update +sudo apt-get install openssl -y +sudo apt-get install libssl-dev -y +mkdir -p ~/imperium/bin +cp imperium.sh ~/imperium +cd .. +make +cd ~/imperium/bin || echo "error" +chmod +x main +cd .. +if grep -q "source $PWD/imperium.sh" "$PWD/../.bashrc" ; then +echo 'already installed bash source'; +else +echo "source $PWD/imperium.sh" >> ~/.bashrc; +fi \ No newline at end of file diff --git a/Soham-Pal/scripts/imperium.sh b/Soham-Pal/scripts/imperium.sh new file mode 100644 index 0000000..9cdf4e5 --- /dev/null +++ b/Soham-Pal/scripts/imperium.sh @@ -0,0 +1,7 @@ +function imperium(){ + DIR=$PWD + export dir=$DIR + cd ~/imperium/bin || echo "Error" + ./main "$@" + cd "$DIR" || echo "Error" +} \ No newline at end of file diff --git a/Soham-Pal/src/main.cpp b/Soham-Pal/src/main.cpp new file mode 100644 index 0000000..7714ef2 --- /dev/null +++ b/Soham-Pal/src/main.cpp @@ -0,0 +1,128 @@ +#include +#include +#include +#include +#include +#include + +class imperium { + std::string path; + public: + /* + constructor + Sets path to present working directory. + */ + imperium(); + + /* + Sets the path for repo directory if provided. + @param pathQuery path of the repo directory relative to present working directory. + */ + void setPath(std::string pathQuery); + + // Initializes empty repository at path directory + void init(); + + // Adds current state to the staging area + void add(); + + // Commits the tracked changes + void commit(); + + // Changes current branch + void checkout(); + + // Reverts back to last commit + void revert(); + + // Shows status of the + void getStatus(); +}; + +int main(int argc, char **argv){ + if(argc<2){ + std::cout << "Too few arguments!\n"; + return -1; + } + + imperium repository; + + if(!strcmp(argv[1], "init")){ + if(argc==3) repository.setPath(argv[2]); + repository.init(); + } + return 0; +} + +imperium::imperium(){ + if(getenv("dir")){ + path = getenv("dir"); + }else{ + std::cout << "No environment variable found!" << std::endl; + exit(0); + } +} + +void imperium::setPath(std::string pathQuery){ + path += "/" + pathQuery; + if((mkdir((path).c_str(), 0777))==-1){ + std::cerr << "Error: " << strerror(errno) << std::endl; + } +} + +void imperium::init(){ + struct stat sb; + if(!stat((path+"/.imperium").c_str(), &sb) && S_ISDIR(sb.st_mode)){ + std::cout<<"Repository has already been initialized" << std::endl; + return ; + } + + if((mkdir((path+"/.imperium").c_str(), 0777))==-1){ + std::cerr << "Error: " << strerror(errno) << std::endl; + } + + std::fstream fileWriter; + fileWriter.open ((path+"/.imperiumIgnore").c_str(), std::fstream::out | std::fstream::app); + fileWriter << "/.imperium\n/.imperiumIgnore\n/.node_modules\n/.env\n"; + fileWriter.close(); + + fileWriter.open ((path+"/.imperium/conflict").c_str(), std::fstream::out | std::fstream::app); + fileWriter << "false\n"; + fileWriter.close(); + + fileWriter.open ((path+"/.imperium/commit.log").c_str(), std::fstream::out | std::fstream::app); + fileWriter << ""; + fileWriter.close(); + + fileWriter.open ((path+"/.imperium/add.log").c_str(), std::fstream::out | std::fstream::app); + fileWriter << ""; + fileWriter.close(); + + std::cout << "Initialized empty imperium repository at " << path << std::endl; + return ; +} + +void imperium::add(){ + // to do + return ; +} + +void imperium::commit(){ + // to do + return ; +} + +void imperium::checkout(){ + // to do + return ; +} + +void imperium::revert(){ + // to do + return ; +} + +void imperium::getStatus(){ + // to do + return ; +} \ No newline at end of file From d5fb997c7cf4b113f29b312f967547325e2f0432 Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Sun, 4 Oct 2020 15:31:46 +0530 Subject: [PATCH 02/15] folder name changed --- {Soham-Pal => soham0-0}/Makefile | 0 {Soham-Pal => soham0-0}/scripts/build.sh | 0 {Soham-Pal => soham0-0}/scripts/imperium.sh | 0 {Soham-Pal => soham0-0}/src/main.cpp | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {Soham-Pal => soham0-0}/Makefile (100%) rename {Soham-Pal => soham0-0}/scripts/build.sh (100%) rename {Soham-Pal => soham0-0}/scripts/imperium.sh (100%) rename {Soham-Pal => soham0-0}/src/main.cpp (100%) diff --git a/Soham-Pal/Makefile b/soham0-0/Makefile similarity index 100% rename from Soham-Pal/Makefile rename to soham0-0/Makefile diff --git a/Soham-Pal/scripts/build.sh b/soham0-0/scripts/build.sh similarity index 100% rename from Soham-Pal/scripts/build.sh rename to soham0-0/scripts/build.sh diff --git a/Soham-Pal/scripts/imperium.sh b/soham0-0/scripts/imperium.sh similarity index 100% rename from Soham-Pal/scripts/imperium.sh rename to soham0-0/scripts/imperium.sh diff --git a/Soham-Pal/src/main.cpp b/soham0-0/src/main.cpp similarity index 100% rename from Soham-Pal/src/main.cpp rename to soham0-0/src/main.cpp From b85d633b28393dc492804028fecb103f210dc22b Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Sun, 4 Oct 2020 19:05:33 +0530 Subject: [PATCH 03/15] pre final stage of add() --- soham0-0/src/main.cpp | 74 +++++++++++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 7714ef2..7b17c9f 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -6,25 +6,31 @@ #include class imperium { - std::string path; + std::string root; + + /* + Checks if the provided path exists or not, if it returns its type. + @param pathArgument passed path + */ + std::string doesExist(std::string pathArgument); public: /* constructor - Sets path to present working directory. + Sets root to present working directory. */ imperium(); /* - Sets the path for repo directory if provided. - @param pathQuery path of the repo directory relative to present working directory. + Sets the root for repo directory if provided. + @param pathArgument path of the repo directory relative to present working directory. */ - void setPath(std::string pathQuery); + void setRoot(std::string pathArgument); - // Initializes empty repository at path directory + // Initializes empty repository at root directory void init(); // Adds current state to the staging area - void add(); + void add(std::string pathArgument); // Commits the tracked changes void commit(); @@ -35,7 +41,7 @@ class imperium { // Reverts back to last commit void revert(); - // Shows status of the + // Shows status of the tracked items void getStatus(); }; @@ -46,64 +52,84 @@ int main(int argc, char **argv){ } imperium repository; - if(!strcmp(argv[1], "init")){ - if(argc==3) repository.setPath(argv[2]); + if(argc==3) repository.setRoot(argv[2]); repository.init(); } + else if(!strcmp(argv[1], "add")){ + int currentArgumentNumber = 0; + for(; currentArgumentNumber Date: Sun, 4 Oct 2020 21:57:15 +0530 Subject: [PATCH 04/15] Added add() --- soham0-0/.vscode/settings.json | 85 ++++++++++++++++++++++++++ soham0-0/Makefile | 4 +- soham0-0/src/a.out | Bin 0 -> 202480 bytes soham0-0/src/main.cpp | 105 +++++++++++++++++++++++++++++---- 4 files changed, 179 insertions(+), 15 deletions(-) create mode 100644 soham0-0/.vscode/settings.json create mode 100644 soham0-0/src/a.out diff --git a/soham0-0/.vscode/settings.json b/soham0-0/.vscode/settings.json new file mode 100644 index 0000000..a7831cd --- /dev/null +++ b/soham0-0/.vscode/settings.json @@ -0,0 +1,85 @@ +{ + "files.associations": { + "filesystem": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "ostream": "cpp", + "ranges": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "typeinfo": "cpp", + "any": "cpp", + "bitset": "cpp", + "cfenv": "cpp", + "charconv": "cpp", + "cinttypes": "cpp", + "complex": "cpp", + "condition_variable": "cpp", + "csetjmp": "cpp", + "csignal": "cpp", + "cuchar": "cpp", + "forward_list": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "unordered_set": "cpp", + "regex": "cpp", + "future": "cpp", + "mutex": "cpp", + "numbers": "cpp", + "scoped_allocator": "cpp", + "shared_mutex": "cpp", + "span": "cpp", + "stop_token": "cpp", + "thread": "cpp", + "typeindex": "cpp", + "valarray": "cpp", + "variant": "cpp" + } +} \ No newline at end of file diff --git a/soham0-0/Makefile b/soham0-0/Makefile index 5a0af37..30f31f1 100644 --- a/soham0-0/Makefile +++ b/soham0-0/Makefile @@ -1,10 +1,10 @@ CXX := g++ -CXX_FLAGS := -std=c++17 -ggdb +CXX_FLAGS := -std=c++17 -ggdb -lstdc++fs BIN := bin SRC := src INCLUDE := LIB := lib -LIBRARIES := +LIBRARIES := EXECUTABLE := main all: $(BIN)/$(EXECUTABLE) diff --git a/soham0-0/src/a.out b/soham0-0/src/a.out new file mode 100644 index 0000000000000000000000000000000000000000..e0695794eef7023b49c7c5aeb3b04500276b183f GIT binary patch literal 202480 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≤Y>XA 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 EZOgic-2eap literal 0 HcmV?d00001 diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 7b17c9f..35d41d4 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -1,8 +1,8 @@ -#include +#include #include #include #include -#include +#include #include class imperium { @@ -12,7 +12,17 @@ class imperium { Checks if the provided path exists or not, if it returns its type. @param pathArgument passed path */ - std::string doesExist(std::string pathArgument); + std::string doesExist(std::string); + + void createDirectory(std::string); + + std::string relativePath(std::string); + + bool isIgnored(std::string); + + void addToLog(std::string); + + void addToCache(std::string); public: /* constructor @@ -24,13 +34,13 @@ class imperium { Sets the root for repo directory if provided. @param pathArgument path of the repo directory relative to present working directory. */ - void setRoot(std::string pathArgument); + void setRoot(std::string); // Initializes empty repository at root directory void init(); // Adds current state to the staging area - void add(std::string pathArgument); + void add(std::string); // Commits the tracked changes void commit(); @@ -57,7 +67,7 @@ int main(int argc, char **argv){ repository.init(); } else if(!strcmp(argv[1], "add")){ - int currentArgumentNumber = 0; + int currentArgumentNumber = 2; for(; currentArgumentNumber Date: Sun, 4 Oct 2020 21:57:56 +0530 Subject: [PATCH 05/15] removed trash --- soham0-0/.vscode/settings.json | 85 ---------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 soham0-0/.vscode/settings.json diff --git a/soham0-0/.vscode/settings.json b/soham0-0/.vscode/settings.json deleted file mode 100644 index a7831cd..0000000 --- a/soham0-0/.vscode/settings.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "files.associations": { - "filesystem": "cpp", - "array": "cpp", - "atomic": "cpp", - "bit": "cpp", - "*.tcc": "cpp", - "cctype": "cpp", - "chrono": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "codecvt": "cpp", - "compare": "cpp", - "concepts": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "deque": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "functional": "cpp", - "iterator": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "numeric": "cpp", - "optional": "cpp", - "random": "cpp", - "ratio": "cpp", - "string": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "utility": "cpp", - "fstream": "cpp", - "initializer_list": "cpp", - "iomanip": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "new": "cpp", - "ostream": "cpp", - "ranges": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "typeinfo": "cpp", - "any": "cpp", - "bitset": "cpp", - "cfenv": "cpp", - "charconv": "cpp", - "cinttypes": "cpp", - "complex": "cpp", - "condition_variable": "cpp", - "csetjmp": "cpp", - "csignal": "cpp", - "cuchar": "cpp", - "forward_list": "cpp", - "list": "cpp", - "map": "cpp", - "set": "cpp", - "unordered_set": "cpp", - "regex": "cpp", - "future": "cpp", - "mutex": "cpp", - "numbers": "cpp", - "scoped_allocator": "cpp", - "shared_mutex": "cpp", - "span": "cpp", - "stop_token": "cpp", - "thread": "cpp", - "typeindex": "cpp", - "valarray": "cpp", - "variant": "cpp" - } -} \ No newline at end of file From ff27dfdcc2452713ad4c22734f6f9df2726917ad Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Sun, 4 Oct 2020 23:07:13 +0530 Subject: [PATCH 06/15] Add function finalized --- soham0-0/src/main.cpp | 55 +++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 35d41d4..c4c945f 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -7,39 +7,32 @@ class imperium { std::string root; - - /* - Checks if the provided path exists or not, if it returns its type. - @param pathArgument passed path - */ std::string doesExist(std::string); - void createDirectory(std::string); - std::string relativePath(std::string); - bool isIgnored(std::string); - void addToLog(std::string); - void addToCache(std::string); public: /* - constructor + Constructor Sets root to present working directory. */ imperium(); /* Sets the root for repo directory if provided. - @param pathArgument path of the repo directory relative to present working directory. + @param path: path of the repo directory relative to present working directory. */ void setRoot(std::string); // Initializes empty repository at root directory void init(); - // Adds current state to the staging area + /* + Adds current state to the staging area. + @param path: path of file to be added + */ void add(std::string); // Commits the tracked changes @@ -92,16 +85,16 @@ std::string imperium::relativePath(std::string path){ return path; } -void imperium::createDirectory(std::string pathArgument){ - if((mkdir(pathArgument.c_str(), 0777))==-1){ +void imperium::createDirectory(std::string path){ + if((mkdir(path.c_str(), 0777))==-1){ std::cerr << "Error: " << strerror(errno) << std::endl; } return ; } -std::string imperium::doesExist(std::string pathArgument){ +std::string imperium::doesExist(std::string path){ struct stat sb; - if(!stat(pathArgument.c_str(), &sb)){ + if(!stat(path.c_str(), &sb)){ if(S_ISDIR(sb.st_mode)){ return "directory"; } @@ -112,8 +105,8 @@ std::string imperium::doesExist(std::string pathArgument){ return "\0"; } -void imperium::setRoot(std::string pathArgument){ - root += "/" + pathArgument; +void imperium::setRoot(std::string path){ + root += "/" + path; if((mkdir((root).c_str(), 0777))==-1){ std::cerr << "Error: " << strerror(errno) << std::endl; } @@ -164,7 +157,7 @@ void imperium::addToLog(std::string path){ fileReaderWriter.open((root+"/.imperium/add.log" ).c_str(),std::fstream::in); std::string loggedPath; while (std::getline (fileReaderWriter, loggedPath)) { - if(loggedPath == path) return ; + if(loggedPath == "/" + path) return ; } fileReaderWriter.close(); fileReaderWriter.open((root+"/.imperium/add.log" ).c_str(),std::fstream::app); @@ -180,24 +173,24 @@ void imperium::addToCache(std::string path){ return ; } -void imperium::add(std::string pathArgument){ +void imperium::add(std::string path){ std::string type; - if(pathArgument!=".") { - type = doesExist(root + "/" + pathArgument); + if(path!=".") { + type = doesExist(root + "/" + path); } else { - pathArgument = ""; + path = ""; type = "directory"; } if(type=="\0"){ - std::cout << pathArgument << "No such file/directory exits!" << std::endl; + std::cout << path << "No such file/directory exits!" << std::endl; return ; } - if(isIgnored(pathArgument)) return ; + if(isIgnored(path)) return ; if(type == "directory"){ - addToLog(pathArgument); - addToCache(root + "/" + pathArgument); - for(auto &subDir : std::filesystem::recursive_directory_iterator(root + pathArgument)){ + addToLog(root + "/"+ path); + addToCache(root + "/" + path); + for(auto &subDir : std::filesystem::recursive_directory_iterator(root + path)){ if(!isIgnored(subDir.path())){ addToLog(subDir.path()); addToCache(subDir.path()); @@ -205,8 +198,8 @@ void imperium::add(std::string pathArgument){ } } else if(type == "file"){ - addToLog(pathArgument); - addToCache(root + "/" + pathArgument); + addToLog(root + "/" + path); + addToCache(root + "/" + path); } return ; From bf01a818ee69293bd13a4c5580fa5b5881e1281b Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Mon, 5 Oct 2020 00:07:20 +0530 Subject: [PATCH 07/15] fix issues --- soham0-0/src/a.out | Bin 202480 -> 0 bytes soham0-0/src/main.cpp | 13 +++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 soham0-0/src/a.out diff --git a/soham0-0/src/a.out b/soham0-0/src/a.out deleted file mode 100644 index e0695794eef7023b49c7c5aeb3b04500276b183f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202480 zcmeFadwi6|^#{D+B2m!|Xf$fos8K<@BtRe$(F9m|RyG>BC@PqQ5C{TEBpV1S8cd?B z+qJ1m#cNaRg;uL*l_H3STY|PKc*R>yy}+{u1+7S`V&3of%sji3W!I{|_w)Yoe!8tZ z&p9)5&Y5%0oH;Y|JWp=$_|ETesLNxoS}iW;%DVg&e(Imj`!`mr{>5Go*YY`6r`^S9M>&7$ zPj}BXUh_++7tNqWU$xd+B0f%hMh5N=$X}(XAYKr9}Yq2 zQ)4fjPgR@a^ZV-9eLb)RR^Cup5!P4>9G!ftna9k_xEeK53a7d6}`?$ zKgpGsoRpH}%9FA`0R0gD``uFm9@tX$%G{IZ_8mRHssGatuKN1+!?(V2Ov&RH+&}cT zkqr+#+T-oVPVM>4;mi7t9&0`JILRgYO*_iv>K~_YNCJHB!SU;R(YbhZ=B38RSM-aI zA9-ke{1pl43<6V-+VA()A@S)vj{5QBJnP8#_?zJ1@#^nMpoh8ydV3^+{KvvE;?e&a zJ&K3FJwd--=^I}Ue@!6I!wK{}Bmw=s3G8(k95R4lfj|5sft=eDjJx|2@C_uOb3}spHa7vCGZOGUErDGI zCD7aL3H}4^oFG2jlVIGXCcsxGkY{#+@zR{2{y_=wPbc7e z9P}U0pL-;r^ScCgd^v$#8WPN#WeMziSOUIw0{qkj@&E7y^e;~kCzBJ5qg@I76X>{c zcxQsRaYq7q-b!zWMjbbrFL7$B>#K-| zq~HEK1^3tWKY^Z4a2??qaJrHQ=9Aw}$a4aB3Z7LJvo!t$@a^Y1#^oB?UH;)1@1%eH zZK`64uJ0-;nmMm(MFJnO-!zY++F;?)<2J`Gphw!;6YaYiqNzvIb8psh(8|KJ#W(%=9jp;Lpk` zEiai@_>4Mc_ZHx~j6e%rjrn$Qq*B&X_f)Y+B6>Z)t4fQjceN zby?Z$${8~}b5J5!sJ24@YMSyoXt4=zy(XPH?!Z=o_bEmI0BmCpBj7nEjY z6&1~$2Iusb75P2GrdJkK*7zZQW>Mj|1?U7jQdl}+7;c7X;t4!1p;dC>a3$5%vu0LM zLPsyZh)NYaY&wlI7yX{#&#kF0E1FSKTITouNTK4O`J)Yn zFMwxMm6Xo%FZ58K7eYn3DiF-7td1K5O6N~=_~oEZ5o(u>8SJ2bibf=iAoh4B_=nEG z)!W?xUm|Ie@uvGdyeNN$g(Hv!%S5x7iHMdNS=h1`Vb%~iL94kr|j%OV(Ktl#|cJ)F` z7jt9A^3OLr!UWw6+Q&$m6W7RzHTp{<0Okw$T4e?7Q&Z~qV*GkM^CuQf$SGnxoKZP% zLCL)7MYAvvO8k|Wu}Wr&h*fdrQ)W-BTd}^_6=NP8@_%928a}VAx@_M3GBq}Sk)|(- zM7zk)&@LLs0X#!15#1Qv;tc{0&Yv4HhgH{113%B)h>!mFX+FDjP9!n-1uV1Y&6tG< zE%Eu6h@3TKW|`lKn3XC-l1|L<8oHpo#Q$@`4#uO7u0LCeC6P%-$BDsuD9XgGqu)gD zg}F%dDrzJd8&d6`KC80m$I>Yd^of_CW7*0k$}bWnUyAe36&+(8-h@#wL=S;T%pU5k znB|W~n4jXEI&dT&cX3==4OPiF=ap5>!9)#T)U!7UB}zl$OesGyZcLYjLI)RdT0+`G z^&^nxz+6Q#v}VN}SQ9GeAX7Yl{DjI0MG>oXvoW>Lv5-jItRYC7=9bjzj81tPois3Kp8({1pgGK zSb`u1Vj_?g2>JmCN8NB`@andtE9H_7Q>igwV@(;80wq@Eei=|CJVc{qR@R)#nHWnd z)~Vb89%wye`d5}5>kk~V+QsEE#9KO+ek zR$b=DRHR)H9<*O1({qQog6Sf^%!+F5s%EKQV2jAoOodg+o`3OtuVj%`sw_PAA9Ut; zt90h2iCA!CW6exotXSaa`X_~k?3&0rj?VC3mS9T5|E1ED12*VWYFS5}WVw$V$ve6Mt^Es(g`+orx2EK_2|0*3Zg>`D-ew%V*8d`%j%Dyc3nnzqniR$Vx5{?A$K#7|=b{}l90Mr}1(UeI=lV8H4+m?yS zY7>)5xZ6L>$%+^J!iY7vD4*MxMdh=w-^lRjtS3eDGv<|H!z-HCO{!Rc<$uxmvg(?- zWv&^eh>iEA>KY%vg1R5YiSThFe!JV$WxcK(cNSM|cVNO)(vuv=8Y zjZ+lN!{BrBNq<@GEWfLUn{5@^csb0BlQrVOC&LfKrQ2U*FM zp39AWl;eR_rh7d8nOice!bPRIfW#(2>7YS;a&;KNnWd;jD2q_3!jBz2x@gFmnXa)u z@2Js}C*ywTnS(Q3xXmBsEy_A`$eFnY(5+flmQiwMcDJ&@Sth9Niw2*WH8gTNEOIv_ zau+Qf40`zW!2f#UsoS3NZ*RHsp8q>Q{$*L8NG(D=T*)gNw<&OD<0GpsXF|6;^|{jPm27Pr0@A$a+2#5oH^s<(Up$> z3Qt*x6U{?i=K{xH5-1<3%j*DFb>4}C$U|J`Yuv)EJo)bHnxx^^pO}p&Vh(go({PE@ z@8g=Q;Toym+jX6Wua@#&u7HO918>6#a!=PX!2BiQ>G`3$jPM=5{T)tL4|YAMaYxLW zg%jR`Tu*5DFoBa@&uaK^fe&zP&~VMsvv302!}T&?{+#FI!Bl=*s@2uf&&@md`2mG5 zjKMeQ`sFeBx~J7SZfy*{UE}Lw@WmQ#iovHpqv$M)!B=T`c?`Z;*IyBXcj~vq;FoB4 za}2)uF0GFk{0fcV7K1N-P}Ogb!Ee#^?HGK!#&^cxn>Fmx=i`q4n{@r;7<`Myr^Mi^ z9#Zn8#o#mVR`~Q7e4fT<#^9avcq<0)oZlD5;J3W3=ueKpr*BjE%`x~q{r*FH48Bg| zJ7e%I8g}XTGaUVFsZoBC9D`3;pztX%c-L%&PmjTG)AR?#;4^jo%ou#3#@C*uo=XW;7${AdHe#K0eG;F}EmO$L6MfgfYwn+?44j0=mG8+eaVe}#d+$H1>L@R(R4 zzbytHkIqDXwt+t}f_1rawBJ(CLk)bMf&Z<6w+#G62ENe1*BSW92L3_=Uu@tVUt@8( zf!Co^T2&eTjEO4pTVmk(jFR(fGVlW&B(BR0{4fK*+`#i0YUj7Yz?V8mTvr+RYYqHn z1HZ(;Z!z#e1Ha9{|Hi<#8+iRFla$&9eyLG^w}ID>R!M26fxpkF->KsX?cQMEo#(0O zQ_Bs!^PCv*%?3U#Q^h5|qeWWIFWtba8meS~foF#3{4x!EF9(Thj)7+^bAEXSp1hr( zW#E$?B(8-99*@vPev=J661K>%*udjazsRrLz$3wm{HhE*9_5VuY7IOd!HoRs47~Y# zhd&+G603H}KmGe7b>eH}EGIc-z3AWZ-uj_zVNzY2Z&b@UE<=-=1RN zlMVc-20q2W4>a&;2L3bypKjm>8TbJPp3j^*zf1#vhJ(a4$H1Ry;PVXpSq9!R@RqGRR%uaz_%FqQ3igqfj{5CZ!z#=4g59(ZyES@1MfBP zwt>IE!0$Hj;|zSKf%h4B*WjrC7aI6v1AnoBPciW04Sbq`pJ3qA4g5p{Kfu6GGVqxO z{t^S9W8g0}@OcJ)vVpe@{AC8d(7<1A;3pgSDF(jSz+Y+L%ME;yfv+;~#Rk6Cz?T^K zIs-q=z%McI(+zx+fiE-g%MAPs1K(`mXBznB27Z=-Ut!>{GVrSm{2T+{V&LZ*_{|2s z!oY7a@RbIBn}M$~@a+cvY6EW@_<06?w}IDN4^rA`;QdB@m(G8fJJcBXWCK6nz^54a z1qMFNz}Fi1bOXQ8zz;C+*BJOr1Am=?&oS_e41At}zuv%G2L1*EUufVTH1LxR{9*%N zY~XJ+@Z|=+-oRHG_(lU?Yv6A-@O1`0VBnV+_*)EolY#%WfnR3eLk7Otz~5@%mmByd z1HZz+-)`Vn8TdO4e2am<)4*>w@XHMR76X5mf!}7}?>6x52L4_H|G(S+Y2bev_@4&; zr-A=z;C~wUp9cP?f&XdXe;WAzj|Qyzoyk_P_Xi&)xva((e~+#$R{h504UrCZWq*XC zu9H8(zwYDna7VbD<>B@&{7!zCa1!Ay0>4I>n?2zcfnOrbt@rQ>f!7n}mV3Ba;MIhC z6K)dtDZ<=(57!C&XTn@IhpPmBfH1e(!^HyMP53~iz$X$;BU~)-(S(m8TqtmV z!rW31=LvieVQ!^|GX?HJ_*aC}1^)J*fR81dBJfv)xs@Jv3H%vhZlQ;F?_>WzBAiaR zUEp^KpFntvz^@TLk#LK^FA?U}d3c4u>j`tqJlrhsYQo$q4>t+?6k%?WhwB9XGvQMS zR|)(8;Q@q;1-_f`K*EIr-$wW}!g&JULYQ0P;Y@*VBz!vIbb+rS%q{S6ioo*-bL%_o z68I{@-0}|Z{$A`)IFoR@z?T!|7I%1yz~c#XYdhQ`@CAg25MCkhD8fStHw%0=VQyiE zn*<(Aco^Y2flnhmoN$%EClbyfTrBX>gmVcO3f!OY*@W{1K8P^4u)~=G_aJ-@;dFt& z{Qxkxtive+e?^#E)nS*wpAkNf@b2%#{)F=gw+s9(;e5hd1b&V1D8elQzeIR6;S~a} zCp?C5v%sqfdk8lP{1jnsWryno{xjjRgsTL8fH1eN!^HyMP1sAgP~h7LUqCod;9CfD zi#nVs@Qs9hgwqAShHwGl6oKavzL2m>;HwBMggxdwaoG`bp!&?L%PncWQ z;TC}}AUuKa3V}xvo=CV^;Ij#HYdYK{@LY|P30DbxBH_t|iv>QK@MVMx z1@2Gya>986A4K>H!kGg1AUuU|y1?JQ4|po!6oJ1Y%q{4!OW@B4bL%<0`#)lT!o`H! z1%8)s3E?dQzeac(;TC~kB3w#%g~00xPbb_g@M^+kgqs9@iZHj9!*v4xnea@)RRTXi zm=jRASm3(}&mvqX@NI;zBAh4iEre$i&J_4Y!gC0x3w#aXxr9>$o=3QXuuI^p2y+WL zyt`BEPq>P3yTF$d=9Y1Ii@@UvbE`PqBJc%-s|l|Vcobnj;bwu)Cd@72aFf7;33Dqr zTqp2pgclI568J>IwS&hLMiXH9z0iV-FEl43#m<5`y@8E(F0NK+ zVusraWj}OzlFJv^&_lXCkaFn$-$%CW|3>>pld+`~a3L6z)LV!IP{8khMOm|#ysi|`jQK(Or|52l z`bp>=TuDC#ReL-1H`ynGzSeJ8li!6fM)C_3`8-8_peCOW^5_pMT*3;052%A6r3Y%X zly2(i&{c*+tCZ_1oZo1m4%K@*Qwx?3!Txbsk_*CGp)nbmR-nxajLAs0Z$MbHg8q!; zF@dl*VEY1Jk>h_bIIZAyD1TKvCw18|qK3t=VG(-uVsw z8IHcQGf>N8(uHf2t;Q~YZ~J~g?7|VKO4Ixk6$!6ID=X+pvx19YrJxWkT2For$#f}$P`YD^EbnTw5u7bwT{fCH( zDfA%p#r{S-W|RHAuC|@m&~q6}sDcBL%vho8GRo~&=|JdCioGWbINYV#YcwuhX?zM= z+K+r49r+w_e*;%%#04*vh(n=LFv}W49U9wZzmH6SVofL6Q0f^+iK`v4MTV(;Ca6=n z3^~;NxvYiS^F>uVq+CZFe@32tp5}WNd~LMw-RlM4Wti>ZX_>y@n2a1>;2RLLAV;$8 z#x&&%?6r5$QA4RK(uDb4uZqMfeqlHjQZt*WnO&LG%ySvb2|R^H^sRS^6xB474DO1l znhZN1O71uo^x5|YslCg7jv}H?iv1dTZUr6B{RA?yXH%4AI$m$epJ;`~rc9cE6i3-Aa2!ny5}Ebg)oS+UZcYd7a~0^^cRD4G-7K{tA1Zn zO>+J%hi5EF=}58Q5(gs;NW2aI`$1JRco-@txAyAc!kRGUimCZiHdvvNgC{1r>`%c? zE1FZwTmPoQviB<6(lQsqrGtlOa6~8T*(3=`A59zJ;0vXWKT@GpKN?66NKaWKgMxrisE*x5=z<$U4NYi;<<${IXS!^fOo&F%uoA5xlk7VIZT_8-Ah}1)= zU#E)jAN)fJzem&(BfLwq%ZUhooEBueR{B5L48m90y-=e3^d*$B%jhSgn5DH2W3k>w zdkJd+-vSO~%yNTq0O~=HuZc2FO2~MmW~}@>^@qcx$2(q9jJs$e6)xd68*R5{JXSMi zxxqL^F+L&6cnKzx7**>YZ+uAg_&M>-)JDa)LNmT8hVk!M3q5`X9N1%)8;tMVB|UCI zWYOcwosjW3&3Lq8+*dK)^P=kUAu)`P)r==;#w<4&AEy{kjWYfnW|;Ure(gckW_+2jl|qZHFk<0Cy?jX7ceo*pesciCTwFQl%)mnmV_2isIn zpMyHhp8kWiz^s?{YsCex3!T94LDS#B`>xI=pS#KjTy zUJ;k+n#)vAZzs7>>J-J)qnS>PVLDeceF$A*Pg$;+`r*A5is?ndR2*qLri^Yq6-PQ> znC`WYQ%rXpDm~q@NjZ`&>Wn&4r}S`_ok=~yC@eRa{^v94>8?Vy7N%FnWx5rcGW6a* ziQ}ctQ%tYWOsiv<)@!C~*d;J!xxutSG5xJ#%5nNVW{GG|Khtq|ie@@gG2M5F^mO}1 zWz!$ff8+}tDg1{y3zLTfSrr`f!C6h$~h7Xr^Uh%;*e@0{V+Aved8Y zCW{j@wqTcvPQ6_GG4*OC%jH^@c_K?RcfV0NhbpF)FcoESrs~F2{A)Y*=VJ{K3Xb~MGSnh|3#sdJgXvwisCWB?;$Jj%zivz&Q(vu_dKJ_Dis^UjRZkC# z_7s9|v`=C!FuMXwsa}>F>djD0eugGIeJX{Pr> zou+ypXD!s;4(epea)ap;JEW)mqfAeY%k*Z=v`8@>pqTd4Ob5m=&DBh=)=XJ$Fg;r_ zeXJnjNKauR*}td#HPg?;2U7ofko5H4bxOTYL!D+%H)>mc59;hG%b6c1+wbD+gTC1?DyMgxJ&DM zom|yU!^b#KQ9BLS>e30I*?p&B9b~Y7O|jwP6Lq!gc!h$Bae`?79>+*@wwdCb&t!`{*3O zb297?XhZYG`2)0HUc_Fvi1>Bw6^vm^Jj!C>7$ zy7-(fX<*4*l+ZelXeuf8T%bJ-*ejaJB9LnVm#{}DaGASEH}{|(B^n7awXbu2yzmnW zk-hzbNGNH=v=a4oCzPCmyAi%Rd75Qc2%>+mpBxp z>pzPUcJ@g$v!{HFVl2+M`+$uSZhc{EvCylw9>!!$<{j39V={_)m&UttZZ`-nlXrs4 z;axgQ^LRIacb0wqOVGJj`i>|`gMx1^`F`>dfZ){SzTAJiZ+_Q>YA3QX&^9+k@*_^17-(V!BQm z|L~C?*z}`2*~>2bUGb^ZKlT*bU4Zp%RkSE># z`d6xB&!L1Zo<_-Pp6XeFcd&~_QTt(!ltk`gl~C%mUZTKpYgD8zMFW)5BWi{EUV8;3 zr^W}+O4zn57VaCce{Y4ZO}7t(E{XPPmS28|Y9pp(B-bpov!MpN9f*R)Pt@iv_R)9P z7lM*~l&ENf{V!a-q3hG_7Lk3g?Gi#C+RM?-H^QHhUXyC?6x=5JX|31yc@0kCQ2fx| zhdePd9bkBNyy!z1#;UQ){zy{DPPHeEm1KAteG)z~TNAn+S6F_Rz4{oXmK&v)yX@7g3Nw?&Gmx3Di4?!8oCMjhEa` ze=4@NZsjPz<1zz5<1R>hEg>M~(tL`&jhCE{AGcdtZ%uNmHG6 z&NX~33Y#XO(FAMp&Sj7+uy&4^;u*%LdI6GdI2KXh$#dARk>9=mx_dtC>RN;HuJ9DH z3^i8a9>d38MKIXNwy-T86+&TlkS$SI35RWLsi{>|d)8cGg*-2?U?r6vX@&jfWGgi3 z1(afRy}}B;WspvSV{1-t5&J?f@@Azrd-OkPW<~Dp4|yMv>8jqC6PwYsC<`sv-VsW$ zx7tOp8`?ZOQOy>SZZEi9S~k~lGIvk!-aKwHbK(BYd{$Dx(9MM>L%nk`z|OF<4D zXo<)m()K=7q(!ARd+7%vt&koFY3n^ZlRB2H5yDZy7as|8Z0jiDk)7`56g2GUsSu*N z4)nX@WQ7pYXB#zy{)?=knnYA`DkyVgLX^{}+ThgA7dI#`sNabRb&+iaJvNIU6aW8FYXz{1R7uFE_4zYpts)6)$EZTJVVEBhoj%sadQEffD%xb-@XQ}m8 zEAY0x56BnTYr9^kY;f56-)C(RFhFgJfZ9*%cTR?ctE@oH3M(*aIhx?wW?zja0hlN_ zbpZ(9df zfHZCPxzsH>rhLMs%-jJ1R-v=oa+Nb(hMvGtRUIE&9IebF))+wnRL53OwZde7?FVYw zQPfVR-gj}7*d-$y@&l;v>~h~h6L`RNI=O~MHc-VyqO=Y6&D-FtE;N1q9WsNaKeR_n z8P)&d-y-V29>}I9)B1~d@}$ZNthJ=e&*aHvX$~*JM!A6QN};>n3N;o=x!5x6%p@0_ zgOa%$?f{iwBO}kruH7!zNLL<$R1UQAIlI(KV}~Yv4wAwL4;JJo<^2lkq4K1f8{&mu zj-^zmDPg?{eJDy_L@AYNO0ThRpd{5c!Ls3cPyzz0*EV~MYKMb7M}nhtySsHesTM-J zjtiCfM5OD0(B}J6EJ^1P7Sp07Z%0amh!rha%M#79+nCFNM{kBlw}2cX3S&oh^Khk; z2^_3J&t_3Fj6-3szr728E;<``YPGa2VM@T1P}DP2e|p~g(Q zODJ{oFp_NKIr26 z*H|%o5lcfO?_UWgy^A#h7=7B!B)Cp@ki8FjD&n~>012B#yzO{&Df|?pT(_|?0Kzy4 zKqfs7d=D2*%KSP|1_cL`csC07N(ZH|Z=}$1ws%q3F-(QTCX#xQ2%Uk538xM^WbtisSynq@8t8~h#kvh6g|_VLO_ciQ@K<{FeHTxfuYnVn2W1$ zF~}XYQwr3f?8K(4lSMHSbWRcTC{rB-;n4SHOrg#CUFDsg_dFkrqe7b5ZytvvOBQZzsERIQ^F5IV{@jX`qi}Z%+mrA-e`&5dibUB4i{?m2&IXbW66SZR>caR>6hI0ExmHP_Dh%*TODm)pP zC`BYP{X;sXG`m84JEGYVQFBsQrJ|Ag^(i{N zJd@G{IFY^acx2QBfE1G$R__f_>%U9#_Yot(Ry3JmoK3Gvc{l59g$81+vzE9R>jcnN zTjzPIpqq8lB(Ga*|G+xWwDS@S3FORqslm*McNg>(sdlqkXlV+^vaYSXKj#}3G^+CK zi_c=iHaiuuO9F!6fjE-3i_V?N05Mrw4z0*E-7m`d^@GV-&(DoYTyb*G9-)<~TWcedYxI(Ec&CiA3Md~t-7wl^3XGrRWJS$cs95@5~(FZ7q%J>)e z;e8}*%@a^fMnfS-I3&#&*_@sq3$$aO6fN?Bz-jv&$5ri8!c+OI3t$g8X(RU+vAYnLFu4=3DzF)IIH3Xxclr*HPXZJlrvG1YSGmkogd_yC@ zdjeC`H_|PRtLq+RMV0?UkKubIk5Y1k8jHzXne_ITMGnCP8&#jh*2&)@e9%U!a+|&I z6}qFlv4Er^5;dHzB&tFT;sWE3R9?_wR2OA*nqnlFZj3s>2=r9dHoHIALl)^UqZ`{cUP9n+` z9UNWCzuV~QU7PFh+%R3G72|0jy2+`t($6uQ15Mm!iyV*_v4@m~KiusuPiPcam6K)o-(JhQ?v> zh5*N_rn;2`glch=>TQauV7gIt|A#74+fH!iVKkv8w8SCgsnf3L6DpJHFs2MYyh_}I zmD=oY{x0N{F52uJ7B-OHp{b(N^&j!PFF>ct9ST&YZL=EzhJT~xkaTI7{qjKNz)xU~ z#fYwnxQ?e;%T@IfIZSHqF4s^f%nGqmn|&qaa$Jsk7BYfzRJ)e$?d}$psEv(N(5|Cr zQ%4fBMUe-@`T-d}N#-98zdY@V-;$b2CfqX2&9V6b3d3(k!fKsv(@OO75p=UgKSA^( z5p;`2v+CT~2@Sj)Ie( ziV}}9XhMZpj~F!5b*rymjA-FN2^8F-k^Ltu)H|D|{-k?usPXaJz@qO1HJ$Z~zE7$d zym%4pi5-lAh^6h1A(kF3@hbK9Kf^sj*)Icyuo`+;Im=Xt)}(gko@X=cy&_F}5F=u$ zY}bK$It9Yc!EWq@*;f4`+f~zN6>7OUkf#C@EZA)YJ*Xj>@9CQ(1l5DVXe*^{b`pvd ztJUNJDV}%;QeeZjw``xeSFTq~Rd<4(?+^BLM#MnMrAgJdK%_Ri2S=GE{jlPy^e4|F zN7a4wx}Z@pSEe*o;R6y;gX1e1i_XqnM42>1aFSNJ49~k-g^}q$ARnta zX~(vn&Sz=8$d2VL*>Q9rwP93pQbFK&rS9GCm4zuJvP3Qf`zf%W_M;z@RH-B)X^f?I zLlKU~BUH47X$|se%}Wuhx90U@U1tPDe3aGO*gxePZFyXG=oZnIq(pn%77-{8A?g{m zM8`KkG|Vc9t0zd?s9wq(A~8WdydX}R9o6!pD`CX`JemFV9J zsEZtefO7r%WG!nh=F3E?iOT&4@c-|%{-zZ4Gpw$A@ZkCgdA=clu&W18VA3||wH;c- zh!EYrvw@~1I)a*y=&1Gr^}yM*F)}XR#aNfBkz6;TAxC>MD3LwVfvse9#W0ls)u#Md z%s&?Piq(Op@sd&PUEHHu+z7HWQCUz86CU0Kwpar<%Yj>9y|pU$){k@ef6M*EdRaSC zN+qO{@F9aW-=1+K)bUS6L@L#YNGckA%$5>dBsi@WaGlbtv$eNdQICYFByeC2GfbVj zD^8fYjWd@v$1s{qg{g58_9C-aj9k%3`Gp80+rMAown;5j_SdN~cUXirT7j{zUz5iW9a~i2XA>(@@eq1amjkjCT5V3lKbq*Af0v@w~{n(Y*lW0e?B( z;j49+zq*Zlc{e40O4Lj_@cnI=IJRH{-3+q0w%PA7>k2@kkY@*+f3qG7_q6~W@@z+% zhNE~H9)IUTBs6I|T7rt8+7KS376^@_DM$qO=gCM?JM|lIs06~cmBfMIv^;|?)vUcm zp=D5P$K)?kL~HiMtkN-5vL!|QBhecOwb_@Fiujp;1IS8w!$_eIcKZ)bFUBaoIrvdE|64o>yda%14ho(m+BPLAyr$~P@YCBPp&PG}!Nl_TvF@|{|iB8;_IU#vRGNV|2kQZc> zr*xMrnnOY81|^0Xflh8^j6P%PwAwK1GFEDys2!1J{{(Tj%YUSZ;B;Muwd0L$I}^V% zjHA=isi?)qF-{>pYO{}nr$wD0O(qo`l6s00M#kwzdUR5EKa5cnb*=MPCE**GzYX5q zb>j40^%rxOK0p;y!A8j#gm5VtPJ2N}cOVk9yGOdjb2%(?y_$6S@Jcd7H0Sm<*~EcM zDnl8wQVx`{8Pac-R&b;?&)3XH>>&1GoHO-f#4ZRsLC@C#&nLl2p8#R+PD*L&NY_Q% zr05Mm+kz=U&l@Uy!2JwfnWA`VK+Wb*b3r>P>HZ%H#?kShyl(&D-_vji!@>x0^RB;pp}pq9ZIL0Uo}b}iTk*i=qfx36{L zheo^!gpMB)p4t{Fh1Leegtz$%J}~HNvym-)&++Nnb4L z`X7Tu-JUgM>P#mxDLjeBGNX_i-?$uUg$m%9o^3kS7uS4_!7*S?38#sksN~2jG2H1A zobfvrjeQ%x`f+3W7kQNO6ug$EfTAv`)n zLJZw)_GK8kked<8k^N$zVuMPzRf~?1|JWT(8J*Fgi?9=5W|K}xbKI4B8pMfZ#+mNp z8^8`Dz_?e>g+VJW{P0$U@p-&vaE%Eyy#GgJI0TfyrQ zII~wCjg5fZz5dj?^G@^s%6agoqqmAZ{Q86dCvsC+f02nzUJ@Emz`_919$oY(=(F2_20V};EZSlZjx$F zaj*2amh|xjQ39MVP?|idwb!Z9SC*BWd@l0ij^mr)Q~Jed`ve(j*n4W@6UNDWF}?gby~om(bpc0()>0Ltbr$U z10ImuV88k_opRThV2+wT_+)*>*Ik!!*qK%+?=W}cI>2?c z_}o_G-&mq)dV=SIls7OnIlm42xR_}Eupg!0v%W!zPhu%b&#**Oa>xXab0}R3N}!(~ zIL?uYTY?6qhNYyGb7oBn$emepP+e^gm%HH>Ad!9JD;@28IXr)A{+0Pf+HY9-W2yXs zsyq~9p<`0~4Xc-#>$AS8zl98h>EE3Cw2auYsuk1~){2KOtQ+s8t73>lCif?4#LDWJkfY&GS5NakKgypAJ^12E! zy8{>4>kG`m6Y#+-D|m6TmGqT;Eb|F?m;BDN2H^t)m^+f(H`OE7s$;QG_A1Ocd?I$m zU+IR;S%KZUoJYa9-u5;h? z9$JxDDTrAiA0FflVWkX-t$+^?-6N06-Rf@GL)r>qp_J9Ql1HZieMm$avtym3%BB#! zKG}YGC1WifEw@ITli@#9J+vRHO0wU8LggI|U+yl2&$EbsPU8#t11nez( z*mxXN{%?1smEsc%#_%P+NFs&dq=Nvm^K(38bSY zUzBT?y^hl2f#heww*%i<*wpd%41A>_U*gw3e3t>v@^}01)KI`9YnY?$V?nnKJ6P2A z=w$Xtj~DxoE8zPB>h~Q|)7#VVNzI$~ZBOAGZBV3|j=%E#2L!rGeBtDC|It?P*mr-! zP2KluJV8$~PFMqzlHpMPKF}EGGd~BbU0u)u>SP5yeWgxc)Tw!27h1tQ=$X~K+Qm0_ zyVrS=J62IY5x8&1KL}evxAj6~OC^|ZS%dNi$X-kE;!JDM#dsvppSRCi_iZmLn4gZq z6zsdajS9VRZNm@66BfYsh{pT>$AC9M|TW&>5cjMhqc78nqe3EF)7d&G*3h-)D zO?7Zma_EAtKtXc-w@Ln!eSzX+_sR(=*lES3-x6%JBDg8919KHWkRU*xGF|NI8lM6( zGI`XD4NmGSv=H5rYM$<1Eluil+>bbiNZZu~{Z2~mxP|)Mtwn=D!&6WcDev2{lI8g7 zN1)T`Eu0!d?2=@w?R>q>3O7)*ffazOUaFkJ7d&}Wh+X`oro3AhkKV6)>Z=}*tGmGH z7gj3hWzFzz{d%E$HQld2b??_w%5C(cHJZX;d|>YUG9M{p;3ecFfmV!P&ZG7n-*WKv zo_Y(M8E>Gsc?NKhw0bhJ7qhk*w-N~2JbAc94LEhklZk6Ou2rax6FuPDJcYcrdM2|@ zG2n6qSD~!2j`#TCc8R*z~Psp`Snu#FeQvmbNHnRzt5haBqP-4f2Ja6NmO&j z3x}#N_y`rKR8UKqaxr=9@kBj5g16Y>>mfwqh8}7u7vk|>X+SO7ED_*Z^nP@?BU-tL zb`eUTiae+yhinJWzzP%mh9~5AYz)5~M-P@}_Wk3ccXWO90EgKCVfK+KL7e56rzXN5 zRCtf%_9}i!{wM*A3*_LX5N<547r|bYV1jpxIDH|YU5a_0FTTm9M3G=I6Us!~D}&41 zn~q~-4Dv%LnFXPT87F5n6$G!ZDhO7T7hu{Qf^q3(f5+O`Vuhc1Lj~}&SN(^09X~q* zLVKZKRIhnM+R@Lv!TGiHbog0cRtR2ic|+$bKl280LqGfKFL>K1Sdj^i0}68Y(XGeu zt+^Z0?YHsPnKyWzH*}H1Zme?a=h4Pn-v)O3YTlHFP!`$YGfZ8+fj`*yu>#g8V5i&+ z?3A0;OUb!PyWhY}-o>pPx&^skyBiPS)Lq|;YNKxOHlh3GkC62-U4ogA4!9e}VA|#D zQfcl6you$4UsU-punOQ8XGbHH=<7(4pZe0{GNP}2kFf*P7sjPDcgCgG*ZZgte_XCd z3CAT`L0`_e6n>9vXRqV&3&rpoz*lM+2cR&q&m6@s&bS;eC3;+LqH`|ZK!sVk)IsC- zR8Q`ljAVDif#OF~p^mb0U+%~LVd6J@%k5AR?3@fQk~N7?hpN{%#r}^{6&o$IsM*S< zoOdBw4P0l3Z{T)&D=J`ATZnE>h{6q<{!L1zLKS5L$Z({ofAam^r&LIMzSqR?g-R4( zs6_Z)ruaf7_`sWvs>+AXQzb~3I7FX>M_G$EDV7{g@d$g*tMp_;vi;GYsn8D=e5R6MQosxfQdLZ@a;}(at=rzyStW&^ zX6-m}{a(Sxi|aR{BtcxC`H5&c&OA~;a`0DY9@#IhpRV}D@t^)uqW!0l&J^_@IL#Z- z6~_=e0qX9C!5D)&zP|l&B6-&S$&e@f9rZ1`arCkwf0Ej&kUTfd7dRD5e|N*L_4L7S zr|q!^Jc4G-!SK#0citA9%{5d_hI{2C*OCbclB1LJTYL4AwW&_uqVo-o68_n7Y81v2 zM}H-)ANv^S$t7@fKVS!5h($tTkHO;wg7yVZ>bMWfgh6;`+WsdbiTbY0_t+ia)_??e ze54KQ`-P;7ULulPdYQ~5SIvLUCITYYu_+BIlOGoxE1CSIlF1)}w#?+w1o8F9^7*%Z zB%dFf-0>9Ui_Pbw>)Y?0EEA%P&BJVzX`P|Q#wK?|nT&%2bh7CSRbUW!=x+Q8)=XqB4oqHaZ1nWEu18yw=fat|gQ5oKz3jOet>jgtx6}p9r!=X2(b*(X_Q(43{4{qzPg@zH|dSV4VexH@J3Fg8=3p1=*WUaHFRR`W5yR0PJ%H8a47|N+H zco9r;o)5314(#*>exPxsT}6aKFj?;YRb2W&wH;#qv3ayF>!|0RphAwlgf+Twv%BNmSu8%|e<4(A~T z!3nI;5^9g8&+#Hh%M&NS8dk4g!+Wvs6#yuv4k`=GkQ z!#~DNcK0io96pOU4y^i=`xO@A1F^Za%l`ettj$1+xj6Ej z)c^buiC^HHi~{ZeG2~nr@}Gge&&e1-l*PWMsdYPV)4jn1L@`lRUidfN^l>VdT%wN~ zIR+d(;d`74pBxUG`j~+6GAS+mJJAR9a|QG>b#gdK#*Z~H%R{ZZN6bxV0eR94)6}TGTqw-9Z>na8Q|Px z^2Xh;2>)8EI>8IS8}MAjf*PKB%zpswVWFh&3b-Qh1@`d@qfN;`zFjc@w9~!0ANWsb zvI2N8VwYWp=FngsKl{r09-*-l6>8e^-7C+BOTsq!OW>SpE{V*xGn%sA^JH~({LXIp zJvGzT(c8j4)*yQ+Kp&FyEc-oJ+kRNw29nTsGWk}!WKg@H7cO@H25~9H6R3tno*BNq z6{%y#bELK|Izv)_+&@>l{IZ$4cxNYc;0vB7yXgDCH@~e{2DL+{!SLE-FS$?129qPZ z=-9rrAAn%Nz8U$!VfleWWuje%FjrTLZS=q#rxFrL{QT6gYQ?#6x4pYG2N zyZv6;afh8FgrAlk@LL(72Qym0m3yoAeNR7jB)%4li*|RzWO52sV>-V>Dq6u`XRJa4 zoM5>dt`#v*$ay|64)Z-`0;cX2EC{GiFIj=7Rm-*pX^Fe!fu5ck$0iR&iCXld8 zq$)nvYK0mygeVq2QeObpKUeDWW3)qc<;F^#) zZfD9PGfntqOeuOlIv)o#?#2t@8RE$9Mt+xEJM*t$%V;g80tngNIZoB(D``pXL5C(yPPcudMs%%e5_ zS{pKU>1&I=(i9*ux=>(J)?SBZbgl?myU0)Ujw(1qH}8OF&^xq65{PU+^p@!$JJ>Zx zi2WU;6J8Q=klASIIEaN!pY9G)fFai^$ttwlkv5|#Ff_x?xf_vlXokesd?29r#Tz@( zVIx6x)+Z80B!IPi2W$QXwPZXiyYsvB+V11jErZx6*vk#`JLj;w6}ls%4vh*z*C$!I zTUNVqk4!}&y}56@Z=May2ut?G z(nc3^t2Hp8u(j8bXrhK=_;Cnih8>z)4!_hyZMhoO)AdiY7e+o(T)A*vhVHFzI|0jB)xg0QOw8CXFLuxzs%?Ka% z1I#5uI18s{^5yd#_SyGQHBfzcK8ibf;1x)WxI(-C8;sU_?RTLD`_12>k`rh;UsrLw z1tlGyL}zzd|6+fCkK{!Yu-cG7yqM|@e3kW$-L+TV0mawb+pmxvcJ5bV7WO(bK4zk1 z)aL1o|6QzzfAFgnaY?>9+`^$S*Tgl?V?z#s)H&7~k7Ax{p;!*Kejh1L>$qLzllJI4 z(f2lwi+|yQ=gUzUM31YGKy~fTmxHhS;1^N2Z^vWNE*kmE*E;bFo`pSPcSAL1x-ssR zl_|bp4ZQHX{4Jm7*MFMi8&QLG;DzvUC5Jb3Qx!O2@3S2_TBbKxvCWH7o8#D9_NVWB zjV6hAF0cqDRr@*EuVrJ|pT-8Njr@z}0#i@{8>p+Wfx1~Xzp#P2SvK89p#*H3(P|l4 z8s`G1CggWW48LU#zvY_WPN>xze7+Wa0?Q>1%O%3{RaM9itAz1f8B#s5y@nINT5QTT zLov96iVo|6yT!XWlVNO(!IsO`J@giL&>1G9$17}zF<`+ z)?}Sr|3k^Lm<`nA6a=4dV*7w657=~d3$;JK1h-TJk0KanxKDn(yn-1|@4d-I_R&P| z(weI1?+vb8CPYR1|HLqXHp)pmbQ9+^DkQ}lRQH^M*Psf7DrA-5;}$QFVnlcQZ(*O} z$+3vz(2#@e9XTfRUU|VKN{#`f9=a)q1zHZdryN66710ROr7|ehzMtj}M(v~C;SA2k zDI?q)RN6+%_$12_7@t>Ot;XkE^X$2XuWV2fb?EGFY(z`*;MqUhPQ8Pp(a7^-7bX#X z1oJGoOQ*HCjV2AhgLGmQ{E26%IHPW|XWyMn)LhqZeKo2NpKGRSij~X5UnpWgVn#g%GH(>UUkJSIG(EmRxmHu

HnEXpXJd1bW`^=%OZto9lxH@6j4cX$Htib!L6bntaQJ`vv~QFa8fJFHeX;pH!XP# z%7w4}?)%hM?>}PaL_U1COFgpTaoJmTv&2)?ij6f(pW^cC;?aZIpL{5r`XrpMeq*w; ze~L}oj?=kQtIlS9p_*d5AlZWG(-X zN%{$&#pi+Ym@+ow{3Ahu!yo)o>!cluJeG*;@Lc6yUG*$1#fsEH#Cb0fsK zPXA$)xjASv05KKMHqD)kdt^bA3UN)xe@L$Q5!Ub*Y|Pv%gukYP%(ae8@$(@~TY{^+ zu!oW9!xFz1sW@@yOhd*p-r&dkX1P=M%k@3#uHY@M%+Xx-h1gf|1s{{jKBQqJz_Z75 z5X2i;1K|$mkC*T}3cRJ4#M*81?2 zq@>i+5z_d!i89Q|DCSalazXAMea?yxD}MMA`JRi3(BX?4wrNEhY)j$Ta8J#fsvQc4(^boU>evHRy;_kB;F`-y+yd_eudk!OAl zp+fW1nYPfe?CIzN_WCZw%L|*VB?Y^^!3&WJ6?A&*cP7=m#QZ*awMFiYEtdPDE#9QJ zeYtpI?{pb2r{Wbq884T@Z{Ie?%c1Zlju+PDc{etEeLaWx0@a*l^`lYU&olVsHV?gI zAKlp4T<^ZQguR1@C);ey&tLs37(!&ko1Eu_fvPnJ>tZ5Fc)e< zxLtOmJh9@z{w~gP`5*RoQMIN$JX7krJXxQIA7cu)CZK%yFHAe&%g^8%cm1Nz`xftH zXtjdstnv}HidlfrRERx2r0K}N#sv1{ZNYa__hCH)|8O^4jauleFQZ?cd*$c(*e>js z)bOIaF&lU*_giQwQ--TWI>Wzu;)nb3uLK;udy;` zWys@es!+nSY^Wc{fx&PbSs*pZprI|02Sc@u zkHW}iLaclR<43QDt`M5h^^iBZ9x8~ghoIIxXqnl+(y**(*loQYl7724Qk-~t-UBZ) z^sHJN>ml9yS6J=G*F%q@ie3*DsPzz~h^&W1j+-|ml4EX+99$341YDPKJ*4G0U&--f z>!FiWmB@OihJ)!=@fO1#ja5J=&dE>2^mxH^Jw5)JUT!>->u#7XYut?-aFI-3!Y2lk zr*rvU|2gOM@J~6XXUzfm_1lwbMmeq!{ua>%4`g@xLVuE3?gk`p_SHA>Sz@kxunCpi z@i2~ppsiK*QAdIA5abt6bv#c5@ODkA%XLnVn#aAtnpJ#eJsqE^=9j*);e?#bKL2&3 z1=#K72@z5Wm0ilLg?|QMeB+Y}z;gnT8=YS2a|4tYqeIALSgDGYfU1?Wj%gErO!1o3 zt=uzr;18)?v%W6pmHSzB^vZPslpL*AaGKLxJ?Ky;GvX9>%f zmmqDqS6rpr z`g*f>nO>gFKvfS{bNT!7{1~5=w{QJGCkoz((Q0KUoUNR#XBs0!r@({DuSwZu)6DPdb{UL-G$K|M1%upn0a*i+b zwAzn{$EDbhzaq<(OrC)LAA*Yy$A6423_>e#<r0}uR-7}pEUD6rSEQ`nY>tlwqx9ZP@T<%n2V?R$~=c`>BFNbIV<6xaLDlkZ09#gxTKF`O6LwjY&Le|nkdqkfMNy6r$4#Dd zWATO$1Qa42YnaTgI3#F~^41h@ z`Ln_ME1Y$TDO)@0INGOpwSe((M0DSP_e+SxFMo-eHz;QlL%U%@E2RGPDy9A8Q65t& z`}hLi7N8d?Or5((U>OM6H-0F|XTxe3OVaUxye!DoO5^>4!#vNW%R&G%+?ALH-Th=L zp-XT^pqntR59hfN*B`r9bI8XF?Qhm`3>mYDv~^~aZ6u@u{9~*bRQ-tTHBhAzBBg~I((Z#myqXJe1_f!uldu2^hnSS$??~T*tCG)nbxP}_ zPgikrR37zY&HpFw&;E<9fqkR>-=95l5og)yd^&7|yg&N`-a@pWypHF$!6dvGmc~uj zt#~OCr)Bfg^c-ac7h-WdaFP|QNWtOZaRmW{N=yUEe8dic6CrU%6CP@EH*A2K)gx)x z*9+ie^e{XEimeMgi}(qOtN`9A<3p#|&IsZ;MabBu&n*I%@)fU~Ry>Nj|^sUR#~BI%kAPDIPQA?0p)=CJTl6AUJ>35 zbHR#s^Fm}MYp%zk?v{xEqW*7DpF94lejocTp|_~qPEqtO7J7>`JrB-Lgx;>_cSDs^ z!!KQ{sE;D`sieL>Dz3Z_Cg;U`>HFmgK78e-erK(P{eJVmtuV<$*3FNSg(G=jqC1|awi z;G_?_u%a?~M8-S!`d;U`2cPr{o@c)gp&(_t{V}xyDc_slO-eqw&HXC-q*&VWOm|Z( zy~og8=-saA1ryMF9p&9*RrJD-c5?@z&le>j?|Js|a4HZ#$sVSOpBayM9fyEj9iP4$ ztNLB&#XGs8wt~auGlux1I`+%xCByeKz}s7Dpo+Bm?+ynHlGviE|E`C-0kIHnJroa= z-XW_r^$o<^b<2Cm{C8+MCYYXI|NY_qvaHu|?cty5Y53fqmtVK9%Rkt|{b2k70GB-n z`X3W01MyE_!eq=%6lsj}M*4>Q!21#>>(?jMeVeqP)gFNcsEj88Fr45`I7EDjd2--= zOrj`i_`K$xj&~ydpTCyatoOnf;KKPyr9n(0Tqmo)gi+^m`A5kg#Bev%06)@|j$EW+ zl-w5c7H{YRo5I^W!83pTk_L4x*K=8(EXQTKy-yac7@g4H}f?XR=oKO+%PL^VsUP-40q%E8pDi;?@1-+ zyYJW-ZUt7ymB0oDv3&gX5wm~phH2UHW`!{?zme{FAo;rI7ZqA_?UUch#g*o)y5szs60;t=4~ zyeRL^hxufHg7eqXyx}_>I{9mR5pHl`eyhzDUJ|Ll`T)YU5jcOXASOEX^VcHhb%n<` z@M;11Wr1ig<2dJd{fFgJV=||%NjcK@PKQW>IDLY$9(Gg%`mZ_fh^ENBg&*v{9WU(pQ7<^Jm&YO|L!$ z)rkV?cx$gg{Tc3EEm0j%#>rnNdgU{?|?Zpd2_?usy=OOIk)%b6Zwg#@ZW~~=8 z16vp3E%(o`Ty7N@>tw9+hG)I_!o4uO`fx$uBTGLS!9`gzT zWtUwVOIH=yN3Cm74~FD9%9GW*}=GcBJ(}-=`Zm(hZnD`xAo!ZwD?wQ2(Q}X z&m^{uO%_z!*c4v9!CZULUgW;=0Ue27d>4!#vst`Tg0L}FKA<#lrTwQ0guUnZHQ->H zeJ?D*NFJE#!er^s#O&!GRR7&L_Z{m)zj~7%4lg7r@48R0(%;}auw5QRan8TjP>zoG zBJOArkD>c(iAK2@|09)j;4?`2QJM4t>W?0D>GtQCKY|B0 zzF2b%cKX3pUf$UJAM^%U(;Y3r!|)ht5A>vdW4cJul!XtAe8D{#r0Vb3*Y8A4>^`Pp z{fp}USMjNbcgLwuJxnz}^-zOnfSC4<$A?)`n^2?XN}QqBc)NYg;kT@VO(48Zu*(Ww zkYt%v=_o4u*}JJ^X#Z)hTFH%PRcS@WVI-hjmPutqm&qSKX78^$>Hd}V*`^>W}0fKLi-19*!y0h z!RY!g<8E@dad){Iccp6F%`wN_PMBc-ao2HkWIU;H7a2cl{B4fHGX7RYVHtnRqp*y> zWf2&UH3as`D>{6PH-GV`F67C|WNO`$zjz0qO!A-N!7kDX_D(1(dI+TgaOCwO$*cb# z_TB}&uBzJmPI?VDcYp%rcwwti6N{2^O=yvXHtpK51Hn?L0uqFl_Hb!!cW4y~sYz&- z+l^7Fa#XPDQR@Y$9$E`hNNAfB5G+NYpwI#WYZ0KO2n|J=_xB%j?MvDeFQ3o*o%ean z16^y+H7{e1ImVb{jydL-Z`S&Msa^C!QPHrXs3ZC@6a`VXs5*|4v|YzbG;qJ$$?S8l z*A>K#O>QM#le6JW^k3NV*ax@K>O?}6Q7pAz^Uk5G0Hr84aXrV*5pd7iEEOa#vStR~)y!c|3dGxk1J$wr59%w7S-z(gq_2R9>Ss&PVu{#nN4t>1p;Dg4#Z4 zx|lPWEq{VvVr|X()Up;MzD)t@&zcTN2V8hwNlj0tkGp5GL<0z31eOZ7BAX_gBTl*o z@i6=g3L;|osg_*_;}H{TKhd+64iB(qOV)^+-OF$oE9?+TiAgDUOVc zwT)7G)YqmiyUfAll-2kE#p!D za;f`=UsF@c8_v`B4dKl^@~CwBg#1m-81r&vq$LLHXQ~`{Ht*7spky0Z8dfG6nI=8I zWo@O~$PqtA=NA=+$Lub016lO4441N`$xy{^#ixJA&kTnRmB4=E@H!=+?U1dgdoqFD z_hLEgp3F{h=A;qIPSF~Q#_XM~ASHNGX&Y2a?}2W-EOJb&^?m3K!38ib#x`@0Vn%pQ zAk2Xtw3F26arm(@IPwzpl|@H_OKLa?7rX8&l(fw(5m|q58Uj-p$lv2uC;VWigafUw z2Gx!?T9Fk6^S{Xls%bPMBvsAy zsyD@2m%$TWItj?tSS@3%8~CjQlWx;TQC)O4*aeo*CBNEL1SQ-PZu^D+x~r_2TtOelKDE=?=v8laTheoEw_*!pV|@N%F#HXsEyPCK#-=7T zoeJ&q81cw-igjLfj-}4vm($6JMmdU#@kG(Wb{Ve)GL4Xe(5)kd%qRW_tAb!G)x1`F zxBfN4z*XC*Bs>V7A^%_vc77eQyP2tOB85=24%2xbE^fg;V)_hqiGkFJ%HCY!PWsTv z@B(pRR-T*5H$Rl3$%slfhsTpK(Xy+!=>UsK3E9~>XFDx<9YP-%!+AUVG9nblI;h1hV*O7lOhmSSB;e58hpwZUrp=NoK)I`h*&8?F|NM&&KMS|4$ z)nawT78Bu%X-m5`oxEAhj7kvd&_^2h) zX^oHu{mfd;2XarETw?2 z>Ts0|4zOYz;oF0+D#Nc(qGKRG8O<0WG2w@^R3(_IaeQKR^xmm2Kq?2)a0N?eJ-^HI z-T37vc=#6b%bR(Axq+hZ$}fpXAGWjpUS>9XQ)t4G>DxcbW<$9#IAeB}h2Cv~bO!Hd zk$g;YpA3G+2x+8#@VSDKa(3*2gQane?9cwaA1PX1RJ7<>XM&EyNH=sY+NtGx?1rv= z)@Qy_geh^+Geyfm;SF6S>zhjWx|CJ@p+Pn6IrsgEYR(m)&{p-;ClYk^9y<&QG2YlkKq@|If`$gSol0iZk)9)CV1f1;3{iCQy{@j z@yVA5J(D3iL=qnMyOPD`STZ`bk4dUK08Ymi$`dX9vDo4_Bp+J(5k?P~V2HytTF1`;xTLL&m5my42mY>EnECNuTHNkGFX z<8NKs8Pq^(A~29g9t%p+AwA-7(<5jk#Z>%Wqen)14~f@cGIF56ivTlNOlLJXd%{tI z64BS_M4wgG`zti-+gT6>m(XW9T+k$FGT6hj`;C{vdg;)J#0#V6nLP8uY3J3V2-_Gi z6}rSr_|J=x4&tP8ZQ3aj-!gQvV&m}i)?nIm8kO_ZZ-`AEFem2pA@e_Z@!QHUm>dnvV1zuth>48_5#e*xY!F-vf-yy=Y zx$?c$ddH%5Kd7+0e=#$L{|JZ0W(I3Dmi`X^N$d(NQjR;$xo2VPDGExUHNFL%pV30S zY5%OXK<)eIvpJ1myk#jU3U+;#y}{0Nvj?+g_-)$U^wM@ThSWH}pvyYOsIHX%M`w?2 zMfL}U7^S*k#CdA*#o!8BE(E`Z^;&FYcLIkdzbDrf#iCBKS?)j5)yw9~%ZiWDj>j+-~m zFJahvIkpYHGBw5Hi(`wArLPJL{rK3-WexpzH2hCVY)~dwkYST@lF-bf(P1AL(bqW;+Z}KC8p%=!Jeq}IBWDHM* zvIsDa?P4ETaw1F8DpEqlTZDcL^Rc!+^2_4=2ER~wHpvf+wa&p77kt-Mjs0I(>%Awk zFGSik^N*nkjVrhiAPqSJ>%Rd!xPZDWrPizp>C%>+quAi>ZrM2m^`N$-n@d<}*dJ9E z97{84ydY=;|A_E&2Hix4wON|^cz)^(eWH3~tX1j*l{IzEjK2U=xWdy`Iv!xnRxIC>V2Vr@pPS8hWrj?v%VO34WCSPU5p> zI@>`7@I$Ok7*QOjE68MO$8b<3As3vNO?h2|{T>JyHql@0-4vz}oRa>;2OwV^KDOha ztp-OSVI_F(ELXfV_>9o0{FJ@Xx*TPZ zyu-@P#Ca?O6Q0079l?H-OOMV>c&TN})>zwcpym)`tnGS6RMdVRl`$@DBlsX%Pe#AD z0aS1l^yvB(byD36w}bB7{877V1l`O)nB^`0ag@F%Kj!4O$owI`vpPso>iShdQ^@P zEDGO~EmymW4i|;Hc1GWIS*nfj9VNUZVhQwLX>6l|&)T^0ri9IRprK>v=nf_*Spwz& zOa`EQt?>f<558TG1*jpc*FL%a$UoYnY0Xb_rfBwY)=|;J*y19^$tf4DVJ(UaV%5QW zW%SOtj}}SPPzCQb`c_qtucqML%f6FeO$L=vtCv2OnfflPAh_VuN^rFS5Z2V-&DLR! z0*iniq0%W90sN|_$w;x)@xuc;$mpT4%y@NawS!H+?e>2XrRH4}3hPyS!C z-qbdHqIgG=vsGVv;4J`|!aoJ{wI3yE#(4@ry~pwyID^*#nsJKcbT|Y;sJ(|i^aoG4 zFCG_wJk(GyIfO4zH25uFHU9r&pOStPS75x!^c4;V72!Ht3-*LhMbAI;%mX9+V?)B< z?msr;;g@D~1w%L`)bcD2l_$4sDfYUa#R7O=9Td^ErDW`V-aec`Jlfmm-f-0pf!u1u z;Et`@c7%l}J)@HIs3>;l#EDYQ$_eetEuYe7coKBwc>N)fW`i@CE39+?HWwfJV+P+~=ROXwX4Y{4mQz70Cv}H|q=X`IYn+!E&cRjRjr!8E4oegbH!V(9 zU(5lXg$e1=TCbTNeRPNE&p-X@-YUtsO5CX=S4{e|3&ZF1=l>KzF}287-|5d<7&mGOX#Z#T$i`2eNoJ5;lIn2Co({5~%bzQh{=PE3cbLCJd0+ zq8b= zi+^A;w5~*g{hk{B2_A=c?TV^8=${F@ViQp`lbK`htrUUfM@S5Q zVg;yg4U^lS=D(CkA4+hbk#K)`qU-q)Ugpb&YemZ?w1P&mj~7n^$;;GIVl)t9)a9wG z;#_wP;TS5jinOhZOyi@EY~~ZlvbtyfK3><0Lqi(w4}MxNczc3-cqXc!o;y4kZbb7b z8)CT^2W4dJeU9Zwa3`O%7Wsw>sdt9zW7pB~qTrn~NJJd!kEc*l6s!{3F<>=|Ojyk< z+WK?7pmc?R6W+uRjc>C0?WEu5 z#U`x5vNd!-Y}9qJ#eX0du~8LS&Tb$|`n}?S;LX$3_x;P5Be;yHTkKXo5S(EGXOjlV zlgD?m_;oKAICXO{0}%AB#Ed_g2zi~ z0;f6DD(cz;C_BAB#nN%ma!6}6{Sf62=UID~G-QI=b2bc5boLCX7Y11ZZ+bx7Hk7>JZg zquM&p5OQjI{1(J$ad0XP^s=kIF4&^)AfyDuv zNnDf@?6`q~nctnc7G>#Nz2tM8S6xV|;s9`H5%K3CtNEX(QYKLFpncdhT_f4II6 z?^)k+!RNw%&ise#dt~w+{q1-(*Wa)2wLbV?q*6#H?N(KOH+9+*Ik@h1^%VF|FrHBj z#AGj^j|mPQi`NnD%2qy}t7q#!0#Dy0buACivWIi^yzetMjs@^!p(&vIRlAih-;Hit7mX}cH=W}c>dc} zC+QW9&OuM)YKvh>8^9eo^Fqg7<-rtJVWB+OfSo*o@93z;!d>{>e7rmTl~`5z@t&5) z*OjiGcOUQd69>{uyL#sM>KA*I-y6PLtdeKBQ%4vN>Ml_qbW_+WeaFZ8@xN6qJ*YYy&;w2D;h1i4^u=a?r6YN?^SG&yTg@r zZYl6x@WN~<69o4JRR+KK0i8$_yE?j0fGD%P+p$45w9xgZ)bO-9N_zg-jbwX3wp`P~;W$_vWFv z=w%NzEBM17yS7qN(nM;C?Z5JxU z>OpcTuN>2_!pOH)>sk2{z8FkrsvVEj?N?fzwF_gGC%?HEYx^>0Ds`;cK#lfJr9;eN zdsm6pfeyX!r_S8yUhREp^iJModX0DI}X%G4pQI>a*26Kj=&yr)2QY`inlcmz!Z zgF5y9FqY9Mfe+;13-q81IUuo~$#JXK$5twDlAOhyWB)aPFz`fc`{XK7{1vJ)Z(4s* zC+B~D8EH6;8C01`G}Y?f$6-nYQi9Tt#NLSA5rv%RU1gnmVt?FnjY_&h|FTTuq|z5_ zJ#o0JZxy+8CR(`(OdV@Ikj8bLDJ`gr7)R+1u0Ljt7%Ir3XzfY=tF9C{RW16nXzea0 zy6kxDd}=eD3>(~c3TxXK>~11KsA^OTSgdT{{;skuN~YnsQW~}099grdLq+tb`nK2` zRB_N%Fi0+<0O9iUz_3R(Gu!cQvR-m2WkHN!37-6t_%9o=y??iW+;`RRm8_zh;5N%T zFk*YGwVoA_YHucs?Si(ejHBVU@qBb1uy2TPveY#0t}?Mz)79bAB*WKU%hnn>wtW>s zul3iuXj}JMkzYo``^#u}A2vd->qPb5k{$eDl!3O8L~i3&3`J~S$gytXAD-;`XY>-a zOK2li%`Z_*)0YLlSTYJ!rA2MXJ~Z+3@cNAfzd1?!_}Y8Xo;^E*9(gDFLDryQE`P0j zW~Yge1Q6Q`P5Wp}r-6@E8oN2cyzdDN`8Aj?*+gp%=CpY9*Rx*AQLJtl$P?|Ds|D8X zMEeFfNV0mX5hoNiPdF%AL00@21>aW->Ch&{TFl2b)8P=g&5W zkn6Bn!!O-Z5o>$i6rm51|6eRZ z$EnKQMCc`#IM59dxq18shnTG0&Ph`b*=F-VR?4R565F`D6J&%p?iALeDDU`{93j7w zSnJ`msNhLm;|e}Y+)8?Ko5x|GEs98gKQ(0SFk4Ll2u>TXQdxGK*@vFd=lNOK+RUby zS-nMr;X8>S8DJo0%tJFL5{j=>O{)c}mucIehbFLXMk_1qx8%cM-i~U3ktWslv3y#$9-R6R1mXUHC+aJC`zTA4c&VOF~-w@1e5;Vd>h6zt1%3^WV zn8ZBWP^G=n{a*x{?-(@Ak|&Cjn6{r;`rQNHI=3u*pLycn#P=xVOoVSh;T}1soQ>>N zNyivr67I?yErM~=v-nuahrg%)w*hXh|KJZP6+7^ZQo9hULo-w-0LxD(>WPpNZZV#& zv6wi6eXm3sqd7i!Bh%2dD%VkwZ+Phda67z~YfE(g=Z&UAf+F%^`*o)+>p1_(dExWJ zJKrem-(dQ8x#}-m&(e0ZJ~^v_Pb~w^Clsu>ekUuGj5>>6=5`#&=mc|qm;v1nlX!0c z;6=}xTHVM69)z zobr@t6&}SCaS6eTs^T?ncorvMpuWnYmj#ajUV00&V|8 zwtHx{sO8n-n&w@_R}OD}YiQGX>D({K$dL$eUw6sQ#){?pd**iP%~n`>&Cu9~3}Qrl_m%^qA| zbg`4a*?+p_x#AgJTZhbe_|=vdi`i#wehaKLgT23DNOd`}f=|r=1hHvXrmEF;60hE~U>7esEiyY7P#F`bYO7EMg|py3FDkm^4wC zh@$YFh@btZBhU@%etK8SxDhV0q-ppJZg{^1hqXiT+q31**5H=4ZmGK+EH(eWbOwjq zX2j~wD;vgl$Ye|92P|BJ32{ipmbSFdl{R`-+#dH1u6xve9Me6WF zjaDM8RJry~p`Kp@Gy24akzFufBCV|THJj75N1~xxOHaH^c5*pSRlrwDk>V_d7N(TQ zEWSDT)mJ4O7L<^(j*x|>r8@mwx_C}!XSPyt7Ft_)m=3>9FZ?N=)Cv9Ry-29!kGv&% zHRHsNp!^$Xi%g-TNyBfH6CqHsfx_Ua9VvxsgZr(j`j1LYm(yn>_gkgT^)fe@HqF*{ z{(2jB%17HBH*s~R`r+8(X<$cw!$%3Xqcx+dt!y(~cZ0|gr4%-%71pg|Wh~ecjDY@Q zzme3FFB9XLLLe?!SPWMbxQc(q9;?R zMLM@1DpIN<48-W~Yap&B{Aa99N8TKjh(Nx}{6{#>b7B#JoC!S+pn$e7S`O`#+F8Tl zdd+WTe)vL8FOmRT{5Dxlq+Lw~EzfZe$tRd&&D)jh3AP50WBds3(X`uPaX#** zTSf95FAAHeN$p#_kh>YyqC50Ycz%=~$-g@#w+rV4jqKg5ql@m)KVh9^pNN!KX*izZjDfqVbO1~XeB}#q@+)y%ciZ*$-XRbFRf+G zdf^XQ(5|O+g$_MsH|h^Y(K#>uJ+tWmd#X{0*Z1bDMmg2l`P;klALb~<*s zsKDNS19{Z0V(g3Dg;u*HEN2}pV4VaHucKW~(r(|Ohq~Z}a{wV<$P9x0!Ld;xAt^kE zrtGG&a3XJE879;4c>a;Sv~WLfxBbQ%294cD|H(q5_n0?ON!+HzzB0X{>}K^5^V|5} zai75SBiV)im)$4u_$Aaf*m;q=!H_#I@-MwlV6v(m^ge<5uLzRA_dbCmfZMsd)R`w0 zMlW7O^20T>E$g!PsPA!~!1LfQi7?=t&_8vb!1Esm&i{+|2^{CEr*$>fC-rNu_X%8D zK~C-w=&?^eb_Gxm*Hi(nGp%KrHFwP}T@6 z9+3g%#Wuh%O!D@y6S07$)?y2&_usKA_hxi3zZ_N^o{luhuKVc$caPx-ho7XnqeF9} z>oY%*WhLZ5Q319jKkUAt$D(Dj=kL(kS|{*J$R4~}hiLY``U%(gxl$Nb)`3-u zuyPVWd!9d(fc1b)i^dJ;7G_#S09$p;SXR~iZfGXs^lgIin#M{aKpyBAM6Kxxn(!>z zahweqDgUOb3X)A9i@?hkB<&B#aoIXhl!0o80U6A`NL1`h-)b+rd>EaZ-Yi87JP|6Y zYh}mhk0@4IpgFwI);k=dkmBxroZc9I`h!d6Yj#D)k?+lC^@GZr83o(8v!0X(bFWmo ztzu9bH|rF7W$=lV5~E8@T`ZCN+XUqIT=Zacd}$k+!d0I%i}!1;>g0#hEV#-T*OW&Y zbmI%Dqsu-b7Tg*XO%dq7EUN(r2InGu8?bFe{19z@C?1{+!!Rb zIe4y2o!A_VQzKD+b*6(#+!0AoqlUHhwGy4zOMlfqMkl!s#vHP@Gm^vkCKJ2>*Hyo& zQ|mp|r@!oBNpqkz4_psA6BJ9MoOlidANcYl-*ExJ$V?WRX1rEn$2pWZq0{(z4nap^OnzIb65q7#!2 z&)tZM*Bi)%iYLf}88j$H5CU|eudU+@3!;6Gij}odS;s|LYt#yZ-JoYy8?+xPa!6EU z3;hd9q9UFAP>~IKW{cPl6?s-viUQdfY`Q?uT+RAEBR!m)W|~ExB-?K-8*o!eaI576 zZhoj{XUwG)6#afrls z%x*9>iH;>Wdkj-I4p%wOJABY7_myX;kjrQ1;M8uKQ;jgPDl}HOl*O7@!NJdZANwTS zu{T!uxHtz^ux`T&Rt#29efrxwD{LW$C{9oPCHz;ll8g(&Ao`}K`xddnw&;VN*$>7F z`2IIr0yB5ebH4atkbBW?{jm6<8-93wPk#71AH@%S)UBDNpcgrAP&dU5&({MyLnq*a zX*4Hp&_}o-)}}C_VFhZx?$5GuYrBF^ktk(;m-PEkvl~i}QiVfl^0|h@Lizj(qhj(| zB}?K?el`jSu%*md^K^DRRjWm)*iX|8e1 zrGfRXv6+O)B1bPeg`k)zPrRR2m;zL04|-9B;oDZWnf!3Ig5-1f+d@mJ3(aaWQmkOJ z@O2QAU$E_&zcb2j$Rhtkl9M?H$ldebK0vymiHBDR7}#3n-7e&M-UN8KQGCItj@+mA z?57>kCt=N%%62#0zkd(=%+}xrVVNW1#!Gvr|3SE%~OSSHobJZ zSc-4XezNYpe8J8T-L5rQ9Ecw(i?knsrP8J}I`hkQR(!DgkzIHqx%B;T8)E!IXh-Am z5co5=2H5Kg{ZqerxN;8g=kJ7Q(#}-3O!#jZ7)8s~$NF73c4un1?9)phk>q$}GJWl6 z%^w`EinZ!sBo|hKqf6tuvGT~;w}HBh)N;O2-Pj;Ywq5dy3Y`zGG z1^8OvrAK(_(@|_WftkK$bZq7AZkI}{d7TMG)BT>=ndOawb?2A4>znAl6WFrR$F#v_ zq8;ibngFXukR+jn(J-5USt{dx#p{6vv|5`DATV5NpKwa2Dy5J+M9kTl(GaEkJxuX$b#Js9no?8-Ww*K2<)jp zvD^;l8g2E2quFH6&1b|@^f%O=?Nw~6#gcPx?O8fPWyIkLA)x4fVJYsVKdz-jm6uMC zrsHI=;q}_Ki0nxIdRe7Py^6q`qN>+(O>38uI7_9zb#1|$>H)8~OFy9o`_RRyIg&x5 zRaZ`R7{R#wVqIyZPe6v-Ahm7D%vC(6aB1jsu~xfhRxX(r?s|E$4(;#~@!0y-&xK#yF%Wl-A2u0LP~%kW>djOh7Z>hUlINr7Fd9 zbo7ktSzrCUj^4KF9U;W};HP$6ZjklC^@q9jfv$kH_(HZ`Moufd&=>d^TREXzYXfd* zq0=?(bpfp}r^QvOT$}$WK4sWPA+*a7YrA1g38dm6yK#rZUuT8KzQyO9IdZZ^|1!SmCWt2}T;U{%s=WJOE zIcykUV|4x3{Qn=$&r1n%*?i&yvM|6QVgJBdY~v4wJbyd&52+2F=_z+!P- z|3ef!54y)eUf%Smmu;JcdkljN&y|3AMV~pqc#GD_nyLvM)7~yPV~1JXg!Qf$IK{|M zd4lQquAC0FWXGxF`V(vtvw=#>j!T4dm@+lD4&AjZ5AHJ?k5kI6SY=g!ePYA9; zp1?8-y8jubKoUEC_%`{jy?1 zHNbQ_89Z>uqQ5TMK*6+4sZ)2fnoomFPEmM-oB6U#vrcXJ&tYYXv+jI>ED~I zxW7L0zWq&#=!Ebt4o)B4mn;swhr?v`6NG(W$;r_bqBL#rbcgk7-Oi#~5-hJ54<+Uf zVl-K?GuHn7{djNLIWl(rR7(Y^8ln{jt_{-tUS|Az*tLdfR~H#fCwrOS*dP@XXlJ#> z0Q6UEvk_hr@JJSKinX7q>LjAC|Eg8o1K(3|##Q_xqu=Kd_fLeHJ}^7##T)Qm^$Zgu zxf_hJ$jM4SgZ^ypcTB1%t59!mm#{Jwl9V}1y+Y%M)6ZEXUxG&cJ8cii^URZp9 zJiq9AU%meXqm-bbMDey{`WC^PO#e87cYzwqESbY2nKtMd>;_A;2Z#7?q>ws})LEL$ zOvgTT`7#dFE@w2SS@JVrVWzzib!;l%+pIdjZG+*YuAR}|q*nd<=A@rlZ?88sQX=U1 zhRCYT!Q_yaj*4jxXcLr4Ul*k@VW-;+|New>UJXlWFcgs-TV{U7#v;vbS=t&T#kyGy zN3>~VVy!zg7->gs>D46;ehwEW(*_swRR^DqT>OPgWdri3-bhM0IeA^i`QzXhELUm4 zhC1z9NH1KDU3Hc1u%+ueG0v?|RClE=O!`Ji^_pL9awN`u3=8pDUBfOMmDke-_-mq# zd5qT7WnSi6qOD+(H4;^utMcilu4F`<>8L(hO|P(y`%@7pON;~kh09rRP<^MOQ|)|1 z055SU+m~HUXlO1H;?r<8hbkmdw~=?b&2c^zQWJN-$J!6f67kn2!zcCr&IEj5>|4J) zw$fO%mOWL1n7s%BM94%%k$>BDVV(ca_Q7&WQ^b(g-H~lSf<8;pGWc6FI>*txmz`DuA=S4LjhGp>U ziHZjjU2l)5uXsDw-k>d|mbX##e!`mufbYbe@t@U5)K@%`@b7ngc{u|bDRVu2#p|5wrVC z#MZIa?F?N~zAVU{`Wq81TPbY<7Evbnpl%qpPS}9W9;4sER#*X2H3m;NE%(y(u+LN& zwr)Mmr9K0jmRmpHuJ?bRUH8=AXiYrhwe%uorYoTTspbk9Den49_(i_v!;DTry<+TTxpH-X&$S($|Rf~Te-x2ZCg&Jr2pepdZcfO z=x3Rg%q->69*HhDMfxWDWv@t%TTumAsdH+Zuc>0Z-?T-y>?sFfEU?5_+d1^d7Tzsu zYwD|CY`WiTY12SL5%x@`Yede`;S7CwI8+mnouUpEi z`cLXIUd3j-GSgyEqReQ&6!CG?17W ze8F>yqpD?4l?JaN{4qwv?0Og}1l3$qg^9$3e0{}}u)8QH!L?z%`zBgCJ-y96u%@*? z^;)fYhbv*;R;esf6itmlg-E7v3aEc#dq(ma!LvaR={NpOhUoN7l9(u+arh1{#29vy zuuMUXB}@fl;|+O!Gbv8u)Weby?ia3)hDg066C!Ua11El~>kLNWc!j)}CVZ!t%(O?F z4QP6Gqkj1rH*SW5q`%q?-4Zu!Sz=vpV3-7pXo%B$Mbs;Vc-0y8DAp=Mg8MDaX?VfZ zizDJ~`V_QkUwDf3YZz2LQC6FNLE32EMaOz-UF^51(PU-OePEd0wCx+^RF*gunP}LWpRQE|Xt&{IIydXg#NBUBE}6`XH!&5?23ni`&Su_Aa71X_Dra8O9b##E=X82SkNG+RQSKxL9m%`qKCNh5R~Dy zqC1%P8_Nv}PNUOP%Ar=s&M{=gdI-!i$`0U1`ry5hih;JEPHRQs-}*YjR>PO&7idA4 z!pjKBYG~48f;CW9Nr;vZ8L>h%fzg7)d8SB3Sy1@5QLp@6c08^CU_3&#WcrjTQrxx% zU?v?-%Zx(W*;9;>J@JAjn?zp7HXFNU(#az#|p;vMpB~j&eU@LLVF?aG6{{Efvy}f|8x@W zOy@Ngv-iV1^wQWjdtY+()cb1_JN}@cPxkop&{H$RK2~3`#Y>lJ)srO9JbaQU-VpBE zPTL*z{!@t^k0!caAwQ4jhn}7pe^h-%Z+-f(MAvg85}9u(e|_;I;SU9CN4GIvaVW=e z@e%wbTCTE%2l0qWhMB@k?KAYM`n%p4+WX%TKMKCCzYaCSzwsdpbS*Nqx@6st6~Gkt zgKRArE&o{v`cu)vn>yj1jic*GnFytQYr^oScA7SXN~7sv*eeY9tqgd6 z9&>a^fo|y_*|mbrH4*==g4>NIOuNYP@A}|3A(gFyDj1JK<3o5HsDQgq;L&b^k_t?i zIVlys3;>XA?*aPfxS)TSu+<+t-oFc4cT|-=SL2I&BBAH}9+al}9}7m3FW4Am{<&p7 z7lw56VD*~$@!{qQ93EWt04OfQ$;Nc>+!N4xAJG zY1c05RpoWJcEGSab4}b`DkPuej zJ@~2+1rWCjqHFm__&*0ADA-_qM1Nr^YF(Q~0nvneKHNuO_4%uzjvok&F{o zrk+U72xUR)dD=S}Sk&`M@`gK@B{R1ak#50o0AWf!zFDQ(Lf~>&STLCTsG`x0 zFC#p6dbM(D-w&PN?edk{?q6I#m0q5GDcA-KYQQ)`ah3K!wW(N1wGe=p$Lk>62i&wi~|&F-EU!=#|| zdJL1%>m2gwwcGT@qF`+W9ZAc#$^jQG*vA=EvDV|PQBJObhH6xb>HOZCOU^mU>#ufv z=$3vxrczjYxqBI~it2KPa(dn&JVayOlLMGA*pY*kBY`~pN)|t=6Lc%v7bRELSHHT) z{S22>0k-_@clS3u9YT~pj`q3OKY25C5PFiJVdFko@n-Nzz9U~2 zw3D(3B0%L6RTgXgDDzeDUvHD*AA@#OLUVB_Gq}z*Cn|-WO7&oaSS{MS?SG1* z(0sI$msftcp8-eZ4;*A9B``yyE7?hmhP+HuGZ&g13STi!Zb*AruQu~b!~nWfK;hO; zp*Qv=ZDtn>UXHwG|K@{k|K>%Qhx}?KIK(oWQAku*;4)-53-2eB>1DQu$wncEj*^PC2!f*0%Mx@UX$7XAAlP?L-t=KNlLYBemojH{IZ8NQ^2_?17jB@MmM7FRd z$U{JiPyM!bas&xaaN7rz`v$%nqoAOxJd9%KCPG7z%sOe8Lrmgf2HhKzoX9sZiOOR0 z)C0=mQOG2^*etFq&I*~tN-PnBC;Z294B{$ij4H@6h)bSXkj!33+nngPSABo#B(zB3 zG?I_D-*^J^>Y)CJAAt0nKcWp|)5BhikqOu4M2wTAn~Gh*Yv5YUBN)=Fh0201=9q`C zVxEZ~G3=`Y4)sgPAKZGZl{GAlGZt}dq+BBE>uJKv)HNfcd+M5nIu-7zYq!^)x{m0n zof!mR-O}i}EP5`Fo~xo~XY^cePrr?eCi{c8mZ>!({v2Tl{Xrvy5lIKR`_E(f4mpVb zyG^7OVJ&r&mr3Wb8##M?dhY>_K3g0mC#wyUI#X*ea8RcwgRYBzlsY5$`PnqzQnwsq zh6$q9&eXjY4V0Iz6PI)VN$Lbj3#8u8^f+DY@@IUGf-i8-ea}#+8l-UZ%LdZm$MkCJ z)Umgd`xd$-a2>`Ms88dM;b$bc2C`QqP>kz^`-2cnK+6qP-QKvm<*`;Bx9@37QA;^( zhTJ1gylYsWbKxHV3ehnu{fq#{3Y0oOksemoe02$@1-a*PW2#=K1ifVD3z%YYLk#y- z5qUnyXY43`fm@aB9#(pkiq^AtTGBnSR7V3H5302-$HRvVEej&@xZQ4L096{s57j#jIqCr~(jj84TX@C~BD1Oeia8j|dZqz^^e z!$s%bSnEyN3-XufOF|wZ{t_oYw9{)q+v+3Xk4W@PDiP7uc2Cmnk!_8X&~IL|+*`o7 z?MuW}t(+VDC3&)CnY6@8Z+#FmQo3m==0)7?Cv|3VPDt|BA8R03>Sn$e56{9Z)jrXZa$`PMODqGh$sys@@2AvM$1OdC0d zY*3}&KZOrz`+%hG;Cm#g8?Cw}?WA~$rE>(hMp9c2N$OMiy*EicUU~i1Y7I%PA`FCT z((vTniwh*RXRSqMwI$Q|RUoOCxeA0JRgjg`%U!a*W|JkUm8{>A)Z?Oobn~M8LcYd9 z(}5$%wySvaN+>^)(_$Hu(}KgvX$RkGC9r)NB*=_xStSV4tA)sd4rb-Fx-a7T-Vp#p z1Y3Rvr8G|o!_2tV!m&wbLy@4+`15@MAA&!B((;-H;S{1+>s4|WEl`R&$sf*;2K zZ%MSgO8h@77^#R{Vz@(Ib8{S_e$5(Kc%xfrEwW!SifaS91`gAPRun0aMTObU>pH@Z z0uMsMt!H1ajm@4^8mq7dcr?(l@H_*|DL}IDzYrYq^~f`@Z43n4a*L!Kx_CnR*ggc0 z=ownBQIee9R}{U{v?IBR|I2{=6np8OsRPsS$ z-(8-H7>$zk(u&Rg=+@MX>ZonUtEb&2rm$2Ll-KttA~}K6jwy`20dLLzv8F;z|<&`MzcOT-c&#r62z?Oj^$Hj3XRGo#3gwqO*6LAB`^k**32 z8pc-+w_#N8f(vP%kc-xeMBziPK$y0z zht%uF{xKTy?zRp5#;nb<$*Fi1zh{IyNpwDEE4J{eTd04B}cO zDOwYIH*1Qqu=Y-@dMMWVpCsCrUvIF-I&hWM60OQiYy*=^>$l76(-33`Q zY2g-x{2s8XB+w}XeA1x@1ZIgnW+ZjN6b_O!&o_HRL9@@lEVyN!vAyMj^|Hw-yT3_A z@%vRsys-sEe@@XH14ftpffoMK);i1RbZhOYiMW6k`RpuJy0b=t7ECXU0j7%nGAEr^xrOFiKz(jEwz8AN?yt zMg1#8Tm6oBvMe1z9_?nB^*NZmG2eo#lN&>p;Y`X5XSJGLQ9d;6!G~X9Xf!c{em61m zBAkX-Xs#Soutd;DFko2`VYvQjLzyt6XD(sqDXygtiS{t7n$hSu=g*1)~qj*VW|OKi(*?7b@@ zR1`Y~y_vd$!*9~yiEr!J#KZ*cl&K2doMWlq72T(4{S$P~aOJj$!UqLl+KgD?{;ygu z)Uo!F1q2!Xr}Y90%y40)JG?V`4uiM!`yqZ~77jlY{m!Nz9sQmg<^N9fyqTxg1@3&p zqxq2XI<(R9a!o?#6n6ymtUS0}u}Cw(eF&_7(V30i?(h6qnJ_Ted4vOAg1O%P+{R0x z_;2uY8xQFlP6Gw*_0fK$cCvgNfh%ne+54dv zsb3+nxWYm;SzLsmFUXzaD55g)3jpNfJLGGZyiWlmDpw!p!h4zGH@eC(08XP99Eg+&!A=&kuh)phSoI^apYi1Hyls zfk#c-m>Q1va%w?BPE{9U8EpA$Y(5r{al8~aebnxjADK+^g|wu9Q3;X7J_bZYsF3C zeO;~Vhb-;Hasl*>CIFB>h;)kr9R26Hz0c6W)^(O>(k~_(~^ylJS;zd|N zn>uEf;6hW9tmatMvtDcxXYn`6Hhv7=Zow0O-bKjd?zYaRk0vXgkM3n$1poJ68~fTj zqLD@Vw>kFJx2e3=f0dwmvG%RJ$J+kFzihR6T5PhD@Dx`=ZVSb@S^DCfP@MSk<(SGY z#(NltjVt2Ws~;H@!k5Habx6+6e#^Xn-F^&_S&K!3Tj` zazYz)Uz}FEdxybw!J;n@3|zO9DkbW}@F*#t2Snvz_k#=VfNwEDv<$>Qvcbc=HW+<3*! zO)oK&!i%i69Lzd7cu%%lv9^h7rJ}d?Zl2cyn;x;RvH0$f0IfB+CdTU5)FICg;e+6< z^S5yeAsyJU$=a`t)orNt9}BT5aJ40w`a{Szy5%z5%xj@Is40RXi&ufhqSV2RWVnxuIb?W5ceIjI0G`ZJgC+O##YX)QYg>V{tDBn%!0?u%;gZ>YpLzA zmA`JL+TLdewijDDxytE+c#(}SzVbgjE-X;cuyK>iQwPLW)>K(~ZR}f}6MfhIP?tY7 zhQE>URb@*30H($LPTiGsnJbzp7hCE2f z*U9DFmk?)f&m-dK8jB}O1(a6yqA6loL|+p(&XKcvay&JndBL`!sS#s4$8J1#jhC6W z%KDvVH;DUxLn<0FpCLcE`NU7M^U`y##sDdI_a~_>cnX;yWy9ZeZUkRTAI^Q7sPs$4 zpKQ7%%CC=3-sj{80^6?15&|VS6cLpR%HkaEE646Ic4OUGZlJp3iznO+>z>uSUj)CH z9X?N;K_l300IcfHk+Whw!7%?khM^;OxGR$%tY+_K%^KE?M~PP7%!_EiX^w>?{`4qmWG8nF}{#M!v{u3VZ{B=V9 ze#{-g&*>P!wxVMZ9EdU-WtX?l!>I!knbaXe$?0XzsvPRY>bBdaa}=|vrTZYJXl*&? zY(K#P$Sj!~N@`cJM`yPPzvyKS_=)D9XVkDHg#J!Wj6po==HJDy!%q2QpXsN`MKHe6 zMNM?xE_!Ht+{TVR$(&XY7W(98$Scc;SH0P#$8BZ!F{QVxomQZxSP1%wkib9yY>WCj z9|$Z!tCu_-NVXl zufVQ_>z>FVzNjCqwg`58J2p#id%!a!cHMBngJA*baNHuMMzubV)&~W?lYCj=&x|rp zQf7dv67VQXF9ydB0(|O}Ea3A;?+JAH6@*`hlO-{>ta}4+!?C0tE zU7ivD6zU61i1V3&uZ^>-flIz*6jKMBSHN}=-mwf$#xVE}7irW(R8Q9Xf3^M$dY|Xx zqs3c;>C>x?TBCE&gWu=*9kSTcJEJ3pItMMIoU?mhqi>ugQuIm|JohYR)DxNL+5;**Fp-Xa$Tad%Yx8>+n<~Mn-DYw#qo$6dKF%wT z+-rYc5u&r}gIq}t*dCl9K$P^C=-l#JGRi2~s1?kdT({;J|NYcHp2sDKuuF{^uFlG5 zYk%=!d&B4D1KU?=8n^pV8={s^jarVY<;q;kmDchn_;@b#j^Z5t;7{n2Qrv^zKzh>H zJAwcFa3AvI>DA~b;Xi0cz&Yi3XZ7{ZRp~$cYTDJ`G-p&NBgajoYT)oe^Z)VrojzEv2TzMcaY?mi_7A%l^dn@wY@1T zBD!AN3>CybM{5h3KE})7|2y&~ z=y_!gobX~ya6o9lwwolbbEBtY>@TZ0FgEJboJ5ArN>C+eW+wbm9Mm6$Pox5%0f46( z2{zYI6x@d+o1|=G9RXUa5`2v7qh7R$U@w(=QKTx9&W;Lx@JDEgay8odgbE@N-CzUN z%113xP~tCE45W*!Yv(D_9`Zb|aM;0kf2fIE-9~el)P4QdNU-A33ll46%kYaZYyW@= zDVnN!Cd36Gm@=vCG>QrwGi(o{z=v+LUH0rJ~pPza=6X{RDTmFp{qPqs( zV?XPjQ7j4ui-Yu&C&ky@@bw$`>8P-rb&QOW#^$QiqAV=4lhyr&65%o{xfUNk^bj=W zhZbQ9d}$8Lbzn>uMqJDmRzcS}eZ z_^-w)&MTV}?q|D%uvqwOHB9~J=Y%Dgw4M`U_gV9H#qa_EVnW_u6Yl|!foPONn6fcg z3Rrrp3BIK_+?77{sK&vRwZjs8i3h(t(AlX|x8%U+;A@ZLD#qcRb-_m< zb5&5!Gtcbk$yxnZN6vM!R%5_AhM9e&l-;;pNQPW`FTr{cZ98O9A*9jd?eOpW$O~hR zg2nJp$MQ$Kj&g6@rIoSPsbT|qO!>=%5+;^p^%mlU8+*X!`UtTozMT-0q%(6|-B~fG zkDesVduhJ1h^U$)y^Clx$;{BGkE|7_$QJq|qG}tJ)S!=Z^yXQ^n#ZWr6SVq-x(->R zt<5xfiwzi1C8dkE2lZyZR8tbb@Lt?X_0*L|PbbIf*l0$Ks0}B3KcaEt7ceniR0&*> zaCY){m@>3*I8+(p$?6wfX*dD)dQrnVIQ`pwFO{(hx)p8|yK%|Vd%et6s9a|KV@`fw z@Kb17<^lM{?l*xVnQ+3llppPFoA%#${*|X2Zxpd81Pe!_QQuJGx+hl=S%TnTK0P(< ztXW+iR6jc*rm-GOKYPCs=)3A?JOAJWv6*6X>O`p_;%R+rDbUXn>GN5({?QSR8EP_@ zGm9Sz2YsM<=TWg6x>!wj5z`mw}>_NBaq~^ zyv?;9+U+n?MDJnw_SKYEy(!ju8DE>nk2tF76{+@*^}f&P(_YKHtgl(XdDV|xc}#+7 zB(`$@Qfh8`9)@GZSiy>NYcRaj@l%P==b3?Y}4Jf z-E~z%dT(@ysVix|dPM(GO^Xt&o14G1jeAe#Q9{xKRy(EB9n2egN*~kxow78zWwp2% zCLD=&r#1Bjk3gspI8){e;#xGOk-?pIDB3MLW3BI(u!Pa#MlZL*66R2m(=Ssa$8HSA z32eX{8ontOXnA`GF>$ULLf0{8vnxxhOdUnFtMo6Qx#^|%y>2`>A6BeMfu-`MRK+Pa zV!g@gHL3U8xrD931Ger5`@-Mdcxi^er46-K9BR)-jP@hqLS)xHQ9LQc>+9GSN`liQ zCtG&*z;VaR?K{xX5EBfJ2T86h-B7Nnmgn#yO zei8#4zpsV%jgtQHIMMYn49=r#5;xahu|ARh+y>8QScqnk@LwSZTxyl^X%ZeflWbW* zZ5#L<=XX5%zDZ%42&qy780c#+?vvHmrm|vvTmf&Hp)@l*_2OkYy%t8{k!&5)gcOa3N4| zs*IEg>m@1iqnfwg9R4QLkm#d-tI-D*t1WxzX^d9SvO=TUl_J?_>wEanZAM44WT|$&O*nuvH zDXWyIB_S&!Ev5_)ZJZ^d5mxk~C``fBv_Ap``^BzcgjFMP&eT=Pc74Ks4;*PfN83*v zGh5b{58$e1F_ZKU59c=w_8|wwv@V&zYNoC<{Iw>V%t@ae3%fmb-$47^|GV~;{8B4B z(1|oyXI*9X65bzPX{HK{ss9@L$}h(t zC~sK{qO-2>RUg4Ra z+|9m{@HggMEHJUOyzJq>P~wf7UCJ>Nn>!D6%cRVt(xhKjX6HiQFwu{V*baqYIOc^p zm-FI^rigmrj)Ax{A;`?5Z4H@BR|{d77cjMKw<@$!vN?x|n}W>V)`l~Qn7XDZ9Zk@g zM9Nu>$+AMrJQtSA&BihOn-lKZ6@nZAI^ac1&59 zurt_GRomhc|D2BZmpZTO2VHo3P-9ROZ(4-WEBfs9kk34&}8fLTgL08f5c z1KaiFAOP#O-N68!xF^6qHnA+gf95@?i2&XgfV2Bg(o&O|`K4JsT*_)m_hgyACsT%1 znw*PzCdc(|PDXx^^iPm7+T)fJJk97P1C@3d=f7`&F1=e2-bBkQ9*d>aAG3Di{3`bc z_c(R@t(WN{f>zmXw}rD7R*y;PZoay_|ESahUdvS_MX9ysBym*gu4HB*d(Yje3DFYZ z@%e|doQ{?Ncm>#=bMF$<*9-M|^UZs&kV4hHzbnw^e+yZLud`{W{W6PhxI<{NqZGmv z)&gDHyG%H7C#6{gdA@}j8vAB&!rjnvX84WY;d4*jjY3^_-BPfFQ(aHpa{b1O)BMdd zbxV1b&pAxpF}9Nc23*x+V#j>MWzr?G0D0uW9XzOEPU8^U(>9IYswv|Yd(qkJi?CYT z8E;NcDLcPB9=&7pA}^a2f27u>f^4>W*2mK5H*SQj={waEH|w`G8|Tx2BzI{}|^&-_ z4*$IBHup=Tkl;>19-ZnR82Lu)apY;;Qth7f{+eF&9;AOPK*cD{io0N`ESyJMuls|S zl$II(_P5pb9fd757>+gv>$~#up@9Ai2*2GB6a_lcIRV4#9N{RUcXr`CXuGFwDOpAB z4Z@0%c$Ni>)Md)0cPgJFb;2g3NAx$;M1;P8Z>q!yos;VqDf*vd9tF-aGU^?ZlPBa5 zaer6MW{LYXh+8FMEt1lC;)bxTA|vctx-G(1DMD1Xi-zz+SM!QfD1T+>TLhfU?BC8Z zTsZ;Y3Fx}MJ^0}tL_kgL-WVe2!8M}l6)J30eX+d^(Pn8gAQU-*en=Qg1MwKc0F*35 zV2@6noTuW;+Z_p?i6IlT2A|>S$oFF(&XMnbv!xiG%kEJQ4?rP@aS4woBvoeAb-|G` zA*M+iXXkNr!%*E)FLP|$Fn|hn-6eP&gAJrL=qjwD`tY;?J5&SxQ&AXjuaT-#g~>nG zsv9okC=gc?(a$GpIzfB0(9IUj0qHNJm|QrH(VTa=kcinZO}v&d(=f@oiHE06Mm%k< zVJ|>cuj&I^{9UUNU;J@vZF6wAIw7SgiPZz88#76=xHsv~jPrlF=TECtTHH%}>wv~(Cl~6Vgf}A6BbZy<<3B?y2lHw#~zWU{kihQn9l)IU0fr`GlHouf@zLuc_2(K zsPg8ZjWILZjH!5D@fs?R^M855Kfkg*eN8#`Nq(9!6^lyV%U=~ol|#b7x@wg*C;Y9BkhZfT#ejj`?{xlit3Z5W1Ei1L*xM}sa!hs7)39^mKXiV%mZ9d> z+Fpl2cT%6bc@dYfm^)Cb?KSO06KQ`k=A~KXUP}+_sxGg+7WgIupV3P#FABcT4MLT% zwre8W!=(#=kcslvfG)qkDfFT#fHbFkk=7#sy1p@-l@EsgU_i9J+AV`omV!x=@Y?C8V7d!f~4}2 z=8?Vh$Yl3g@VpVdt8hj6$s)i?MRnnuu5k|RNgUR+ZY2MTO zQ2}|I_)nrLc$=EcDE;K?5(8U<|A=6_ccp`^T(;qnqETtyJq8R<2lvie19bg z(N_!o#lVv7u?0FMeE}QwWO2(om#U;2Ef><@rI;*Jz^+s0T8sFMh+pB$uEhPAj8h ztsQV~USCbH>SoUpc}y@NHh`Rzn)Hz5F~Vld`T1>|o=K5Bo)pPryDnm&JU&iT2%Ek^ ze;kTHTZzeIHh_G#YW&Y3j~613FaLYw@gE^M;pfLz-(KbMV@y>4oIF17!GBsF*CCIY zvY?h|(}@wPLmp4+bC@=H9FAffk>7baDtG_7v40Lv<3mu76+7_s&jkKKW`&>K=$;9C z_JlL+xh70Uzw4ssbv!jMO!bJ`TI_-yl}L2teTFMs@?Hy z!i^`|$};6HgxIa2o&J;|dfm5wmF?$_V4MLR^|N=q^=qM*RJJ*mO?}%Dj4JF~a@1C}yUK7uPhDyYX|MXx`IEAHX%KlrySH}9S8(=IXq%rwhICka zv^A`ttz~vpGQwkcv?RA#X`I)z?V^caY}NgJw?X|)A^0)2*8T>)4EcNLg@YcG(1Sh~ z*K+VZv6WM*n%Up1Z{9hC_!fnDU4#6#P!0*1V}hFH4y`g2{uz$lEBTU5RbI~#K;WB@(N^PFW4p}b`GPFLdWxfRmy)=RtlPoi{FLU%l?gd4` zL9)kDXN@Lgna05Kzsa9h3STf0@ASQdUwEIM4Rf@6w>i8+8gxr1<%xVG_n>eEB_q9r zUH8LuI9&n9o(>MVRb61rOq&wg+-Y=1Bb=)VJPS{uf81KZ0rDDjL^&#}keXOmkDEZ4 zAr3dox_Z)vgYj?^X$IGeBVnqSwLi;qD7)Nw=8_z*Jtvtt>6|tc*|XVptetAdXlsqx zKG8t(lw<`5Rq-o${by8xA4=-IW3fHb7Jgf=P9(5E|0wCl_z*nR^pd1Qfw7x>YYLka z-~0G>?XnBL!%htcb*t1Gk>0=m{*8fuW8mKy_%{arje&n-;NKYdHwONH$3U^-??ivu zH`Wc7I*ext|CjQAod0Y1znTAw3N!5XbI|avh<#q5ixUvT;Ci<>T+K98S3yl+8?qb{0##f-~lU6d-C zap7h2rtkLY^2=wXK6%;fOA6aK3M{y^L>{*I^vma@z8KH;Dn2*gr3+K>|HIzffJaqa z|KoRGZU_WJKvV?ORZ$T!WLV-3AX=`sgw=vKWXu|(Ce?YWloV8#i(BVTP zX`0{HMp^sOOp$;q9BDlN{KmkwodH)1Bqq?|iZuJ$T&=!tZy3!s`fLr2-`Nokb_HC? z)Lcv~)E=_TKhv~S1x(7<*yRKJsGiJ<6BkdHDx>0xNpbyV!b>}p~gf{ zNk<4tQrD6db@b&N9lFE`mEjP5o7s(lx`^BDy|^Lz;Cs^z$_INN~jkqUx>q6dE-@<@5-0bTJG=9BOlX0b5Z8<7%tGO`1r~V&EkbC+ zUSGu91YIA|QinI7e2PtfduXvxZwZL-;?|a6+d`2Ov%z{KR%n;Hk*^CnDG2>Yx=itaO7peGewlMtv8ZB5%3P$tj7ZAfCB$4|{UW%Yi_J z#t20qy$VU~C#ai|5c1YwI2?qQhtBjhdQC-x_Gs^lk&(YJTDB;{9RcE3&{inHKt}*2 z386P>OppXI(iv8fOw|w!#6!@ANJM=Ny}LEk5{Sg|M=P|q1^r@dX2D4TjOu0_hKpdk zm&)JJ*;MT(-Q-8pdLtb^41Lvp4{0Fz+`aqE{dtA9De(^P3a~}tx>9ppd6m{B%nBi@ zsIZonc0UwHIM5N%5=S_UT;YIrM)-V}7n&~Y8oj7Fh`|@lb;fm_XS*)MkQEG{d!Zb! zOre@aedhf0F{G15@&>vifi`L+SCbE=XpAv|>JN0FeG;<{cQ#s#&OsmyIL$V~aX|r$$H}l$YwkWAosaiJ>kdbk0S?4Lt)dZ{wgND6lBNy4?{M@Z zz#;cz4G-5(Z&`mhy80ANt9$_QT$;8Va0B3Bz)3KEc4HgGA;1L>9ggliOVi!}Y#xnq zZo}c|R=_&|=VABjPXRXp&U_djGZ}-s=m2}p(X<}}?mAb~F4%ZDItm9#p9bs(JogdM z1KbGcLK#kZ6#N0M0o(yN81C7jShrmc*bMk7;M0Ji#|}p|9HDs!um3V0%X?5+|`TM5_#=zxd0zEsn? z0S^Ig1e}K>k}j-gy$-k;aO-$YdkyP^L(4VoeZXeG>%V(AI&6Zb{T=Y8^EK@sPb2&S zEXQDBYaQTvS`fx1*V_U2UW8=;fzTyagLd=K=19QsShJzx>w2EZ!;w*zhf z+z0qEpcCaj8H=~00M7^9h4OU)9t2zmSb%cu1$-UwQ@~FE=i_{=3lqcjfE9o{02=}K z0WJfaf@8Li0@ecV0Nf9F5OCycpf?!(3$O?<3|I^JPrwM^zjmX308jl5$_Y3Fa1Y=n zK<5z90UQN*JnoCA0Gtlk2sjUL8Q_h88vySE+zz-Ca3A37fKIHN9D^$+Mgf)qRshxl zHUfSXa2eoJfExgJ0B#5TC*VH79Bk`zVh!eMz)^rN0agHh0@w(6@^6tI@NB>hfR_Po z2kZgd2Y3K*;BnADdmxX1C;tv|3^*4s0!X)4tp@D>7Rn7c0&ovt4d5ZbD*#7AemVgs z0^!G>{p4bF95SzKGpugt>ZUx*kJQ|%3{e1v1 z1b7H=8Q{7R(de`Edt@|PbQJR=%i4Y&gERlq%fxo051Gr=d|3czN-t!G7} z>*)7r{8aWR6 z03IquIL4!zvS^gPg*Ng6)WaC?KN0l=xD!x22Xrc;(KUc0J-`EwtpfeA$fr6Qoeel} zMl`w}aAZw1x)*Tl#VFsos87Ipz=<=lD+X`{;KV}E16&0-_7d;~xCF5LJmd$s0&rw4 z=m5?K99x9?0_*`i0Jsxy?4@XLH|h_t5pWaWX23&$&SI2j7Cw0jxDId=;2ywF07us0 z%eUi@4sZ?NR=@**hXBhQBR*gc;KUoE(H(#-J&>mffJ>1d;ELsl4|r$|%7t-p z)Bi(#0`7bQ=`k*j-5iZR4LA{S2Vf209>Dp42LYD=Iwv9>pbN0(Nwf>#0l=F8S3C{+ z6b`r_@DSi3z_HJu9lwNdz)^tf0LuY40oDMH-GZ;103HC`4mk4rXitpKhXA($PTY$6 z1Dp?-i}Cuv^N=6FJwHKx1J=BV_QbedgKZK6C!;(sAsles&r$z?TVDo0fHl8Hy-h*- zSJ6)Z*S&`HfHk`z|5H&Yq2A)*SH#1&0zDexLyX}U z$HVskKOEtryej{uc=#cNpNa4h#`JUJ;UjIDc3PTn+Jt>_ns6d(yRNoIv_!wPah{w%MhNb9hM>dc7#_O^S4(B z21Ww60pZUgd{#oZY-kGKj_^Mt9O^&Lzdz3ZK7@aWa4Y_(4K|^EwqPESgLuwkp`=th zR4sKl{$&${DBi1xw;KKD0lYhpH^ig%`i9Jp;vGV~{Qn0#h2kB85>)gk-mhdl7s8e} zFi%3f9=s>S>59{;0#7GDaX8uqn$DjXXc2G0IBy}uYuS7_`b&^ru{6apKH}XwLHt<)HSyO!DbM*iDF6!u8=i!4S{TznwYIFNgzkDqg1z@v@FW z`1};SP#y=6$2^2zjd$nwU<@dEw_hHs&t}lL6LG9`6tznc%G-nRZxD?|1{zeJ+v2=z z2AzY52NNfr58?z7MYKP{o#^W@_2S`yc>03~&quhGE_5MD0mix!2w!GQKW&9$sZ(lX z;&l&ry&iGwB+GkX6shtOub;&8nh#oYewtb@EkXEI2)E*u@~Hr?3lJ{a_$E_6+{RSq z?Vz(B@g^F1HuRZ&2;Yiun5A)EslxD+(mV0;62cSev@IS!3gK@d+^X#;eFegIBHXGR z6yAvN-3YgmWeQ)0@LwT36@MELz8B%C`r>xZA7*U4e4#l1`w;#Iq)#<|I{Rb%KzJ%U zWE8^pAsps-oIcum0kRO~NBBR?;Vtp}8xfuZe+s6n@${F*!LwGULFH8uRh7g522SBGHJXQUVLih@VpJ_~Q(76=| zzZ2o9+NTlWUrs}R8NzQx_}NDKY~N5nr~&`05#B<)uEHe7*xw9#YA5Ktj(9F3ohxNM z5}nncL*aCPp!2dsI*#1<7&H_G`7y2?fEJ496^^$@3Bun*_yxvr!QrWNT5I!E^336wUEAo$3Av~2_>_K=L!c+CTLkM@L2_HES^Cg5M zTD%?%W8g%DpMdaGay=j6&tS~2Hl{b&bxRQb7Q&A+hS$pafeTGrhw#@?k7zFO5NMcIa0h_fVZf2>YsWx;0w;K^&M#PD4-LrAot9UXpDXu+Ap9d! zniAj+rbvUSyfz!*F4W8YM1Km=tjHg>+)Tk ztw5UnB%6OnizD6b_9^+pRywBSyKZxO@<*@GC+8O}&#A~SU)rxCzt*AI2IQAl(e8W`j(tFbyyqqcMn!ua(ve1e>o%Y>MsE$y?6jaebn976kR@Ox8! z&Z|L1I`z`QW!A%_o%ROES$0JGfa+e8T!T7_T&nUyt}J z;3Kz@ybQL8|F3xbM#Nu*_$~02yI{LG-@!$|`zhop%MHO?;qb)jx&n1Q#Z=eR^F-Pb)b*oCdlr&9J(9( zKCpt?YB}VxzBYd}=*0wH_$nwn!(6*RY*C(T=hrXSS2%BTth5hB9ICrlzj`=&1EBMr zLj097m^&CYF7l4cAo{G3!K-6(H_ar2HAuT3Ja0g{LaNt?LC>mQMPCy23Q2R!qOO$O zJ*Vdpy>iswGWgm{s9hH-dT_n0q&mFK8Sk6iPLu54i8Yf^4NT1wef=iTi@+!UE7*X} zX^I}|j`fO(-t_#`x^$V7+}f`Wk?2W6__4exurwqCGXw{^i&YQga%~ z;V{(m2Bh7Id6@I%b9<{VNQ+}eTn>!|oSxTZ$>!ud^aia5`3!vTa1<^(%^8&W82i(- z{Q7o-8n%+5pI&K@p{35{jup_CN`?x04oAOEw2uRAJQMN%Bjow|yFBkdM&@}N$*)n@ zROE;36_9__mQmM`eL{~xhCPP-LreAL&J~W^Vlq4o`G1D^&To@M%lso~mvWT(b;3Ul zJQ`x9y^8t|WM>7&9`v6X`9=0N+5cia2wI57pr?`kb)+wJBK_?$J?jXQ>`f&dF+IP> z?yy@o&g4A%Jj>ScKoBIy31z+fig;c3*q8QOp0h%~&AHNXJE~mNIgJyiq0A3azZfAY zkUTXXi}Cg^hojHXSauQcGZOV$eB9*zS8IRYlCkM|_HFsOKY3y2%fEP~D!pK8C<2@RdN}%5>Wgm!pI%o?&p&8$Tub$v zJjln!4Wez}Yp{W@gEnI!5RZ7HddvrJvR_Evh~Lc!-1?F9n>go4-dJ`asmq;EyXY^_ ziL!HB^_RQn#p|SAN^88oyot8!Mn2BZ#^A54k5MrE)*#R8NO%4N_;`K9U1QJ8`?i%E~{ojY9)9~(m;%rPH@(Y&Q7sBTC%G-b13|N8NS@UScF#rSAC0bXak1PSL zHJ~+43*@ZL^Gx1Q}eFEH0OFCel zY;$B-Wyrf6X~v$2@g8Z0VC<4*7rNb8_FZ-|?h=&ywS1ozFEr)pf>XqaHEGe_qK$-IbS12~cq3KD(@>tXk){V}7AEG2b|rg$s>re; zuP*jJnUYruv?%9lq~DD6naTy_xdUl-B8{nTkSE3=Zck5Mylq9EvYAD{*o=BQg!DA0 zcYg0o?oZv2I$8IlF^L|Di+#^Rf0cbr*yd<^ng^f}XP~pe#0N>t!K(9W5p6!w48s+q zFW}vfrkc`F!?zmyXLVi&eoj>ssz?%Cu=^xIq3=mo%|kg?gQk=8#<7Y|BQKLMQ6keq zCZxF%rP~i)S{%`6IFT2@KM4<71$=w*=E&N@dzG-GTu=&6Bi#w9%3X!rV&$&L>jwSV zNV6XM7OFVS?WC8C^VllG+;S2oUggOX%ZfbvJ(dAgd0|UDW}@?vcQ?uz(Q(rN*#rNC zRRtZza|mGri8%zaTbe_YzDoz>7gY$&6w|I#^6bczpo%~`6+Kk*(- zs*>#_5`Qau^G}z=%ey&MdEMZR`i^s8yu7c2w`BvlyoXN9s=TzHZm=rv4y46Xga2bs zhQ0*NpE{A(PbE!bpNW^(Bkk_Jc6+^LaXon!w)JPwqp`L%+dxB+Kb6rAzRCcd4ROA< zgRf@`qS3brKTGmuv_0$o`ONysy9*l;BKZ`}Y*+ufb8_8*t`Gdd9xVvVy(| z%Z1X%x?ct9rO{ynh7=;zT{CEI2TcbQwe!VOMSI+Che9&y8__p}->fEoRe$@VmUTDP zs_ve@I9_+F`lqm`4=p|%y^!i?0rJOFfdBLGI`Ks8JrNlAYXDn-YX)wh13%DDdhx$_ zs0&NYnCO48uT^-X35-4ivfVD&+#|79$OeAi#*cV^jO#zl0by678cdap^km}=Mbi{v zKiKu4A^D8!@3<_o|Do0~k-A>82CvMUh~&8_b0hYU^&@_6a0z-weJT8JWUSt4lA+2x zF{iFV`jS(y7l+dO)1+T#N)Js(`QL=}PFFPgB;K9VWO|+xS0&7eC!1;m0yYV0b|C#S zq=y`Uj!F-~bcqG!FouMcGF}!F@&1d^%2ZJ!no;G&f~O zGX$CsDVmWu&5uB{T+wXFjwbD)-JxifNSY)IRT%C|KvUQoG*F=IMjecWfCPI3WV8r$ z;XgpD6YtJL7_jh=4AFkf(TYDh3=pr!_*f0cn3W7QVy=EX^qio%RnjE>_Jigq#oyDC zW^eor?XPJUDO$_ov`Wr^y{u?0$&6M#Xf-QZHE~)!pfym@s>qDiCeXS=(Ha`3wG*^7 zMQdPYv_1i??<-n+U?kz8HW&tz{Uhiz(T`sRK8rTkkGc7870q>Vnk}Gt5HvlY?_8aN zCe%}_g>IM#9|DbEqFv|5X>J3}1E4vbXp%u6=TnR$27QA$L~NiI`eqeqo^&0~D^OaR zK;R)+8G07v1vI~ecjrlxW^b}G3FG`#pe6YGD~xYEM5`XO_9$BK0G~m>SOHqg6|H9^ zEozfZptTFMM4LP=X&KiYL|Iex3-Vz+qG)!;X_DgKsp_vafo8Auw+l3PD4L~`CY5b^YQLHSJE`qU$b%ULAs!4pr(DGXnlssBOao)9<;V9TK@n(x&D%9?F6miuoFdF z{4`GM0BCInt-pe<^GA}F(bsOjJ2t5l^N(7@bDa%)2z~0f0Z8+NOk-^i3A+uxW``r} zv^3m=Ka8YoC){Y|W1@1O0{jWf$p@V~B~ST|RwK_UgbVq*$g<2yx^x@nC~H;y4U%Oh z{`Z2`M9}&c@!v0*f8lqI+nt!B=#KKZL1#4FQq563Q{#5RW<7=N83AvFRPXo0fq`cd z{x3m2Oe$fUu_}j%81|2d9 z`L9Br&VDlgD!gwVi}4M6`%i~GNaaeJC!t)ib?cD*DNEB7ix4$PzTq6$>Ep4l9P={g zi|BNM9(0*;tqluxF?!pa_B$*^&~o1OwaM}J+vZHseg~j?&p=t6Zz6v@6X`$7=)$># zJi`B6@@4GjV%{|k^R6ARS)qO5>;dP(?IiSX4aD&|)E!By^Il1}9Pg_^_jS;nPWYQ8 zU5oh_jsHnHy%EFS4WPM#($0}IEAT!E!uKj@{u1wo`h$G)TBT@@*jnYYRx<@^i=uO( z4=Sa9&6y{8OVS6TKQS%1+}^cpi;6swpO3IEdnNeo#=G+s2ooOaw`-73$+T$nBRlXv z2R<%C(97&gf!}?34(HQja}2Wfr3k%4ydMC~y*M{A%mJF$_eyhGK4>1WTe&M_|E2RJ zn{n5(AaY|&Waod8dD84DsOiXiRu+OH6Zf7ozhLob8IarEOMM_Ln=#u$#WORWO-mt z0c6>}BIh=JrSo8oaClFSGIP{2B13{%+LS_16l| zpixg-@$mr066IT|H!fO|3>M-4LhvDUm{0Oi09?e4^&;>A6)PUX-2_|wII={PlQB^!;-e=GAY z6Lm`ceGlq%GvaN-yYoJ@bX<;1<>kFvlkB%zsw&8KEoh7dFRsPW=or!;vr^ED+Y%M| zt89)5sVb1@;Xgfw{_?N$<8rzxmA|tVeuvYM&iO|vUGwqoDuMt1`e^hmBABwAO21pL z`B&vxd#tEm_ke!Ml4z7Jaiuj-mQU#7rB26bw)|lgVr0`u&Nm@$)t9jrfp@7BFBNS< zbr?e1)gWxC4*t&p|0Z5d`v7L=Z?id~)_WJ=d6HwrcF?@(Mw~|@-Sz2^B$~n(79ZcH z6U`;5oME78(JsCT@pjpks$KSU;_NBXJ8uOKct{58Q5Sn~)-EWVY@dfu5Dl8a4#KWGgJd)f$dL zHnQa~x1qE>_)~Ka=GT;VdScqR4S6DxMhZ3iW0X>?F;gAUg>)mq&*gY^j+Xq?;{8?7 z9JU7Mh)L(14t%_hOygeMb`Dt2d9gcD*86BEz-4Qr(W{)Gd0qxILyj}7MR2OH`*(uQ z_pd!H`mCUbeCqLk74lhfe>D0E-klf7d~TyP)D^VPIJOVCh&E#+^ykXF1`|eXBS?tD zvb7y~=b+w(Q678q@mH2{AO_!E$h)3oi#8~m>a8-i-&)igElkh0lr7i`)IRlS(=8~Y z$mdp>54BGO`RrJabws>7ub25)ma*1UqN&t-6G|k;K+22Gp*5(yXp=G?%4;w38v8&r zI*Vk%m0YH{uH`jLjEy6$=TX8ZM0vUTVQ(7pLRZAv6&x>kD)4^;1{c=`$Os`s-Brit z=y999iq=L^ch^`=F-5%{0G)EsK{Lc2Xb$YR#+U{?y{iYYa%bqXv_&XC-p?w6>wUdV z-|Wz~*!24y+V5=o+Yap)cKuflZJ%9#-l2W!kWmLzo%dCnc8^W|8Z>z-3SiUm;e(eM zb;8$d`dYj8icNo?_U_vKuQ z_s#v5qY9ASiK9Scvi@zmwm@HI2le51+qLJ3unL@|e`?n{_1$*u+qTGicI_@MWN9fP z&Cx%zYYX*1*|jIAXgh5BHyzps^ommLacJMN>pL9Uvv&P^4()D-Pf)$l<~c*tPy?&_ zYtP%t@5$3{v+Ixd*M4W$@&2)0$6==X9Q6J@hyL6C+V92tCl39?{@M@qF+U!l9n$ri z2WZdb=y?BCjt&Q0RJ`BaPk(X%%0~EaDHgsMK-1`YzjfZ`rgrY*^2-NSs@uS7}!vA)e^kGi<{v z{TNVe`d*vu4I=ZtZNR^5R3|WR4DvN_)Nu4A{W7fu0nEcWrRYyH^&Y2oz5c0#s`L@3 zcAs7Uwo`k|LGK?s2>+lno@CGocz?jA;}r9I%(SAW;J~wWuQpL{)UG%~Wh z__JXEl)d2lY@6#0AOiXyg!JyQ*?wcA_k%Y53A?t=z&&^!0&dn1g3KTD;2`aeK|20& z37kZPDyayySfRIQ4QIqkcgm^yYc{P^|DH{&L#(gbbbQKUwM~E1rafh=6w!vBihv9B zZ`icuHhrB<`!y9w@OOsoq?!?s-hDQGW3Ki!yM9Nm?ZQqff7_xhkjFAHwK>e^Fn$LHx6Xea5HJ1P-&z20NfZY7$rSg3`Z zZ39Q_kJXK+ms9n5sDi7sx-(=wp>_W{Kzl0p_zxk;QQNVn>c6sS=j->|w0Vf7l!mN> zV{FbLdO4l>F#N8J{f^7AYK?&-p~KFDj9tvR?L{Z;hZFPqgZ(Iua|{?J$gMV5#-FcU zj5N!rGzc8{qD}vmu6@&~zod)E=Vg%S#MO5Fnf}_3>`g!Dul>MDef&Vb$8GpQ*|{YJ zde0~My^6~Fc&x2YvJJU8SO0X7ZAY&D_d&K>kJ0}&NVO8xeSe$!MQwIU2`B{gKiO=M z4K$cdUuk#z1j@&*{hGyAG@EEMh}BPQw#_z75qI14f7-Mg4U$c?(XOj(`VO1z8H)2; zA)`wZ<3w%8k>ZXm2_6r6aWuFrBmVs( zbWnJHgbtc0x_%e8>VT1`#edoKrFKF)kCOtBS`g452itP)hRJ1DT8`Riur1fGH*4Wo zlf>(H?Ht>Tw{!LPT(&<9(*NkPJvUf?|5V$@$Lqg1)plSQ;h#Sd6Ta1_>K~n|ZNY$a zy7t;>`g^B2{&*Uw?K)k5^K{31WF71orT<}+Ln-s<+E!cR*+758t{)hqJ(Hs^I|oWz z|7eW%)Ic38Nk1Q`uRBM3@|Y`EoTL3^&@uZE=U5$o_Z+LQK1bU!jNTs}aps{h+QE}` z{5^a+VQwEq?>o=Z_l&W9cs9Mqbo*di{~`J#Hf>3)kf^Z%C*#*LI}}_({fz?_q3B2? zS$=Icl#dvTfTVzeazvP`KbWKa(6-0<%^Z=KNC|y+!h?4Gp#hH7{clI+dj{x#AD|r` zfWTPUL7)o1SK9Tx4sE+b-|r9vP63W`{jU9Qu&SQa^*`ij+j8Ld0n(W#1NDLfAOl41 z33{=1E~YGaAFz|m$iJ}>)1PeYyXi;f{Nz1v(|a7+PWz>TV16}HUrl4kH(AhB{`u1p z;?>vNVBO-)z*){Mw(Gx

rY2IC6)*$M%e_?RV(k!C>dmH|yF1P92!PlLdhE$CK9j zv#lF9l|16malghZ4ju0Z8JMrTwXyna?GnTgWx2{WYo`7~-FBx<-=E`n$ELrPW7}xg zztztMOLvEEyW64vM7M#!+c~x;bizEXQ|NO##Xqd;&*f+vbM!ZIY_H;eX>CnEeRIE< zNTTg7woSUnwhI;fkzM~mu5BaTg!hcDzm{wJSl54=>v$nYe>~UrPLBReuI>JQ`pdbt z`*I2MP%fxFnoChsBXiv!@6snbChBckkgT-Di1uSveA4nkG4+;;7ll+gk3}#L{g&BY zw7o8?l2Q8ggMW|^=h#PW`b#<5y>|V_IoeL=$2R;xQfDzpeDQoy17Fm@7d7xj4SZ1p zU(~=CHSk3Zd{F~m)WH8%4eSa_e!6a!a25YHbJ_DWCKQHeFaNGT2UA4D<9bHM3z_ii zQ{Zpncbzd#xV4-j8XJW2`4dB>9pq(%c1b2$I5c- z`i;c6URNRi893?t)_nD(z;9FhcFJ@Gi#YwlL^`i?yduWen!>X!ouYmM);Q={`}nj zZhlRY-o~)68I^BQ64W;ep>tJ>B&IK;#cVv44CgXzV%WuSIm3GxZe+NH;R_6RGkllf z#|(4esG{e1hG#M?V_3;>F2g2iCWc)MmovPF;YNmA7{0)8H^X-se#|hZj`L@DCc`p@l?>-HY+~5Oa5=+!7;a>^ zh2aYfcQbsK;l~VfW^?`w&tzD}u#(|ihD{8+7%pdc55tWNw=jHx;ckZSGW?if&K%C4 z;h7A}7*;Zz%dm-I7sKTY?_s!+;TDE3Fx<`XU4|bs%$dviGdz=F8N*73a~U=<>|(f_ z;XMpDGTg%O1%|sBzRU1qhB=pU{tVA#SjMoD;arAI47(UEXLt|8jSROie1W0N1^buB zCHD7eQ>UKq8eI`+2>RMw?xMot!lH9a&*nFkCHSQ$hb2K$RCF1*ON{=Vvb2X*^6Y>2uHLfJ$v0sA6pF}(cE!JC! z_<@?s5`T=g%T)iA&Y|UNdoA&UV&i%u{Q}xIVMK{{hc;My)xy4UXhXF9bossMacIY4 z7*1{g2X+A|`@xvRfze#q4T<>UwRvn$B;rrdti}@utb@>bR{6quVY?ua&TwtNNlq!; zp~1Q-v7)1_nm83Iy;J)j8pp^tvM21Q|5e|VzwhS=os2J9D-m?xC_PW&KgCz=b%Vg- zUSU8RcFfna9k1*%9qA~3{X7}*>m2`b#_wnRXN-S<@$X(P5f5>`XP}rwr|72=k1bK+ z`3mE2xl;aKC4shw@x$j!#6^s+fT2Tlu3&sOg{;M zC;Fk?5>NMb(X*cMk6k5y-ys3^UUB`rClPcX4L!9mJc-T)SIgfW5@>4~|2X5>jMLs{ z{2s>h^h+y+!Af)jUP+*Y>DSe?-jz0o|LUiUa{zAsz%lLa3znJkK zGk%ayA{4#?Rw&WA$%Mzo9D%nrB*s6;`0GsgNicMY&fiV=6^w83C(`*fjj^wOMTW&9TzPv_?7`G1W6S-bqL@^ucC@!w{= zD(_6-t@PL&j^D%cc%{eCeFgun7MY>KZ|C@tkj(dV3AE#mlkwLueiY-cX8cyh7cl-| z#_wdjhw*=B{E%xULdCz}cuD^>6Mh-viy5!#fsXA_{ns#_hZ9Z7iEFJa7wspfM~x#J zIsS_ht+`H+blO+}4`X}-5KzGt9H2%c;ep`=7 zuVcK~-xdVk20NjsOb#q8K3b>1C)+dYn2z$}soWnG@ssT$Iu32cKiy40_CPM%X)52p z2z=aLf_fLv$P;CG|8TSXeG21CfhRisO?0L+et-#onZS?G+@|t2ar}WCpPOB~jqwF0 zI&@5)@*Ql#KgIYVCj55B4>i$$oAJX;cn1WP=#Mnv&tSaEgs)`$C=-4m<42qDw=jOJ z3BQT)MJD{u7++$-zsLA;6Fvu~C-Fbggs1B!2tUb$pTqbH6aLGLuQK5uW_*na|1#ri zP56H>ezple45l#gGtY#d%=q~xd<*02P55sxzR`r=#`tCv{vF1*nDF^0Nq#~m{P~QJ znD7mZ?>6CYV*C;l{t3qSnDD=0{4x{%GsfR!!k>P!&vRLyRI@(0o$+dY0>h1XQt9D` z1pOh}Sc`e0mEL<2@o{@!(meDK_^@j*`f6o<>hE?zKY5<`vY<0GX}?Ygqbnh3%uenvGKUV_nlN9lXz~G_!bbTNr(jATTEC8P9wBIX#!z>Zc z&qaLxVE`3p$oSeOiKKHq^lW5&=t24WfCSo@Gp+f*1bE8#!@FffNS=5$iujnHhGfO` zXZ(A>59W6x7=D(dGwODU{RRi#0=!kd{VWCkUjh$50Jh}QGmYuYgxnIJMH3|cmyCY` z_#v2lnB{p3;W>^Ge86-kPZ#0h5qA{=-UqxDo!_Ov4;(}B!4J<< zz9gvO9stG{t(S;O#yu~~x9y)7D&&^}4%k`}k_`NCcpQXUpq9ahb4zfIeZSlMbyj6XkUT7^>RlpOS z2={AV@>Bfh)?yevBJ2Bq@eguujPMJ8zMZZ{##PfG7F| zZ%ITG<6T9P&W9@`0%nGI+`ylz9j~c%Q<$~lxfXbpRyeshX-S~H43CBN1#-GlCvw)|3 zpIs>tS2O+*j^Fc!M9gHot(4lgKvVk?5KTN2fFHu|MsNr4L|?66=5XL{#_zpHBIui9 z^jugb<6psYsO0J{#;g4bHjY0O6GozM)+bj1Z^h5`Dex}|e7?5%e#yrY3A7W+Wxdrd zmWW?6-Us|?{B8ta27a&+!S9cW`1x8Px1%c8K0!Y@LGc7@{woDOU)#m|5ia6-_&V^^ z?}qU@?K~#ACk35@De#W-t@Awrc%rZNkql${w*pV~Kld()Q04kL<0oAx8Kk?N==tdd zvOZlmO8g;-*6uq+;&+E7g1#k7PyR$}e&(jYUoY@z$FE5GbiW5ZKLDQi`~≤Y>XA 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 EZOgic-2eap diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index c4c945f..8ec2a12 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -1,8 +1,9 @@ -#include +#include +#include #include #include #include -#include +#include #include class imperium { @@ -117,7 +118,7 @@ void imperium::init(){ std::cout<<"Repository has already been initialized" << std::endl; return ; } - + createDirectory(root+"/.imperium"); std::fstream fileWriter; @@ -128,7 +129,7 @@ void imperium::init(){ fileWriter.open ((root+"/.imperium/conflict").c_str(), std::fstream::out | std::fstream::app); fileWriter << "false\n"; fileWriter.close(); - + fileWriter.open ((root+"/.imperium/commit.log").c_str(), std::fstream::out | std::fstream::app); fileWriter << ""; fileWriter.close(); @@ -136,7 +137,7 @@ void imperium::init(){ fileWriter.open ((root+"/.imperium/add.log").c_str(), std::fstream::out | std::fstream::app); fileWriter << ""; fileWriter.close(); - + std::cout << "Initialized empty imperium repository at " << root << std::endl; return ; } @@ -223,4 +224,4 @@ void imperium::revert(){ void imperium::getStatus(){ // to do return ; -} \ No newline at end of file +} \ No newline at end of file From 74d9706ea093186505869366c9b2ff050e5a633d Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Mon, 5 Oct 2020 00:08:21 +0530 Subject: [PATCH 08/15] fix issues final --- soham0-0/src/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 8ec2a12..ceed980 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -1,5 +1,4 @@ #include -#include #include #include #include From 2cc30c2bff96afd05c6f899a8faa6bee2cc2d665 Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Mon, 5 Oct 2020 01:43:40 +0530 Subject: [PATCH 09/15] added structure and fix --- soham0-0/src/main.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index ceed980..cb5e275 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -147,7 +147,7 @@ bool imperium::isIgnored(std::string path){ std::string ignoredPath; path = relativePath(path); while (std::getline (fileReader, ignoredPath)) { - if(ignoredPath == "/" + path.substr(0, ignoredPath.size() -1)) return true; + if(ignoredPath == "/" + path.substr(0, ignoredPath.size()-1)) return true; } return false; } @@ -169,7 +169,13 @@ void imperium::addToCache(std::string path){ if(doesExist(root+"/.imperium/.add")!= "directory"){ createDirectory(root+"/.imperium/.add"); } - std::filesystem::copy(path, root + "/.imperium/.add/" + relativePath(path), std::filesystem::copy_options::update_existing | std::filesystem::copy_options::recursive); + if(doesExist(path) == "directory"){ + if(doesExist(root + "/.imperium/.add/" + relativePath(path))!="directory"){ + createDirectory(root + "/.imperium/.add/" + relativePath(path)); + } + }else{ + std::filesystem::copy(path, root + "/.imperium/.add/" + relativePath(path), std::filesystem::copy_options::update_existing); + } return ; } @@ -190,7 +196,7 @@ void imperium::add(std::string path){ if(type == "directory"){ addToLog(root + "/"+ path); addToCache(root + "/" + path); - for(auto &subDir : std::filesystem::recursive_directory_iterator(root + path)){ + for(auto &subDir : std::filesystem::recursive_directory_iterator(root +"/"+ path)){ if(!isIgnored(subDir.path())){ addToLog(subDir.path()); addToCache(subDir.path()); From d4db10faa18427cf85a3f629a0bbc9fcff8bf8ee Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Mon, 5 Oct 2020 08:50:17 +0530 Subject: [PATCH 10/15] change create dir function --- soham0-0/src/main.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index cb5e275..1f249b8 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -8,7 +8,6 @@ class imperium { std::string root; std::string doesExist(std::string); - void createDirectory(std::string); std::string relativePath(std::string); bool isIgnored(std::string); void addToLog(std::string); @@ -85,13 +84,6 @@ std::string imperium::relativePath(std::string path){ return path; } -void imperium::createDirectory(std::string path){ - if((mkdir(path.c_str(), 0777))==-1){ - std::cerr << "Error: " << strerror(errno) << std::endl; - } - return ; -} - std::string imperium::doesExist(std::string path){ struct stat sb; if(!stat(path.c_str(), &sb)){ @@ -118,7 +110,7 @@ void imperium::init(){ return ; } - createDirectory(root+"/.imperium"); + std::filesystem::create_directories(root+"/.imperium"); std::fstream fileWriter; fileWriter.open ((root+"/.imperiumIgnore").c_str(), std::fstream::out | std::fstream::app); @@ -167,14 +159,16 @@ void imperium::addToLog(std::string path){ void imperium::addToCache(std::string path){ if(doesExist(root+"/.imperium/.add")!= "directory"){ - createDirectory(root+"/.imperium/.add"); + std::filesystem::create_directories(root+"/.imperium/.add"); } if(doesExist(path) == "directory"){ if(doesExist(root + "/.imperium/.add/" + relativePath(path))!="directory"){ - createDirectory(root + "/.imperium/.add/" + relativePath(path)); + std::filesystem::create_directories(root + "/.imperium/.add/" + relativePath(path)); } }else{ - std::filesystem::copy(path, root + "/.imperium/.add/" + relativePath(path), std::filesystem::copy_options::update_existing); + std::filesystem::path p1 = root + "/.imperium/.add/" + relativePath(path); + std::filesystem::create_directories(p1.parent_path()); + std::filesystem::copy(path, p1, std::filesystem::copy_options::update_existing); } return ; } From 2304b74e63d06d31c9149e61aef7ee5be702a5a9 Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Tue, 6 Oct 2020 03:03:46 +0530 Subject: [PATCH 11/15] added commit() --- soham0-0/src/main.cpp | 73 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 3 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 1f249b8..55e9dc9 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -4,14 +4,21 @@ #include #include #include +#include +#include class imperium { std::string root; std::string doesExist(std::string); + bool isRepo(); + std::string getTime(); std::string relativePath(std::string); bool isIgnored(std::string); void addToLog(std::string); void addToCache(std::string); + std::string getHash(std::string); + void purgeAdd(); + void updateCommitLog(std::string, std::string); public: /* Constructor @@ -35,7 +42,7 @@ class imperium { void add(std::string); // Commits the tracked changes - void commit(); + void commit(std::string); // Changes current branch void checkout(); @@ -64,6 +71,13 @@ int main(int argc, char **argv){ repository.add(argv[currentArgumentNumber]); } } + else if(!strcmp(argv[1], "commit")){ + if(argc<3 || argv[2] == ""){ + std::cout << "Please add your commit message" << std::endl; + return -1; + } + repository.commit(argv[2]); + } return 0; } @@ -97,6 +111,15 @@ std::string imperium::doesExist(std::string path){ return "\0"; } +bool imperium::isRepo(){ + if(doesExist(root + "/.imperium")!="directory") return false; + if(doesExist(root + "/.imperium/conflict")!="file") return false; + if(doesExist(root + "/.imperium/commit.log")!="file") return false; + if(doesExist(root + "/.imperium/add.log")!="file") return false; + if(doesExist(root + "/.imperiumIgnore")!="file") return false; + return true; +} + void imperium::setRoot(std::string path){ root += "/" + path; if((mkdir((root).c_str(), 0777))==-1){ @@ -205,8 +228,52 @@ void imperium::add(std::string path){ return ; } -void imperium::commit(){ - // to do +void imperium::purgeAdd(){ + std::filesystem::remove_all(root + "/.imperium/.add"); + std::fstream fileWriter; + fileWriter.open ((root+"/.imperium/add.log").c_str(), std::fstream::out | std::fstream::trunc); + fileWriter.close(); +} + +std::string imperium::getTime(){ + time_t now = time(0); + tm *gmtm = gmtime(&now); + return asctime(gmtm); + } + +std::string imperium::getHash(std::string input){ + unsigned char str[500]; + strcpy( (char *)( str ), input.c_str() ); + unsigned char hash[20]; + SHA1(str, strlen((char *)str), hash); + char ans[41]; ans[40]='\0'; + for(int i=0; i<20; i++){ + sprintf(&ans[2*i], "%02x ", hash[i]); + } + return ans; +} + +void imperium::updateCommitLog(std::string message, std::string commitHash){ + std::fstream fileWriter; + fileWriter.open ((root+"/.imperium/commit.log").c_str(), std::fstream::in | std::fstream::app); + fileWriter << "commit " + commitHash + " " + message + "\n"; + fileWriter.close(); +} + +void imperium::commit(std::string message){ + if(!isRepo()){ + std::cout << "Fatal Error: Not An Imperium Repository" << std::endl; + exit(0); + } + if(doesExist(root + "/.imperium/.add") != "directory"){ + std::cout << "Nothing to commit. No staged files/folders." << std::endl; + return ; + } + std::string commitHash = getHash(message); + std::filesystem::create_directories(root + "/.imperium/.commit/" + commitHash); + std::filesystem::copy(root + "/.imperium/.add", root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive); + updateCommitLog(message, commitHash); + purgeAdd(); return ; } From 822790961392ddc792a2f17c8f8bea3b910e30d1 Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Tue, 6 Oct 2020 10:40:56 +0530 Subject: [PATCH 12/15] added help section --- soham0-0/src/main.cpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 55e9dc9..3e52593 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -26,6 +26,8 @@ class imperium { */ imperium(); + void getHelp(std::string); + /* Sets the root for repo directory if provided. @param path: path of the repo directory relative to present working directory. @@ -61,7 +63,11 @@ int main(int argc, char **argv){ } imperium repository; - if(!strcmp(argv[1], "init")){ + if(!strcmp(argv[1], "--help")){ + if(argc >= 3) repository.getHelp(argv[2]); + else repository.getHelp(""); + } + else if(!strcmp(argv[1], "init")){ if(argc==3) repository.setRoot(argv[2]); repository.init(); } @@ -78,6 +84,10 @@ int main(int argc, char **argv){ } repository.commit(argv[2]); } + else { + std::cout << "Fatal Error: Command not recognized." << std::endl; + repository.getHelp(""); + } return 0; } @@ -90,6 +100,24 @@ imperium::imperium(){ } } +void imperium::getHelp(std::string helpQuery){ + bool allHelp = false; + if(helpQuery == ""){ + allHelp = true; + std::cout << "Usage: imperium [--help ] [init] [add ] [commit \"\"]" << std::endl; + } + if(allHelp || helpQuery == "init"){ + std::cout << "Start a working area: \n\tinit\tInitialize an Empty repositorty in current or specified folder.\n\tUsage:\timperium init " << std::endl; + } + if(allHelp || helpQuery == "add"){ + std::cout << "Work on current change:\n\tadd\tAdd current state to index.\n\tUsage:\timperium add [.] [list of arguments]" << std::endl; + } + if(allHelp || helpQuery == "commit"){ + std::cout << "Grow, mark and tweak your common history\n\tcommit\tRecord changes to the repository.\n\tUsage:\timperium commit " < Date: Tue, 6 Oct 2020 23:27:53 +0530 Subject: [PATCH 13/15] commit bug fixed --- soham0-0/src/main.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 3e52593..491f7d1 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -302,8 +302,18 @@ void imperium::commit(std::string message){ std::cout << "Nothing to commit. No staged files/folders." << std::endl; return ; } - std::string commitHash = getHash(message); + std::string commitHash = getHash(message), temp, previousCommit = ""; + std::fstream fileReader; + fileReader.open((root+"/.imperium/commit.log" ).c_str(),std::fstream::in); + while (std::getline(fileReader, temp)){ + previousCommit = temp; + } + fileReader.close(); std::filesystem::create_directories(root + "/.imperium/.commit/" + commitHash); + if(previousCommit != ""){ + previousCommit = previousCommit.substr(7, 40); + std::filesystem::copy(root + "/.imperium/.commit/" + previousCommit, root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive); + } std::filesystem::copy(root + "/.imperium/.add", root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive); updateCommitLog(message, commitHash); purgeAdd(); From abfb27512b3561fa2be835e2133b7e8d2ea8932d Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Thu, 8 Oct 2020 00:17:45 +0530 Subject: [PATCH 14/15] Added log and checkout --- soham0-0/src/main.cpp | 105 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 97 insertions(+), 8 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 491f7d1..19631fa 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -46,8 +46,11 @@ class imperium { // Commits the tracked changes void commit(std::string); + // Get Log of all commits + void getCommitLog(std::string); + // Changes current branch - void checkout(); + void checkout(std::string); // Reverts back to last commit void revert(); @@ -84,6 +87,22 @@ int main(int argc, char **argv){ } repository.commit(argv[2]); } + else if(!strcmp(argv[1], "log")){ + if(argc==3 && !strcmp(argv[2], "--oneline")) repository.getCommitLog(argv[2]); + else if(argc == 2) repository.getCommitLog(""); + else { + std::cout << "Flag not recognized!" << std::endl; + repository.getHelp("log"); + } + } + else if(!strcmp(argv[1], "checkout")){ + if(argc<3 || (strlen(argv[2])!=6 && strlen(argv[2])!=40)){ + std::cout << "Please enter the commit hash in correct format." << std::endl; + repository.getHelp("checkout"); + return -1; + } + repository.checkout(argv[2]); + } else { std::cout << "Fatal Error: Command not recognized." << std::endl; repository.getHelp(""); @@ -142,7 +161,7 @@ std::string imperium::doesExist(std::string path){ bool imperium::isRepo(){ if(doesExist(root + "/.imperium")!="directory") return false; if(doesExist(root + "/.imperium/conflict")!="file") return false; - if(doesExist(root + "/.imperium/commit.log")!="file") return false; + if(doesExist(root + "/.imperium/commit.log")!="file") return false; if(doesExist(root + "/.imperium/add.log")!="file") return false; if(doesExist(root + "/.imperiumIgnore")!="file") return false; return true; @@ -287,9 +306,19 @@ std::string imperium::getHash(std::string input){ } void imperium::updateCommitLog(std::string message, std::string commitHash){ + std::fstream fileReader; + fileReader.open((root+"/.imperium/commit.log" ).c_str(), std::fstream::in); std::fstream fileWriter; - fileWriter.open ((root+"/.imperium/commit.log").c_str(), std::fstream::in | std::fstream::app); - fileWriter << "commit " + commitHash + " " + message + "\n"; + fileWriter.open ((root+"/.imperium/temp.log").c_str(), std::fstream::in | std::fstream::app); + std::string commitEntry; + fileWriter << "commit " + commitHash + " HEAD " + message + "\n"; + while (std::getline (fileReader, commitEntry)) { + fileWriter << commitEntry.substr(0, 48) + " " + commitEntry.substr(53) + "\n"; + } + if(rename((root+"/.imperium/temp.log").c_str(), (root+"/.imperium/commit.log" ).c_str()) != 0){ + std::cerr << "Commit Failed! Error: " << strerror(errno) << std::endl; + exit(0); + } fileWriter.close(); } @@ -312,16 +341,76 @@ void imperium::commit(std::string message){ std::filesystem::create_directories(root + "/.imperium/.commit/" + commitHash); if(previousCommit != ""){ previousCommit = previousCommit.substr(7, 40); - std::filesystem::copy(root + "/.imperium/.commit/" + previousCommit, root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive); + std::filesystem::copy(root + "/.imperium/.commit/" + previousCommit, root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive | std::filesystem::copy_options::overwrite_existing); } - std::filesystem::copy(root + "/.imperium/.add", root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive); + std::filesystem::copy(root + "/.imperium/.add", root + "/.imperium/.commit/" + commitHash, std::filesystem::copy_options::recursive | std::filesystem::copy_options::overwrite_existing); updateCommitLog(message, commitHash); purgeAdd(); return ; } -void imperium::checkout(){ - // to do +void imperium::getCommitLog(std::string flag){ + if(!isRepo()){ + std::cout << "Fatal Error: Not An Imperium Repository" << std::endl; + exit(0); + } + std::fstream fileReader; + fileReader.open((root+"/.imperium/commit.log" ).c_str(), std::fstream::in); + std::string commitEntry; + while (std::getline (fileReader, commitEntry)) { + if(flag == "--oneline"){ + commitEntry = commitEntry.substr(7, 6) + " " + commitEntry.substr(48, 4) + " " + commitEntry.substr(53); + } + std::cout << commitEntry << std::endl; + } + fileReader.close(); + return ; +} + +void imperium::checkout(std::string hash){ + if(!isRepo()){ + std::cout << "Fatal Error: Not An Imperium Repository" << std::endl; + exit(0);std::fstream fileReader; + } + + std::fstream fileReader; + fileReader.open((root+"/.imperium/commit.log" ).c_str(), std::fstream::in); + std::string commitEntry, hashFolder = ""; + while (std::getline (fileReader, commitEntry)) { + if(hash.size()==6 && hash == commitEntry.substr(7, 6)){ + hashFolder = commitEntry.substr(7, 40); + break; + } + else if(hash == commitEntry.substr(7, 40)){ + hashFolder = commitEntry.substr(7, 40); + break; + } + } + fileReader.close(); + + if(hashFolder == ""){ + std::cout << "Commit hash mismatch. Please Enter a correct commit Hash." << std::endl; + exit(0); + } + std::filesystem::copy((root + "/.imperium/.commit/" + hashFolder).c_str(), root.c_str(),std::filesystem::copy_options::recursive | std::filesystem::copy_options::overwrite_existing); + purgeAdd(); + + fileReader.open((root+"/.imperium/commit.log" ).c_str(), std::fstream::in); + std::fstream fileWriter; + fileWriter.open ((root+"/.imperium/temp.log").c_str(), std::fstream::in | std::fstream::app); + while (std::getline (fileReader, commitEntry)) { + if(hashFolder == commitEntry.substr(7, 40)){ + fileWriter << commitEntry.substr(0, 47) + " HEAD " + commitEntry.substr(53) + "\n"; + } + else fileWriter << commitEntry.substr(0, 48) + " " + commitEntry.substr(53) + "\n"; + } + fileWriter.close(); + fileReader.close(); + if(rename((root+"/.imperium/temp.log").c_str(), (root+"/.imperium/commit.log" ).c_str()) != 0){ + std::cerr << "Checkout Failed! Error: " << strerror(errno) << std::endl; + exit(0); + } + std::cout << "HEAD set to " << hashFolder << " stage cleared." << std::endl; return ; } From 17dad76449c2be5620cb8c63532ad3832ac4a7d5 Mon Sep 17 00:00:00 2001 From: Soham Pal Date: Thu, 8 Oct 2020 03:55:35 +0530 Subject: [PATCH 15/15] Added status --- soham0-0/src/main.cpp | 109 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 99 insertions(+), 10 deletions(-) diff --git a/soham0-0/src/main.cpp b/soham0-0/src/main.cpp index 19631fa..576b6ce 100644 --- a/soham0-0/src/main.cpp +++ b/soham0-0/src/main.cpp @@ -6,6 +6,8 @@ #include #include #include +#include +#include class imperium { std::string root; @@ -19,6 +21,7 @@ class imperium { std::string getHash(std::string); void purgeAdd(); void updateCommitLog(std::string, std::string); + bool isSame(std::string, std::string); public: /* Constructor @@ -103,6 +106,9 @@ int main(int argc, char **argv){ } repository.checkout(argv[2]); } + else if(!strcmp(argv[1], "status")){ + repository.getStatus(); + } else { std::cout << "Fatal Error: Command not recognized." << std::endl; repository.getHelp(""); @@ -219,11 +225,11 @@ void imperium::addToLog(std::string path){ fileReaderWriter.open((root+"/.imperium/add.log" ).c_str(),std::fstream::in); std::string loggedPath; while (std::getline (fileReaderWriter, loggedPath)) { - if(loggedPath == "/" + path) return ; + if(loggedPath == path) return ; } fileReaderWriter.close(); fileReaderWriter.open((root+"/.imperium/add.log" ).c_str(),std::fstream::app); - fileReaderWriter << "/" + path << std::endl; + fileReaderWriter << path << std::endl; fileReaderWriter.close(); } @@ -250,10 +256,10 @@ void imperium::add(std::string path){ exit(0); } if(path!=".") { - purgeAdd(); type = doesExist(root + "/" + path); } else { + purgeAdd(); path = ""; type = "directory"; } @@ -263,10 +269,8 @@ void imperium::add(std::string path){ } if(isIgnored(path)) return ; if(type == "directory"){ - addToLog(root + "/"+ path); - addToCache(root + "/" + path); for(auto &subDir : std::filesystem::recursive_directory_iterator(root +"/"+ path)){ - if(!isIgnored(subDir.path())){ + if(!isIgnored(subDir.path()) && subDir.path()!=root){ addToLog(subDir.path()); addToCache(subDir.path()); } @@ -334,9 +338,7 @@ void imperium::commit(std::string message){ std::string commitHash = getHash(message), temp, previousCommit = ""; std::fstream fileReader; fileReader.open((root+"/.imperium/commit.log" ).c_str(),std::fstream::in); - while (std::getline(fileReader, temp)){ - previousCommit = temp; - } + std::getline(fileReader, previousCommit); fileReader.close(); std::filesystem::create_directories(root + "/.imperium/.commit/" + commitHash); if(previousCommit != ""){ @@ -419,7 +421,94 @@ void imperium::revert(){ return ; } +bool imperium::isSame(std::string p1, std::string p2) { + + if(doesExist(p1)=="directory" && doesExist(p2)=="directory"){ + return true; + } + + std::ifstream f1(p1, std::ifstream::in|std::ifstream::ate); + std::ifstream f2(p2, std::ifstream::in|std::ifstream::ate); + + if (f1.fail() || f2.fail()) { + return false; + } + + if (f1.tellg() != f2.tellg()) { + return false; + } + + f1.seekg(0, std::ifstream::beg); + f2.seekg(0, std::ifstream::beg); + return std::equal( std::istreambuf_iterator(f1.rdbuf()), + std::istreambuf_iterator(), + std::istreambuf_iterator(f2.rdbuf())); +} + void imperium::getStatus(){ - // to do + if(!isRepo()){ + std::cout << "Fatal Error: Not An Imperium Repository" << std::endl; + exit(0); + } + std::vector staged, notStaged; + std::fstream fileReader; + fileReader.open((root+"/.imperium/commit.log" ).c_str(), std::fstream::in); + std::string commitEntry, headHash = "%%%"; + while (std::getline (fileReader, commitEntry)) { + if(commitEntry.substr(48, 4)=="HEAD"){ + headHash = commitEntry.substr(7, 40); + break; + } + } + fileReader.close(); + + fileReader.open((root + "/.imperium/add.log").c_str(), std::fstream::in); + std::string addEntry; + while(std::getline(fileReader, addEntry)){ + addEntry = relativePath(addEntry); + if(doesExist(root + "/.imperium/.commit/" + headHash + "/" + addEntry)=="\0"){ + staged.push_back("created: " + addEntry); + } + else if(!isSame(root + "/.imperium/.add/" + addEntry, root + "/.imperium/.commit/" + headHash + "/" + addEntry)){ + staged.push_back("modified: " + addEntry); + } + + if(!isSame(root + "/.imperium/.add/" + addEntry, root + "/" + addEntry)){ + notStaged.push_back("modified: " + addEntry); + } + } + fileReader.close(); + + if(doesExist(root + "/.imperium/.commit/" + headHash)=="directory"){ + for(auto &subDir : std::filesystem::recursive_directory_iterator(root)){ + if(!isIgnored(subDir.path())){ + if(doesExist(root + "/.imperium/.commit/" + headHash + "/" + relativePath(subDir.path())) != "\0" && doesExist(root + "/.imperium/.add/" + addEntry) == "\0"){ + if(!isSame(subDir.path(), root + "/.imperium/.commit/" + headHash + "/" + relativePath(subDir.path()))){ + notStaged.push_back("modified: " + relativePath(subDir.path())); + } + } + } + } + } + + for(auto &subDir : std::filesystem::recursive_directory_iterator(root)){ + if(!isIgnored(subDir.path())){ + if(doesExist(root + "/.imperium/.add/" + relativePath(subDir.path())) == "\0" && doesExist(root + "/.imperium/.commit/" + headHash + "/" + relativePath(subDir.path())) == "\0"){ + notStaged.push_back("created: " + relativePath(subDir.path())); + } + } + } + + sort(staged.begin(), staged.end()); + sort(notStaged.begin(), notStaged.end()); + + std::cout << "Staged:\n-------" << std::endl; + for(auto s: staged){ + std::cout << s << std::endl; + } + std::cout << std::endl << "Not Staged:\n----------" << std::endl; + for(auto n: notStaged){ + std::cout << n << std::endl; + } return ; } \ No newline at end of file