From 3af5642627f78564bb02fe14f21fe5ca1ce474de Mon Sep 17 00:00:00 2001 From: yusenw2 <yusenw2@illinois.edu> Date: Mon, 9 Sep 2019 06:43:07 -0500 Subject: [PATCH] first commit --- hw0/.idea/encodings.xml | 4 + hw0/.idea/misc.xml | 6 + hw0/.idea/modules.xml | 8 + hw0/.idea/workspace.xml | 260 ++++++++++ hw0/COPYING | 340 ++++++++++++ hw0/bin/lanSimulation/LANSimulation.class | Bin 0 -> 4544 bytes hw0/bin/lanSimulation/Network.class | Bin 0 -> 7873 bytes hw0/bin/lanSimulation/internals/Node.class | Bin 0 -> 1218 bytes hw0/bin/lanSimulation/internals/Packet.class | Bin 0 -> 717 bytes ...NTests$PreconditionViolationTestCase.class | Bin 0 -> 1082 bytes hw0/bin/lanSimulation/tests/LANTests.class | Bin 0 -> 9528 bytes hw0/doc/LANSimulationDocument.pdf | Bin 0 -> 36375 bytes hw0/doc/README | 36 ++ hw0/doc/RefactoringAssignment.pdf | Bin 0 -> 139491 bytes hw0/doc/toDoList | 23 + hw0/expectedOutput.txt | 98 ++++ hw0/hw0.iml | 11 + hw0/javadoc.xml | 6 + hw0/src/lanSimulation/LANSimulation.java | 158 ++++++ hw0/src/lanSimulation/Network.java | 491 ++++++++++++++++++ hw0/src/lanSimulation/internals/Node.java | 83 +++ hw0/src/lanSimulation/internals/Packet.java | 58 +++ hw0/src/lanSimulation/tests/LANTests.java | 343 ++++++++++++ hw0/useOutput.txt | 98 ++++ 24 files changed, 2023 insertions(+) create mode 100644 hw0/.idea/encodings.xml create mode 100644 hw0/.idea/misc.xml create mode 100644 hw0/.idea/modules.xml create mode 100644 hw0/.idea/workspace.xml create mode 100755 hw0/COPYING create mode 100644 hw0/bin/lanSimulation/LANSimulation.class create mode 100644 hw0/bin/lanSimulation/Network.class create mode 100644 hw0/bin/lanSimulation/internals/Node.class create mode 100644 hw0/bin/lanSimulation/internals/Packet.class create mode 100644 hw0/bin/lanSimulation/tests/LANTests$PreconditionViolationTestCase.class create mode 100644 hw0/bin/lanSimulation/tests/LANTests.class create mode 100755 hw0/doc/LANSimulationDocument.pdf create mode 100755 hw0/doc/README create mode 100755 hw0/doc/RefactoringAssignment.pdf create mode 100755 hw0/doc/toDoList create mode 100644 hw0/expectedOutput.txt create mode 100644 hw0/hw0.iml create mode 100755 hw0/javadoc.xml create mode 100755 hw0/src/lanSimulation/LANSimulation.java create mode 100755 hw0/src/lanSimulation/Network.java create mode 100755 hw0/src/lanSimulation/internals/Node.java create mode 100755 hw0/src/lanSimulation/internals/Packet.java create mode 100755 hw0/src/lanSimulation/tests/LANTests.java create mode 100644 hw0/useOutput.txt diff --git a/hw0/.idea/encodings.xml b/hw0/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/hw0/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/hw0/.idea/misc.xml b/hw0/.idea/misc.xml new file mode 100644 index 0000000..bfbb0ff --- /dev/null +++ b/hw0/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_10" default="true" project-jdk-name="10" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project> \ No newline at end of file diff --git a/hw0/.idea/modules.xml b/hw0/.idea/modules.xml new file mode 100644 index 0000000..5940c3c --- /dev/null +++ b/hw0/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/hw0.iml" filepath="$PROJECT_DIR$/hw0.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/hw0/.idea/workspace.xml b/hw0/.idea/workspace.xml new file mode 100644 index 0000000..6073ca1 --- /dev/null +++ b/hw0/.idea/workspace.xml @@ -0,0 +1,260 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="abd2d17f-f984-43c9-98e8-db6f648b22a8" name="Default Changelist" comment="" /> + <ignored path="$PROJECT_DIR$/out/" /> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="FileEditorManager"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/internals/Node.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="170"> + <caret line="63" column="21" selection-start-line="63" selection-start-column="21" selection-end-line="63" selection-end-column="21" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/internals/Packet.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/LANSimulation.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="28" column="11" selection-start-line="28" selection-start-column="11" selection-end-line="28" selection-end-column="11" /> + <folding> + <element signature="imports" expanded="true" /> + <element signature="e#1104#1105#0" expanded="true" /> + <element signature="e#1156#1157#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/tests/LANTests.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="90"> + <caret line="24" column="26" selection-start-line="24" selection-start-column="26" selection-end-line="24" selection-end-column="26" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/javadoc.xml"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/hw0.iml"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/Network.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="165"> + <caret line="33" column="13" selection-start-line="33" selection-start-column="13" selection-end-line="33" selection-end-column="13" /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/src/lanSimulation/tests/LANTests.java" /> + </list> + </option> + </component> + <component name="ProjectFrameBounds" fullScreen="true"> + <option name="width" value="1440" /> + <option name="height" value="900" /> + </component> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="Scope" /> + <pane id="ProjectPane"> + <subPane> + <expand> + <path> + <item name="hw0" type="b2602c69:ProjectViewProjectNode" /> + <item name="hw0" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="hw0" type="b2602c69:ProjectViewProjectNode" /> + <item name="hw0" type="462c0819:PsiDirectoryNode" /> + <item name="doc" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="hw0" type="b2602c69:ProjectViewProjectNode" /> + <item name="hw0" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="hw0" type="b2602c69:ProjectViewProjectNode" /> + <item name="hw0" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="lanSimulation" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="hw0" type="b2602c69:ProjectViewProjectNode" /> + <item name="hw0" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="lanSimulation" type="462c0819:PsiDirectoryNode" /> + <item name="internals" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="hw0" type="b2602c69:ProjectViewProjectNode" /> + <item name="hw0" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="lanSimulation" type="462c0819:PsiDirectoryNode" /> + <item name="tests" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </subPane> + </pane> + <pane id="PackagesPane" /> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="aspect.path.notification.shown" value="true" /> + <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1567921413909" /> + <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> + <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="abd2d17f-f984-43c9-98e8-db6f648b22a8" name="Default Changelist" comment="" /> + <created>1567920825398</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1567920825398</updated> + <workItem from="1567920831021" duration="617000" /> + <workItem from="1567921500283" duration="327000" /> + </task> + <servers /> + </component> + <component name="TimeTrackingManager"> + <option name="totallyTimeSpent" value="944000" /> + </component> + <component name="ToolWindowManager"> + <frame x="0" y="0" width="1440" height="900" extended-state="0" /> + <editor active="true" /> + <layout> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24606581" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info id="Image Layers" order="2" /> + <window_info id="Designer" order="3" /> + <window_info id="UI Designer" order="4" /> + <window_info id="Capture Tool" order="5" /> + <window_info id="Favorites" order="6" side_tool="true" /> + <window_info anchor="bottom" id="Message" order="0" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> + <window_info anchor="bottom" id="Version Control" order="8" /> + <window_info anchor="bottom" id="Database Changes" order="9" /> + <window_info anchor="bottom" id="Terminal" order="10" /> + <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" /> + <window_info anchor="bottom" id="Messages" order="12" visible="true" weight="0.32891566" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="Palette" order="3" /> + <window_info anchor="right" id="Database" order="4" /> + <window_info anchor="right" id="Theme Preview" order="5" /> + <window_info anchor="right" id="Maven" order="6" /> + <window_info anchor="right" id="Capture Analysis" order="7" /> + <window_info anchor="right" id="Palette	" order="8" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/internals/Packet.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/LANSimulation.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="28" column="11" selection-start-line="28" selection-start-column="11" selection-end-line="28" selection-end-column="11" /> + <folding> + <element signature="imports" expanded="true" /> + <element signature="e#1104#1105#0" expanded="true" /> + <element signature="e#1156#1157#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/Network.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="165"> + <caret line="33" column="13" selection-start-line="33" selection-start-column="13" selection-end-line="33" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/internals/Node.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="170"> + <caret line="63" column="21" selection-start-line="63" selection-start-column="21" selection-end-line="63" selection-end-column="21" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/lanSimulation/tests/LANTests.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="90"> + <caret line="24" column="26" selection-start-line="24" selection-start-column="26" selection-end-line="24" selection-end-column="26" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/hw0.iml"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + <entry file="file://$PROJECT_DIR$/javadoc.xml"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + </component> +</project> \ No newline at end of file diff --git a/hw0/COPYING b/hw0/COPYING new file mode 100755 index 0000000..3912109 --- /dev/null +++ b/hw0/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/hw0/bin/lanSimulation/LANSimulation.class b/hw0/bin/lanSimulation/LANSimulation.class new file mode 100644 index 0000000000000000000000000000000000000000..4ba0865fc81811d1c489d53278cf53f134eb9ce7 GIT binary patch literal 4544 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 literal 0 HcmV?d00001 diff --git a/hw0/bin/lanSimulation/Network.class b/hw0/bin/lanSimulation/Network.class new file mode 100644 index 0000000000000000000000000000000000000000..c8eb06f8684a4c5727f045ed2e046bce84f4c77d GIT binary patch literal 7873 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 bjso`3FtCS)S^U6QU?+?Mwu;ntsRjQFEHOM| literal 0 HcmV?d00001 diff --git a/hw0/bin/lanSimulation/internals/Node.class b/hw0/bin/lanSimulation/internals/Node.class new file mode 100644 index 0000000000000000000000000000000000000000..12ade0dbeae9659d4a012d480c17f7d0ae459e4b GIT binary patch literal 1218 zcmbW0T~8B16o%jFZduwc@+F8A5D<`-kE)<TBnT9Y#L^;dYUG9t?FJW@E!o`~z43?O zr59eS0TNC0&I^B(aL#t67zr0P**SBjv+sGIGqb;bfBg>NE@m`@1bQrK=gqyUB|WoZ zr%c;399vp$DqATV8dQOnUHMw3XxmOIx4mnWJOMSETV4?mO9D;litT#R_KMP~8VV^x zAoe`B@ibppEUf0Tyd(s)^^MhRVP%6;Dyw>L_YDfR+@sKzsn^JRj%n{a6lk=KHy*nX z=*wK@lJ>R_N!K+TMsSx+S8iKInfz^%%3R4ZZPS|<P(~9)Dw!t9D7w(C;krO`y>i+j z5gl>#2y~VW*K~~X;vd<(C%vlci)=;+u}?=E+Ufm_X&c$<-nQWsxGcj|O42Gy$K*U% zY@+u|uh!&#kT=W)raDKL{)JBzqfjucV-Ou0ZV7bNU7k5wah!@1#R!JkPf|w{8hAFY z;|iL2HmRcpt=#OFCRq<})tVmO;;w6$`s-|KeHWO%$k65e=e9<+>c<t$SE^3Qcx-Yz zB7B6C>>mT<iO-)Jk1!f2)A%-^k@Cp7JW6@&T&~kjg5!(CXnrIxprwlsfpUd3uA+nf z@1$&wBL7<3#1XC?KvO?LRlcD26D=yZK_eFjy3tQ#h@Js@!U*XLbZe;VH)&+0Bihc6 zXOqVm`i$NK494FFdhzgwVD|0+v2Pf8ag5O)$@n1>$?-#sCB-2o>J__vfO)8Rgaj5a ziA79d2{TChF8XVQkYX?{iQ9q8S==G$kneFA;S*w3H2S7A`iQY0o`@6Lezp=4BIYwp z2Mj++SY^TgVVJmpAwzO&#E>P195JjD!!w^DSu1o219ROYLdB;UtI?<d4TU<;`Ne?g JK2e15;1r?6-^Bm` literal 0 HcmV?d00001 diff --git a/hw0/bin/lanSimulation/internals/Packet.class b/hw0/bin/lanSimulation/internals/Packet.class new file mode 100644 index 0000000000000000000000000000000000000000..c39ccf841c60258f69f30e8a5d20f286af22479a GIT binary patch literal 717 zcma)(%TC)s6o&svOq`2L+Qd+xT*3-)0+uQ+MIbhnx{6w)plqXw8HJ(FShAhIR~J#G zF8Tm{sH(r65LAIGHZ$io=bQhW-+zAo0`MNYHVOjUp)@@`o`f>hk@2-jRcvIK_}4P{ zs!|)4!0UVYP5LYx`Co?jDo6$Fu}Ts-QUZ<cW44#Z+Kes)N>Qvw+6dHcRg!9xH)r@# z8=YPW?Cn2&^)zzO7qC7?x2lRFUOA{>S)jOo(64}>a<GI_84Up@1Y8F;N}09lpp240 zy{nD-JQ)vFd?SZp{?{mwVPD2N^XEY;z0-+6tNZ^+P*r)bQ0)x<5qAC}J<lt&2M@!l z_M%A~s82fkYi+iGqinj^rK}>iR^(09w77!#O|A3`j8stNS)&)w&+1paA8@?(6m_rh zW{RfQnPTO8UjCNnDw_dqSm^NaA?i4S3m<EYwq^~mjtzQjg?9vT*t9lj&462TU`XF$ v&V2+D)$|UZ;T^N`guGKM;|xuF$a&uE{etH%crLbc9=qq{YzRAK70~(%wJ(k% literal 0 HcmV?d00001 diff --git a/hw0/bin/lanSimulation/tests/LANTests$PreconditionViolationTestCase.class b/hw0/bin/lanSimulation/tests/LANTests$PreconditionViolationTestCase.class new file mode 100644 index 0000000000000000000000000000000000000000..1d736730471a9e169382e25da9623c4c1a1d4846 GIT binary patch literal 1082 zcmbVL+foxj5Ir3t3u_1vxkvyFh?oGf>Z75ovI1%}rl<mw(zhWQaUeU3yR*V?`68B9 z`2l{EWzQxQmy|sCvOC?=-RJb_p5K3d`~vU<j~%24Pdh^IC_nB9qXO+28JWndJ+JTD z!_syrTY+vXd)H7wH^^R9L?j)g35y4@R>qSjM(T*8B5&)YC68>vSsY<-LvheE!g8^8 zAifBXLHE5K6Dqx5zTl~JL==@v4MMsSw55vy3}<iygM`tV(y|`=dotV=dmTy0)q<Aj zG(@PZ-E*eRClwJkYX9F>nbEcI6NEmpgkgEsA7Q+YJLg&n2?NDa!^I?~9ZV4>FVm?@ za~y<+8QjJUA-gF*inwF8PK1ACJDVw%uJG?AlpV|xCK6UE=n2>im64%~Jm#%dcbG!4 zT51fTz#6^NhdMacO-74MGU6dDvYPEcMg<+1f-g*xJ&C0Z?qiuy2<7LPd$^FZ&4V)0 zX3&a#skyo8^<(TG>?IE~?{Y4eJ`fz;6@xJSkEVHlLU|N~3_R5p{7UaUF?T13!<KxZ ztbQYB`@3$HB4nys%P?6k89DF>bC>5~M|QsTg!yat9t+_4@*4tDeB$-wuftZAz1Hun ztgfA6=xY+-^4H}+P=)t+6F1o|bi<Ir2wR+hEJnGAJ&j>JDVxKsURj?ZY}wiGn5g|k z{{2|{6mxG^b9ZwKxrMcFxYs;~$}=0#OMaTKkfkcd=`}B46?uAd0eZFvoyIgCpvXX3 arc%NRL#MFHU@5HOA^%;zBdp^QhW`Sd=orTU literal 0 HcmV?d00001 diff --git a/hw0/bin/lanSimulation/tests/LANTests.class b/hw0/bin/lanSimulation/tests/LANTests.class new file mode 100644 index 0000000000000000000000000000000000000000..4010e843a433b61a4aa11beee3f7f1b6f4af05cb GIT binary patch literal 9528 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 KJpQ*9#eW0PY0r=V literal 0 HcmV?d00001 diff --git a/hw0/doc/LANSimulationDocument.pdf b/hw0/doc/LANSimulationDocument.pdf new file mode 100755 index 0000000000000000000000000000000000000000..6a0c51e7f197a94df764c59cb9294327801e7145 GIT binary patch literal 36375 zcmce+W0+*kx~^MBmW?jkHoI)wRb94i+qP}nuIjRlF56wM)89AeTx;&L_jRp#e(dun zV_Y#Z@*R<x5%2vzPmszBi_$XEF#|}44(|@nOYie$heiNQ1PlbWKP&(|JOuR8#x|x- zW&|vMx)cfMMa`|8j2-^8Rt8SS!p4TSM#cnud;mu$2V(<kfZO_#rj+9*8*<O@+CD~! zHCSxh19a-Ob*nXrViv8;K>9|OUlj48Pe02PGxc(9Zh{HRkxWA*yHv+PGQeIf^VU9C z$71)zZWYXEisBVT^SulLl9plci|RxptVutK+4d(ZaU&ea89pv1tfHJB2|#&{jG0f4 z+nK3vxu>4#Uq4j9Zpq98DlG|N!cVeq=j}JXQ5(kPtZz%;M=kHaMktR7o~C_5OYqY- z`jp~wMHO_RU>3{IYuS@GImx`KYNPCzGJ+bqKs&~&Wd&p44O5G{HM4_nAq&EEU?4hh z2w!m@yw-brVbji%&1mZQhCMAwuFCI7`!ZVO&x)yUh0}it5SwkO@<+~WQ$^-RF4gXD zpb3zJA*<B&YmlmrJ`T`yJGuI6zNIxq`n$}Ph2Uc_C}`-F?J^7`Rh(PA^&oeb-#_#t zd5eY$&iyEtSm-Igs`ygbz=+H^QNYl&9AGuy|Ev~dUzNc(<Eu?woAO&2@p(4xE=O-> zfzUI1(3H`9of2x_zO2BAydtM61Ox)eW!??cYFgX*+MeTCBohZG%u#xK%Ue1>T)N+g zH)ex##>e8z7s|P^D^8sHL1qk{2qQVWGiY|R(jF<OM1z-uzgOaSH4#!M9Sanz>_st9 zvAH$5I=L3L{Z{;@QYt9(@`FgOuh^Y-vbzbke{3LO75d!TAj2vjHh}|WtA$A9H+t5~ ztA8_;%`iRlf`Mj<*w0B680oapM#UmT=7qd`;}}d!>b%o$LR?vn1DHDU(hm<%+*?MX zf&N-^Mod5G=1|ReI&=X^GL7wuwM#?9W%y>w%9@#0UIg2-=exSlyfIEohr|dpdF}{r zg?I<QbGit9X-k>FmgWO8rmroaCwA3QV^L_*4ElHyz)g90to&N2ctJA=RwnV*MxnYd zNgFlxXQA4nDEY8$Lu1GEr^abIHq(MpfyvzIvJS*%I^hgq#3gXEcI{zIf=aqvIN$7{ z8l_+-`-1|t>Y_MPg=;ytASDSzGX^X$#`QmA9m8d;DPCe}q6+Kc=@dUD236R4QkOI* zr1x2^z49o)KZIlM6bgefjUfnh&InurLqiy9{LSSaIi0$ZW6>$>T>J;PUzqG=grH?S z;VK)c(T~qFPw9z}DX7{ZhRn3Qy~<qPa)d~>BCbeUoiG@Rv|C{{!CrAsd|dVTHdQi< za6Aq%t3|D=IcDrIv8JaFMM*q88`pNMwh?IAPkuC|B@Gr=*3gtIB>}6s#!-KL_`Ge{ z^ltBL+Csc0-e#F%Xt-aFIX2^BebrUA@N#w&eDKjfHY&2h!WUP7!iR!L&E#E}?KHdH zr2&n|8Gwk!Vhkn;DCCe7khm=qI4eis3-v@V3s@K?;oCs{bcL!|wTx`fPa>g<U5f#_ z9y_n?<!^t_Pz1{+lA4pHCi4kBJKKLcy4quV*-?wF2yVPEbfu4ScFRMzX#Uz(!O(&Z zJu~x++}$rqRy)^e_H5t@SaAOW8P%hTBW4J{qQXXJV6R!@N^Yo{br0iWq0w_M0R(A0 zFjXw^@WM$Ci};j|crjhMOypUC(XpZS<ObwaNyGh~z?1Z51-1<x=!<bMTfMbW1@2=a zJSo4s5Iz#M+?&^&WgGIT)ue31<caU@e|f*RGQDTABXr!g5j`Yo>uy5z+}38$bU>%v z3Y(p1?*zh713tbUSPjbavH|%yValvQDqTMzE+AOx2HzgQ*lRyz9p)K3y}`DW!#N$N z&1o25K%_o!n53#Pv7H2J=LYEYadmBM-}}|`@$uBOz{sJf#e07qSJU?$cTvDRSosK5 z7jle>y3$xp!~QL=;Ri5Mv5o%Lp7~^n1h5V#tOlA$V!Dl}&9SqxH>1#M)V1-fG(W>H zH`j)+0PyWQr>mO4dH|&it&;FK;<!9}g%RK8_0!?g(V$Pn)C`5Oz73q1l-b3cCWI^} zbk6y?)Tjge_w8bqp(%Z$PRg|^24NRYv4h|lYeo?<X<i4qb(tsC%vbR~i=FdP*9I2v z^hX`Liw0feMh+rzI6Vti0eWg?mbGlyw%jV_;)_gc(1u7cIT#ZTE*@u1M9du6`(Io* z_f7iHZO}quo!!3ld{vV>75RmhF@qB{k6FV_<-~lwm2B7Wl20g5D?5nu3r~en9gmLl zhN}uH*Baj|L(&UNZLUrwW;^ZqMaT@%NDn}U4su^m41dn9Fl$_$XQN_+u8(_oPE_$O zd3^T82oQ_7b|wvCP3X^`kB@N~F*ePjE`A6K@T&6-yA<a2&`rLDa#an6(?7?&aP#bJ zBzSyL?zw#0I8X6=91D^gUtMiZZQ>>n+#k4vNDl$-#$whd^IK7b^5>h>3b72}1HoBG zY@85!f39x^)GX=xUfIc3ScS>?vN5q|aqF`4I$VF*T(4YDJU+j(SDbJ_(LXrlLo`|Z z)Pg8KNUYA4xmkdWKj593{Pvt=Y3e{Oc-pC?gv?3x-j103g%Io*jnC+Bd_zd<(~SYm z<8>ApTVkJeL<4d7P8|6J+TH7OsBoJ(nUTiw%p7lYthc*cCZlABM4S1><!%PF5yZIE zy~=?aPq(s}Abh$Iucr5|LvJQG-j_vHh+@s{rehYB6`+8=cxa1(Ybt34dqB5xsf*@6 zfVH?%Zf4zJ$u2}@2zTfYB(xWx{K1p7PFugBi{PvTuraXf?cadE+Dp~wv=s39XlJgA zO7h3W_n}D)z=C^am}02?ef}|6<I4)dI=X~P+!gi1xu3mq*0-_ZxszZqkzw2C>G5&N zb*CHC>l#x<UbGWtJLD+$q&*|DZO?y;U(Hsxw{3SAF-qkY27sp2%wMw1-|hbKbT4K$ zTKcdip2^iUqXfxfP#NCo3nJ3r3IQ;-G5RNf{JHvzTmFKTzgi|nHnzX+{&mgxZ%m`? zZf8tDFK=M__p5`kjS~UKKlnz`*wNP6!O+-|fcYOCLbf(ef9^XH{KZ6n07%Bz$lO5C z)(xP=@TY@=g^7TblU3(02Kr~5zsCKGo#Y*C4V8?Y2(<nL6BZ?)S2lKYBG4hA7qYdo zbx^W1Ff=Ck3$cV883|bb{&+sVKWOzQ;@{n(jC2eDwts{bWujvsVE@;9{yQ4yzeW2e zsWJZbV1J%e_RkdP1^&V{n?I~ZKrd|UVs2=xC?@znQ=E5#oH(ii&S-BVsbCejF`43x zYzw3s#HBuN)YhZzL`#)r2~@*$&l+xacJ}s98&W*MFgk%{#t!v439b-G1Y8gVq<|kf zL?;wjU;(Ldm+Z`)S7Gac?AOe_U%fk?-*qUgGd%o&-3QUfKPfu7`TEb;<wGIB1gNXk zO-SM~UDB=WjV`@|53(}%em#Eazy%<KAglO|RE@6S<UG0c?Y*^_qsVbp9n53>NNkfS zN?_bq8!~O=%XzX7(E{8u-O3E3qLRlE;Zaa(kRQR<TN$wg9;AkMGNmMtlkM~=nWF2a zKOxR~gL6E#lV#TV9lG`vFK5s!!fNAys&ZL2Y!z|imz!@Xa&v3Pqeg)^^G_UZspfrx z*L`(qf4+5SZ~F>y_JHC$7gI<kV@b?o^qmjtM1O4V3M!>J>Om{Wvu3}EdUUOyuSAMH zl2$q)dotUrVblr#W^jSP^nmSpht~E+(0&FY!S-8p2E)tmu>S0uLZMDW2u_(=s}f4# zR$t}h(g@OpGOZWfrdijn6A&`DH8j^TttlS{Yi*;rmFB+ls9(S4To<s3ikX$T2b67| zRoAg3O8lPP%FA{m9`y9cb`|I<v+xd_4xariis(^@Exym-O}pcmwLZDs0}N6O*?Kb8 z8?Mh8vG%B7pH@$p&bJ~vwZy%TSQ(7fn-lHKYSXbE)hA_44)3Gs4s$r!nK7JL`Vofv z2qT3+`-3RYn;GTDCv~y~tPWh%r*I+jnH24i<yx;C<3$`?x@`%t#00klLP>v;eWkP> zkiJyETh<q2R+ys?C6!e1zX{oA|6FQAvo0p1?-6t-E?SBwHUG>bpHwTa<yum=Di?8Z zxFNsg)l1z>rHnFXpRdX+KRBa#74=$^&A?l$nW|-5aj?$TP2YsAnZnOd*%McL&#N5# zV&(4T|AL&V12+5LcZ9ze#b3*ko#DTBguj;DUtNDzr-YD@pn;>Y5y4;UNs&P3UyGUX z|4<1r{)eSdvxb&qrYNe<j-EYUc6!jo+8bAD`jE@IlOj28dm=_JL)efc?Kp6`&D*&r zIwC>e+^{g7)?~)v+w{l99qy;!H38#(gyWUKsyOF#Gx#}&*)XBh9y87Ei$+Y`f#0xP zPSdiP5}hJVmAfkKYr}OS_~rtNZ{d#Z?(T1p@N5}BF`PMU<92AnN|xU-TG(2H)k=y3 z2T=rWBt`UmeW%A7=N+P^tYYFvemQ}=s)INr>`Tw+WJ7N3rsy1*0gi(hG5eEv2Qa)n z^A%w>_BKKt=>$hsneEl-lc5)FnY6^j3%(qZftueS)y93+TQ)9sbQv!vGEcvCgZVEH zF5%?#7NQl6R?^!!(6S7mw7o)Ls0Gs?fYw9$=Yf;3e83bt1llFCyk!iav>@PJ1db*- z#UqCxM7rioFZeE8oR$%3CdCV!zSo6STKbnD)z=j}Kk!h;Hj!?OxKcpGU)$`9a8(p- zuZb5V54s(nlT6<~oR&Qa=Yw&^^$Co{x+9wwMubU@iF5GL>>tuh-Kn4-e>KB;cnPca zRY9TR--$$1T1eODy1@b76gWIcAruM>P+g+tpoZJ%0Ow=K`vfE$No+;jS3!$IvUBPR zfFxb0GDUp$nBDdj9U1&Sc*<)G*HC{%Wow?6Dy_P=n<Hd+l_x~RO8=&&_!QYyc<pp7 zllw>Ot_)g?QiOqq!UG`#C;a$q=>#Vv)5gOTG#3>qrh!I%a06Ji=@5{in8oP&!>Nbp ztcI|o5a;)s8J^(Aw9j4h!G<BVX>nT@GMN^9J~ZeEM`eHE6(;54-r5B(@CD<BoYF|N zP2<L4i<W0D#npSN3-@BkGa8Rz_0t@XuBK@?3O`&UAm#YH1R6<Rf@T$KFV+38hA3Ol z=M&aZP%gwLVo<1K;>w_J37@D}scU*K6=5-oFYbo08Jfe39LgpVjk$(sD1Zl>N;C2{ zM-#8grd#StuZel1_O$5$%?_R@WwT~%N*<PE9RV`@`2kAp+}%f%F#oZGMlZA|<b-46 z4uFg2+-ji%PGy(f6Xr%8Uvu8KN>2e#Z=x`zNn2e+8I9RZH`z1=md3E-)0s!y(x(VB zTt%v8+rl^5Z@qWf<6IK+JfTjEm*8xzBT$@*`bzzgMam}P(4}=0-e4uCmlw8YB`pIT zrilT$Bo0|m>clT{b+H%?8^AKEr#jn9QF%A2C00DE6s!m@B`2(!{ZP{lEV{)9m9F-8 zYGYP*{90RmIxNLpELut7H!9@UXfZs9)_7Z2!gk-A2(L>|Iw|yO8c9eMFST`oRJ+oU z9VOujnGc*sM@Doils)6Ac?%56Gfxkxkpvp1nFe~bWtBL*!E?Wj%n^N*rd^lM5m=v# z9g@9jNQvIOto+8OqhPk)cs)F4JEb^DW?IRdyx*Ue{7tXtDiqAUxE;Y5P5)-V(|7T1 z$nH`lYJrKv%~xroU>^`XrJ?7)+I)r1-C)xjEBKlg9~N(n1<w*s74ZAo!^E3ae+iy{ zym*--Wxa{i<>Q7Hw|vSt#h0p4GBz&GEU4b4Xu8*q%7R*5&HxG=yi8IhG^7BeqH1VV zb<#!n=@rVQfVl0Mq5b5{@0*2pGk&=!Iu~YHY{zncr<+UX^!)cgG?pix(PX>cbDAVv zN0-iOsc1T@pXEuEwPu65Ibq9<EO$YsWq>&oz9`r!1wDDZ<ODQgoo%%lQfW$TnDTXY zz>W{94y&DnyS10PaOK&d<ckBRrQKP3U6sk=Pqv?#kS#}Sc{ErVTb^|OnNzoH8w*KW z#4ov)%bEt#QhJ%q3WbcAm%gHUfPQ%7{m^T)RUbh+Arj{edbFKqE$i{YpjB(=r`1&A zjo`LQ#|$L(DfKDpITt{GjB9BP;sw%`GE9DO1<nN!A;f~#IVq-RlpJpz_m%jMawHly zHi5AH0W*~8VqDDP!Cx{8GGOCX5x~WOaS^vVDsr=MD_ZKB339T-VB~}17?0LvE=ngi zB5DYUZ`9JL!e_>`F%oY-Jjc$oY<6jRj)KuP?DfTenkiX`t*a`^2{$}tzMYlTtay3g zMZ9t7D9^H5ENrwcZDd&6o&DK$dJ1ud#VfoH*lJpVH*h4DaR-i)rrm09k*-tLcUex2 zu6e~RN7+d_G0&6K^C9W$D}OuZn7~~Ta%M#<g*{1OPpnaWxK~c%=*|Q^TT7mPDLXz7 z{2y}Pzi^n5jg|esGTZ-G9%lT11M%Ov@joHrzeoQ6hs2D3A@je&{fmkJiTD4Ld^xPK z<G8^F>ocn7Kl)Uo0R4Hi-QwiAYQ5%iyM?#R`>fq8ao$#WscZXo4yo8gvF1QTEt{!L zM<fg&;0MAd@E+j5L7}P$LKg%}s+re?`ZeqBFAAf*@=RWHb9fkHS1%yhn<-)%T|Y$x zXFnyP``~hsNb0jk{`u4QdhS=P1d6t9VHsF_<2v-W+H5u=x4q|ejlC{aKrOvSa9I)H z6cYSP*J-5M#mstW7*`RIBAD4NRC3j;d&sio*&vf}-70ZvSU1av9;X=t;X*}Ljc52R zdrqV;MQF!iMYASm@42qIkKi6xU?PEW`Ii;rRg=!nE53=o7jycTl03yYc-Ge5WUd={ z?yn14K2KV>J;$u>QG8Q#`cbrg1(8(+61W|r;*Y$JbB~Xjkz)o?{FpgN%@;{2>X6po z6+M+-)hqPV9U@{C4Mkp<+xt(=Bw8(Lbxt|C$BV)=`L#QVIE(KyQ(h{$&ZYgGlJQD| zue#p4KiM;1hc#|V%1OE7iUg8-t<movHCn|rD<nM_yM`+_Ji6Cvjx)cw{A6RtsxTGv zg3{<Uvm2HuEA8K?Ep~g{V3!dp6hx$)=F&XHIU#v&6tS?Hj=p6yCIS?HOiKpXs(S_y z<FATl#VuU85t1%^&-*a^I((}nCK!BfyrN{9P??9a^*AF4y|~;uKJ@Z@vwy_R@p!_; z#*>$tKa<of$k*wqU~j!v6)}hfGw_o5PE;fkv|i=~CX7w5%!a9`lb6O*ns_vKvQ8{R zDq}3qJy^3aOSV%EE7yd3+CbbKfK5qrf2KNcZv%f8xS)<6V--7dNyNnhTEt8386>8) zB7O8VAsou^CQg4`xo?QuXP^mpB4jM$Sil4duc+t}0J9&)54vwSNmA}CsK{tjAd)?n zK~X|v>=l`$>;weSMq?|&j<6JDXUj1Jsi~aP5Us1sc9}0M?8$fYfRvv-k#pstfCOJO zNfbOA?td4=K*+S)^x7B=3lAglbLcJJUJ!649D)S#LC54m12$80c9|M`jv$t>`<w<e z&n81UO{mP7juVlpM6(R(=S#t$FWK7&$>XUHN(Md7hgBHhd@F)SzrmP3a=$?;!UDvc zl|MxREzdaU7!J8mnL+n+Xmt7j)N=`f`BfhR$Da*$sI3I`7jDlz)uAvivW1(K<;Jl$ zQ~&i`jxw7__34~$yo&@K{Wa5`q5E|jeQVt};`U8ur3eiUzw9bx1Y|wu&h_Q<C9igK zTp+Su2<Vdi#l<^(Nn5HJHtse8d-Ts=T;7|OAVPHhYGZO-d!7ZPMo8f}%kC=NJy<Vz z2jV;@@|1~DR^~J7wx}?&l_9@6y~x2|y#M@AmrPo3U{HGX$cxL|)4fhPl5trJp+TWD zKDqRKiyNaDA0bM5+C|)9-*muTK%{m`9**f2SlX*0yU^p$J<8Y%W+hyWFAE7mQQBt! zQ%aD8p^5FWnHub1FH58B&hFj}tiOyWBHe4CS(!HHBb0A*wYMJTLMWGHj%XzNM6yUd zi~M<XkL+pAP;&BTwbh*H2kb)5MmWfe3h$NK<B$A2Um@LWv}{{46-3~pb~#MWykiE1 zVm$ZNey3Mwz*m#D%?};cZy2_+gea|A&py6TN{aHuHT`-cpmr(UUHsLBPqzFdtw6`# z&;jjdrd4tHNC$Msq3T>>(7ct9eKOv?W6ySY_bI)7t-V|2n6}&2mK*KzVuM@w)FbdQ zO#2PuJrk|x1)HG7mbmNZ1z2@$Yr%VX#2l)uDDk&@vf%h9?qE$excoJ=@4D-XK*{d6 z!QT!0S2f*#<`1BhL^zaXQ|YH7HnDVmY<d<H_Rg8xE;t5naLcKpUDK=?5<C8Q*H?=E z+U9UdVwmGEbwQWbZP%a)Zw+%e23p8=)YA$Z&qx=!R6gyg5EqeINGLfde8&eyalH9I zq`JTM`M>slMi$ops`D8CRp|Ytwfra2592?CmOnDhKeeB~Q_6po>i!z}uiW#0U;SbF zOX~SoxPPWPrhf`m|6{7t)Uw?WMfb_oV~mAIY;-*0bKe-!xu9Ebg83%y?}5a?bXk^6 z5n2>q((5w=dyO%kG(^G(5*dn<J?VP&K>n)t8V(3cGm7GzkRhQpoRBxfQc0Mj$-g#} z^mR)F)j32Rkn1_iQt03z3Fmjz!0pI=o67PTv3*DQ{0h{3b=(!+)>cAi1S%{xSodX9 zWHe3hpAls?EJl2Ig=^49!k~LEg!QH4UV(F+9}`#80>mgxM-^yMrPc7+p0G;3cl{ii ztP1>D-St4?KCbJ2Dz0l_6cnqj1+#@L?=YXb$&wK1&A~@cD-d@J51KDPX?;3nk<%=r z_qxI^ymn{s4ks%QKQfm|`>~hn26E}<C`WJ84)PkX{Vw3!1>JFBD*VJ$fGeuKM~gTw z+t4Z75E|4&;P^bp`5uPKmZ05e{#cV>eMdU3OIJ|<jAV|uEK{kz=`dRz0W4*B`xeE4 zBsG6*>o4cv^Nv|MUXa0MNdzn^ec$P!IqaU(rHv}Ln@|X9pJwzT)f3Suq5?K9GDMrH zdV9$=en%8}-^=ZngBOoxhzv6P;x%`304IkxwNPs;1V3E3;F1t+)$WGz*bW)Q2u4qX z5y4G)8!~i3f^*z7At?<*SMB%0h6xRs7C*S~33{v!i35B2xxl}DC6NA;-6b|2*$t)s zh}WekV(szC90lWC=QRS)@?91;M;}Iea*U$(RDH6tC~PJ3z{WtOAAk;R{g70lCeh;~ zt`$=HK-eP;?6`+0UoK1v<5!egfZS#!3Z{BtO2x`q+<2n(-42bCDq7HYcwV{%^;&qM z(^6_UU`vrTFhn!wN|A3_23n)5N$-_Hurv-mJzHU;nG%0wNAP9C;zTEt!}{Y@qi@_X zy3{$|q*%lqj>EMXh2TQvjdJXm*`u*r!pn~%m5G27kzI8!1UJ(OSpP(xoi^D|<r!My z@;2nb-h_BvJ=CchG)nB5!~uPMX?czd<S;883-w^rr875zhod+qr7|WwO~hMkzJ!c( z3F5nFOMU_+N;V$)R$1*Jh+zQe@~6^3fn-m19fKbnY?;B9XC`W{>sszHBp3sVh6L&N z?9UsT+`bI24?D!HrM<j$JE$6+67HoCAtBO{6ItY{-h8R-NDfXqB(^X||I6TOddM(* zg;$U8IHkb52SoCobPggUyfQD6T{_%YR1*P}QO@O!IP6}fThP!Kjw1H8{v1n7UbM*{ zkZ&m!Tomj(vx>a}O^(GJY*`lRW{{=Ih$r%BQOoA>M&@1P-`ELC>3$R;A(c>#XFAzx zlO(z7I)U<TfWnLNrym2Sv0J{cOUI&Vh*gjh7NM1wyI=PInjl!SOe!HnY(Ym<@+g8& z?yv23R#cJG@7Oc&hMXm|wn(@H7j;fqMM>E2=_8mS5h<^ZN1slw=ko9WK-3S_h}V6` zuKkpb;607QL4t%k*!+ItzleHZ6z`U%2B$R!49ORpX-Q}+0e3)<1V_?vnp0g~`dv1r zDlkLB%L&=R!3p;O1d<VvqZz?7cS~oUj>*J?k5L`<D~7Bn<`aRm^9@~}jn}(2+L}qN zHSv+azi%W8B?*PJ$h9<C8HQDECgkD8`A+B!CuWd2W$nOD==57;9FK@?$m~PH<k$^^ zp4VVa0{4bAa1U3|X@3%+vm=NFwNL)LmNnO?<UHjd8g_^@76gJjci0HSYNuE1Tm@qk ze$s1*y^UE~ol73?AlUqhb;CdhJWcEJjbjGQaD_3EP_L2CMY_7t)~H<O{%G(1<u9`K z?l$k+v-fP(&|2tLSQj_mE29}<SHWb$QF?<}OoettU=u<&e`a}|I3~2LW@?)U^8PCh zEQHIR>96dXNarq%uk6ialdrlB>x4GuqoCJ;HlukzR3m72N&elwvF|yt_Mh<aW0AAg zJGw<1Y7ZS_%cp}yW&%w4xafSXMfxrzs}`w8=Uw9S1r8}fd>%g|gHl*q)Z>56j}i1C zmaimVO?HXsFKGoy8sv+<HykV|C1BvP_=sReyj!$-tQTONTn?{_6g3P~7{|r=Fr;_| z4IOv6gr`2(v|7;PH8zc9Oy=7~7-X+tr=U(p2Tdl7>Zo=VTsN>zhquy?klon|W#Ji$ z$vUfACBCi3V|T8s(e-EzyW4wyuQA;U`-vfPe@iWL&C*+RLW`esb)5*2yRruW=X{&m zAs9DjrycCI@%jAo{{hV_LJ{SJfiXcV#7$4QXiX2u=GTK}WmNnXMdX$S+&k%K%ncK2 z;-@;8jtyj07M^`d6(^fjGTt>;apBjbtVoMOwo4PkHxH}hlzHI(9@j-r4bUJXuyep5 z8~Bt-gia~WjGiZfdhi~^P{zQFO1o}&9OUxW<M#ZD#l3OwtEfRg<D@36!UNccayn#( ztUvjzxg^4n5shy8(Wke(m)pv7N1|}nbC`p?ZCoXs2V*>26>?c7-gUs4>%g&Q$JI!n z5Xzvtd9PbZeYdM-=%-KI>JCJ*QV|U<eZD&pdL2w9N)KZW^y!f&mhWhDDwHLNZk70E zoQT)DdR8x)A`N3Xj8!=ruPYf#lS$@_=7X^mtL5M`z{2B@K$wLhJ$P5yy!QpXR(rbr zzcbF?3I1=!;bdd{uX6t1jiCR8ahU$9|NkJ(e=*MAEb*T(&fg>d1s(tQ8RuU__rJoM z<9|DG1pliO_h&}Ve+)Dh0(vQPBga41+dn4C_;&;Nn*|jK82_pB|C?{e^zX*qKfb{~ znyrDAt?56ULdSnvg#YcmG5t$d`L|<IO#krl{&{MOk${PjfrH_HHr%GVVBC~cdLTQN zx4F4z$hfaru77t*tdmU1W?U7?Xi<P`<}IQ_$>dl2eV<ek@Gp3#vQSV^5We}qOwKDi z;TYgR!^IViDdmdsW0>HX&N@B0WsG&S@>r489BOww+P?PL`M8p4NNirw^t^2TJpX$B z__DkNf&xPHC-e(^xMSrF?49-M0X}>O0iw|AaW8Zq-#M9)e+2<jFY>*aVEyX9ZifdF z1O}S1KRl!Th<sKCW{m^OYjG6Ole@k?tq}t<+m2i>)AeU6Dm>^s!D)uPpkB7>8gYoc zsy%s^S|qFY(088+g`vxV&|hXR^IFNsv4prae%A!jtPwaqYUZ_k%?R~<;N;pF)#c}? zGaz;+wk6~8#m(ktYwNL%EBE>o1u{7X+RbwT2D@-uMFJKN_?pDXdL6c7A?pM7JGgrW zVH2aELXiT>D`ILFELXGyqF6b5fB=djW3E$|N?r5Y+H-2>)y>6M1`EiasIVi^#4Y?4 zo^in6u64<O4Hg)KDjxWyrfbB{HB=lZ5AsX7<?ZgyH|0}LZ@K(eZtu3hHCr7BOI{%y z4!CXJZ}jgN_vUu!-u!_Rc%YvC&|LvNA7zWNXA%nA_<hlNKzu;IzvI1r0&r*YUhzTP zZ_g0&aCGh=5DPV}rZpaVAaxv}x<DT5kg{<_PPOKoef@YDpy6iyYUuNjTi`cPK$8kn zdIc|cU|aJY+;8#lfk54mt^yhjkiDR~<6wx(maFX$MQ3%kzte65@E~<=Bv;2$^3jRQ ztSZ2j8~rpf0-C>q&?(zc-@o2eVn}vPo-tDfK11LPje}oyv4m^8PpNB8)K`1-Kf79% z+Z|0>S!S~47FXlSYo$ul){SI{WJfCs<Ly+8DKN`!-n#HwCr|4(s?Zz9&1TP=4zZgh z%i|`Cl7zL%kO9v;bmN3}upqvL)s&{w+>Y)8=9!$00lck`c~Lo&Ob+hM6Be%q*<GA! zRVJSXQ!Ev0UkI!V#Tlnktc1q00Y<?)n`X?%a;&RAM|TU{vnjki1FI*q@aapAQ5S+5 z-4sJ)Y0#a5+Z7rM`m;hg9SwWT?<4j`v_UPd!{p=YjbFjgeC&h?ge3?i54T$SiD#$! zet<Z#lf~%!sfBnX|K7mHzUR{d-3aEnGP^jPYMnZ_vYOSP(Lwv<`AO4CI|-`gt-DXH z3Y@-geP={AL%TiFm4FMsYR$LL&*-(m2%wpK5$<l;&LPcq?<$S#4qZ(By^4L8Q;orj z_Gx$%{xr?Q?+6?4G_B_E>u?fgTb7>>vxGD9Ei}~j)8G-{JNYgPa~4~D%f`IX|B^l2 zlYb_UB3%7jhb@RWsflHu_{X@ipt6g5!L_0Wqe|6u$t-V4DC}D2YQ~)M;nd`mJ45e6 z$|w%Y+mcw|-XTjxh^`LemM1B;m`$2w9oQZRMW*|+mLJ&=+h-~M(S!719Q>J9AK99D zC(C1*7gzT0mpfg0Zo^GjBE~Z;C7xK-XZB-itH2~qy}2;1rR8wCGf6Nce;V|Z_0HJh zekP{`{EQV1F7`m<4vg<yC+8D}oGk}KPT>xOT1+fD4ySinaP>=b1zQS7?$c8E(8USt zHR1>PXL_i=lP8eAv1i00;*8p9l{T8XwN9sh>#2s3kwHNY-`gY0Y&Yj%-*mKcFiW43 zUJHp;R)$4jJ1Plvvbr0x(c$yfS^<QGWgw)M&6!#Ll<{V(ojnLmNmszyqw&Ex37nWK z;&hx$snz%Od=0UNBMlLyNs(jE6Yemz@c0%R6j0_P2S3#(sa$TXYszQ#?I*R>V=;iD zaLkk%BMH;`tf7l25wiVIN$oH&8m_n>{uo;l*Jz_*N(cuxr^}Ay$8t9&1k&vA6LIYX zfr1?yyzA4`u?(jUy&~qvk!&_;?$wXdx#hK$VTZ2h2~Rp{`;|o%GpjFo&kiPThnhgs zt05;hj7bZM!Ofr^t49gt?}WP4ISm);xh$@NxM?*ZS4=8_G9P)kP66CZ%xgqh-7L&X zrl$=_x?crS9p!xXIPTlV)(RBA6munizvy+UR!q5!8QNS}wp9i4n<X(X^_MSyy7M!p zpewP9s@<%fW^w8SamP`KxMNzBqzz9OgcyH!EUlhdHWuPZvN<;z9hvXo=%t0RqP<6V zMmP10kXrY(Q>7}UPnIdZyOSob87xt}09u{zqG>!(G=3^lQr<UgC}a1$f9{%Agb)tQ zb6}R*(E*7(^zA;vOm$ro871pAs-^n$@?BG=zlYvIn6dP+`wZL;53yg=8whW1qQ}NV zf6u${jXzPVC$A^>rC6vXOt<N%hJh=fSnlK5%z`ZIG%vz4*ErB)b1f=9)MJDA(l8WR zje3XhLm=D?1En()*OIs*G&<rOBE*4u#*4)#=0y0#0ns)zi1_S=OU>HTzQ{h#i6U{P zosc0uU5tqT3176DrR+eYfd!DFRSXrez#8ZuLJXNjTl@MA8N%@)PF_RbWH35L7PLZS zK1Xv3tCQNK*Q7WRj~7_cBnYY8MWzc`n=2Lu919^?#-fOCJUSC?B0!Z~4J!biYP2IM zS^WbTVBXkqp(sfgsS;YLyvj%>&lnf+L5C<UTqSCoZ#lJ`Xw%%CagX03O;Gm{+v`^O zJ!<39A0Soif%8UB;ZKFRRUMnU8Fu}qdMk-hpKx;g3v7cn9U>{!Ik}o<uzi9_Gr%IF zOs)~dFqKQhUY<W|PP~dsl{UI9>w+6wfLF2dfayX#f5EUx6xo0G`p0RrKY+|a%~RG! zCy-TEd}Jv(CBkou55Cv)9K&}L56Z~usm;fAuX_Mr%9~5W4d4TJ1%$jS_bqU2c-6lo zoW4k!hysKoIP(^fFAQOiM3zu6dlKZVQ^_i|q%*LrKzWyhWtB*}S>U`e^jaPxr=kT* zv?em-2b;{^)Y-nbC>ee*d*BBYIQK#ZYWO?d0Z;LZ^*hcN*cZzeNbbQeqO(HBwM4(y zkZ#aXO>81=XnD+ZPG)2qn`!jk!T9uHHvEjNA=)DBpzl&01DQxh`o$7>Nu>wXcQ!A6 zSxHil!UVrqH7~HrSBfXZ$D{g^<CXgx^j*9j_FELDL@bgrFma1V1OW9wtZaNSHdc-r z8h0Tw3;{j|OEuTw_%(vv3RLpB3=h>YXr7_jZf{13d|m_x@f9jJWTBlUg&yvvTB1X6 z3U<Zp=z($cQV#+&4<2@qL*%a2;vE54rk*P}k3X6Z$tGU~9d!1?DbVlTq?$ae90Jm$ z8a{P>J>d5&Q=LySG#oO37bMlDb1PRdJGdP5hP~q(uqsR@_h<LTWkoAhh1)EWg;Y@r zh#Q5NiH*9r2E|a!=S+EotI3oUOe?45%~=K%&I)f8;xaJdVj$*L8`qGltyLSI1)x_J z^)-O51&@)#?n+1XP$Lqe%ILFy>7~#w2l*n|Z(SpM1V>BG#S9&Yml+B;E+l{x^IaxS z%iwB-;H}w<6_gwfuUJCV>BZ3IY}J)vGl!#gMOp9pZYsFCY0$JX>!={%HccaFuBfuP z(CzGeT||k1W?HiIkYSixM^(0nXLgeD6IgKg0!!H0dc-YqI~#1_7zch*8Q11?0zz@$ z>0D!a=VeZkO48)8=339u&)!JAJ9Iy&HVAwRHBpt$t-QiFQlKT7zN>#D={V3S0scU* z!}`^Pi9V|OraB6>qY@@GDU)ueo+Cl7A3)?tBD$<-C=N0**dMMy6-fc9xXAu1EM&2a z29F*AT_XKZonE388rz_)LRgfI8XOC=vPXEHC|wFw_<%*Q7({>Vt)`t*e7R#Q#LxSD zfc3r>Q~hbI4^5ASO`xjWT}{X%TVyY0$JcPQwq@r%MA`XQ%>X`V`H>D&Iro`aRh3m* z`+kpzWAVT;wvx=t!1}bsI+KvbxrKGj`PJ9BZ;M@fGJofJ^#Dg@qEKQlF&;VV*h*`F z6<2&BTpB~71R=5p({dCS=(CrfqctG$Cwb(gV2X*x`aG>=qc-V`MjS56Ju_KL4*Y6) zz0&yYZFqgfx<0yDz~Znzhj?@>F_pw%7@4?=I2z5HvX~CMWjG)%nb=$*t&Ids8=kMj z4GkEE*(RDU#<`E*xJH|N2`AH9MDuLJb8qmbcmQ{e+xW3yCfEyFXKpq2gQ@ePGk4&S z`OwSDC*M%o@A=2ufn0bt2?9&t(y7J-lb8ktZuXi&3&EDcj^47~%nCJgzK6OVLK%rP zM4PeMl__{wP*c3Q>H0#qwC$@8AN#VA;k@hsi&O@%j55md;s7?Jg%wMb?xLCfz?@UA zCV3=eqqs}lK^ndJk7f&x8f#TLck>Wq1=UCbUi6xZo`-7Xx&$(RK-UluYU)r00K+zc zkuH|FqVk)U%|`}e<9$WQ*($bgpNx{~hU74h$UXw}mS(nB$<JgQc3L!^kEUPCk*4f) zo+tH-kPz9_S8|i@oh|t7mbVar89g0DSE@W<mMI(P6c+6~f(dr;$Q-2wb_P?8uHLH8 zXE&1~8}EQNbUxuKupfDl=}tgl>%yFKd1m56`NAd-jbcs$55-}qdxC+|Vv;N&gu+%% zuz<Wizp}=wMXs|2M*`=F431PCH7o~InUY2hGZr>&1tOtSSiYpPve|DFiai46T?It_ za<3~ss__h%R0mT`^wH2%$l(A5<Mdd%C+lqz(BCNCd9aUD87ccjidBf%Ks$LQULj95 z(Xp?Slut(|%jHT{mp$*gZOtUQq^CrCpFumhh>NewKJ8_N)CQ%QCJtcFlb^x^da9In z!(VTS#m?L=DjS#g+}bd6h=;o}R-k*|Te#v|01Qa#MIm{*Bz-{nM`*qrNhv}vQOGD4 z=5x;tPz^shon@(%Mg{DqDV@D)5FW*gO@=$f;}ZbiC6oM>vIBHId}e-Hbn0IB<g;^k zGIH1Tj+n(_IjZ-T7RK6hm=*6WC%br8O(@o%#!sXTT3pc28*}bw3cUXwGtu&=t`5M0 zPgbC&#Mvj)CSnQ~B+@n#a&(MPQ6k{DMQX5!3oM#Cs*^p(bw}%;$epsFukdDrVe9j~ zKBIbGid3nYa8c>OyF2UbID_%6WY;xRpJ(*@!gFyJkR9So+?RgOxi}+o*ST-+LXHvl zTd9K)#-H^=I~{?j5?PEf76C2DN+1bJ`*YUFk1IZ|59$Tp0jhjH4ju491TqLbyg~$P zCMwzmM;MFRn;CoSefW4ELBPO$tnES<`FSL7sOYSXJrkhcBECsk#ReCZchAH*M91-| z{fzJ3&U+Tn*<r&Wyn#CsS-Y(Nd(HYdCu#W7hS+Jvs+-=Rwng?RiZse&@W3=HJu9&f z1V^8xdpO^2wdIG_<KSvtPL!d&z4p$4E!s>0dN_tc<xnLB@Lt^yZMqI#A}YOD^XhC1 zsPlHVfw@Wel-jzAS9#g&+|G>1(--Y1L@q1UYDoc$Iu=4yAb*+ST}RFzp}JD~IF^}~ zeZlEEqx$Ze2e+9W!}1r7E=|&j`QqT#FIg9y!Vp7-8Oj#YnTn%Gy~f9{UOk!a8)XXH zCsX?e6a~^P4Mw5jbfE_+;w1Dkov`uZkddmH2$hCIrc&5VHJ_s}zUAvbV%n8{OQcr& z`tZzIh;N~=GXz({<XXQ(-pWP#5VwrlJjcjB3)ZPxW|w|K?X6p`px>cPAxtg2AP+4C z*Nw-Xga!UeEDbj-f|IC%TswJN_?A&nX;i6Fx#c~##LBHKhRYM%kCjuMq0=}!rz3<7 zn>38xFqiY4H3cACh^y|JN8H80g}4hjz%o)@T$cr~&{=mISSrgn+)p!up#>~dXW`;R z{VG7S*F;k;LQMlnQaU`kljl^JCRoOwiXochNx|J=E5X9gWm=*+E0k6IRh8`$hc1j} z4o2vCOll;AR?UzgZIoxP0u9V*k3mg9HxG2VkOsB$o;g6=!^s2=A)<XrJ9CKta?AaD z+i`GzV4c-R+CFr*XEPb!PBmF%c&QmmjAuKk26v*J`}if#8tg9L-fVnQCFys@-fuvn z=K=!VT0>3r;4eHnE1@_~pB3w^ST9%Ii2GK0-(0=YNU^5=3;>B<B-z*ZuCW(vu>Ryz z^wK8Htdtgi_lB$hu)_ly2c+;s##T6`FheebF-kL3eGAxUp-;B2yxbcYGyQ<T62b+% z1wy55r*)_PA=Vec=0>TDW}E5f_6x1C9>ROJ6c0<HHwC2qMk<&!Cg}=_wH9+{Np*EN zIe{T5sz*{Vp{C*~k7$SfY_T5gx|<AYHIka}Z(h)*d$z%~+xS=^ueV<nS(Z(6(M*!X z#3{{1!vk_K_-H*_=~E)n+1p&M!H=<!_|HIee%-T!7(o~_8yAf2l57@tK;&Xn>b=m5 z#ocpvGA2KzCv{lJV8_6{d{cdk@qaIHWv)r4DkSNP*NMepAO-+ULKULeM#n_U88qLP zr;8C&1HhT4SDV%e7O5yR<V%G@k9s)tAw(&O8hUTc@8_NE{pkshTRmA@dGh>UT|e*l z1`0odk>F+RhqKvrwC5WAJ0+{{NxiA}3aQ!qeK!s?lFauW-@Ur*ZpDHVpJ$k2(dkfq zm~ScR%FHYHd%-O<vfVchfcMFbh|NGc7hs6?i~@E+h!O{o(|DLkwu$*jMusP%Bvz?# zknm8E1uG?T?O{w0m;$k+Nm}ojo8mH|7y2bT7qcWx>!gbn6K?}0E08O*<`f2}FV)fA zrwSL_Fa8`ZWJ}3%i_C}{`BfZ_CvtaVpvs&hDP#3^BNVNS9=bR_-$k6+XH34NkYNvf z5EidrCUs&AXwyJ^h!?FeObx_gwcIROHK<pAeei#=g}*DlIm~_i7$^0mQ%1sRJQ6*+ zrX1FOsR)*WvBlWF{27mvubqGLh+X?)ce>(g(gY#POK!xn)b8SYsWRI?ELiM160^#g znxoZHphK0r1AadL#<iqb39lJ~OB_=PXW}Tha>Ayek-^9APH&&&<VQ7|<RYO0&>Vsx zEGs|@0Zz@!=7R;x=NLOIUu=TI%<ISTHvrteoeZ6f&lQaFPH+Wb1d8Ly?|VAzE=<eL ziS5gRep_SNZu2_1H;y>>QSddQeOkzY#M8^T5s?+c=KHn4r>7k-`i_3-Os>Ut@xh5* zo{SMk4X`#y*Ow59reT~rsw}_l4yN9@!xunJEKf@5qiG!v8Cl|bF_eXwuSBY&=Pg6_ zP_Z{?qREfQ&@v$J5nrO$R%nr&v)x9*gcdidh(dJSU<M9d!@&mZ5jsL(h?0J)`nLM^ z$r02_TsNwo|9YZ(ljK(WQ7VweE8d%fC%o*A;2y>kO;brvRSvIeSd}n_9z8oGakjZC zvK%T5NPczMFQjqECyxt}L91sN@*9qjpwzhVR7~!>F{TRIO<2Gy3I22RFM!gD!s{`$ z*UR&Vnb9pTJ$X0P?+<FNBhRCEzIcz<VVzFH;4hwX)fc#qlhL%r)V_vbrC{!SoNoJ{ zw+|f$KdE_6?=G}gl7sco@!YzNKRYa^BOAq)c^D^af_h^P!@Uz{>~%?v^YAtkuWnP{ z3diq^oLpWmP7>}&=avpD3j=NfChp22bf-119PE=+!5JV5&66c4&`r$BC-!1e-k6d# zT9Z>1%8IZIhyv|@I_Gm$$>uU@1TH5vFG;F<r?-z&21cWvt*$<=4y}fc`KDot?XyRK z!H#dS3y|1RPzn)1DE3yu`qOlwD#lTkt^&-9F`2flwhz6?GU3DZC7TDQAp%RBn8@h~ ztt!$+Why!NUu)`y@b2Ayu;m1NC?wo)LfsEINX@4oTs%xO+ps;Mvpr4IW##<JH=n`5 z%-Grt2tA^w>S|g=iS<<NA5|OXE7mfwu1qcIwhqp1k@*Q@Ks?Lid8NWw8&qsQd7v>c z{Q{*NIMM`Cn(Z_z3}aTVi8KTsd~YD_g`-Fi1rI-4V9T<Y%HcEte<^;d-6gKm6-Gka zX6>ZR%qLK<fMEtFI7BK^tfaD!`#@-=q>xuYDoP*<Qo3a#tFU;JTjYtSdf!$z@-5c$ z6voMW?;49u!?iX~+V|tJXK3C%w+HS+N0s>2JiWoL=4PctkBv54Xz}@-6-O+3CRKS_ zYwp=)@OqC3L{8c0g-35~K2LWlrr!2Wp&*9DADTv{F^VM&Czp2@aV!vJm!%D;2h8hx z-X5GqXp?7CXp{RT^riVF_+_eQkE#fYU?Zl|91kV!0TwL}^COaT#E(6wZ`OjZt{Y}9 zxObE*=IV(oq-YN5O)UMW)1*s5hLUkmZC91|t-oIq0oI%6k>?X`m<N4G<wK?vzlFQ$ z5?v8n`dsV(xLXf0U20{Utpw4w$LcayEZi~u<HuvU_5eTN>(bvGDoYirhLPssJsWMS zi<O!+S94V^wNYVC+LC4!R<$H-sx}c96`N?J@5rqM;Udl0jRPHV;Em8k6SPOq!O5GX zRbokDs;^tBje=vOL9)=ZDdq!dD2Y%k0q0w@7R$S$i(z&1xnam|36<h+ALT47S)y_L z<`2clw*_rp2)1&B<4_i?rRw~W=wg1oP<8@<?zj(Z<3^39^GQL~JyZc3M6TdCZV`bY zVGay(dP*$ZtN|AXEDt$Q-ezgtML8q2=BcuJ&yMZ#`pzz9iz=%0eA^gr@)=93DwZVn z8kuM6Emmg}H4!JfYm364yA~&9d5f&s$<rO+PG&c2LTS$Xx9rPPS=mp^aD8}gzavrf zO!RUrnO}3?vA5wYr&&o%oY6kD-HPi_u7VJDmNa<J!=EFAjrN8b2Tk-qrly(`#l#6I zff?%<w+eo}xUqJr>ayGVr8+t)bwzdeuT5FH9$j#fulz#4*_6eTKvboP+Jp{|JK~%a zcQwY+fiFn5;hOld>*W4zppWHSl?Y8qzG(SvL5o1g@&2%K1StX2eN{f>n3NqwL=lKQ zNc>&Cq;e&lPn}eXOi4=r89~uaK_Xg>AVc_p{Nn!V#lS@P*Z%G%8e?OAl$eEPWr5?@ z=M%@`9)}I-VuZ>}Vr~e;o5?`-s#va`wmiqW?(@3IoqO&rldthvejVTAZ)N?bk%6mT z^l8+d$7b8m+V6rJ>${sA_K)8UAR<55WIv-&?LSdoI>_Rr*exk*f95-wb&JB6D_9hC znQ;mXyQPsq1eqiY7P{WxHi!<>d<cr9_Q=&M($6lK1XUu%5hxA;)rS&5<+js(cBkN( z_RqRioS@dt;jpdRG7{5>?_tJRtu!6}_;uCReA79%Q0fE2t$&|SuJ`raX`9Q*;Bell z$M5u}^3g1ZAMDWvb*BI08Z@{tm>l3s(>1Q~J{3Hm#=q6@xxp;|Dk9f%VEH8b35+k+ zvI+H`M~&;s#nVHjRvo(wpvGxRhx=Nvs2T?4b&`ejkC{(*Ce+bfDIs<SuEZraOD}>m z$N)sJ_EmxNh4;)sbElx5AIf7$J>xp}nDIu~z*n--gHpC73(LlMP#J+EoTT0n(Yb=X zun;*%x;u_ihu+olKW6kQ1X8Z>H5<IKf~rfcc?V~1)~9{rx(*RETVw0$Do`RpwEE_A zZ|izJ&<ti@Ro7!>@RZ;0-Wb8?|BZa-$c=*^LZOb0cQn&H*-5G<;h`OxK;<^uD|U#u z7A{_~oHbM^E4Q3UgZWS$tu>=|k)qY!4&Kg$WFpVudpI>DqGDufe*-L(JTMKS;h@9V zs8A!j3t(zT1nm2&I@`CDNg_jJ$4?<)8?I+XY#t&B`)IL#RZ4|G<M&Mc=-PQC7kV$F zujrX5EBC#8f9~y%Q+m%9zJ{?6*^7SGKu<%250~Sk#?f9+;~h)i-=e2$TwDwGUr$G< zq0&>G*TJ2xT3+e0_(PgURXX~#D3Y#LUUxID+8c`sMZ+WGz4p3$?^tsI5}oB1LLrIe zee-*P%e;Go%R&aS>PD<#Ob)UTm<}NVgK-A2{)SK~?`lTuvh~c|vNC%LHE^emL?&qt zS5nJJquQI4Rw~#$*z^jT0((DmAN#r;O?R=A)r)KGOTmpT;Ch~awzz8=&bCyiO86vZ zfd)Eyg@fG&i$jINT%%9pH*6W$mQ|I0Boq}nG+BV{%QvEBBs=nweTz{bim4d6t`sob z;D2E>g*)b{3pjFW!heutL`GBumlx0Oqq9zGk#e7hMO=4EgVG|^GUyhKh&0cUk@1AJ z7it7%UzIXYP4U)Xx7I|pFLm-*5|PySIWO*Hfjsw<GA>*h&By1<*#uf5V&XiduXGnm z`P8s`_G2HfYzw%yv)Zt}`{gt|l?<=H*O4p{K$h0E)Tr-&?Aubncb&sC1Y`dR!nBKU zDwd31X^hTTX=U$ZfBC}%t^Zugx?)5#JmnP_q?Y9UoyGG0LQ;wI+d(-@X+iTCAb`s= zJ#&WajQZTLI7``@23r(;&W1`Y<#t#XWb7PH9q0asxu86~o!AyE?qw`;b%)K?{;D6H z+8`x6rE?iBzd<d%uFNvxk))5N`AYh?`1Go|7i=z*ufX)8>Fjxn>FkA+T*23_qU||X zoPGxxs$yE~$!qJw!x1Lz?{#az_Ka7k_rf|H1&(vBhQR{5w7G0)C&Fa4Il7Mt`iSAM zrX>1~kSytSO_jclG6yY?Hf+`9+<iJ4risHAe<UbP6;qw2x^aD13PD`<5A72sx65$8 zMsC&T<kFR#1?&&4r~bpbi@AZxUfTCZ-R6pcyp0CX&s*CY?_?V8!Oy}}G8h@(!0uif ze)ht`n^(hLYHhf4#?af{k`DD+r~ikxw+xPJNw!AC%xtkNW=0DvW@aXfnVFeoF@psb zGc&VfF*7qWe(f`J?#!H-x%bD5*AW#}J1a9QckQf*j_$Qrb{}JsfvEaq>F*WmU#m|z zPxuhIxl?(0r8j<AtQ>P&0At_838meg^Bd3I%CW75be62Swl>n#ga4V08(a4MA^5S~ zU*}9YniaW+;s6Y)u|=u~Lq*lVx=eAk(DKF+%$@TMxF!>nIb$hKeSk~WP|rD(gu^~M z3Uy1#odehKY9v&U+BBj|Oa``ouD@R1nMe$;5*~te$+BT+6w_yPLcmTR>T?P`KTCqH zhN?3JBL`_GC6qd@gF2kzxX7`ZUgv9J>Pp&-iOu1{oO@=Hx)nPf1-H}K_C3RL-sN%q zf|aF&J8DNzEBDz+W!s}!d&m|GZ_V{$_@^NDXq)QA_Q>L+G~M^Ys`q4!0SopI+z!`= zbx_GtOJLdOg5_>a>mayDCY@bfnJjAV;VWr6NHm6gVFCQ)ZSlS)p@BpN8~Hp!*NPG< z+`_oB=js(2s5H^i(=vNIiYrBC7)%p1reo3)ou;2I5H#7qny|7kV3pef>!rdTm|32n zA4zgR%-18W({R}*cKzC#T8%9nU<<+#)TYi`-lUlJLHdkKl_w7dIxU*6r1px7MIk|K zX|t59&N@8B1GC8HG_BSNQK#sFTtiTV+|uaD28%_}ST%u(B3%iosKhX}yDa?RVWK65 zz)BPDn!>thy${2sR7%aQR3EO&1Q|Ck)G8Z4kf4YXpnqtE=XavR;K`eR*sxiT8J#-q zyLS%ahMl({_*d$gfUlJ(a%Fe!wWPjlGo{bsb?aQ+_3zb$4H9^ak;Mq|emQ?3=lk3u zj#))aZ)V1|<HR8VEy^+rmlmn*i}S-TfGyY*1j-O*Qa?~cLDa)Eo{*G-q6=KVWjw9c zpi4rXky<$Y2q|ht2_q^CkK3N8#`H1obaPNLpz|Aa)sJkBb~ReR88(8=ekV#)nk9&N zIs?gz4Pyk3JX|6bYw<cL+tYB+sLmEMkFEIReHYgkMkqm528VOca-%HvPvI@~Z_CP; z!^-2A9qPk!XXxAJSE<8kX@d_w&efM>-VR@RUYa2Z6xH`S7hPm8%$+63eZoI7Y=JRb zqsLWQj@UJABeLQ++~(ToghM)XWhKy9WMx5f(?v^I*ySJ0ZQ<9XZ&4wkGmuix%seJ| zzik-uefzc2+$FO#ejl4z<*^v_bIM`qN>Z|FNs{KWJ=FwSA)GHkK$ViC9XGH(tHtTp z_(MmB<>;F-LV&EigQCyHw(wbN96U~xQS>pSwT!mQTgZjit5J?|ZtVaWe8=nVymqZg z%BPZnrPWxP>)XV50;JkuFoA-^%@N1M!BfY9@wo}I1Azl7{p?_q!bF)gdX+eLLX3$j zZT()$I&lc;ngAv#vRNgp7=Akq9sY}M!g-8|AVw-&m`;L$UL|KdreMtC#&rQj?YdA( z^E#H{swUckd~S(Id|_VaMCcKTc=%3}v*Q$MaM0MQ2q~;HJviov#!jD6E4hcIfmwy> zHp}yE|M%jbI?W9{`k4W{xCRqvkHM`MbZw6Sa9T7?xC-KiHv)f~y9cr7YehxY8u-@A z#i{2wNhx(aPov#Un;R*v2Y4%nECn*W)~4fgGnr06*~Ap_iJfIW1OV$6&@fmeI4!sr zV(E5N<R~REj>IC*YzcoK)P`^jvm)R@U%yJX30%-cWGk<eH>x8oeCCzGo8Dy>A0B4U zJWj1T=_?AN-;9=K6xAT?Up}pWgxZJ7R)IDZugA}0{aGUnuTOv5%OH*rn*40);Ew$E z=UpH#xqku$2{u|(s0cUi&mxV$Fo7)oU(kqI!eVxK_T8+gWkT(V+Jhx0(DUkP(+k2n zKj<`b4$v@f=*!oMUdNo224kVToLAmfY~IdLsa+~c-ScgE-gdtlIy(f6Vt8D=n>6xn z2X7_sJA%zyy}*-PlOGOzUw^t^qNg<lyv!8746%%T`8~VMPSr$Pld>?bH=9^72V`rH z4b%#AiX&`=hY;a;)e9eFQfIQ{Pz8>{nL-2&5<LWc5S?2X$d>Y)5c42>48yd0sgy#n zG<StTkHgw^<1)z40*Id~)M#lg=1Q?F2grOyR2|;lt*9Dp#4wR-A~XD$>pSryPleFo zr(}#|NX1JOv@S2*PnRYo2ov>m-id>X;wBy_DJUDpM_)2}g_onz4@5XtVBJJ!S7^xW zhK2WS>TSx*BU;>koLqz`n4;g(9BewC&m?|vw<qP5ka`9A2nXs4yWP#Yl}P=e<HyM{ zo~R}^rLR?Zh<K}vK#4%vL{+SK%)%wGKVoiH&xj49%;u0Dd4rDU#}vL#1p=&bW<MoT z|J_l5;&zJ6N-ll6!92|R4B;&FzA9;w>JZAx&_xY?8p&)X1_{=5Kpg|iM6i?pn2)7@ zN6Gfbw_1LTZITBCZs2h*`6jg^YWt7^^ASH^VOC~ZPbdJ-6qyzJXyw!EfbdFX72llC z56(c<jd+ivo41gh&#i0ri3-|}S2)x)77O=IE};q7E|A<>L!Grd-#OLQ-7J#fdv%w% zrdD1S8gm}6OazELcOpwewxV&^Iz11xPgHf9pC8B!&DQQFhS|f+Yw$_BqmFdsKdF$G z)~F~evj**}p2bFrAxMCs5XFuLIfmAO7U%mX9qN~MXm*xahIkA4$oZ)GX!+=TfM3Tm za&`Yi6hRPOkI9HZLJo&!G%Ji6W(*iZstw`n%g~cy76^t<s?`w}w?=x3-He1RHYn0x zhDkn^W4xBs-p)r$P}PN@L^Cr^W0EE-3k<uQVOCr1Rd2~-Up1OvaK++99JH(8-pZsG zf#>J=7^KeDdnJ)2Qb7_ozJGl=A2U}q)7_A}5!wnS3wDl(+S9x@IH<e{!c=uP%;a%U zt<bG)a5zhwtBt|uYcH0hy6!{jZ0C65yW}`PB?M!uV$hbJ?xJ9hGZr11+UM9J494}q z4Z-Ee9$=No3{Fy$iq0Y4Tiha)`myu5Od7Ba$dDHPg{wC6FUD^yDq+vYDu=?k_& z5>IavffvM0wkk!%lxXIbLNx~u{Y~L1zc3Y%bXfxh;7_mC)UG4)vkTu2O(<z}HTY-H zC1E>79o`RjD?_1{fIjQ7c$G#O!jA8EX!39JKhoVNA)*3>LA`)@5~YE~fBw<$g^P>% zhSEmQg*Xw>)Ey2(x1h4smKx<4Qbl+GGoK3$PMyI<7ZPD6oYG~?SapCK$r7VPP{ym} z)%N^$d^7ir)m~&;xk`ejpxihjO=S{-I$5@{26k@ho)VGt3xK_aZ6dgJu(-J3#d25} zxR}%MXTEUquJILHAN7(`>>2||p}(te2!QJ1TXK0xks3WF`P|$Fj!j^Wddd4|<H$1Z zxJ9bSr{`HuUP*4?<bbuBx3c~tiBA<g&%<w&vOjDdJ3(OYH?;XTYJeJO79njq8VxMK zC5O8jzHUVwWb4|k9jFW#)}OkyU6%StHlqrsx_e&>y0S09?dGtZCEH465R&(s?KwI? zaIA_W?1}-&IE<Ro;l(wGLlz7c1hN#Y=Jq8BFHsD*1e{J1>eyEoiu4`Jz^zklL31S+ zgN-J^+N$$UyZhLDU_7qSB6h#vAD?*@RiUi;jPBA+5QHKy;CRM)W83KnvY=a;(ps1w znyQ&$Ro$~&S|bII2sn)g(}D6Q$~)~dIpB5w#DQ~^I6?*4%AiR7jDwUxGc#%Q6^3&5 zSB7KEZR~B}ZQU)1{a`u+_L#qiF<x3?wv)m9kvgWa7iYwmh<s9MB$m{)Y3Vg-$aDmD zJRA4UBhML3X@4?{xQ1y$p`fu`Ia7u{XuszD=G^9^=H})AhZ~2^j8Q}QF^-6d@6JON zGm$oVEGD(WZxYgI@?-rrYNXu)sb(+7JwJi4L5}R_j4TK$ew4D*&!Ox|{QQhd8m5rc zqei;d?OsA+a^P7lWsGiGW-Y2a0VST7VH7H1I5Re$AWd3%SEe}pqU{7ibA28O%3AF; znpKAW>DHUOc{9BJqU(6zS-3dR>S(&B5mEanX7EjOv$C<Qgz?vEfgS0G7>=q1H%s6! zA9<ePTsC{tp4CXAD$j$S!;Sn)<1Y+|RhG2c6EfZY4=EO3tezHWqt7&iuxg;nexRRg zG`R`aiSUsLFbFW?6WA$a!ZiEWwliFW#=r%lVlgIllCu-0be3I_Qf(szMfstEw=G?5 z%9=XZl4z|Bfr{k=!RU1|eh}DWbuQEjUp+wzGq=N5?<!C=_wSK<HVGDCI;=pvBnvUn zQHDRg&KW^iueJup@Hy?ujfj5L^&FUHPJg~*KjQ1K8!fF!E6KUSCZ=XNJdkMGm$-4R zrFVWSgl(kfnNQZ1dwlWqDKi~Bkm?Bf@TUMp(E|cKx=+l>4q*+$j6d5hD-)cnSnJ!M zY8~u)kdu+lD4Az5<3JmqAr#r=$JqI#>aU|iAH+U<zO4_l3xO+?gFt@kSPBJ#j24xW za})=fKpXs4(@jtnUkkRNX0SP7wiq*34cD8sY|otBw%_pKeK7LG(P4eq(R#2@Kkrg* zsy>9gpvC@5kj?Y5PVFJ<<Gu;*iPPq_mgzDvI%ZAa$DVLGJcr6R&`F{ZTVDinc64m) z5#KqwzD0gor&IVa;|t~<M~{(2ZC8oISwSoyh4o`*pUq(+5|r79E#1yx%0?J38w<~9 z0YvnBIMiqLuOl_HPsMlNn$e1TM(@kD@hkUgEUp!aq{%Uk+93?xa0i7^${EkYw{gpM z<Zg=3lcE;ZYrd&C>MW(Pt{m@ZvpIB+XdpL1MrUw7uSbrgrKDFfnpv3ZtTVq~S$SOT z;rC|z`dCTNY`ob^me`S&iQEc-Mr80ORLd|Pp*_peL5${hvLQrPL+=8u3!janQjl6s zv!un(5GBqxznrn^uQFQyie>3oTBgZH*lR@8*MC~24(f*7%-oH}^c~6#<Ly&MMtER; z6-t*tXt-hl-~}$uLV-G(oN4~)y*?Yn1l5=1SdL1mb^Vv!{VxPQ*vkg)+5Oszu6v8q zOU#-!C-)(?)jy~pEMNo)cn*HPyr%j&96M?9`bQJf8}gbgD?Z*4&>&iRxZjjLfvtam z8qJB7jO};bl)dzTCdR&rV=0#>QVbm+XQ8B^<4^y-mj`DoI26ma3x^9@fE?~DF0B+R zAz!Y<&ieIx!Y`#|+bj6iEdxu(<;QA^{XE}iZS&JvO0x{7Ej16hI%h4;R{Dmbr5;5? zmCXm+T0D+-ITuy<hPL>bX1J`!oi?`98>`X1EoV2yHF#8$m**;WnpPSw*|wIuWie<_ zcQVl{o<8GU@(i&H_?F5VL+F|To)F8V`X-Yn58+Z=RZi8`N@OeB)y<|AqIr2P7o<nA zY(AxRc!(~&r}jYK0|sQ4)}b0uTu3k|<pyPg#QbJ%ZC<60pBWVFQ%w3je%$YL7gQJ0 zB_2v7M+e~0IJD81rZyyaqy51Ku2P9N0-FVG#x_G=4l{4#*8B9}$7;r65<Z$wu|{uD z^DMh+nxKtX(luPDG*{!}Xz7BIoy&=2I=PuX5WiUd{A^Th?qP}jnXnxrw3wtP36daK zr1t`XpxtXGf?ezF>xfm!Y@G=p*-vq(t@97s69e0t$af<W2W`i4GwBh3Cc|)MrBZKr zJMsr)pF5EYnum$$i>;w3;Aq{p_?%4Fn;JO==}*e>W14BRyMYkwTMF<l?>qh!lyEq- zSMW!R|B8hrkMM**_3#)P%d{s+t?6YoVy!E~xw(>ydkgIe$uR<o(4sX`K#2gKpD-I) zC8#s<-TPCZ(j=}FBxFE{|I=m=A$xje^lMDCZa!U2%XzvU8!N9)<VP)rqP2fXu`41k zI-8PDOgZW0^n_<4Q-xAxyr5W_-9l{mzDG+*JHaLDx-bfEz{0RfiiM%;7ot>-ZN%)b zri_=2MJX+smY(d`V4vOFfpcde6gX13v1?hL-Wp@3m`+(&exSMn>OhptKJw!4glrT$ zu%m(e1jS_a#-Oyy_z8l|gUEz<j^SPk$RH}ngr*GP2?Q3u3jG`yCETm?5zuPPQ1_{< zQv2zwwv3|ETMm6?OGWA44I|SpC*-X?ZiAz(Q%5PX4kWRZs3eyiXLyj}VZV4n!vRq0 zw)%zU-$yV{DkSqOgI*tOcszy2FkRW7ce71Kb~_%{UmrJ7c2zM42c*0sJ0(;2IbB)X zTa_~~4Zn&cP(u-H?a+`_d{#-YA#DgBq#(kvS(LJ(Bo`nQ2<-cQZPBkgJfyyDU6a0` zEh4vF$3gxsB?V;H9H~uLiHd6U&CbWPSxQR;#Ww;Pouq|SV#gq>ObdP%DIYn`dT(zI zOO|H{XIr0JR}QlNPWW4<(SxtTlEWdbk>T6vk0vr!4VWtv{bBWTq4Sb}f(#^?>K;dq zY-L(C^7SRl<_~b-9dUD5+7l;e#noPJeD!JIi=YcL^emw>p&cSD^H%Ci+b^)1k}Rn_ zPuxGVV*MFd@_pJHEjukcJv)sm9V#Qxo?AQxlf05Va35OkpPGuC!HaqblG{l<B%S45 zyPdm*5n9+<Tt;0qomcKx#Nws5V3tqmw%d-|_S=AM<O*2L1aVADO-nzwx}KG=NvHc& zB`gIpFOs4Yr~rpUN37;hO-~FuKsVNg!DPd7Qc}64#)kMYg(!(ah(n4)7xX}l^s^eV z!Io(F0k@5iOKGwYE@SkM0e&l%R=xzY*VkZOO9LLy*{=)EyAn3X>D;i$$Xqv;%rwMQ z3-^eQD5X9wzPp(%FhUn{+y(x;L<9c7$R^WOp$<;eh{n{F`A9lv<bP@~qGYPezBg)n z*t~M*)UcbT5j4%@qpRLr?R^i|s;#K9lSxYr*hYwohB2Et3vFw~8<}A^`hW|HHkCuo zj0gd^B&SmzpSG&iVlh3AvPHzF2fC8G0gPEKI~O8w;>!xZ6E?56wX@hBntD6-pB%~c z@rI#x2SlasJGYsoLSAWm6PlO$Qvr{)G8Jpcb}Ssrc<uK(gY{hJIeP8ZVz%w)z?Lza zz*GFg-u>P;-YYTH$xbF!%%6v;v~~4h8<gvmYo=;7YepR^H-W=8*<K;0;0Kt0(7R&d z?K(X|OhFLSO>;5|nD2;t<wwniO@{TLBH5C_Oy~hY(52+MiB*f*iTP0r^v|8r)F787 z+lG79dK@8ZK_$)0g-cC9d?P`Usm$5bihFsRQKxiW%41J%C`FlX)$x_y6aP6=w~NSE zs&3-UVKH*Y8dZX5V_I%EfXAxJ$KEn$a^D*F_(L-Wjcbfdb=nTS?A6V2GRrY_ELyDm z`BipaxXhaUrVCS)eHI*52IHb<_=3z^0Lb4U%DAOK8hjL(0IRx*Vvu0hXZRx`HlA%i z66-}4k}61!FagLv2Ye64FGnk=F4aE?3LPa(PIN>J<%kwKo1PKdMJ<OU#fTsax<*r9 zt<ABPW7E*ZB~Ldh#wpY7RL17&kOGbn0Ss6OgSW4cfa80wq!fGoQxN)lC9EtQ>#W7h z`f>~`qSB#4#n&fhzLgcWQQWKi%M&uRAo}QbPUiiipo41Sap3rn>bGJB9Ow3?c$p?; znhVQJ&+j?0)^NTaGtI~bVm`5pd3;j1(*)$#?paBb0aj&I=1)v|Bu|WC5;klDp4O1! zIa~coJ%lG;-2DX8f#hk67e4odmGMhUD8>m#i=YWytLI*UpJ3DLo@OwI6Y}B28@ZTS zdPoXJ6*Oedwy`q0$6*_?H;6^N9ENw>^}!a9TXt*|sJqv6BXo))7cJ_*8ALmuc{dsD zX)S=#`Oxf(@^!kYir*>mBfxE>tiI@}*8jZz)o4{P^J`Qpv&(;(J^>ZAx_brsbm z`6H{W_WV|*{Al{3+T-pwN(`CvzKqk(!mo5<f;d!i`NDCw7Fe)Bt-YZ7xOb@E1clW- z!D027FL%C%a>I!Dr(Y6g^|W3AdqVR1XAeGcbiz#u3Z%taOMYM51!@k!CHfWb83%55 z8jx1*3+nlU^WpuHANqa^RS5pc@fLb&D^VI2!_olplpdDN#&`w@GNNlCqjJc3xAX`Y z^m#hW9=><28)pk|cdLyMRS)-^#89sU81xfNpr;k@Sh86D^ylEU)`Cfm6e|CzXNCF# z_!tK=UhJQR#*vvxgg7#IqN%6^QMmzYIuV6KI__2TjP+6L{noYm1lxr9XuiqwW`*t( z<}(DROI<N&?{85H=N-Tb2l)8I6_3~&S>BIpvM`wBtCx~kI-L}nn3b9Jx<^Ito^P}k zZ1`;_^2?|h)Q<M}J?CpLFFm^KWnG(JM0LJ2Up=epd{Jn6Z2Z;P?Y0;Y>ram^Ro(a6 zH0o}(y6y-Y>_XFV)YXFS?%)_*^$nDd1i$~B+y#WxR2<US4%4n03{nI=Hg8k$l&pyh zyubTNfaDD({1=fe>yKEhhhlpd3(whAn~7>A$|I&?u2WFO(W_+q-1bvSQaWhC`;_4Y zbw1gj^{QXekFm|~`ts`5%&)DFLr0fPR1Yf(wyujiNd*R<R2H7C#jiDUD0#y`qh;4o zQr|PV*{=+Bpzd&UI`lU_GLbJf$h-q<-npAQF2Q|X3ivqEyyuXC;Pl&v&|jI=bh!;S zNoahLUx6=?u0FZK;ko1z2S%S2ty3SSgd_uV=7Nn*+4$c;H~A5R4Td3heV!1%gkglX zCZ6y;;0VY`boBKSVmBpH@#UohhZx3fO434L`z*CI+6=!MdThD-ig9`{4%*6j;SYhp z=oUTc%V3AQ8dEnWu`O&%S`DY=#~=>-9RzxtunE<$E27Wyl0pSKi`-BTw#R4zS)L&z z1-L@Q+Y;pi>vX^emitlD)Dpi6q7w>h0)rvl6@3<EefT1@S&w>!Ob0=Ss8$cT8rXB_ zogLl%0;E%DU>@;7U*=T14d#P1mmC9G7FpMB-{D<=w};iiW=Hu3f9vOy4;l?}2GTka zQ@Ay<m#VYZQu4MsO64vnjNF3!hPbNu2gwTc&)r|t##C7f&QuS@^Q9f~2eSkg`xe)G zZ+o3H4HkTJQOBw$e9UF+a5(G2g*!{zW3#|2Iu1jWy+Gj8IjG~K`dOfvi5y?qSbaz& z{L~}TxDM)Hm_RL5=yWG*oqIFDXKr*JQE=aXeq1Q3dRmJ@35j8f`GMFq!xZ^JV8zl~ zf*9)oJ8uHXYzm}}gSK@+zKVSWekCme(HF|a%Hao@^>v>FS~U4&?3<eNX$*u`k1Zvl zP6;Okaz6k(2ag5}Zxd$rgD&3-BY>0;7NUDxkG<)Q{3{5n9;8wLa*<5())#~*TrStc z%iNt1j!o833aDZhpTRrg1%kHs%e#<h{^OvXg@YxK_ua7DZ=eOHapG=AnCBf|dMwwl zjqlH+7#4JJjL%!?$I5gGjPK82nVYpznvY8um`!9-%xn;u9S(w1qoWxVRWXfG!Wa}a zag5W_d!@X*Qp~L2ncv>@3xAT2tvXl*x*6yOHnU^uw^W8Roa_swsGlJh8d(RbFCptM zAAgo&Le}4|M=mVn>|vP~O>rwnHg@(2RG&lDmnqqd@pcS$yI*1+3qZ`$4-TGSfJDg9 z&+<5jyLr7aN$Cyw#qjj{X+QeQ1j84XEdBX1&fe3d8|YfgCGxQf?QDj0Hm@EUZTDbK z`(0Gyvt{P7UPPZBxQ|2b+Lxu9F=oUp6E?U^Sy?7o{HCr|pH1$YTff>dr(fE7)*k2F zwP($>W75BL^{jo~xn~|;)%W*%F;gHBvQ04Xct^PtJG)MYvP~+6vW={pcR(D*@eWc+ zT{4UyoOSdXPPu>4thyzsx9@}0+KsyvnvJU$y8Hq+zRJ288_JSRo!~J^J<VbsyEej1 zS**Dk6CC9=GN$=5IypMQpnBfYmG7Ksf^hzvAb!C$`pr30KSlZ=6^G4hWNgDR$!yUv zIJNnfyVmPS-S~3I&G_bf?bw~@1cSE4FXqMyp3zgEM{bA1E!osk0^U(A4ponLt+Ss8 z=D*%s?#C)E_@123nqw?{-t5jQ2h91fOW$nE?l)u?ylq?VH)IwHEAc%#?{8n~J3TA! zXFcjWT`TX`8ZCU@ozK45EOfZk+@HnQ+qA2Hc{V=#wO;migi}wxUc~b*a+c0l?6pH) zPtd9J@_tfJu3Pywd{WP5m!~{yip-Mc7DZMwCB}kXCBkDmd(Fa)F54Y{MUj<4z76fl zjXz8r>j2>j)UYc{14%nN_S8vJg%{xO7IBTM$ul;p@m12pYn1VP_ce*T(#q}t8S3J2 zx($XfqwUH$@dA>5{DbnUQb#n2)<VmS?k!WMqI4^WfV2@WfSuqhf-im59nRXrFPzU6 zj)04c{7TRMhLPj3XO$z}D<K?_R24TMs_3<gk;bcz%#N`66)UnWHnMi9=(Txw+i=ns z+nsmG4Q?bxV>=}NY><#1?>yol{su<rHF`Ir@_GA9eC>NqSfw~y=2^srxG^u(U^3~< zh29nM@MSLPRsHZJkJ9Uwp)EzZPOK}(QD;5R#J(k$zPP0XS+vHE<kZ>B^m?B{LM@B> zo0M+G_?i<Ojzok9YHM7*&29hEy}$+B^LwYa*>P?zsVwc`*aKFJ#<dp(Fr27TPR9wU zcnQpErYE{euQomQwx+xUtcMO--@}gtpb6fzaNYC_4v2Ws#H*J$A6|%dQImlMay~wY zJ9?xmuffgSyzah^UC2SghakC(aT!FEE3NBP#DjrK34HfK?Ckiq6LhNethTLcB~NSn z8y%fC;^yOldspomlZek*VsvU-Q43@<R%&gmW;c>MZ^QQS<m>U8v4`RkyJvRyk>i!W z+)(a@VU}@hI;se#GRmw?V`^1{mPbAakkoE`Zm<`d?D=^t%}%&`1ZPKRDBn6lp}}jU zOk_-sN*=5htAJk#I8if9{sYCrpNvtAY)q`Ie{w7^{WG!P-xvaZb9D<DIT+fT**e<T z1L(FL41be}GcqzT0jL%9ZN-etOiUdK*;xS`0KfHqPtr1RGQs>Vpke|b83(BS_8|aZ z6bDch(6Tf9F%59Q!T#F|^KZ8B-wHDNRsafb2@Mf7c_nH=8!IzIMSW`rX+;=%aR5hw znIXTmiKP*M(Scsk(a1{W_dr_TRn_bppmGZ%6AL3Dz1rVHVFmCU{NWM64`swe_y>o9 z0?a>=8vMy%rAf%d$w|n{!0=xiGaDP>@Ajt-6Fd7KV<wjWv4dd&+&LS7eEFZ-pZb6H zzt{QQm^lD6=m6b6`oFKs&ddnI#tg6rYy~@j`2z4f0AqGSHUO&vI~xZfE6YFDXJut1 z<lq44ak2v%U=F}k@%J@g*f^R0X2blq7#SH@01g0m|7Q???Ewt_f13l)T(Sa;Ss7Vi zSOE`(l?C9K0nnHM&e=H#nE-+OVGHob#Lhy<{(BPud&~;R7FK3fK+izP0?=Ur*s`!Q z!u;);4G;`qZBBsg?;x3f`~2@4{g*kIzg+*j?H@7zum1jTAO9sD=HGkpx4A!juyeBh zgD(3&9}qxNIvF_rLAkGF?_~71lk=Ny`wyo3|B%#wOVEFuE0{k{9)O$VkAwzL@&BEl zO~lOJ!BNmu-~NwtB&GlN3r03hLV96qKy4y3YXEtNw7#K&jg`LjpOSx0_J1Z9`IA5G zZ`2_F!{EWm$;t)@=>MpDl&Asiin@^LV`Hs7e^_TJelLcNmqaSr@a+i&@T$-NW<$50 zrGM8x3s@B==vI{=gE(9tgg|^;L{g3P46eO;2Wh^UY1I-7yjdewnsmH1wm`h}wzYyl zgS3U&Mx-TV!?5>;1on|O^M%ic&&L#ixg$2f+c#k7`cAw368}+=<r;#Ej&7qNXw>F= zJ1CGR)*XTNT&w$=->>!^AU%AbB8$?6Gqt;=n`CDoLVaKc>=sq$@+NQ9!2qC3x;oz3 zC<vwO>7rp57~Qp#MoR(>dM^ythg|QEmaIMPH5<ovc;C#gZzFfwD<1lIJYmoEMZc^L zH9D{3B?m-iFGSul*0aVns}uvl@4(%Y?yNPIUVvOnK<+;LpFhG7puoJrqA6@;njlQG zv7h!a$-H-bfk?P^PB6Vzs37p-d^l9Y5mK9yFBN=Qa$b|PV;y|~-&~DLDuqK34*9tl zeBoll+(q<2jAMf|mc(ij4<~&=wg@@oV%rj4nVy({hKF|xhOc&YhkkXX^(hG5)771a zY)s(JeucN~Cf#JUjD5r}?8*j8pP~Rx?oz!%xP-j?@D#>A#%Q1|ic(QkUPmsb$VR85 zrlq8VL5BbZfAZGNT8KZHu;avYUN^3{T~arWXJqb;tynN)HAgR%QXDc;fEH9F@iRnn z{n3ynLw9}{iHe|URjzut(lYsVffh8=4gr2{wS#QJDSWhPMO9>SMES$Qh@_s0sTQS1 z3oEc4pU!+|JGsPaRlUj7`inV1NrRK^6?8R^s3j^wb>3IJ2=L5qVfeK<EnH{&DcA9a z^KMfU)|T~9DGj4i4az(Bu27}mG^W|`R?BwcNo9n7i2d*+0O^H1VaYbWrV~q+MJa|@ z=+3?ALb&Vb>b+_Gl)=%Z`*xLivz0pTBGt}_mK}5vN@JL!vYp0iuqJU8D1t3<)=dE9 zuNpmdlM2ruE8&Ihdye%vqSM@wsDs6l9nJ?&y-W9r9-p)g{A8ufAU*Gwh_3ikg5k5u ziu143kXMJBn{SQu5AN9e^_oaL4Tt<Pgtj`ZVmKNI@Vt(9iH%hZJtYdbG5M4~vF-cI zqY{}N3?#Ma>L&4LXaw~!HSrXbGc+gqyW5;KacePQb*Uq|H?Ixq;M%zemp$OO^BiJn z(ZK|k)p6KeQ3-<<$#~nn@-55*Yiim300mvx^4wYY)}jyg2iC0l4IR-@7=M&$onpH4 ztZeIO(vSAH%L^$<e&H(4n+*Z`Rt+`HYs&_blq=KbW9?D$%g<;a+c%WHkvQ53hWX&9 zi6d-a>ibb@>dY6bp|W>%IN27Cos=gE^>(slZS0We4?}k&bNp1h1RNr<7d^?=Jc~=; zsVPp^D$wFWh~~acy{M?tPp7!2T<NE}#ye^&o1qI|7IDrpjE^j@Ux5v|?W^)|KIaaA zQkn@_O-&U4YOoe;^Z69A4;AuQorjnvD&gQrr@2o1>RgUnr~DHRJ5`NaAqx9@1?8QH z=qqnsM=7eA9=ygZLnF_5?cG3q!^kWM;0MyBwE2Ww=}e3Tm45z%>*Ct&4pXP_rS6Gi zG{2sDONZ~mkZ~7LV4OQgKv4b&e$h=GFwOqNT#FqB%G|9pO(5Wr%37^cC^3#u=5_Uz zr${vG0|O50=`|I_wMaG}7I(J>eh$kMwr45G7f4d@@V2anqbi?7P-$vdtEp2AjZ!Q^ zL>SuP&Y0>2OxK+8X1mXn>wD1XGBlJe>KxS+Dn9~9cF?5rc_vovX))l(CKHwqG{q&$ zF`!1aeo&X%5M4Gz#3_QwXrHAY^?|8NSw&9hfjP~~$Zk2KNlak{(-9*;Yp_5;4Arlw zEOS{71%IYJ1F`Wh6Mkc>TgKj}GpCnX0@;K(*#=sY25WYy=1ReSV*|A@ZCdO4MFd*O zxrl7?MHnY!!?im2NiiKdG>5=w-rF2q02~S&ObH`#?MKb+j$RD`DD>Cz=aVaMdvss9 zbWb!*IPX9PU)ngCry4&*C12wzv|C?Z#}cjW-o4W~=&tBNvg^0}Ie9ENa2PqR{LKjE z(In+@oz<l^Y#Oae1q}|_uXNdD@sHF>TmnFTq2eXOn`ZcDJ!VkC1iXQKK|37SQ>jmI z8<4G{@bU50@^an5OH*Oc_b4qLYg8oLj_5|H&Lv%wI$X4c(*+HEf??zIy7Sl=#u$w% zR&76XjlVb4)HQ$VX?+lUJ-3zAmp^JV%5`!f*FfR%si3DS!2||dOw1r@Akt%j4J0P( zZ0JfrrW)GBgOl$Hu!rnMzchPR;JK*K+sMQ+8YBmc8z6U%iN;=pc790l!&6R92pwBF zRq<m=p9?FZhJn85Av{*ljUhZnE@mO^usPbvHYyXBZ9C&QPiQuZ;IOjzcKH4#dk$Th zd5P8n1LI7y?6KJlD$6>)-01P}YdZYArKZWsyKyb7I48Jx^u*IlR#jE>WuG`YIGMRQ zPCcvj+GJzt?UvbvUVC=6?u1g~bM3(#MCLhKr$u}xQBu6Fzd#i^%1#Xx(~g-dMs{Xu z^42e{IOJa>%-YWD$xG=FGmf4FoI(cqG`qyEiNE^3=zf2b5ZPB5N;66sGbv%XOAVF^ z93BAG&G|fui3P)r?n-ni;fsLfS{B;Q<wnZJ#fgs-6EzS!+Yu@qJ>Yq|OM#Ofy7xk~ zjSKZd99k4fxP@2F_nWb-cquMMkkHZi7_0{Gz411?jn~DxA^*S$f-=YF>1#a65ENoj z_VU)!7Hkw$>4P#-T3H{H;reb-jLq}$cpDPlro5}12|3F~j5<c}bd7g&am|fmhHr-@ zUW4aZm|6^-`b#YfY}{mz;PJ1-S7b(C@6AAQK1<`$8@hpRBd}YHE#^EGJ>@^uJ^4S? zJf%Gar!vm8MH1Ezfi;>#)(zJEtTU-IT&7+=Sx(mon<v~#RKY*6YKt=hwy7c(<uBw8 zi-i0%@ufOS>@z_h+cQ~DQB1!6mI4`wVupDvgQI(z{qYftX)Q)E#j1aM;$n(x0mrWg z9<`0SRvLDoi<{kE&RkLsV2hrZY3<5ht;aqu;koV}zMhCR^;f)jn(x+@*5mWYy|S2d z9l_ae*4wnc-P~2En&M^rq3b}n$n8w!<Y$R>x&_E)611}*(4;ep?(;5Y3Bm*K=W~ms z{F?q43h%V0-DwJ8n@5<V2ND<wUM3X}j5gLsc{jEd9YRUu^cAgY3Vdz{gZ&6AA*AqP z4K8FG#2&*DT?lP@7T>%ZdJhimHW6eYdRw8g?ribLc7|hN3&0>>2|+Zzk{=4^N-)96 z_;PR{dc&`SX6IH39vJDBozM;PhRTSFt%UFgAlHf~c1U(e?j#$O+@f@^S`V;&UbyWi z8z5IYM(G0yqZv=NZ%>dn!}afCHJ`ej{n3Za_rnl_GxQ-{69(^2mXDLqCjMt}(VG~y zNFToYd+9X1v(<T-^Kvh})R>L?WNY1m<xtOu(TZKFRN?BSwUwY55La!K_fB%G-xtX9 zmNZv-yP?^&B+X?Zq!+#f1(s^n%U=Io(Y}iz9E$vT(Q9B~b4Tn}hy@B);{Fw1WCR>p ztet_I0bQI8W^d#CD1^?@-~tEy!|&Hi-n*JR0*<)omQYKm*EG&rlX06eY}8RlbwkP4 z(42w7Py#ecnlQIV%yuEB>ItQDRKy-KUasHfu9aVt$W#~4;K;~O7Tzxxdneyj#axYX zc=k%+sA>a-)Q=M<^TPPv7M=$K()M%6e^!m%Od)2q!KCZMwNOyGoV>34XUI`aj7emX z%*&ybJe`NpFkSkSDTb5yB@vLxAlYqm^CLN86i-rC0rxZZQ}%!APuULNZrLvMm)FY| zH|gO}tTgL#9CI9T9AGhSF=(-FF^fy9p`<L`<D^V5u2waSZyj8Wpg@473ks}$iAd2m zc;I**c~}uv#)R2Zr(&+=P^k0@_Yr76>)hb;R7_vOMQFq#orZ4W)K=Z9<Mii@-YC&S zeT6QhH8Z13eI=2fvJXEjxUmPZ0<kF{MlOj}2xoMx&gjM?6WJk*gWJWbBpyoOY+&&6 z%r+!&=pxd`ozLqN-)6D%Ym(9;wnk#9n5C%Z-;>`H-!t0--!s}{-Ge91BRPyEs5MAC zg#+(33B1PjtO|X5BasLcTgoeowfhRrWYK2=SCFA*NxUsfeR%+ebfj5ss2D~@;%&Uj ziq|Dalnztt2a=dHKv5~t`m>N{Dw#q4);4pnSdXIjc;s35@-sJNL5h_7E{TYjde!;5 zu`784<<&#YeqZT$n9oCtgw}>jqL+rs_adkdN?e_3zGj~4v=s#MELQe~CJ0oNr718! zPo79iO;I9h2>i)U&3Ow5XWR@|8X5DGi-cYYyyDq~^pnX)7Ps(exp+FXNm1J*e&USl zKg;CUsFSHY61+x;NXy5z;N8UFp!84i(PwF(NYJ^KptDm%%VZ=9(0Me_XNw|ckM`td z=_9U75`P3aQa=mmPagTo7L^n|$HhUEL-h2{pIPPo>bM^Dc~_;=1!q+LdiQt?Uz%*_ zcH7<e)H5(3kn)ao+uI{bL=-RfjPFhijsL03`s-L@{sC%Xhuek!NT}(_`!0A*geUY; zZ<`o!cvg)L_QEB)o0prKPS%+D0rQKQ*ytlsT@r$k!6%87-k*}8w{l5w^j|eFV*4LS zoejvOKZjr#CL=W{NT92w?F+bK26fe8!sdW};<A5oyec;ohoP3lU0PDBAJV>#FzI~g zJ%9diJ@3Y}!^Qu&FzWs3rW$lX`q8f0urPP`@b<nQf@0IjZm|=WiC!Mz!ZxPfHfTf^ zrd}SS?JI9%r#-pn)UCef6zxeVT{>??AWH(F0>dpC??aSL$S2565asxSr!xTu#VmWd zZo_CJIut?qtt|`g5Jb&JkI<IJmdcil0iy|}3BT!6tPlu;97(;gMm6tA&Rx^prxVVT zlljJS0?p1Ei87+7b*W3^ja_SJPo-NY$DGQ}4Fh=8vQ1K&>v$!?{5x#cIB^L9#c02d z%oGRgSZSi@ufX5^V@XyVkBgs#TIixi&1mdj@?kRlpxy_)c-mT*8!Vp6)Y*+$1$+!$ z&$YI}Q{k*7+Tz7L2U|9lk+KXOk_r+jZYG}Ybwh4pCKmCAhRGQVA}3iB6Ih7dSV@1y zy$s2I<z2*Ax7_mx<u!n8C4fT)<rba<H=izdFa$j}JXbttK4*MDe{gz`X5Se&@0q{! z2<1`f3E`xGOg5zM70@a!C&~T}{K*Ck!aF3J#prP6mRoUi^9E!nZIYZcRE>tLuaAML zB-QkAS6PwB075B@V9FUvT8x!vVj8Qu(fTgSZ?~dPRiWp!jMDyKOJSX7;f>@Q#tZHG zytzeT`(yK7BJHSmkl(B7O=b+IrZN2%-c}r<<Xh!40gh`)k3aI|Hu<G!f48aMTKeL% z_4eSl_VD)ZuTTg9SScvPv2eAo2(rtrOAOHBT(Tl=91exkV-{Wryy=|XdQ$i>x2Tkx z<IyrlxO?qkRfmKiLOn{|W-(#`l+J;U_;BcZx#|*9p%j%nhHlgt1Y;ks4o%zik}iC4 zbcvs?v<_DLjKYM{X+1WhCMK@4Udu+%@#*^rUvcT+)}{t<w7=|kFzMFRN$aQu@cgQW z$d99jeAvj|d5%B)@Vq{F<k$k^E+IPQ#mF_E&z>8+H<m9W8!g)UWH@qn21nY+G3}<5 z_8IN*MSf}poFmjV?drC&6r?&OM|dt&g$ls{`~ufwdot|m9F(u-nzZ?g^O*YVyjpAd z@!Z&Ch6#T8V*5q858j7^ouhmQG5P(__j-#S($X}Tw6q`oV>ih6y26Q{Jx?I5z8m1! zOl&FlKBGQ2y|-me&ODLi5?29lW7&ms2u32ShMx3E`xE)5_5cmem??bIPkn+Ku2Bv0 zWN{OA<Rd!qMo#akKK_ALkP?lKt|w_G3Pd2r<37GHf+R@-sZ%Uh%9b?eK691S<KFQs zHsgWF2lB>_(@>x}KhN`e8CLJ0HSk4=CRnx$+@p~d124<-&USnFtn7!Wvysfi<oAbM z5H{N|Mf5$s_p6p2b2kR*J<+yjq)N9yge^qK!_b5W>}UAiV1gp32_(ikEH3zVi0K?< z^%_@*?(dX=;y}y8a_(-Siv}Ae<fqqC$>EKcfv9%e-5q{adkF(%l{zTfzxYZb$!c@D zQh}lrk3_$rXkP2a@bX+<Ze(q|4oz$mkm_9WO?L3jYfQfN2ACMWXyJHV*c6Yf)EzwU z!d7A|@O9|>)o!UVs3mmTD_UV?w_2!n_^3=09bSCB_If0GYLJTwF#5jKq>(oOF(*1l zKKFADb2fQyVU~S1a=BZPJGEf62cjn0D074>o;Asd^u&FBoCe~XJPQ88CwPp4i~~4t z60p^-2qdaKl^xWaZF9?=KqR@J3?EATl~aWYss8B4M|N=YqDeGiLI#X@YiJ1UQyN>E zlCSyYZEeyVWLBg;^psYn6vBLXa_dAaUr==O8MfngZNgwmVD@4mKcBoR(a*`kE0R;7 zY{Eo=;3(lLXDDT;Xvt}*Xeq9KO_@X<$ra0+2!+Rr`6T=47uH~;YUDx`dlZ}i_8W!Y zH}zAvN|wbZ9j8urH7@}?)oj(ypM`#D$`0n8TtBSkT}sUA=`qrwVm^1`c&UD!s*dv4 zV3&E(E0IE4LRVLo6{LJq;u6O!txM=(HBf#QaFBVg5hbPNH&c9+YZ3Y^#xEg%30(Am zhS|v3nE84~e8w5&a{k=hM)UGj*KB8IysGSpVU;VPl~px1%%t_;JU(Wl7UG!uM!>E4 zB^Xur^+$=RjD*Zfyy~VMRrqoJu^3Ub8G|L#m+;I!8AHsf(M8r%hyguEY|1(DYTzTr zBg&&sM=7`Aw=K7Y3Ex5DASJfwqBaW&^5qO+XbQN|@d@DAo3)LMqC|b>vB*@Dm&<D< z6<;P~&-0Xoa8lr9gq;!g+G8Ii@O8fRtHVdY*9<P1EIOQ?oEqI@djuF!EgCyhuJqnl z3!Xkvr4?ALaT{+QQ3bN2w`ugi%0rCKJGgi9{<xTXI0?C{TTdBZiSlgtvVHFK&<gFM z1HO6VYV=8UpWcG<gcgVHi>^pA5n&(_iUd$=CAQol|HulD^;bBeJoFz2m{8D>Fe9iI z2WZcd3l_IZ$LIcXNJLmEyoOy^AixIb6#MOzjyW(goHaU_ffo49AFgL*AuA#l(_>_a zQz|X$rSqofA}-H}xFYd6tDZ|q<@p(e+!Zz8>RiDN6Li*tjU832Xf2!1moH&&q<85m zAGhNTGZD1u74Ozw;)aI9WRKH@p?Sx4TxWOVg#|~smJVLs?o9=o2jF=15f~6oV(W9m zn9y-W5Jq~6`BOisuG@2Zq7-7GtMD11q6192I4`+eaXjHVK;n2A0tG<uWOmkgVd9g) zC^!jHj3(V^W$1rhdGq!(Ubeq7ghS}71pb2J2nw<npr8s&2oQKMm2ltsG@4CE0QS9r zVeia3+dlAgRvU&nL&JBYmYJ4TS{$`GLKKD}O(7?|MBMtvLDCwzpJ>O2eL2B?!`OOt zi-(}<ewI{=(Ax8gV$x@u3bVZ8{M=lyH^-iaiL%!5eka+XXx`@g>r-y&nPi9X6U7g` z>tV)Mh+H5Ev~e%w_;e>Mh9na>?wndIi6&*=R9Cl#B=VZT)!P@eXput3UKRNvCa=<Q z#!Pv6Jr%>n2vAYemJj(NPpg$>ZOE(*&M#VcCE8fU#OOv|ki6~>&FnI8x=)9YAO517 z0|j0y#C|o0Y-(Yq=2@O$3`p=4D44!qh>bW3a;sj7@@B=4S)BY@q_p#_<szdGq?<!W zfD(;=T*8qj^%}NGY{#n(C69#c2Cfb|@ZaO*CUu4~jh#<bD}5)QjAkL_p#DLSJ?%?I zQuQOfM!~&gEOmt0eND>E7knj2pj(U)uGdJy!&=*pxU8k~ImRO0<-(`Uz^0%r&(KNU zZ&j;M+A*1pE$LZrJiGH{ey3BpF-e&fLjvy}R+R63?b6UyU41FNlW9Tuex0C=T=}6R zl27y-5$#yaSdSRbu!)3GDwCz0v(|m&X~wD3(n?K?k?wE`?@}yW{FHhs+Hg7?3xRwC z#h1kP5%0aKYcQ(gz8W5yZ#Zb*!A_&gkee%!Y`>eB*Uiv<l0fGr%C+v#PCQ)`e9wio zQ?cF)ExE>D8`7-Q|F~akr+$Kk78ehQpdSdXaWTeZw_HwsWb!?P2SA;7gy?JoD#ZGE ztWAxXLMt!GzWZ*TJ+H&1bR$;B7C4+K5gg_@o4?QmCT)8}y$uk-S~D7Ois+p4s{~Q8 z?267jFd60v&|)(e1sZTG+bx#OG&!{FehnAUfL?cxSNz$JH(F2ka1cU2kIQR!Aq&ao zd2rr#;MExzvQER}Xyjra)QRHpGqJ)^W&M*{?Zr~`5@-L3YQh9;!p4!t`y{=&J(HDW z;KvwK+`(0Ltfn7g8#ZUs4$HA?9J}ORs=cM0x7K^)YsRb7)5>+sp6+leFK5Dxcih6& zB9KocUw`)2;3M^`(>vL(OPLX=?>d>7IG6Z0S=U)t(QcKll^!<kpNffQe4pR~f_H*V z;11v_an{*9Egwe+x7ym*i3B?zD0{0O7Ic;+u^koS<~ZG$hc(ACDpVILapsY^bfus; z1$;4jqWHm@tD}0f)56*Nlt?hF3{O)+S&*isl`WX-v9ll*k6onDySUu<>8d1Ee~dyG zSN96jAr{bmXc{i^0zn(-9QCR-JJhxoKsWA48LZLuTfPyLdqN3!<6R<IuPUsP92^rj zY(IBS#8XI1N?`YMtENQm5FlGCr8|lAu<0<BapZQPIr2ZV!wyK=r5fub11ea-nZ;oX z2tN7IEKCIWVrkG<4@GQ5L4WAwTQBFsFwA0JR;%#fDQ3==yL2i#rSNL^#dN32WB2+5 z<Z>(@ANpM8R@`x!Bsn`Aao38(Z_PZweU-{vm1iSZ&`VSf<5NA-aO!u0@33{;P&M@M zX{xSRyqS3wOwMECWH(uw?<z2KS->PeM?FbA7_JY5LGwfZZr?f^l3rYJjPI1~E+$=c zWWby#m}}XSf`xd~lo`wA_0;VAlRkZPu!i|Y5DRr=t|qnFvky9xf;9$4?{Q7?l=OZr zr39=wK%?n{N~n6Vh^rm!Dsqb=QEG=uONvGSF}tIZs6#OAs9{mynozYuJze?CW=YYa z?qp~a#we+E4wI(Fc;oxLMhl%F(f1t~Lobtw0esD1O3}}5YMm|Lh&mXndF;HWrX@nX zIv#EC_bU1}RzE3o%r{(iYhU*L_$t4q-G9??lqTX0eRGem<7D5H9<?^5qDzAQ5h5~3 zq?ARY9Bkt+CE`i8o45-a#N0WyE2%_O4^tj5#iLG~)%&_aQesZ(BVjEuFZO;!kTtjk z1@wG%1_Xe{C%F=MhDU23szo3`MC}nt`H<Uzq9Lv6VK~v7l9qf;;f8wM)h8sa3?MT= zr67~?C6@{CG=RL+-`fOYM5O7y?)EN$8Y6$rNuv<DspV&W$1v@$3?Sr%U<$>R6FdLv zRD3BEjS<-G9qS9p=$mLzxefjZ-6P8_tugGNM0&?^=i-j~hM+j!Mmi<29@`+<NzXjo zFtnb`mje_YK*<XX$@aNJ6?lt|0QPeZUQ}j5MXrv7`!VG@Wh_G1kNcoA7nVJhyE5I{ zwt9=+ea`arkt`?b4sR-G5?)Yx&z%5{jK{G!n5hi+@S#Xo+Z?rIL=eKj(*`W10PH|X z3w{6}+Bg*O82HUsYBiwcE&-vr&p@B?+MnK@Qhq6KnLE=u-8G33TsRn-qoa1y9qSYD z_3`!ZG}IL-<JXJj;i8Tg{!ka1jTDw9OdH0+;>k0bg&WOhv=<p+fa^zs8vue}>H9?w z2|wEOm|WgaE63#`pHZjW)6@dYGFHjb21O`^fIEG#e$O<<!WQ!tOS`uKpY-swh)qer zK`_J0D#j)C3-&g(JZOsOZB7j+twnhtJnb1V+_5sP%v;vLHw7nUkDpW1^3d!y>ybit zd}s>4j{gIW<Ik!X?5wODf5JEbXo7zf&HDct#=!)DD*QW)LqknfjbG-UVH~sqHkRN1 zKVv!mD02Bve{TaI3V*v(O+pst{|<Hd-{1uQWC!!l7>?iL|77=1`u{fn8_V(Ah7C}C z<3HK{iwuC}_<hX*C?5KUocZrP1H<329Gq-~?0?5{{EOXxfi3)@1NbBVkN!_62kXDa z@qa=&0KWeU<@oLIH<aUlDu(|FpZQ%A<R8iPe?TDqYeM`5U-U=n{sRZ`$MXeT{x=*1 zV4wd72LbbMIEa6$eFA_X{o_dRJ2{#HuuK%v`i_pKX8I0<3T8$oM)s5dK$E?Z{%@EQ zg`ACxk-eOanYH7eQZpNCA$><9LJA=+CI$vJ21X`!22Q|;m70N(oPmLy60p9_xBp!Q zP-n&7=9`nD(I1N&63QwPsu40W(6P|55Xw90+dH}w$_a`5QLx6<5#UhC%n^WjqLAX3 zQ8cr1veb9{9fXac6P>LsAg+Hvnq2LTj9~z<B4!wd|M?L9F(R}k{JV^ai36|)zd!$w zF);itweznsCT0!*$mK6GCboamV`l!1toj!{CN_2eD(qin%&d&8fVwmPqQ}6=48Rrr zMFzlB{oA_C%nW~BgMpRtceUMr^~cN%Nc6wRSebs;`}tQrR=^YctBj2UklcUOWB#3Z z|7y#|$@%Xx4z_=bg_Du(-_~XSjh6e1KTg1I{hN&O{}pz|C=A0e6y1G_ESZ}~R*ax@ zY73bP?FkZ7Lze~;Pd$CVJrrUOU4@LkZGBA-#MM32*8irG`gy01fNqs<O2Ds5Ej090 z)}Wz2%Qo>{`x=PZQZrizsIABo#xVZH;yQuETTL1mkJsmkK5Y*7Wr<DRNCbP2@317o zDer3<&)@`)(s@T5#Hj{PJ<lq^P7uYN_d4sz{7(T|2#;(L#>x(15$w!t+so~0zC%fP A(f|Me literal 0 HcmV?d00001 diff --git a/hw0/doc/README b/hw0/doc/README new file mode 100755 index 0000000..54e8d51 --- /dev/null +++ b/hw0/doc/README @@ -0,0 +1,36 @@ +Original version created by Serge Demeyer, Matthias Rieger and Bart Van Rompaey +and Bart Du Bois. The original files are available from +http://www.lore.ua.ac.be/Research/Artefacts/refactoringLabSession/ + +Modified by Nicholas Chen and Maurice Rabb for use in CS 427 - Software +Engineering I at UIUC. + +------------------------------------------------------------------------------- + +This directory contains the ingredients for a computer lab session on +Refactoring. The session concerns the refactoring of a system which simulates a +Local Area Network. + +The directory contains + +/doc ==== + +* README The file your are reading right now. + +* RefactoringAssignment.pdf - The document that describes what steps you need to +perform for this assignment. + +* LANSimulationDocument.pdf - A few UML diagrams documenting the LAN simulation. + +* toDoList - A list of the use cases that have been implemented so far, and the +ones that are still left to be done + +/javadoc ======== + +This folder contains the generated javadoc for the system. Do *NOT* check this +into the repository. This is for your reference. + +/src ==== + +This folder contains the Java source files that are used for this assignment. +All your work should be done in this repository. diff --git a/hw0/doc/RefactoringAssignment.pdf b/hw0/doc/RefactoringAssignment.pdf new file mode 100755 index 0000000000000000000000000000000000000000..9f01465f54ed6e84968dfae2a63ddf23dcdbaddb GIT binary patch literal 139491 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 literal 0 HcmV?d00001 diff --git a/hw0/doc/toDoList b/hw0/doc/toDoList new file mode 100755 index 0000000..f4f4e0f --- /dev/null +++ b/hw0/doc/toDoList @@ -0,0 +1,23 @@ +FINISHED version 1.4: BROADCAST PACKET + +Subsequent versions: +* version 1.0: BASIC DOCUMENT PRINTING + Workstations request the token ring network to deliver a document to a node representing a printer. +* version 1.1: LOG PACKET SENDING + Each time a node sends a packet to the next one, it should be logged on a log file +* version 1.2: POSTSCRIPT PRINTING + A packet may start with "!PS" in which case printers should recognize it as postscript and invoke the postscript printing job +* version 1.3: PRINT ACCOUNTING + Printers should register the author and the title of the document that is being printed. For an ASCII document the author is in character position 10 to 30 and the title is "ASCII DOCUMENT". For postscript documents, the author and title of the document should be found by scanning characters in the document, looking for keyword "author:" up until "." +* VERSION 1.4: BROADCAST PACKET + Introduce a new type of packet "BROADCAST" which should be accepted by all nodes in the network + +* version 2.0: READ FROM FILE + Read the configuration of a network and the jobs to be printed from a file (in XML format) +* version 2.1: GATEWAY NODE + Introduce a new "gateway" node, which can recognize all addresses in its current subnetwork by looking at the first 3 characters of the adressee. If a packet passes trough the gateway and the addressee is not on the current subnetwork, the message is deferred trough the gateway. +* version 2.1: COMPILE LIST OF NODES + Using BROADCAST PACKET, the gateway periodically sends out a request to all nodes to reply with their name. As such the gateway can verify whether the nodes indeed have the right prefix. + +* version 3.0: GUI + The system should receive a GUI which is able to show an animation as the system is running. \ No newline at end of file diff --git a/hw0/expectedOutput.txt b/hw0/expectedOutput.txt new file mode 100644 index 0000000..95a45d4 --- /dev/null +++ b/hw0/expectedOutput.txt @@ -0,0 +1,98 @@ +---------------------------------ASCII------------------------------------------ +Workstation Filip [Workstation] -> Node n1 [Node] -> Workstation Hans [Workstation] -> Printer Andy [Printer] -> ... + +---------------------------------HTML------------------------------------------ +<HTML> +<HEAD> +<TITLE>LAN Simulation</TITLE> +</HEAD> +<BODY> +<H1>LAN SIMULATION</H1> + +<UL> + <LI> Workstation Filip [Workstation] </LI> + <LI> Node n1 [Node] </LI> + <LI> Workstation Hans [Workstation] </LI> + <LI> Printer Andy [Printer] </LI> + <LI>...</LI> +</UL> + +</BODY> +</HTML> + + +---------------------------------XML------------------------------------------ +<?xml version="1.0" encoding="UTF-8"?> + +<network> + <workstation>Filip</workstation> + <node>n1</node> + <workstation>Hans</workstation> + <printer>Andy</printer> +</network> + +---------------------------------SCENARIO: Print Success -------------------------- +'Filip' requests printing of 'Hello World' on 'Andy' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. + Node 'Hans' passes packet on. + Accounting -- author = 'Unknown' -- title = 'ASCII DOCUMENT' +>>> ASCII Print job delivered. + + + +---------------------------------SCENARIO: PrintFailure (UnkownPrinter) ------------ +'Filip' requests printing of 'Hello World' on 'UnknownPrinter' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. + Node 'Hans' passes packet on. + Node 'Andy' passes packet on. +>>> Destination not found, print job canceled. + + + +---------------------------------SCENARIO: PrintFailure (print on Workstation) ----- +'Filip' requests printing of 'Hello World' on 'Hans' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. +>>> Destination is not a printer, print job canceled. + + + +---------------------------------SCENARIO: PrintFailure (print on Node) ----- +'Filip' requests printing of 'Hello World' on 'n1' ... + Node 'Filip' passes packet on. +>>> Destination is not a printer, print job canceled. + + + +---------------------------------SCENARIO: Print Success Postscript----------------- +'Filip' requests printing of '!PS Hello World in postscript' on 'Andy' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. + Node 'Hans' passes packet on. + Accounting -- author = 'Unknown' -- title = 'Untitled' +>>> Postscript job delivered. + + + +---------------------------------SCENARIO: Print Failure Postscript----------------- +'Filip' requests printing of '!PS Hello World in postscript' on 'Hans' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. +>>> Destination is not a printer, print job canceled. + + + +---------------------------------SCENARIO: Broadcast Success ----------------- +Broadcast Request + Node 'Filip' accepts broadcast packet. + Node 'Filip' passes packet on. + Node 'n1' accepts broadcast packet. + Node 'n1' passes packet on. + Node 'Hans' accepts broadcast packet. + Node 'Hans' passes packet on. + Node 'Andy' accepts broadcast packet. + Node 'Andy' passes packet on. +>>> Broadcast traveled whole token ring. + diff --git a/hw0/hw0.iml b/hw0/hw0.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/hw0/hw0.iml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/hw0/javadoc.xml b/hw0/javadoc.xml new file mode 100755 index 0000000..cfdae62 --- /dev/null +++ b/hw0/javadoc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project default="javadoc"> +<target name="javadoc"> +<javadoc access="package" author="true" destdir="javadoc" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" packagenames="lanSimulation,lanSimulation.internals" source="1.5" sourcepath="src" splitindex="true" use="true" version="true"/> +</target> +</project> diff --git a/hw0/src/lanSimulation/LANSimulation.java b/hw0/src/lanSimulation/LANSimulation.java new file mode 100755 index 0000000..cb77272 --- /dev/null +++ b/hw0/src/lanSimulation/LANSimulation.java @@ -0,0 +1,158 @@ +/* This file is part of lanSimulation. + * + * lanSimulation is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * lanSimulation is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with lanSimulation; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Copyright original Java version: 2004 Bart Du Bois, Serge Demeyer + * Copyright C++ version: 2006 Matthias Rieger, Bart Van Rompaey + */ +package lanSimulation; + +import lanSimulation.tests.*; +import java.lang.AssertionError; +import java.io.*; + +public class LANSimulation { + + public static void doRegressionTests() { + junit.textui.TestRunner.run(LANTests.suite()); + } + + public static void simulate() { + Network network = Network.DefaultExample(); + StringWriter report = new StringWriter(100); + StringBuffer buf = new StringBuffer(100); + + System.out.print("Simulate on Network: "); + System.out.println(network); + System.out.println(); + + network.printHTMLOn(buf); + System.out + .println("---------------------------------HTML------------------------------------------"); + System.out.println(buf.toString()); + System.out.println(); + + buf.setLength(0); + network.printXMLOn(buf); + System.out + .println("---------------------------------XML------------------------------------------"); + System.out.println(buf.toString()); + System.out.println(); + + System.out + .println("---------------------------------SCENARIOS------------------------------------------"); + String document = "author: FILIP Hello World"; + System.out.print("'Filip' prints '" + document + "' on 'Andy': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Andy", report)); + System.out.println(" (expects true);"); + + System.out.print("'Filip' prints '" + document + + "' on 'UnknownPrinter': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "UnknownPrinter", report)); + System.out.println(" (expects false);"); + + System.out.print("'Filip' prints '" + document + "' on 'Hans': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Hans", report)); + System.out.println(" (expects false);"); + + System.out.print("'Filip' prints '" + document + "' on 'n1': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "n1", report)); + System.out.println(" (expects false);"); + + document = "Hello World"; + System.out.print("'Filip' prints '" + document + "' on 'Andy': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Andy", report)); + System.out.println(" (expects true);"); + + document = "!PS Hello World in postscript.author:Filip.title:Hello."; + System.out.print("'Filip' prints '" + document + "' on 'Andy': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Andy", report)); + System.out.println(" (expects true);"); + + System.out.print("'Filip' prints '" + document + "' on 'Hans': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Hans", report)); + System.out.println(" (expects false);"); + + document = "!PS Hello World in postscript.Author:Filip.Title:Hello."; + System.out.print("'Filip' prints '" + document + "' on 'Andy': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Andy", report)); + System.out.println(" (expects true);"); + + document = "!PS Hello World in postscript.author:Filip;title:Hello;"; + System.out.print("'Filip' prints '" + document + "' on 'Andy': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Andy", report)); + System.out.println(" (expects true);"); + + document = "!PS Hello World in postscript.author:.title:."; + System.out.print("'Filip' prints '" + document + "' on 'Andy': "); + System.out.print(network.requestWorkstationPrintsDocument("Filip", + document, "Andy", report)); + System.out.println(" (expects true);"); + + try { + System.out + .print("'UnknownWorkstation' prints 'does not matter' on 'does not matter': "); + System.out.print(network.requestWorkstationPrintsDocument( + "UnknownWorkstation", "does not matter", "does not matter", + report)); + System.out.println(" (??? no exception);"); + } catch (AssertionError e1) { + System.out.println("exception (as expected);"); + } + ; + + System.out.print("BROADCAST REQUEST: "); + System.out.print(network.requestBroadcast(report)); + System.out.println(" (expects true);"); + + System.out.println(); + System.out.println(); + System.out.println(); + System.out + .println("---------------------------------REPORT------------------------------------------"); + System.out.println(report.toString()); + } + + public static void main(String args[]) { + + if (args.length <= 0) { + System.out.println("Usage: t(est) | s(imulate) nrOfIterations '"); + } else if (args[0].equals("t")) {// 'test' command + doRegressionTests(); + } else if (args[0].equals("s")) {// 'simulate' command + Integer nrOfIters = new Integer(1); + if (args.length > 1) { + nrOfIters = new Integer(args[1]); + } + + for (int i = 0; i < nrOfIters.intValue(); i++) { + simulate(); + } + } else {// unknown commaND + System.out.print("Unknown command to LANSimulation: '"); + System.out.print(args[0]); + System.out.println("'"); + } + } +} diff --git a/hw0/src/lanSimulation/Network.java b/hw0/src/lanSimulation/Network.java new file mode 100755 index 0000000..e1d0714 --- /dev/null +++ b/hw0/src/lanSimulation/Network.java @@ -0,0 +1,491 @@ +/* This file is part of lanSimulation. + * + * lanSimulation is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * lanSimulation is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with lanSimulation; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Copyright original Java version: 2004 Bart Du Bois, Serge Demeyer + * Copyright C++ version: 2006 Matthias Rieger, Bart Van Rompaey + */ +package lanSimulation; + +import lanSimulation.internals.*; + +import java.util.Hashtable; +import java.util.Enumeration; +import java.io.*; + +/** + * A <em>Network</em> represents the basic data structure for simulating a Local + * Area Network (LAN). The LAN network architecture is a token ring, implying + * that packages will be passed from one node to another, until they reached + * their destination, or until they traveled the whole token ring. + */ +public class Network { + /** + * Holds a pointer to some "first" node in the token ring. Used to ensure + * that various printing operations return expected behaviour. + */ + private Node firstNode; + /** + * Maps the names of workstations on the actual workstations. Used to + * initiate the requests for the network. + */ + private Hashtable<String, Node> workstations; + + /** + * Construct a <em>Network</em> suitable for holding #size Workstations. + * <p> + * <strong>Postcondition:</strong>(result.isInitialized()) & (! + * result.consistentNetwork()); + * </p> + */ + public Network(int size) { + assert size > 0; + firstNode = null; + workstations = new Hashtable<String, Node>(size, 1.0f); + assert !consistentNetwork(); + } + + /** + * Return a <em>Network</em> that may serve as starting point for various + * experiments. Currently, the network looks as follows. + * + * <pre> + * Workstation Filip [Workstation] -> Node -> Workstation Hans [Workstation] + * -> Printer Andy [Printer] -> ... + * + * </pre> + * + * <p> + * <strong>Postcondition:</strong>result.isInitialized() & + * result.consistentNetwork(); + * </p> + */ + public static Network DefaultExample() { + Network network = new Network(2); + + Node wsFilip = new Node(Node.WORKSTATION, "Filip"); + Node n1 = new Node(Node.NODE, "n1"); + Node wsHans = new Node(Node.WORKSTATION, "Hans"); + Node prAndy = new Node(Node.PRINTER, "Andy"); + + wsFilip.nextNode = n1; + n1.nextNode = wsHans; + wsHans.nextNode = prAndy; + prAndy.nextNode = wsFilip; + + network.workstations.put(wsFilip.name, wsFilip); + network.workstations.put(wsHans.name, wsHans); + network.firstNode = wsFilip; + + assert network.consistentNetwork(); + return network; + } + + /** + * Answer whether #receiver contains a workstation with the given name. + */ + public boolean hasWorkstation(String ws) { + // return workstations_.containsKey(ws); + Node n; + + n = workstations.get(ws); + if (n == null) { + return false; + } else { + return n.type == Node.WORKSTATION; + } + } + + /** + * Answer whether #receiver is a consistent token ring network. A consistent + * token ring network - contains at least one workstation and one printer - + * is circular - all registered workstations are on the token ring - all + * workstations on the token ring are registered. + */ + public boolean consistentNetwork() { + Enumeration<Node> enumeration; + Node currentNode; + int printersFound = 0, workstationsFound = 0; + Hashtable<String, Node> encountered = new Hashtable<String, Node>(workstations.size() * 2, 1.0f); + + if (workstations.isEmpty()) { + return false; + } + ; + if (firstNode == null) { + return false; + } + ; + // verify whether all registered workstations are indeed workstations + enumeration = workstations.elements(); + while (enumeration.hasMoreElements()) { + currentNode = enumeration.nextElement(); + if (currentNode.type != Node.WORKSTATION) { + return false; + } + ; + } + // enumerate the token ring, verifying whether all workstations are + // registered + // also count the number of printers and see whether the ring is + // circular + currentNode = firstNode; + while (!encountered.containsKey(currentNode.name)) { + encountered.put(currentNode.name, currentNode); + if (currentNode.type == Node.WORKSTATION) { + workstationsFound++; + } + ; + if (currentNode.type == Node.PRINTER) { + printersFound++; + } + ; + currentNode = currentNode.nextNode; + } + if (currentNode != firstNode) { + return false; + } + ;// not circular + if (printersFound == 0) { + return false; + } + ;// does not contain a printer + if (workstationsFound != workstations.size()) { + return false; + } + ; // not all + // workstations + // are + // registered + // all verifications succeeded + return true; + } + + /** + * The #receiver is requested to broadcast a message to all nodes. Therefore + * #receiver sends a special broadcast packet across the token ring network, + * which should be treated by all nodes. + * <p> + * <strong>Precondition:</strong> consistentNetwork(); + * </p> + * + * @param report + * Stream that will hold a report about what happened when + * handling the request. + * @return Answer #true when the broadcast operation was successful and + * #false otherwise + */ + public boolean requestBroadcast(Writer report) { + assert consistentNetwork(); + + try { + report.write("Broadcast Request\n"); + } catch (IOException exc) { + // just ignore + } + + Node currentNode = firstNode; + Packet packet = new Packet("BROADCAST", firstNode.name, firstNode.name); + do { + try { + report.write("\tNode '"); + report.write(currentNode.name); + report.write("' accepts broadcast packet.\n"); + report.write("\tNode '"); + report.write(currentNode.name); + report.write("' passes packet on.\n"); + report.flush(); + } catch (IOException exc) { + // just ignore + } + + currentNode = currentNode.nextNode; + } while (!packet.destination.equals(currentNode.name)); + + try { + report.write(">>> Broadcast traveled whole token ring.\n\n"); + } catch (IOException exc) { + // just ignore + } + + return true; + } + + /** + * The #receiver is requested by #workstation to print #document on + * #printer. Therefore #receiver sends a packet across the token ring + * network, until either (1) #printer is reached or (2) the packet traveled + * complete token ring. + * <p> + * <strong>Precondition:</strong> consistentNetwork() & + * hasWorkstation(workstation); + * </p> + * + * @param workstation + * Name of the workstation requesting the service. + * @param document + * Contents that should be printed on the printer. + * @param printer + * Name of the printer that should receive the document. + * @param report + * Stream that will hold a report about what happened when + * handling the request. + * @return Answer #true when the print operation was successful and #false + * otherwise + */ + public boolean requestWorkstationPrintsDocument(String workstation, + String document, String printer, Writer report) { + assert consistentNetwork() & hasWorkstation(workstation); + + try { + report.write("'"); + report.write(workstation); + report.write("' requests printing of '"); + report.write(document); + report.write("' on '"); + report.write(printer); + report.write("' ...\n"); + } catch (IOException exc) { + // just ignore + } + + boolean result = false; + Node startNode, currentNode; + Packet packet = new Packet(document, workstation, printer); + + startNode = workstations.get(workstation); + + try { + report.write("\tNode '"); + report.write(startNode.name); + report.write("' passes packet on.\n"); + report.flush(); + } catch (IOException exc) { + // just ignore + } + + currentNode = startNode.nextNode; + while ((!packet.destination.equals(currentNode.name)) + & (!packet.origin.equals(currentNode.name))) { + try { + report.write("\tNode '"); + report.write(currentNode.name); + report.write("' passes packet on.\n"); + report.flush(); + } catch (IOException exc) { + // just ignore + } + + currentNode = currentNode.nextNode; + } + + if (packet.destination.equals(currentNode.name)) { + result = printDocument(currentNode, packet, report); + } else { + try { + report + .write(">>> Destination not found, print job canceled.\n\n"); + report.flush(); + } catch (IOException exc) { + // just ignore + } + + result = false; + } + + return result; + } + + private boolean printDocument(Node printer, Packet document, Writer report) { + String author = "Unknown"; + String title = "Untitled"; + int startPos = 0, endPos = 0; + + if (printer.type == Node.PRINTER) { + try { + if (document.message.startsWith("!PS")) { + startPos = document.message.indexOf("author:"); + if (startPos >= 0) { + endPos = document.message.indexOf(".", startPos + 7); + if (endPos < 0) { + endPos = document.message.length(); + } + + author = document.message.substring(startPos + 7, + endPos); + } + + startPos = document.message.indexOf("title:"); + if (startPos >= 0) { + endPos = document.message.indexOf(".", startPos + 6); + if (endPos < 0) { + endPos = document.message.length(); + } + title = document.message + .substring(startPos + 6, endPos); + } + + report.write("\tAccounting -- author = '"); + report.write(author); + report.write("' -- title = '"); + report.write(title); + report.write("'\n"); + report.write(">>> Postscript job delivered.\n\n"); + report.flush(); + } else { + title = "ASCII DOCUMENT"; + if (document.message.length() >= 16) { + author = document.message.substring(8, 16); + } + + report.write("\tAccounting -- author = '"); + report.write(author); + report.write("' -- title = '"); + report.write(title); + report.write("'\n"); + report.write(">>> ASCII Print job delivered.\n\n"); + report.flush(); + } + + } catch (IOException exc) { + // just ignore + } + return true; + } else { + try { + report + .write(">>> Destination is not a printer, print job canceled.\n\n"); + report.flush(); + } catch (IOException exc) { + // just ignore + } + return false; + } + } + + /** + * Return a printable representation of #receiver. + */ + public String toString() { + StringBuffer buf = new StringBuffer(30 * workstations.size()); + printOn(buf); + return buf.toString(); + } + + /** + * Write a printable representation of #receiver on the given #buf. + */ + public void printOn(StringBuffer buf) { + Node currentNode = firstNode; + do { + switch (currentNode.type) { + case Node.NODE: + buf.append("Node "); + buf.append(currentNode.name); + buf.append(" [Node]"); + break; + case Node.WORKSTATION: + buf.append("Workstation "); + buf.append(currentNode.name); + buf.append(" [Workstation]"); + break; + case Node.PRINTER: + buf.append("Printer "); + buf.append(currentNode.name); + buf.append(" [Printer]"); + break; + default: + buf.append("(Unexpected)"); + ; + break; + } + ; + buf.append(" -> "); + currentNode = currentNode.nextNode; + } while (currentNode != firstNode); + buf.append(" ... "); + } + + /** + * Write a HTML representation of #receiver on the given #buf. + */ + public void printHTMLOn(StringBuffer buf) { + + buf.append("<HTML>\n<HEAD>\n<TITLE>LAN Simulation</TITLE>\n</HEAD>\n<BODY>\n<H1>LAN SIMULATION</H1>"); + Node currentNode = firstNode; + buf.append("\n\n<UL>"); + do { + buf.append("\n\t<LI> "); + switch (currentNode.type) { + case Node.NODE: + buf.append("Node "); + buf.append(currentNode.name); + buf.append(" [Node]"); + break; + case Node.WORKSTATION: + buf.append("Workstation "); + buf.append(currentNode.name); + buf.append(" [Workstation]"); + break; + case Node.PRINTER: + buf.append("Printer "); + buf.append(currentNode.name); + buf.append(" [Printer]"); + break; + default: + buf.append("(Unexpected)"); + break; + } + buf.append(" </LI>"); + currentNode = currentNode.nextNode; + } while (currentNode != firstNode); + buf.append("\n\t<LI>...</LI>\n</UL>\n\n</BODY>\n</HTML>\n"); + } + + /** + * Write an XML representation of #receiver on the given #buf. + */ + public void printXMLOn(StringBuffer buf) { + + Node currentNode = firstNode; + buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<network>"); + do { + buf.append("\n\t"); + switch (currentNode.type) { + case Node.NODE: + buf.append("<node>"); + buf.append(currentNode.name); + buf.append("</node>"); + break; + case Node.WORKSTATION: + buf.append("<workstation>"); + buf.append(currentNode.name); + buf.append("</workstation>"); + break; + case Node.PRINTER: + buf.append("<printer>"); + buf.append(currentNode.name); + buf.append("</printer>"); + break; + default: + buf.append("<unknown></unknown>"); + break; + } + currentNode = currentNode.nextNode; + } while (currentNode != firstNode); + buf.append("\n</network>"); + } + +} diff --git a/hw0/src/lanSimulation/internals/Node.java b/hw0/src/lanSimulation/internals/Node.java new file mode 100755 index 0000000..426be89 --- /dev/null +++ b/hw0/src/lanSimulation/internals/Node.java @@ -0,0 +1,83 @@ +/* This file is part of lanSimulation. + * + * lanSimulation is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * lanSimulation is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with lanSimulation; if not, write to the Free Software + * Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Copyright original Java version: 2004 Bart Du Bois, Serge Demeyer + * Copyright C++ version: 2006 Matthias Rieger, Bart Van Rompaey + */ +package lanSimulation.internals; + +/** + * A <em>Node</em> represents a single Node in a Local Area Network (LAN). + * Several types of Nodes exist. + */ +public class Node { + // enumeration constants specifying all legal node types + /** + * A node with type NODE has only basic functionality. + */ + public static final byte NODE = 0; + /** + * A node with type WORKSTATION may initiate requests on the LAN. + */ + public static final byte WORKSTATION = 1; + /** + * A node with type PRINTER may accept packages to be printed. + */ + public static final byte PRINTER = 2; + + /** + * Holds the type of the Node. + */ + public byte type; + /** + * Holds the name of the Node. + */ + public String name; + /** + * Holds the next Node in the token ring architecture. + * + * @see lanSimulation.internals.Node + */ + public Node nextNode; + + /** + * Construct a <em>Node</em> with given #type and #name. + * <p> + * <strong>Precondition:</strong> (type >= NODE) & (type <= PRINTER); + * </p> + */ + public Node(byte _type, String _name) { + assert (_type >= NODE) & (_type <= PRINTER); + type = _type; + name = _name; + nextNode = null; + } + + /** + * Construct a <em>Node</em> with given #type and #name, and which is linked + * to #nextNode. + * <p> + * <strong>Precondition:</strong> (type >= NODE) & (type <= PRINTER); + * </p> + */ + public Node(byte _type, String _name, Node _nextNode) { + assert (_type >= NODE) & (_type <= PRINTER); + type = _type; + name = _name; + nextNode = _nextNode; + } + +} \ No newline at end of file diff --git a/hw0/src/lanSimulation/internals/Packet.java b/hw0/src/lanSimulation/internals/Packet.java new file mode 100755 index 0000000..9e6b358 --- /dev/null +++ b/hw0/src/lanSimulation/internals/Packet.java @@ -0,0 +1,58 @@ +/* This file is part of lanSimulation. + * + * lanSimulation is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * lanSimulation is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with lanSimulation; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Copyright original Java version: 2004 Bart Du Bois, Serge Demeyer + * Copyright C++ version: 2006 Matthias Rieger, Bart Van Rompaey + */ +package lanSimulation.internals; + +/** + * A <em>Packet</em> represents a unit of information to be sent over the Local + * Area Network (LAN). + */ +public class Packet { + /** + * Holds the actual message to be send over the network. + */ + public String message; + /** + * Holds the name of the Node which initiated the request. + */ + public String origin; + /** + * Holds the name of the Node which should receive the information. + */ + public String destination; + + /** + * Construct a <em>Packet</em> with given #message and #destination. + */ + public Packet(String _message, String _destination) { + message = _message; + origin = ""; + destination = _destination; + } + + /** + * Construct a <em>Packet</em> with given #message, #origin and #receiver. + */ + public Packet(String _message, String _origin, String _destination) { + message = _message; + origin = _origin; + destination = _destination; + } + +} \ No newline at end of file diff --git a/hw0/src/lanSimulation/tests/LANTests.java b/hw0/src/lanSimulation/tests/LANTests.java new file mode 100755 index 0000000..1b92584 --- /dev/null +++ b/hw0/src/lanSimulation/tests/LANTests.java @@ -0,0 +1,343 @@ +/* This file is part of lanSimulation. + * + * lanSimulation is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * lanSimulation is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with lanSimulation; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Copyright original Java version: 2004 Bart Du Bois, Serge Demeyer + * Copyright C++ version: 2006 Matthias Rieger, Bart Van Rompaey + */ +package lanSimulation.tests; + +import lanSimulation.internals.*; +import lanSimulation.*; +import junit.framework.*; +import junit.extensions.*; +import java.lang.AssertionError; +import java.io.*; + +public class LANTests extends TestCase { + + public static Test suite() { + TestSuite testSuite = new TestSuite(LANTests.class); + return testSuite; + } + + public void testBasicPacket() { + Packet packet; + + packet = new Packet("c", "a"); + assertEquals("message", packet.message, "c"); + assertEquals("destination", packet.destination, "a"); + assertEquals("origin", packet.origin, ""); + packet.origin = "o"; + assertEquals("origin (after setting)", packet.origin, "o"); + } + + private boolean compareFiles(String filename1, String filename2) { + FileInputStream f1, f2; + int b1 = 0, b2 = 0; + + try { + f1 = new FileInputStream(filename1); + try { + f2 = new FileInputStream(filename2); + } catch (FileNotFoundException f2exc) { + try { + f1.close(); + } catch (IOException exc) { + } + + return false; // file 2 does not exist + } + } catch (FileNotFoundException f1exc) { + return false; // file 1 does not exist + } + + try { + if (f1.available() != f2.available()) { + return false; + } // length of files is different + while ((b1 != -1) & (b2 != -1)) { + b1 = f1.read(); + b2 = f2.read(); + if (b1 != b2) { + return false; + } // discovered one diferring character + } + + if ((b1 == -1) & (b2 == -1)) { + return true; // reached both end of files + } else { + return false; // one end of file not reached + } + } catch (IOException exc) { + return false; // read error, assume one file corrupted + } finally { + try { + f1.close(); + } catch (IOException exc) { + } + + try { + f2.close(); + } catch (IOException exc) { + } + + } + } + + private void YOUMAYWANTTOtestCompareFiles() { + String fName1 = "testCompare1.txt", fName2 = "testCompare2.txt", fName3 = "testCompare3.txt", fName4 = "testCompare4.txt"; + FileWriter f1, f2, f3, f4; + + try { + f1 = new FileWriter(fName1); + try { + f2 = new FileWriter(fName2); + try { + f3 = new FileWriter(fName3); + try { + f4 = new FileWriter(fName4); + } catch (IOException f3exc) { + try { + f1.close(); + } catch (IOException exc) { + } + + try { + f2.close(); + } catch (IOException exc) { + } + + try { + f3.close(); + } catch (IOException exc) { + } + + return; + } + } catch (IOException f3exc) { + try { + f1.close(); + } catch (IOException exc) { + } + + try { + f2.close(); + } catch (IOException exc) { + } + + return; + } + } catch (IOException f2exc) { + try { + f1.close(); + } catch (IOException exc) { + } + + return; + } + } catch (IOException f1exc) { + return; + } + + try { + f1.write("aaa"); + f2.write("aaa"); + f3.write("aa"); + f4.write("aab"); + } catch (IOException exc) { + } finally { + try { + f1.close(); + } catch (IOException exc) { + } + + try { + f2.close(); + } catch (IOException exc) { + } + + try { + f3.close(); + } catch (IOException exc) { + } + + try { + f4.close(); + } catch (IOException exc) { + } + + } + + assertTrue("equals fName1 to fName2 ", compareFiles(fName1, fName2)); + assertFalse("not equals fName1 to fName3 (fName 3 is shorter)", + compareFiles(fName1, fName3)); + assertFalse("not equals fName3 to fName1 (fName 3 is shorter)", + compareFiles(fName3, fName1)); + assertFalse("not equals fName1 to fName4 (last character differs)", + compareFiles(fName1, fName4)); + assertFalse("not equals fName1 to fName4 (last character differs)", + compareFiles(fName1, fName4)); + } + + public void testBasicNode() { + Node node; + + node = new Node(Node.NODE, "n"); + assertEquals("type", node.type, Node.NODE); + assertEquals("name", node.name, "n"); + assertEquals("nextNode", node.nextNode, null); + node.nextNode = node; + assertEquals("nextNode (after setting)", node.nextNode, node); + } + + public void testDefaultNetworkToString() { + Network network = Network.DefaultExample(); + + assertTrue("consistentNetwork ", network.consistentNetwork()); + assertEquals( + "DefaultNetwork.toString()", + network.toString(), + "Workstation Filip [Workstation] -> Node n1 [Node] -> Workstation Hans [Workstation] -> Printer Andy [Printer] -> ... "); + } + + public void testWorkstationPrintsDocument() { + Network network = Network.DefaultExample(); + StringWriter report = new StringWriter(500); + + assertTrue("PrintSuccess ", network.requestWorkstationPrintsDocument( + "Filip", "Hello World", "Andy", report)); + assertFalse("PrintFailure (UnkownPrinter) ", network + .requestWorkstationPrintsDocument("Filip", "Hello World", + "UnknownPrinter", report)); + assertFalse("PrintFailure (print on Workstation) ", network + .requestWorkstationPrintsDocument("Filip", "Hello World", + "Hans", report)); + assertFalse("PrintFailure (print on Node) ", network + .requestWorkstationPrintsDocument("Filip", "Hello World", "n1", + report)); + assertTrue("PrintSuccess Postscript", network + .requestWorkstationPrintsDocument("Filip", + "!PS Hello World in postscript", "Andy", report)); + assertFalse("PrintFailure Postscript", network + .requestWorkstationPrintsDocument("Filip", + "!PS Hello World in postscript", "Hans", report)); + } + + public void testBroadcast() { + Network network = Network.DefaultExample(); + StringWriter report = new StringWriter(500); + + assertTrue("Broadcast ", network.requestBroadcast(report)); + } + + /** + * Test whether output routines work as expected. This is done by comparing + * generating output on a file "useOutput.txt" and comparing it to a file + * "expectedOutput.txt". On a first run this test might break because the + * file "expectedOutput.txt" does not exist. Then just run the test, verify + * manually whether "useOutput.txt" conforms to the expected output and if + * it does rename "useOutput.txt" in "expectedOutput.txt". From then on the + * tests should work as expected. + */ + public void testOutput() { + Network network = Network.DefaultExample(); + String generateOutputFName = "useOutput.txt", expectedOutputFName = "expectedOutput.txt"; + FileWriter generateOutput; + StringBuffer buf = new StringBuffer(500); + StringWriter report = new StringWriter(500); + + try { + generateOutput = new FileWriter(generateOutputFName); + } catch (IOException f2exc) { + assertTrue("Could not create '" + generateOutputFName + "'", false); + return; + } + + try { + buf + .append("---------------------------------ASCII------------------------------------------\n"); + network.printOn(buf); + buf + .append("\n\n---------------------------------HTML------------------------------------------\n"); + network.printHTMLOn(buf); + buf + .append("\n\n---------------------------------XML------------------------------------------\n"); + network.printXMLOn(buf); + generateOutput.write(buf.toString()); + report + .write("\n\n---------------------------------SCENARIO: Print Success --------------------------\n"); + network.requestWorkstationPrintsDocument("Filip", "Hello World", + "Andy", report); + report + .write("\n\n---------------------------------SCENARIO: PrintFailure (UnkownPrinter) ------------\n"); + network.requestWorkstationPrintsDocument("Filip", "Hello World", + "UnknownPrinter", report); + report + .write("\n\n---------------------------------SCENARIO: PrintFailure (print on Workstation) -----\n"); + network.requestWorkstationPrintsDocument("Filip", "Hello World", + "Hans", report); + report + .write("\n\n---------------------------------SCENARIO: PrintFailure (print on Node) -----\n"); + network.requestWorkstationPrintsDocument("Filip", "Hello World", + "n1", report); + report + .write("\n\n---------------------------------SCENARIO: Print Success Postscript-----------------\n"); + network.requestWorkstationPrintsDocument("Filip", + "!PS Hello World in postscript", "Andy", report); + report + .write("\n\n---------------------------------SCENARIO: Print Failure Postscript-----------------\n"); + network.requestWorkstationPrintsDocument("Filip", + "!PS Hello World in postscript", "Hans", report); + report + .write("\n\n---------------------------------SCENARIO: Broadcast Success -----------------\n"); + network.requestBroadcast(report); + generateOutput.write(report.toString()); + } catch (IOException exc) { + } finally { + try { + generateOutput.close(); + } catch (IOException exc) { + } + + } + + assertTrue("Generated output is not as expected ", compareFiles( + generateOutputFName, expectedOutputFName)); + } + + static public class PreconditionViolationTestCase extends ExceptionTestCase { + public PreconditionViolationTestCase(String name, Class exception) { + super(name, exception); + } + + public void test() { + Network network = Network.DefaultExample(); + StringWriter report = new StringWriter(100); + network.requestWorkstationPrintsDocument("UnknownWorkstation", + "does not matter", "does not matter", report); + } + + } + + public void testPreconditionViolation() { + PreconditionViolationTestCase test = new PreconditionViolationTestCase( + "test", AssertionError.class); + TestResult result = test.run(); + assertEquals(1, result.runCount()); + assertEquals(1, result.errorCount()); + } + +} \ No newline at end of file diff --git a/hw0/useOutput.txt b/hw0/useOutput.txt new file mode 100644 index 0000000..95a45d4 --- /dev/null +++ b/hw0/useOutput.txt @@ -0,0 +1,98 @@ +---------------------------------ASCII------------------------------------------ +Workstation Filip [Workstation] -> Node n1 [Node] -> Workstation Hans [Workstation] -> Printer Andy [Printer] -> ... + +---------------------------------HTML------------------------------------------ +<HTML> +<HEAD> +<TITLE>LAN Simulation</TITLE> +</HEAD> +<BODY> +<H1>LAN SIMULATION</H1> + +<UL> + <LI> Workstation Filip [Workstation] </LI> + <LI> Node n1 [Node] </LI> + <LI> Workstation Hans [Workstation] </LI> + <LI> Printer Andy [Printer] </LI> + <LI>...</LI> +</UL> + +</BODY> +</HTML> + + +---------------------------------XML------------------------------------------ +<?xml version="1.0" encoding="UTF-8"?> + +<network> + <workstation>Filip</workstation> + <node>n1</node> + <workstation>Hans</workstation> + <printer>Andy</printer> +</network> + +---------------------------------SCENARIO: Print Success -------------------------- +'Filip' requests printing of 'Hello World' on 'Andy' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. + Node 'Hans' passes packet on. + Accounting -- author = 'Unknown' -- title = 'ASCII DOCUMENT' +>>> ASCII Print job delivered. + + + +---------------------------------SCENARIO: PrintFailure (UnkownPrinter) ------------ +'Filip' requests printing of 'Hello World' on 'UnknownPrinter' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. + Node 'Hans' passes packet on. + Node 'Andy' passes packet on. +>>> Destination not found, print job canceled. + + + +---------------------------------SCENARIO: PrintFailure (print on Workstation) ----- +'Filip' requests printing of 'Hello World' on 'Hans' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. +>>> Destination is not a printer, print job canceled. + + + +---------------------------------SCENARIO: PrintFailure (print on Node) ----- +'Filip' requests printing of 'Hello World' on 'n1' ... + Node 'Filip' passes packet on. +>>> Destination is not a printer, print job canceled. + + + +---------------------------------SCENARIO: Print Success Postscript----------------- +'Filip' requests printing of '!PS Hello World in postscript' on 'Andy' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. + Node 'Hans' passes packet on. + Accounting -- author = 'Unknown' -- title = 'Untitled' +>>> Postscript job delivered. + + + +---------------------------------SCENARIO: Print Failure Postscript----------------- +'Filip' requests printing of '!PS Hello World in postscript' on 'Hans' ... + Node 'Filip' passes packet on. + Node 'n1' passes packet on. +>>> Destination is not a printer, print job canceled. + + + +---------------------------------SCENARIO: Broadcast Success ----------------- +Broadcast Request + Node 'Filip' accepts broadcast packet. + Node 'Filip' passes packet on. + Node 'n1' accepts broadcast packet. + Node 'n1' passes packet on. + Node 'Hans' accepts broadcast packet. + Node 'Hans' passes packet on. + Node 'Andy' accepts broadcast packet. + Node 'Andy' passes packet on. +>>> Broadcast traveled whole token ring. + -- GitLab