diff --git a/Client/Client.vcxproj b/Client/Client.vcxproj index 50f8d7b..e35fb72 100644 --- a/Client/Client.vcxproj +++ b/Client/Client.vcxproj @@ -155,6 +155,10 @@ + + + + diff --git a/Client/Client.vcxproj.filters b/Client/Client.vcxproj.filters index 1e5676c..319aa3e 100644 --- a/Client/Client.vcxproj.filters +++ b/Client/Client.vcxproj.filters @@ -18,5 +18,13 @@ Source Files + + Source Files + + + + + Header Files + \ No newline at end of file diff --git a/Client/Debug/Client.log b/Client/Debug/Client.log index 4bcbbc6..c7166ba 100644 --- a/Client/Debug/Client.log +++ b/Client/Debug/Client.log @@ -1 +1,13 @@ - Client.vcxproj -> C:\Users\bartool\MyData\MyCode\Cpp\VisualStudio_lap\LanChat\Debug\Client.exe + client.cpp + main.cpp +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(216,26): warning C4244: 'initializing': conversion from 'std::streamoff' to 'size_t', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(221,16): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(416,18): warning C4244: 'initializing': conversion from 'std::streamoff' to 'size_t', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(462,20): warning C4018: '<': signed/unsigned mismatch +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(467,26): warning C4244: '+=': conversion from 'std::streamsize' to 'int', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(468,27): warning C4244: 'argument': conversion from 'std::streamsize' to 'const unsigned int', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(481,11): warning C4244: 'initializing': conversion from 'float' to 'int', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\main.cpp(17,12): warning C4244: 'argument': conversion from 'time_t' to 'unsigned int', possible loss of data +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(76): warning C4715: 'Client::Initialize': not all control paths return a value +C:\MyCode\Cpp\VisualStudio_lap\LanChat\Client\client.cpp(322): warning C4715: 'Client::CheckConnection': not all control paths return a value + Client.vcxproj -> C:\MyCode\Cpp\VisualStudio_lap\LanChat\Debug\Client.exe diff --git a/Client/Debug/Client.tlog/CL.command.1.tlog b/Client/Debug/Client.tlog/CL.command.1.tlog index 4748699..d53ccf0 100644 Binary files a/Client/Debug/Client.tlog/CL.command.1.tlog and b/Client/Debug/Client.tlog/CL.command.1.tlog differ diff --git a/Client/Debug/Client.tlog/CL.read.1.tlog b/Client/Debug/Client.tlog/CL.read.1.tlog index c6b1fcf..8455359 100644 Binary files a/Client/Debug/Client.tlog/CL.read.1.tlog and b/Client/Debug/Client.tlog/CL.read.1.tlog differ diff --git a/Client/Debug/Client.tlog/CL.write.1.tlog b/Client/Debug/Client.tlog/CL.write.1.tlog deleted file mode 100644 index 24e34bd..0000000 Binary files a/Client/Debug/Client.tlog/CL.write.1.tlog and /dev/null differ diff --git a/Client/Debug/Client.tlog/Client.lastbuildstate b/Client/Debug/Client.tlog/Client.lastbuildstate index cde0163..f644bc1 100644 --- a/Client/Debug/Client.tlog/Client.lastbuildstate +++ b/Client/Debug/Client.tlog/Client.lastbuildstate @@ -1,2 +1,2 @@ #TargetFrameworkVersion=v4.0:PlatformToolSet=v142:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0 -Debug|Win32|C:\Users\bartool\MyData\MyCode\Cpp\VisualStudio_lap\LanChat\| +Debug|Win32|C:\MyCode\Cpp\VisualStudio_lap\LanChat\| diff --git a/Client/Debug/Client.tlog/link.command.1.tlog b/Client/Debug/Client.tlog/link.command.1.tlog index f046d33..d9d4bef 100644 Binary files a/Client/Debug/Client.tlog/link.command.1.tlog and b/Client/Debug/Client.tlog/link.command.1.tlog differ diff --git a/Client/Debug/Client.tlog/link.read.1.tlog b/Client/Debug/Client.tlog/link.read.1.tlog index bdf266c..2e7c679 100644 Binary files a/Client/Debug/Client.tlog/link.read.1.tlog and b/Client/Debug/Client.tlog/link.read.1.tlog differ diff --git a/Client/Debug/Client.tlog/link.write.1.tlog b/Client/Debug/Client.tlog/link.write.1.tlog index 323d114..5bd5c2a 100644 Binary files a/Client/Debug/Client.tlog/link.write.1.tlog and b/Client/Debug/Client.tlog/link.write.1.tlog differ diff --git a/Client/Debug/vc142.idb b/Client/Debug/vc142.idb index 08bee09..65b0182 100644 Binary files a/Client/Debug/vc142.idb and b/Client/Debug/vc142.idb differ diff --git a/Client/Debug/vc142.pdb b/Client/Debug/vc142.pdb index b7b1281..3210c6e 100644 Binary files a/Client/Debug/vc142.pdb and b/Client/Debug/vc142.pdb differ diff --git a/Client/client.cpp b/Client/client.cpp index bb67e2c..9aa9c10 100644 --- a/Client/client.cpp +++ b/Client/client.cpp @@ -1,45 +1,540 @@ -//Client -#include -//#include +//client #include +#include +#include +#include +#include +#include +#include +#include "client.h" -using namespace SocketLibrary; - -int main() +Result Client::Initialize(Endpoint ip) { - if (Network::Initialize() == true) + connections.clear(); + FD_ZERO(&master_fd); + + if (Network::Initialize()) { - Log::Print("[CLIENT] Winsok zostal zainicjolizowany. Mozemy dzialac."); - Socket socket; - if (socket.Create() == Result::Success) + // Winsock dziala + std::cout << "[CLIENT] Winsock zostal poprawnie zainicjalizowany." << std::endl; + + broadcastReciverUDP = Socket(Protocol::UDP_Reciver); + if (broadcastReciverUDP.Create() == Result::Success) { - Log::Print("[CLIENT] Utworzylem socket."); - if (socket.Connect(Endpoint("127.0.0.1", 54000)) == Result::Success) + // Socket do odebrania adresu serwara zostal utworzony + std::cout << "[CLIENT] Gniazdo UDP do odnalezienia serwara zostalo utworzone." << std::endl; + + if (broadcastReciverUDP.Bind(Endpoint("0.0.0.0", 54000)) == Result::Success) { - Log::Print("[CLIENT] Polaczylem sie serverem."); - std::string outString = "Wysylam z klienta."; - char buffer[256]; - strcpy_s(buffer, "witam z klienta!\0"); - - while (true) + // Socket UDP przypiety do portu + std::cout << "[CLIENT] Gniazdo UDP zostalo przypisane do portu 54000" << std::endl; + // Dodanie socketa do listy + FD_SET(broadcastReciverUDP.GetSocket(), &master_fd); + } + else + { + + std::cerr << "[CLIENT] Nie udalo sie przypisac portu dla broadcastu UDP." << std::endl; + broadcastReciverUDP.Close(); + return Result::Fail; + } + } + else + { + std::cout << "[CLIENT] Nie moge utworzyc gniazda UDP." << std::endl; + return Result::Fail; + } + + listeningSocketTCP = Socket(Protocol::TCP); + if (listeningSocketTCP.Create() == Result::Success) + { + // Socket listening zostal utworzony + std::cout << "[CLIENT] Gniazdo TCP do nasluchu zostalo utworzone." << std::endl; + + if (listeningSocketTCP.BindAndListen(ip) == Result::Success) + { + // Socket listening od teraz nasluchuje + std::cout << "[SERVER] Gniazdo TCP do nasluchu nasluchuje." << std::endl; + // Dodanie socketa do listy + FD_SET(listeningSocketTCP.GetSocket(), &master_fd); + + } + else + { + std::cerr << "[CLIENT] Nie udalo sie wlaczyc nasluchu na gniezdie TCP." << std::endl; + listeningSocketTCP.Close(); + return Result::Fail; + } + } + else + { + std::cerr << "[CLIENT] Nie mozna utworzych gniazda TCP do nasluchu." << std::endl; + return Result::Fail; + } + return Result::Success; + } +} + +Result Client::CheckConnection() +{ + fd_set copy_fd = master_fd; + + int ConnectionCount = select(NULL, ©_fd, NULL, NULL, &waitTime); + if (ConnectionCount) + { + if (ConnectionCount == SOCKET_ERROR) + { + int error = WSAGetLastError(); + Log::PrintError("[SERVER] Problem z listening socket", error); + return Result::Fail; + } + + for (int i = 0; i < ConnectionCount; i++) + { + if (copy_fd.fd_array[i] == listeningSocketTCP.GetSocket()) + { + Socket newConnectionSocket(Protocol::TCP); + //Endpoint newConnectionEndpoint(); + if (listeningSocketTCP.Accept(newConnectionSocket) == Result::Success) { - socket.SendAll(outString.data(), outString.size()); - //socket.SendAll(buffer, 256); - std::cout << "wyslalem 256 bajtow" << std::endl; - Sleep(1000); + struct clientInfo newClient; + newClient.connection = newConnectionSocket; + newClient.lastActiveTime = time(NULL); + connections.push_back(newClient); + //connections.push_back({newConnectionSocket, NULL, NULL, time(NULL)}); + FD_SET(newConnectionSocket.GetSocket(), &master_fd); + //continue; + } + else + { + //error } } + + else if (copy_fd.fd_array[i] == broadcastReciverUDP.GetSocket()) + { + std::string msg = ""; + int bytes = 0; + broadcastReciverUDP.ReciveUDP(msg, bytes); + //std::cout << "odebrano wiadosmosc broadcast o tresci: " << msg << std::endl; - socket.Close(); + std::string name, adress; + unsigned short port; + + std::replace(msg.begin(), msg.end(), ':', ' '); + std::stringstream msgToParse(msg); + + msgToParse >> name >> adress >> port; + auto server = std::find_if(connections.begin(), connections.end(), [](clientInfo clientInfo) { return clientInfo.name == "server"; }); + if (server == connections.end()) + { + Socket serverSocket(Protocol::TCP); + Endpoint serverEnpoint(adress.c_str(), port); + if (serverSocket.Create() == Result::Success) + { + + if (serverSocket.Connect(serverEnpoint) == Result::Success) + { + struct clientInfo newServer; + newServer.connection = serverSocket; + newServer.name = "server"; + newServer.listening = serverEnpoint; + newServer.lastActiveTime = time(NULL); + connections.push_back(newServer); + FD_SET(serverSocket.GetSocket(), &master_fd); + } + } + + } + } + + else + { + Message recived; + std::string recivedMessage; + int bytesRecived; + + SOCKET lookingFor = copy_fd.fd_array[i]; + auto findedClient = std::find_if(connections.begin(), connections.end(), [lookingFor](clientInfo client) { return lookingFor == client.connection.GetSocket(); }); + + switch (findedClient->connection.ReciveAll(recivedMessage, bytesRecived)) + { + case Result::Fail: + case Result::ConnectionLost: + FD_CLR(findedClient->connection.GetSocket(), &master_fd); + findedClient->connection.Close(); + connections.erase(findedClient); + break; + + case Result::Success: + //std::cout << "[" << bytesRecived << "] "<< recivedMessage << std::endl; + + findedClient->lastActiveTime = time(NULL); + if (recived.Parse(recivedMessage, bytesRecived) != Result::Success) + { + // wiadamosc niekompletna, bledna lub cos takiego + if (writeFile_p.is_open()) + { + writeFile_p.close(); + } + return Result::Fail; + } + + switch (recived.GetType()) + { + case TypeOfMsg::Unknown: + break; + case TypeOfMsg::Text: + { + std::string name = recived.GetName(); + std::string msg = recived.GetMsg(); + if (findedClient->name != "server") + { + std::cout << "<" << name << "> " << msg << std::endl; + } + else + { + std::cout << "[" << name << "] " << msg << std::endl; + } + break; + + } + case TypeOfMsg::File: + { + + //std::ofstream writeFile(fileName, std::ios::binary | std::ios::trunc); + if (!writeFile_p) + { + std::cout << "Nie udalo sie utworzyc pliku: " << fileName << std::endl; + writeFile_p.close(); + } + else + { + size_t totalSize = recived.GetTotalLenght(); + size_t recivedBytes = recived.GetLenght(); + writeFile_p.write(recived.GetMsg().c_str(), recivedBytes); + size_t actualSize = writeFile_p.tellp(); + float percent = ((float)actualSize / totalSize); + + int barWidth = 60; + std::cout << "["; + int pos = barWidth * percent; + for (int i = 0; i < barWidth; ++i) { + if (i < pos) std::cout << "="; + else if (i == pos) std::cout << ">"; + else std::cout << " "; + } + std::cout << "] " << int(percent * 100.0) << " " <name = recived.GetName(); + break; + } + case Command::LogOut: + { + std::string nameLogOut = recived.GetName(); + std::cout << nameLogOut << " wylogowal sie." << std::endl; + auto connToDelete = std::find_if(connections.begin(), connections.end(), [nameLogOut](clientInfo client) {return nameLogOut == client.name; }); + if (connToDelete != connections.end()) + { + FD_CLR(connToDelete->connection.GetSocket(), &master_fd); + connToDelete->connection.Close(); + + connections.erase(connToDelete); + } + + auto availableClientToDelete = std::find_if(availableClients.begin(), availableClients.end(), [nameLogOut](clientInfo client) {return nameLogOut == client.name; }); + if (availableClientToDelete != availableClients.end()) + { + availableClients.erase(availableClientToDelete); + } + break; + } + case Command::Adress: + { + int port = atoi(recived.GetMsg().c_str()); + Endpoint clientPortListenning = Endpoint(findedClient->connection.GetEndpoint().GetIpString().c_str(), (unsigned short)port); + struct clientInfo newClient; + newClient.listening = clientPortListenning; + newClient.name = recived.GetName(); + availableClients.push_back(newClient); + std::cout << newClient.name << " zalogowal sie." << std::endl; + } + break; + case Command::ConnCheck: + { + Message msgConnCheck; + std::string msg = msgConnCheck.PrepareCommand("", ownLogin, Command::ConnCheck); + if (findedClient->connection.SendAll(msg.c_str(), msg.size()) != Result::Success) + { + //cos poszlo nie tak + } + break; + + } + case Command::FileName: + { + fileName = recived.GetFileName(); + fileName.insert(fileName.find('.'), "_reciv"); + + std::cout << "Uzytkownik " << recived.GetName() << " wysyla Ci plik " << fileName << std::endl; + + writeFile_p = std::ofstream(); + writeFile_p.open(fileName, std::ios::binary | std::ios::trunc); + } + default: + break; + } + + break; + default: + break; + } + default: + break; + } + + + } + + + } } - - Network::Shutdown(); - system("pause"); - return 0; } +bool Client::isConnectedToSever() +{ + if (connections.size() > 0) + { + return true; + } + return false; +} + +Result Client::LoginToServer() +{ + auto server = std::find_if(connections.begin(), connections.end(), [](clientInfo conn) { return conn.name == "server"; }); + if (server != connections.end()) + { + Message addres; + std::string port = std::to_string(listeningSocketTCP.GetEndpoint().GetPort()); + std::string msgAddres = addres.PrepareCommand(port, ownLogin, Command::Adress); + if (server->connection.SendAll(msgAddres.c_str(), msgAddres.size()) != Result::Success) + { + // cos poszlo nie tak + return Result::Fail; + } + + Message login; + std::string msgLogin = login.PrepareCommand("", ownLogin, Command::LogIn); + if (server->connection.SendAll(msgLogin.c_str(), msgLogin.size()) != Result::Success) + { + // cos poszlo nie tak + return Result::Fail; + } + + } + return Result::Success; +} + +Result Client::SendMsg(std::string name, std::string msg) +{ + Message msgToUser; + std::string msgToSend = msgToUser.PrepareText(msg, ownLogin); + + auto user = std::find_if(connections.begin(), connections.end(), [name](clientInfo client) {return client.name == name; }); + if (user != connections.end()) + { + + user->connection.SendAll(msgToSend.c_str(), msgToSend.size()); + } + else + { + auto userNotConn = std::find_if(availableClients.begin(), availableClients.end(), [name](clientInfo client) {return client.name == name; }); + if (userNotConn != availableClients.end()) + { + Socket newClientSocket(Protocol::TCP); + if (newClientSocket.Create() == Result::Success) + { + if (newClientSocket.Connect(userNotConn->listening) == Result::Success) + { + userNotConn->connection = newClientSocket; + + connections.push_back(*userNotConn); + FD_SET(newClientSocket.GetSocket(), &master_fd); + + Message login; + std::string msgLogin = login.PrepareCommand("", ownLogin, Command::LogIn); + if (userNotConn->connection.SendAll(msgLogin.c_str(), msgLogin.size()) != Result::Success) + { + // cos poszlo nie tak + return Result::Fail; + } + else + { + userNotConn->connection.SendAll(msgToSend.c_str(), msgToSend.size()); + + } + } + } + } + } + return Result::Success; +} + +Result Client::SendFile(std::string name, std::string filename) +{ + auto user = std::find_if(connections.begin(), connections.end(), [name](clientInfo client) {return client.name == name; }); + + std::ifstream readFile("C:/test/"+filename, std::ios::binary | std::ios::ate); + if (!readFile) + { + std::cout << "Nie udalo sie otworzyz pliku o nazwie: " << filename << std::endl; + readFile.close(); + return Result::Fail; + } + std::cout << "Wysylam uzytkownikowi <" << name << "> plik " << filename << std::endl; + size_t fileSize = readFile.tellg(); + readFile.seekg(0); + char buffer[1025] = {}; + int bytesLeft = 0; + + + Message prepareFile; + std::string fileCmd = prepareFile.PrepareCommand(filename, ownLogin, Command::FileName); + + if (user != connections.end()) + { + user->connection.SendAll(fileCmd.c_str(), fileCmd.size()); + } + else + { + auto userNotConn = std::find_if(availableClients.begin(), availableClients.end(), [name](clientInfo client) {return client.name == name; }); + if (userNotConn != availableClients.end()) + { + Socket newClientSocket(Protocol::TCP); + if (newClientSocket.Create() == Result::Success) + { + if (newClientSocket.Connect(userNotConn->listening) == Result::Success) + { + userNotConn->connection = newClientSocket; + + connections.push_back(*userNotConn); + FD_SET(newClientSocket.GetSocket(), &master_fd); + + Message login; + std::string msgLogin = login.PrepareCommand("", ownLogin, Command::LogIn); + if (userNotConn->connection.SendAll(msgLogin.c_str(), msgLogin.size()) != Result::Success) + { + // cos poszlo nie tak + return Result::Fail; + } + else + { + userNotConn->connection.SendAll(fileCmd.c_str(), fileCmd.size()); + + } + } + } + } + } + int bytes_sent = 0; + auto userToSend = std::find_if(connections.begin(), connections.end(), [name](clientInfo client) {return client.name == name; }); + while (bytes_sent < fileSize) + { + + readFile.read(buffer, 1024); + auto readBytes = readFile.gcount(); + bytes_sent += readBytes; + std::string buf(buffer, readBytes); + Message fileToSend; + std::string msgToSend = fileToSend.PrepareFile(buf, ownLogin, fileSize); + userToSend->connection.SendAll(msgToSend.c_str(), msgToSend.size()); + //auto bytesSent = readFile.gcount(); + + //auto actualPos = readFile.tellg(); + bytesLeft = fileSize - bytes_sent; + //bytesLeft = fileSize - actualPos; + float percent = (float)bytes_sent / fileSize; + + int barWidth = 60; + std::cout << "["; + int pos = barWidth * percent; + for (int i = 0; i < barWidth; ++i) { + if (i < pos) std::cout << "="; + else if (i == pos) std::cout << ">"; + else std::cout << " "; + } + std::cout << "] " << int(percent * 100.0) << " " << std::setw(3) << "% " << bytes_sent << '\r'; + std::cout.flush(); + } + std::cout << std::endl; + readFile.close(); + + return Result::Success; +} + +Result Client::Input(std::string input) +{ + std::string name, fileName, msg; + if (input.at(0) == '@') + { + std::stringstream exp(input); + exp.seekg(1); + exp >> name; + if (name.find('#') != std::string::npos) + { + std::replace(name.begin(), name.end(), '#', ' '); + std::stringstream expcmd(name); + expcmd >> name >> fileName; + if (fileName != "") + { + //cos zrob + SendFile(name, fileName); + std::cout << fileName << " zostal wyslany." << std::endl; + return Result::Success; + } + else + { + expcmd.seekg(1, std::ios_base::cur); + std::getline(expcmd, msg); + } + } + else + { + exp.seekg(1, std::ios_base::cur); + std::getline(exp, msg); + } + } + else + { + name = "server"; + msg = input; + } + + SendMsg(name, msg); + + return Result::Success; +} //(VC++ Directories) Add Include Dir -> Solution Dir //(VC++ Directories) Add Library Dir -> Output Dir diff --git a/Client/client.h b/Client/client.h new file mode 100644 index 0000000..6bd0a78 --- /dev/null +++ b/Client/client.h @@ -0,0 +1,42 @@ +#pragma once +#include +#include +#include + +using namespace SocketLibrary; + +class Client +{ + struct clientInfo { + Socket connection; + Endpoint listening; + std::string name; + time_t lastActiveTime; + + }; + +public: + Result Initialize(Endpoint ip); + Result CheckConnection(); + bool isConnectedToSever(); + Result LoginToServer(); + Result SendMsg(std::string name, std::string msg); + Result SendFile(std::string name, std::string filename); + Result Input(std::string input); + +private: + Result SendFile(); + Socket listeningSocketTCP; + Socket broadcastReciverUDP; + std::vector connections; + std::vector availableClients; + + // std::vector connections; + fd_set master_fd; + timeval waitTime = { 0, 1000 }; + Endpoint ownEndpoint; + std::string fileName; + std::ofstream writeFile_p; +public: + std::string ownLogin; +}; diff --git a/Client/main.cpp b/Client/main.cpp new file mode 100644 index 0000000..f1067a9 --- /dev/null +++ b/Client/main.cpp @@ -0,0 +1,100 @@ +#include "client.h" +#include +#include +#include +#include +#include + +std::string GetLineFromCin() { + std::string line; + std::getline(std::cin, line); + return line; +} + + +int main() +{ + srand(time(NULL)); + unsigned short randomPort = rand() % 100 + 52000; + Client client; + + auto future = std::async(std::launch::async, GetLineFromCin); + + time_t last_time = time(NULL); + + if (client.Initialize(Endpoint("127.0.0.1", randomPort)) == Result::Success) + { + while (true) + { + client.CheckConnection(); + if (client.isConnectedToSever()) + { + if (client.ownLogin == "") + { + std::cout << "Podaj Login: "; + //std::getline(std::cin, client.ownLogin); + client.ownLogin = future.get(); + client.LoginToServer(); + future = std::async(std::launch::async, GetLineFromCin); + } + + + if (future.wait_for(std::chrono::seconds(0)) == std::future_status::ready) + { + auto line = future.get(); + client.Input(line); + future = std::async(std::launch::async, GetLineFromCin); + } + } + } + + } + + return 0; +} + +//using namespace SocketLibrary; +// +//int main() +//{ +// if (Network::Initialize() == true) +// { +// Log::Print("[CLIENT] Winsok zostal zainicjolizowany. Mozemy dzialac."); +// Socket socket; +// if (socket.Create() == Result::Success) +// { +// Log::Print("[CLIENT] Utworzylem socket."); +// if (socket.Connect(Endpoint("127.0.0.1", 53000)) == Result::Success) +// { +// Log::Print("[CLIENT] Polaczylem sie serverem."); +// std::string outString = "Wysylam z klienta."; +// char buffer[256]; +// strcpy_s(buffer, "witam z klienta!\0"); +// char c = NULL; +// while (true) +// { +// socket.SendAll(outString.data(), outString.size()); +// //socket.SendAll(buffer, 256); +// std::cout << "wyslalem: " << outString << std::endl; +// std::string inString = ""; +// int bytesRecived = 0; +// socket.ReciveAll(inString, bytesRecived); +// std::cout << "Odebralem [" << bytesRecived << "]: " << inString << std::endl; +// //char d = std::getchar(); +// /*if (d == 'q') +// { +// break; +// }*/ +// Sleep(1000); +// } +// } +// +// socket.Close(); +// } +// } +// +// +// Network::Shutdown(); +// system("pause"); +// return 0; +//} \ No newline at end of file diff --git a/Client/tes_recivt.pdf b/Client/tes_recivt.pdf new file mode 100644 index 0000000..81a8a22 --- /dev/null +++ b/Client/tes_recivt.pdf @@ -0,0 +1,30243 @@ +%PDF-1.6 +% +2 0 obj +<>/PageLayout/TwoPageRight/Type/Catalog/Metadata 4794 0 R >> +endobj +15 0 obj +<>/ProcSet 877 0 R /Font<>>>/Thumb 879 0 R /MediaBox[ 0 0 1937 2767]/Type/Page/Parent 8 0 R /Contents 875 0 R /Rotate 0/CropBox[ 0 0 465 664]>> +endobj +18 0 obj +<>/ExtGState<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 892 0 R /Rotate 0/CropBox[ 0 0 482 652]/Annots[ 882 0 R 883 0 R 884 0 R 885 0 R 886 0 R 887 0 R 888 0 R 889 0 R 890 0 R 891 0 R ]>> +endobj +19 0 obj +<> +endobj +20 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 902 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +21 0 obj +<> +endobj +22 0 obj +<> +endobj +23 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 913 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +24 0 obj +<> +endobj +25 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 919 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +26 0 obj +<> +endobj +27 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 924 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +28 0 obj +<> +endobj +29 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 927 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +30 0 obj +<> +endobj +31 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 930 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +32 0 obj +<> +endobj +33 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 933 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +34 0 obj +<> +endobj +35 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 936 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +36 0 obj +<> +endobj +37 0 obj +<> +endobj +38 0 obj +<> +endobj +39 0 obj +<> +endobj +40 0 obj +<> +endobj +41 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 947 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +42 0 obj +<> +endobj +43 0 obj +<> +endobj +44 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 970 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +45 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 972 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +46 0 obj +<> +endobj +47 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 985 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +48 0 obj +<> +endobj +49 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 990 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +50 0 obj +<> +endobj +51 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 994 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +52 0 obj +<> +endobj +53 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 999 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +54 0 obj +<> +endobj +55 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1003 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +56 0 obj +<> +endobj +57 0 obj +<> +endobj +58 0 obj +<> +endobj +59 0 obj +<> +endobj +60 0 obj +<> +endobj +61 0 obj +<> +endobj +62 0 obj +<> +endobj +63 0 obj +<> +endobj +64 0 obj +<> +endobj +65 0 obj +<> +endobj +66 0 obj +<> +endobj +67 0 obj +<> +endobj +68 0 obj +<> +endobj +69 0 obj +<> +endobj +70 0 obj +<> +endobj +71 0 obj +<> +endobj +72 0 obj +<> +endobj +73 0 obj +<> +endobj +74 0 obj +<> +endobj +75 0 obj +<> +endobj +76 0 obj +<> +endobj +77 0 obj +<> +endobj +78 0 obj +<> +endobj +79 0 obj +<> +endobj +80 0 obj +<> +endobj +81 0 obj +<> +endobj +82 0 obj +<> +endobj +83 0 obj +<> +endobj +84 0 obj +<> +endobj +85 0 obj +<> +endobj +86 0 obj +<> +endobj +87 0 obj +<> +endobj +88 0 obj +<> +endobj +89 0 obj +<> +endobj +90 0 obj +<> +endobj +91 0 obj +<> +endobj +92 0 obj +<> +endobj +93 0 obj +<> +endobj +94 0 obj +<> +endobj +95 0 obj +<> +endobj +96 0 obj +<> +endobj +97 0 obj +<> +endobj +98 0 obj +<> +endobj +99 0 obj +<> +endobj +100 0 obj +<> +endobj +101 0 obj +<> +endobj +102 0 obj +<> +endobj +103 0 obj +<> +endobj +104 0 obj +<> +endobj +105 0 obj +<> +endobj +106 0 obj +<> +endobj +107 0 obj +<> +endobj +108 0 obj +<> +endobj +109 0 obj +<> +endobj +110 0 obj +<> +endobj +111 0 obj +<> +endobj +112 0 obj +<> +endobj +113 0 obj +<> +endobj +114 0 obj +<> +endobj +115 0 obj +<> +endobj +116 0 obj +<> +endobj +117 0 obj +<> +endobj +118 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1132 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +119 0 obj +<> +endobj +120 0 obj +<> +endobj +121 0 obj +<> +endobj +122 0 obj +<> +endobj +123 0 obj +<> +endobj +124 0 obj +<> +endobj +125 0 obj +<> +endobj +126 0 obj +<> +endobj +127 0 obj +<> +endobj +128 0 obj +<> +endobj +129 0 obj +<> +endobj +130 0 obj +<> +endobj +131 0 obj +<> +endobj +132 0 obj +<> +endobj +133 0 obj +<> +endobj +134 0 obj +<> +endobj +135 0 obj +<> +endobj +136 0 obj +<> +endobj +137 0 obj +<> +endobj +138 0 obj +<> +endobj +139 0 obj +<> +endobj +140 0 obj +<> +endobj +141 0 obj +<> +endobj +142 0 obj +<> +endobj +143 0 obj +<> +endobj +144 0 obj +<> +endobj +145 0 obj +<> +endobj +146 0 obj +<> +endobj +147 0 obj +<> +endobj +148 0 obj +<> +endobj +149 0 obj +<> +endobj +150 0 obj +<> +endobj +151 0 obj +<> +endobj +152 0 obj +<> +endobj +153 0 obj +<> +endobj +154 0 obj +<> +endobj +155 0 obj +<> +endobj +156 0 obj +<> +endobj +157 0 obj +<> +endobj +158 0 obj +<> +endobj +159 0 obj +<> +endobj +160 0 obj +<> +endobj +161 0 obj +<> +endobj +162 0 obj +<> +endobj +163 0 obj +<> +endobj +164 0 obj +<> +endobj +165 0 obj +<> +endobj +166 0 obj +<> +endobj +167 0 obj +<> +endobj +168 0 obj +<> +endobj +169 0 obj +<> +endobj +170 0 obj +<> +endobj +171 0 obj +<> +endobj +172 0 obj +<> +endobj +173 0 obj +<> +endobj +174 0 obj +<> +endobj +175 0 obj +<> +endobj +176 0 obj +<> +endobj +177 0 obj +<> +endobj +178 0 obj +<> +endobj +179 0 obj +<> +endobj +180 0 obj +<> +endobj +181 0 obj +<> +endobj +182 0 obj +<> +endobj +183 0 obj +<> +endobj +184 0 obj +<> +endobj +185 0 obj +<> +endobj +186 0 obj +<> +endobj +187 0 obj +<> +endobj +188 0 obj +<> +endobj +189 0 obj +<> +endobj +190 0 obj +<> +endobj +191 0 obj +<> +endobj +192 0 obj +<> +endobj +193 0 obj +<> +endobj +194 0 obj +<> +endobj +195 0 obj +<> +endobj +196 0 obj +<> +endobj +197 0 obj +<> +endobj +198 0 obj +<> +endobj +199 0 obj +<> +endobj +200 0 obj +<> +endobj +201 0 obj +<> +endobj +202 0 obj +<> +endobj +203 0 obj +<> +endobj +204 0 obj +<> +endobj +205 0 obj +<> +endobj +206 0 obj +<> +endobj +207 0 obj +<> +endobj +208 0 obj +<> +endobj +209 0 obj +<> +endobj +210 0 obj +<> +endobj +211 0 obj +<> +endobj +212 0 obj +<> +endobj +213 0 obj +<> +endobj +214 0 obj +<> +endobj +215 0 obj +<> +endobj +216 0 obj +<> +endobj +217 0 obj +<> +endobj +218 0 obj +<> +endobj +219 0 obj +<> +endobj +220 0 obj +<> +endobj +221 0 obj +<> +endobj +222 0 obj +<> +endobj +223 0 obj +<> +endobj +224 0 obj +<> +endobj +225 0 obj +<> +endobj +226 0 obj +<> +endobj +227 0 obj +<> +endobj +228 0 obj +<> +endobj +229 0 obj +<> +endobj +230 0 obj +<> +endobj +231 0 obj +<> +endobj +232 0 obj +<> +endobj +233 0 obj +<> +endobj +234 0 obj +<> +endobj +235 0 obj +<> +endobj +236 0 obj +<> +endobj +237 0 obj +<> +endobj +238 0 obj +<> +endobj +239 0 obj +<> +endobj +240 0 obj +<> +endobj +241 0 obj +<> +endobj +242 0 obj +<> +endobj +243 0 obj +<> +endobj +244 0 obj +<> +endobj +245 0 obj +<> +endobj +246 0 obj +<> +endobj +247 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1398 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +248 0 obj +<> +endobj +249 0 obj +<> +endobj +250 0 obj +<> +endobj +251 0 obj +<> +endobj +252 0 obj +<> +endobj +253 0 obj +<> +endobj +254 0 obj +<> +endobj +255 0 obj +<> +endobj +256 0 obj +<> +endobj +257 0 obj +<> +endobj +258 0 obj +<> +endobj +259 0 obj +<> +endobj +260 0 obj +<> +endobj +261 0 obj +<> +endobj +262 0 obj +<> +endobj +263 0 obj +<> +endobj +264 0 obj +<> +endobj +265 0 obj +<> +endobj +266 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1444 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +267 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1447 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +268 0 obj +<> +endobj +269 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1457 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +270 0 obj +<> +endobj +271 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1466 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +272 0 obj +<> +endobj +273 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1471 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +274 0 obj +<> +endobj +275 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1474 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +276 0 obj +<> +endobj +277 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1477 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +278 0 obj +<> +endobj +279 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1481 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +280 0 obj +<> +endobj +281 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1485 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +282 0 obj +<> +endobj +283 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1488 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +284 0 obj +<> +endobj +285 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1491 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +286 0 obj +<> +endobj +287 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1494 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +288 0 obj +<> +endobj +289 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1497 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +290 0 obj +<> +endobj +291 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1500 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +292 0 obj +<> +endobj +293 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1504 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +294 0 obj +<> +endobj +295 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1507 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +296 0 obj +<> +endobj +297 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1510 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +298 0 obj +<> +endobj +299 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1513 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +300 0 obj +<> +endobj +301 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1520 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +302 0 obj +<> +endobj +303 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1523 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +304 0 obj +<> +endobj +305 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1526 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +306 0 obj +<> +endobj +307 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1529 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +308 0 obj +<> +endobj +309 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1532 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +310 0 obj +<> +endobj +311 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1535 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +312 0 obj +<> +endobj +313 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1538 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +314 0 obj +<> +endobj +315 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1543 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +316 0 obj +<> +endobj +317 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1546 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +318 0 obj +<> +endobj +319 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1552 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +320 0 obj +<> +endobj +321 0 obj +<> +endobj +322 0 obj +<> +endobj +323 0 obj +<> +endobj +324 0 obj +<> +endobj +325 0 obj +<> +endobj +326 0 obj +<> +endobj +327 0 obj +<> +endobj +328 0 obj +<> +endobj +329 0 obj +<> +endobj +330 0 obj +<> +endobj +331 0 obj +<> +endobj +332 0 obj +<> +endobj +333 0 obj +<> +endobj +334 0 obj +<> +endobj +335 0 obj +<> +endobj +336 0 obj +<> +endobj +337 0 obj +<> +endobj +338 0 obj +<> +endobj +339 0 obj +<> +endobj +340 0 obj +<> +endobj +341 0 obj +<> +endobj +342 0 obj +<> +endobj +343 0 obj +<> +endobj +344 0 obj +<> +endobj +345 0 obj +<> +endobj +346 0 obj +<> +endobj +347 0 obj +<> +endobj +348 0 obj +<> +endobj +349 0 obj +<> +endobj +350 0 obj +<> +endobj +351 0 obj +<> +endobj +352 0 obj +<> +endobj +353 0 obj +<> +endobj +354 0 obj +<> +endobj +355 0 obj +<> +endobj +356 0 obj +<> +endobj +357 0 obj +<> +endobj +358 0 obj +<> +endobj +359 0 obj +<> +endobj +360 0 obj +<> +endobj +361 0 obj +<> +endobj +362 0 obj +<> +endobj +363 0 obj +<> +endobj +364 0 obj +<> +endobj +365 0 obj +<> +endobj +366 0 obj +<> +endobj +367 0 obj +<> +endobj +368 0 obj +<> +endobj +369 0 obj +<> +endobj +370 0 obj +<> +endobj +371 0 obj +<> +endobj +372 0 obj +<> +endobj +373 0 obj +<> +endobj +374 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1662 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +375 0 obj +<> +endobj +376 0 obj +<> +endobj +377 0 obj +<> +endobj +378 0 obj +<> +endobj +379 0 obj +<> +endobj +380 0 obj +<> +endobj +381 0 obj +<> +endobj +382 0 obj +<> +endobj +383 0 obj +<> +endobj +384 0 obj +<> +endobj +385 0 obj +<> +endobj +386 0 obj +<> +endobj +387 0 obj +<> +endobj +388 0 obj +<> +endobj +389 0 obj +<> +endobj +390 0 obj +<> +endobj +391 0 obj +<> +endobj +392 0 obj +<> +endobj +393 0 obj +<> +endobj +394 0 obj +<> +endobj +395 0 obj +<> +endobj +396 0 obj +<> +endobj +397 0 obj +<> +endobj +398 0 obj +<> +endobj +399 0 obj +<> +endobj +400 0 obj +<> +endobj +401 0 obj +<> +endobj +402 0 obj +<> +endobj +403 0 obj +<> +endobj +404 0 obj +<> +endobj +405 0 obj +<> +endobj +406 0 obj +<> +endobj +407 0 obj +<> +endobj +408 0 obj +<> +endobj +409 0 obj +<> +endobj +410 0 obj +<> +endobj +411 0 obj +<> +endobj +412 0 obj +<> +endobj +413 0 obj +<> +endobj +414 0 obj +<> +endobj +415 0 obj +<> +endobj +416 0 obj +<> +endobj +417 0 obj +<> +endobj +418 0 obj +<> +endobj +419 0 obj +<> +endobj +420 0 obj +<> +endobj +421 0 obj +<> +endobj +422 0 obj +<> +endobj +423 0 obj +<> +endobj +424 0 obj +<> +endobj +425 0 obj +<> +endobj +426 0 obj +<> +endobj +427 0 obj +<> +endobj +428 0 obj +<> +endobj +429 0 obj +<> +endobj +430 0 obj +<> +endobj +431 0 obj +<> +endobj +432 0 obj +<> +endobj +433 0 obj +<> +endobj +434 0 obj +<> +endobj +435 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1797 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +436 0 obj +<> +endobj +437 0 obj +<> +endobj +438 0 obj +<> +endobj +439 0 obj +<> +endobj +440 0 obj +<> +endobj +441 0 obj +<> +endobj +442 0 obj +<> +endobj +443 0 obj +<> +endobj +444 0 obj +<> +endobj +445 0 obj +<> +endobj +446 0 obj +<> +endobj +447 0 obj +<> +endobj +448 0 obj +<> +endobj +449 0 obj +<> +endobj +450 0 obj +<> +endobj +451 0 obj +<> +endobj +452 0 obj +<> +endobj +453 0 obj +<> +endobj +454 0 obj +<> +endobj +455 0 obj +<> +endobj +456 0 obj +<> +endobj +457 0 obj +<> +endobj +458 0 obj +<> +endobj +459 0 obj +<> +endobj +460 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1855 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +461 0 obj +<> +endobj +462 0 obj +<> +endobj +463 0 obj +<> +endobj +464 0 obj +<> +endobj +465 0 obj +<> +endobj +466 0 obj +<> +endobj +467 0 obj +<> +endobj +468 0 obj +<> +endobj +469 0 obj +<> +endobj +470 0 obj +<> +endobj +471 0 obj +<> +endobj +472 0 obj +<> +endobj +473 0 obj +<> +endobj +474 0 obj +<> +endobj +475 0 obj +<> +endobj +476 0 obj +<> +endobj +477 0 obj +<> +endobj +478 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1897 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +479 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1900 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +480 0 obj +<> +endobj +481 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1908 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +482 0 obj +<> +endobj +483 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1915 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +484 0 obj +<> +endobj +485 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1919 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +486 0 obj +<> +endobj +487 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1922 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +488 0 obj +<> +endobj +489 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1929 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +490 0 obj +<> +endobj +491 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1936 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +492 0 obj +<> +endobj +493 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 1939 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +494 0 obj +<> +endobj +495 0 obj +<> +endobj +496 0 obj +<> +endobj +497 0 obj +<> +endobj +498 0 obj +<> +endobj +499 0 obj +<> +endobj +500 0 obj +<> +endobj +501 0 obj +<> +endobj +502 0 obj +<> +endobj +503 0 obj +<> +endobj +504 0 obj +<> +endobj +505 0 obj +<> +endobj +506 0 obj +<> +endobj +507 0 obj +<> +endobj +508 0 obj +<> +endobj +509 0 obj +<> +endobj +510 0 obj +<> +endobj +511 0 obj +<> +endobj +512 0 obj +<> +endobj +513 0 obj +<> +endobj +514 0 obj +<> +endobj +515 0 obj +<> +endobj +516 0 obj +<> +endobj +517 0 obj +<> +endobj +518 0 obj +<> +endobj +519 0 obj +<> +endobj +520 0 obj +<> +endobj +521 0 obj +<> +endobj +522 0 obj +<> +endobj +523 0 obj +<> +endobj +524 0 obj +<> +endobj +525 0 obj +<> +endobj +526 0 obj +<> +endobj +527 0 obj +<> +endobj +528 0 obj +<> +endobj +529 0 obj +<> +endobj +530 0 obj +<> +endobj +531 0 obj +<> +endobj +532 0 obj +<> +endobj +533 0 obj +<> +endobj +534 0 obj +<> +endobj +535 0 obj +<> +endobj +536 0 obj +<> +endobj +537 0 obj +<> +endobj +538 0 obj +<> +endobj +539 0 obj +<> +endobj +540 0 obj +<> +endobj +541 0 obj +<> +endobj +542 0 obj +<> +endobj +543 0 obj +<> +endobj +544 0 obj +<> +endobj +545 0 obj +<> +endobj +546 0 obj +<> +endobj +547 0 obj +<> +endobj +548 0 obj +<> +endobj +549 0 obj +<> +endobj +550 0 obj +<> +endobj +551 0 obj +<> +endobj +552 0 obj +<> +endobj +553 0 obj +<> +endobj +554 0 obj +<> +endobj +555 0 obj +<> +endobj +556 0 obj +<> +endobj +557 0 obj +<> +endobj +558 0 obj +<> +endobj +559 0 obj +<> +endobj +560 0 obj +<> +endobj +561 0 obj +<> +endobj +562 0 obj +<> +endobj +563 0 obj +<> +endobj +564 0 obj +<> +endobj +565 0 obj +<> +endobj +566 0 obj +<> +endobj +567 0 obj +<> +endobj +568 0 obj +<> +endobj +569 0 obj +<> +endobj +570 0 obj +<> +endobj +571 0 obj +<> +endobj +572 0 obj +<> +endobj +573 0 obj +<> +endobj +574 0 obj +<> +endobj +575 0 obj +<> +endobj +576 0 obj +<> +endobj +577 0 obj +<> +endobj +578 0 obj +<> +endobj +579 0 obj +<> +endobj +580 0 obj +<> +endobj +581 0 obj +<> +endobj +582 0 obj +<> +endobj +583 0 obj +<> +endobj +584 0 obj +<> +endobj +585 0 obj +<> +endobj +586 0 obj +<> +endobj +587 0 obj +<> +endobj +588 0 obj +<> +endobj +589 0 obj +<> +endobj +590 0 obj +<> +endobj +591 0 obj +<> +endobj +592 0 obj +<> +endobj +593 0 obj +<> +endobj +594 0 obj +<> +endobj +595 0 obj +<> +endobj +596 0 obj +<> +endobj +597 0 obj +<> +endobj +598 0 obj +<> +endobj +599 0 obj +<> +endobj +600 0 obj +<> +endobj +601 0 obj +<> +endobj +602 0 obj +<> +endobj +603 0 obj +<> +endobj +604 0 obj +<> +endobj +605 0 obj +<> +endobj +606 0 obj +<> +endobj +607 0 obj +<> +endobj +608 0 obj +<> +endobj +609 0 obj +<> +endobj +610 0 obj +<> +endobj +611 0 obj +<> +endobj +612 0 obj +<> +endobj +613 0 obj +<> +endobj +614 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2182 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +615 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2185 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +616 0 obj +<> +endobj +617 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2195 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +618 0 obj +<> +endobj +619 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2203 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +620 0 obj +<> +endobj +621 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2207 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +622 0 obj +<> +endobj +623 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2211 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +624 0 obj +<> +endobj +625 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2214 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +626 0 obj +<> +endobj +627 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2217 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +628 0 obj +<> +endobj +629 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2220 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +630 0 obj +<> +endobj +631 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2223 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +632 0 obj +<> +endobj +633 0 obj +<> +endobj +634 0 obj +<> +endobj +635 0 obj +<> +endobj +636 0 obj +<> +endobj +637 0 obj +<> +endobj +638 0 obj +<> +endobj +639 0 obj +<> +endobj +640 0 obj +<> +endobj +641 0 obj +<> +endobj +642 0 obj +<> +endobj +643 0 obj +<> +endobj +644 0 obj +<> +endobj +645 0 obj +<> +endobj +646 0 obj +<> +endobj +647 0 obj +<> +endobj +648 0 obj +<> +endobj +649 0 obj +<> +endobj +650 0 obj +<> +endobj +651 0 obj +<> +endobj +652 0 obj +<> +endobj +653 0 obj +<> +endobj +654 0 obj +<> +endobj +655 0 obj +<> +endobj +656 0 obj +<> +endobj +657 0 obj +<> +endobj +658 0 obj +<> +endobj +659 0 obj +<> +endobj +660 0 obj +<> +endobj +661 0 obj +<> +endobj +662 0 obj +<> +endobj +663 0 obj +<> +endobj +664 0 obj +<> +endobj +665 0 obj +<> +endobj +666 0 obj +<> +endobj +667 0 obj +<> +endobj +668 0 obj +<> +endobj +669 0 obj +<> +endobj +670 0 obj +<> +endobj +671 0 obj +<> +endobj +672 0 obj +<> +endobj +673 0 obj +<> +endobj +674 0 obj +<> +endobj +675 0 obj +<> +endobj +676 0 obj +<> +endobj +677 0 obj +<> +endobj +678 0 obj +<> +endobj +679 0 obj +<> +endobj +680 0 obj +<> +endobj +681 0 obj +<> +endobj +682 0 obj +<> +endobj +683 0 obj +<> +endobj +684 0 obj +<> +endobj +685 0 obj +<> +endobj +686 0 obj +<> +endobj +687 0 obj +<> +endobj +688 0 obj +<> +endobj +689 0 obj +<> +endobj +690 0 obj +<> +endobj +691 0 obj +<> +endobj +692 0 obj +<> +endobj +693 0 obj +<> +endobj +694 0 obj +<> +endobj +695 0 obj +<> +endobj +696 0 obj +<> +endobj +697 0 obj +<> +endobj +698 0 obj +<> +endobj +699 0 obj +<> +endobj +700 0 obj +<> +endobj +701 0 obj +<> +endobj +702 0 obj +<> +endobj +703 0 obj +<> +endobj +704 0 obj +<> +endobj +705 0 obj +<> +endobj +706 0 obj +<> +endobj +707 0 obj +<> +endobj +708 0 obj +<> +endobj +709 0 obj +<> +endobj +710 0 obj +<> +endobj +711 0 obj +<> +endobj +712 0 obj +<> +endobj +713 0 obj +<> +endobj +714 0 obj +<> +endobj +715 0 obj +<> +endobj +716 0 obj +<> +endobj +717 0 obj +<> +endobj +718 0 obj +<> +endobj +719 0 obj +<> +endobj +720 0 obj +<> +endobj +721 0 obj +<> +endobj +722 0 obj +<> +endobj +723 0 obj +<> +endobj +724 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2413 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +725 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2416 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +726 0 obj +<> +endobj +727 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2427 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +728 0 obj +<> +endobj +729 0 obj +<>/XObject<>/ExtGState<>/ProcSet[/PDF/Text/ImageC/ImageI]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2436 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +730 0 obj +<> +endobj +731 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2441 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +732 0 obj +<> +endobj +733 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2445 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +734 0 obj +<> +endobj +735 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2448 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +736 0 obj +<> +endobj +737 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2451 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +738 0 obj +<> +endobj +739 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2457 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +740 0 obj +<> +endobj +741 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2463 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +742 0 obj +<> +endobj +743 0 obj +<> +endobj +744 0 obj +<> +endobj +745 0 obj +<> +endobj +746 0 obj +<> +endobj +747 0 obj +<> +endobj +748 0 obj +<> +endobj +749 0 obj +<> +endobj +750 0 obj +<> +endobj +751 0 obj +<> +endobj +752 0 obj +<> +endobj +753 0 obj +<> +endobj +754 0 obj +<> +endobj +755 0 obj +<> +endobj +756 0 obj +<> +endobj +757 0 obj +<> +endobj +758 0 obj +<> +endobj +759 0 obj +<> +endobj +760 0 obj +<> +endobj +761 0 obj +<> +endobj +762 0 obj +<> +endobj +763 0 obj +<> +endobj +764 0 obj +<> +endobj +765 0 obj +<> +endobj +766 0 obj +<> +endobj +767 0 obj +<> +endobj +768 0 obj +<> +endobj +769 0 obj +<> +endobj +770 0 obj +<> +endobj +771 0 obj +<> +endobj +772 0 obj +<> +endobj +773 0 obj +<> +endobj +774 0 obj +<> +endobj +775 0 obj +<> +endobj +776 0 obj +<> +endobj +777 0 obj +<> +endobj +778 0 obj +<> +endobj +779 0 obj +<> +endobj +780 0 obj +<> +endobj +781 0 obj +<> +endobj +782 0 obj +<> +endobj +783 0 obj +<> +endobj +784 0 obj +<> +endobj +785 0 obj +<> +endobj +786 0 obj +<> +endobj +787 0 obj +<> +endobj +788 0 obj +<> +endobj +789 0 obj +<> +endobj +790 0 obj +<> +endobj +791 0 obj +<> +endobj +792 0 obj +<> +endobj +793 0 obj +<> +endobj +794 0 obj +<> +endobj +795 0 obj +<> +endobj +796 0 obj +<> +endobj +797 0 obj +<> +endobj +798 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2581 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +799 0 obj +<> +endobj +800 0 obj +<> +endobj +801 0 obj +<> +endobj +802 0 obj +<> +endobj +803 0 obj +<> +endobj +804 0 obj +<> +endobj +805 0 obj +<> +endobj +806 0 obj +<> +endobj +807 0 obj +<> +endobj +808 0 obj +<> +endobj +809 0 obj +<> +endobj +810 0 obj +<> +endobj +811 0 obj +<> +endobj +812 0 obj +<> +endobj +813 0 obj +<> +endobj +814 0 obj +<> +endobj +815 0 obj +<> +endobj +816 0 obj +<> +endobj +817 0 obj +<> +endobj +818 0 obj +<> +endobj +819 0 obj +<> +endobj +820 0 obj +<> +endobj +821 0 obj +<> +endobj +822 0 obj +<> +endobj +823 0 obj +<> +endobj +824 0 obj +<> +endobj +825 0 obj +<> +endobj +826 0 obj +<> +endobj +827 0 obj +<> +endobj +828 0 obj +<> +endobj +829 0 obj +<> +endobj +830 0 obj +<> +endobj +831 0 obj +<> +endobj +832 0 obj +<> +endobj +833 0 obj +<> +endobj +834 0 obj +<> +endobj +835 0 obj +<> +endobj +836 0 obj +<> +endobj +837 0 obj +<> +endobj +838 0 obj +<> +endobj +839 0 obj +<> +endobj +840 0 obj +<> +endobj +841 0 obj +<> +endobj +842 0 obj +<> +endobj +843 0 obj +<> +endobj +844 0 obj +<> +endobj +845 0 obj +<> +endobj +846 0 obj +<> +endobj +847 0 obj +<> +endobj +848 0 obj +<> +endobj +849 0 obj +<> +endobj +850 0 obj +<> +endobj +851 0 obj +<> +endobj +852 0 obj +<> +endobj +853 0 obj +<> +endobj +854 0 obj +<> +endobj +855 0 obj +<> +endobj +856 0 obj +<> +endobj +857 0 obj +<> +endobj +858 0 obj +<> +endobj +859 0 obj +<> +endobj +860 0 obj +<> +endobj +861 0 obj +<> +endobj +862 0 obj +<> +endobj +863 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2713 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +864 0 obj +<> +endobj +865 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2719 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +866 0 obj +<> +endobj +867 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2723 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +868 0 obj +<> +endobj +869 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2727 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +870 0 obj +<> +endobj +871 0 obj +<>/ProcSet[/PDF/Text]/Font<>>>/MediaBox[ 0 0 482 652]/Type/Page/Parent 8 0 R /Contents 2730 0 R /Rotate 0/CropBox[ 0 0 482 652]>> +endobj +872 0 obj +<> +endobj +875 0 obj +<>stream +x+213ѳP0B3 L5Pp + +endstream +endobj +878 0 obj +<>stream +JFIF,,C  !"$"$C +" d   !1AQaq"2B#36RSTbr45Ccst$7UVuD%dE&eÕ'8FA!1AQR23q"4aB#$5Cr%DES ? לk`~qŃ-Sjr@@|y2R8?JzOs^p=[,o2P|Rʕ7Q*UGk,~5?ߜe1`~qڇ^`> tT8vR8^Ag/98ל@)[<_2e_Tq#ʕ7Qwz ?.1}yzLX?ߜe6*/0/h*o꣎9T8׫Ytk50ſ8b)9W > |y{GWUq_Tqƽ]ނ˧ _@s^p98-SMyʾ)eK?JGh*o꣎5~]?@by o2ſ8mCUH/0^`:^*UGr;GWUqWwלk`~qŃ-Sjr@@|y2R8?JzOs^p=[,o2P|Rʕ7Q*UGk,~IEs*VFJ\ R^'€َ+ZudeP7B얈7'fW(%HS &نL(EHfIXSY4D5?ߜe1`~qڇ^`> tT8vR8^Ag/v-FQSK|LڶͮΥɱ&e Ӷ_]BmaWqt%e_Mz;;Re$ݓŁx;Ϯ6ʠΣk:oaܰYAVe G:> +rO/~IݫCy