diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d7c170 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.vscode +.idea +build +data +sqlcipher-3.0.1 +dist +venv +venv_decrypt +venv_main_pc +TEST +app/data/avatar +app/data/image2 +app/data/emoji +app/DataBase/Msg/* +server +*.db +*.ui +*.pyc +*.bat +*.log +*.spec +test* +wordcloud.html \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them 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 prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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 convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + 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. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 3 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program 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, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU 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 Lesser General +Public License instead of this License. But first, please read +. diff --git a/Memo_Trace b/Memo_Trace new file mode 160000 index 0000000..152f4c4 --- /dev/null +++ b/Memo_Trace @@ -0,0 +1 @@ +Subproject commit 152f4c4698abf9f82e217f9a5f3d1389d83d2d14 diff --git a/app/DataBase/__init__.py b/app/DataBase/__init__.py new file mode 100644 index 0000000..5c44b10 --- /dev/null +++ b/app/DataBase/__init__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +""" +@File : __init__.py.py +@Author : Shuaikang Zhou +@Time : 2023/1/5 0:10 +@IDE : Pycharm +@Version : Python3.10 +@comment : ··· +""" +from .hard_link import HardLink +from .micro_msg import MicroMsg +from .media_msg import MediaMsg +from .misc import Misc +from .msg import Msg +from .msg import MsgType + +misc_db = Misc() +msg_db = Msg() +micro_msg_db = MicroMsg() +hard_link_db = HardLink() +media_msg_db = MediaMsg() + + +def close_db(): + misc_db.close() + msg_db.close() + micro_msg_db.close() + hard_link_db.close() + media_msg_db.close() + + +def init_db(): + misc_db.init_database() + msg_db.init_database() + micro_msg_db.init_database() + hard_link_db.init_database() + media_msg_db.init_database() + + +__all__ = ['misc_db', 'micro_msg_db', 'msg_db', 'hard_link_db', 'MsgType', "media_msg_db", "close_db"] diff --git a/app/DataBase/hard_link.py b/app/DataBase/hard_link.py new file mode 100644 index 0000000..95cf643 --- /dev/null +++ b/app/DataBase/hard_link.py @@ -0,0 +1,297 @@ +import binascii +import os.path +import sqlite3 +import threading +import traceback +import xml.etree.ElementTree as ET + +from app.log import log, logger +from app.util.protocbuf.msg_pb2 import MessageBytesExtra + +image_db_lock = threading.Lock() +video_db_lock = threading.Lock() +image_db_path = "./app/Database/Msg/HardLinkImage.db" +video_db_path = "./app/Database/Msg/HardLinkVideo.db" +root_path = "FileStorage/MsgAttach/" +video_root_path = "FileStorage/Video/" + + +@log +def get_md5_from_xml(content, type_="img"): + try: + # 解析XML + root = ET.fromstring(content) + if type_ == "img": + # 提取md5的值 + md5_value = root.find(".//img").get("md5") + elif type_ == "video": + md5_value = root.find(".//videomsg").get("md5") + # print(md5_value) + return md5_value + except ET.ParseError: + return None + + +def decodeExtraBuf(extra_buf_content: bytes): + if not extra_buf_content: + return { + "region": ('', '', ''), + "signature": '', + "telephone": '', + "gender": 0, + } + trunkName = { + b"\x46\xCF\x10\xC4": "个性签名", + b"\xA4\xD9\x02\x4A": "国家", + b"\xE2\xEA\xA8\xD1": "省份", + b"\x1D\x02\x5B\xBF": "市", + # b"\x81\xAE\x19\xB4": "朋友圈背景url", + # b"\xF9\x17\xBC\xC0": "公司名称", + # b"\x4E\xB9\x6D\x85": "企业微信属性", + # b"\x0E\x71\x9F\x13": "备注图片", + b"\x75\x93\x78\xAD": "手机号", + b"\x74\x75\x2C\x06": "性别", + } + res = {"手机号": ""} + off = 0 + try: + for key in trunkName: + trunk_head = trunkName[key] + try: + off = extra_buf_content.index(key) + 4 + except: + pass + char = extra_buf_content[off: off + 1] + off += 1 + if char == b"\x04": # 四个字节的int,小端序 + intContent = extra_buf_content[off: off + 4] + off += 4 + intContent = int.from_bytes(intContent, "little") + res[trunk_head] = intContent + elif char == b"\x18": # utf-16字符串 + lengthContent = extra_buf_content[off: off + 4] + off += 4 + lengthContent = int.from_bytes(lengthContent, "little") + strContent = extra_buf_content[off: off + lengthContent] + off += lengthContent + res[trunk_head] = strContent.decode("utf-16").rstrip("\x00") + return { + "region": (res["国家"], res["省份"], res["市"]), + "signature": res["个性签名"], + "telephone": res["手机号"], + "gender": res["性别"], + } + except: + logger.error(f'联系人解析错误:\n{traceback.format_exc()}') + return { + "region": ('', '', ''), + "signature": '', + "telephone": '', + "gender": 0, + } + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +@singleton +class HardLink: + def __init__(self): + self.imageDB = None + self.videoDB = None + self.image_cursor = None + self.video_cursor = None + self.open_flag = False + self.init_database() + + def init_database(self): + if not self.open_flag: + if os.path.exists(image_db_path): + self.imageDB = sqlite3.connect(image_db_path, check_same_thread=False) + # '''创建游标''' + self.image_cursor = self.imageDB.cursor() + self.open_flag = True + if image_db_lock.locked(): + image_db_lock.release() + if os.path.exists(video_db_path): + self.videoDB = sqlite3.connect(video_db_path, check_same_thread=False) + # '''创建游标''' + self.video_cursor = self.videoDB.cursor() + self.open_flag = True + if video_db_lock.locked(): + video_db_lock.release() + + def get_image_by_md5(self, md5: bytes): + if not md5: + return None + if not self.open_flag: + return None + sql = """ + select Md5Hash,MD5,FileName,HardLinkImageID.Dir as DirName1,HardLinkImageID2.Dir as DirName2 + from HardLinkImageAttribute + join HardLinkImageID on HardLinkImageAttribute.DirID1 = HardLinkImageID.DirID + join HardLinkImageID as HardLinkImageID2 on HardLinkImageAttribute.DirID2 = HardLinkImageID2.DirID + where MD5 = ?; + """ + try: + image_db_lock.acquire(True) + try: + self.image_cursor.execute(sql, [md5]) + except AttributeError: + self.init_database() + self.image_cursor.execute(sql, [md5]) + result = self.image_cursor.fetchone() + return result + finally: + image_db_lock.release() + + def get_video_by_md5(self, md5: bytes): + if not md5: + return None + if not self.open_flag: + return None + sql = """ + select Md5Hash,MD5,FileName,HardLinkVideoID2.Dir as DirName2 + from HardLinkVideoAttribute + join HardLinkVideoID as HardLinkVideoID2 on HardLinkVideoAttribute.DirID2 = HardLinkVideoID2.DirID + where MD5 = ?; + """ + try: + video_db_lock.acquire(True) + try: + self.video_cursor.execute(sql, [md5]) + except sqlite3.OperationalError: + return None + except AttributeError: + self.init_database() + self.video_cursor.execute(sql, [md5]) + result = self.video_cursor.fetchone() + return result + finally: + video_db_lock.release() + + def get_image_original(self, content, bytesExtra) -> str: + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytesExtra) + result = '' + for tmp in msg_bytes.message2: + if tmp.field1 != 4: + continue + pathh = tmp.field2 # wxid\FileStorage\... + pathh = "\\".join(pathh.split("\\")[1:]) + return pathh + md5 = get_md5_from_xml(content) + if not md5: + pass + else: + result = self.get_image_by_md5(binascii.unhexlify(md5)) + if result: + dir1 = result[3] + dir2 = result[4] + data_image = result[2] + dir0 = "Image" + dat_image = os.path.join(root_path, dir1, dir0, dir2, data_image) + result = dat_image + return result + + def get_image_thumb(self, content, bytesExtra) -> str: + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytesExtra) + result = '' + for tmp in msg_bytes.message2: + if tmp.field1 != 3: + continue + pathh = tmp.field2 # wxid\FileStorage\... + pathh = "\\".join(pathh.split("\\")[1:]) + return pathh + md5 = get_md5_from_xml(content) + if not md5: + pass + else: + result = self.get_image_by_md5(binascii.unhexlify(md5)) + if result: + dir1 = result[3] + dir2 = result[4] + data_image = result[2] + dir0 = "Thumb" + dat_image = os.path.join(root_path, dir1, dir0, dir2, data_image) + result = dat_image + return result + + def get_image(self, content, bytesExtra, up_dir="", thumb=False) -> str: + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytesExtra) + if thumb: + result = self.get_image_thumb(content, bytesExtra) + else: + result = self.get_image_original(content, bytesExtra) + if not (result and os.path.exists(os.path.join(up_dir, result))): + result = self.get_image_thumb(content, bytesExtra) + return result + + def get_video(self, content, bytesExtra, thumb=False): + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytesExtra) + for tmp in msg_bytes.message2: + if tmp.field1 != (3 if thumb else 4): + continue + pathh = tmp.field2 # wxid\FileStorage\... + pathh = "\\".join(pathh.split("\\")[1:]) + return pathh + md5 = get_md5_from_xml(content, type_="video") + if not md5: + return '' + result = self.get_video_by_md5(binascii.unhexlify(md5)) + if result: + dir2 = result[3] + data_image = result[2].split(".")[0] + ".jpg" if thumb else result[2] + # dir0 = 'Thumb' if thumb else 'Image' + dat_image = os.path.join(video_root_path, dir2, data_image) + return dat_image + else: + return '' + + def close(self): + if self.open_flag: + try: + image_db_lock.acquire(True) + video_db_lock.acquire(True) + self.open_flag = False + self.imageDB.close() + self.videoDB.close() + finally: + image_db_lock.release() + video_db_lock.release() + + def __del__(self): + self.close() + + +# 6b02292eecea118f06be3a5b20075afc_t + +if __name__ == "__main__": + msg_root_path = "./Msg/" + image_db_path = "./Msg/HardLinkImage.db" + video_db_path = "./Msg/HardLinkVideo.db" + hard_link_db = HardLink() + hard_link_db.init_database() + # content = '''\n\t\n\t\n\t\n\n''' + # print(hard_link_db.get_image(content)) + # print(hard_link_db.get_image(content, thumb=False)) + # result = get_md5_from_xml(content) + # print(result) + content = """ + + + +""" + print(hard_link_db.get_video(content)) + print(hard_link_db.get_video(content, thumb=True)) diff --git a/app/DataBase/media_msg.py b/app/DataBase/media_msg.py new file mode 100644 index 0000000..4baf912 --- /dev/null +++ b/app/DataBase/media_msg.py @@ -0,0 +1,145 @@ +import os.path +import subprocess +import sys +import traceback +from os import system +import sqlite3 +import threading +import xml.etree.ElementTree as ET +from pilk import decode + +from app.log import logger + +lock = threading.Lock() +db_path = "./app/Database/Msg/MediaMSG.db" + + +def get_ffmpeg_path(): + # 获取打包后的资源目录 + resource_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__))) + + # 构建 FFmpeg 可执行文件的路径 + ffmpeg_path = os.path.join(resource_dir, 'app', 'resources','data', 'ffmpeg.exe') + + return ffmpeg_path + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +@singleton +class MediaMsg: + def __init__(self): + self.DB = None + self.cursor: sqlite3.Cursor = None + self.open_flag = False + self.init_database() + + def init_database(self): + if not self.open_flag: + if os.path.exists(db_path): + self.DB = sqlite3.connect(db_path, check_same_thread=False) + # '''创建游标''' + self.cursor = self.DB.cursor() + self.open_flag = True + if lock.locked(): + lock.release() + + def get_media_buffer(self, reserved0): + sql = ''' + select Buf + from Media + where Reserved0 = ? + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [reserved0]) + result = self.cursor.fetchone() + + finally: + lock.release() + return result[0] if result else None + + def get_audio(self, reserved0, output_path): + buf = self.get_media_buffer(reserved0) + if not buf: + return '' + silk_path = f"{output_path}/{reserved0}.silk" + pcm_path = f"{output_path}/{reserved0}.pcm" + mp3_path = f"{output_path}/{reserved0}.mp3" + if os.path.exists(mp3_path): + return mp3_path + with open(silk_path, "wb") as f: + f.write(buf) + # open(silk_path, "wb").write() + try: + decode(silk_path, pcm_path, 44100) + # 调用系统上的 ffmpeg 可执行文件 + # 获取 FFmpeg 可执行文件的路径 + ffmpeg_path = get_ffmpeg_path() + # # 调用 FFmpeg + if os.path.exists(ffmpeg_path): + cmd = f'''"{ffmpeg_path}" -loglevel quiet -y -f s16le -i "{pcm_path}" -ar 44100 -ac 1 "{mp3_path}"''' + # system(cmd) + # 使用subprocess.run()执行命令 + subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + else: + # 源码运行的时候下面的有效 + # 这里不知道怎么捕捉异常 + cmd = f'''"{os.path.join(os.getcwd(), 'app', 'resources', 'data','ffmpeg.exe')}" -loglevel quiet -y -f s16le -i "{pcm_path}" -ar 44100 -ac 1 "{mp3_path}"''' + # system(cmd) + # 使用subprocess.run()执行命令 + subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + os.remove(silk_path) + os.remove(pcm_path) + except Exception as e: + print(f"Error: {e}") + logger.error(f'语音发送错误\n{traceback.format_exc()}') + cmd = f'''"{os.path.join(os.getcwd(), 'app', 'resources', 'data', 'ffmpeg.exe')}" -loglevel quiet -y -f s16le -i "{pcm_path}" -ar 44100 -ac 1 "{mp3_path}"''' + # system(cmd) + # 使用subprocess.run()执行命令 + subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + finally: + print(mp3_path) + return mp3_path + + def get_audio_path(self, reserved0, output_path): + mp3_path = f"{output_path}\\{reserved0}.mp3" + mp3_path = mp3_path.replace("/", "\\") + return mp3_path + + def get_audio_text(self, content): + try: + root = ET.fromstring(content) + transtext = root.find(".//voicetrans").get("transtext") + return transtext + except: + return "" + + def close(self): + if self.open_flag: + try: + lock.acquire(True) + self.open_flag = False + self.DB.close() + finally: + lock.release() + + def __del__(self): + self.close() + + +if __name__ == '__main__': + db_path = './Msg/MediaMSG.db' + media_msg_db = MediaMsg() + reserved = '2865682741418252473' + path = media_msg_db.get_audio(reserved, r"D:\gou\message\WeChatMsg") + print(path) diff --git a/app/DataBase/merge.py b/app/DataBase/merge.py new file mode 100644 index 0000000..945eba0 --- /dev/null +++ b/app/DataBase/merge.py @@ -0,0 +1,103 @@ +import os +import sqlite3 +import traceback + +from app.log import logger + + +def merge_MediaMSG_databases(source_paths, target_path): + # 创建目标数据库连接 + target_conn = sqlite3.connect(target_path) + target_cursor = target_conn.cursor() + try: + # 开始事务 + target_conn.execute("BEGIN;") + for i, source_path in enumerate(source_paths): + if not os.path.exists(source_path): + continue + db = sqlite3.connect(source_path) + db.text_factory = str + cursor = db.cursor() + # 附加源数据库 + try: + sql = '''SELECT Key,Reserved0,Buf,Reserved1,Reserved2 FROM Media;''' + cursor.execute(sql) + result = cursor.fetchall() + target_cursor.executemany( + "INSERT INTO Media (Key,Reserved0,Buf,Reserved1,Reserved2)" + "VALUES(?,?,?,?,?)", + result) + except sqlite3.IntegrityError: + print("有重复key", "跳过") + except sqlite3.OperationalError: + print("no such table: Media", "跳过") + cursor.close() + db.close() + # 提交事务 + target_conn.execute("COMMIT;") + + except Exception as e: + # 发生异常时回滚事务 + target_conn.execute("ROLLBACK;") + raise e + + finally: + # 关闭目标数据库连接 + target_conn.close() + + +def merge_databases(source_paths, target_path): + # 创建目标数据库连接 + target_conn = sqlite3.connect(target_path) + target_cursor = target_conn.cursor() + try: + # 开始事务 + target_conn.execute("BEGIN;") + for i, source_path in enumerate(source_paths): + if not os.path.exists(source_path): + continue + db = sqlite3.connect(source_path) + db.text_factory = str + cursor = db.cursor() + try: + sql = ''' + SELECT TalkerId,MsgsvrID,Type,SubType,IsSender,CreateTime,Sequence,StrTalker,StrContent,DisplayContent,BytesExtra,CompressContent + FROM MSG; + ''' + cursor.execute(sql) + result = cursor.fetchall() + # 附加源数据库 + target_cursor.executemany( + "INSERT INTO MSG " + "(TalkerId,MsgsvrID,Type,SubType,IsSender,CreateTime,Sequence,StrTalker,StrContent,DisplayContent," + "BytesExtra,CompressContent)" + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?)", + result) + except: + logger.error(f'{source_path}数据库合并错误:\n{traceback.format_exc()}') + cursor.close() + db.close() + # 提交事务 + target_conn.execute("COMMIT;") + + except Exception as e: + # 发生异常时回滚事务 + target_conn.execute("ROLLBACK;") + raise e + + finally: + # 关闭目标数据库连接 + target_conn.close() + + +if __name__ == "__main__": + # 源数据库文件列表 + source_databases = ["Msg/MSG1.db", "Msg/MSG2.db", "Msg/MSG3.db"] + + # 目标数据库文件 + target_database = "Msg/MSG.db" + import shutil + + shutil.copy('Msg/MSG0.db', target_database) # 使用一个数据库文件作为模板 + # 合并数据库 + merge_databases(source_databases, target_database) diff --git a/app/DataBase/micro_msg.py b/app/DataBase/micro_msg.py new file mode 100644 index 0000000..44ae061 --- /dev/null +++ b/app/DataBase/micro_msg.py @@ -0,0 +1,152 @@ +import os.path +import sqlite3 +import threading + +lock = threading.Lock() +db_path = "./app/Database/Msg/MicroMsg.db" + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +def is_database_exist(): + return os.path.exists(db_path) + + +class MicroMsg: + def __init__(self): + self.DB = None + self.cursor = None + self.open_flag = False + self.init_database() + + def init_database(self): + if not self.open_flag: + if os.path.exists(db_path): + self.DB = sqlite3.connect(db_path, check_same_thread=False) + # '''创建游标''' + self.cursor = self.DB.cursor() + self.open_flag = True + if lock.locked(): + lock.release() + + def get_contact(self): + if not self.open_flag: + return [] + try: + lock.acquire(True) + sql = '''SELECT UserName, Alias, Type, Remark, NickName, PYInitial, RemarkPYInitial, ContactHeadImgUrl.smallHeadImgUrl, ContactHeadImgUrl.bigHeadImgUrl,ExTraBuf,COALESCE(ContactLabel.LabelName, 'None') AS labelName + FROM Contact + INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName + LEFT JOIN ContactLabel ON Contact.LabelIDList = ContactLabel.LabelId + WHERE (Type!=4 AND VerifyFlag=0) + AND NickName != '' + ORDER BY + CASE + WHEN RemarkPYInitial = '' THEN PYInitial + ELSE RemarkPYInitial + END ASC + ''' + self.cursor.execute(sql) + result = self.cursor.fetchall() + except sqlite3.OperationalError: + # lock.acquire(True) + sql = ''' + SELECT UserName, Alias, Type, Remark, NickName, PYInitial, RemarkPYInitial, ContactHeadImgUrl.smallHeadImgUrl, ContactHeadImgUrl.bigHeadImgUrl,ExTraBuf,"None" + FROM Contact + INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName + WHERE (Type!=4 AND VerifyFlag=0) + AND NickName != '' + ORDER BY + CASE + WHEN RemarkPYInitial = '' THEN PYInitial + ELSE RemarkPYInitial + END ASC + ''' + self.cursor.execute(sql) + result = self.cursor.fetchall() + finally: + lock.release() + from app.DataBase import msg_db + return msg_db.get_contact(result) + + def get_contact_by_username(self, username): + if not self.open_flag: + return None + try: + lock.acquire(True) + sql = ''' + SELECT UserName, Alias, Type, Remark, NickName, PYInitial, RemarkPYInitial, ContactHeadImgUrl.smallHeadImgUrl, ContactHeadImgUrl.bigHeadImgUrl,ExTraBuf,ContactLabel.LabelName + FROM Contact + INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName + LEFT JOIN ContactLabel ON Contact.LabelIDList = ContactLabel.LabelId + WHERE UserName = ? + ''' + self.cursor.execute(sql, [username]) + result = self.cursor.fetchone() + except sqlite3.OperationalError: + # 解决ContactLabel表不存在的问题 + # lock.acquire(True) + sql = ''' + SELECT UserName, Alias, Type, Remark, NickName, PYInitial, RemarkPYInitial, ContactHeadImgUrl.smallHeadImgUrl, ContactHeadImgUrl.bigHeadImgUrl,ExTraBuf,"None" + FROM Contact + INNER JOIN ContactHeadImgUrl ON Contact.UserName = ContactHeadImgUrl.usrName + WHERE UserName = ? + ''' + self.cursor.execute(sql, [username]) + result = self.cursor.fetchone() + finally: + lock.release() + + return result + + def get_chatroom_info(self, chatroomname): + ''' + 获取群聊信息 + ''' + if not self.open_flag: + return None + try: + lock.acquire(True) + sql = '''SELECT ChatRoomName, RoomData FROM ChatRoom WHERE ChatRoomName = ?''' + self.cursor.execute(sql, [chatroomname]) + result = self.cursor.fetchone() + finally: + lock.release() + return result + + def close(self): + if self.open_flag: + try: + lock.acquire(True) + self.open_flag = False + self.DB.close() + finally: + lock.release() + + def __del__(self): + self.close() + + +if __name__ == '__main__': + db_path = "./app/database/Msg/MicroMsg.db" + msg = MicroMsg() + msg.init_database() + contacts = msg.get_contact() + from app.DataBase.hard_link import decodeExtraBuf + + s = {'wxid_vtz9jk9ulzjt22','wxid_zu9l4wxdv1pa22', 'wxid_0o18ef858vnu22','wxid_8piw6sb4hvfm22','wxid_e7ypfycxpnu322','wxid_oxmg02c8kwxu22','wxid_7pp2fblq7hkq22','wxid_h1n9niofgyci22'} + for contact in contacts: + if contact[0] in s: + print(contact[:7]) + buf = contact[9] + info = decodeExtraBuf(buf) + print(info) diff --git a/app/DataBase/misc.py b/app/DataBase/misc.py new file mode 100644 index 0000000..c746247 --- /dev/null +++ b/app/DataBase/misc.py @@ -0,0 +1,78 @@ +import os.path +import sqlite3 +import threading + +lock = threading.Lock() +DB = None +cursor = None +db_path = "./app/Database/Msg/Misc.db" + + +# db_path = './Msg/Misc.db' + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +@singleton +class Misc: + def __init__(self): + self.DB = None + self.cursor = None + self.open_flag = False + self.init_database() + + def init_database(self): + if not self.open_flag: + if os.path.exists(db_path): + self.DB = sqlite3.connect(db_path, check_same_thread=False) + # '''创建游标''' + self.cursor = self.DB.cursor() + self.open_flag = True + if lock.locked(): + lock.release() + + def get_avatar_buffer(self, userName): + if not self.open_flag: + return None + sql = ''' + select smallHeadBuf + from ContactHeadImg1 + where usrName=?; + ''' + if not self.open_flag: + self.init_database() + try: + lock.acquire(True) + self.cursor.execute(sql, [userName]) + result = self.cursor.fetchall() + if result: + return result[0][0] + finally: + lock.release() + return None + + def close(self): + if self.open_flag: + try: + lock.acquire(True) + self.open_flag = False + self.DB.close() + finally: + lock.release() + + def __del__(self): + self.close() + + +if __name__ == '__main__': + Misc() + print(Misc().get_avatar_buffer('wxid_al2oan01b6fn11')) diff --git a/app/DataBase/msg.py b/app/DataBase/msg.py new file mode 100644 index 0000000..b56e671 --- /dev/null +++ b/app/DataBase/msg.py @@ -0,0 +1,894 @@ +import os.path +import random +import sqlite3 +import threading +import traceback +from collections import defaultdict +from datetime import datetime, date +from typing import Tuple + +from app.log import logger +from app.util.compress_content import parser_reply +from app.util.protocbuf.msg_pb2 import MessageBytesExtra + +db_path = "./app/Database/Msg/MSG.db" +lock = threading.Lock() + + +def is_database_exist(): + return os.path.exists(db_path) + + +def convert_to_timestamp_(time_input) -> int: + if isinstance(time_input, (int, float)): + # 如果输入是时间戳,直接返回 + return int(time_input) + elif isinstance(time_input, str): + # 如果输入是格式化的时间字符串,将其转换为时间戳 + try: + dt_object = datetime.strptime(time_input, '%Y-%m-%d %H:%M:%S') + return int(dt_object.timestamp()) + except ValueError: + # 如果转换失败,可能是其他格式的字符串,可以根据需要添加更多的处理逻辑 + print("Error: Unsupported date format") + return -1 + elif isinstance(time_input, date): + # 如果输入是datetime.date对象,将其转换为时间戳 + dt_object = datetime.combine(time_input, datetime.min.time()) + return int(dt_object.timestamp()) + else: + print("Error: Unsupported input type") + return -1 + + +def convert_to_timestamp(time_range) -> Tuple[int, int]: + """ + 将时间转换成时间戳 + @param time_range: + @return: + """ + if not time_range: + return 0, 0 + else: + return convert_to_timestamp_(time_range[0]), convert_to_timestamp_(time_range[1]) + + +def parser_chatroom_message(messages): + from app.DataBase import micro_msg_db, misc_db + from app.util.protocbuf.msg_pb2 import MessageBytesExtra + from app.person import Contact, Me, ContactDefault + ''' + 获取一个群聊的聊天记录 + return list + a[0]: localId, + a[1]: talkerId, (和strtalker对应的,不是群聊信息发送人) + a[2]: type, + a[3]: subType, + a[4]: is_sender, + a[5]: timestamp, + a[6]: status, (没啥用) + a[7]: str_content, + a[8]: str_time, (格式化的时间) + a[9]: msgSvrId, + a[10]: BytesExtra, + a[11]: CompressContent, + a[12]: DisplayContent, + a[13]: msg_sender, (ContactPC 或 ContactDefault 类型,这个才是群聊里的信息发送人,不是群聊或者自己是发送者没有这个字段) + ''' + updated_messages = [] # 用于存储修改后的消息列表 + for row in messages: + message = list(row) + if message[4] == 1: # 自己发送的就没必要解析了 + message.append(Me()) + updated_messages.append(tuple(message)) + continue + if message[10] is None: # BytesExtra是空的跳过 + message.append(ContactDefault(wxid)) + updated_messages.append(tuple(message)) + continue + msgbytes = MessageBytesExtra() + msgbytes.ParseFromString(message[10]) + wxid = '' + for tmp in msgbytes.message2: + if tmp.field1 != 1: + continue + wxid = tmp.field2 + if wxid == "": # 系统消息里面 wxid 不存在 + message.append(ContactDefault(wxid)) + updated_messages.append(tuple(message)) + continue + # todo 解析还是有问题,会出现这种带:的东西 + if ':' in wxid: # wxid_ewi8gfgpp0eu22:25319:1 + wxid = wxid.split(':')[0] + contact_info_list = micro_msg_db.get_contact_by_username(wxid) + if contact_info_list is None: # 群聊中已退群的联系人不会保存在数据库里 + message.append(ContactDefault(wxid)) + updated_messages.append(tuple(message)) + continue + contact_info = { + 'UserName': contact_info_list[0], + 'Alias': contact_info_list[1], + 'Type': contact_info_list[2], + 'Remark': contact_info_list[3], + 'NickName': contact_info_list[4], + 'smallHeadImgUrl': contact_info_list[7] + } + contact = Contact(contact_info) + contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid) + contact.set_avatar(contact.smallHeadImgBLOG) + message.append(contact) + updated_messages.append(tuple(message)) + return updated_messages + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +class MsgType: + TEXT = 1 + IMAGE = 3 + EMOJI = 47 + + +class Msg: + def __init__(self): + self.DB = None + self.cursor = None + self.open_flag = False + self.init_database() + + def init_database(self, path=None): + global db_path + if not self.open_flag: + if path: + db_path = path + if os.path.exists(db_path): + self.DB = sqlite3.connect(db_path, check_same_thread=False) + # '''创建游标''' + self.cursor = self.DB.cursor() + self.open_flag = True + if lock.locked(): + lock.release() + + def add_sender(self, messages): + """ + @param messages: + @return: + """ + new_messages = [] + for message in messages: + is_sender = message[4] + wxid = '' + if is_sender: + pass + else: + msgbytes = MessageBytesExtra() + msgbytes.ParseFromString(message[10]) + for tmp in msgbytes.message2: + if tmp.field1 != 1: + continue + wxid = tmp.field2 + new_message = (*message, wxid) + new_messages.append(new_message) + return new_messages + + def get_messages( + self, + username_, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ): + """ + return list + a[0]: localId, + a[1]: talkerId, (和strtalker对应的,不是群聊信息发送人) + a[2]: type, + a[3]: subType, + a[4]: is_sender, + a[5]: timestamp, + a[6]: status, (没啥用) + a[7]: str_content, + a[8]: str_time, (格式化的时间) + a[9]: msgSvrId, + a[10]: BytesExtra, + a[11]: CompressContent, + a[12]: DisplayContent, + a[13]: 联系人的类(如果是群聊就有,不是的话没有这个字段) + """ + if not self.open_flag: + return None + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra,CompressContent,DisplayContent + from MSG + where StrTalker=? + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + order by CreateTime + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchall() + finally: + lock.release() + return parser_chatroom_message(result) if username_.__contains__('@chatroom') else result + # result.sort(key=lambda x: x[5]) + # return self.add_sender(result) + + def get_messages_all(self, time_range=None): + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra,StrTalker,Reserved1,CompressContent + from MSG + {'WHERE CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + order by CreateTime + ''' + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql) + result = self.cursor.fetchall() + finally: + lock.release() + result.sort(key=lambda x: x[5]) + return result + + def get_messages_group_by_day( + self, + username_: str, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + + ) -> dict: + """ + return dict { + date: messages + } + """ + if not self.open_flag: + return {} + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra,CompressContent,DisplayContent + from MSG + where StrTalker=? AND type=1 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + order by CreateTime; + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchall() + finally: + lock.release() + result = parser_chatroom_message(result) if username_.__contains__('@chatroom') else result + + # 按天分组存储聊天记录 + grouped_results = defaultdict(list) + for row in result: + '2024-01-01' + date = row[8][:10] # 获取日期部分 + grouped_results[date].append(row) # 将消息加入对应的日期列表中 + + return grouped_results + + def get_messages_length(self): + sql = ''' + select count(*) + group by MsgSvrID + from MSG + ''' + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql) + result = self.cursor.fetchone() + except Exception as e: + result = None + finally: + lock.release() + return result[0] + + def get_message_by_num(self, username_, local_id): + sql = ''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra,CompressContent,DisplayContent + from MSG + where StrTalker = ? and localId < ? and (Type=1 or Type=3) + order by CreateTime desc + limit 20 + ''' + result = None + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql, [username_, local_id]) + result = self.cursor.fetchall() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + # result.sort(key=lambda x: x[5]) + return parser_chatroom_message(result) if username_.__contains__('@chatroom') else result + + def get_messages_by_type( + self, + username_, + type_, + year_='all', + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ): + """ + @param username_: + @param type_: + @param year_: + @param time_range: Tuple(timestamp:开始时间戳,timestamp:结束时间戳) + @return: + """ + if not self.open_flag: + return None + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + if year_ == 'all': + sql = f''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra,CompressContent,DisplayContent + from MSG + where StrTalker=? and Type=? + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + order by CreateTime + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_, type_]) + result = self.cursor.fetchall() + finally: + lock.release() + else: + sql = ''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra,CompressContent,DisplayContent + from MSG + where StrTalker=? and Type=? and strftime('%Y', CreateTime, 'unixepoch', 'localtime') = ? + order by CreateTime + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_, type_, year_]) + finally: + lock.release() + result = self.cursor.fetchall() + return result + + def get_messages_by_keyword(self, username_, keyword, num=5, max_len=10, time_range=None, year_='all'): + if not self.open_flag: + return None + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID,BytesExtra + from MSG + where StrTalker=? and Type=1 and LENGTH(StrContent)' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + order by CreateTime desc + ''' + temp = [] + try: + lock.acquire(True) + self.cursor.execute(sql, [username_, max_len, f'%{keyword}%'] if year_ == "all" else [username_, max_len, + f'%{keyword}%', + year_]) + messages = self.cursor.fetchall() + finally: + lock.release() + if len(messages) > 5: + messages = random.sample(messages, num) + try: + lock.acquire(True) + for msg in messages: + local_id = msg[0] + is_send = msg[4] + sql = ''' + select localId,TalkerId,Type,SubType,IsSender,CreateTime,Status,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime,MsgSvrID + from MSG + where localId > ? and StrTalker=? and Type=1 and IsSender=? + limit 1 + ''' + self.cursor.execute(sql, [local_id, username_, 1 - is_send]) + temp.append((msg, self.cursor.fetchone())) + finally: + lock.release() + res = [] + for dialog in temp: + msg1 = dialog[0] + msg2 = dialog[1] + try: + res.append(( + (msg1[4], msg1[5], msg1[7].split(keyword), msg1[8]), + (msg2[4], msg2[5], msg2[7], msg2[8]) + )) + except TypeError: + res.append(( + ('', '', ['', ''], ''), + ('', '', '', '') + )) + """ + 返回值为一个列表,每个列表元素是一个对话 + 每个对话是一个元组数据 + ('is_send','时间戳','以关键词为分割符的消息内容','格式化时间') + """ + return res + + def get_contact(self, contacts): + if not self.open_flag: + return None + try: + lock.acquire(True) + sql = '''select StrTalker, MAX(CreateTime) from MSG group by StrTalker''' + self.cursor.execute(sql) + res = self.cursor.fetchall() + finally: + lock.release() + res = {StrTalker: CreateTime for StrTalker, CreateTime in res} + contacts = [list(cur_contact) for cur_contact in contacts] + for i, cur_contact in enumerate(contacts): + if cur_contact[0] in res: + contacts[i].append(res[cur_contact[0]]) + else: + contacts[i].append(0) + contacts.sort(key=lambda cur_contact: cur_contact[-1], reverse=True) + return contacts + + def get_messages_calendar(self, username_): + sql = ''' + SELECT strftime('%Y-%m-%d',CreateTime,'unixepoch','localtime') as days + from ( + SELECT MsgSvrID, CreateTime + FROM MSG + WHERE StrTalker = ? + ORDER BY CreateTime + ) + group by days + ''' + if not self.open_flag: + print('数据库未就绪') + return None + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchall() + finally: + lock.release() + return [date[0] for date in result] + + def get_messages_by_days( + self, + username_, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ): + result = None + if not self.open_flag: + return None + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + SELECT strftime('%Y-%m-%d',CreateTime,'unixepoch','localtime') as days,count(MsgSvrID) + from ( + SELECT MsgSvrID, CreateTime + FROM MSG + WHERE StrTalker = ? + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + ) + group by days + ''' + result = None + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchall() + finally: + lock.release() + return result + + def get_messages_by_month( + self, + username_, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ): + result = None + if not self.open_flag: + return None + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + SELECT strftime('%Y-%m',CreateTime,'unixepoch','localtime') as days,count(MsgSvrID) + from ( + SELECT MsgSvrID, CreateTime + FROM MSG + WHERE StrTalker = ? + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + ) + group by days + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchall() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return result + + def get_messages_by_hour(self, username_, time_range=None, year_='all'): + result = [] + if not self.open_flag: + return result + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + SELECT strftime('%H:00',CreateTime,'unixepoch','localtime') as hours,count(MsgSvrID) + from ( + SELECT MsgSvrID, CreateTime + FROM MSG + where StrTalker = ? + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + ) + group by hours + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + result = self.cursor.fetchall() + return result + + def get_first_time_of_message(self, username_=''): + if not self.open_flag: + return None + sql = f''' + select StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime + from MSG + {'where StrTalker=?' if username_ else ''} + order by CreateTime + limit 1 + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_] if username_ else []) + result = self.cursor.fetchone() + finally: + lock.release() + return result + + def get_latest_time_of_message(self, username_='', time_range=None, year_='all'): + if not self.open_flag: + return None + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f''' + SELECT isSender,StrContent,strftime('%Y-%m-%d %H:%M:%S',CreateTime,'unixepoch','localtime') as StrTime, + strftime('%H:%M:%S', CreateTime,'unixepoch','localtime') as hour + FROM MSG + WHERE Type=1 AND + {'StrTalker = ? AND ' if username_ else f"'{username_}'=? AND "} + hour BETWEEN '00:00:00' AND '05:00:00' + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + ORDER BY hour DESC + LIMIT 20; + ''' + try: + lock.acquire(True) + self.cursor.execute(sql, [username_, year_] if year_ != "all" else [username_]) + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + result = self.cursor.fetchall() + if not result: + return [] + res = [] + is_sender = result[0][0] + res.append(result[0]) + for msg in result[1:]: + if msg[0] != is_sender: + res.append(msg) + break + return res + + def get_send_messages_type_number( + self, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ) -> list: + """ + 统计自己发的各类型消息条数,按条数降序,精确到subtype\n + return [(type_1, subtype_1, number_1), (type_2, subtype_2, number_2), ...]\n + be like [(1, 0, 71481), (3, 0, 6686), (49, 57, 3887), ..., (10002, 0, 1)] + """ + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f""" + SELECT type, subtype, Count(MsgSvrID) + from MSG + where isSender = 1 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + group by type, subtype + order by Count(MsgSvrID) desc + """ + result = None + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql) + result = self.cursor.fetchall() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return result + + def get_messages_number( + self, + username_, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ) -> int: + """ + 统计好友聊天消息的数量 + @param username_: + @param time_range: + @return: + """ + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f""" + SELECT Count(MsgSvrID) + from MSG + where StrTalker = ? + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + """ + result = 0 + if not self.open_flag: + return 0 + try: + lock.acquire(True) + self.cursor.execute(sql, [username_]) + result = self.cursor.fetchone() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return result[0] if result else 0 + + def get_chatted_top_contacts( + self, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + contain_chatroom=False, + top_n=10 + ) -> list: + """ + 统计聊天最多的 n 个联系人(默认不包含群组),按条数降序\n + return [(wxid_1, number_1), (wxid_2, number_2), ...] + """ + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f""" + SELECT strtalker, Count(MsgSvrID) + from MSG + where strtalker != "filehelper" and strtalker != "notifymessage" and strtalker not like "gh_%" + {"and strtalker not like '%@chatroom'" if not contain_chatroom else ""} + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + group by strtalker + order by Count(MsgSvrID) desc + limit {top_n} + """ + result = None + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql) + result = self.cursor.fetchall() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return result + + def get_send_messages_length( + self, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ) -> int: + """ + 统计自己总共发消息的字数,包含type=1的文本和type=49,subtype=57里面自己发的文本 + """ + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql_type_1 = f""" + SELECT sum(length(strContent)) + from MSG + where isSender = 1 and type = 1 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + """ + sql_type_49 = f""" + SELECT CompressContent + from MSG + where isSender = 1 and type = 49 and subtype = 57 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + """ + sum_type_1 = None + result_type_49 = None + sum_type_49 = 0 + + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql_type_1) + sum_type_1 = self.cursor.fetchall()[0][0] + self.cursor.execute(sql_type_49) + result_type_49 = self.cursor.fetchall() + for message in result_type_49: + message = message[0] + content = parser_reply(message) + if content["is_error"]: + continue + sum_type_49 += len(content["title"]) + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return sum_type_1 + sum_type_49 + + def get_send_messages_number_sum( + self, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ) -> int: + """统计自己总共发了多少条消息""" + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f""" + SELECT count(MsgSvrID) + from MSG + where isSender = 1 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + """ + result = None + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql) + result = self.cursor.fetchall()[0][0] + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return result + + def get_send_messages_number_by_hour( + self, + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ) -> list: + """ + 统计每个(小时)时段自己总共发了多少消息,从最多到最少排序\n + return be like [('23', 9526), ('00', 7890), ('22', 7600), ..., ('05', 29)] + """ + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql = f""" + SELECT strftime('%H', CreateTime, 'unixepoch', 'localtime') as hour,count(MsgSvrID) + from ( + SELECT MsgSvrID, CreateTime + FROM MSG + where isSender = 1 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + ) + group by hour + order by count(MsgSvrID) desc + """ + result = None + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql) + result = self.cursor.fetchall() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + return result + + def get_message_length( + self, + username_='', + time_range: Tuple[int | float | str | date, int | float | str | date] = None, + ) -> int: + """ + 统计自己总共发消息的字数,包含type=1的文本和type=49,subtype=57里面自己发的文本 + """ + if time_range: + start_time, end_time = convert_to_timestamp(time_range) + sql_type_1 = f""" + SELECT sum(length(strContent)) + from MSG + where StrTalker = ? and + type = 1 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + """ + sql_type_49 = f""" + SELECT CompressContent + from MSG + where StrTalker = ? and + type = 49 and subtype = 57 + {'AND CreateTime>' + str(start_time) + ' AND CreateTime<' + str(end_time) if time_range else ''} + """ + sum_type_1 = 0 + result_type_1 = 0 + result_type_49 = 0 + sum_type_49 = 0 + + if not self.open_flag: + return None + try: + lock.acquire(True) + self.cursor.execute(sql_type_1, [username_]) + result_type_1 = self.cursor.fetchall()[0][0] + self.cursor.execute(sql_type_49, [username_]) + result_type_49 = self.cursor.fetchall() + except sqlite3.DatabaseError: + logger.error(f'{traceback.format_exc()}\n数据库损坏请删除msg文件夹重试') + finally: + lock.release() + for message in result_type_49: + message = message[0] + content = parser_reply(message) + if content["is_error"]: + continue + sum_type_49 += len(content["title"]) + sum_type_1 = result_type_1 if result_type_1 else 0 + return sum_type_1 + sum_type_49 + + def close(self): + if self.open_flag: + try: + lock.acquire(True) + self.open_flag = False + self.DB.close() + finally: + lock.release() + + def __del__(self): + self.close() + + +if __name__ == '__main__': + db_path = "./Msg/MSG.db" + msg = Msg() + msg.init_database() + wxid = 'wxid_0o18ef858vnu22' + wxid = '24521163022@chatroom' + wxid = 'wxid_vtz9jk9ulzjt22' # si + print() + time_range = ('2023-01-01 00:00:00', '2024-01-01 00:00:00') + print(msg.get_messages_calendar(wxid)) + print(msg.get_first_time_of_message()) + print(msg.get_latest_time_of_message()) + top_n = msg.get_chatted_top_contacts(time_range=time_range, top_n=9999999) + print(top_n) + print(len(top_n)) diff --git a/app/DataBase/package_msg.py b/app/DataBase/package_msg.py new file mode 100644 index 0000000..ded0486 --- /dev/null +++ b/app/DataBase/package_msg.py @@ -0,0 +1,184 @@ +import threading + +from app.DataBase import msg_db, micro_msg_db, misc_db +from app.util.protocbuf.msg_pb2 import MessageBytesExtra +from app.util.protocbuf.roomdata_pb2 import ChatRoomData +from app.person import Contact, Me, ContactDefault + +lock = threading.Lock() + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +@singleton +class PackageMsg: + def __init__(self): + self.ChatRoomMap = {} + + def get_package_message_all(self): + ''' + 获取完整的聊天记录 + ''' + updated_messages = [] # 用于存储修改后的消息列表 + + messages = msg_db.get_messages_all() + for row in messages: + row_list = list(row) + # 删除不使用的几个字段 + del row_list[13] + del row_list[12] + del row_list[11] + del row_list[10] + del row_list[9] + + strtalker = row[11] + info = micro_msg_db.get_contact_by_username(strtalker) + if info is not None: + row_list.append(info[3]) + row_list.append(info[4]) + else: + row_list.append('') + row_list.append('') + # 判断是否是群聊 + if strtalker.__contains__('@chatroom'): + # 自己发送 + if row[4] == 1: + row_list.append('我') + else: + # 存在BytesExtra为空的情况,此时消息类型应该为提示性消息。跳过不处理 + if row[10] is None: + continue + # 解析BytesExtra + msgbytes = MessageBytesExtra() + msgbytes.ParseFromString(row[10]) + wxid = '' + for tmp in msgbytes.message2: + if tmp.field1 != 1: + continue + wxid = tmp.field2 + sender = '' + # 获取群聊成员列表 + membersMap = self.get_chatroom_member_list(strtalker) + if membersMap is not None: + if wxid in membersMap: + sender = membersMap.get(wxid) + else: + senderinfo = micro_msg_db.get_contact_by_username(wxid) + if senderinfo is not None: + sender = senderinfo[4] + membersMap[wxid] = senderinfo[4] + if len(senderinfo[3]) > 0: + sender = senderinfo[3] + membersMap[wxid] = senderinfo[3] + row_list.append(sender) + else: + if row[4] == 1: + row_list.append('我') + else: + if info is not None: + row_list.append(info[4]) + else: + row_list.append('') + updated_messages.append(tuple(row_list)) + return updated_messages + + def get_package_message_by_wxid(self, chatroom_wxid): + ''' + 获取一个群聊的聊天记录 + return list + a[0]: localId, + a[1]: talkerId, (和strtalker对应的,不是群聊信息发送人) + a[2]: type, + a[3]: subType, + a[4]: is_sender, + a[5]: timestamp, + a[6]: status, (没啥用) + a[7]: str_content, + a[8]: str_time, (格式化的时间) + a[9]: msgSvrId, + a[10]: BytesExtra, + a[11]: CompressContent, + a[12]: DisplayContent, + a[13]: msg_sender, (ContactPC 或 ContactDefault 类型,这个才是群聊里的信息发送人,不是群聊或者自己是发送者没有这个字段) + ''' + updated_messages = [] # 用于存储修改后的消息列表 + messages = msg_db.get_messages(chatroom_wxid) + for row in messages: + message = list(row) + if message[4] == 1: # 自己发送的就没必要解析了 + message.append(Me()) + updated_messages.append(message) + continue + if message[10] is None: # BytesExtra是空的跳过 + message.append(ContactDefault(wxid)) + updated_messages.append(message) + continue + msgbytes = MessageBytesExtra() + msgbytes.ParseFromString(message[10]) + wxid = '' + for tmp in msgbytes.message2: + if tmp.field1 != 1: + continue + wxid = tmp.field2 + if wxid == "": # 系统消息里面 wxid 不存在 + message.append(ContactDefault(wxid)) + updated_messages.append(message) + continue + contact_info_list = micro_msg_db.get_contact_by_username(wxid) + if contact_info_list is None: # 群聊中已退群的联系人不会保存在数据库里 + message.append(ContactDefault(wxid)) + updated_messages.append(message) + continue + contact_info = { + 'UserName': contact_info_list[0], + 'Alias': contact_info_list[1], + 'Type': contact_info_list[2], + 'Remark': contact_info_list[3], + 'NickName': contact_info_list[4], + 'smallHeadImgUrl': contact_info_list[7] + } + contact = Contact(contact_info) + contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid) + contact.set_avatar(contact.smallHeadImgBLOG) + message.append(contact) + updated_messages.append(tuple(message)) + return updated_messages + + def get_chatroom_member_list(self, strtalker): + membermap = {} + ''' + 获取群聊成员 + ''' + try: + lock.acquire(True) + if strtalker in self.ChatRoomMap: + membermap = self.ChatRoomMap.get(strtalker) + else: + chatroom = micro_msg_db.get_chatroom_info(strtalker) + if chatroom is None: + return None + # 解析RoomData数据 + parsechatroom = ChatRoomData() + parsechatroom.ParseFromString(chatroom[1]) + # 群成员数据放入字典存储 + for mem in parsechatroom.members: + if mem.displayName is not None and len(mem.displayName) > 0: + membermap[mem.wxID] = mem.displayName + self.ChatRoomMap[strtalker] = membermap + finally: + lock.release() + return membermap + + +if __name__ == "__main__": + p = PackageMsg() + print(p.get_package_message_by_wxid("48615079469@chatroom")) diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..2def13e --- /dev/null +++ b/app/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +""" +@File : __init__.py.py +@Author : Shuaikang Zhou +@Time : 2023/1/5 17:43 +@IDE : Pycharm +@Version : Python3.10 +@comment : ··· +""" diff --git a/app/analysis/__init__.py b/app/analysis/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/analysis/analysis.py b/app/analysis/analysis.py new file mode 100644 index 0000000..2690776 --- /dev/null +++ b/app/analysis/analysis.py @@ -0,0 +1,535 @@ +import os +from collections import Counter +import sys +from datetime import datetime +from typing import List + +import jieba + +from app.DataBase import msg_db, MsgType +from pyecharts import options as opts +from pyecharts.charts import WordCloud, Calendar, Bar, Line, Pie, Map + +from app.person import Contact +from app.util.region_conversion import conversion_province_to_chinese + +os.makedirs('./data/聊天统计/', exist_ok=True) + + +def wordcloud_(wxid, time_range=None): + import jieba + txt_messages = msg_db.get_messages_by_type(wxid, MsgType.TEXT, time_range=time_range) + if not txt_messages: + return { + 'chart_data': None, + 'keyword': "没有聊天你想分析啥", + 'max_num': "0", + 'dialogs': [] + } + # text = ''.join(map(lambda x: x[7], txt_messages)) + text = ''.join(map(lambda x: x[7], txt_messages)) # 1“我”说的话,0“Ta”说的话 + + total_msg_len = len(text) + # 使用jieba进行分词,并加入停用词 + words = jieba.cut(text) + # 统计词频 + word_count = Counter(words) + # 过滤停用词 + stopwords_file = './app/data/stopwords.txt' + with open(stopwords_file, "r", encoding="utf-8") as stopword_file: + stopwords1 = set(stopword_file.read().splitlines()) + # 构建 FFmpeg 可执行文件的路径 + stopwords = set() + stopwords_file = './app/resources/data/stopwords.txt' + if not os.path.exists(stopwords_file): + resource_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__))) + stopwords_file = os.path.join(resource_dir, 'app', 'resources', 'data', 'stopwords.txt') + with open(stopwords_file, "r", encoding="utf-8") as stopword_file: + stopwords = set(stopword_file.read().splitlines()) + stopwords = stopwords.union(stopwords1) + filtered_word_count = {word: count for word, count in word_count.items() if len(word) > 1 and word not in stopwords} + + # 转换为词云数据格式 + data = [(word, count) for word, count in filtered_word_count.items()] + # text_data = data + data.sort(key=lambda x: x[1], reverse=True) + + text_data = data[:100] if len(data) > 100 else data + # 创建词云图 + keyword, max_num = text_data[0] + w = ( + WordCloud(init_opts=opts.InitOpts()) + .add(series_name="聊天文字", data_pair=text_data, word_size_range=[5, 100]) + ) + # return w.render_embed() + return { + 'chart_data': w.dump_options_with_quotes(), + 'keyword': keyword, + 'max_num': str(max_num), + 'dialogs': msg_db.get_messages_by_keyword(wxid, keyword, num=5, max_len=12) + } + + +def get_wordcloud(text): + total_msg_len = len(text) + jieba.load_userdict('./app/data/new_words.txt') + # 使用jieba进行分词,并加入停用词 + words = jieba.cut(text) + # 统计词频 + word_count = Counter(words) + # 过滤停用词 + stopwords_file = './app/data/stopwords.txt' + with open(stopwords_file, "r", encoding="utf-8") as stopword_file: + stopwords1 = set(stopword_file.read().splitlines()) + # 构建 FFmpeg 可执行文件的路径 + stopwords = set() + stopwords_file = './app/resources/data/stopwords.txt' + if not os.path.exists(stopwords_file): + resource_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__))) + stopwords_file = os.path.join(resource_dir, 'app', 'resources', 'data', 'stopwords.txt') + with open(stopwords_file, "r", encoding="utf-8") as stopword_file: + stopwords = set(stopword_file.read().splitlines()) + stopwords = stopwords.union(stopwords1) + + filtered_word_count = {word: count for word, count in word_count.items() if len(word) > 1 and word not in stopwords} + # 转换为词云数据格式 + data = [(word, count) for word, count in filtered_word_count.items()] + # text_data = data + data.sort(key=lambda x: x[1], reverse=True) + + text_data = data[:100] if len(data) > 100 else data + # 创建词云图 + if text_data: + keyword, max_num = text_data[0] + else: + keyword, max_num = '', 0 + w = ( + WordCloud() + .add(series_name="聊天文字", data_pair=text_data, word_size_range=[5, 40]) + ) + return { + 'chart_data_wordcloud': w.dump_options_with_quotes(), + 'keyword': keyword, + 'keyword_max_num': max_num, + } + + +def wordcloud_christmas(wxid,time_range=None, year='2023'): + import jieba + + txt_messages = msg_db.get_messages_by_type(wxid, MsgType.TEXT, time_range=time_range) + if not txt_messages: + return { + 'wordcloud_chart_data': None, + 'keyword': "没有聊天你想分析啥", + 'max_num': '0', + 'dialogs': [], + 'total_num': 0, + } + text = ''.join(map(lambda x: x[7], txt_messages)) + total_msg_len = len(text) + wordcloud_data = get_wordcloud(text) + # return w.render_embed() + keyword = wordcloud_data.get('keyword') + max_num = wordcloud_data.get('keyword_max_num') + dialogs = msg_db.get_messages_by_keyword(wxid, keyword, num=3, max_len=12, time_range=time_range) + + return { + 'wordcloud_chart_data': wordcloud_data.get('chart_data_wordcloud'), + 'keyword': keyword, + 'keyword_max_num': str(max_num), + 'dialogs': dialogs, + 'total_num': total_msg_len, + } + + +def calendar_chart(wxid, time_range=None): + calendar_data = msg_db.get_messages_by_days(wxid, time_range) + if not calendar_data: + return { + 'chart_data': None, + 'calendar_chart_data': None, + 'chat_days': 0, + # 'chart':c, + } + min_ = min(map(lambda x: x[1], calendar_data)) + max_ = max(map(lambda x: x[1], calendar_data)) + start_date_ = calendar_data[0][0] + end_date_ = calendar_data[-1][0] + print(start_date_, '---->', end_date_) + calendar_days = (start_date_, end_date_) + calendar_title = '和Ta的聊天情况' + c = ( + Calendar() + .add( + "", + calendar_data, + calendar_opts=opts.CalendarOpts(range_=calendar_days) + ) + .set_global_opts( + visualmap_opts=opts.VisualMapOpts( + max_=max_, + min_=min_, + orient="horizontal", + pos_bottom="0px", + pos_left="0px", + ), + legend_opts=opts.LegendOpts(is_show=False) + ) + ) + return { + 'chart_data': c.dump_options_with_quotes(), + 'calendar_chart_data': c.dump_options_with_quotes(), + 'chat_days': len(calendar_data), + # 'chart':c, + } + + +def month_count(wxid, time_range=None): + """ + 每月聊天条数 + """ + msg_data = msg_db.get_messages_by_month(wxid, time_range) + y_data = list(map(lambda x: x[1], msg_data)) + x_axis = list(map(lambda x: x[0], msg_data)) + m = ( + Bar(init_opts=opts.InitOpts()) + .add_xaxis(x_axis) + .add_yaxis("消息数量", y_data, + label_opts=opts.LabelOpts(is_show=True), + itemstyle_opts=opts.ItemStyleOpts(color="#ffae80"), + ) + .set_global_opts( + title_opts=opts.TitleOpts(title="逐月统计", subtitle=None), + datazoom_opts=opts.DataZoomOpts(), + toolbox_opts=opts.ToolboxOpts(), + yaxis_opts=opts.AxisOpts( + name="消息数", + type_="value", + axistick_opts=opts.AxisTickOpts(is_show=True), + splitline_opts=opts.SplitLineOpts(is_show=True), + ), + visualmap_opts=opts.VisualMapOpts( + min_=min(y_data), + max_=max(y_data), + dimension=1, # 根据第2个维度(y 轴)进行映射 + is_piecewise=False, # 是否分段显示 + range_color=["#ffbe7a", "#fa7f6f"], # 设置颜色范围 + type_="color", + pos_right="0%", + ), + ) + ) + return { + 'chart_data': m.dump_options_with_quotes(), + # 'chart': m, + } + + +def hour_count(wxid, is_Annual_report=False, year='2023'): + """ + 小时计数聊天条数 + """ + msg_data = msg_db.get_messages_by_hour(wxid, is_Annual_report, year) + print(msg_data) + y_data = list(map(lambda x: x[1], msg_data)) + x_axis = list(map(lambda x: x[0], msg_data)) + h = ( + Line(init_opts=opts.InitOpts()) + .add_xaxis(xaxis_data=x_axis) + .add_yaxis( + series_name="聊天频率", + y_axis=y_data, + markpoint_opts=opts.MarkPointOpts( + data=[ + opts.MarkPointItem(type_="max", name="最大值"), + opts.MarkPointItem(type_="min", name="最小值", value=int(10)), + ] + ), + markline_opts=opts.MarkLineOpts( + data=[opts.MarkLineItem(type_="average", name="平均值")] + ), + ) + .set_global_opts( + title_opts=opts.TitleOpts(title="聊天时段", subtitle=None), + # datazoom_opts=opts.DataZoomOpts(), + # toolbox_opts=opts.ToolboxOpts(), + ) + .set_series_opts( + label_opts=opts.LabelOpts( + is_show=False + ) + ) + ) + + return { + 'chart_data': h + } + + +types = { + '文本': 1, + '图片': 3, + '语音': 34, + '视频': 43, + '表情包': 47, + '音乐与音频': 4903, + '文件': 4906, + '分享卡片': 4905, + '转账': 492000, + '音视频通话': 50, + '拍一拍等系统消息': 10000, +} +types_ = { + 1: '文本', + 3: '图片', + 34: '语音', + 43: '视频', + 47: '表情包', + 4957: '引用消息', + 4903: '音乐与音频', + 4906: '文件', + 4905: '分享卡片', + 492000: '转账', + 50: '音视频通话', + 10000: '拍一拍等系统消息', +} + + +def get_weekday(timestamp): + # 将时间戳转换为日期时间对象 + dt_object = datetime.fromtimestamp(timestamp) + + # 获取星期几,0代表星期一,1代表星期二,以此类推 + weekday = dt_object.weekday() + weekdays = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] + return weekdays[weekday] + + +def sender(wxid, time_range, my_name='', ta_name=''): + msg_data = msg_db.get_messages(wxid, time_range) + + types_count = {} + send_num = 0 # 发送消息的数量 + weekday_count = {} + for message in msg_data: + type_ = message[2] + is_sender = message[4] + subType = message[3] + timestamp = message[5] + weekday = get_weekday(timestamp) + str_time = message[8] + send_num += is_sender + type_ = f'{type_}{subType:0>2d}' if subType != 0 else type_ + type_ = int(type_) + if type_ in types_count: + types_count[type_] += 1 + else: + types_count[type_] = 1 + if weekday in weekday_count: + weekday_count[weekday] += 1 + else: + weekday_count[weekday] = 1 + receive_num = len(msg_data) - send_num + data = [[types_.get(key), value] for key, value in types_count.items() if key in types_] + if not data: + return { + 'chart_data_sender': None, + 'chart_data_types': None, + 'chart_data_weekday': None, + } + p1 = ( + Pie() + .add( + "", + data, + center=["40%", "50%"], + ) + .set_global_opts( + datazoom_opts=opts.DataZoomOpts(), + toolbox_opts=opts.ToolboxOpts(), + title_opts=opts.TitleOpts(title="消息类型占比"), + legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", pos_top="20%", orient="vertical"), + ) + .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) + # .render("./data/聊天统计/types_pie.html") + ) + p2 = ( + Pie() + .add( + "", + [[my_name, send_num], [ta_name, receive_num]], + center=["40%", "50%"], + ) + .set_global_opts( + datazoom_opts=opts.DataZoomOpts(), + toolbox_opts=opts.ToolboxOpts(), + title_opts=opts.TitleOpts(title="双方消息占比"), + legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", pos_top="20%", orient="vertical"), + ) + .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}\n{d}%")) + # .render("./data/聊天统计/pie_scroll_legend.html") + ) + p3 = ( + Pie() + .add( + "", + [[key, value] for key, value in weekday_count.items()], + radius=["40%", "75%"], + ) + .set_global_opts( + datazoom_opts=opts.DataZoomOpts(), + toolbox_opts=opts.ToolboxOpts(), + title_opts=opts.TitleOpts(title="星期分布图"), + legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"), + ) + .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}\n{d}%")) + # .render("./data/聊天统计/pie_weekdays.html") + ) + return { + 'chart_data_sender': p2.dump_options_with_quotes(), + 'chart_data_types': p1.dump_options_with_quotes(), + 'chart_data_weekday': p3.dump_options_with_quotes(), + } + + +def contacts_analysis(contacts): + man_contact_num = 0 + woman_contact_num = 0 + province_dict = { + '北京': '北京市', + '上海': '上海市', + '天津': '天津市', + '重庆': '重庆市', + '新疆': '新疆维吾尔族自治区', + '广西': '广西壮族自治区', + '内蒙古': '内蒙古自治区', + '宁夏': '宁夏回族自治区', + '西藏': '西藏自治区' + } + provinces = [] + for contact, num, text_length in contacts: + if contact.detail.get('gender') == 1: + man_contact_num += 1 + elif contact.detail.get('gender') == 2: + woman_contact_num += 1 + province_py = contact.detail.get('region') + if province_py: + province = province_py[1] + province = conversion_province_to_chinese(province) + if province: + if province in province_dict: + province = province_dict[province] + else: + province += '省' + provinces.append(province) + print(province, contact.detail) + data = Counter(provinces) + data = [[k, v] for k, v in data.items()] + print(data) + max_ = max(list(map(lambda x:x[1],data))) + c = ( + Map() + .add("分布", data, "china") + .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) + .set_global_opts( + title_opts=opts.TitleOpts(title="地区分布"), + visualmap_opts=opts.VisualMapOpts(max_=max_, is_piecewise=True), + legend_opts=opts.LegendOpts(is_show=False), + ) + ) + return { + 'woman_contact_num': woman_contact_num, + 'man_contact_num': man_contact_num, + 'contact_region_map': c.dump_options_with_quotes(), + } + + +def my_message_counter(time_range, my_name=''): + msg_data = msg_db.get_messages_all(time_range=time_range) + types_count = {} + send_num = 0 # 发送消息的数量 + weekday_count = {} + str_content = '' + total_text_num = 0 + for message in msg_data: + type_ = message[2] + is_sender = message[4] + subType = message[3] + timestamp = message[5] + weekday = get_weekday(timestamp) + str_time = message[8] + send_num += is_sender + type_ = f'{type_}{subType:0>2d}' if subType != 0 else type_ + type_ = int(type_) + if type_ in types_count: + types_count[type_] += 1 + else: + types_count[type_] = 1 + if weekday in weekday_count: + weekday_count[weekday] += 1 + else: + weekday_count[weekday] = 1 + if type_ == 1: + total_text_num += len(message[7]) + if is_sender == 1: + str_content += message[7] + receive_num = len(msg_data) - send_num + data = [[types_.get(key), value] for key, value in types_count.items() if key in types_] + if not data: + return { + 'chart_data_sender': None, + 'chart_data_types': None, + } + p1 = ( + Pie() + .add( + "", + data, + center=["40%", "50%"], + ) + .set_global_opts( + datazoom_opts=opts.DataZoomOpts(), + legend_opts=opts.LegendOpts(type_="scroll", pos_left="70%", pos_top="10%", orient="vertical"), + ) + .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) + # .render("./data/聊天统计/types_pie.html") + ) + p2 = ( + Pie() + .add( + "", + [['发送', send_num], ['接收', receive_num]], + center=["40%", "50%"], + ) + .set_global_opts( + datazoom_opts=opts.DataZoomOpts(), + legend_opts=opts.LegendOpts(type_="scroll", pos_left="70%", pos_top="20%", orient="vertical"), + ) + .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}\n{d}%", position='inside')) + # .render("./data/聊天统计/pie_scroll_legend.html") + ) + w = get_wordcloud(str_content) + return { + 'chart_data_sender': p2.dump_options_with_quotes(), + 'chart_data_types': p1.dump_options_with_quotes(), + 'chart_data_wordcloud': w.get('chart_data_wordcloud'), + 'keyword': w.get('keyword'), + 'keyword_max_num': w.get('keyword_max_num'), + 'total_text_num': total_text_num, + } + + +if __name__ == '__main__': + msg_db.init_database(path='../DataBase/Msg/MSG.db') + # w = wordcloud('wxid_0o18ef858vnu22') + # w_data = wordcloud('wxid_27hqbq7vx5hf22', True, '2023') + # # print(w_data) + # w_data['chart_data'].render("./data/聊天统计/wordcloud.html") + wxid = 'wxid_0o18ef858vnu22' + # data = month_count(wxid, time_range=None) + # data['chart'].render("./data/聊天统计/month_count.html") + # data = calendar_chart(wxid, time_range=None) + # data['chart'].render("./data/聊天统计/calendar_chart.html") + data = sender(wxid, time_range=None, my_name='发送', ta_name='接收') + print(data) diff --git a/app/components/Button_Contact.py b/app/components/Button_Contact.py new file mode 100644 index 0000000..8486d5a --- /dev/null +++ b/app/components/Button_Contact.py @@ -0,0 +1,103 @@ +from datetime import datetime + +from PyQt5 import QtWidgets, QtGui, QtCore +from PyQt5.QtCore import * + +from app import person + + +class ContactUi(QtWidgets.QPushButton): + """ + 联系人类,继承自pyqt的按钮,里面封装了联系人头像等标签 + """ + usernameSingal = pyqtSignal(str) + + def __init__(self, Ui, id=None, rconversation=None): + super(ContactUi, self).__init__(Ui) + self.contact: person.Contact = person.Contact(rconversation[1]) + self.init_ui(Ui) + self.msgCount = rconversation[0] + self.username = rconversation[1] + self.conversationTime = rconversation[6] + self.msgType = rconversation[7] + self.digest = rconversation[8] + hasTrunc = rconversation[10] + attrflag = rconversation[11] + if hasTrunc == 0: + if attrflag == 0: + self.digest = '[动画表情]' + elif attrflag == 67108864: + try: + remark = data.get_conRemark(rconversation[9]) + msg = self.digest.split(':')[1].strip('\n').strip() + self.digest = f'{remark}:{msg}' + except Exception as e: + pass + else: + pass + self.show_info(id) + + def init_ui(self, Ui): + self.layoutWidget = QtWidgets.QWidget(Ui) + self.layoutWidget.setObjectName("layoutWidget") + self.gridLayout1 = QtWidgets.QGridLayout(self.layoutWidget) + self.gridLayout1.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize) + self.gridLayout1.setContentsMargins(10, 10, 10, 10) + self.gridLayout1.setSpacing(10) + self.gridLayout1.setObjectName("gridLayout1") + self.label_time = QtWidgets.QLabel(self.layoutWidget) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(8) + self.label_time.setFont(font) + self.label_time.setLayoutDirection(QtCore.Qt.RightToLeft) + self.label_time.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.label_time.setObjectName("label_time") + self.gridLayout1.addWidget(self.label_time, 0, 2, 1, 1) + self.label_remark = QtWidgets.QLabel(self.layoutWidget) + font = QtGui.QFont() + font.setFamily("黑体") + font.setPointSize(10) + # font.setBold(True) + self.label_remark.setFont(font) + self.label_remark.setObjectName("label_remark") + self.gridLayout1.addWidget(self.label_remark, 0, 1, 1, 1) + self.label_msg = QtWidgets.QLabel(self.layoutWidget) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(8) + self.label_msg.setFont(font) + self.label_msg.setObjectName("label_msg") + self.gridLayout1.addWidget(self.label_msg, 1, 1, 1, 2) + self.label_avatar = QtWidgets.QLabel(self.layoutWidget) + self.label_avatar.setMinimumSize(QtCore.QSize(60, 60)) + self.label_avatar.setMaximumSize(QtCore.QSize(60, 60)) + self.label_avatar.setLayoutDirection(QtCore.Qt.RightToLeft) + self.label_avatar.setAutoFillBackground(False) + self.label_avatar.setStyleSheet("background-color: #ffffff;") + self.label_avatar.setInputMethodHints(QtCore.Qt.ImhNone) + self.label_avatar.setFrameShape(QtWidgets.QFrame.NoFrame) + self.label_avatar.setFrameShadow(QtWidgets.QFrame.Plain) + self.label_avatar.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + self.label_avatar.setObjectName("label_avatar") + self.gridLayout1.addWidget(self.label_avatar, 0, 0, 2, 1) + self.gridLayout1.setColumnStretch(0, 1) + self.gridLayout1.setColumnStretch(1, 6) + self.gridLayout1.setRowStretch(0, 5) + self.gridLayout1.setRowStretch(1, 3) + self.setLayout(self.gridLayout1) + self.setStyleSheet( + "QPushButton {background-color: rgb(220,220,220);}" + "QPushButton:hover{background-color: rgb(208,208,208);}\n" + ) + + def show_info(self, id): + time = datetime.now().strftime("%m-%d %H:%M") + msg = '还没说话' + self.label_avatar.setPixmap(self.contact.avatar) # 在label上显示图片 + self.label_remark.setText(self.contact.conRemark) + self.label_msg.setText(self.digest) + self.label_time.setText(data.timestamp2str(self.conversationTime)[2:]) + + def show_msg(self): + self.usernameSingal.emit(self.username) diff --git a/app/components/CAvatar.py b/app/components/CAvatar.py new file mode 100644 index 0000000..74c0ba7 --- /dev/null +++ b/app/components/CAvatar.py @@ -0,0 +1,303 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019年7月26日 +@author: Irony +@site: https://pyqt5.com https://github.com/892768447 +@email: 892768447@qq.com +@file: CustomWidgets.CAvatar +@description: 头像 +""" +import os + +from PyQt5.QtCore import QUrl, QRectF, Qt, QSize, QTimer, QPropertyAnimation, \ + QPointF, pyqtProperty +from PyQt5.QtGui import QPixmap, QColor, QPainter, QPainterPath, QMovie +from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkDiskCache, \ + QNetworkRequest +from PyQt5.QtWidgets import QWidget, qApp + +__Author__ = 'Irony' +__Copyright__ = 'Copyright (c) 2019 Irony' +__Version__ = 1.0 + + +class CAvatar(QWidget): + Circle = 0 # 圆圈 + Rectangle = 1 # 圆角矩形 + SizeLarge = QSize(128, 128) + SizeMedium = QSize(64, 64) + SizeSmall = QSize(32, 32) + StartAngle = 0 # 起始旋转角度 + EndAngle = 360 # 结束旋转角度 + + def __init__(self, *args, shape=0, url='', img_bytes=None, cacheDir=False, size=QSize(64, 64), animation=False, + **kwargs): + super(CAvatar, self).__init__(*args, **kwargs) + self.url = '' + self._angle = 0 # 角度 + self.pradius = 0 # 加载进度条半径 + self.animation = animation # 是否使用动画 + self._movie = None # 动态图 + self._pixmap = QPixmap() # 图片对象 + self.pixmap = QPixmap() # 被绘制的对象 + self.isGif = url.endswith('.gif') + # 进度动画定时器 + self.loadingTimer = QTimer(self, timeout=self.onLoading) + # 旋转动画 + self.rotateAnimation = QPropertyAnimation( + self, b'angle', self, loopCount=1) + self.setShape(shape) + self.setCacheDir(cacheDir) + self.setSize(size) + if img_bytes: + self.setBytes(img_bytes) + + + else: + self.setUrl(url) + + def paintEvent(self, event): + super(CAvatar, self).paintEvent(event) + # 画笔 + painter = QPainter(self) + painter.setRenderHint(QPainter.Antialiasing, True) + painter.setRenderHint(QPainter.HighQualityAntialiasing, True) + painter.setRenderHint(QPainter.SmoothPixmapTransform, True) + # 绘制 + path = QPainterPath() + diameter = min(self.width(), self.height()) + if self.shape == self.Circle: + radius = int(diameter / 2) + elif self.shape == self.Rectangle: + radius = 4 + halfW = self.width() / 2 + halfH = self.height() / 2 + painter.translate(halfW, halfH) + path.addRoundedRect( + QRectF(-halfW, -halfH, diameter, diameter), radius, radius) + painter.setClipPath(path) + # 如果是动画效果 + if self.rotateAnimation.state() == QPropertyAnimation.Running: + painter.rotate(self._angle) # 旋转 + painter.drawPixmap( + QPointF(-self.pixmap.width() / 2, -self.pixmap.height() // 2), self.pixmap) + else: + painter.drawPixmap(-int(halfW), -int(halfH), self.pixmap) + # 如果在加载 + if self.loadingTimer.isActive(): + diameter = 2 * self.pradius + painter.setBrush( + QColor(45, 140, 240, int((1 - self.pradius / 10) * 255))) + painter.setPen(Qt.NoPen) + painter.drawRoundedRect( + QRectF(-self.pradius, -self.pradius, diameter, diameter), self.pradius, self.pradius) + + def enterEvent(self, event): + """鼠标进入动画 + :param event: + """ + if not (self.animation and not self.isGif): + return + self.rotateAnimation.stop() + cv = self.rotateAnimation.currentValue() or self.StartAngle + self.rotateAnimation.setDuration( + 540 if cv == 0 else int(cv / self.EndAngle * 540)) + self.rotateAnimation.setStartValue(cv) + self.rotateAnimation.setEndValue(self.EndAngle) + self.rotateAnimation.start() + + def leaveEvent(self, event): + """鼠标离开动画 + :param event: + """ + if not (self.animation and not self.isGif): + return + self.rotateAnimation.stop() + cv = self.rotateAnimation.currentValue() or self.EndAngle + self.rotateAnimation.setDuration(int(cv / self.EndAngle * 540)) + self.rotateAnimation.setStartValue(cv) + self.rotateAnimation.setEndValue(self.StartAngle) + self.rotateAnimation.start() + + def onLoading(self): + """更新进度动画 + """ + if self.loadingTimer.isActive(): + if self.pradius > 9: + self.pradius = 0 + self.pradius += 1 + else: + self.pradius = 0 + self.update() + + def onFinished(self): + """图片下载完成 + """ + self.loadingTimer.stop() + self.pradius = 0 + reply = self.sender() + + if self.isGif: + self._movie = QMovie(reply, b'gif', self) + if self._movie.isValid(): + self._movie.frameChanged.connect(self._resizeGifPixmap) + self._movie.start() + else: + data = reply.readAll().data() + reply.deleteLater() + del reply + self._pixmap.loadFromData(data) + if self._pixmap.isNull(): + self._pixmap = QPixmap(self.size()) + self._pixmap.fill(QColor(204, 204, 204)) + self._resizePixmap() + + def onError(self, code): + """下载出错了 + :param code: + """ + self._pixmap = QPixmap(self.size()) + self._pixmap.fill(QColor(204, 204, 204)) + self._resizePixmap() + + def refresh(self): + """强制刷新 + """ + self._get(self.url) + + def isLoading(self): + """判断是否正在加载 + """ + return self.loadingTimer.isActive() + + def setShape(self, shape): + """设置形状 + :param shape: 0=圆形, 1=圆角矩形 + """ + self.shape = shape + + def setBytes(self, img_bytes): + self._pixmap = QPixmap() + if isinstance(img_bytes, bytes): + if img_bytes[:4] == b'\x89PNG': + self._pixmap.loadFromData(img_bytes, format='PNG') + else: + self._pixmap.loadFromData(img_bytes, format='jfif') + elif isinstance(img_bytes, QPixmap): + self._pixmap = img_bytes + self._resizePixmap() + + def setUrl(self, url): + """设置url,可以是本地路径,也可以是网络地址 + :param url: + """ + return + self.url = url + self._get(url) + + def setCacheDir(self, cacheDir=''): + """设置本地缓存路径 + :param cacheDir: + """ + self.cacheDir = cacheDir + self._initNetWork() + + def setSize(self, size): + """设置固定尺寸 + :param size: + """ + if not isinstance(size, QSize): + size = self.SizeMedium + self.setMinimumSize(size) + self.setMaximumSize(size) + self._resizePixmap() + + @pyqtProperty(int) + def angle(self): + return self._angle + + @angle.setter + def angle(self, value): + self._angle = value + self.update() + + def _resizePixmap(self): + """缩放图片 + """ + if not self._pixmap.isNull(): + self.pixmap = self._pixmap.scaled( + self.width(), self.height(), Qt.IgnoreAspectRatio, Qt.SmoothTransformation) + self.update() + + def _resizeGifPixmap(self, _): + """缩放动画图片 + """ + if self._movie: + self.pixmap = self._movie.currentPixmap().scaled( + self.width(), self.height(), Qt.IgnoreAspectRatio, Qt.SmoothTransformation) + self.update() + + def _initNetWork(self): + """初始化异步网络库 + """ + if not hasattr(qApp, '_network'): + network = QNetworkAccessManager(self.window()) + setattr(qApp, '_network', network) + # 是否需要设置缓存 + if self.cacheDir and not qApp._network.cache(): + cache = QNetworkDiskCache(self.window()) + cache.setCacheDirectory(self.cacheDir) + qApp._network.setCache(cache) + + def _get(self, url): + """设置图片或者请求网络图片 + :param url: + """ + if not url: + self.onError('') + return + if url.startswith('http') and not self.loadingTimer.isActive(): + url = QUrl(url) + request = QNetworkRequest(url) + # request.setHeader(QNetworkRequest.UserAgentHeader, b'CAvatar') + # request.setRawHeader(b'Author', b'Irony') + request.setAttribute( + QNetworkRequest.FollowRedirectsAttribute, True) + if qApp._network.cache(): + request.setAttribute( + QNetworkRequest.CacheLoadControlAttribute, QNetworkRequest.PreferNetwork) + request.setAttribute( + QNetworkRequest.CacheSaveControlAttribute, True) + reply = qApp._network.get(request) + self.pradius = 0 + self.loadingTimer.start(50) # 显示进度动画 + reply.finished.connect(self.onFinished) + reply.error.connect(self.onError) + return + self.pradius = 0 + if os.path.exists(url) and os.path.isfile(url): + if self.isGif: + self._movie = QMovie(url, parent=self) + if self._movie.isValid(): + self._movie.frameChanged.connect(self._resizeGifPixmap) + self._movie.start() + else: + self._pixmap = QPixmap(url) + self._resizePixmap() + else: + self.onError('') + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = CAvatar( + img_bytes=b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x84\x00\x00\x00\x84\x08\x00\x00\x00\x00t/\xdc{\x00\x00\x00\x04gAMA\x00\x00\xb1\x8f\x0b\xfca\x05\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\x00\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x02bKGD\x00\xff\x87\x8f\xcc\xbf\x00\x00\x0e\x8fIDATx\xda\xed\x9b[\x8c]\xd7Y\xc7\xbf\xff\xb7\xd6\xde\xfb\x9c3w\xdf&\xbe\xdf\x9d\xa4\xbe\xc4\x89krmI\xdc\x06\xa5i\xa0$\x95\xa0\x95\x02U\x0bBH(\\\xfa\x80\x10<\xf0\xd6\x07\xfa\x80D\x1e\xa0P\xa2\x02-\xa1)%j\x13\xd2\xe6~O\x9a\xc4J\x9a\xc4\x8e\xeb\xcb8\xf8\x9eq\xec\x8c\xe7~\xf6\xdek}\x7f\x1e\xce\x8c\xc7g:\x05\xe7\xa0\x11\x8d\xaf\x85m\xa1o\xcf\xdb\xc7d(]\xb8\xe2\xc6\x1d\xd7\xd4\x9cYR\x0e~{/v\xdce\x89c\xa4\x93(\x8a\xb9YG\xe9\x87zox\xf9\xe4\xc3\xab\xd6\xa4!\xb1\x8b\xdb\x06H\x81\x18\xc2\x8e\xab\xde\xdd\xd7\x7f\xf4x\xfb\x95_Y0\xbf\xcd\x8fV\x10\x92\xfa\xab\xafiu\xad\xef\xff\xa8\xad\xc3k.N\x8c\xde\xe6\x02\x91X\xfb\xc8\x96\xbb\xef\xef{q%9W\xa7I8qq\xe9\xaa\xba\x7f\xe4\xaf\xd0}CI\xa9w\x94\x92\xe4|M\x92\xc1\x1f\xffp\xa0\\\xbaz\xed-\xcb\x02\xc5I\x9c\x93\x89F\xc9\xdb\xf4\xa6u#oEK"/\xae\x97\x13a\x8aP\xab{\x89\x9ai\x10I\xd2h\xa4\xd7M\xcep\xf0\xe0P\xb1\xf7\x89\x87\xfb\xcdT\xa35\xbd\xf7\x02Q\xb42Z\xe9\xbd\xb3\\e\x19\xa3\x83\\,\x88Lz\xd5\xec\xfa\xe6\xa9E\x7f\xb2\xcd\x19\xd3\xa0\xa5y\xdb\xf7\xd0\x01\xae\xfe\xf2\x1as\x05\xc5ISVq\x81\xeb(\x13\x83\x99\xa51\n`\x93\x12\xa4\xc1\x899\x03g\xf4\x1c\xc1\r?\xb87\xb5\xfdeU\x8f\xc9\xday\xae,3Ww\xce\x87\x03\x7f\xb3/n\xf9\xdaV\x9a+t:\xfd\xec\x1e\x93,\xd5\x99(c\xc6\xd2CCC\x14\xce\xd1D\x83\xe8\xcc1-\xa9\xa3~hl,\xf3y\\w\xe7\x1d\xedCY-\x94\xd5\x10\x8b\x9d\x0f\x1c\xf5\xb7\xfd\xc1<\x12\x92\x80\xd6\x1c\x04fuV\x02OD\x07\x19T\x11\x188q\x1dQ\xd5\x04\xe6\xc1\x99<\x18$\xb4]\xb5\xf2\xe4@\x84\xdf\xf6\xa5\xb5C\xbe\xeaL\xbc!>\xfb\xd0\x01\xd7yko\xae\xa9\x16\x89L\x0b\xa2\x82\xd9\xc6\xd4 \xb32d\x05\x1f\x18\xea\xd9\xbe\x99>LlCd\x1c\x1e\xec\xad\x00\xcef\xda\x86 \xbe\xef\x9f_\tze\xd7\xe9p\xd3\xe7{\x05\x9a\x87\xe7\xff\xb1\xdf\xa5\xd6\xd3\xd9\xbd\xf6\xc6++\x88\xe2%\x9ck\xa3~\xfa\x9b\x01S\x98\x90*c\x99\xaf\x8f<\xf2\x83\xb0\xf9\x97\x95\xa1\xf1\xc9A\xd3\xf2\xfb\x8f\xf7\xddq\xcf\xd5\xa9\x988kd\xb2\x84PI\x15C\x89dt\xc9\x8a\x97\x93\xb0/P\x0f\xad\xee\x8db\x95#\x8f\x7f8?J\xc6\xc1\x93\xaf\xfd\xe4\x86\xdf\\\xee\x94\xe6&\xee\x92\xa2\xc2&\x08\x98\x12A%B`\xa20=\xfe\xd8\x13\xf3v|nY\x14g"0g\xaaq\xffw\xeb\xdd/\x9e\xba\xf7\xc6\x89\x84\xeb\x9c\xfc\x9eP\xf3&\xd9\xce\x9d\x06\xcb\x13\xcf\rW\x88de\xb9\xe8W7V\xbb*\x95\x04\xa3\xfb\x1e~\xe6\xc3\xfb\xd6\xda\x94m@8M\x12\x06(\x9dF:\x13GI\xeb\xbb\xbfs\xb0\xe7\xf77v$\xb9\x06O:3\x04\x05\xaf\x1b\xda\'{~\xb2\xb9\xcdEN\xe6j\x80\x882B\x11\xad|\xf1\xfb\x07T\xb6v\xbdw|\xc1\xe7\xd6\xa9\x14\xd0\xb6\xed\xb7\xb8\xb2f\x92\xc4m\xaf\x1fy\xe7G_\xeb\xd0sL\x94\xc04\xeb(\xb2\xc2\x9bc\x84)\xf3\xddO\xbdT\xbd\xe3\x8b\xf3\x13\xe6ItA\x11|\x84\x037\xfd\xe5\xb1\xbf\xdec;\x87k\xc0\x84;\x07i>\x06u\x8cq\xfc\xcd\x9f\xf6\xf5\xa7\xba\xed\x8f\x16\xbe;\xb8hSn\xc1%%{\xf2\x98Y\t\x14X\xb4\xdf?\xbf\xf6\xf38\x1b:(Nl\x1aD\x02\xc4$OH\x8d\xbb\xdex\xb2\xbe\xfc\xcb\xd7u0\xba`e\xadT\x8d\x12\x1c(l\x93")RD\xe7\x08C#h0\x00.\x8e\x1f\xdb\xb3\xfb\xb5\x81\xaa\xc0_\xb7H\xb6\x92\xa52\x95 RG\xc5\xe2/\x0e/\x08\xbbv\xb3}\xe0\xe0x\xdb\x94q@8]\'\xdc@\xa5V*a\x07~\xfc\xf6\xc9\xee;\xefXn\xfd\x03\xebU\xd4["\xa7\xdf]\xb1\xba\xf0j \xa3\xf94u\r\xff\xa5\xc2(p&c\xc7\xf7\xee~kt\xacm\xd5\xe9T\xe5\x13\t\xcaX\x89"\xb1D\xd5\x0c6\xbe\xf3?\xde[06d\xc9G\xeboH\xa9\x93NFAk\x86\x10\x8d\xffj7\xadh\x1b\xf9\xf93?\x8f=\xb7\xff\xc6Ro\xc3\x0f\x8c\xfd\xf1\xbc$\xf8\xdc\xeb\xfb\xf7/\xf8\xf35#\x15\x8dZ\x96\x11\xddU\x11\xa3\x8a\xd0\x9c\xe3\x9b\x8f~\x84\xb1#\xa3\x95\x9eUk~e\xe9\xb7\x9e)\xbb\xf2\x07O\xec\xd8\x94\x8b\xa3\xa4\x16\x89\xfc\xf0s\x8f\xf6\xf7\x1c\xae@\xfc\xf2?\xbdR4\xb8Is\x8c\xb1\xa2\xbe\x99!\xa9<\xf7\xea\xfa\xcec\xfbG\xe7\x7f\xea\xfa\rm\x12\xb0\xf7\xf5\rB\xaay\x97\x9f\x1a\xdf\xf7\xd3{ky\xa6(\x8dZ\xf3\x93^\xdbEV\x96\xac\x7f\xeeH\xd1\xb1l\xd5\x96\r+\xab\'NE;\xfd\xf7\x1f\x9c9\xf1\xd5\xf5\xde\xa2\x9a\xa5CG_}\xf9h\xdeY\xaaI\xb2\xe0\xb7\xd6\x01\xe6\xa7,\xd4Yl\x82\xa0\xc8\x17\xd7?\xfdz\xde\xbe\xfc\xfam\xcbj\x96\xd4\xb5xe\xb8\xb7\xad\xf4\x11\xde\x92\x81\x9co~j\xa3D53a\xd5M\xe6:!\xb1\xf1\xc5wo=:x\xc5\xf2\x9ev\'\xe1\xe8\xb1\xb2"\xfb\x1c_\xdd\xb4\xc2\xb2$\x1f;\xbd\xf7\xcd\x83\x83\x03d\x99*C\xf5\x9e\x9b\xb3hv\xd6\xdbR46[Gte\xe7\xcd\xdb\x8f\xd4\x17t\xa5!#\xea\xa9\xbe\xf1\xfa\xf85\xa9DoQR\xa5\x9d8q\x95\x830\x880=\x1b:\xd2zE\xcbl\xf3U\x96\xb0t$\xf6\x9d\xaa\x85\xf2K\xd9\x8bG\x9f\xba9\x7f\xf6\xf8\xf0\xc0\xe9\xd14\xe9\xea9\xed0\xae\xa2\x8b\xcbg\xb6\xcdO\xf4\xac\xc7WFi\x86pTZ\xba\xca\x993\x15\x81\x8f\xe5sG\xe6_i\nz\xcb\x13\x85\x1b?Z8\x15\x94\x14\xd5\xb3\xc9VH\x83x+UIOp\xf4\xa0\x85$Y\x97\xbe\x15O\xed\xb9\xde\x8e\x9c\t\xc9\xc6\r\x1b\x92G\xcf\x98T"]\xdf!\xfd\xb3OM\xa5\xeeT-\x1d\xa79+1\xd0\x91E\xca\xe8$w\xfb_\xaal\xe9\xf4\x88\xce\xe8\x83P\xfdXLJg\x12\'*\xfe\t\xe5\x92F\xb6AB\xa8g\x8e\x88+\xf0\x0fE\x9e\r\xbf\xf3\x85\xaf|\xf6\x0c\xb1\xaa-\xff\xbb}\xc1G\x13\xb8z\xfb\x86\x95\x0eg}\x15\x08\xfa\xb2\xd9D)\x80D\xaf\xb4\xac \xb2\x0f\xbf;\xda~}\x879\xb1\xa4\x9eh`6:f\xd1G\x1d\x8f\x8ej\xaa\xb0\x08B\x04l\x04v\x08\xcc\x1f\xeaW\xbba\xf1cQ\x87\xab\x03\x83m\xeb\xbc9;\xfa\xed\xc7\xb3\xb4\x84\xa8\x8dm\xfc\xf5\xdbj\xa5\x9emR\x10\x94\xc25C4B\x98\xc9\xe8\x07m\xdd\x15\x94/\xec\xd1y\xeb4\x1a\x90\'\xc6U=\x1fU\xbb3\x8a\xa0\x1e`TD\xc5\xf4n\x1a\x95\x87sm\xbf\xed\x97^\x18f\xc5\xf5\x8d\xb5k\x94\x88\xa3\xbbk\x89Q\x1ct\xdeo\x7f2\r\x06L\xe6\x86\xa0x\x86\xe9\xd7A\x80\xe2\xfb\x1e\x1a\xbcv\xf5R{\xb6\xbf\xb2\xf9\n\x1a\x9dDO\xbb\xfa\xb3Ovm\xf0\x14\xf3\xa5\x08\x89F\xf0l\x86\x80\xf0x\xb0x\xfa\xbdz\x18\xaf\xb8b\xb8\xc7\xa7\xac\xcb\x8a\xd5\xa7G\xa5=\x8f\xea\xee\xd8R\xb3\xe8t*\xab1&h\x0e`P\t\xa2\xd4|+\x9f\xfc\x9et\x97\xb1\xd6\xb3\xbd\xdd\x92\x02\x96F\xb0\xfb\xabwe\x0b\x05T\xb3\x02"4\x17\xb5\x11\xc6\xcf5\xf2\xe2X\xe9\x86\xff%=\xb3\xa4\xf3\xc4\x90\r\xfbXH\xac\xcd\xbf\xefo\x0f\xb7\xa7\xfd\xfda\xf1u]#i\xd4\xa9\x9e\n\x9c\x19\x9b!h\x02E)p\xd7,]\xfd\xfc\x81\xc1\xb6|\xde\x92\xb4\xee\xd0hD\x96\xd9R\x88\x98\xa8\xa5\xa6g\x1bR\xcd\x08\x8a\xb1\x0f\xa1\xba\xa0\xb6\xe4\xa6\xe5\xdf\xa8&\x87\xb7\xa83\x89\x95\x15_?\xe1:\xef\x1f@\xe7\x92\x90\xd1\x89\x9e\xcdX\xa3\xea\xf4\xa4F#\x1d\x98E\x1d\x98\xdfqO\xf1^w\xbd}\xe0\x85\xb6\xe5\x05(\xd1\x19\xd4\x94B\x88Z{57j\x9c^\x99QDlt$)z>s\xab.x\xdf\xb4\xb4\xe8\x02\x13\x11\xce\x9f\xe7\x07+ERs \xc4\xa6r\x1aG\x89:\xbd\x02\xf3e\xb0\xc2b\xcfx\xb5\xef\r7\x86\xd1\xfe\x07\xbf\xf1\xbe\x0b\n\x13\x15\xa2\x91>\x98u\xb8\xe8\xb3\xe8\xcb\xc4\xceM4)B\xd1\xfa`\x90+n\\\xb5\xb8+\xb2\x88=\tM\x0c\x02c=D/\xb5\x84"T\xea\xd4\x1e\xea\xb42\xd0`\x89w\x11(\xed\xd8\xbf\xedcm\xdb\'+\xd8\xf5\xc8GY\x107\x95Z#$\x1d\xed\xc2\xae\x00\x15\x9e\xdbjhTi\x83\x92b\xc9Rbx Ij\x8b\x11+\tb\x8c\xaa\xcey\'\xa9\nM\xcek>5{\xcc\x18\x92Rq\xc6\xe7\x87\x1e\xf9\xd9p\xc7=_\x18\xfb\xa7\x97\xf4\x95\x9b\x17E\x7fN\xa9C\xfaR\xa4gm\x12M8\xbd\xa0\xd3\x98\xa4!\xac\xaf\xf9\x0f\x1ey\xb3\xae+\x17\x05\xa3@E\xa20\x86R3\x9d\xb1\xc5\xd0\x04\x11\x90&c\x08?xmtt\xa0\xed\xda_\xdb\xa1\xbd__\xfb\x9f~$:\xb3svk\xfc`\x90\xb5e\x1a\xd0\xe8\x07\x9c#\n\x9a.\xdf\xfaN\xba\xd9\x15\xed\xe9\t\xad\xdd\xd8\x053\nI\x07U\xe7\xac\xa63\xb6g\xa7\xc5\x8e\xa8\x80\xdbpr_\xbef\xfbg\xd6%\xa5u\xde\xb9|dC\xb3\xde\xc0\x99H\x1c\xab\xd7\xbd64\xe5\xdc\x9fA\xba\x7f\xe7)Y\xa9\xec\xba\xbdvp\xc5\xed,\x12\x90\x02%\x85P\xa9\x81\xa4^\x18\x820&!\xbde\xfb{\x83\xcbV\'&i\xa9\xdd\xb7\x8e\xd7\xc6*\xe7\x1a"`\xf3\xdaF\\ThP\xb5f\x131\xc8\x86\xd5E\xad^\xb1ewGICb\x10\x80\x86\x86<2\x87\x8bJB\x90D\xd1\x02\xb5\x1b-\x82N"\x83\xe6\xde &Sb\xa4\xc8\xc2\x8a3\xe7\x83sFLS\n\xd1\\\xdaC\x1aM\xbd\x17q\x9cL\xc6)\x0e!\xebp\x86\x19*\xd8&\xd9 \xc2\xb1\xac$,\xa2(,\x8a\x8395\x1f\xa1r\xb6cD\x8d\xce\x99\xf7\x9c\xa9\xbf\xa2\xa4\xf3\xa2l\xb4\xa2qN^\xaf\x14\xf8\nDf\xa8\xdb\x9aN"\x023\x1f\xc4\xab\xc5(NH\x07\xa7Z\x89q\xaax\x84D\xc4H\xf5\xb34\x91\xe8@B\xed\xbc\x89\x82\x95\xb1\xda6s\xff\xad\tB#,W\xd2\xe8\xb3FAS7Z\x18\xcf\xdc\x94\xd4\xa9\x96\x8e\x97\xd0Tg\xaa\xca\'Z(!:\rM2\x16\x0b\xb9\xfav\xc1E\'?11QS\x80f*F \x05\xa9\x12\x85S\x9b\xe9C=h-\x99\xf13\tH\x8a\xa9\xd0\xa6\xc9\x98\xc5\x88\xf75@f\x18\xba4\xeb\x84\x89\x98\x906YcR\x8ch\x8c\xd1l\nbl\xbcd\xcd\xdb\xcc=7*\xe8Hh\xd3\xd0\x8d\xe0\xf8\x10;\xdb`3\xb5\xa7\xcf;\xa9Y^\x13i\\C\xbf\xd98"\xe8\xa1\x11\xeb\xae\xaa5\xa6~\xcd\x97B\xd8\xe4\xeco\xf2\x84\xc6\x800=U/{:\xa8q.\x10\x17X\xa0\x13\x03J\xd9\x1b\xa4\xbb\x1a\xe6\xb6\x15\x12@\xb8\xc8\x8f\xa2-H8\xd3\xf4\xe9\xd2\x86\xb3&\xa6\x81\xc9\x81\x83.[\x98\xccq.Eq"f\x8eG\x86\xb18\x99\xb9\x1dz\t\x10\x84\xa8+S\x8c<\xdeWV\xd7\xcc\xa5\xdf\xdd\xd8\xe6\n\xa81\xef\xa3\xaeP\\\xea\\\xf4\xbc\x15]\x8c\x9e\x1f>\xfd\xac\xc3\xda\x95\xca\x8b\xb5\xfd\x1b\x0b\x16T\x04\xf8\xb0/\xce[,\x98\xd1\xbb\\\x02\x044z\x1c\x7fl\xd7\xf1q\xb8\x1bz\\\xa0\xcdI\x8c\xae\xac\x14\x86\xf8\xce \x16\xcf\x9b6\xc0\xbe,Id\xa3i\xa5\xd6\xd1\xdb\xbb\xf6\x13;\x1cA77\xad\xa8\x8cV\xeb\xd9\xae\x87$\xb9\xba\xcbh\xfa?\xbc\x0e\x1d\xcf\xd8s\xef@\xe1\xabH\x181G\xcd4&\xca\xa7~tX\x16m\xb3Y&i\x97\x00AT\xc7\x1dc\x97\xc1\x11\x91P\x9b\xd36U\x8e\xa7?;\xbc\xa0\xbeu\xa3\xcd\xa2\xca\x98\xfb\xbf\xdb\xc0\x8a\xaa\x04U"\x84D\x04s\x1b\x1e\x13E\xd5dh$\xef\xaeVl\x96=\x97\x00A\x8d\xde\x08\x81\x01\x86\x99\x1d\xf0\x0c\x82\x08\xe2\x83\x13\xf3\xf5t6A\\\x8a\x9f@\xf4\x91\r\xf7M\x05q\xf1I\xa9\x88H\xd4$x#\xa2\x9f}\xb4z\t\x92\xf8\xdf[\xff\xe7\xfe\xa6\xa6\x05\xd1\x82hA\xb4 Z\x10\x1f\xfbjA\xb4 Z\x10-\x88\x16D\x0b\xa2\x05\xd1\x82\xf8\x7f\x01\xf1\xdf\x91\xd3\xe9`7\x9a\x1c\x88\x00\x00\x00\x12tEXtexif:ExifOffset\x00620\x1a\xa3x\x00\x00\x00\x12tEXtexif:ImageLength\x000\xc1\xc5N\xce\x00\x00\x00\x11tEXtexif:ImageWidth\x000/\xffv\xa0\x00\x00\x00\x12tEXtexif:LightSource\x000x\x05kH\x00\x00\x00\x00IEND\xaeB`\x82' + , + url='https://wx.qlogo.cn/mmhead/ver_1/DpDqmvTDORNWfLrMj26YicorEUREffl1G8FapawdKgINVH9g1icudfWesGrH9LqeGAz16z4PmkW9U1KAIM3btWgozZ1GaLF66bdKdxlMdazmibn2hpFeiaa4613dN6HM4Vfk/132') + w.show() + sys.exit(app.exec_()) diff --git a/app/components/QCursorGif.py b/app/components/QCursorGif.py new file mode 100644 index 0000000..01d4800 --- /dev/null +++ b/app/components/QCursorGif.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2020年3月13日 +@author: Irony +@site: https://pyqt.site , https://github.com/PyQt5 +@email: 892768447@qq.com +@file: Demo.Lib.QCursorGif +@description: +""" + +try: + from PyQt5.QtCore import QTimer, Qt + from PyQt5.QtGui import QCursor, QPixmap + from PyQt5.QtWidgets import QApplication +except ImportError: + from PySide2.QtCore import QTimer, Qt + from PySide2.QtGui import QCursor, QPixmap + from PySide2.QtWidgets import QApplication +from app.resources import resource_rc + +var = resource_rc.qt_resource_name + + +class QCursorGif: + + def initCursor(self, cursors, parent=None): + # 记录默认的光标 + self._oldCursor = Qt.ArrowCursor + self.setOldCursor(parent) + # 加载光标图片 + self._cursorImages = [ + QCursor(QPixmap(cursor)) for cursor in cursors] + self._cursorIndex = 0 + self._cursorCount = len(self._cursorImages) - 1 + # 创建刷新定时器 + self._cursorTimeout = 200 + self._cursorTimer = QTimer(parent) + self._cursorTimer.timeout.connect(self._doBusy) + self.num = 0 + + def _doBusy(self): + if self._cursorIndex > self._cursorCount: + self._cursorIndex = 0 + QApplication.setOverrideCursor( + self._cursorImages[self._cursorIndex]) + self._cursorIndex += 1 + self.num += 1 + + def startBusy(self): + # QApplication.setOverrideCursor(Qt.WaitCursor) + if not self._cursorTimer.isActive(): + self._cursorTimer.start(self._cursorTimeout) + + def stopBusy(self): + self._cursorTimer.stop() + QApplication.restoreOverrideCursor() + # 将光标出栈,恢复至原始状态 + for i in range(self.num): + QApplication.restoreOverrideCursor() + self.num = 0 + + + def setCursorTimeout(self, timeout): + self._cursorTimeout = timeout + + def setOldCursor(self, parent=None): + QApplication.overrideCursor() + self._oldCursor = (QApplication.overrideCursor() or parent.cursor() or Qt.ArrowCursor or Qt.IBeamCursor) if parent else ( + QApplication.overrideCursor() or Qt.ArrowCursor) diff --git a/app/components/__init__.py b/app/components/__init__.py new file mode 100644 index 0000000..6d1eb7f --- /dev/null +++ b/app/components/__init__.py @@ -0,0 +1,2 @@ +from .contact_info_ui import ContactQListWidgetItem +from .scroll_bar import ScrollBar diff --git a/app/components/bubble_message.py b/app/components/bubble_message.py new file mode 100644 index 0000000..d2b5e0c --- /dev/null +++ b/app/components/bubble_message.py @@ -0,0 +1,301 @@ +import os.path +import subprocess +import platform + +from PyQt5 import QtGui +from PyQt5.QtCore import QSize, pyqtSignal, Qt, QThread +from PyQt5.QtGui import QPainter, QFont, QColor, QPixmap, QPolygon, QFontMetrics +from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QSizePolicy, QVBoxLayout, QSpacerItem, \ + QScrollArea + +from app.components.scroll_bar import ScrollBar + + +class MessageType: + Text = 1 + Image = 3 + + +class TextMessage(QLabel): + heightSingal = pyqtSignal(int) + + def __init__(self, text, is_send=False, parent=None): + if isinstance(text, bytes): + text = text.decode('utf-8') + super(TextMessage, self).__init__(text, parent) + font = QFont('微软雅黑', 12) + self.setFont(font) + self.setWordWrap(True) + self.setMaximumWidth(800) + # self.setMinimumWidth(100) + self.setMinimumHeight(45) + self.setTextInteractionFlags(Qt.TextSelectableByMouse) + self.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored) + if is_send: + self.setAlignment(Qt.AlignCenter | Qt.AlignRight) + self.setStyleSheet( + ''' + background-color:#b2e281; + border-radius:10px; + padding:10px; + ''' + ) + else: + self.setStyleSheet( + ''' + background-color:white; + border-radius:10px; + padding:10px; + ''' + ) + font_metrics = QFontMetrics(font) + rect = font_metrics.boundingRect(text) + # rect = font_metrics + self.setMaximumWidth(rect.width() + 40) + + def paintEvent(self, a0: QtGui.QPaintEvent) -> None: + super(TextMessage, self).paintEvent(a0) + + +class Triangle(QLabel): + def __init__(self, Type, is_send=False, position=(0, 0), parent=None): + """ + + @param Type: + @param is_send: + @param position:(x,y) + @param parent: + """ + super().__init__(parent) + self.Type = Type + self.is_send = is_send + self.position = position + + def paintEvent(self, a0: QtGui.QPaintEvent) -> None: + + super(Triangle, self).paintEvent(a0) + if self.Type == MessageType.Text: + self.setFixedSize(6, 45) + painter = QPainter(self) + triangle = QPolygon() + x, y = self.position + if self.is_send: + painter.setPen(QColor('#b2e281')) + painter.setBrush(QColor('#b2e281')) + triangle.setPoints(0, 20+y, 0, 34+y, 6, 27+y) + else: + painter.setPen(QColor('white')) + painter.setBrush(QColor('white')) + triangle.setPoints(0, 27+y, 6, 20+y, 6, 34+y) + painter.drawPolygon(triangle) + + +class Notice(QLabel): + def __init__(self, text, type_=3, parent=None): + super().__init__(text, parent) + self.type_ = type_ + self.setFont(QFont('微软雅黑', 10)) + self.setWordWrap(True) + self.setTextInteractionFlags(Qt.TextSelectableByMouse) + self.setAlignment(Qt.AlignCenter) + + +class Avatar(QLabel): + def __init__(self, avatar, parent=None): + super().__init__(parent) + if isinstance(avatar, str): + self.setPixmap(QPixmap(avatar).scaled(45, 45)) + self.image_path = avatar + elif isinstance(avatar, QPixmap): + self.setPixmap(avatar.scaled(45, 45)) + self.setFixedSize(QSize(45, 45)) + + +def open_image_viewer(file_path): + system_platform = platform.system() + + if system_platform == "Darwin": # macOS + subprocess.run(["open", file_path]) + elif system_platform == "Windows": + subprocess.run(["start", " ", file_path], shell=True) + elif system_platform == "Linux": + subprocess.run(["xdg-open", file_path]) + else: + print("Unsupported platform") + + +class OpenImageThread(QThread): + def __init__(self, image_path): + super().__init__() + self.image_path = image_path + + def run(self) -> None: + if os.path.exists(self.image_path): + open_image_viewer(self.image_path) + + +class ImageMessage(QLabel): + def __init__(self, image, is_send, image_link='', max_width=480, max_height=240, parent=None): + """ + param:image 图像路径或者QPixmap对象 + param:image_link='' 点击图像打开的文件路径 + """ + super().__init__(parent) + self.image = QLabel(self) + self.max_width = max_width + self.max_height = max_height + # self.setFixedSize(self.max_width,self.max_height) + self.setMaximumWidth(self.max_width) + self.setMaximumHeight(self.max_height) + self.setCursor(Qt.PointingHandCursor) + if isinstance(image, str): + pixmap = QPixmap(image) + self.image_path = image + elif isinstance(image, QPixmap): + pixmap = image + self.set_image(pixmap) + if image_link: + self.image_path = image_link + self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + + if is_send: + self.setAlignment(Qt.AlignCenter | Qt.AlignRight) + # self.setScaledContents(True) + + def set_image(self, pixmap): + # 计算调整后的大小 + adjusted_width = min(pixmap.width(), self.max_width) + adjusted_height = min(pixmap.height(), self.max_height) + self.setPixmap(pixmap.scaled(adjusted_width, adjusted_height, Qt.KeepAspectRatio)) + # 调整QLabel的大小以适应图片的宽高,但不超过最大宽高 + # self.setFixedSize(adjusted_width, adjusted_height) + + def mousePressEvent(self, event): + if event.buttons() == Qt.LeftButton: # 左键按下 + print('打开图像', self.image_path) + self.open_image_thread = OpenImageThread(self.image_path) + self.open_image_thread.start() + + +class BubbleMessage(QWidget): + def __init__(self, str_content, avatar, Type, is_send=False, display_name=None, parent=None): + super().__init__(parent) + self.isSend = is_send + # self.set + self.setStyleSheet( + ''' + border:none; + ''' + ) + layout = QHBoxLayout() + layout.setSpacing(0) + layout.setContentsMargins(0, 5, 5, 5) + # self.resize(QSize(200, 50)) + self.avatar = Avatar(avatar) + triangle = Triangle(Type, is_send, (0, 0)) + if Type == MessageType.Text: + self.message = TextMessage(str_content, is_send) + # self.message.setMaximumWidth(int(self.width() * 0.6)) + elif Type == MessageType.Image: + self.message = ImageMessage(str_content, is_send) + else: + raise ValueError("未知的消息类型") + if display_name: + triangle = Triangle(Type, is_send, (0, 10)) + label_name = QLabel(display_name, self) + label_name.setFont(QFont('微软雅黑', 10)) + if is_send: + label_name.setAlignment(Qt.AlignRight) + vlayout = QVBoxLayout() + vlayout.setSpacing(0) + if is_send: + vlayout.addWidget(label_name, 0, Qt.AlignTop | Qt.AlignRight) + vlayout.addWidget(self.message, 0, Qt.AlignTop | Qt.AlignRight) + else: + vlayout.addWidget(label_name) + vlayout.addWidget(self.message) + self.spacerItem = QSpacerItem(45 + 6, 45, QSizePolicy.Expanding, QSizePolicy.Minimum) + if is_send: + layout.addItem(self.spacerItem) + if display_name: + layout.addLayout(vlayout, 1) + else: + layout.addWidget(self.message, 1) + layout.addWidget(triangle, 0, Qt.AlignTop | Qt.AlignLeft) + layout.addWidget(self.avatar, 0, Qt.AlignTop | Qt.AlignLeft) + else: + layout.addWidget(self.avatar, 0, Qt.AlignTop | Qt.AlignRight) + layout.addWidget(triangle, 0, Qt.AlignTop | Qt.AlignRight) + if display_name: + layout.addLayout(vlayout, 1) + else: + layout.addWidget(self.message, 1) + layout.addItem(self.spacerItem) + self.setLayout(layout) + + +class ScrollAreaContent(QWidget): + def __init__(self, parent=None): + super().__init__(parent) + self.adjustSize() + + +class ScrollArea(QScrollArea): + def __init__(self, parent=None): + super().__init__(parent) + self.setWidgetResizable(True) + self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) + self.setStyleSheet( + ''' + border:none; + ''' + ) + + +class ChatWidget(QWidget): + def __init__(self): + super().__init__() + self.resize(500, 200) + + layout = QVBoxLayout() + layout.setSpacing(0) + self.adjustSize() + # 生成滚动区域 + self.scrollArea = ScrollArea(self) + scrollBar = ScrollBar() + self.scrollArea.setVerticalScrollBar(scrollBar) + # 生成滚动区域的内容部署层部件 + self.scrollAreaWidgetContents = ScrollAreaContent(self.scrollArea) + self.scrollAreaWidgetContents.setMinimumSize(50, 100) + # 设置滚动区域的内容部署部件为前面生成的内容部署层部件 + self.scrollArea.setWidget(self.scrollAreaWidgetContents) + layout.addWidget(self.scrollArea) + self.layout0 = QVBoxLayout() + self.layout0.setSpacing(0) + self.scrollAreaWidgetContents.setLayout(self.layout0) + self.setLayout(layout) + + def add_message_item(self, bubble_message, index=1): + if index: + self.layout0.addWidget(bubble_message) + else: + self.layout0.insertWidget(0, bubble_message) + # self.set_scroll_bar_last() + + def set_scroll_bar_last(self): + self.scrollArea.verticalScrollBar().setValue( + self.scrollArea.verticalScrollBar().maximum() + ) + + def set_scroll_bar_value(self, val): + self.verticalScrollBar().setValue(val) + + def verticalScrollBar(self): + return self.scrollArea.verticalScrollBar() + + def update(self) -> None: + super().update() + self.scrollAreaWidgetContents.adjustSize() + self.scrollArea.update() + # self.scrollArea.repaint() + # self.verticalScrollBar().setMaximum(self.scrollAreaWidgetContents.height()) diff --git a/app/components/calendar_dialog.py b/app/components/calendar_dialog.py new file mode 100644 index 0000000..91898ef --- /dev/null +++ b/app/components/calendar_dialog.py @@ -0,0 +1,78 @@ +import time + +from datetime import datetime, timedelta +from PyQt5.QtCore import QTimer, QThread, pyqtSignal, Qt +from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox, QCalendarWidget, QWidget, QVBoxLayout, \ + QToolButton + +from app.ui.Icon import Icon + + +class CalendarDialog(QDialog): + selected_date_signal = pyqtSignal(int) + + def __init__(self, date_range=None, parent=None): + """ + + @param date_range: tuple[Union[QDate, datetime.date],Union[QDate, datetime.date]] #限定的可选择范围 + @param parent: + """ + super().__init__(parent) + self.setWindowTitle('选择日期') + self.calendar = QCalendarWidget(self) + self.calendar.clicked.connect(self.onDateChanged) + prev_btn = self.calendar.findChild(QToolButton, "qt_calendar_prevmonth") + prev_btn.setIcon(Icon.Arrow_left_Icon) + next_btn = self.calendar.findChild(QToolButton, "qt_calendar_nextmonth") + next_btn.setIcon(Icon.Arrow_right_Icon) + self.date_range = date_range + if date_range: + self.calendar.setDateRange(*date_range) + # 从第一天开始,依次添加日期到列表,直到该月的最后一天 + current_date = date_range[1] + while (current_date + timedelta(days=1)).month == date_range[1].month: + current_date += timedelta(days=1) + range_format = self.calendar.dateTextFormat(current_date) + range_format.setForeground(Qt.gray) + self.calendar.setDateTextFormat(current_date, range_format) + # 从第一天开始,依次添加日期到列表,直到该月的最后一天 + current_date = date_range[0] + while (current_date - timedelta(days=1)).month == date_range[0].month: + current_date -= timedelta(days=1) + range_format = self.calendar.dateTextFormat(current_date) + range_format.setForeground(Qt.gray) + self.calendar.setDateTextFormat(current_date, range_format) + layout = QVBoxLayout(self) + layout.addWidget(self.calendar) + self.setLayout(layout) + + def set_start_date(self): + if self.date_range: + self.calendar.setCurrentPage(self.date_range[0].year, self.date_range[0].month) + def set_end_date(self): + if self.date_range: + self.calendar.setCurrentPage(self.date_range[1].year, self.date_range[1].month) + def onDateChanged(self): + # 获取选择的日期 + selected_date = self.calendar.selectedDate() + s_t = time.strptime(selected_date.toString("yyyy-MM-dd"), "%Y-%m-%d") # 返回元祖 + mkt = int(time.mktime(s_t)) + timestamp = mkt + self.selected_date_signal.emit(timestamp) + print("Selected Date:", selected_date.toString("yyyy-MM-dd"), timestamp) + self.close() + + +if __name__ == '__main__': + import sys + from datetime import datetime, timedelta + + app = QApplication(sys.argv) + # 设置日期范围 + start_date = datetime(2024, 1, 5) + end_date = datetime(2024, 1, 9) + date_range = (start_date.date(), end_date.date()) + ex = CalendarDialog(date_range=date_range) + ex.show() + sys.exit(app.exec_()) diff --git a/app/components/contact_info_ui.py b/app/components/contact_info_ui.py new file mode 100644 index 0000000..ba73ea7 --- /dev/null +++ b/app/components/contact_info_ui.py @@ -0,0 +1,104 @@ +import sys + +from PyQt5.Qt import * +from PyQt5.QtCore import * +from PyQt5.QtWidgets import * + +from .CAvatar import CAvatar + +Stylesheet = """ +QWidget{ + background: rgb(238,244,249); +} +""" +Stylesheet_hover = """ +QWidget,QLabel{ + background: rgb(230, 235, 240); +} +""" +Stylesheet_clicked = """ +QWidget,QLabel{ + background: rgb(230, 235, 240); +} +""" + + +class QListWidgetItemWidget(QWidget): + def __init__(self): + super().__init__() + self.is_selected = False + + def leaveEvent(self, e): # 鼠标离开label + if self.is_selected: + return + self.setStyleSheet(Stylesheet) + + def enterEvent(self, e): # 鼠标移入label + self.setStyleSheet(Stylesheet_hover) + + +# 自定义的item 继承自QListWidgetItem +class ContactQListWidgetItem(QListWidgetItem): + def __init__(self, name, url, img_bytes=None): + super().__init__() + # 自定义item中的widget 用来显示自定义的内容 + self.widget = QListWidgetItemWidget() + # 用来显示name + self.nameLabel = QLabel(self.widget) + self.nameLabel.setText(name) + # 用来显示avator(图像) + self.avatorLabel = CAvatar(parent=self.widget, shape=CAvatar.Rectangle, size=QSize(60, 60), + url=url, img_bytes=img_bytes) + # 设置布局用来对nameLabel和avatorLabel进行布局 + hbox = QHBoxLayout() + hbox.addWidget(self.avatorLabel) + hbox.addWidget(self.nameLabel) + hbox.addStretch(1) + # 设置widget的布局 + self.widget.setLayout(hbox) + self.widget.setStyleSheet(Stylesheet) + # 设置自定义的QListWidgetItem的sizeHint,不然无法显示 + self.setSizeHint(self.widget.sizeHint()) + + def select(self): + """ + 设置选择后的事件 + @return: + """ + self.widget.is_selected = True + self.widget.setStyleSheet(Stylesheet_clicked) + + def dis_select(self): + """ + 设置取消选择的事件 + @return: + """ + self.widget.is_selected = False + self.widget.setStyleSheet(Stylesheet) + + +if __name__ == "__main__": + app = QApplication(sys.argv) + + # 主窗口 + w = QWidget() + w.setWindowTitle("QListWindow") + # 新建QListWidget + listWidget = QListWidget(w) + listWidget.resize(300, 300) + + # 新建两个自定义的QListWidgetItem(customQListWidgetItem) + item1 = ContactQListWidgetItem("鲤鱼王", "liyuwang.jpg") + item2 = ContactQListWidgetItem("可达鸭", "kedaya.jpg") + + # 在listWidget中加入两个自定义的item + listWidget.addItem(item1) + listWidget.setItemWidget(item1, item1.widget) + listWidget.addItem(item2) + listWidget.setItemWidget(item2, item2.widget) + + # 绑定点击槽函数 点击显示对应item中的name + listWidget.itemClicked.connect(lambda item: print(item.nameLabel.text())) + + w.show() + sys.exit(app.exec_()) diff --git a/app/components/export_contact_item.py b/app/components/export_contact_item.py new file mode 100644 index 0000000..9566bf5 --- /dev/null +++ b/app/components/export_contact_item.py @@ -0,0 +1,127 @@ +import sys + +from PyQt5.Qt import * +from PyQt5.QtCore import * +from PyQt5.QtWidgets import * + +try: + from .CAvatar import CAvatar +except: + from CAvatar import CAvatar + +Stylesheet = """ +QWidget{ + background: rgb(238,244,249); +} +""" +Stylesheet_hover = """ +QWidget,QLabel{ + background: rgb(230, 235, 240); +} +""" +Stylesheet_clicked = """ +QWidget,QLabel{ + background: rgb(230, 235, 240); +} +""" + + +class QListWidgetItemWidget(QWidget): + def __init__(self): + super().__init__() + self.is_selected = False + + def leaveEvent(self, e): # 鼠标离开label + if self.is_selected: + return + self.setStyleSheet(Stylesheet) + + def enterEvent(self, e): # 鼠标移入label + self.setStyleSheet(Stylesheet_hover) + + +# 自定义的item 继承自QListWidgetItem +class ContactQListWidgetItem(QListWidgetItem): + def __init__(self, name, url, img_bytes=None): + super().__init__() + self.is_select = False + # 自定义item中的widget 用来显示自定义的内容 + self.widget = QListWidgetItemWidget() + # 用来显示name + self.nameLabel = QLabel(self.widget) + self.nameLabel.setText(name) + # 用来显示avator(图像) + self.avatorLabel = CAvatar(parent=self.widget, shape=CAvatar.Rectangle, size=QSize(30, 30), + url=url, img_bytes=img_bytes) + # 设置布局用来对nameLabel和avatorLabel进行布局 + hbox = QHBoxLayout(self.widget) + self.checkBox = QCheckBox(self.widget) + self.checkBox.clicked.connect(self.select) + hbox.addWidget(self.checkBox) + hbox.addWidget(self.avatorLabel) + hbox.addWidget(self.nameLabel) + hbox.addStretch(1) + # 设置widget的布局 + self.widget.setLayout(hbox) + self.widget.setStyleSheet(Stylesheet) + # 设置自定义的QListWidgetItem的sizeHint,不然无法显示 + self.setSizeHint(self.widget.sizeHint()) + sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) + self.widget.setSizePolicy(sizePolicy) + + def select(self): + """ + 设置选择后的事件 + @return: + """ + self.widget.is_selected = True + self.is_select = not self.is_select + # print('选择',self.is_select) + self.checkBox.setChecked(self.is_select) + # self.widget.setStyleSheet(Stylesheet_clicked) + + def force_select(self): + self.is_select = True + self.checkBox.setChecked(self.is_select) + + def force_dis_select(self): + self.is_select = False + self.checkBox.setChecked(self.is_select) + + def dis_select(self): + """ + 设置取消选择的事件 + @return: + """ + self.widget.is_selected = False + self.widget.setStyleSheet(Stylesheet) + + +if __name__ == "__main__": + app = QApplication(sys.argv) + + # 主窗口 + w = QWidget() + w.setWindowTitle("QListWindow") + # 新建QListWidget + listWidget = QListWidget(w) + listWidget.resize(300, 300) + + # 新建两个自定义的QListWidgetItem(customQListWidgetItem) + item1 = ContactQListWidgetItem("鲤鱼王", "liyuwang.jpg") + item2 = ContactQListWidgetItem("可达鸭", "kedaya.jpg") + + # 在listWidget中加入两个自定义的item + listWidget.addItem(item1) + listWidget.setItemWidget(item1, item1.widget) + listWidget.addItem(item2) + listWidget.setItemWidget(item2, item2.widget) + + # 绑定点击槽函数 点击显示对应item中的name + listWidget.itemClicked.connect(lambda item: item.select()) + + w.show() + sys.exit(app.exec_()) diff --git a/app/components/prompt_bar.py b/app/components/prompt_bar.py new file mode 100644 index 0000000..df99b1f --- /dev/null +++ b/app/components/prompt_bar.py @@ -0,0 +1,39 @@ +from PyQt5 import QtGui +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * + + +class PromptBar(QLabel): + def __init__(self, parent=None): + super().__init__(parent) + + def paintEvent(self, e): # 绘图事件 + qp = QPainter() + qp.begin(self) + self.drawRectangles1(qp) # 绘制线条矩形 + self.drawRectangles2(qp) # 绘制填充矩形 + self.drawRectangles3(qp) # 绘制线条+填充矩形 + self.drawRectangles4(qp) # 绘制线条矩形2 + qp.end() + + def drawRectangles1(self, qp): # 绘制填充矩形 + qp.setPen(QPen(Qt.black, 2, Qt.SolidLine)) # 颜色、线宽、线性 + qp.drawRect(*self.data) + + def drawRectangles2(self, qp): # 绘制填充矩形 + qp.setPen(QPen(Qt.black, 2, Qt.NoPen)) + qp.setBrush(QColor(200, 0, 0)) + qp.drawRect(220, 15, 200, 100) + + def drawRectangles3(self, qp): # 绘制线条+填充矩形 + qp.setPen(QPen(Qt.black, 2, Qt.SolidLine)) + qp.setBrush(QColor(200, 0, 0)) + qp.drawRect(430, 15, 200, 100) + + def drawRectangles4(self, qp): # 绘制线条矩形2 + path = QtGui.QPainterPath() + qp.setPen(QPen(Qt.blue, 2, Qt.SolidLine)) + qp.setBrush(QColor(0, 0, 0, 0)) # 设置画刷颜色透明 + path.addRect(100, 200, 200, 100) + qp.drawPath(path) diff --git a/app/components/scroll_bar.py b/app/components/scroll_bar.py new file mode 100644 index 0000000..b6c96aa --- /dev/null +++ b/app/components/scroll_bar.py @@ -0,0 +1,48 @@ +from PyQt5.QtWidgets import QScrollBar + + +class ScrollBar(QScrollBar): + def __init__(self): + super().__init__() + self.setStyleSheet( + ''' + QScrollBar:vertical { + border-width: 0px; + border: none; + background:rgba(133, 135, 138, 0); + width:4px; + margin: 0px 0px 0px 0px; + } + QScrollBar::handle:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgb(133, 135, 138), stop: 0.5 rgb(133, 135, 138), stop:1 rgb(133, 135, 138)); + min-height: 20px; + max-height: 20px; + margin: 0 0px 0 0px; + border-radius: 2px; + } + QScrollBar::add-line:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgba(133, 135, 138, 0), stop: 0.5 rgba(133, 135, 138, 0), stop:1 rgba(133, 135, 138, 0)); + height: 0px; + border: none; + subcontrol-position: bottom; + subcontrol-origin: margin; + } + QScrollBar::sub-line:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgba(133, 135, 138, 0), stop: 0.5 rgba(133, 135, 138, 0), stop:1 rgba(133, 135, 138, 0)); + height: 0 px; + border: none; + subcontrol-position: top; + subcontrol-origin: margin; + } + QScrollBar::sub-page:vertical { + background: rgba(133, 135, 138, 0); + } + + QScrollBar::add-page:vertical { + background: rgba(133, 135, 138, 0); + } + ''' + ) \ No newline at end of file diff --git a/app/config.py b/app/config.py new file mode 100644 index 0000000..901283a --- /dev/null +++ b/app/config.py @@ -0,0 +1,35 @@ +import os + +version = '2.0.5' +contact = '701805520' +github = 'https://github.com/LC044/WeChatMsg' +website = 'https://memotrace.cn/' +copyright = '© 2022-2024 SiYuan' +license = 'GPLv3' +description = [ + '1. 支持获取个人信息
', + '2. 支持显示聊天界面
', + '3. 支持导出聊天记录
    * csv
    * html
    * ' + 'txt
    * docx
', + '4. 生成年度报告——圣诞特别版', +] +about = f''' + 版本:{version}
+ QQ交流群:请关注微信公众号回复:联系方式
+ 地址:{github}
+ 官网:{website}
+ 新特性:
{''.join(['' + i for i in description])}
+ License {license}
+ Copyright {copyright} +''' + +# 数据存放文件路径 +INFO_FILE_PATH = './app/data/info.json' # 个人信息文件 +DB_DIR = './app/Database/Msg' +OUTPUT_DIR = './data/' # 输出文件夹 +os.makedirs('./app/data', exist_ok=True) +os.makedirs(DB_DIR, exist_ok=True) +os.makedirs(OUTPUT_DIR, exist_ok=True) +# 全局参数 +SEND_LOG_FLAG = True # 是否发送错误日志 +SERVER_API_URL = 'http://api.lc044.love' # api接口 \ No newline at end of file diff --git a/app/decrypt/decrypt.py b/app/decrypt/decrypt.py new file mode 100644 index 0000000..f4c57f4 --- /dev/null +++ b/app/decrypt/decrypt.py @@ -0,0 +1,208 @@ +# -*- coding: utf-8 -*-# +# ------------------------------------------------------------------------------- +# Name: getwxinfo.py +# Description: +# Author: xaoyaoo +# Date: 2023/08/21 +# License: https://github.com/xaoyaoo/PyWxDump/blob/3b794bcb47b0457d1245ce5b4cfec61b74524073/LICENSE MIT +# 微信数据库采用的加密算法是256位的AES-CBC。数据库的默认的页大小是4096字节即4KB,其中每一个页都是被单独加解密的。 +# 加密文件的每一个页都有一个随机的初始化向量,它被保存在每一页的末尾。 +# 加密文件的每一页都存有着消息认证码,算法使用的是HMAC-SHA1(安卓数据库使用的是SHA512)。它也被保存在每一页的末尾。 +# 每一个数据库文件的开头16字节都保存了一段唯一且随机的盐值,作为HMAC的验证和数据的解密。 +# 用来计算HMAC的key与解密的key是不同的,解密用的密钥是主密钥和之前提到的16字节的盐值通过PKCS5_PBKF2_HMAC1密钥扩展算法迭代64000次计算得到的。而计算HMAC的密钥是刚提到的解密密钥和16字节盐值异或0x3a的值通过PKCS5_PBKF2_HMAC1密钥扩展算法迭代2次计算得到的。 +# 为了保证数据部分长度是16字节即AES块大小的整倍数,每一页的末尾将填充一段空字节,使得保留字段的长度为48字节。 +# 综上,加密文件结构为第一页4KB数据前16字节为盐值,紧接着4032字节数据,再加上16字节IV和20字节HMAC以及12字节空字节;而后的页均是4048字节长度的加密数据段和48字节的保留段。 +# ------------------------------------------------------------------------------- +import argparse +import hmac +import hashlib +import os +from typing import Union, List +from Cryptodome.Cipher import AES + +# from Crypto.Cipher import AES # 如果上面的导入失败,可以尝试使用这个 + +SQLITE_FILE_HEADER = "SQLite format 3\x00" # SQLite文件头 + +KEY_SIZE = 32 +DEFAULT_PAGESIZE = 4096 +DEFAULT_ITER = 64000 + + +# 通过密钥解密数据库 +def decrypt(key: str, db_path, out_path): + """ + 通过密钥解密数据库 + :param key: 密钥 64位16进制字符串 + :param db_path: 待解密的数据库路径(必须是文件) + :param out_path: 解密后的数据库输出路径(必须是文件) + :return: + """ + if not os.path.exists(db_path) or not os.path.isfile(db_path): + return False, f"[-] db_path:'{db_path}' File not found!" + if not os.path.exists(os.path.dirname(out_path)): + return False, f"[-] out_path:'{out_path}' File not found!" + + if len(key) != 64: + return False, f"[-] key:'{key}' Len Error!" + + password = bytes.fromhex(key.strip()) + with open(db_path, "rb") as file: + blist = file.read() + + salt = blist[:16] + byteKey = hashlib.pbkdf2_hmac("sha1", password, salt, DEFAULT_ITER, KEY_SIZE) + first = blist[16:DEFAULT_PAGESIZE] + if len(salt) != 16: + return False, f"[-] db_path:'{db_path}' File Error!" + + mac_salt = bytes([(salt[i] ^ 58) for i in range(16)]) + mac_key = hashlib.pbkdf2_hmac("sha1", byteKey, mac_salt, 2, KEY_SIZE) + hash_mac = hmac.new(mac_key, first[:-32], hashlib.sha1) + hash_mac.update(b'\x01\x00\x00\x00') + + if hash_mac.digest() != first[-32:-12]: + return False, f"[-] Key Error! (key:'{key}'; db_path:'{db_path}'; out_path:'{out_path}' )" + + newblist = [blist[i:i + DEFAULT_PAGESIZE] for i in range(DEFAULT_PAGESIZE, len(blist), DEFAULT_PAGESIZE)] + + with open(out_path, "wb") as deFile: + deFile.write(SQLITE_FILE_HEADER.encode()) + t = AES.new(byteKey, AES.MODE_CBC, first[-48:-32]) + decrypted = t.decrypt(first[:-48]) + deFile.write(decrypted) + deFile.write(first[-48:]) + + for i in newblist: + t = AES.new(byteKey, AES.MODE_CBC, i[-48:-32]) + decrypted = t.decrypt(i[:-48]) + deFile.write(decrypted) + deFile.write(i[-48:]) + return True, [db_path, out_path, key] + + +def batch_decrypt(key: str, db_path: Union[str, List[str]], out_path: str, is_logging: bool = False): + if not isinstance(key, str) or not isinstance(out_path, str) or not os.path.exists(out_path) or len(key) != 64: + error = f"[-] (key:'{key}' or out_path:'{out_path}') Error!" + if is_logging: print(error) + return False, error + + process_list = [] + + if isinstance(db_path, str): + if not os.path.exists(db_path): + error = f"[-] db_path:'{db_path}' not found!" + if is_logging: print(error) + return False, error + + if os.path.isfile(db_path): + inpath = db_path + outpath = os.path.join(out_path, 'de_' + os.path.basename(db_path)) + process_list.append([key, inpath, outpath]) + + elif os.path.isdir(db_path): + for root, dirs, files in os.walk(db_path): + for file in files: + inpath = os.path.join(root, file) + rel = os.path.relpath(root, db_path) + outpath = os.path.join(out_path, rel, 'de_' + file) + + if not os.path.exists(os.path.dirname(outpath)): + os.makedirs(os.path.dirname(outpath)) + process_list.append([key, inpath, outpath]) + else: + error = f"[-] db_path:'{db_path}' Error " + if is_logging: print(error) + return False, error + + elif isinstance(db_path, list): + rt_path = os.path.commonprefix(db_path) + if not os.path.exists(rt_path): + rt_path = os.path.dirname(rt_path) + + for inpath in db_path: + if not os.path.exists(inpath): + erreor = f"[-] db_path:'{db_path}' not found!" + if is_logging: print(erreor) + return False, erreor + + inpath = os.path.normpath(inpath) + rel = os.path.relpath(os.path.dirname(inpath), rt_path) + outpath = os.path.join(out_path, rel, 'de_' + os.path.basename(inpath)) + if not os.path.exists(os.path.dirname(outpath)): + os.makedirs(os.path.dirname(outpath)) + process_list.append([key, inpath, outpath]) + else: + error = f"[-] db_path:'{db_path}' Error " + if is_logging: print(error) + return False, error + + result = [] + for i in process_list: + result.append(decrypt(*i)) # 解密 + + # 删除空文件夹 + for root, dirs, files in os.walk(out_path, topdown=False): + for dir in dirs: + if not os.listdir(os.path.join(root, dir)): + os.rmdir(os.path.join(root, dir)) + + if is_logging: + print("=" * 32) + success_count = 0 + fail_count = 0 + for code, ret in result: + if code == False: + print(ret) + fail_count += 1 + else: + print(f'[+] "{ret[0]}" -> "{ret[1]}"') + success_count += 1 + print("-" * 32) + print(f"[+] 共 {len(result)} 个文件, 成功 {success_count} 个, 失败 {fail_count} 个") + print("=" * 32) + return True, result + + +def encrypt(key: str, db_path, out_path): + """ + 通过密钥加密数据库 + :param key: 密钥 64位16进制字符串 + :param db_path: 待加密的数据库路径(必须是文件) + :param out_path: 加密后的数据库输出路径(必须是文件) + :return: + """ + if not os.path.exists(db_path) or not os.path.isfile(db_path): + return False, f"[-] db_path:'{db_path}' File not found!" + if not os.path.exists(os.path.dirname(out_path)): + return False, f"[-] out_path:'{out_path}' File not found!" + + if len(key) != 64: + return False, f"[-] key:'{key}' Len Error!" + + password = bytes.fromhex(key.strip()) + with open(db_path, "rb") as file: + blist = file.read() + + salt = os.urandom(16) # 生成随机盐值 + byteKey = hashlib.pbkdf2_hmac("sha1", password, salt, DEFAULT_ITER, KEY_SIZE) + + # 计算消息认证码 + mac_salt = bytes([(salt[i] ^ 58) for i in range(16)]) + mac_key = hashlib.pbkdf2_hmac("sha1", byteKey, mac_salt, 2, KEY_SIZE) + hash_mac = hmac.new(mac_key, blist[:-32], hashlib.sha1) + hash_mac.update(b'\x01\x00\x00\x00') + mac_digest = hash_mac.digest() + + newblist = [blist[i:i + DEFAULT_PAGESIZE] for i in range(DEFAULT_PAGESIZE, len(blist), DEFAULT_PAGESIZE)] + + with open(out_path, "wb") as enFile: + enFile.write(salt) # 写入盐值 + enFile.write(mac_digest) # 写入消息认证码 + + for i in newblist: + t = AES.new(byteKey, AES.MODE_CBC, os.urandom(16)) # 生成随机的初始向量 + encrypted = t.encrypt(i) # 加密数据块 + enFile.write(encrypted) + + return True, [db_path, out_path, key] \ No newline at end of file diff --git a/app/decrypt/get_bias_addr.py b/app/decrypt/get_bias_addr.py new file mode 100644 index 0000000..58f6b73 --- /dev/null +++ b/app/decrypt/get_bias_addr.py @@ -0,0 +1,259 @@ +# -*- coding: utf-8 -*-# +# ------------------------------------------------------------------------------- +# Name: get_base_addr.py +# Description: +# Author: xaoyaoo +# Date: 2023/08/22 +# License: https://github.com/xaoyaoo/PyWxDump/blob/3b794bcb47b0457d1245ce5b4cfec61b74524073/LICENSE MIT +# ------------------------------------------------------------------------------- +import argparse +import ctypes +import hashlib +import json +import multiprocessing +import os +import re +import sys + +import psutil +from win32com.client import Dispatch +from pymem import Pymem +import pymem +import hmac + +ReadProcessMemory = ctypes.windll.kernel32.ReadProcessMemory +void_p = ctypes.c_void_p +KEY_SIZE = 32 +DEFAULT_PAGESIZE = 4096 +DEFAULT_ITER = 64000 + + +def validate_key(key, salt, first, mac_salt): + byteKey = hashlib.pbkdf2_hmac("sha1", key, salt, DEFAULT_ITER, KEY_SIZE) + mac_key = hashlib.pbkdf2_hmac("sha1", byteKey, mac_salt, 2, KEY_SIZE) + hash_mac = hmac.new(mac_key, first[:-32], hashlib.sha1) + hash_mac.update(b'\x01\x00\x00\x00') + + if hash_mac.digest() == first[-32:-12]: + return True + else: + return False + + +def get_exe_bit(file_path): + """ + 获取 PE 文件的位数: 32 位或 64 位 + :param file_path: PE 文件路径(可执行文件) + :return: 如果遇到错误则返回 64 + """ + try: + with open(file_path, 'rb') as f: + dos_header = f.read(2) + if dos_header != b'MZ': + print('get exe bit error: Invalid PE file') + return 64 + # Seek to the offset of the PE signature + f.seek(60) + pe_offset_bytes = f.read(4) + pe_offset = int.from_bytes(pe_offset_bytes, byteorder='little') + + # Seek to the Machine field in the PE header + f.seek(pe_offset + 4) + machine_bytes = f.read(2) + machine = int.from_bytes(machine_bytes, byteorder='little') + + if machine == 0x14c: + return 32 + elif machine == 0x8664: + return 64 + else: + print('get exe bit error: Unknown architecture: %s' % hex(machine)) + return 64 + except IOError: + print('get exe bit error: File not found or cannot be opened') + return 64 + + +def get_exe_version(file_path): + """ + 获取 PE 文件的版本号 + :param file_path: PE 文件路径(可执行文件) + :return: 如果遇到错误则返回 + """ + file_version = Dispatch("Scripting.FileSystemObject").GetFileVersion(file_path) + return file_version + + +def find_all(c: bytes, string: bytes, base_addr=0): + """ + 查找字符串中所有子串的位置 + :param c: 子串 b'123' + :param string: 字符串 b'123456789123' + :return: + """ + return [base_addr + m.start() for m in re.finditer(re.escape(c), string)] + + +class BiasAddr: + def __init__(self, account, mobile, name, key, db_path): + self.account = account.encode("utf-8") + self.mobile = mobile.encode("utf-8") + self.name = name.encode("utf-8") + self.key = bytes.fromhex(key) if key else b"" + self.db_path = db_path if db_path and os.path.exists(db_path) else "" + + self.process_name = "WeChat.exe" + self.module_name = "WeChatWin.dll" + + self.pm = None # Pymem 对象 + self.is_WoW64 = None # True: 32位进程运行在64位系统上 False: 64位进程运行在64位系统上 + self.process_handle = None # 进程句柄 + self.pid = None # 进程ID + self.version = None # 微信版本号 + self.process = None # 进程对象 + self.exe_path = None # 微信路径 + self.address_len = None # 4 if self.bits == 32 else 8 # 4字节或8字节 + self.bits = 64 if sys.maxsize > 2 ** 32 else 32 # 系统:32位或64位 + + def get_process_handle(self): + try: + self.pm = Pymem(self.process_name) + self.pm.check_wow64() + self.is_WoW64 = self.pm.is_WoW64 + self.process_handle = self.pm.process_handle + self.pid = self.pm.process_id + self.process = psutil.Process(self.pid) + self.exe_path = self.process.exe() + self.version = get_exe_version(self.exe_path) + + version_nums = list(map(int, self.version.split("."))) # 将版本号拆分为数字列表 + if version_nums[0] <= 3 and version_nums[1] <= 9 and version_nums[2] <= 2: + self.address_len = 4 + else: + self.address_len = 8 + return True, "" + except pymem.exception.ProcessNotFound: + return False, "[-] WeChat No Run" + + def search_memory_value(self, value: bytes, module_name="WeChatWin.dll"): + # 创建 Pymem 对象 + module = pymem.process.module_from_name(self.pm.process_handle, module_name) + ret = self.pm.pattern_scan_module(value, module, return_multiple=True) + ret = ret[-1] - module.lpBaseOfDll if len(ret) > 0 else 0 + return ret + + def get_key_bias1(self): + try: + byteLen = self.address_len # 4 if self.bits == 32 else 8 # 4字节或8字节 + + keyLenOffset = 0x8c if self.bits == 32 else 0xd0 + keyWindllOffset = 0x90 if self.bits == 32 else 0xd8 + + module = pymem.process.module_from_name(self.process_handle, self.module_name) + keyBytes = b'-----BEGIN PUBLIC KEY-----\n...' + publicKeyList = pymem.pattern.pattern_scan_all(self.process_handle, keyBytes, return_multiple=True) + + keyaddrs = [] + for addr in publicKeyList: + keyBytes = addr.to_bytes(byteLen, byteorder="little", signed=True) # 低位在前 + may_addrs = pymem.pattern.pattern_scan_module(self.process_handle, module, keyBytes, + return_multiple=True) + if may_addrs != 0 and len(may_addrs) > 0: + for addr in may_addrs: + keyLen = self.pm.read_uchar(addr - keyLenOffset) + if keyLen != 32: + continue + keyaddrs.append(addr - keyWindllOffset) + + return keyaddrs[-1] - module.lpBaseOfDll if len(keyaddrs) > 0 else 0 + except: + return 0 + + def search_key(self, key: bytes): + key = re.escape(key) # 转义特殊字符 + key_addr = self.pm.pattern_scan_all(key, return_multiple=False) + key = key_addr.to_bytes(self.address_len, byteorder='little', signed=True) + result = self.search_memory_value(key, self.module_name) + return result + + def get_key_bias2(self, wx_db_path): + + addr_len = get_exe_bit(self.exe_path) // 8 + db_path = wx_db_path + + def read_key_bytes(h_process, address, address_len=8): + array = ctypes.create_string_buffer(address_len) + if ReadProcessMemory(h_process, void_p(address), array, address_len, 0) == 0: return "None" + address = int.from_bytes(array, byteorder='little') # 逆序转换为int地址(key地址) + key = ctypes.create_string_buffer(32) + if ReadProcessMemory(h_process, void_p(address), key, 32, 0) == 0: return "None" + key_bytes = bytes(key) + return key_bytes + + def verify_key(key, wx_db_path): + KEY_SIZE = 32 + DEFAULT_PAGESIZE = 4096 + DEFAULT_ITER = 64000 + with open(wx_db_path, "rb") as file: + blist = file.read(5000) + salt = blist[:16] + byteKey = hashlib.pbkdf2_hmac("sha1", key, salt, DEFAULT_ITER, KEY_SIZE) + first = blist[16:DEFAULT_PAGESIZE] + + mac_salt = bytes([(salt[i] ^ 58) for i in range(16)]) + mac_key = hashlib.pbkdf2_hmac("sha1", byteKey, mac_salt, 2, KEY_SIZE) + hash_mac = hmac.new(mac_key, first[:-32], hashlib.sha1) + hash_mac.update(b'\x01\x00\x00\x00') + + if hash_mac.digest() != first[-32:-12]: + return False + return True + + phone_type1 = "iphone\x00" + phone_type2 = "android\x00" + phone_type3 = "ipad\x00" + + pm = pymem.Pymem("WeChat.exe") + module_name = "WeChatWin.dll" + + MicroMsg_path = os.path.join(db_path, "MSG", "MicroMsg.db") + + module = pymem.process.module_from_name(pm.process_handle, module_name) + + type1_addrs = pm.pattern_scan_module(phone_type1.encode(), module, return_multiple=True) + type2_addrs = pm.pattern_scan_module(phone_type2.encode(), module, return_multiple=True) + type3_addrs = pm.pattern_scan_module(phone_type3.encode(), module, return_multiple=True) + type_addrs = type1_addrs if len(type1_addrs) >= 2 else type2_addrs if len( + type2_addrs) >= 2 else type3_addrs if len(type3_addrs) >= 2 else "None" + if type_addrs == "None": + return 0 + for i in type_addrs[::-1]: + for j in range(i, i - 2000, -addr_len): + key_bytes = read_key_bytes(pm.process_handle, j, addr_len) + if key_bytes == "None": + continue + if verify_key(key_bytes, MicroMsg_path): + return j - module.lpBaseOfDll + return 0 + + def run(self, logging_path=False, version_list_path=None): + if not self.get_process_handle()[0]: + return {} + mobile_bias = self.search_memory_value(self.mobile, self.module_name) + name_bias = self.search_memory_value(self.name, self.module_name) + account_bias = self.search_memory_value(self.account, self.module_name) + key_bias = 0 + key_bias = self.get_key_bias1() + key_bias = self.search_key(self.key) if key_bias <= 0 and self.key else key_bias + key_bias = self.get_key_bias2(self.db_path) if key_bias <= 0 and self.db_path else key_bias + + rdata = {self.version: [name_bias, account_bias, mobile_bias, 0, key_bias]} + return rdata + + +def get_info_without_key(h_process, address, n_size=64): + array = ctypes.create_string_buffer(n_size) + if ReadProcessMemory(h_process, void_p(address), array, n_size, 0) == 0: return "None" + array = bytes(array).split(b"\x00")[0] if b"\x00" in array else bytes(array) + text = array.decode('utf-8', errors='ignore') + return text.strip() if text.strip() != "" else "None" diff --git a/app/decrypt/get_wx_info.py b/app/decrypt/get_wx_info.py new file mode 100644 index 0000000..6d1bc2e --- /dev/null +++ b/app/decrypt/get_wx_info.py @@ -0,0 +1,468 @@ +# -*- coding: utf-8 -*-# +# ------------------------------------------------------------------------------- +# Name: getwxinfo.py +# Description: +# Author: xaoyaoo +# Date: 2023/08/21 +# ------------------------------------------------------------------------------- +import hmac +import hashlib +import ctypes +import winreg +import pymem +from win32com.client import Dispatch +import psutil + +ReadProcessMemory = ctypes.windll.kernel32.ReadProcessMemory +void_p = ctypes.c_void_p + +import binascii +import pymem.process +from pymem import Pymem +from win32api import GetFileVersionInfo, HIWORD, LOWORD + +""" +class Wechat来源:https://github.com/SnowMeteors/GetWeChatKey +""" + + +class Wechat: + def __init__(self, pm): + module = pymem.process.module_from_name(pm.process_handle, "WeChatWin.dll") + self.pm = pm + self.dllBase = module.lpBaseOfDll + self.sizeOfImage = module.SizeOfImage + self.bits = self.GetPEBits() + + # 通过解析PE来获取位数 + def GetPEBits(self): + address = self.dllBase + self.pm.read_int(self.dllBase + 60) + 4 + 16 + SizeOfOptionalHeader = self.pm.read_short(address) + + # 0XF0 64bit + if SizeOfOptionalHeader == 0xF0: + return 64 + + return 32 + + def GetInfo(self): + version = self.GetVersion() + if not version: + print("Get WeChatWin.dll Failed") + return + + print(f"WeChat Version:{version}") + print(f"WeChat Bits: {self.bits}") + + keyBytes = b'-----BEGIN PUBLIC KEY-----\n...' + + # 从内存中查找 BEGIN PUBLIC KEY 的地址 + publicKeyList = pymem.pattern.pattern_scan_all(self.pm.process_handle, keyBytes, return_multiple=True) + if len(publicKeyList) == 0: + print("Failed to find PUBLIC KEY") + return + + keyAddr = self.GetKeyAddr(publicKeyList) + if keyAddr is None: + print("Failed to find key") + return + + keyLenOffset = 0x8c if self.bits == 32 else 0xd0 + + for addr in keyAddr: + try: + keyLen = self.pm.read_uchar(addr - keyLenOffset) + if self.bits == 32: + key = self.pm.read_bytes(self.pm.read_int(addr - 0x90), keyLen) + else: + key = self.pm.read_bytes(self.pm.read_longlong(addr - 0xd8), keyLen) + + key = binascii.b2a_hex(key).decode() + if self.CheckKey(key): + print(f"key is {key}") + return key + except: + pass + + print("Find the end of the key") + + @staticmethod + def CheckKey(key): + # 目前key位数是32位 + if key is None or len(key) != 64: + return False + + return True + + # 内存搜索特征码 + @staticmethod + def SearchMemory(parent, child): + offset = [] + index = -1 + + while True: + index = parent.find(child, index + 1) + if index == -1: + break + offset.append(index) + + return offset + + # 获取key的地址 + def GetKeyAddr(self, publicKeyList): + # 存放真正的key地址 + keyAddr = [] + + # 读取整个 WeChatWin.dll 的内容 + buffer = self.pm.read_bytes(self.dllBase, self.sizeOfImage) + + byteLen = 4 if self.bits == 32 else 8 + for publicKeyAddr in publicKeyList: + keyBytes = publicKeyAddr.to_bytes(byteLen, byteorder="little", signed=True) + offset = self.SearchMemory(buffer, keyBytes) + + if not offset or len(offset) == 0: + continue + + offset[:] = [x + self.dllBase for x in offset] + keyAddr += offset + + if len(keyAddr) == 0: + return None + + return keyAddr + + # 获取微信版本 + def GetVersion(self): + WeChatWindll_path = "" + for m in list(self.pm.list_modules()): + path = m.filename + if path.endswith("WeChatWin.dll"): + WeChatWindll_path = path + break + + if not WeChatWindll_path: + return False + + version = GetFileVersionInfo(WeChatWindll_path, "\\") + + msv = version['FileVersionMS'] + lsv = version['FileVersionLS'] + version = f"{str(HIWORD(msv))}.{str(LOWORD(msv))}.{str(HIWORD(lsv))}.{str(LOWORD(lsv))}" + + return version + + +# 获取exe文件的位数 +def get_exe_bit(file_path): + """ + 获取 PE 文件的位数: 32 位或 64 位 + :param file_path: PE 文件路径(可执行文件) + :return: 如果遇到错误则返回 64 + """ + try: + with open(file_path, 'rb') as f: + dos_header = f.read(2) + if dos_header != b'MZ': + print('get exe bit error: Invalid PE file') + return 64 + # Seek to the offset of the PE signature + f.seek(60) + pe_offset_bytes = f.read(4) + pe_offset = int.from_bytes(pe_offset_bytes, byteorder='little') + + # Seek to the Machine field in the PE header + f.seek(pe_offset + 4) + machine_bytes = f.read(2) + machine = int.from_bytes(machine_bytes, byteorder='little') + + if machine == 0x14c: + return 32 + elif machine == 0x8664: + return 64 + else: + print('get exe bit error: Unknown architecture: %s' % hex(machine)) + return 64 + except IOError: + print('get exe bit error: File not found or cannot be opened') + return 64 + + +# 读取内存中的字符串(非key部分) +def get_info_without_key(h_process, address, n_size=64): + array = ctypes.create_string_buffer(n_size) + if ReadProcessMemory(h_process, void_p(address), array, n_size, 0) == 0: return "None" + array = bytes(array).split(b"\x00")[0] if b"\x00" in array else bytes(array) + text = array.decode('utf-8', errors='ignore') + return text.strip() if text.strip() != "" else "None" + + +def pattern_scan_all(handle, pattern, *, return_multiple=False, find_num=100): + next_region = 0 + found = [] + user_space_limit = 0x7FFFFFFF0000 if sys.maxsize > 2 ** 32 else 0x7fff0000 + while next_region < user_space_limit: + try: + next_region, page_found = pymem.pattern.scan_pattern_page( + handle, + next_region, + pattern, + return_multiple=return_multiple + ) + except Exception as e: + print(e) + break + if not return_multiple and page_found: + return page_found + if page_found: + found += page_found + if len(found) > find_num: + break + return found + + +def get_info_wxid(h_process): + find_num = 100 + addrs = pattern_scan_all(h_process, br'\\Msg\\FTSContact', return_multiple=True, find_num=find_num) + wxids = [] + for addr in addrs: + array = ctypes.create_string_buffer(80) + if ReadProcessMemory(h_process, void_p(addr - 30), array, 80, 0) == 0: return "None" + array = bytes(array) # .split(b"\\")[0] + array = array.split(b"\\Msg")[0] + array = array.split(b"\\")[-1] + wxids.append(array.decode('utf-8', errors='ignore')) + wxid = max(wxids, key=wxids.count) if wxids else "None" + return wxid + + +def get_info_filePath(wxid="all"): + if not wxid: + return "None" + w_dir = "MyDocument:" + is_w_dir = False + + try: + key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Tencent\WeChat", 0, winreg.KEY_READ) + value, _ = winreg.QueryValueEx(key, "FileSavePath") + winreg.CloseKey(key) + w_dir = value + is_w_dir = True + except Exception as e: + w_dir = "MyDocument:" + + if not is_w_dir: + try: + user_profile = os.environ.get("USERPROFILE") + path_3ebffe94 = os.path.join(user_profile, "AppData", "Roaming", "Tencent", "WeChat", "All Users", "config", + "3ebffe94.ini") + with open(path_3ebffe94, "r", encoding="utf-8") as f: + w_dir = f.read() + is_w_dir = True + except Exception as e: + w_dir = "MyDocument:" + + if w_dir == "MyDocument:": + try: + # 打开注册表路径 + key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, + r"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders") + documents_path = winreg.QueryValueEx(key, "Personal")[0] # 读取文档实际目录路径 + winreg.CloseKey(key) # 关闭注册表 + documents_paths = os.path.split(documents_path) + if "%" in documents_paths[0]: + w_dir = os.environ.get(documents_paths[0].replace("%", "")) + w_dir = os.path.join(w_dir, os.path.join(*documents_paths[1:])) + # print(1, w_dir) + else: + w_dir = documents_path + except Exception as e: + profile = os.environ.get("USERPROFILE") + w_dir = os.path.join(profile, "Documents") + + msg_dir = os.path.join(w_dir, "WeChat Files") + + if wxid == "all" and os.path.exists(msg_dir): + return msg_dir + + filePath = os.path.join(msg_dir, wxid) + return filePath if os.path.exists(filePath) else "None" + + +def get_key(db_path, addr_len): + def read_key_bytes(h_process, address, address_len=8): + array = ctypes.create_string_buffer(address_len) + if ReadProcessMemory(h_process, void_p(address), array, address_len, 0) == 0: return "None" + address = int.from_bytes(array, byteorder='little') # 逆序转换为int地址(key地址) + key = ctypes.create_string_buffer(32) + if ReadProcessMemory(h_process, void_p(address), key, 32, 0) == 0: return "None" + key_bytes = bytes(key) + return key_bytes + + def verify_key(key, wx_db_path): + if not wx_db_path or wx_db_path.lower() == "none": + return True + KEY_SIZE = 32 + DEFAULT_PAGESIZE = 4096 + DEFAULT_ITER = 64000 + with open(wx_db_path, "rb") as file: + blist = file.read(5000) + salt = blist[:16] + byteKey = hashlib.pbkdf2_hmac("sha1", key, salt, DEFAULT_ITER, KEY_SIZE) + first = blist[16:DEFAULT_PAGESIZE] + + mac_salt = bytes([(salt[i] ^ 58) for i in range(16)]) + mac_key = hashlib.pbkdf2_hmac("sha1", byteKey, mac_salt, 2, KEY_SIZE) + hash_mac = hmac.new(mac_key, first[:-32], hashlib.sha1) + hash_mac.update(b'\x01\x00\x00\x00') + + if hash_mac.digest() != first[-32:-12]: + return False + return True + + phone_type1 = "iphone\x00" + phone_type2 = "android\x00" + phone_type3 = "ipad\x00" + + pm = pymem.Pymem("WeChat.exe") + module_name = "WeChatWin.dll" + + MicroMsg_path = os.path.join(db_path, "MSG", "MicroMsg.db") + + type1_addrs = pm.pattern_scan_module(phone_type1.encode(), module_name, return_multiple=True) + type2_addrs = pm.pattern_scan_module(phone_type2.encode(), module_name, return_multiple=True) + type3_addrs = pm.pattern_scan_module(phone_type3.encode(), module_name, return_multiple=True) + type_addrs = type1_addrs if len(type1_addrs) >= 2 else type2_addrs if len(type2_addrs) >= 2 else type3_addrs if len( + type3_addrs) >= 2 else "None" + # print(type_addrs) + if type_addrs == "None": + return "None" + for i in type_addrs[::-1]: + for j in range(i, i - 2000, -addr_len): + key_bytes = read_key_bytes(pm.process_handle, j, addr_len) + if key_bytes == "None": + continue + if db_path != "None" and verify_key(key_bytes, MicroMsg_path): + return key_bytes.hex() + return "None" + + +# 读取微信信息(account,mobile,name,mail,wxid,key) +def read_info(version_list, is_logging=False): + wechat_process = [] + result = [] + error = "" + for process in psutil.process_iter(['name', 'exe', 'pid']): + if process.name() == 'WeChat.exe': + wechat_process.append(process) + + if len(wechat_process) == 0: + error = "[-] WeChat No Run" + if is_logging: print(error) + return -1 + + for process in wechat_process: + tmp_rd = {} + + tmp_rd['pid'] = process.pid + tmp_rd['version'] = Dispatch("Scripting.FileSystemObject").GetFileVersion(process.exe()) + + wechat_base_address = 0 + for module in process.memory_maps(grouped=False): + if module.path and 'WeChatWin.dll' in module.path: + wechat_base_address = int(module.addr, 16) + break + if wechat_base_address == 0: + error = f"[-] WeChat WeChatWin.dll Not Found" + if is_logging: print(error) + return -1 + + Handle = ctypes.windll.kernel32.OpenProcess(0x1F0FFF, False, process.pid) + + bias_list = version_list.get(tmp_rd['version'], None) + if not isinstance(bias_list, list) or len(bias_list) <= 4: + error = f"[-] WeChat Current Version Is Not Supported(maybe not get account,mobile,name,mail)" + if is_logging: print(error) + tmp_rd['account'] = "None" + tmp_rd['mobile'] = "None" + tmp_rd['name'] = "None" + tmp_rd['mail'] = "None" + return tmp_rd['version'] + else: + name_baseaddr = wechat_base_address + bias_list[0] + account__baseaddr = wechat_base_address + bias_list[1] + mobile_baseaddr = wechat_base_address + bias_list[2] + mail_baseaddr = wechat_base_address + bias_list[3] + # key_baseaddr = wechat_base_address + bias_list[4] + + tmp_rd['account'] = get_info_without_key(Handle, account__baseaddr, 32) if bias_list[1] != 0 else "None" + tmp_rd['mobile'] = get_info_without_key(Handle, mobile_baseaddr, 64) if bias_list[2] != 0 else "None" + tmp_rd['name'] = get_info_without_key(Handle, name_baseaddr, 64) if bias_list[0] != 0 else "None" + tmp_rd['mail'] = get_info_without_key(Handle, mail_baseaddr, 64) if bias_list[3] != 0 else "None" + + addrLen = get_exe_bit(process.exe()) // 8 + + tmp_rd['wxid'] = get_info_wxid(Handle) + tmp_rd['filePath'] = get_info_filePath(tmp_rd['wxid']) if tmp_rd['wxid'] != "None" else "None" + tmp_rd['key'] = "None" + tmp_rd['key'] = get_key(tmp_rd['filePath'], addrLen) + if tmp_rd['key'] == 'None': + wechat = Pymem("WeChat.exe") + key = Wechat(wechat).GetInfo() + if key: + tmp_rd['key'] = key + result.append(tmp_rd) + + if is_logging: + print("=" * 32) + if isinstance(result, str): # 输出报错 + print(result) + else: # 输出结果 + for i, rlt in enumerate(result): + for k, v in rlt.items(): + print(f"[+] {k:>8}: {v}") + print(end="-" * 32 + "\n" if i != len(result) - 1 else "") + print("=" * 32) + + return result + + +import os +import sys + + +def resource_path(relative_path): + """ Get absolute path to resource, works for dev and for PyInstaller """ + base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) + return os.path.join(base_path, relative_path) + + +def get_info(VERSION_LIST): + result = read_info(VERSION_LIST, True) # 读取微信信息 + return result + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("--vlfile", type=str, help="手机号", required=False) + parser.add_argument("--vldict", type=str, help="微信昵称", required=False) + + args = parser.parse_args() + + # 读取微信各版本偏移 + if args.vlfile: + VERSION_LIST_PATH = args.vlfile + with open(VERSION_LIST_PATH, "r", encoding="utf-8") as f: + VERSION_LIST = json.load(f) + if args.vldict: + VERSION_LIST = json.loads(args.vldict) + + if not args.vlfile and not args.vldict: + VERSION_LIST_PATH = "../version_list.json" + + with open(VERSION_LIST_PATH, "r", encoding="utf-8") as f: + VERSION_LIST = json.load(f) + + result = read_info(VERSION_LIST, True) # 读取微信信息 diff --git a/app/decrypt/version_list.json b/app/decrypt/version_list.json new file mode 100644 index 0000000..a56b00e --- /dev/null +++ b/app/decrypt/version_list.json @@ -0,0 +1,1011 @@ +{ + "3.2.1.154": [ + 328121948, + 328122328, + 328123056, + 328121976, + 328123020, + 0 + ], + "3.3.0.115": [ + 31323364, + 31323744, + 31324472, + 31323392, + 31324436, + 0 + ], + "3.3.0.84": [ + 31315212, + 31315592, + 31316320, + 31315240, + 31316284, + 0 + ], + "3.3.0.93": [ + 31323364, + 31323744, + 31324472, + 31323392, + 31324436, + 0 + ], + "3.3.5.34": [ + 30603028, + 30603408, + 30604120, + 30603056, + 30604100, + 0 + ], + "3.3.5.42": [ + 30603012, + 30603392, + 30604120, + 30603040, + 30604084, + 0 + ], + "3.3.5.46": [ + 30578372, + 30578752, + 30579480, + 30578400, + 30579444, + 0 + ], + "3.4.0.37": [ + 31608116, + 31608496, + 31609224, + 31608144, + 31609188, + 0 + ], + "3.4.0.38": [ + 31604044, + 31604424, + 31605152, + 31604072, + 31605116, + 0 + ], + "3.4.0.50": [ + 31688500, + 31688880, + 31689608, + 31688528, + 31689572, + 0 + ], + "3.4.0.54": [ + 31700852, + 31701248, + 31700920, + 31700880, + 31701924, + 0 + ], + "3.4.5.27": [ + 32133788, + 32134168, + 32134896, + 32133816, + 32134860, + 0 + ], + "3.4.5.45": [ + 32147012, + 32147392, + 32147064, + 32147040, + 32148084, + 0 + ], + "3.5.0.20": [ + 35494484, + 35494864, + 35494536, + 35494512, + 35495556, + 0 + ], + "3.5.0.29": [ + 35507980, + 35508360, + 35508032, + 35508008, + 35509052, + 0 + ], + "3.5.0.33": [ + 35512140, + 35512520, + 35512192, + 35512168, + 35513212, + 0 + ], + "3.5.0.39": [ + 35516236, + 35516616, + 35516288, + 35516264, + 35517308, + 0 + ], + "3.5.0.42": [ + 35512140, + 35512520, + 35512192, + 35512168, + 35513212, + 0 + ], + "3.5.0.44": [ + 35510836, + 35511216, + 35510896, + 35510864, + 35511908, + 0 + ], + "3.5.0.46": [ + 35506740, + 35507120, + 35506800, + 35506768, + 35507812, + 0 + ], + "3.6.0.18": [ + 35842996, + 35843376, + 35843048, + 35843024, + 35844068, + 0 + ], + "3.6.5.7": [ + 35864356, + 35864736, + 35864408, + 35864384, + 35865428, + 0 + ], + "3.6.5.16": [ + 35909428, + 35909808, + 35909480, + 35909456, + 35910500, + 0 + ], + "3.7.0.26": [ + 37105908, + 37106288, + 37105960, + 37105936, + 37106980, + 0 + ], + "3.7.0.29": [ + 37105908, + 37106288, + 37105960, + 37105936, + 37106980, + 0 + ], + "3.7.0.30": [ + 37118196, + 37118576, + 37118248, + 37118224, + 37119268, + 0 + ], + "3.7.5.11": [ + 37883280, + 37884088, + 37883136, + 37883008, + 37884052, + 0 + ], + "3.7.5.23": [ + 37895736, + 37896544, + 37895592, + 37883008, + 37896508, + 0 + ], + "3.7.5.27": [ + 37895736, + 37896544, + 37895592, + 37895464, + 37896508, + 0 + ], + "3.7.5.31": [ + 37903928, + 37904736, + 37903784, + 37903656, + 37904700, + 0 + ], + "3.7.6.24": [ + 38978840, + 38979648, + 38978696, + 38978604, + 38979612, + 0 + ], + "3.7.6.29": [ + 38986376, + 38987184, + 38986232, + 38986104, + 38987148, + 0 + ], + "3.7.6.44": [ + 39016520, + 39017328, + 39016376, + 38986104, + 39017292, + 0 + ], + "3.8.0.31": [ + 46064088, + 46064912, + 46063944, + 38986104, + 46064876, + 0 + ], + "3.8.0.33": [ + 46059992, + 46060816, + 46059848, + 38986104, + 46060780, + 0 + ], + "3.8.0.41": [ + 46064024, + 46064848, + 46063880, + 38986104, + 46064812, + 0 + ], + "3.8.1.26": [ + 46409448, + 46410272, + 46409304, + 38986104, + 46410236, + 0 + ], + "3.9.0.28": [ + 48418376, + 48419280, + 48418232, + 38986104, + 48419244, + 0 + ], + "3.9.2.23": [ + 50320784, + 50321712, + 50320640, + 38986104, + 50321676, + 50592864 + ], + "3.9.2.26": [ + 50329040, + 50329968, + 50328896, + 38986104, + 50329932, + 0 + ], + "3.9.5.81": [ + 61650872, + 61652208, + 61650680, + 0, + 61652144, + 0 + ], + "3.9.5.91": [ + 61654904, + 61656240, + 61654712, + 38986104, + 61656176, + 61677112 + ], + "3.9.6.19": [ + 61997688, + 61997464, + 61997496, + 38986104, + 61998960, + 0 + ], + "3.9.6.33": [ + 62030600, + 62031936, + 62030408, + 0, + 62031872, + 0 + ], + "3.9.7.15": [ + 63482696, + 63484032, + 63482504, + 0, + 63483968, + 0 + ], + "3.9.7.25": [ + 63482760, + 63484096, + 63482568, + 0, + 63484032, + 0 + ], + "3.9.7.29": [ + 63486984, + 63488320, + 63486792, + 0, + 63488256, + 63488352 + ], + "3.9.8.15": [ + 64996632, + 64997968, + 64996440, + 0, + 64997904, + 65011632 + ], + "3.9.8.25": [ + 65000920, + 0, + 65000728, + 0, + 0, + 0 + ], + "3.9.9.27": [ + 68065304, + 0, + 68065112, + 0, + 68066576 + ], + "3.9.9.35": [ + 68065304, + 0, + 68065112, + 0, + 68066576 + ], + "3.9.9.148": [ + 69043224, + 69044560, + 69043032, + 0, + 0 + ], + "3.9.5.65": [ + 61642744, + 61644080, + 61644081, + 0, + 61644016 + ], + "3.9.9.38": [ + 68070104, + 68071440, + 68069912, + 0, + 68071376 + ], + "3.9.9.147": [ + 76731445, + 0, + 69043032, + 0, + 0 + ], + "3.6.0.0": [ + 35842996, + 35844104, + 35843048, + 0, + 0 + ], + "3.9.9.43": [ + 68065944, + 68067280, + 68065752, + 0, + 68067216 + ], + "3.9.9.143": [ + 69035096, + 69036432, + 69034904, + 0, + 69036368 + ], + "3.3.0.0": [ + 31082900, + 31083928, + 31082952, + 0, + 0 + ], + "3.9.9.25": [ + 68065304, + 0, + 68065112, + 0, + 68066576 + ], + "3.9.8.11": [ + 0, + 0, + 0, + 0, + 64998160 + ], + "3.9.9.16": [ + 68060952, + 0, + 0, + 0, + 68062224 + ], + "3.9.6.24": [ + 62022264, + 62044248, + 62022072, + 0, + 62023536 + ], + "3.9.9.34": [ + 56102304, + 56118252, + 56102160, + 0, + 0 + ], + "3.9.6.39": [ + 0, + 63280064, + 63278536, + 0, + 63280000 + ], + "3.9.7.28": [ + 52433824, + 52434792, + 52434793, + 0, + 0 + ], + "3.9.8.137": [ + 65894869, + 65909760, + 65908232, + 0, + 65909696 + ], + "3.9.5.25": [ + 61530888, + 0, + 61530696, + 0, + 61532160 + ], + "3.9.5.80": [ + 50681672, + 50682640, + 50682641, + 0, + 0 + ], + "3.7.6.45": [ + 39016456, + 0, + 39016312, + 0, + 0 + ], + "3.5.0.0": [ + 35507848, + 35507848, + 35506800, + 0, + 0 + ], + "3.9.8.9": [ + 65001112, + 65002448, + 0, + 0, + 65002384 + ], + "3.9.6.47": [ + 0, + 63288512, + 63286984, + 0, + 0 + ], + "3.9.8.8": [ + 64996952, + 0, + 64996760, + 0, + 64998224 + ], + "3.9.6.43": [ + 63283144, + 63284480, + 63282952, + 0, + 0 + ], + "3.9.0.22": [ + 48405896, + 48406800, + 48405752, + 0, + 0 + ], + "3.7.6.43": [ + 39016456, + 39261580, + 39016312, + 0, + 0 + ], + "3.0.0.0": [ + 25834908, + 25846332, + 25834960, + 0, + 0 + ], + "3.7.0.23": [ + 37105844, + 37106952, + 37105896, + 0, + 0 + ], + "3.9.6.8": [ + 61960264, + 61961600, + 0, + 0, + 61961536 + ], + "3.9.5.55": [ + 61589448, + 61590784, + 61589256, + 0, + 61590720 + ], + "3.9.8.27": [ + 65000920, + 65002256, + 65000728, + 0, + 65002192 + ], + "2.4.5.1": [ + 27329425, + 24589520, + 24588544, + 0, + 0 + ], + "3.9.6.37": [ + 63287160, + 63310040, + 63286968, + 0, + 63288432 + ], + "3.9.5.77": [ + 61652272, + 61652272, + 61650744, + 0, + 61652208 + ], + "3.9.9.13": [ + 68044888, + 68069384, + 68044696, + 0, + 68046160 + ], + "3.9.5.39": [ + 0, + 0, + 0, + 0, + 61565216 + ], + "3.9.6.17": [ + 61972568, + 61973904, + 61972376, + 0, + 61973840 + ], + "3.9.9.11": [ + 0, + 0, + 68032344, + 0, + 68033808 + ], + "3.2.1.0": [ + 0, + 28123056, + 28122080, + 0, + 0 + ], + "3.8.1.25": [ + 0, + 0, + 46405272, + 0, + 0 + ], + "3.9.6.29": [ + 0, + 62052520, + 62030344, + 0, + 62031808 + ], + "3.9.8.12": [ + 53479320, + 53480288, + 53479176, + 0, + 0 + ], + "3.9.5.73": [ + 61650872, + 61652208, + 0, + 0, + 61652144 + ], + "3.9.1.25": [ + 48634640, + 48635544, + 48634496, + 0, + 0 + ], + "3.8.0.29": [ + 50910714, + 0, + 46060689, + 0, + 0 + ], + "3.9.9.22": [ + 56102304, + 0, + 56102160, + 0, + 0 + ], + "3.9.10.10": [ + 102868520, + 102869856, + 102868328, + 0, + 102869792 + ], + "3.8.0.18": [ + 46043224, + 46044048, + 46043080, + 0, + 0 + ], + "3.9.10.13": [ + 0, + 0, + 95125416, + 0, + 0 + ], + "3.9.10.18": [ + 95129640, + 95130976, + 95129448, + 0, + 0 + ], + "3.9.10.11": [ + 102868456, + 102869792, + 102868264, + 0, + 0 + ], + "3.9.7.14": [ + 0, + 0, + 63478408, + 0, + 63479872 + ], + "3.9.10.19": [ + 95129768, + 0, + 95129576, + 0, + 95131192 + ], + "3.7.6.38": [ + 39016136, + 0, + 39015992, + 0, + 0 + ], + "3.9.10.9": [ + 102868712, + 102870048, + 102868520, + 0, + 102869984 + ], + "3.9.10.16": [ + 71305680, + 71306648, + 71305536, + 0, + 0 + ], + "3.9.0.26": [ + 48405896, + 0, + 48405752, + 0, + 0 + ], + "3.9.7.13": [ + 63474296, + 63475632, + 63474104, + 0, + 63475568 + ], + "3.8.0.15": [ + 46014616, + 0, + 46014472, + 0, + 0 + ], + "3.9.10.25": [ + 95135256, + 95136592, + 95135064, + 0, + 95136528 + ], + "3.9.10.27": [ + 95125656, + 95126992, + 95125464, + 0, + 95126928 + ], + "3.8.0.27": [ + 50268814, + 46060496, + 46060497, + 0, + 0 + ], + "3.9.10.26": [ + 71305744, + 71306712, + 71305600, + 0, + 0 + ], + "3.9.11.7": [ + 93459160, + 93460496, + 93458968, + 0, + 0 + ], + "3.9.11.5": [ + 93456272, + 93456272, + 93454744, + 0, + 0 + ], + "3.9.11.8": [ + 93454872, + 93456208, + 93454680, + 0, + 93456144 + ], + "3.9.11.9": [ + 93463000, + 93464336, + 93462808, + 0, + 93464272 + ], + "3.9.11.13": [ + 93546264, + 93547600, + 93547603, + 0, + 93547536 + ], + "3.9.11.15": [ + 93550360, + 93551696, + 93550168, + 0, + 93551632 + ], + "3.9.11.17": [ + 93550360, + 0, + 93550168, + 0, + 93551632 + ], + "3.9.6.13": [ + 0, + 0, + 0, + 0, + 61965584 + ], + "3.9.6.124": [ + 62034888, + 0, + 62034696, + 0, + 62036160 + ], + "3.9.11.19": [ + 93550296, + 93551632, + 93550104, + 0, + 93551568 + ], + "3.9.11.16": [ + 69861360, + 69862328, + 69861216, + 0, + 0 + ], + "3.9.11.18": [ + 69861296, + 69862264, + 69861152, + 0, + 0 + ], + "3.9.11.23": [ + 93701208, + 93725072, + 93701016, + 0, + 0 + ], + "3.7.5.25": [ + 37899832, + 37900640, + 37899688, + 0, + 0 + ], + "3.9.11.25": [ + 93701080, + 93702416, + 93700888, + 0, + 0 + ], + "3.9.11.24": [ + 69992304, + 69993272, + 0, + 0, + 0 + ], + "3.9.0.18": [ + 48385208, + 48386112, + 48385064, + 0, + 0 + ], + "3.9.7.24": [ + 0, + 52434792, + 52433680, + 0, + 30689842 + ], + "3.9.12.4": [ + 93809448, + 0, + 93809256, + 0, + 93810720 + ], + "3.9.12.9": [ + 93815072, + 93815072, + 93813544, + 0, + 93815008 + ], + "3.9.12.11": [ + 93810784, + 93810784, + 93809256, + 0, + 93810720 + ], + "3.9.11.33": [ + 0, + 93702416, + 0, + 0, + 93702352 + ], + "3.9.12.15": [93813544, 0, 93813352, 0, 93814968], + "3.9.12.14": [ + 70045856, + 70046824, + 70045712, + 0, + 0 + ] +} \ No newline at end of file diff --git a/app/log/__init__.py b/app/log/__init__.py new file mode 100644 index 0000000..77076b1 --- /dev/null +++ b/app/log/__init__.py @@ -0,0 +1,3 @@ +from .logger import log, logger + +__all__ = ["logger", "log"] diff --git a/app/log/exception_handling.py b/app/log/exception_handling.py new file mode 100644 index 0000000..c279ca4 --- /dev/null +++ b/app/log/exception_handling.py @@ -0,0 +1,75 @@ +import sqlite3 +import sys +import traceback + +import requests + +from app.person import Me + + +class ExceptionHanding: + def __init__(self, exc_type, exc_value, traceback_): + self.exc_type = exc_type + self.exc_value = exc_value + self.traceback = traceback_ + self.error_message = ''.join(traceback.format_exception(exc_type, exc_value, traceback_)) + + def parser_exc(self): + if isinstance(self.exc_value, PermissionError): + return f'权限错误,请使用管理员身份运行并将文件夹设置为可读写' + elif isinstance(self.exc_value, sqlite3.DatabaseError): + return '数据库错误,请删除app文件夹后重启电脑再运行软件' + elif isinstance(self.exc_value, OSError) and self.exc_value.errno == 28: + return '空间磁盘不足,请预留足够多的磁盘空间以供软件正常运行' + elif isinstance(self.exc_value, TypeError) and 'NoneType' in str(self.exc_value) and 'not iterable' in str( + self.exc_value): + return '数据库错误,请删除app文件夹后重启电脑再运行软件' + elif isinstance(self.exc_value,KeyboardInterrupt): + return '' + else: + return '未知错误类型,可参考 https://blog.lc044.love/post/7 解决该问题\n温馨提示:重启电脑可解决80%的问题' + + def __str__(self): + errmsg = f'{self.error_message}\n{self.parser_exc()}' + return errmsg + + +def excepthook(exc_type, exc_value, traceback_): + # 将异常信息转为字符串 + + # 在这里处理全局异常 + + error_message = ExceptionHanding(exc_type, exc_value, traceback_) + txt = '您可添加QQ群发送log文件以便解决该问题' + msg = f"Exception Type: {exc_type.__name__}\nException Value: {exc_value}\ndetails: {error_message}\n\n{txt}" + print(msg) + + # 调用原始的 excepthook,以便程序正常退出 + sys.__excepthook__(exc_type, exc_value, traceback_) + +def send_error_msg( message): + url = "http://api.lc044.love/error" + if not message: + return { + 'code': 201, + 'errmsg': '日志为空' + } + data = { + 'username': Me().wxid, + 'error': message + } + try: + response = requests.post(url, json=data) + if response.status_code == 200: + resp_info = response.json() + return resp_info + else: + return { + 'code': 503, + 'errmsg': '服务器错误' + } + except: + return { + 'code': 404, + 'errmsg': '客户端错误' + } diff --git a/app/log/logger.py b/app/log/logger.py new file mode 100644 index 0000000..ab6f1e6 --- /dev/null +++ b/app/log/logger.py @@ -0,0 +1,36 @@ +import logging +import os +import time +import traceback +from functools import wraps + +filename = time.strftime("%Y-%m-%d", time.localtime(time.time())) +logger = logging.getLogger('test') +logger.setLevel(level=logging.DEBUG) +formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') +try: + if not os.path.exists('./app/log/logs'): + os.mkdir('./app/log/logs') + file_handler = logging.FileHandler(f'./app/log/logs/{filename}-log.log') +except: + file_handler = logging.FileHandler(f'{filename}-log.log') + +file_handler.setLevel(level=logging.INFO) +file_handler.setFormatter(formatter) +stream_handler = logging.StreamHandler() +stream_handler.setLevel(logging.DEBUG) +stream_handler.setFormatter(formatter) +logger.addHandler(file_handler) +logger.addHandler(stream_handler) + + +def log(func): + @wraps(func) + def log_(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as e: + logger.error( + f"\n{func.__qualname__} is error,params:{(args, kwargs)},here are details:\n{traceback.format_exc()}") + + return log_ diff --git a/app/person.py b/app/person.py new file mode 100644 index 0000000..56d0e5e --- /dev/null +++ b/app/person.py @@ -0,0 +1,152 @@ +""" +定义各种联系人 +""" +import json +import os.path +import re +from typing import Dict +from PyQt5.QtGui import QPixmap + +from app.config import INFO_FILE_PATH +from app.ui.Icon import Icon + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +class Person: + def __init__(self): + self.avatar_path = None + self.avatar = None + self.avatar_path_qt = Icon.Default_avatar_path + self.detail = {} + + def set_avatar(self, img_bytes): + if not img_bytes: + self.avatar.load(Icon.Default_avatar_path) + return + if img_bytes[:4] == b'\x89PNG': + self.avatar.loadFromData(img_bytes, format='PNG') + else: + self.avatar.loadFromData(img_bytes, format='jfif') + + def save_avatar(self, path=None): + if not self.avatar: + return + if path: + save_path = path + if os.path.exists(save_path): + self.avatar_path = save_path + return save_path + else: + os.makedirs('./data/avatar', exist_ok=True) + save_path = os.path.join(f'data/avatar/', self.wxid + '.png') + self.avatar_path = save_path + if not os.path.exists(save_path): + self.avatar.save(save_path) + print('保存头像', save_path) + + +@singleton +class Me(Person): + def __init__(self): + super().__init__() + self.avatar = QPixmap(Icon.Default_avatar_path) + self.avatar_path = ':/icons/icons/default_avatar.svg' + self.wxid = 'wxid_00112233' + self.wx_dir = '' + self.name = '' + self.mobile = '' + self.smallHeadImgUrl = '' + self.nickName = self.name + self.remark = self.nickName + self.token = '' + + def save_info(self): + if os.path.exists(INFO_FILE_PATH): + with open(INFO_FILE_PATH, 'r', encoding='utf-8') as f: + info_data = json.loads(f.read()) + info_data['name'] = self.name + info_data['mobile'] = self.mobile + with open(INFO_FILE_PATH, 'w', encoding='utf-8') as f: + json.dump(info_data, f, ensure_ascii=False, indent=4) + +class Contact(Person): + def __init__(self, contact_info: Dict): + super().__init__() + self.wxid = contact_info.get('UserName') + self.remark = contact_info.get('Remark') + # Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl + self.alias = contact_info.get('Alias') + self.nickName = contact_info.get('NickName') + if not self.remark: + self.remark = self.nickName + self.remark = re.sub(r'[\\/:*?"<>|\s\.]', '_', self.remark) + self.smallHeadImgUrl = contact_info.get('smallHeadImgUrl') + self.smallHeadImgBLOG = b'' + self.avatar = QPixmap() + self.avatar_path = Icon.Default_avatar_path + self.is_chatroom = self.wxid.__contains__('@chatroom') + self.detail: Dict = contact_info.get('detail') + self.label_name = contact_info.get('label_name') # 联系人的标签分类 + + """ + detail存储了联系人的详细信息,是个字典 + { + 'region': tuple[国家,省份,市], # 地区三元组 + 'signature': str, # 个性签名 + 'telephone': str, # 电话号码,自己写的备注才会显示 + 'gender': int, # 性别 0:未知,1:男,2:女 + } + """ + + +class ContactDefault(Person): + def __init__(self, wxid=""): + super().__init__() + self.avatar = QPixmap(Icon.Default_avatar_path) + self.avatar_path = ':/icons/icons/default_avatar.svg' + self.wxid = wxid + self.remark = wxid + self.alias = wxid + self.nickName = wxid + self.smallHeadImgUrl = "" + self.smallHeadImgBLOG = b'' + self.is_chatroom = False + self.detail = {} + + +class Contacts: + def __init__(self): + self.contacts: Dict[str:Contact] = {} + + def add(self, wxid, contact: Contact): + if wxid not in contact: + self.contacts[wxid] = contact + + def get(self, wxid: str) -> Contact: + return self.contacts.get(wxid) + + def remove(self, wxid: str): + return self.contacts.pop(wxid) + + def save_avatar(self, avatar_dir: str = './data/avatar/'): + for wxid, contact in self.contacts.items(): + avatar_path = os.path.join(avatar_dir, wxid + '.png') + if os.path.exists(avatar_path): + continue + contact.save_avatar(avatar_path) + + +if __name__ == '__main__': + p1 = Me() + p2 = Me() + print(p1 == p2) diff --git a/app/resources/__init__.py b/app/resources/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/resources/icons/404.png b/app/resources/icons/404.png new file mode 100644 index 0000000..d16f272 Binary files /dev/null and b/app/resources/icons/404.png differ diff --git a/app/resources/icons/404.svg b/app/resources/icons/404.svg new file mode 100644 index 0000000..495d5b1 --- /dev/null +++ b/app/resources/icons/404.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/Cursors/0.png b/app/resources/icons/Cursors/0.png new file mode 100644 index 0000000..27923f3 Binary files /dev/null and b/app/resources/icons/Cursors/0.png differ diff --git a/app/resources/icons/Cursors/1.png b/app/resources/icons/Cursors/1.png new file mode 100644 index 0000000..e338b58 Binary files /dev/null and b/app/resources/icons/Cursors/1.png differ diff --git a/app/resources/icons/Cursors/2.png b/app/resources/icons/Cursors/2.png new file mode 100644 index 0000000..59ee695 Binary files /dev/null and b/app/resources/icons/Cursors/2.png differ diff --git a/app/resources/icons/Cursors/3.png b/app/resources/icons/Cursors/3.png new file mode 100644 index 0000000..b86d752 Binary files /dev/null and b/app/resources/icons/Cursors/3.png differ diff --git a/app/resources/icons/Cursors/4.png b/app/resources/icons/Cursors/4.png new file mode 100644 index 0000000..61374db Binary files /dev/null and b/app/resources/icons/Cursors/4.png differ diff --git a/app/resources/icons/Cursors/5.png b/app/resources/icons/Cursors/5.png new file mode 100644 index 0000000..5c2bc10 Binary files /dev/null and b/app/resources/icons/Cursors/5.png differ diff --git a/app/resources/icons/Cursors/6.png b/app/resources/icons/Cursors/6.png new file mode 100644 index 0000000..ab3996a Binary files /dev/null and b/app/resources/icons/Cursors/6.png differ diff --git a/app/resources/icons/Cursors/7.png b/app/resources/icons/Cursors/7.png new file mode 100644 index 0000000..0962be4 Binary files /dev/null and b/app/resources/icons/Cursors/7.png differ diff --git a/app/resources/icons/__init__.py b/app/resources/icons/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/resources/icons/analysis.svg b/app/resources/icons/analysis.svg new file mode 100644 index 0000000..8c301e7 --- /dev/null +++ b/app/resources/icons/analysis.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/resources/icons/annual_report.svg b/app/resources/icons/annual_report.svg new file mode 100644 index 0000000..aeaec95 --- /dev/null +++ b/app/resources/icons/annual_report.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/annual_report0.svg b/app/resources/icons/annual_report0.svg new file mode 100644 index 0000000..ce23a10 --- /dev/null +++ b/app/resources/icons/annual_report0.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/resources/icons/annual_report1.svg b/app/resources/icons/annual_report1.svg new file mode 100644 index 0000000..cfa7a1f --- /dev/null +++ b/app/resources/icons/annual_report1.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/arrow-left.svg b/app/resources/icons/arrow-left.svg new file mode 100644 index 0000000..7d5f037 --- /dev/null +++ b/app/resources/icons/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/arrow-right.svg b/app/resources/icons/arrow-right.svg new file mode 100644 index 0000000..47b6761 --- /dev/null +++ b/app/resources/icons/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/back.svg b/app/resources/icons/back.svg new file mode 100644 index 0000000..ca26fa3 --- /dev/null +++ b/app/resources/icons/back.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/app/resources/icons/chat.svg b/app/resources/icons/chat.svg new file mode 100644 index 0000000..f319b84 --- /dev/null +++ b/app/resources/icons/chat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/chat0.svg b/app/resources/icons/chat0.svg new file mode 100644 index 0000000..7b78755 --- /dev/null +++ b/app/resources/icons/chat0.svg @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/clear.svg b/app/resources/icons/clear.svg new file mode 100644 index 0000000..74eb441 --- /dev/null +++ b/app/resources/icons/clear.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/contact.svg b/app/resources/icons/contact.svg new file mode 100644 index 0000000..5d24ba6 --- /dev/null +++ b/app/resources/icons/contact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/csv.svg b/app/resources/icons/csv.svg new file mode 100644 index 0000000..be156fe --- /dev/null +++ b/app/resources/icons/csv.svg @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/resources/icons/decrypt.svg b/app/resources/icons/decrypt.svg new file mode 100644 index 0000000..2b85321 --- /dev/null +++ b/app/resources/icons/decrypt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/default_avatar.svg b/app/resources/icons/default_avatar.svg new file mode 100644 index 0000000..5442c4e --- /dev/null +++ b/app/resources/icons/default_avatar.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/down.svg b/app/resources/icons/down.svg new file mode 100644 index 0000000..7c8b4a4 --- /dev/null +++ b/app/resources/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/emotion.svg b/app/resources/icons/emotion.svg new file mode 100644 index 0000000..69cd504 --- /dev/null +++ b/app/resources/icons/emotion.svg @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/resources/icons/folder.svg b/app/resources/icons/folder.svg new file mode 100644 index 0000000..8a5de43 --- /dev/null +++ b/app/resources/icons/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/get_wx_info.svg b/app/resources/icons/get_wx_info.svg new file mode 100644 index 0000000..fb2ad86 --- /dev/null +++ b/app/resources/icons/get_wx_info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/help.svg b/app/resources/icons/help.svg new file mode 100644 index 0000000..f25aa98 --- /dev/null +++ b/app/resources/icons/help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/home.svg b/app/resources/icons/home.svg new file mode 100644 index 0000000..0f1c8de --- /dev/null +++ b/app/resources/icons/home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/home0.svg b/app/resources/icons/home0.svg new file mode 100644 index 0000000..8fc8a77 --- /dev/null +++ b/app/resources/icons/home0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/html.svg b/app/resources/icons/html.svg new file mode 100644 index 0000000..c03b322 --- /dev/null +++ b/app/resources/icons/html.svg @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/loading.svg b/app/resources/icons/loading.svg new file mode 100644 index 0000000..4434114 --- /dev/null +++ b/app/resources/icons/loading.svg @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/resources/icons/logo.png b/app/resources/icons/logo.png new file mode 100644 index 0000000..03d3e52 Binary files /dev/null and b/app/resources/icons/logo.png differ diff --git a/app/resources/icons/logo.svg b/app/resources/icons/logo.svg new file mode 100644 index 0000000..5b75a88 --- /dev/null +++ b/app/resources/icons/logo.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/logo3.0.ico b/app/resources/icons/logo3.0.ico new file mode 100644 index 0000000..3b2ecae Binary files /dev/null and b/app/resources/icons/logo3.0.ico differ diff --git a/app/resources/icons/logo99.png b/app/resources/icons/logo99.png new file mode 100644 index 0000000..a57fa48 Binary files /dev/null and b/app/resources/icons/logo99.png differ diff --git a/app/resources/icons/man.svg b/app/resources/icons/man.svg new file mode 100644 index 0000000..2fd05d0 --- /dev/null +++ b/app/resources/icons/man.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/myinfo.svg b/app/resources/icons/myinfo.svg new file mode 100644 index 0000000..a53c9cf --- /dev/null +++ b/app/resources/icons/myinfo.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/resources/icons/output.svg b/app/resources/icons/output.svg new file mode 100644 index 0000000..4c5a507 --- /dev/null +++ b/app/resources/icons/output.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/output0.svg b/app/resources/icons/output0.svg new file mode 100644 index 0000000..d08c4e8 --- /dev/null +++ b/app/resources/icons/output0.svg @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/resources/icons/resources.qrc b/app/resources/icons/resources.qrc new file mode 100644 index 0000000..e9f1bcc --- /dev/null +++ b/app/resources/icons/resources.qrc @@ -0,0 +1,5 @@ + + + logo.svg + + diff --git a/app/resources/icons/resources_rc.py b/app/resources/icons/resources_rc.py new file mode 100644 index 0000000..86f78aa --- /dev/null +++ b/app/resources/icons/resources_rc.py @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x09\x14\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x38\x35\x39\x32\ +\x30\x39\x35\x34\x39\x36\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x35\x32\x34\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x32\x31\x37\x2e\x39\x20\x33\x35\x36\ +\x2e\x35\x63\x2d\x31\x34\x2e\x31\x20\x30\x2d\x32\x35\x2e\x35\x20\ +\x31\x31\x2e\x34\x2d\x32\x35\x2e\x35\x20\x32\x35\x2e\x35\x73\x31\ +\x31\x2e\x34\x20\x32\x35\x2e\x35\x20\x32\x35\x2e\x35\x20\x32\x35\ +\x2e\x35\x20\x32\x35\x2e\x35\x2d\x31\x31\x2e\x34\x20\x32\x35\x2e\ +\x35\x2d\x32\x35\x2e\x35\x2d\x31\x31\x2e\x34\x2d\x32\x35\x2e\x35\ +\x2d\x32\x35\x2e\x35\x2d\x32\x35\x2e\x35\x7a\x4d\x32\x31\x37\x2e\ +\x34\x20\x34\x33\x33\x2e\x37\x63\x2d\x31\x31\x2e\x32\x20\x30\x2d\ +\x32\x30\x2e\x34\x20\x39\x2e\x32\x2d\x32\x30\x2e\x34\x20\x32\x30\ +\x2e\x34\x76\x31\x37\x34\x2e\x34\x63\x30\x20\x31\x31\x2e\x32\x20\ +\x39\x2e\x32\x20\x32\x30\x2e\x34\x20\x32\x30\x2e\x34\x20\x32\x30\ +\x2e\x34\x73\x32\x30\x2e\x34\x2d\x39\x2e\x32\x20\x32\x30\x2e\x34\ +\x2d\x32\x30\x2e\x34\x56\x34\x35\x34\x2e\x31\x63\x30\x2d\x31\x31\ +\x2e\x32\x2d\x39\x2e\x32\x2d\x32\x30\x2e\x34\x2d\x32\x30\x2e\x34\ +\x2d\x32\x30\x2e\x34\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x36\x42\x34\x30\x30\x44\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x32\x34\x34\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x38\x37\x38\x2e\x37\x20\x33\x37\x39\x2e\x35\ +\x76\x2d\x38\x36\x63\x30\x2d\x39\x36\x2e\x33\x2d\x35\x37\x2e\x35\ +\x2d\x31\x35\x33\x2e\x37\x2d\x31\x35\x33\x2e\x37\x2d\x31\x35\x33\ +\x2e\x37\x48\x32\x31\x38\x63\x2d\x39\x36\x2e\x33\x20\x30\x2d\x31\ +\x35\x33\x2e\x37\x20\x35\x37\x2e\x35\x2d\x31\x35\x33\x2e\x37\x20\ +\x31\x35\x33\x2e\x37\x76\x33\x32\x30\x2e\x37\x43\x36\x34\x2e\x33\ +\x20\x37\x31\x30\x2e\x35\x20\x31\x32\x31\x2e\x38\x20\x37\x36\x38\ +\x20\x32\x31\x38\x20\x37\x36\x38\x68\x34\x35\x2e\x38\x76\x31\x32\ +\x30\x2e\x34\x4c\x34\x34\x39\x2e\x39\x20\x37\x36\x38\x68\x31\x31\ +\x2e\x32\x63\x31\x37\x2e\x32\x20\x31\x31\x2e\x33\x20\x33\x39\x20\ +\x31\x37\x2e\x35\x20\x36\x34\x2e\x36\x20\x31\x37\x2e\x35\x68\x31\ +\x36\x31\x2e\x36\x6c\x31\x33\x30\x2e\x37\x20\x38\x35\x76\x2d\x38\ +\x35\x2e\x31\x68\x33\x33\x2e\x35\x63\x36\x36\x2e\x36\x20\x30\x20\ +\x31\x30\x37\x2e\x39\x2d\x34\x31\x2e\x33\x20\x31\x30\x37\x2e\x39\ +\x2d\x31\x30\x37\x2e\x39\x56\x34\x38\x34\x2e\x38\x63\x2d\x30\x2e\ +\x31\x2d\x35\x36\x2e\x39\x2d\x33\x30\x2e\x33\x2d\x39\x35\x2e\x33\ +\x2d\x38\x30\x2e\x37\x2d\x31\x30\x35\x2e\x33\x7a\x4d\x34\x31\x37\ +\x2e\x38\x20\x34\x38\x34\x2e\x38\x76\x31\x39\x32\x2e\x38\x63\x30\ +\x20\x31\x36\x2e\x32\x20\x32\x2e\x35\x20\x33\x31\x20\x37\x2e\x32\ +\x20\x34\x34\x6c\x2d\x31\x30\x36\x2e\x31\x20\x37\x30\x2e\x31\x76\ +\x2d\x37\x34\x2e\x39\x68\x2d\x31\x30\x31\x63\x2d\x36\x37\x2e\x37\ +\x2d\x30\x2e\x33\x2d\x31\x30\x32\x2e\x32\x2d\x33\x34\x2e\x38\x2d\ +\x31\x30\x32\x2e\x35\x2d\x31\x30\x32\x2e\x35\x56\x32\x39\x33\x2e\ +\x35\x63\x30\x2e\x33\x2d\x36\x37\x2e\x37\x20\x33\x34\x2e\x38\x2d\ +\x31\x30\x32\x2e\x32\x20\x31\x30\x32\x2e\x35\x2d\x31\x30\x32\x2e\ +\x35\x48\x37\x32\x35\x63\x36\x37\x2e\x37\x20\x30\x2e\x33\x20\x31\ +\x30\x32\x2e\x32\x20\x33\x34\x2e\x38\x20\x31\x30\x32\x2e\x35\x20\ +\x31\x30\x32\x2e\x35\x76\x38\x33\x2e\x33\x48\x35\x32\x35\x2e\x37\ +\x63\x2d\x36\x36\x2e\x35\x20\x30\x2e\x31\x2d\x31\x30\x37\x2e\x39\ +\x20\x34\x31\x2e\x34\x2d\x31\x30\x37\x2e\x39\x20\x31\x30\x38\x7a\ +\x20\x6d\x34\x39\x30\x2e\x34\x20\x31\x39\x32\x2e\x37\x63\x2d\x30\ +\x2e\x32\x20\x33\x38\x2e\x36\x2d\x31\x38\x2e\x32\x20\x35\x36\x2e\ +\x36\x2d\x35\x36\x2e\x37\x20\x35\x36\x2e\x37\x68\x2d\x38\x37\x2e\ +\x32\x76\x34\x30\x2e\x33\x6c\x2d\x36\x31\x2d\x34\x30\x2e\x33\x48\ +\x35\x32\x35\x2e\x37\x63\x2d\x33\x38\x2e\x35\x2d\x30\x2e\x32\x2d\ +\x35\x36\x2e\x36\x2d\x31\x38\x2e\x32\x2d\x35\x36\x2e\x37\x2d\x35\ +\x36\x2e\x37\x56\x34\x38\x34\x2e\x38\x63\x30\x2e\x32\x2d\x33\x38\ +\x2e\x36\x20\x31\x38\x2e\x32\x2d\x35\x36\x2e\x36\x20\x35\x36\x2e\ +\x37\x2d\x35\x36\x2e\x37\x68\x33\x32\x35\x2e\x37\x63\x33\x38\x2e\ +\x35\x20\x30\x2e\x32\x20\x35\x36\x2e\x36\x20\x31\x38\x2e\x32\x20\ +\x35\x36\x2e\x37\x20\x35\x36\x2e\x37\x76\x31\x39\x32\x2e\x37\x7a\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x36\x42\x34\x30\x30\x44\x22\x20\x70\x2d\x69\x64\ +\x3d\x22\x35\x32\x34\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\ +\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\ +\x35\x31\x2e\x34\x20\x34\x32\x38\x2e\x31\x48\x35\x32\x35\x2e\x37\ +\x63\x2d\x33\x38\x2e\x35\x20\x30\x2e\x32\x2d\x35\x36\x2e\x36\x20\ +\x31\x38\x2e\x32\x2d\x35\x36\x2e\x37\x20\x35\x36\x2e\x37\x76\x31\ +\x39\x32\x2e\x38\x63\x30\x2e\x32\x20\x33\x38\x2e\x35\x20\x31\x38\ +\x2e\x32\x20\x35\x36\x2e\x36\x20\x35\x36\x2e\x37\x20\x35\x36\x2e\ +\x37\x68\x31\x37\x37\x2e\x35\x6c\x36\x31\x20\x34\x30\x2e\x33\x76\ +\x2d\x34\x30\x2e\x33\x68\x38\x37\x2e\x32\x63\x33\x38\x2e\x35\x2d\ +\x30\x2e\x32\x20\x35\x36\x2e\x36\x2d\x31\x38\x2e\x32\x20\x35\x36\ +\x2e\x37\x2d\x35\x36\x2e\x37\x56\x34\x38\x34\x2e\x38\x63\x2d\x30\ +\x2e\x31\x2d\x33\x38\x2e\x36\x2d\x31\x38\x2e\x31\x2d\x35\x36\x2e\ +\x36\x2d\x35\x36\x2e\x37\x2d\x35\x36\x2e\x37\x7a\x4d\x35\x36\x37\ +\x20\x36\x32\x37\x2e\x34\x63\x2d\x32\x31\x2e\x31\x20\x30\x2d\x33\ +\x38\x2e\x33\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\ +\x2e\x33\x20\x30\x2d\x32\x31\x2e\x31\x20\x31\x37\x2e\x32\x2d\x33\ +\x38\x2e\x33\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x32\x31\ +\x2e\x31\x20\x30\x20\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\x20\x33\ +\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\x31\x2d\ +\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x33\ +\x38\x2e\x33\x7a\x20\x6d\x31\x32\x32\x2e\x32\x20\x30\x63\x2d\x32\ +\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\x33\x2d\x31\x37\x2e\x32\x2d\ +\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x30\x2d\x32\x31\x2e\x31\ +\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x2d\ +\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\x20\x30\x20\x33\x38\x2e\x33\ +\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\ +\x30\x20\x32\x31\x2e\x31\x2d\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\ +\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x7a\x20\x6d\x31\x32\x32\ +\x2e\x33\x20\x30\x63\x2d\x32\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\ +\x33\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\ +\x20\x30\x2d\x32\x31\x2e\x31\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\ +\x20\x30\x20\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\x31\x2d\x31\x37\ +\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\ +\x33\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x46\x46\x44\x35\x32\x34\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x35\x32\x34\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x35\x36\x37\x20\x35\x35\x30\x2e\x38\x63\x2d\x32\x31\x2e\x31\ +\x20\x30\x2d\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\x31\x20\x31\x37\ +\x2e\x32\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\ +\x33\x20\x32\x31\x2e\x31\x20\x30\x20\x33\x38\x2e\x33\x2d\x31\x37\ +\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x30\x2d\x32\ +\x31\x2e\x31\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\ +\x2e\x33\x2d\x33\x38\x2e\x33\x7a\x4d\x36\x38\x39\x2e\x32\x20\x35\ +\x35\x30\x2e\x38\x63\x2d\x32\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\ +\x33\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\ +\x20\x30\x20\x32\x31\x2e\x31\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\ +\x20\x30\x20\x33\x38\x2e\x33\x2d\x31\x37\x2e\x32\x20\x33\x38\x2e\ +\x33\x2d\x33\x38\x2e\x33\x20\x30\x2d\x32\x31\x2e\x31\x2d\x31\x37\ +\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\ +\x33\x7a\x4d\x38\x31\x31\x2e\x35\x20\x35\x35\x30\x2e\x38\x63\x2d\ +\x32\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\ +\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\ +\x31\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\ +\x20\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\x20\x30\x20\x33\x38\x2e\ +\x33\x2d\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\ +\x20\x30\x2d\x32\x31\x2e\x31\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\ +\x33\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x7a\x22\x0d\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x36\x42\x34\x30\x30\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x32\ +\x34\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\ +" + +qt_resource_name = b"\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ +\x00\x08\ +\x05\xe2\x54\xa7\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x73\x00\x76\x00\x67\ +" + +qt_resource_struct_v1 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +" + +qt_resource_struct_v2 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x8c\x16\x33\xc3\xa6\ +" + +qt_version = [int(v) for v in QtCore.qVersion().split('.')] +if qt_version < [5, 8, 0]: + rcc_version = 1 + qt_resource_struct = qt_resource_struct_v1 +else: + rcc_version = 2 + qt_resource_struct = qt_resource_struct_v2 + +def qInitResources(): + QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/app/resources/icons/search.svg b/app/resources/icons/search.svg new file mode 100644 index 0000000..4fde569 --- /dev/null +++ b/app/resources/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/select.svg b/app/resources/icons/select.svg new file mode 100644 index 0000000..6315947 --- /dev/null +++ b/app/resources/icons/select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/start.svg b/app/resources/icons/start.svg new file mode 100644 index 0000000..1cbad4e --- /dev/null +++ b/app/resources/icons/start.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/tool.svg b/app/resources/icons/tool.svg new file mode 100644 index 0000000..df7f6b0 --- /dev/null +++ b/app/resources/icons/tool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/tool0.svg b/app/resources/icons/tool0.svg new file mode 100644 index 0000000..77e8abd --- /dev/null +++ b/app/resources/icons/tool0.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/txt.svg b/app/resources/icons/txt.svg new file mode 100644 index 0000000..512a8a3 --- /dev/null +++ b/app/resources/icons/txt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/unselect.svg b/app/resources/icons/unselect.svg new file mode 100644 index 0000000..6bbbf96 --- /dev/null +++ b/app/resources/icons/unselect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/up.svg b/app/resources/icons/up.svg new file mode 100644 index 0000000..f3b5d91 --- /dev/null +++ b/app/resources/icons/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/update.svg b/app/resources/icons/update.svg new file mode 100644 index 0000000..6eb22e7 --- /dev/null +++ b/app/resources/icons/update.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/weixin.png b/app/resources/icons/weixin.png new file mode 100644 index 0000000..567df75 Binary files /dev/null and b/app/resources/icons/weixin.png differ diff --git a/app/resources/icons/woman.svg b/app/resources/icons/woman.svg new file mode 100644 index 0000000..ce04025 --- /dev/null +++ b/app/resources/icons/woman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/word.svg b/app/resources/icons/word.svg new file mode 100644 index 0000000..2f63a43 --- /dev/null +++ b/app/resources/icons/word.svg @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/关闭.svg b/app/resources/icons/关闭.svg new file mode 100644 index 0000000..16e96e1 --- /dev/null +++ b/app/resources/icons/关闭.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/关闭状态.svg b/app/resources/icons/关闭状态.svg new file mode 100644 index 0000000..179d8be --- /dev/null +++ b/app/resources/icons/关闭状态.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/icons/按钮_关闭.svg b/app/resources/icons/按钮_关闭.svg new file mode 100644 index 0000000..fe1ed27 --- /dev/null +++ b/app/resources/icons/按钮_关闭.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/resources/icons/按钮_开启.svg b/app/resources/icons/按钮_开启.svg new file mode 100644 index 0000000..131c57a --- /dev/null +++ b/app/resources/icons/按钮_开启.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/resources/resource_rc.py b/app/resources/resource_rc.py new file mode 100644 index 0000000..90c24ff --- /dev/null +++ b/app/resources/resource_rc.py @@ -0,0 +1,18359 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x13\x4e\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x36\x33\x36\x38\x34\x34\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x37\x37\x22\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x33\x32\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\ +\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x30\x38\x2e\ +\x35\x33\x34\x31\x35\x34\x20\x33\x34\x32\x2e\x36\x34\x36\x31\x35\ +\x34\x6d\x2d\x33\x30\x36\x2e\x37\x32\x37\x33\x38\x35\x20\x30\x61\ +\x33\x30\x36\x2e\x37\x32\x37\x33\x38\x35\x20\x33\x30\x36\x2e\x37\ +\x32\x37\x33\x38\x35\x20\x30\x20\x31\x20\x30\x20\x36\x31\x33\x2e\ +\x34\x35\x34\x37\x36\x39\x20\x30\x20\x33\x30\x36\x2e\x37\x32\x37\ +\x33\x38\x35\x20\x33\x30\x36\x2e\x37\x32\x37\x33\x38\x35\x20\x30\ +\x20\x31\x20\x30\x2d\x36\x31\x33\x2e\x34\x35\x34\x37\x36\x39\x20\ +\x30\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x44\x43\x36\ +\x34\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x37\x38\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x35\x30\x38\x2e\x35\x33\x34\x31\x35\x34\x20\x36\x36\x37\x2e\ +\x34\x39\x30\x34\x36\x32\x61\x33\x32\x35\x2e\x30\x30\x31\x38\x34\ +\x36\x20\x33\x32\x35\x2e\x30\x30\x31\x38\x34\x36\x20\x30\x20\x31\ +\x20\x31\x20\x33\x32\x35\x2e\x30\x30\x31\x38\x34\x36\x2d\x33\x32\ +\x34\x2e\x38\x34\x34\x33\x30\x38\x20\x33\x32\x35\x2e\x33\x31\x36\ +\x39\x32\x33\x20\x33\x32\x35\x2e\x33\x31\x36\x39\x32\x33\x20\x30\ +\x20\x30\x20\x31\x2d\x33\x32\x35\x2e\x30\x30\x31\x38\x34\x36\x20\ +\x33\x32\x34\x2e\x38\x34\x34\x33\x30\x38\x7a\x20\x6d\x30\x2d\x36\ +\x31\x33\x2e\x34\x35\x34\x37\x37\x41\x32\x38\x38\x2e\x36\x31\x30\ +\x34\x36\x32\x20\x32\x38\x38\x2e\x36\x31\x30\x34\x36\x32\x20\x30\ +\x20\x31\x20\x30\x20\x37\x39\x37\x2e\x31\x34\x34\x36\x31\x35\x20\ +\x33\x34\x32\x2e\x36\x34\x36\x31\x35\x34\x20\x32\x38\x38\x2e\x39\ +\x32\x35\x35\x33\x38\x20\x32\x38\x38\x2e\x39\x32\x35\x35\x33\x38\ +\x20\x30\x20\x30\x20\x30\x20\x35\x30\x38\x2e\x35\x33\x34\x31\x35\ +\x34\x20\x35\x34\x2e\x30\x33\x35\x36\x39\x32\x7a\x22\x20\x66\x69\ +\x6c\x6c\x3d\x22\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x37\ +\x39\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x35\x30\x38\x2e\x35\x33\x34\x31\x35\x34\x20\x34\ +\x37\x39\x2e\x35\x34\x37\x30\x37\x37\x6d\x2d\x32\x34\x2e\x32\x36\ +\x30\x39\x32\x33\x20\x30\x61\x32\x34\x2e\x32\x36\x30\x39\x32\x33\ +\x20\x32\x34\x2e\x32\x36\x30\x39\x32\x33\x20\x30\x20\x31\x20\x30\ +\x20\x34\x38\x2e\x35\x32\x31\x38\x34\x36\x20\x30\x20\x32\x34\x2e\ +\x32\x36\x30\x39\x32\x33\x20\x32\x34\x2e\x32\x36\x30\x39\x32\x33\ +\x20\x30\x20\x31\x20\x30\x2d\x34\x38\x2e\x35\x32\x31\x38\x34\x36\ +\x20\x30\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x22\x20\x70\x2d\x69\ +\x64\x3d\x22\x32\x32\x39\x38\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x30\x38\x2e\x35\ +\x33\x34\x31\x35\x34\x20\x33\x34\x32\x2e\x36\x34\x36\x31\x35\x34\ +\x6d\x2d\x32\x32\x33\x2e\x35\x34\x37\x30\x37\x37\x20\x30\x61\x32\ +\x32\x33\x2e\x35\x34\x37\x30\x37\x37\x20\x32\x32\x33\x2e\x35\x34\ +\x37\x30\x37\x37\x20\x30\x20\x31\x20\x30\x20\x34\x34\x37\x2e\x30\ +\x39\x34\x31\x35\x34\x20\x30\x20\x32\x32\x33\x2e\x35\x34\x37\x30\ +\x37\x37\x20\x32\x32\x33\x2e\x35\x34\x37\x30\x37\x37\x20\x30\x20\ +\x31\x20\x30\x2d\x34\x34\x37\x2e\x30\x39\x34\x31\x35\x34\x20\x30\ +\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x44\x44\x44\x44\x44\x44\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x38\x31\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x35\x30\x38\x2e\x35\x33\x34\x31\x35\x34\x20\x35\x38\x34\x2e\x33\ +\x31\x30\x31\x35\x34\x61\x32\x34\x31\x2e\x36\x36\x34\x20\x32\x34\ +\x31\x2e\x36\x36\x34\x20\x30\x20\x31\x20\x31\x20\x32\x34\x31\x2e\ +\x38\x32\x31\x35\x33\x38\x2d\x32\x34\x31\x2e\x36\x36\x34\x20\x32\ +\x34\x31\x2e\x39\x37\x39\x30\x37\x37\x20\x32\x34\x31\x2e\x39\x37\ +\x39\x30\x37\x37\x20\x30\x20\x30\x20\x31\x2d\x32\x34\x31\x2e\x38\ +\x32\x31\x35\x33\x38\x20\x32\x34\x31\x2e\x36\x36\x34\x7a\x20\x6d\ +\x30\x2d\x34\x34\x37\x2e\x30\x39\x34\x31\x35\x34\x61\x32\x30\x34\ +\x2e\x38\x20\x32\x30\x34\x2e\x38\x20\x30\x20\x31\x20\x30\x20\x32\ +\x30\x34\x2e\x38\x20\x32\x30\x34\x2e\x38\x20\x32\x30\x34\x2e\x38\ +\x20\x32\x30\x34\x2e\x38\x20\x30\x20\x30\x20\x30\x2d\x32\x30\x34\ +\x2e\x38\x2d\x32\x30\x34\x2e\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x38\x32\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x34\x38\x30\x2e\x39\x36\x34\x39\x32\x33\x20\x33\x30\x31\x2e\ +\x30\x35\x36\x68\x34\x36\x2e\x37\x38\x38\x39\x32\x33\x76\x31\x39\ +\x32\x2e\x33\x35\x34\x34\x36\x32\x68\x2d\x34\x36\x2e\x37\x38\x38\ +\x39\x32\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x32\x32\x39\x38\x33\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x32\x37\x2e\ +\x37\x35\x33\x38\x34\x36\x20\x34\x39\x38\x2e\x36\x30\x39\x32\x33\ +\x31\x68\x2d\x34\x37\x2e\x32\x36\x31\x35\x33\x38\x61\x35\x2e\x31\ +\x39\x38\x37\x36\x39\x20\x35\x2e\x31\x39\x38\x37\x36\x39\x20\x30\ +\x20\x30\x20\x31\x2d\x35\x2e\x31\x39\x38\x37\x37\x2d\x35\x2e\x31\ +\x39\x38\x37\x36\x39\x56\x33\x30\x31\x2e\x30\x35\x36\x61\x35\x2e\ +\x31\x39\x38\x37\x36\x39\x20\x35\x2e\x31\x39\x38\x37\x36\x39\x20\ +\x30\x20\x30\x20\x31\x20\x35\x2e\x31\x39\x38\x37\x37\x2d\x35\x2e\ +\x31\x39\x38\x37\x36\x39\x68\x34\x37\x2e\x32\x36\x31\x35\x33\x38\ +\x61\x35\x2e\x31\x39\x38\x37\x36\x39\x20\x35\x2e\x31\x39\x38\x37\ +\x36\x39\x20\x30\x20\x30\x20\x31\x20\x35\x2e\x31\x39\x38\x37\x36\ +\x39\x20\x35\x2e\x31\x39\x38\x37\x36\x39\x76\x31\x39\x32\x2e\x33\ +\x35\x34\x34\x36\x32\x61\x35\x2e\x31\x39\x38\x37\x36\x39\x20\x35\ +\x2e\x31\x39\x38\x37\x36\x39\x20\x30\x20\x30\x20\x31\x2d\x35\x2e\ +\x31\x39\x38\x37\x36\x39\x20\x35\x2e\x31\x39\x38\x37\x36\x39\x7a\ +\x4d\x34\x38\x36\x2e\x31\x36\x33\x36\x39\x32\x20\x34\x38\x38\x2e\ +\x33\x36\x39\x32\x33\x31\x68\x33\x36\x2e\x33\x39\x31\x33\x38\x35\ +\x56\x33\x30\x36\x2e\x32\x35\x34\x37\x36\x39\x68\x2d\x33\x36\x2e\ +\x33\x39\x31\x33\x38\x35\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x38\x34\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\ +\x30\x34\x2e\x34\x33\x38\x31\x35\x34\x20\x32\x32\x32\x2e\x39\x31\ +\x36\x39\x32\x33\x6d\x2d\x34\x38\x2e\x36\x37\x39\x33\x38\x35\x20\ +\x30\x61\x34\x38\x2e\x36\x37\x39\x33\x38\x35\x20\x34\x38\x2e\x36\ +\x37\x39\x33\x38\x35\x20\x30\x20\x31\x20\x30\x20\x39\x37\x2e\x33\ +\x35\x38\x37\x36\x39\x20\x30\x20\x34\x38\x2e\x36\x37\x39\x33\x38\ +\x35\x20\x34\x38\x2e\x36\x37\x39\x33\x38\x35\x20\x30\x20\x31\x20\ +\x30\x2d\x39\x37\x2e\x33\x35\x38\x37\x36\x39\x20\x30\x5a\x22\x20\ +\x66\x69\x6c\x6c\x3d\x22\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\ +\x39\x38\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x38\x39\x39\x2e\x35\x34\x34\x36\x31\x35\ +\x20\x33\x39\x38\x2e\x37\x32\x39\x38\x34\x36\x61\x34\x38\x2e\x38\ +\x33\x36\x39\x32\x33\x20\x34\x38\x2e\x38\x33\x36\x39\x32\x33\x20\ +\x30\x20\x30\x20\x30\x2d\x34\x38\x2e\x38\x33\x36\x39\x32\x33\x20\ +\x34\x38\x2e\x38\x33\x36\x39\x32\x33\x76\x31\x32\x39\x2e\x30\x32\ +\x34\x61\x34\x38\x2e\x38\x33\x36\x39\x32\x33\x20\x34\x38\x2e\x38\ +\x33\x36\x39\x32\x33\x20\x30\x20\x30\x20\x30\x2d\x38\x31\x2e\x37\ +\x36\x32\x34\x36\x31\x2d\x32\x32\x2e\x35\x32\x38\x4c\x35\x39\x37\ +\x2e\x37\x30\x30\x39\x32\x33\x20\x37\x32\x34\x2e\x36\x37\x36\x39\ +\x32\x33\x61\x31\x34\x35\x2e\x37\x32\x33\x30\x37\x37\x20\x31\x34\ +\x35\x2e\x37\x32\x33\x30\x37\x37\x20\x30\x20\x30\x20\x30\x2d\x34\ +\x33\x2e\x30\x30\x38\x20\x31\x30\x33\x2e\x36\x36\x30\x33\x30\x38\ +\x76\x31\x36\x30\x2e\x32\x31\x36\x36\x31\x35\x68\x32\x31\x32\x2e\ +\x36\x37\x36\x39\x32\x33\x6c\x31\x35\x30\x2e\x36\x30\x36\x37\x36\ +\x39\x2d\x32\x37\x36\x2e\x37\x39\x35\x30\x37\x37\x61\x32\x35\x30\ +\x2e\x31\x37\x31\x30\x37\x37\x20\x32\x35\x30\x2e\x31\x37\x31\x30\ +\x37\x37\x20\x30\x20\x30\x20\x30\x20\x33\x30\x2e\x32\x34\x37\x33\ +\x38\x35\x2d\x31\x31\x39\x2e\x30\x39\x39\x30\x37\x37\x76\x2d\x31\ +\x34\x35\x2e\x30\x39\x32\x39\x32\x33\x61\x34\x38\x2e\x38\x33\x36\ +\x39\x32\x33\x20\x34\x38\x2e\x38\x33\x36\x39\x32\x33\x20\x30\x20\ +\x30\x20\x30\x2d\x34\x38\x2e\x36\x37\x39\x33\x38\x35\x2d\x34\x38\ +\x2e\x38\x33\x36\x39\x32\x33\x7a\x4d\x34\x32\x36\x2e\x32\x39\x39\ +\x30\x37\x37\x20\x37\x32\x34\x2e\x36\x37\x36\x39\x32\x33\x4c\x32\ +\x35\x35\x2e\x30\x35\x34\x37\x36\x39\x20\x35\x35\x34\x2e\x32\x32\ +\x30\x33\x30\x38\x41\x34\x38\x2e\x38\x33\x36\x39\x32\x33\x20\x34\ +\x38\x2e\x38\x33\x36\x39\x32\x33\x20\x30\x20\x30\x20\x30\x20\x31\ +\x37\x33\x2e\x32\x39\x32\x33\x30\x38\x20\x35\x37\x36\x2e\x35\x39\ +\x30\x37\x36\x39\x76\x2d\x31\x32\x39\x2e\x30\x32\x34\x61\x34\x38\ +\x2e\x38\x33\x36\x39\x32\x33\x20\x34\x38\x2e\x38\x33\x36\x39\x32\ +\x33\x20\x30\x20\x31\x20\x30\x2d\x39\x37\x2e\x36\x37\x33\x38\x34\ +\x36\x20\x30\x76\x31\x34\x35\x2e\x30\x39\x32\x39\x32\x33\x61\x32\ +\x35\x30\x2e\x30\x31\x33\x35\x33\x38\x20\x32\x35\x30\x2e\x30\x31\ +\x33\x35\x33\x38\x20\x30\x20\x30\x20\x30\x20\x33\x30\x2e\x32\x34\ +\x37\x33\x38\x34\x20\x31\x31\x39\x2e\x30\x39\x39\x30\x37\x37\x6c\ +\x31\x35\x30\x2e\x36\x30\x36\x37\x36\x39\x20\x32\x37\x36\x2e\x37\ +\x39\x35\x30\x37\x37\x68\x32\x31\x32\x2e\x36\x37\x36\x39\x32\x33\ +\x56\x38\x32\x39\x2e\x31\x32\x34\x39\x32\x33\x41\x31\x34\x35\x2e\ +\x37\x32\x33\x30\x37\x37\x20\x31\x34\x35\x2e\x37\x32\x33\x30\x37\ +\x37\x20\x30\x20\x30\x20\x30\x20\x34\x32\x36\x2e\x32\x39\x39\x30\ +\x37\x37\x20\x37\x32\x34\x2e\x36\x37\x36\x39\x32\x33\x7a\x22\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x44\x32\x39\x46\x22\x20\x70\ +\x2d\x69\x64\x3d\x22\x32\x32\x39\x38\x36\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x39\x39\ +\x2e\x35\x34\x34\x36\x31\x35\x20\x33\x38\x31\x2e\x30\x38\x35\x35\ +\x33\x38\x61\x36\x36\x2e\x36\x33\x38\x37\x36\x39\x20\x36\x36\x2e\ +\x36\x33\x38\x37\x36\x39\x20\x30\x20\x30\x20\x30\x2d\x36\x36\x2e\ +\x34\x38\x31\x32\x33\x20\x36\x36\x2e\x34\x38\x31\x32\x33\x31\x76\ +\x38\x31\x2e\x34\x34\x37\x33\x38\x35\x61\x36\x36\x2e\x34\x38\x31\ +\x32\x33\x31\x20\x36\x36\x2e\x34\x38\x31\x32\x33\x31\x20\x30\x20\ +\x30\x20\x30\x2d\x37\x36\x2e\x35\x36\x33\x36\x39\x33\x20\x31\x32\ +\x2e\x36\x30\x33\x30\x37\x37\x4c\x35\x38\x35\x2e\x32\x35\x35\x33\ +\x38\x35\x20\x37\x31\x32\x2e\x38\x36\x31\x35\x33\x38\x61\x31\x36\ +\x33\x2e\x33\x36\x37\x33\x38\x35\x20\x31\x36\x33\x2e\x33\x36\x37\ +\x33\x38\x35\x20\x30\x20\x30\x20\x30\x2d\x34\x38\x2e\x32\x30\x36\ +\x37\x37\x20\x31\x31\x36\x2e\x32\x36\x33\x33\x38\x35\x76\x31\x35\ +\x39\x2e\x34\x32\x38\x39\x32\x33\x61\x31\x37\x2e\x38\x30\x31\x38\ +\x34\x36\x20\x31\x37\x2e\x38\x30\x31\x38\x34\x36\x20\x30\x20\x30\ +\x20\x30\x20\x31\x37\x2e\x38\x30\x31\x38\x34\x37\x20\x31\x37\x2e\ +\x38\x30\x31\x38\x34\x36\x68\x36\x30\x2e\x34\x39\x34\x37\x36\x39\ +\x61\x31\x37\x2e\x38\x30\x31\x38\x34\x36\x20\x31\x37\x2e\x38\x30\ +\x31\x38\x34\x36\x20\x30\x20\x31\x20\x30\x20\x30\x2d\x33\x35\x2e\ +\x34\x34\x36\x31\x35\x34\x68\x2d\x34\x32\x2e\x38\x35\x30\x34\x36\ +\x32\x76\x2d\x31\x34\x31\x2e\x37\x38\x34\x36\x31\x35\x61\x31\x32\ +\x38\x2e\x30\x37\x38\x37\x36\x39\x20\x31\x32\x38\x2e\x30\x37\x38\ +\x37\x36\x39\x20\x30\x20\x30\x20\x31\x20\x33\x37\x2e\x38\x30\x39\ +\x32\x33\x31\x2d\x39\x31\x2e\x32\x31\x34\x37\x36\x39\x4c\x37\x38\ +\x31\x2e\x33\x39\x30\x37\x36\x39\x20\x35\x36\x37\x2e\x31\x33\x38\ +\x34\x36\x32\x61\x33\x31\x2e\x35\x30\x37\x36\x39\x32\x20\x33\x31\ +\x2e\x35\x30\x37\x36\x39\x32\x20\x30\x20\x30\x20\x31\x20\x34\x33\ +\x2e\x39\x35\x33\x32\x33\x31\x20\x30\x20\x32\x36\x2e\x33\x30\x38\ +\x39\x32\x33\x20\x32\x36\x2e\x33\x30\x38\x39\x32\x33\x20\x30\x20\ +\x30\x20\x31\x20\x37\x2e\x35\x36\x31\x38\x34\x36\x20\x31\x32\x2e\ +\x34\x34\x35\x35\x33\x38\x20\x34\x38\x2e\x35\x32\x31\x38\x34\x36\ +\x20\x34\x38\x2e\x35\x32\x31\x38\x34\x36\x20\x30\x20\x30\x20\x31\ +\x20\x30\x20\x31\x37\x2e\x33\x32\x39\x32\x33\x31\x20\x33\x31\x2e\ +\x35\x30\x37\x36\x39\x32\x20\x33\x31\x2e\x35\x30\x37\x36\x39\x32\ +\x20\x30\x20\x30\x20\x31\x2d\x38\x2e\x30\x33\x34\x34\x36\x31\x20\ +\x31\x34\x2e\x30\x32\x30\x39\x32\x33\x4c\x36\x35\x34\x2e\x32\x35\ +\x37\x32\x33\x31\x20\x37\x38\x31\x2e\x38\x36\x33\x33\x38\x35\x61\ +\x36\x36\x2e\x33\x32\x33\x36\x39\x32\x20\x36\x36\x2e\x33\x32\x33\ +\x36\x39\x32\x20\x30\x20\x30\x20\x30\x2d\x31\x39\x2e\x35\x33\x34\ +\x37\x36\x39\x20\x34\x37\x2e\x32\x36\x31\x35\x33\x38\x20\x31\x37\ +\x2e\x38\x30\x31\x38\x34\x36\x20\x31\x37\x2e\x38\x30\x31\x38\x34\ +\x36\x20\x30\x20\x30\x20\x30\x20\x33\x35\x2e\x34\x34\x36\x31\x35\ +\x33\x20\x30\x20\x33\x31\x2e\x35\x30\x37\x36\x39\x32\x20\x33\x31\ +\x2e\x35\x30\x37\x36\x39\x32\x20\x30\x20\x30\x20\x31\x20\x39\x2e\ +\x31\x33\x37\x32\x33\x31\x2d\x32\x32\x2e\x32\x31\x32\x39\x32\x33\ +\x4c\x38\x35\x30\x2e\x37\x30\x37\x36\x39\x32\x20\x36\x33\x35\x2e\ +\x36\x36\x37\x36\x39\x32\x61\x36\x36\x2e\x34\x38\x31\x32\x33\x31\ +\x20\x36\x36\x2e\x34\x38\x31\x32\x33\x31\x20\x30\x20\x30\x20\x30\ +\x20\x31\x37\x2e\x39\x35\x39\x33\x38\x35\x2d\x36\x30\x2e\x39\x36\ +\x37\x33\x38\x34\x76\x2d\x31\x32\x37\x2e\x31\x33\x33\x35\x33\x39\ +\x61\x33\x31\x2e\x35\x30\x37\x36\x39\x32\x20\x33\x31\x2e\x35\x30\ +\x37\x36\x39\x32\x20\x30\x20\x31\x20\x31\x20\x36\x32\x2e\x30\x37\ +\x30\x31\x35\x34\x20\x30\x76\x31\x34\x35\x2e\x30\x39\x32\x39\x32\ +\x33\x61\x32\x33\x32\x2e\x33\x36\x39\x32\x33\x31\x20\x32\x33\x32\ +\x2e\x33\x36\x39\x32\x33\x31\x20\x30\x20\x30\x20\x31\x2d\x32\x38\ +\x2e\x31\x39\x39\x33\x38\x35\x20\x31\x31\x30\x2e\x32\x37\x36\x39\ +\x32\x33\x4c\x37\x35\x36\x2e\x31\x38\x34\x36\x31\x35\x20\x39\x37\ +\x30\x2e\x39\x30\x39\x35\x33\x38\x68\x2d\x33\x38\x2e\x32\x38\x31\ +\x38\x34\x36\x61\x31\x37\x2e\x38\x30\x31\x38\x34\x36\x20\x31\x37\ +\x2e\x38\x30\x31\x38\x34\x36\x20\x30\x20\x31\x20\x30\x20\x30\x20\ +\x33\x35\x2e\x34\x34\x36\x31\x35\x34\x68\x34\x39\x2e\x36\x32\x34\ +\x36\x31\x36\x61\x31\x37\x2e\x36\x34\x34\x33\x30\x38\x20\x31\x37\ +\x2e\x36\x34\x34\x33\x30\x38\x20\x30\x20\x30\x20\x30\x20\x31\x35\ +\x2e\x37\x35\x33\x38\x34\x36\x2d\x39\x2e\x32\x39\x34\x37\x36\x39\ +\x6c\x31\x35\x30\x2e\x36\x30\x36\x37\x36\x39\x2d\x32\x37\x36\x2e\ +\x37\x39\x35\x30\x37\x37\x61\x32\x36\x37\x2e\x38\x31\x35\x33\x38\ +\x35\x20\x32\x36\x37\x2e\x38\x31\x35\x33\x38\x35\x20\x30\x20\x30\ +\x20\x30\x20\x33\x32\x2e\x34\x35\x32\x39\x32\x33\x2d\x31\x32\x37\ +\x2e\x36\x30\x36\x31\x35\x34\x76\x2d\x31\x34\x35\x2e\x30\x39\x32\ +\x39\x32\x33\x61\x36\x36\x2e\x36\x33\x38\x37\x36\x39\x20\x36\x36\ +\x2e\x36\x33\x38\x37\x36\x39\x20\x30\x20\x30\x20\x30\x2d\x36\x36\ +\x2e\x37\x39\x36\x33\x30\x38\x2d\x36\x36\x2e\x34\x38\x31\x32\x33\ +\x31\x7a\x4d\x34\x33\x38\x2e\x37\x34\x34\x36\x31\x35\x20\x37\x31\ +\x32\x2e\x38\x36\x31\x35\x33\x38\x4c\x32\x36\x37\x2e\x38\x31\x35\ +\x33\x38\x35\x20\x35\x34\x31\x2e\x36\x31\x37\x32\x33\x31\x61\x36\ +\x36\x2e\x34\x38\x31\x32\x33\x31\x20\x36\x36\x2e\x34\x38\x31\x32\ +\x33\x31\x20\x30\x20\x30\x20\x30\x2d\x37\x36\x2e\x35\x36\x33\x36\ +\x39\x33\x2d\x31\x32\x2e\x36\x30\x33\x30\x37\x37\x76\x2d\x38\x31\ +\x2e\x34\x34\x37\x33\x38\x35\x61\x36\x36\x2e\x34\x38\x31\x32\x33\ +\x31\x20\x36\x36\x2e\x34\x38\x31\x32\x33\x31\x20\x30\x20\x31\x20\ +\x30\x2d\x31\x33\x33\x2e\x31\x32\x20\x30\x76\x31\x34\x35\x2e\x30\ +\x39\x32\x39\x32\x33\x61\x32\x36\x37\x2e\x38\x31\x35\x33\x38\x35\ +\x20\x32\x36\x37\x2e\x38\x31\x35\x33\x38\x35\x20\x30\x20\x30\x20\ +\x30\x20\x33\x32\x2e\x34\x35\x32\x39\x32\x33\x20\x31\x32\x37\x2e\ +\x36\x30\x36\x31\x35\x34\x6c\x31\x35\x30\x2e\x34\x34\x39\x32\x33\ +\x31\x20\x32\x37\x36\x2e\x37\x39\x35\x30\x37\x37\x61\x31\x37\x2e\ +\x36\x34\x34\x33\x30\x38\x20\x31\x37\x2e\x36\x34\x34\x33\x30\x38\ +\x20\x30\x20\x30\x20\x30\x20\x31\x35\x2e\x37\x35\x33\x38\x34\x36\ +\x20\x39\x2e\x32\x39\x34\x37\x36\x39\x68\x34\x39\x2e\x36\x32\x34\ +\x36\x31\x36\x61\x31\x37\x2e\x38\x30\x31\x38\x34\x36\x20\x31\x37\ +\x2e\x38\x30\x31\x38\x34\x36\x20\x30\x20\x31\x20\x30\x20\x30\x2d\ +\x33\x35\x2e\x34\x34\x36\x31\x35\x34\x48\x32\x36\x37\x2e\x38\x31\ +\x35\x33\x38\x35\x6c\x2d\x31\x34\x35\x2e\x35\x36\x35\x35\x33\x39\ +\x2d\x32\x36\x37\x2e\x38\x31\x35\x33\x38\x34\x61\x32\x33\x32\x2e\ +\x33\x36\x39\x32\x33\x31\x20\x32\x33\x32\x2e\x33\x36\x39\x32\x33\ +\x31\x20\x30\x20\x30\x20\x31\x2d\x32\x38\x2e\x31\x39\x39\x33\x38\ +\x34\x2d\x31\x31\x30\x2e\x32\x37\x36\x39\x32\x33\x76\x2d\x31\x34\ +\x35\x2e\x32\x35\x30\x34\x36\x32\x61\x33\x31\x2e\x35\x30\x37\x36\ +\x39\x32\x20\x33\x31\x2e\x35\x30\x37\x36\x39\x32\x20\x30\x20\x31\ +\x20\x31\x20\x36\x32\x2e\x30\x37\x30\x31\x35\x33\x20\x30\x76\x31\ +\x32\x37\x2e\x31\x33\x33\x35\x33\x39\x41\x36\x36\x2e\x34\x38\x31\ +\x32\x33\x31\x20\x36\x36\x2e\x34\x38\x31\x32\x33\x31\x20\x30\x20\ +\x30\x20\x30\x20\x31\x37\x33\x2e\x32\x39\x32\x33\x30\x38\x20\x36\ +\x33\x35\x2e\x36\x36\x37\x36\x39\x32\x6c\x31\x37\x31\x2e\x34\x30\ +\x31\x38\x34\x36\x20\x31\x37\x31\x2e\x32\x34\x34\x33\x30\x38\x61\ +\x33\x31\x2e\x35\x30\x37\x36\x39\x32\x20\x33\x31\x2e\x35\x30\x37\ +\x36\x39\x32\x20\x30\x20\x30\x20\x31\x20\x39\x2e\x31\x33\x37\x32\ +\x33\x31\x20\x32\x32\x2e\x32\x31\x32\x39\x32\x33\x20\x31\x37\x2e\ +\x38\x30\x31\x38\x34\x36\x20\x31\x37\x2e\x38\x30\x31\x38\x34\x36\ +\x20\x30\x20\x30\x20\x30\x20\x33\x35\x2e\x34\x34\x36\x31\x35\x33\ +\x20\x30\x20\x36\x36\x2e\x34\x38\x31\x32\x33\x31\x20\x36\x36\x2e\ +\x34\x38\x31\x32\x33\x31\x20\x30\x20\x30\x20\x30\x2d\x31\x39\x2e\ +\x35\x33\x34\x37\x36\x39\x2d\x34\x37\x2e\x32\x36\x31\x35\x33\x38\ +\x4c\x31\x39\x38\x2e\x36\x35\x36\x20\x36\x31\x30\x2e\x36\x31\x39\ +\x30\x37\x37\x41\x33\x31\x2e\x35\x30\x37\x36\x39\x32\x20\x33\x31\ +\x2e\x35\x30\x37\x36\x39\x32\x20\x30\x20\x31\x20\x31\x20\x32\x34\ +\x32\x2e\x36\x30\x39\x32\x33\x31\x20\x35\x36\x37\x2e\x31\x33\x38\ +\x34\x36\x32\x6c\x31\x37\x31\x2e\x30\x38\x36\x37\x36\x39\x20\x31\ +\x37\x30\x2e\x37\x37\x31\x36\x39\x32\x61\x31\x32\x38\x2e\x30\x37\ +\x38\x37\x36\x39\x20\x31\x32\x38\x2e\x30\x37\x38\x37\x36\x39\x20\ +\x30\x20\x30\x20\x31\x20\x33\x37\x2e\x38\x30\x39\x32\x33\x31\x20\ +\x39\x31\x2e\x32\x31\x34\x37\x36\x39\x76\x31\x34\x31\x2e\x37\x38\ +\x34\x36\x31\x35\x68\x2d\x34\x32\x2e\x38\x35\x30\x34\x36\x32\x61\ +\x31\x37\x2e\x38\x30\x31\x38\x34\x36\x20\x31\x37\x2e\x38\x30\x31\ +\x38\x34\x36\x20\x30\x20\x30\x20\x30\x20\x30\x20\x33\x35\x2e\x34\ +\x34\x36\x31\x35\x34\x68\x36\x30\x2e\x34\x39\x34\x37\x36\x39\x61\ +\x31\x37\x2e\x38\x30\x31\x38\x34\x36\x20\x31\x37\x2e\x38\x30\x31\ +\x38\x34\x36\x20\x30\x20\x30\x20\x30\x20\x31\x37\x2e\x38\x30\x31\ +\x38\x34\x37\x2d\x31\x37\x2e\x36\x34\x34\x33\x30\x37\x56\x38\x32\ +\x39\x2e\x31\x32\x34\x39\x32\x33\x61\x31\x36\x33\x2e\x33\x36\x37\ +\x33\x38\x35\x20\x31\x36\x33\x2e\x33\x36\x37\x33\x38\x35\x20\x30\ +\x20\x30\x20\x30\x2d\x34\x38\x2e\x32\x30\x36\x37\x37\x2d\x31\x31\ +\x36\x2e\x32\x36\x33\x33\x38\x35\x7a\x4d\x35\x33\x37\x2e\x33\x36\ +\x33\x36\x39\x32\x20\x33\x32\x37\x2e\x38\x33\x37\x35\x33\x38\x68\ +\x2d\x36\x35\x2e\x38\x35\x31\x30\x37\x37\x61\x31\x38\x2e\x32\x37\ +\x34\x34\x36\x32\x20\x31\x38\x2e\x32\x37\x34\x34\x36\x32\x20\x30\ +\x20\x30\x20\x31\x20\x30\x2d\x33\x36\x2e\x33\x39\x31\x33\x38\x34\ +\x68\x36\x35\x2e\x38\x35\x31\x30\x37\x37\x61\x31\x38\x2e\x32\x37\ +\x34\x34\x36\x32\x20\x31\x38\x2e\x32\x37\x34\x34\x36\x32\x20\x30\ +\x20\x30\x20\x31\x20\x30\x20\x33\x36\x2e\x33\x39\x31\x33\x38\x34\ +\x7a\x4d\x35\x33\x37\x2e\x33\x36\x33\x36\x39\x32\x20\x35\x30\x31\ +\x2e\x31\x32\x39\x38\x34\x36\x68\x2d\x36\x35\x2e\x38\x35\x31\x30\ +\x37\x37\x61\x31\x38\x2e\x32\x37\x34\x34\x36\x32\x20\x31\x38\x2e\ +\x32\x37\x34\x34\x36\x32\x20\x30\x20\x30\x20\x31\x20\x30\x2d\x33\ +\x36\x2e\x33\x39\x31\x33\x38\x34\x68\x36\x35\x2e\x38\x35\x31\x30\ +\x37\x37\x61\x31\x38\x2e\x32\x37\x34\x34\x36\x32\x20\x31\x38\x2e\ +\x32\x37\x34\x34\x36\x32\x20\x30\x20\x30\x20\x31\x20\x30\x20\x33\ +\x36\x2e\x33\x39\x31\x33\x38\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x32\x39\x38\x37\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x06\x22\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x33\x33\x33\x39\x36\x39\x39\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x38\x30\x35\x37\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x31\x32\x2e\ +\x34\x30\x39\x36\x20\x35\x30\x39\x2e\x36\x39\x36\x6d\x2d\x34\x33\ +\x32\x2e\x33\x33\x32\x38\x20\x30\x61\x34\x33\x32\x2e\x33\x33\x32\ +\x38\x20\x34\x33\x32\x2e\x33\x33\x32\x38\x20\x30\x20\x31\x20\x30\ +\x20\x38\x36\x34\x2e\x36\x36\x35\x36\x20\x30\x20\x34\x33\x32\x2e\ +\x33\x33\x32\x38\x20\x34\x33\x32\x2e\x33\x33\x32\x38\x20\x30\x20\ +\x31\x20\x30\x2d\x38\x36\x34\x2e\x36\x36\x35\x36\x20\x30\x5a\x22\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x42\x36\x38\x38\x46\x46\x22\x20\ +\x70\x2d\x69\x64\x3d\x22\x32\x38\x30\x35\x38\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x38\ +\x37\x2e\x34\x33\x36\x38\x20\x34\x31\x35\x2e\x35\x39\x30\x34\x63\ +\x2d\x38\x35\x2e\x30\x34\x33\x32\x20\x30\x2d\x31\x36\x30\x2e\x34\ +\x30\x39\x36\x20\x34\x31\x2e\x33\x36\x39\x36\x2d\x32\x30\x37\x2e\ +\x31\x30\x34\x20\x31\x30\x35\x2e\x30\x36\x32\x34\x20\x34\x2e\x35\ +\x35\x36\x38\x20\x31\x38\x32\x2e\x37\x33\x32\x38\x20\x31\x32\x32\ +\x2e\x33\x36\x38\x20\x33\x33\x37\x2e\x33\x30\x35\x36\x20\x32\x38\ +\x35\x2e\x39\x35\x32\x20\x33\x39\x36\x2e\x30\x33\x32\x20\x31\x30\ +\x33\x2e\x32\x31\x39\x32\x2d\x33\x33\x2e\x32\x38\x20\x31\x37\x37\ +\x2e\x39\x32\x2d\x31\x33\x30\x2e\x30\x34\x38\x20\x31\x37\x37\x2e\ +\x39\x32\x2d\x32\x34\x34\x2e\x33\x37\x37\x36\x20\x30\x2d\x31\x34\ +\x31\x2e\x37\x37\x32\x38\x2d\x31\x31\x34\x2e\x39\x34\x34\x2d\x32\ +\x35\x36\x2e\x37\x31\x36\x38\x2d\x32\x35\x36\x2e\x37\x36\x38\x2d\ +\x32\x35\x36\x2e\x37\x31\x36\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x43\x33\x41\x34\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\ +\x32\x38\x30\x35\x39\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x33\x39\x2e\x38\x39\x37\x36\ +\x20\x33\x35\x38\x2e\x37\x35\x38\x34\x63\x32\x31\x2e\x35\x30\x34\ +\x20\x30\x20\x33\x36\x2e\x34\x30\x33\x32\x2d\x32\x31\x2e\x37\x30\ +\x38\x38\x20\x32\x38\x2e\x33\x36\x34\x38\x2d\x34\x31\x2e\x36\x37\ +\x36\x38\x2d\x31\x36\x2e\x35\x38\x38\x38\x2d\x34\x31\x2e\x32\x31\ +\x36\x2d\x35\x36\x2e\x39\x38\x35\x36\x2d\x37\x30\x2e\x34\x2d\x31\ +\x30\x34\x2e\x30\x33\x38\x34\x2d\x37\x30\x2e\x34\x48\x34\x36\x30\ +\x2e\x35\x34\x34\x63\x2d\x36\x31\x2e\x39\x30\x30\x38\x20\x30\x2d\ +\x31\x31\x32\x2e\x30\x37\x36\x38\x20\x35\x30\x2e\x31\x37\x36\x2d\ +\x31\x31\x32\x2e\x30\x37\x36\x38\x20\x31\x31\x32\x2e\x30\x37\x36\ +\x38\x76\x36\x34\x2e\x30\x35\x31\x32\x68\x36\x31\x2e\x34\x34\x56\ +\x33\x35\x38\x2e\x37\x35\x38\x34\x63\x30\x2d\x32\x37\x2e\x39\x35\ +\x35\x32\x20\x32\x32\x2e\x36\x38\x31\x36\x2d\x35\x30\x2e\x36\x33\ +\x36\x38\x20\x35\x30\x2e\x36\x33\x36\x38\x2d\x35\x30\x2e\x36\x33\ +\x36\x38\x68\x31\x30\x33\x2e\x36\x38\x63\x32\x30\x2e\x39\x34\x30\ +\x38\x20\x30\x20\x33\x38\x2e\x39\x36\x33\x32\x20\x31\x32\x2e\x38\ +\x20\x34\x36\x2e\x36\x34\x33\x32\x20\x33\x30\x2e\x39\x37\x36\x20\ +\x34\x2e\x39\x36\x36\x34\x20\x31\x31\x2e\x36\x37\x33\x36\x20\x31\ +\x35\x2e\x38\x32\x30\x38\x20\x31\x39\x2e\x37\x31\x32\x20\x32\x38\ +\x2e\x35\x31\x38\x34\x20\x31\x39\x2e\x37\x31\x32\x68\x30\x2e\x35\ +\x31\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x44\x37\x43\x37\ +\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x38\x30\x36\x30\x22\ +\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\ +\x22\x4d\x36\x37\x30\x2e\x30\x30\x33\x32\x20\x33\x39\x35\x2e\x32\ +\x31\x32\x38\x48\x33\x35\x34\x2e\x37\x36\x34\x38\x63\x2d\x34\x38\ +\x2e\x39\x34\x37\x32\x20\x30\x2d\x38\x38\x2e\x36\x32\x37\x32\x20\ +\x33\x39\x2e\x36\x38\x2d\x38\x38\x2e\x36\x32\x37\x32\x20\x38\x38\ +\x2e\x36\x32\x37\x32\x76\x31\x38\x36\x2e\x30\x36\x30\x38\x63\x30\ +\x20\x34\x38\x2e\x39\x34\x37\x32\x20\x33\x39\x2e\x36\x38\x20\x38\ +\x38\x2e\x36\x32\x37\x32\x20\x38\x38\x2e\x36\x32\x37\x32\x20\x38\ +\x38\x2e\x36\x32\x37\x32\x68\x33\x31\x35\x2e\x32\x33\x38\x34\x63\ +\x34\x38\x2e\x39\x34\x37\x32\x20\x30\x20\x38\x38\x2e\x36\x32\x37\ +\x32\x2d\x33\x39\x2e\x36\x38\x20\x38\x38\x2e\x36\x32\x37\x32\x2d\ +\x38\x38\x2e\x36\x32\x37\x32\x56\x34\x38\x33\x2e\x38\x34\x63\x30\ +\x2d\x34\x38\x2e\x39\x34\x37\x32\x2d\x33\x39\x2e\x36\x38\x2d\x38\ +\x38\x2e\x36\x32\x37\x32\x2d\x38\x38\x2e\x36\x32\x37\x32\x2d\x38\ +\x38\x2e\x36\x32\x37\x32\x7a\x20\x6d\x2d\x31\x33\x30\x2e\x31\x35\ +\x30\x34\x20\x31\x38\x38\x2e\x32\x31\x31\x32\x76\x36\x34\x2e\x35\ +\x31\x32\x61\x32\x37\x2e\x34\x34\x33\x32\x20\x32\x37\x2e\x34\x34\ +\x33\x32\x20\x30\x20\x30\x20\x31\x2d\x35\x34\x2e\x38\x38\x36\x34\ +\x20\x30\x76\x2d\x36\x34\x2e\x35\x31\x32\x61\x35\x35\x2e\x33\x31\ +\x36\x34\x38\x20\x35\x35\x2e\x33\x31\x36\x34\x38\x20\x30\x20\x30\ +\x20\x31\x2d\x32\x37\x2e\x39\x35\x35\x32\x2d\x34\x38\x2e\x30\x37\ +\x36\x38\x63\x30\x2d\x33\x30\x2e\x36\x31\x37\x36\x20\x32\x34\x2e\ +\x37\x38\x30\x38\x2d\x35\x35\x2e\x33\x39\x38\x34\x20\x35\x35\x2e\ +\x33\x39\x38\x34\x2d\x35\x35\x2e\x33\x39\x38\x34\x73\x35\x35\x2e\ +\x33\x39\x38\x34\x20\x32\x34\x2e\x37\x38\x30\x38\x20\x35\x35\x2e\ +\x33\x39\x38\x34\x20\x35\x35\x2e\x33\x39\x38\x34\x63\x30\x20\x32\ +\x30\x2e\x36\x33\x33\x36\x2d\x31\x31\x2e\x32\x36\x34\x20\x33\x38\ +\x2e\x35\x35\x33\x36\x2d\x32\x37\x2e\x39\x35\x35\x32\x20\x34\x38\ +\x2e\x30\x37\x36\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\ +\x46\x46\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x38\x30\ +\x36\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\ +\x3e\ +\x00\x00\x07\x07\ +\x00\ +\x00\x1e\x03\x78\x9c\xd5\x59\x4b\x6f\x1b\x37\x10\xbe\x07\xc8\x7f\ +\x60\xb7\xe7\xa5\xf8\x5c\x72\x0b\xcb\x01\xf2\x40\x52\xa0\x69\x03\ +\x24\x75\xd1\xa3\xb1\x76\x23\x01\x8a\x6d\x44\x82\x9c\xe6\xd7\x77\ +\x28\x89\x33\x13\x0d\xa3\x38\x87\x1c\xaa\x13\xc1\x25\x87\x33\xdf\ +\xbc\x3e\x52\x67\x4f\x3e\x7d\x58\xa9\xed\xf5\xc7\xf5\xf2\xf6\x66\ +\xde\x59\x6d\x3a\xb5\xde\x5c\xde\x5c\x5d\xae\x6e\x6f\xae\xe7\xdd\ +\xcd\x6d\xf7\xe4\xfc\xec\xa7\xe7\x7f\x3c\x7b\xf7\xf7\x9b\x17\x6a\ +\xbd\x7d\xaf\xde\xfc\xf9\xf4\xb7\x5f\x9f\xa9\xae\x9f\xcd\xfe\xf2\ +\xcf\x66\xb3\xe7\xef\x9e\xab\xb7\x17\x2f\x95\xd5\x76\x36\x7b\xf1\ +\x7b\xf7\xf8\x91\x3a\xfc\xba\xc5\x66\x73\xf7\xcb\x6c\x76\x7f\x7f\ +\xaf\xef\xbd\xbe\xfd\xf8\x7e\xf6\xf2\xe3\xe5\xdd\x62\x39\xad\x67\ +\xb0\x63\x56\x76\xc0\xee\x19\x48\xb5\x56\x5f\x6d\xae\xba\xf3\xc7\ +\x8f\xce\xca\x19\x1b\x50\x25\x19\x33\xc4\xec\xc7\x21\xd9\xb1\x53\ +\xd3\xea\x72\xbd\x9e\x77\xcb\xe9\xf6\xa6\x53\xdb\xe5\xf5\xfd\xd3\ +\xdb\x4f\xf3\xce\x28\xa3\x5c\x18\xac\xb2\xc6\x85\x8e\xdb\x61\x3b\ +\x05\x96\xdd\xc0\x16\xa9\x84\x33\xc6\x94\x43\x3b\x75\xd7\x2f\xaf\ +\xe6\x5d\x1a\xb2\xa9\x6a\xdf\x2f\xaf\x36\x8b\x79\xe7\x4d\xd2\x83\ +\x8b\x9d\x5a\x5c\x2f\xdf\x2f\x8a\x3a\x2e\x17\xed\xca\x92\xb3\xbb\ +\xcb\xcd\x42\xc1\xbe\xd7\x3e\x8e\xda\x8d\x19\x34\x50\xce\x46\x1d\ +\x53\x1e\x43\x5a\xd8\x34\x18\x1d\x07\x1b\x8c\x9f\xd2\xa8\x4d\x28\ +\x63\x50\xd4\x06\xaf\xc1\x16\xd8\xa0\x86\xa0\x87\xe4\x87\x1c\xf8\ +\x24\x0e\xc7\xad\xcb\x49\x07\x9f\xe3\x38\x4c\x46\xa1\x8c\xbe\xb5\ +\xad\x6f\x49\xc8\xaf\x48\xb5\xa9\x67\x4a\xb0\xd5\x24\x8d\x26\x47\ +\xf6\xfd\x82\x89\x30\x4c\x46\x63\x1b\xd7\x9d\x09\xfb\xcc\x62\x41\ +\xa9\x7f\x96\xab\xd5\xbc\xfb\xd9\x7a\xe7\xd2\x65\xa7\x6e\xef\x2e\ +\xa7\xe5\xe6\xdf\x79\xa7\xe3\x98\x98\x27\x6c\x77\x7e\x36\x2b\x08\ +\x0b\xb4\x2d\x28\xa0\x63\x01\x39\x2a\x9f\x33\xe8\xe3\xac\x89\x0b\ +\x0f\x60\x03\xd4\xd1\x6e\x01\x78\x6d\x8a\x8e\x76\x31\x66\x9d\x4d\ +\x32\x36\x5d\xc4\xd1\xe9\xbc\x5f\xd9\x5b\x0f\x81\xb1\xc3\xf5\x82\ +\x04\x7c\x7e\x6d\xed\x38\xe8\x30\x78\x1b\xb3\x8a\x76\xd4\xb6\x00\ +\x1f\xc1\x68\x3b\x68\x3b\x94\xcd\x10\xdc\x69\x1c\xc2\x68\x7b\x37\ +\x68\xf0\x31\x98\xaf\x3c\x28\x5e\xe0\xe9\x7d\xd4\xbb\x41\xa4\x55\ +\xe9\x20\x43\xd5\x01\xa0\xa2\x3d\xa0\xe2\x95\x75\x10\x27\x31\x78\ +\x00\x6a\xd4\x69\x17\x25\x24\x2a\x6a\x5f\x42\x28\xa8\xac\x0b\xf0\ +\x71\xe8\xeb\x40\xa1\x2e\x3d\x4a\x20\xe9\x55\x00\x5b\x85\xa2\x50\ +\xe3\x3a\xe5\xd7\xce\x56\x1c\xab\xc6\xca\x65\x9d\x00\x99\x41\xd5\ +\x45\x13\xda\x40\xc2\xf1\x60\xa9\x15\xfb\x88\x27\xe3\xc0\x1a\x9d\ +\x76\xb9\xc1\x56\xb1\x11\xe2\x80\xda\xa0\x7c\x3a\xfb\xb0\x28\xd0\ +\x14\xe2\xbe\xee\xc9\x0c\x34\x56\x2c\x0b\x13\x2d\x43\xe0\xd0\xc8\ +\xea\x1f\x86\x2e\xa2\xb4\x92\xfe\x64\xb2\xd0\xe9\x68\x2e\xba\x13\ +\xcd\xa8\x9f\x7a\x01\x2a\x8b\x31\x5c\x84\xbe\xa0\xe8\x41\x00\x0d\ +\x86\x4d\xe8\x65\x50\xf6\xc2\xb0\x9e\x0e\xc2\xc0\x23\xb1\x32\xa6\ +\xd0\x0a\x1a\x60\x2c\xb2\xd0\xc5\x11\x82\xd4\x0b\xab\xd9\xd1\xa8\ +\xb2\x48\x9a\xf0\x59\x7d\xc8\xa3\xde\x6d\x20\x2c\x4b\xee\x71\x93\ +\x93\xde\x4d\x3b\x66\xb2\xd7\x3e\x16\x90\x7a\x81\x7f\x43\x13\xfc\ +\x54\x15\xcf\xb4\x4d\x24\x5f\xc3\xf2\x06\x9a\x75\x7b\xc3\xda\x1a\ +\x4a\x87\x19\x4f\x91\x61\x58\x3e\x57\x01\x87\xe5\x6e\x54\xb8\x9e\ +\xa2\x5e\x14\x94\x63\xdb\x12\x0b\x92\x1a\x91\x04\x72\x95\x83\x6b\ +\x6a\x76\x2b\x09\x04\xc5\x1f\x85\x36\x39\x1c\x13\x0c\x4b\x87\x61\ +\x69\x0d\xe3\xea\x22\xd5\x58\x2a\x8e\xa0\x24\x3e\x4e\x11\xa6\x99\ +\x12\x06\x35\x4a\x8b\x80\x41\x09\xf0\x5a\xd5\x44\x60\x4e\x12\x99\ +\x5d\x0c\x89\x63\x9f\x2a\x11\x09\x02\x64\x56\xc5\xa5\xfb\x84\x49\ +\xb4\x46\x06\xab\x12\xc1\xca\xc2\x87\x6a\x2b\x4e\xd5\x74\x83\xd6\ +\x16\x1c\xb4\xbf\xd2\xe6\xc0\xc2\x6c\xb4\x1b\xe0\x97\xa6\x53\xc7\ +\xcb\x74\x67\x80\x50\x49\xc7\xc3\x70\x15\xda\x86\xb9\xd9\xaa\x72\ +\x06\xcb\x1b\x2b\x06\x49\x27\x07\xfd\x77\x60\xf9\x29\x3a\x20\xe5\ +\x15\x2b\x07\xe8\x16\xa7\x7d\xe1\x24\xae\x54\x8b\x86\x46\x14\x8a\ +\x18\xd2\xc8\x1b\xc8\x71\x94\x9c\x54\x63\x49\x58\x6d\x37\x34\xb7\ +\x08\x56\xfb\x1d\x01\xda\x92\x85\x13\xd3\x80\x29\x4f\x25\xb0\x9e\ +\xcb\xec\x40\xf0\xb9\xf6\xac\xee\x9d\x0a\x80\x46\xdc\x1c\xdc\x95\ +\xd1\x97\x2b\x5e\x2f\xab\xd0\x89\xc5\x79\x65\x27\xd4\x49\x08\xb2\ +\x90\x75\x34\xd1\x0d\x81\xc3\x88\x9a\x19\x45\xd8\xa3\x72\x40\x01\ +\xad\x2d\x2b\x15\xe9\x42\x81\x4a\x4d\x97\xd8\x03\xb6\x77\x9a\xab\ +\x51\x11\xbf\xe0\x70\x35\x7a\xb6\x14\x2b\xd0\x42\x4c\x5f\xb5\xf4\ +\x0b\x22\x64\xd3\x97\x71\x17\xb5\x8d\x26\xa7\xc4\x3a\x2d\x4e\x71\ +\x83\x44\x90\x53\x05\x21\xd5\x31\x37\x89\x68\xa0\x6b\xd0\x52\x22\ +\x61\x88\x1c\x09\x27\x47\xd3\x67\x56\x68\xab\x6a\x8d\x5c\x95\x75\ +\x5d\x82\x4b\xce\xda\xd2\x57\x28\x08\x31\xa5\x43\xcc\xaa\x08\x7c\ +\x79\x4f\xe5\x27\x16\xfa\x18\x14\xcc\xdb\xc8\x13\x30\x53\xd9\x1c\ +\x6e\x35\x9c\x50\xc8\x46\x5d\x2b\xfc\x77\x73\x93\xa3\xda\xcb\x3a\ +\xb5\xb4\xbf\x4e\x05\x8c\x73\xdf\x60\x08\x54\xbd\x8e\x99\x05\x63\ +\x26\x6b\xc3\x6a\x04\x7d\xae\x08\x4c\x27\x9a\x33\xe6\x93\xd0\xc6\ +\xb5\xea\x2b\x73\x3f\x2e\xf3\xa3\x8e\xce\xc1\x25\x86\x4a\x07\x45\ +\x9f\x51\x74\x9f\x90\xed\x56\x76\xc9\x46\x68\xb6\x92\xb0\x2a\xb4\ +\xed\x93\xd7\xc3\xfe\x26\x55\xf3\xed\x6b\x49\x58\x77\x43\x12\xd6\ +\xe9\x08\x7c\xc1\x38\x0d\x51\xd5\xac\x6b\x04\x3e\xa5\xfa\x03\x98\ +\xcf\x31\x2b\x4b\xad\x3e\x2d\xfb\xab\xe0\x67\x08\xdd\x16\x0b\xd7\ +\xd4\xca\x79\x82\x4a\xec\x3c\xc5\x4c\x8e\xfb\x68\x6a\x0a\x3a\x41\ +\x4d\x04\x28\xeb\x06\x0d\x63\x19\x79\x58\x35\x7d\x9b\xf5\x31\x42\ +\xd2\x60\x0d\xa2\x8e\xf5\x42\x39\x8c\xeb\x2d\x4f\x4f\xd6\xf8\x1a\ +\x09\x86\x3e\x92\xfc\x58\x52\x70\x1c\x88\x96\xdc\x14\x74\x82\x83\ +\x0b\x7c\xa0\xf4\x0d\xc1\x68\x7b\xf0\x1b\xbd\x1f\x60\x2c\xd7\x01\ +\x0f\xef\x3a\x2a\x2d\x46\x95\xf7\x90\x22\xf3\xdb\x49\x51\x1e\x2a\ +\x76\xfd\x0f\x4e\x4d\x26\xd7\xc7\x85\x10\xa0\xf6\xee\x8a\x07\x9d\ +\x4a\xf0\x35\x9c\xd3\x2c\x0c\xb5\x2d\x72\x7a\xc0\x7b\x89\x60\x5f\ +\xac\x43\x33\x4a\x89\x87\x50\xe9\x47\x16\x20\x2b\x3f\x1e\xdb\xb4\ +\x39\x42\xc9\xc8\x83\x76\xa0\x55\x1a\xf9\xe5\x8d\x79\x04\x2b\x2d\ +\xda\x29\x5a\x43\x90\x17\xb5\x26\x85\xaa\x53\x6b\x59\x42\x38\xd7\ +\xab\xcb\xa6\x5e\x54\x44\xd6\xef\xc4\x41\x84\x20\x33\xf5\x15\xf8\ +\x11\xba\xe5\x8e\x3e\x1f\x39\x78\x04\xb6\x93\xa1\x49\x98\xf1\x47\ +\x74\xd4\x53\x57\xdf\x53\x1d\xf5\xb8\x21\xc6\x5e\x3e\x71\x3c\xac\ +\xa3\x92\x03\xa4\x2e\xe2\xf2\xd9\x7a\x9e\xc0\x56\x56\x3a\x2a\x85\ +\xa2\xf8\x7c\xb2\xa3\x8a\xb7\x27\x6a\xf0\x0f\x7b\x3f\x3b\xb6\x3e\ +\x37\xf8\x14\x2e\x22\xe2\x26\x62\x94\xd2\xc4\x10\x5d\x66\xad\x96\ +\xfc\x59\xe1\x62\xd5\x72\x41\x09\x03\xcd\x15\x88\xc6\xce\x6e\x4e\ +\x00\xc9\x74\xba\x14\xe1\x03\x19\x51\xf1\xd6\xe5\x8c\xb4\xa1\x50\ +\x0a\x41\x83\x06\x2e\xf3\x96\x41\x84\xc2\x10\x57\x66\x8f\x25\x46\ +\x7b\x63\x41\x38\xd2\xe3\xbc\x6a\x5d\x1f\x24\xf1\x15\xcf\x64\xac\ +\xde\x88\xb7\xb0\x16\x29\x39\xd1\x05\xdb\xaf\x0d\xe4\x3a\xd2\x50\ +\xbe\xba\x35\xfa\xdf\x71\x38\x25\x4a\x2b\xe2\xcb\x19\xb2\x3b\x43\ +\x5d\xf3\xfb\xbb\x4c\x74\xa6\x56\x94\x6f\x3c\x7e\x30\x75\xca\x05\ +\x49\xb4\xfd\x63\x52\xc3\xad\x13\x0f\x8b\xff\xfb\x57\x8f\x95\xb8\ +\x99\xa6\x0b\xc2\x72\x4b\xc8\x43\xe7\x90\xcd\x5d\x1c\xd0\x4b\x4d\ +\x1b\x14\xff\x47\x3e\xe2\xb5\xde\x5c\xbe\xeb\x15\x4f\x72\xd9\x87\ +\xbc\xe2\x1d\xdb\xf6\x65\x4e\x48\xd7\x08\x9c\x58\x58\x9e\xfc\x6f\ +\x06\xff\x8c\x71\x5f\xfd\x33\x26\x1a\xaf\x77\x45\x02\x18\xaf\x85\ +\xaa\xb4\x7f\xb6\xfd\xca\xab\x2d\x19\x47\x1d\xa4\x8e\xd6\xf2\xa3\ +\x6a\x2c\x9b\x46\xaf\xc3\xfe\xbc\x92\x6f\xe6\xd0\x8a\x7b\xb8\xcd\ +\xba\xf2\xdd\xf3\x49\x1a\xbe\x8d\xe5\xaf\x1d\xe8\xcd\x19\x2e\xea\ +\xe5\xb5\x66\xf7\x53\x4c\x7b\x9a\xfd\x91\xda\x5b\xeb\xb5\xad\x9e\ +\x72\xc0\x24\xf6\x80\x29\xb2\x8a\x4d\xd2\xf0\xed\x50\x0a\xe1\x21\ +\xd1\x10\x66\xd5\x04\xff\x61\x1e\xf5\xcc\xa3\x67\xe5\x4f\xd0\xf3\ +\xff\x00\x24\x0f\x2c\xf9\ +\x00\x00\x03\x12\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x39\x37\x30\x32\ +\x33\x35\x38\x37\x34\x34\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0d\x0a\x20\ +\x20\x20\x20\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x38\x30\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x36\ +\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x30\ +\x33\x20\x39\x32\x39\x2e\x35\x48\x31\x33\x32\x2e\x35\x63\x2d\x32\ +\x30\x2e\x31\x20\x30\x2d\x33\x36\x2e\x35\x2d\x31\x36\x2e\x34\x2d\ +\x33\x36\x2e\x35\x2d\x33\x36\x2e\x36\x56\x31\x31\x39\x2e\x35\x63\ +\x30\x2d\x31\x33\x2e\x38\x20\x31\x31\x2e\x32\x2d\x32\x35\x20\x32\ +\x35\x2d\x32\x35\x73\x32\x35\x20\x31\x31\x2e\x32\x20\x32\x35\x20\ +\x32\x35\x76\x37\x36\x30\x68\x37\x35\x37\x63\x31\x33\x2e\x38\x20\ +\x30\x20\x32\x35\x20\x31\x31\x2e\x32\x20\x32\x35\x20\x32\x35\x73\ +\x2d\x31\x31\x2e\x32\x20\x32\x35\x2d\x32\x35\x20\x32\x35\x7a\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x2d\x69\x64\ +\x3d\x22\x31\x32\x38\x38\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x32\x34\x31\x20\x35\x33\x36\x2e\x37\x68\x35\x30\x56\x37\x39\x36\ +\x68\x2d\x35\x30\x7a\x4d\x34\x31\x37\x2e\x37\x20\x34\x35\x38\x2e\ +\x35\x68\x35\x30\x56\x37\x39\x36\x68\x2d\x35\x30\x7a\x4d\x35\x39\ +\x34\x2e\x33\x20\x35\x33\x36\x2e\x37\x68\x35\x30\x56\x37\x39\x36\ +\x68\x2d\x35\x30\x7a\x4d\x37\x37\x31\x20\x34\x31\x31\x68\x35\x30\ +\x76\x33\x38\x35\x68\x2d\x35\x30\x7a\x4d\x32\x34\x36\x2e\x39\x20\ +\x34\x36\x37\x2e\x32\x4c\x32\x31\x37\x20\x34\x32\x36\x2e\x38\x6c\ +\x32\x31\x38\x2e\x39\x2d\x31\x35\x36\x2e\x39\x20\x31\x38\x35\x2e\ +\x38\x20\x31\x31\x34\x2e\x33\x20\x31\x38\x32\x2e\x38\x2d\x31\x35\ +\x30\x2e\x34\x20\x33\x32\x2e\x35\x20\x33\x38\x2e\x34\x2d\x32\x31\ +\x31\x20\x31\x37\x33\x2e\x36\x2d\x31\x38\x37\x2e\x39\x2d\x31\x31\ +\x35\x2e\x37\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x38\x32\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x37\x31\x35\x2e\x32\x20\x31\x38\x34\x2e\x32\ +\x6c\x31\x39\x34\x2e\x36\x2d\x33\x2e\x39\x2d\x34\x33\x2e\x39\x20\ +\x31\x38\x37\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x38\x33\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\ +\x3e\ +\x00\x00\x1f\x46\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\xbd\x00\x00\x00\x5e\x08\x06\x00\x00\x00\x76\x07\x15\x1c\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x12\x74\x00\x00\x12\x74\ +\x01\xde\x66\x1f\x78\x00\x00\x1e\xf8\x49\x44\x41\x54\x78\xda\xed\ +\x7d\x79\x7c\x5d\x55\xb5\xff\x77\xad\xbd\xcf\xb9\x37\x43\xd3\x34\ +\x6d\xc6\x86\x74\x4e\xdb\xd0\xc2\x93\xa1\x2a\x08\xe2\xac\xa0\x22\ +\x52\xda\xd2\x89\x99\x02\x65\x50\x64\x78\xc8\xd3\x0a\x3f\x7d\xbe\ +\xdf\x53\x11\x05\xa9\x20\x88\x05\x3a\x23\x45\xf1\xa9\xa8\x0f\x15\ +\xd0\x87\x0f\x27\x84\x4e\x69\xd3\x21\xcd\xd0\xb4\xb4\x74\x4e\xee\ +\x3d\x7b\xef\xf5\xfe\xb8\x43\xee\x4d\x6e\xd2\xa4\x13\xc5\x9e\x2f\ +\x9f\x43\x9b\x93\xd3\x3d\x9d\xef\x5e\x7b\xad\xb5\xd7\x5e\x07\x08\ +\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\x10\x21\x42\ +\x84\x08\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\x10\ +\x21\x42\x84\x08\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\ +\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\ +\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\x10\x21\x42\x84\ +\xe8\x05\x9f\x07\xf2\x8e\xd7\xb6\x3d\x8c\xca\xfc\xe3\x7d\xfc\xe8\ +\x44\x25\xce\xa2\xd2\xda\xbb\x3c\xe5\x9f\x21\xb0\x55\xc2\xea\xd5\ +\x5d\x12\xbf\x77\x4e\x6b\xfd\x9b\x47\xba\x9e\xe5\xa5\x63\xbf\xcd\ +\xcc\x17\x19\x42\x81\x63\xda\x29\xd0\x6b\x3d\x91\xf5\x4e\xcc\x56\ +\xc3\x6e\xc7\x8c\x96\xb5\x8f\xf5\xa7\xbc\x65\x15\x63\x1f\x62\xc7\ +\xe7\xc6\x7d\x99\x37\xbd\x69\xcd\x8f\x8f\x97\xf1\x5c\x5c\x3c\x7c\ +\x78\x24\x12\xfd\x91\x23\xbc\xdb\x29\xef\xee\x29\xcd\xaf\xdf\x17\ +\x92\xbe\x07\x3c\x55\x3e\x72\x62\x54\xa2\x5f\x02\xe3\x24\x47\x6e\ +\x90\x23\xbe\x73\x5a\xcb\xaa\x9f\x1c\x8d\xba\x96\x0c\x1e\x33\x5e\ +\x69\xaf\x36\x50\x7c\x09\x94\x9e\x01\x00\x42\x89\x21\xd0\x62\x77\ +\x5b\x04\xdf\x98\xbe\x65\xf5\xd7\x8e\x48\x5d\x83\x46\x4d\x60\x3f\ +\xba\xcc\x69\x1a\x0f\x00\x8e\x24\xf9\x1b\x95\xf8\xbf\x24\x7e\x66\ +\xc2\xb6\xb8\x98\xaf\xcc\x68\x5e\x3d\xbf\x4f\x93\xb5\xea\x54\x49\ +\x94\x62\xc4\x89\x5b\x71\x69\xeb\xea\x8b\xdf\x76\xc2\x97\x8e\x7e\ +\x97\xf6\xf2\x9e\xb7\xcc\xa5\xc2\x89\x7e\x19\xeb\xa6\xce\x6a\x7e\ +\x63\x59\x48\xfa\x1c\x78\xba\xac\x6e\x99\xd5\xea\x12\x21\x02\x41\ +\xc0\xe2\xe2\x16\x32\xe5\x48\x13\x7f\x59\xd5\xb8\xc7\x19\x6a\xb6\ +\x25\x66\xcb\x9c\xee\x7a\x26\xe9\x01\xa0\x1d\x7b\x3f\x7d\xf9\x96\ +\x8d\x2f\x1e\xd6\x2a\x52\x36\xf6\x76\x4f\xf9\xf7\x58\xa2\x3c\x90\ +\x43\x6f\xa4\x17\x26\x28\x91\x6d\xed\x41\xfc\x3d\xb3\xdb\xd6\x6e\ +\xec\xad\xdc\x47\x2b\xc7\x9c\x9b\x4f\xf9\xbf\x4f\x36\x18\xda\xc9\ +\x1b\x53\x9a\x5e\x9f\xd8\x6d\xc2\x0d\x19\xf7\x49\x52\xfc\x11\x06\ +\xde\x23\x84\x7c\x47\xbc\xc4\x28\xf3\xd3\x99\x4d\x6b\x5e\x3f\xd2\ +\xef\x6f\x61\x59\xcd\x48\x4f\x15\xfd\xd1\x29\x55\x9e\xe8\x4f\xa2\ +\x5f\x64\xed\xef\xa6\x35\xaf\xfc\xc0\xf1\x48\x7a\x7e\x3b\x2b\xff\ +\x61\x45\x4d\x5d\xe0\xeb\x4b\x1c\x13\x8c\x62\x04\x4a\xc1\xb0\xf2\ +\x19\xfc\xc8\xa2\xb2\x09\xe5\x47\xec\xc5\x54\x8e\x9d\x2f\xca\xbf\ +\xdc\x2a\xc5\x56\x33\xc0\x80\x90\x40\x48\x40\xc9\x0b\x70\x85\x80\ +\x2b\x8c\x73\xc4\x1c\x4e\x5d\x4b\x2b\xc6\x3d\x48\x91\xe8\x7f\x06\ +\x8a\xf2\x1c\x03\x0e\x02\x07\x63\xad\xc4\xe7\xef\xb5\x3b\x4b\x21\ +\xf1\x27\x88\x00\xa3\x14\x8c\x52\x70\x44\x08\x98\xcb\xac\x32\x77\ +\x1d\xac\x6c\x9f\xd5\x6d\xa2\x19\xa2\x19\x04\x86\x65\x35\xe1\x89\ +\xf2\x89\x5f\x07\x80\x05\x83\x46\xd6\x2c\x2f\x3f\xf9\xbe\xe5\x15\ +\x13\x76\xba\x3c\xff\x39\xd1\xfa\x66\xab\xf5\x24\xa7\xbd\x09\x50\ +\xea\xab\x1e\xfc\xbf\x2c\x3a\x69\xfc\x67\x8e\xe4\xfb\x7b\xb4\xa8\ +\xba\xc4\x57\x45\xff\x65\x3c\x55\x6e\x19\xb0\x0c\x58\x30\x2c\x18\ +\x44\xba\x72\x1e\xa0\x8f\x47\xd2\xbf\xad\x8d\xca\xe7\xfc\xeb\x25\ +\xc7\x7d\xcb\x5c\xe6\x79\xf6\x41\x00\x97\x1c\x89\x7a\x3c\x51\x17\ +\x49\x1f\x9f\xbd\x76\xf3\x9a\x3f\x1e\x6a\x3d\x3f\xaa\x1c\x39\xc3\ +\xe9\xc8\xdc\xcc\x7b\x02\xb3\xa5\xc3\x05\xd3\xaf\x6a\xdd\xf0\x72\ +\x42\x9d\xcb\xaf\xd7\x9e\xd7\x6d\x8d\x65\x50\x4b\x6f\x65\x7f\xbb\ +\xb8\xb8\x38\x02\x7d\x7e\xd7\x19\xe9\x79\x7c\xd9\x92\xa1\x13\xaa\ +\x94\xf0\x54\x47\x88\xd8\x1e\xc4\x98\x53\xe4\xc1\xc9\xbd\x00\x9e\ +\xcd\xbc\xff\x64\xd9\x88\x53\xf3\x10\x9d\xe3\x18\x1f\x14\xa2\x21\ +\xc4\x68\x07\xf3\x1f\x4c\x6c\xff\x2d\xd3\xb7\x6d\x6c\xeb\x4d\x60\ +\x0e\x28\x28\x78\x32\xf0\xd4\xb8\x1e\xc4\x69\xed\xc9\xd5\x13\x9f\ +\x7d\x3c\xb6\xf7\xea\x2b\xb6\x6f\xda\x1a\x4a\x7a\x00\xf3\x2a\x2b\ +\xf3\x1d\x68\x86\x28\x86\x28\x06\xc4\x01\xe2\x60\x18\x30\x0c\x58\ +\xa2\x8b\x17\x56\x8c\x3d\xec\xe5\xf1\x5b\x25\x55\x27\x09\xcb\x20\ +\x43\x80\xa1\x94\xe4\x95\x04\xe9\x08\x70\x22\x70\x22\x08\x98\x55\ +\xc0\xac\xe6\x97\x8f\x2a\x3b\xf4\xc9\xa5\xbf\x28\x22\x10\x11\x08\ +\x2c\x04\x16\xfb\xc4\xfd\x6b\x8a\xf0\x00\x60\x8c\x21\x11\x01\x25\ +\xaf\x54\xfd\xb1\x78\xc7\x6f\x7b\x2b\x7b\x60\xb4\xf8\x42\x4b\x50\ +\x22\x16\x22\x36\x59\xba\xc0\x11\x2a\x2d\xab\xd9\x71\x85\x88\x61\ +\xc0\x11\xe0\x90\xe8\x6b\xe2\x12\x18\x12\x58\x11\x10\x68\x7f\xaa\ +\xbc\xc7\x06\xd6\x8c\x5c\x5a\x3e\x7e\x91\xe7\x15\xfe\xdd\x78\xfa\ +\xfa\xc0\xf3\xc6\x1a\xad\x07\x07\xac\xaa\x03\xd0\x54\xf6\xf3\x5e\ +\x9c\x87\x3a\xbf\xa7\xf6\x2c\xa8\x18\xf5\x31\xab\x22\xe7\x8b\x00\ +\x09\x4d\x4d\x12\x57\xf2\x46\x00\xa6\x38\xeb\x0b\x0a\x22\x05\x0b\ +\x96\xa5\x74\xba\x13\x9d\xf4\xc3\x78\xd0\xf9\xa4\xfc\x41\x3d\xfd\ +\xde\x11\x93\xd2\x91\x7b\x0e\xb7\x9e\xa1\x91\xa2\x5b\x84\x3d\xbf\ +\xaf\xcf\x17\x69\xff\x63\x87\x5a\x97\xb0\xec\xed\xae\x92\x48\x96\ +\x04\x8f\x2a\x3d\x80\x28\x87\x29\x15\xdf\x5f\xd9\x5b\xd9\x79\x2a\ +\xff\x3e\xe1\x83\xbf\x2e\x71\xe6\xe7\x60\xf7\x5a\x2e\xe3\xcd\x08\ +\xed\x78\xaa\x7c\xdc\xc4\xa5\x15\x13\x16\x14\x16\x0c\x7c\xdd\x69\ +\xef\xd2\x1e\xcb\x21\x8c\x19\x5e\x6d\x3e\x9c\xdb\x98\x1e\x73\xbb\ +\xa7\x0b\x7e\xde\xa7\x31\x21\xf5\x11\x77\xd2\xc4\x6f\x86\xa4\x07\ +\x10\x01\x9d\x05\xa2\x94\xc0\x05\x2b\x4a\x5c\xc4\x60\x62\x80\x18\ +\x8e\xf9\x9c\x85\x15\x75\x93\x0e\xb5\x8e\x07\x07\x0c\x1d\xec\xbc\ +\xc8\x17\x1c\x13\x88\x12\x97\x22\x86\x22\x4e\x4b\x7a\x62\x02\x31\ +\x81\x05\x89\x8b\xe8\xbc\x43\xa9\x6b\xfe\xa0\x9a\x4f\x42\xf9\x6b\ +\xc0\x0c\x30\x43\x41\x02\x05\x09\xae\x68\x5a\xff\xbb\xcc\xe7\x8c\ +\xf2\xc7\x0a\x31\x40\x04\x10\x81\x93\x2f\x41\xf2\xf3\x06\xf7\xaa\ +\x87\xb2\x1e\xe4\x0b\x04\x8a\x01\xc5\x19\x2f\x30\x26\x8c\x98\x00\ +\x1d\xeb\x8d\xec\x3f\x7f\x56\xd3\xaa\x0b\x7c\xeb\x76\x26\x9b\x91\ +\xee\x37\x40\x60\xf6\xdf\xc7\xbe\xf7\x0f\xeb\xd1\x6c\xa3\x5c\xbe\ +\x63\x0b\xab\x01\xab\x13\x6e\x24\x30\x25\x0d\x6d\x05\x02\x59\xa3\ +\x64\x63\x77\x15\xae\xe6\x74\x2d\xea\xdf\x1d\xc5\x7f\x0a\x96\x20\ +\x3d\x8e\x70\x00\xd9\x35\x9a\xcd\x66\x8f\x29\x5d\x9c\x61\x45\x96\ +\xf5\xe7\x96\x56\x9d\x3c\xf7\x84\x27\xbd\x02\x4e\x49\x2c\x89\x07\ +\x79\x4e\xa9\xeb\x0f\xb5\x8e\xa2\xc2\x82\x2f\xf4\xdf\x9d\x45\xef\ +\x3a\x94\xba\x06\x14\x0e\x98\xac\x1d\x5d\x96\x2d\x75\xed\x2b\x99\ +\x3f\xff\xa0\xac\xac\x1c\xc4\x1f\x74\x39\x8d\x54\xbf\xb0\x67\x43\ +\xbc\xe6\xf4\xde\xea\xb6\x08\x1e\x6e\x89\xef\xfe\x97\xcb\x9a\x1a\ +\x7e\xf1\xff\x87\x9c\x54\x05\xc1\xd9\x3d\xc8\xdd\x81\x39\x56\x80\ +\x86\x9c\x2b\x2d\xb0\xef\x9a\xcd\xeb\xd6\x74\x5b\x71\xc4\xff\x57\ +\x27\x6e\x4b\xdc\xc4\x96\xb3\x15\xdd\x69\xbb\xd8\x3d\x07\x4c\xec\ +\x23\xbc\x79\xe5\x28\x72\xf6\xd5\xee\xf5\xc8\xed\x27\x34\xe9\x7f\ +\x50\x36\xa2\x5c\xb4\xfe\x50\x42\x4a\x48\xe2\xca\x1c\x6e\x38\x48\ +\xf2\x3f\x86\x5c\xfc\xbd\xd2\xd2\xc2\x43\xa9\x23\x4a\xfe\x8d\x29\ +\x5d\x33\xe1\xef\x20\xa4\x74\xee\x4c\x53\x13\x10\x08\x31\x84\x18\ +\x04\x4c\x7c\xbc\xb4\xae\xa2\xbf\xf5\xf9\xce\x7e\x46\x98\x52\x9a\ +\x2d\x00\xf2\x08\xf4\x9b\x84\x97\x6a\x74\xdd\xe2\xaa\xba\xe9\x85\ +\xba\xf4\x77\xac\x78\x00\xc1\x81\x10\x24\x2f\x0b\x76\xed\x9b\x10\ +\xec\x5f\xd0\xd3\x3b\x12\x8e\x7e\xd1\x10\x91\x21\x4a\x57\xc0\x08\ +\x0c\x23\x30\x71\x32\x53\x66\x6e\x69\xb8\xfe\xf6\xb6\xb6\xfd\x00\ +\x30\x0c\xfc\x01\x11\xf1\x05\x04\x41\xe7\x4a\x4a\xb0\xd0\x62\xa1\ +\xe1\xe0\x49\xe0\xb4\x98\x56\xb8\xf8\x1c\xe7\xcc\xe3\xda\x75\xd1\ +\x83\x08\x20\x31\x45\xdf\x28\x2f\xef\xb6\xbb\xaa\x44\x9d\x4f\x90\ +\xef\xe7\x51\x74\x1e\x84\x40\x12\x4f\x5c\xb0\x5f\xbf\xa6\x79\x7d\ +\xd3\x14\xc0\x92\x31\xcf\x2b\x71\x50\xd2\xf9\x1e\x41\xaa\x66\x51\ +\x65\xe5\x90\x13\x96\xf4\x85\xca\xef\xf3\x52\x27\x84\x01\xc5\xde\ +\xe0\x7e\x4b\xec\x3c\xf6\xee\x76\xc4\x03\xfa\xad\x97\x13\xb4\xf6\ +\xe5\xa3\xfd\xf9\x37\xcb\x2a\x46\x97\x5a\xf6\x06\x76\x51\xf0\x11\ +\x00\xeb\x7e\x58\x31\xba\x2e\xca\xde\x1f\x08\xbc\x50\x98\xbb\x79\ +\x3a\x9c\x8b\xcf\xdf\x11\x0f\xde\x7b\xc5\xf6\xed\x39\x3d\x1c\xf7\ +\x97\x95\x95\xe6\x89\xbe\x30\xb7\x34\x96\x1f\x5f\xd6\xb8\xfe\xe9\ +\xcc\x7b\xc1\x01\xbc\x00\x96\xfa\x6e\xfd\x82\xd9\x2d\x12\xdc\x01\ +\x15\x7f\xd7\x4e\xd5\x5e\x3d\xb5\x69\x6d\xd5\x8c\xe6\x75\x8f\xf8\ +\x16\x03\x73\x1b\x55\xb6\xb9\x32\x08\xb2\x0c\xd0\xa7\x2a\x46\x9e\ +\xe9\x88\xf2\x3b\x58\x9f\x45\xd0\xa3\xd2\xf3\x44\xb0\x73\x7a\x63\ +\xfd\x7f\xa4\xcd\x13\x89\xbf\x90\x63\x5c\x89\x54\xc1\x84\x13\xd6\ +\x65\xa9\xc5\xbb\xd4\xa4\xa4\x6d\xd2\xa8\x4b\xc9\x5e\x91\xae\x83\ +\x45\xf0\x49\x9d\xd6\x2f\xfd\xba\xbc\xbc\x4c\x79\xd1\x9b\x04\x99\ +\x0a\x54\x72\x33\x08\x2e\xf7\x7c\x4f\x56\x4c\x00\x3c\x76\xbb\xfb\ +\x53\x5f\x93\xdd\x3f\xae\xdc\xcb\xcf\xea\x87\x23\x07\x05\xef\x2b\ +\x4a\x73\x6d\xc2\x0d\x9b\xdc\x04\x73\x56\x48\xcc\x7e\x4b\xf2\xfd\ +\x3d\xf1\x8e\xef\xcf\xd9\xb6\xa5\xa1\x57\xaf\x8d\x2a\xa8\x15\x56\ +\x70\x94\x26\x58\xaa\x3b\x1a\xe4\x9e\xee\x66\x0f\xe7\x07\x45\xd6\ +\x45\x5f\xf2\x48\x6a\x13\xfd\xb1\x02\x00\xed\x30\x53\xae\x6a\x5a\ +\xff\xab\x1c\x33\x67\x94\xa8\x04\x2b\x01\x80\x5c\xe0\x00\x60\x27\ +\xe8\xce\xb9\x3b\x77\xee\xc9\x96\xf2\xfa\xb6\x40\x7b\xa2\x81\x4f\ +\x5b\x4a\x74\x88\x44\xc1\xc1\x3e\x99\xf9\xdc\x8c\xad\x0d\xbf\x5d\ +\x7a\xd2\x44\x49\xbc\x5e\x45\xe9\x71\x21\x35\x12\xc0\xef\x4e\x48\ +\xd2\x13\x51\x51\x9f\x25\x2f\x08\x20\x3a\xb3\x5f\x52\x9e\x8a\xbe\ +\x70\xc8\x8d\x13\x20\x86\xf8\xc6\xfe\xfc\x93\x7c\xaf\xa0\x36\x77\ +\x47\x5d\xd6\x7d\xe5\x4c\xbd\x71\xb1\x45\xcf\xb6\x6c\xf8\xfa\x72\ +\x20\xde\xa7\xb2\x11\x99\x25\x44\xdd\x5d\x7e\x62\x5d\x7b\x17\x9b\ +\x21\x39\xdb\x4a\xf2\x84\x2f\x33\x59\x5d\x72\x2b\xaf\xda\x92\x83\ +\xf0\x89\xf1\x1d\x23\x39\x9c\x49\x03\x20\x53\x01\x2c\xce\x26\x3d\ +\x0f\x74\x39\xac\x20\x76\xf4\xbf\x59\x36\x48\x55\xed\x8d\x39\x1e\ +\x03\x01\x3b\x4e\x48\x49\x7f\x1e\xa0\x85\x5c\x91\x63\xdd\x45\xd0\ +\x4a\xce\x9f\x49\x04\x16\x54\xb9\xa8\x6a\xfc\x47\xa6\xb7\xac\xfe\ +\xf5\xc1\xca\xff\x46\x79\x79\x99\x4f\xde\xf5\xa9\x17\x99\x7a\x9f\ +\x2e\xbd\xb2\xa4\x0d\xd6\xe4\x4b\x97\xd4\xf2\x9b\x32\xb8\xac\x66\ +\xbb\xa5\x5f\x06\xb3\xf3\xee\x10\x45\x59\x92\x98\x05\x20\x58\x47\ +\x24\xbb\x20\xf2\x8a\x98\xd8\xaa\xa9\x2d\x0d\xfd\x36\xe6\x94\xb8\ +\xb3\x2c\x65\x72\x27\x9e\xe4\xb6\xcc\xbf\xa6\x69\x7d\x53\x37\x7d\ +\x55\xab\x42\x30\xab\xf4\x0a\xea\x88\x44\xe4\x57\x3d\xba\x86\x7d\ +\x9d\x1d\xc6\x40\x09\xbf\xa8\x8b\xe8\x87\xba\x19\xcc\x6c\x97\x40\ +\x45\x3e\x96\x18\xcf\xd4\xca\x85\x8e\x80\x50\xf8\xf0\xa0\x91\x03\ +\xa3\x11\x3d\x56\xc1\xbb\x8c\x88\x6f\x30\xc4\x29\x6b\x3e\xf5\x46\ +\xb7\xac\xde\xb2\xf6\xbf\x4e\x48\xd2\x5f\x3a\x64\x58\x29\x11\x47\ +\xfa\xdd\x50\xe2\xff\xb7\x0c\x78\x61\x0a\x60\x7b\x7b\xae\x8a\x8a\ +\x6f\x27\x56\x03\xe4\x50\x1b\x48\xbd\x97\xdf\x15\xf3\x00\xed\xb1\ +\x0c\x8b\x77\xf7\x7e\x2c\x30\x26\xb8\x63\x76\x5b\xc3\x76\xf4\xc5\ +\x4d\xd5\x0b\x72\x79\x7b\xde\x34\x66\x49\x2f\x7d\xc8\xf4\x9a\x40\ +\x41\xfe\x94\xeb\xb1\x47\x8b\x47\x0c\xeb\xa9\x88\x03\x31\xd9\xdc\ +\xed\xdd\x6d\x5d\xf7\xa3\x65\xd5\x27\x7f\x2d\x60\x5d\x95\x79\xdf\ +\x83\xfa\x8e\x17\x2d\x78\x88\x48\xd8\xe5\xdc\x84\x00\xc4\xc6\x96\ +\xde\x03\x98\xe3\x81\xf4\xc7\xdc\x90\x2d\x52\xaa\x4e\xc8\xa5\xbd\ +\x0a\x22\x04\x11\x4a\x88\x5a\x21\x10\xa4\x85\x13\x2a\x0d\x40\x04\ +\x43\x8c\x84\xd4\xa0\x49\x52\x39\xfe\x53\xbd\xea\xf2\x83\xab\x87\ +\x92\x17\xb9\x2d\xd3\x8b\xd2\xb9\x63\x98\x96\x64\x00\x71\xd2\xb7\ +\x21\xe9\xe7\x52\x3b\xa4\x00\xb0\xaf\xb1\x71\x5f\x5f\xfb\x33\xbc\ +\xb8\x74\x02\x1c\xfc\x54\x87\x52\x5d\x31\x50\xd1\xd9\x6d\x0d\xdb\ +\x0e\x97\xf0\xa2\xb0\x91\xba\xc8\x29\xe7\xf0\xf7\xcf\x65\xec\xf2\ +\x76\x79\xbe\x3c\x41\x3b\x4a\xaf\x67\x71\xb8\xfd\xb9\x9e\x8d\xfa\ +\xea\x1c\x6d\x1d\xb4\x75\x19\x93\xc4\x81\xc8\xfc\xed\x86\x96\xb5\ +\x6b\x73\xce\xa7\xc0\xce\x89\xc2\xb5\x47\xc8\xc1\x23\x81\xcf\x70\ +\x3e\xc3\x39\x25\xca\x32\x88\xd8\x82\xd8\x26\xcb\xb1\xd0\x62\x04\ +\xe8\x78\xf4\xd2\x96\x75\xc7\x8d\xcb\xf2\x98\x4b\x7a\x16\x9c\x23\ +\x90\x00\x40\xce\x5d\x52\xb2\xf2\x9c\x62\x37\xc7\x12\x77\x31\x68\ +\x99\x84\xdc\x29\xe8\x12\x3b\x92\x35\xa1\xfc\x82\xbb\x0f\xdf\xe0\ +\xe8\xdf\xe3\x9b\x76\x6d\xaf\x9f\x50\x51\xfc\x26\x80\xd2\x2c\x17\ +\x26\xd1\x27\x16\x56\x4d\xf8\x0a\x89\x7b\x25\x60\xb7\xe1\xb2\xe6\ +\x35\xf5\x00\xf0\x78\xf1\xf0\x62\x15\x89\x0c\x52\x46\x4a\x89\x5c\ +\x1e\x11\xf6\x5c\xba\x7d\xfd\xdf\x7a\x2a\x3f\xce\xd8\xac\x12\xd3\ +\x32\xad\xee\xf5\x6a\x03\x38\x7f\xae\x03\x53\xb6\xf9\x9e\x1b\x1e\ +\x49\x49\xae\xfb\x16\xd2\x63\x98\xf3\x25\x6d\x6b\x7e\xf6\x50\x4d\ +\xcd\xd0\xc1\x3c\xe0\xe3\x4a\x68\x32\x84\x3e\x9e\xfb\x3d\x9b\x7a\ +\x12\x7c\xdf\xba\xf8\x6b\x33\x9a\x1b\x5e\xc0\x71\x84\x63\x4f\x7a\ +\xe3\xce\x12\x1f\xbf\x10\xe0\xc2\x4c\x96\x69\x67\x0c\x00\x58\x67\ +\x56\x28\xd2\xd7\x2a\x4e\xfc\x42\x92\xba\xa3\x23\x40\x31\x7d\x18\ +\xc0\xbd\x39\xa5\x7c\xc5\xf0\xe1\x8a\xbd\x2b\x53\x5e\x0e\x08\x27\ +\x4b\x37\xc9\x49\x23\x49\x0d\x24\x11\x92\x20\xc8\x72\x1e\x75\xfe\ +\xc5\xf5\xaf\x3f\xf7\x00\x07\x96\x08\xdd\xec\x8b\x3c\x0a\x00\x86\ +\x50\x90\x74\x27\x16\x11\xf3\x3c\x61\x86\x06\xb0\x78\xe8\x29\x36\ +\x59\x6f\x42\x0e\x7b\xc9\x06\xc2\x60\x71\xf5\x78\x18\x2b\xbf\x3f\ +\x00\x77\xdd\x9c\xd6\xfa\xf4\x86\xd0\x7d\x45\xd5\x25\x9e\xe1\xeb\ +\x81\xc0\x89\xe7\x71\xda\xf4\x14\xd7\xa3\xcd\xa1\x88\xca\x1d\x00\ +\x4e\x76\x84\xc4\x41\x05\xf1\x9d\xb9\x1d\x0a\xd8\x43\xa9\x5d\x05\ +\xb1\x29\x75\x68\xf7\xee\xf6\x1d\x8b\x7b\xeb\xf3\x0d\x8d\x8d\x6f\ +\x25\x8d\xdc\xc5\x00\xb0\x62\x58\xed\x27\xa2\x86\xce\x12\x71\x11\ +\x68\xfe\xf3\x81\x58\x6c\xf3\xec\xb6\x4d\x7f\xc2\x71\x8a\x63\xae\ +\xde\x28\x74\x8f\x4f\x49\xeb\xae\x62\xf6\xd7\xb7\x76\xfc\x1e\x70\ +\x1d\x39\x25\x10\xe9\x73\x16\x56\x8e\xcb\xb9\x3b\x59\xcc\xfe\x3c\ +\xf4\x62\x2b\x1c\x10\xd3\xa7\xe5\x55\x44\x3c\x2e\x1b\x51\xd2\x9f\ +\x3e\x4d\x6b\xab\x5f\x22\x62\xae\x3d\xac\x71\x61\xf7\xfe\xa8\x0a\ +\xce\xc8\xbc\x77\xeb\x9e\xa6\x9d\xaa\x0b\xc1\x15\x0c\x98\xcc\xc8\ +\x1e\xdb\xef\xe8\x0b\x0a\xd8\x9d\x31\xde\xa2\x95\x6a\xce\xf5\x6c\ +\x47\x6c\xdf\x9f\xbb\xcf\x04\x79\x69\xee\xf6\xed\xfb\xfa\xd3\xf6\ +\x8b\x36\xd7\xff\xe2\xe2\xe6\xb5\x5f\x9a\xdc\xb2\xee\x8e\xc9\x8d\ +\x6b\x97\x1d\xcf\x84\x3f\xe6\xa4\x5f\x34\xa8\xf2\x7d\x16\x58\x69\ +\x89\x4a\x32\x0d\x2d\x82\x40\x98\xb4\x23\x7e\xee\x1e\x6c\xea\x20\ +\xb1\x7f\x4d\xed\x94\x26\x55\x7b\x80\x1c\x40\x0e\x9a\xf5\x35\x5d\ +\xcb\x7d\xa4\x6c\xf8\x75\xc4\xd1\xcb\x53\x2e\xce\xc4\x4e\x64\xf2\ +\x6f\x22\x70\x12\xfc\xfd\x57\x8d\x6b\xbf\x97\x67\xcc\x26\x2d\x89\ +\x9d\xc9\x4c\x17\x25\x24\xeb\x2f\xa4\x58\x0d\xee\x6f\xdf\xa6\x34\ +\xad\x5a\x24\x62\xfe\xc5\x27\x2c\xf4\x20\x71\x4d\x02\x26\x01\x27\ +\x76\x95\x01\x05\x25\x9a\x14\xb3\xb0\x66\xcb\x0c\x97\xd4\x7b\x09\ +\x0a\x22\x0a\xae\x39\x12\x98\xbf\x77\x2d\xd7\x38\x37\xc7\x63\xac\ +\xf4\xc5\xbe\xaa\x24\x58\xa1\x9c\x59\xaa\x83\xf8\xff\xf4\xd8\x8e\ +\x6d\xf5\x2b\x3c\xb1\x67\x44\x4d\xec\x87\xbe\xc4\x1e\x66\x17\x7c\ +\x7d\x4a\xeb\x86\xc6\x5c\xcf\xce\x7e\xab\xed\x0d\x16\xf3\x4d\xa5\ +\x64\x5b\xc4\x19\xf1\x5d\x4c\xb4\x0d\xea\xf1\x4f\x8e\x63\xaa\xde\ +\x08\x7b\xa7\xc5\x23\xf9\xb7\x10\xba\xef\x94\x0a\x04\x4a\x68\x53\ +\x42\xe2\xbb\x97\x81\x1e\xe2\x47\x48\xba\x46\xfe\x51\x91\xca\xfb\ +\x7c\xcf\x95\x3a\xb1\x30\xb7\x2e\x07\xec\x25\x70\xdb\x00\xd4\xf6\ +\x2e\xe9\xd1\xb0\x79\xeb\xfa\xf5\x87\xd2\xbf\x29\x4d\xab\xd6\x03\ +\x98\xf9\x44\xf9\xa8\x5b\xa3\x79\xde\xf9\x9e\xe5\xd3\x9d\xe5\xb2\ +\x44\xc4\x57\x2a\x1c\xc2\xc6\x13\xea\x9a\x8d\x91\xa5\x6d\xa2\xe8\ +\x35\x4b\xe6\xd5\x69\x4d\xeb\x37\xe6\x52\xae\xa6\x6e\x5b\xff\x3c\ +\x80\xe7\xfb\xd3\x8e\x0b\x13\xed\xb8\xaa\x2f\xcf\x7e\xb6\x65\xed\ +\xed\x00\xee\x58\x58\x53\x33\x22\x12\x48\xc9\xe4\xd6\x2d\x7f\x0e\ +\x49\x7f\x04\xb1\xd3\x0f\x7e\x55\xa2\xbd\xef\x08\x3a\xfd\xe6\x69\ +\xc3\x4c\x1c\x84\x5d\x14\x00\xda\x45\x7e\xeb\x09\xee\x04\x00\x9b\ +\xf4\xf3\xa6\xfc\xea\x04\x1a\xb1\xa0\xba\x76\xe8\x65\x4d\xf5\xcd\ +\x00\xb0\xa0\x6c\xc4\x44\x52\x6a\x8c\x49\xda\x6e\x69\x3b\x4f\x52\ +\xfe\x6c\xbb\xe2\xb2\xa6\x86\xdf\x02\x80\x11\x15\x97\xe4\x3e\x4f\ +\x6a\x1f\x20\xe5\xa7\x67\x97\x72\xad\xc9\xcb\xa7\x7b\x98\x85\x00\ +\x8f\xf5\xb7\x7f\xf7\xa1\x3a\xef\x56\x34\xb5\x27\xbd\x36\x3f\x4a\ +\x5e\xef\x04\xc8\x8c\xc6\xc6\x0d\x00\x36\xe0\x04\xc0\x31\x55\x6f\ +\x06\xab\x81\x1f\xe9\x45\xd7\x17\x21\x79\x0d\x00\x66\xb7\xae\xef\ +\x51\xb2\x11\x31\x47\xa1\xd3\x87\x4b\xf2\x75\xe4\x5a\x47\xdc\xa3\ +\xcf\x65\x3f\xb9\x3b\x3a\x3d\x0a\xea\xa0\xbe\x19\x2b\xa2\xd6\x46\ +\xf0\x5c\x7f\xfb\x76\x67\x49\xcd\xc9\xc3\xca\x0b\x77\x2d\xa9\x18\ +\xf7\xdb\x27\xaa\xc6\x4f\x43\x88\x90\xf4\x0b\x86\x8e\xac\x55\xa4\ +\xbe\x9a\x8a\xef\x4e\xc5\xaf\xa7\xa2\xf1\x2c\xdc\xd6\xfd\xc1\x9e\ +\x67\xd2\xee\x34\x1b\x3c\x45\xe8\x8c\x77\x47\x32\xf2\x5c\x1c\x19\ +\x88\x9a\x06\x00\x8b\x86\x8e\xbd\xdf\x68\x7f\x2e\x32\xfc\xd2\x29\ +\x1d\x9a\x09\x60\x96\x47\xe6\x6c\x59\xdf\xd0\xe9\xd9\x40\x24\xed\ +\xb8\x4f\x45\x13\x26\xdb\x23\xa4\x20\xa4\x40\x4c\x54\x90\x5f\xd6\ +\xef\xa8\xce\xd3\x74\x74\x8c\x63\xcf\x77\x5e\xe4\x3c\xad\xfc\xc5\ +\x8b\xab\xea\x5e\xfe\x6e\xc5\xe8\xd2\x90\x62\x27\x30\xe9\xb5\x53\ +\x5f\x25\x51\x3d\xc7\xdc\x10\x3d\x3c\xa7\xb5\xf5\x40\xea\xc7\x98\ +\xb5\x8b\xb9\x07\x9f\xb4\x80\x3f\xf6\x78\xe5\xd8\x7b\x35\xfc\x9b\ +\x7b\x2c\x4e\x9c\xb5\x2e\xfe\x60\x56\x67\x45\x06\xf6\x45\x25\xd6\ +\x71\xff\xa4\xfe\xf6\xcf\x82\x27\xdb\xcc\x93\x4d\x24\x67\x17\x33\ +\x7f\x2d\xa4\xd8\x09\x4c\x7a\x4f\x69\x6d\x33\x76\x4a\x53\x12\xd6\ +\x91\x82\x23\x05\xe5\x24\xcb\x78\x7c\x65\x6b\xfd\x7f\x93\xd8\x3d\ +\xe9\x9d\xd5\x64\xf6\x02\xa7\xa0\x9d\x82\x8e\xe8\xe8\x97\x0c\x33\ +\x59\x10\x6c\x46\x9c\x3c\x4b\x5c\x58\xe2\x12\x90\xfb\xf7\x99\x4d\ +\x1b\x5e\xcf\x56\x5d\xec\xa0\x5e\x47\x82\x01\x51\x8a\x3b\xa2\x5e\ +\x7b\xbf\x5d\x8e\xa0\x8f\x27\x56\x8f\xa4\xbb\x89\x09\x4a\xd1\xee\ +\x90\x62\x27\x28\xe9\x1f\xa9\x18\x79\xa6\x65\xff\xa2\x5e\x2d\x29\ +\x17\xcf\xf2\xdf\x3f\x00\xc4\xc4\xc9\x21\xed\xe4\x59\xc2\x4b\xb3\ +\xb6\xac\xfb\x72\xd7\xfb\x06\x36\x7a\xf0\x01\x91\xfc\x01\x5e\xf4\ +\x8c\x7e\x5b\x82\xbe\xdf\xc5\xcd\x29\xbb\x0f\xc4\xe2\xdf\x0c\x29\ +\x76\x82\x92\x3e\xa2\x75\x8b\x72\x02\xe5\x3a\x4f\x30\xa5\x62\x6f\ +\xb4\x8b\x89\x76\x31\x21\x92\x6d\xdd\x55\x06\xfb\x1b\xcf\x59\x78\ +\xce\xa6\x9f\x4f\xb9\xfe\x1c\x25\xae\x94\x8e\xce\xc9\x8c\x2b\x04\ +\xc0\xb2\xe4\x3c\x50\xce\xc4\xe9\x50\xdc\xce\xf2\x52\x41\x33\x29\ +\x5d\x9f\xa0\xc8\x6d\xef\x4f\xff\x7e\x50\x36\xa2\x3c\x15\x73\x43\ +\x62\x40\x62\x00\xe0\xd9\x6b\x7a\x4f\xa1\x11\xe2\x9f\x99\xf4\xda\ +\xd1\x41\x25\xe7\x86\x3d\xc1\xba\xae\xf7\x9c\x74\xbc\xd2\xdf\xba\ +\x1c\xb9\x3f\xcd\xde\xbc\x36\xe7\x0a\xa1\x89\xfa\xb2\xd3\xd8\xd1\ +\x1e\xec\xe9\x57\x08\x6c\x14\xa8\xe8\xbe\x72\xc9\xeb\x21\xbd\x8e\ +\x4f\x1c\x13\x3f\xbd\xef\xf4\x38\xab\x53\x69\xf4\x92\xa4\x30\x2e\ +\x69\xb0\xba\x3f\x88\x48\xfd\x17\xf7\x36\x77\x3b\x60\x30\xa3\xb5\ +\xf1\x2f\xcb\xab\xeb\x7e\x6f\x95\x7e\x7f\x86\x85\x98\xb4\x13\x53\ +\xf1\xf1\xc9\x18\x1b\x17\x24\x54\x18\x4d\x3d\xa6\x0d\x09\xac\x0c\ +\x21\x2f\x65\x0c\xa7\x83\x74\x92\x7f\xa4\xfe\xa4\xff\x09\xf6\x71\ +\x1e\x80\x03\x7d\x56\x6d\x48\xd5\xa4\xe2\xc6\x25\x29\x47\xc4\x71\ +\xcd\xa2\xf2\xba\x9b\x58\x6c\xd4\x91\x1a\x94\x3a\x50\xe2\x38\xd8\ +\x30\xb3\xa5\xe1\x8e\xc3\x19\xcf\x65\xe5\x23\x27\x32\xf4\xb5\x01\ +\xab\x17\x2e\x6d\x5d\xbd\x22\xa4\xf1\x71\x48\x7a\x30\xce\xea\x91\ +\x30\x22\xf5\x03\xf6\xed\xea\x31\xca\xd0\x58\x79\x4c\xb1\x9c\x6b\ +\x7b\x88\xd3\xee\xa2\x10\xfd\x62\xd6\xa6\xfa\x5f\x1e\x56\x5b\xc5\ +\xbd\xdf\xcf\xf3\xce\xc0\xde\x9e\x77\x41\x17\x55\xd4\x9d\x4c\x56\ +\x26\x10\x63\xb4\x65\xae\x23\xc8\xfb\xbb\x3b\xa3\xf8\x66\x28\x81\ +\x83\x06\x40\x89\x50\x0a\x11\x78\x2c\x5b\x01\xdc\x89\x2e\x01\x90\ +\x0b\x2b\x46\x7f\xcb\x73\xea\x53\x46\xf3\xb3\x7b\x85\x1e\x9c\xd3\ +\xba\xaa\x5b\xe8\xc0\x13\xe5\xc3\xdf\xad\xa9\xe0\x6e\x21\xba\xc0\ +\x91\xb0\x06\xe6\x2e\xae\xae\xfb\xd6\xa5\x4d\xab\x7a\x8d\x2b\x5a\ +\x34\xb8\x76\x9c\x28\x1e\xc6\xa0\x32\x4b\x18\xac\x80\x42\x16\x14\ +\x3a\x45\x79\x20\xa7\x04\xb4\x6a\x7a\xcb\xea\x87\x8e\x35\xf9\x16\ +\x95\x8c\x3e\xb9\x03\xb2\xe7\xca\x9d\x0d\x5b\xfe\xa9\x48\x3f\x0f\ +\xc3\xa3\x2c\xfc\xa1\xa0\x0b\x65\x49\x27\x24\x62\x7e\x87\x7d\xd5\ +\xef\xb0\x3d\xee\x04\x6e\x6d\x6f\x7f\xae\x5a\x15\x76\x90\x92\xbc\ +\x6c\x09\x9d\x8a\xa2\xb4\x49\x69\x2b\x4d\x6f\xa9\xf8\x95\x87\xdc\ +\xd0\xd4\x8a\x41\x12\x44\xfd\xe8\x5d\x0f\x56\x8e\x58\x73\x63\xeb\ +\xc6\xac\x83\x14\x4f\x97\x8f\xbe\x12\x1c\xf9\x4f\x4b\xaa\xc4\xa9\ +\x64\x4a\xd6\x54\x82\x02\x56\xc9\x15\x27\x19\xad\xc8\x2e\x1d\xa6\ +\x9c\xce\x68\x06\x27\xb0\x76\x21\x72\x44\xfc\x6a\xab\x4f\x26\xad\ +\xc7\x30\xd3\xed\x03\xad\xbd\x6e\xfe\xe0\xda\xf1\xd7\xef\x48\xec\ +\x3a\xaf\x28\x2e\x2e\xee\xc8\x2b\x5b\xe6\x0b\xbd\xa7\x43\x51\x9b\ +\x83\x74\x38\xb2\xf9\x09\x27\x98\xbb\xe5\xa1\xaa\x11\x8f\xde\xd0\ +\xb2\x71\x6d\xb6\x9d\x51\x56\x3e\x04\xc5\xcf\x04\xca\x7b\x6f\xd2\ +\xb8\xa7\xc4\xa8\x59\x08\x00\x9b\x98\x85\x60\x78\x20\x00\x8b\x87\ +\x4e\x9c\xdd\xe1\xed\x3d\xef\x8a\x4d\x9b\x3a\x8e\x36\x27\x96\x94\ +\x8e\xb9\x49\x22\xfe\x77\x01\x20\xdf\x89\x2c\xa9\xaa\x03\xc0\x6b\ +\x04\xee\x4d\x30\x2f\x50\x4d\x6f\xfc\xe8\x60\x87\x85\x8e\x6b\xd2\ +\x8f\xac\xf0\x4f\x21\x42\x8f\x89\xfa\x85\xd5\x57\x76\x15\x78\xef\ +\x45\x0f\xce\xbd\xcf\xef\xda\xb4\x6b\x79\xc1\xf8\x17\x00\xbe\xa0\ +\x77\x5d\x1e\xd7\xcf\xdd\x74\x64\x72\x26\x7a\xa0\xf7\xc4\x55\xd0\ +\x2d\x1a\x34\xee\x8c\x55\x2a\xbf\x4f\x11\x98\x24\xae\x8d\x19\x7f\ +\x26\x87\x16\x81\xdb\x61\x9d\xdb\xe6\x4c\xfc\xd5\xe9\xdb\x1b\x73\ +\x1f\xfe\x00\x95\x5a\x52\x00\x1c\xa0\xd4\x80\x81\x11\x75\x33\x80\ +\x3b\x17\x17\x55\xcc\x35\x91\xc2\x7b\x00\xfc\x35\x4e\xf2\x0a\x43\ +\xce\xee\x5c\x40\x5d\x53\xcc\xc4\x3e\x77\x43\xeb\xe6\x6e\x07\x3e\ +\xae\xd9\xb6\x6d\xdb\x33\x15\x03\xff\x00\xe0\xbd\xdd\xe7\x37\x6d\ +\x01\x28\x4f\x44\x86\x74\x1a\xf9\x32\x49\xc7\x0a\xbe\x08\xe0\xcb\ +\x07\xeb\xdb\xa3\x45\xd5\x25\xc5\xd1\xc2\x0f\x18\xf0\x29\x60\x19\ +\x22\x2c\x1b\x0d\xa9\x5f\xcf\x6a\x5e\xf9\x5a\xaf\x92\xbd\x6c\x44\ +\xb9\xcf\x05\x0f\x09\xd3\x45\xa6\x4b\x98\x91\x28\x35\x9e\xc0\x20\ +\x71\xef\x8b\x0d\x1d\x37\x09\xcd\x6b\xe6\xbc\x63\x49\x2f\x12\x54\ +\x38\x8a\x52\x4a\x3b\x49\xfd\xe9\x92\xb2\x4e\x29\x35\xe0\xe5\xdd\ +\x6d\x4d\xbd\x2a\x2d\x26\xf6\x6b\xd2\xfe\x05\x89\xf2\x08\x29\x89\ +\x95\x20\x97\x85\xc0\x2e\x9d\xb9\x65\xed\xcf\x0e\xaa\x65\x11\xa5\ +\xb3\x0a\xa4\xe3\xe7\x25\x65\x6b\xa4\x0e\xb7\xea\x88\x48\xf0\xcb\ +\x5b\xb7\x34\x75\x8b\x41\x9f\xbe\x7d\xd3\x82\xe5\x43\xc7\x7d\x96\ +\x89\x3f\x25\x02\x58\xc2\x5e\x07\x69\x20\x52\xa7\x74\x06\xf0\xdb\ +\x00\x00\xa6\x35\xad\xe9\x57\xee\x1c\x66\x0c\x21\x17\xec\x8b\x7b\ +\x91\x42\x00\xd0\x62\x6f\x5c\x5a\x56\x7b\x4a\x00\xeb\x59\xed\xbf\ +\xe9\x21\x98\x94\xb4\x5d\xf2\x1c\xb9\x7f\x68\xc8\xb7\x63\xc6\xbc\ +\x78\x79\xdb\xe6\x9e\x0e\xb1\xcb\x67\xb7\xae\xbb\xe3\xe9\xf2\x71\ +\x2f\x69\x25\x53\x03\xe5\xfe\x1e\x37\xe6\x7f\x67\xb4\x26\xd2\x90\ +\x3f\x59\x39\xf6\x16\x4f\x45\xef\xb7\x2a\xb1\x42\xb1\xb3\x14\xd1\ +\xf1\x0b\x7a\x22\xfd\x77\x4b\x4a\x8a\x00\xa0\xd2\x2b\xbf\x87\x49\ +\xcd\x89\x73\x62\xe5\x4d\xc5\xb4\x46\xc4\xc9\xe2\xea\x71\x2f\x3a\ +\x1b\xbb\x6c\x46\x97\x15\x12\x00\x16\x54\x8e\xac\xf1\x29\xff\x85\ +\x80\x31\x2a\x79\x26\x40\x2c\xec\x6f\x0e\x30\xdd\x56\x80\xc8\x0f\ +\x40\x3c\x29\xb1\x1f\x03\x62\xeb\x66\xdf\x5f\x36\xe2\xcb\x9f\x3b\ +\x4a\xde\xaf\xa3\x4e\xfa\x88\xa7\x4a\x85\x7a\x3e\xbf\x43\x64\xfe\ +\xf6\x08\x10\xf4\x56\xc6\xb4\xb6\x0d\xdf\x59\x3e\xb4\xee\xd3\x46\ +\x7b\x1f\xec\x26\xe1\x11\xdc\xff\x56\xc7\xae\x2f\xf5\x8d\x59\x7d\ +\x38\xb9\x47\x80\x86\x5e\xd4\xd3\xaf\x2f\x69\x5e\xf3\x99\xa7\xab\ +\x47\x8e\x66\xa7\xf4\xef\x63\x3b\x9a\x1f\xd8\xb9\x73\xef\xe2\xea\ +\xf1\x2d\x42\xaa\x22\x63\xa6\xaf\xee\xb7\x76\x45\x54\x62\x3d\x2f\ +\x3b\xfc\xc1\x8b\x9e\xcb\xb0\x79\x22\x8e\x40\xd8\x2d\x90\xc7\x05\ +\xf1\x47\xa6\xb5\x6c\xee\x73\xf9\x93\xdb\xd6\x3c\x07\xe4\x88\x25\ +\xf2\xed\x4b\xec\x1c\x6c\x2a\xb7\x2a\xe1\xa0\x07\x1b\xab\x22\x55\ +\x3f\x27\xc1\x69\xb9\xb5\x43\x07\x4f\xcc\xa9\x86\x31\x09\x40\x37\ +\xd2\xe7\x71\xf4\xfb\x06\x6a\x54\x4a\x6b\xd9\x8f\xe0\xd6\xab\x9a\ +\xd7\xdf\x0f\x00\x4b\x87\x4e\xdc\x6c\x81\x49\x9d\xab\x1e\x07\x9f\ +\x3b\x8a\xee\xde\xa3\x4e\x7a\x12\x7d\x53\x40\x00\x92\xba\xae\x74\ +\x8a\x5d\xc0\xe1\x6f\x93\x5b\xd6\xbf\xaf\x2f\xe5\x5c\xd2\xbc\xea\ +\x43\x4f\x57\x4f\xbc\x91\x88\xee\x10\xb1\xd5\x71\x09\x7e\xd3\x2e\ +\xc1\x4d\x57\x75\xd1\x65\x7b\x5d\x75\xe0\x4c\x3a\xff\x58\x3a\xca\ +\x32\xf5\xce\x3b\xef\x3b\x09\x7a\x1b\x17\x99\xdc\xb4\x61\x5d\xf6\ +\x5c\x72\x6f\x39\x4a\xb9\x2d\xd9\x13\x31\xfb\xfb\xef\x6a\x45\x01\ +\x99\x40\xa0\x3d\x02\x80\x80\x24\x3f\xe1\xee\xb5\xe2\x60\x17\xef\ +\xd8\x17\x9b\x7b\xc3\xee\xc6\xb7\x8e\xc4\x3b\x59\x5c\x5a\x7b\x8e\ +\x8a\x7b\xf7\xc6\x35\x01\xe9\xb3\x05\x02\x0b\x97\xf3\x5b\x56\x2b\ +\x22\x83\x3e\x11\x44\x2b\xef\x6a\xd7\xfa\x6c\x95\x3a\x61\x25\x30\ +\x8e\xcc\x5d\xbe\xf0\x4a\x51\xf1\x5d\xd6\x61\xdb\xb4\xa6\x86\x1e\ +\x73\xf8\x04\xac\x3f\x91\xb0\x21\x12\x6e\xb6\xab\x9a\x12\x84\x4f\ +\x8c\xbd\x51\x92\xf6\x9e\x0b\xb4\xa3\xbf\xbd\x63\x0d\xd9\xc7\x2a\ +\x47\x9e\xe1\xd8\x3b\x35\xa7\xca\x22\x00\x89\x1b\xb6\xa4\x72\xec\ +\xf3\xd3\x5a\xd7\xf6\x29\x53\xf0\xe4\xa6\xd7\x1f\x5c\x06\xcc\x8f\ +\x8f\x1c\x59\x37\x73\xc3\x86\x37\xd0\xdf\x43\xd7\xc2\x07\x3d\x8d\ +\x1f\x80\xa0\x9d\xba\x1b\xc0\xe3\x7d\x9a\x8c\x80\xb2\x82\x11\xe9\ +\x54\x23\x00\x1c\x68\x44\x7f\x9a\xf5\x60\x65\xcf\x59\x09\x0c\x62\ +\x0f\xfc\xa4\x65\xe3\xad\xcb\x8f\x80\x61\xf7\xbd\xd2\xe1\x15\xc5\ +\x3a\xfa\x04\x91\xf7\xe1\xb8\xca\xf6\x86\x39\x11\x88\xa0\xdb\x37\ +\xb7\x96\x01\x63\xdb\x0b\x0b\xa7\x5a\xed\x9d\x93\xdd\x2e\xbb\x64\ +\xd6\x96\x35\x7d\xda\x71\xfe\x61\xd5\xe8\xd3\x1c\xf0\x22\x03\xe7\ +\x26\x55\xdb\x2c\x95\xcc\x82\x86\x66\xb6\x03\xec\x2a\xde\xb1\xa4\ +\xcf\x63\xff\x64\x24\x83\xb0\xd2\x12\x35\xf5\xad\x25\x10\xc0\xaa\ +\xc4\x69\x5b\x3b\xaf\xb2\x32\xff\x9e\x8c\x60\xb3\xde\x30\x05\xb0\ +\xd8\xb0\xe1\x90\x36\x7e\x3c\xe2\x3d\x1d\x9d\x71\xf9\x59\x7e\x7a\ +\x49\xdf\x57\xb0\x4a\x8d\x7a\x72\xe8\xd8\x7b\x67\x35\xaf\x3d\xa8\ +\x51\x77\x52\x49\xf9\x99\x1e\x71\xc4\xa4\xd3\xea\x30\x14\xdb\xbf\ +\xf4\xa7\x5d\x7e\x10\x8f\xb8\xbc\x22\xca\x5a\x71\xc8\x04\xed\x14\ +\xcc\xbc\xaa\x69\xe3\x61\x7d\xb7\xe9\xa9\x92\x92\x22\x9f\x2b\xce\ +\x13\x8f\x4e\x71\xc4\x37\x83\x4d\xa9\xc0\x24\x32\x43\x03\x90\xe4\ +\xf9\x7c\x22\x07\x06\x77\x3b\x35\x45\x91\xa2\x8f\x3a\xbf\x60\x04\ +\x53\xaa\x5d\x36\x06\x00\xd6\x05\x5f\xe9\x6b\x1b\xa2\xca\xbb\x19\ +\x49\xc2\x43\xc8\x63\xea\xcc\xc3\xf3\x54\xc5\xe8\x3a\x12\x35\x36\ +\xf5\x36\x14\x01\x02\xaa\x7c\xc7\x92\x5e\x89\x3b\xbd\x4f\xe2\xa9\ +\xb5\xf5\xa8\xbb\xc9\x12\x52\xd8\xf5\xf9\xec\xa7\xe5\xbe\x65\x20\ +\x1b\x07\x7d\x56\xfa\xc3\x55\x49\xd2\xf6\x3b\xe7\x47\x0e\xef\x96\ +\x01\xbd\x70\x55\xe3\xfa\xe5\x87\xd3\xdf\x65\x25\xa3\xeb\x94\xf6\ +\x57\x58\xc5\xb5\xc2\x94\x95\x28\x57\xc4\xbd\x4c\xc4\xef\xcb\x54\ +\xfe\x02\x31\xdd\x72\x4d\xba\x81\x55\xb7\x41\x69\xca\x5e\xa5\xe5\ +\x97\x97\x67\x84\x6c\x1f\x7c\x85\x55\x17\x22\x63\x84\x60\xdd\xcb\ +\x8f\x96\x8e\x1a\x5d\xa8\xf3\xee\x04\xd1\x64\x61\x14\xa7\x1f\xb5\ +\x66\xaf\xb0\xbb\xe6\x68\xf2\xe0\xe8\x86\x21\x38\x3a\x9b\x9d\x03\ +\x3b\xd7\xf9\xa1\x8a\x54\x6e\x18\xa4\xf3\xcd\xac\xbc\xa7\xdf\x39\ +\x08\x0e\xb5\x39\x66\x7b\xaa\xe2\xd4\x19\xda\x8c\x57\x91\x95\xfd\ +\xc3\x1a\xd7\xa7\x0f\x39\x94\x44\xf2\xb6\x49\xc6\x17\x4d\x20\x0e\ +\xce\xba\xa6\xfe\xb4\x6b\xb7\xd8\xe2\x74\x08\x10\x33\x84\x19\xca\ +\xb9\x33\x0f\xa7\xaf\x3f\x28\x1f\xfe\x1e\x8a\xf8\xcf\xc7\x7c\xaa\ +\x35\x4a\xe0\xd8\x02\x12\xec\x20\x31\xff\xb6\x2f\xbe\xa3\xe2\xe5\ +\x3d\x2d\x9f\xf6\x2c\x1b\x16\x01\x27\xe3\x8e\x44\xe8\x0f\x99\x65\ +\x3c\x59\x5a\x7b\x4e\x10\x8d\xd4\x10\xab\x48\x46\x7e\x22\xbf\x43\ +\x4c\x9f\x3f\x97\x79\x43\x69\x69\xa1\x16\x2a\x4c\x65\x85\x16\xb1\ +\x30\xcc\x1f\x2c\xf4\xa3\xbf\x10\x36\x57\x0b\xdb\x62\xc0\x40\xb9\ +\xd8\x0e\xd8\xf6\xfb\xac\x09\x46\xcf\xdc\x52\xbf\xf4\x1d\x2b\xe9\ +\xb5\x92\x95\x01\xd0\x63\xf2\x55\xe5\xe2\x9b\x58\x3a\x96\xe3\x18\ +\x41\x40\x9b\xfb\xac\x9a\x11\x55\xcc\x03\x74\x6f\x59\xb9\x6e\x07\ +\x2a\x02\x91\x0a\xce\xae\x44\x20\xae\x5f\x5f\x27\x2c\x24\xbf\xdb\ +\x27\x7f\x14\x64\x0b\x0e\x23\x51\x54\x31\xe7\x2f\xb7\xac\xab\x53\ +\xa6\x00\xd9\x60\x45\xbb\xdb\x3b\xe7\xca\xad\x5b\xb7\x03\xc0\x7d\ +\xd5\xd5\x79\x5d\x4a\x17\x80\xb2\xdc\xbe\x11\xc2\x99\xf1\xc4\x2f\ +\x32\xda\xa7\x1a\xaf\xde\xb2\xae\xcf\xfd\x7b\x97\x2e\x1a\xeb\xba\ +\xe4\xe2\x54\xe2\xae\x4d\x1f\xd3\x14\xb3\xde\x38\xf7\xd0\x9a\xfd\ +\x1d\x0b\xee\xd9\xd3\xb4\xf3\x58\xf0\xe0\xa8\x92\xde\xb9\x60\x8d\ +\x26\x0d\xc3\x8c\xa8\xb3\x3b\x01\xe0\x00\xcb\x66\x1f\x7c\xaa\x88\ +\x21\xe7\xdc\x77\xa6\x36\x6f\x5a\x70\xac\x48\x0f\x76\x1b\x95\x4b\ +\x2e\x2a\x4a\x75\xd1\xe9\xd3\x9e\x98\x94\x2f\x63\xc2\x80\xca\xca\ +\x62\xb4\xb6\xf6\xf8\x41\xe5\x12\x20\x1f\xce\x95\x8b\xca\xc8\x86\ +\x2c\x62\xde\x6c\xb7\x2f\xf7\x8b\xa0\x14\xb9\xd1\xa1\xcb\xbe\x01\ +\xa8\xe1\x50\xbb\xb9\xb4\xac\x76\x9e\x51\xaa\x3a\xd1\x2b\xd7\xdc\ +\xe1\xe2\x53\xae\x6c\x69\xc8\xfa\x80\x5c\xb9\xc9\x9f\x28\x4a\x74\ +\xda\x9d\xec\x1c\x3a\x92\x9f\x15\xed\xf4\xbc\xb9\x32\x9d\xfc\xbd\ +\x4d\xc5\x26\x65\x24\xa7\x4b\x1a\xba\xca\x14\x8c\x18\xe2\x7c\x3b\ +\x3a\xb0\xd6\x5e\xb1\xa7\x39\x2b\x48\xb0\x10\x91\xab\x33\x4c\x15\ +\x30\xab\x80\x5d\xfc\xaf\xe4\xdc\x3f\x2c\xdc\xca\xa9\xad\x1b\xbe\ +\x83\x63\x8c\xa3\x4a\xfa\xf8\x01\x3b\x3f\xaf\xc8\xb6\x7a\x84\xb3\ +\x01\xbe\xc8\xc1\x36\xcf\x6a\x5c\x7d\xfa\x93\x35\x27\xff\xc5\x77\ +\xe6\x2d\xdd\x5c\x7f\x4c\xe3\x3d\xc4\x79\x33\xa9\x8f\x0a\x9d\x70\ +\x64\xf1\x6d\x4d\x0d\xbd\x7e\x41\xfc\x2e\x60\xc3\x62\x00\x16\x02\ +\x81\x7d\x96\xa0\x3e\x03\x07\x6f\x60\xc4\x1f\x09\xa0\xb1\xcf\x06\ +\xb6\x92\x9d\xb1\x6e\x6d\x95\x43\x52\xf9\x6e\x02\x22\x1a\xea\xee\ +\x94\x41\x62\x88\x9e\xeb\x4a\xf8\xc4\x4a\x42\x17\x23\xc3\x81\x93\ +\x48\xff\x87\x6a\x00\x7f\x4d\xbf\xbf\xc0\xce\x8f\x5a\x7b\x75\xa0\ +\x32\x52\xa2\x10\x4e\x5a\x5c\x7d\xca\x26\xe7\xac\x26\x41\xc4\x42\ +\xf2\x59\x5c\x34\x91\x54\xcb\x2e\xc3\x1e\x4c\xcb\xae\xc7\x8d\xb3\ +\x4c\x69\xa9\x12\x88\x5a\x36\xab\xb9\x7e\x26\xde\x46\x1c\x55\xd2\ +\xcf\xd8\xdd\xf8\x16\x76\xe3\xf1\xa4\xfb\xef\xea\xe5\x95\xa3\x3f\ +\x0a\x40\x06\xb5\xef\xb9\x25\xa6\x41\x17\xf7\x31\x5d\xf5\x91\xc0\ +\x03\xe5\xc3\x46\x68\x51\xd3\xe2\x49\x6f\x12\xf7\xc0\x29\x97\x9c\ +\x15\x5a\x6c\xd5\xc1\xca\xbc\x03\x98\x24\xc4\xc5\x1a\x24\xed\x82\ +\xa1\x9e\x24\xce\xda\x7a\x96\x82\x85\xa5\xe3\xc7\x88\xc8\xa7\x7d\ +\xc8\x78\x51\x6a\x40\xea\xe8\x7a\x9c\x63\x8d\xfb\xda\x0f\x3c\x30\ +\xe7\xad\xd6\xce\x49\x41\xf6\xcd\x54\x46\xb2\x54\x96\x06\x47\x92\ +\x77\x48\xfd\x04\x62\xe7\xb1\x6c\x26\xd0\xe8\xc4\xe2\xa6\xdf\xf5\ +\xd4\xd0\x09\xd7\x05\xe2\xf6\x1c\x08\xf0\xd3\xb9\xdb\x57\xed\x03\ +\x00\x1f\x18\x62\xd1\x99\x0d\x82\x40\x31\x73\xc0\x64\xa9\x2d\x33\ +\x76\x6d\xdc\xbc\xa4\x60\xfc\x27\x95\xf0\xb3\x0c\x94\x0b\x00\x0d\ +\x6b\x40\xa8\x74\x9c\x70\xd8\x07\x40\x54\x04\x60\xb0\x10\x5c\x77\ +\x3e\x89\xc4\x88\x3a\x23\xa6\x94\xe0\x03\x4f\x95\xd7\x7d\x88\xd9\ +\xbc\x36\xbd\xb5\x7e\x47\x6a\xc5\x78\x6c\xc8\x49\x55\x00\xb0\xdf\ +\xed\xdf\x77\x73\x97\xbc\xf8\xef\x28\xd2\x77\xf3\x69\xb7\x26\x72\ +\xa4\x7f\x72\xfb\x96\x97\xde\x8e\x19\x9e\xb1\x03\x72\x70\x87\x8a\ +\xb8\x41\x07\x7b\x66\x68\x61\x61\x81\x28\x1e\x26\xc4\x31\x0d\x1e\ +\x92\x12\x67\xac\xf9\x65\x80\xc0\xe2\x60\xa9\xf3\xd0\x0b\x48\xa0\ +\xc4\xc5\xc4\x77\xbf\xcc\x5c\x09\xf6\x5a\xd3\x16\xd5\xdd\x24\xf1\ +\x21\x8f\x91\x11\xf3\x12\xe0\x8f\x4e\xb8\x18\xe5\xdd\x24\x78\x77\ +\x84\x18\x11\xdf\xbd\xf9\x64\x65\xed\x6a\x23\xf1\xd9\x24\xa6\x25\ +\x91\x70\x30\x19\x86\x00\x59\xf3\xf9\x5d\x9b\x76\x75\x2d\x6b\x5a\ +\xf3\xea\x57\x1e\x1b\x32\x64\x4c\x51\x41\xe9\x54\x6d\xf9\x42\x21\ +\x7c\x2c\xc3\x7c\xd9\xa4\xc4\x35\x88\xc8\x2a\x63\xe5\x99\x99\x6d\ +\x1b\xba\x9d\x7f\x68\xb7\xf6\xae\x3c\x71\x67\x39\xa8\x64\xae\x23\ +\xa9\x62\xa5\x7e\x03\x61\xb7\xa4\x62\xc2\x3e\x07\x31\x04\xf8\x04\ +\x44\x89\x44\x15\xa2\xc0\x2e\xaa\x1c\xd2\xd8\xa1\xf0\xf5\x2b\x9b\ +\xea\x1f\x3d\x1a\x3c\x20\x9c\x40\x78\xba\x6a\xdc\xca\x40\xfb\x75\ +\x19\xaa\x73\x5a\x9b\x77\x92\x1d\xbd\xa9\x6d\xc7\xcf\xa6\x35\xaf\ +\xe9\x35\x4b\xf2\x0f\x07\x0e\x39\xad\x38\x3a\xe4\x4f\x56\x6b\xcd\ +\x90\xfd\x00\x10\x23\x29\x48\xb9\x2e\x93\xc9\x38\xc1\x02\x23\xe4\ +\xde\x10\xc2\x4f\x3b\x4c\xc7\xb2\xcb\xb7\x36\xae\xec\x5a\xd6\x33\ +\x43\xc7\xbe\x65\x59\x15\x8b\x38\x11\xb1\x60\x67\x67\x5d\xd2\xba\ +\x61\xe1\xa1\xf4\xf3\x89\xf2\x51\x65\x51\x1d\x7d\x15\xcc\x35\x2e\ +\x65\x5b\x03\x60\xb1\x20\x17\xc0\x09\x9f\xeb\xf6\x1f\xd8\x5a\x58\ +\x58\xf0\xa7\x38\xcb\xa0\xa4\x4e\xff\x93\x4b\x5a\xd6\x7f\xe6\x68\ +\x8c\xfb\xc2\xca\x51\xa7\x47\xbc\xfc\xa7\x44\x78\x9c\x85\x40\xc4\ +\x22\x0f\x76\x7f\x62\x82\x26\xd5\x1e\xe8\x02\x90\x80\x90\xf8\x4e\ +\xae\x90\xfc\x78\x7a\xd3\xfa\xc9\xef\x78\x49\xff\xb6\x83\xe4\x45\ +\x00\x75\x7d\x93\x06\x72\x50\x49\x7f\xe5\xee\x37\xff\xfa\xe3\xc2\ +\xe2\x11\x1a\x7c\x9b\x10\x7d\x4a\x04\xe5\x49\xa9\xf9\x8c\x22\xbb\ +\xdc\x00\xcd\x41\x10\x6b\x6a\x43\xc7\xb6\xd4\x87\xd0\x7a\xb4\xb1\ +\xe3\xb1\xeb\x28\x12\x39\x2d\x66\xcd\xd9\x31\xd7\xf1\x1f\xde\x01\ +\xf7\xca\xa1\x76\x73\x76\x5b\xc3\xb6\x45\x65\x23\x26\x45\xa2\x91\ +\xeb\x94\x4d\xf8\xe2\x1d\x8b\x88\x98\xdd\x4a\xb0\x3d\x46\x41\x74\ +\xc6\x9e\xa6\x75\x0f\x17\x54\xd6\x2a\xe7\x8d\xf5\x45\x62\x85\xfb\ +\xdc\xc6\xa3\x35\xec\x33\x5a\x1b\xfe\x32\x0f\x38\x75\x62\xcd\x84\ +\x29\x11\x91\x29\x02\x77\x06\x80\xa2\xec\x55\x58\xda\x20\x00\x31\ +\x5e\x75\x22\x7f\x8e\x8b\x5d\x72\xd4\x68\x70\x22\x71\x7e\x71\xd5\ +\xc8\xe9\xe2\x0d\x58\x98\xe5\xb5\x11\xca\x1a\x88\x54\x7c\x3e\xbb\ +\xf8\xc6\xa9\x4d\xf5\x23\xfb\x53\xfe\x8a\xe2\xe2\xe2\xbd\x91\x88\ +\x3f\xbb\xad\x6d\x1b\x42\x1c\x54\xdb\xcc\x5a\x6a\x8f\xd1\x5e\xcd\ +\x09\x47\x7a\x00\x58\x5e\x5d\xb7\x39\x50\x5e\xcd\xc1\x48\x2f\x2e\ +\xf6\xc0\xf4\xa6\x75\x37\x87\xdc\xfc\xe7\x23\x3d\x9f\x68\x23\x1d\ +\x04\xf6\x0a\xdf\x99\xfd\xbe\x4b\x7e\x57\x55\x2c\xb4\x38\xb0\x18\ +\x28\x17\x08\x9c\xf9\x23\xb9\xf8\xf9\x21\xe1\x8f\x3a\x6c\xf2\x72\ +\xc7\x92\xf0\x27\xa4\xa4\x07\x12\xdf\x7d\x75\x24\xd7\x7a\x9e\x6a\ +\x24\xe1\x52\x08\xd5\x88\x93\x9a\xb8\xb8\x27\x2f\x6d\xad\x0f\x0f\ +\x5a\x87\x08\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\ +\x10\x21\x42\x84\x08\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\ +\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\x10\x21\x42\x84\x08\ +\x11\x22\x44\x88\x10\x21\x42\x84\x08\x11\x22\x44\x88\x77\x18\xfe\ +\x0f\x6f\x35\xc3\xe3\x6f\xd7\x12\x65\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x0d\x08\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x32\x39\x35\x31\x36\x30\x38\x30\x39\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x32\x36\x38\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x32\x32\x2e\x33\ +\x34\x34\x31\x37\x36\x20\x31\x35\x32\x2e\x32\x30\x39\x31\x38\x36\ +\x76\x2d\x30\x2e\x30\x35\x30\x35\x37\x35\x63\x30\x2d\x30\x2e\x37\ +\x36\x35\x38\x35\x31\x2d\x30\x2e\x30\x38\x36\x37\x2d\x31\x2e\x35\ +\x31\x37\x32\x35\x31\x2d\x30\x2e\x31\x33\x30\x30\x35\x31\x2d\x32\ +\x2e\x32\x38\x33\x31\x30\x31\x2d\x30\x2e\x30\x33\x36\x31\x32\x35\ +\x2d\x30\x2e\x36\x37\x39\x31\x35\x2d\x30\x2e\x30\x34\x33\x33\x35\ +\x2d\x31\x2e\x33\x36\x35\x35\x32\x36\x2d\x30\x2e\x31\x30\x38\x33\ +\x37\x35\x2d\x32\x2e\x30\x33\x37\x34\x35\x32\x2d\x30\x2e\x30\x38\ +\x36\x37\x2d\x30\x2e\x37\x39\x34\x37\x35\x31\x2d\x30\x2e\x32\x33\ +\x31\x32\x2d\x31\x2e\x35\x35\x33\x33\x37\x36\x2d\x30\x2e\x33\x36\ +\x31\x32\x35\x2d\x32\x2e\x33\x33\x33\x36\x37\x36\x2d\x30\x2e\x30\ +\x37\x32\x32\x35\x2d\x30\x2e\x34\x35\x35\x31\x37\x35\x2d\x30\x2e\ +\x31\x32\x32\x38\x32\x35\x2d\x30\x2e\x39\x31\x37\x35\x37\x36\x2d\ +\x30\x2e\x32\x30\x39\x35\x32\x35\x2d\x31\x2e\x33\x37\x39\x39\x37\ +\x36\x6c\x2d\x30\x2e\x30\x34\x33\x33\x35\x2d\x30\x2e\x32\x39\x36\ +\x32\x32\x36\x2d\x30\x2e\x30\x35\x30\x35\x37\x35\x2d\x30\x2e\x32\ +\x38\x31\x37\x37\x35\x63\x2d\x30\x2e\x31\x35\x38\x39\x35\x2d\x30\ +\x2e\x37\x39\x34\x37\x35\x31\x2d\x30\x2e\x33\x39\x37\x33\x37\x35\ +\x2d\x31\x2e\x35\x35\x33\x33\x37\x36\x2d\x30\x2e\x35\x39\x39\x36\ +\x37\x36\x2d\x32\x2e\x33\x33\x33\x36\x37\x37\x2d\x30\x2e\x31\x35\ +\x38\x39\x35\x2d\x30\x2e\x36\x30\x36\x39\x2d\x30\x2e\x32\x38\x39\ +\x2d\x31\x2e\x32\x32\x38\x32\x35\x31\x2d\x30\x2e\x34\x36\x39\x36\ +\x32\x35\x2d\x31\x2e\x38\x32\x30\x37\x30\x31\x2d\x30\x2e\x32\x36\ +\x30\x31\x2d\x30\x2e\x38\x31\x36\x34\x32\x36\x2d\x30\x2e\x35\x38\ +\x35\x32\x32\x35\x2d\x31\x2e\x36\x31\x38\x34\x30\x31\x2d\x30\x2e\ +\x38\x38\x38\x36\x37\x36\x2d\x32\x2e\x34\x32\x30\x33\x37\x37\x6c\ +\x2d\x30\x2e\x32\x37\x34\x35\x35\x2d\x30\x2e\x37\x35\x38\x36\x32\ +\x35\x2d\x30\x2e\x31\x36\x36\x31\x37\x35\x2d\x30\x2e\x34\x35\x35\ +\x31\x37\x36\x2d\x30\x2e\x31\x33\x30\x30\x35\x2d\x30\x2e\x33\x32\ +\x35\x31\x32\x35\x63\x2d\x30\x2e\x33\x35\x34\x30\x32\x35\x2d\x30\ +\x2e\x38\x33\x30\x38\x37\x36\x2d\x30\x2e\x37\x35\x38\x36\x32\x36\ +\x2d\x31\x2e\x36\x32\x35\x36\x32\x36\x2d\x31\x2e\x31\x36\x33\x32\ +\x32\x36\x2d\x32\x2e\x34\x32\x37\x36\x30\x32\x2d\x30\x2e\x32\x32\ +\x33\x39\x37\x35\x2d\x30\x2e\x34\x35\x35\x31\x37\x35\x2d\x30\x2e\ +\x34\x31\x39\x30\x35\x2d\x30\x2e\x39\x31\x37\x35\x37\x36\x2d\x30\ +\x2e\x36\x36\x34\x37\x2d\x31\x2e\x33\x35\x38\x33\x30\x31\x2d\x30\ +\x2e\x34\x33\x33\x35\x2d\x30\x2e\x38\x30\x31\x39\x37\x36\x2d\x30\ +\x2e\x39\x32\x34\x38\x30\x31\x2d\x31\x2e\x35\x35\x33\x33\x37\x36\ +\x2d\x31\x2e\x34\x30\x31\x36\x35\x31\x2d\x32\x2e\x33\x31\x39\x32\ +\x32\x36\x2d\x30\x2e\x31\x34\x34\x35\x2d\x30\x2e\x32\x32\x33\x39\ +\x37\x35\x2d\x30\x2e\x32\x36\x37\x33\x32\x35\x2d\x30\x2e\x34\x36\ +\x32\x34\x2d\x30\x2e\x34\x31\x31\x38\x32\x36\x2d\x30\x2e\x36\x37\ +\x31\x39\x32\x36\x2d\x30\x2e\x30\x38\x36\x37\x2d\x30\x2e\x31\x33\ +\x30\x30\x35\x2d\x30\x2e\x31\x35\x31\x37\x32\x35\x2d\x30\x2e\x32\ +\x36\x37\x33\x32\x35\x2d\x30\x2e\x32\x33\x38\x34\x32\x35\x2d\x30\ +\x2e\x33\x39\x37\x33\x37\x35\x6c\x2d\x30\x2e\x31\x31\x35\x36\x2d\ +\x30\x2e\x31\x37\x33\x34\x63\x2d\x30\x2e\x35\x30\x35\x37\x35\x2d\ +\x30\x2e\x37\x35\x31\x34\x30\x31\x2d\x31\x2e\x30\x36\x32\x30\x37\ +\x36\x2d\x31\x2e\x34\x34\x35\x30\x30\x31\x2d\x31\x2e\x36\x31\x31\ +\x31\x37\x36\x2d\x32\x2e\x31\x35\x33\x30\x35\x32\x2d\x30\x2e\x33\ +\x30\x33\x34\x35\x2d\x30\x2e\x33\x39\x30\x31\x35\x2d\x30\x2e\x35\ +\x37\x38\x2d\x30\x2e\x38\x30\x31\x39\x37\x36\x2d\x30\x2e\x38\x38\ +\x38\x36\x37\x36\x2d\x31\x2e\x31\x38\x34\x39\x30\x31\x2d\x30\x2e\ +\x35\x35\x36\x33\x32\x35\x2d\x30\x2e\x36\x36\x34\x37\x2d\x31\x2e\ +\x31\x36\x33\x32\x32\x36\x2d\x31\x2e\x32\x39\x33\x32\x37\x36\x2d\ +\x31\x2e\x37\x35\x35\x36\x37\x36\x2d\x31\x2e\x39\x32\x39\x30\x37\ +\x36\x2d\x30\x2e\x33\x35\x34\x30\x32\x35\x2d\x30\x2e\x33\x38\x32\ +\x39\x32\x35\x2d\x30\x2e\x36\x37\x39\x31\x35\x2d\x30\x2e\x37\x38\ +\x30\x33\x30\x31\x2d\x31\x2e\x30\x34\x30\x34\x30\x31\x2d\x31\x2e\ +\x31\x34\x31\x35\x35\x31\x6c\x2d\x30\x2e\x30\x36\x35\x30\x32\x35\ +\x2d\x30\x2e\x30\x36\x35\x30\x32\x35\x2d\x30\x2e\x30\x31\x34\x34\ +\x35\x2d\x30\x2e\x30\x32\x31\x36\x37\x35\x2d\x30\x2e\x30\x37\x32\ +\x32\x35\x2d\x30\x2e\x30\x35\x37\x38\x63\x2d\x30\x2e\x35\x32\x37\ +\x34\x32\x35\x2d\x30\x2e\x35\x32\x37\x34\x32\x35\x2d\x31\x2e\x30\ +\x39\x38\x32\x30\x31\x2d\x31\x2e\x30\x30\x34\x32\x37\x36\x2d\x31\ +\x2e\x36\x36\x38\x39\x37\x36\x2d\x31\x2e\x35\x31\x30\x30\x32\x36\ +\x2d\x30\x2e\x34\x32\x36\x32\x37\x35\x2d\x30\x2e\x33\x37\x35\x37\ +\x2d\x30\x2e\x38\x32\x33\x36\x35\x31\x2d\x30\x2e\x37\x38\x30\x33\ +\x30\x31\x2d\x31\x2e\x32\x37\x31\x36\x30\x31\x2d\x31\x2e\x31\x34\ +\x38\x37\x37\x36\x2d\x30\x2e\x35\x39\x39\x36\x37\x35\x2d\x30\x2e\ +\x34\x39\x31\x33\x2d\x31\x2e\x32\x34\x39\x39\x32\x36\x2d\x30\x2e\ +\x39\x33\x32\x30\x32\x36\x2d\x31\x2e\x38\x37\x38\x35\x30\x31\x2d\ +\x31\x2e\x34\x30\x31\x36\x35\x31\x2d\x30\x2e\x34\x38\x34\x30\x37\ +\x35\x2d\x30\x2e\x33\x36\x31\x32\x35\x2d\x30\x2e\x39\x35\x33\x37\ +\x30\x31\x2d\x30\x2e\x37\x34\x34\x31\x37\x36\x2d\x31\x2e\x34\x35\ +\x32\x32\x32\x36\x2d\x31\x2e\x30\x38\x33\x37\x35\x31\x61\x35\x2e\ +\x30\x38\x36\x34\x30\x34\x20\x35\x2e\x30\x38\x36\x34\x30\x34\x20\ +\x30\x20\x30\x20\x31\x2d\x30\x2e\x33\x33\x32\x33\x35\x31\x2d\x30\ +\x2e\x32\x30\x32\x33\x6c\x2d\x30\x2e\x35\x33\x34\x36\x35\x2d\x30\ +\x2e\x33\x31\x30\x36\x37\x35\x61\x32\x36\x2e\x37\x30\x33\x36\x32\ +\x20\x32\x36\x2e\x37\x30\x33\x36\x32\x20\x30\x20\x30\x20\x30\x2d\ +\x31\x2e\x31\x34\x31\x35\x35\x31\x2d\x30\x2e\x36\x39\x33\x36\x30\ +\x31\x63\x2d\x30\x2e\x35\x32\x30\x32\x2d\x30\x2e\x33\x31\x37\x39\ +\x2d\x31\x2e\x30\x32\x35\x39\x35\x31\x2d\x30\x2e\x36\x35\x37\x34\ +\x37\x35\x2d\x31\x2e\x35\x36\x37\x38\x32\x36\x2d\x30\x2e\x39\x35\ +\x33\x37\x2d\x30\x2e\x36\x37\x39\x31\x35\x2d\x30\x2e\x33\x36\x38\ +\x34\x37\x35\x2d\x31\x2e\x33\x39\x34\x34\x32\x36\x2d\x30\x2e\x36\ +\x37\x31\x39\x32\x35\x2d\x32\x2e\x30\x39\x35\x32\x35\x32\x2d\x31\ +\x2e\x30\x30\x34\x32\x37\x36\x2d\x30\x2e\x35\x36\x33\x35\x35\x2d\ +\x30\x2e\x32\x36\x37\x33\x32\x35\x2d\x31\x2e\x31\x31\x32\x36\x35\ +\x31\x2d\x30\x2e\x35\x37\x30\x37\x37\x35\x2d\x31\x2e\x36\x39\x30\ +\x36\x35\x31\x2d\x30\x2e\x38\x30\x39\x32\x30\x31\x2d\x30\x2e\x31\ +\x35\x31\x37\x32\x35\x2d\x30\x2e\x30\x37\x32\x32\x35\x2d\x30\x2e\ +\x33\x32\x35\x31\x32\x35\x2d\x30\x2e\x31\x32\x32\x38\x32\x35\x2d\ +\x30\x2e\x34\x39\x31\x33\x2d\x30\x2e\x31\x38\x30\x36\x32\x35\x2d\ +\x30\x2e\x31\x38\x37\x38\x35\x2d\x30\x2e\x30\x37\x39\x34\x37\x35\ +\x2d\x30\x2e\x33\x39\x30\x31\x35\x2d\x30\x2e\x31\x33\x37\x32\x37\ +\x35\x2d\x30\x2e\x35\x37\x38\x30\x30\x31\x2d\x30\x2e\x32\x32\x33\ +\x39\x37\x35\x6c\x2d\x31\x2e\x30\x31\x38\x37\x32\x35\x2d\x30\x2e\ +\x33\x36\x38\x34\x37\x35\x63\x2d\x30\x2e\x36\x32\x38\x35\x37\x35\ +\x2d\x30\x2e\x32\x32\x33\x39\x37\x35\x2d\x31\x2e\x32\x34\x32\x37\ +\x30\x31\x2d\x30\x2e\x34\x38\x34\x30\x37\x35\x2d\x31\x2e\x38\x39\ +\x32\x39\x35\x32\x2d\x30\x2e\x36\x39\x33\x36\x30\x31\x2d\x30\x2e\ +\x36\x34\x33\x30\x32\x35\x2d\x30\x2e\x31\x38\x37\x38\x35\x2d\x31\ +\x2e\x33\x30\x37\x37\x32\x36\x2d\x30\x2e\x33\x32\x35\x31\x32\x35\ +\x2d\x31\x2e\x39\x36\x35\x32\x30\x31\x2d\x30\x2e\x34\x39\x31\x33\ +\x2d\x30\x2e\x37\x32\x39\x37\x32\x36\x2d\x30\x2e\x31\x39\x35\x30\ +\x37\x35\x2d\x31\x2e\x34\x34\x35\x30\x30\x31\x2d\x30\x2e\x34\x31\ +\x39\x30\x35\x2d\x32\x2e\x31\x38\x39\x31\x37\x37\x2d\x30\x2e\x35\ +\x36\x33\x35\x35\x31\x2d\x30\x2e\x31\x35\x31\x37\x32\x35\x2d\x30\ +\x2e\x30\x33\x36\x31\x32\x35\x2d\x30\x2e\x33\x31\x30\x36\x37\x35\ +\x2d\x30\x2e\x30\x33\x36\x31\x32\x35\x2d\x30\x2e\x34\x36\x32\x34\ +\x2d\x30\x2e\x30\x36\x35\x30\x32\x35\x6c\x2d\x30\x2e\x34\x32\x36\ +\x32\x37\x35\x2d\x30\x2e\x30\x37\x32\x32\x35\x63\x2d\x30\x2e\x35\ +\x32\x37\x34\x32\x35\x2d\x30\x2e\x31\x30\x31\x31\x35\x2d\x31\x2e\ +\x30\x36\x39\x33\x30\x31\x2d\x30\x2e\x31\x36\x36\x31\x37\x35\x2d\ +\x31\x2e\x36\x31\x38\x34\x30\x32\x2d\x30\x2e\x32\x33\x38\x34\x32\ +\x35\x2d\x30\x2e\x35\x39\x39\x36\x37\x35\x2d\x30\x2e\x30\x39\x33\ +\x39\x32\x35\x2d\x31\x2e\x31\x38\x34\x39\x30\x31\x2d\x30\x2e\x32\ +\x31\x36\x37\x35\x2d\x31\x2e\x37\x38\x34\x35\x37\x36\x2d\x30\x2e\ +\x32\x38\x31\x37\x37\x35\x61\x34\x32\x2e\x37\x37\x32\x30\x33\x31\ +\x20\x34\x32\x2e\x37\x37\x32\x30\x33\x31\x20\x30\x20\x30\x20\x30\ +\x2d\x34\x2e\x34\x32\x38\x39\x32\x38\x2d\x30\x2e\x32\x32\x33\x39\ +\x37\x35\x68\x2d\x30\x2e\x31\x35\x31\x37\x32\x35\x6c\x2d\x33\x34\ +\x33\x2e\x30\x37\x39\x33\x37\x37\x20\x31\x2e\x32\x33\x35\x34\x37\ +\x36\x61\x34\x33\x2e\x33\x35\x30\x30\x33\x32\x20\x34\x33\x2e\x33\ +\x35\x30\x30\x33\x32\x20\x30\x20\x30\x20\x30\x20\x30\x2e\x31\x35\ +\x31\x37\x32\x36\x20\x38\x36\x2e\x37\x30\x30\x30\x36\x33\x68\x30\ +\x2e\x31\x35\x31\x37\x32\x35\x6c\x32\x33\x38\x2e\x34\x31\x37\x39\ +\x34\x39\x2d\x30\x2e\x38\x36\x37\x2d\x31\x35\x36\x2e\x37\x36\x30\ +\x39\x34\x20\x31\x35\x37\x2e\x38\x39\x35\x32\x36\x35\x63\x2d\x35\ +\x33\x2e\x37\x31\x30\x36\x38\x39\x2d\x34\x32\x2e\x31\x37\x39\x35\ +\x38\x31\x2d\x31\x32\x31\x2e\x31\x37\x30\x35\x36\x34\x2d\x36\x37\ +\x2e\x34\x36\x37\x30\x39\x39\x2d\x31\x39\x34\x2e\x31\x35\x30\x33\ +\x34\x32\x2d\x36\x37\x2e\x34\x36\x37\x30\x39\x39\x6c\x2d\x34\x2e\ +\x32\x31\x39\x34\x30\x33\x20\x30\x2e\x30\x32\x31\x36\x37\x35\x63\ +\x2d\x31\x37\x34\x2e\x30\x39\x33\x37\x32\x38\x20\x32\x2e\x32\x39\ +\x30\x33\x32\x37\x2d\x33\x31\x33\x2e\x38\x35\x34\x32\x33\x20\x31\ +\x34\x35\x2e\x37\x38\x36\x31\x35\x37\x2d\x33\x31\x31\x2e\x35\x36\ +\x33\x39\x30\x33\x20\x33\x31\x39\x2e\x38\x35\x38\x32\x30\x39\x20\ +\x32\x2e\x32\x36\x31\x34\x32\x37\x20\x31\x37\x31\x2e\x38\x31\x37\ +\x38\x35\x31\x20\x31\x34\x33\x2e\x38\x34\x39\x38\x35\x35\x20\x33\ +\x31\x31\x2e\x35\x39\x32\x38\x30\x33\x20\x33\x31\x35\x2e\x36\x33\ +\x31\x35\x38\x31\x20\x33\x31\x31\x2e\x35\x39\x32\x38\x30\x33\x6c\ +\x34\x2e\x32\x31\x39\x34\x30\x33\x2d\x30\x2e\x30\x32\x38\x39\x63\ +\x38\x34\x2e\x33\x33\x30\x32\x36\x32\x2d\x31\x2e\x31\x30\x35\x34\ +\x32\x36\x20\x31\x36\x33\x2e\x31\x38\x33\x39\x37\x2d\x33\x34\x2e\ +\x39\x38\x33\x34\x37\x36\x20\x32\x32\x32\x2e\x30\x33\x31\x36\x33\ +\x38\x2d\x39\x35\x2e\x33\x39\x38\x39\x37\x20\x35\x38\x2e\x38\x35\ +\x34\x38\x39\x33\x2d\x36\x30\x2e\x34\x31\x35\x34\x39\x34\x20\x39\ +\x30\x2e\x36\x34\x34\x39\x31\x36\x2d\x31\x34\x30\x2e\x31\x33\x36\ +\x32\x30\x33\x20\x38\x39\x2e\x35\x33\x32\x32\x36\x35\x2d\x32\x32\ +\x34\x2e\x34\x35\x32\x30\x31\x34\x2d\x30\x2e\x38\x38\x31\x34\x35\ +\x31\x2d\x36\x37\x2e\x38\x32\x38\x33\x35\x2d\x32\x33\x2e\x35\x35\ +\x33\x35\x31\x37\x2d\x31\x33\x30\x2e\x36\x31\x33\x36\x34\x36\x2d\ +\x36\x31\x2e\x31\x35\x39\x36\x36\x39\x2d\x31\x38\x31\x2e\x38\x33\ +\x31\x37\x30\x38\x6c\x31\x35\x37\x2e\x36\x31\x33\x34\x39\x2d\x31\ +\x35\x38\x2e\x37\x34\x37\x38\x31\x36\x56\x34\x39\x35\x2e\x34\x31\ +\x38\x36\x31\x33\x61\x34\x33\x2e\x33\x35\x30\x30\x33\x32\x20\x34\ +\x33\x2e\x33\x35\x30\x30\x33\x32\x20\x30\x20\x30\x20\x30\x20\x38\ +\x36\x2e\x37\x30\x30\x30\x36\x34\x20\x30\x56\x31\x35\x32\x2e\x33\ +\x34\x36\x34\x36\x32\x76\x2d\x30\x2e\x30\x35\x30\x35\x37\x35\x2d\ +\x30\x2e\x30\x38\x36\x37\x30\x31\x7a\x4d\x35\x37\x37\x2e\x31\x39\ +\x38\x34\x34\x38\x20\x37\x35\x31\x2e\x39\x37\x38\x35\x35\x31\x63\ +\x2d\x33\x39\x2e\x39\x39\x30\x34\x30\x34\x20\x34\x31\x2e\x30\x36\ +\x36\x39\x33\x2d\x39\x33\x2e\x35\x38\x35\x34\x39\x34\x20\x36\x34\ +\x2e\x30\x38\x35\x37\x39\x37\x2d\x31\x35\x30\x2e\x39\x30\x31\x34\ +\x36\x31\x20\x36\x34\x2e\x38\x34\x34\x34\x32\x32\x6c\x2d\x32\x2e\ +\x38\x39\x30\x30\x30\x32\x20\x30\x2e\x30\x31\x34\x34\x35\x63\x2d\ +\x31\x31\x36\x2e\x37\x33\x34\x34\x31\x20\x30\x2d\x32\x31\x32\x2e\ +\x39\x35\x37\x30\x33\x31\x2d\x39\x35\x2e\x30\x30\x31\x35\x39\x35\ +\x2d\x32\x31\x34\x2e\x34\x39\x35\x39\x35\x37\x2d\x32\x31\x31\x2e\ +\x37\x37\x32\x31\x33\x43\x32\x30\x37\x2e\x33\x35\x37\x36\x35\x32\ +\x20\x34\x38\x36\x2e\x37\x34\x38\x36\x30\x37\x20\x33\x30\x32\x2e\ +\x33\x35\x32\x30\x32\x31\x20\x33\x38\x39\x2e\x32\x33\x32\x37\x31\ +\x20\x34\x32\x30\x2e\x36\x36\x38\x37\x30\x38\x20\x33\x38\x37\x2e\ +\x36\x37\x32\x31\x30\x39\x6c\x32\x2e\x38\x39\x30\x30\x30\x32\x2d\ +\x30\x2e\x30\x30\x37\x32\x32\x35\x63\x31\x31\x36\x2e\x37\x34\x31\ +\x36\x33\x36\x20\x30\x20\x32\x31\x32\x2e\x39\x37\x31\x34\x38\x31\ +\x20\x39\x34\x2e\x39\x39\x34\x33\x37\x20\x32\x31\x34\x2e\x34\x38\ +\x38\x37\x33\x32\x20\x32\x31\x31\x2e\x37\x37\x39\x33\x35\x35\x20\ +\x30\x2e\x37\x35\x38\x36\x32\x36\x20\x35\x37\x2e\x33\x30\x31\x35\ +\x31\x37\x2d\x32\x30\x2e\x38\x35\x31\x33\x36\x35\x20\x31\x31\x31\ +\x2e\x34\x37\x34\x36\x30\x37\x2d\x36\x30\x2e\x38\x34\x38\x39\x39\ +\x34\x20\x31\x35\x32\x2e\x35\x33\x34\x33\x31\x32\x7a\x22\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x31\x32\x39\x36\x64\x62\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x34\x32\x36\x39\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x06\x9c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x32\x39\x35\x32\x30\x32\x32\x34\x35\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x35\x35\x38\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x37\x30\x2e\x36\ +\x39\x39\x35\x32\x20\x31\x35\x33\x2e\x33\x30\x30\x34\x38\x63\x2d\ +\x36\x36\x2e\x31\x30\x36\x38\x38\x2d\x36\x36\x2e\x31\x30\x39\x34\ +\x34\x2d\x31\x35\x34\x2e\x30\x30\x34\x34\x38\x2d\x31\x30\x32\x2e\ +\x35\x31\x37\x37\x36\x2d\x32\x34\x37\x2e\x34\x39\x36\x39\x36\x2d\ +\x31\x30\x32\x2e\x35\x31\x39\x30\x34\x2d\x39\x33\x2e\x34\x39\x32\ +\x34\x38\x20\x30\x2d\x31\x38\x31\x2e\x33\x38\x38\x38\x20\x33\x36\ +\x2e\x34\x30\x38\x33\x32\x2d\x32\x34\x37\x2e\x34\x39\x36\x39\x36\ +\x20\x31\x30\x32\x2e\x35\x31\x36\x34\x38\x2d\x36\x36\x2e\x31\x31\ +\x30\x37\x32\x20\x36\x36\x2e\x31\x30\x39\x34\x34\x2d\x31\x30\x32\ +\x2e\x35\x31\x36\x34\x38\x20\x31\x35\x34\x2e\x30\x30\x35\x37\x36\ +\x2d\x31\x30\x32\x2e\x35\x31\x36\x34\x38\x20\x32\x34\x37\x2e\x34\ +\x39\x39\x35\x32\x2d\x30\x2e\x30\x30\x31\x32\x38\x20\x37\x36\x2e\ +\x31\x39\x39\x36\x38\x20\x32\x34\x2e\x31\x39\x30\x37\x32\x20\x31\ +\x34\x38\x2e\x36\x37\x38\x34\x20\x36\x38\x2e\x39\x33\x30\x35\x36\ +\x20\x32\x30\x38\x2e\x36\x37\x35\x38\x34\x6c\x2d\x36\x30\x2e\x32\ +\x30\x34\x38\x20\x36\x30\x2e\x32\x30\x33\x35\x32\x4c\x31\x33\x38\ +\x2e\x31\x38\x34\x39\x36\x20\x35\x32\x35\x2e\x39\x34\x36\x38\x38\ +\x63\x2d\x31\x39\x2e\x39\x39\x34\x38\x38\x2d\x31\x39\x2e\x39\x39\ +\x34\x38\x38\x2d\x35\x32\x2e\x34\x31\x32\x31\x36\x2d\x31\x39\x2e\ +\x39\x39\x34\x38\x38\x2d\x37\x32\x2e\x34\x30\x37\x30\x34\x20\x30\ +\x2d\x31\x39\x2e\x39\x39\x34\x38\x38\x20\x31\x39\x2e\x39\x39\x33\ +\x36\x2d\x31\x39\x2e\x39\x39\x34\x38\x38\x20\x35\x32\x2e\x34\x31\ +\x32\x31\x36\x20\x30\x20\x37\x32\x2e\x34\x30\x37\x30\x34\x6c\x31\ +\x34\x33\x2e\x37\x32\x39\x39\x32\x20\x31\x34\x33\x2e\x37\x32\x39\ +\x39\x32\x2d\x35\x35\x2e\x37\x35\x35\x35\x32\x20\x35\x35\x2e\x37\ +\x35\x35\x35\x32\x63\x2d\x31\x39\x2e\x39\x39\x33\x36\x20\x31\x39\ +\x2e\x39\x39\x33\x36\x2d\x31\x39\x2e\x39\x39\x33\x36\x20\x35\x32\ +\x2e\x34\x31\x32\x31\x36\x20\x30\x20\x37\x32\x2e\x34\x30\x35\x37\ +\x36\x20\x31\x39\x2e\x39\x39\x36\x31\x36\x20\x31\x39\x2e\x39\x39\ +\x36\x31\x36\x20\x35\x32\x2e\x34\x31\x33\x34\x34\x20\x31\x39\x2e\ +\x39\x39\x34\x38\x38\x20\x37\x32\x2e\x34\x30\x38\x33\x32\x20\x30\ +\x6c\x35\x35\x2e\x37\x35\x34\x32\x34\x2d\x35\x35\x2e\x37\x35\x34\ +\x32\x34\x20\x31\x34\x33\x2e\x37\x33\x31\x32\x20\x31\x34\x33\x2e\ +\x37\x32\x39\x39\x32\x63\x31\x39\x2e\x39\x39\x33\x36\x20\x31\x39\ +\x2e\x39\x39\x34\x38\x38\x20\x35\x32\x2e\x34\x31\x30\x38\x38\x20\ +\x31\x39\x2e\x39\x39\x34\x38\x38\x20\x37\x32\x2e\x34\x30\x35\x37\ +\x36\x20\x30\x20\x31\x39\x2e\x39\x39\x36\x31\x36\x2d\x31\x39\x2e\ +\x39\x39\x34\x38\x38\x20\x31\x39\x2e\x39\x39\x36\x31\x36\x2d\x35\ +\x32\x2e\x34\x31\x32\x31\x36\x20\x30\x2d\x37\x32\x2e\x34\x30\x37\ +\x30\x34\x4c\x33\x35\x34\x2e\x33\x32\x31\x39\x32\x20\x37\x34\x32\ +\x2e\x30\x38\x35\x31\x32\x6c\x36\x30\x2e\x32\x30\x34\x38\x2d\x36\ +\x30\x2e\x32\x30\x33\x35\x32\x63\x35\x39\x2e\x39\x39\x38\x37\x32\ +\x20\x34\x34\x2e\x37\x33\x38\x35\x36\x20\x31\x33\x32\x2e\x34\x37\ +\x36\x31\x36\x20\x36\x38\x2e\x39\x33\x31\x38\x34\x20\x32\x30\x38\ +\x2e\x36\x37\x35\x38\x34\x20\x36\x38\x2e\x39\x33\x31\x38\x34\x20\ +\x39\x33\x2e\x34\x39\x32\x34\x38\x20\x30\x20\x31\x38\x31\x2e\x33\ +\x38\x37\x35\x32\x2d\x33\x36\x2e\x34\x30\x38\x33\x32\x20\x32\x34\ +\x37\x2e\x34\x39\x36\x39\x36\x2d\x31\x30\x32\x2e\x35\x31\x37\x37\ +\x36\x73\x31\x30\x32\x2e\x35\x31\x37\x37\x36\x2d\x31\x35\x34\x2e\ +\x30\x30\x35\x37\x36\x20\x31\x30\x32\x2e\x35\x31\x37\x37\x36\x2d\ +\x32\x34\x37\x2e\x34\x39\x38\x32\x34\x43\x39\x37\x33\x2e\x32\x31\ +\x37\x32\x38\x20\x33\x30\x37\x2e\x33\x30\x34\x39\x36\x20\x39\x33\ +\x36\x2e\x38\x30\x37\x36\x38\x20\x32\x31\x39\x2e\x34\x30\x37\x33\ +\x36\x20\x38\x37\x30\x2e\x36\x39\x39\x35\x32\x20\x31\x35\x33\x2e\ +\x33\x30\x30\x34\x38\x7a\x4d\x37\x39\x38\x2e\x32\x39\x32\x34\x38\ +\x20\x35\x37\x35\x2e\x38\x38\x37\x33\x36\x63\x2d\x34\x36\x2e\x37\ +\x36\x37\x33\x36\x20\x34\x36\x2e\x37\x36\x37\x33\x36\x2d\x31\x30\ +\x38\x2e\x39\x34\x39\x37\x36\x20\x37\x32\x2e\x35\x32\x34\x38\x2d\ +\x31\x37\x35\x2e\x30\x38\x39\x39\x32\x20\x37\x32\x2e\x35\x32\x34\ +\x38\x73\x2d\x31\x32\x38\x2e\x33\x32\x31\x32\x38\x2d\x32\x35\x2e\ +\x37\x35\x37\x34\x34\x2d\x31\x37\x35\x2e\x30\x38\x39\x39\x32\x2d\ +\x37\x32\x2e\x35\x32\x34\x38\x63\x2d\x34\x36\x2e\x37\x36\x38\x36\ +\x34\x2d\x34\x36\x2e\x37\x36\x37\x33\x36\x2d\x37\x32\x2e\x35\x32\ +\x34\x38\x2d\x31\x30\x38\x2e\x39\x34\x39\x37\x36\x2d\x37\x32\x2e\ +\x35\x32\x34\x38\x2d\x31\x37\x35\x2e\x30\x38\x39\x39\x32\x20\x30\ +\x2e\x30\x30\x31\x32\x38\x2d\x36\x36\x2e\x31\x34\x32\x37\x32\x20\ +\x32\x35\x2e\x37\x35\x36\x31\x36\x2d\x31\x32\x38\x2e\x33\x32\x33\ +\x38\x34\x20\x37\x32\x2e\x35\x32\x34\x38\x2d\x31\x37\x35\x2e\x30\ +\x39\x31\x32\x20\x34\x36\x2e\x37\x36\x37\x33\x36\x2d\x34\x36\x2e\ +\x37\x36\x38\x36\x34\x20\x31\x30\x38\x2e\x39\x34\x39\x37\x36\x2d\ +\x37\x32\x2e\x35\x32\x34\x38\x20\x31\x37\x35\x2e\x30\x38\x39\x39\ +\x32\x2d\x37\x32\x2e\x35\x32\x34\x38\x20\x36\x36\x2e\x31\x34\x30\ +\x31\x36\x20\x30\x2e\x30\x30\x31\x32\x38\x20\x31\x32\x38\x2e\x33\ +\x32\x32\x35\x36\x20\x32\x35\x2e\x37\x35\x37\x34\x34\x20\x31\x37\ +\x35\x2e\x30\x38\x39\x39\x32\x20\x37\x32\x2e\x35\x32\x36\x30\x38\ +\x20\x34\x36\x2e\x37\x36\x37\x33\x36\x20\x34\x36\x2e\x37\x36\x37\ +\x33\x36\x20\x37\x32\x2e\x35\x32\x34\x38\x20\x31\x30\x38\x2e\x39\ +\x34\x38\x34\x38\x20\x37\x32\x2e\x35\x32\x34\x38\x20\x31\x37\x35\ +\x2e\x30\x38\x38\x36\x34\x43\x38\x37\x30\x2e\x38\x31\x37\x32\x38\ +\x20\x34\x36\x36\x2e\x39\x33\x37\x36\x20\x38\x34\x35\x2e\x30\x36\ +\x32\x34\x20\x35\x32\x39\x2e\x31\x31\x38\x37\x32\x20\x37\x39\x38\ +\x2e\x32\x39\x32\x34\x38\x20\x35\x37\x35\x2e\x38\x38\x37\x33\x36\ +\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x64\x38\x31\x65\x30\x36\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x35\x35\x39\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x06\x9c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x32\x39\x35\x32\x30\x32\x32\x34\x35\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x35\x35\x38\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x37\x30\x2e\x36\ +\x39\x39\x35\x32\x20\x31\x35\x33\x2e\x33\x30\x30\x34\x38\x63\x2d\ +\x36\x36\x2e\x31\x30\x36\x38\x38\x2d\x36\x36\x2e\x31\x30\x39\x34\ +\x34\x2d\x31\x35\x34\x2e\x30\x30\x34\x34\x38\x2d\x31\x30\x32\x2e\ +\x35\x31\x37\x37\x36\x2d\x32\x34\x37\x2e\x34\x39\x36\x39\x36\x2d\ +\x31\x30\x32\x2e\x35\x31\x39\x30\x34\x2d\x39\x33\x2e\x34\x39\x32\ +\x34\x38\x20\x30\x2d\x31\x38\x31\x2e\x33\x38\x38\x38\x20\x33\x36\ +\x2e\x34\x30\x38\x33\x32\x2d\x32\x34\x37\x2e\x34\x39\x36\x39\x36\ +\x20\x31\x30\x32\x2e\x35\x31\x36\x34\x38\x2d\x36\x36\x2e\x31\x31\ +\x30\x37\x32\x20\x36\x36\x2e\x31\x30\x39\x34\x34\x2d\x31\x30\x32\ +\x2e\x35\x31\x36\x34\x38\x20\x31\x35\x34\x2e\x30\x30\x35\x37\x36\ +\x2d\x31\x30\x32\x2e\x35\x31\x36\x34\x38\x20\x32\x34\x37\x2e\x34\ +\x39\x39\x35\x32\x2d\x30\x2e\x30\x30\x31\x32\x38\x20\x37\x36\x2e\ +\x31\x39\x39\x36\x38\x20\x32\x34\x2e\x31\x39\x30\x37\x32\x20\x31\ +\x34\x38\x2e\x36\x37\x38\x34\x20\x36\x38\x2e\x39\x33\x30\x35\x36\ +\x20\x32\x30\x38\x2e\x36\x37\x35\x38\x34\x6c\x2d\x36\x30\x2e\x32\ +\x30\x34\x38\x20\x36\x30\x2e\x32\x30\x33\x35\x32\x4c\x31\x33\x38\ +\x2e\x31\x38\x34\x39\x36\x20\x35\x32\x35\x2e\x39\x34\x36\x38\x38\ +\x63\x2d\x31\x39\x2e\x39\x39\x34\x38\x38\x2d\x31\x39\x2e\x39\x39\ +\x34\x38\x38\x2d\x35\x32\x2e\x34\x31\x32\x31\x36\x2d\x31\x39\x2e\ +\x39\x39\x34\x38\x38\x2d\x37\x32\x2e\x34\x30\x37\x30\x34\x20\x30\ +\x2d\x31\x39\x2e\x39\x39\x34\x38\x38\x20\x31\x39\x2e\x39\x39\x33\ +\x36\x2d\x31\x39\x2e\x39\x39\x34\x38\x38\x20\x35\x32\x2e\x34\x31\ +\x32\x31\x36\x20\x30\x20\x37\x32\x2e\x34\x30\x37\x30\x34\x6c\x31\ +\x34\x33\x2e\x37\x32\x39\x39\x32\x20\x31\x34\x33\x2e\x37\x32\x39\ +\x39\x32\x2d\x35\x35\x2e\x37\x35\x35\x35\x32\x20\x35\x35\x2e\x37\ +\x35\x35\x35\x32\x63\x2d\x31\x39\x2e\x39\x39\x33\x36\x20\x31\x39\ +\x2e\x39\x39\x33\x36\x2d\x31\x39\x2e\x39\x39\x33\x36\x20\x35\x32\ +\x2e\x34\x31\x32\x31\x36\x20\x30\x20\x37\x32\x2e\x34\x30\x35\x37\ +\x36\x20\x31\x39\x2e\x39\x39\x36\x31\x36\x20\x31\x39\x2e\x39\x39\ +\x36\x31\x36\x20\x35\x32\x2e\x34\x31\x33\x34\x34\x20\x31\x39\x2e\ +\x39\x39\x34\x38\x38\x20\x37\x32\x2e\x34\x30\x38\x33\x32\x20\x30\ +\x6c\x35\x35\x2e\x37\x35\x34\x32\x34\x2d\x35\x35\x2e\x37\x35\x34\ +\x32\x34\x20\x31\x34\x33\x2e\x37\x33\x31\x32\x20\x31\x34\x33\x2e\ +\x37\x32\x39\x39\x32\x63\x31\x39\x2e\x39\x39\x33\x36\x20\x31\x39\ +\x2e\x39\x39\x34\x38\x38\x20\x35\x32\x2e\x34\x31\x30\x38\x38\x20\ +\x31\x39\x2e\x39\x39\x34\x38\x38\x20\x37\x32\x2e\x34\x30\x35\x37\ +\x36\x20\x30\x20\x31\x39\x2e\x39\x39\x36\x31\x36\x2d\x31\x39\x2e\ +\x39\x39\x34\x38\x38\x20\x31\x39\x2e\x39\x39\x36\x31\x36\x2d\x35\ +\x32\x2e\x34\x31\x32\x31\x36\x20\x30\x2d\x37\x32\x2e\x34\x30\x37\ +\x30\x34\x4c\x33\x35\x34\x2e\x33\x32\x31\x39\x32\x20\x37\x34\x32\ +\x2e\x30\x38\x35\x31\x32\x6c\x36\x30\x2e\x32\x30\x34\x38\x2d\x36\ +\x30\x2e\x32\x30\x33\x35\x32\x63\x35\x39\x2e\x39\x39\x38\x37\x32\ +\x20\x34\x34\x2e\x37\x33\x38\x35\x36\x20\x31\x33\x32\x2e\x34\x37\ +\x36\x31\x36\x20\x36\x38\x2e\x39\x33\x31\x38\x34\x20\x32\x30\x38\ +\x2e\x36\x37\x35\x38\x34\x20\x36\x38\x2e\x39\x33\x31\x38\x34\x20\ +\x39\x33\x2e\x34\x39\x32\x34\x38\x20\x30\x20\x31\x38\x31\x2e\x33\ +\x38\x37\x35\x32\x2d\x33\x36\x2e\x34\x30\x38\x33\x32\x20\x32\x34\ +\x37\x2e\x34\x39\x36\x39\x36\x2d\x31\x30\x32\x2e\x35\x31\x37\x37\ +\x36\x73\x31\x30\x32\x2e\x35\x31\x37\x37\x36\x2d\x31\x35\x34\x2e\ +\x30\x30\x35\x37\x36\x20\x31\x30\x32\x2e\x35\x31\x37\x37\x36\x2d\ +\x32\x34\x37\x2e\x34\x39\x38\x32\x34\x43\x39\x37\x33\x2e\x32\x31\ +\x37\x32\x38\x20\x33\x30\x37\x2e\x33\x30\x34\x39\x36\x20\x39\x33\ +\x36\x2e\x38\x30\x37\x36\x38\x20\x32\x31\x39\x2e\x34\x30\x37\x33\ +\x36\x20\x38\x37\x30\x2e\x36\x39\x39\x35\x32\x20\x31\x35\x33\x2e\ +\x33\x30\x30\x34\x38\x7a\x4d\x37\x39\x38\x2e\x32\x39\x32\x34\x38\ +\x20\x35\x37\x35\x2e\x38\x38\x37\x33\x36\x63\x2d\x34\x36\x2e\x37\ +\x36\x37\x33\x36\x20\x34\x36\x2e\x37\x36\x37\x33\x36\x2d\x31\x30\ +\x38\x2e\x39\x34\x39\x37\x36\x20\x37\x32\x2e\x35\x32\x34\x38\x2d\ +\x31\x37\x35\x2e\x30\x38\x39\x39\x32\x20\x37\x32\x2e\x35\x32\x34\ +\x38\x73\x2d\x31\x32\x38\x2e\x33\x32\x31\x32\x38\x2d\x32\x35\x2e\ +\x37\x35\x37\x34\x34\x2d\x31\x37\x35\x2e\x30\x38\x39\x39\x32\x2d\ +\x37\x32\x2e\x35\x32\x34\x38\x63\x2d\x34\x36\x2e\x37\x36\x38\x36\ +\x34\x2d\x34\x36\x2e\x37\x36\x37\x33\x36\x2d\x37\x32\x2e\x35\x32\ +\x34\x38\x2d\x31\x30\x38\x2e\x39\x34\x39\x37\x36\x2d\x37\x32\x2e\ +\x35\x32\x34\x38\x2d\x31\x37\x35\x2e\x30\x38\x39\x39\x32\x20\x30\ +\x2e\x30\x30\x31\x32\x38\x2d\x36\x36\x2e\x31\x34\x32\x37\x32\x20\ +\x32\x35\x2e\x37\x35\x36\x31\x36\x2d\x31\x32\x38\x2e\x33\x32\x33\ +\x38\x34\x20\x37\x32\x2e\x35\x32\x34\x38\x2d\x31\x37\x35\x2e\x30\ +\x39\x31\x32\x20\x34\x36\x2e\x37\x36\x37\x33\x36\x2d\x34\x36\x2e\ +\x37\x36\x38\x36\x34\x20\x31\x30\x38\x2e\x39\x34\x39\x37\x36\x2d\ +\x37\x32\x2e\x35\x32\x34\x38\x20\x31\x37\x35\x2e\x30\x38\x39\x39\ +\x32\x2d\x37\x32\x2e\x35\x32\x34\x38\x20\x36\x36\x2e\x31\x34\x30\ +\x31\x36\x20\x30\x2e\x30\x30\x31\x32\x38\x20\x31\x32\x38\x2e\x33\ +\x32\x32\x35\x36\x20\x32\x35\x2e\x37\x35\x37\x34\x34\x20\x31\x37\ +\x35\x2e\x30\x38\x39\x39\x32\x20\x37\x32\x2e\x35\x32\x36\x30\x38\ +\x20\x34\x36\x2e\x37\x36\x37\x33\x36\x20\x34\x36\x2e\x37\x36\x37\ +\x33\x36\x20\x37\x32\x2e\x35\x32\x34\x38\x20\x31\x30\x38\x2e\x39\ +\x34\x38\x34\x38\x20\x37\x32\x2e\x35\x32\x34\x38\x20\x31\x37\x35\ +\x2e\x30\x38\x38\x36\x34\x43\x38\x37\x30\x2e\x38\x31\x37\x32\x38\ +\x20\x34\x36\x36\x2e\x39\x33\x37\x36\x20\x38\x34\x35\x2e\x30\x36\ +\x32\x34\x20\x35\x32\x39\x2e\x31\x31\x38\x37\x32\x20\x37\x39\x38\ +\x2e\x32\x39\x32\x34\x38\x20\x35\x37\x35\x2e\x38\x38\x37\x33\x36\ +\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x64\x38\x31\x65\x30\x36\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x35\x35\x39\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x02\x69\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x35\x31\x36\x33\x39\x30\x31\x39\x32\x37\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x34\x33\x31\x39\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x36\x34\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x38\x20\x35\ +\x31\x32\x2e\x34\x63\x30\x20\x31\x32\x36\x2e\x31\x20\x31\x30\x32\ +\x2e\x32\x20\x32\x32\x38\x2e\x33\x20\x32\x32\x38\x2e\x33\x20\x32\ +\x32\x38\x2e\x33\x68\x33\x37\x33\x2e\x35\x63\x31\x32\x36\x2e\x31\ +\x20\x30\x20\x32\x32\x38\x2e\x33\x2d\x31\x30\x32\x2e\x32\x20\x32\ +\x32\x38\x2e\x33\x2d\x32\x32\x38\x2e\x33\x20\x30\x2d\x31\x32\x36\ +\x2e\x31\x2d\x31\x30\x32\x2e\x32\x2d\x32\x32\x38\x2e\x32\x2d\x32\ +\x32\x38\x2e\x33\x2d\x32\x32\x38\x2e\x32\x48\x33\x32\x36\x2e\x33\ +\x43\x32\x30\x30\x2e\x32\x20\x32\x38\x34\x2e\x32\x20\x39\x38\x20\ +\x33\x38\x36\x2e\x34\x20\x39\x38\x20\x35\x31\x32\x2e\x34\x7a\x20\ +\x6d\x33\x39\x34\x2e\x33\x20\x30\x63\x30\x2d\x31\x31\x34\x2e\x36\ +\x20\x39\x32\x2e\x39\x2d\x32\x30\x37\x2e\x35\x20\x32\x30\x37\x2e\ +\x35\x2d\x32\x30\x37\x2e\x35\x73\x32\x30\x37\x2e\x35\x20\x39\x32\ +\x2e\x39\x20\x32\x30\x37\x2e\x35\x20\x32\x30\x37\x2e\x35\x2d\x39\ +\x32\x2e\x39\x20\x32\x30\x37\x2e\x35\x2d\x32\x30\x37\x2e\x35\x20\ +\x32\x30\x37\x2e\x35\x53\x34\x39\x32\x2e\x33\x20\x36\x32\x37\x20\ +\x34\x39\x32\x2e\x33\x20\x35\x31\x32\x2e\x34\x7a\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x32\x34\x33\x32\x30\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x02\x20\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x30\x36\x38\x39\x39\x39\x36\x34\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x39\x30\x36\x36\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x31\x32\x20\x31\ +\x32\x38\x63\x32\x31\x31\x2e\x32\x20\x30\x20\x33\x38\x34\x20\x31\ +\x37\x32\x2e\x38\x20\x33\x38\x34\x20\x33\x38\x34\x53\x37\x32\x33\ +\x2e\x32\x20\x38\x39\x36\x20\x35\x31\x32\x20\x38\x39\x36\x20\x31\ +\x32\x38\x20\x37\x32\x33\x2e\x32\x20\x31\x32\x38\x20\x35\x31\x32\ +\x73\x31\x37\x32\x2e\x38\x2d\x33\x38\x34\x20\x33\x38\x34\x2d\x33\ +\x38\x34\x6d\x30\x2d\x36\x34\x43\x32\x36\x32\x2e\x34\x20\x36\x34\ +\x20\x36\x34\x20\x32\x36\x32\x2e\x34\x20\x36\x34\x20\x35\x31\x32\ +\x73\x31\x39\x38\x2e\x34\x20\x34\x34\x38\x20\x34\x34\x38\x20\x34\ +\x34\x38\x20\x34\x34\x38\x2d\x31\x39\x38\x2e\x34\x20\x34\x34\x38\ +\x2d\x34\x34\x38\x53\x37\x36\x31\x2e\x36\x20\x36\x34\x20\x35\x31\ +\x32\x20\x36\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x35\x31\ +\x35\x31\x35\x31\x22\x20\x70\x2d\x69\x64\x3d\x22\x39\x30\x36\x37\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x04\x9b\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x39\x37\x30\x31\ +\x37\x31\x30\x34\x39\x39\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x37\x32\x32\x30\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x39\x35\x36\x20\x38\x30\x37\x2e\x32\ +\x20\x36\x35\x37\x2e\x36\x20\x38\x30\x37\x2e\x32\x63\x2d\x31\x36\ +\x2e\x38\x20\x30\x2d\x32\x39\x2e\x36\x2d\x31\x33\x2e\x36\x2d\x32\ +\x39\x2e\x36\x2d\x32\x39\x2e\x36\x20\x30\x2d\x31\x36\x2e\x38\x20\ +\x31\x33\x2e\x36\x2d\x32\x39\x2e\x36\x20\x32\x39\x2e\x36\x2d\x32\ +\x39\x2e\x36\x6c\x32\x39\x39\x2e\x32\x20\x30\x63\x31\x36\x2e\x38\ +\x20\x30\x20\x32\x39\x2e\x36\x20\x31\x33\x2e\x36\x20\x32\x39\x2e\ +\x36\x20\x32\x39\x2e\x36\x43\x39\x38\x36\x2e\x34\x20\x37\x39\x33\ +\x2e\x36\x20\x39\x37\x32\x2e\x38\x20\x38\x30\x37\x2e\x32\x20\x39\ +\x35\x36\x20\x38\x30\x37\x2e\x32\x7a\x4d\x39\x35\x36\x20\x36\x32\ +\x37\x2e\x32\x20\x36\x35\x37\x2e\x36\x20\x36\x32\x37\x2e\x32\x63\ +\x2d\x31\x36\x2e\x38\x20\x30\x2d\x32\x39\x2e\x36\x2d\x31\x33\x2e\ +\x36\x2d\x32\x39\x2e\x36\x2d\x32\x39\x2e\x36\x20\x30\x2d\x31\x36\ +\x2e\x38\x20\x31\x33\x2e\x36\x2d\x32\x39\x2e\x36\x20\x32\x39\x2e\ +\x36\x2d\x32\x39\x2e\x36\x6c\x32\x39\x39\x2e\x32\x20\x30\x63\x31\ +\x36\x2e\x38\x20\x30\x20\x32\x39\x2e\x36\x20\x31\x33\x2e\x36\x20\ +\x32\x39\x2e\x36\x20\x32\x39\x2e\x36\x43\x39\x38\x36\x2e\x34\x20\ +\x36\x31\x34\x2e\x34\x20\x39\x37\x32\x2e\x38\x20\x36\x32\x37\x2e\ +\x32\x20\x39\x35\x36\x20\x36\x32\x37\x2e\x32\x7a\x4d\x35\x30\x38\ +\x20\x35\x36\x34\x2e\x38\x20\x35\x30\x38\x20\x35\x36\x38\x63\x2d\ +\x31\x39\x38\x2e\x34\x20\x30\x2d\x33\x35\x38\x2e\x34\x20\x31\x37\ +\x33\x2e\x36\x2d\x33\x35\x38\x2e\x34\x20\x33\x38\x38\x2e\x38\x20\ +\x30\x20\x31\x30\x2e\x34\x20\x30\x2e\x38\x20\x32\x30\x20\x31\x2e\ +\x36\x20\x32\x39\x2e\x36\x6c\x2d\x31\x2e\x36\x20\x30\x4c\x33\x31\ +\x2e\x32\x20\x39\x38\x36\x2e\x34\x63\x2d\x30\x2e\x38\x2d\x39\x2e\ +\x36\x2d\x31\x2e\x36\x2d\x32\x30\x2d\x31\x2e\x36\x2d\x32\x39\x2e\ +\x36\x20\x30\x2d\x32\x30\x31\x2e\x36\x20\x31\x31\x30\x2e\x34\x2d\ +\x33\x37\x35\x2e\x32\x20\x32\x37\x30\x2e\x34\x2d\x34\x35\x36\x2e\ +\x38\x2d\x35\x35\x2e\x32\x2d\x34\x39\x2e\x36\x2d\x39\x31\x2e\x32\ +\x2d\x31\x32\x30\x2d\x39\x31\x2e\x32\x2d\x32\x30\x30\x20\x30\x2d\ +\x31\x34\x38\x2e\x38\x20\x31\x32\x30\x2e\x38\x2d\x32\x36\x38\x2e\ +\x38\x20\x32\x36\x38\x2e\x38\x2d\x32\x36\x38\x2e\x38\x20\x31\x34\ +\x38\x2e\x38\x20\x30\x20\x32\x36\x38\x2e\x38\x20\x31\x32\x30\x2e\ +\x38\x20\x32\x36\x38\x2e\x38\x20\x32\x36\x38\x2e\x38\x43\x37\x34\ +\x37\x2e\x32\x20\x34\x33\x36\x2e\x38\x20\x36\x34\x32\x2e\x34\x20\ +\x35\x34\x39\x2e\x36\x20\x35\x30\x38\x20\x35\x36\x34\x2e\x38\x7a\ +\x4d\x34\x37\x38\x2e\x34\x20\x31\x34\x39\x2e\x36\x63\x2d\x38\x32\ +\x2e\x34\x20\x30\x2d\x31\x34\x39\x2e\x36\x20\x36\x37\x2e\x32\x2d\ +\x31\x34\x39\x2e\x36\x20\x31\x34\x39\x2e\x36\x53\x33\x39\x36\x20\ +\x34\x34\x38\x20\x34\x37\x38\x2e\x34\x20\x34\x34\x38\x73\x31\x34\ +\x39\x2e\x36\x2d\x36\x37\x2e\x32\x20\x31\x34\x39\x2e\x36\x2d\x31\ +\x34\x39\x2e\x36\x53\x35\x36\x30\x2e\x38\x20\x31\x34\x39\x2e\x36\ +\x20\x34\x37\x38\x2e\x34\x20\x31\x34\x39\x2e\x36\x7a\x4d\x36\x35\ +\x37\x2e\x36\x20\x39\x32\x36\x2e\x34\x6c\x32\x39\x39\x2e\x32\x20\ +\x30\x63\x31\x36\x2e\x38\x20\x30\x20\x32\x39\x2e\x36\x20\x31\x33\ +\x2e\x36\x20\x32\x39\x2e\x36\x20\x32\x39\x2e\x36\x20\x30\x20\x31\ +\x36\x2e\x38\x2d\x31\x33\x2e\x36\x20\x32\x39\x2e\x36\x2d\x32\x39\ +\x2e\x36\x20\x32\x39\x2e\x36\x4c\x36\x35\x37\x2e\x36\x20\x39\x38\ +\x35\x2e\x36\x63\x2d\x31\x36\x2e\x38\x20\x30\x2d\x32\x39\x2e\x36\ +\x2d\x31\x33\x2e\x36\x2d\x32\x39\x2e\x36\x2d\x32\x39\x2e\x36\x43\ +\x36\x32\x37\x2e\x32\x20\x39\x34\x30\x20\x36\x34\x30\x2e\x38\x20\ +\x39\x32\x36\x2e\x34\x20\x36\x35\x37\x2e\x36\x20\x39\x32\x36\x2e\ +\x34\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\ +\x2d\x69\x64\x3d\x22\x37\x32\x32\x31\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x09\x14\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x38\x35\x39\x32\ +\x30\x39\x35\x34\x39\x36\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x35\x32\x34\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x32\x31\x37\x2e\x39\x20\x33\x35\x36\ +\x2e\x35\x63\x2d\x31\x34\x2e\x31\x20\x30\x2d\x32\x35\x2e\x35\x20\ +\x31\x31\x2e\x34\x2d\x32\x35\x2e\x35\x20\x32\x35\x2e\x35\x73\x31\ +\x31\x2e\x34\x20\x32\x35\x2e\x35\x20\x32\x35\x2e\x35\x20\x32\x35\ +\x2e\x35\x20\x32\x35\x2e\x35\x2d\x31\x31\x2e\x34\x20\x32\x35\x2e\ +\x35\x2d\x32\x35\x2e\x35\x2d\x31\x31\x2e\x34\x2d\x32\x35\x2e\x35\ +\x2d\x32\x35\x2e\x35\x2d\x32\x35\x2e\x35\x7a\x4d\x32\x31\x37\x2e\ +\x34\x20\x34\x33\x33\x2e\x37\x63\x2d\x31\x31\x2e\x32\x20\x30\x2d\ +\x32\x30\x2e\x34\x20\x39\x2e\x32\x2d\x32\x30\x2e\x34\x20\x32\x30\ +\x2e\x34\x76\x31\x37\x34\x2e\x34\x63\x30\x20\x31\x31\x2e\x32\x20\ +\x39\x2e\x32\x20\x32\x30\x2e\x34\x20\x32\x30\x2e\x34\x20\x32\x30\ +\x2e\x34\x73\x32\x30\x2e\x34\x2d\x39\x2e\x32\x20\x32\x30\x2e\x34\ +\x2d\x32\x30\x2e\x34\x56\x34\x35\x34\x2e\x31\x63\x30\x2d\x31\x31\ +\x2e\x32\x2d\x39\x2e\x32\x2d\x32\x30\x2e\x34\x2d\x32\x30\x2e\x34\ +\x2d\x32\x30\x2e\x34\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x36\x42\x34\x30\x30\x44\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x32\x34\x34\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x38\x37\x38\x2e\x37\x20\x33\x37\x39\x2e\x35\ +\x76\x2d\x38\x36\x63\x30\x2d\x39\x36\x2e\x33\x2d\x35\x37\x2e\x35\ +\x2d\x31\x35\x33\x2e\x37\x2d\x31\x35\x33\x2e\x37\x2d\x31\x35\x33\ +\x2e\x37\x48\x32\x31\x38\x63\x2d\x39\x36\x2e\x33\x20\x30\x2d\x31\ +\x35\x33\x2e\x37\x20\x35\x37\x2e\x35\x2d\x31\x35\x33\x2e\x37\x20\ +\x31\x35\x33\x2e\x37\x76\x33\x32\x30\x2e\x37\x43\x36\x34\x2e\x33\ +\x20\x37\x31\x30\x2e\x35\x20\x31\x32\x31\x2e\x38\x20\x37\x36\x38\ +\x20\x32\x31\x38\x20\x37\x36\x38\x68\x34\x35\x2e\x38\x76\x31\x32\ +\x30\x2e\x34\x4c\x34\x34\x39\x2e\x39\x20\x37\x36\x38\x68\x31\x31\ +\x2e\x32\x63\x31\x37\x2e\x32\x20\x31\x31\x2e\x33\x20\x33\x39\x20\ +\x31\x37\x2e\x35\x20\x36\x34\x2e\x36\x20\x31\x37\x2e\x35\x68\x31\ +\x36\x31\x2e\x36\x6c\x31\x33\x30\x2e\x37\x20\x38\x35\x76\x2d\x38\ +\x35\x2e\x31\x68\x33\x33\x2e\x35\x63\x36\x36\x2e\x36\x20\x30\x20\ +\x31\x30\x37\x2e\x39\x2d\x34\x31\x2e\x33\x20\x31\x30\x37\x2e\x39\ +\x2d\x31\x30\x37\x2e\x39\x56\x34\x38\x34\x2e\x38\x63\x2d\x30\x2e\ +\x31\x2d\x35\x36\x2e\x39\x2d\x33\x30\x2e\x33\x2d\x39\x35\x2e\x33\ +\x2d\x38\x30\x2e\x37\x2d\x31\x30\x35\x2e\x33\x7a\x4d\x34\x31\x37\ +\x2e\x38\x20\x34\x38\x34\x2e\x38\x76\x31\x39\x32\x2e\x38\x63\x30\ +\x20\x31\x36\x2e\x32\x20\x32\x2e\x35\x20\x33\x31\x20\x37\x2e\x32\ +\x20\x34\x34\x6c\x2d\x31\x30\x36\x2e\x31\x20\x37\x30\x2e\x31\x76\ +\x2d\x37\x34\x2e\x39\x68\x2d\x31\x30\x31\x63\x2d\x36\x37\x2e\x37\ +\x2d\x30\x2e\x33\x2d\x31\x30\x32\x2e\x32\x2d\x33\x34\x2e\x38\x2d\ +\x31\x30\x32\x2e\x35\x2d\x31\x30\x32\x2e\x35\x56\x32\x39\x33\x2e\ +\x35\x63\x30\x2e\x33\x2d\x36\x37\x2e\x37\x20\x33\x34\x2e\x38\x2d\ +\x31\x30\x32\x2e\x32\x20\x31\x30\x32\x2e\x35\x2d\x31\x30\x32\x2e\ +\x35\x48\x37\x32\x35\x63\x36\x37\x2e\x37\x20\x30\x2e\x33\x20\x31\ +\x30\x32\x2e\x32\x20\x33\x34\x2e\x38\x20\x31\x30\x32\x2e\x35\x20\ +\x31\x30\x32\x2e\x35\x76\x38\x33\x2e\x33\x48\x35\x32\x35\x2e\x37\ +\x63\x2d\x36\x36\x2e\x35\x20\x30\x2e\x31\x2d\x31\x30\x37\x2e\x39\ +\x20\x34\x31\x2e\x34\x2d\x31\x30\x37\x2e\x39\x20\x31\x30\x38\x7a\ +\x20\x6d\x34\x39\x30\x2e\x34\x20\x31\x39\x32\x2e\x37\x63\x2d\x30\ +\x2e\x32\x20\x33\x38\x2e\x36\x2d\x31\x38\x2e\x32\x20\x35\x36\x2e\ +\x36\x2d\x35\x36\x2e\x37\x20\x35\x36\x2e\x37\x68\x2d\x38\x37\x2e\ +\x32\x76\x34\x30\x2e\x33\x6c\x2d\x36\x31\x2d\x34\x30\x2e\x33\x48\ +\x35\x32\x35\x2e\x37\x63\x2d\x33\x38\x2e\x35\x2d\x30\x2e\x32\x2d\ +\x35\x36\x2e\x36\x2d\x31\x38\x2e\x32\x2d\x35\x36\x2e\x37\x2d\x35\ +\x36\x2e\x37\x56\x34\x38\x34\x2e\x38\x63\x30\x2e\x32\x2d\x33\x38\ +\x2e\x36\x20\x31\x38\x2e\x32\x2d\x35\x36\x2e\x36\x20\x35\x36\x2e\ +\x37\x2d\x35\x36\x2e\x37\x68\x33\x32\x35\x2e\x37\x63\x33\x38\x2e\ +\x35\x20\x30\x2e\x32\x20\x35\x36\x2e\x36\x20\x31\x38\x2e\x32\x20\ +\x35\x36\x2e\x37\x20\x35\x36\x2e\x37\x76\x31\x39\x32\x2e\x37\x7a\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x36\x42\x34\x30\x30\x44\x22\x20\x70\x2d\x69\x64\ +\x3d\x22\x35\x32\x34\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\ +\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\ +\x35\x31\x2e\x34\x20\x34\x32\x38\x2e\x31\x48\x35\x32\x35\x2e\x37\ +\x63\x2d\x33\x38\x2e\x35\x20\x30\x2e\x32\x2d\x35\x36\x2e\x36\x20\ +\x31\x38\x2e\x32\x2d\x35\x36\x2e\x37\x20\x35\x36\x2e\x37\x76\x31\ +\x39\x32\x2e\x38\x63\x30\x2e\x32\x20\x33\x38\x2e\x35\x20\x31\x38\ +\x2e\x32\x20\x35\x36\x2e\x36\x20\x35\x36\x2e\x37\x20\x35\x36\x2e\ +\x37\x68\x31\x37\x37\x2e\x35\x6c\x36\x31\x20\x34\x30\x2e\x33\x76\ +\x2d\x34\x30\x2e\x33\x68\x38\x37\x2e\x32\x63\x33\x38\x2e\x35\x2d\ +\x30\x2e\x32\x20\x35\x36\x2e\x36\x2d\x31\x38\x2e\x32\x20\x35\x36\ +\x2e\x37\x2d\x35\x36\x2e\x37\x56\x34\x38\x34\x2e\x38\x63\x2d\x30\ +\x2e\x31\x2d\x33\x38\x2e\x36\x2d\x31\x38\x2e\x31\x2d\x35\x36\x2e\ +\x36\x2d\x35\x36\x2e\x37\x2d\x35\x36\x2e\x37\x7a\x4d\x35\x36\x37\ +\x20\x36\x32\x37\x2e\x34\x63\x2d\x32\x31\x2e\x31\x20\x30\x2d\x33\ +\x38\x2e\x33\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\ +\x2e\x33\x20\x30\x2d\x32\x31\x2e\x31\x20\x31\x37\x2e\x32\x2d\x33\ +\x38\x2e\x33\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x32\x31\ +\x2e\x31\x20\x30\x20\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\x20\x33\ +\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\x31\x2d\ +\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x33\ +\x38\x2e\x33\x7a\x20\x6d\x31\x32\x32\x2e\x32\x20\x30\x63\x2d\x32\ +\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\x33\x2d\x31\x37\x2e\x32\x2d\ +\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x30\x2d\x32\x31\x2e\x31\ +\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x2d\ +\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\x20\x30\x20\x33\x38\x2e\x33\ +\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\ +\x30\x20\x32\x31\x2e\x31\x2d\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\ +\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x7a\x20\x6d\x31\x32\x32\ +\x2e\x33\x20\x30\x63\x2d\x32\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\ +\x33\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\ +\x20\x30\x2d\x32\x31\x2e\x31\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\ +\x20\x30\x20\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\x31\x2d\x31\x37\ +\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\ +\x33\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x46\x46\x44\x35\x32\x34\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x35\x32\x34\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x35\x36\x37\x20\x35\x35\x30\x2e\x38\x63\x2d\x32\x31\x2e\x31\ +\x20\x30\x2d\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\x31\x20\x31\x37\ +\x2e\x32\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\ +\x33\x20\x32\x31\x2e\x31\x20\x30\x20\x33\x38\x2e\x33\x2d\x31\x37\ +\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x20\x30\x2d\x32\ +\x31\x2e\x31\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\ +\x2e\x33\x2d\x33\x38\x2e\x33\x7a\x4d\x36\x38\x39\x2e\x32\x20\x35\ +\x35\x30\x2e\x38\x63\x2d\x32\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\ +\x33\x20\x31\x37\x2e\x32\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\ +\x20\x30\x20\x32\x31\x2e\x31\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\ +\x33\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\ +\x20\x30\x20\x33\x38\x2e\x33\x2d\x31\x37\x2e\x32\x20\x33\x38\x2e\ +\x33\x2d\x33\x38\x2e\x33\x20\x30\x2d\x32\x31\x2e\x31\x2d\x31\x37\ +\x2e\x32\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\ +\x33\x7a\x4d\x38\x31\x31\x2e\x35\x20\x35\x35\x30\x2e\x38\x63\x2d\ +\x32\x31\x2e\x31\x20\x30\x2d\x33\x38\x2e\x33\x20\x31\x37\x2e\x32\ +\x2d\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\x20\x30\x20\x32\x31\x2e\ +\x31\x20\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x20\x33\x38\x2e\x33\ +\x20\x33\x38\x2e\x33\x20\x32\x31\x2e\x31\x20\x30\x20\x33\x38\x2e\ +\x33\x2d\x31\x37\x2e\x32\x20\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\ +\x20\x30\x2d\x32\x31\x2e\x31\x2d\x31\x37\x2e\x32\x2d\x33\x38\x2e\ +\x33\x2d\x33\x38\x2e\x33\x2d\x33\x38\x2e\x33\x7a\x22\x0d\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x36\x42\x34\x30\x30\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x32\ +\x34\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\ +\x00\x00\x9d\x49\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x01\x94\x00\x00\x01\x7f\x08\x06\x00\x00\x00\x6e\x46\x3f\xe1\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ +\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x9c\ +\xf3\x49\x44\x41\x54\x78\x5e\xed\x9d\x09\x80\x24\x45\x95\xf7\x23\ +\x32\xeb\xea\x7b\x7a\xee\x19\x86\xb9\x07\x01\x01\x15\x04\x41\x45\ +\x11\x75\x11\x65\xf1\x06\xd7\xd5\x55\xd8\x55\x57\xdd\xdd\x6f\x75\ +\x0f\x6f\xd1\xf5\xda\xc3\x5b\x17\x0f\x3c\x38\xc4\x03\x3c\x40\x90\ +\xc3\x01\x41\x50\x90\x73\x05\x01\x19\x18\x60\xae\xee\x19\x98\x99\ +\x9e\xe9\xaa\xae\xee\xae\x23\x33\xbe\x78\xd9\xf5\x8a\xd7\x6f\x22\ +\xab\xaa\xbb\xb2\xae\x9e\xf8\xc1\x7f\xe2\xa8\xcc\xa8\x8c\x97\x2f\ +\xe2\x75\x9e\x25\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\ +\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\ +\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\ +\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\ +\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\ +\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\ +\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\ +\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\ +\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\ +\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\ +\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\ +\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\ +\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\ +\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\ +\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\ +\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\ +\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\ +\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\ +\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\ +\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\ +\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\ +\xc5\x62\x89\x1a\x59\x4a\x2d\x96\x76\xa7\xd9\xbe\xaa\x4a\xa9\xc5\ +\x62\xa9\x11\x1b\x50\x2c\xed\x80\xbc\x69\xb5\x18\x10\x49\xb1\xde\ +\xcf\x8b\xee\x52\xdd\x14\xae\x18\x50\xa2\x6b\x83\xf4\xfa\xa7\xd7\ +\x33\x94\x5b\x18\x77\x62\x23\x5b\x55\x4e\xec\x2e\x55\x09\xe9\x8a\ +\xbd\xa7\x6e\x16\x7f\x2e\x15\x81\xa8\x82\x84\x0d\x36\x16\x8b\x01\ +\x1b\x50\x2c\x0d\xe5\x6e\x21\xba\xb3\x0b\xc4\x2a\x7f\x9e\x58\xe5\ +\x39\xdd\xab\x84\xea\x59\x25\x95\xb7\x5a\x08\x7f\x95\x92\xde\x6a\ +\xe9\xab\x45\xb0\x1c\x38\xa2\x9e\xa5\x0f\xf0\xc7\xa0\x5e\xc9\x1a\ +\xfd\x34\x68\x81\x4f\xf6\x41\x59\xb7\xb1\x47\x3a\xb1\xbb\x84\xe3\ +\x6c\x55\x05\xb1\x59\xc8\xbd\x7f\xf6\x12\x62\xf3\x69\x9b\xc4\xd6\ +\x60\xa9\x70\x6a\x0d\x1e\xb5\x2e\x67\xb1\xcc\x59\x6c\x40\xb1\xd4\ +\xcd\x4d\x87\x89\x85\xc2\x13\xcf\x35\x05\x0c\x47\x07\x8c\x60\x9a\ +\x07\x74\x60\x80\x7c\xc9\xe9\x64\xf0\x5f\x33\x51\xc1\xa4\x3f\x25\ +\xa9\x4a\x01\x40\xee\x97\x7e\x4c\xc7\x3d\x71\x8b\x97\xdf\x77\xeb\ +\xf8\xb0\xb8\xef\xd5\x42\x8c\x4f\x7d\x16\x50\x5a\xee\x00\xc2\xea\ +\x91\x6a\x9f\x5b\x2c\x73\x0e\x1b\x50\x2c\x33\x02\x82\x87\xef\x8b\ +\x93\x84\x4c\x3d\x4b\xa8\xee\x67\x29\xaf\xf8\x2c\x47\xfa\xab\xf5\ +\xec\xa9\x8f\x0d\x5a\x1c\x30\x66\xcb\x54\xa0\xf1\xa7\x82\x8c\xcc\ +\x2a\xe9\xde\x2f\x3d\xe7\xe7\xb9\xd8\xc8\x55\xaf\xdc\x5c\x3e\x82\ +\xe1\x01\x82\x97\x01\x53\x1d\x10\x56\x6f\xb1\xcc\x29\x6c\x40\xb1\ +\x84\x12\x16\x3c\xf4\x47\x7a\xea\x0d\xe2\x86\xd4\xff\x06\x41\x24\ +\x58\x61\xae\x50\x0a\x30\xca\x11\x59\x29\xdc\xfb\x7c\xcf\xf9\x85\ +\xe7\x8e\x5c\xf5\x8a\xc7\x82\xe0\x42\x83\x43\x58\x1e\xe0\x65\xc0\ +\x54\x67\xb1\xcc\x19\x6c\x40\xb1\x04\xdc\x2d\x44\x7c\x74\xb1\x58\ +\xa9\xfa\xba\x5f\x26\x65\xea\x65\x07\x4d\xf0\xa8\x06\x1e\xbd\x08\ +\xb1\xdb\x97\xf2\xe7\x93\x2a\xfd\xed\xbf\x7c\x22\xb8\xd0\x4f\x83\ +\x03\xe6\x4d\x75\x00\xcd\x23\xa6\x3a\x8b\xa5\xa3\xb1\x01\xe5\x20\ +\x06\x8e\x40\x54\xb1\xf7\x45\xca\x4f\xbe\x4c\xc9\x82\x0e\x24\xfe\ +\x1a\x38\x6d\xa5\x3f\x3a\x38\x83\x47\x35\x54\x10\x58\x9e\xf2\x84\ +\xb8\x7a\x22\x97\xb9\xf0\xd5\xc3\x10\x87\xcb\x81\xa1\x5a\x0a\xd0\ +\x3c\x62\xaa\xb3\x58\x3a\x12\x3b\x61\x1c\x44\xc0\x1d\x57\x99\x43\ +\xc4\x31\x5e\x57\xea\x74\xa5\x52\x2f\x96\xca\x7b\xb6\x8e\x1a\xbd\ +\xfa\x23\x1b\x40\x66\x02\x04\x16\x29\x86\x8b\xca\xbd\x70\xe4\x89\ +\xfd\xdf\xfe\x2b\x7d\xf4\x52\xfe\xe4\xe9\x00\xc1\xf3\xa6\x94\x62\ +\xaa\xb3\x58\x3a\x0a\x3b\x81\xcc\x61\xf0\x34\x96\xdb\xdd\xf3\x22\ +\xcf\x49\xbc\x4c\x39\xc5\x53\xa4\xaf\x16\x2b\x25\x1d\xbd\xe3\xe1\ +\x92\xb9\xdd\xff\x75\xa0\x23\x40\x4e\x87\xe1\x7b\x0a\x62\xec\xf3\ +\xa7\x3f\x26\xae\x9f\xaa\x9a\x16\x34\xa8\x80\xb0\x14\xe1\x65\x8b\ +\xa5\xa3\xb0\x13\xca\x1c\x03\x82\x48\x76\xad\x38\xbc\x20\x52\x7f\ +\x25\x54\xf2\x74\x29\xbd\xa3\xf0\x34\x96\xfe\xcf\x99\x5a\xca\x12\ +\x19\x0a\x1e\x71\x11\xc3\x05\xe1\x7e\xe7\x81\xc7\xf7\x9f\xff\x6f\ +\x42\x64\x83\x5a\xb3\x00\x9e\xa7\x29\xc2\xcb\x16\x4b\x47\x60\x03\ +\xca\x1c\x00\x82\x48\x66\xb5\x58\xe7\x25\xbb\xce\x14\xc5\xe4\xab\ +\xa5\x2a\x9e\x00\x47\x21\xfa\x30\xc4\x9e\xc6\x6a\x16\x4a\xee\x2b\ +\xfa\xe2\x47\xb7\x6f\x4d\x7f\xea\x13\xd3\x83\x0a\x5c\x77\xc1\x3c\ +\x0a\x30\x95\x29\xbc\x6c\xb1\xb4\x0d\xe5\x39\x27\xde\xfd\x62\x7c\ +\xf6\x4c\x09\x7f\xd8\x4e\x36\x1d\xcc\x2d\xab\xc4\xb2\x7c\xac\xfb\ +\x4c\x29\x13\xaf\x17\x7e\xf1\x25\xa5\x23\x11\x27\x38\x16\xb1\xb4\ +\x82\x9c\x27\xc4\x0d\x3b\x55\xe6\xc3\x6f\x7b\x22\xb8\xc5\x98\x06\ +\x13\x53\x60\x41\x01\x3c\x05\x68\xde\x62\x69\x29\xf4\x1a\xac\x50\ +\xa9\x97\xc1\x1f\xae\xd3\x9e\x3d\x93\xe2\xb7\x76\xe2\xe9\x30\xe0\ +\xce\xac\x82\xdf\x73\xba\x2b\x13\x6f\x52\x5e\xf1\x05\xa5\x8b\xea\ +\x36\x88\xb4\x09\xfa\xc8\x70\xd4\xf3\xd4\x8f\x6f\xdc\x96\xf9\xf4\ +\x7f\x4f\x1d\xa9\x60\x20\xe1\x69\x98\x00\x4c\x01\x9a\xb7\x58\x9a\ +\x4e\x70\x2d\x76\xd5\xc2\xa3\x95\xe3\xff\x93\x94\x85\xd7\x28\x25\ +\xfa\xf4\x64\x03\x33\xce\xb4\x39\x47\xd7\xdf\x6c\x27\xa1\x0e\x60\ +\xe3\x5a\x31\xe0\x38\x7d\x2f\x12\x7e\xec\x4d\xc2\x29\x9e\x22\x3c\ +\xb1\x44\x57\xdb\x20\xd2\xae\x28\xb9\x3f\xef\x8b\x4b\x4f\xdf\x9a\ +\xfe\x84\x2e\xd1\x40\x52\x6b\x70\x01\x30\x05\x68\xde\x62\x69\x1a\ +\xd7\xaf\x5e\x70\xb8\x2b\xd5\x07\x21\x90\x68\x2f\xec\xd3\x33\x4e\ +\xe8\x75\x58\x1b\x50\xda\x9c\x8d\x47\x8a\x95\x4e\x3e\x75\xae\xf0\ +\x12\x6f\xd6\x07\x96\x6b\xf4\x0e\x83\x20\x62\x2f\xac\x77\x00\xbe\ +\x90\xdb\x27\x84\x7b\xfe\x99\x8f\xef\xfb\x5e\x50\x9c\x2e\x08\x10\ +\x34\x8f\x65\xcc\x03\x34\x0f\xd0\xbc\xc5\xd2\x50\x82\x3f\x62\x45\ +\xcf\xeb\x84\x72\x3f\xac\x5d\x6f\x6d\x2d\xf3\x8e\x0d\x28\x6d\x48\ +\xf9\xf0\x32\xe6\xbf\x5b\xff\x55\xf0\x4a\xe5\x89\xa5\xf6\xe2\x7a\ +\xe7\xa1\x77\x96\xf2\x7d\xf9\xc4\xb8\x1f\xfb\xda\x99\xdb\x46\x7e\ +\xac\xab\x30\x80\x80\x3c\x92\x87\x40\x81\x69\x98\x10\x9a\xb7\x3c\ +\x4d\xad\x63\xc3\xda\xaf\x06\x6e\x5c\x2f\xd6\x09\x95\xfc\x80\xf0\ +\x13\xe7\x4a\x1d\x48\xb4\xd1\x6a\xb2\xaf\x0d\x28\x6d\x04\x5c\xf0\ +\x4a\x1f\xda\x7f\xb2\x4a\xb9\xff\x24\xbc\xe2\x0b\xb4\xeb\x57\x3c\ +\xbc\xb4\xb4\x3f\x10\x54\x8a\xc2\xbf\x7f\xb7\xca\x7e\xe6\xaf\x9f\ +\x10\xbf\xd7\x55\x3c\x98\xcc\x24\xb0\x20\x34\x3f\x27\x81\xb1\x00\ +\x3f\x79\x50\xec\x17\x8b\x1c\x47\x74\xc3\x5b\xac\x65\xb1\x2f\xf8\ +\x99\x03\x21\xbd\x3d\x42\xed\x79\xc8\x75\x45\x41\xc5\xc4\xce\x97\ +\x3c\x5c\xf5\xe7\x07\xaa\x31\xe7\xed\x59\x2b\xf0\xc7\xec\xde\x55\ +\x03\x27\xc7\x62\xf2\x53\xc2\xf7\x4e\x9c\xe9\xfc\x63\x03\x4a\x1b\ +\x00\x17\xd9\x8b\xc5\xe0\x4e\xad\xbf\x95\xca\x3b\x41\xbb\xb7\xab\ +\x77\xa4\xdd\x2f\x73\x07\xe5\x29\xf5\xfb\x07\x73\x63\x1f\x7c\xdf\ +\x70\x30\xf9\x61\x10\x81\x94\x07\x17\x98\xdc\x0e\xba\xa0\x82\xaf\ +\x00\xf2\x55\xf2\xc5\x42\x14\x5f\xe4\x48\xef\x99\xba\x83\x4f\x8f\ +\x81\xa9\xbb\x17\x9f\xa6\xf4\xd3\x03\x4a\xc8\x71\xe9\x3a\x0f\xea\ +\xec\x2d\x4a\x8c\xde\x38\xf2\xa8\xb8\xfd\xac\xe9\x3f\x3d\x60\xa2\ +\x9a\xed\xe6\x94\x6d\x6b\x85\x9d\xe2\x5a\x37\x9b\x39\xc8\x06\x94\ +\x16\x42\xaf\x8f\xe8\x5d\xb1\x56\x57\xd9\x8b\xec\x73\x14\x5f\xc9\ +\x91\x09\x25\x7e\x70\xe6\x96\xf4\x97\x75\xb1\x08\x55\x5a\x18\x50\ +\x78\x60\x41\xc1\xc4\x66\x12\x42\xf3\x1d\x05\x1c\x81\xc0\xed\xa7\ +\x7e\x2a\xf9\x7a\xe5\x27\x5f\x1d\xfc\xfc\x81\x92\xf0\xd7\xf0\x6c\ +\x5e\x01\xa4\xf4\x44\xa6\x1c\xa9\x72\x9e\x70\xef\x97\x22\xfe\xb5\ +\xec\xe3\x7b\x7e\xc9\x7e\xd3\x86\xc2\xed\x16\x66\xc7\x8e\xb5\xef\ +\x4c\xb9\x6e\x95\x58\x16\x73\x53\x7f\x2f\x65\xfc\x9f\xb5\xf1\xfb\ +\x66\x68\xff\x32\x36\xa0\x34\x19\x7b\x7d\xe4\xe0\xa5\xa0\xfc\xbb\ +\x1e\x9d\xc8\x9e\xf7\x8f\xbb\xc4\x26\x5d\xc4\x20\x02\xc1\x05\x83\ +\x89\x29\xb0\xc0\xa4\x86\x29\x00\x29\xe6\x01\x9a\x6f\x7b\xe0\x8f\ +\x28\xe9\x75\xbd\xa9\x61\x0f\xdf\xc2\x9b\xa1\xa5\xc8\xe9\xbf\xcd\ +\xee\x2b\xfa\xf1\x2f\x9f\xb6\x65\xcf\xcf\xca\x9f\x4c\x27\xcc\x86\ +\x26\x7b\x9a\xea\xe6\x0c\x78\xbd\x44\xf9\x89\xbf\x85\xeb\x25\xa5\ +\xea\x59\x61\x03\x4a\x13\x81\xc1\xe4\x16\x53\xef\xf2\xbd\xf8\x39\ +\xd2\x17\x4b\xb4\xe3\xdb\xeb\x23\x07\x11\x70\x94\x92\xf5\xc5\x8f\ +\x5e\xb3\x35\xfd\x55\x5d\xe4\x01\x85\x0b\x03\x0c\x4c\x66\x18\x50\ +\x50\x00\x4f\xdb\x16\xc3\xb5\xc1\xc6\x3f\x37\xa5\x03\x8b\x3e\xd4\ +\xd9\x52\x70\x75\x50\x79\x74\xef\xb7\x82\x9a\xa7\xa9\x64\x43\x53\ +\x1d\xc0\xcb\x73\x82\x1b\xd7\x2f\x3c\x56\xa9\xe2\x7f\x49\xdf\x3b\ +\x35\x8a\xf9\xc8\x06\x94\x26\x00\xe7\x87\x3d\xaf\xfb\xf5\xd2\x8f\ +\xbf\x5b\x09\xff\xe8\x7a\xff\x0a\xb0\x74\x2e\x9e\xf0\x1f\xd8\xe1\ +\x67\x3f\x7f\xee\x16\xf1\x87\xa0\xf8\x74\x40\xa9\x14\x58\x78\x40\ +\xc1\xc9\x8d\xa7\x6d\x05\x9c\x93\x77\xdd\xde\x97\x2a\x15\xfb\x7b\ +\xe1\x7b\x2f\xd1\x5b\xd9\xd4\x6b\x83\xfa\x8b\x94\x3e\x02\xda\xe7\ +\xfb\xe2\xd2\x4d\x5b\xd3\x9f\xfc\x87\xa9\x87\x4c\x01\x93\xfd\x4c\ +\x75\x34\x45\x78\xb9\x23\x81\x33\x25\xfb\x57\xf6\x9d\x26\x5d\xf9\ +\x25\xdd\xa5\x59\x5d\x2f\x31\x61\x03\x4a\x03\x09\xce\x13\xaf\xec\ +\x3b\xd5\x8f\xbb\x1f\xd2\x03\xea\x79\x33\xb9\xfd\xee\x60\x47\xf9\ +\x32\xab\x67\xd8\x61\x4f\xc9\x5c\xa9\x4a\x38\x52\xf5\xc4\x1c\xb5\ +\x5c\x47\xe3\x64\xa9\xaa\x13\x99\x18\x57\xea\x97\x7f\xf9\xc4\xd8\ +\xa7\x74\x1e\x02\x06\x04\x12\x1e\x54\x68\x70\xc1\x80\x62\x0a\x2a\ +\x20\x00\xd3\xb6\x00\xff\x80\x12\xfa\x0f\x28\x29\xfc\xa3\x74\x55\ +\x4b\xaf\x0d\x4a\x1d\x54\x0a\x4a\x5c\x74\xda\x96\xf4\x47\x4b\x55\ +\x26\xfb\x85\xd5\x01\x98\x22\xbc\xdc\x51\x4c\x05\xfa\xee\xb3\x7d\ +\xdf\xfd\x84\x9e\x90\x96\xea\xce\x44\xb6\x6f\x6c\x40\x69\x00\x10\ +\xfd\xf7\x1d\x32\xff\x38\x27\xae\x3e\x20\x9d\xe2\x19\xda\xc8\xf6\ +\xae\x2d\x8d\x76\xdc\x9c\x27\xe5\x53\xb9\xa2\xb3\x2d\xab\xfc\x47\ +\xb3\x22\xfd\x64\x26\x27\x46\x8b\x9e\xc8\x6d\xdb\x27\x9e\xd4\x7f\ +\xb2\xa7\x4b\x8b\xc2\x4c\xaa\x70\x46\x45\xdc\xa7\x25\x57\xeb\xa0\ +\x72\x4c\x97\x58\x34\xaf\x5b\x2c\xec\x75\x93\xf3\x07\xe2\xdd\x1b\ +\x52\xae\x77\x58\xdc\x11\x8b\x1d\xa5\x06\x82\x15\xda\x14\x7d\x94\ +\xf2\xd0\x56\x2f\xfb\xc5\x77\x6c\x15\x77\xe8\x22\x0f\x28\xb4\x4c\ +\x85\x01\x85\x06\x16\x80\xa7\x2d\x83\x07\x92\xb6\xfa\x03\xca\x97\ +\x8f\xe5\xbc\xf8\x17\x5e\xb9\x7d\xef\xa5\xba\x84\xf6\xab\x45\x00\ +\x4f\x01\x9a\xef\x18\x82\x1b\x81\x0a\xc9\x7f\x14\x7e\xe2\x9d\xba\ +\x07\xfd\xa5\xea\xc8\xb0\x01\x25\x62\x66\xf2\x9a\x82\xb9\x8a\x76\ +\x2a\xaf\xa8\x03\xc7\xa4\x72\x1e\x9a\xf0\xfc\xed\x10\x38\x86\xb2\ +\x62\xfb\x95\xfb\xc5\x56\x98\x19\xf3\x7a\x11\x38\xec\xc8\x7b\xf0\ +\x8c\xc6\xd4\x6c\x99\xd5\x75\xd5\xee\xf5\x24\xa8\x98\xfe\xa7\x4f\ +\x4f\x56\x70\xa8\x12\x48\x87\xec\x6e\x5d\x3e\x4c\x88\xd4\x49\x03\ +\x62\xcd\xa1\x7d\x89\x13\x7b\x9d\xd4\xf1\x71\xa9\x56\xc2\x0a\xed\ +\x84\x52\x32\x93\xf5\xd4\x2f\x5e\xbd\x2d\xf3\x45\x5d\x84\xee\xd3\ +\x40\x82\xc2\x7a\x48\x41\x95\x8e\x54\x90\x96\x4c\x72\xe5\x6b\x24\ +\x49\xe7\x5f\x84\xe7\x9d\xda\x8e\x47\xe2\x7a\x63\x94\xaf\xfc\xbb\ +\x76\xe7\xb3\x1f\xfe\xab\x21\x71\xaf\xae\xe2\x76\x34\xd9\x95\x0b\ +\xc0\x14\xa0\xf9\xb6\x07\xe6\xa6\x98\xe3\x7f\x4c\xa9\xe2\x9b\x1a\ +\x75\xda\xdd\x06\x94\x88\x80\xdb\xee\xe2\x4e\xea\x5c\xe1\xc6\xdf\ +\xa3\x87\xff\xd2\x83\x2d\x90\xc0\x29\xaa\x49\x5f\x3e\xbc\xdf\x13\ +\x77\x3d\x36\x39\xfa\xc0\xcf\x75\xf0\xa0\x81\x03\x4e\x5e\xef\xab\ +\x7d\x00\x56\x5b\x2e\xf4\x73\x08\x34\x83\x7a\xfe\x18\xd4\x01\xe6\ +\x59\x3a\xb8\xbc\x74\x41\xea\xe8\x43\xfb\x92\xaf\x49\x28\xff\xc8\ +\x76\x3a\x55\x56\xf0\xd4\x6d\xbf\xde\x3a\xf6\x71\x1d\x51\xf6\xe8\ +\x22\x0d\x2a\x85\x52\x4a\x03\x0a\xa6\x61\x01\x05\xed\x81\x69\x53\ +\x80\x23\x71\x7c\x61\xa0\x70\x0a\xaf\x95\x7e\xf0\x07\x54\xdb\xce\ +\x27\xf0\xcc\x4a\xd1\x51\x3f\x79\xc5\xe6\xcc\xbf\x07\xc5\x29\xa1\ +\x3d\xb9\x6d\x6b\xb5\x33\xcd\xb7\x25\xc1\xf5\x92\x35\x83\x27\xea\ +\x30\xff\xf1\xa8\x2e\xbe\x87\x61\x03\x4a\x9d\xe0\xce\x92\xae\xfa\ +\x18\xfc\x75\xa6\x77\x16\x9c\x95\x99\xf3\xe8\x51\x94\x2b\x28\xf9\ +\x44\x26\x2f\xee\x1a\x9a\x4c\x3f\x70\xdb\x7e\xf1\xf8\x9f\x85\x98\ +\xcc\xe8\xe0\x91\xd6\x1f\x97\x82\x07\xf5\xad\xb0\x81\x67\xaa\xe7\ +\x75\xb5\x2c\x73\x00\x3a\xb8\xc8\x45\x5a\x47\xba\x22\xfe\xda\x85\ +\xa9\xa3\xd7\x75\x27\xde\x96\x90\xea\x19\xa5\x8f\x5b\x4a\x51\xf9\ +\x0f\x3f\x51\xcc\x7e\xe5\xef\xb7\x8b\xbb\xa0\x58\x45\x18\x54\x60\ +\x92\x83\x3c\xf4\x9d\x4f\x78\x40\x55\x9b\x44\x45\xa7\xde\xb1\xa8\ +\x84\x7f\xdf\x1e\x91\xfd\x8f\x37\x3d\x5e\x7e\x6b\x01\xda\x92\x0a\ +\xeb\x68\x4a\x05\x60\x0a\xd0\x7c\x5b\x11\x1c\x3d\x1e\xd2\x7b\x86\ +\x4a\x38\x9f\xd1\x9b\x19\xd9\xc5\x77\x0e\x18\x00\x1a\xb6\x01\xa5\ +\x0e\xe8\xc5\x2d\x3d\xa8\xe0\xa8\x64\x4e\xdb\x52\x3b\x4d\x10\x44\ +\xf6\x8e\xcb\xdf\xde\xb1\x67\xf4\xd6\x5b\x84\x18\x2d\x05\x90\xe0\ +\xe8\x03\x66\x3a\x03\xa6\xc1\x16\x36\x18\x6b\xc9\x03\xbc\x5c\x11\ +\x38\x6a\x59\x2c\x84\xf3\xb6\xc5\x62\xe9\xf3\x7a\x12\x6f\xe8\x93\ +\xc9\x33\xa7\x3e\x69\x1d\xbe\x90\x7b\x46\x3c\x71\xd9\xd9\x5b\xd3\ +\x17\xe9\x22\x0f\x20\x20\x3c\x52\x01\x99\x8e\x52\x6a\x99\xe8\x22\ +\x07\x26\xa8\xd1\x15\x7d\xa7\x89\xb8\x73\x5e\x27\xde\xb1\xa8\x94\ +\xdc\x3b\xa9\xc4\xc5\x67\x6c\x49\x7f\x41\x17\x69\xd0\xe0\xb6\x45\ +\xe1\xe7\x68\x63\x14\xc0\xd3\xb6\x02\xe6\xa7\x98\xd3\xfd\x16\x4f\ +\xb9\x9f\x75\xea\x78\x58\xb1\x1a\xd0\x79\x6c\x18\x02\xca\x41\xf1\ +\x17\x75\xd4\x4c\x5d\x2b\x49\xfd\xb7\x76\xb5\x0f\x68\x63\xf6\xcf\ +\xe5\x60\x52\x14\x72\xf7\x7e\x5f\x5e\xf3\x50\x26\x73\xf1\x17\x9f\ +\xcc\xfd\xf8\xfa\x4c\xee\x91\x5b\x95\x98\xd8\xa1\x82\x23\x91\xe0\ +\x71\x64\x36\xa2\xf8\x00\xa3\x65\xcc\x43\xca\xf3\x28\xd3\x40\x0e\ +\xcb\x53\x41\xfd\x01\x9f\xe9\x0a\x95\xd1\xfa\x53\x56\x64\x96\xc6\ +\xbc\xad\x8b\x12\x22\x96\x94\xb1\xc3\xf5\x67\xad\x24\xa1\xb5\xef\ +\x47\xfb\xf3\xb7\x4e\x15\x03\xff\x81\xed\x05\x30\x45\xb0\x2f\x00\ +\xfd\x8c\x2f\xd7\x50\xe0\x01\xb8\xc9\xf9\xc9\xf3\x84\xeb\x7e\xdc\ +\x11\x6a\xa5\xde\xe2\x8e\x3b\xad\xab\x03\x60\xb7\x23\x95\x7f\x5c\ +\x57\xfe\x9e\xeb\x32\x62\x0c\xaa\x98\x00\x9a\x07\x68\xde\x44\xb5\ +\xcf\x9b\x4e\x70\xf1\x5d\x25\x3f\xac\xbc\xf8\x79\x7a\xe3\xba\x74\ +\x55\xc3\xb6\x91\x35\xbc\xc5\x06\x94\x19\x00\x7f\xa1\xbd\xe9\x90\ +\xde\xd7\x3a\x31\xf5\x1d\x3d\x77\x9d\xac\xad\x39\x27\xed\xe7\x2b\ +\x99\xce\x2a\xf5\xfb\xc7\x0a\x63\x17\xfe\x7c\x47\xee\xa2\x1f\xa6\ +\x73\xf7\xdc\x98\x15\x7b\x9e\xd0\x7f\x96\xc2\xd1\x08\xfc\xf9\x6c\ +\x20\x6c\xb2\xa3\x93\x21\x17\x06\x00\x1a\x0c\x2a\xa5\x3c\x4f\x05\ +\xf5\xa6\xcf\x82\xba\x9c\x4e\x1f\x1c\x17\x99\x35\xae\x37\xb4\x30\ +\x21\xba\x13\x32\xb6\x5e\xd7\xb7\x04\x3d\x08\xf5\x9c\xec\x67\x8f\ +\x74\x0b\x0f\xff\x66\x42\xec\x2f\x55\xc3\x76\xd2\x14\xc0\x3e\xf1\ +\xba\x30\x22\x9f\x38\xc0\xe7\xcf\x5e\xd1\x77\x86\x90\x5d\xe7\x4b\ +\xe5\xbc\x4a\x7f\x41\x4a\x57\x37\x6c\x82\x6a\x38\x4a\x4d\x38\xb2\ +\xf0\xe8\xcf\x46\xc5\x36\x5d\x82\x7e\x70\x21\x34\xdf\x31\x6c\x5c\ +\xbb\xe4\x68\x37\x9f\xf8\x1f\xa1\xe4\x5b\x75\x0f\x1a\x32\x3f\x81\ +\x03\x86\x18\xc7\x06\x94\x5a\xc1\xbf\xd0\x54\x2c\xf6\x51\xfd\xa7\ +\xd9\x9c\xbb\xf0\x1e\xdc\x9d\xe5\xc8\xa1\xbd\x45\x79\xc5\xc6\x1d\ +\xe9\xaf\x7f\x3b\x9d\xbf\xf9\xd7\xa3\x62\xf8\x1e\x25\xf2\x7b\xf4\ +\xd1\x48\x85\xbb\xb0\x4c\x93\x1d\xa4\x61\x2a\x4f\xf2\x44\xb4\x1c\ +\xb6\x4c\x35\xe1\x69\x8b\xb0\xb6\xd5\xa4\x4e\xef\x9b\x10\xa3\xc7\ +\x26\x13\x63\x83\x71\xf7\x08\x47\x8a\x79\xba\x7e\xd6\x40\xc3\xb3\ +\x9e\x75\x94\xf4\x5c\xd1\xb5\xf3\x17\x63\xb9\xcd\x50\x9a\xaa\x0c\ +\xc0\x3c\xad\x03\xa0\x8c\x42\xf8\x32\x91\x32\x17\x8e\x4a\x38\xf0\ +\x8b\xb5\x9e\x4c\x0d\xff\x64\x7f\xee\xff\x74\x11\xfa\x03\xbb\x10\ +\x53\xbe\x3b\x4d\xbb\x97\xda\x1c\x3f\x37\x2d\xd7\x54\xe0\x7a\xee\ +\xeb\x57\x0d\x9c\xe2\xb8\xc5\x2f\xe9\xa1\xd0\xd0\x8b\xef\x15\x3a\ +\x6b\x03\x4a\x35\xca\x3b\xca\xe9\xfa\x9a\xf4\x9d\xd7\x68\x63\x76\ +\xf6\x5f\x68\x0c\x08\x24\x05\x29\x1f\x1f\x9a\x94\x97\x5c\x36\x94\ +\xfe\xce\x0f\x32\xb9\xfb\x6f\xf5\xc4\xc4\x4e\x3d\x6c\xe0\x9c\x40\ +\xc8\x8c\x65\x9a\xd4\x20\x0d\x13\x9d\xe0\x51\x61\xf5\xa8\xb0\xf3\ +\xda\x58\x1f\xf6\x39\x15\x7e\x47\x39\x85\xa0\xd2\x97\x2d\xee\x5b\ +\x93\x12\xf9\x9e\xb8\xfb\x02\x5d\x37\x6b\xea\x73\x02\x98\xd8\xc4\ +\xf0\xe5\xa3\xc1\xc4\x86\xc0\x76\xf2\x94\x0b\xa0\x79\x4e\xdd\xbe\ +\x39\xc7\x7d\x1e\xee\xf6\x1b\xf9\xe1\xfe\xfc\xcd\x3a\x85\x3e\xf1\ +\x60\x42\xf3\x94\x4a\x36\x6f\x29\x70\xbd\x24\x3f\xd8\x73\xb6\x23\ +\xe5\x7f\x4b\xa5\x8e\xd1\x5b\xdf\x90\x60\x02\x9d\x37\x19\x86\x60\ +\x03\x4a\x25\x60\x47\xe5\x16\x74\x9f\xe3\x38\xf2\x02\xe9\x07\x77\ +\x49\x34\x2c\xea\x37\x1b\xed\x1c\xb9\xbc\x90\x9b\x74\x20\xf9\xe1\ +\x65\xc3\xe9\x8b\x2e\x4d\xe7\x1e\xbd\x53\x89\xc2\x88\xfe\x80\x9c\ +\xd2\xe2\x03\x08\xcb\xa6\xd4\x24\x3a\xb9\xd7\x2a\x08\x14\x34\x68\ +\xf0\x00\x82\x29\xcf\x57\x53\x79\x7b\x1e\xd1\x5d\x7c\x59\x6f\xb2\ +\x67\x9e\xeb\x1e\x2b\x25\x3c\xd2\xd2\x7c\xf4\xf7\xea\x49\x5a\x8d\ +\x96\x26\x36\x00\xb6\x8f\xa7\xb5\x28\x52\xe8\xe4\x24\x94\xdf\xb0\ +\xc9\x69\x26\x40\x27\xab\x4c\x64\x35\xa3\xdb\x71\x3c\xa5\x86\x2e\ +\xdd\x9f\xbf\x41\x17\x69\x30\xa9\xf7\x2b\xa2\xda\xc4\x19\x11\xbc\ +\xfa\x5f\x75\xbd\x43\x4a\xf7\xb3\x7a\x03\x1a\x7a\x73\x50\x0d\x0d\ +\xdb\x80\x12\x06\x5e\xd8\x92\x78\x61\x6b\x8e\x5c\x78\xd7\x83\x33\ +\x37\x29\xfd\xfb\x37\xe5\xc6\xbe\xf5\xb9\xa1\xdc\x8f\x7e\x9d\xce\ +\x3d\x0e\x81\x04\x4e\xe4\xb3\xd9\x89\x16\x31\x4f\x53\x9e\x47\xe1\ +\x04\x1e\x36\xd9\x43\x7d\x35\xf1\xe5\xb0\x6c\x4a\x67\x2c\xfd\x8f\ +\x3a\xae\xb7\xe0\x2f\x8a\xab\xc1\x84\x8c\x3d\x53\xd7\xcd\x1a\xe8\ +\xf0\x6c\x1d\xa3\xa8\xc4\x36\x16\x50\x40\x80\x29\x0f\xdb\x1e\xf6\ +\x79\x24\x94\x7c\xfe\xdf\x84\x88\x7d\x44\xf7\xa9\x6d\xee\x5c\x8c\ +\x7a\x23\x7c\xa1\xf6\x6c\x48\x16\xee\xbb\x39\x3b\xed\xc2\x3c\x60\ +\xfa\x2a\x6a\xdf\xc8\x6d\x5e\x0f\xb0\xbf\x84\x97\xfc\x80\x9e\xa3\ +\x3e\xa4\x8b\x0d\xb9\xf8\x0e\x1d\x9d\x41\xa3\x36\xa0\x98\x80\xb7\ +\x70\x8a\x62\xe2\x6b\xd2\x73\xde\xa4\xad\x39\x27\x6c\xa4\x1d\xa3\ +\x1c\x48\xfe\x73\x47\xe1\xb2\x5f\x8f\x8a\x5d\x5b\x94\xf0\x47\xa7\ +\x3e\xa3\xd0\x22\xe6\x69\x4a\x35\x6d\xa2\xd6\xe2\x93\x3c\x2d\x43\ +\xde\xf4\xb9\x49\xfc\x33\x2c\xd3\x7a\x6c\xa3\x56\xd1\x75\x54\x7c\ +\x4c\x8c\x1f\xd3\x13\xef\xeb\x8e\xb9\x2f\xd5\xe5\xba\x98\xed\x28\ +\x2e\xf8\x62\xfb\x8f\x46\xf3\xbf\xd5\x59\x93\x7d\x01\xcc\x07\xdb\ +\x4c\x04\x60\x6a\x62\xc6\x9b\x84\x17\x73\x95\x92\x6f\xd7\x2b\xcf\ +\xa9\xd3\xba\x1c\x5f\xa9\xdd\xbb\x73\x85\xbb\x6e\x1c\x17\xe0\xfe\ +\xd0\xcf\xb0\xbe\x52\x7b\x23\xb4\x8c\x79\x5c\xbf\x69\x36\x6b\xc6\ +\x1c\x05\x9d\x9b\xe1\xe1\xe9\x96\x39\x73\x0a\x27\x0a\xe0\xdc\xf1\ +\xc6\x43\xfb\x4f\x13\x5e\xe1\x7b\xd2\xf7\x5e\xaa\x77\x54\xc7\xdb\ +\x07\xae\x91\xe4\x85\xdc\xbc\x75\xd2\xf9\xea\xbf\x6f\xc9\x7e\xf2\ +\xb3\x43\xe2\xbe\x87\x3c\xe1\x3d\x69\x1e\x28\x58\x87\x79\x10\x4e\ +\x66\x38\x19\xa3\x70\x62\x47\xd1\x67\x26\x40\xf4\x59\x0a\xcc\x43\ +\x5a\x8b\xf2\x21\x65\x5e\x8f\x82\x7a\x14\xaf\xa7\xe5\xb2\x6e\x11\ +\x62\x22\x27\xdc\x9d\xca\x77\x86\x74\xb9\x25\xb8\x52\x0d\x7c\x72\ +\x91\x58\xa3\xb3\xe0\x67\x33\x11\x4e\x82\x75\x4f\x60\xe8\xf3\x8e\ +\x9a\xbc\x44\xc9\xe2\x5f\x76\xda\xb3\x25\xb3\x41\x3b\xb3\x9e\x87\ +\x83\x47\x94\x60\x22\xae\x45\xdc\xe6\x68\x77\x9a\x6f\x0a\xcd\x9c\ +\xa3\xa0\x63\x30\xf0\x67\xc2\x9c\x77\x9e\x5a\x81\x73\xc7\xa3\x6b\ +\x7b\xde\xe2\xc4\xc4\xd7\xa5\x0c\xce\x1d\x37\xd5\x51\x1a\x81\xe7\ +\xcb\x9d\x3b\x27\x9c\x6f\x7d\x77\x6b\xfa\xc3\x1f\x1f\x1e\xbd\x65\ +\x96\x81\x04\xf3\x3c\x80\xa0\x30\x68\xf0\xc0\x31\x93\x00\x62\x52\ +\x68\x30\x30\xa8\xda\x77\x1d\xd0\x56\x4e\x6b\xc2\x73\x77\x7b\x4a\ +\x3e\xa2\xcb\xb3\xa6\x5e\x27\xd1\x01\x1f\x27\x25\x10\x8c\xc7\x30\ +\xd1\xe5\x70\x59\xcc\xcf\x0a\x98\x9c\xe0\x35\xe6\xc4\xe7\xa1\xcd\ +\xb6\x05\x1c\x31\x22\xa4\x6e\x0c\xfa\x4a\x83\x06\x0f\x30\x68\x77\ +\x2e\xba\x0f\x9a\x0a\xcc\x51\xe9\x0d\xdd\xe7\xc8\x84\xfa\x7e\x23\ +\xe7\xa8\x7a\xec\x0c\x06\x3a\xe8\x81\x0b\x5b\x52\x76\xbd\x4b\x48\ +\xe7\xcb\x52\xaa\x75\xda\xa0\x4d\x77\x96\x28\x81\xe7\x48\xf6\x15\ +\xc4\x15\x57\x6e\x4f\x7f\xe0\x23\xbb\x46\xaf\xfd\x85\x27\xc6\xf5\ +\x9f\xe1\x26\x3f\xc1\x3a\x48\x51\x78\x04\x02\x79\x1a\x38\x68\x50\ +\xc1\x00\x62\x12\x4c\xd8\x98\x56\x52\xb5\x80\x41\xdb\xe0\xed\x9a\ +\xda\x87\x3a\x5e\x6f\x5a\xbe\x9c\x2f\xc8\x74\xc6\x77\xc6\xe1\x7d\ +\x5a\x2d\x41\x0f\xbe\x58\x4a\x95\xcf\x7d\xa3\xe8\xc4\x85\x79\x5a\ +\x47\x05\xd0\x3c\x40\xf3\xa1\xc0\xe4\xb4\x7f\x7d\xf7\x3b\x45\x5c\ +\x5c\xda\x29\x3e\xcf\x3b\x3a\x5b\xa0\xaf\x5a\x68\x53\x1a\x40\x78\ +\x1e\x97\x41\xc1\xd7\x63\x0a\xd0\xcd\x89\x62\xd3\x42\x81\xf7\x05\ +\x4a\x91\x7a\xbf\xf2\xdd\xff\xd1\x1b\xbf\xac\x91\xfb\xab\x9e\x86\ +\xc1\x38\x07\x35\x70\xaf\xbd\xef\x25\x3f\x2b\xfd\xd8\x67\xb5\xa7\ +\xf5\x77\xc2\xc0\x0a\x43\x6f\x7b\x6e\x5c\xa9\xdb\x6f\x4f\xa7\x3f\ +\xf2\xc1\xe1\xcc\xf7\xbe\xef\x89\x91\x6d\xba\x1a\x22\x00\x43\x2f\ +\x7a\x80\x30\x90\xa0\x4c\x41\x24\x2c\x98\xe0\x64\x3d\x6d\xc2\xae\ +\x43\xb4\x8d\xb0\xf6\x21\xa5\xa2\x9f\xd3\x3a\x9a\x4e\xab\x1b\xf5\ +\xc5\x88\x3e\x8a\xdb\xaa\xf3\x2d\x41\x4a\xb7\x67\x61\x62\x60\x09\ +\x64\xb5\xf8\xa4\x85\x79\x2a\x53\x1d\xc2\xcb\xa1\x40\x30\x81\xd7\ +\x72\x48\xe5\x7e\x56\x4f\x4e\x1d\xe5\xf3\xe0\xa8\x34\x9d\x2d\xda\ +\xb1\xc1\x96\x34\x68\x54\x0a\x26\x68\x5b\x9a\x47\x9b\xd1\x7c\x43\ +\x80\x39\x2a\x1e\x4b\x7e\x52\xa8\xf8\x47\x75\xc7\x23\x7f\xed\x3c\ +\x50\xaf\x3d\x11\x30\xd0\x41\xcb\xd4\x4f\x60\xce\xfb\xa6\xf0\x13\ +\x7f\xab\x5d\x02\x9c\xa8\x23\x81\xeb\x24\x39\xe5\x6f\xda\x9c\xcb\ +\xfc\xcf\x07\xb7\x8d\x7d\xee\x4b\x7b\xc5\x96\xcd\x9e\xf0\x0d\x0f\ +\x23\x82\xdf\x70\x41\xd0\xc0\x94\x0a\x03\x49\x58\x10\x01\xe1\x24\ +\x5e\xab\xe8\x3a\xbc\x2d\x2a\xfa\x79\xb5\x65\x51\xd5\xb6\x95\x2a\ +\x68\xb3\xe0\x8b\x49\xe9\x4a\xb8\xd3\x67\xd6\x80\xe1\x66\x8b\x5e\ +\x17\x7f\x4f\x9d\x4f\x4e\x28\x3a\xa9\xf1\xc9\x8c\x8b\x63\xaa\x2b\ +\xff\xa5\xeb\xeb\x60\xa2\x37\xa0\x21\x93\x53\x33\x30\x76\x6e\x06\ +\x90\x53\x8d\xdc\xc6\x5c\x74\x19\x5c\x07\x65\x22\xac\x7e\xc6\xc0\ +\x29\xc9\x1b\xd6\x0c\x9e\x8c\x73\x54\x23\xaf\x6f\x45\xd5\x70\xc3\ +\x36\xb0\x9d\x81\x1d\x75\xfd\xaa\x81\x53\x95\x2a\x7c\xbd\xd3\x2f\ +\xbe\xc3\xe9\xad\xfd\x45\x71\xd5\x55\xdb\xb2\x9f\xfe\xd4\x90\xb8\ +\xe3\x41\x1d\x48\x42\x5e\x15\x8f\x75\x90\x72\xc1\x44\x5c\x4b\x20\ +\xc1\x60\x50\xab\xca\x93\xb7\xa1\x8e\x0a\xdb\x47\xd1\xef\xc6\x3c\ +\xdd\x26\xcc\xcf\x54\xd8\x66\xa0\xef\xec\x16\x23\x45\xdf\xdd\xa2\ +\xf3\xb3\xa6\x9e\xd9\x23\x98\x95\xe0\xf7\x0c\xa7\x08\x8a\x44\xa6\ +\x09\x8c\xd6\x03\x58\x57\x13\x70\x9b\x69\x3c\x91\xfc\x40\x23\xff\ +\xd2\xed\x04\x60\xcc\x7c\x75\x8f\xd8\xae\xb3\x60\xcb\x5a\x84\x76\ +\xa6\xf6\xa6\xf9\xc8\xc1\xeb\x5b\x52\x78\x4d\xb9\x41\x08\x26\x81\ +\x28\x68\xe8\x46\xb6\x23\xb8\xa3\x62\x8e\xfa\x96\xf4\xfd\x13\xf5\ +\x8e\x6a\x98\x53\x34\x12\x3c\x2a\x79\x2c\x9f\xfe\xea\x07\x87\x33\ +\xdf\xbf\xc8\x13\xfb\x2b\x5c\x27\x31\x89\x06\x90\x5a\x8f\x48\xa8\ +\x78\x50\x08\x13\x2e\xcb\xd7\x07\x99\xbe\x0f\xcb\xf8\x19\x88\x6e\ +\x1f\xdf\xd6\x4a\xaa\xb8\xec\x0e\xfd\x3d\xae\x1f\xe4\x5b\x0d\x9f\ +\xa8\x4c\x93\x18\x0a\xa0\x79\x84\x97\xa7\x01\xc1\x44\x16\x92\xff\ +\x22\x8a\x89\x7f\xec\xe4\x3b\xb9\xc0\x71\xeb\x01\xc6\x8d\x27\x45\ +\x6e\x64\xaa\x88\x76\xa4\x32\xd9\xde\x54\x87\xd0\x7c\x24\xf0\xeb\ +\x5b\xfa\x1b\x22\xff\x0e\xa0\x5e\x5b\x9a\x38\xa8\x02\x4a\xf9\x4e\ +\x2e\x57\x7e\xa9\x91\x3b\xaa\xd1\x94\x8e\x4a\xae\xfe\xd5\xb6\xec\ +\x67\xfe\x63\x48\xdc\x59\x3a\xbd\xc5\xfd\x03\x03\x07\x80\x79\x98\ +\x60\xa9\x60\x32\xa5\x93\x2e\x9d\xd8\xb9\xc2\x02\x05\xe6\xe9\x72\ +\x95\xca\x20\xfe\x7d\x58\xe6\xdb\x44\xb7\x0d\xf2\xb4\xbe\x16\x99\ +\xd6\xc3\xf6\x02\xe9\xc9\x15\xea\xda\x05\x3a\x59\x61\xbe\x56\x01\ +\xbc\x1c\x80\xc1\x44\x16\x13\xff\xa0\x3f\xe9\xe8\x31\x3f\xad\x63\ +\xb3\x40\x09\x99\x9d\xf4\x9c\x27\x75\x96\xda\x0a\x85\x81\x03\x52\ +\x2a\xbe\x1c\x15\x60\x2a\xcf\x8a\xe0\xe1\x52\x37\xf9\xd1\x66\x5c\ +\xdf\x6a\x44\xc3\x60\xac\x83\x02\xbc\x10\x09\x77\x72\x89\x0e\xbd\ +\x93\x8b\x1d\x95\xc0\x45\xf7\x7d\xc3\x4f\x07\x0b\x0a\x96\x21\x85\ +\x09\x13\x97\xc1\xc9\x95\x4e\xac\x74\xa2\x37\x89\x06\x0d\xcc\xd3\ +\x3a\x5e\x8f\x75\xa8\x69\x13\xb8\x41\xb8\x2d\xa6\xd4\x24\x53\x5f\ +\x4c\xaa\xb6\x5c\xf0\x1d\x8e\x94\x90\x6f\x19\xe4\x5c\xfe\x6c\x55\ +\x09\x39\x97\x82\x49\x14\xf8\x4a\x64\x27\x8a\x02\x02\x0a\x60\xb2\ +\x67\x25\x35\x14\xf8\x59\x0c\x67\x72\xf0\x73\xaa\x98\x78\xbf\xf6\ +\xdc\x8e\x3c\x25\x79\x50\x38\x18\x46\x7d\xbc\x10\xa9\x67\x99\x86\ +\x3b\x47\xd4\x54\x38\x2a\x01\x21\x58\xe6\x2a\x4f\xa0\xa5\x34\x4c\ +\x34\x10\xd0\x00\x61\xca\x53\xd1\xf5\x50\xa6\xf6\xa9\x70\x62\x37\ +\x09\xb7\x19\xf3\xbc\x2f\xa6\x7a\x2e\x5c\x8e\x2e\x8b\xf9\xf2\x67\ +\x7a\x00\x40\xb9\x25\x78\xc2\x1b\x1d\xca\x8f\x9a\xee\x32\xe3\x13\ +\x99\x49\x08\x2f\x97\xb9\xf1\x08\x1b\x4c\x38\x4a\x16\xb3\xfb\xdd\ +\x34\x1e\xa1\x20\xd4\x86\x98\xa7\x9f\x03\xb4\xde\xf4\xf9\xac\xc1\ +\x6b\xba\x31\xd7\xfb\xae\x68\xe0\x6f\xbe\x37\x83\x39\xef\x64\xf8\ +\x17\x5a\xa7\x46\xfd\x59\x1e\x95\x80\xca\x93\x26\x11\x4e\xe6\xa6\ +\x00\x40\x85\x41\x82\x07\x0e\xac\x0f\x13\x0d\x18\x61\x32\x6d\x17\ +\x8a\x6e\x3b\xe6\xeb\x15\x40\xcb\xd3\xbe\x47\xc1\x23\x6e\xad\x42\ +\x6f\x89\xfe\x1f\xbe\x3f\x6c\xa2\x32\xd5\xd3\x14\xf3\x00\xcd\x07\ +\xc1\x44\x15\x93\xef\xb7\xc1\x64\x3a\x9e\x27\x47\xff\xbc\x43\x84\ +\xdd\x2a\x6e\xb2\x29\xaf\xa3\x84\xd5\xd7\x8c\x0e\x26\xf0\x33\xbd\ +\xaf\x85\x6b\xba\xc2\xf7\x4e\xd2\x2d\x36\x7d\x5f\x45\x39\x00\xe6\ +\xb4\xa3\xe1\x21\x24\x0c\xaa\x4e\x8c\xfa\xbe\x2f\xc7\xc7\x3c\x75\ +\xd3\x6f\x33\xd9\x2f\x90\xa3\x12\x80\xfa\x00\xe4\xc3\x04\x93\x27\ +\xc8\x34\xb1\x83\x68\x30\x08\x0b\x1e\x98\xd2\x65\xb0\x0c\xc2\x76\ +\x78\xdb\x54\xb8\x1d\xb8\x4d\xa6\xb4\x56\xcd\x14\x53\x1b\x65\xc5\ +\xa6\xbe\xbf\x65\xe8\x8d\x30\x4d\x4a\x61\x93\x18\xd6\xd1\xcf\x0e\ +\x58\x4e\x07\x93\x43\xe7\x6a\x30\x81\x9d\x36\x5b\xe0\x8f\xb3\x82\ +\x23\xd3\x97\x08\x01\xbf\x5c\x0d\xa0\x9d\x51\x88\xa9\x0e\xe0\xe5\ +\xba\x80\xd3\xf0\x99\xf5\xdd\xe7\xf8\x29\x79\x41\x2b\xaf\xe9\x46\ +\xf9\xa5\x73\x36\xa0\xc0\x33\x26\xae\xeb\x7d\x0d\x0e\x21\xb5\xc5\ +\x3a\xae\x9f\x9e\x90\xbb\x77\x2b\xf9\xe3\x0b\x87\xc6\x2e\x38\x7f\ +\x8f\xd8\x49\x8e\x4a\xe8\x98\xc2\x3c\xd6\xc3\xe4\x88\xc2\x89\x9c\ +\x4f\xee\x20\x1a\x10\x40\x3c\x48\x60\x1d\xd6\xd3\x3c\x5d\x1f\xdb\ +\xe3\xdf\x43\xb7\x83\x6f\x17\x96\x71\x9b\x01\xcc\xd3\x3a\x0a\xff\ +\x7c\x36\xa2\x04\x75\xdf\x17\x22\xa6\x3c\xd5\x3d\x55\xd5\x7c\xf4\ +\x04\x97\x7b\x6a\x4f\xf0\x82\x42\x0a\x1d\xdf\x90\x37\x89\x53\xae\ +\xbb\xf6\x70\x71\xa8\xb4\x47\x26\x46\x3c\x29\x47\xd2\xbe\x7c\xb4\ +\xc2\x8f\xc5\x99\xa8\x64\xf7\x59\x53\x3a\x0d\xff\x49\xdf\x73\xbf\ +\xd2\x69\x0f\x97\x22\xa6\x0d\x9e\x93\x0e\x07\xc1\x44\xaa\xe2\x7f\ +\x75\xe2\x33\x26\xf0\x57\xd4\xa4\xf0\x1f\x7a\x28\x97\xfe\xea\x47\ +\x76\x8c\x5e\x79\x95\x27\xc6\x33\xa5\x8f\xa6\x92\x32\x58\x0e\x26\ +\x47\x22\x3a\x79\xd3\x49\x1e\x83\x00\x17\x0f\x1a\x34\x78\xd0\x3c\ +\x08\xdb\xa1\xed\xa2\xe8\xf7\xa2\x70\x7b\xf8\x36\x72\x51\xaa\x7d\ +\x3e\x5b\x78\x7b\x6a\xf9\x3a\xd1\x2f\x1d\x6f\x75\xa9\xdc\x74\x7c\ +\x29\x73\xfa\xaf\x65\x1e\x50\x80\x5a\x26\xb0\x03\x96\xb9\x7a\x83\ +\x58\x99\xf0\x92\xef\x57\x6d\x16\x4c\x82\xd3\xb6\xc2\x7f\x70\x54\ +\xe5\x7e\x55\xaa\x9a\x15\xb0\xe3\xaa\x19\xa5\x12\x4a\x14\x47\xf7\ +\x7a\x99\xba\x9e\x3b\xd2\xd4\xb2\x6f\x2a\x12\xcc\x4f\xb9\x79\xdf\ +\x85\x5b\xb8\x75\x4b\x1d\xf9\x40\x35\x18\xc0\x34\x30\xe7\x5c\x40\ +\xc1\x60\xa2\xa6\x82\x49\x5d\x3b\xbe\xd9\xe8\x1d\x94\x9b\x90\xea\ +\xb6\x5b\xd2\xd9\x2f\x7f\x6e\x48\xdc\xf7\x84\x27\x7c\x98\xa9\xa7\ +\x3e\x2a\x03\x79\x2e\x9c\xc0\x71\x62\xa7\x13\x3d\x88\x06\x03\x54\ +\x58\xe0\xa0\x01\x04\xc5\xdb\x03\xe1\x77\x72\xe1\xf6\xd0\x94\x8b\ +\x52\xe9\xb3\x46\xf1\xf4\xf7\xb4\x68\x04\xc0\xe9\xcc\x9c\x27\x9f\ +\xaa\xf2\xd7\x32\x4e\x5e\xdc\x8f\x0f\xf0\xeb\x2b\xd7\x89\x95\x49\ +\x95\x7c\x9f\x9e\xa4\xde\xab\x3f\x6d\x9f\x60\xe2\xcb\x6c\xd6\x53\ +\xbf\x79\x3c\x97\xfd\xb1\xa3\x44\xbc\x54\x3d\x2b\xea\x1d\xcc\x45\ +\x4f\xa6\x1f\x1a\x0a\x7e\x4b\x7e\xa6\x50\xdf\x9c\xb5\x9f\xc2\xc5\ +\xf7\x76\x7d\x9b\xf9\x4c\x6d\x1b\x66\x80\x39\x15\x50\x3a\x39\x98\ +\xf8\x4a\x8e\xec\x2e\xc8\x9f\x7d\x77\xeb\xd8\xd7\xe1\x14\x57\xe9\ +\xad\xc0\xdc\x79\x31\x8f\xf5\x74\x22\x47\xd1\x49\x9f\x07\x06\x10\ +\x0d\x1e\xbc\xcc\x83\x09\x6d\x0b\x65\xfa\x4e\x10\xdd\x26\xcc\x53\ +\x51\xc2\xea\x9b\x89\x92\x4a\x0c\x48\xc7\x6f\xc9\x11\x8a\x92\xa2\ +\x58\x94\x72\xb2\x54\x04\x5f\x45\x85\x11\xfa\xd9\x8f\xd7\x8a\x43\ +\xbb\x65\xf2\xff\x39\x5e\xe2\x3d\x7a\xa9\xb6\x19\xd3\x70\x67\xe2\ +\xbe\xa2\xba\xf6\xa2\xa1\xb1\x6f\x8f\x15\xba\xc6\x93\x32\xb5\xaa\ +\xf4\x51\xd3\x81\x00\x3e\xe1\x39\xdb\x2f\x15\x02\x7e\x4b\xae\x1a\ +\xd4\x3f\x23\xf1\xd1\xf2\x33\x70\x6d\xf8\x36\xf3\x99\x76\xb2\xd2\ +\xb2\x73\x22\xa0\x40\xe4\xbf\x61\x65\xdf\x19\xc2\xcb\xff\xa4\x13\ +\x83\x49\x41\x79\x5b\x1e\xcd\xa7\xcf\xff\xf0\x70\xfa\x27\x55\x4e\ +\x71\x71\xd1\x09\x9d\x4f\xfc\x18\x10\x30\x38\xf0\x60\x41\x03\x49\ +\x98\x68\x7b\xf4\xbb\xb8\x70\x5b\x20\x05\x70\xfb\x28\x58\xc7\xeb\ +\x5b\x86\xaf\x16\x77\x0b\xaf\x67\x51\xa9\xd8\x54\xd4\xf4\xe7\x21\ +\x6a\xe5\x80\xa0\xf3\x83\x95\x62\xe5\x02\xa7\xfd\x82\x49\x51\xc8\ +\xdd\xbb\x3c\xf9\xe3\x0f\xef\xcc\x5c\xb4\xcd\x13\xf9\x45\x8e\xbf\ +\x3c\x21\xd5\x61\xa5\x8f\x9b\x8e\x76\xce\xd1\xac\x27\xb7\xb2\x9b\ +\x5a\xa8\x4f\xd2\xba\x30\x2a\x7d\x16\x4a\xbb\xbf\xcd\x7c\x26\x1b\ +\x03\x06\xa8\xb4\x7c\xc7\x07\x14\x7c\x95\x4a\x27\x3e\xfd\x0e\xe7\ +\x96\xc7\x95\x7f\xd7\x4d\x99\xf1\xcf\x7e\x7a\x48\xdc\x59\xe3\x29\ +\x2e\x3a\x91\x83\xe8\xa4\x8f\x32\x05\x07\x10\x06\x11\x1a\x48\x68\ +\xde\xd4\x16\xff\x3e\x2a\xba\x5d\x00\xcd\x03\xfc\xf3\xb6\x42\x8a\ +\xfc\x80\x90\x1e\xfc\xc0\x55\xf3\xd1\x47\x28\x85\xa7\x8f\x50\x66\ +\xc5\xc5\x87\x8a\x15\x4b\x12\xc9\x7f\xd0\xc1\xe4\xef\x75\x7b\x6d\ +\x33\x96\xe1\x0f\xa4\xc7\x73\xe9\x6f\x9e\x37\x34\x7a\xd5\xa3\x9e\ +\x50\x2f\x5c\x20\xe6\x0f\x76\xa9\x0d\xfa\xa3\x96\x8d\xcd\xa2\xf0\ +\x76\x3f\x54\x4c\xdf\x5f\x2a\x86\xc1\xfd\x94\xfa\x6f\xd8\x67\x15\ +\x69\xf7\xb7\x99\x57\xed\x00\x01\x96\xad\xb6\xf1\x1d\x1d\x50\x68\ +\x30\xe9\xb4\xa7\xdf\xe1\x10\x3c\x5d\x10\xd7\x7d\x77\x5b\xf6\xf3\ +\xe4\x2e\x2e\x80\xee\x63\x5a\x47\x05\x93\xb9\x69\xf2\xc7\xc0\x80\ +\xaa\x74\x04\x12\xf6\x19\xb6\xc5\x83\x07\x15\xdf\x1e\x14\xc2\xcb\ +\x6d\x89\xeb\xf8\xdd\x4a\x8a\x96\x1c\xa1\x78\xca\x4b\x6f\xcf\x8d\ +\xce\xe6\x7c\x7e\xc0\xb7\x57\x97\x83\x89\xfe\xcb\xb7\x3d\xc6\x31\ +\x5e\x7c\x7f\x24\x3f\x7e\x81\xfe\x03\xe9\x8e\xc7\x75\x30\x81\xfa\ +\xa5\x6e\xd7\xfc\x2e\x91\x7a\x46\xb0\x50\x0b\xd0\x1b\x91\xcb\x09\ +\x67\xf8\x1b\xbb\x2b\x1e\x11\xa2\xbf\xa2\xef\x62\x99\x52\xe9\x33\ +\x4a\xf0\x39\x9c\x82\x6f\xf7\xb7\x99\xd7\x3a\x61\x42\x87\x6a\x59\ +\xb6\x63\x03\x4a\x27\x07\x13\xbc\x25\xf8\x92\x9d\x99\x8b\xd8\x29\ +\x2e\xea\xa8\x58\x46\xe1\x64\xce\x27\x7b\x0c\x00\x28\x1e\x20\xf0\ +\x88\x84\x8a\x7e\x4e\xd7\x35\xb5\x4f\xc5\xb7\x09\x44\x31\xd5\xb5\ +\x2d\x8e\xf2\xbb\xa5\x52\x8b\x4b\xc5\xa6\xe2\xfb\x22\x7b\xcf\xde\ +\x19\x9f\xf2\x0a\xec\xfb\xb5\x43\xc5\x21\x2b\xdd\xe4\x7b\x62\x7e\ +\xe2\x1d\xed\x14\x4c\x26\x85\x7f\xcf\xad\x99\xec\x97\xe0\x67\xa6\ +\xf1\x77\x95\x9f\xa3\xe3\x76\xab\x4f\x77\x15\x95\xb3\x7b\x6f\xde\ +\xf9\x93\x1e\x67\xd4\x37\xd1\x57\x51\x00\x4d\x4d\xaa\x44\x79\x19\ +\x7a\x0a\xbe\x9d\xef\x34\xad\xd6\x21\x04\x96\xab\x75\x72\xed\xc8\ +\x80\xd2\xc9\xc1\xa4\xa0\x9c\x1d\xdb\x26\xe5\x45\x70\x4b\xf0\x2f\ +\x3d\x31\x01\xb3\xb7\x86\xee\x5b\xc8\x53\xd1\xc9\x1c\xf3\x34\x08\ +\x80\x68\x80\xa8\x55\xb8\x1e\xb6\x81\xed\xe2\x77\x50\xf1\x6d\x02\ +\x51\x4c\x75\x6d\x0d\x9c\xd7\x56\xaa\x78\x64\xa9\xd8\x54\xb4\xa1\ +\x72\x79\xc7\x19\xb9\x5e\x08\x3c\xe5\x85\xf6\xe3\x36\xa4\xf5\xc1\ +\x67\x5f\x3d\x44\x1c\xb2\x3e\x9e\xfc\xfb\xf8\xd4\x5f\xbd\xed\x11\ +\x4c\x4a\x77\x72\xfd\x2e\x93\xbd\xe0\x7f\x77\x8b\x5d\xbb\x4a\xf5\ +\xc0\xcb\xe6\x8b\xc5\xf3\x53\xea\x68\x9d\x6d\xd9\x18\x2d\xfa\xc5\ +\xa7\xee\x1e\x1e\xad\xf5\x74\x17\xb7\x79\x35\x01\x98\x8a\x9b\x56\ +\x4f\xfd\x4c\xaf\x88\x8b\x6f\xb7\xfb\x29\xf8\x5a\x37\x6c\x26\x1d\ +\xe8\xb8\x80\xd2\xa9\xc1\xa4\xf4\x17\xdc\x43\x0f\xe7\x47\xbf\x05\ +\xbf\xef\x5e\xe1\x7a\x09\xa6\x54\x30\xa9\xe3\xc4\x4f\xc5\x83\x03\ +\xc8\x74\x44\x02\x32\x2d\x8b\xed\xd2\x14\xc5\xb7\x01\xc0\x14\xa1\ +\x9f\x75\x14\xc5\xdc\x82\x45\x4a\x74\x1f\x55\x2a\x36\x15\x5f\xc9\ +\xec\xa4\x2f\x9f\x04\x83\xcf\x84\xff\x5e\xa6\x83\x49\x32\xf1\xce\ +\x84\x4a\x9c\xa3\xbd\xbe\x6d\x82\x49\xba\xa8\x6e\x82\x3b\xb9\xe0\ +\xd4\x2d\x3e\x82\x8e\x1c\xda\x95\x5a\xda\xe3\x26\x8f\x2f\x15\x9b\ +\x0e\x9c\x5a\x9e\xf4\x9c\xed\x97\x4c\xbf\xbb\x8b\xfa\x2c\xf5\x61\ +\xcc\x57\x13\xa5\x5c\x86\xd7\xdd\xf8\xf1\xe4\x47\x9a\xf1\x33\xbd\ +\xed\x4a\xc7\x05\x94\x7d\x6b\x07\x9f\x27\x62\xce\x67\x3a\x2d\x98\ +\x4c\x08\xff\x5e\x7c\xbe\x64\x06\xd7\x4b\xe8\x04\x8f\x82\x79\x88\ +\x06\x05\x90\x29\x70\x54\x92\x29\x88\xd0\xef\xa5\x02\x68\x1e\xe0\ +\xe5\x8e\x43\x3a\xfe\x42\x29\xbd\x67\x96\x8a\x4d\x45\x1b\x2e\x3b\ +\x56\x94\x61\xa7\xbb\xd0\xb6\xd3\xec\xfb\x99\xa5\x62\xf9\x91\xdd\ +\x89\xbf\x4d\xaa\xe4\xdb\xda\x25\x98\xc0\x9d\x5c\x3b\x7d\x79\xe9\ +\x07\x76\x66\xbe\x75\xa5\x3e\xda\xe6\xc1\xe4\x0d\xbd\xa2\x7b\xa1\ +\xab\x56\xba\x4a\x0c\x96\xaa\x9a\x4e\xd1\x29\xee\xdc\xae\x32\x77\ +\x91\xe7\x7d\xd0\xae\xd4\xc6\x98\xaf\x24\xca\x01\x75\x1b\x57\x2d\ +\x78\x86\xc8\x0d\x7e\xb6\x93\xdf\x14\x1c\x05\x1d\x15\x50\xe0\x22\ +\x97\x2b\xd5\x79\x8e\xf0\x8f\xd6\x7b\xb3\x23\x82\x09\xfc\x85\x94\ +\x29\xa8\x1b\x7e\xb5\x2d\xfb\xb5\x2a\xcf\x97\x50\xe1\x24\x8f\x93\ +\x3e\x17\x0d\x0c\x34\x50\x84\x09\x97\xc3\xf5\xb1\x5d\xfa\x3d\x28\ +\xbe\x2d\x20\x84\x97\x3b\x16\xe9\x14\x17\x4a\xe1\xb7\x24\xa0\xc0\ +\x05\xf9\xe1\x5c\xf9\x2d\xc3\x95\xec\x19\xd8\xfb\x93\x8b\xc5\xb2\ +\x63\x7a\x12\xe7\x74\xf9\xc9\xb7\xb6\x4b\x30\x29\x9d\xba\xbd\x10\ +\xef\xe4\x02\x67\x62\xa8\x67\xf7\x74\x2d\xeb\x8f\xa5\x4e\x28\x95\ +\x9b\x0e\xfc\x21\x97\xf7\x9d\xe1\x1b\x87\xc4\x26\x28\x4e\xd5\x06\ +\xa0\x1f\x73\x85\xf9\x7f\xa8\xe0\xf5\x3d\xd7\xaf\x99\xf7\x02\x37\ +\xe6\x7d\xb5\xd3\xdf\x14\x1c\x05\x1d\xd3\x79\xfa\xd0\xa2\xde\x93\ +\x1d\x13\x4c\xe0\x74\xc0\xc5\x3b\xc7\xbe\x7b\xb1\x27\xf6\xd5\xf0\ +\x7c\x09\x9f\xdc\x51\x18\x08\x68\x50\x80\x7c\x2d\x47\x24\x74\x3d\ +\x53\xdb\xf4\xfb\xb9\x10\x5e\xee\x68\xe0\xfa\x89\xf0\x0b\xcf\xd4\ +\x1d\x6a\x89\x1f\xc1\x05\xf9\x3b\xab\x5f\x90\x0f\xec\xfd\xf1\xa5\ +\x62\xd9\xb1\xbd\x89\xb7\x75\xfb\xc9\xbf\x6e\x97\x60\x92\x17\xde\ +\x63\x8f\xe4\x47\xbf\xf1\x89\xe1\xd1\x5b\xf0\x4e\x2e\x86\x3a\x56\ +\x08\x77\xb1\xa3\x96\xa6\x84\xdf\xb2\x8b\xf1\xa5\x77\x77\xfd\xf9\ +\xda\xa7\xaf\x55\x99\x40\xdf\x46\xd5\x32\x46\x02\x3e\x21\x44\xfc\ +\x90\x43\xfb\xfe\x22\x26\xfc\xef\x96\x9e\x7f\x6b\xeb\xf9\xb4\xbc\ +\xe1\x0d\xa4\x23\x02\x4a\x27\x3e\x01\x0f\x77\x72\xed\x54\xf2\xd2\ +\x0f\xef\xcc\x7c\x1b\x2e\xbe\xcf\xe0\x2d\xc1\xe8\xc4\x18\x38\xb8\ +\x78\xc0\xa0\xe2\x01\x06\x97\x87\x14\xdb\xe4\x83\x84\xe6\x01\x4c\ +\x01\x5a\x3f\x67\x68\xe9\xf5\x13\x38\xa7\xaf\xff\x6a\x2e\x5d\x90\ +\xa7\x36\xa7\xb6\x0e\xd2\x8f\x2c\x11\x4b\x8f\xef\x4e\xbc\xa5\x5b\ +\x25\xff\xaa\x9d\x82\xc9\xa3\xb9\xf1\xef\x95\xee\xe4\xc2\xed\xa5\ +\x04\x75\xa7\x2c\x10\x83\x0b\x92\xfe\x33\xf5\x60\xed\x0a\x6a\x5b\ +\x40\xd1\xf7\x76\x3f\x92\xcd\xfc\x09\x9c\xbe\x04\xda\x98\x0a\x80\ +\x94\x8e\x83\xaa\xba\x6c\xbd\xe8\x7f\xfe\x9a\xee\x37\xc7\x62\xf2\ +\x0b\x9d\xf2\xfc\x5b\x33\x36\xb0\xed\x03\xca\x4d\xab\x17\x1c\xae\ +\x47\xe1\xbf\x76\x5a\x30\xd9\xe5\xc9\x2b\xce\xdb\x31\x7a\xf5\xa6\ +\xda\x2f\xbe\xe3\x44\x4f\x05\xab\xa2\x68\xa0\xe0\x81\x03\xaf\x9f\ +\xd0\xe5\x70\x3d\xda\x1e\xfd\x1e\xfa\xdd\x54\x08\xcd\xcf\x29\x5a\ +\x79\xfd\x44\x1b\x7e\x74\xcc\x93\xdb\x60\xc7\x84\x10\xd8\xfd\x43\ +\x8b\xc5\x92\x13\x7a\x12\x6f\xd6\xc1\xa4\x2d\xde\x96\x0d\xa7\x8f\ +\xe0\x21\xdc\xdf\xa6\xc7\xff\x13\x82\x09\xbd\x93\xab\x04\xf5\x21\ +\xb5\x26\x95\x3a\xb4\xcf\x4d\x9e\x0c\x1f\xb4\x02\x08\xdc\x13\x45\ +\xe7\xd1\xaf\xef\x15\xf0\x32\xc8\x30\x5f\x9e\xb6\xcd\xb5\xea\x82\ +\x35\xa2\x7f\x9e\xec\x7a\xb3\xeb\xb8\x5f\xe8\x94\x6b\xb9\xb0\xe1\ +\xcd\xa0\xad\x03\x0a\xbc\xe2\xd9\x8b\x8f\xbd\x5b\xa8\xc2\xd9\x9d\ +\x12\x4c\xe0\x29\xe1\xcd\xb9\xf4\xb7\x20\x98\xc0\x9d\x5c\xa5\x6a\ +\xba\x3f\x31\x1f\x38\x67\x49\x38\xc9\x63\x10\xa0\xa2\x81\xc3\x24\ +\x0c\x2e\x74\x59\xba\x3e\xb6\x8d\xa2\xdf\x4b\x85\xf0\xf2\x9c\x02\ +\xee\x12\x14\x5e\x7e\x55\xcb\xae\x9f\x08\x2f\xbd\x2b\x97\x0e\xfb\ +\x81\xa7\x80\x0f\x2e\x16\x8b\x4f\xec\x49\xfc\x55\xaf\x4a\x9e\xd5\ +\x2e\xc1\x24\x78\xc6\x64\x2c\xfb\x2d\xb8\x0e\x18\x12\x4c\xca\xe9\ +\xdb\x7a\x45\xdf\x42\xc7\xdf\xd0\x0e\x17\xe3\xf7\x95\xca\x04\xf4\ +\x6f\xba\xcd\x28\x3e\x56\x70\xbc\x94\xf3\x97\xad\x11\x2b\x56\xc7\ +\x92\x1f\x74\xfd\xd8\x7f\xe8\x4f\x3a\xe6\xb5\xf3\xcd\xda\xc8\xb6\ +\x0d\x28\xf8\x4b\x8b\x8d\xf8\x5d\x07\xf4\x9e\xa8\x81\xd3\x01\x0f\ +\xe7\xc7\xbf\x8b\xaf\x51\x29\x55\xd3\xaf\xc2\x3c\x6e\x02\x3a\x2a\ +\x17\x06\x07\x1a\x24\x50\xa6\xd3\x5a\x74\x39\x2c\x83\xb0\x3d\xfc\ +\x3e\x93\x10\x5e\x9e\x93\xec\x3b\x52\x2c\x93\xc9\xe2\x09\xba\xa3\ +\x2d\x99\x08\x3c\x25\x47\x3e\x3f\x22\x1e\x29\x15\x81\x69\xfb\xe0\ +\x03\x8b\x82\x60\xf2\xa6\x5e\x91\x7c\x43\x5b\x04\x93\xd2\x33\x26\ +\xb7\x8c\x65\xbf\xfd\xcd\xdd\x62\x17\xbf\x93\x4b\x83\xdb\x8f\xfe\ +\xe3\x1f\xd5\xd3\xb5\x74\xb0\x7d\x2e\xc6\x23\xb8\x7d\x61\x0a\x1b\ +\x27\xe5\xfa\x1f\xac\x14\x2b\x06\xdd\xe4\x3f\x39\xc5\xc4\x3f\xe9\ +\x9a\x83\xf6\x4e\xae\x4a\xb4\x65\x40\x81\x37\x73\x3a\xb9\xae\x33\ +\xa5\x1f\xfd\xfd\xf6\xe0\x19\x40\x94\xb3\x49\xe9\x2f\xb8\x87\x36\ +\xe5\xc6\x2f\x9c\xc1\x6d\xc1\x38\xd9\xa3\x68\x20\x40\x61\x80\xc0\ +\x60\xc1\x83\x09\x15\x5d\x8f\xb7\x8d\xc2\xef\x06\x30\x05\x68\x7e\ +\x6e\x93\x9f\xbf\x5c\x78\xad\x99\xec\xe0\xed\xbb\x59\xdf\xd9\xb6\ +\xe7\x40\x7b\x07\xfb\xe5\x5f\x16\x8a\x25\x27\xf6\x26\xce\xea\x13\ +\xc9\xd7\xb5\x4b\x30\xc1\x67\x4c\x6a\x0c\x26\xea\x74\x21\x12\xcb\ +\x84\xbf\x26\x2e\xd5\xe1\xc1\x27\x2d\x40\xdb\xf9\xa9\x91\x49\xe7\ +\x8f\xa5\x8b\xf1\xdc\xd6\x08\x6e\x33\x1d\x1b\x74\xac\xd0\x7a\x75\ +\xd9\x21\xf3\x8f\x58\xea\x0e\xfe\x57\xbb\xbd\x37\xad\x1e\x1a\xf1\ +\x17\x55\xdb\x19\x06\x82\x49\xcc\xe9\x7e\x8b\x10\xb1\xcf\xe8\x5d\ +\xd9\x57\xaa\x8e\x04\xf4\xac\xa8\x83\x09\x7d\xc6\xa4\x74\x5b\x70\ +\xf0\x51\x29\x05\x02\xa7\x2c\x89\x3b\x2c\x0d\x02\x90\xf2\x40\x51\ +\x29\x88\xa0\x4c\x81\x84\x7e\xa7\x49\x00\xcd\x1f\x14\x38\xaa\xb0\ +\x4c\xcf\x94\x2d\x09\x28\x9e\x90\xe9\xb4\x27\xe9\xe9\xae\xb2\xed\ +\xdf\xd3\x2b\x16\x9c\x94\x4a\x9c\xd1\x2f\x92\xaf\x6d\xa7\x60\x72\ +\xf1\xce\xcc\x85\x57\x7a\x62\xbc\x96\x60\xa2\xe5\x1f\x3f\xbf\x67\ +\xe1\x40\xaa\xeb\x59\x3a\xdf\x92\x23\x40\x20\xaf\xbc\x9d\x7f\xd8\ +\x95\xbe\x13\x06\x04\x83\x6e\x2b\x40\xcb\x74\xec\x4c\x1b\x43\x97\ +\xaf\x9e\x77\xf4\xfc\x94\xff\x19\x29\x8a\xaf\x9a\x4b\xc1\x04\x8d\ +\x10\x15\x4a\x3a\xfb\xdb\xca\x38\xc1\xf9\x6d\xd5\x7b\x9a\xaf\xdc\ +\xe0\xcd\x9c\xa5\xea\x48\x40\xe3\x35\x22\x98\xfc\x3e\x93\x0d\x9e\ +\x12\xae\x31\x98\x60\x4a\x85\x01\x81\xca\x14\x38\xb8\xf8\x3a\xbc\ +\x7d\xfa\xdd\x00\xa6\x00\xcd\x1f\x14\x5c\xb7\x4a\x2c\x13\x5e\xe1\ +\x04\xed\x04\x2d\x99\xec\x3c\x55\x1c\x79\xa4\x30\x8a\xa7\xbb\xca\ +\xfb\xe4\xaf\xfa\x44\xf7\x0b\x06\x93\x2f\x1c\x48\xa4\x5e\xd3\x0e\ +\x13\x16\x3c\xb0\xf8\xa4\x92\x3f\x86\x60\x72\xd5\xd4\xeb\x81\xb8\ +\xbd\xa8\x3f\xa1\x20\x4a\x3b\xab\x53\xde\xea\x2e\xd7\x3b\x11\x3e\ +\x6c\x05\x70\x43\xcc\x3e\xe5\xdc\x5d\x7a\x32\xde\xb4\x9d\x54\x95\ +\xc6\x8b\x7a\xb5\x10\xee\x15\xcb\x7b\x5e\x36\x28\xfc\xef\x4a\xdf\ +\x3b\xa5\x55\x7e\x33\x1b\xa0\x03\x95\x36\x16\x3a\x1b\x25\xc1\x5d\ +\xad\x9e\xfc\x5d\x5b\x05\x94\xfd\xab\xe6\xbd\xd0\x51\x4e\xe4\xc1\ +\x04\x00\xe3\x46\xe9\x0d\x34\x98\xfc\xef\x1e\xb1\xab\xf4\x8c\x09\ +\x00\xfb\x12\x99\xe6\xa0\x5a\xe8\xb8\x54\x18\x0c\x4c\x01\xc3\x24\ +\x5c\x1e\x85\xed\xd0\xf6\xf9\xf7\xa2\x10\x9a\x3f\x68\x90\xb1\x85\ +\xcb\x45\x8b\xce\xed\x07\xe7\xf5\x85\x1c\xf9\x16\x7b\xe3\xed\xd9\ +\xbd\xa2\xe7\x8c\x79\xc9\x97\x2e\x8e\x27\xcf\x75\x44\xeb\x7e\xdf\ +\x1e\x81\x60\xb2\xbb\x28\x7f\xfe\xb1\x1d\xa3\x57\xcc\x24\x98\x80\ +\x5e\xb6\x40\x2c\x5a\x98\xf0\x9f\xab\x57\x68\xd9\xad\xc2\x85\xd2\ +\xad\xc2\x86\x5f\xc2\xa4\xdb\x8b\xdb\x4c\x53\xcc\x07\x7a\x8d\x0e\ +\x26\x6f\x5d\xd6\xf3\xe2\x9e\x84\xfb\x69\xc7\x51\x6b\xb4\x15\xa2\ +\x9c\x3e\x1a\x0e\x6c\x2c\x74\xc8\x04\xd4\x47\xd9\x19\xbc\xab\xf5\ +\x63\x43\xfb\x6f\x6f\x9b\x80\x02\xcf\x9a\x38\x31\xf1\x61\xe9\xa8\ +\xb5\xa5\xaa\xb6\xa5\x86\x60\x82\x0e\x4a\x85\xce\xca\x03\x02\x95\ +\x29\x80\x50\xd1\x65\xe8\x7a\xd8\xb6\xe9\x7b\x41\x08\x2f\x1f\x54\ +\xb8\x2a\xd7\xba\xd3\x5d\x52\x8e\x64\x7c\xf9\x08\x7d\xe3\xed\x59\ +\xbd\xa2\xfb\x2f\x07\x93\xa7\xb6\x5b\x30\xf9\xf8\xd0\xe8\xd5\x8f\ +\x4f\xdd\xee\x4e\xe7\x1d\xea\x3b\x98\x47\xbf\x0b\xb4\x22\xd9\xb5\ +\xac\xcb\x49\xb6\xec\xe8\x04\xae\x51\x8d\x79\xee\x03\x5f\xdf\x2b\ +\xf8\x69\x45\xdc\x6e\x04\xeb\x0e\xe8\x03\xe8\x5f\x07\x45\xef\xb9\ +\x6b\x52\x6f\x1e\xec\x76\xce\x77\x1d\xb5\x5a\x2f\xd4\x51\xc1\x84\ +\x77\x96\x02\x9f\x45\xd9\x99\xe0\x4d\x20\x79\x75\xe7\x4f\x77\x8c\ +\x6e\xdc\x5a\x14\xaa\x2d\x02\x0a\xfc\x08\x8d\xf2\x33\xef\xe9\x84\ +\xa7\xe0\x6b\x0c\x26\x98\xa2\x0e\x70\x5a\x2d\x1a\x10\x78\xc0\xa8\ +\x76\xf1\x9d\xb6\x43\xbf\x87\x0a\xc0\x14\xa0\xf9\x83\x0e\xb8\x6b\ +\xd0\x71\xf3\x2f\xd7\x3b\xb0\xb7\x54\xd5\x54\x3c\xdf\x1b\x19\x1a\ +\xcb\x94\xef\xee\x7a\x23\x04\x93\x05\xc9\x53\x97\xc4\x93\xe7\xb4\ +\x63\x30\xd1\x55\x3c\x98\x20\x90\xa7\xbe\x17\xe4\xff\x6d\x91\x58\ +\xb8\x2c\xe9\x3d\x4f\x4f\x28\xf3\x75\xb9\x25\x14\x94\xb7\xe3\x81\ +\xf1\xf4\xad\xfb\xa6\xb6\x8b\xfb\x3b\xd6\x51\x4d\xeb\x03\xe8\xfd\ +\x8b\x45\xef\xc9\xf3\x52\xaf\xe9\x71\xe2\x1f\xd4\x9f\xf4\xe9\x0f\ +\x3b\x2e\x98\x54\xda\xe0\xa8\x83\x09\x5c\x67\xfb\xc1\xce\xcc\x45\ +\xbf\xd2\x47\xb3\x50\xd7\xf2\x80\x02\xe7\xb5\x55\x31\xf5\xb7\x72\ +\xea\x0d\xaa\x91\xf5\x17\x0c\x1b\x35\x21\xc1\x04\xbe\x0a\xbf\x8e\ +\xa6\xa8\xb2\xb3\x12\x85\x05\x92\x30\xe1\xf2\x54\xa6\x76\xe9\xf7\ +\x82\x10\x9a\x3f\x28\x91\x13\x83\xab\x7c\x2f\xf5\x92\x52\xb1\xa9\ +\x94\x4e\x77\xed\xfc\xc2\xc8\xd4\x6d\xac\x67\xeb\x60\x72\xa6\x0e\ +\x26\x4b\xdd\xe4\xdb\x3b\x28\x98\xa0\x4f\xa1\x9f\x41\x5a\xf6\xc7\ +\xd5\x4e\xd7\xf2\x1e\x95\x3c\x49\xe7\x5b\x82\xde\xa0\xdc\xa4\x70\ +\xb6\xb1\xa3\x13\x04\xb7\x9d\x0a\xc7\x4c\x59\xff\xb9\x4c\x2c\x3d\ +\xb5\x2f\xf9\xde\x5e\x27\xfe\xef\x7a\x89\x48\x6f\x08\x6a\x16\xcd\ +\x8a\x7e\x34\x98\xd0\x9f\xe1\x68\x69\x40\x81\x3b\xba\x92\xf1\xee\ +\xd7\x49\x37\x1e\xf9\xb3\x26\x51\x77\xac\x42\x30\x41\x30\x5f\xc9\ +\x69\xcb\x03\x90\x88\x06\x0e\xd3\x91\x09\x2e\x03\x29\x6f\x8f\x7e\ +\x17\x15\xc2\xcb\x07\x25\x77\x0b\xd1\x2d\xbc\xdc\x91\x8e\xf0\x5b\ +\xf2\xba\x95\xd2\x3b\xa5\x1e\xd9\xa3\xf3\x10\x4c\xce\x58\x90\x7c\ +\x89\x0e\x26\x6f\x6b\x87\x60\x82\x3f\xd7\x5b\x43\x30\x01\xd0\xe7\ +\xa8\x0f\xfa\xef\xec\x17\x7d\x4b\x92\xfe\x91\x31\x47\x2c\xd3\xe5\ +\x96\x50\x10\xde\x8e\xad\x85\xcc\xef\xd8\xd1\x09\xe6\xa9\xb0\x0f\ +\xb4\xec\x7f\x66\xa9\x58\x7a\x54\x77\xe2\xdc\x2e\xf8\x9d\x99\x0e\ +\x0d\x26\xcd\x22\x98\x0b\x95\x7f\xdf\xc6\x9d\x99\x9f\xf0\xdf\x74\ +\x6a\x59\x40\x81\x3b\xba\x64\xb1\xef\x64\xbf\x18\x7b\x5f\x23\x76\ +\x20\x78\x49\x54\x44\x18\x4c\x30\xe5\x41\x83\x0b\x96\x31\x09\xdb\ +\xa2\xdf\x83\x02\x30\x05\x68\xfe\xa0\x26\xb3\x7a\xc1\x4a\x19\x4b\ +\x9d\xa2\x0d\xd2\xac\x3f\xe0\xa6\x81\xa7\xbb\x9e\x2d\x84\x7b\x4a\ +\x5f\xea\x59\x4b\xdc\xc4\x9b\xda\x22\x98\x08\x6f\xf3\xc3\x4f\xff\ +\x5c\x2f\xf8\xd5\x8c\x83\x89\x96\x77\x74\x4f\x37\xbc\x66\xe5\xd4\ +\x56\xd9\x57\x7f\x6f\x6e\xc2\x77\x1f\xfd\xcf\x21\x61\xfa\x11\x2d\ +\xd8\x66\xae\x69\x7d\xf8\xc2\x92\xbe\xd5\xcf\xe9\x1a\x7c\x7f\x3b\ +\xbd\xcd\xb9\x5d\xc1\xb9\xf0\xb6\xec\xd8\xf7\xe0\x85\xb7\x30\x29\ +\x41\xf5\x54\xd2\xc2\x80\x92\xde\xb0\xe0\x58\x11\x77\x1a\x72\x11\ +\x1e\x7a\x17\xa5\x67\xe7\x95\xff\xa0\xe1\x9a\x09\x82\xc6\x34\x3a\ +\x6b\x49\x18\x10\x68\xc0\xa0\x01\x24\xac\x1e\xd7\xa3\x6d\xe1\xf7\ +\x50\x01\x98\x02\x34\x7f\xd0\x53\x8c\x15\x56\x09\x59\x6c\xc9\xe9\ +\x2e\xc0\xf3\x45\xfa\xbe\x11\xb1\xe3\x1d\x0b\x53\xcf\x59\x9b\x8c\ +\x9f\xeb\x8a\xd6\xbd\x92\x04\x09\x82\x49\x6e\xfc\xfb\x7a\x12\xc6\ +\x97\x3c\x86\x05\x13\x10\xfa\x1d\xf5\xc3\xc0\x37\xdf\xa5\x8f\x4e\ +\x96\xc5\xbd\x67\xc5\xe1\x05\x89\x2d\x02\x8f\x4e\xc8\x4f\x43\x00\ +\x98\x0f\x53\xd0\x8f\xaf\x2d\xef\x3d\xfc\xa8\x5e\xf7\x43\xc9\x0e\ +\x7f\xc6\xc4\x34\xdf\x45\x1d\xdd\xf9\x1f\xd6\xa6\x17\xde\xb6\xc4\ +\x80\x70\x11\xde\xf7\xc6\xde\x21\x7d\xff\x44\xbd\x35\x91\xf4\x1b\ +\x7a\x85\x0d\x45\x69\xc8\xe0\xed\xaa\x85\xec\x65\x2c\x98\xa0\x11\ +\x69\x0a\x0a\x1d\x78\x4c\xa6\xe0\x81\xe2\xcb\x62\x3b\xbc\x5d\xfc\ +\x4e\x14\x42\xf3\x07\x3d\xf0\xaa\x7a\xc7\xcb\x1f\xaf\x47\xc3\x92\ +\x52\x55\x53\xf1\x95\x1c\xc9\x0a\xf7\x91\x17\x2e\x4c\x1d\xb9\xbe\ +\x37\xfe\xce\x56\x9e\x16\x42\x68\x30\xd9\x35\xe5\x2f\x74\xc8\xa0\ +\xff\xa0\x5f\xa1\xa8\xef\xa1\x5f\x7a\x87\x75\xf7\x2c\xee\x89\xa5\ +\x8e\xd3\x0b\x44\x3d\x7f\xd5\x84\xfe\xde\x6a\x47\x27\xc8\xb4\x7e\ +\xbc\x40\xff\x31\xfd\xed\x65\xdd\xc7\x6d\x48\xba\x1f\x8a\xf9\xde\ +\x49\x7a\xeb\x5b\xb2\xfd\x51\x41\x3b\x0a\x40\x67\x78\x5d\xbd\x14\ +\x94\xbf\xf9\xc1\xd1\x03\xe6\x42\x24\xf8\xba\xa6\x07\x14\xb8\x6e\ +\x22\x45\xd7\x99\x51\x5f\x84\x87\x8e\x44\x6d\x40\x08\x26\xf0\x3a\ +\x95\xcf\x6a\x67\x8d\x28\x98\x98\x02\x08\x8a\x7e\x4e\xd7\xa1\xed\ +\xe1\x77\x51\x21\xbc\x6c\xd1\xe4\xbd\x85\xab\x84\xdb\x9a\x8b\xf1\ +\x80\x27\x8a\xe9\x98\x9c\xec\xd9\xd0\x1b\x7f\xc7\x5c\x0b\x26\x6f\ +\x10\x22\x7e\xa8\xf4\x0e\x4b\x28\xff\xb9\xba\xdc\x12\xaa\x1c\x9d\ +\x00\x98\x07\x05\x63\xe8\x44\x3d\x5d\x9c\xbb\xa4\xeb\xc4\xd5\xc9\ +\xd8\xc7\xe2\xd2\x3f\x26\xca\x79\xa8\x5d\x80\x8e\x46\x49\xf0\x1b\ +\x38\x85\xec\x25\x9f\x1f\x11\x9b\x2a\xcc\x85\xcd\x0d\x28\x70\xdd\ +\xc4\x91\x7d\xa7\x2a\x15\xfb\x77\xbd\x0b\xdb\xfa\xf0\x12\x83\x49\ +\x85\xd7\xa9\x00\x50\x06\x05\x8e\x5a\x4a\x83\xc1\x66\x10\x0f\x1a\ +\x34\x78\xd0\x3c\x8a\xb6\x89\xdf\x83\x02\x30\x05\x68\xde\x52\x02\ +\x2e\xc6\xc7\x0b\xe3\xc7\x09\xcf\x6b\xd9\xdd\x5d\x8e\x13\x1b\xec\ +\x8f\x25\x5f\xdc\xa1\xc1\x04\xfd\xd9\xe4\xd3\xc5\x93\x97\xf7\x1c\ +\xda\xdf\x95\x7c\x79\xab\x26\x64\xbd\x81\x95\x8e\x4e\x00\xda\x97\ +\x40\x70\x64\xf2\x8e\xc5\x5d\xcf\x3b\xb4\x2b\xfe\xfe\x98\xa3\x56\ +\xe8\xba\x8e\x0d\x26\xd0\x21\x13\x50\x1f\x65\xa7\xe8\x1f\xd6\xe4\ +\x3d\x74\xa6\xb4\xb9\xa7\xbc\x82\xeb\x26\xc2\xf9\x37\xfd\xd5\x4b\ +\x4b\x55\x91\x81\xbd\x8a\x82\xa2\x2f\x77\x3d\x35\x1e\xbb\xa6\xc6\ +\x77\x73\xa1\xe8\xc0\xe3\x03\x90\x07\x0e\x2e\xba\x2c\xb6\x83\xe2\ +\xdf\x03\x60\x0a\xd0\xbc\x85\x00\x17\xe3\x55\x4c\x1f\x9d\xb4\x68\ +\xc2\x93\x52\xb8\xae\x52\x03\xad\x7c\x8d\x3b\x52\x47\x30\xa1\x7e\ +\x89\xf9\xe2\x1b\xf5\x1f\x87\xcb\x85\x77\x78\x5c\xf9\xc7\xeb\x72\ +\x4b\x28\x2a\x67\xf7\xde\xbc\xf3\xa7\x1a\xae\x9d\x04\xe3\xe8\xad\ +\xfd\xa2\xfb\xdd\x87\xa6\x4e\x3b\xb4\x2b\xf6\x3e\x08\x26\xfa\x83\ +\x8e\x0d\x26\x40\xd8\xc6\x47\xd9\xa9\x1a\xe6\x42\xa0\x6c\xe7\xa6\ +\x05\x14\xbc\x6e\x22\x7c\x3f\xb2\x27\x69\xc3\x7a\x57\x0f\xf0\x1a\ +\x81\x27\x7d\x79\xd5\xc7\x76\xa5\x37\xd6\x18\x4c\x70\xe0\x51\xe1\ +\xc0\x0b\x06\x9f\x41\x58\x4f\x97\x03\xd1\x36\xf8\xf7\x80\x00\x4c\ +\x01\x9a\xb7\x30\x3c\x27\xbf\x5e\xc8\xe2\x19\xa5\xe2\x41\x4b\x9d\ +\x47\x26\xa8\x69\xbe\xfa\xa2\xe5\xbd\x2b\xfb\x52\xc9\xbf\xd0\x2d\ +\xb5\x64\x52\x86\xa3\xbf\x9c\xf2\x9e\xb8\x62\x78\xf4\xae\x52\x15\ +\x87\xf6\x47\xbd\xa5\x5f\x74\x9d\x3e\x98\xfc\x8b\xa5\xf1\xf8\x3f\ +\xc7\x5c\x71\x88\xae\xec\xe8\x60\x02\x9d\x6a\x34\xb3\x98\x0b\x9b\ +\x73\xda\xa9\x11\xd7\x4d\x60\xeb\xb1\xa1\xa8\x3c\x03\x5e\xdd\xb0\ +\xaf\x20\x6e\x3a\x6f\x68\xf4\xea\x6d\x25\x03\x69\x30\x05\xd0\x70\ +\xa8\x8a\x83\x4e\x8b\x07\x10\x2a\xfe\x39\x6d\x87\x7f\x0f\x15\x42\ +\xf3\x16\x46\xab\x9f\x8c\x6f\x17\x1a\x11\x4c\xfe\x5a\x88\xd8\x72\ +\x51\x84\xa3\x93\x96\xbc\xc6\x06\x28\x0a\x67\xe7\x53\x79\xf7\x0f\ +\xd7\x89\xe0\x09\x6d\xec\x07\x42\xfb\x13\x1c\x99\xbc\x4a\x07\x93\ +\xc5\x6e\xe2\x5d\xba\xf3\x3d\xba\x32\xaa\x29\xa3\x25\x40\xa7\x1a\ +\xdd\x01\x7c\x3f\xd7\x4c\xe7\xc2\xa6\x04\x14\xe9\xcd\x3b\x56\x15\ +\xe3\xef\xd5\x56\x88\xec\xfb\xa2\x36\x68\xf0\xe4\x67\x41\xdd\x7a\ +\xe9\x70\xfa\xa7\x15\x7e\x1c\xeb\x00\x03\x12\x4d\x1b\x74\x5a\xa6\ +\xc0\xc1\xcb\x90\xa7\xeb\x42\x9e\x7f\x0f\x8a\xc2\xcb\x16\x4e\xbe\ +\xff\x08\xdf\x4f\x9c\x5d\x2a\x1d\x94\x34\x20\x98\x04\x7e\xfb\xfc\ +\x43\x7a\x57\xf5\x76\x25\x4f\xd3\xad\xb5\x64\x62\xa6\x47\x27\xb0\ +\x51\x04\xda\x97\x40\xff\xb6\x48\x2c\x7a\xed\xc2\xc4\x5b\x17\xb9\ +\x89\x77\xea\x8d\xed\xd1\x75\x1d\x0f\x37\x7a\x83\xe6\xc2\xdb\xaa\ +\xfc\xea\x2c\x15\xfa\x4a\xe3\xaf\xa1\x04\xbf\x09\xef\x3a\xef\x8c\ +\xea\x79\x13\xda\xab\xa8\x00\x07\x9d\x94\xde\x83\x7f\x98\xcc\x5c\ +\x81\xef\xa4\x81\xea\x52\x0a\x50\xe3\x81\xd0\x80\x28\x3a\xe8\x70\ +\xe0\xd1\x3c\x0d\x20\xf4\x33\x5c\x17\x52\xde\x2e\xfd\x3e\x84\x97\ +\x2d\x06\xf0\x56\x61\xa9\x44\x4b\x6e\x15\x6e\x07\x1a\x14\x4c\xbc\ +\xbf\xd1\x47\x27\x4b\x45\xf1\x88\x58\x84\xa7\xae\x67\x4a\xad\x47\ +\x27\xff\xb2\x50\x2c\x7e\x7e\x6f\xe2\x8d\x03\x2a\x79\xd6\x5c\x09\ +\x26\x26\x60\x47\x45\x05\xbe\x52\xe5\xd2\xe1\xcc\xa5\xb3\xf9\xc3\ +\xba\xa1\x01\x05\x4e\x75\xa9\xd8\xf8\xe9\x52\x15\xce\xd2\xdf\x1c\ +\x49\x20\xc5\x46\xa0\x27\x51\x81\x0f\x2e\x7e\x73\x8f\xd8\x05\x23\ +\x87\x41\x8d\x07\x9a\x66\x40\x2d\x0c\x08\xd3\x06\x5e\x29\xa5\xa2\ +\x9f\x51\xc1\xba\xd8\x2e\x7e\x07\x40\xf3\x00\xcd\x5b\x2a\x50\x2c\ +\x0e\x1e\xae\x64\xf2\xac\x52\xf1\xa0\x23\xe2\x60\x32\xcd\x7f\x4f\ +\x5a\xd1\xb7\xba\x27\x95\x3c\x5d\xb7\x18\xc9\x78\x9e\x29\xb5\x1e\ +\x9d\xbc\x4f\x07\x93\x17\xf4\x26\xde\xd0\x2e\x3f\x58\xd6\x28\xa0\ +\xb3\x51\xed\x08\xfe\x7e\xae\x52\x35\x7c\x05\x32\xcd\xc6\x5a\x07\ +\xf8\x4d\x43\x0d\xdd\x88\x53\x5d\x48\x54\x46\xac\xf1\xc1\x45\x80\ +\x1a\x12\x44\x0d\x89\x83\x0f\x85\x83\x70\xda\x60\x2c\xa5\x28\x5c\ +\x17\xdb\xe2\xed\x83\x10\x9a\xb7\x54\x00\x8e\x4e\x64\x31\xf7\xcc\ +\x56\xbd\xb7\xab\xd5\x34\x20\x98\x60\x5a\x7c\xbb\x3e\x3a\x59\xa6\ +\x0a\x47\xc4\xdb\xfc\xe8\xe4\x03\x0b\xc4\xb2\x53\xfa\x12\x6f\x1e\ +\x90\xc9\xb6\xf8\xc1\xb2\x46\x12\xd5\x3c\x08\x81\x3a\xec\xfd\x5c\ +\x25\xd0\x5f\x50\x26\xbf\x69\x5c\x40\x89\xfa\x54\x17\x12\xe5\x9f\ +\x45\x05\xe5\xec\xd8\x3e\x19\xff\x45\x0d\x0f\x2e\x82\xb1\x4c\x46\ +\xc4\x81\x87\xc2\x00\x82\xa2\xf5\x98\xa7\xeb\xd3\xb6\x51\x00\xa6\ +\x00\xcd\x5b\xaa\x00\x47\x27\x32\x9e\x88\xec\x88\xb8\x93\x68\x60\ +\x30\x09\xd2\xe7\x2f\xed\x5f\xd1\xd5\xc2\xdb\xb0\x6b\x39\x3a\xf9\ +\xdc\xd2\xee\xf5\x2f\x1e\x18\xf8\xa7\x5e\x91\x7c\xa5\xde\xca\x39\ +\x1d\x4c\xa2\x22\x08\x26\x15\xde\xcf\xa5\xc1\x7c\xd9\xce\x44\xd4\ +\x6f\x1a\x13\x50\xa2\x3e\xd5\x05\x5b\x8d\xc0\x96\x47\x01\xdc\xd1\ +\x35\x5a\x54\xb7\x7d\x62\x78\xf4\x96\x2a\xf7\x57\xc3\x57\x62\x4a\ +\x8d\x47\x85\x01\x04\x45\xeb\xe9\x72\xb8\x2e\x6d\x13\x52\x14\x80\ +\x29\x40\xf3\x96\x2a\xc0\x83\x8c\x70\x74\x22\xfc\xd6\x3c\xc8\xd8\ +\x4a\x0c\xc1\x84\x42\x7d\x0b\x85\xbe\x8c\xa2\x7e\x8a\x7e\x5b\xf6\ +\xe9\x73\x84\x88\x2f\x72\x0b\x47\xba\xae\xdf\xb2\x57\xd4\x97\xde\ +\xda\xfc\xe7\xb0\xa3\x93\xcf\xe8\x60\xf2\xac\xee\xf8\xdf\x26\x95\ +\x7f\x6c\xab\x82\x5e\x27\x92\x57\xfe\xa6\x7b\xd2\xd9\x8b\xc9\xfb\ +\xb9\x28\x33\xf1\x9d\xc6\x04\x94\xa8\x4f\x75\x51\xcf\x88\xc2\x4b\ +\xb4\x45\x72\x59\xe1\xdf\x09\x77\x74\x0d\x4f\x37\x18\x82\x86\x43\ +\x71\x03\xa2\xd0\x90\x5c\x38\x10\x31\x0f\x29\x2e\x0f\x29\xb6\x49\ +\xbf\x03\xc0\x14\xa0\x79\x4b\x0d\x8c\xae\x5f\x18\x1c\x9d\x1c\x6c\ +\x93\x49\x48\x30\x41\x1b\x50\xdf\x42\xa1\xff\xa2\xa8\x7f\x52\xbf\ +\x2d\xe7\x5f\xb4\xaa\x7f\x75\x77\x2a\xf9\x5a\x29\x54\xcb\x2e\x6e\ +\x17\x3c\x6f\xfb\xef\x86\x32\xb7\xc2\x06\x11\x82\x3e\xe9\x60\xb2\ +\xee\x39\xdd\xf1\x73\x75\x30\x79\xce\x5c\xdb\xff\x8d\xec\x0c\xfc\ +\x7c\xc1\x96\x42\xf6\xe7\x5f\xd9\x2b\xb6\xce\xe2\x2c\x0d\xec\x8a\ +\x69\x8a\x3c\xa0\x74\xc2\x5d\x5d\x79\xdf\xdf\xf4\xfb\xcc\xd8\x4f\ +\x6a\xb8\xa3\x8b\x1a\x2f\xcc\x88\x38\xf0\xb8\xf0\x33\x48\x71\x3d\ +\x48\xb1\x5d\xfa\x3d\x00\xa6\x00\xcd\x5b\x6a\x20\x38\x3a\xc9\x8f\ +\x3f\xf7\x60\x3b\x3a\x81\x1f\xc7\xda\x53\x74\x6f\x64\xa7\xb9\x22\ +\x0d\x26\xef\xd5\x47\x27\xf3\x0b\x85\xa3\x62\xbe\xf7\x7c\x5d\x6e\ +\x09\xf0\x5c\xc4\x3e\xe5\xdc\x7d\x89\x27\xf6\x97\xaa\xca\x7c\x7a\ +\x69\xd7\x9c\x0d\x26\x00\xee\x44\x80\xe6\xeb\x05\x6c\xfa\x94\xe7\ +\x6e\xfc\xf4\x90\xb8\xb3\xf4\x3b\x32\x80\x29\x45\x85\xf9\x0d\x2a\ +\xda\x23\x14\x78\x57\x97\x92\xb9\x63\xa4\x2c\x9e\xa1\xbf\x3d\x92\ +\x1d\x1b\xb5\x77\xe0\x45\x78\x72\x47\x17\x1a\x0e\xa0\xc6\xe3\xe2\ +\xc6\xa3\x83\x2e\x4c\xdc\xf8\xd8\x0e\x6d\x17\xc0\x14\xa0\x79\x4b\ +\x8d\xc0\xd1\x89\x8a\x27\xce\x9e\x8b\x13\x4a\x18\x4f\xff\xd2\x62\ +\xe6\xea\x59\x5e\x33\x41\xbf\x84\xd4\x18\x4c\x40\xcf\x3b\xb4\x7f\ +\x4d\x77\x57\xf2\x8c\x56\xda\x36\x5f\x3a\x3a\xa1\xaf\x4c\x87\xf7\ +\x38\x7d\x6d\x51\xea\x39\xc7\xa5\xe2\xef\x9b\xab\xc1\x84\x13\x55\ +\x07\xe1\x8e\xae\xe0\xb7\xe0\x87\x32\x1b\x43\xce\xd2\x00\x61\x7e\ +\x83\x02\x1f\x41\x05\x3e\x13\x69\x40\xd1\x83\xfa\x68\xe5\xc4\xde\ +\x29\x22\x7a\x3a\x19\x8d\xc7\x7b\x39\x5b\x20\x22\xc3\x5f\x73\xec\ +\x22\x3c\x42\xbf\xa6\x56\x23\xa2\x21\xb9\xf8\x32\xb0\x1e\xb6\x09\ +\x29\x0a\xc0\x14\xa0\x79\x4b\x8d\xc0\xd1\x89\x28\x4e\x3c\x4b\x9b\ +\xb7\x65\x4f\x6e\x37\x9b\x19\xfe\x6c\x2f\x08\xfd\x97\x0b\x7d\x18\ +\xd3\x69\xf9\x7f\x14\x22\x31\xdf\x2b\x1c\xed\xf8\xde\x0b\x75\xb9\ +\x25\x98\x8e\x4e\x9e\x23\x84\xfb\xb7\x0b\x53\xc7\x1e\xd6\x13\x7f\ +\x4f\xd2\x51\x6b\xe6\x5a\x30\x69\xe4\x44\x40\xef\xe8\xaa\xf1\x2c\ +\x0d\xcd\xa3\xcf\x50\x95\xe7\xbc\xc8\x02\x0a\xdc\xae\xe9\x7b\x63\ +\xaf\x14\xbe\x77\x6a\xa9\xaa\x6e\xa0\x07\x40\x14\x9e\x82\x11\xf9\ +\xf2\xa1\xcc\x0d\x86\x8b\xf0\x34\xad\xc5\x80\x20\x1c\x7c\x65\x63\ +\x1a\x84\xeb\x63\x7b\x54\x00\xa6\x00\xcd\x5b\x66\x00\x1c\x9d\x08\ +\x37\xfe\x96\xa8\xfe\x90\x69\x77\x58\x30\x01\xbf\x99\x4d\x30\x41\ +\x1f\x45\xff\xa5\xbe\x8c\xf9\xe2\x89\x2b\x07\xd6\x24\xbb\x92\x67\ +\xb6\x72\xc2\xe6\x47\x27\x10\x4c\xfe\x6e\x61\xea\x39\xa5\xdf\x97\ +\x59\xae\x3b\x38\xa7\x82\x09\x40\x3b\x14\x75\xe7\xe0\xb9\xbb\x2a\ +\x77\x74\x71\x99\xfc\x86\x2b\xf0\x9d\xc8\x02\x8a\x97\x9b\x77\xb4\ +\xa3\x12\x6f\x6f\xa5\xe3\x85\x01\x11\xb9\xc2\x93\xf0\x34\xe5\x06\ +\xa4\xf9\x03\x8c\xc7\xca\xb4\x0e\xd7\xc1\x36\xb0\x1d\xcc\x03\x98\ +\x02\x34\x6f\x99\x01\x07\xdb\xb5\x13\x08\x26\x4f\x15\xe5\x2f\x3e\ +\x36\x34\xfa\xab\x52\x30\xa1\x50\xdf\x42\x51\x5f\x44\x51\xbf\xe5\ +\xfe\x8b\xf9\xe2\xbf\xe8\xa3\x93\x79\x5e\xfe\x98\x76\x3a\x3a\x29\ +\x05\x93\x63\x75\x30\x79\x17\x04\x93\x60\xa1\x39\x0e\xdf\xc9\xf5\ +\x40\x9f\xbb\x0b\xb9\xa3\xab\x9a\xef\x80\xa8\xff\x50\x45\x13\x50\ +\xe0\x4d\xc2\x8e\x3b\xf1\xd7\x51\x5c\x88\x8f\xd2\x78\x48\x51\x78\ +\xdb\x77\xe4\xb3\xd7\x85\x5c\x37\x01\xc2\x0c\x88\x86\x03\xf1\x72\ +\xd9\x88\x4c\xb8\x1c\xb6\x81\x6d\x53\x68\x99\x7f\x66\x99\x01\x07\ +\xd3\xb5\x13\x38\xca\x1e\x0b\xce\x7b\x8f\x6e\x24\xaf\xc5\x40\xd0\ +\x8f\xd0\xdf\x40\xe8\x83\x54\xe8\xa7\xe8\xbb\xd4\x8f\x31\x1f\x94\ +\x8f\x5b\x35\xb0\x2e\xde\x95\x7c\x75\x2b\x6d\x4b\x8f\x4e\x74\x30\ +\x71\x4a\xc1\xa4\x2d\x7e\xf9\xb2\x11\xf0\xc9\x80\x97\xeb\x21\xe4\ +\x94\x3f\x7e\x05\xfd\x2a\x93\xef\xa0\xdf\x54\x52\xfd\x17\xe5\xe1\ +\x42\xbc\xf4\x7a\x8f\x53\x32\x9a\x87\xc9\xa2\xf6\xdc\xa9\xe7\x4d\ +\x62\x77\x7e\x6a\x48\xdc\x15\x72\xdd\x24\x4c\xdc\x98\x74\xb0\x05\ +\x03\xae\x24\x9a\x47\xe1\x7a\xa6\x76\x41\x08\xcd\x5b\x66\xc8\xc1\ +\x74\x74\x52\x7e\xc7\xd2\xce\xcc\x85\x57\x3f\x7d\x94\x8d\xa0\x1f\ +\x51\x1f\xa3\xfe\x47\xfd\x98\x8a\xfa\x32\xe6\x83\xf2\xbf\xc3\xd1\ +\x49\x31\x7f\x8c\xeb\x79\x27\xeb\x72\x4b\xa0\x47\x27\xcf\x7e\xfa\ +\xc8\x64\xce\x06\x13\x80\xcf\x7f\x51\xcd\x87\x81\xff\x14\xd4\x6d\ +\x1f\x1f\xca\xfc\x6a\x06\xa7\xfc\xb1\x6c\xf2\x1f\xea\x2f\xa8\xfa\ +\x03\x4a\x66\xf5\x82\x75\x3a\x98\xbc\x56\x7f\x75\x5f\xa9\x2a\x12\ +\xb0\x87\xf5\x00\xa7\xba\xc6\x7d\xff\xfe\x90\xe7\x4d\x68\x0a\xa2\ +\x86\x33\x19\xb0\x9a\xf8\xba\xd8\x2e\x17\x42\xf3\x96\x59\xb0\x6f\ +\xed\xe0\xb1\x2a\x16\x3c\xef\xd4\xb2\xbf\xa0\x9b\x01\x0d\x26\x57\ +\x3e\xfd\x5a\x0c\x0e\xf5\x31\xf4\x3f\x48\xd1\x37\xa9\xaf\xe2\x04\ +\xc0\xcb\xe5\xba\x13\x56\x0e\x1c\x1e\x4f\x26\xde\xdc\x4a\xdb\xe2\ +\xd1\xc9\x61\x3a\x98\xbc\xe3\xe9\x6b\x26\x73\x36\x98\x34\x6a\x42\ +\x08\xe6\x41\xe5\xdf\x5b\xe1\x85\x8f\x00\xfa\x0e\xfa\x0d\x15\xfa\ +\x49\x55\xd5\x15\x50\xf0\x36\xe1\xa8\x7e\xc4\x88\x7a\x6e\x14\x5e\ +\x0c\x3f\xaa\xff\xe7\xcc\xd8\x95\x21\x77\x32\x00\xd4\x88\x28\x6a\ +\x40\x93\x31\xf9\x60\xa4\x82\xe5\x4d\x6d\xa2\x10\x9a\xb7\xcc\x82\ +\xe0\x8d\xc2\x6a\xe2\x14\x29\xfc\xa3\x4b\x55\x73\x92\x1a\x82\x09\ +\xf7\x31\x14\x4e\x06\xdc\x87\xa9\xef\xa2\x2f\x4f\xf3\xe9\xaf\x2e\ +\x16\xf3\x7a\xdc\xdc\x8b\x9d\x16\xfe\x56\x3c\x1e\x9d\xdc\xed\x89\ +\xb1\x83\xe1\xc8\x04\x76\x58\xa3\x22\x37\x5c\x84\xbf\x3d\x3b\x56\ +\xcb\x0b\x1f\xa9\xcf\x50\xa1\xbf\x98\x7c\x06\x05\x9f\xd5\x77\x84\ +\xf2\xf4\xd1\x49\xfd\x77\xd7\x60\x8f\xa2\xc2\x57\x72\x64\x9f\xef\ +\xde\x01\x3f\xaa\x0f\x3d\xd5\xd0\xe6\xf1\xeb\x50\xd5\x8c\x08\xa2\ +\x86\xc3\x32\xa4\xa6\x75\x79\xfb\x20\x84\xe6\x2d\xb3\x04\xdf\x28\ +\xac\x8d\x39\x67\x8f\x4e\xe8\xcd\x24\x3a\x98\x4c\x82\xb3\x31\xb8\ +\x5f\x81\xa8\x1f\xa2\xaf\xa2\xd0\x67\xd1\x97\x51\xd3\x96\x5b\x99\ +\xec\x5f\x1f\x87\x71\xdd\xe2\xa3\x93\x3f\x0d\x65\xee\x7c\xf7\xa2\ +\xd4\x89\x1b\x7a\xe3\xef\x98\xcb\xc1\x04\xa0\x86\x8e\x72\x82\xa0\ +\x17\xe1\x61\xe7\x6a\x4c\x3e\x63\x92\xc9\x7f\xaa\x69\xf6\x01\x25\ +\xca\xa3\x13\xd8\xfa\x28\x3d\x57\xb7\x07\xaf\x56\xb9\xf7\xc7\x43\ +\xe9\xab\xc9\x8f\xea\x23\x68\x30\x10\x1d\x7c\x54\x81\x71\x4a\xa9\ +\x71\xd0\x19\x84\xeb\xd2\xf6\x51\x08\xcd\x5b\x66\x09\x1e\x9d\xcc\ +\xe5\x37\x0a\x07\xcf\x0a\x68\x1f\xae\xf2\xb3\x0a\x98\xa2\xdf\xa1\ +\x0f\x82\xb8\x7f\xa2\x68\x20\x41\xbf\x2e\xfb\xf7\xd7\x96\x88\xc1\ +\x54\x2c\xff\x02\x47\xa8\x23\x75\xb9\x25\xc0\xef\x98\xef\xcb\xb9\ +\x7f\x58\xbf\x28\xb5\x61\x55\x5f\xe2\x1f\xe7\x7a\x30\xe1\x93\x42\ +\x54\x73\x21\xfe\x1e\x7c\x95\xe7\xee\x20\x35\xf9\x0e\xf7\x21\xee\ +\x37\x28\xba\xcc\xec\x03\x4a\x94\x47\x27\x51\xff\x19\x54\xf0\xfd\ +\x2d\x0f\x8d\x8e\x5d\x5f\xe3\x2d\xc2\x28\xd3\x20\xe4\x06\xa3\xa2\ +\x3b\x00\x64\x6a\x13\x84\xd0\xbc\xa5\x0e\x0e\x86\xa3\x13\xfc\x8d\ +\x1e\xf2\xb3\x0a\x26\x5f\x82\x14\x7d\x8f\xfa\x22\xf5\x4f\xf4\xd7\ +\xb0\x89\x60\x9a\x8f\xaf\x4c\x0e\xe8\xa3\x93\xe4\x6b\x5b\x65\x5b\ +\x08\xa4\x39\xe5\x3f\x31\x59\xcc\x65\x57\xa5\xe2\x7f\xa3\x03\x5b\ +\x77\xe9\xa3\xb6\x40\xdb\x25\xe7\x39\x72\x44\xa7\x93\xa5\xaa\xba\ +\x80\x1d\xd7\x08\x43\xc3\xcd\x48\xfb\x3d\x71\x4b\xc8\xef\xc1\xd3\ +\x14\x44\x7d\x87\xfa\x0d\xa6\xb5\x28\x58\x6f\x56\x01\x25\xea\x6b\ +\x27\x08\xf6\xb2\x1e\xf0\x54\xd7\x17\xcd\xa7\xba\x00\x34\x22\x8a\ +\x1a\x11\x0d\x08\xe9\xb4\x81\x56\x41\xb0\x2c\xb6\x43\xdb\xa5\xf0\ +\xb2\x65\x96\xc0\x6f\xc5\xbb\xee\xf8\x1b\xe7\xf2\xd1\x89\xe1\x37\ +\x7a\xa8\xff\x60\x1e\xfd\x0c\x84\xbe\x0b\x42\x9f\x84\x14\x7d\x18\ +\x83\x08\xf5\x69\x5e\xf6\xbe\xb3\x4c\xcc\xef\x8a\xe5\x5e\x28\x85\ +\xff\x4c\x5d\x6e\x09\x7a\xfc\x3e\x25\xfc\x58\x6e\x65\x6f\xe2\x2d\ +\xed\x76\x64\xa2\x7c\x99\xcd\x7b\xce\xa3\x05\x5f\x0e\xe9\x20\x90\ +\x2a\x55\xd7\x45\x23\x82\x89\x76\x88\xf2\xcb\x6f\x43\x7e\x0f\x1e\ +\x40\xbf\x81\x14\xc5\xfd\x88\xcb\xe4\x47\x20\x5c\x7e\x76\x3f\x01\ +\x1c\xe5\xd1\x09\xa5\x5e\xe3\x06\xa7\x09\x7c\x7f\xd3\x6f\x87\xd2\ +\x1b\xab\x9c\xea\xa2\xc6\xa3\x79\x34\x0e\x35\x58\x98\x01\xa9\x78\ +\xdb\x00\x4f\x2d\x51\x50\xfa\xad\x78\x6d\xd4\x96\xfc\x05\xdd\x68\ +\x20\x98\x6c\xca\x8d\x5f\x38\x8b\xd3\x14\x20\xf4\x4d\xea\xab\xdc\ +\x77\x4d\xfe\x0c\xf2\x97\xa6\xfa\x9e\xe5\xc8\xf8\xbb\x5a\x69\x5b\ +\xc7\x51\x83\xa9\x84\xff\xac\x76\x0b\x26\x70\x73\x44\xd6\xf3\xef\ +\xcd\x7a\x13\x0f\xa7\x22\xfa\x63\x06\x77\x26\x40\xf3\xf5\x10\xcc\ +\x81\xca\xbf\xbf\xc6\x97\xdf\x82\x4c\x3e\x84\x42\x5f\x09\xf3\x19\ +\x14\xae\x3b\xbb\x80\xe2\x39\xf9\xf5\xed\x78\x74\x02\x0f\x30\x0e\ +\x15\xc7\x6e\x20\xef\xfc\xc1\x66\x69\xca\x45\x0d\x09\x69\x25\xc3\ +\x51\x05\x06\x24\xa2\x60\x99\xd7\x5b\xea\x20\x38\x3a\x91\xb9\x57\ +\xce\xd5\xdf\x8a\x87\x57\x89\x3f\x91\x1b\xff\xd1\xe7\x86\xc4\x7d\ +\xb3\x3c\x4d\x01\x42\xff\xa4\x7e\x4c\x27\x05\xac\xa7\x9f\xfb\x97\ +\xad\x11\x2b\x92\x6e\xfe\xb4\x56\xdb\x16\xfe\xf2\x77\x95\x1a\x2c\ +\x15\xdb\x02\xb8\xe3\x6c\xb7\x2f\x7e\x3a\x52\x28\xdc\x35\x90\x48\ +\xbe\x54\x57\xd5\x1d\x70\x61\x07\xd2\x46\xa2\x8a\xe0\x05\xe9\x6d\ +\x79\x3c\x9f\xbd\x72\x86\x2f\xbf\x0d\xf3\xa1\x6a\xa2\xeb\x04\x6d\ +\xcd\x38\xa0\xc0\xa0\x76\xdc\xfc\xcb\xa3\xbe\x76\x52\xaf\x41\xe1\ +\x2f\x88\xb1\x82\x7b\x1f\x3c\xc0\x48\xdf\x48\x4a\x08\x33\x1e\x08\ +\x8d\xc3\x0d\x66\x12\x5f\x17\xdb\xa5\xb2\x44\x0c\x9c\x66\x75\x27\ +\x7a\x4f\x54\x7e\xe2\x9c\x52\xd5\x9c\x02\x26\x2d\x7c\x95\x78\x95\ +\x1f\x7c\x03\x51\xbf\x43\x3f\xa4\x3e\x4a\x83\x06\x17\x5d\x0e\x14\ +\xac\xdf\x23\xfb\x36\x48\x95\x78\xbd\xce\x5b\x08\xb0\x5f\x9e\xf4\ +\xe5\x2f\x36\x67\x0b\x77\x2d\x4a\xa6\x5e\xe0\x0a\x11\x49\xb0\x8b\ +\x2a\x80\x50\x42\x7e\x81\x16\x41\x5f\xe2\x7e\x63\xf2\x1f\xaa\x4a\ +\xbe\x03\xc2\xf5\x83\x76\x67\x1c\x50\x9c\xec\xc0\x7a\x55\x48\x46\ +\x72\x67\x17\xf6\x30\x0a\x0a\xc2\xdb\xf2\xc0\x44\xe6\x06\xf2\x00\ +\x23\x82\x5f\xc5\x45\x0d\x59\xc9\xa0\x7c\x39\x94\xa9\x4d\x10\x42\ +\xf3\x96\x3a\x69\xd4\x03\xb4\xed\x00\x4c\x5a\xbb\x3c\x79\xc5\x79\ +\x43\x99\xab\x6b\xfc\xc1\x37\x10\xf5\x45\xee\xb3\xa0\x5a\x27\x02\ +\xff\x8a\x95\x62\x4d\x4a\xe4\x5e\x37\x57\x8f\xfc\x66\x0b\x06\x93\ +\x9b\x46\x46\x6f\xd9\xd0\xe5\x9d\xd0\xe5\x44\xf3\x36\x6b\xd8\x79\ +\x51\x03\xd7\x8e\x47\x3c\xf5\x9b\x90\x5f\xa0\xa5\x29\x88\xfa\x0e\ +\x15\xf5\x8f\x9a\x7c\xa7\x24\x6c\x77\x66\xbf\xa8\x08\xb7\x6b\x0a\ +\x27\xf7\x7c\x09\xaf\x8b\xae\x03\xf8\xe6\x28\x23\x34\xdc\x1e\xb7\ +\x7b\xd2\xbd\x11\x7e\x75\xac\x54\x15\x74\x8e\xa5\x54\x68\x04\x34\ +\x08\x1a\x2a\xcc\x80\x20\x5c\x96\xae\x4b\xdb\xa4\xf0\xb2\xa5\x0e\ +\xe0\x15\x2b\xca\x9f\x78\x91\x50\x85\xb3\x4a\x55\x73\x06\xb8\x1b\ +\x67\x5f\x41\xdc\x74\xde\x8e\xd1\xab\x43\x9e\x62\xa6\x3e\x06\xa2\ +\x7e\x48\xfd\x12\xfd\xd4\x34\x11\x84\x4d\x0e\xfe\x27\x84\x70\x53\ +\xb2\xe7\xd9\x42\x26\xdf\xa0\xcb\x96\x12\x18\x4c\x3e\xbe\x7d\xf4\ +\xea\xa3\x93\xa9\x95\x83\xb1\xe4\xcb\xf5\xa4\x55\xf7\xb4\x05\x3b\ +\x10\x1b\x81\x7c\x14\x94\x5e\xab\x72\x3b\x3c\x26\x51\xe5\x8d\x20\ +\xe0\x27\x90\xa2\xa8\x0f\xa1\x4f\x84\xf9\x0a\x17\x6f\x2b\xd0\x8c\ +\x02\x4a\xde\x5b\xb8\x4a\xbb\xdf\x4b\xf4\x9a\x75\x19\x36\xca\x60\ +\x12\x3c\xfc\x25\xfc\x47\x7f\xb6\x2b\x7d\x2b\xf9\xd5\x31\x0a\x76\ +\x16\x0c\x80\x82\xb2\xc9\x48\xd5\x44\xd7\xe7\x60\x9d\xe9\x33\x4b\ +\x1d\xa4\x37\x2c\x38\xda\x8f\xc7\xcf\xd1\x8e\x33\xab\x6b\x7e\xed\ +\x4a\x69\x22\xb8\x15\xee\xc6\x99\x45\x30\x41\x51\xff\xa4\x13\x01\ +\x4e\x0c\x61\x93\x43\xb0\xfe\xf1\x6b\x97\xac\x89\x39\xc9\x33\x75\ +\xeb\x73\xee\xc8\x6f\xb6\x78\xbe\xdc\xb9\x6b\x42\xfc\x08\x82\xc9\ +\x5f\xf7\x77\x2f\x5f\xd7\x9d\x3a\x2d\xee\x88\xa5\xa5\x8f\xeb\x82\ +\xce\x7d\x51\xcc\x83\xc1\xfc\x17\xfe\x26\x75\x64\x26\x3e\x54\x4d\ +\x7c\x5d\xda\x76\xed\x01\x05\xfe\x4a\x8c\x17\xc6\x8f\x13\x5e\x7b\ +\xbd\x88\x0f\x2e\xc4\x0f\x17\xc6\x6e\xfe\x95\x30\x3e\x73\x12\x26\ +\x6e\x14\x93\xe1\x50\x7c\x59\x53\x7b\x20\x4b\x03\x80\xa3\x62\x55\ +\xcc\xbe\x5c\xfa\xfe\xf3\x4a\x55\x73\x02\x98\x08\xe0\xfd\x4a\x3f\ +\xd8\x99\xb9\x28\xa2\xbb\x71\x68\x9e\x07\x13\xfa\x39\x28\x68\xe3\ +\x5b\xfa\xe8\x24\xee\x8f\x1d\x25\x9d\xe2\xab\x74\xd9\xa2\x81\xbb\ +\xec\xfe\x5c\x48\xff\xef\x47\x77\xa6\x37\x3e\xc3\x13\xf1\x0d\x09\ +\xef\xa8\x1e\xc7\x7b\x51\xe9\xe3\xba\xc0\x9d\x1b\xe5\x1f\xd4\xf0\ +\x7a\xa9\x07\x47\x6b\xfa\x05\x5a\xee\x3f\x28\xea\x17\x54\xd4\x7f\ +\x40\xb8\x2c\xae\x47\xdb\x46\xd5\xfe\x17\xdf\xe8\x7a\xb1\xcc\x8f\ +\x15\x9f\xa7\xad\x51\x97\x3d\x82\x6f\x8d\x08\xdd\x56\x6e\x42\x39\ +\x9b\xe0\x42\x3c\xf4\x74\xaa\xea\x00\xb0\xb3\x20\x34\x06\x0a\x8d\ +\x15\x26\x5c\x06\x52\xda\x0e\x17\x42\xf3\x96\x08\xf0\xfd\x81\x63\ +\x85\x33\xb7\x5e\x00\x19\xdc\xda\x29\xfc\x7b\xf1\xfd\x4a\xe0\x60\ +\x50\x3d\x95\x04\x50\xdf\x02\x51\x9f\xa5\x3e\x89\x7e\x0a\xc2\x09\ +\x80\x4f\x04\x5c\xd8\x86\x5a\x75\xd8\x82\xa3\x5c\x37\xfe\x77\x51\ +\xdc\x60\x33\x17\x80\x60\xf2\x48\x6e\xfc\xfb\x9f\x1d\x12\xf7\xc1\ +\xf3\x1b\x2f\x5d\xdc\xb5\x6e\x71\x44\x3f\x7d\x0c\x3b\x11\x1b\x01\ +\xe3\x47\x01\x3e\x73\x07\xaf\x97\xaa\xe1\x22\x3c\x15\xf7\x1d\x54\ +\x35\xff\x29\xfb\x0e\x49\x51\x01\xb5\x9f\x42\x28\x0c\xac\x92\x7e\ +\xea\x94\x52\x69\xd6\x44\x1a\x9d\x7d\x7f\xcb\xc3\xe9\x31\xfa\x9b\ +\xc8\x08\xed\x28\x8a\x1a\xc2\x64\x2c\x2e\x5c\x0e\x52\x14\x6f\x93\ +\xc2\xcb\x96\x3a\xb9\x69\xf5\x82\xc3\x85\xef\x9e\xa3\x2d\x1b\xc9\ +\xe9\x86\x76\x81\x3e\x05\x0f\x0e\xc6\xe0\x3e\x46\xfd\x8e\xfa\x22\ +\xfa\x69\xd8\xe0\xa7\xf5\x74\x3d\x90\xfa\x81\x10\xa9\xf8\xc4\xc4\ +\xb1\x07\xcb\x0f\x93\x55\x83\x06\x13\xb8\xa8\xfd\x6f\xf3\xc5\xb2\ +\xf5\xdd\xde\xcb\x92\x8e\x5a\x55\x5a\xa4\x2e\xe8\xbc\x17\xc5\x1c\ +\xa8\x9d\xc1\xf4\x7a\x29\x53\x0a\xe2\xfb\x1f\x45\x7d\x25\xcc\x8f\ +\x40\x7c\x3d\x6c\x17\x05\x04\x69\x4d\x01\x65\xe3\x5a\x31\x20\xe3\ +\xf9\x67\xd5\x7b\x31\x3e\x4a\xe0\x62\x66\xda\x73\xef\xfb\xc2\x88\ +\x78\xa4\x54\x35\xad\x63\xa5\x14\x85\x46\xe0\x86\xa9\x64\x38\x5a\ +\xa6\x6d\xa1\x00\x9e\x5a\x22\x02\x4e\xb1\xfa\xde\xe4\x49\x51\x3f\ +\xef\xd4\x6a\x0c\x4f\xc1\x03\x26\x3f\x82\x3c\x8a\xfb\x25\x88\x4e\ +\x00\x38\x21\x50\xe1\x67\x54\xe5\x36\x17\x1c\xb6\xe0\x19\x22\x91\ +\x78\xa3\x9e\xdd\xa2\xfc\x1b\xaf\x23\xe1\xc1\xe4\x15\x42\x24\x8f\ +\x8c\x27\x9f\xd9\xe7\x24\x4f\xd6\xc6\xaa\xdb\x3e\x60\xf0\xa8\xc9\ +\xfb\xfe\x63\x7f\x4c\x57\x7d\x93\x3a\x9f\xbb\xa8\xff\xcc\x54\xe8\ +\x7f\xd8\x16\xa5\x5c\xae\x29\xa0\x24\xc4\x92\x95\xca\xab\xff\x62\ +\x7c\x94\x14\x94\xb7\xe3\x81\xf1\xf4\xad\x86\x27\xe2\x01\xec\x34\ +\x35\x02\xe6\xc3\x8c\x65\xaa\xa3\xeb\x62\x9b\x08\xcd\x5b\x22\x06\ +\x2e\xc4\xab\x44\xec\x9d\x73\xe9\x74\x0c\x3e\xb8\xc8\x9e\x13\x40\ +\x3f\xa2\x29\xf5\x3b\x14\xf7\x4f\x50\xad\x81\x84\xb6\xa7\xae\x5c\ +\x23\xe6\xc7\x0b\xd9\x57\xd8\xa3\x93\x03\x83\x09\xd4\xbd\x68\x71\ +\xd7\xea\xc5\xdd\xc9\x57\xe8\xc9\xae\x2b\x58\xa8\x0e\xa0\xc1\xa8\ +\x27\x4d\x78\xde\x64\x47\x3e\x76\x0d\xdc\xd5\x0a\x3b\x57\x13\x6c\ +\x77\x09\xc8\x53\x51\x1f\xa2\xe2\x3e\x62\x12\x5f\x87\xb7\x8d\x42\ +\x6a\xbb\x28\x9f\x77\x26\x96\x0b\xc7\x8b\xe4\x1e\xec\x28\x80\x5b\ +\xfa\xf6\xfa\xce\xef\xbe\x6e\xbe\x4d\xd8\x24\x6e\x98\x5a\x8c\x47\ +\x65\x6a\x13\xa1\x79\x4b\x04\xcc\xc5\x0b\xf1\xe0\xb3\x35\x3e\xb8\ +\x88\xfe\x46\xfd\x0f\xfd\x13\x7d\x35\x2c\x70\x80\xf8\x67\xb4\x1d\ +\x68\x57\xa5\xc4\xbc\x67\x08\x99\x3c\xe8\x8f\x4e\x4c\xc1\xe4\x1d\ +\x3d\x62\xfe\xfa\xb8\x77\x62\x4a\xaa\x67\x04\x0b\xd5\x09\x1a\x98\ +\xef\xe8\xd9\x32\xf5\x00\xb7\x7f\x0f\x3c\x6f\x62\xb8\xab\x35\xd8\ +\xbf\x06\x51\x1f\xa0\xbe\x81\xa2\x7f\x90\x54\xf5\x1f\x26\x24\xc8\ +\x57\x0d\x28\xc1\xab\xc2\xbd\xfc\xf1\xfa\x2f\xc5\xba\x1e\x7a\xa2\ +\xdf\x5c\x2f\xf8\x4b\x6e\x25\x83\xf2\xa6\xb1\x0e\x45\x0d\x42\x8d\ +\x44\x53\x2e\x5c\x1e\xdb\x00\x68\x1e\xe1\x65\x4b\x04\xcc\xb5\x0b\ +\xf1\x70\xf1\x74\x4f\x51\x5c\x3b\x83\x07\x17\xd1\xff\xa8\xb8\x8f\ +\xf2\x49\xa0\xd2\x44\x00\x0a\xda\xbe\x7e\x9d\x98\xef\x8a\xc9\x17\ +\xcf\xe5\x97\x6b\x56\xa3\x74\x87\xdd\x5d\xbf\x4d\x8f\xff\x27\x0d\ +\x26\xcf\x11\xc2\x3d\xa1\x3f\x75\xe4\x60\x32\x05\x77\xbd\x45\xea\ +\x7b\x51\x34\x16\xdc\xcc\xa1\xfc\xfb\x6e\xd8\x99\xf9\x59\x95\xe7\ +\x4d\x40\x7c\xff\x53\xbf\xc0\xbc\xc9\x6f\x50\x74\x5d\x6c\x93\x8a\ +\x52\x2e\x57\x0d\x28\xf8\xec\x49\xa9\x38\x6b\xa2\x8a\xd4\xf0\x97\ +\x1e\xfe\xce\x74\xa9\x0a\xa1\x1d\xc5\x3c\x35\x06\x1a\xc7\x64\x3c\ +\x10\x7e\xce\x85\xeb\x23\x98\xa7\x75\x96\x88\x98\x6b\x17\xe2\xe9\ +\x43\x67\x35\x3c\x6b\xc2\x7d\x0f\xc4\xfd\xb4\xd2\x24\x80\xc2\xf5\ +\x20\xa5\xed\x2b\x57\xf4\x1f\x2b\x9d\xf8\x7b\x74\x61\x4e\x04\xeb\ +\x99\x12\x3c\xb7\x21\xfc\x7b\xe0\xa6\x88\xf3\xf7\x88\x9d\xe4\x68\ +\x51\xbc\x6e\x49\xd7\x9a\x65\x5d\xc9\xd3\xa3\x78\x65\x7e\xb9\xd1\ +\x08\xc1\x77\x15\x5e\xec\x09\xfd\xb7\x74\x00\xff\x9a\x60\x1f\x13\ +\x51\x3f\x42\x9f\x40\xd5\x12\x48\x50\xbc\x5d\x80\xa7\xe2\xa8\x13\ +\x4f\x39\xbb\x6a\x40\x71\x64\x7e\xa1\x50\xd1\xbc\xce\x1a\x3c\xb8\ +\x5e\x2f\xc6\xa3\x13\xf6\xbe\x2e\x9a\xa2\xd0\x10\x90\xa2\xa1\xc2\ +\x52\xcc\xd3\x32\x6d\x8b\xca\xd2\x20\xe6\xda\x13\xf1\xda\x59\x72\ +\x59\xe9\xdf\x36\x83\x67\x4d\xa8\xa8\x4f\x9a\x84\x81\x85\x07\x18\ +\x5c\x0f\x7d\xb8\xec\xcb\xd7\x1e\x2e\x0e\x95\x4e\xee\x95\xba\x34\ +\xa7\xee\x9a\xab\x15\x0c\x26\xbf\xcb\x64\x2f\x80\x60\x92\x2e\xd5\ +\x03\x6f\xeb\x11\xfd\xeb\xe3\xde\x71\x5d\xc2\x3f\xa6\x54\x55\x17\ +\x51\xfd\x01\x8d\x4c\xbd\x5a\x25\x76\x4b\xc8\xbb\x0a\x83\xfd\x4b\ +\x04\xfb\x9c\xee\x7f\x10\xf5\x8d\xb0\x60\x42\x45\xdb\x00\x51\xb0\ +\x3c\xad\x7e\xd0\xcf\xbf\xaa\x62\x40\x81\x01\x2e\xf3\xc5\xd5\xf5\ +\x9e\xee\x42\x60\xeb\xea\xa1\xc2\xd1\x09\x80\x1d\xa7\x86\xc0\x3c\ +\x08\x8d\xc4\x8d\x46\xf3\x28\x6c\x0b\xa0\x79\x84\x97\x2d\x11\xb0\ +\x6f\xed\xe0\xb1\x2a\x16\x9c\xea\xaa\xe9\xda\x5e\x3b\x53\x3a\x3d\ +\x11\xbc\x46\x7c\x16\xcf\x9a\x50\x7f\x44\xff\xe4\x01\x04\x85\x9f\ +\x53\xc1\x7a\xd8\x66\xd0\xfe\x57\x85\x88\xc5\xf2\xbd\xc7\x2a\x3f\ +\x31\xe7\x5e\x5f\x53\x0b\x95\x82\x09\xf0\x9c\xee\xd4\xaa\xe0\xf5\ +\x2a\x11\x1f\xb9\x45\xd1\x18\x6c\xfb\xb8\xef\x3f\xc4\x5e\xad\x82\ +\xa0\xff\x70\xa1\xff\xa0\x0f\x41\x5a\xc9\x67\x40\x74\x1d\x90\xa9\ +\x5d\xd0\x01\xac\x7f\xfe\xf3\xd7\xcd\x2f\x16\xe6\x55\x1c\xb8\xf0\ +\x30\xa3\x88\x15\xeb\xba\x18\x4f\xbf\xbd\x81\x47\x27\x61\xe2\x06\ +\xa2\x86\x33\x19\xd1\xd4\x06\x82\x79\x5a\x67\x89\x88\xeb\x56\x69\ +\x5f\xf3\x27\x5e\x25\x85\x7f\x74\xa9\xaa\xa3\xc9\x2b\x7f\xd3\x3d\ +\xe9\xec\xc5\x15\x7e\xbe\x97\x8a\xfa\x20\x0a\xfd\x73\x26\xc2\x75\ +\x79\xfb\x62\xfd\xca\xf9\xeb\x1c\x91\x78\xe3\xc1\xf8\x02\xc8\x6a\ +\xc1\xe4\xa3\x83\xdd\x2b\xd6\x76\xa7\x5e\xd1\x88\xd7\xab\x44\x01\ +\xf8\xd2\xff\x8d\x19\x7f\xdf\x04\x53\x00\xf2\xd4\x7f\x40\xd4\x37\ +\x2a\x05\x12\x2a\xba\x3e\xfa\x0f\x15\x42\xf3\xa2\x7b\x52\x2e\x9a\ +\xe7\x15\x64\xc5\x80\xe2\x8b\xf9\x8b\xa4\xe8\x6a\xd9\xaf\xb7\x51\ +\xaa\x1c\x9d\x00\xbc\xe3\xd4\x30\xdc\x60\xdc\x70\x5c\xbc\x2d\x90\ +\xa5\x41\xe8\x23\xe1\x78\xc2\xe9\x3d\xd9\x71\xe3\xef\xd5\x86\x8e\ +\x7a\x3c\x36\x9d\xd2\xb3\x26\x3f\x84\xdb\x3a\xeb\x7c\xd6\x04\x85\ +\x7f\x59\x52\xd1\xcf\xe9\xba\xb4\xcd\x80\xcb\xe0\x05\x90\x6e\xfe\ +\xa8\xb9\xf6\x4c\x4f\x2d\x54\x0b\x26\xaf\x10\x22\xb1\x3e\xe1\x3d\ +\xa3\xdb\x8d\xee\x2e\xd6\x69\xc6\xaf\x13\xfa\xe2\x5b\xd8\xd1\x1a\ +\xde\x34\x7e\x1d\x15\xf5\x07\xf4\x0f\xea\x2f\x26\xd1\x75\x4c\x6d\ +\x52\x78\x59\xa4\x47\xe2\x5b\x86\xdc\xae\x5b\x2a\x06\x14\x47\x15\ +\x96\x09\x55\xdf\x2b\x9b\xa3\x9a\x1d\x0a\xbe\xb7\xf3\xfe\xf1\x0c\ +\x3f\x7f\x48\x3b\x4c\x45\x8d\x83\xc6\x32\xa5\x28\x5c\x16\x84\x6d\ +\x98\x08\xab\xb7\xd4\x41\x76\xed\x92\xc3\x95\x88\xbf\x45\x5b\xb7\ +\xe3\x5f\x50\x08\x13\xc0\x53\xe3\xb1\x6b\xe0\x59\x13\x72\x5b\xa7\ +\x29\x45\x5f\xa3\xbe\x07\xa2\xfe\xc9\x03\x07\x55\x58\x50\x81\x36\ +\xa7\x69\xfe\x9a\xc5\x25\xfb\x1e\x5c\xaf\x58\x09\x4e\x3b\x0a\xff\ +\xde\xb0\x60\xa2\x51\x2f\x5f\xdc\xb5\x6e\x69\x57\xf2\x35\x7a\x9e\ +\xaa\xfb\x99\x13\x4a\x14\xf3\x1e\xdc\xd0\x91\x29\xaa\x3b\xe0\x77\ +\xe1\xab\xdc\x22\x8c\xfb\x9e\x0b\xfd\x82\xfb\x0a\xff\xa3\x84\xaf\ +\x47\xdb\x06\x01\x3c\x9d\xc6\x96\x2d\x8b\x76\xef\x55\xb1\x0b\x43\ +\x03\x4a\xf0\xaa\x7a\xbf\xf0\x4c\x6d\x99\xba\x6c\x13\x89\x61\x95\ +\x4c\x8f\x79\xee\xc3\x70\xfa\xa0\x54\xc5\xa1\x9d\x47\x83\x50\x03\ +\xa1\xd1\xd0\x80\x26\x23\x82\x68\x3b\x54\x96\x06\x01\x7e\x96\x57\ +\xa3\xaf\xd6\xfe\xdd\xf1\x2f\x28\x84\x0b\xa7\x7b\x7d\xf1\x6b\x98\ +\x00\x66\xf1\xac\x09\x88\xfa\x27\x0a\x07\x3f\x15\xfd\x9c\xae\x0f\ +\x6d\x4e\xd3\xf5\x7a\xa2\x74\xbc\xb1\x13\xf5\x6a\x07\xd5\x0b\x20\ +\xa7\xee\xae\x13\xd7\x7d\x77\x5b\xf6\xf3\xf0\x56\x02\x53\x30\x79\ +\x57\x8f\x98\xbf\x32\xee\x1d\x9f\x70\xd4\xea\x52\x5d\x5b\x51\x10\ +\xde\xe6\x3b\x26\x33\x57\x1b\x7e\x17\x9e\xa6\x5c\xd4\x97\x20\xe5\ +\xfe\x42\x7d\xc6\x54\x87\xed\x50\xb0\xcc\xeb\x09\x97\x7b\xff\xf7\ +\x7f\xb7\xee\x0e\x0d\x28\xc5\xdc\x82\x45\x4a\x74\xd7\x75\xaf\x3a\ +\x6e\x59\x85\xad\xa8\x89\xa2\x2c\xee\xde\xe9\xa7\xef\x2b\x9d\x3e\ +\xa0\x9d\x0b\x13\x1a\x07\x8d\x46\xd3\x30\x99\xda\xa1\xf0\xf2\x5c\ +\x01\x62\x7e\x98\x1a\x8e\x97\x9b\x77\xb4\xa3\x12\x6f\xd7\xdf\x56\ +\xf1\x68\xb9\xdd\xa1\xb7\x07\x1b\x26\x00\x00\x7d\x0a\x65\xf2\x41\ +\x1c\xdc\x38\x09\x84\x05\x11\x10\x5f\x97\xb7\x1f\xc8\x59\x3f\x7f\ +\x4e\xbe\xfa\xbf\x12\xc1\xbe\x28\xaa\x9b\x2e\xd9\x99\xb9\xe8\x2a\ +\x4f\x8c\x9b\x5e\x9c\x78\xac\x10\xee\x71\xfd\xa9\x23\xe7\x25\x53\ +\x67\x68\x43\x45\xe6\xeb\x60\xf4\x28\x80\xb7\x2a\x6c\x29\x64\x7f\ +\x49\xfe\x88\xe6\x4d\xe3\x3e\xe6\x7e\x00\x42\xff\xe0\x3e\x63\x12\ +\x5d\x0f\xdb\xe4\xaa\x99\x50\x43\x6e\x5c\x3f\xff\x44\xc7\xf7\xbe\ +\xa2\xbf\x67\xd6\xa7\xbc\x60\x4b\xea\xdd\x53\xba\x8d\x5c\xda\x17\ +\x37\xbd\x7b\x4b\xe6\xfc\xd2\x5f\x7d\xd8\x41\xcc\x53\x83\x50\x43\ +\xe1\x40\x2c\x94\x84\x79\xac\x47\x71\xc3\x62\xbb\x28\x00\xd3\xb6\ +\x26\x78\xe7\x9a\xec\x3f\xc9\x51\xa9\x93\x94\x2a\x2e\x57\x52\x1d\ +\xa2\xf7\xc0\xb0\x54\xf1\x2d\xba\xab\xa3\x22\xb7\xf7\x9e\xe2\xb0\ +\xb8\xef\x34\x21\x4a\x67\x0e\x67\x45\x64\xb6\x80\x67\x4e\x3c\x47\ +\x9d\xe7\x88\xc2\xd9\xba\xd1\xa6\x04\xb0\x46\x00\xa7\x56\xb2\xbe\ +\xba\xfd\xc2\x1d\x63\x5f\xad\xe1\x8e\x2e\xea\xaf\x28\xea\xb3\x98\ +\x9a\x44\x97\x01\xd1\x36\xe8\x77\x04\xba\x66\xbd\x58\x98\xf4\x52\ +\xef\x12\x22\xfe\x1f\xda\xba\x1d\x6b\xdf\x99\x80\xc1\x04\x6e\xd5\ +\xae\xb0\x2f\xc4\x27\x07\xbb\x57\x3d\xb7\x3f\xfe\x37\x29\xd7\xd7\ +\x47\x6f\xed\x05\x9c\x91\x19\x29\x8a\xeb\xde\xb7\x3d\xfd\x83\xd2\ +\x5d\x5d\x7c\xfb\x51\x74\xff\xa3\x3f\x50\x3f\x01\x99\xe6\x3c\x54\ +\x2d\x7e\x84\xd0\x7c\x28\xa1\x7f\xb5\xb8\xa2\x38\xa0\x27\xa4\xba\ +\x0e\x05\xa3\xf0\xe0\xa2\xf2\x76\xee\x2c\x64\xee\x0a\x09\x26\x61\ +\x42\xe3\x50\x83\xd1\x94\x1b\x11\x64\x6a\xa7\x23\xb8\x71\xbd\x58\ +\x77\xc3\x86\xe4\x97\xa5\xd3\xf7\x90\x54\xea\x2a\x5f\x4d\x7c\x54\ +\xfb\xd1\xb9\x52\x15\x5f\x21\x55\xe1\x1c\x1d\x3f\x3e\x21\x44\xfe\ +\x4b\x22\xd5\xfb\xdb\xd8\xda\xfe\x87\x36\xae\xef\xff\xea\x75\xcf\ +\x10\xf0\xe6\x68\xd8\x45\xd5\xc4\xa9\xf4\x59\xcd\xe0\xcb\x1f\xa5\ +\x2c\x46\xfa\x17\x62\xb3\xc1\xf3\xf4\x33\x78\x15\x3d\x15\xf5\x47\ +\x93\xf8\xc0\xaf\x75\x12\x00\x89\x84\x37\x78\xb8\x92\xc9\xb3\xb4\ +\x75\x3b\xd6\xbe\x33\xa1\xd6\x60\x72\x56\xaf\xe8\x5a\xdf\xe7\x3d\ +\x3b\xe5\xb4\xdf\xab\x7d\xc0\x9f\xc6\x7d\xff\x7e\xf8\xd1\xb5\x59\ +\xdc\x22\x8c\x7e\x81\x3e\x52\x49\xb8\x0e\x8a\xb7\x49\xe1\xe5\x50\ +\x8c\x01\x05\xee\xba\xf1\xf3\xde\x22\x3d\x39\x2d\x2e\x55\xcd\x9a\ +\x9a\xb7\xc4\x00\x18\x37\xa7\x9c\xed\xd7\x0e\x89\xfb\x4b\x55\x1c\ +\x6a\x00\x6e\x20\x6a\x34\xcc\x57\x33\xa4\x89\xb0\xfa\x96\x03\x93\ +\xf2\x8d\x2b\xfa\x5e\x2b\xbc\x81\x9f\xc9\x62\xe2\x1f\xa5\x2f\x96\ +\xeb\xea\x98\x84\xd3\x1b\x53\x82\xff\x20\x75\x03\x09\x19\x93\x42\ +\x1d\xea\x78\xea\x3d\xf1\x62\xdf\x15\x37\xae\xef\xfd\xd1\xaf\xd6\ +\x0a\xb8\x8b\x8f\x06\x89\x6a\xa2\x98\xea\x6a\x02\x9e\x39\x11\xf1\ +\xd8\x3f\xeb\x9d\xdc\xd1\x17\x8a\xf1\x07\x8e\x66\xf0\x2a\x7a\x14\ +\xf7\x4f\x14\x06\x11\x53\x20\xa1\xeb\x83\x78\xfb\x28\x71\xe3\x11\ +\x62\xa5\x13\x1b\x7f\xc3\xc1\xf2\x8a\x95\x5a\x83\x09\xa4\x27\x74\ +\x77\xad\x5e\xe0\x44\xf7\x93\xbe\x34\xad\x17\xf0\xa7\x3f\x67\x8c\ +\x6f\x11\xe6\x7d\xe1\xbe\x80\x42\x9f\xa1\x7e\xc3\x85\xcb\x41\x0a\ +\x6d\x71\x01\x3c\xad\x05\xf3\x6d\xc3\x99\xc3\xc4\x80\x74\xbd\xba\ +\x8e\x4e\x70\x2b\xea\xd9\x63\x9e\x94\x23\x69\x5f\xfe\xf9\x5a\x21\ +\x26\x75\x91\x76\xb0\x92\xb8\x71\x4d\x79\x14\x2e\xcf\xdb\x00\x01\ +\x98\xb6\x1d\x10\xf4\xf7\xaf\xec\x3b\x55\x87\x8f\xff\x91\xd2\x3f\ +\x46\x1b\xba\xa6\x73\xe4\xba\x43\x53\x41\x46\x89\x7e\x6d\xe0\x37\ +\xa4\x54\xff\xe5\x37\xae\x5e\xf4\x37\xfa\x23\x0c\x0e\x5c\xd0\xae\ +\xa9\x1e\x84\xf0\x72\x45\xe6\xca\x33\x27\xc1\xdb\x83\x0b\xd9\xcb\ +\xd9\x0f\x1c\x99\x7c\x07\xf2\xdc\xf7\x40\x38\xc0\x41\x38\xf8\x79\ +\x30\x31\x09\xd6\xc5\x36\x21\x45\x95\xf1\x0b\xfd\x87\xfb\x7e\xa2\ +\xa3\x4f\x25\xd6\xca\x4c\x82\xc9\x3f\x2f\x10\x0b\xd7\x76\x7b\x27\ +\x47\x71\x21\x1e\x1a\x45\xe3\x46\x61\xe4\xe0\x0e\xc1\x49\xf7\xd7\ +\xe0\x4f\x86\x3e\x00\x50\xe6\x0a\xf3\xa7\x30\xe1\x72\x74\x3d\x6c\ +\x0b\xa1\xf9\x19\x61\x9c\x84\xa2\xb8\x20\x1f\x05\x45\xdf\xdb\xfd\ +\x48\x36\xf3\x27\xe8\xbd\x01\x34\x02\x88\x1a\x07\x44\x0d\x46\x0d\ +\x69\xd2\xac\x8d\xd7\x4a\xf4\x5f\xf8\xcf\x13\x31\xe7\x33\xd2\x51\ +\x6b\x75\x07\x66\xe7\xcf\x3a\xb0\x48\xa9\x0e\x93\x4e\xee\x63\x1b\ +\x37\x2c\x78\xb7\xae\x01\x7f\xe0\x82\xb6\x31\xa5\x02\x68\x1e\xa0\ +\x79\x23\x73\xe5\x99\x13\xfa\xf6\xe0\x2a\x3f\x70\x84\x3e\x86\xa2\ +\xbe\x87\xbe\x89\xa2\x81\xc4\x14\x58\x70\x3d\x53\xbb\x40\x90\x6e\ +\x5c\xb5\xe0\x70\xc7\x8f\xbd\xfd\x60\x78\x88\x71\x26\xc1\xe4\x38\ +\xed\xc7\xcf\x4c\xa4\x0e\xef\x77\x52\x2f\xd7\x95\x75\xfb\x5e\x94\ +\xce\xab\xb7\x27\x37\x21\xfd\x07\x7e\xb6\xcb\xf8\x93\x1c\x50\x46\ +\xa1\x0f\x70\x51\x3f\xa9\x26\x58\x9e\xb6\xc9\x85\xd0\x7c\x4d\xc0\ +\x44\x71\x20\x71\x35\x20\xa5\x57\xd7\x8f\x69\x81\xb1\x67\xbc\x35\ +\x04\xbd\x6e\x2e\x27\x9c\x6d\x5f\xdf\x2b\xb6\x4c\x15\xa7\x01\x65\ +\x93\x4c\x06\xa6\x75\x28\xd3\xba\x54\x00\xa6\x6d\x47\xf0\x06\x68\ +\x35\x71\x8a\xa3\xff\xc2\xd7\x1b\x59\x97\x5f\x4f\xad\xaf\x56\x3b\ +\x5e\xe1\xfd\xbf\xde\x30\x1f\x82\x8a\xab\x45\x03\x0a\x15\x7c\x17\ +\xa6\x28\x00\x53\x80\xd6\x1f\x40\x7a\xc3\x82\x63\x95\xe3\xfe\xb3\ +\xfe\xe2\x8e\x7d\xe6\x04\x2e\x9a\xee\x2b\x88\x9b\x2a\xbc\x3d\x18\ +\x80\x32\x8a\xfb\x1f\x1d\xdc\x54\x61\x47\x27\x74\x5d\xda\x2e\x08\ +\x09\xf2\x97\xe9\xd1\xeb\x3a\xb9\xa3\x0f\x86\x87\x18\x67\x12\x4c\ +\x40\xaf\x19\xec\x5e\xb1\x34\x91\x3c\x55\x46\xf0\xf2\xc7\xa8\xc9\ +\xfb\xfe\x26\x78\x4d\xcf\xaf\x44\xe8\xa9\xae\xa0\x0f\x4c\xd4\x9f\ +\x30\x45\x55\xf3\x23\x10\x6f\x8f\xc2\xcb\x35\x01\x93\xc3\x01\x48\ +\x4f\xc5\x75\x7b\x3d\xa5\xe2\xac\x09\x9d\x55\x6a\x40\x3b\xcb\x48\ +\x3a\x27\x1f\xc1\xd7\x6a\x96\xe0\x06\x00\xa1\x61\xd0\x48\x26\xc3\ +\x85\x09\xd6\x03\xb0\xad\x8e\x00\xdf\x00\xad\x37\xb8\x1e\x13\x97\ +\x81\x76\xf4\x20\x5b\xe5\x7a\xb9\x73\xaf\x5e\x2b\x4e\xd7\x55\x10\ +\x54\x30\xb0\xf0\x00\x03\xdf\x49\xf3\x54\x14\x5e\x2e\xff\xce\x89\ +\xde\xb9\x6d\x77\x67\x4d\xad\x04\x93\x58\x41\xdd\x0a\x17\x4d\x67\ +\xf9\xf6\x60\x10\x1d\xe4\x18\x44\xe8\x04\x50\x69\x32\xc0\x76\xf1\ +\x3b\xf1\xbb\x02\x96\xac\x5d\xf2\x8c\x83\xe1\x21\xc6\x99\x06\x93\ +\x37\xf5\x4d\x5d\x88\xef\x6e\xc3\x0b\xf1\xa5\x1f\xcc\xfa\x35\x79\ +\x4d\x0f\xed\x07\x10\xf4\x81\x08\x7d\x81\x8a\xfa\x0a\x17\x5f\x96\ +\xb6\x45\xc1\x32\xaf\xaf\x19\x98\x14\x0e\x40\x3a\xc5\x85\x7a\x82\ +\x39\xb2\x54\x6c\x09\x79\xe5\xed\xbc\x7d\x67\xfa\xae\x52\x91\x42\ +\x8d\x81\xe2\x06\xa3\x46\xe4\x06\x35\xad\x8f\x60\x9e\xd6\xb5\x1d\ +\xae\xef\x75\xeb\x11\x15\xe9\xe9\x0c\xdd\x61\x1d\x00\x9c\xc3\x93\ +\xa2\xef\xad\xdf\x12\xc1\x3b\x8d\x20\x90\xc4\x4a\x29\x95\x29\x90\ +\x70\x21\xe5\x7c\x70\xa3\x87\xd7\x77\xb2\xe8\xe0\xdf\x39\x81\x9b\ +\x44\x26\xa5\xf7\xe0\x1f\x26\x33\x57\xd4\xf0\xf6\x60\xea\x6b\xe8\ +\x7b\x74\x90\xd7\x22\x5c\x0f\x85\xed\x21\xd3\xca\xda\xc6\x5d\x5e\ +\x31\x73\x92\x8e\x47\x73\xfa\x21\xc6\x99\x06\x13\x2d\x1f\x2e\xc4\ +\x0f\x3a\xc9\xd3\xa2\xf4\x3d\xfa\x85\xb3\x05\xfa\x82\x3f\x98\xc5\ +\x9e\xb3\x03\x70\xfb\x51\xd4\x0f\x20\xe5\xfe\x42\x85\xcb\xe2\x72\ +\xb4\x0c\xe2\x6d\x83\xea\xc6\x1c\x50\x94\x92\xba\xf5\xba\x0c\x5f\ +\xcf\xd6\x81\x91\x27\x3d\x67\xfb\x25\x22\x78\x6f\x17\x36\xc5\x3b\ +\x8d\x65\x10\x37\x16\x28\xcc\x88\x34\x0f\x60\x1b\x9d\x83\x2c\x0e\ +\xe8\xbd\xb3\xaa\x54\x8a\x92\x84\x1e\x6f\xc7\x2d\x5f\x37\xf8\x7a\ +\x9d\xe7\xc1\x04\x8f\x4a\x68\x1e\x05\xbe\x82\x02\xa8\xef\x04\x79\ +\x78\xbd\x8a\xf0\x63\x1d\xfd\x3b\x27\x78\x47\x57\x8d\x2f\x7c\x04\ +\x51\xdf\xc3\x81\x8e\xa2\x47\x26\x54\x7c\x39\xf4\xd5\x30\x21\x0a\ +\x7e\x36\x79\xae\x3f\xc4\x08\xd7\xae\x76\x2a\x79\xe9\x87\x77\x66\ +\xbe\x5d\x6b\x30\xf9\xd7\x85\x62\xe1\xea\xae\xe8\x2e\xc4\x23\xd4\ +\xc9\x67\x4b\x41\x78\x5b\x1e\x98\xc8\xdc\x10\x72\x8b\x30\xa6\x54\ +\xd4\x9f\x4c\x7e\x65\x12\xae\x03\xe2\xed\x81\x28\xbc\x3c\x23\x0e\ +\x70\xbc\xe0\xb4\x84\x2a\xd6\x7d\x74\x52\x8f\xb1\x3d\x59\x7c\xea\ +\x49\x3f\x73\xbf\xe1\xe9\x3b\x6e\x08\x10\x1a\x89\x1a\xad\x92\xf8\ +\xfa\x08\xe6\x69\x5d\x5b\xa2\xa3\xbd\x8e\xf9\x8d\x99\x34\x1c\xa1\ +\x56\xa4\xfc\xc2\x5f\x7c\x49\x04\x17\x74\x21\xa8\x60\x60\xc1\x14\ +\xbe\x97\x06\x15\xd8\xd5\x5c\x00\xa6\xe2\x9a\xf5\x62\x51\xa7\xbf\ +\x5e\xa5\xc6\x3b\xba\x20\x05\x99\xfc\x0e\x64\x1a\xec\x26\x99\xd6\ +\xc5\xb6\xa9\x10\x85\xa7\x13\xe7\xd2\xcf\x26\x73\x20\x98\xec\xf2\ +\xe4\x15\xe7\xed\x18\xbd\x7a\x93\x27\x7c\x30\x94\x66\x9a\x1d\x48\ +\x0a\xf2\x8f\xd7\x3e\x7a\x58\x22\xb5\xbe\x2f\x96\x7c\xb1\xae\x28\ +\xfb\xe4\x6c\xa9\xbb\x01\x02\x7d\xf1\x63\xa9\x8a\xf6\x05\x28\xf7\ +\x83\x08\xca\xe8\x23\xd4\x67\xc2\x44\xd7\xc5\xf5\xa9\x00\x9e\xce\ +\x1a\xe3\xa4\xa4\x8d\x56\x97\xdd\xea\xdd\x2a\x4f\xc9\xf4\x13\x85\ +\xc0\xc8\xb4\xa3\x3c\x0f\x42\x03\xd1\x94\xcb\xb4\x3c\x08\xa0\xf9\ +\x0e\xc2\x1d\xd5\xff\xc0\xcd\x0a\x91\xa3\x8d\xa1\xf7\xbd\x5a\xbe\ +\x62\x8d\xd0\x63\xb1\x1c\x50\x30\x98\xa0\x30\x98\xd4\x14\x54\x92\ +\x85\x81\x8e\x7e\xbd\xca\x0c\xee\xe8\x02\x71\xff\x33\x0d\xf2\x5a\ +\x8e\x4c\x40\xd8\x06\xb6\x4d\x85\x04\x79\x78\x85\x8d\x98\xb2\x31\ +\xda\x7e\x4e\x41\x83\x49\x85\x6b\x57\x98\xa2\xdd\xfc\x57\x2d\xe8\ +\x59\xba\x2c\x9e\x7a\xb1\xe3\x8b\xf9\xf0\x61\x14\xd0\x2f\x9d\x2d\ +\xc1\xe9\x53\xe1\x3f\x0a\x77\x75\x19\x7e\xca\x1c\xcb\x5c\xd0\x27\ +\xf4\x0b\x9a\x82\x4c\x3e\x44\x97\x03\x61\x3b\x14\x5e\xae\x07\x75\ +\xc0\x00\xcf\x79\x62\x9e\xef\xfa\x2d\x7b\x42\x5e\xf7\x0e\xee\xee\ +\x1a\xfe\xd6\x6e\xf1\x64\xa9\x8a\x82\x06\xa1\x42\x63\xd5\x22\x5c\ +\x1e\xd7\x45\x30\x4f\xeb\xda\x96\xb8\x48\xec\x77\x94\xfb\x44\xa9\ +\x18\x39\x52\xba\xab\x7a\x9d\xbe\x97\xe9\x6c\x5c\x8b\x06\x15\x1e\ +\x5c\xaa\x06\x15\xb8\x85\x55\xb9\xee\x3b\xe0\xf6\x66\x28\x77\x1a\ +\xa5\x8b\xf0\xb7\xcd\xe0\x8e\x2e\x14\xf7\x3d\x1c\xe4\x61\xc1\x83\ +\xd6\xe3\x3a\xa6\x76\x29\x41\x79\xe3\x91\x62\xa5\x93\x98\x78\x4d\ +\xa7\xda\xb8\x1a\xb3\x08\x26\x41\xaa\x0f\xd5\x9c\x95\x49\x6f\x4d\ +\x97\xeb\x9d\x04\x1f\xd6\x4b\xe0\xd0\x24\xad\x87\x82\x84\x77\x75\ +\x8d\x5d\x4f\xee\xea\x42\x78\x5f\x2a\x89\xfa\x4f\x98\x70\x59\x68\ +\xcf\x24\x84\xe6\x67\xcd\x01\x01\xc5\x2d\x2e\x88\x3b\x5e\x6f\xdd\ +\x77\x78\xcd\x16\x3d\x80\x83\xbb\xbb\x4c\x2f\x74\xab\x20\x6a\xe4\ +\x30\xd1\xe5\x01\x9a\xef\x28\x3c\xe7\xa9\x71\xe5\x66\x9f\x2a\x15\ +\x23\x07\x6e\xab\x94\xbe\x5a\xfe\x0e\x11\xdc\xda\x6b\x0a\x26\xd5\ +\x82\x4a\xc0\xd5\x2b\xc5\x80\x1b\x1f\x87\xd7\xbf\x9c\xa5\x0d\x1d\ +\xc5\x38\x6c\x2a\x7a\x9b\x83\x9f\xf0\xbd\x74\x38\x73\x69\x44\xbf\ +\x07\x8f\x32\x1d\x95\xf0\x75\xb1\x4d\xfa\x1d\xc0\xb4\x14\x6e\x76\ +\x70\x72\x7d\xc7\xcd\xd5\x87\x18\x67\x1b\x4c\x40\xaf\x5f\xd6\xbd\ +\x7a\x69\x2a\x79\x86\x36\x4a\x24\xaf\xa6\xa7\x5f\x5a\x0f\x70\xdb\ +\x79\xba\x10\xbb\x07\x7e\xe2\x00\x76\xbc\x86\x37\x0d\x65\xae\xa0\ +\x4f\x25\x51\xbf\x31\x89\x2e\x8b\xe2\xed\x51\x78\x79\xd6\x1c\x10\ +\x50\x00\xdd\x7a\xcb\x1c\xb3\x28\xbc\xf4\xae\x5c\x3a\xec\x74\x17\ +\x80\x65\x90\xc9\x70\x26\xe1\xb2\xd8\x0e\xa6\x80\xa9\xae\xad\xd9\ +\xfd\x98\xd8\xa6\xbc\xc4\x35\x52\xca\xdd\xa5\xaa\xc8\xd1\x41\x65\ +\xe0\xe8\xa5\x02\x8e\x54\xe1\x28\x05\x55\x2d\xa8\x80\xdf\x94\x95\ +\x10\x03\xc7\xaa\x62\x67\xfe\xa4\x2f\x9c\x92\xa0\x3f\xe1\x8b\xd5\ +\xa5\x14\x80\x3c\x0a\x7d\x0b\xf3\x54\x30\xc0\x31\x80\xf0\x40\xc2\ +\x83\x0a\x08\xd7\xa3\xed\x23\x98\x2f\xd7\x65\x56\x2f\x58\x27\x54\ +\xfc\xac\xb9\xf8\x10\x63\x3d\xc1\xe4\x4c\x21\x12\x2b\x94\x77\x58\ +\x52\xf9\xcf\xd1\xe5\xba\xa0\x5f\x18\x05\x39\xdf\xdb\x7c\xf3\x70\ +\xfa\x2a\xf2\x13\x07\x08\x94\x4d\x42\x9f\x00\x71\x7f\x41\xf1\x65\ +\x30\x4f\xdb\xa1\x60\x99\xd7\xd7\x45\xdb\x0d\x74\x4f\xc9\x91\xcf\ +\x8f\x88\x47\x4a\x45\x0a\x35\x0c\x15\x35\x24\x15\x5f\x86\x96\x3b\ +\x9a\xb3\x84\xc8\xcb\xc2\xd8\xed\x7e\x31\x77\x61\xa9\x2a\x72\x1c\ +\xe1\xce\x5f\x18\x9f\x7f\xb8\xce\xf2\x60\x42\x83\x0a\xd5\xb4\xa0\ +\x72\xed\x1a\xb1\xce\x89\x4d\xbc\xb9\x53\x4f\xc3\xc0\x29\x89\xc7\ +\xf3\xd9\x2b\x23\xba\xa3\xab\x9a\xe8\xba\x20\x6c\x13\xe1\xe5\x00\ +\x7d\x74\x12\xbc\x60\x73\x2e\x3e\xc4\x58\x63\x30\x41\xa1\xcd\xca\ +\x36\x3c\x75\x69\xd7\xfa\xf9\xa9\xe4\x6b\xb4\x37\xd6\xfd\xc7\x71\ +\xdd\x0d\x10\xe0\x99\x93\xe1\x42\xec\x37\x17\x3d\xfd\xcb\xb3\xd8\ +\x27\x9a\x52\x95\xfb\x54\x12\xf5\x1b\xd3\x1f\x24\x20\xba\x3c\x6f\ +\x0f\xd5\x10\x0e\x08\x28\xd2\xf1\x17\x0a\xe9\xb5\xe4\x19\x14\x38\ +\x14\xcc\xfa\xce\xb6\x3d\xa5\x32\xc1\x64\x10\x6a\xb4\x6a\x32\xad\ +\x8f\x02\x30\xed\x18\x6e\xdd\x21\x76\xfa\xb1\xee\x2b\xf5\x2e\x34\ +\x3d\xab\x13\x05\x71\xd7\xf3\xe1\xe1\x38\x1e\x48\x50\x3c\x90\x94\ +\x03\xca\xf9\x42\xf4\xb8\x7e\xf7\xc9\x52\x26\xdf\xa8\x0d\x1b\xe5\ +\x78\x6c\x0a\x30\xe8\xb7\x4f\xc6\x7f\x01\xa7\x24\x22\xbe\xa3\x8b\ +\x1f\xa1\x50\xc1\x3a\xd8\xa6\x49\x48\x39\x3f\xba\x7e\xe1\xe1\x22\ +\x31\xf7\x1e\x62\x9c\x41\x30\x01\xd0\x6e\x68\x77\xff\x5d\x7d\xa2\ +\xef\x90\x84\xff\xac\x44\x84\x7f\xcc\xd0\x2f\x9f\x2d\xba\x8d\xdc\ +\xa4\xf0\x1e\xbe\x72\x78\xf4\x4e\xf6\xcb\xb3\x08\x94\xa7\xf5\x85\ +\x09\xfd\x84\xfb\x0e\x15\x5d\x1e\xdb\xc2\x76\x41\x14\x5e\xae\x9b\ +\x03\x02\xca\x14\xaa\x25\x93\x80\x76\xa4\x74\xda\x93\xa6\xd3\x5d\ +\x5c\x26\x63\xa1\x11\xb9\x01\xb9\xe6\x04\x9f\xd0\x7d\x19\x7a\x6c\ +\xdf\x3d\x5e\xde\xff\x9c\xde\x5d\x78\xdb\x61\x64\x68\x07\xe8\x8b\ +\xc7\xd4\x0a\x9d\xc5\xa3\x13\xd3\x91\x8a\xe9\x08\xc5\x39\x74\xe5\ +\xc0\xb1\x8e\x1b\xff\x27\x6d\xed\x8e\x7b\xbd\x0a\x4c\x66\x4f\x79\ +\xe2\x5a\x78\xd0\xcc\xf0\xab\x8b\x34\x05\x51\x9f\x03\xf1\xc1\x8d\ +\x01\x84\x07\x12\xcc\xf3\xf5\x41\xd8\x36\x15\x52\xce\xc3\x6d\xc2\ +\xbe\x37\xf6\x4a\xe1\x7b\x2f\x29\x55\xcd\x09\xea\x3d\x32\xd1\xf2\ +\x8e\xee\xee\x5a\x33\xe0\x24\x4e\xd7\x1f\x44\x76\x74\x12\xc5\x84\ +\x98\xf7\xfd\xc7\xfe\x98\x1e\xbb\xf2\x3a\xf3\x85\x78\x93\xa6\xf5\ +\xcb\x20\x5e\x4f\x97\xc7\x36\x00\x9e\xa7\x69\xa4\x84\x04\x94\xd6\ +\xe0\xab\x62\x76\xcf\xe4\xa8\xe9\xee\x2e\x04\x0d\x03\x42\xa3\x51\ +\x23\x9a\x44\xd7\x01\x68\x1e\xa0\xf9\x4e\x21\xf0\xef\x73\xc0\x47\ +\xbb\x13\x43\xc2\x75\x1a\x73\x0b\x71\xf0\xca\xfb\x40\x34\x78\xf0\ +\x40\x02\x2a\x07\x93\x4b\xd6\x88\xf5\xc9\xf8\xc4\x5b\x3b\xf1\xb5\ +\xe9\x70\x47\x57\x26\xaf\xee\xfc\xe9\xd0\xe8\xc6\x3a\xee\xe8\xa2\ +\x03\xbc\x56\x71\x3f\xa5\x42\x68\x5e\x14\x8b\x83\x87\xeb\x23\xc0\ +\x39\xf5\x5b\x27\x33\x0c\x26\xa8\x69\xb6\xff\xd0\x62\xb1\xe8\xd0\ +\x6e\xef\x05\x31\x27\xf8\x29\x87\xba\xc0\x2f\x88\x02\xf8\x79\xe8\ +\xfd\xbe\x7b\x37\x3c\x73\x02\x3b\x5c\x83\x4d\xd3\x94\x8a\xf6\x2b\ +\xe8\x5b\x88\xf8\x72\x54\xd8\x16\x42\xf3\x0d\xe1\x80\x80\x22\x5b\ +\x74\x74\x02\x78\xbe\x48\xdf\x36\x22\xb6\x95\x8a\x08\x1a\x05\x8d\ +\x41\xcb\x95\x8c\x48\x97\x81\x14\xc0\x14\xa0\xf9\x8e\x45\x7a\xb1\ +\x71\xb8\xed\xab\x54\x8c\x0c\x6d\x1c\xa9\x54\x70\x5b\x39\x3d\x22\ +\x31\x05\x93\xb2\x3e\x22\x44\xcf\xc2\x62\xf7\x0b\x5c\x91\x7c\x1d\ +\xac\xaf\xeb\x3a\x86\xd2\x45\xf8\xfb\x36\xee\xcc\xfc\xa4\xc6\xd7\ +\xaa\x70\xd1\x01\x4e\x07\xbc\xe9\x08\x85\xae\x47\xdb\xa4\xdf\x41\ +\x99\x56\xc6\xd7\xff\xcf\xa5\xdf\x3a\x89\x22\x98\x9c\xa4\xe7\xb3\ +\xc3\x62\x5d\x1b\xba\x9d\xe4\x4b\xf5\x87\x75\xf9\x1f\x34\x1e\x95\ +\x03\x07\xbe\xe5\xfb\x9b\x7e\x3b\x94\xde\x68\x78\xe6\x04\xc0\x3a\ +\xda\x1f\x2a\xf4\x19\xf4\x1f\x93\xe8\xf2\xd8\x1e\x17\x42\xf3\x91\ +\xd2\x36\x47\x28\xba\x87\xb9\x82\xe3\xec\x2d\xfd\xf6\x49\xa9\xaa\ +\xa2\xa8\x01\xa9\x11\x4d\x75\xa8\x39\x07\xfc\xbe\x67\xa3\xd0\x06\ +\x83\x31\x65\x0c\x1e\x44\xe5\xa3\x93\x63\x0e\xed\x3f\x2a\x16\x8f\ +\xbf\x5d\xaf\xd8\x71\xa7\xba\xf2\xca\xdf\x74\xef\xd8\xd8\x0f\x2f\ +\xf6\xc4\x3e\x18\x9d\x1a\xea\x2f\xd4\x87\xc2\x7c\x0d\x04\xab\xd2\ +\x00\x42\x83\x88\x49\x74\x5d\xfa\x1d\x00\x4f\xcb\xc4\xe3\x03\x47\ +\x3b\x6e\xfc\xed\xfa\x83\x8e\x0a\xda\x61\x44\x11\x4c\x20\x3d\x63\ +\x61\xef\xb2\x45\x89\xe4\x4b\x1d\x25\x16\xe8\x72\x5d\x44\x69\xd8\ +\xa2\xf0\xb6\x0f\x15\xc7\x6e\xb8\xe4\xe9\x0b\xf1\x88\xa9\x5f\x20\ +\xde\xb7\x6a\xa2\xcb\x83\x78\x7b\x14\x5e\x8e\x94\xf6\x09\x28\x4a\ +\xe6\xf2\x9e\x1c\xd5\xd6\x09\xeb\x30\x35\x90\xc9\x68\x26\x63\x9a\ +\x96\x43\x01\x98\x76\x2c\x09\x2f\xb7\x40\xc8\xfa\x5f\x95\x63\xa0\ +\xe8\x0b\x95\xd3\x29\x06\x8c\xb0\x40\x12\xe4\xff\x7b\x91\x58\xda\ +\x2b\x73\xaf\x74\x94\xff\x5c\x5d\xee\x28\xe0\xb5\x2a\x5b\x0a\xd9\ +\x9f\xc3\xe9\x88\x90\xd7\xfd\x60\x8a\x42\x5f\x03\xf1\xc1\x5d\x8b\ +\xe8\xfa\xb4\x5d\x04\xf3\xb4\x2e\x00\x7e\x87\x5f\xf8\x6e\x24\xef\ +\x44\x3b\xa0\xf1\x16\x10\x55\x30\x79\x81\x8e\x01\x87\xc6\x8b\x6b\ +\x52\x0e\x64\xa3\x01\xbe\xa8\x5e\xa6\x5e\xfe\xe8\xde\xf7\xa9\x21\ +\x71\x57\x95\x0b\xf1\x5c\xbc\x8f\x61\xfe\xc3\x85\xeb\x53\xb0\xcc\ +\xeb\x23\xa7\x6d\x02\x8a\x76\x2c\xbc\x20\x4f\x41\xe3\x50\x83\xa0\ +\x2a\x19\x93\x0a\xc0\x74\xce\xe1\xf8\x2a\x2e\x7d\x11\xf9\xef\x3b\ +\x68\x83\x65\x33\x53\xa7\xd2\x8c\x01\x84\xd6\x9d\x21\x44\x72\x6d\ +\xaa\xfb\xa4\x64\x3c\x71\xae\xfe\xd3\xae\xa3\xfe\x6a\x86\x09\x0d\ +\x5f\xab\x52\x3a\x1d\x01\x98\x52\x90\xc9\xe7\x40\x7c\xc0\x57\x3a\ +\x42\xa1\xeb\x61\xbb\x08\x2f\x4f\x03\x1e\x62\xd4\x7f\x77\x1d\x13\ +\xc5\x6d\xc2\xf0\x25\xb0\xa3\x42\xbf\xac\x09\x94\xaf\x59\xed\x18\ +\xdd\x58\x25\x98\x00\x98\xa7\xf6\x2b\xdb\xf5\xcc\x45\xbd\x4b\x17\ +\x26\xbb\x5e\x0c\x0f\xe5\xea\x72\x24\x44\xe1\xc8\x55\x5e\xfe\xc8\ +\x45\xfb\x36\xad\x7f\x15\x44\x97\x37\xb5\x09\x6a\x1a\x6d\x13\x50\ +\xb4\xe9\x8b\x79\x31\xca\x4f\x77\x51\xa8\x81\xc2\x14\x66\x5c\x13\ +\x61\xf5\x1d\xc3\x65\x42\x74\x4b\x55\x58\x2f\x22\x78\x8b\x2a\x47\ +\x1b\x50\x2a\x3f\x18\x53\x28\x0c\x28\xd3\x82\x89\x96\x7c\xf5\x8a\ +\xde\xa3\xfb\xe2\xf1\xbf\x93\x4a\xd4\x7d\xfb\x6a\x33\x77\x4a\x95\ +\xd7\xaa\xd0\x94\xfb\x13\x94\xf9\xc0\x0e\x0b\x22\xb4\x8c\xbe\xc9\ +\xdb\xa3\x42\x68\x3e\x60\x74\xfd\xc2\xa3\x95\x13\x7b\x67\x14\xb7\ +\x09\xe3\x64\x19\xc5\xa4\x39\x1b\x02\xdb\x97\x5e\x41\x5f\xe5\x9a\ +\x15\x80\xf6\xa2\xf6\x2b\xdb\x18\x0e\x49\x96\xc7\xbd\x75\x09\xc7\ +\x3b\x59\x67\xdb\x86\x0a\x2f\x7f\xa4\x29\xed\x17\xe6\xa9\xaf\x60\ +\x9e\xa6\x28\x5c\x06\x85\xed\xa1\x28\xbc\xdc\x10\x60\x42\x98\x86\ +\x97\x88\x8d\x2b\xc7\x69\xd8\x13\xd8\x61\xf8\x4a\x66\x9f\xca\x09\ +\x7e\x71\x99\x1b\x08\xc5\x0d\x69\x32\xa6\xa9\x0e\x35\x27\x98\xb7\ +\x56\x2c\x53\xf1\xe2\xf1\xba\x43\x91\xcf\x0b\xbe\xef\x8d\x0e\x17\ +\x46\xe1\x06\x09\x0c\x1c\xe5\x00\x42\xe4\x7c\x64\x9e\x58\xba\xc4\ +\x29\xfc\x45\x2c\x82\x27\x92\x81\x66\x4d\x70\x70\xa1\x74\x5c\xf9\ +\xf7\x56\x78\xad\x0a\x40\x7d\x86\xfa\x1a\x15\x1d\xe0\x95\x84\xcb\ +\xe2\x7a\xb4\x6d\x14\x42\xf3\x01\x1b\xd7\x8a\x01\x29\xb2\x2f\x16\ +\xbe\x77\x6a\xa9\xaa\x63\xa1\xc1\xa4\xca\x2b\xe8\x01\xb4\x15\xda\ +\x0d\x44\xed\xea\xbd\x7e\x51\xef\xca\x85\xf1\xe4\xe9\x51\x1e\x9d\ +\xd4\x4b\x95\x97\x3f\x02\x58\x47\x15\xda\x47\x22\xba\x0c\x15\xb6\ +\x41\xc1\x32\xaf\x8f\x94\x63\x8e\x7b\xf1\xbb\x5f\x78\xfc\x0b\x6e\ +\x79\xdd\x73\x8e\x3f\xff\x80\x80\xe2\x4c\xc4\xc6\xa5\xd7\xfc\x80\ +\xa2\x7b\x5c\x1c\x73\x0e\xb8\x3f\x1b\x41\x63\x55\x12\x35\x2a\x08\ +\xa1\xf9\xb9\xc2\x54\x9f\x8a\x03\x2b\xa5\x9f\x3a\x25\xc8\x47\x8c\ +\x36\x66\xf6\xee\x3d\xc1\x0b\x3a\x69\x00\x09\x82\x08\x4a\xff\x39\ +\x18\x7f\x66\x4f\xd7\x73\xbb\x63\x89\xb7\xe8\x4f\x22\x8d\x05\x8d\ +\xde\x69\x79\xe5\x3f\x78\x7b\x76\x2c\x98\xd0\x4a\x55\xdc\x67\x50\ +\x74\xd0\x82\x70\x50\xf3\x81\x8e\xe2\x47\x2a\x7c\x7d\xda\x36\x8a\ +\xc2\xcb\x25\x06\x8f\xf6\xfd\x04\xfc\xd6\x49\xa4\x76\x6e\x36\x33\ +\x08\x26\x90\xa2\xbd\xa8\xfd\xa8\xad\xbd\x37\x6a\x1f\x3c\x34\x5e\ +\x3c\x4a\x1f\x9d\xbc\x48\x97\xdb\x86\x2a\x2f\x7f\x34\x89\xf6\x91\ +\xf6\xf3\x80\x3e\x97\x44\x97\x35\xb5\x07\x6a\x0a\x7e\x4c\x3e\xe3\ +\xc5\x93\x23\xc7\xbf\x69\x6c\xe7\x11\x07\x04\x14\x3d\xd4\xe0\x9f\ +\xa6\x6d\x0c\xe2\x29\x39\xfe\x9d\xe9\x6f\x18\x36\x19\x06\xf2\x95\ +\x0c\x68\x92\x89\xb0\xfa\x8e\xe1\x9a\xf5\x62\xa1\xe3\xe6\x9e\x2f\ +\x1d\x55\xd7\x6f\xff\x9b\x50\xbe\xcc\xe6\x3c\x67\xb8\x74\xc7\x1d\ +\x0d\x26\xd3\x74\xf6\xb2\x9e\x67\x2e\x48\x26\xfe\x46\x17\x22\x79\ +\x99\x28\x34\x8a\xd0\x7c\xd4\xe4\x85\xf7\xd8\xa3\x85\xec\x65\xff\ +\x5b\xfb\x6b\x55\x50\x38\x80\xf9\xe0\xe6\x41\xc4\x24\xf4\x5b\xee\ +\xbf\x00\x4f\xa7\x31\x57\x6e\x13\x8e\x30\x98\x94\xf3\x2f\x5a\xde\ +\xbb\xb2\x2f\x95\xfc\x0b\xed\x30\x8d\x74\x99\x19\x31\x8b\x97\x3f\ +\x56\xec\x23\x29\x9b\xc4\xdb\x02\x51\x78\x39\x72\x94\x74\xf6\x14\ +\xa4\xe3\xf7\xfb\x63\xc1\x5f\x9a\xd3\xf0\x63\x23\x05\xe5\x8c\x19\ +\x6e\x76\x69\x2c\xda\x1b\x54\xba\x94\xd7\x98\x8c\x42\x55\xab\x61\ +\x41\x00\x2f\x77\x3c\xf0\x1b\x23\x52\x25\xde\xa6\x3b\x14\xf9\x40\ +\xf2\xa4\x18\xd9\xe7\x3b\x8f\xe8\xd9\x91\xb7\x0d\xe5\x40\xff\xd2\ +\x2f\x16\xad\x88\x15\x5e\x12\x13\xfe\x31\xc1\x27\x11\x60\xda\x39\ +\x51\xef\x30\x38\xaf\xfd\xd4\x78\xec\x9a\x59\xbc\x56\xc5\x34\xc8\ +\x2b\x05\x11\xba\x2e\x0a\xdb\xc5\xef\x01\x30\x4f\xeb\xa6\xd1\xc8\ +\xdb\x84\x43\xbf\x34\x62\x22\x0a\x26\x98\x0f\x6c\xfe\xd7\x42\xc4\ +\x96\x8a\xe2\x11\x71\xe5\x9f\xa0\xcb\x75\x11\xa5\x1d\x66\xf8\xf2\ +\x47\xda\x47\x14\xf5\x23\xec\x37\xcd\x73\x41\x3b\x14\x2c\xf3\xfa\ +\x06\x21\xf3\x63\x72\x6a\x6a\x38\x20\xa0\x28\x29\x46\x85\x72\x1a\ +\xf6\x5b\x1b\x35\x40\x8d\x51\xaf\x00\x4c\xe7\x0c\xf0\xfb\x17\x32\ +\x31\xf9\xea\x46\xbd\x78\xb1\xa8\xbc\x91\x47\x0a\xa3\x9b\x4a\xc5\ +\x72\x10\x09\x4a\x9a\xe7\xeb\x81\x7c\x74\x4f\xea\xd8\xde\x78\xf2\ +\x2c\x5d\x8c\x7c\x92\xa3\x44\xd9\x38\xfc\xe5\xb8\xdf\x13\xb7\x7c\ +\x6c\x57\x7a\xe3\x2c\x5e\xab\x02\xe2\x83\xbb\x16\xc1\xf2\xd8\x26\ +\x7e\x07\xc0\xcb\x46\x1a\x7d\x9b\x30\xd8\xb7\xea\x46\xd4\x49\x84\ +\xc1\x04\x52\x0c\xe0\xc5\xe7\x1f\xd2\xbb\xaa\xbf\x2b\x9a\xa3\x93\ +\xa8\xec\x30\x83\x97\x3f\xd2\xfe\x61\x19\xfa\x45\xfb\xca\xeb\x68\ +\x3d\x08\xdb\xe2\x6a\x3a\x4b\xbc\x9c\xde\x22\xc3\xcf\xc8\xea\xbf\ +\x4e\x9b\xbe\x41\x70\x01\x4b\x7f\x2f\x3c\xf3\x50\x09\x6e\xb4\x6a\ +\x02\x30\xa5\x98\xea\x3a\x86\x46\xff\xfe\x05\xec\x8b\x82\x90\x23\ +\xdf\xdc\x2d\x76\x95\xaa\x28\xf0\x7d\xf2\xac\x65\xdd\xcf\x58\xd2\ +\x95\x3c\x5b\x17\x5a\xf6\xbb\x39\x33\x25\xb8\x08\xef\xfb\xf7\x5f\ +\x3a\x9c\xfe\xe9\xb6\x70\xff\x80\x32\x17\x0e\x5e\x1c\xcc\x5c\x78\ +\x94\x42\x8f\x54\xe8\x3a\x28\x53\xdb\x08\xcd\x97\x69\xc4\x6d\xc2\ +\x26\x22\x77\x22\x42\xa3\x82\xc9\x5b\xb4\x6d\x96\xa8\xe2\x91\x31\ +\xdf\x3f\x51\x97\x23\xa1\x5e\x3b\xe8\x0d\xaf\xf5\xe5\x8f\x5c\xbc\ +\xbf\x54\xb4\x8e\x2e\x87\xeb\x02\x34\x8f\xf0\x72\xc3\x70\x7c\xff\ +\x98\xb8\x52\x31\x47\x7f\xe5\x01\x01\xe5\xce\xcd\x62\xaf\x50\xb1\ +\x87\x4a\xc5\xa6\xa0\x44\x70\xce\x9e\x5f\x3f\x41\xd0\x58\x33\x11\ +\x80\xe9\x9c\x22\xbb\x76\x89\xfe\x8b\x35\x76\x4e\xa3\x7e\xff\xc2\ +\x53\xf2\xa9\xfd\x39\xe7\x3e\x72\xfa\x71\x1a\xef\xe8\x13\x03\xcb\ +\xe2\xde\x09\x89\x26\x9c\xcf\x8f\x72\x07\xe2\x45\xf8\x3a\x5f\xab\ +\x82\x32\x05\x11\x93\x70\x7d\xda\x3e\x0a\xa1\xf9\x69\x34\xe2\x36\ +\xe1\x66\xa2\x3b\x16\xfc\x40\x59\xd4\xc1\x04\xd2\x17\xac\xe8\x5b\ +\xd5\xdb\x95\x7c\x85\xee\x58\x5d\x5d\xa3\x1b\x50\x2f\x75\xbc\xfc\ +\x11\xfa\x85\xe2\xfd\xc6\x3c\x15\x6f\x07\xc1\x3c\xad\x6b\x3c\xc1\ +\x9b\x31\x82\x73\x5e\x07\x06\x14\x78\x8b\xad\x6a\xf2\x51\x0a\xb7\ +\x4a\x09\x53\x35\xd6\xd5\x2a\x80\xe6\x3b\x1a\x78\xc3\x6c\x5e\x8d\ +\xbe\x5a\x8f\xa9\x57\x95\xaa\x22\xa7\xe8\x7b\xc3\xb7\xef\x4c\xdf\ +\x59\x2a\x4e\xe3\x79\x42\xc4\x9e\xd7\x9f\x3a\x66\x7e\x3c\xf1\x5a\ +\x5d\x6c\xf8\x1c\x15\xd5\x17\x18\x2e\xc2\x53\x7f\x40\xff\xe0\xe2\ +\x83\x18\x07\x77\x3d\x41\x04\x44\xe1\xe5\x32\x9d\x7e\x9b\x30\x1c\ +\x11\xd2\x1f\x28\x03\xc3\x40\xf5\x54\x12\x80\x79\xb4\x0b\x88\xda\ +\x1b\xc5\xed\xeb\xfd\x8d\xf6\xc3\x25\xaa\x70\x64\x3c\x82\xa3\x13\ +\xf4\xb1\x7a\x7d\x6d\x86\x2f\x7f\x34\xf5\x13\xc4\xfb\x6a\x5a\x06\ +\xd7\xa7\xed\xa1\x5a\x82\xef\x38\xf7\x6d\x49\xf4\x14\x7f\xd5\xbf\ +\xf6\xc0\x80\x02\x28\x3f\xb6\x47\x9b\xb8\xa9\x47\x29\x04\x6e\x18\ +\x6e\xb4\x6a\xa2\xd0\x32\xff\xac\xa3\x80\xd3\x1f\xbe\xd7\x77\xb2\ +\xe3\x34\xee\x17\x10\xe1\x1a\xc3\x98\x72\x1f\xbd\x44\x1c\xf0\xce\ +\xa1\x80\x33\xe7\x77\xaf\x5c\xe6\xa6\x4e\x8f\xe2\x5d\x49\xcd\x02\ +\x9e\x84\xdf\x53\x74\x6f\x64\x17\xe1\x11\xf4\x09\xf4\x1d\x3e\x78\ +\xf9\x00\xaf\x55\xb8\x3e\xb6\x8b\x02\x78\x1a\x42\xe7\xde\x26\x1c\ +\x04\x13\xe1\xdf\xfb\xfb\x4c\xf6\xdb\xe4\x07\xca\x68\x7f\xa9\x0d\ +\x40\xd4\xe6\x28\x6a\x4f\x7a\x74\x52\x7c\xe1\xa1\x7d\xab\x7b\x53\ +\xa9\xd3\xeb\xb5\x4d\x95\x1d\x30\x23\x72\xbe\xb7\x85\xbc\xfc\x91\ +\xc3\xfb\x69\xea\x33\xf4\x0f\x53\x93\xe8\xb2\xd8\x9e\x89\xb0\xfa\ +\x86\x31\x99\x89\x5d\xfc\x84\xec\xf9\xf4\x9f\x9c\xbe\xf3\x42\x26\ +\xa6\xf8\xa8\xf0\xdd\x86\xbc\x12\xdd\x84\x2b\x55\x7f\x8f\xe3\xaf\ +\x2c\x15\x4d\x98\x0c\x18\x66\xd4\xb0\x7a\x20\xac\xbe\xed\x81\xd3\ +\x1f\xda\x52\xef\xd5\x3d\xa8\xfb\xe2\x6c\x18\x45\xe5\x0d\x6f\xc9\ +\xa6\xef\x30\xdd\xe2\x77\x6e\xaf\x18\x58\xdf\x53\x7c\x7e\xca\x85\ +\x97\xba\x36\x8e\x28\x67\xcf\xe0\xfc\x7d\x41\xdd\xf6\xf1\xa1\xcc\ +\xaf\x66\x79\x11\x1e\xc4\x07\x76\x30\xa9\x11\x61\x3d\x5f\x0f\xdb\ +\xa5\xd0\xef\x0c\x05\x6e\xba\x70\xdd\xf1\x37\x76\xe2\x6d\xc2\x34\ +\x98\xc0\x11\x61\x29\x88\xd3\xfe\x52\x1b\x80\xb8\xdd\x40\xdc\xde\ +\x98\x16\xdf\xa1\x27\xa7\xc5\x7e\xe1\x28\xd7\xf7\x9e\xaf\xcb\x75\ +\x11\x95\xaf\x05\x4f\xc4\xe7\xdc\xdf\x93\x97\x3f\xf2\x3e\x72\x85\ +\xf5\x15\x45\x3f\xe7\x32\xb5\x07\x6a\x19\x8f\x3d\x94\xdb\x32\x22\ +\xe3\xdf\xde\x96\x19\xbe\xc3\x7c\x84\x92\xdc\x3d\x2a\x63\xe3\xad\ +\xb8\xd3\x0b\x0d\x13\x66\xac\x6a\x75\xbc\x7e\x4e\x70\xe3\x7a\xb1\ +\x4e\xf9\x99\xf7\x34\xf2\xf4\x87\x36\x56\x2e\x27\x9c\xc7\x3f\x3f\ +\x22\xf0\xee\xae\x32\xcf\x15\x22\x76\x52\x7f\xea\xa8\xf9\xf1\xe4\ +\xab\xeb\xfd\xab\xb0\x1a\x51\xed\xb4\xe0\x22\x7c\xf8\x93\xf0\x34\ +\xe5\xa2\x83\x17\x07\xb8\x29\x80\x98\x54\x69\xc0\x83\xaa\x02\x47\ +\xa2\xee\x44\xef\x89\x4a\x1f\x9d\xe8\x15\x1a\x6a\xeb\x46\x34\x0e\ +\x6f\x6d\xbe\x27\x9d\xbd\x98\x04\x13\x0a\xda\x00\xed\x41\x6d\x8d\ +\xa2\xf6\x9c\x16\x4c\x40\x2f\x58\xd5\xbf\xba\x3b\x95\x7a\x65\xbd\ +\x7e\x58\xd3\xce\xa8\x01\xf0\x33\x78\x22\xfe\x17\xbb\xd2\xb7\xce\ +\xe0\x42\x7c\xa5\x3e\x73\xd1\xe5\x4c\x6d\x51\x78\xb9\x49\xdc\xec\ +\xdd\x73\xcf\xcd\x7b\x37\x6f\xde\x9c\x37\x06\x94\xc9\x4d\x62\x8f\ +\x9f\x73\x5b\x75\xca\xcb\x04\x37\x62\x98\x00\x9a\xef\x78\xe0\xaf\ +\x55\x25\x93\xff\x24\x55\x63\x4f\x7f\xc0\xc5\xf8\xbd\x79\xe7\xfe\ +\xdd\x07\xda\x4e\xbd\x66\xb0\x7b\xc5\xb2\x78\xf2\x34\xed\x2c\xf3\ +\xa7\xaa\x1a\x43\x94\x3b\x0d\x26\xb6\xff\x1b\x9b\x3a\x7f\x5f\xaa\ +\x3a\xa0\x5f\x25\xd1\x01\x8b\x32\x0d\xec\x4a\xe2\xeb\x63\xdb\x54\ +\x08\xcd\x1f\x00\xdc\x74\xa1\x04\xfc\xac\x6f\xfd\x3f\x01\x50\xf1\ +\x8b\x34\xd5\x3e\x9f\x29\xa5\x6b\x55\x3f\x84\xeb\x08\xb3\xfc\xe9\ +\x64\x6a\xd3\x03\x82\xc9\x3b\x85\x48\xcc\x2f\xb4\xd9\xd1\x89\xf0\ +\xb6\x0f\x17\xc6\x6e\xae\xf0\x44\x3c\xc0\xfb\x8c\x79\xda\x5f\x2c\ +\xe3\x32\x5c\xb8\x0e\xb6\x89\x60\x99\xd7\xb7\x04\x63\x40\xf9\x81\ +\x10\xe3\x2a\xe9\x0e\x29\x21\x9b\xfe\x80\xe3\x0c\x00\x03\x86\x19\ +\x77\x4e\x00\x17\x66\x9d\x5c\xd7\x99\x72\xea\x5c\x7a\xc8\xe9\xc9\ +\xfa\xd1\x46\xcb\x4d\x08\xff\xcf\x57\x0d\x8f\xde\x51\xaa\x42\xd4\ +\xdb\x7b\x45\xff\xfa\xde\xe2\x49\x5d\x4e\x74\xb7\x67\x86\x11\xd5\ +\x20\xa7\xaf\xa3\x87\x11\xaa\xa1\x7e\x81\x7e\xc3\xc5\x07\x30\x1d\ +\xec\x61\xe2\xeb\x98\xda\xa5\xf0\xf2\x34\x60\x7f\x7b\x4e\xfa\x65\ +\x7a\x9a\xaa\xfb\xa6\x0b\xf8\xa2\x4a\xf6\xac\xb8\x21\xb3\x00\x82\ +\xc9\xa6\xdc\xf8\x85\x70\xad\x6a\x96\x6f\x6d\x36\xd9\x17\x83\x49\ +\x50\x3e\x71\xf1\xc0\x8a\x54\x22\x75\xaa\xee\x58\xc3\xfe\xb0\x9a\ +\x09\xba\x23\xb9\x09\xe5\x6c\x82\x57\xd3\xc3\x06\x4e\x55\x1d\x90\ +\xd2\x3e\x62\x19\x16\xc7\x3a\xcc\x07\x7d\x64\xc2\x65\x70\x3d\x48\ +\xb9\xda\x0a\xe3\x24\x75\x39\x6c\x68\xd1\x1d\xd5\x7b\xad\x69\xd7\ +\x51\xf4\xb1\x63\xec\x15\x42\x24\x4b\x25\x84\x1a\x8d\x1a\x11\xeb\ +\x00\x9a\x07\xf8\x67\x7c\xf9\x8e\xe0\x6e\x21\xba\x9d\x42\xcf\xeb\ +\x84\x88\x7d\x46\x6f\x7d\xdd\x7f\xad\x56\xc2\x13\xfe\xb6\x6d\x85\ +\xb1\xdf\x5c\xfd\xf4\x8f\x9b\x05\x1c\x27\x84\x7b\x62\x7f\xea\xa8\ +\x05\xf1\xe4\x99\x8d\x1c\xc4\x51\x36\x0c\x77\xdb\x18\x5e\x47\x8f\ +\x60\x19\x7d\x02\x07\x2c\xca\x34\xa8\x41\xe5\xbf\x92\x4b\xe2\x9f\ +\xe3\x60\xc7\x14\x05\xf0\xb4\x02\xe5\x0b\xf1\x75\xff\xf1\x50\x2d\ +\x98\x44\x69\x73\x0c\x26\x9f\x1b\x12\xf7\xd5\x78\xad\x8a\xe6\x4d\ +\x76\xe7\x76\x2e\xbe\x46\x6f\xf2\x40\xaa\xb0\xce\x71\x82\x97\x0b\ +\xb7\x05\x05\xdf\xdf\xf2\x70\x7a\x8c\xfe\x5c\x34\x05\xfb\x48\x85\ +\xfd\x35\xf5\x19\x44\x3f\xe7\x82\xf5\xc3\xa8\xf4\x59\xa3\x99\xe6\ +\x4a\x61\x8e\xab\xa4\xb3\x7f\x58\xc9\xc9\xbb\x4a\xe5\x86\xe3\x4a\ +\xd1\x7d\xfc\xc2\xd0\x67\x2b\x4c\x06\xc3\x9d\x04\xd0\x3c\x60\x5a\ +\xbe\x63\x80\xf3\xe8\xfb\x57\xf6\x9d\x2a\x5c\xf7\x23\xba\x27\xfd\ +\xa5\xea\x86\xa0\x0d\x95\x9b\xf0\x9d\x47\x3f\xb7\x43\xdc\x07\x23\ +\x58\x53\x76\x90\x57\x0f\x76\x1f\x7a\x68\x3c\xf9\x17\xda\x49\x3a\ +\xe2\x54\x57\xe9\x22\xfc\xed\x3f\x1d\xca\x98\x7e\x13\x9e\xa6\x20\ +\xd3\xa0\x05\xd1\x01\x1e\x16\x40\x40\x7c\x3d\x6c\x17\x05\xf0\x34\ +\x94\x66\x5e\x88\x8f\x32\x98\xc0\x93\xe1\xdb\x27\xe3\xbf\x08\x09\ +\x26\x08\x94\x41\x68\x27\x6e\x3b\x10\xda\x75\x5a\x20\x41\xbd\x6a\ +\xd9\xe0\xa1\x7d\x4e\xea\x34\x29\x54\x5b\x3c\x4c\x1b\xbc\xaf\xcb\ +\x73\xef\xfb\xc2\x88\x78\xa4\x54\x45\xfb\x6e\x52\x58\x9f\x31\xe5\ +\xa2\xcb\x99\xda\x03\xb5\x1d\xa1\x7f\x09\x65\x1f\x17\x3b\x45\x3e\ +\x66\x7c\x1e\xa1\x11\x38\x8e\x3b\xb0\x32\x3e\xb0\x4a\x67\xeb\x31\ +\x14\x5d\xb7\x2d\x0d\x5e\x8d\x52\x30\x39\xcd\x71\xe5\x97\x1a\xf5\ +\x6a\x15\x4a\x70\x74\x52\xcc\xdc\xb2\x93\xd9\xeb\x6d\xbd\xa2\x6f\ +\x43\x6f\xf1\xc4\x94\xe3\x3f\xaf\x54\xd5\x10\xa2\xda\x49\xc1\xc5\ +\x51\xe9\x3d\xf8\x87\xc9\xcc\x15\x21\x0f\x2f\x02\x50\xe6\x03\x94\ +\x0e\x5c\x1c\xc8\xd5\x02\x09\xcd\xd3\xb6\x28\xbc\x1c\x0a\xec\xf3\ +\x46\xbe\xfd\xa0\x51\x4c\xfd\x38\x99\xb8\xf6\x13\xc3\xa3\xb7\x84\ +\x04\x13\xc8\x73\x71\x5b\x43\x8a\xb6\xa6\x69\x59\xfa\x30\x5d\x2e\ +\x4a\xe4\x9e\xe1\xba\xc5\x97\xeb\x72\xdd\xc0\x46\xd4\x4b\x41\x79\ +\x3b\x1e\x18\x4f\xdf\xba\xe7\xe9\x7e\x71\xb0\x1e\x84\x7e\x42\xfb\ +\xce\x85\x9f\x71\xd1\x76\x50\x14\x5e\x6e\x29\xa1\x01\x05\xae\xa3\ +\x88\x58\xfc\x51\x7d\xac\xc2\x7f\x45\xb1\x21\xe8\x0d\xe9\xe9\x89\ +\x95\x8f\x50\x4c\x86\xa3\xb4\x95\x11\xa3\x02\x4e\x73\xa5\x0f\xe9\ +\x7d\x2d\x04\x13\x21\xd5\x3a\xdd\xc9\x86\x4e\x2e\x5e\xf0\x56\x54\ +\xf7\x6e\x7d\x74\xf2\xc7\x52\x55\xc0\xb1\xfa\x80\xf1\xf9\x4d\x38\ +\xd5\x05\x44\xd5\x78\x41\xf9\x9b\x1f\x1c\xcd\x5e\x56\xe1\xb9\x07\ +\x2a\x3e\x68\xe9\xc0\xc6\x49\xad\x92\xf8\xfa\xbc\x7d\x10\x42\xf3\ +\x46\x32\xab\x17\xac\x13\x2a\x7e\x56\xa3\xde\x7e\xd0\x08\xca\x3f\ +\xdd\x3b\x34\x6a\xfa\x71\x32\x00\xed\x80\xe2\x36\x03\x99\x6c\x3b\ +\x2d\x98\x40\xdd\x19\xcb\xe7\xaf\xec\x96\xa9\xd3\xf5\x5f\x0d\x75\ +\xbd\x31\x00\x37\xae\x5e\x9f\x83\xbe\xef\xf5\x9d\xdf\x7d\xfd\xe9\ +\x1f\xce\x42\x78\x9f\x41\xd0\x4f\x4c\xb1\xcf\x61\x29\xe6\xb9\x60\ +\x7d\x0a\x96\x79\x7d\xcb\x09\x0d\x28\x70\x1d\xc5\x73\x52\x3b\x95\ +\x88\x35\xe5\xb4\x97\x1e\x4c\xc9\x84\xf2\x07\x4a\x45\x13\x61\xc6\ +\x6b\x3b\xa3\xce\x06\xb8\x20\x9b\x59\xdf\x7d\x8e\x9f\x92\x17\x34\ +\x23\x98\x00\x45\xe1\x6d\xfb\xf3\x44\xfa\x66\x7d\x74\x02\xc0\xf7\ +\x05\xdf\x09\xa7\xba\x56\xc4\x93\x2f\x77\x85\x18\x84\x72\xbb\x13\ +\xbc\x41\x78\xd2\xfd\x35\xdc\xf2\x1c\x72\xab\xaa\x49\x7c\xd0\xe2\ +\x80\xa6\x2a\x4f\x6a\x4c\xb8\x8e\xa9\x5d\x10\x42\xf3\x46\xe0\x8f\ +\x08\xe5\x4f\xbc\x48\xa8\x02\xbc\x68\xb3\x6e\x1a\xee\x34\x1a\xb8\ +\x4e\xb5\xa7\x28\xae\x9d\xc1\xef\xc0\xa3\xbd\x50\xd4\x96\x68\x5f\ +\xb4\xf5\x01\x36\x1f\x48\xe6\x97\x3b\x6e\xf1\x85\x3a\x5f\x17\x60\ +\x1b\xba\x91\xb3\x25\xef\x79\xdb\x7f\x37\x94\x69\xc6\x0f\x67\x99\ +\xda\x02\xb5\x13\xd3\xb6\x27\x34\xa0\x00\xd9\xf8\x93\x3b\x1d\x67\ +\xa2\x29\xa7\xbd\x1c\x47\xf5\xa4\x5c\x55\xed\x2f\xb4\x76\x34\x68\ +\xdd\x40\x30\x89\x39\xdd\x6f\xf1\x95\xfb\x59\x1d\x58\xfb\x75\x07\ +\x1b\x3e\x2f\x78\xbe\x1c\xde\xab\x27\xe1\x2f\xef\x99\xfe\x57\xd6\ +\x39\xbd\xa2\xff\x19\x4d\x38\xd5\x15\x15\x70\x2e\x1b\xdf\x20\x5c\ +\x3a\xfd\x00\x98\x52\x90\x69\xd0\x9a\x06\xf7\x01\x93\x5a\x49\x74\ +\x3d\x6c\x0f\xdb\x06\x51\x78\xd9\xc8\xbe\xb5\x83\xc7\xaa\x58\x74\ +\x6f\x3f\xe0\x5f\x1a\xb5\x23\xe1\x75\xaa\x1f\x0f\xa5\xa3\x08\x26\ +\x28\x53\x20\x09\xf2\x17\xac\x11\xcb\xfa\x9c\xc2\xcb\xa4\x52\x8b\ +\x75\x79\xd6\xc0\x86\x80\x2d\xea\xb5\x07\x1c\x9d\xec\x53\xce\xdd\ +\xe4\x21\x46\x84\xf7\x1b\xc4\xfb\x8e\x82\xfe\xd1\xd4\x24\x6c\x03\ +\xa0\x79\x84\x97\xdb\x02\x93\x13\x97\x37\xf4\xab\x0f\x8b\xd1\x9c\ +\x17\xbf\xbf\x59\xa7\xbd\x62\x8e\x5a\xfc\xa5\x15\x22\xec\xf7\x35\ +\xd0\x1f\xa2\x1e\x23\x2d\x05\x7e\x3c\x49\x8a\xd4\xfb\x21\x98\x68\ +\xcb\x37\xf4\x02\x3c\xa2\x77\x30\xdc\x26\xfc\xa7\x5f\xec\x4c\xff\ +\x76\x64\xaa\x2a\xb0\x2b\x9c\xea\x3a\xb1\x3f\xf5\xcc\xf9\xf1\xe4\ +\x5f\xea\x9a\x86\xd9\x39\xaa\x91\x10\x3c\xbc\x18\xfe\x06\x61\x9a\ +\x52\xd1\x41\x4b\x07\x36\xca\x14\x48\x40\x74\x3d\x10\x6f\x17\xe0\ +\x69\x45\xf0\x87\xb3\xa4\xf0\x8f\x2e\x55\xcd\x9a\xb0\x2f\xac\x69\ +\x43\x6a\x84\xbe\x39\xb8\x86\x97\x6c\x82\xb8\xcd\xb8\x4d\xc3\x02\ +\x49\xb9\xbc\x40\xf5\x2f\x77\x54\x32\x92\xa3\x13\xd8\x80\x7a\x00\ +\x7f\x9b\xf0\xfc\x4d\x97\x0f\x65\x6e\x60\x0f\x31\xd2\x94\xf6\x9b\ +\x96\xb1\x7f\x20\x2c\x9b\xea\xe9\x7a\x28\x04\xf3\xb4\xae\xad\xa8\ +\xf8\x57\xd1\xcd\x7a\xc3\x55\x2c\xbd\x59\xb8\xb9\x6b\x4a\x55\x0d\ +\xc5\x15\xee\xfc\x25\xb2\xef\x19\x3a\x5b\x2d\x70\xd0\xcf\x1a\x36\ +\xf1\x35\x12\xb8\x10\x7b\xc3\x9a\xc1\x93\xe3\xf1\x79\x17\x09\x15\ +\xff\xa8\x76\x91\xa6\x04\x13\x20\xaf\xfc\x47\xef\x1b\x1b\xfb\xf9\ +\x2f\xd9\x6d\xc2\xcd\x3a\xd5\x15\xd5\x0e\xc3\x87\x17\xab\x5c\x84\ +\x47\xd1\xc1\x8a\x79\x3a\x98\x41\x74\x62\x43\xd1\xe5\x68\x1b\x20\ +\x0a\x96\x79\xbd\x11\xd8\xff\xf1\x58\xdf\x89\x51\xfd\x70\x96\xa9\ +\x81\x9a\x36\xa4\x46\xe8\x4d\x0f\x15\x5e\xf6\x48\x85\xb6\x42\x71\ +\x5b\x72\x5b\x63\x20\x29\xd7\x7f\x61\xb9\xe8\xe9\x71\xf2\xcf\x76\ +\x84\x3a\x52\x97\x67\x0d\x6c\x0c\xd8\xa7\x5e\x23\x17\x85\xb3\xf3\ +\xa9\x82\x7b\x3b\xf1\x37\x0a\xef\x3f\xa8\x9a\x0d\xb0\x6c\x92\xa9\ +\xbd\xb6\xa7\x52\x40\x09\x3a\xf0\xb1\xcd\x62\x5b\xde\x8f\xdf\xd0\ +\x8c\x87\x1c\x1d\xa9\x16\xf4\x4b\xff\x98\x77\x08\x51\xe9\x5a\x4a\ +\x25\xa8\xcf\xd4\x3d\x48\x1b\x05\x9c\xe2\x4a\x6f\xe8\x3e\x47\x38\ +\xc5\x9f\x08\xcf\x7b\x99\x6c\xe0\x43\x8b\x1c\x72\xaa\x6b\x8b\x1e\ +\xb9\xe5\x71\xd6\x69\xa7\xba\xe0\x76\xd5\x1d\xf9\xd8\x35\x35\x3c\ +\xbc\xc8\x07\x2a\x1d\xcc\xa8\x69\x13\x99\x41\x74\x7d\xda\x36\xd5\ +\x8c\xc0\x0b\xf1\x7a\xcd\x86\xbd\x9b\x2d\xaa\x01\x10\xfc\x65\x5e\ +\xfd\x65\x8f\x61\xa2\xb6\xe3\x76\x45\xbb\x1b\xed\xbf\x32\x39\xb8\ +\xda\x71\x52\xaf\xd0\x8d\xd4\xd5\x15\x58\x19\xbe\xbc\x1e\xc0\x06\ +\x39\xe5\x3d\x71\xc5\xf0\xa8\xe9\x21\x46\x93\x68\xbf\xb1\xef\x98\ +\x62\xde\x24\xda\x86\x89\xb0\xfa\xb6\xa0\xda\x44\xa6\xee\x81\x0e\ +\xa8\xee\xcd\x42\xc4\xae\x2d\xd5\x35\x94\x98\xab\x16\x1c\x7b\x88\ +\x80\xa3\x94\x6a\x94\x27\x43\x03\x51\x8d\xa5\xc8\xb9\x7e\xf5\x82\ +\xc3\x1d\x31\x78\xbe\x2a\xba\xe7\x4b\x25\x96\xe9\x2d\x6d\xda\xb6\ +\x6a\x4f\xe4\xa7\xba\x02\x8e\xd5\x66\x6f\xc6\xa9\xae\xa8\x80\xeb\ +\x26\xa3\x45\x75\x1b\xdc\xae\x5a\xc3\xc3\x8b\x54\x74\xe0\xe2\xc0\ +\xae\x16\x48\x30\x05\x99\xda\x04\x21\x34\x1f\x4a\xd4\x17\xe2\x1b\ +\x4d\x8d\xef\xe7\x02\xd0\x1e\x68\x2f\x14\xb7\x2b\x0f\x24\xb8\x0f\ +\x30\xf5\xde\xad\xe7\xa6\x5e\x3f\x77\x98\xe3\x79\x2f\xd2\xe5\xba\ +\xa9\xd7\xa9\xf1\x15\x2b\x86\xdf\x3a\x41\xb0\xef\xd8\x7f\x4c\xb1\ +\xcf\x61\x79\x2c\x53\xd1\xb6\x50\x1d\x41\x4d\x7f\x19\xef\x7a\xe2\ +\xa9\x6d\x2a\x3f\xf1\xdb\x52\xb1\xa1\xc4\xa4\xbb\x6c\x59\xbc\xef\ +\xf9\xa7\x0b\x91\xd2\x45\xf0\x83\x30\x21\xbc\xae\xd2\x67\x2d\x03\ +\x8e\x4a\x6e\x58\xdf\xf3\x96\x98\x2c\xfe\x58\xa8\xe2\x9b\xf4\x16\ +\xb9\xa5\x8f\x9a\x06\x3b\xd5\x55\xb6\x4d\x33\x4e\x75\x45\x35\x22\ +\xe8\x75\x93\x88\x1e\x5e\xac\x26\x5c\x07\xdb\xc3\xb6\x41\x14\x5e\ +\x0e\x25\xca\x0b\xf1\x35\x7f\xe9\x2c\x99\xc1\xfb\xb9\xa8\x8d\x50\ +\xdc\x96\x34\x78\x98\x3e\xc3\xbc\xff\xd2\x55\x8b\x56\xc7\x9d\xd4\ +\x69\xda\x46\x75\x8d\x5d\xd8\x20\xdc\xc8\xd9\xa2\xd7\xaf\xf4\x8a\ +\x95\x30\x51\x3b\x50\x5b\x60\x9e\x7f\x4e\xd7\x05\x68\x1e\xe1\xe5\ +\x76\xa1\xbc\x5d\xb5\x38\xb4\xfa\xba\x10\xd9\x62\xaa\xeb\x6e\x25\ +\xdd\x5b\x4b\x75\x0d\x43\x7b\x4f\xaa\x5b\x88\xa3\xdf\xb4\x7c\xa0\ +\xda\x5f\x26\x38\x21\x02\x98\xc7\x72\xdb\x00\x7f\x8d\xfe\xe6\xd0\ +\xfe\xd3\x1c\x67\xde\xe5\xd2\x73\x2e\x94\xd2\x3f\x46\x6f\x65\xd3\ +\x4e\x71\x21\x45\x7d\xb8\xbe\x3d\x9f\xbd\xac\xd1\xa7\xba\xc2\x3c\ +\x3e\xaa\x1d\x53\xe3\x75\x13\x3e\x40\xa1\x8c\x03\xda\x24\x9c\xe8\ +\xa6\x4d\x6a\x4c\xb4\x3d\x10\xc0\xd3\xaa\x44\x7d\x21\x9e\xda\x35\ +\x6a\xe7\x87\x77\xa2\x3d\x91\x1b\xff\x51\x0d\xef\xe7\x42\xfb\x50\ +\x7b\x51\x1b\xa2\x8d\xd1\xb6\xd4\xde\xb4\x1e\x14\x2c\xdf\xe3\x4e\ +\xac\x91\x4e\x51\xff\x5d\x59\x1f\x65\x47\xaf\x83\x82\xf0\x76\x6c\ +\x29\x8c\xdd\x5a\xfa\x03\x06\xfb\x8d\x60\x1d\x0a\xfb\x4c\x35\xad\ +\x6f\xa5\xd4\x24\xda\x0e\x82\x79\x5a\xd7\x8e\x04\xdb\x17\x36\xb1\ +\x4d\xdb\xf8\x7b\xb4\x46\x36\x8f\x3c\xec\xe5\xf3\x3f\x6a\xc6\xb5\ +\x94\x98\x23\x96\x2f\x4a\x14\xff\xe2\x13\x8b\x04\x3c\x39\x0f\xa0\ +\x5f\x84\x09\x09\xab\x47\x4c\x75\x0d\x01\x2e\xba\xde\xb8\x6a\xe1\ +\xb1\xa3\x6b\x07\x2f\x50\x71\x75\x35\x5c\x2b\xd1\xdf\xee\x6a\xc3\ +\x36\x6d\x1b\x10\x4f\xc8\xa7\xf6\xfa\xb1\x6b\x3f\x39\x24\xee\x18\ +\x21\xb6\x89\xfa\x54\x17\x38\x0d\x6f\x24\xca\xce\xce\xe0\xba\x09\ +\xc8\x34\x60\x41\x38\xb8\x51\x7c\x42\xa3\xc2\x75\xb0\x4d\x0a\x2f\ +\x57\xa5\xd1\x17\xe2\x67\xbc\x41\x15\x98\x7a\x0a\x7e\xea\x9d\x68\ +\x35\xbc\x52\x05\x44\x6d\x8c\x02\x1b\x52\xfb\xd2\x20\xc2\xeb\x21\ +\x0d\xd6\xf9\xf1\x5a\xb1\x22\xee\x14\x4e\xd5\x87\xa3\x75\xff\xf4\ +\x31\xdf\xe0\x99\xa2\xd7\xcf\x4d\xf8\xee\xa3\xff\xa9\x83\x6a\xa9\ +\x0a\xc1\x7e\x03\x98\x87\xed\xc7\x94\xda\xa0\xdc\xb7\x52\x6a\x12\ +\xb6\x41\xd5\x71\x54\xfb\x4b\x19\x3b\xa5\x3e\x03\x47\x29\x6e\xcf\ +\xed\x4a\xc4\xae\x2b\xd5\x35\x0c\xfd\xa5\x32\xe1\x38\x87\x3d\xbb\ +\xb7\xef\x75\x67\x56\x3f\xf5\x45\x05\xf0\x3c\x42\xf3\x0d\x03\x03\ +\xc9\xfe\x35\xf3\x2f\x10\x6e\xee\x37\xc1\xe9\x2d\x3d\x71\xeb\x6f\ +\x6f\xca\xf7\x73\x20\x98\xec\xf6\xe4\xcf\x3e\x3c\x94\xfe\xa5\xfe\ +\x0b\x8b\x12\xf9\xa9\x2e\x53\x07\xa3\x1a\x15\x35\x5c\x37\x31\x89\ +\x0e\x58\x1c\xd8\x28\x3e\xa9\x81\x70\x39\xba\x9e\xa9\x5d\x10\x42\ +\xf3\x15\x69\xe4\x85\xf8\x9a\x37\xa2\x06\xca\x0f\x2e\x0e\x65\x6a\ +\x79\x0a\x9e\xda\x0a\x45\x6d\x0a\x32\xd9\x1a\xeb\x21\xa5\xeb\xf9\ +\x03\x7e\xff\x1a\x51\x4c\xbe\x52\xe7\xeb\xa6\xde\x41\x07\x47\x27\ +\x5b\x0b\x99\xdf\x95\x82\x2a\xb5\x01\x40\xed\x80\x82\x7e\x60\x7a\ +\x40\xdf\x4a\x29\x0a\x97\xa5\xeb\x51\xb0\xcc\xeb\xdb\x15\x55\xd3\ +\x29\x2f\xf8\x07\x7e\x1c\xe5\x81\x2d\xbb\x1f\x2b\xfa\xb9\x5f\x36\ +\xe3\x28\x45\x3b\x42\xaa\x57\xc8\x17\x9d\xbb\xb2\xef\x3d\x1f\x5e\ +\x54\x1e\x80\xe0\x1f\x26\x41\x3f\x50\xb4\x1e\xa0\x79\x80\xe6\x23\ +\xe3\x96\x55\x62\xd9\x8d\x6b\xba\xfe\x61\xff\xba\x79\x37\xeb\x40\ +\x72\x87\x14\x85\xb7\xea\xea\x01\xfd\x6d\xb5\xd8\xb8\x21\xe8\x89\ +\x61\xef\x5e\x4f\x5e\xfd\xd1\xa1\xd1\x2b\xb6\x14\x83\xfd\x88\xb6\ +\x90\xcd\xb8\xab\x2b\xaa\x51\xa0\xdb\xc9\x65\x85\x7f\xe7\x2c\xaf\ +\x9b\xd0\xc1\x8b\x79\xd3\xe4\x86\xa2\xeb\x62\x9b\x54\x14\x5e\x0e\ +\xa5\xd1\x17\xe2\xa3\x72\xea\x59\x3c\xb8\x88\x42\x9b\x99\x6c\x8a\ +\xc2\xc0\x82\xe2\x9f\xfb\xdf\xd7\xe3\x3e\xee\x15\xd7\x39\x8e\x5a\ +\xad\xcb\x75\x01\x1b\x55\x0f\x7a\xfd\x6a\x47\x27\xb4\xdf\x5c\x41\ +\x7f\x4a\x29\xcd\xd3\x65\xa8\x00\xda\x2e\xa8\xe3\xa8\x75\xb2\x0b\ +\x3a\x78\x81\x10\xf9\x8c\xcc\xfe\x41\xc9\xdc\x0f\xa6\xaa\x1b\x8b\ +\x94\xaa\xaf\x2f\x26\x5e\xf1\xfc\xde\xde\x7f\xf8\xc8\x62\xb1\x0c\ +\xaa\x0c\xe2\x41\x84\xcb\x44\x58\xfd\x8c\x80\x49\xe2\xe6\x65\x83\ +\x27\xdf\xb0\x6e\xfe\x05\x85\x78\x9f\x2e\xc6\xbe\x2c\xfd\xe0\x27\ +\x72\xe1\x88\xa4\x65\x81\x04\x50\xbe\xcc\x8e\x15\xd5\xef\x2e\xdf\ +\x31\x7a\xe5\x13\x30\x74\x89\x3d\x9a\xf5\x00\x63\x54\x0d\xe7\x7d\ +\x7f\xd3\xef\x33\x35\x3f\x6f\x82\xe2\x03\x16\x07\xb6\x69\x22\x03\ +\xd1\x65\x20\x8f\x6d\xd0\x36\x01\x9e\xd6\x44\x27\x5c\x88\x0f\x6e\ +\x78\x50\xfe\xbd\x75\x3c\xb8\x08\xa2\x36\xa5\xc1\x83\x8a\x2e\x03\ +\x82\xf5\x82\x36\x97\xad\x5a\xb8\x56\xc6\x92\xa7\xeb\x42\xdd\xee\ +\x53\x6f\x03\x35\x1c\x9d\x20\xf8\x39\x08\x6d\x40\x6d\x41\xeb\x4c\ +\xc2\x75\x4d\x84\xd5\xb7\x25\x95\x9c\x9b\x77\x44\x6d\xd6\xfa\xd2\ +\x13\x62\x5b\xce\x4b\xfe\x5c\xff\xf5\xfb\x70\xa9\xbe\xd1\xc4\xbb\ +\x84\x7c\xe1\x29\xbd\x7d\x5f\xb9\x7c\x55\xff\x5f\xff\xf3\xd4\xab\ +\xd4\x61\xbb\x51\xe0\x37\x33\x11\x42\xf3\x35\x73\xd3\x61\x62\xe1\ +\x6f\xd6\xf6\xbe\xee\x86\x35\x0b\xbe\xb2\x7f\xcd\xc0\xef\xbd\xae\ +\xe2\x6f\xa4\x5f\x38\x57\xbb\xc5\x72\xdd\xa2\xab\x35\xab\x76\xa3\ +\x04\x82\x49\xc6\x53\x37\x5c\x32\x9c\xf9\xde\x2f\xbd\x69\x77\x74\ +\x01\x4d\xb9\xab\x2b\x2a\x4a\x3f\x96\xf5\xcb\x59\xbe\xf4\x11\x84\ +\x83\x1a\x64\x9a\xcc\xa8\xe8\x7a\xf8\x3d\xd8\x36\xc0\xd3\x9a\x68\ +\xe4\x85\xf8\xa8\xc0\x67\x4d\x6e\xcf\x8e\x5d\x34\xcb\x07\x17\x41\ +\xd4\x96\xd5\x6c\x8d\xa2\xeb\x2b\xc7\xcd\x2f\x15\x8e\x77\xbc\xce\ +\xcf\x1a\xba\xd1\xb3\x45\xb7\x31\x93\xa3\x13\x9a\x47\xd1\xbe\xf1\ +\x7e\x82\x68\x3b\x26\x01\x98\x76\x0c\xd5\x7c\xb3\x3c\x09\x69\x95\ +\x27\xf1\x4f\xe8\xc3\xd2\xe7\xae\xea\x7e\x5d\xca\x8d\x7d\x4d\x0a\ +\xd5\x0d\x0b\x34\x03\xed\xf4\xfa\x88\x5c\x0c\x8f\x29\x79\xd9\x5d\ +\x4f\xa4\xaf\xf8\x9c\x10\x4f\xe9\xea\x42\x49\xf4\x2f\x20\x74\xe6\ +\x4a\x3b\xaf\x26\x6e\x5a\x2d\x06\x3c\xb7\xff\x44\xe1\xc7\x4f\xd7\ +\xcd\xbe\xc8\x91\xde\x33\x95\x92\x41\x20\x93\x3a\x78\xe8\x86\x1a\ +\x31\xbe\x67\x0d\x0f\x26\xda\x10\xb0\x7d\xe5\xfd\x08\xa7\xba\x4e\ +\x1b\x4c\xbc\x72\x51\x2c\xf9\x56\x5d\xdb\x90\x6d\x07\xe3\x46\xd1\ +\x30\x9c\xcb\xdf\xed\x89\xab\xff\x75\x5b\xe8\xa9\x2e\x2a\xdc\xd7\ +\xb8\xdf\x21\xa5\xbe\x60\xf2\x11\x14\x7c\x8e\xaa\xc5\x67\x68\xbe\ +\x22\x70\x4d\x6d\x74\x5d\xdf\x19\x3a\x7b\xbe\x5e\xab\x61\x0f\x31\ +\xd6\x0b\x1c\x05\xde\x97\xce\x7e\xe7\x33\x23\xe2\xe1\x90\xdb\x83\ +\xa9\xd0\x46\x28\x6a\x3f\xb4\x27\xb7\x31\x8a\x2e\x0b\xc2\x36\xd4\ +\x15\xcb\xc5\x92\xde\x44\xea\xbd\xd2\x89\x7f\x40\x97\x67\x0d\x6c\ +\x60\xbd\xfe\x07\xb7\x4b\x3f\x9c\x1b\xff\xfe\xfb\x86\xc4\x7d\xba\ +\x08\x4d\x22\x61\xfd\x87\x14\xfb\x88\xbe\x16\x36\x37\x81\x68\xff\ +\xb1\x4d\xfc\x1e\x9e\x76\x0c\xd5\xec\x5e\x9e\x88\x4a\x0a\x02\xca\ +\x0a\xad\xff\x5a\x24\x56\x2c\xea\x49\xbe\xd7\x75\x12\xff\x0f\x16\ +\x68\x26\x10\x58\xf4\x96\x8c\x7b\xd2\xd9\x9c\xf7\xd4\xef\x47\xb3\ +\xe9\x1b\x6f\x7b\x4a\xfc\xe9\x7c\x21\x60\x2c\xd0\x1d\x86\x3b\x1b\ +\x76\x0c\x17\xa2\xae\x17\xa2\x3b\xb5\x40\xac\x2c\x0e\x8a\xf5\xc2\ +\xef\x3a\x52\xa8\xae\xf5\xc2\xf1\x8f\x54\xd2\x5b\xed\xf8\x6a\x91\ +\xd2\xb1\x43\xaf\xe1\xb4\x63\x00\xa1\xc0\x35\x93\xfd\x7a\x02\xfe\ +\xd1\x50\xfa\xe7\xa6\x60\x02\xff\x7c\x79\x51\xd7\x31\x47\xf4\xc4\ +\xfe\x5f\xcc\x09\x4e\x21\xb6\x2d\xda\xce\xb9\x31\xa5\x6e\xfd\xde\ +\xb6\xb1\x6f\xc3\x5f\xcc\x4f\x57\x4f\x4b\xe9\x60\x44\xe1\x40\x05\ +\xa1\x2f\x54\x12\x2e\x87\xeb\x62\x9b\x5c\x08\xcd\x57\xe5\xa6\xd5\ +\x0b\x0e\xf7\x1d\x75\x9e\x9e\x57\xe0\xe6\x8c\xc8\x80\x8d\x88\xca\ +\x11\xe1\x28\xf0\xf1\xfc\xf8\x0f\x3e\x3e\x24\xee\xac\xf2\x82\x4d\ +\xb4\x0d\xb5\x35\xa6\xd4\x96\x26\xd1\x65\x50\xd8\x0e\xb4\xa9\xae\ +\x5f\x37\xff\xf8\x98\xf2\xbe\xa8\xab\xea\xba\xae\x07\x8d\xd5\x63\ +\x1b\xbd\x7e\x2e\xed\x8b\x9b\xde\xbd\x25\x73\x3e\x3b\xdd\x85\x79\ +\xdc\x6e\x14\xf6\x07\xfb\x4a\x03\x09\x4f\x71\xb9\x03\xfa\x4f\x04\ +\x60\xda\x51\x54\xb3\x3b\x9d\x8c\x50\x41\x50\x39\x46\x08\xf7\x63\ +\xab\xe7\x1d\x3f\xcf\x15\x9f\x76\x54\xcb\x7e\x96\x53\xe9\xe0\xa2\ +\x0d\xaf\x8f\x19\x60\xca\x87\xb1\x21\x9d\x9d\xca\x77\xb6\xe9\x2d\ +\x0d\x76\x88\xde\xe0\x20\x85\x85\x20\x05\x74\x54\x88\xeb\xfd\xb8\ +\x4c\x4a\x3f\xb8\xf0\x07\x9d\xd2\x1f\xea\x26\x4a\x2d\x4d\x55\xc1\ +\xdf\xef\x90\x76\x04\xf0\x4a\x95\x27\x73\xe2\xc7\x9f\xdc\x9d\xbe\ +\x1e\x2e\xc0\x6b\x8f\x7d\xba\x1f\x53\x12\x1f\x9d\xdf\xbd\xe2\xf8\ +\xbe\xc4\x5f\xf7\xba\xde\x8b\xa1\xdc\xce\xe4\x7c\xff\xfe\x9b\xc6\ +\xb2\x5f\xfb\xe2\x81\xa7\xba\x68\x8a\x83\x91\x0f\x6c\x1c\xb4\x26\ +\x99\x06\x36\x08\xdb\xc0\x36\x51\x00\x4f\x6b\x02\xae\xb1\xa5\x57\ +\x76\xbf\x45\xb9\xee\x37\xf4\x1e\x80\x71\xd3\x76\xc0\xed\xc1\xbb\ +\x8a\xea\x8a\x0f\x6e\xcb\x5c\x55\xe5\x86\x07\xb4\x0b\xb5\x13\xda\ +\x8e\xda\x12\xed\xcc\x45\x97\xc1\x75\xb1\x4d\xf5\x7d\x3d\x9f\xac\ +\x5c\xd9\xf3\x46\xe1\x3a\x17\x69\x5b\xb5\x74\xdc\xcd\xe2\xe8\x04\ +\x05\xfd\xa3\x01\x84\x07\x13\xec\x3f\x0a\xfb\x8f\x29\xc0\xd3\x8e\ +\xa2\x96\xa7\xb5\xe9\xce\x2d\x4f\x50\x3a\x72\xcb\xc5\xfb\x27\x47\ +\x56\xf7\xb8\xfb\x62\x8e\x73\x82\x9e\x86\x67\xfb\xfe\xad\x7a\x08\ +\x4e\x3b\x69\xf4\x60\x0d\x14\xd7\xff\xcc\xd3\xb1\x64\x35\xd1\x1a\ +\x83\x56\x39\x12\xae\xc5\x48\xdd\xff\xb2\xa6\xda\x80\x81\x3f\x15\ +\x4a\x5a\xea\xd4\x33\xa1\x20\xfc\x47\x1f\x2d\x8c\x9d\xff\xd9\xe1\ +\xdc\xef\x1f\xd7\xae\xa9\xff\x87\xc9\xab\xbc\xaf\x60\x99\xb3\x7a\ +\x45\xf7\x0b\x07\x9c\x93\xe7\xbb\xce\xeb\xda\xbd\x6f\xc1\xcf\xca\ +\xe6\x9d\x2b\x3f\xfb\x64\xee\xc1\xd2\xdb\x2b\xf9\xe0\x82\x32\x0a\ +\x06\x23\x17\x1d\xb4\x54\x38\xa0\x71\x19\xbe\x1e\x6d\x17\x04\xf0\ +\xb4\x66\xde\xb8\x76\xf0\x79\xd2\x71\x3e\xa1\xff\x82\xa9\xfb\x54\ +\x17\x7c\x79\xd4\x3b\x4d\x1f\xd1\xa6\xf7\x15\xc5\x0d\x1f\x1d\xce\ +\xfc\x6c\x7b\xf0\x87\x59\x00\xef\x27\x94\x51\xd4\x56\xd4\xae\x28\ +\x9c\x34\xa9\xe8\xe7\x74\x5d\x48\xcb\x6d\xbf\x73\xad\x58\xed\x3a\ +\xf2\x2d\x52\xc6\x8e\xd5\xe5\x96\xa1\x37\x26\x97\xf5\x9d\x7b\x3e\ +\xb4\x3d\x7f\x75\xb6\x54\x57\xa2\xbc\xad\x4c\xb4\x3f\xd8\x5f\xda\ +\xf7\x30\x1b\xd0\x36\x10\xcc\xd3\xba\x8e\x02\x26\x9e\x99\x40\x8d\ +\xa0\x7e\x2a\xc4\xe4\xcd\x3b\xb2\xbf\x9e\xf0\x8a\x9f\xd2\x15\x61\ +\xef\xb8\x69\x2a\x7a\x3b\x30\x1c\x54\xfc\x2f\x58\xae\xc3\x81\x0b\ +\xa9\x93\xca\xbf\xfb\xae\x74\xf6\x7f\x3e\xbb\x43\xfc\xf1\x89\xa9\ +\x6a\x0c\x22\xb4\x7f\xea\x84\xee\xae\xd5\x0b\x9c\xe4\xcb\xa1\xef\ +\xa5\xba\x48\x01\x87\x88\x02\x98\xe4\xf0\x79\x93\x2a\x3f\x96\x85\ +\x03\x93\x8a\x0e\x5c\x2e\x3e\xb0\x51\xb0\x1e\x6d\x97\xc2\xcb\x35\ +\xd3\x88\x0b\xf1\x51\xee\xb8\xd2\xed\xc1\xb7\xc2\xad\xd8\x35\xdc\ +\x1e\x4c\x6d\xcc\x05\x36\xa4\x93\x27\xb7\x33\x2f\xc3\x3a\xb4\xed\ +\x40\xf1\xe2\xc0\xa1\xd2\x4f\x9d\xa2\xf3\xb3\x06\x1b\xab\x87\x19\ +\x3e\x77\x82\x36\x80\x3c\xf6\x0d\x53\x9e\x07\xf1\xf5\xa9\xe6\x04\ +\x33\x09\x28\xd8\xe9\xb2\x11\xc0\xe8\x17\xe9\x88\xbe\x39\x3f\xbe\ +\x31\xef\x14\x3e\xad\x2b\xdb\x22\xa8\x1c\x0c\xc0\xc5\xf7\xac\xa7\ +\x6e\xb8\x2d\x9b\xfd\xea\x97\xf6\x88\x2d\xc3\xe6\x40\x02\xa8\x7f\ +\x9f\x2f\x96\xad\xef\xf6\x5e\x96\x88\xe0\xde\xfe\x30\xa2\x98\xec\ +\x20\x40\xce\xe0\x3d\x5d\x54\x74\xf0\x42\xca\x45\x27\x35\xba\x2c\ +\x95\xa9\x5d\x84\xe6\xab\x02\x17\xe2\x1b\xf1\x44\x3c\x6c\x64\x14\ +\x04\x7f\x88\x54\xfe\xfd\x7d\xec\x3f\x88\xda\x06\x6d\x85\xb6\xa4\ +\xa2\x36\x36\x05\x16\x10\xae\x4f\xdb\x54\x97\x09\xd1\x15\x17\x85\ +\xf5\xd2\x51\x6b\x74\x79\xd6\x98\x9c\x7f\x26\xe8\x8d\xa9\xe5\xce\ +\x2e\x2e\xda\x27\xec\xa3\xa9\xbf\x54\xb8\x2e\x05\xcb\xbc\xbe\xa3\ +\xa8\x25\xa0\xd0\x0e\xa2\x21\xca\x82\x8b\x78\x5f\xdb\x25\xf6\xed\ +\x18\x9b\xbc\xb2\xe0\xe5\xbf\xa7\xeb\x2c\x0d\x06\x2e\xbe\xef\xf3\ +\xc5\x4f\x2f\x1d\x1a\xfb\xdf\xaf\x3f\x25\x9e\x24\xaf\x53\x39\x60\ +\x3c\xbd\x52\x88\xe4\x11\x89\xe4\x51\xbd\x4e\xf2\xc5\x7a\x87\xd5\ +\x33\xde\x02\x60\xa7\x37\x0a\xf8\x5d\xf8\x3f\x67\xc6\xae\x9c\xc1\ +\xf3\x26\x7c\xa0\xe2\x40\x46\xf1\x89\x0d\x97\xa1\xeb\xf0\x36\x41\ +\x14\x5e\xae\x4a\xa3\x9e\x88\xaf\x7b\xe7\x95\x30\xfc\xfe\x3e\x85\ +\xdb\x02\x44\xed\x85\x42\xfb\xa2\x6d\xb1\x5c\x2d\x90\x80\xa6\xb5\ +\x3f\x6f\xad\x58\xe6\xc5\x8a\x27\xe8\x42\x54\x5d\x9c\x15\x45\xe5\ +\xed\xdc\x59\xc8\xdc\x55\xc7\xd1\x09\xc8\xd4\x5f\x10\xae\x43\xdb\ +\xa0\x9a\x13\xcc\xf4\x94\x17\x42\x0d\xe1\x3f\xae\xf5\xe9\x5d\x62\ +\x78\xa7\xc8\x7d\xaf\xe0\xe4\xbe\x0f\x0b\x58\xa2\x27\xf8\xcb\xd2\ +\xf7\xff\x78\x5f\x3a\xfd\xc9\x0f\x0d\xa7\x7f\xf8\x73\x4f\x4c\x8e\ +\x4e\x7d\x64\x0c\x26\xc0\x4b\x17\x77\xad\x5b\x9e\x4a\xbe\x46\x7f\ +\xd8\x55\xaa\x9a\x35\xb0\xb3\xf9\x97\x44\x35\x12\xe8\xef\xc2\xc3\ +\x88\xd4\xd0\xa6\xd1\xd7\x50\x7c\x90\x82\x70\xf2\xaa\x26\x5c\x1e\ +\xd7\xe7\x02\x78\x5a\x33\x70\x21\xbe\x9d\x5f\x4d\x3f\x75\x7d\x2a\ +\x76\x15\xfb\xfd\x7d\x53\xbf\x41\xd4\x56\x28\x6e\x4f\x0c\x22\xa6\ +\x40\x02\xc2\x75\x20\xc5\x76\xa9\x84\xeb\xd5\x7f\xba\xab\x5e\x60\ +\x6c\xe5\x94\xb3\xfd\xda\x99\x1f\x9d\xf0\x3e\xf2\x3c\x15\x5d\xd7\ +\x44\x58\x7d\xc7\x50\x6b\x40\xc1\x8e\x52\x83\x4c\xd3\x36\x6d\xb0\ +\xff\xde\x2a\xb6\x6e\xc9\xe5\xcf\x2f\xc8\xdc\x85\xba\xce\x12\x21\ +\xc1\x51\x89\x27\x7f\x70\xd1\xf6\xec\xc7\xff\x7b\xaf\x78\x78\xb3\ +\x1e\xbe\xfa\x7f\xd8\x7f\x61\xc1\x44\xfd\x7d\xaf\x98\xb7\x32\xee\ +\x1d\x1f\xaf\xf3\x54\x02\x62\xfa\x12\x53\xdd\x4c\x81\xf3\xf9\x63\ +\x45\x75\xcf\xcf\x76\xa5\x6f\x25\xb7\xad\x22\xd4\xcf\xe8\xa0\xc4\ +\x41\x0a\x83\xd7\x24\x3e\xc1\xd1\x65\x71\x5d\x6c\x8b\x82\x65\x5e\ +\x5f\x13\x51\x3f\x11\x1f\x85\x7d\x11\xed\x43\x23\x23\x9e\xfa\x0d\ +\x5c\x9f\xaa\xe1\xf7\xf7\x51\xd5\xec\x6c\x12\xb5\x3d\xb5\x35\xb5\ +\x39\x48\x5c\xaf\xff\xd0\x51\xaa\xb0\xa1\xde\xd3\x5d\x41\x63\x75\ +\x10\xfc\x1a\x63\xde\xfd\xc3\xb5\x53\x3f\xed\xc0\x9b\xa3\xdb\x0c\ +\xe2\x7d\x42\xd1\xfe\x9a\xc4\xdb\x41\xcd\x19\xea\x71\x7a\x6a\x90\ +\xc0\x60\x0f\x6b\x83\x7e\x7e\xbb\xd8\xfa\xc7\xb1\xfc\x17\xc7\xfd\ +\xfc\x7f\xeb\x0f\xec\x35\x95\x3a\x09\x8e\x4a\x84\xff\xc0\xa6\x42\ +\xfa\xbf\xf0\xa8\xe4\xa9\xa7\x83\x08\x8a\xa3\x9e\xab\xf7\xed\x73\ +\xfb\x52\xcf\x9c\x97\x4c\x9d\xa9\xf7\x43\xdd\xf3\x12\xec\xe4\x46\ +\x51\x10\xde\xe6\xe0\x7c\xfe\xd3\xfe\x82\x5f\x47\xbf\x16\xf2\x20\ +\x3a\x40\x71\x00\xe3\xe4\x85\x0a\x0b\x26\x74\x5d\x6c\x8f\x6b\xd6\ +\x6c\x3c\x52\xac\x74\xdd\xf1\x37\x46\x79\x21\x1e\x36\x34\x0a\xe8\ +\x3b\xba\x0c\xd7\xa7\x10\xb4\x01\x88\xda\x8a\x0a\xed\x6b\x12\xb5\ +\x37\x15\xb6\x47\xdb\x07\x94\x5a\x27\x96\x89\x08\x4e\x77\xd5\xeb\ +\xe0\x45\xbf\xf8\xd4\xdd\xc3\xa3\xf7\xc3\xc6\x13\xe8\xf6\x72\x41\ +\x7f\xb0\xaf\xb4\xcf\x61\xfd\xa7\x32\x11\x56\xdf\x51\xcc\x24\xa0\ +\x60\x87\xa9\x61\xb8\xfc\xcd\xda\xa0\x5f\x7a\x52\x3c\xf9\xc7\x5c\ +\xee\xc2\x09\x51\xf8\x2f\x5d\x67\x83\xca\x2c\xd1\x7f\x51\x8e\x8e\ +\x16\xc4\x15\xbf\xde\x9a\xfd\x0f\xb8\x8b\x4b\x1f\x95\xf0\xe7\x4b\ +\x38\xe5\x7d\xf1\x86\xa5\xdd\xab\x97\xa5\x92\xaf\x72\x22\x78\x93\ +\x01\x34\xc8\xbf\x0c\xea\xa2\xa0\xca\xab\x55\x00\x28\xd3\x41\xc9\ +\x07\x2b\xac\x56\x8b\xe8\x3a\xd8\x16\x17\x42\xf3\x35\x01\x17\xe2\ +\xdd\x89\xde\x13\x95\x9f\x38\x47\xaf\x5c\xef\xfc\x56\x6e\xa0\xee\ +\x86\x34\xb3\xb8\x08\xcf\x65\xb2\xa7\x49\x34\xa8\x80\x70\x7d\xda\ +\x3e\x12\xe4\xe3\xc5\x81\x95\xad\x3e\xdd\x05\xcf\xe2\xec\x53\xce\ +\xdd\x97\x08\xb1\x5f\x17\xe9\x36\x02\x74\xdb\x41\xb4\x4f\x98\x07\ +\xf1\x3e\x73\xf1\x76\x50\x73\x8a\x7a\x0f\xcb\xa9\x61\xd0\x68\xfe\ +\x93\xda\xb0\x5f\xdd\x29\xf6\xdd\x34\x34\xf9\xa3\x74\xb6\xf8\x21\ +\xe5\x3b\x43\xba\xde\x52\x23\x30\x01\x14\x94\xff\xe7\x2d\xf9\xf4\ +\x17\x3e\xb2\x2b\xf3\xed\xef\x78\x62\xb4\x74\x17\x57\xc5\x53\x5c\ +\x25\xf9\x7f\xd7\x2b\x7a\xd7\xc4\x8b\xc7\xa7\x84\xff\xec\xe0\x93\ +\x3a\x31\x7d\x59\x14\x13\xdd\xd4\x2d\xc2\xb1\x3b\xe1\x37\x37\x4a\ +\xe7\xf3\x61\xfb\x11\xec\x4f\xb9\x5f\x25\xd1\x3c\x9d\xbc\x50\xa6\ +\x49\x0d\x53\xba\x3e\x6d\x9b\xc2\xcb\x35\x91\x5d\xbb\xe4\x70\x25\ +\xe2\x6f\xd1\x6b\xf7\x95\xaa\xda\x06\xc3\x45\x78\xda\x47\x6a\x07\ +\x6a\x17\xb4\x17\x0a\x56\xc5\x23\x11\x93\xd0\xde\xd4\xd6\x20\x6c\ +\x0f\x29\x97\xe1\x0d\x15\x51\x9c\xee\xaa\x97\xbc\xe7\x6d\xff\xdd\ +\x50\xe6\x56\xf6\x0a\x75\xdc\x4e\x93\xd0\x1e\x34\x0d\x13\x5d\x07\ +\x52\x13\x61\xf5\x1d\xc7\x6c\x03\x0a\x1a\x89\xab\x6c\xc8\xdd\xda\ +\xc9\xbe\x99\x13\x99\xcb\x9f\x9c\xb8\x6a\xa7\x57\xfc\xb7\xa2\x70\ +\xee\xd0\xf5\x96\x2a\x04\x4f\xbc\x4f\xca\xff\xfd\xfe\xb6\xec\x87\ +\xce\x1b\x12\x77\x3c\xac\x87\x6a\xf6\xe9\x20\x82\xe2\x4c\xdb\x07\ +\xcf\xee\xee\x5a\x3d\xe8\x26\xeb\xfe\xf9\x54\x13\x51\x35\x08\x41\ +\xd3\x70\x8b\x30\x42\xfb\xc3\x85\x3e\x46\x27\xb0\x30\xe1\x72\x65\ +\xbf\xd4\xa2\x6d\x21\x98\xa7\x75\x35\x03\x3f\xef\xec\x39\xe9\x97\ +\x69\x97\x7f\x55\xa9\xaa\x6d\x08\xb9\x08\x8f\xd0\x7e\xa3\xa8\xad\ +\xb8\x3d\xab\x89\xae\x47\xdb\xe4\x0a\x88\xad\x17\x4b\xa3\x38\xdd\ +\x55\x0f\xf0\x47\x4d\xc6\x77\x37\x5f\xe2\x05\x47\x27\x1c\xbe\xdd\ +\xd8\x3f\x9a\xc7\xfe\xd2\xfe\x73\xc1\xf2\x00\x6d\x8b\xd6\xcd\x19\ +\x66\x1a\x50\x78\xe7\xa9\x71\x50\x65\x43\xea\x88\xef\x5d\x21\xc4\ +\xc4\x67\xb7\x67\x6f\x7b\x30\x3f\xfa\x81\x09\x99\xbb\x48\xd7\xdb\ +\x53\x60\x06\xe0\x87\xb0\xf6\x78\xce\xf7\x7e\xb5\x3d\xfd\xfe\x8f\ +\xec\x4c\x5f\xf3\x33\x4f\x4c\xe8\x89\x16\xc0\x20\x62\x1a\x74\x07\ +\xd8\xfc\xc3\x0b\xc4\xb2\x15\xdd\xde\x4b\x5d\x47\x2c\xd7\xe5\xba\ +\x80\x86\x39\xf0\x25\x51\x50\xe1\xa7\x7c\xe9\xd7\x4e\xeb\x5b\x49\ +\x74\xf0\x62\x1e\x45\xff\x52\xc6\xcf\xe9\xba\xd0\x1e\x6f\x9f\x96\ +\x67\x85\xf4\xe6\x1d\xab\x8a\xed\xf7\x6a\xfa\xa9\x23\xc0\xa9\x87\ +\x44\x6b\xb8\x08\x4f\xed\x44\x85\xf6\xac\x55\xb0\x0e\xb6\x87\x6d\ +\x53\x21\xca\x17\xf3\x17\x49\xd1\xf5\xcc\x52\xb9\x25\xc0\xad\xc2\ +\x5b\xb2\xe9\x3b\x4b\x47\x27\xb8\x7d\x07\x6c\x2b\x13\xb5\x0d\xe6\ +\x4d\xe2\xeb\xcd\x79\x6a\x79\xf5\x8a\x09\x9c\xdc\xc2\xfe\xb2\x28\ +\x4f\x80\x05\x9d\x6a\x67\x16\xf7\xa5\x45\xc6\xcd\x7a\xf7\x2e\x8a\ +\xbb\x8f\x27\x5d\x77\xc3\xd4\xab\x4f\x2c\x10\x48\x46\x3c\xe7\x27\ +\xbf\xd9\x9e\xfe\xfa\x37\x33\xb9\x7b\x6e\xd1\x13\xac\x3e\xba\x03\ +\x6f\x44\x1b\x9a\x6c\x8c\xce\x89\x8e\x1a\x38\xef\x99\x42\x24\x5e\ +\x3c\x90\x3a\x61\x41\x22\xf1\x26\xbd\x52\x1c\x16\xa8\x07\xd3\x17\ +\x9b\xea\x66\xca\xd4\x2d\xc2\xce\xd5\x9f\xdc\x9d\xbb\x97\x0d\x64\ +\x04\xfb\x45\x05\x7d\xa4\x03\x18\xf2\xfc\x54\x4b\x2d\xa7\x5e\xb8\ +\x10\x9a\xaf\x99\x1b\xd7\x8b\x75\x8e\x54\xef\x91\xd2\x3d\x55\x17\ +\xeb\x32\x0f\x6c\x40\x14\xf6\x05\xa6\x8e\x00\xd5\x3d\x17\x0d\x65\ +\xbe\x7f\xb7\x0a\xde\x25\x15\x54\x1b\x52\x2e\xb4\x2d\x17\xd8\xd6\ +\x24\xf8\x8c\xda\x19\x65\x6a\x1b\x09\xf2\x6f\x1f\x8c\x1d\xaf\x37\ +\xf4\xfd\xba\xd3\x51\x75\x7b\x46\xe8\x8d\xc8\x65\x95\xfc\xbf\x0f\ +\xef\xcc\x5f\x67\xf8\xc5\x40\xba\xdd\xd8\x1f\xec\x2b\xb7\x0b\x2d\ +\x53\x85\xd9\x01\x04\x60\x3a\x67\x88\x32\xa0\x40\x1e\x05\x4c\xcb\ +\x8f\x69\xe3\x3d\xe0\x89\xe2\x7d\x63\xc5\xc7\xe6\x8b\xdc\xcd\x03\ +\x09\x39\x91\x70\x63\xeb\xf5\x02\x75\x3f\x1f\xd1\x89\x18\x02\xc9\ +\xe4\x93\xda\xfd\x20\x00\xeb\x8f\x6b\xb9\x56\x42\x05\x8e\xeb\xbf\ +\x73\x59\xf7\xfa\xd5\xdd\x89\xb7\xb8\x42\x1d\xa2\xcb\x91\x62\xda\ +\x90\xd9\x10\xdc\x6d\x54\x54\xb7\x7c\x70\x38\xf3\xd3\xd2\x03\x64\ +\x94\x03\xfa\x14\x22\x1c\xb0\x95\x06\x33\x08\x97\xc7\xf6\x68\xfb\ +\x14\x5e\xae\x09\xb8\x10\x9f\x1f\xe8\x3d\x55\x39\xb1\x0f\xe9\x62\ +\x72\xaa\x76\xf6\x44\x65\x63\x40\x1f\x01\x3e\x7c\xcf\x58\xf6\xc2\ +\xef\x64\xc5\x9e\x52\xe7\x4c\x7d\x06\xa1\x8d\x4c\x42\x3b\x56\xb3\ +\x33\x08\xd7\xc1\x76\xb9\x90\x20\x0f\xbf\x2b\xa4\x3c\xe7\x95\x62\ +\x2a\x10\xb7\x84\xa2\x72\x76\xed\xca\xcb\x1b\x7f\x92\xc9\x6d\xd5\ +\x45\xdc\x46\xba\xbd\x98\xe7\x36\xe1\xf6\x30\xd9\x87\xdb\xe3\xa0\ +\xa0\x9e\x6b\x28\x34\x05\xb8\xe1\x51\x65\x23\x4f\x6a\xc3\xff\x59\ +\xcf\x99\x5f\xdd\x2f\x86\x7e\xb0\x33\xf7\xcd\xcd\x63\xde\x7b\x27\ +\x7d\x77\xa3\xfe\xec\xa0\xc1\x53\x72\x64\xbf\x27\x7e\x76\x47\x3a\ +\xfd\xf1\x0f\x0f\x8d\x5e\xfe\x1d\x4f\xec\x87\x67\x4a\x4a\x2f\xa2\ +\x0b\x0b\x22\x00\x3a\x26\x6a\x9a\x7d\xdf\xd1\x27\xfa\x56\xc6\xbd\ +\xe3\xe2\xc2\x8f\xe4\x14\x02\xdf\x08\xf8\xa2\x28\x80\x5b\x84\xef\ +\x98\xcc\x5c\xbd\x6d\xaa\x0f\x80\x29\xe5\xc2\xbe\x96\xfb\xab\x55\ +\x6b\x30\x01\xf1\xf6\x00\x9e\xce\x98\xf4\x86\x05\xc7\x2a\xc7\xfd\ +\x67\xdd\x42\x24\x17\xe2\x67\xbd\x21\x0c\xb8\x6e\xb2\x23\x1f\xbb\ +\xe6\x2b\x7b\xc5\x56\x30\x84\x86\x36\x0d\x79\x14\xb5\x0d\xb5\x17\ +\xb7\x25\x0a\x6c\x4e\xed\x4e\xd7\x01\xf1\x36\x41\x94\x72\xb9\x98\ +\x5b\xb0\x48\x89\xee\xa3\x4a\xc5\x96\x50\xf0\x8a\x3b\xaf\x18\x1e\ +\xbd\xab\x54\xa4\xd0\xed\xa7\xa2\x7d\x35\xf5\x9f\xcb\xd4\x06\x08\ +\xc0\x74\x4e\x31\xdb\x23\x14\xc4\x34\xf9\xf1\x49\x91\xe7\xe1\x07\ +\xe9\xd5\xe3\x9e\xf0\xfe\x98\x2d\xec\x2e\x66\x27\x6f\xeb\x93\xb1\ +\xbb\x52\xf1\x44\xdc\x95\xfe\x0a\xbd\x40\x6c\x6a\xd1\xb9\x03\xbc\ +\x77\x2b\xe7\xab\x7b\x87\x0a\x63\x97\xfc\x76\x28\x77\xe1\xb7\x33\ +\xf9\xdb\x6e\x1c\x13\xa3\xc3\xbe\x50\xa5\x73\x11\xdc\x66\x14\xea\ +\x80\x28\x74\xd6\xc0\x71\x4f\xd2\x7f\x18\x9c\xb9\x30\x75\xdc\x92\ +\x64\xe2\x6f\x75\x23\x0d\xf9\xc1\xb3\xb0\x8d\x9b\x09\xf4\x2d\xc2\ +\xf9\xa9\x2a\xec\x1b\x42\xfb\x58\xee\x1f\x11\x4e\x64\xa0\x4a\x01\ +\x85\xae\x83\x6d\x51\x78\x79\xc6\x04\x7f\x61\x17\xd5\xd9\x42\x39\ +\x91\xfd\x50\x59\x14\x8d\xc0\x11\x60\xa6\xa8\x7e\xf7\x81\xa1\xf4\ +\x15\xbb\xc3\xfb\x8d\x36\x01\x51\x5b\x71\x3b\x62\x00\xe1\x81\x84\ +\x8b\xb6\x41\xdb\x06\x78\x1a\xf0\xb6\xf9\xa9\x23\xa4\xf4\xcf\xd1\ +\xd5\x8b\x4b\x55\x4d\x05\x6e\x15\xde\xeb\xcb\x9b\x3e\x3f\x9a\x7f\ +\x50\x6f\x18\xdd\x46\x9e\xa7\x7d\xe3\xfd\x0e\xb3\x09\xb7\xc5\x41\ +\x43\x54\x01\x85\x8e\x05\x53\x1e\xd2\x69\xf5\xda\xea\x12\x5e\x1b\ +\xf2\x27\x5f\x14\xfe\x38\x5e\x18\x1e\xca\x4e\xfe\xae\xdf\x89\xdf\ +\xd1\x9b\x88\xc7\x63\x8e\x5a\xac\x17\x4e\x4d\x2d\xda\x99\xd0\x20\ +\x72\xf3\x70\xee\x3b\xdf\x4a\xe7\xaf\xbf\x6e\x54\x6c\xbd\x5d\x89\ +\x89\x9d\xda\xd5\x26\x9e\xb6\x09\xb5\x0b\x85\x3b\x36\x0a\x9d\xb5\ +\xac\xbf\x5f\xd4\x7b\xc8\xfa\xae\xc4\xeb\x13\x52\x45\xfe\x17\x5f\ +\xd8\xc6\xcd\x14\x3a\xd1\xed\x9d\xaa\xc2\xfe\x01\x61\x7d\xa4\x79\ +\x3a\x60\x67\x33\xb9\x51\x21\x34\x5f\x33\x70\xaa\x6b\x72\x5e\xdf\ +\xcb\x85\x74\x3f\xa9\x8b\x75\x1f\x9d\xc0\x46\x44\x61\x67\xb8\x6e\ +\x32\xa1\xd4\xbd\xd7\x0f\x8f\x5d\x7c\x93\xf6\x33\xac\x36\xa4\x20\ +\x6a\x27\x2a\xb4\x63\x25\x1b\x83\xf8\x7a\xd8\x2e\x7e\x0f\x80\x79\ +\x5a\x17\xf0\xb6\x05\xf1\xe3\xa4\x50\xff\xa0\xb3\x51\xb9\xd8\x8c\ +\x28\xf8\xfe\x8e\x47\x33\x63\x1b\x37\x4e\x88\x92\x3b\x4e\x83\xf6\ +\x05\xfb\x87\xfd\xae\x66\x17\x10\xb7\x07\x15\x80\xe9\x9c\xa3\xde\ +\x80\x02\xa0\x43\x84\xa5\x26\xca\x9f\x69\xeb\xab\x7d\x3a\x7d\xdc\ +\x17\xde\x3d\xe3\x85\x3d\x7f\xd0\x81\x25\xe1\xe5\x36\x76\xc7\xe4\ +\xce\x98\x1b\x8f\xbb\x42\xcd\xd7\x0b\x77\xc4\x51\x8b\xf6\x92\x5c\ +\x5e\x38\x0f\xef\x9c\x10\x3f\xbc\x69\x67\xfa\x9b\xdf\x49\xe7\x7f\ +\x7d\xed\xa8\xd8\x02\x41\x64\x58\x09\x95\xd6\xfd\x2e\x5d\x23\x09\ +\xb3\x0d\x75\x34\x74\x40\x14\x3a\xf6\x34\x07\x7f\x9d\x9e\xdc\x5e\ +\x38\xcf\x39\x71\x20\xee\x9c\xad\x1b\xad\xfb\x42\x3c\x07\xbe\x38\ +\x6c\x63\x6b\x25\x64\xa2\x43\xe0\x2b\x30\xa5\x2a\xf7\xd1\xa0\x6a\ +\x7f\x19\x82\xb0\x0d\xda\x26\x85\x97\x6b\xe6\xaf\x56\x2f\x38\x4c\ +\x49\xe7\xbd\xba\xf9\x13\x4b\x55\xb3\x06\x37\xa2\x5e\x1b\x03\x05\ +\xe5\x3f\xfa\x40\x26\x7b\xe9\xff\x8c\x8b\x1d\xa5\x76\x4d\x7d\xe6\ +\x42\x7b\x99\xec\x59\x4d\xd4\xd6\x20\x84\x97\xa7\xd1\xea\xeb\x27\ +\x7a\xc3\xf0\x62\xfc\xb5\x70\xb6\xa4\x54\x0d\xe0\x76\x53\xa1\x6d\ +\xc2\x6c\xc4\x7d\x31\xcc\x26\x07\x05\x51\xf8\x31\x6d\x03\xf2\x54\ +\x70\x8d\x06\x05\xc1\x0b\x53\x10\x04\x09\x9e\x06\xf9\x01\x2d\x7d\ +\x1c\x1c\x1f\x88\x89\xd8\xa9\xbd\x62\xc9\xb3\xfb\x92\x27\x0f\x24\ +\x52\x27\x27\x94\x7f\x94\x6e\xa0\xee\x8b\x9f\x51\x11\x1c\x85\x28\ +\xf9\x44\xce\xf1\x1f\x4b\x17\x33\x8f\x6e\x9e\x14\x0f\x5d\x39\x22\ +\x9e\xcc\x78\xc1\x73\x38\x78\x5d\xa4\x16\xd0\xf1\x68\x8a\x42\xe7\ +\xa4\x69\xd9\x71\xbf\xbe\xb4\xe7\x99\xeb\xbb\x63\xef\x8f\x0b\xff\ +\x18\x5d\xae\x0b\x68\x9c\xee\xcc\xa8\x80\xa7\xe1\x9f\xc8\x8f\x5f\ +\xf2\x2f\x43\x82\xdf\x9e\x09\x40\x1e\xfb\x45\x45\x07\x29\x0c\x5a\ +\x2a\x38\x53\xc8\xeb\xe8\xf2\x20\xda\x2e\x7e\x1f\x4f\x67\x0c\x3c\ +\x73\xe2\x3a\x5d\xe7\x2a\x2f\xf6\x79\x6d\x2c\xf0\xe7\xb6\x00\x4e\ +\xe1\x3c\x59\x54\xbf\x78\xdf\xb6\xcc\xd5\xa5\x5b\x84\x69\x1f\xb1\ +\x0c\x9a\xad\x9d\xf1\x73\xba\x3c\xb6\x41\xdb\x47\x21\x34\x1f\xb0\ +\x71\xd5\x82\x23\xa4\xa3\xce\x93\xb2\x70\x76\xa9\xaa\xa9\x78\xbe\ +\xdc\x39\x9c\x13\x97\xbf\x7d\x67\x1a\xae\xdf\xe2\xf6\xe1\x76\x57\ +\xb2\x0d\xd8\x83\x2a\xcc\x46\xb4\x0d\x6c\x97\x7e\xcf\x9c\x25\xaa\ +\xf9\x83\xb6\x83\xc1\x04\x04\x03\x0e\x53\x0c\x26\x98\x86\x05\x15\ +\xfc\x2c\x50\xbf\xd6\x22\x5d\xdf\x1f\x13\xee\x09\x7d\x62\xe0\xd8\ +\x1e\x71\xf8\xfc\x58\xe2\xa8\x6e\xa7\xeb\x19\x09\xa9\x0e\x77\x94\ +\x6a\xca\x2f\x45\x7a\x4a\xa6\x73\xbe\x7c\x28\xe7\xab\x6d\xe3\x22\ +\x3d\xb4\x75\x5c\x3c\x7a\xe5\x7e\xb1\x35\xa7\x3f\xd3\x52\x39\xed\ +\x4a\xfa\x48\x0b\x8e\x42\x6a\x85\x3b\x18\x4d\x41\xe8\x8c\x34\xa5\ +\xf2\xfe\x69\x9e\x18\x38\x65\x20\xf9\xfa\x01\x37\xf1\x1e\x5d\xa6\ +\xfb\x60\xc6\xc0\x17\xd4\xd5\x40\x08\xf0\x2c\xc4\x48\x51\x5c\xf7\ +\xbe\xed\xe9\x1f\x94\x1e\x60\x04\x21\x58\x06\x4d\xeb\x1b\x11\x0e\ +\x56\x14\x1d\xc0\x28\x3a\x90\x21\x0f\x29\x6d\x1b\x85\xd0\xfc\x8c\ +\xd8\xb8\x76\xf0\x85\x52\xf8\xe7\x47\xf1\xbe\x2e\x00\x36\xa4\x5e\ +\xbb\xeb\x36\xaa\xfd\xfe\x3e\x15\xb5\x31\xb5\x35\xb7\x29\xb7\x33\ +\x2e\x83\xcb\x63\x3b\xbc\x7d\x10\x42\xf3\x65\x6e\x58\x33\x78\xb2\ +\x94\xfe\xf9\x7a\xf5\x96\x5c\x94\x9f\xf0\xfc\x7b\xaf\xda\x9a\xfd\ +\xd2\xb7\xa6\xbf\x6a\x05\x52\xec\x13\x8a\xdb\x06\x03\x09\x0a\xeb\ +\xa9\x2a\xd9\x06\xc0\x74\x4e\x12\xe5\x1c\x42\xdb\x82\x3c\x0a\x83\ +\x09\x17\x0d\x1c\x34\x90\x1c\x10\x54\x4a\x72\xba\x74\xba\x50\xab\ +\x27\x26\x9c\x84\x2e\xaf\x10\x22\xf1\xec\x6e\xb1\x70\x65\x9f\x58\ +\xdd\x17\x4b\x2e\x4d\x89\x9e\x25\x71\xc7\x5f\xaa\xff\x5a\x5f\x1c\ +\x73\xc4\x92\x6a\xc1\x06\x4e\xc5\xf8\x52\xee\x2d\xf8\xf0\x8b\xc6\ +\x01\xc5\x82\x94\x23\xf9\xa2\x1b\x94\x7d\xa7\x98\x1b\x13\xa3\x43\ +\x8f\x8f\x8b\x27\xae\xd7\x47\x1e\x10\x3c\xf2\x7a\x35\x1d\x3c\x82\ +\xc0\x01\x01\x04\x96\xab\x11\xba\x2c\x77\x2e\x48\xb9\xd0\x21\xd1\ +\x39\xa9\x02\xa7\xfd\xde\xca\xee\x93\x56\xc6\xdd\x4f\x4b\x25\xb4\ +\x59\xa2\x05\xbe\xb8\x5e\xe7\x28\x3d\x0b\x71\xe7\xb5\x3b\xc6\xce\ +\xff\xc6\xd3\x4f\x22\x43\xd3\x98\xa2\x4c\xfd\xc3\x81\x0c\x29\x1d\ +\xbc\x7c\x20\xd3\xe5\x68\x1b\xb4\x7d\x10\x42\xf3\x33\x02\x9e\x39\ +\x91\x7e\xf2\x43\xda\xed\xce\xd5\x8d\xd4\x6b\x9e\xc8\x98\xc1\xef\ +\xef\x53\xa1\xbd\xa8\x0d\x41\x95\x26\x4a\x14\x6d\x07\xda\x46\x01\ +\x3c\x3d\x80\x1b\xd6\xf6\x9d\x21\xa5\xfc\x91\x76\x90\xde\x52\x55\ +\xd3\x80\x6b\x79\xa3\x45\xb5\xf1\x6f\x76\x64\xbe\x43\x4e\x77\xe1\ +\xf6\xd3\x7e\x81\xa8\x5d\x40\x18\x48\x50\xf4\x33\x10\xb7\x0f\xb6\ +\x4b\xbf\x67\x4e\x13\xf5\xa0\xc0\xf6\x68\x0a\xc2\x20\x82\xf9\x20\ +\x40\x94\x52\x93\x4c\x41\x85\xae\x17\x48\x2f\x24\xb5\x47\x3a\x3d\ +\x5a\x49\x1d\x64\x92\xba\xac\x3f\x70\xf4\x42\xd2\x55\x5a\x53\xdf\ +\x17\xa0\xf7\x64\x39\x4f\x41\x8f\x41\x74\x59\x41\xe0\x40\xf2\x53\ +\xc1\x63\x26\x47\x1e\x00\x77\x1c\x5a\xa6\xce\x15\x26\xea\x90\x98\ +\x47\x05\x0e\xfb\xa5\xa5\xfd\xab\x9e\x91\x72\xdf\x93\x74\x8a\xaf\ +\xd4\xe5\xb6\x24\xc2\x53\x5d\x74\xf0\xd2\x3c\x2e\x83\xcb\xc3\xfa\ +\xd8\x26\xb6\x0f\xf0\x74\xc6\xc0\xef\x9c\x8c\x1e\xda\x73\xb6\x48\ +\x38\x5f\xd1\xad\xb4\xcd\xfb\xba\xe0\xce\xb9\x6d\x39\xf1\xe3\x7f\ +\x19\x1e\xfd\x6d\x85\xf7\xa1\x51\xbb\x70\x1b\x83\x4c\xb6\xa5\xe2\ +\xcb\xcf\xda\xce\x60\xc7\xcc\xca\xee\xb7\xfa\x31\xf7\x9b\xa5\xaa\ +\xa6\x02\x3e\xf9\x58\x6e\xfc\x92\xf7\x0e\x8b\x3b\x75\x91\x6e\x2f\ +\xed\x13\xf6\x11\xfb\x8e\x76\x81\x94\x2a\xcc\x46\xd4\x2e\x28\x00\ +\xd3\x39\x8b\x71\x92\xad\x13\x6c\x93\xa6\x20\x08\x02\x98\x82\x78\ +\x90\x80\x14\x55\x2d\xa0\x60\x4a\xdb\x0d\x13\xc0\x53\x80\xe6\xa3\ +\x84\x3b\x0d\x77\x26\x48\x2b\x09\x9c\xb1\xa2\xfe\x42\xf7\xf9\xdc\ +\x15\x5d\x2f\x5d\x98\x88\x7f\x46\x0a\xa5\xe3\x69\xfb\x11\xf1\xa9\ +\x2e\x3e\x78\xa9\xe8\x20\x06\xd1\xb6\x51\x00\xa6\xb3\xe2\x37\x1b\ +\x16\x3c\xcf\xf7\x8b\x5f\x96\xaa\xfe\x0b\xf1\x00\x6c\x4c\xbd\x0e\ +\xa8\xdb\xc8\x65\x7c\x75\xf3\x7b\xb7\x8c\xfd\x2f\x79\x1f\x1a\x4d\ +\x51\xd4\xc6\x20\x93\x9d\x6b\xb5\x31\xa4\xb4\x5d\x48\x01\x9e\x1a\ +\xb9\x65\x95\x58\x56\x90\xa9\x7f\x12\x4e\xfc\x83\xa5\xaa\xa6\x02\ +\xa7\xbb\xae\xde\x9a\xfd\xa2\x8e\x66\xf4\x88\x19\x15\x66\x1f\xb4\ +\x0d\x06\x12\x14\xb5\x0f\xa6\xd8\x06\xb6\x09\xd0\xfc\x9c\x06\x26\ +\xe3\x46\xc1\x8d\x89\x46\x36\xed\x34\x2a\xd3\x8e\xc3\x9d\xc7\x53\ +\x14\x5d\x9f\xb7\x8f\x65\x2a\xba\x1d\xb8\x7d\xf5\x28\xac\x6d\xfc\ +\x7e\x9a\x9a\x84\xfd\xe0\xfd\xe2\x0a\x6c\xf1\xba\xa5\xfd\x2b\x07\ +\xdd\xe4\x19\xed\x1a\x4c\x82\xbb\xba\x7c\xff\xc1\x9b\x87\xd3\x57\ +\x55\x79\xf1\x23\xda\x89\x8b\xdb\x86\x96\xa9\xe8\x3a\xb4\x5d\xaa\ +\xba\x99\x7a\xe6\x24\xfb\x72\xe9\xfb\xcf\x2b\x55\xd5\x4d\x14\x7f\ +\xcd\xe4\x7d\xff\xb1\xfb\x32\x63\xa6\xdf\x37\xa1\x29\x57\x3d\x36\ +\x06\xd1\xb6\x10\x9a\xaf\x48\x4e\x2c\x98\xa7\x64\x77\x4b\xde\x2e\ +\x0c\xa7\xbb\x26\x3d\x67\xfb\xc5\x42\x94\x7e\xe8\x74\x1a\xb4\x5f\ +\x28\xde\x77\x2a\xbe\x1c\x2d\x53\x78\x79\x4e\xd3\x88\x80\x42\x0d\ +\x88\x79\x34\x34\x1a\x9e\xee\x18\x74\x5c\x9c\x34\x69\x9e\xaa\x5a\ +\x50\x01\xf1\x76\xa8\xf0\xbb\xe8\x77\x57\x12\x6e\x33\xdf\x5e\x2e\ +\xde\x26\xff\x2e\x48\x41\x7c\x9b\x70\x3b\x51\xb4\x5f\x61\x2a\xfe\ +\x9d\x3e\x7a\x5b\x22\xf3\xcf\x8a\x39\xde\x4b\x75\xb9\x2e\xa0\x63\ +\x94\xa8\x0e\xd9\x8a\xc2\xdb\x3e\x54\x1c\xbb\xe1\x22\xf3\x75\x13\ +\x4c\xb9\x4c\xf6\xab\x24\x5c\x1e\x64\x6a\x8f\xc2\xcb\x33\xc2\xf7\ +\x07\x8e\xd5\x7f\x51\xc3\xcb\x1f\x1b\x75\x54\x3b\x63\xe0\x7d\x68\ +\xbb\x27\xdd\x1b\xe1\x69\xf8\x52\x95\xa9\xcf\x20\x6a\x27\x14\xda\ +\x8f\xdb\x94\x8b\x2e\x8b\xc2\x76\xa9\x10\x9a\x37\x13\x57\x03\x52\ +\x7a\x2d\x09\x28\x9e\x2c\x3e\xf5\xa4\x9f\xb9\xbf\x74\xfa\x95\xc2\ +\xfb\x43\x45\xfb\x1e\x26\xba\x3c\x40\xf3\x07\x15\x8d\x3a\x42\xa1\ +\xc6\xe4\x46\xe6\x3b\x83\x3b\x31\x4c\xaa\x98\xd2\x09\xd6\x34\xe9\ +\xe2\x32\x26\xf1\x76\x4d\xe2\xdf\x1f\xb6\x5d\xb4\xde\xf4\x19\x2d\ +\x83\xf0\xfb\xf9\xb6\x60\x99\x6e\x3b\xcf\x57\xd4\x4b\x56\xf4\x1e\ +\xd1\x93\x4a\x44\xf2\x74\x36\x6f\x00\x3a\x52\x2f\xf8\x1b\x27\x9f\ +\x1a\x12\x77\x19\xae\x9b\x00\xe8\x07\x26\x7f\x00\x1b\x99\xec\xc9\ +\x45\xd7\x01\xf1\x36\x01\x9e\xce\x8a\x9b\x56\x2f\x38\x5c\xf8\xee\ +\x39\xba\x95\xa5\xa5\xaa\x59\x53\xd7\x86\x10\x74\x3b\xb9\x09\xe9\ +\x3f\x00\x3f\x99\x5c\xba\x31\x84\x36\x8d\x65\x2e\xb4\x15\xda\x0f\ +\x6d\x09\x7e\x87\x79\x93\xc2\x6c\x0c\xa2\xf0\xb2\x11\xa7\xe0\x75\ +\x2b\x5f\x2d\x2a\x15\x9b\x8a\x0e\xc2\x23\x7f\x1a\x16\x9b\x74\x16\ +\xb7\x95\xf7\x03\xcb\x20\xec\x77\x35\xe1\xb2\x74\x5d\x04\xf3\xb4\ +\x6e\x4e\xd3\x8c\x53\x5e\x00\x35\x2c\x0a\x76\x02\x75\x58\x2c\x83\ +\x70\xb2\xa5\x82\x09\x95\xa6\x98\x47\x99\x3e\xc3\x3c\x8a\xb6\x8d\ +\x79\xfc\x4e\x53\xd9\xa4\xb0\x75\x20\x45\xf1\x32\xdd\x4e\xdc\x2e\ +\x5e\x47\x65\x5c\xef\x33\x83\xa2\x7f\x30\x56\x3c\x21\x26\xd5\xe1\ +\xba\x1c\x39\xf5\x46\xa8\x19\x9c\xea\xc2\xfd\x0f\xa2\x79\xea\x03\ +\x61\xc2\x65\x70\x79\xda\x26\x42\xf3\xb3\x06\x2e\x20\xfb\xde\xe4\ +\x49\x42\x16\xcf\x28\x55\xb5\x05\x70\xaa\xeb\x8f\xe9\xb1\x2b\xc9\ +\x4f\x26\x23\xd8\x6f\x48\xa9\x6d\xd0\x56\xd4\x7e\x20\xf0\x31\xcc\ +\x73\xe1\x3a\x28\x6c\x0b\x05\xf0\xb4\x3a\x31\x7f\xc0\x71\xd4\xea\ +\x52\xa9\x69\xe8\x0d\xcc\xe5\xa5\xf3\x54\x8d\xa7\xbb\xb0\xbf\xdc\ +\x06\x28\xd3\xb2\xa0\x7a\x81\x21\x18\xa6\x8e\xa0\x91\x01\x05\xa0\ +\x46\xc6\x3c\x1a\x1f\x05\x3b\xc4\xe4\xd0\x20\x3a\xb1\x1e\x30\xc1\ +\x56\x10\x5d\xaf\xd2\x67\x98\x47\xd1\xef\x0c\x53\x2d\xcb\x98\xda\ +\xc6\x7a\xba\x1d\xb4\x6c\xd2\xb4\xf5\x0f\xef\xe9\xdb\x90\x10\x89\ +\xb3\xb5\xd1\xea\x76\xb0\x46\x78\x68\x51\x38\x3b\x9f\x2c\xb8\xbf\ +\x9b\xc1\xa9\x2e\x3a\x48\xe9\x7e\x37\x89\x2e\x87\x79\xde\x1e\x0a\ +\xa1\xf9\x19\x93\xde\xb0\xe0\x68\x95\x88\xbd\xb3\x15\xb7\xb7\x86\ +\x11\xfc\x20\x94\xe7\x3e\x10\xf2\xe2\x47\x80\xda\x01\xed\x44\x45\ +\x6d\x1a\x26\xba\x3c\x6d\x8f\x82\x65\x5e\x5f\x11\xa9\x94\xd4\x2b\ +\x34\x7d\x82\xf4\x84\x4c\x8f\xf9\x62\x1b\x3b\xdd\x85\xfd\x32\x89\ +\xdb\x80\x96\xa9\xf8\x7a\x65\xdd\xb4\x5a\x0c\xdc\xb0\xae\xff\xb4\ +\x1b\xd6\x2c\xf8\xca\x8d\xeb\xe6\xfd\x5e\xe7\x1f\xba\x71\xcd\xbc\ +\xdf\xde\xb8\xae\xff\x1b\x1b\xd7\x8b\x57\x5f\x2f\x04\x5c\x03\xc5\ +\x80\x51\xcd\x26\x74\xb9\x5a\x96\x6f\x09\x8d\x0e\x28\x00\x18\x17\ +\xe1\x46\xa7\x3b\x05\x52\x93\x73\xa3\xe8\xe4\x6a\x9a\x7c\x41\xa6\ +\xcf\xe8\x7a\x28\x5a\xcf\xf3\x61\xeb\x80\xe8\xe7\x3c\x1f\xf6\x39\ +\x55\x58\x3d\x0a\x3e\x37\x2d\x53\xfc\xee\x1a\xb1\xb4\x37\x99\x7f\ +\x85\xfe\xeb\x6e\x95\x2e\xd7\x05\x1a\x3f\x4a\xe0\x82\xe7\x58\xc1\ +\xbf\xe7\xbc\xe1\x51\xfc\x29\x55\xfe\x15\xf8\xb5\x28\xbe\xdf\xc3\ +\xf6\x3f\xd4\xd3\xcf\xe8\x7a\xb4\x3d\x10\x85\x97\x67\x44\xd4\x17\ +\xe2\x61\x63\xa2\x98\x01\x72\xbe\xb7\x19\x8e\x00\x0d\xcf\x40\xa1\ +\x0d\xb8\xd0\x7e\xd4\x86\x95\x84\xcb\xd1\xf5\x4c\xed\xce\x98\xc0\ +\xa6\xaa\x78\x64\xa9\xd8\x54\x3c\xdf\x1b\x19\x1a\xcb\x3c\xa2\xb3\ +\xb8\xed\x34\xa5\xc2\xfe\xd2\x7e\x57\xb3\x05\x4a\x5c\xbd\x52\xf4\ +\x6f\xdc\xd0\xfb\xda\x1b\x37\x0c\x5e\xed\x39\x7d\x5b\x74\x00\xbd\ +\x4a\x8a\xfc\x3f\x08\xdf\x3b\xc9\x51\x70\x66\xc1\x3b\x59\xff\x55\ +\xf0\x4e\xd7\xef\xfd\x91\xbb\x6e\xe0\x86\x1b\xd7\x2c\x7a\x83\x5e\ +\x8d\x07\x8a\x30\x71\x2a\x7d\xd6\x12\x9a\x11\x50\x80\xc0\xd8\x04\ +\xbe\x23\xe8\x0e\x03\xa1\x73\xe3\x04\x5b\x49\x7c\xf2\xad\x57\x95\ +\xda\xa4\x9f\xcd\xe6\xbb\xe1\x25\xbb\xbc\x2e\xac\x1d\xa8\x2f\x6b\ +\xa1\xec\x5d\x17\x13\x89\x57\x6b\x63\xd5\xe5\x3c\x60\xec\x46\x78\ +\x1f\xbe\x96\x7e\x16\xa7\xba\xe8\x24\x56\x49\xb8\x1e\x0a\xdb\xa3\ +\x60\x99\xd7\xcf\x98\x62\x71\xf0\x70\x25\x93\x67\x69\x63\x45\x62\ +\xae\x28\x1a\x81\x67\x4e\x86\x0b\xb1\xdf\xcc\xf2\x08\x10\x65\xb2\ +\x2d\x0a\x3f\xc7\x65\x79\x7b\x28\x84\xe6\x6b\x42\xdb\xa1\x11\xee\ +\x57\x15\xcf\x17\xe9\xdf\x8f\x94\x6f\x60\x40\x78\x5f\x50\xd8\x77\ +\xb4\x43\x98\x82\xe5\xbf\x2f\x44\xd7\x0d\x8b\x07\x4e\xb9\x71\xed\ +\xfc\x8b\xbb\x12\x7d\x0f\x38\x45\xf9\x13\xed\x40\xa7\xeb\x8e\xc2\ +\x83\xd5\x31\xdd\x63\x47\x6b\xea\xc8\x6c\xea\x3f\x47\x09\xd9\x15\ +\xfc\xb1\xe2\xe4\xbe\x7b\xc3\x86\xde\x8b\x6f\xd8\x20\xe0\x34\x20\ +\xd8\x26\x4c\x00\x2f\x53\x4c\x75\x4d\xa7\x59\x01\x05\xc0\x9d\x85\ +\x60\x1e\xeb\x41\x74\x67\x71\x67\xa7\x13\x2c\x9f\x78\x69\x99\xcb\ +\x34\x89\xb7\xa3\xb0\x1f\xb4\x9f\x20\xef\x07\x2b\xc5\xb2\x2e\x59\ +\x78\xb9\xb6\xd0\x12\x5d\xae\x8b\x46\x78\x5d\xe9\xf7\x37\x7e\xfd\ +\xcd\x3d\x62\x57\xa9\x8a\xee\x5b\x4c\xb9\x2a\xed\x6b\x2e\x5c\x06\ +\x52\x53\x5b\xa8\x48\x80\xbf\xa4\x1d\x35\x71\x8a\xd3\xa2\x57\x83\ +\x98\xd0\x9d\xcb\x4d\x0a\xef\xe1\x2b\x87\x47\x4d\x0f\x89\x02\x68\ +\x03\x6a\x57\x2a\x6e\x53\x2e\x5c\x86\xae\x83\x6d\xa2\x28\xbc\x5c\ +\x15\xf8\x0d\x14\x5f\x74\x37\xfd\x27\x7f\xe1\xe8\x39\xe7\x3b\xc3\ +\xd7\x0a\x31\x59\xaa\x02\x70\xfb\x69\xff\x50\xd4\x06\x54\xd3\x96\ +\xfb\xe1\x6a\xb1\xe2\xfa\xf5\xa9\x7f\x5f\xb9\x66\xe0\x66\xd9\xeb\ +\x5f\x23\x54\xe1\x6c\xbd\xd4\x72\x3d\xc8\x5c\xad\xea\x43\x0d\x96\ +\x51\xaa\x4f\x7a\xf2\x0d\xc2\xef\xfb\xe2\x35\xeb\x2b\x06\x15\x98\ +\xab\x4d\xf5\x20\x84\x97\x9b\x4e\x33\x03\x0a\x02\x3b\x03\xc1\x3c\ +\xdd\x51\x7c\x27\x72\xc7\x0f\x26\xd9\x52\x0a\xa2\x93\x71\x98\x20\ +\xa8\x50\x99\x96\xa9\x45\x74\xdd\x4a\xed\xcc\xf4\x3b\x68\x3f\x40\ +\xb4\x9f\xde\xbc\x44\xdf\x7a\x57\x24\x5e\xab\xf3\x6d\x87\xde\x61\ +\xe5\x89\xce\xf0\xa4\x36\x40\xf7\x2d\xa8\xd2\xbe\xa5\xe2\xcb\xd1\ +\x32\x6f\x93\xc2\xcb\x33\x06\x6f\x13\xd6\x0d\xb5\x74\x70\x52\x0a\ +\xbe\xbf\xe5\xa1\xd1\xb1\xeb\xaf\x33\x5f\x88\x37\x89\xda\x8b\xdb\ +\x96\x0b\x97\xc1\xe5\x69\x3b\x14\x2c\xf3\xfa\x9a\xd1\x06\x6d\xba\ +\x4d\x7d\x47\x64\x27\x9c\xe0\xb5\x34\x7c\xfb\x21\xe5\xc2\xfe\xa3\ +\x2d\xa8\x4d\xfc\xf7\x0b\x91\xbc\x72\x49\xdf\x0b\x37\xae\x1e\xbc\ +\x68\x89\xd3\xf7\x87\x98\x17\xff\x98\x94\xc1\x8b\x59\xa7\x8e\x44\ +\x66\x47\x52\xc7\x96\x97\xc6\x55\xff\xbf\xea\x3c\xb4\x61\x12\xd8\ +\x0d\x53\x2a\x00\x53\x84\x97\x9b\x06\x6c\x60\x2b\x80\x9d\x83\xe0\ +\x8e\xa4\xe2\x3b\x93\x3a\x3f\x88\x4e\xba\x54\x74\x72\xae\x45\x38\ +\xf1\xd7\x12\x28\xaa\x05\x89\x5a\x82\x08\xdf\x5e\x2a\xda\xb7\x72\ +\xf9\xc7\x6b\xc5\xf2\xa4\xc8\x9f\xa6\xad\x52\xf7\xd1\x49\x23\xc0\ +\x3b\x8e\x6a\x98\xe8\x70\x5f\x62\x1e\xfa\x17\xb6\x7f\xb9\xe8\xba\ +\x28\x0a\x96\x79\xfd\x8c\xd9\x78\xa4\x58\x29\xe5\xe4\xab\x74\x4b\ +\x75\xdf\x26\x1c\x15\x70\x21\x3e\xed\xb9\xf7\x7d\x71\x44\x6c\x02\ +\x63\x68\x78\x7f\x21\xa5\x42\x7b\xa1\xb8\x3d\x51\xf4\x73\xba\x3c\ +\x88\xb7\x09\xea\x48\x94\x2a\x66\x33\xc5\x0c\xbe\xaf\x0f\xa1\xfd\ +\xe1\xfd\x3c\xa0\xff\xff\xbd\x50\x2c\xba\x66\x55\xea\x1d\xa7\xaf\ +\x1d\xb8\xa6\xb7\x47\xfc\xcc\x91\xc5\x33\x75\xfd\x80\x9e\xba\x5d\ +\xbd\x40\xfd\x13\xb8\x52\xbd\x52\x78\x27\xe8\xa3\x94\x53\x74\x89\ +\xbe\x1d\xc4\x24\xf8\x3e\x4c\xb9\x10\x9a\x6f\x1a\xb0\x51\xad\x02\ +\x77\x16\x82\x79\xac\x47\x51\x27\xa7\x83\x81\x4e\xbc\x98\x07\x55\ +\x9b\xb8\xf9\x24\x6f\x12\x0f\x0e\x95\x82\x45\x2d\x81\x24\x4c\xa6\ +\xed\xc3\xfe\x05\x7d\x9e\x27\xfa\x37\x48\x95\x78\xbd\xce\x47\x0e\ +\x1a\x7c\xb6\x4c\xfd\xea\x9d\xf3\x3b\xc3\x1d\x47\xb4\x69\xdc\x8f\ +\xa8\xb0\xfd\x89\x7d\xe6\x65\x14\x6f\x87\x2a\x32\xe4\xc4\xe0\x2a\ +\xdf\x4b\xbd\xa4\x54\x6c\x39\xf4\x56\x6c\xc3\x6b\xe9\x01\xac\xa3\ +\xb6\xa2\x32\xd9\x95\x8b\x2e\x8f\xed\x71\x21\x34\xdf\x11\xe8\x80\ +\x9c\xdd\x95\x13\x4f\x95\x8a\x14\xde\x47\x2a\xff\x65\x7a\x52\xbf\ +\x60\x49\xdf\x91\xd7\xac\x9d\xff\xb9\x63\x07\xfa\xae\x49\x3a\xf1\ +\xf3\xdc\xa9\x9f\xd8\xae\xe7\x68\x24\x14\xa9\xdc\x67\xc4\x45\x1f\ +\x5c\xa4\xc7\xc0\x41\x03\x0b\x0f\x30\x3c\x90\x60\x00\xc1\x14\xa0\ +\xf9\xa6\x00\x1b\xd6\x6a\x60\xe7\x21\xb8\x33\x81\x60\xa7\x96\x52\ +\xcc\x9b\x64\x1a\x20\x74\x82\x36\x4d\xe2\xa6\x7c\x25\x55\x5a\x0e\ +\x3f\xa3\x29\xcf\x53\x99\xb6\x17\x35\xad\x5f\xbf\x58\x2f\x0e\x89\ +\x3b\xb9\x57\xc8\x06\x1d\x9d\xd4\xe3\x6d\xc1\x44\xe7\xf9\x9b\x2e\ +\x1f\xca\xdc\x10\xf2\xd6\x65\xdc\x6f\xa6\xfd\x67\xea\x3b\x8a\x2f\ +\x47\xcb\x20\xde\x2e\x42\xf3\xb3\x02\x9e\x3b\x11\x5e\xee\xc8\x76\ +\xba\x76\x62\xb8\x15\x1b\xe1\x76\x40\x51\x5b\x71\xdb\x9a\x44\x97\ +\x07\xf1\xf6\x28\xbc\xdc\x11\xc0\x4f\x4f\x7c\x6d\xfa\x1b\x05\xb8\ +\x00\xcc\xfb\x7f\x37\x28\x7a\x2e\x5d\xdd\x75\xea\xbf\xae\x9b\xf7\ +\xcd\xb5\x3d\xe2\xa7\x49\x55\x38\x2b\x18\x83\x51\x1d\x8d\x84\xa2\ +\x7a\x64\x51\xac\xf8\xb0\x10\xfd\xba\x00\xef\x33\xe4\xef\x34\xa4\ +\x01\x85\x0a\xb6\x09\x05\x34\x70\x1b\x2b\x03\x1b\xd3\x0e\xd0\x1d\ +\x0b\xd0\x32\xe6\x51\xd4\xf9\x4d\x03\xc4\x34\x81\xf3\x3a\x54\xa5\ +\x00\x00\x65\x2a\x5e\x4f\xcb\xa6\x94\x8b\x6f\x1f\x96\x41\xb4\x3f\ +\xe5\xfe\x75\xab\xfe\xc3\x94\x4a\xbc\x51\xe7\xeb\x02\x0d\x19\x25\ +\xf0\x7a\x95\xe1\xe2\xd8\x4d\xbf\xaa\xfc\xfb\x1b\xe5\xbe\x18\xca\ +\x20\x6a\x03\x93\x70\x39\x6c\x0f\xa0\x79\x84\x97\x67\xc5\xe8\xfa\ +\x85\x87\xcb\x78\xe2\x2c\xdd\x58\xcb\x06\x24\xa5\xce\x5b\xb1\x51\ +\x61\x36\x35\x09\xdb\xa1\x60\x99\xd7\xcf\x18\x37\x26\xbb\x85\xeb\ +\xb7\xe2\x29\x79\xf8\x55\xd8\x4a\xdb\x1f\x7c\xf6\xa1\xc5\x62\xf1\ +\x4f\x57\x27\xcf\x79\xe3\xbc\xfe\x0b\x96\xca\xd8\x17\xe2\xbe\x77\ +\x92\xae\x6e\xc8\xd1\x48\x18\x4a\xaa\x79\x47\x2c\x17\xf0\x6a\x1a\ +\x0c\x26\x95\x02\x0b\x0d\x24\x54\x00\x4f\x9b\x42\xbb\x04\x14\x04\ +\x76\x2c\xdd\xf1\x58\x46\xa1\xd3\xf3\x81\x00\xa2\x03\x86\x0e\x20\ +\xd3\x64\x1e\xa6\xb0\x60\x80\xaa\xf4\x39\xfd\x2e\x9e\x72\xe1\x36\ +\xd2\x6d\xc7\x7c\xa0\x6b\x0f\x17\x2b\x62\x4e\xee\xf4\x28\x8e\x4e\ +\xa2\xf6\x28\xbd\x03\x72\x13\xca\xd9\x04\xaf\x57\x81\x0d\x9f\xaa\ +\x3a\x00\xdc\x67\x28\xda\x57\x2e\x5e\x5f\xb6\x83\x16\xae\x8b\xed\ +\x20\x34\x1f\x0d\x85\xc2\x3c\xe5\xf9\x2d\x79\xcf\x14\x27\x38\x02\ +\x54\xfe\x7d\x37\xec\xcc\xfc\xac\x86\x5b\xb1\x41\xd4\x56\x20\x6a\ +\xcf\x30\xe1\xb2\xb8\xae\x49\x91\xe1\x17\xfc\x09\xe1\x39\xf0\x63\ +\xa6\x4d\x03\xae\x3f\x65\x7d\x67\x7b\xa9\x88\x94\xfb\xf7\x3c\x3d\ +\x41\xff\xe7\xfc\xee\x0d\x57\xac\x1e\xfc\xb7\x53\xfb\xfa\x2e\x98\ +\x27\x13\xef\x8a\x4b\x75\x98\x1e\x34\xb5\xdd\xa9\x15\x3d\xd2\x73\ +\xcb\x41\x04\x7e\xd2\x9b\x07\x13\x1e\x54\xc2\x02\x0b\x85\x97\x1b\ +\x46\xbb\x05\x14\x84\x3b\x33\x2d\x63\x1e\x45\x07\x05\x17\x0e\x1a\ +\x3e\x90\x40\x74\xd2\xa7\x13\x3f\x96\x4d\xc2\x65\xc2\xd6\xa3\x9f\ +\x87\x89\x6f\x23\x08\xfb\x51\xee\x97\x93\x9b\xb7\x52\x79\x29\xb8\ +\x40\x57\x17\xd0\x58\xd4\x18\xde\x72\x8b\x94\xb7\x9f\x89\xf7\x17\ +\x84\xb6\x30\xd9\x85\x97\x4d\x6d\x22\x34\x5f\x1f\x2d\x7a\x2d\x88\ +\x89\x82\xf2\x37\x3f\x94\x19\xfb\xf9\xc5\x1e\xfc\x8e\x5b\x00\xf6\ +\x93\xa6\x20\x6a\x23\x48\x4d\x76\xe5\x75\x58\xa6\xc2\xf6\x50\x14\ +\x5e\xee\x18\x60\xc3\xf5\x6c\x4a\xb7\x3f\xc8\xbf\xbd\x57\x0c\x7c\ +\x6f\x45\xea\x65\x1f\x5f\x3b\xf0\xd9\xe3\x07\xdc\x6f\xf4\xc9\xe2\ +\x19\x8e\x12\x0b\x65\xf0\x8c\x48\xf3\x26\x60\x8e\xaf\x87\xfe\xa4\ +\x1f\x04\x12\x0c\x26\x5c\x3c\xa8\xc0\xb6\xd2\xa0\x42\x69\x7a\x3f\ +\xda\x35\xa0\x20\xb0\xf3\xb9\x33\x54\x12\x1f\x24\x54\x7c\x50\xd1\ +\x7c\x14\x32\xb5\x0d\x29\x95\x69\x1b\x79\x1f\xd4\x35\xeb\xc5\x82\ +\x98\x98\x7c\x51\x14\xe7\xf2\xa3\xf6\x28\xbd\x81\xb9\x49\xe1\x6c\ +\x33\xbc\xe5\x96\xa6\x54\xb4\xaf\x68\x9f\x6a\xe2\xb6\x09\xa3\xd2\ +\x67\x33\xa6\x55\xaf\x05\xe1\xc0\x9b\x84\x9f\x9a\x74\x7f\xfd\xf9\ +\x11\xb1\xa9\xc6\x53\x5d\x20\x6e\x67\x4c\x4d\x76\xe5\xc2\x36\x28\ +\x58\xe6\xf5\x1d\xcb\xb1\x7a\xbe\xfb\xf0\xa0\x38\xf4\xf2\xb5\x89\ +\xb7\xfd\xf5\x92\xbe\x6f\xac\x8c\xc7\xff\x2d\xa5\xfc\x63\xf5\x1e\ +\x6f\xd5\xd1\xc8\x01\x28\x21\x33\xff\x37\x24\x76\xea\x2c\x04\x0f\ +\x0c\x2a\x34\xb8\xd0\x60\x82\x79\xd8\x76\x93\x9a\x4e\xbb\x07\x14\ +\x24\xcc\xe1\x2b\xc9\x34\x70\xa8\xf8\x00\xab\x36\xf0\xe8\xe7\xa6\ +\x65\xc2\xd6\x03\xd1\xed\xe1\xdb\x79\x80\x52\x6a\xe1\x4a\xe1\xa6\ +\x5e\xa2\x0b\x75\x39\x05\x34\x16\x35\x7a\x83\x92\xbd\x8e\x78\xce\ +\x57\x56\xf5\x9f\x5e\xaa\xa2\x4c\xeb\x87\x16\xef\x3b\xc8\x64\x47\ +\x9a\x47\xd1\xf5\xb9\x1a\x82\x8e\x27\x05\x3d\xa0\xd9\xeb\x9e\x9a\ +\x0b\xdc\x39\xf7\xa4\x2f\xaf\xfa\xd8\xae\xf4\x46\xc3\x5d\x5d\xd4\ +\x06\x54\xd4\x6e\xd4\xb6\x61\xa2\xcb\x9b\xda\x03\x45\x8e\x1f\x1b\ +\x29\x08\x77\x2c\x5b\x2a\x36\x8d\x84\xf0\xe7\x5f\x72\x48\xf2\x55\ +\x9f\x5e\xdb\xff\x9f\xa7\xce\xeb\x3d\x7f\xbe\x4a\x9e\xa5\x0f\x43\ +\x16\xc0\xd1\x88\x76\xe8\x96\x4c\xbc\x21\x14\x7d\x21\xb3\x17\x4e\ +\x9d\xed\x08\x0b\x26\x34\xa8\x80\x60\x0e\x47\x61\x20\xe1\x02\x30\ +\x6d\x28\x9d\x12\x50\x90\x30\x87\xa7\xf5\x5c\x74\xd0\xf0\x41\x84\ +\xe5\x5a\x54\x6d\x79\xfe\x39\x7e\x07\xd6\xd3\xb2\x49\x01\x97\x69\ +\x07\xf2\x0b\x13\x47\x08\xcf\xab\xfb\xd6\xd5\x46\x79\x90\xf6\xe2\ +\x25\x0b\xa5\x77\xca\x67\xe6\x8b\x0d\xa5\x2a\xc4\xd4\x2f\x6a\x1b\ +\x9c\xcc\x68\x4a\x27\x38\xcc\xd3\xf5\xa8\x28\xbc\x1c\x01\x2e\xbc\ +\x89\x76\xcb\x54\xbe\xf9\x40\x30\xd9\xe5\xc9\x2b\xce\x1b\x1a\xbd\ +\x7a\x9b\xb9\xbf\x28\xb4\x17\x17\xb7\x2b\x8a\x2f\x87\xa2\x6d\xa2\ +\x28\xbc\x5c\x17\x29\x47\xec\x57\xbe\xd3\x54\xfb\xba\x52\xf5\xf7\ +\xc7\xe4\xcb\x97\x25\x12\xef\x4a\x0a\x75\x84\x94\x12\x8e\x46\xda\ +\x72\xde\xf3\x94\xdc\x3e\x5a\x8c\xdf\x9a\x9b\x0a\x22\x28\x0c\x26\ +\x34\xa8\x54\x0b\x26\x2d\xa3\xd3\x02\x0a\xa5\xd2\x20\xe0\x9f\xf1\ +\xba\x4a\x03\x0a\x44\x07\x1d\x95\x69\x59\x50\xb5\xcf\x4d\xa2\x94\ +\xeb\x07\x8f\x14\x4b\x65\xb2\x78\x82\x76\x8b\xba\x1c\x83\x7f\x41\ +\xd4\xc4\xa5\xbb\x7c\x6d\x4f\xef\xf1\xa5\x22\xef\x13\xe4\xa9\xdd\ +\x40\x74\xb2\xa3\x69\x98\x4c\x5d\xc0\x3a\xd3\x67\x75\xe3\x38\xfb\ +\x87\xa5\x9c\x84\xdf\x1a\x6f\x3a\x70\x47\x57\x26\xaf\xee\xfc\xe9\ +\x8e\xd1\x8d\x4f\x78\x41\xff\x01\xde\x5f\x48\xb9\xd0\x5e\x18\x3c\ +\x4c\x76\xa6\xf5\x5c\xd0\x06\x05\xcb\xbc\xbe\x6e\xc6\xb4\xf4\x91\ +\x41\xe4\xed\x56\x45\x8f\xa5\xe0\x68\xa4\xc5\x93\x6d\x35\x3c\xdf\ +\xdf\x75\xdf\xf6\x91\x7b\x75\x16\x02\x87\x29\x98\x50\xb5\x65\x50\ +\xe9\xe4\x80\x42\x01\x27\xa5\xa2\xf0\xcf\x5a\x21\x4e\xe8\xe7\xf0\ +\x60\x5d\x14\x17\xe3\x2b\x79\x54\x14\xde\xe6\x48\x35\xd0\xe7\xa8\ +\xb5\xaf\x10\x22\x59\xaa\x02\x78\xbf\x50\x7c\x12\x0b\x9b\xec\x4c\ +\xeb\x52\x35\x94\xfc\x63\x62\xa7\x93\x8f\xdd\x51\x2a\x36\x0d\x38\ +\x32\xd9\xad\xe4\x8f\x7f\xb0\x33\x73\x51\xc8\x6d\xd8\x98\x52\x51\ +\x7b\x52\x51\x9b\xa2\x5d\xe9\x67\x98\xe7\xed\xa1\x1a\x46\x57\x51\ +\x14\x7c\xa7\xb5\xa7\x14\xdb\x15\x4f\x39\x3b\xf6\x17\x63\x37\x7e\ +\x43\x88\xb4\x2e\x56\x0a\x26\x61\x47\x28\x34\xa0\x00\x98\xe7\x75\ +\x0d\x65\xae\x04\x14\x4e\xad\x03\xc5\xb4\xdc\x6c\x14\x86\x69\x59\ +\x90\x91\xa8\x1e\xac\x0b\xfd\x82\x12\xd5\x3e\xaf\x15\xed\x3c\xbd\ +\xcf\x5d\x10\xdc\xd6\x4c\xfb\xc6\xc5\x27\x34\x9c\xd4\xf8\x64\x47\ +\xc5\xdb\xa0\xf0\x72\x64\x9c\x26\xc4\xb8\x9f\x48\xdd\xaf\x7b\x76\ +\x57\xa9\xaa\xe1\xc0\x8b\x35\xb7\x4d\xca\x8b\x3e\xb2\x63\xf4\xca\ +\x5f\xea\x60\x02\x46\xd1\x98\xfa\x8c\xa2\x36\xc2\x3c\xda\xb5\x9a\ +\xe8\xba\x5c\x14\x5e\x8e\x84\xdf\x6e\xd1\x93\xa5\xef\xf2\x37\xfe\ +\x5a\x94\x1c\x9b\x28\xf8\x7f\xb8\x6a\x68\xff\x6f\x46\xcd\x41\x04\ +\x54\x29\x90\x80\x20\x58\x40\x0a\x34\x3c\x70\x84\x81\x1b\x70\x30\ +\xc0\x07\x50\x98\x2a\x61\x5a\xbe\x92\x66\xc4\xc4\x91\x62\xa1\x4c\ +\x7a\xcf\xd4\x2b\xd6\xe5\x10\x4d\xf4\x26\x15\x93\xe5\x7e\xd2\x7e\ +\xa3\x70\x02\xab\x26\x5c\x96\xae\x4b\xc1\x32\xaf\x8f\x1a\x95\x7b\ +\x6c\xe4\x1e\xe5\x15\xbf\xd2\xe8\x8b\xf3\xf0\x9c\xc9\xa4\xef\xdf\ +\xff\xc7\xd1\xd1\xaf\x7c\x7c\x78\xf4\x16\x38\xcd\x05\x33\x3e\x7c\ +\x34\x95\x94\xed\x80\xe2\x36\xe3\xc1\x82\x8b\x2e\x43\xd7\xa3\x6d\ +\x52\xb0\xcc\xeb\x23\xe3\x13\xba\x6d\x5f\xc5\x76\x6b\x0f\x7d\xa8\ +\x54\x65\x11\xa2\x38\x29\xfd\xfb\xff\xaf\x98\xb9\xfc\xb2\xa9\xe7\ +\xdc\xaa\x05\x13\x53\x50\x81\x21\x8f\xc3\x9e\xe6\x9b\xce\xc1\x14\ +\x50\x6a\x85\x0e\x38\xae\x86\x92\x9b\x58\x3c\x4f\x14\xbb\xdb\xe2\ +\xc1\xba\x5a\x50\x52\x78\x63\x52\xe4\x4a\x45\x0a\xb7\x1b\x9d\xd0\ +\xc2\x84\xcb\x01\x7c\xfd\xa6\xf1\x4a\x21\xf2\xe9\xae\xec\x75\x8e\ +\x53\xf8\x68\xa3\x82\xca\xd4\x9d\x5c\xce\xc5\xdf\xdb\x9e\xfd\xcc\ +\xe7\x47\xc4\xc3\xc3\x4f\xf7\x1f\xfb\x4a\x53\x10\xfd\x1c\xed\x85\ +\xa2\x41\x84\x3f\x0b\xc5\x97\xe5\x6d\x51\x35\x89\xf8\xa8\x3e\x4a\ +\x69\xd9\x8d\x0f\xed\x46\x41\xf9\x8f\x6f\x2d\x8c\xfd\xec\xcb\xbb\ +\xc4\x53\x7a\xe7\xd1\xe0\x41\x03\x06\xaf\x83\x80\x81\xa9\x49\x00\ +\xa6\x4d\x05\x36\xca\xd2\x36\x14\x06\x84\xf4\x3a\x22\xa0\xc0\x5f\ +\xd8\x05\x21\x47\xbe\xbd\x5b\xc0\x5b\x5c\x4d\x13\x14\xca\x34\x81\ +\x85\x4d\x6a\x28\x13\x61\xf5\x51\x12\x0c\xc2\x1f\x3d\x2c\xf6\x67\ +\x9d\x89\x4b\x84\x53\xf8\x58\x94\x41\x05\x9e\xda\x1e\xf5\xc4\x75\ +\x7f\x18\x4d\xff\xc7\x47\x77\x8c\xfe\xe2\x0a\x4f\x64\x4b\xb7\x06\ +\x53\xb0\x8c\xb6\xa0\x81\x00\x45\x83\x46\x35\xe1\xf2\xb8\x2e\xb6\ +\x6b\x22\xac\x3e\x32\x54\x72\xf7\xa8\x8c\x8d\x3f\x51\x2a\x1e\xb4\ +\xc0\xf8\xc9\x09\xff\x4f\x8f\x15\xb3\x17\x7c\x66\xbb\xb8\x6f\xff\ +\xd3\xc1\x02\x03\x87\x29\x88\xd4\xa2\x96\x02\x1b\x6a\xb1\xcc\x18\ +\x4f\xc9\xa7\x46\x73\xce\xfd\x70\x05\xd1\x00\x4e\x5a\x28\x9c\xcc\ +\xe8\xa4\x46\xf3\x28\x80\x96\x69\x5d\xd3\xb8\x5c\x7f\xdf\x17\x1e\ +\x11\xfb\x87\x33\x13\xdf\x2a\x14\xdd\xd3\x94\x8a\xff\xa4\x9e\xc0\ +\x52\xd4\x47\x24\x7b\x7c\xf9\xe3\xdb\xd2\xe9\x0f\x7f\x78\x47\xe6\ +\x7f\xbf\xb4\x57\x6c\x21\xa7\xb8\x10\xde\x6f\x10\xb5\x19\x88\x06\ +\x06\x0c\x18\x28\xd3\x9b\x1a\xe8\x3a\xa6\xf6\x51\x4d\x63\x72\x93\ +\xd8\xe3\xe7\xdc\x83\xfa\x94\x57\x70\xba\x53\xf8\x77\xff\x7e\x2c\ +\xfb\x3f\x10\x4c\x86\xa6\x02\x01\x0d\x1e\x34\x80\x60\x9e\xd6\x81\ +\x00\x4c\x39\x61\xf5\x0d\x07\x3a\x61\x69\x13\xfe\x66\xb0\x6b\x95\ +\x94\xea\x0c\x9d\x5d\x3c\x55\xd3\x9e\x04\xef\x99\x12\xea\xbe\x1f\ +\xec\xc8\x5c\xf6\xc8\xd4\x79\xdf\xa0\xba\x24\x9c\xbc\xc2\x26\x3e\ +\x9c\xe0\x30\xa5\x6a\xea\xe4\x66\xa0\x3c\x50\xb7\x68\x6d\xcb\x0a\ +\xff\xae\xd1\xc9\x5d\x8e\x3f\xf1\xeb\x01\x37\xf7\xab\x58\x52\x4e\ +\x48\x19\x5b\x2f\x95\xe8\x2e\x2d\x67\x44\xf9\x32\x9b\x57\xce\xa6\ +\x31\xa9\x7e\xb7\x2d\x97\xf9\xe1\x2f\x86\x72\x17\x5e\x9c\xce\xdd\ +\x7b\x73\x56\xec\xdf\xa1\x84\x9a\x34\xf7\x13\xeb\x20\x45\x71\xfb\ +\x80\xb8\x2d\x21\x90\xd4\x12\x4c\x30\xa5\xa2\xf0\x72\x23\x90\x7a\ +\x83\x8a\xc7\x2d\x4e\x2d\x13\x4a\x9e\xa9\x8d\x0d\x77\x33\x1d\x54\ +\x68\x23\xe7\x26\x1c\x75\xdb\x6d\x99\xec\x05\xff\xbb\x5b\xec\xd2\ +\x47\xa8\xe0\x73\x54\x26\x60\xdf\xd0\xfd\xc8\xf3\x5c\xf0\x19\xaa\ +\xa9\x84\x75\xc0\xd2\x02\x7e\xbb\x6a\xc1\x11\x45\x47\x7d\x52\xc8\ +\x42\xdd\x6f\x18\x6e\x24\x79\xdf\xdf\xf4\xc7\x74\xf6\x82\x8f\x8e\ +\x88\x87\xf5\x04\x61\x72\x68\x9c\xe4\x40\x10\x70\xb8\xb0\x9e\x4f\ +\x84\x38\x48\xe8\x60\x68\xe6\xa0\xc0\xf1\x00\x69\xf9\x2f\xc3\xe5\ +\xfa\x0f\xaf\x43\x85\x88\x2d\xef\x13\xf1\x1e\x4f\x24\x56\x7b\xa2\ +\x7f\x4d\x8f\x58\xd5\xdd\x2b\x56\xa5\xdc\xd4\x4a\xbf\x98\xec\x1a\ +\x2d\x8e\x0e\x15\xa4\xc8\x8f\x17\xc4\xc4\xdd\x23\x62\xe7\x43\x3a\ +\xaf\x03\x87\x33\xaa\x0f\x4f\xe0\x87\x38\x74\x47\xa1\x2d\x14\x87\ +\xf6\x95\x8a\xda\x14\xec\x83\x29\xda\x0d\xd2\x30\xa1\x4d\x71\x3d\ +\x10\x6f\x1f\x04\x60\xda\x68\x82\xfe\xdf\x70\xd8\x82\xe3\xa4\xef\ +\xfd\x8f\x3e\x46\x7b\xf1\x54\xf5\xc1\x81\xa7\x5d\x61\x8f\x27\xaf\ +\xfc\xd9\x8e\xd1\x6b\x36\x7a\x62\xa2\xc2\xd1\x3d\xee\x2f\x14\xee\ +\x6b\x3a\x76\xf8\x38\xa2\x0a\xdb\xe7\x40\x43\xf7\xb5\xc9\xb9\x2d\ +\x2d\xe2\xc6\x23\xc4\x2a\x51\x48\xfe\xab\xf0\x13\xff\x50\xaa\x6a\ +\x3b\xf2\xc2\x7b\xec\x91\xdc\xf8\xf7\x3f\x35\x24\xfe\x48\x5e\x0d\ +\xc2\x9d\x9f\x0e\x00\x93\xda\x66\x00\x30\x70\x3c\xe0\xc4\x8f\xa7\ +\x1f\xf0\x7c\x36\x28\xa6\x0f\x4f\xe2\x4b\xb5\x52\x42\x24\xdc\x84\ +\x88\x69\xa3\xc4\xf5\xe4\x10\xd7\x1b\xef\xe6\xf4\xe7\x23\x3a\xd5\ +\x9d\xc2\xe5\xf9\xa9\x0a\x10\x85\xf6\x93\x0a\xed\x81\x42\xbb\x52\ +\xfb\x72\x1b\xd2\x3c\x15\xb6\xc7\xbf\x03\xa1\xf9\x46\x12\xf4\xfd\ +\xba\x23\xc5\x60\x2c\xd7\xf5\x77\x52\xc5\xfe\x2b\xa8\x9d\xe3\x04\ +\xa7\xb8\x94\xff\xc0\x9f\xd3\xd9\x0b\xbf\x39\x2a\x36\x6d\xf5\x84\ +\x82\x9d\x64\x00\xf7\x8b\x69\xbf\xe3\xbe\xa5\x63\x88\xa7\x20\x5c\ +\x1e\xd7\xc7\x36\x71\x1f\x63\xda\x10\xc0\xe1\x2d\x6d\xc2\x19\x7b\ +\xc4\x44\x77\x7f\xaa\x4f\x49\xe7\x74\x3d\xf2\xda\xee\x74\x00\x04\ +\x93\x4d\xb9\xf1\x0b\x3f\x37\x24\xee\xdf\x3d\xdd\x31\xd1\x61\xd1\ +\x81\xf9\x60\xe0\xc2\xcf\x71\x79\x5c\xa7\xd5\xe0\x64\x8f\x13\x3f\ +\xaa\x7c\xb4\x02\xa9\x1e\xbd\xce\x3e\x2d\xb8\xff\xf5\x29\x4f\x38\ +\xfa\x08\x44\x8e\x6a\xe9\xa0\x22\xb3\x5a\xba\x23\xb8\x6c\x18\xd8\ +\xe7\x30\x51\xfb\x80\xd0\x66\x90\xe2\xa4\x41\x27\x0f\x53\x19\x04\ +\xeb\x60\x7b\xb4\x7d\x0a\x2f\x37\x12\xb0\x8b\xc8\xed\x16\xf9\xe3\ +\x06\xbb\x07\x1c\x29\x5f\xae\x8b\x3d\x50\x37\x57\xf1\x94\x1c\x19\ +\xf1\xe4\x2f\x7e\xb8\x63\xec\x5b\x3f\x1c\x17\xbb\xe0\x94\xa7\xde\ +\x19\xe8\x57\x54\x08\xdd\x4f\x20\xd8\x77\x28\xdc\xa7\x74\xff\xd2\ +\x7a\x5c\x1e\xd3\xa6\x63\x03\x4a\x1b\x71\xb9\x76\x8c\x37\x2f\x5c\ +\xa0\x5c\x5f\x2d\xd7\xd3\x12\xfc\xd4\x68\x5b\x10\x5c\x33\x51\xfe\ +\x7d\x77\xa7\xc7\xbf\xf9\xa5\x27\xc5\xa6\x27\xa7\x3b\x2b\x75\x7e\ +\x74\x64\x14\x75\x7a\x2e\xfe\x19\xac\xdb\x6a\x70\x60\xf3\xc1\x0e\ +\xa2\x47\x1a\xd3\x02\x0c\x49\xa9\x00\x4c\x39\x26\x9b\x61\xca\x85\ +\x76\x82\x14\xc4\x03\x0a\xa4\x34\x98\xf0\xf5\xa1\x5d\x0e\xd6\x99\ +\x3e\x6b\x24\x81\x3d\xe0\x8a\xfc\x9b\xe7\xe5\xa4\x23\xd5\x32\x29\ +\x62\xcf\x82\xba\xb9\x86\x36\x6c\x4e\x1f\x95\xdc\xf3\xe0\xe8\xd8\ +\x37\xfe\x73\x77\xee\xe6\x3f\x78\xa2\x00\xaf\x9e\xd1\x98\x7c\x82\ +\xee\x0f\x2e\xba\xef\x2b\xe5\x51\xb8\x0e\xa4\x4d\xc7\x06\x94\x36\ +\xe3\xcd\x23\x63\x69\xb7\x2f\x36\xa9\x47\xdb\x49\xda\xf5\xe6\x95\ +\xaa\x5b\x46\xf0\xab\x81\x45\x75\xf3\xb5\x43\xd9\x6f\x7f\x37\x1b\ +\x5c\x44\x44\x47\x45\x87\x07\x30\x4f\x9d\x9a\x3b\x3d\x15\x2e\x87\ +\xcb\xa2\x38\xa6\xba\x46\x83\x01\x01\x07\x3e\xa4\xa6\x80\x51\xa9\ +\x1e\x85\xd0\x3e\x72\x51\x5b\x80\x4c\xf6\xa2\xa2\xc1\x83\xe6\xa9\ +\xb8\x5d\xb9\x5a\x05\xda\x44\x9e\xbe\x5f\xe4\x7b\x7b\x93\x0b\xa5\ +\xeb\xbc\xb2\x54\x37\x27\x80\x3f\xbe\x0a\x52\x3e\xbe\x7d\xd2\xb9\ +\xf0\xd3\xc3\x99\x1f\x5c\x3f\x2e\xf6\x0c\xe9\xa3\x12\x6d\xf4\x4a\ +\xbe\x01\xf0\x7d\x66\xf2\x09\xbe\xbf\xe9\x32\x5c\x26\xf0\xbb\x1a\ +\x86\x0d\x28\x6d\xc6\xa5\xda\x19\xde\x94\xce\x0f\xc7\xfb\xdd\x7d\ +\xca\x71\x5f\xaa\x3d\xaf\x65\xa7\xbe\xe0\x01\xbc\x3d\xbe\xfc\xf9\ +\x8f\x86\x33\x97\xff\xdc\x13\x99\xcc\x54\x35\x77\x4a\x3a\x08\x40\ +\xe8\xd0\xe8\xf0\x74\x00\xa0\x70\x19\x14\x6f\xa3\x95\xd0\x01\x8f\ +\x79\x2e\x1a\x48\x78\x50\x01\x30\x45\x78\xff\x50\xd8\x77\xb4\x83\ +\xc9\x56\x20\x3c\x0a\xe1\x13\x4a\xa5\x09\x86\x7f\x17\x88\xc2\xcb\ +\xcd\xa0\x6c\x9f\x11\xbd\xed\x27\x2f\xec\x05\xdf\x3e\x46\x0a\x7d\ +\x44\x3e\x07\x80\xdb\xc3\x77\xfb\xce\x4f\x2e\xdd\x9e\xfe\xe6\xa5\ +\xe9\xdc\xe6\xcd\x4a\xf8\xe3\xd3\xfd\x02\x41\xdb\xd3\x7d\x03\xa2\ +\xfb\x0f\x44\xf7\x6d\x35\xe1\xf2\xbc\x4d\x54\x53\xb0\x01\xa5\xbd\ +\x08\x1c\x2f\xaf\x7d\xf3\xc8\x25\x85\x2d\x31\xe9\x3c\xe9\x08\xf7\ +\xb9\xba\xaa\xa9\xe7\x99\xe1\xaf\xac\xbc\xf0\x1f\x7d\x3c\x3f\x76\ +\xf1\xa7\x86\x73\xbf\xb9\x53\x1f\xae\xeb\x6d\xa2\x4e\x89\x79\xea\ +\xb0\x28\x3e\x18\xf8\xc0\xc0\xcf\x51\xb8\x0e\xa4\x08\xcd\x37\x9b\ +\xf2\xa4\x47\xd2\x5a\x05\x60\x0a\xa0\x4d\xb8\xb8\x0d\x40\x26\x5b\ +\xf1\x80\x51\x49\xb4\x0d\xfc\x0e\xfa\x9d\x00\x4f\x5b\x41\x60\x2b\ +\x78\x54\xfe\x2f\xf7\x4d\xee\x4f\xf5\x38\x42\x1f\xa5\x98\x7e\x5b\ +\xa7\x63\x08\x9e\x33\x2a\xca\x9f\xfe\x7a\x7b\xfa\xfc\x0b\xd2\xb9\ +\x3f\xde\xa1\xc7\x0b\xfc\x0e\x82\x86\xfa\x02\x42\xf7\x01\x8a\xee\ +\x33\xba\x2f\x67\x22\x58\x87\xee\xf3\x96\x60\x03\x4a\x7b\x11\x38\ +\x20\x9c\x63\xde\xb9\x57\xe4\x36\xc4\x8b\x7f\x4a\xf9\x5d\xb7\x3b\ +\x8e\xbb\x44\x4a\x7f\x3d\x7c\xd6\x48\x82\x40\x22\xe5\x13\xbb\x26\ +\xe4\x0f\x6f\xde\x39\xf6\xe3\x6f\x8f\x8a\xc7\xb6\xeb\xbf\xb2\x98\ +\x77\x62\x11\x1d\x97\x0a\x9d\x1a\x1d\x9c\x3b\x3c\x75\x7c\x2a\x5c\ +\xbf\x1d\xa0\x81\x01\x05\x98\xf2\xb4\x4c\x53\x84\xda\x06\x85\xfd\ +\xe5\x36\xa2\x79\x2a\xd3\x91\x09\x8a\xaf\x8f\x6d\x63\x8a\x02\x78\ +\xda\x2a\xca\xb6\x7b\x5c\xf7\xeb\x45\x03\xf3\x0a\xae\x94\x2b\x9b\ +\xe1\xdf\x51\x03\x6f\x3e\x48\xfb\xe2\x37\xf7\x66\x32\x17\x7c\x71\ +\x77\xee\xf6\xdf\x79\x62\xe2\x29\x6d\xdd\x10\x03\x9b\xf6\x03\xdd\ +\x5f\x54\x74\x1f\x57\x13\x2e\x4f\xdb\x03\x20\xc5\x7c\xd3\xe0\x03\ +\xc0\xd2\x5a\xe8\xc4\x04\x72\x4e\xd1\x41\xff\xdc\x55\x62\xd9\x22\ +\xd9\xf5\x97\x71\x37\xf1\x36\x09\x3f\x59\x1a\x31\x30\x30\xb2\xca\ +\xbf\x67\x6b\x61\xec\xc6\xef\xee\x12\x7f\xda\xef\x09\x1f\xae\x95\ +\xb0\x47\xc3\xa9\x73\x52\xe7\xa5\x83\x00\x52\x9c\xfc\xf8\xed\x8d\ +\xf4\xd6\x46\x14\x0e\x0a\x1c\x10\x54\x00\xa6\xcd\x84\xee\x03\x00\ +\x4f\x69\x41\x0a\x82\x3f\xc2\x30\x45\x55\x7a\x81\x1f\xee\x4b\x2a\ +\x84\xf7\x19\x6d\xc9\x85\x36\x32\xe5\xe9\x72\xd8\x06\xb6\x07\xd0\ +\x3c\x40\xf3\xad\x00\xfb\x1f\xd8\xe6\x7f\x84\x48\x1e\xbd\xa6\xe7\ +\xf5\x31\xe9\x7e\x43\x0a\x55\xf1\x81\xd1\x76\x01\xee\xdc\xca\xf8\ +\xea\xb7\x0f\x8c\x65\x6e\xfc\xd1\x7e\xb1\xf5\x49\x4f\xa8\x7d\xe1\ +\x76\xe5\xb6\xa7\xa2\xfb\x8e\x0a\xf7\x31\x8e\x11\x9a\x52\xe1\x72\ +\x28\x5c\x9f\x7f\x0f\x80\x69\x43\xa1\xce\x6d\x69\x3d\xb8\x3f\x70\ +\xe2\x09\x26\xb1\xe3\xf4\xe4\xb4\x58\x4f\x5a\x47\xf5\x88\xee\xe7\ +\xcc\x13\x47\x0e\x26\x93\xaf\x72\x9c\xae\xe7\xb8\xc2\x7f\x96\xf4\ +\xd5\x7c\x58\x61\x26\x40\x00\xc9\x29\xf9\xe8\xb8\xf2\x9f\xd8\x3e\ +\x96\xb9\xfb\xb6\xfd\xe2\x89\x07\x85\x98\xd8\xa7\x07\xc6\x93\xd3\ +\x1d\x8f\x3b\x21\x3a\x28\x8a\x0f\x02\x48\xa9\xc3\xd3\x80\x42\xeb\ +\x51\x74\x20\xf0\xb6\x01\x4c\x9b\x0d\xdf\x0f\xe5\x7d\x51\x12\x06\ +\x0b\x1e\x3c\x78\x19\x44\xdb\x40\x21\xbc\xcf\x68\x07\x6a\x4f\x14\ +\x96\x79\x3d\x8a\xb7\x01\x60\x1d\x42\xf3\xad\x02\xfb\x0f\xa9\x73\ +\xa4\xd6\xa7\xd7\x8a\xd5\xfd\x32\xf9\x7e\xa9\x12\xef\x9a\xfa\xa8\ +\x3d\x81\x53\x5b\x23\x45\x71\xcd\xef\x87\xd2\x37\x5c\x2f\xc4\xfe\ +\x3d\x95\x03\x09\xc0\xf7\x03\x15\xdf\x7f\x28\x1c\x13\x28\x3a\x56\ +\x78\x1e\x97\xa1\xeb\x63\xdb\x90\x02\x3c\x6d\x28\xd4\xb9\x2d\xad\ +\x87\x0e\xb6\x60\xc0\x95\x14\x4c\x50\xf3\x74\x50\x81\xc0\xb2\xa0\ +\x4b\x24\x93\x4a\xc4\xbb\x95\x48\x3c\xab\x57\x0c\xae\xeb\x12\xeb\ +\x12\x8e\x58\x98\x74\x93\x87\xc6\xfd\xde\x05\xbe\x12\x8e\x5e\x59\ +\x6a\x0f\x0a\x54\xf4\x8b\xe3\xfb\xf3\xa3\xc3\x63\xbe\xc8\x6c\xdb\ +\x27\x9e\xfc\xbd\x10\x69\x78\x45\x30\x5c\x17\x81\x20\x02\x83\x02\ +\xbc\xd2\x00\x75\x42\xea\x98\xd4\x71\x51\xe8\xdc\x20\x70\x76\x1a\ +\x44\x66\x7a\x74\x82\x6a\x15\x74\x3f\x00\x18\x18\x70\x7f\x50\xf1\ +\x60\x42\xeb\x61\x1d\x93\x10\xde\x5f\x93\x5d\xd1\xb6\xbc\x0e\xc5\ +\xd7\x05\x01\x34\x0f\xd0\x7c\x2b\xc1\xfe\xa3\x2d\x82\xa3\xf0\x7f\ +\x5d\xd5\xff\xd2\x94\x23\xce\x97\x52\xad\x0c\x3e\x6d\x23\x68\x20\ +\xf9\x95\x10\xa3\xfa\x88\x04\x2e\xb6\x03\x61\x36\x35\xed\x03\xbe\ +\xaf\x4c\xa2\x63\x02\x85\x63\x85\xa7\x54\xb8\x3e\xb6\x4f\x85\xd0\ +\x7c\xc3\xa0\xce\x6d\x69\x3d\x07\x0c\x36\x22\x9c\xb0\xf0\x37\x12\ +\xe0\x0e\x99\x78\x9f\xd6\xa0\x96\x5e\x20\x9e\x88\xeb\x54\x89\x98\ +\xce\xc7\xb4\x77\xb9\x20\xed\x45\x4e\x51\x8f\x08\x08\x20\xda\x13\ +\x83\x07\xef\xb4\x90\x4a\xfb\xdf\xe4\x8c\x90\x82\xd0\x79\xd1\x91\ +\xb9\x83\x83\xd3\xa3\xaa\x05\x13\x6c\x03\xdb\x06\x01\x98\xb6\x02\ +\x6a\x17\xdc\x17\x28\xba\x4f\xa8\x68\x30\x41\xe1\xf2\x90\x02\xd8\ +\x06\x40\xfb\x49\x85\xf6\x40\x9b\xd0\x32\xaf\xa7\x29\x0a\xa0\x79\ +\x80\xe6\x5b\x0d\xb7\x45\x60\xab\x0f\x08\x91\x3a\x65\x4d\xcf\x5f\ +\x26\x5c\xf7\x4b\xfa\x10\x7a\x21\x2c\xd0\x4a\xe0\x7a\x62\xd1\x11\ +\x3b\x47\x0a\xf2\x37\x10\x48\xae\xd1\x47\x24\x24\x90\x20\xdc\xae\ +\x26\xfb\x43\x6a\xda\x67\x54\x38\x0e\xe8\xb8\x00\xd1\xb1\xc2\xc7\ +\x0d\x88\xb7\x83\xdf\x0b\x02\x78\xda\x70\x70\xe7\x5a\xda\x03\xe3\ +\x60\x23\xe2\x01\xc5\x94\xa2\x30\x00\xc1\x7a\xd8\x16\xb6\x0b\x60\ +\x5a\x09\x93\x63\xa2\xe3\x52\x47\xe6\x8e\x4e\x83\x07\x17\x7e\x8e\ +\xeb\x61\x7b\x54\x00\xa6\xad\x82\xda\x07\xed\x06\xa2\xf6\xa4\xe2\ +\x75\x74\x59\x14\x80\x29\xef\x27\xb5\x03\xda\xd5\x94\xa7\xa9\x49\ +\x00\xa6\x00\xcd\xb7\x0b\x68\x83\xb2\x9d\x56\x6b\x7d\x60\x85\x58\ +\xb0\x26\xd1\xf5\x96\x98\x88\x9d\xa7\x2b\xbb\x82\x25\x9a\x0c\x3c\ +\x77\x05\x0f\xf1\x6e\xf7\xc6\xae\xbf\x69\xa7\x78\xe8\x1e\x21\x26\ +\x23\x08\x24\x98\xa7\xfb\x0f\x7d\x9f\xe6\x21\xa5\xc2\xf1\x62\x12\ +\xae\x0b\xa2\xdf\x05\xe0\x77\x02\x98\x36\x05\xdc\xb1\x96\xf6\x01\ +\xf6\x09\x15\x4e\x50\x18\x20\x4c\x41\x85\xe7\x71\x19\x5c\x8f\xb6\ +\x05\x29\x80\x69\x25\xb8\x63\x82\xb8\x13\xa3\x73\xa3\xa3\xf3\xc0\ +\x41\x85\xcb\xa0\xb0\x1d\x2e\x00\xd3\x56\xc2\x6d\x05\x29\xaa\x3c\ +\x19\xb2\x3c\x4d\x4d\xa2\xd0\xbe\x52\x51\xfb\xf2\xba\x4a\x02\x30\ +\x05\x68\xbe\x9d\x40\x3b\x40\x8a\xf6\x83\x97\x70\x3a\x1f\x59\xae\ +\x83\x4a\x57\xd7\xd9\x09\x19\xff\xa0\xf4\xd5\x02\x58\xa8\xd1\x04\ +\x47\x23\x42\x6e\xdf\x3b\x29\x7f\x7d\xdb\x53\xa3\xbf\xbb\xb9\x74\ +\x7d\x04\x6e\x4c\x01\x27\x25\x70\x7b\x52\x9b\xd3\xbc\x69\xbf\x41\ +\xca\x85\x63\x80\x8e\x89\x4a\xa2\xeb\xa0\xf0\x7b\xb8\x10\x9a\x6f\ +\x38\xdc\xc1\x2d\xad\xc7\x38\xd8\x4a\xaa\x16\x54\x50\xa6\x80\x02\ +\x79\x48\x51\x00\xa6\x1c\x74\x42\x9a\x82\xd0\x81\xa9\x43\x53\x47\ +\x07\xf1\x60\x42\xeb\xa8\x70\x7d\x6c\x1b\x85\xd0\x7c\xab\xa0\xf6\ +\xa1\x36\xa3\xa2\x76\xe5\x36\xe6\x32\x81\xfd\xa4\x36\x40\x99\xec\ +\xc3\x05\xf0\x14\xa0\xf9\x76\x03\x6d\x81\x76\x01\xbb\x05\x5a\xa4\ +\xfd\xf5\x84\x01\x11\x7f\xe3\x80\x58\xbb\x24\x9e\x7c\x67\x5c\x25\ +\xde\xaa\x17\x68\xc8\xd1\x8a\x0f\x77\x6b\x29\x75\xc7\xf6\x42\xe6\ +\xf7\x70\x77\x63\x66\xea\xa6\x14\x7e\x34\x02\x98\xec\x4a\x53\xcc\ +\xd3\xfd\x85\x79\xf4\x73\x2e\x1c\x03\x34\x35\x89\x7e\x86\xeb\xa2\ +\xf0\xbb\xb8\x10\x9a\x6f\x0a\x61\x4e\x6e\x69\x1d\xa1\x83\xad\x24\ +\x0c\x16\x34\xa8\x70\xc1\x67\x28\x5c\x0f\xdb\xa2\xed\xd3\x14\xe1\ +\x0e\xc9\xc5\x9d\x9a\x3b\x3d\x0d\x1e\x3c\x4f\x97\x07\x99\xda\x07\ +\x30\x6d\x07\xa8\x7d\xa8\xcd\x66\x22\x00\x53\x0e\xed\x33\xcf\x87\ +\x09\xe0\x79\x0a\x2f\xb7\x23\xdc\x46\xd4\xbf\xdd\x23\xb5\x1f\xbf\ +\xb4\x4b\x74\x3f\x6f\x50\x1c\x39\x3f\x99\x7c\x7d\x5c\x24\x5f\xe2\ +\x48\xb5\x41\x7f\x36\x6b\xe0\x74\x56\x5e\xc9\x47\xd3\x45\xf5\xc7\ +\x47\x26\xd3\xf7\x5c\xb1\x5f\x6c\x9d\xd0\xb6\x32\xdc\xdd\x08\x84\ +\x95\x69\x6a\x12\xfa\x35\xfa\xb8\x49\x38\x06\x68\x8a\x32\x95\xe9\ +\xb2\xf4\x3b\xb8\x00\x9e\x36\x95\x30\x27\xb7\xb4\x0e\xdc\x27\xa6\ +\xc1\x56\x1e\x70\x25\x61\xf0\xa0\x81\xa4\x96\x80\x02\x02\x30\xe5\ +\x50\xa7\xa4\x42\xe7\xe6\xa2\x03\xa0\x92\x70\x59\x6c\x8b\xb7\x8f\ +\xd0\x7c\x3b\x40\xed\xc4\x6d\x07\x29\x15\x60\x2a\xd3\x14\xe1\x7d\ +\xc6\xb2\x29\x4f\xcb\xa6\x14\xa0\xf9\x76\x87\xda\x84\xfa\x67\xd9\ +\x77\xfb\xb4\x2f\xaf\xd0\x47\xe0\x83\x29\x91\x38\xcc\x17\x5d\xcf\ +\xe9\x15\xab\x97\xa7\x52\x27\x76\xc7\xba\x8e\x75\x1d\xff\x10\x29\ +\x55\x9f\x2b\xd5\xa1\x7a\xc5\x94\x5e\xbe\x8c\x36\x42\xae\x08\x2f\ +\x82\xf6\x24\xfc\x1c\x4d\x7a\xcc\x53\x7f\x7e\x6a\x62\xf4\x91\xdf\ +\xef\x17\x4f\xfc\x59\x88\xc9\x89\xd2\x9d\x8d\x35\xde\xf2\x0b\x60\ +\x9e\xa6\x5c\xe8\xcf\x38\x26\xc2\x44\xc7\x01\xa6\x61\x79\x48\xb9\ +\xf8\xf7\xa2\x00\x4c\x01\x9a\x6f\x1a\xdc\xc1\x2d\xad\x87\xee\x13\ +\x3e\xd8\x50\x34\x60\xd0\x00\xc2\x83\x09\x08\xd7\x81\x36\x4c\x32\ +\x41\x1d\x14\x85\xce\xcc\x1d\x9c\x0f\x0c\x2e\xba\x0c\x8a\xb6\x07\ +\x02\x78\xda\x6e\x50\x5b\xf1\x3c\x96\x69\xca\xeb\x00\x9a\x07\x68\ +\x5f\xc3\xec\x50\x2d\x45\x78\xb9\xdd\xe1\xb6\xa2\xfe\x0d\x42\x7f\ +\x0e\xa4\x23\x46\x6c\x91\x0e\x2e\x03\x42\x24\xba\xe3\x22\xa1\x57\ +\x80\xfa\xb8\xee\x75\x0c\xf2\x0b\x75\xfd\x80\x12\x89\xcd\x52\xe4\ +\xb5\x63\x39\x45\x25\xa4\x3e\x24\x06\x89\x9c\xf6\x3e\x78\x0f\xdd\ +\x88\xb6\x11\x38\x62\x0d\x50\x5b\x52\x7b\x87\x89\xfa\x74\x25\xf1\ +\xf1\x50\x2d\x45\xd1\xef\x30\x09\xc0\x14\xa0\xf9\xa6\x82\x3b\xd5\ +\xd2\x5e\xe0\x7e\x81\x14\x65\x1a\x70\xd5\x44\x97\xc7\x36\xb0\x3d\ +\x00\x53\x0e\x75\x52\x2a\xea\xe4\x54\x30\x00\x4c\x83\x82\x0f\x0c\ +\x10\x6f\x13\x85\xd0\x7c\xbb\xc1\xed\x45\xcb\xdc\xa6\x3c\xad\x86\ +\xc9\x06\x3c\x05\xb8\x7d\x78\xb9\x93\x00\xdb\xa0\x7d\xa8\xaf\x82\ +\xd0\x87\xcb\x41\xa5\x24\xd3\x35\xc3\x98\xfe\x27\x58\x5e\x07\x10\ +\x5c\x1f\xdb\xa6\xdf\x81\x69\x18\x26\x3b\x43\xca\xf3\x20\xf4\x65\ +\x9a\x9a\x44\xc7\x00\x1f\x23\x61\x75\x54\xfc\xfb\x50\x00\xcd\x03\ +\x34\xdf\x12\xaa\x19\xd8\xd2\x1a\xf8\x00\x80\x94\x0e\x36\x2a\x1a\ +\x3c\x30\x4f\xcb\x90\xe2\xfa\x90\xa2\x00\x4c\x39\xdc\x61\x51\xdc\ +\xd9\xa9\xaa\x0d\x0c\x10\x6f\x0f\x85\xd0\x7c\x3b\xc3\xed\x46\xcb\ +\x61\xf9\x5a\xa8\x64\x0b\x93\x6d\x3a\xc5\x5e\x61\xa0\x7d\x20\x05\ +\x81\x8f\x52\x81\xff\x42\xc0\xc0\x14\x64\x0c\x28\x5a\xd4\xef\x51\ +\xd8\x2e\xfd\x9e\x4a\x70\xfb\x63\x19\xf3\x20\xea\xc7\xd4\xaf\x31\ +\x8f\xe2\xe3\x80\x8f\x8f\x4a\xe3\x04\xc4\xbf\x8b\x0b\xc0\x14\xe1\ +\xe5\xa6\x53\xcd\xc0\x96\xd6\x41\x07\x01\x15\x1d\x30\x28\x1c\x48\ +\x3c\x45\xe1\x7a\xb4\x1d\x00\x53\x0e\x75\x58\x2a\xee\xec\xa0\x7a\ +\x06\x06\xc0\xd3\x4e\x21\xcc\x76\xbc\x3e\x6c\x39\x8e\xa9\xff\xb5\ +\xd6\x75\x2a\xd4\x0f\x51\xd4\x6f\x31\x48\x80\x4c\x41\x04\x85\x9f\ +\x9b\xfc\x9e\x0a\xc0\x94\x43\xed\x0a\x79\x2c\x63\x9e\xfa\x30\xf5\ +\xeb\x30\x85\x05\x14\xd3\x67\xa8\xb0\xef\x01\x01\x3c\x8f\xd0\x7c\ +\x4b\x09\x33\xae\xa5\xf5\xd0\x7d\x83\x03\x02\x84\x03\x85\x0e\x1c\ +\x2a\x3a\xa8\xf8\xf2\xd8\x06\x08\xc0\x94\xc3\x1d\x18\x45\x9d\x9e\ +\x8b\xd7\xd3\xe5\x4d\x02\x30\x05\x68\xbe\xd3\x08\xb3\x23\x50\xe9\ +\x33\x4a\xb5\xfe\x77\xb2\x7d\x2a\x41\x7d\x11\x84\xbe\x8b\xc2\x80\ +\x82\x41\xc3\x14\x48\x30\x8f\xc2\x75\xb1\x4d\x14\x80\x29\x87\xfb\ +\x24\xa4\x5c\x26\x3f\xaf\x24\x53\xe0\xa0\x75\xb4\x2d\xda\xbe\x49\ +\x00\x4f\x01\x9a\x6f\x39\x61\xc6\xb5\xb4\x07\x7c\x10\x40\x0a\xc2\ +\xc1\x42\x53\x2e\xd3\x72\x28\x80\xe6\x39\xd4\x71\xa9\xa8\xc3\xf3\ +\x81\x40\xf3\x74\x19\xcc\x03\x3c\x8f\xd0\x7c\xa7\x13\x66\xd3\x99\ +\x32\x97\x6c\x52\x09\xee\x8f\x20\xea\xc7\x20\x1a\x2c\x4c\x81\xa4\ +\xd6\x80\x02\x02\x30\x45\xb8\x4f\x42\xca\xc5\x7d\xdd\x54\x0e\x3b\ +\xf2\x40\xc1\xe7\x74\x1d\xde\x2e\xa4\x5c\x00\x4f\x11\x5e\x6e\x39\ +\xdc\xb0\x96\xf6\x82\xee\x1f\x3a\x18\x50\x74\xd0\xd0\x41\xc4\x53\ +\x93\x00\x4c\x39\xd4\x81\xc3\x64\x1a\x08\x61\x83\x02\x04\xd0\x3c\ +\xc2\xcb\x73\x15\x93\xad\x0f\x96\xbe\x57\x83\xfa\x23\x0a\xfd\x19\ +\x44\x83\x05\x8a\x06\x11\x9a\xc7\xe5\xc3\x7c\x1f\xc0\x14\xa1\xfe\ +\x89\x29\x8a\xfb\x37\x8a\x97\xa9\x78\x60\x09\x5b\x17\xdb\xa5\x65\ +\x80\xd6\x23\x61\xf9\xb6\x82\x1b\xd6\xd2\x7e\xd0\x7d\x44\x07\x84\ +\x49\x74\x10\x55\x1b\x50\x98\x0f\x03\x9d\x16\x1d\xbb\x92\xf8\xe0\ +\x40\x01\x3c\x4f\xe1\x65\xcb\xc1\x09\xf5\x4b\x00\x7d\x17\x52\x2a\ +\x0c\x1a\x54\x61\xc1\x04\x84\x6d\x40\xca\xbf\x83\xc3\xfd\x95\x8a\ +\x06\x01\x14\x2f\x87\x89\x2e\x47\xdb\xaa\x24\x80\xa7\x08\x2f\xb7\ +\x15\x61\xc6\xb5\xb4\x17\x74\x3f\xd1\x81\xc1\xf3\xb5\x08\xe0\x29\ +\x87\x3a\x2d\xe4\xa9\x73\x57\x13\xc0\xf3\x34\x05\x68\xde\x62\xa1\ +\x7e\x88\x7e\x8a\xc2\xe0\x00\xa2\x41\x83\x8b\x7f\x8e\xeb\xf2\xf6\ +\x10\xcc\x73\xbf\x34\x29\x2c\x30\x70\xf1\x7a\xbe\x2e\xa4\x95\x04\ +\xf0\x14\xe1\xe5\xb6\x84\x1a\xd8\xd2\xde\x98\x06\x03\x4d\x79\xde\ +\x54\x07\xf0\x34\x8c\x30\x07\x87\x94\xe7\xc3\x3e\xa3\x29\xc2\xcb\ +\x16\x0b\x40\xfd\x11\xfd\x15\x04\x41\xc1\x24\x1a\x3c\x78\x40\x01\ +\xe1\xba\xb4\x2d\x10\x82\x79\xea\x8f\x90\x37\x89\x06\x85\x99\xe4\ +\xb1\x8c\xf9\x30\x01\x3c\x45\x78\xb9\xad\xa1\x06\xb6\xb4\x3f\x7c\ +\x7f\x61\xd9\x94\x56\xfa\x8c\xa6\x26\xc2\x9c\x9a\xa6\xa6\x3a\x53\ +\x4a\x31\xd5\x59\x2c\x88\xc9\x47\x41\x3c\x48\xd0\xc0\x61\x2a\x83\ +\x70\x59\x6c\x03\x15\x06\xf5\x5b\x2e\x1a\x2c\xc2\x52\xcc\xd3\xfa\ +\x6a\x02\x30\x05\x68\x1e\xe0\xe5\xb6\xa7\x92\x81\x2d\xed\x09\xdf\ +\x67\xb4\x8c\xf9\x5a\xeb\xaa\x11\xe6\xec\x98\xaf\x56\x87\x98\xea\ +\x2c\x16\x13\xdc\x5f\x21\x05\xd1\x20\x51\x4d\x74\x79\x2a\x00\x53\ +\x0e\xf5\x5f\xae\xb0\x60\x81\x79\x53\x00\xc1\x3a\x80\x7f\x06\x60\ +\x0a\xd0\x3c\xc0\xcb\x1d\x43\x98\x71\x2d\xed\x8f\x69\xdf\xd1\xba\ +\x5a\xf2\xb5\x50\xab\xe3\x9b\x06\x41\xc7\x0e\x0c\x4b\xcb\x30\xf9\ +\x2a\xa4\x20\x1e\x2c\x78\x00\xe1\x9f\x73\x01\x98\x72\xd0\x57\x21\ +\xad\x24\x1e\x3c\x4c\xc1\x84\x0a\xe0\x79\x84\xe6\x01\x5e\xee\x38\ +\xc2\x8c\x6b\xe9\x1c\x4c\xfb\xb0\xd6\xba\x99\x60\x72\xf6\xb0\x01\ +\xd0\xf1\x03\xc3\xd2\x52\xa8\xaf\x62\x1e\x52\x14\x0d\x18\x61\x41\ +\x04\xcb\x00\xad\xaf\x04\xf8\x2d\xfa\x2e\xe6\xeb\x11\x10\x96\x52\ +\x4c\x75\x1d\x49\x35\x03\x5b\x3a\x87\x6a\xfb\x32\x8a\x7d\x5d\xc9\ +\xf1\xe7\xcc\xa0\xb0\xb4\x05\xd4\x5f\x31\x0f\x69\x25\x99\x8e\x4c\ +\x00\x9e\xe7\x50\xdf\x85\x3c\x96\x31\x5f\xa9\x0e\x05\xf0\xbc\x29\ +\xa5\x98\xea\x3a\x1a\x93\x71\x2d\x73\x83\x46\xef\xdb\x39\x37\x18\ +\x2c\x6d\x07\xf5\x61\x1e\x10\x20\x0d\x13\x60\x2a\xd3\x94\x42\x7d\ +\x99\x06\x80\x7a\xf2\x08\xcd\x23\xa6\xba\x39\x81\xc9\xb8\x96\xb9\ +\xcb\x6c\xf7\xf7\x9c\x1d\x00\x96\xb6\x87\xfa\x2c\xcf\x63\xd9\x94\ +\xa7\x65\x9a\x56\xc2\x14\x08\x20\xa5\xf9\x5a\x52\x80\xe6\x11\x53\ +\xdd\x9c\xa2\x16\x23\x5b\x2c\x16\x4b\x2b\xe1\xf3\x54\x58\xb0\x08\ +\x4b\x01\x9a\xaf\x84\x29\x28\xf0\x14\xa8\x54\x47\x31\xd5\xcd\x59\ +\x6a\x35\xb2\xc5\x62\xb1\xb4\x1a\x3e\x5f\x99\x02\x86\xa9\x0e\xe0\ +\xeb\x9a\xe0\x93\x7f\x58\xb0\x08\xcb\x53\xc2\xea\xe7\x34\xb5\x18\ +\xd9\x62\xb1\x58\xda\x05\xd3\x9c\xc5\xeb\xaa\x95\xab\xc1\x83\x41\ +\xb5\x32\x72\x50\x06\x11\x8a\x0d\x28\x16\x8b\xa5\x13\x09\x9b\xbb\ +\x2a\xcd\x69\xd5\xe6\xbb\xd9\x04\x8a\x83\x3e\x88\x50\x6c\x40\xb1\ +\x58\x2c\x9d\x4e\x2d\xf3\x58\x2d\xcb\xd4\x1a\x1c\x6c\x10\x09\xc1\ +\x06\x14\x8b\xc5\x32\xd7\x88\x72\x5e\xb3\xc1\xc3\x62\xb1\x58\x2c\ +\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\ +\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\ +\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\ +\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\ +\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\ +\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\ +\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\ +\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\ +\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\ +\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\ +\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\ +\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\ +\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\ +\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\ +\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\ +\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\ +\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\ +\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\ +\x8b\xc5\x62\xb1\x58\x2c\x16\x8b\xc5\x62\xb1\x58\x2c\x16\x4b\x0d\ +\x08\xf1\xff\x01\xab\xe7\xb7\x55\xf5\x7e\xcd\x69\x00\x00\x00\x00\ +\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x0a\x9c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x32\x32\x36\x32\x39\x38\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x37\x39\x35\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x38\x34\x20\ +\x31\x32\x38\x56\x31\x36\x68\x2d\x31\x32\x38\x76\x31\x31\x32\x22\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x44\x37\x33\x36\x33\x36\x22\x20\ +\x70\x2d\x69\x64\x3d\x22\x31\x32\x37\x39\x36\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x33\ +\x36\x20\x31\x32\x38\x56\x31\x36\x68\x2d\x38\x30\x76\x31\x31\x32\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x37\x33\x42\x32\x46\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x37\x39\x37\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\ +\x38\x20\x34\x31\x36\x76\x35\x32\x38\x68\x39\x32\x38\x56\x34\x31\ +\x36\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x45\x31\x38\x33\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x37\x39\x38\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x39\x37\x36\x20\x34\x31\x36\x76\x35\x32\x38\x68\x2d\x36\x34\x56\ +\x34\x38\x30\x48\x34\x38\x76\x2d\x36\x34\x68\x39\x32\x38\x7a\x22\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x44\x39\x42\x46\x36\x46\x22\x20\ +\x70\x2d\x69\x64\x3d\x22\x31\x32\x37\x39\x39\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x37\ +\x37\x2e\x34\x30\x38\x20\x33\x35\x32\x48\x31\x36\x76\x36\x34\x68\ +\x34\x38\x38\x2e\x32\x38\x38\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x46\x37\x33\x42\x32\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\ +\x38\x30\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x38\x33\x33\x2e\x32\x33\x32\x20\x34\x31\ +\x36\x48\x31\x30\x30\x38\x76\x2d\x36\x34\x48\x37\x36\x38\x2e\x37\ +\x38\x34\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x37\x33\x42\x32\ +\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x30\x31\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x33\x36\x38\x20\x36\x35\x36\x61\x39\x36\x2e\x30\x34\x38\x20\ +\x39\x36\x2e\x30\x34\x38\x20\x30\x20\x30\x20\x30\x2d\x32\x38\x2e\ +\x31\x31\x32\x2d\x36\x37\x2e\x38\x38\x38\x41\x39\x36\x20\x39\x36\ +\x20\x30\x20\x30\x20\x30\x20\x31\x37\x36\x20\x36\x35\x36\x76\x39\ +\x36\x68\x31\x39\x32\x76\x2d\x39\x36\x7a\x22\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\ +\x22\x31\x32\x38\x30\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x32\x30\x20\x35\x39\x32\ +\x68\x33\x32\x76\x31\x36\x30\x68\x2d\x33\x32\x7a\x22\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x44\x39\x44\x39\x44\x39\x22\x20\x70\x2d\x69\ +\x64\x3d\x22\x31\x32\x38\x30\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x20\x33\ +\x35\x32\x76\x36\x34\x63\x30\x20\x31\x32\x2e\x37\x33\x36\x2d\x35\ +\x2e\x30\x35\x36\x20\x32\x34\x2e\x39\x34\x34\x2d\x31\x34\x2e\x30\ +\x36\x34\x20\x33\x33\x2e\x39\x33\x36\x61\x34\x37\x2e\x39\x33\x36\ +\x20\x34\x37\x2e\x39\x33\x36\x20\x30\x20\x30\x20\x31\x2d\x36\x37\ +\x2e\x38\x37\x32\x20\x30\x41\x34\x37\x2e\x39\x33\x36\x20\x34\x37\ +\x2e\x39\x33\x36\x20\x30\x20\x30\x20\x31\x20\x31\x36\x30\x20\x34\ +\x31\x36\x76\x2d\x36\x34\x48\x33\x32\x4c\x31\x32\x38\x20\x31\x32\ +\x38\x68\x31\x38\x2e\x37\x33\x36\x61\x34\x38\x2e\x30\x33\x32\x20\ +\x34\x38\x2e\x30\x33\x32\x20\x30\x20\x30\x20\x31\x20\x39\x30\x2e\ +\x35\x32\x38\x20\x30\x68\x32\x30\x31\x2e\x34\x30\x38\x41\x38\x30\ +\x2e\x30\x34\x38\x20\x38\x30\x2e\x30\x34\x38\x20\x30\x20\x30\x20\ +\x31\x20\x35\x31\x32\x20\x38\x30\x61\x38\x30\x2e\x30\x34\x38\x20\ +\x38\x30\x2e\x30\x34\x38\x20\x30\x20\x30\x20\x31\x20\x37\x32\x2e\ +\x33\x32\x20\x34\x35\x2e\x37\x39\x32\x41\x36\x33\x2e\x37\x31\x32\ +\x20\x36\x33\x2e\x37\x31\x32\x20\x30\x20\x30\x20\x31\x20\x36\x32\ +\x34\x20\x31\x31\x32\x63\x31\x36\x2e\x32\x30\x38\x20\x30\x20\x33\ +\x31\x2e\x30\x32\x34\x20\x36\x2e\x30\x34\x38\x20\x34\x32\x2e\x33\ +\x32\x20\x31\x36\x68\x34\x39\x2e\x38\x32\x34\x41\x37\x31\x2e\x39\ +\x32\x20\x37\x31\x2e\x39\x32\x20\x30\x20\x30\x20\x31\x20\x37\x37\ +\x36\x20\x39\x36\x63\x32\x34\x2e\x39\x34\x34\x20\x30\x20\x34\x36\ +\x2e\x39\x34\x34\x20\x31\x32\x2e\x37\x30\x34\x20\x35\x39\x2e\x38\ +\x35\x36\x20\x33\x32\x48\x38\x39\x36\x6c\x39\x36\x20\x32\x32\x34\ +\x48\x34\x30\x30\x76\x35\x36\x61\x34\x30\x20\x34\x30\x20\x30\x20\ +\x31\x20\x31\x2d\x38\x30\x20\x30\x56\x33\x35\x32\x68\x2d\x36\x34\ +\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x43\x42\x45\x39\x45\x41\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x30\x34\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x38\x39\x36\x20\x31\x32\x38\x6c\x39\x36\x20\x32\x32\x34\x48\x34\ +\x31\x36\x63\x33\x32\x34\x2e\x37\x36\x38\x20\x31\x39\x2e\x39\x30\ +\x34\x20\x35\x33\x31\x2e\x32\x31\x36\x2d\x32\x38\x2e\x31\x31\x32\ +\x20\x34\x38\x30\x2d\x32\x32\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x41\x44\x43\x36\x43\x37\x22\x20\x70\x2d\x69\x64\x3d\x22\ +\x31\x32\x38\x30\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x39\x36\x20\x35\x32\x38\x6c\ +\x31\x37\x36\x2d\x31\x37\x36\x20\x31\x37\x36\x20\x31\x37\x36\x76\ +\x33\x35\x32\x48\x34\x39\x36\x56\x35\x32\x38\x22\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x46\x46\x44\x31\x34\x30\x22\x20\x70\x2d\x69\x64\ +\x3d\x22\x31\x32\x38\x30\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x36\x34\x20\x38\x38\ +\x30\x68\x34\x31\x36\x76\x36\x34\x48\x34\x36\x34\x7a\x22\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x35\x41\x42\x39\x34\x37\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x31\x32\x38\x30\x37\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x36\x38\x20\ +\x36\x35\x36\x61\x39\x36\x2e\x30\x34\x38\x20\x39\x36\x2e\x30\x34\ +\x38\x20\x30\x20\x30\x20\x30\x2d\x32\x38\x2e\x31\x31\x32\x2d\x36\ +\x37\x2e\x38\x38\x38\x20\x39\x36\x2e\x30\x34\x38\x20\x39\x36\x2e\ +\x30\x34\x38\x20\x30\x20\x30\x20\x30\x2d\x31\x33\x35\x2e\x37\x37\ +\x36\x20\x30\x41\x39\x36\x2e\x30\x34\x38\x20\x39\x36\x2e\x30\x34\ +\x38\x20\x30\x20\x30\x20\x30\x20\x35\x37\x36\x20\x36\x35\x36\x76\ +\x32\x32\x34\x68\x31\x39\x32\x56\x36\x35\x36\x7a\x22\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x44\x37\x33\x36\x33\x36\x22\x20\x70\x2d\x69\ +\x64\x3d\x22\x31\x32\x38\x30\x38\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x34\x38\x20\x35\ +\x36\x33\x2e\x34\x34\x61\x39\x32\x2e\x34\x20\x39\x32\x2e\x34\x20\ +\x30\x20\x30\x20\x31\x20\x34\x33\x2e\x38\x38\x38\x20\x32\x34\x2e\ +\x36\x37\x32\x41\x39\x36\x2e\x30\x34\x38\x20\x39\x36\x2e\x30\x34\ +\x38\x20\x30\x20\x30\x20\x31\x20\x37\x32\x30\x20\x36\x35\x36\x76\ +\x32\x32\x34\x68\x2d\x31\x34\x34\x56\x36\x35\x36\x63\x30\x2d\x32\ +\x35\x2e\x34\x35\x36\x20\x31\x30\x2e\x31\x31\x32\x2d\x34\x39\x2e\ +\x38\x37\x32\x20\x32\x38\x2e\x31\x31\x32\x2d\x36\x37\x2e\x38\x38\ +\x38\x61\x39\x32\x2e\x34\x20\x39\x32\x2e\x34\x20\x30\x20\x30\x20\ +\x31\x20\x34\x33\x2e\x38\x38\x38\x2d\x32\x34\x2e\x36\x37\x32\x7a\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x37\x33\x42\x32\x46\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x30\x39\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\ +\x39\x36\x20\x35\x32\x38\x76\x36\x34\x6c\x31\x37\x36\x2d\x31\x37\ +\x36\x20\x31\x34\x34\x20\x31\x34\x34\x76\x33\x32\x30\x68\x33\x32\ +\x56\x35\x31\x32\x4c\x36\x37\x32\x20\x33\x35\x32\x20\x34\x39\x36\ +\x20\x35\x32\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x44\x39\ +\x42\x32\x33\x36\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x31\ +\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x36\x34\x30\x20\x37\x32\x30\x6d\x2d\x31\x36\x20\ +\x30\x61\x31\x36\x20\x31\x36\x20\x30\x20\x31\x20\x30\x20\x33\x32\ +\x20\x30\x20\x31\x36\x20\x31\x36\x20\x30\x20\x31\x20\x30\x2d\x33\ +\x32\x20\x30\x5a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x37\x33\ +\x42\x32\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x31\x31\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\ +\x3d\x22\x4d\x36\x37\x32\x2e\x30\x36\x34\x20\x32\x36\x31\x2e\x35\ +\x38\x34\x76\x2d\x30\x2e\x30\x31\x36\x6c\x32\x34\x32\x2e\x36\x32\ +\x34\x20\x32\x33\x34\x2e\x36\x38\x38\x61\x33\x32\x20\x33\x32\x20\ +\x30\x20\x30\x20\x31\x20\x30\x2e\x37\x36\x38\x20\x34\x35\x2e\x32\ +\x33\x32\x6c\x2d\x30\x2e\x30\x31\x36\x20\x30\x2e\x30\x31\x36\x61\ +\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x31\x2d\x34\x35\x2e\x32\ +\x34\x38\x20\x30\x2e\x37\x38\x34\x4c\x36\x37\x32\x2e\x30\x36\x34\ +\x20\x33\x35\x30\x2e\x39\x36\x20\x34\x37\x34\x2e\x34\x39\x36\x20\ +\x35\x34\x31\x2e\x37\x34\x34\x61\x33\x31\x2e\x39\x33\x36\x20\x33\ +\x31\x2e\x39\x33\x36\x20\x30\x20\x30\x20\x31\x2d\x34\x35\x2e\x32\ +\x34\x38\x2d\x30\x2e\x38\x6c\x2d\x30\x2e\x30\x31\x36\x2d\x30\x2e\ +\x30\x31\x36\x61\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x31\x20\ +\x30\x2e\x37\x36\x38\x2d\x34\x35\x2e\x32\x33\x32\x6c\x32\x34\x32\ +\x2e\x30\x36\x34\x2d\x32\x33\x34\x2e\x31\x31\x32\x7a\x22\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x46\x37\x33\x42\x32\x46\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x31\x32\x38\x31\x32\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x30\x2e\x33\ +\x32\x20\x39\x36\x30\x2e\x37\x38\x34\x41\x31\x30\x34\x2e\x30\x36\ +\x34\x20\x31\x30\x34\x2e\x30\x36\x34\x20\x30\x20\x30\x20\x31\x20\ +\x31\x33\x36\x20\x38\x31\x36\x61\x31\x30\x33\x2e\x36\x38\x20\x31\ +\x30\x33\x2e\x36\x38\x20\x30\x20\x30\x20\x31\x20\x37\x31\x2e\x36\ +\x20\x32\x38\x2e\x35\x39\x32\x20\x37\x39\x2e\x35\x38\x34\x20\x37\ +\x39\x2e\x35\x38\x34\x20\x30\x20\x30\x20\x30\x20\x37\x31\x2e\x33\ +\x31\x32\x20\x32\x30\x2e\x38\x36\x34\x41\x31\x30\x38\x2e\x39\x34\ +\x34\x20\x31\x30\x38\x2e\x39\x34\x34\x20\x30\x20\x30\x20\x31\x20\ +\x32\x39\x36\x20\x38\x36\x34\x63\x34\x38\x2e\x35\x37\x36\x20\x30\ +\x20\x38\x38\x20\x33\x39\x2e\x34\x32\x34\x20\x38\x38\x20\x38\x38\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x43\x42\x45\x39\x45\x41\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x31\x33\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\ +\x36\x20\x39\x34\x34\x68\x39\x39\x32\x76\x36\x34\x48\x31\x36\x7a\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x35\x41\x42\x39\x34\x37\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x38\x31\x34\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x04\x80\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x30\x38\x33\x36\x35\x37\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x33\x39\x32\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x30\x6d\x30\ +\x20\x30\x6c\x31\x30\x32\x34\x20\x30\x71\x30\x20\x30\x20\x30\x20\ +\x30\x6c\x30\x20\x31\x30\x32\x34\x71\x30\x20\x30\x20\x30\x20\x30\ +\x6c\x2d\x31\x30\x32\x34\x20\x30\x71\x30\x20\x30\x20\x30\x20\x30\ +\x6c\x30\x2d\x31\x30\x32\x34\x71\x30\x20\x30\x20\x30\x20\x30\x5a\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x45\x38\x45\x46\x46\x38\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x35\x33\x39\x33\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x34\ +\x31\x2e\x36\x33\x37\x38\x31\x38\x20\x34\x30\x35\x2e\x36\x34\x33\ +\x36\x33\x36\x41\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x20\x32\x33\ +\x2e\x32\x37\x32\x37\x32\x37\x20\x30\x20\x30\x20\x30\x20\x31\x36\ +\x30\x2e\x38\x31\x34\x35\x34\x35\x20\x34\x34\x32\x2e\x31\x38\x31\ +\x38\x31\x38\x68\x33\x35\x30\x2e\x34\x38\x37\x32\x37\x33\x61\x32\ +\x33\x2e\x32\x37\x32\x37\x32\x37\x20\x32\x33\x2e\x32\x37\x32\x37\ +\x32\x37\x20\x30\x20\x30\x20\x30\x20\x31\x38\x2e\x34\x35\x35\x32\ +\x37\x33\x2d\x33\x37\x2e\x34\x36\x39\x30\x39\x31\x4c\x33\x36\x34\ +\x2e\x36\x38\x33\x36\x33\x36\x20\x31\x39\x30\x2e\x31\x36\x31\x34\ +\x35\x35\x61\x34\x36\x2e\x35\x34\x35\x34\x35\x35\x20\x34\x36\x2e\ +\x35\x34\x35\x34\x35\x35\x20\x30\x20\x30\x20\x30\x2d\x37\x35\x2e\ +\x31\x37\x30\x39\x30\x39\x20\x31\x2e\x38\x38\x35\x30\x39\x6c\x2d\ +\x31\x34\x37\x2e\x38\x37\x34\x39\x30\x39\x20\x32\x31\x33\x2e\x36\ +\x32\x30\x33\x36\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x36\ +\x39\x43\x42\x39\x31\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x33\x39\ +\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x33\x33\x37\x2e\x34\x35\x34\x35\x34\x35\x20\x38\ +\x38\x34\x2e\x33\x36\x33\x36\x33\x36\x61\x31\x37\x34\x2e\x35\x34\ +\x35\x34\x35\x35\x20\x31\x37\x34\x2e\x35\x34\x35\x34\x35\x35\x20\ +\x30\x20\x31\x20\x30\x20\x30\x2d\x33\x34\x39\x2e\x30\x39\x30\x39\ +\x30\x39\x20\x31\x37\x34\x2e\x35\x34\x35\x34\x35\x35\x20\x31\x37\ +\x34\x2e\x35\x34\x35\x34\x35\x35\x20\x30\x20\x30\x20\x30\x20\x30\ +\x20\x33\x34\x39\x2e\x30\x39\x30\x39\x30\x39\x7a\x22\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x32\x34\x37\x41\x44\x45\x22\x20\x70\x2d\x69\ +\x64\x3d\x22\x35\x33\x39\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x30\x37\x2e\x36\x33\ +\x36\x33\x36\x34\x20\x31\x38\x36\x2e\x31\x38\x31\x38\x31\x38\x61\ +\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x20\x32\x33\x2e\x32\x37\x32\ +\x37\x32\x37\x20\x30\x20\x30\x20\x30\x2d\x32\x33\x2e\x32\x37\x32\ +\x37\x32\x38\x2d\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x68\x2d\x32\ +\x30\x39\x2e\x34\x35\x34\x35\x34\x35\x61\x32\x33\x2e\x32\x37\x32\ +\x37\x32\x37\x20\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x20\x30\x20\ +\x30\x20\x30\x2d\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x20\x32\x33\ +\x2e\x32\x37\x32\x37\x32\x37\x76\x36\x37\x34\x2e\x39\x30\x39\x30\ +\x39\x31\x61\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x20\x32\x33\x2e\ +\x32\x37\x32\x37\x32\x37\x20\x30\x20\x30\x20\x30\x20\x32\x33\x2e\ +\x32\x37\x32\x37\x32\x37\x20\x32\x33\x2e\x32\x37\x32\x37\x32\x37\ +\x68\x32\x30\x39\x2e\x34\x35\x34\x35\x34\x35\x61\x32\x33\x2e\x32\ +\x37\x32\x37\x32\x37\x20\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x20\ +\x30\x20\x30\x20\x30\x20\x32\x33\x2e\x32\x37\x32\x37\x32\x38\x2d\ +\x32\x33\x2e\x32\x37\x32\x37\x32\x37\x56\x31\x38\x36\x2e\x31\x38\ +\x31\x38\x31\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x41\x30\ +\x42\x46\x46\x37\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x33\x39\x36\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x06\xca\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x38\x33\x32\x38\ +\x33\x30\x34\x39\x37\x31\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x32\x36\x32\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x31\x30\x32\x34\x20\x32\x39\x38\x2e\ +\x36\x36\x36\x36\x36\x37\x56\x38\x35\x2e\x33\x33\x33\x33\x33\x33\ +\x63\x30\x2d\x32\x35\x2e\x36\x2d\x31\x37\x2e\x30\x36\x36\x36\x36\ +\x37\x2d\x34\x32\x2e\x36\x36\x36\x36\x36\x37\x2d\x34\x32\x2e\x36\ +\x36\x36\x36\x36\x37\x2d\x34\x32\x2e\x36\x36\x36\x36\x36\x36\x48\ +\x32\x39\x38\x2e\x36\x36\x36\x36\x36\x37\x63\x2d\x32\x35\x2e\x36\ +\x20\x30\x2d\x34\x32\x2e\x36\x36\x36\x36\x36\x37\x20\x31\x37\x2e\ +\x30\x36\x36\x36\x36\x37\x2d\x34\x32\x2e\x36\x36\x36\x36\x36\x37\ +\x20\x34\x32\x2e\x36\x36\x36\x36\x36\x36\x76\x32\x31\x33\x2e\x33\ +\x33\x33\x33\x33\x34\x6c\x33\x38\x34\x20\x38\x35\x2e\x33\x33\x33\ +\x33\x33\x33\x20\x33\x38\x34\x2d\x38\x35\x2e\x33\x33\x33\x33\x33\ +\x33\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x34\x31\x41\x35\x45\x45\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x32\x36\x32\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x31\x30\x32\x34\x20\x32\x39\x38\x2e\x36\x36\x36\x36\x36\x37\ +\x48\x32\x35\x36\x76\x32\x31\x33\x2e\x33\x33\x33\x33\x33\x33\x6c\ +\x34\x30\x35\x2e\x33\x33\x33\x33\x33\x33\x20\x38\x35\x2e\x33\x33\ +\x33\x33\x33\x33\x20\x33\x36\x32\x2e\x36\x36\x36\x36\x36\x37\x2d\ +\x38\x35\x2e\x33\x33\x33\x33\x33\x33\x7a\x22\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x32\x42\x37\x43\x44\x33\x22\x0d\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x32\x36\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x30\x32\x34\x20\x35\x31\ +\x32\x48\x32\x35\x36\x76\x32\x31\x33\x2e\x33\x33\x33\x33\x33\x33\ +\x6c\x33\x38\x34\x20\x36\x34\x20\x33\x38\x34\x2d\x36\x34\x7a\x22\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x31\x38\x35\x41\x42\x44\x22\x20\ +\x70\x2d\x69\x64\x3d\x22\x32\x36\x32\x37\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\ +\x3d\x22\x4d\x31\x30\x32\x34\x20\x37\x32\x35\x2e\x33\x33\x33\x33\ +\x33\x33\x48\x32\x35\x36\x76\x32\x31\x33\x2e\x33\x33\x33\x33\x33\ +\x34\x63\x30\x20\x32\x35\x2e\x36\x20\x31\x37\x2e\x30\x36\x36\x36\ +\x36\x37\x20\x34\x32\x2e\x36\x36\x36\x36\x36\x37\x20\x34\x32\x2e\ +\x36\x36\x36\x36\x36\x37\x20\x34\x32\x2e\x36\x36\x36\x36\x36\x36\ +\x68\x36\x38\x32\x2e\x36\x36\x36\x36\x36\x36\x63\x32\x35\x2e\x36\ +\x20\x30\x20\x34\x32\x2e\x36\x36\x36\x36\x36\x37\x2d\x31\x37\x2e\ +\x30\x36\x36\x36\x36\x37\x20\x34\x32\x2e\x36\x36\x36\x36\x36\x37\ +\x2d\x34\x32\x2e\x36\x36\x36\x36\x36\x36\x76\x2d\x32\x31\x33\x2e\ +\x33\x33\x33\x33\x33\x34\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x31\x30\x33\x46\x39\ +\x31\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x32\x38\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x35\x38\x38\x2e\x38\x20\x32\x35\x36\x48\ +\x32\x35\x36\x76\x35\x39\x37\x2e\x33\x33\x33\x33\x33\x33\x68\x33\ +\x32\x34\x2e\x32\x36\x36\x36\x36\x37\x63\x32\x39\x2e\x38\x36\x36\ +\x36\x36\x37\x20\x30\x20\x35\x39\x2e\x37\x33\x33\x33\x33\x33\x2d\ +\x32\x39\x2e\x38\x36\x36\x36\x36\x37\x20\x35\x39\x2e\x37\x33\x33\ +\x33\x33\x33\x2d\x35\x39\x2e\x37\x33\x33\x33\x33\x33\x56\x33\x30\ +\x37\x2e\x32\x63\x30\x2d\x32\x39\x2e\x38\x36\x36\x36\x36\x37\x2d\ +\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x2d\x35\x31\x2e\x32\x2d\x35\ +\x31\x2e\x32\x2d\x35\x31\x2e\x32\x7a\x22\x0d\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2e\ +\x35\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x32\x39\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x35\x34\x36\x2e\x31\x33\x33\x33\x33\x33\ +\x20\x38\x31\x30\x2e\x36\x36\x36\x36\x36\x37\x48\x35\x31\x2e\x32\ +\x43\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x38\x31\x30\x2e\x36\ +\x36\x36\x36\x36\x37\x20\x30\x20\x37\x38\x39\x2e\x33\x33\x33\x33\ +\x33\x33\x20\x30\x20\x37\x35\x39\x2e\x34\x36\x36\x36\x36\x37\x56\ +\x32\x36\x34\x2e\x35\x33\x33\x33\x33\x33\x43\x30\x20\x32\x33\x34\ +\x2e\x36\x36\x36\x36\x36\x37\x20\x32\x31\x2e\x33\x33\x33\x33\x33\ +\x33\x20\x32\x31\x33\x2e\x33\x33\x33\x33\x33\x33\x20\x35\x31\x2e\ +\x32\x20\x32\x31\x33\x2e\x33\x33\x33\x33\x33\x33\x68\x34\x39\x39\ +\x2e\x32\x63\x32\x35\x2e\x36\x20\x30\x20\x34\x36\x2e\x39\x33\x33\ +\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x34\x36\ +\x2e\x39\x33\x33\x33\x33\x33\x20\x35\x31\x2e\x32\x76\x34\x39\x39\ +\x2e\x32\x63\x30\x20\x32\x35\x2e\x36\x2d\x32\x31\x2e\x33\x33\x33\ +\x33\x33\x33\x20\x34\x36\x2e\x39\x33\x33\x33\x33\x33\x2d\x35\x31\ +\x2e\x32\x20\x34\x36\x2e\x39\x33\x33\x33\x33\x34\x7a\x22\x0d\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\ +\x23\x31\x38\x35\x41\x42\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\ +\x36\x33\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x35\x2e\ +\x32\x20\x36\x38\x32\x2e\x36\x36\x36\x36\x36\x37\x48\x33\x37\x31\ +\x2e\x32\x4c\x32\x39\x38\x2e\x36\x36\x36\x36\x36\x37\x20\x34\x34\ +\x38\x20\x32\x32\x36\x2e\x31\x33\x33\x33\x33\x33\x20\x36\x38\x32\ +\x2e\x36\x36\x36\x36\x36\x37\x48\x31\x36\x32\x2e\x31\x33\x33\x33\ +\x33\x33\x4c\x39\x33\x2e\x38\x36\x36\x36\x36\x37\x20\x33\x34\x31\ +\x2e\x33\x33\x33\x33\x33\x33\x68\x35\x39\x2e\x37\x33\x33\x33\x33\ +\x33\x6c\x34\x36\x2e\x39\x33\x33\x33\x33\x33\x20\x32\x33\x38\x2e\ +\x39\x33\x33\x33\x33\x34\x20\x37\x32\x2e\x35\x33\x33\x33\x33\x34\ +\x2d\x32\x33\x30\x2e\x34\x68\x35\x31\x2e\x32\x6c\x36\x38\x2e\x32\ +\x36\x36\x36\x36\x36\x20\x32\x33\x30\x2e\x34\x4c\x34\x34\x33\x2e\ +\x37\x33\x33\x33\x33\x33\x20\x33\x34\x31\x2e\x33\x33\x33\x33\x33\ +\x33\x68\x35\x39\x2e\x37\x33\x33\x33\x33\x34\x6c\x2d\x36\x38\x2e\ +\x32\x36\x36\x36\x36\x37\x20\x33\x34\x31\x2e\x33\x33\x33\x33\x33\ +\x34\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x32\x36\x33\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x02\x64\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x36\x30\x39\x36\x31\x36\x37\x32\x32\x34\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x37\x32\x38\x31\x22\x20\x77\ +\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x31\x36\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\ +\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\ +\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x30\x37\x2e\x31\ +\x20\x32\x39\x39\x2e\x39\x63\x2d\x31\x34\x2e\x36\x2d\x31\x34\x2e\ +\x36\x2d\x33\x38\x2e\x34\x2d\x31\x34\x2e\x36\x2d\x35\x33\x20\x30\ +\x4c\x35\x31\x33\x20\x36\x34\x30\x2e\x35\x20\x31\x37\x32\x20\x32\ +\x39\x39\x2e\x39\x63\x2d\x31\x34\x2e\x36\x2d\x31\x34\x2e\x36\x2d\ +\x33\x38\x2e\x34\x2d\x31\x34\x2e\x36\x2d\x35\x33\x20\x30\x2d\x31\ +\x34\x2e\x36\x20\x31\x34\x2e\x36\x2d\x31\x34\x2e\x36\x20\x33\x38\ +\x2e\x34\x20\x30\x20\x35\x33\x6c\x33\x36\x34\x2e\x37\x20\x33\x36\ +\x34\x2e\x32\x63\x30\x2e\x38\x20\x31\x20\x31\x2e\x37\x20\x32\x20\ +\x32\x2e\x37\x20\x33\x20\x37\x2e\x33\x20\x37\x2e\x33\x20\x31\x37\ +\x20\x31\x31\x20\x32\x36\x2e\x37\x20\x31\x30\x2e\x39\x20\x39\x2e\ +\x37\x20\x30\x20\x31\x39\x2e\x33\x2d\x33\x2e\x36\x20\x32\x36\x2e\ +\x37\x2d\x31\x30\x2e\x39\x20\x31\x2d\x31\x20\x31\x2e\x38\x2d\x31\ +\x2e\x39\x20\x32\x2e\x37\x2d\x33\x6c\x33\x36\x34\x2e\x37\x2d\x33\ +\x36\x34\x2e\x32\x63\x31\x34\x2e\x34\x2d\x31\x34\x2e\x36\x20\x31\ +\x34\x2e\x34\x2d\x33\x38\x2e\x34\x2d\x30\x2e\x31\x2d\x35\x33\x7a\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x22\x20\x70\x2d\x69\x64\x3d\x22\ +\x37\x32\x38\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\ +\x76\x67\x3e\ +\x00\x01\x00\x63\ +\x00\ +\x06\xf6\xde\x78\x9c\xec\xbd\x09\x7c\x5c\x67\x75\x36\xfe\x22\x59\ +\x8b\x2d\xaf\x92\x35\xcb\x5d\x67\x46\xb3\xef\x23\x27\xa1\xd0\xb2\ +\x43\x4b\x4b\xcb\xd2\x42\xa1\x05\xfe\xe4\x6b\x29\x14\x28\x7b\x81\ +\xf0\x01\x25\xac\x09\x94\x84\x25\x40\x42\x48\x62\x5b\x9a\x7d\xb4\ +\xdb\x59\x08\x04\x28\x6d\x69\x29\x94\xf4\x2b\x3b\x94\x12\x5a\x42\ +\x42\x08\x84\x80\x49\x82\x8d\x7d\xff\x67\x7b\xef\x8c\x59\x42\x16\ +\xcb\x72\x92\x7b\x7e\xbf\x37\x33\x92\x15\xe9\xea\xea\x9e\xfd\x9c\ +\xe7\x51\xea\x41\x6a\xb3\x42\x79\x90\x8a\xa9\x6c\x6c\x93\xfa\x20\ +\xbc\x3f\xfb\x6c\xf9\x78\xfc\x41\xea\xe3\xf0\xb9\x33\xcf\xe4\x8f\ +\xdb\xef\x57\xea\xbb\xd9\x11\xf5\xe4\x27\xf3\xc7\x37\x3e\x5f\xa9\ +\xf3\xaf\x19\x51\x8f\x7f\x3c\x7f\x7c\xee\x53\x95\x7a\x75\x6a\x54\ +\x3d\xf2\x91\xf2\xff\x3f\x5a\xa9\x63\xaf\x1d\x55\xd5\xaa\xfc\xff\ +\x29\xa5\xd2\x1f\x1b\x55\xb1\x98\x7c\xbc\x53\xa9\xcf\x7f\x7b\x54\ +\xed\xdc\xc9\x1f\xff\xf5\x26\xf8\xff\x7f\x3c\xaa\xb2\x7c\x41\x4a\ +\x0d\xf1\xe7\x49\xe0\x3a\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\ +\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\ +\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\ +\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\ +\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\ +\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\ +\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\ +\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\ +\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\ +\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\x40\x02\x09\x24\x90\ +\x40\x02\x79\x40\xc9\x10\x1c\x24\xbb\x7f\xd0\xdd\xfc\x7f\x46\xe1\ +\x8c\xc3\xd9\x22\xef\x87\x4f\xfc\xa5\x05\x12\x48\x20\xeb\x2c\x13\ +\x70\xa2\x8a\x6d\xc0\x5d\x95\x9d\x70\x8a\x70\x1e\x0a\xe7\xb1\xa0\ +\xfe\xf8\x7e\x72\x1d\xae\x2d\x90\x40\x02\x59\x3f\x49\xc3\xf9\x0b\ +\x70\xe6\x97\xc2\x79\x03\xbc\xff\x43\x38\xb3\x70\xce\x90\xf7\x7f\ +\x36\xa2\xd4\x8b\xe1\xdf\xce\x52\xfc\xef\x17\x2b\x65\xec\x1d\x1e\ +\x7a\x54\x73\x62\xf3\xf3\xd6\xa6\x76\xbd\xf5\xaa\xb4\x79\xf6\x35\ +\xf0\xb9\x0b\xe0\xdf\x9e\x0c\x67\xb3\xba\x7b\x71\x44\x20\x81\x04\ +\x72\xf2\x04\xe3\x76\xf4\xf7\xe9\x4d\xe4\xb7\x77\xbf\x69\x52\xbd\ +\xea\x9a\x64\x78\xe1\xc7\x79\x77\xed\x1b\xc9\xc8\xc5\x0b\x91\xad\ +\x6f\x7a\x9f\x6d\xbc\xeb\x03\xf1\xf8\xfc\x42\x36\xff\xd1\xab\xf2\ +\xc5\x7f\xfc\x5c\x3e\xff\xd1\xaf\xe6\x33\x57\xfc\x57\x36\xb3\x7a\ +\x38\x9b\x5a\xf2\x52\xee\xb2\x97\x72\xd6\xbc\x64\xf4\x80\x97\x88\ +\x1c\xf4\x5c\x77\xe9\xba\x6c\xf4\xf5\x4d\xf8\xbe\xff\x1f\x9c\x07\ +\xc3\x09\xa9\xbb\x17\x4f\x04\x12\x48\x20\xeb\x2b\xa8\x8f\xbb\x47\ +\x48\x3f\x63\xaf\x49\xd9\xdd\x4f\x54\x33\x57\xff\xb4\x98\xbc\xda\ +\x2b\xce\x7c\xd4\x2b\x24\x3e\xea\xe5\x62\x57\x7b\x85\x14\x9c\xcc\ +\x95\x5e\x2e\x75\xa5\x97\x9d\xb9\xc2\xcb\xc6\x0f\x7a\x19\x77\xcd\ +\xcb\xba\x2b\x5e\xc6\x81\x63\x2d\x79\xd9\x28\x9e\x45\x2f\x6f\x2e\ +\x78\x45\xf8\x38\x6f\xc2\xe7\xcd\x83\x87\x73\x85\xb5\xef\xee\x9e\ +\x7e\xda\x25\xf0\x73\x9e\xa2\xd4\x58\x42\xb1\xad\x19\xda\xd8\x5f\ +\x3b\x90\x40\x02\x01\x29\x28\xb5\xeb\x6d\x99\xc4\xe2\x4f\x8a\xf1\ +\x8f\x1c\xcd\xb8\xa0\xe3\xa0\xb7\xb9\xe8\x9a\x97\x37\x0e\x78\x05\ +\xf3\x20\xe8\xf1\x41\xaf\x60\x1d\xf0\xf2\x70\x0a\x36\x7c\xde\x82\ +\x7f\xb7\x96\xbd\xbc\xbd\x0c\xaf\x4b\x74\x8a\x0e\xbc\x07\xbd\xcf\ +\x99\x8b\x70\x7a\xfc\xde\x46\x5b\x00\xff\x1e\xed\x7a\x99\xf0\x92\ +\x97\x48\xac\xdd\x7e\x7a\xf6\xd2\x7f\x57\x6a\xe4\x85\xf0\x73\x73\ +\x70\x76\xc3\x19\x53\x41\x6e\x10\x48\x20\x1b\x22\x43\x6a\xe2\xd5\ +\xee\x4c\xfb\x8b\x15\xe3\xc0\xd1\xb4\x79\xb9\x97\x33\x2e\x27\x9d\ +\x2f\x80\xee\x17\x4d\x3c\xab\xf0\x7e\x19\x3e\xb7\xe2\x95\x40\xef\ +\xcb\x10\xdf\xa3\x6f\x2f\xda\x4b\x5e\xc9\x59\x82\xcf\xf7\xc0\x26\ +\x2c\x80\x4d\xe8\x91\xdf\xcf\x19\x5d\xb0\x15\x5d\xfe\xd8\x5a\xf0\ +\x4a\x2e\x7c\x0d\xd8\x89\x02\xfc\x3f\x65\x67\xe1\x58\xce\x5a\xb8\ +\x23\x13\x3b\x70\x7d\xd6\x78\xfd\xbf\x2a\x35\x8a\xb5\x83\x3d\x8a\ +\xeb\x03\x81\x04\x12\xc8\xc9\x13\xec\xcf\xfd\x6e\x3e\xff\xe1\xb5\ +\x62\x64\xf5\x50\x36\x02\x3a\x1a\x5d\xf6\xca\xee\x01\x8a\xdb\xf3\ +\xa4\xf3\xcb\xa0\xeb\x2b\x70\x16\xc1\x0e\x2c\x7a\x25\xf0\xe7\xf8\ +\x3e\x0f\x3a\x5e\x04\x9d\x47\x3d\x2f\xd8\x3d\x78\xcf\x27\x6f\x77\ +\x21\x16\xc0\xcf\xa1\xfe\x77\xe0\xfb\xb4\xc5\x16\xc8\xe7\xf0\x98\ +\xf8\x35\x8b\x47\x93\xe6\xe2\xa1\x74\xba\xf7\xa5\x8c\xf5\x86\x65\ +\xb8\x8e\xb3\x21\x0d\xf9\x3d\x78\x9d\x52\x41\x7d\x20\x90\x40\xd6\ +\x5b\xd0\xdf\x16\x26\xc2\x2f\xba\x34\x17\x5e\xf9\x76\x7a\x7a\xc5\ +\x2b\x44\x40\xcf\x41\xdf\x0b\x36\xc4\xf6\x06\xe6\xee\xa8\xff\x8b\ +\xf0\x31\xf8\x6f\x6b\x81\x6d\x00\xbe\x92\xde\xf7\x48\x9f\xf9\xc0\ +\x7b\xd0\x75\xfd\x9e\xf4\xde\x6a\x79\x79\xa7\x05\x39\x01\xea\x7f\ +\x0b\xbe\x0f\x7c\x8c\xc7\x68\x7b\x39\xa7\xe3\x65\xe0\x6b\xb3\x60\ +\x4b\x32\x90\x43\xd8\x91\xa5\x9f\x25\x67\x0e\x7e\xc3\xdd\xfd\xf2\ +\x79\xb8\xa6\x67\xc0\xb1\x37\xf8\xde\x04\x12\xc8\xfd\x59\x30\xd7\ +\x8e\x8f\xa8\x91\x17\xc4\xad\xc6\xf7\x92\x53\x07\x21\x37\x5f\xa5\ +\xf8\xbe\x68\xaf\x92\xcf\x2f\x80\xcf\x27\xbd\xc7\xb8\x1d\x6b\x79\ +\xf0\x1e\x75\x1f\xe3\x7c\xed\xf7\x8b\xce\x82\x6f\x03\x8a\x0e\xf8\ +\x7f\x07\xfd\x7c\x5b\xf4\x1f\xf4\xdc\x06\x7d\xb7\x9a\xf0\xef\x2d\ +\xb6\x01\x78\x6c\xfe\xf7\x2c\x9c\xb4\x0d\x07\xec\x48\x06\xbe\x57\ +\xc6\xe8\x79\x8e\xb3\x74\x5b\x2d\x73\xfe\xa7\xe0\xda\x9e\xa0\x82\ +\x99\xa1\x40\x02\x59\x2f\x19\x01\xf5\x7a\x5a\xd8\x7a\xf3\x7f\x66\ +\xa7\x97\xef\x48\x85\xb0\xbe\xb7\xc6\xfe\x1e\x63\x7d\xca\xeb\x97\ +\xc9\xdf\x17\xe0\x94\x1c\x1d\xf7\xf7\x48\xf7\x4b\x8e\xd6\x7f\xfc\ +\x58\xeb\x3f\x1c\x17\x62\x00\xa7\x43\x3a\x8e\x07\x3f\xce\x9b\x4d\ +\xfe\xbc\x2d\x76\xc0\x85\x7f\x83\x98\x20\x0f\x5f\x9f\x73\x7b\xa4\ +\xff\x49\xb0\x2f\xc9\xe8\x22\xbe\x1e\x33\xcc\xf9\xdb\x8c\xc8\xf3\ +\xde\x08\xd7\x38\xbd\xd1\x37\x29\x90\x40\xee\xa7\x32\x3d\xa4\x46\ +\xff\x2e\x11\xe9\xfe\x34\x35\x7d\xf9\x51\xf4\xfd\x39\x63\x85\xea\ +\xfa\x58\xa3\x2b\x90\xde\x2f\x88\xde\xf7\x48\xef\x4b\x78\x9c\x05\ +\xc9\xf3\x45\xdf\xe9\xb0\xbe\x97\x62\xac\xef\x25\xd1\x6f\x8a\xfb\ +\xe1\x94\xdc\x4e\xdf\x16\x80\x0d\xc8\x83\x0d\xc8\xe1\x2b\xc4\x02\ +\x45\x17\x6c\x00\x7c\x8f\x2c\xd8\x91\x4c\xa4\xe7\x65\x21\xd7\x48\ +\x42\x4c\x90\x48\xb6\xae\x56\x3c\x67\x14\x48\x20\x81\x9c\x78\xc9\ +\x8c\x6c\x79\xca\xfe\xcc\xee\x65\x6f\x26\x74\x15\xd5\xf9\x73\xc6\ +\xa0\xef\x5f\xa4\xfc\xbe\xe4\xa2\xfe\x63\xde\xdf\x25\x9d\x2f\x49\ +\x8c\x8f\x3a\x4f\x87\xf4\xbd\x43\x7e\xbd\xe4\x62\xae\x2f\x07\x6d\ +\x00\xfa\x7b\xc9\xff\xf3\xfa\x73\xf0\x3e\x07\x7a\x9f\xa3\xdc\xa0\ +\x49\x9f\xcf\xc3\xf7\xc1\x7a\x61\x06\xfb\x06\x60\x73\xb2\x6e\xdd\ +\xb3\xdd\xb5\xff\x50\x9b\x70\x06\x29\x90\x40\x02\x59\x07\x79\x84\ +\x63\x5d\xfa\x99\x7c\x68\x0d\xf2\x7e\xd4\x7d\x89\xfd\xa9\x47\x07\ +\x71\x3e\xc6\xfa\xe0\xe7\xd9\xf7\x77\xbd\xb2\x8b\xbe\x5f\x5e\xc1\ +\x67\x97\x44\xef\x4b\x8e\xf8\x7d\xd2\xf3\xa6\x57\x8e\x75\xc4\x0e\ +\xc0\x7b\x7c\x75\xd1\x06\x60\xfc\xdf\x22\x5b\x90\xb3\x50\xe7\xdb\ +\x74\x72\x36\xdb\x82\x2c\xda\x02\xb3\xed\x65\xa3\x3d\x9a\x19\x48\ +\xc2\xd7\xa6\xe2\xcb\x1f\x83\x6b\xfc\xad\x8d\xbe\x49\x81\x04\x72\ +\x7f\x94\x61\xa5\x9e\x9c\x8c\x74\xaf\xcf\x45\x0f\x82\xde\xad\xd1\ +\x41\xfd\x2f\x82\xfe\xa3\xef\x2f\xc2\x29\xa3\xef\x77\x7b\xe4\xe7\ +\x59\xff\x59\xe7\xcb\x6e\x9b\x62\x7c\xd2\x7f\xd0\xf7\x72\xac\xed\ +\xfb\xfe\x12\xe8\x7a\xc9\x95\x13\x6b\xb2\xfe\xdb\x0d\xb2\x01\xfa\ +\x60\x0e\x40\x75\x41\xaa\x0d\xa2\x0d\xe8\x50\x3c\x90\x35\x3a\x34\ +\x2b\x10\x8f\xcc\x7b\xe9\xc4\x22\xf6\x03\xab\x1b\x7d\x9f\x02\x09\ +\xe4\xfe\x28\x23\x6a\xf8\xd9\xa9\xd0\xea\x91\xac\xb9\x0a\xba\x8f\ +\xf3\x7c\x38\xe3\xb7\x44\xfa\x4f\xf5\x3d\xec\xf1\x41\xae\x8f\xfe\ +\x1f\xfd\x7d\xd9\xe9\xb2\xce\xa3\xae\xc7\x38\xd6\xc7\x57\xb6\x05\ +\xac\xef\xe8\xef\xcb\xf4\xaa\x6d\x40\x03\xbe\x47\x83\xec\x00\x7e\ +\x5c\xd4\x36\xc0\xe5\x7c\x80\xfa\x83\x90\xeb\xe7\x4c\x8e\xff\xb3\ +\x46\x97\x72\x8d\x0c\xfc\x7b\xd2\xed\x06\xfa\x1f\x48\x20\xeb\x23\ +\xd1\xf1\xa1\xfc\x6b\x8b\xe1\x83\x5e\x06\xe2\xfe\x92\x7d\x90\xf2\ +\xfe\x1c\xea\xbf\xb3\xe0\xd7\xf7\x8b\xe0\x97\x4b\x94\xf3\xb3\xdf\ +\x2f\x6a\xbf\xef\xdb\x80\xbe\x5e\x97\x50\xcf\xe1\xf8\xfa\x8f\x1f\ +\xbb\x7d\xdd\xc7\xaf\x2f\xc6\x5a\x12\x0b\x60\x0f\x00\x0f\xf7\x0a\ +\x68\x1e\xc8\xc6\xda\x5f\x87\x6a\x0e\x69\xf8\x9a\x58\x6c\xee\x52\ +\xb8\xce\xd4\x46\xdf\xa8\x40\x02\xb9\x1f\xca\x83\xb7\xdb\x2f\xbc\ +\xb0\x80\x79\x3f\xce\xf2\x9b\x70\xac\x65\xe9\xef\xeb\x7c\x7f\x01\ +\xe7\x74\x25\xe7\xc7\xd3\xa1\x3a\x1e\xbe\x72\x8e\x0f\x36\x00\xe2\ +\xf8\x0a\xd8\x82\x0a\xe8\x72\x05\x6c\x40\xc5\xe5\x53\x06\xbd\x2f\ +\xa3\x2d\x88\xf5\xe3\x00\x1d\x1f\x60\x3e\x90\xa7\x18\xa0\x25\xfd\ +\x00\x89\xff\x71\x66\x10\x67\x02\x21\x07\x48\x5a\x4d\x2f\x6a\x7f\ +\xe0\x7c\xb8\x4e\x6b\xa3\x6f\x54\x20\x81\xdc\x0f\xe5\x69\xf1\xc4\ +\xc5\x07\xf3\xc6\x95\x5e\x06\xf2\xfe\x02\xce\xf6\x53\xec\x0f\xf9\ +\xbe\xc5\xf5\x7e\x8c\xfb\xcb\x4e\x8f\xe3\x7e\x87\x75\x1f\x75\x1e\ +\x73\x7d\xd4\x63\xca\xf3\x1d\xf6\xf5\x15\xd0\xf5\x0a\xe8\x38\xbe\ +\x56\x41\xe7\xcb\x7e\x1c\x50\x17\x5b\xd0\x8f\x01\x0a\xf0\x31\xf6\ +\x05\x8a\x31\xe9\x0f\xd8\x1d\x9a\x21\x28\x38\xe8\xff\x79\x67\x20\ +\x0e\xf6\x20\x3c\xfd\x86\x73\xe0\x3a\x23\x1b\x7d\xa3\x02\x09\xe4\ +\xfe\x26\x9b\x94\x7a\xe5\x4c\xac\xfe\x9f\x29\x5d\xf7\x33\x64\xc6\ +\x17\x4e\xd9\x5e\xec\xeb\xbe\xcd\x79\x7f\x19\xeb\x7f\x0e\xd7\xf5\ +\xcb\xfa\xc4\x24\xd7\x77\x44\xff\x9d\x3a\xe8\x3e\xbc\xe2\xc1\xcf\ +\x69\x3b\x10\x6b\xf4\x73\x04\xd4\x7f\xa7\x41\x39\x80\xee\x07\xe0\ +\x6e\x40\x51\x66\x89\x72\xb2\x23\x30\x03\x31\xc0\x74\xf8\x85\x81\ +\xfe\x07\x12\xc8\x3a\xc8\xc8\xd0\xe4\x7b\x33\xe6\xe2\x8f\xd2\xd1\ +\x65\x2f\x1b\xc1\x1d\x1f\x3c\xb8\xdb\xb3\x40\x33\x3e\x45\xb3\x43\ +\xfa\x5f\x02\xdf\x5c\xc1\x5e\x1f\xfa\x7e\x87\x6b\x7d\x95\x18\xd7\ +\xfb\xc8\xa7\xdb\xec\xef\x59\xff\xfb\x07\xed\x40\xd9\x9e\x27\x5b\ +\x50\xb2\xeb\x03\xf1\x00\xf7\x05\xc9\xff\xdb\xb2\x17\x40\x73\x82\ +\x3c\x3f\x88\xfe\x1f\x6b\x01\x29\xb0\x09\xdb\x76\x3d\xea\x55\x70\ +\xa9\xdb\x36\xfa\x5e\x05\x12\xc8\xfd\x48\x46\xe0\xcc\x44\x63\xaf\ +\x59\x2a\x51\xcf\x1f\xf7\xfb\x97\xc5\xff\x2f\xd1\xac\x2f\xf9\x7e\ +\xf2\xfb\xf8\xda\x11\xdf\x0f\xba\x0f\xfa\x5a\x11\xfd\x2f\x8b\x7f\ +\xe7\x7c\x1f\xf4\x5d\xc7\xfe\x10\xef\x57\xd0\x26\x48\x3c\x40\x31\ +\x81\xd4\x04\x30\x57\x28\xda\x12\xfb\xeb\x19\x21\x9c\x09\x94\x1a\ +\x23\xfa\x7f\x9c\xff\xc3\x5e\x40\xc2\xe8\x7a\x4a\xed\xf8\x4b\x15\ +\x60\x83\x04\x12\xc8\x89\x94\x2d\x10\xfb\x3f\x3e\x91\xfc\xd0\xc7\ +\x0b\xe1\x15\xf0\xfd\x4b\x5e\x3e\xba\x42\xbb\x3e\x79\x83\x7d\x7f\ +\x19\xfb\x7d\xa0\x8b\x25\x0b\xf5\x1e\x6b\x7b\xfc\x8a\xb5\x3e\xb4\ +\x03\x54\xdf\xd3\xf9\x3e\xe5\xfe\x75\xd6\x7f\xf0\xf7\x35\x87\x5f\ +\xab\x2e\xdb\x02\x8a\x01\xd0\x0e\xe8\x7e\x00\xe9\x7c\x53\xf2\x08\ +\xfc\x9e\xf0\xb1\xd9\xe6\x19\x23\x7b\x81\xb0\x42\xb0\x1f\x98\x84\ +\x9f\x0d\xd7\x7a\xe6\x46\xdf\xac\x40\x02\xb9\x9f\xc9\x0e\x38\x2f\ +\x48\x44\xda\x9f\xcb\x86\x56\xc8\xff\xe7\xc9\xff\xf3\x3e\x3f\xf6\ +\xfc\x51\xf7\x2b\xa0\x8f\x55\xaa\xff\x43\xfc\x8f\x36\x80\xec\x00\ +\xfa\x7e\xae\xf3\xa3\x4f\xa7\xb8\x1f\xf4\xbc\x16\x67\x1b\x50\x73\ +\xd9\xef\x57\xe1\xfd\x6c\x8c\x5f\x07\xe3\x80\xe3\x72\x00\xd4\x7b\ +\x0b\xf3\x07\xd0\x7d\xab\xcd\x39\x07\x62\x87\x80\x0d\xca\x3b\xed\ +\x63\x99\x44\xeb\x30\x5c\xe7\xb3\x37\xfa\x66\x05\x12\xc8\xfd\x4c\ +\xa6\xb7\x8c\x4c\x5f\x90\xda\xdd\xf8\xef\x4c\x68\xc9\xcb\x1a\x4b\ +\x5e\x2e\xb2\x08\x36\xa0\x27\xb8\x1e\x3d\x8a\xc5\xcb\xd8\xff\x03\ +\x3f\x5c\x85\xdc\x1f\x75\x1f\xfd\x7f\x15\xf5\x9f\xfc\x7d\x53\x7c\ +\x3f\xc7\xfd\x98\xeb\xa3\xaf\xe7\x1c\x60\x9e\xec\xc0\x6c\x8c\x7d\ +\x7f\x95\x7c\x3f\xff\x1b\xd6\x01\xa8\x5f\x20\x7d\x03\xca\x07\xac\ +\x96\x57\xc2\xfa\x1f\xe4\xfd\xd8\x77\xc4\xb9\xe3\x9c\xd3\x3e\x1c\ +\xb7\xbb\x5f\x57\xc3\x84\x17\x1c\x48\x20\x81\x9c\x38\x31\x43\x91\ +\xa7\x5e\x93\x9c\xaa\xff\x28\x1d\xea\x78\x99\xe8\x22\x61\x75\x16\ +\xc1\xff\x97\x2d\x3c\xe0\xff\xcd\x9e\xd4\xfc\xd1\x06\xb0\xde\x97\ +\xfd\xfe\xbe\xe8\x3d\xd6\xf7\xdc\x7a\x5f\xf7\x51\xef\xe1\x7d\x8d\ +\xde\x83\xff\x77\xb5\x4d\x40\xbf\xcf\xf9\x00\xf5\x01\x5d\xad\xfb\ +\x6d\xca\x25\xd0\xf7\xa3\x9d\x29\xa1\xfe\x9b\x3d\xaa\x3f\x66\xed\ +\xf6\x1d\x29\xb7\xfd\xef\x70\xad\x7f\xb0\xd1\x37\x2b\x90\x40\xee\ +\x67\x62\x4f\x1b\x7f\xf9\xb9\x64\x78\xf1\x76\xd4\xfd\x4c\x74\x81\ +\xea\x7f\xa8\xff\x25\xe9\xfd\x61\xfe\x5f\xc6\xdc\x1f\xf5\x12\xe2\ +\x74\xf6\xfb\x2d\xf2\xdb\x55\xa9\xf9\x91\xde\xc7\x50\xbf\xe7\xe9\ +\x70\xfc\xcf\x07\xf3\x7f\xad\xff\x68\x13\xf0\x63\x6d\x37\xca\x32\ +\x2f\x40\x35\x00\xd2\xff\x16\xff\x1c\xc4\x05\x93\x18\x20\xeb\x74\ +\x6e\x8f\xc5\xe7\xff\x55\x6d\x52\x8f\xdf\xe8\x9b\x15\x88\x2f\x88\ +\x15\x83\x78\x6c\x5b\x15\x63\x32\x20\x36\x93\xa1\x8e\xc7\x67\xc1\ +\xaf\x41\x0c\xd7\x30\x9c\xd8\x38\x1c\x78\x75\x54\x1f\xdb\x35\x90\ +\x8d\x17\xe3\x41\xca\xb9\xdc\x31\x7a\x3f\x48\x83\xdf\x47\x1b\x90\ +\x37\x96\xb8\xef\x8f\xb8\x9c\x54\x03\x40\x3d\xe4\x7c\xbf\x1a\xeb\ +\xf2\x7c\x8f\xcb\x39\xbf\xee\xf3\xd7\xe2\x1c\x03\x54\x40\xf7\xf1\ +\xfd\x6c\xbc\xc9\xfa\x1f\xab\x53\xec\x8f\xf1\x80\x8e\x09\x38\x2f\ +\xa8\xb3\xfe\xdb\x0d\xbf\x8e\x88\xaf\x14\xff\x63\x0c\x20\xfa\x8f\ +\x3f\x3b\x1f\xeb\xde\x16\x8b\xef\xfd\x14\x3c\x6d\xbf\xbb\xd1\x37\ +\x2b\x10\x5f\x50\xf7\xa3\xc3\x84\xdb\xae\x3e\x30\xa6\x66\x3f\x3f\ +\xbd\xe3\x15\x1f\x51\xac\xeb\x5a\x50\xc7\x6b\x4a\x9d\xbe\x6f\x72\ +\xe2\xfc\x6f\x4d\x6c\xeb\x7e\xcb\xdc\x79\xd6\x17\xe0\x73\xef\x84\ +\x53\xd9\x80\x6b\x0e\xe4\x97\x65\x3b\xfc\x0d\xff\x22\x61\xef\xfb\ +\x4c\x1a\x73\x7f\x83\x71\xba\xb1\xee\x46\x31\x00\xc6\xff\x94\xff\ +\x73\xcd\x9f\xea\xfd\x52\xf3\xaf\xe8\x9a\x1f\xea\x72\xac\xee\xc7\ +\xf7\x55\xb7\xef\xfb\x6b\xa8\xf3\x0e\xfa\xff\xba\xe4\x02\xf3\xd2\ +\x13\xac\xfb\xb5\x83\x92\xd8\x00\x5f\xff\x71\xfe\x0f\x71\x03\xa3\ +\x5c\x73\x48\x9b\xcd\x1f\x3b\xe1\x0f\xcc\xab\x91\x60\xf7\xf7\x14\ +\x10\xe4\x6d\x7b\x9e\x52\xee\xfc\xce\xf0\xf9\x5f\x9f\x89\xaf\x7e\ +\x3f\x61\x2d\x1f\x4a\xc7\x97\x7e\x38\xb9\x63\xf1\x22\xf8\xb7\x5d\ +\x03\x5f\xbb\x63\x4c\x4d\xbd\x60\x3a\xd2\xf9\x9c\x39\xb5\xe8\x99\ +\x3b\x0e\x1e\x35\x26\xff\xf1\x2b\x4a\x6d\x46\x0e\xb8\xad\x1b\x73\ +\xf9\x81\xfc\x82\x68\x7e\x9f\xf7\x65\x53\x9d\x1f\x10\x57\x87\xcd\ +\x7d\x7f\xd4\x3f\xcc\xc3\x2b\x84\xf7\x21\x7d\x7f\x9c\xef\x47\xfd\ +\x8f\x89\xff\x47\x5f\x1e\xe3\xf8\x9f\xf3\x7d\xae\xf3\x93\xde\xbb\ +\x9c\xf7\xfb\xfa\xaf\xeb\x01\x7e\x6d\x50\x76\x02\x74\xfd\xcf\xd6\ +\xf5\x7f\x8e\xff\x31\xff\x2f\xd3\xfe\x4f\xf7\x96\x54\xe6\x1d\xef\ +\x55\xe4\x4b\x02\x39\x89\x82\x1c\x8f\x0f\x1e\x55\xea\xa9\xf0\xfa\ +\x42\x08\xdf\xcf\x49\xb8\x8d\xe5\x5c\xfa\x8a\xcf\xe6\x66\xd6\xae\ +\x9f\x71\x97\x8e\x24\xcc\x65\x2f\x65\xac\x7a\x19\x6b\xe5\x96\xad\ +\x3b\x1b\xef\x51\xcc\xf3\xa8\x65\xf7\xd0\xd8\xc3\xde\x69\xec\xee\ +\x7d\xc3\x9a\x5c\xf2\x8c\x5d\xcb\xc7\xec\xed\x07\x6e\x4c\xe5\xe6\ +\xde\xaa\x46\xc9\x8e\x04\x72\x8a\x08\xc4\x00\x7f\x9e\xa9\xbc\xfe\ +\x23\x19\xe3\x00\xf8\x5b\xe4\xe6\x00\xfd\xc7\x18\x40\x76\x7f\x8a\ +\x32\xf7\x87\xb5\xff\x2a\xee\xf7\x38\xfd\x19\x7f\xf2\xe7\x31\xc9\ +\x01\x7c\x3d\x87\xf7\x36\xd7\xfe\x49\xff\x21\x1f\xe0\xf8\x5f\x66\ +\x80\x74\xff\x4f\xd7\xff\x49\xf7\x5b\x94\x67\xa0\xef\xc7\xfa\x7f\ +\x09\xf1\x45\x0d\x9c\x33\xec\xdd\x12\x8d\xbe\x10\x9f\xad\x60\xf7\ +\x77\xfd\x05\x75\x1e\xf3\xac\x67\xc1\x79\xed\xf6\xb1\x17\x5c\xe8\ +\xa4\xae\x3a\x90\x4a\x7d\xec\xdf\xb2\xc9\x83\x37\x24\xdd\xcb\x8f\ +\x24\xed\x03\x5e\xdc\x5c\xf3\x92\xe6\xaa\x97\xb6\x41\xff\xad\x55\ +\x2f\x65\x2e\xff\x64\xeb\xd8\xc5\xb8\x9f\xed\x2a\x9e\x29\xa3\xef\ +\xf5\xa0\xa9\x3f\x5c\x36\xb7\xae\xde\x14\xda\xd9\xf1\x42\x53\xcb\ +\x9e\x35\xb5\xfc\x33\x27\xba\xf6\x45\x48\x1f\x5e\xa9\x98\x4b\x32\ +\x90\x53\x43\xd2\xe3\x4a\xbd\x29\xeb\xb6\x6e\xc7\x1e\x60\x1e\x39\ +\xba\x2c\x99\x01\x70\xa4\x07\xe8\xca\xdc\x9f\xd4\xfe\x30\x7e\xaf\ +\x51\xfd\x8f\xf3\xfc\x5a\xbc\x1f\xff\x93\xbf\x77\xfa\xaf\xe4\xf7\ +\x6d\x8e\x03\xaa\xd2\xff\xef\xfb\xff\x96\xdf\xfb\x23\xfd\xb7\xb9\ +\xee\x47\xfa\x6f\xd2\x9c\xf1\x0f\x2c\xeb\x59\x67\x2b\xe6\x05\x0a\ +\x64\xfd\x64\x08\xfc\xc0\xef\x8f\x6c\x7b\xfe\xa7\xd2\xb1\x4f\xdc\ +\x96\x9e\xf9\xa4\x17\x8f\x7f\xd4\x9b\x71\xae\xf6\x66\xac\x2b\x41\ +\xd7\x2f\xf7\xb2\xd6\x9a\x97\x8a\x1e\xf0\xb2\x38\x27\x6a\xae\xc0\ +\xeb\x22\x61\xc2\x67\x8c\xa5\x23\x69\x6b\xe5\x06\xa5\x46\x9f\xa4\ +\xd4\x38\xda\x80\x1d\xc8\xf1\x3c\x65\x9e\xf3\xe5\x99\xa9\x95\xc3\ +\x76\x78\xc9\x73\xc2\x8b\x9e\xbd\x7b\x05\x0e\xf8\x18\x77\xe1\xb3\ +\x4a\x8d\xbd\x5c\x71\x1e\x10\xcc\x74\x9e\x0a\x32\x3c\xfc\xc4\x5c\ +\xae\xf1\x6d\xe4\xef\xca\x82\x5d\x47\xdc\xcd\x9c\x21\xb3\x7f\x36\ +\xe3\x7a\x95\xf5\xcc\x0f\xd9\x00\xe9\xf7\x53\x2d\x1f\xf3\xf9\x39\ +\xb6\x03\xe0\xff\x29\xee\x17\x3b\x50\x1d\xe8\x05\xf8\x35\x00\xa7\ +\x1f\xff\xeb\xd8\xbf\x48\x7c\x00\x6d\xe2\x0c\x28\x4a\xfc\x4f\xfe\ +\x3f\xd2\xbe\x69\xfb\x74\xf1\xc5\x70\x85\xf1\x8d\xbe\x45\xf7\x73\ +\xd9\x39\xb4\xf9\x4f\x5f\x1d\x71\xaf\xb9\x2d\x16\xbe\xe6\x98\x1b\ +\xba\xc6\x4b\x44\xae\xf6\x92\xc6\x55\x5e\x3a\x7a\x25\xf1\xbc\x21\ +\xf7\x5b\x2e\xba\x42\x3c\x30\x88\x0d\xc9\x7c\x10\xa4\xff\xc7\x92\ +\xe6\xd2\x91\x62\xfa\x0d\xdf\x80\xef\x83\x7b\xda\xcf\x07\xb5\x7e\ +\xb3\x1b\x5d\xfc\xfe\x4c\x64\x19\xbe\x57\xcf\x8b\x85\xe1\x44\x96\ +\xbc\x04\xd8\x82\xf0\xee\xc5\xdb\x67\xcb\x8d\x6b\xe0\xeb\xfe\x54\ +\x05\xb5\x80\x53\x45\xf2\xbb\xed\xbf\x69\x10\xee\x2e\xf2\xf3\xd9\ +\xc8\xd9\xc9\x9c\x1e\xb4\xf3\x8f\xfa\x6f\x73\xfd\x8f\x7b\x7f\x2d\ +\x9a\xef\xa1\xfa\x7f\x42\xd7\x00\xfa\xf1\xbf\x9f\xff\xbb\xfd\xbc\ +\x7f\x16\xbf\x0e\xfb\x83\xb2\x07\x5c\xd2\xfe\xdf\x8f\xff\x3b\x7d\ +\x1b\x60\x20\x6f\x18\xe2\x7f\x75\x7e\x34\x32\xbc\xfb\x42\x08\x2b\ +\xf7\x6c\xf4\x0d\xba\x9f\x4b\x6a\xca\x6a\x5d\x1a\x0b\x1d\xf0\xdc\ +\xd0\x55\x5e\x2a\x7c\x90\x70\xa0\x10\x0f\x2e\x17\x01\xbd\x8f\xac\ +\xc2\x01\xbd\xc7\x19\x71\xf4\xff\x06\xfb\x07\x8c\x13\xd1\x06\x64\ +\xad\x05\x2f\xe7\x36\x0f\x17\xf6\x7c\xe4\x1b\x56\xe4\xc3\x9f\x4b\ +\x17\x56\xbe\x94\x75\x16\x7f\x36\x63\x30\x9e\xfb\x8c\xd1\x85\xdc\ +\x72\xc1\x4b\x20\xa6\x7b\xb4\xe7\x65\xf3\x97\x7f\x15\x7e\xe6\xdb\ +\x14\x73\x3b\x05\xb2\xf1\x62\x6f\x9a\x78\xc2\xbb\x33\xb1\x25\x2f\ +\x87\x87\x38\x3c\x17\x69\x0f\x87\xe2\x7f\x9c\xfd\x45\xff\x4f\xbb\ +\x3f\xd8\xdf\x6b\xf7\x7b\xff\xae\xd4\xff\xa4\xc6\xd7\xf7\xf5\x5c\ +\x0b\xe4\xd9\xdf\x79\xdf\x0e\x70\xef\xbf\xee\xd7\xfe\x8a\x76\x3f\ +\xfe\x47\xfd\x47\x2e\x30\xe4\x17\xc9\x82\xff\x8f\x47\xe6\x0f\xc7\ +\xa6\xfe\xf0\xeb\x10\x9b\xee\x57\xc4\x41\x1e\x3c\x2f\xeb\x24\x0f\ +\x9e\x8c\x36\x3f\x9a\xda\x75\xc0\x9b\x99\xba\xca\xcb\x84\x40\xff\ +\x23\x97\x7b\x99\xf0\x1a\xeb\x7f\x74\x95\xf5\x3e\xba\xe4\xef\x87\ +\x61\x9d\x08\xf1\x99\x73\x38\xa7\x41\xbc\xae\xa0\xe3\xce\x82\x97\ +\x4a\xc0\xdf\x30\xae\xb9\x9c\xe0\x63\xe4\x73\x20\x1c\x17\xe6\x75\ +\xc8\xc0\xdf\x37\x6e\x1c\xb8\x39\x6d\x9e\x73\x50\xf1\xdc\x40\x20\ +\x1b\x2f\xee\x4e\xeb\x6f\x2e\xc8\xc7\x97\xe0\x6f\xc8\xf1\x7f\xde\ +\xe6\x1d\x20\xcc\x01\xf4\xec\x7f\x35\xc6\x7d\xc0\xaa\xdb\xe2\xb9\ +\x7f\x57\x66\x7f\x68\xc6\x7f\x5e\x7a\xfe\x0d\x7f\xe6\x7f\xd6\xf7\ +\xff\x3c\x03\xe0\xf7\xfe\xa5\x06\xa8\x7b\x7f\x05\xab\xc9\xfe\x1f\ +\xb9\x82\xd0\xef\x83\xdf\xc8\x46\xdb\xde\x4c\xb8\xee\x4d\xe7\xe7\ +\xbd\xe2\xd3\x3e\xfc\x03\xc8\x14\xd1\x5f\x04\x7d\x80\xf5\x91\xc7\ +\xb8\xbb\x57\xaf\xcd\x84\x56\xbd\xd4\xf4\xe5\x5e\x7a\x7a\xcd\xcb\ +\xa0\xef\x37\xd6\x38\xee\x37\xfa\x7b\xa1\x79\x88\x0b\xf3\xd4\x27\ +\xee\x31\x46\x93\xc5\x38\xcd\x69\xf4\xeb\x0e\xf8\x0e\xb0\x01\xa8\ +\xf7\x59\x1b\x7d\xff\x02\x1c\xd0\x7d\x13\xf7\xb8\x3b\x70\xba\x60\ +\x0b\xba\xcc\xef\x94\xbd\xfc\xdb\xf0\x73\xcb\x8a\x7b\x50\xa3\x2a\ +\xe0\x7b\xde\x48\x29\x3a\xc9\x0f\xb6\x73\x31\xf0\xfb\xb1\x35\xc2\ +\xdd\x2d\x08\xd7\x47\x85\x66\x00\x04\xd7\x6b\x60\x06\xb0\x1a\x6b\ +\xfa\xbb\x7d\x94\xf7\xc7\xa5\xf6\x2f\xfe\x7f\x76\xa0\x1e\x50\x95\ +\x3a\xa1\xef\xff\x5d\xc1\x03\x44\xec\x20\xe4\x0a\xb0\xdb\x12\xfb\ +\xb7\x09\xf3\x0b\xb9\x44\x91\x1f\x1c\xe2\x46\xc8\x2d\x2f\xbf\x6d\ +\x77\xe1\xfc\xef\x0f\x29\x75\x89\x52\xc1\x1c\xd0\x3a\xc9\x1f\xc4\ +\x77\x2f\x7e\x23\x19\x5a\xf6\x92\xa1\x83\xe4\xf7\xb3\x91\x03\x8c\ +\x07\xa1\x77\x42\x2d\xd6\x7f\xda\xcb\x24\x1e\xe7\x1e\xe1\x34\x32\ +\x56\x23\xe3\xb5\xa2\x1d\x40\xdc\xc6\x8c\xc9\x7c\x8e\x29\x8b\xf9\ +\xdc\xd2\xa0\xef\x69\x8c\x0f\xe0\xf3\x18\x0b\xa0\x5d\x88\x5b\xdd\ +\x5b\x53\xe6\xd9\x97\xc1\xcf\x7e\xb1\x52\x9b\xf0\xef\x1a\xdd\xe8\ +\x9b\xf0\x00\x96\xdf\xca\x66\xba\xd7\x94\xe2\xe0\xfb\x1d\xf1\xfd\ +\xee\x02\xe1\x7d\x63\xfd\xaf\x16\xeb\x80\xbe\x77\x04\xdb\xaf\x05\ +\xfa\xdd\x92\x1a\x5e\x9d\x76\xfe\x6a\x32\x07\x80\x36\x60\x36\xd6\ +\x14\x9f\xdf\xcf\x07\x74\x8e\xc0\xbb\x7f\x75\xda\x17\x20\x0c\x30\ +\xdf\xf7\xeb\xfa\x1f\x63\xfe\xe5\xe8\x79\x6a\xc1\xfb\x7d\x3f\xdd\ +\xb1\xfb\x25\x57\xaa\x61\xf5\x4c\x75\x7c\x7f\x39\x90\x13\x28\x90\ +\x5f\x3d\x63\x26\xbc\xf4\x63\xc4\x7f\xc5\x78\x1f\xf9\x9f\xf2\x88\ +\x05\x67\xad\xca\x4c\xe8\x32\xe5\xf9\xb8\x93\x45\xbe\x41\xf4\x3e\ +\xef\x2c\x10\x5e\x23\xe2\xb5\x21\x5e\x13\xe1\x36\x3a\xa0\xe7\x60\ +\xc7\x33\x2e\xd6\x92\xc0\xe7\xa3\xee\xa3\xbf\x27\x6e\x47\x8e\x01\ +\xf0\x7b\xa4\x8c\x85\xa3\x49\xe7\xca\x5b\x63\x89\xab\x6f\x2a\x64\ +\x3f\xf4\x25\xb8\x8c\x57\x6e\xf4\x7d\x78\x00\xcb\xef\xce\xc4\x1a\ +\x5f\xcc\x20\xde\x36\xce\x00\xb9\x8b\xcc\xe1\x47\xfb\xff\xbc\xf3\ +\x5b\x16\xdf\x5f\xf5\x73\xff\xa6\x8f\xef\x43\xf5\xbf\xf8\x40\xdf\ +\xdf\xe5\x3c\xe0\x97\xf4\xdf\xf7\xff\x75\xc6\x03\x47\xec\x2f\xe1\ +\x02\xd5\xbc\xe0\xa8\xfb\x79\xf0\x23\x19\xe2\x05\x6e\xfd\x64\xe7\ +\xe4\xf3\x16\xe1\xfa\x1e\xa9\x82\x5e\xd1\x7a\xc9\xe8\x88\xda\xf2\ +\xdc\x74\x64\xf9\x08\x71\x3f\x44\x56\x41\xff\x11\x03\x6a\xd5\x2b\ +\x18\x9c\xf7\x13\xf7\x2b\x61\x42\x32\x2e\x24\xe2\x32\x15\x1c\xc6\ +\x67\x2a\x08\x5e\x33\xf1\x37\x12\x77\x1b\xf8\x7e\x78\x5e\xe8\x15\ +\xed\x80\xd3\x21\xfd\xcf\x61\x6d\xd9\x64\x6c\x57\xac\x01\xa4\xa2\ +\x4b\x70\x16\xbc\x24\xfc\xed\xe3\x76\xef\x8e\x68\xf4\x35\x3d\xb8\ +\x96\xd3\xe1\x8c\x6f\xf4\x0d\x79\x00\xca\x9f\xa4\xdd\xc6\x4d\x59\ +\xb0\xd1\x79\xc8\xe1\xd0\xff\xe3\xdf\x95\x66\xff\xf0\x58\xba\xfe\ +\x3f\x88\xef\xdb\xe8\xe7\x00\xf1\xfe\xfe\xef\x60\x0d\xb0\xe6\xea\ +\x9c\x60\x7e\x40\xff\xeb\x82\x07\xae\xeb\x7f\xc2\x01\x8c\xfa\x6f\ +\x72\x0c\x49\x71\x24\xc4\xff\xa9\x48\xeb\x70\x3a\x5b\xbf\x0e\x9e\ +\x88\xe7\xa8\xe0\xb9\x58\x2f\xb1\xc7\x55\xee\xf5\x19\xac\xef\x47\ +\x57\x49\xff\x73\x1a\x07\x2e\xba\x4c\x1c\xd0\x1c\xff\x2f\x0a\x0f\ +\x64\x97\xe2\x42\xe2\x75\x45\x1b\x80\x7c\x6d\xf4\xdc\xa0\xce\xc3\ +\x81\xbf\x27\xbe\x66\xe0\x15\xed\x00\x73\xbb\x77\x28\x26\x48\x9b\ +\x6d\xd6\x7f\xea\x07\xf4\xb8\x16\x80\x18\x2f\x60\xeb\x0d\xeb\x55\ +\xd8\x13\xc4\x1a\xef\x96\x8d\xbe\x21\x0f\x40\x79\x56\xca\x69\xff\ +\xac\x14\xef\x51\x2f\x87\x38\xbd\xad\xde\xf1\xfa\x6f\xb5\xa8\xfe\ +\x47\xfe\x5f\x66\x00\xab\xf1\xe6\x00\xce\xe7\xbc\xe4\x02\x32\x07\ +\x1c\xab\xfb\x3d\xc1\xaa\x8f\xfb\xc1\xfe\xbf\xe4\xd4\xfd\xda\x7f\ +\xc1\xf7\xff\x1d\xa9\x27\x09\xef\x5f\x14\x9f\x91\x86\x37\x03\xdf\ +\x43\x8d\x2a\xe4\xff\x0d\x6a\xff\xeb\x23\x0f\xdb\xa2\x8a\x97\xa6\ +\xc3\xec\xf7\xb9\xcf\xcf\xbe\xbf\x00\x36\xa0\x68\xf1\x41\x1e\x58\ +\xe6\x7a\x65\xce\xc7\x82\xab\xf9\x9d\x35\x7f\x73\x8b\x4e\x16\xf9\ +\x9c\xfc\xf7\x72\xe0\xef\x8b\xb1\x00\x62\x39\xa2\xef\xcf\x0a\xc7\ +\x7b\x0a\x72\xbd\x2c\xd8\x81\x14\xfc\xdb\x96\x5d\x7f\x85\x33\x84\ +\xc8\xf1\x30\xf2\x9b\x2e\x38\x90\x13\x2b\xc3\x6a\xe4\x39\x69\xcc\ +\xed\x88\x7f\xa7\x47\x35\x1e\x9a\xfd\x71\xb0\xfe\x87\xb5\x7f\x8d\ +\xfd\xc3\x31\x40\x2d\xce\xf5\xbf\xf2\x00\x06\x00\xd5\xf6\x64\xc7\ +\xa7\x3f\x0b\x2c\x73\x81\xfa\xdf\x5d\xb6\x01\xda\xff\x17\x05\xfb\ +\x33\x2f\xf1\x7f\xde\xe2\x9f\x5d\xb0\xb1\xbf\xdc\x3d\x9c\x9d\x5a\ +\xb9\xb5\x96\x5f\xfb\xc9\xe8\xc4\x04\xe2\xff\x06\xbd\xa2\xf5\x91\ +\xc7\x8d\xab\xa9\x7a\x26\x82\x3d\x3f\xee\xf7\x53\xdc\x4f\xbb\xe0\ +\x2b\xe4\xff\x8b\x70\x90\xff\x9d\xb1\x99\xba\xc4\xd3\x5c\x8a\x75\ +\x99\xc3\x95\x0e\x73\xb8\xe4\x91\xcf\x01\x4e\xce\x65\x1b\x90\x73\ +\xf0\x15\x75\xbe\x41\xfa\x9f\xc5\x3a\x00\xea\x3c\xd6\x02\x2d\xa9\ +\x11\x42\x0e\x80\xb5\x41\xdb\xbe\x00\x7b\xbc\xa8\xfb\x41\x1f\xe0\ +\x24\xcb\xb0\xda\xf9\x9c\x84\xb1\x48\x31\x5e\x16\x71\xb7\x4c\x9e\ +\xfd\x67\x0c\xc0\x0e\xf9\xfe\xca\x00\xee\x27\xf7\xff\x8e\xd7\x7d\ +\xad\xff\x54\xe7\x77\xfa\xf5\x7e\xca\x03\xe2\x4d\x7f\xf7\xb7\x2c\ +\xdc\x40\x3a\xf6\x3f\x2e\xfe\xc7\x5c\x12\xe7\x0e\x29\xcf\x5c\xf8\ +\xfa\xf6\xc9\xd7\xec\x55\xe3\x13\x1d\xc5\x75\xff\x4d\x1b\x7d\x9f\ +\xee\xa7\x92\x81\xc4\xea\xed\xa9\xe8\x15\xcc\xfd\x0a\xb1\x7f\x01\ +\xfd\x3f\xd6\xfd\xb1\xe7\x07\xa7\x68\xf1\x29\x09\x1e\x7c\x89\x38\ +\x9f\xdb\xc4\xf7\x58\x74\x35\x7f\x53\x43\xb8\x5c\x1a\xa0\xf3\xf0\ +\x1e\x5f\x5d\x89\x03\xc8\x16\xb0\xde\x67\xb0\x27\x60\xf2\xc9\xc0\ +\xf3\x45\x75\x00\x78\xee\x32\x85\xf6\x9a\xec\x06\x8d\x6e\xf4\x0d\ +\x79\x80\x49\x74\x54\x25\x5e\x9b\xb1\xb0\xc6\xbb\xc0\x73\x7f\x60\ +\xa3\x8b\x7a\xf7\x97\xf6\xf2\x58\xff\xfd\xd8\x5f\xea\x7f\xba\xf6\ +\x57\xd1\x73\x00\x7e\xbd\xaf\x3f\xef\x53\x13\x3c\x50\xc6\x01\x97\ +\xd9\x7f\xb7\x79\x5c\xfc\x8f\xbc\x9f\x79\x8b\xf9\xbe\x50\xff\xb1\ +\x9e\x5c\x9a\x69\x7e\x53\x0d\x8f\x5d\x08\xd6\xe9\xf7\xe1\x1a\x43\ +\x1b\x7d\x93\xee\xc7\xb2\x0d\x12\xee\xbf\x4a\x98\xcb\x87\x72\x21\ +\x3d\xef\x03\xcf\x42\x04\xf4\xdd\x94\x83\xb1\x3f\x62\xc2\x39\xcc\ +\x03\x4d\x38\xed\xc2\x01\x83\x1c\x4e\x45\xe2\x6f\x62\x9d\xd7\x1c\ +\xcf\x79\xf8\x5b\x67\xed\x06\x9d\xdc\x40\x0e\x90\x31\xb9\x0e\x90\ +\x32\xda\xd4\x0b\xc8\xc0\xf7\x4d\x41\xbe\x97\x49\x2f\x7d\x46\x31\ +\xce\xeb\xf6\x0d\xbe\x1f\x0f\x34\xc9\x6e\xde\xfc\xe8\x73\xc9\xef\ +\x5b\x3c\xdb\x51\xb4\x18\xf7\x9b\x31\xb9\xda\x14\xff\x53\xfe\xef\ +\xf2\xfc\x5f\x55\xfa\xff\x1a\xcf\xaf\xaa\x31\x3e\x75\x1d\x40\xef\ +\x05\x69\xdc\x2f\x6b\x4e\xe6\x7f\x06\xe6\xfe\x1d\xf1\xfd\xa4\xfb\ +\x6d\xe2\xfa\xc8\x4b\xed\x1f\xf9\x7f\x53\x6e\xf3\xe6\xe9\xc9\xa7\ +\x5e\x0d\x6e\x1f\x6b\x42\x93\x1b\x7d\x93\xee\xe7\xf2\xf0\xb8\xdd\ +\xfa\x97\x42\x78\xd9\xcb\x86\xa5\xee\x17\xc5\xb8\x1f\xfc\x3e\xf8\ +\x67\xd4\xff\x92\xb3\xc4\xf1\xbf\xd5\xf5\x79\xa0\x68\x7e\x43\xf3\ +\xba\xbb\xc2\xef\x8c\x9c\x2e\x68\x0b\x10\xdf\x5d\xb8\x5d\x33\x86\ +\xd8\x00\x1b\x75\xbf\xc9\xb5\x00\xd4\x7f\xaa\x03\x76\xbd\x64\xb4\ +\xe5\xc5\x23\x0b\x37\x28\x35\xd1\x54\x01\xcf\xcb\xc9\x96\xec\xe6\ +\x6d\x4f\x39\x37\x15\x59\xa4\xdc\x1f\xfd\x2f\xed\xe0\x62\xdf\x0f\ +\x7c\x72\x45\xdb\x00\xd2\x7b\x8e\xfd\x39\x16\xe8\xd7\xfc\x2b\xda\ +\xc7\xcb\x0c\x90\xc6\xfa\x1a\x9c\xff\xaf\xf8\xfa\xaf\xf7\x7e\x7f\ +\x41\xff\x65\xf6\x1f\x73\x00\xec\x29\x27\xc3\x5d\xcf\xb1\x97\x7e\ +\x3a\xbe\xf5\x11\x88\x2d\x83\x31\x40\x50\x17\x5a\x3f\x99\x89\xa5\ +\xe7\x3f\x94\x0b\x2f\x49\xfd\x7f\x09\xfc\xff\x12\xd8\x80\x25\xaf\ +\x6c\x2e\x11\x1e\x1c\xc5\xfe\x18\x97\xc9\x4e\x28\xf3\xc0\x68\x1e\ +\xb8\x96\xc4\x01\x4d\xdf\x16\x70\x0c\xc0\x39\x01\xd6\x04\xb3\xa2\ +\xff\x19\xd0\x7f\xac\xeb\xa6\x0c\x3c\x2d\xf0\xfd\x2d\xd2\xff\x58\ +\xa8\x75\x38\x19\x79\x2b\xce\x01\x60\x0d\x70\xf8\x37\x5d\x70\x20\ +\x27\x4c\x8a\x9b\x77\x3c\xeb\xef\x93\xd1\x45\xea\xf1\x16\x8c\x05\ +\x7f\xef\x0f\x75\xbf\x4a\xf9\x7f\x93\xf3\x7e\xa7\xcf\xed\x39\xb8\ +\xff\xa7\xf7\x7f\x7c\x9e\x0f\xda\xfb\x9b\x97\x19\x20\xf9\x1a\xe9\ +\xfd\x13\xfe\xbf\xdd\xfa\x15\xfa\xdf\xa1\x18\x20\x47\xf3\x63\xe0\ +\x1b\xd0\x27\x84\x5a\x5e\x3a\xdd\xf4\x20\x25\x7c\xb5\x0a\xe2\xc2\ +\xf5\x14\xc3\x99\x79\xe3\x3b\xd3\x11\xf4\xff\x5c\xfb\x43\x1b\x40\ +\xbe\x1f\xf1\x60\x31\x26\x44\x4c\x16\x9b\x31\xa1\xf8\x68\xfd\x6f\ +\x71\x2c\xe7\xf7\x74\x39\x07\x28\x92\xfe\x37\x89\xdf\x2d\x67\x49\ +\x3d\x10\x5e\xb3\x16\xd6\x02\x1b\x64\x03\xd2\xa8\xfb\xf0\xef\x29\ +\xfc\x9c\xbd\xef\x58\x3a\xb7\xf4\x1d\xc5\xb8\x62\xd3\x1b\x7d\x43\ +\x1e\x40\xf2\xe8\x9d\xbb\x5f\x36\x87\x78\x9f\x05\x5b\xb8\x3f\xe0\ +\xef\x3c\x58\xf7\xa3\x79\x5f\xa7\xe5\xeb\xbf\x9e\xfd\x1f\xac\xff\ +\x0d\xc6\xfb\xd5\x81\x3e\x00\xd6\x05\x2a\x03\xba\x5f\x91\xb9\x7f\ +\xae\xfd\xb7\x8f\xf7\xff\x36\xcf\xfd\x65\x2c\xcc\x17\xb1\x96\x3c\ +\xe7\x65\xc1\xb7\x6c\xd9\xf1\x28\x9c\xfd\x0f\xff\xc6\xdf\x24\x90\ +\x7b\x2a\x91\xb1\xd1\xda\xb9\xb8\xf3\x53\x80\xfc\x3f\x1f\xe1\x9a\ +\x7f\x01\x62\xc2\x12\xf8\x85\x12\x3d\x13\x8b\x10\xd3\x2d\x08\x1f\ +\x9c\xcc\x86\x20\x0f\xb4\x2d\x3a\xaf\x7b\x3a\xa2\xff\x79\x4b\x5e\ +\x6d\x3e\xa8\xfb\xa8\xf7\x19\xb3\x0e\x7a\x5f\x67\xff\x8f\xfd\x5d\ +\x73\x1e\x3e\x5f\xf7\x66\x22\xfb\x6e\x9c\x8e\x5d\x86\xb3\x5e\x25\ +\x38\x9b\x37\xfa\x86\x3c\x50\x04\x02\xad\x3f\x9c\x8a\xbe\x69\x81\ +\xf0\x1c\xb0\xf7\x86\x33\x1e\x66\x97\xb1\x7f\x05\xf7\xbb\xec\xf7\ +\xfe\x58\xff\x6b\xb1\xe3\xf1\xbf\xfb\xba\x2e\xfd\x7f\xb7\x3e\x50\ +\xff\xab\x0f\xec\xfd\x34\xa8\x7e\x50\x1a\xdc\xf9\x93\xde\x5f\x0e\ +\xf4\x3e\x6f\xa0\xde\xb7\xbd\x2c\xc4\x88\x59\x78\x4e\x32\x4e\xfd\ +\x76\xcb\xb8\xec\xb3\x70\x99\xcf\x50\xc1\x33\xb1\x9e\x12\x19\x53\ +\x8a\xf5\x3f\x7a\xc0\x2b\x84\x25\xfe\x0f\xb3\xee\x97\x4d\xc6\x83\ +\x27\x3e\x28\xc4\x85\xa3\x1c\x80\x9f\x8b\x92\xc4\x86\xba\xa7\x5b\ +\xd6\x39\x80\xe6\x75\xd5\xfa\x6f\x62\x4d\x00\x62\x00\x78\x8f\x36\ +\x20\x43\xfe\xbf\x09\x36\x60\x0e\xf4\x7f\x3f\xd6\x88\x3e\xbf\x7d\ +\xfb\x19\x7f\xa3\x98\x97\x26\x90\x93\x27\x4f\x9e\x0a\xbd\x6e\x05\ +\xf3\x7f\xb4\x01\x05\xe1\xfd\xc4\xda\x3f\xf2\x71\x50\xed\xcf\x6e\ +\xf9\xfb\x3f\x14\x0b\xb8\xc7\xe7\xff\x1a\x03\x50\xef\x03\x69\xdc\ +\x8f\xe3\x79\x7f\x06\x30\xff\x30\xee\x37\x9b\xc7\xcd\xfe\xa2\xee\ +\xe7\x4c\xd6\xfd\x8c\x51\xf7\xb2\xd1\x7d\x47\x4b\xce\xfe\x1b\xd4\ +\xa6\xd2\xeb\xe1\x1a\xb3\x1b\x7d\x93\xee\xe7\x32\xbd\x45\xa9\x37\ +\x27\x90\x77\x3d\x74\x85\x97\xc7\x1a\x20\x3c\x0f\x18\xff\x97\xc1\ +\xff\x97\xd1\x06\x58\x3d\xe2\x82\x62\x9f\xc0\x7d\xa1\x8a\xe0\x42\ +\x69\xee\xf7\x92\xdf\xdb\xe5\x1a\x2f\xf6\x00\x34\xcf\xa3\x8e\x03\ +\xf2\x98\x03\x80\xee\x63\x1e\x90\x32\xe6\x21\xf6\x47\xfd\xdf\x0b\ +\xb1\xde\xbe\x2b\xe1\x3a\x10\xe7\x35\x98\xf3\x3c\x89\x32\x8c\xfa\ +\x1f\x7e\xdb\x72\xd6\xec\xf3\x7e\x32\x06\x97\xf8\x7e\xbb\xed\xcf\ +\xfe\x54\xdd\x7e\xfe\xcf\xf8\x7f\x4d\xaf\xfa\x0b\x31\xc0\x60\x0e\ +\xc0\x7c\x80\x12\xfb\x6b\xce\x2f\x67\x20\xff\xb7\x58\xff\x0b\x12\ +\xff\xe7\x4d\xf0\xff\x70\xd0\x4f\x94\xdd\xc6\x4f\x2a\xd9\x0f\xff\ +\xb3\x62\xdd\x0f\x6a\x7f\xeb\x2b\x58\x6f\x7b\x6e\xcc\x3e\x1f\xfc\ +\xff\x95\x90\xff\xaf\x12\x17\x94\x8e\xff\xab\xe8\xff\x31\xff\x97\ +\xbe\x10\xf5\x85\xad\xfe\x73\x41\xb3\x21\xf8\xb7\x8d\xb5\x24\x0e\ +\x60\x1b\x40\xfb\x1d\xa0\xe7\x05\x38\xa8\xf7\xfa\xe4\x4c\x3e\x99\ +\xe8\x3c\xf9\xfe\x54\xf4\x62\x2f\x16\x6d\x05\xfa\xbf\x01\x82\xfa\ +\xbf\xdb\x38\x77\xb9\x68\xaf\x82\xde\xad\x32\xfe\xb7\xd8\x7a\xe6\ +\xe3\x6b\x91\x9d\xa7\xde\xbf\xcd\xb8\xdd\x7e\xef\x2f\xf6\xcb\xfa\ +\xef\xc7\x00\x03\xef\x35\xe6\x4f\xd9\x6d\x1c\xa7\xff\x05\xd9\xfb\ +\x43\x8c\x51\xf4\xff\x58\xff\xcf\x45\xe1\xd9\x81\xef\xbb\x27\x3d\ +\x7f\xad\xda\x1c\x7b\x99\xe2\xde\x5f\x30\x13\xb6\xfe\xf2\xfb\x93\ +\xdb\x1e\xf3\xd9\x82\xb9\x72\x3b\xf5\xff\x70\xf6\x07\xfd\xbf\xc1\ +\xfa\x5f\x91\xf8\xbf\x6c\xb2\xfe\xe3\x5c\x68\xf5\x17\x70\xa1\x34\ +\xa7\x23\xea\x7e\xc1\xaa\x8b\x0d\x90\x39\x0f\xd4\x7d\xec\x01\x60\ +\x9e\x87\xfa\x6f\x60\x2d\x60\xde\x4b\x9b\xfb\xc0\x26\x7c\xd8\x9b\ +\x9c\xb8\xf4\xbe\xaa\xff\xf8\x6c\x6e\x56\xf7\xd1\x67\x74\x58\x0d\ +\x3f\x39\x64\x9d\xbf\x82\x73\x18\x39\xd9\xf1\xc4\x5a\x2f\x71\x7f\ +\x3b\x1a\xfb\x5f\xdb\x7a\xc6\xfe\x22\xfc\x2f\x77\x20\xee\x8f\x0d\ +\xee\xfe\xff\x2a\x5b\xd0\x9f\xfd\xf3\xf5\xdf\x61\xfd\x27\xbe\x6f\ +\xe9\xfd\x61\x4d\x29\x67\x20\x56\x48\xeb\xe6\xb8\xfb\x16\xdc\xf7\ +\x0f\xe6\xc1\x4f\x9e\x38\xe3\x43\xea\x79\xc9\xd8\xde\xef\xa5\x22\ +\x2b\x90\x7f\xad\x78\xb9\x30\xf8\x82\x48\xdf\xff\x57\x2c\x8d\x07\ +\xc1\xfe\x5f\xeb\x3f\x61\xc3\x4b\xee\x5f\xf6\xe7\xbb\x34\xc7\x6b\ +\x93\xf8\x5d\x49\xff\xad\x16\xd7\x79\x4c\xca\x0d\x7e\x9a\x0d\x37\ +\x3e\x12\xb7\x2e\xfa\x54\xce\x7a\xff\x75\xbb\x9d\xf3\x56\xe0\x1a\ +\x32\xea\xd4\x9e\xff\x43\xdb\x64\x11\x56\xaa\x52\x2f\x55\x6a\xe8\ +\xbc\x61\x15\xbd\x64\x48\xed\xf8\x7b\xb8\xec\x82\x62\x2c\x93\xfb\ +\x94\x90\xff\xb7\xce\x5d\xc9\xe0\xcc\x17\xe1\xba\x70\xaf\xb7\x8c\ +\x35\x1e\x99\xff\xd3\x36\x9e\xe2\x7f\x8c\xfd\x63\xad\xfe\xfc\x9f\ +\xd4\x01\x6a\x6e\xff\xfd\xa0\xde\xf7\x31\x42\x07\x39\xff\xa4\x67\ +\x64\x09\xe6\x3f\xf1\x7e\x70\xae\x81\x71\x40\x3a\xb1\x7f\x1e\x2e\ +\xed\x31\x1b\x7d\x6f\x1e\x60\x82\xcf\x76\xd9\x49\xbc\xf1\xdf\xd3\ +\xe1\x95\xdb\xb2\xba\x06\x10\x59\xa0\x18\xa0\x6c\xf4\x98\x0b\x96\ +\x74\x9f\xf7\xc2\x2a\x34\x17\x22\x35\x40\xc9\x0b\x39\x0e\x68\xf4\ +\xe7\xbc\xed\x86\xf8\x7f\xd9\xf3\xa0\x3a\x4f\xcb\xab\x39\x73\x3f\ +\x18\x1a\xfd\xa3\xb7\x8d\x8c\xa9\x97\x81\xc6\xbf\x6d\x13\xef\xff\ +\x63\xac\x77\x2a\xf6\xfe\xb1\x26\x39\x0b\x17\xf6\x34\xa5\xdc\xd7\ +\x19\x3b\x2e\x6a\x67\x9c\x8f\x5f\x9b\x8d\x5d\xf5\x03\xd7\xbc\xfc\ +\xc8\x94\xdd\xbb\x7e\x6c\xa8\xfc\x4e\xb8\xf2\x3f\x52\xcc\x73\x76\ +\x9f\x11\xd4\xff\x90\xfd\xee\x15\xdc\xf1\xce\xe3\x9e\x17\xc6\xff\ +\x36\xd7\x7b\x4a\xb2\xf7\xc7\xf8\x9f\x4d\xc9\xff\x1b\x12\x03\x0c\ +\xf0\xff\x0d\xe0\x00\xf5\xe7\xfe\xb5\xee\xf7\x8f\xf6\x07\xac\xff\ +\x6d\xa9\x21\x77\x19\x63\x14\x6d\x81\xdd\x3c\x5c\x9d\xe9\x7e\x1d\ +\x3c\xfe\x5f\xaa\x60\xdf\x6f\x23\x24\xb2\x79\x38\xd9\x48\x18\x97\ +\x7f\x97\x76\x7f\xa2\x38\xff\xbb\xe2\x95\x74\x0c\x60\x71\xfc\x5f\ +\xd5\x98\x50\xa8\xff\x56\xbf\x2f\xec\xfb\x7f\x87\x77\x3c\x75\xbc\ +\x47\x35\x40\xb3\x41\x75\x9e\x22\xed\x98\x41\x1e\xe0\xce\xfd\x40\ +\x8d\x8f\x9f\xad\x18\xdb\x1d\xfd\xe6\xa9\x36\xe3\xa9\x79\x0e\x27\ +\xe1\x3f\x0f\xdf\xa1\xfe\xe2\x03\xe5\xd4\xc1\x2f\x96\x32\x07\xbd\ +\x5c\xe2\x0a\x2f\xe7\x72\xbe\x8c\x98\x67\x4e\xf8\x80\x67\x43\x7e\ +\xec\xd8\x2f\xff\x08\x84\xab\xcf\x55\xbc\xab\x86\xbf\xd3\xa9\x68\ +\xcb\x8e\x13\xd4\xff\xb0\x7d\xde\x72\x16\x71\x9d\x4d\xc6\xfd\x2f\ +\x18\xc8\xc1\xd1\x11\xee\x9f\xf6\xf1\x7b\xbf\xee\x40\xfd\x8f\xf4\ +\xbd\xdf\xf3\xa3\x7a\xbf\xdb\x9f\x05\xd6\x1f\x6b\xff\xaf\x63\x42\ +\x9f\xef\x07\x67\x48\xc9\xff\x33\xcf\xe0\x69\xb1\xe6\x8f\xa6\xb6\ +\xbe\xf2\x03\x70\x59\xb3\x1b\x7d\x5f\x1e\xa0\x32\x0d\x71\xed\x7b\ +\x4c\xb7\xf5\x4d\xda\x07\x0c\xf3\x0c\x20\xe6\x00\x65\x73\x81\x63\ +\x00\x93\x73\x00\xca\xff\x45\xff\xa9\x2f\xe4\x70\x0c\xc0\xf1\x3f\ +\x63\x43\x95\x2c\x8d\xf3\xd8\xa0\xf8\xbf\x60\xb6\x78\xe6\x03\xbe\ +\x7e\xc6\x6a\xdf\x3e\xba\xe5\x77\x3e\xa3\x86\xc7\x70\xb6\x13\xb1\ +\x5d\x4e\x35\x5d\xc1\xbc\x13\x7c\xb9\xf9\xfa\x6c\xae\xfb\xcf\xa5\ +\xf8\xe5\x3f\xca\xc5\x0e\xfe\x2c\x63\x1d\xf0\xb2\x70\x32\x60\x1f\ +\x33\xe0\x2f\x73\xf6\x92\x97\x84\x58\x09\x31\x50\xe3\x91\xee\x4f\ +\x4b\xb1\xee\xb7\x8c\xd1\x47\x1f\x50\xcc\x59\x7d\xca\xcf\x31\x91\ +\xfe\xbb\xe7\x2d\x67\x08\xdf\x71\x91\x0e\x71\xff\x98\x1c\xe7\x61\ +\x6f\x97\xe6\xff\x9c\x76\x3f\xfe\x77\x8f\x8f\xfd\x7f\x11\x0b\x90\ +\x67\x80\x9b\xd4\xfb\x1b\x8c\x01\xfa\xb9\x61\x93\xe6\x46\xc9\x06\ +\x20\xcf\x07\xfe\x3c\xf8\xfe\xa7\xcf\x34\x6e\x54\xbc\x03\x62\x6d\ +\xf0\x6d\x79\xa0\x0a\xd6\xb1\x1e\xe6\xe6\xde\x70\x20\x15\x86\x67\ +\x1d\xf7\x81\xc2\x32\x07\x18\x95\xda\x1f\xf6\xff\xa9\xfe\xd7\x65\ +\xfd\xc7\xba\x90\xae\x01\x88\xef\xd7\x18\x8f\x5a\xf7\x4b\x76\xdd\ +\xcf\xf7\xf4\xac\x57\x2a\xda\x3a\x9a\x36\xea\xb7\x6c\xdd\xfc\xd0\ +\x3a\xfc\xcc\x17\xc0\x41\x6e\xc0\x53\x25\xfe\x77\x91\x17\x2b\x14\ +\x7e\x6f\xbd\x92\x58\xf8\x42\x25\xbe\xfc\xe3\xbc\xb3\x46\x38\x08\ +\x65\x6b\x99\x4e\x11\xee\x47\xc1\x64\x2c\x34\xc4\x47\x4d\xd3\xee\ +\x3a\xc4\x36\x91\x85\x23\x31\x73\xf1\xe6\x52\xee\xb2\x4f\x28\x95\ +\x79\x0f\xfc\x36\x7f\xae\xd4\xd8\xcc\x46\xff\x42\xbf\x4e\x50\xff\ +\xa3\xf6\x79\x2b\x39\x8b\x39\x5d\x74\xfc\x8f\xb3\x5e\xdc\xfb\x67\ +\xcc\x5f\x8a\xff\x07\x77\xff\xe4\x55\xf7\xfd\x6b\x3a\x16\x18\xac\ +\x03\x6a\xfd\x1f\x9c\xff\x19\xd8\xff\xa1\xf8\xdf\x96\x3d\x63\xc4\ +\x18\x48\x5f\x71\x83\xe2\x59\x9f\x60\x07\x64\x63\x84\x6a\xd9\xe3\ +\x5b\x8a\xaf\x4b\x59\xed\xaf\x94\x64\x17\xb8\x0c\xb1\x21\xd6\x00\ +\x2a\x34\x0b\x24\x35\x00\x9c\x0d\xb1\x3b\x72\x34\x3f\xac\xf6\xff\ +\x75\xe1\x77\xa8\x33\xcf\xb3\xd5\xc7\x79\xe3\xf8\xbf\xe3\xa5\x23\ +\x6d\xf0\x9b\x0d\xcf\x31\x5a\xdf\x75\x76\x77\x3e\xe3\x4e\xbf\xe6\ +\x2d\x8a\xf1\x9d\x37\x92\x1f\x1c\x7f\x76\x45\xa9\x9d\x2f\xb5\x66\ +\x3a\x57\x16\xed\x95\xdb\x8b\xce\xf2\xb1\x92\xbb\x04\xb6\x6e\x85\ +\x76\x21\x90\x1b\x9b\xe6\x21\x89\x27\xb3\x43\xb3\x72\x58\x37\xcb\ +\x0a\xbe\x21\xe3\x21\x23\xc6\xf9\xa2\x67\xc4\x97\xbe\x5b\x49\x7c\ +\xe0\x6a\xa5\xb6\xbc\x01\xc2\x09\xe4\xb0\x3b\xe5\x38\x8f\x48\xff\ +\x9d\x77\xaf\xe4\x04\xd3\xbd\x40\xdc\x5b\x8c\xfb\x8d\x7f\x5b\x8c\ +\xd5\x2b\x31\xe6\x00\x67\xdc\xdf\x96\xef\xf3\x89\x07\xcc\x6d\x0e\ +\xe0\x7c\x35\xa5\xe7\x3f\x38\x13\xd4\xe4\xbd\xdf\x01\xff\x5f\xf4\ +\xb9\xbf\x3b\x7d\xfd\x47\x7f\x92\x38\x78\x23\x72\x12\x2b\xe6\x94\ +\x0f\x64\x83\x04\xf2\xdd\x47\xc7\xdd\xfa\x5c\x61\x7a\x91\x71\x00\ +\xa8\x0e\x88\x35\x80\x05\xee\x03\x4a\x0d\x00\x77\x43\x4a\x66\xab\ +\x3f\x1f\xe6\x70\xdd\x5f\xe7\x7a\xba\xfe\x47\xbb\xde\x4e\x7f\xce\ +\x03\xb9\x1d\xd2\x51\xd4\xff\x96\x97\x01\x1b\x30\x33\x3d\x07\xba\ +\xb3\xf8\xcf\xc3\xc3\x64\xfb\xb7\x6d\xd0\xaf\x8d\x7d\x87\x84\x52\ +\xa7\xbf\x2b\xe9\xb4\xbf\x9e\x31\x31\xbf\xc7\x99\xe7\x15\xaf\x6a\ +\x61\xff\x73\xc9\xab\xe0\x1e\x14\xe8\x75\xd1\xc0\x7c\x95\xf7\x64\ +\xd0\x9e\x15\xa2\xbc\xb3\x9a\xb3\xb8\x8f\x85\xbb\x2c\x88\x87\x9e\ +\x81\x93\x8c\x40\x5e\x90\x6c\xff\x04\xbe\xf5\xbb\x15\xf7\x37\x43\ +\xea\x14\xea\x71\x90\xfe\xbb\xe7\xd1\xfc\x0f\xe6\xff\xdc\xff\xeb\ +\x52\xad\x57\xe3\xfe\xf0\x8c\xa7\xcc\xfd\xc5\x5a\x3e\xff\x1f\xcf\ +\xff\x70\x9c\x5f\x13\xdc\xff\xbe\x2d\xa8\x0f\xec\x04\xd7\x09\x2b\ +\x8c\xe2\x43\x7a\x1e\x34\xee\x77\x47\xe6\x49\xb8\xd7\x50\x4b\x2d\ +\xde\x3c\x3e\x3e\xf3\x3a\xc5\x7d\xa0\x40\x36\x48\xe0\xe1\x2c\xa6\ +\xca\x17\xfd\x3d\x62\x82\xe5\xc2\xcb\x5e\x5e\xfa\x80\xe8\xff\xa9\ +\x07\x88\xcf\x86\xd5\xf5\xf7\x43\xab\xf4\x9c\x88\xff\xb7\xfb\xfc\ +\x4e\x7d\x9c\x17\xee\xff\xa1\xff\xcf\x1a\x4d\x2f\x1b\x6d\x79\x69\ +\xdc\xfd\x83\x18\x20\x05\xfa\x9f\x0c\x35\xbd\x58\xa4\xf7\xf9\x21\ +\xc2\x02\xdf\x30\x9c\xe7\x3c\x84\x9d\x67\xbb\x66\xf7\xdb\xb9\xf0\ +\xca\x61\xe4\x39\xab\xd8\xcb\x5e\x0d\x6c\x40\x15\x72\xfc\x8a\xc5\ +\x33\x10\x25\xd9\x83\xc2\x79\x68\xcc\x91\xa9\x87\x65\x74\x69\xae\ +\x09\x71\xd1\x98\xc7\x02\xf4\x9f\x78\x0e\x16\xe0\x15\x6c\x43\xb4\ +\x77\x74\xc6\x59\xbe\x39\x1d\x7d\x0b\xce\xb2\xbf\x1a\xf9\x11\x37\ +\xe8\x77\xfc\x25\x41\xfd\xb7\xdc\xf7\x2c\x67\x0d\xee\xff\x21\xbe\ +\x6b\x01\xeb\x3c\x88\xfd\xef\x74\xb9\xbf\x83\x31\x80\x3f\xfb\x33\ +\xc0\xff\x01\x36\x60\x36\xd1\x92\xf8\xbf\x29\xb8\x3f\x03\xf3\xff\ +\x7e\x1d\x90\x7b\x06\xfe\xfc\x9f\xd3\xc7\xfd\xe7\x3d\x23\xf6\xff\ +\x39\xb7\xfd\xe3\x52\xe9\x6d\x0d\xb8\xac\x87\x6c\xf4\x7d\x79\x80\ +\x4b\x76\x22\xfc\x92\x73\x32\xd3\x88\x03\xb2\x46\xfe\x1f\xe7\x80\ +\x2b\xe0\xcf\x2a\x26\xeb\x7e\x55\xf6\x43\x69\x1e\xc0\x6e\xfb\xbc\ +\x90\x25\xa9\xff\xe9\x9d\x20\x3c\x1a\xe3\x91\x75\xbf\xc1\xb3\x7f\ +\x46\x1d\x7c\xe4\xbc\x97\x8c\xe2\x6b\xc3\x73\xc3\xad\xef\x6c\x19\ +\x7e\x38\x62\x80\x6d\xc4\x9e\xd7\xc4\x88\xda\xfa\x22\xd7\xea\xdc\ +\x9a\xdb\xbd\x7c\xb4\x04\xbe\xbf\x82\x79\x3e\xea\xbe\xb3\x44\xb9\ +\x70\xd5\x5d\x64\x5f\x25\x33\xd0\x25\xe2\xab\x42\xfc\x83\x2e\xf1\ +\xd5\x15\xf4\x3e\xa4\xdd\xa6\x5c\x27\x6b\x74\x08\xc3\x1a\x31\xcf\ +\x52\x84\x67\xdf\x39\x96\xb7\x97\x8e\xe4\x72\x0b\x3f\x52\xca\x5c\ +\x80\x28\xeb\x61\xea\x14\xd8\x69\x41\xfd\x37\xc0\xff\xf3\xec\xcf\ +\x12\xc7\xff\x46\x87\xed\xbb\xf4\xfe\xcb\x4e\x3f\xc6\xe3\xbe\xbf\ +\xae\xf7\xe9\x38\xa0\xe1\x0d\x72\xff\xe9\xb9\x7f\x5d\x1f\x2c\xcb\ +\xfc\x7f\xc5\x6d\xf9\xbb\x7f\x74\xaf\x74\xff\xdf\xec\x90\x5f\x29\ +\xd8\x9d\x9f\x57\x32\x4b\xdf\x83\xcb\x7a\xce\xa9\x70\x6f\x1e\xc0\ +\x92\x8d\x65\xfe\xee\xdc\xf4\xae\x45\xa9\xff\x2f\xd0\xa9\x52\x0d\ +\xa0\x6f\x03\x2a\x32\x07\xe8\xef\x89\x4a\xfe\xef\xfb\x7e\x17\x75\ +\xbf\xce\x18\x8f\x26\xcf\xfe\xe0\x7c\x77\x26\x5a\xe7\xd9\x3f\xd0\ +\xff\xb4\x01\x36\x20\x3c\xef\xc5\x43\xcd\x5b\xc2\xe6\x5b\x21\x57\ +\x56\xe6\x06\xfc\xbe\xf9\xed\x3b\x5e\xda\x2c\x84\xbb\x54\xef\xf0\ +\x31\x4f\x2c\xa9\x83\x91\xce\xf7\xf9\x70\x29\x67\xc5\xde\x15\xea\ +\xba\xdb\xf1\xeb\xd7\xe4\xd3\x2c\xde\x6b\x47\x6c\x74\xc4\xb4\xca\ +\x12\xe6\xb1\xe6\x48\xc1\xb8\x60\xc9\x3b\xbd\xb0\xf0\x2d\xd0\xbc\ +\x0f\x2a\x9e\x15\xd8\x50\x5c\x3b\xf2\xff\xce\xf9\x2b\xc8\xef\x90\ +\xa3\xfd\x9f\x1e\xcf\xff\xa2\xef\x87\x43\x33\x5e\x8e\xee\xfd\xb7\ +\xfc\xf9\x3f\x8e\x03\x9a\x52\xf3\xab\xfb\x35\x7f\xe2\xfc\x8a\xf7\ +\xed\x41\x55\x66\xff\x69\xef\x5f\x76\xc5\x34\xee\x27\xf6\x82\x8a\ +\x68\x43\xa9\xd7\x40\xf7\xeb\x58\xd6\xe9\x1e\x36\x43\x4f\x3c\x0f\ +\x2e\xad\xba\x91\xf7\xe5\x01\x2e\xd9\xd1\xa1\xda\xb9\x99\x9d\xab\ +\x5e\x76\x1a\xe2\xd9\x48\x8f\x6a\x5e\x35\xec\x01\x62\x0c\x60\x48\ +\x0c\x40\xf1\x3f\xd6\x02\x5b\x7e\x0f\x80\xe2\x3b\xb7\xe9\xef\x02\ +\xd3\x1e\xa0\x23\xf3\x7f\x26\xcf\xfe\x64\xc0\xdf\xa7\xd0\xef\x47\ +\x20\xef\x37\xe6\x20\x0f\xd8\xef\xcd\x84\xf6\xde\x11\x4f\xf7\x3e\ +\xaf\x36\xa6\xf6\xf3\x98\x84\x7b\xf1\xb5\x95\xf0\x12\xe1\x1f\x32\ +\xe6\x19\xd8\x3a\x67\x91\xfd\xbd\xdb\xa3\x9d\xc7\x8a\xdb\xf5\xb1\ +\x4f\x8a\x36\xcf\xb0\x94\x63\xec\x2b\x71\x17\xba\xe4\xea\x59\xb6\ +\x16\x61\xd8\xe4\x4c\xc6\xb5\xc0\xf7\xbc\xd7\xca\x98\xe9\x19\xbb\ +\x73\xc7\xef\xe4\xbb\x5f\x56\x34\x4f\xb4\xb1\xb5\x6e\xd6\xff\xf3\ +\x56\xb2\x7a\xf6\xd7\x62\xfc\xbf\xb2\xcd\xfe\xbf\x22\x76\x8d\xfb\ +\xbb\x7d\xbd\xd7\x75\xc0\x59\xe9\x01\x30\xc6\x67\xfd\xb8\x5c\x80\ +\xfa\x03\x54\xff\x93\xba\x9f\xd9\xe0\xbe\x1f\xe2\x45\x9b\xdc\x0f\ +\x2e\x80\x4f\xa0\x3c\x4a\xf0\x3f\xb2\x18\x3f\x16\x1a\x1f\x83\x4b\ +\x7b\xf6\x46\xde\x97\x07\xb8\xcc\x8c\xab\x4d\x6f\x4e\x4e\x2e\x7a\ +\x59\xcc\xff\x43\xe0\x13\xc2\xa0\x07\x60\x07\xaa\x06\x1e\x78\xde\ +\x0d\xe9\x0f\xcb\x1c\x90\x9e\x11\x2d\x49\x0c\x50\x24\x3b\xa0\x73\ +\x00\x8d\xf3\xc8\x87\x62\x00\xa3\x01\xfa\x3f\xcf\x71\x00\xe8\x7f\ +\x22\xf4\x21\x2f\x91\x58\xb9\x4e\x71\xed\xe7\x64\xf6\x00\xb1\xe7\ +\xf1\x94\x4c\xa4\x77\x3d\x62\x1e\xe2\xdc\x53\x09\xf2\xfe\x32\xc6\ +\xfd\xce\xa2\xec\x3a\x83\x2e\xc4\xd8\x27\x96\xf1\x15\x75\x3e\x0e\ +\xbf\x3f\x1e\x97\x7b\x58\xf8\x5a\xa2\x1c\x88\xe3\x82\x3c\xfb\x33\ +\xc1\xb6\xe3\x93\x23\x8c\x0b\xb6\x0b\xc9\x54\xf7\x27\x93\x3b\xfe\ +\xb8\x0b\xee\xff\x91\x6a\x03\x67\xdc\x39\xff\x7f\x17\xc5\xff\x39\ +\xc4\xfe\x94\xfd\x5f\x9d\xd7\xd1\xec\xbf\x5f\xfb\x6f\xfb\x35\xc0\ +\x9a\xcb\xfd\x40\xde\xf5\x3d\xbe\xf7\x4f\x76\xc1\xe5\x7f\xab\xf8\ +\xfe\x5f\x66\x7e\x05\xf3\x53\x73\x7e\xa1\x4f\xe0\x9a\x89\xec\xff\ +\xb8\xf3\xde\xcc\x4c\xf3\x7a\xb8\xb4\xb7\xab\x53\xac\x57\xf2\x00\ +\x92\x11\x78\x20\x9f\x9b\x9c\x5e\xf5\xca\x61\xcc\xff\xe1\xb9\x40\ +\xfd\x87\x53\x11\xff\x5f\x1d\xa8\xff\xf1\x1c\x70\x4b\xf2\x3b\xae\ +\xf9\x95\x63\x18\xe3\xf1\xfe\x2f\xed\x02\x93\xff\x97\xdd\x3f\xda\ +\x01\x6e\x32\x06\x80\x59\x27\xff\x1f\x9f\xbe\xd8\x33\x76\x75\xbe\ +\xab\x4e\x3e\xfe\xcf\xe6\x11\x35\xf2\xbc\x7c\x64\xf5\x48\xc9\x5e\ +\x11\xac\xe3\x25\xca\xfd\xd1\xef\x63\xae\xcf\x7b\xce\x1d\x7a\xad\ +\xc4\xf8\x63\xc6\x3d\xe3\x83\xf5\x4f\x3d\xd7\x5a\x96\x1a\x00\x71\ +\xa4\x69\x4c\x6b\x9c\x7b\x74\x3a\xbc\xff\x40\xef\x17\x90\x03\xe5\ +\x68\x3e\xd7\xfa\x09\xfc\xfc\x37\xc0\xd9\xb0\xf9\x00\xd6\xff\xf3\ +\x96\xf3\xc2\xf1\x96\x8f\x76\x19\xff\xd3\xe2\x3d\x6f\xcd\xfd\x45\ +\xfd\xdd\x58\x5b\x6a\xff\x2d\xe9\xf5\x21\xe7\x5f\x6b\x80\xf3\x43\ +\xd7\x03\xea\xfd\x18\xc0\x9f\x09\x6d\xd2\xf7\xd0\xb5\xe0\xa2\xdd\ +\xf6\xf5\x1f\xe3\x00\xc4\x8b\x29\x10\x67\x44\x1d\x6c\x40\xe3\xc8\ +\xc8\x96\x02\xd6\x82\x4e\xb9\x7e\xe9\x03\x45\x40\xff\xcf\x8c\x23\ +\x07\xc0\xd4\x01\xaf\x18\xc2\xfc\x1f\xfc\xa0\xe8\x3f\xc6\x00\x58\ +\xaf\xa9\x9a\xa2\xff\x56\x7f\x0f\xa8\x64\x37\xfd\xba\xbf\x5f\x03\ +\xc4\xbf\xad\xc9\x7f\x77\xda\xfb\xc3\xda\x1f\xe1\x00\x21\xfe\x47\ +\xdd\x4b\x46\xe7\xbc\x78\xf8\x62\x6f\x72\x67\xf7\xfb\x4a\x85\x5e\ +\xa1\x4e\xae\x3e\xe4\x36\xed\xf8\xfd\x77\xd4\x22\xf0\x7b\x3a\xe0\ +\xfb\x2d\x8e\xfd\x89\xfb\x16\xf5\x1f\x75\x9f\xe2\xff\x0e\xfb\x7d\ +\xa7\xaf\xf7\xb8\xef\x8c\xa7\x86\x36\x22\x26\xfa\x21\x3e\xb3\xa8\ +\xb9\xd1\x2c\x7e\xd5\xf1\x4f\x41\x66\x5e\x30\x2f\xc0\xaf\x39\x63\ +\x76\xff\x27\x41\x0b\xcf\x3c\x89\xbf\xef\x71\xa2\xf3\x7f\xec\xfd\ +\x51\xfd\x9f\xfa\xff\x5d\x3f\xfe\xc7\xfe\x2e\xf9\x7f\xa7\x5f\xff\ +\xd3\xfa\x8f\x3c\x20\x3a\xfe\xef\x73\x7f\xf6\xe7\x81\xf4\xd7\x56\ +\xe2\x1a\x23\xa2\xc5\x98\xd1\x58\x3b\x15\xec\x2f\xd2\x7d\xc4\x86\ +\x21\xfd\x6f\x80\x5f\x98\x83\xcf\xef\xf5\xf6\x64\x3e\x7c\x95\xe2\ +\x99\xb0\xfb\xda\x3e\xe8\xfd\x45\x9e\x6e\xec\xfe\xfb\x9b\x4a\xd3\ +\x57\xfe\x3c\x1f\xe2\xfe\x7f\x31\x8c\x3d\x00\x78\x36\xa2\x12\xff\ +\x1b\xf0\x5c\xa0\x0d\xc0\x19\x00\x4b\x63\x3b\x88\xde\xa3\xef\x77\ +\x74\x1f\xa0\x0e\x7f\xe3\x3a\xe1\x80\xe4\x10\x03\xcc\x60\xcc\xbf\ +\x14\xc4\xfe\x29\xbb\xf9\xa3\xac\xd9\xb8\x6e\x26\xf2\xfe\xeb\xb7\ +\xee\x6c\xfc\x70\x93\x7a\x0a\x72\xbd\x9c\xcc\xfe\xd8\x93\x62\xc5\ +\x0b\x96\x8a\xe6\x2a\x5c\xe7\xaa\x8f\x75\x5c\x06\x1f\x5d\x76\xbb\ +\x7d\x9c\x23\x57\xe2\xe0\x58\xdb\xf7\x83\xf8\x5c\x97\xc9\xcf\x09\ +\x2f\x1e\x61\xe4\x88\xfe\x13\x3e\x72\xd7\xe7\xd1\xc4\xe7\x1d\x6d\ +\x5f\x5e\xea\x5e\x79\x93\x71\x6e\x13\xc9\xb9\x1f\x6c\xdf\xfe\xcc\ +\xbd\x6a\x83\xf6\x86\xfc\xfc\xdf\x58\xa2\xdd\x7f\xec\xfd\x15\x2d\ +\xbd\xfb\x87\xb5\x79\x9e\xd3\xe1\xd9\xff\x96\x60\x7f\xf2\xd1\xb3\ +\x3f\xfe\xec\x6f\xbc\x49\x36\x40\xef\x05\x54\x1c\x3d\xfb\xdb\x24\ +\x1f\xc0\x73\xff\x3c\x07\xca\xf1\x7f\xcb\x8f\x0b\xf3\xd6\x3c\x9c\ +\x39\xaf\x08\xf1\x7f\xc1\xbe\xc4\x2b\x27\x2e\xbe\x16\x2e\xef\x25\ +\x2a\xe0\xfd\xdd\x28\x79\xdc\xd6\xb1\xc7\xfd\x43\x79\x7a\xf5\x36\ +\xc4\x03\x44\x2c\xb0\x32\x9d\x2e\xf7\x00\xa2\xf8\xda\x91\x1c\xa0\ +\x45\xa7\x2c\x38\x00\x25\x7f\x06\x00\x75\x7e\x9e\x5e\xf1\xef\xab\ +\xb1\x40\x11\xdb\x11\xf1\xff\x92\x60\xeb\x73\xd1\xe6\xd7\x46\xc6\ +\x9f\xde\xde\x39\xf6\xf8\x9e\xda\xfa\xe1\x9b\x94\x7a\xe1\x7b\x15\ +\xcf\x01\x9e\x0c\xc1\xd8\xf2\x55\xe9\x58\xe3\x8b\x84\x7f\x83\xba\ +\x6f\x2f\x11\x0f\x05\xe2\x1c\x13\xd6\x11\x61\x5e\x73\x7d\x8f\xfc\ +\x3f\xd9\x00\xf6\x69\x34\x03\x07\xef\x67\x1d\xdd\x17\xd3\x58\x08\ +\x2d\xd2\x7f\xec\x09\x60\xbe\x8f\x87\xe6\x84\x68\xfe\xa9\x21\xfe\ +\xae\x4d\xb9\x10\x71\xa7\x94\x9a\x5f\x02\x4d\x7c\x96\xda\x00\xfe\ +\x23\xee\xff\xbd\x6b\x99\x38\x1e\x8d\x45\x99\x6b\x92\x79\x3c\xb7\ +\xe3\xd7\xff\xca\x32\xdf\xa5\xfb\xff\x1c\xdf\x37\x29\xcf\xaf\xb9\ +\x7a\xf6\xa7\xd9\xc7\xfc\xf5\x77\x7f\x34\xee\x4f\x8b\xf6\xc0\xb9\ +\x76\xda\x96\x7c\xbf\xd5\xaf\x0b\x11\x4f\xc4\x1c\xe2\x40\xc1\xeb\ +\x87\xbd\x74\xe8\xc2\xff\x1d\x52\x93\x68\x17\x03\xdc\xcf\x8d\x91\ +\xd2\xa8\x52\xef\x28\x18\xf3\x3f\xc4\x19\xa0\x02\xe6\x00\xe8\xff\ +\x71\x0e\x08\x72\x01\xec\x03\x94\x7d\xfd\x67\x2c\x00\xaa\xff\xd9\ +\x7a\xe6\x8f\xe7\xfe\x8b\x62\x0b\x8a\x16\xc7\x00\x79\xc1\x02\xc2\ +\x9e\x7f\x06\xfe\xde\x69\x67\xdf\xf5\x43\x13\xe6\xdb\xc7\x94\xfa\ +\xfd\xad\xdb\x5e\xfa\xf1\x21\x75\xee\xa5\xea\xe4\xcc\x7f\x60\x8d\ +\x31\xbc\x7d\xf7\x13\x3b\x45\x83\x73\xfe\xa2\xcd\x1c\x47\x58\xf3\ +\xaf\x52\xec\x2f\xfb\x0d\x82\x7f\x53\x8d\xb3\xee\x63\xdc\x5b\x9b\ +\xe9\x30\xef\x25\xc6\xbe\xb4\x23\xc7\xcf\xb9\xde\x93\xc7\xff\x97\ +\xf5\xbf\x45\xbd\x42\xe6\xb7\xe3\x3a\x08\xe1\xa1\x99\x3c\x0f\x55\ +\x8c\x75\x28\xee\x7d\xc8\x69\x1f\x44\x9c\xfb\x87\x2b\xde\x1b\x3c\ +\x69\x36\xa0\x9f\xff\x2f\xf1\xee\x0f\xf2\x80\x18\xc2\xfb\x29\x38\ +\x6f\x58\xf7\xab\x91\xed\x1b\x98\xf9\x93\x18\x7f\x4f\x9c\x6b\x81\ +\xfe\xfc\xdf\x00\x2e\x00\xcd\x7f\x6b\xfd\x8f\x89\x5d\xb4\x78\xee\ +\xa7\x40\xf6\x4f\xeb\x3e\xf3\x44\x15\x62\xcd\x63\xf9\xd8\xbe\x3b\ +\x8a\xc9\x4b\x6f\xcf\xc7\x2e\xb9\x21\xed\xbc\x12\xf7\xa8\x02\xde\ +\xbf\x8d\x11\xec\xc3\x3f\x27\x1d\xdb\x7b\x63\x26\x84\xfa\x0f\x39\ +\x31\xfa\x7f\xc4\x03\x88\x80\x6f\xc0\x39\xb8\x28\xf6\xfe\x64\x07\ +\x40\xd7\x00\xc8\xff\x6b\x9b\x8f\xfa\x3f\x4f\xfb\x00\x68\x07\x10\ +\x13\x88\xb1\xc0\x1a\x84\x07\x9a\x45\xec\xdf\x48\xe3\xc8\x6e\xf7\ +\x77\x2e\x51\x6a\xb4\xbc\x75\xfc\xb7\xdf\xb6\x59\xfd\xdd\xc7\xe1\ +\xe7\x3e\xe1\x24\xfc\x7e\x13\xf0\xec\x3f\xc1\xcd\x5e\xf4\x89\x6a\ +\x84\xeb\x7e\x65\xd0\xff\xaa\xbb\x40\x1c\x27\xd8\xeb\xf3\x6b\xdf\ +\xa4\xdf\x5d\xc1\xbd\x15\xfc\x5b\xbd\xef\x82\x31\x2f\xfa\xc5\xb8\ +\xcc\xc5\xc8\x9c\x5c\x49\xea\x04\xd4\xe7\x76\x38\x06\xa0\x5a\x37\ +\xe5\x06\xd2\x0f\xa1\x78\xa8\x45\x1c\xca\xa9\x64\xfb\xfb\x9b\xb7\ +\x3c\x02\x9e\xf7\xb1\xb4\x3a\x89\xfd\x00\xf6\xff\xef\x5c\xce\x19\ +\x3c\xfb\x43\x36\x80\xf8\x3f\x06\x30\xde\x34\xfe\x87\x83\xba\xde\ +\x1a\xb0\x01\xf0\xbb\xc7\x75\xfe\xdf\xf4\xb9\x3f\xaa\x12\x0b\xe8\ +\xbe\x3f\xcf\xfc\x71\x0c\x40\x33\x13\x82\xfd\x9b\xa7\x3e\x09\xf7\ +\x84\xf3\x36\xc6\x87\xf3\x77\x94\xa2\x73\x9f\xcf\xa5\x2e\xfb\x97\ +\x6d\x13\x67\xed\x57\x9b\xe3\x7f\xaa\xb8\x06\x18\xc8\xc9\x17\x9c\ +\xbf\xda\x13\x31\xde\xf0\xb5\xec\xf4\xf2\x91\x52\x18\x74\x24\xd4\ +\x23\x2c\x00\xec\x03\x62\x0e\x50\xc6\x39\x00\xf0\x6b\x65\xd9\x01\ +\xd0\x87\xf4\x5f\x6a\x00\x25\x87\x75\xbf\x04\xf1\x7f\x11\x4e\xce\ +\xd0\x36\x80\x7b\x01\xb8\x07\x94\x75\xcf\x5a\xda\xac\x36\xff\xd6\ +\xb8\x1a\xff\xab\x6d\x0f\xfa\x9b\xaf\xc3\xcf\xfd\xb3\x93\xf0\xfb\ +\x4d\x2a\x35\x7e\x76\xda\x5e\xfa\x72\x29\xca\x3c\x67\x15\xbb\x5f\ +\xf7\xab\x48\xec\x4b\xbc\x17\xb1\x0e\xc5\xc2\x35\xb2\x05\xc2\x77\ +\x2d\xfc\x16\x88\x6f\x3f\xeb\xf4\xe7\xe0\x08\x0b\x41\xd7\x41\x69\ +\xf6\xa1\xd5\x9f\x75\xb1\xb9\x1f\x48\xf3\x90\xc8\x8d\xea\x63\xa3\ +\xe3\xbc\x60\xef\x48\xb9\xb0\x74\xbd\x52\x9b\x70\xf6\xa5\x72\x12\ +\x7e\x7f\x12\x9d\xff\x53\xff\x4f\xb0\xff\xfc\xfe\xbf\xa3\x71\x5e\ +\x05\xfb\x4b\xb0\xff\x2b\x34\xef\xdf\xf2\xeb\xfd\x9a\xf7\x9b\x8f\ +\x60\x84\xb8\xfd\xdc\x9f\x77\xfe\x1b\x7e\x7f\xa4\x28\x35\x7f\xc2\ +\x83\xb0\x74\x8e\x54\xbf\xbd\x9c\xfc\xf0\x97\x87\x47\x27\x9e\xa5\ +\xc6\xd4\xe3\x15\xef\x4a\xa0\xef\x0f\x78\x3f\x37\x4e\x8c\xf1\x2d\ +\x8f\xb9\xb2\x30\xbd\xf2\xc3\x52\x68\x89\xe2\xff\x52\x64\x89\x62\ +\x00\xdd\x07\x64\xfd\xe7\x5d\xc0\xb2\xcc\x8a\xf3\x6e\x57\x43\xec\ +\x80\xec\x00\x0a\x06\x08\xd6\x81\x8a\x16\xe3\x81\xe3\x2c\x30\xf8\ +\x7f\x2f\x5f\x6c\x7d\x72\x74\xdb\x96\x27\x6d\x56\xa3\xcf\x18\x1d\ +\x7a\xe6\x0d\x43\x2a\xf4\x7c\xb5\xbe\x75\x5f\xcc\xfb\xdd\x89\xc9\ +\x27\x5f\x5e\x8c\xae\xdc\x5c\xb4\x57\x68\xd6\x8f\x7a\x7e\xd8\xf7\ +\xa6\x7a\x57\xdf\xff\x93\xfe\xeb\xb9\x77\xa7\xd1\x7f\xde\xe3\x0d\ +\xdf\xff\xfb\x7b\xb0\x0e\xef\xc3\x94\x2c\xf1\x79\x94\x07\xb4\x98\ +\x27\xdd\xd6\x1c\x57\x6d\x8e\x81\xa8\xe6\x2d\xb1\xb0\xd1\xf6\xe2\ +\x76\xe7\xf0\x43\x8a\x1f\xfe\x2f\xb8\xb6\x17\xa9\x93\x14\xf7\x6a\ +\xfd\xa7\xde\x1f\xea\x3f\xf6\xff\x1d\xe6\x79\x61\x4c\x9e\x16\xc5\ +\x3e\x3c\xf3\xdf\x66\xff\x2f\xf3\xfc\xd8\xfb\xf3\xe7\x80\x21\xc6\ +\x9b\xa5\xcf\xf1\x0e\xa0\xb6\x0b\x7d\xce\x9f\x06\xd5\x10\x74\x0e\ +\xc0\x36\x40\xf4\xdf\xc0\xdd\xa9\xc6\x4f\xed\xf4\x9b\x90\x03\x32\ +\xa1\x82\x9e\xdf\xa9\x22\x53\x60\x7c\xdf\x96\x0f\xad\x7d\xb5\x18\ +\x5e\x22\xdd\x2f\x49\x0d\x80\x63\x00\xee\x03\x54\xcc\x8e\x8f\x07\ +\x44\x35\x40\x99\xf3\xd6\xb5\xc0\x12\xe6\x00\x52\x0f\x28\x98\x75\ +\xea\x01\x63\x0d\x2c\x0d\xba\x8f\xb3\xc0\xae\xd1\xfe\xe2\xc4\x58\ +\xe8\x15\xe3\x6a\xea\xd9\xe0\xfa\x6f\x9c\x18\x7d\x1c\xf2\x3d\xad\ +\x67\xdd\x67\x0b\x9c\x33\xac\xc4\xa5\xff\x53\xc4\x79\x3f\xaa\xfb\ +\x2d\xf2\xdc\x0b\xcd\xf9\xb6\x04\xef\x42\xfb\x3e\x7e\xf6\xfd\x99\ +\x37\xd4\xff\x38\xd7\xbc\x67\x49\xff\x5b\xfe\x0c\x4c\xc5\xaa\xcb\ +\x5c\x2c\xf7\x04\x08\x03\x99\x72\x00\xae\x75\xb1\xaf\x6b\x49\xfc\ +\x23\xdc\x48\xd4\x03\xc3\xf9\x60\x38\xc9\x05\x6f\xc7\xd8\xa3\x97\ +\x41\x33\x71\x0e\x62\xdd\xf5\xc0\x9f\xff\xc1\xfa\x3f\xf6\xfe\x2c\ +\xc9\x7f\x06\xfc\x7f\x79\x00\xdf\x85\xfc\xbe\x2b\xf3\x3f\x03\xfb\ +\x7e\x7a\xff\x57\x73\x7d\x0f\xe6\x08\x95\xd8\xc0\x0c\x80\xcc\x48\ +\x97\x65\x57\x0a\xb1\xbf\x30\x07\x48\x59\xf3\x87\x1d\xeb\x7d\x5f\ +\x81\x4b\x7a\xb0\xba\x0f\xe2\x28\xde\x4f\x05\x77\x71\x9f\x39\x13\ +\xe9\x7c\x3a\x1f\x5a\x21\xff\x5f\x0c\xa1\xee\x2f\x7a\x55\xc4\x02\ +\xa0\x3e\x60\x8f\x6b\x00\x03\xf9\x62\x5f\xff\xf5\xdc\x47\xa3\xaf\ +\xff\x16\xcf\x04\xe9\x9e\x6f\x16\xe7\x80\x8d\xf6\x2d\x21\x95\x5d\ +\x50\x2a\xf5\x7a\xa5\x66\x6f\x56\x5b\xcf\x44\xbe\xa7\xf4\x3a\xfe\ +\x5e\x31\x30\x00\x2f\x4a\x5a\xbd\x9b\xca\xc6\x01\xea\xf9\x57\xdd\ +\x25\xe9\x79\x33\xae\x09\x1d\xb1\x01\x58\xfb\xa2\x67\x7e\x30\xe6\ +\xc5\xb8\x3f\xc6\xbc\x57\xb3\xb6\x9e\x77\x87\x8f\xe1\xf7\xae\x11\ +\xe7\x45\x9f\xeb\xaa\xcf\x75\xdf\x16\xdf\xdf\xe6\xbc\x5f\x6a\xdf\ +\x98\x07\x65\xa3\x4d\xe2\x58\xc6\xf8\x3b\x5b\xe8\x7d\x1f\xae\x11\ +\xfb\x20\xeb\x3e\xff\x82\xfa\xef\xe2\xfe\xaf\xb1\x24\xdc\xbf\x0b\ +\xb4\xdf\x5c\xd6\x98\x1c\x36\xcf\x76\xfb\x3b\x7f\x2e\xeb\xff\x6c\ +\x8c\x6b\xff\xb3\x52\x0f\xd1\xbd\xff\x9a\xcc\x07\x91\xef\xf7\xb9\ +\xc1\xfb\xf8\xd0\xbc\x23\xa1\x71\x3f\x78\xce\x00\x63\xc2\xda\xcc\ +\xa5\xc7\xaa\x0f\x69\xdc\xa4\x46\xd5\x6b\xd4\xfa\xfe\xed\x03\xb9\ +\xeb\x82\x7b\xea\x59\x3b\xf6\xa1\xd5\x42\xf8\x80\x57\xa4\x3e\x20\ +\x72\x82\x2c\x30\x16\x08\xea\xbf\xc9\x35\x40\xcd\x15\x5f\x21\x4c\ +\xb7\xa6\x5f\x03\xd0\x78\x60\x94\x0b\xfb\xba\x8f\xbd\x00\xde\xfd\ +\xc1\x1c\x20\x3e\xd5\x3a\xe2\x4c\xbc\xf7\x3b\x9b\x1e\x74\xd6\x7f\ +\x8c\x6c\xba\xe0\x8e\x89\x89\x0b\xcf\x87\x9f\x5b\x5e\xc7\xdf\xeb\ +\xc1\x86\xf9\xb4\xbd\x15\x6b\xe5\x56\x9c\xf9\x21\x5c\x0f\x9c\xf5\ +\x85\xbc\xbf\xe6\x76\xe1\x74\xe8\x54\xfc\x9e\x57\x5b\x9e\xe3\x81\ +\x5d\x37\xd4\xfb\x38\xee\xb9\xcd\x71\xfc\x8f\xbc\xd7\xbf\xc4\x77\ +\x53\x97\x99\xb7\x3e\xe7\x1d\xd7\xfd\x5a\xfd\xb9\xe0\x81\x8f\x0b\ +\xc8\x7f\x19\x6d\x7b\x33\xc6\xf2\x91\x5a\xfe\xbc\x7f\x02\xed\xc4\ +\x19\xf8\x75\xc5\x43\xe8\xe7\xff\xcb\x12\xff\x2f\x0a\xff\x5f\xcf\ +\xc7\x78\xd5\xd8\x7f\xd5\x81\xb9\x1f\xdf\x16\x52\xcd\xa3\xe9\xe3\ +\xfc\xd7\xb4\xdf\xd7\x1c\x61\x52\x33\xc5\xbf\x3f\xcd\x87\xa2\xef\ +\x27\xfd\x67\x9e\x61\x8c\xb7\xc0\x17\xdc\x98\x8d\x5d\xf4\x9f\xa9\ +\xfc\x9b\xbf\x09\x97\x74\xae\x5a\xdf\xbf\x7d\x20\x77\x5d\x08\x0f\ +\x68\x72\xf2\x65\x7b\x0b\xa1\xd5\xa3\x45\xac\x01\x82\xfe\x57\x70\ +\x0f\x30\xca\xb3\x40\x8c\x07\xc2\x78\x60\x58\x07\xa0\x78\xd1\x6a\ +\x0a\x27\x48\x8b\x6a\x7f\x95\x41\x2c\x00\x6d\x03\xe0\xf3\x59\x6b\ +\x9e\x78\xde\x92\xa1\xb9\x43\x56\xe8\x7d\x37\x85\x22\x6f\x39\x3c\ +\xae\xde\x79\x6c\x74\x74\xff\xa5\x6a\x93\x7a\xd8\x3a\xfd\x4e\x9b\ +\x86\xd5\xe6\xa7\x24\x4a\x97\x7d\xb1\x12\x39\xf8\xb3\xaa\xbb\x46\ +\x3d\x7f\xdc\xf3\xab\xc5\x7a\xd4\xeb\x47\xbf\x5f\x83\x9c\x77\x16\ +\xfb\x7e\x12\xf3\x52\xae\xeb\x63\xdb\x31\xaf\x25\x71\xde\xda\x73\ +\xde\x1e\xa7\xd5\xef\x7f\x61\x6e\x4c\xbf\x33\xeb\x81\xae\x87\xb0\ +\xee\x0b\xe7\x95\xcd\x58\x21\xdc\x13\x6c\x73\x0e\x60\x34\x85\x03\ +\xa7\xe7\xe5\x40\x27\x0a\xc5\xe5\xef\x29\x35\x8d\x7c\x88\x38\x0b\ +\xb9\x6e\xfd\x00\xd4\x7f\x5b\xf0\x7f\x88\xff\x33\xda\x65\xae\x47\ +\x8b\xf5\x1f\x67\x9b\x6b\x34\xf7\xcf\xf5\xcf\x5a\xbc\xcd\xaf\x52\ +\x03\xdc\x43\xf3\x8f\xfc\xbb\xef\xf1\x63\x7f\xc1\x07\x12\x8c\x10\ +\x8d\x19\x58\x96\xf9\x1f\xc2\x8c\xc1\xbe\x31\xfc\xae\xf8\xfd\xf7\ +\xb8\xf3\xdf\x18\x52\xc3\x17\x6d\x1a\x52\x6f\x85\x4b\x7a\xba\xba\ +\x8f\x61\x28\xdf\xdf\x65\xb3\xda\xf5\xce\xdc\xee\xe5\x1f\xe7\xb1\ +\x0f\x88\x3d\x40\xe4\x04\x81\x18\xa0\xea\xd7\x00\x25\x06\xb0\xfb\ +\x71\xc0\x60\x2f\x50\xef\x03\x93\xde\x83\xfe\xe7\xe8\xcc\x91\xfe\ +\x67\x90\xef\xc1\xbd\xec\x7f\xd5\x83\x9e\xb8\x14\x4d\xbc\xb8\x37\ +\xb9\xed\xfc\xef\x8d\x6c\xde\x8f\x3d\xc0\xbf\x3c\xc1\xbf\x06\xda\ +\x32\xd4\xa3\x87\x84\x12\x7f\x71\x61\xde\x58\x05\xff\x73\x39\xf9\ +\x7e\xac\xfb\xa3\x1f\xaa\x3a\x3d\x7a\xb6\xab\x92\xef\xd3\x73\x1f\ +\x63\x5f\xa7\x7b\x5a\x83\x3c\xb7\xb3\x82\x75\x31\x6b\xeb\x1d\xd8\ +\x7e\x0c\x50\x15\xbc\x3c\xc4\x3e\x1b\xe4\xbc\xcc\xeb\xfd\x60\x8a\ +\xff\xb9\x07\x9e\xb3\xdb\xc4\x89\xa6\x77\xa4\x71\x06\x2f\x87\x5c\ +\xcb\xe5\x03\xb8\x0b\xff\x3c\xb5\x8e\xfa\x80\xfa\x1f\x8b\xbd\x97\ +\xf7\xff\xec\x45\x9a\x83\x28\x18\x82\xff\x83\xb9\x90\x60\x00\xd5\ +\x68\x06\x42\xef\xfc\xb6\xe8\xf7\xeb\x63\x7f\xf5\x31\xc0\xf4\x3c\ +\xf0\x71\xd8\x9f\x3a\xff\x17\xdc\x5f\xf6\x11\x88\x1f\xdb\xe3\xb9\ +\x91\xc4\xdc\xf7\x20\xcb\xf9\xbf\xeb\xf5\x3b\x06\x72\xef\x64\x5c\ +\xa9\xb3\x72\xbb\x57\x6e\x28\x84\xd7\xb8\x06\x88\xf1\x7f\x54\x7a\ +\x00\xa6\xce\xff\xbb\x7d\x2c\x40\xdd\x07\x74\x9a\xfd\x19\x60\x9a\ +\x07\xd6\xbc\xe0\xa0\xff\x36\xf8\x7e\x38\xd8\x03\x4f\xb9\xf3\x37\ +\x0d\xa9\x87\xbe\x67\x4c\x9d\xf6\x07\x3b\xd4\xf3\xff\x7d\xcb\xc8\ +\x7b\xbe\x31\xa2\x9e\xf8\x2e\xc5\xb3\x9f\x27\x2a\xff\xc5\x79\x1f\ +\xc4\x94\x3f\x3f\x1e\xbf\xec\xfa\x1c\xe6\x33\xd6\x01\x78\x0e\x57\ +\x18\xe7\x83\xf6\xfc\x75\x9f\xaf\xe3\xe7\xfc\x15\x57\xef\xb8\x48\ +\xbd\x0b\x6b\xdb\x8e\xf8\x7f\xd4\x77\xf4\x7b\xe8\x0b\xe1\x3d\xd5\ +\x03\x74\x0e\x40\x98\x39\x0d\x8a\x85\x30\xe6\xe1\x3a\x80\xae\x03\ +\x32\x17\x0a\xce\x02\xe8\x5a\x40\xce\x6c\xfa\xb5\x00\xac\x05\xe6\ +\xe1\x7a\x12\x89\x95\x43\xbb\x76\xfc\xf9\x15\x8a\xb9\x30\xd6\xa5\ +\x0e\x80\xfc\x3f\x6e\xe2\xbc\xe5\x9c\xb5\x0c\xb9\x58\x4f\xf0\x7f\ +\x17\x05\xff\xab\xcb\xbb\x0d\x54\x0f\x69\xb1\xae\xda\xfd\x1a\x40\ +\x75\x60\xfe\x77\x36\xa6\xeb\x00\x03\xb3\x80\x82\xff\xc7\xbc\xdf\ +\xec\xff\x69\x86\xd2\x66\x6e\x51\xb4\xb7\x65\xe9\x89\x0c\x8f\x8c\ +\xcf\x29\xc6\x5f\xbc\x4f\xf2\x28\xdd\x9f\x65\x68\x48\x9d\x55\x08\ +\xad\xdc\x50\x8c\xac\xf2\x1e\x40\x04\x7c\x93\xee\x01\x9a\x5c\x03\ +\x60\x3c\xc0\xae\xe4\x76\xd2\x07\xd0\xf3\x80\xc4\x09\xac\xf7\x80\ +\xa5\xee\x87\xf3\x80\x4e\x83\xf4\x3f\x63\x36\x7e\xee\x86\xde\xfe\ +\x8d\x1d\x63\x67\x5d\xb1\x7b\xdb\xbe\x5b\x27\x27\x1b\x87\x77\x4f\ +\xae\x7d\x76\x68\xec\x84\xce\x7f\xe3\xb3\xb5\x67\xd7\xee\x27\xac\ +\x66\x23\x6b\x47\x8a\xd1\x35\xb8\xf6\x65\x78\x4e\x97\x05\xdf\x07\ +\xe3\xfd\x2e\xc5\xfd\x1c\xff\x77\xfc\xe7\xbc\xe6\xd7\xfd\x1b\xc4\ +\x6b\xc9\x31\x40\x83\x73\x7e\xd0\xfb\xd3\xec\xa6\xf0\x5e\xcc\xfb\ +\xf1\x3f\xcd\x01\x89\xef\x2f\xdb\x6c\x03\x0a\x56\xc3\xcf\x03\xb4\ +\xbe\x93\xcf\x97\x5a\x20\xf6\x02\xf3\x32\x1b\x57\xc1\x1d\x41\x6b\ +\xe9\x68\xa5\xb8\x78\x48\x31\x2e\xda\xba\xd4\xc4\xc9\xff\xcf\xbc\ +\x6f\x39\x0f\x39\x50\xde\x5a\x26\xfc\x5f\x9a\x7f\xb6\xbb\x12\x13\ +\x0d\x60\xbc\xdb\x32\x03\x44\x7b\x4e\x0d\xb9\x37\x38\xf3\xd4\xdf\ +\xfd\x99\x95\x39\x80\xd9\xf8\x2f\xc4\xfe\xc2\xfb\xe5\xf7\x56\x09\ +\x3b\x86\xf7\x8c\x11\x43\x75\x72\xcb\xb3\x0e\xaa\x8d\xc7\x7f\x0d\ +\xe4\x57\xc8\xf0\xb0\xfa\xb3\x5c\xa4\xfb\x25\xec\x01\x94\x84\x0f\ +\xa0\x10\xea\xf9\xfe\xbf\x8a\xbb\x80\x16\xef\x04\x57\xa9\x86\xce\ +\x35\xde\x8a\xf8\x3c\xc2\x01\xc0\xfe\x3f\xed\x01\xd4\x85\x0f\xb8\ +\x21\xfa\xdf\xf4\xd2\xf0\xb5\x8e\xd1\xbc\xcd\x9c\x6e\xdc\x14\x0b\ +\xd5\x7f\x6e\x4c\xd7\xbd\xe9\xe9\xde\x2d\x23\x9b\xa2\x1f\x55\x27\ +\x0e\x0f\x88\x7a\x19\xc9\xdc\x25\x9f\x2e\x4d\xaf\xd2\xac\x3b\x62\ +\x7b\x52\xdd\x0f\x74\xcd\xaf\xfb\x81\xde\xcf\xc6\xc1\x16\xa0\xff\ +\x8f\xe9\x7e\x57\xd3\xc7\xb4\xae\x49\x0c\x30\x2b\xf1\xbf\xaf\xff\ +\xfa\xdf\xd1\xff\xa3\xfe\x5b\x32\xff\xe6\xb0\xde\x14\xa5\x0f\x40\ +\x35\x00\xbd\x0f\x6d\x4b\xef\x0f\x31\x01\x50\xef\xdd\x16\xd5\x02\ +\xf2\xb2\x1f\x8b\xb5\x80\x4c\x6c\xc1\xb3\x8d\x17\x36\x15\xe1\x13\ +\x9e\x78\x41\xfd\x77\x72\xc8\xff\x03\x7f\x53\x5b\x66\x80\xad\xc1\ +\xfa\x9f\xd4\x00\xd0\x26\x3a\x6d\xa9\xfd\xb7\xe9\xf8\x71\xbf\xf8\ +\x7d\xd2\x7f\xfa\x77\x8c\x7f\xea\xbc\x0b\x14\x6f\xf9\xfb\x12\xcc\ +\x0f\x2b\xfe\x81\x9e\x13\xc6\x55\xc2\x9e\x68\x39\xbf\xff\xd3\x10\ +\x68\x3e\x53\x6d\x1c\xfe\x6b\x20\xbf\x5e\xf6\x24\x8c\xb9\x8f\x67\ +\x77\x1f\xf4\xf2\x88\x09\x8c\xb3\x00\xc2\x09\x56\x35\x7b\x03\x58\ +\x60\xfc\x4a\x73\x40\x56\xcb\x9f\xf7\xf0\x71\x40\xdc\xa6\xcc\xbc\ +\x72\xdf\x3b\x4f\xfb\xde\x2d\xde\x03\x36\x70\x27\xa0\xe5\xc5\x23\ +\x4d\xcf\x98\x6e\x78\xe1\xdd\x3d\x6f\xdb\xd0\x53\xbe\x05\x3f\x3b\ +\x76\x82\x7e\x07\xe4\x16\x78\x9d\x63\x75\xbf\x58\x08\x83\x1d\x73\ +\x18\xc7\x9f\x62\x7f\xd0\xb1\xaa\xe4\xba\x9c\xf7\x77\xa5\xbe\xdd\ +\x1e\xe8\xf7\x71\xdd\xcf\xef\xf3\x49\xae\x8f\x9f\xdb\xe3\xeb\x3f\ +\xea\xfe\x3c\xe8\x7e\x9d\x7d\xbf\xce\xfd\x4d\xc6\x40\x2f\xd1\xee\ +\x3b\xbf\xf2\x1e\x80\xc4\xfb\xb8\x1f\x00\xf7\x2c\x63\x32\x37\x3a\ +\xef\x08\x22\x17\x6e\xcf\xcb\x83\x5d\xca\x66\x7b\x38\x13\x89\xf3\ +\x00\xeb\x31\x13\xf5\xa8\x68\xfa\x9c\xfd\x39\xc8\xfb\xb1\x07\x58\ +\xa0\xf9\xff\x05\xe2\xff\xe6\xfc\x9f\xb1\x1e\xe9\xde\xd8\x2d\xbf\ +\xae\xc1\xf1\xbf\x9e\x03\x6c\xf9\x3b\xc0\x3e\x06\x88\xa3\xf9\x81\ +\x35\x26\x7c\x8b\xf0\x51\xf4\x0c\x20\xed\x16\x52\xff\xbf\x47\xb8\ +\x48\xb9\x64\xeb\x1b\x90\xe1\xbc\x13\xae\x67\xf7\x3a\xfc\x8e\x81\ +\xdc\x3b\x99\x34\xac\x73\x9a\xc5\xd0\xe5\x47\x2a\x38\x2f\x13\xc2\ +\x59\xa0\x9e\xf4\x01\x65\x0e\x58\x63\x02\xfb\x3e\xa3\x2d\xf1\x3f\ +\xef\x7d\x13\x16\x98\xf4\x00\x08\xe7\x01\xe7\xff\x08\x07\x84\xb1\ +\x80\x93\x26\xc7\x01\x71\xd0\xfd\x44\xb8\xed\xb9\xa1\x8e\x17\xdb\ +\xdd\xb8\x4e\x9d\x38\x3c\xa0\xe9\xa1\xb1\xc2\x05\x79\x63\xf5\xbf\ +\x0b\x16\xef\xf9\x96\xc1\xdf\xd5\x62\x8b\xf4\x8c\xcf\xc6\x7a\x1c\ +\xff\xbb\x6d\xff\x54\xc9\x97\xb5\xfc\x9d\xb6\x3d\xe2\xfb\xf7\x08\ +\xce\xe5\x1e\xa9\x01\xec\xc1\xf8\x17\xf5\xdf\xef\x01\xa2\xff\xe7\ +\x39\x60\xda\x8b\x96\x53\x1a\x88\x01\x34\x1e\x32\xcd\x03\xe8\xfe\ +\x9f\xcd\x3b\x42\x78\x6f\x0a\x82\x99\x98\xc5\x3c\x20\xd9\xf5\x14\ +\xe3\x84\xac\x47\x1d\x30\x93\xac\x9e\xf3\xf6\xbc\xd1\x23\xdc\x23\ +\xec\xff\x51\x0f\x40\x70\x9e\xab\xf2\xf7\xac\x09\xdf\x13\xc6\x00\ +\xac\xff\xcd\x7e\xaf\x7f\x90\x03\x4c\xb0\x3f\x66\xa5\x57\x5a\x91\ +\x99\x81\x92\xdb\x14\x8c\x24\xc6\xff\x2a\x52\x5d\xa4\x2d\xf3\x3f\ +\x1d\xc4\x44\xbb\x65\x26\xf2\xf2\x8f\xc9\xef\x18\xcc\xff\x9d\x5a\ +\x32\x1c\xde\xf5\xd4\xb7\xe7\x77\x1f\xbc\xbe\x8c\xbe\x3f\xcc\x98\ +\xa0\x25\x03\xf9\xc1\x05\x13\x10\x9e\x97\x9a\xb3\x40\xcf\x0b\xd5\ +\x03\x05\x13\x1c\xfd\x1e\xc6\x7f\xf8\xf7\x2f\x50\x0e\xd0\xe4\xd9\ +\x77\x8b\xe7\xdf\x33\xc4\x03\x0e\x36\x80\xf4\xbf\xe9\x25\x21\x0e\ +\x48\x85\x17\xbc\x99\x68\xd3\xb3\xed\x8f\x9c\x48\x3c\x20\x73\x6b\ +\xec\xf9\xd7\xe4\xc3\xcb\x3f\x2a\xf8\x18\x1f\xe2\xfb\x51\xf7\x63\ +\xbd\xe3\x74\x7f\x96\x7a\x5e\xdc\xeb\xd6\xf5\x2d\xc4\xb6\xc4\xd8\ +\x7e\x0f\xed\xb9\xd7\xfd\x73\x9a\xdd\x92\xd9\x1f\xd0\x7f\x4b\xe2\ +\x7f\xcc\x97\x41\x8f\x69\x2f\xda\x92\x79\x60\x99\x8b\x20\x3c\x14\ +\xd9\x7b\x67\xfd\x6f\x53\xfc\x9f\x77\xd8\x16\x60\x4e\x50\x90\x3e\ +\x21\xce\x04\xe6\x10\x87\x20\xf7\x81\x8f\x28\x35\xfa\xe7\x27\xe0\ +\x3e\xfc\xa2\xb8\x89\xfc\x3b\xde\x58\xa0\x19\x88\x15\xee\xff\x5b\ +\xc2\xf3\x26\xbb\x5d\x98\x1b\x55\x05\xe7\xbd\x46\x7b\x40\xcd\x7e\ +\x9f\xdf\xd5\xfb\x7f\xcd\x7e\x9d\x94\xee\x17\x7f\x5e\xcf\xff\x30\ +\x26\xa4\xe0\x7f\x08\x46\x32\x61\x00\xb8\x8c\x95\x92\x77\x9a\x47\ +\xab\xc5\x83\xd8\xff\xc7\xb9\xff\x60\xfe\xef\x14\x93\x6d\x6a\xc7\ +\xb9\x95\xf0\xe2\x8d\x34\xfb\x1b\x16\x4e\x40\x43\xfa\x00\x86\x60\ +\x82\x41\xcc\x58\x1b\xe0\x07\xa7\x3a\x80\xdd\x14\xec\xb7\xa6\x5f\ +\xff\x2b\x50\x0f\x00\x9e\x73\x07\xb1\x00\x1a\xac\xfb\x88\x07\x06\ +\xcf\x45\x12\x9e\xfd\x64\xb4\x03\xfa\xdf\xf0\x5c\x0b\x7b\xe0\xc4\ +\x0d\x16\xbb\x97\x97\x8f\xf1\x43\xd5\x4d\x5e\xf8\x95\x92\xb5\x72\ +\xa4\xec\x68\xfd\x5f\xa0\x3d\x5f\xcc\xf7\x31\xf7\x9f\x15\x7c\xbb\ +\x3d\x71\xac\x01\xb4\xa5\xef\xdf\xe6\xf7\xf0\xfc\xf2\xae\x6b\x43\ +\xfa\x7e\xf3\x5c\xeb\x86\x98\x77\x8f\x25\xb5\x2f\x8c\x0b\xec\x06\ +\xe5\x00\x15\xb3\xc9\x36\x00\x6b\xe7\x96\xe0\xa3\xe8\xbd\x20\x8b\ +\x6b\xa1\xba\x0f\x88\x75\xbf\x9c\xcc\x02\x91\xef\x77\xd1\x16\xe8\ +\x1d\x61\xd6\x95\x64\xba\xf5\x3d\xe4\x1b\x57\xbc\x97\x75\x22\x6a\ +\xe4\x78\x4f\x26\xc7\x70\x07\x32\x77\xfe\x7c\x8e\xb8\xcc\x56\x89\ +\xf3\x00\x77\x00\x70\xfe\x8f\xfa\x73\x92\xd3\x71\x6e\xa4\x67\x01\ +\x9a\xbe\x7e\xeb\x1a\x60\x4d\xb0\x3e\xd1\x06\x54\x34\xf6\x67\xbc\ +\xaf\xff\x14\xff\xc7\xda\x3e\x16\xac\xe6\x81\xd4\x27\x87\x75\xe0\ +\xc4\x7e\xfc\x7b\xe3\xee\x87\x7b\x02\x7e\xbf\x40\x4e\xa0\x6c\x53\ +\xea\xa2\x7c\x68\xf1\x8e\x4a\x08\x74\x27\xbc\x4c\x73\x40\xa5\xf0\ +\x02\xcd\x02\x51\x2e\x60\x32\x1e\x08\xe3\x02\xb6\xfd\xbe\x31\xf5\ +\x01\x62\x3c\xfb\xa9\x6b\x00\x14\x03\x60\xad\xcb\x66\xfd\xcf\xa0\ +\x0d\x40\x4c\xa0\x28\x9f\x04\xf2\x82\x98\x58\x13\x5c\xfa\x01\x3c\ +\x0a\x38\x0b\x7c\x6f\xf1\x80\x36\x8f\xa8\xf1\xe7\xa4\x63\xcd\x1b\ +\x6b\xf6\x01\xc9\xfd\xc1\xdf\x21\xa6\xbf\xc5\xb9\x8a\x9e\xf9\xd3\ +\xfa\x4e\xf5\xad\x78\x4b\x76\x5c\x5b\x82\x69\x5f\x3f\xbe\xc6\x1d\ +\xe3\x1e\xc0\x1e\x78\x7e\x67\x25\x27\xa8\x59\x98\xff\xcf\x73\xfc\ +\x8f\x35\x40\x9b\x5f\x29\xfe\xf7\x31\x70\x9a\x12\x03\xf0\x1c\x34\ +\xf6\x04\x79\x07\x5e\xfa\x81\x82\x93\x84\xf5\x41\xc4\x14\xa6\x1e\ +\x01\xbc\x9e\x5e\xdd\xfb\x49\xc5\xbb\xd1\x27\xc2\x3f\x62\x9d\xbd\ +\x3c\xb4\xed\x11\x1f\x9a\xb1\x56\xae\xc7\xfd\x1f\xc2\x41\x30\x96\ +\x18\xfb\x18\x67\x22\x8c\xfe\x6e\xb7\xae\x8d\x30\x16\x40\x5b\xf6\ +\xfc\x34\x16\x58\x1f\xef\x67\x10\xfb\x8b\x31\x92\x9a\x82\x05\xc3\ +\xfe\x5f\xef\x41\x68\x0c\x10\xda\x83\xc0\x1a\x90\x31\xe7\x25\xac\ +\xb9\x43\xae\x75\x36\xf6\x3b\x1f\x75\x02\x7e\xbf\x40\x4e\x9c\xec\ +\x80\x07\xae\x9d\x0f\xc1\xdf\x3a\x8a\xfe\x7f\x99\xe6\x00\xaa\x78\ +\x0c\xde\x05\xaa\x5a\x0b\xc4\x95\x53\xb3\x30\x06\x60\xbf\xc1\xf3\ +\xc0\x8c\x1f\x87\xb5\x5f\xda\xfd\x13\xfe\xd7\xa2\xdb\x62\x1f\x07\ +\x07\xf5\x3f\x43\x9c\x20\x10\x07\xe0\x41\x7e\x50\x88\x3d\x63\x66\ +\xe7\x96\xc9\xad\x4f\x7b\x8f\xba\xf7\x58\xf0\x3b\x76\xec\x3a\xe3\ +\x1d\x25\x67\xf1\x87\x25\x67\x95\xea\x7e\xc4\xe7\x03\xfe\x7f\x16\ +\xf2\x7f\xd4\xfb\x3d\x38\xef\x17\x93\xfc\x5f\x6a\x7f\x7b\x68\x06\ +\x40\xe3\xdc\xb5\xfc\xfa\x7e\x4d\x70\x2d\x75\xad\xff\x74\xb0\x21\ +\xb3\xf0\xec\x63\x5d\x00\x77\x01\x7c\xfd\xa7\x18\x00\xbe\x9f\xcc\ +\x44\x96\x8c\xba\x6f\x13\x71\x17\x92\xe7\x21\xa5\x1e\x80\x3a\xe1\ +\x0a\x4e\x80\xec\x08\x17\x75\xad\x00\xf1\x03\xe0\xe7\xa7\x53\x9d\ +\x6f\x8d\x0c\xd5\x90\x37\x00\x7b\x22\xf7\x36\x47\x1e\x1f\x81\x58\ +\x7b\xdb\xe4\xb3\xaf\x8c\x47\xd6\x20\xcf\x40\xec\xaf\x45\xaf\x18\ +\x5d\xa0\xfb\x83\xf3\x10\x55\xe1\x79\xab\x39\xec\xff\x67\x5d\x5d\ +\x1f\x6d\x8b\xdf\x6f\x1f\xd7\x0b\xd4\x58\x40\x9a\xff\xaf\x22\x33\ +\x80\x1a\xff\x83\x6a\x9f\x31\xc6\x47\xf7\x75\x1f\xf9\x60\x04\xf7\ +\x33\xe3\x5e\x76\x24\x97\xda\x87\xd8\xbf\x88\x85\x14\xe0\xfe\x9d\ +\x3a\x92\x1d\x55\xea\xca\x3c\xe8\x66\x71\xaa\xcd\x38\x20\xe0\xfb\ +\xd1\x0e\x54\x89\x17\x64\x81\xfa\x00\xc8\x0f\x50\x1b\xa8\x03\x10\ +\x2e\xee\x40\x0d\x10\x0f\xe7\xff\x18\xe3\x4a\xff\x0f\x9e\x8d\xac\ +\x8d\x39\x00\xc6\x01\x68\x0b\x5a\xa4\xff\x69\x78\x4d\x3a\x8d\x5b\ +\xa2\xd1\x97\x9c\x08\xfd\x9f\x9e\x29\xbc\xf5\x60\xcd\x38\x70\x88\ +\xf4\xdf\xe1\xba\x3f\xf6\xfd\x66\x71\xe6\x1f\x9f\xed\x18\xcf\xb7\ +\xee\xc1\x58\xdf\xc1\xb8\x1f\x6c\x42\xa2\xdd\xd7\x7b\x7f\xef\x85\ +\x77\x5f\xaa\xd2\xe7\xc7\x7e\xff\x1e\x93\xf5\x9f\x30\xaf\x51\x17\ +\x30\xff\x07\x9f\x4d\x39\x33\xe6\x41\x66\x4b\x30\xd2\x98\x4b\xaf\ +\x2c\xfe\x9f\x78\x30\x88\x17\xb1\x29\x98\x00\x3a\x1f\x68\x91\xef\ +\x47\x9d\x67\xfd\xe7\xd8\x39\xe7\xd6\x0f\x9f\x76\x5a\xf7\xab\x4a\ +\x6d\x42\x5c\xcc\x7b\x8b\x8b\x81\xfa\xf5\x5b\x63\x9b\x7e\xef\xca\ +\xc4\x6e\xe6\xfe\xe3\x18\x80\x31\x40\xab\x0e\xcf\x00\x73\x0e\xd0\ +\x21\xae\x87\xaa\xae\x8b\xc6\xda\x82\xfd\xdd\xc7\x01\x1f\x9c\x01\ +\xd4\x35\x00\xaa\xfb\xc7\xc4\xff\xc7\x5a\x82\x03\xdd\xe0\xdf\xc9\ +\x6c\xf4\xb1\xa0\xd1\x0e\xe0\x3c\xa8\x7b\xe9\xd1\x78\xe6\xb2\x5b\ +\xc0\xb2\xbd\x50\x71\xbf\x26\x90\x53\x43\xb2\x90\x2c\x5e\x99\x8a\ +\x2f\x7a\x99\xd0\xaa\x97\xdd\xcd\x58\x40\xc8\x97\x51\x95\x5d\x40\ +\xf4\xfd\x58\x2f\x42\xdf\x5f\x73\x25\x6f\x94\x1d\xfa\xb2\xe0\x66\ +\x12\x26\xb8\xf0\x83\x70\x1e\x80\x98\x6f\x75\xb2\xfd\x68\x03\xa8\ +\x1f\x00\xcf\x7f\x86\xea\xde\xa0\xff\xee\xfc\x2d\x96\xf9\xc6\x13\ +\xa1\xff\x76\x62\xa6\xfe\xbd\x52\xe4\xc0\xcf\x2b\x3a\xb6\x85\x33\ +\x1b\x17\xfd\x77\x45\xff\xb1\xaf\xed\xe7\xfe\xfc\xde\xaf\x6b\x89\ +\x7f\xd3\x7b\x6f\x35\xb7\x8f\x7d\xbf\x07\xec\x15\xe9\x3f\xce\x01\ +\x62\x2d\x00\x6d\x80\xc5\x79\x3f\xe9\x8d\xc5\xfb\x84\x65\x5d\x07\ +\xb0\x9a\x82\x85\xd7\xea\x73\xe1\x38\x7d\xbc\xb0\xbc\xce\x8b\xd1\ +\x5e\xea\xb9\x09\xac\x11\x38\xad\x63\x71\xbb\xf9\x83\xcd\xdb\x7f\ +\xef\x3d\xc2\x27\x7c\x6f\x84\xfd\xff\xf0\x13\xae\x8c\x4d\x2f\x79\ +\x59\x88\xeb\x72\xd1\x45\xde\x41\x44\x7b\x6e\xe9\x9a\x6e\x4f\xea\ +\x7e\x5d\x99\x01\xe6\x9d\x68\xae\x03\xe8\x57\x3d\x23\xd1\xe8\xf7\ +\x02\x04\x1b\xb1\x1c\x63\x1e\x28\xfc\xdb\x73\x0d\x58\x6a\x40\xb6\ +\x9e\x77\x94\x1d\x68\x67\x1f\xdc\xa3\x7d\xb7\x4c\x8c\x3d\x0e\xf7\ +\x1e\xf7\xa8\x53\x83\x07\x3e\x10\x96\x1d\x70\x3e\x18\x73\x2e\xb9\ +\x39\x1f\x5e\xf5\xf2\x60\x03\xb0\x07\x50\x81\xf8\x1f\xf7\x80\x08\ +\x0b\xc0\xe2\x59\xc0\x9a\xcc\x74\x69\x3c\x90\x7e\x0d\xa0\xdd\xe7\ +\x05\xc0\x1c\x00\xf3\x01\x7c\x1e\x5c\xce\x01\x74\x2d\x80\xb8\x41\ +\x6c\xee\x07\xb0\xfe\xbf\xeb\xde\xea\x3f\x5e\xfb\xa3\xf3\xce\xf2\ +\xe1\x8a\x75\xe0\x58\x15\x7c\x3f\x72\xfa\xd5\x90\xd3\xdb\xe5\xb9\ +\x1f\x9e\xf7\x81\x6b\x8f\x77\xfc\xf9\x36\x6d\x0f\x08\xef\x2b\xce\ +\xfe\x6e\x36\xae\x9f\xf3\x26\xcd\xb7\x54\xe5\x9c\x86\xfa\x6f\x6b\ +\xfd\x6f\xc9\xe1\xb8\x1f\xf1\x51\x08\x23\xdd\x44\x9e\xd0\x86\xf0\ +\x24\xb5\x28\x0e\x28\x58\x03\x33\xc1\x16\xf7\x02\x68\x06\xd0\x6a\ +\xca\x3c\xa0\xae\x95\xc8\x7d\xc2\x7b\xe4\x74\x0e\x57\xb2\x6d\x9c\ +\x07\xc0\xba\x68\xf4\x5e\xdc\x17\xe2\x3a\x1f\x1d\x7b\xec\xc1\x74\ +\x68\x85\xb0\x7f\x0a\xe2\xfb\x71\xfe\x87\xf6\x7f\xd0\x9e\x3b\x6c\ +\xcb\x69\x2e\x12\xf5\x3f\xd6\xf6\xb1\xc0\xaa\x6e\xff\xe8\x39\x29\ +\x5d\x33\xa1\xbe\xbf\x8e\xff\x63\x2d\xa9\x77\x6a\x2e\x28\xbd\xff\ +\xdd\xf4\x4f\xce\xbe\xec\x8e\x62\x72\xdf\x17\xd4\x26\xf5\x68\x15\ +\x60\xfe\x9e\x8a\xf2\xb4\xa9\xe9\x27\x2f\x66\x8c\xc5\x5b\xf2\x91\ +\x95\xa3\x88\x03\x56\x32\x96\xa9\xfe\x87\xdc\xa0\x35\x7b\xc9\xf7\ +\x19\xf8\x4a\x71\x00\x71\xc8\xf1\xee\x58\x25\xde\x1e\xc0\x80\xd7\ +\xb5\xa0\xa6\xe4\x00\x0d\xae\xff\xd2\x5e\x50\xd3\x9f\x89\x4f\xbb\ +\xfb\x6e\x4d\xcf\xec\x43\x0c\xd8\x07\xdf\x8b\xeb\x8e\x8f\xa8\xb1\ +\x17\x97\xa3\x88\xeb\x7b\xc0\x43\xfd\x47\x5e\x9f\x9a\xbb\x48\xd7\ +\xd7\xaf\x6b\x63\xbc\xdf\x13\x9f\x3f\x50\xe3\xf2\xb1\x3c\x24\xce\ +\x95\xd9\x17\xcc\x11\x6a\xc2\x7f\x73\xba\xd9\x96\xd9\x80\x79\xf6\ +\xff\x74\xa4\x67\x0e\xff\x46\xef\x1d\xc6\x49\xe7\xf9\x08\xe6\xbf\ +\x2d\x18\x7d\x3e\xac\x82\xe4\x02\x8c\x15\x38\x90\x07\xe8\x7e\x29\ +\xc6\x00\x34\x37\xd9\xf1\x66\x9c\xfd\xde\xe9\x99\x4b\x56\xc1\x45\ +\x22\x5f\xfa\x3d\xdd\x91\x40\x5c\x2d\x63\xdb\x96\x3f\xee\x25\x71\ +\x9e\x93\xb8\xbf\x97\xb8\xf6\x8f\x3c\xef\x58\xcf\xc5\xfc\xdf\x65\ +\x5b\x5e\x93\xfb\xb4\x47\xfa\xa4\x3e\x0e\x40\xbc\x7f\xaf\xf4\x6e\ +\x10\x61\x80\x08\x47\x60\x59\xf4\xbf\x1c\x6f\xf9\x7c\xb0\x45\xc1\ +\x3d\xc3\xdf\x0f\xff\xee\x88\x09\x51\x46\xfd\x2f\x5d\xf2\x1f\x70\ +\x4d\x25\x15\xcc\x00\x9f\x8a\xb2\x79\x6c\x58\x3d\xb1\x12\xbf\xe0\ +\x53\xd9\xc8\xda\x6d\x38\x07\x5c\x8a\xe2\x3e\xf0\x02\xcd\x01\x56\ +\x30\x67\xc4\xda\x1f\xe5\xfe\x3c\x3b\xa2\xf5\xcb\x8f\x01\xdc\x96\ +\xf0\xe4\x34\xfd\x5d\x20\xce\x01\xe6\xfb\x79\x00\xce\x06\xda\x3c\ +\x13\x9f\x8d\xed\xfb\xe9\xcc\xcc\x1c\xce\x00\x3f\xe6\x5e\x5c\xf7\ +\x69\xa1\xd0\x63\x2e\x2a\x47\x91\xd7\x6f\x05\x9e\x51\x99\xf7\xa7\ +\xdc\x5f\xe6\x7e\xe2\xbc\xeb\x5b\xd3\xbe\x4c\xf6\x5c\xfb\x5c\x97\ +\x7d\xdc\xcf\x9a\xf6\xfd\x62\x0b\x30\xdf\x3f\x03\xeb\x7f\xd4\x17\ +\xc0\xb9\x1f\xf0\xf1\x46\x93\x74\xbf\x62\xb4\x99\x23\xc5\xec\xd7\ +\x00\xca\x96\xe6\x4a\xe4\x3d\x29\xaa\xff\x61\x5d\x6c\x20\xfe\x2f\ +\x58\x7a\x17\x80\x7b\x24\xda\x46\x66\xc5\x3e\x62\x7c\xe4\xce\x34\ +\x6e\xdf\xb6\xf3\xf1\x6b\xa0\xc6\x8f\x50\xf7\xa2\x1f\x30\x31\xfe\ +\xd0\xbd\x89\x28\xeb\x7e\x3e\xca\xfc\xe6\x25\xb2\x01\x5d\xba\x47\ +\x3c\xff\xc7\x35\x40\xae\x03\x6a\x1c\x50\xe1\x02\x73\x06\xfa\x00\ +\x84\x89\xa6\xb9\x81\xb8\xf7\xd7\xc7\x81\x64\x1e\x08\x8a\xf9\xa4\ +\xb7\xc1\xb3\x0f\x58\x0b\x98\x87\x7b\x31\x7f\xd8\x36\x5e\xf1\x0d\ +\xb8\xa4\x27\xa9\x93\xcb\xff\x14\xc8\x5d\x13\xec\x39\x4f\x6f\x19\ +\x0d\x3f\x29\x6b\x2c\x7e\x17\x63\x45\xe4\x05\xa7\x3e\x00\x3c\x3b\ +\x55\x93\x73\x46\xae\x17\xa1\x8f\x58\x10\x3c\xb0\x0e\xe3\xe7\x4b\ +\x1f\x40\xe3\x83\x53\x3d\xd8\x66\x7e\x50\xac\x05\x12\xef\x93\xe0\ +\x82\x16\x5d\x9c\x7b\x69\x78\xe9\x58\xfd\xf6\xb8\xd5\xfa\xf4\xa6\ +\x4d\xea\xf7\xee\xe9\x45\x43\x12\xf9\x07\xc9\xcc\xfb\xff\x7d\xd6\ +\x3c\x00\xf1\xf9\x2a\x3c\xd7\xe8\xf7\x17\xc1\x8f\xb1\xff\x9f\x95\ +\xbd\x1f\xec\x01\xee\xf1\xeb\xff\xfc\x6c\x57\xdc\xbe\x1f\xc3\x1a\ +\xb7\xe6\xb5\xc6\x67\xbd\x6c\x31\xd6\x0f\xda\x81\x33\xb0\xc6\x4f\ +\x35\xef\x39\xaf\x06\xd7\x5d\x8e\x40\xae\x80\xfb\x6d\xa0\xff\xb3\ +\xd4\x0f\xd1\xbe\x5f\x30\xd2\xd0\x0e\xe0\xfc\xab\xc4\x01\x25\xa9\ +\x01\x94\x5c\xc6\x06\x2c\x48\x3d\x80\xb0\x01\x9d\x0e\xf9\x48\xb4\ +\x01\x19\x63\x3f\xd5\x01\xb2\x60\x6f\xd2\x76\xfb\x58\xbe\xd0\xbd\ +\x05\x34\xf8\x13\xe0\x2e\x71\x46\xf2\x1e\xf5\x03\x26\x46\xab\x7b\ +\x53\x86\x9e\xf9\x5b\x82\x6b\x5b\xe0\xb9\x0e\xd9\x89\xf4\xeb\x7f\ +\xd2\x07\xa4\x1a\x80\xe4\x48\xb5\x01\x5e\x40\xb2\x97\x3e\xe6\xa7\ +\xc6\xfc\x61\xbd\xaf\x08\x0e\x04\xf3\xc1\x32\x06\x3c\xd7\xff\x79\ +\xd7\x29\x0f\xf7\xac\x10\xae\x7f\x6b\xe7\xd4\x43\x70\x07\xf0\x65\ +\x8a\x67\x3e\x03\x39\xf5\xe4\x8c\x1d\xc3\x13\x97\x65\x23\x2b\xb7\ +\x96\x71\x56\x1c\xfc\x05\x72\x66\xe2\x1e\x1d\xce\x01\xd5\x90\x33\ +\x93\xf0\x40\xd8\x06\xd0\x5e\xa0\xab\x79\x73\xa5\x0f\xe8\x0c\xe4\ +\x01\xfe\x3c\x50\x43\xf8\x1f\x18\x17\x9c\x62\x61\x7c\x36\x9c\xfa\ +\xb1\x4c\xa2\x79\x87\xba\xe7\x5c\xb0\x93\xa0\x1b\x2f\x4d\xdb\x2b\ +\x87\x2b\xc6\x0a\xe8\x21\xf8\x7f\xcc\x53\x08\xeb\x63\x81\xf4\x7f\ +\x4f\x7c\x81\xf5\x9e\x8e\xec\xfb\xc7\x3b\xbe\xde\xf3\x73\xdd\x9f\ +\x73\x2b\x9b\xf3\xe2\xf7\x78\xbf\x0f\x63\x00\x9c\xff\x3d\x3d\xde\ +\xf8\x7a\x29\xb1\xff\x96\x62\x08\xfc\xdc\x6e\xec\x03\xa2\xee\xc3\ +\xf7\x31\xf8\x60\x2f\x90\xb9\x92\xdb\x3e\xae\x7e\xd1\x68\xd2\xfc\ +\x6b\x49\xe6\xe1\xca\x7a\x36\x4e\xb0\x42\xf3\x7a\x36\xd0\x62\x7c\ +\x7c\xf4\x95\xc8\x99\x88\xf5\xd1\x3c\xe4\xe5\xb1\x50\xe7\x58\xb9\ +\xba\x00\x36\x40\x5d\xa2\xee\x61\xbd\x7c\x72\x3c\xbd\x37\x49\xbd\ +\xf8\x65\xda\xfb\x2d\x51\xec\xbf\xc8\x39\x80\xf0\xbc\x61\xae\x44\ +\x75\x4c\x9b\xf7\x80\x34\x16\x28\x63\x9c\x88\xad\x8c\x35\x7d\x7c\ +\xa4\x8a\xe0\x83\x56\x64\xf6\xbf\xe2\xf6\xf1\x1f\x4a\x92\xff\xf3\ +\xfc\xaf\xc4\x3a\xe6\x9c\x97\x2f\xbe\x66\x41\xf1\xdc\x0f\xe6\x33\ +\x1b\xc6\x87\x1a\xc8\x9d\xca\x63\x27\x54\xe8\x9a\x8a\x53\xff\x69\ +\x1e\x72\x7f\xf4\xa5\x79\xc1\x03\x21\xfd\xb7\xd0\x5f\x2c\x92\x0d\ +\xc0\xdd\x6e\xaa\xff\xa3\xdf\x10\x2c\xfd\xb2\x70\xc9\x17\x6d\xc1\ +\xc5\x15\x7c\xec\x7e\x0e\xc0\x7e\xae\x40\x38\x81\x2d\x7a\x9f\x4a\ +\xd4\x71\xf6\xfd\xcc\x7b\x78\xbd\x7b\x36\x6f\x7d\xc2\x05\xa5\xe8\ +\x2a\x5c\xd3\x1a\x5c\xdb\x0a\x3d\xd7\xe8\xff\x67\xe1\xfa\xf0\xd4\ +\x64\xf6\x5f\xef\xfe\x55\xa5\xf7\x5f\x8d\x0f\x72\xdd\xa2\xbf\xae\ +\xf7\x63\x7f\x8d\x03\x6c\xcb\xee\x6b\xea\x62\x6f\x7c\xbc\x72\x4e\ +\x68\xea\x55\x0b\x45\xab\x71\x5d\x36\x8c\xf1\x3e\xc6\x07\xc8\x0d\ +\xc4\xbd\xb3\x72\xb4\x25\x3e\x54\x8e\xe0\x60\x94\xa4\x27\x48\x71\ +\x80\xc3\x33\xbf\xbe\x0d\x70\x64\x26\xd8\x91\x99\x20\xe9\x93\x64\ +\x68\x87\x0a\xfd\x66\xdb\x8b\x1b\x9d\xc3\x0f\xad\x5d\x78\x9d\xe2\ +\xbc\xf9\x6e\xf7\xcc\xb7\x8d\x26\xf6\xa6\xdd\x36\xe7\xff\x38\xcb\ +\x65\xf2\xc1\x98\xae\x42\xb6\x72\x51\xfa\x00\xb2\x0b\x14\xd3\xf3\ +\xff\x7a\x47\x42\xdb\x83\xa6\x8f\x11\xc6\xfb\x3e\x4d\xe1\xfe\xa8\ +\x33\xfe\x97\xdb\xe8\xef\x81\x5a\x5c\xe7\x20\xee\xcf\x68\x13\x62\ +\xbd\x39\x6f\x62\xeb\x23\xb0\xa6\xf9\x6e\x38\x98\xcf\x4c\xdd\xc3\ +\xbf\x77\x20\xeb\x2b\x8f\x80\x44\xf3\x40\x21\xb5\x78\x28\x6b\xac\ +\x7a\x39\xb0\x01\xc8\x1b\x55\xc4\xd9\x71\xe4\x05\x95\x78\x91\xf1\ +\x00\x59\xf7\x8b\x96\xe6\xc4\xe5\x7a\x5f\x45\x6a\xc1\xd4\x03\x94\ +\x5e\x10\x61\x81\x81\x5f\x45\x5c\x20\x8a\x05\x68\x57\x9e\xf3\xde\ +\x19\x77\xde\x1b\x19\x9a\x46\x3c\xec\x7b\x52\x13\x7a\xf6\x4c\xfe\ +\x7d\x1f\xab\x44\x57\x48\xf7\x6b\x38\xdf\x8a\xb9\x0a\xea\x3f\xd6\ +\xfe\x85\xe3\x12\x7b\x00\xc4\xf1\x13\xe3\xfa\xb6\xd6\x7d\xce\x61\ +\x39\xc6\xaf\xc8\xfc\x5f\x19\x67\x7b\x34\xc6\x17\xe8\xf8\x1e\xa7\ +\x7e\x34\x13\x7f\xf7\xa1\x4d\x4a\x3d\x6a\x78\x58\x3d\x3d\x11\x3b\ +\xbb\xe1\x4c\x36\x0f\x83\x1d\x38\x86\xff\xee\xf3\xa3\x22\x57\xa2\ +\x70\x25\x95\x04\x33\x9d\xb8\xc2\x85\x5f\xb7\xe8\x68\xfd\x97\x9e\ +\x3f\x61\x03\x30\x37\x40\x4e\xcf\x4a\xdb\x5c\x03\xc0\x5c\x09\xf9\ +\x53\x11\x33\x2c\x8b\xd8\xd9\xa9\x26\xda\xc8\x7b\x84\x13\xb4\x73\ +\xd8\x78\x7f\x2a\xd6\x3a\x94\x87\x78\x8e\x38\x90\xf0\x15\xb1\xdd\ +\xac\x45\x9a\xe9\xc2\x39\x60\xbc\x5e\xde\xe7\xe8\xf8\x75\xff\x3e\ +\x1e\x10\xe7\x46\x34\xdb\x8c\x75\x3c\xe1\xfc\x2e\x69\xee\x1f\xc1\ +\x7f\xa4\x1a\x80\xcd\x7e\x3f\x2f\xd8\x07\x88\xfb\x81\x79\x47\x1a\ +\xe2\xa3\xb0\x7b\xde\x91\xc2\xc3\x5f\xf1\x5d\x35\x34\xf1\x0e\x15\ +\xe0\xff\x9d\xaa\x92\xdf\xa4\x86\xde\x64\x4e\x3d\xeb\xc6\xbc\xbd\ +\x7c\x34\x6f\xaf\xc1\xdf\x73\x85\x66\x69\x31\x66\xc4\x1d\x00\xaa\ +\xff\x49\xef\xa8\xea\x74\x05\x0f\xb4\x9f\xfb\xf3\xdc\x4b\x43\x78\ +\x60\x9b\x3e\x1e\x00\xc5\x00\x60\x03\x68\x2e\x88\xea\x45\xac\x0f\ +\x33\xd6\x9c\x37\x13\x7f\x0b\xee\x85\xe2\xcc\xdb\x5d\x9d\x7b\xc7\ +\xaf\xdb\x34\xa4\x86\xce\xc9\xcc\xb4\xaf\xdf\x63\x5d\x01\xfa\xba\ +\x06\xcf\xf4\x32\xe8\xfd\x32\x5d\x23\xea\xfe\x6c\x8c\xf3\x00\xbd\ +\xe3\x8e\x38\xf7\xba\x56\x59\x11\xdf\x56\xb6\xf5\x3c\x4b\x93\x72\ +\x7e\x8a\xff\xad\x06\xed\xf7\xe3\xdc\xff\x1e\x67\xfe\x67\x56\xf4\ +\xef\x10\xb7\x1a\xf1\xfa\x37\x8f\x0e\x0f\x3f\x33\x31\x75\xde\xb7\ +\xf2\x66\xfb\x30\xe5\xf2\x66\x43\xe6\x67\xba\x54\x0f\xd4\x7d\x01\ +\x8d\x95\x88\x58\x78\xc8\x0f\xa6\x6b\x00\x6c\x13\x98\x3b\x50\xf7\ +\x05\x78\x1e\xb8\x49\x73\x72\x19\xd0\xfb\x8c\xec\x4f\xd3\xac\xa0\ +\x81\xb3\x73\x1d\x6f\x62\xfc\x91\x38\x37\xfb\xe8\xbb\x71\x8f\x48\ +\xb6\xab\xc9\xb3\x33\x33\xdd\xeb\x70\x26\xaa\x20\xf8\x9f\x65\xd4\ +\x7d\xc4\x44\x34\xc5\xa6\x3b\x72\x8f\x6c\xee\xe5\xa0\x0d\xa0\x3a\ +\xa6\xcc\x00\x10\x26\x90\xd4\x05\x19\xf3\x74\x9e\x30\xdf\x19\xfb\ +\x9d\xfd\x3f\xf3\x3f\x35\x85\xff\xa7\x43\x38\x67\x39\xc2\xfd\xef\ +\x79\x49\xab\xfb\x73\x27\xf2\xc1\xdb\x13\xbf\x73\xd1\x2d\xdb\x92\ +\xcf\xff\x07\xb8\xac\xdf\xbd\x3b\xbf\x43\x20\x27\x4d\x46\x47\x95\ +\xca\x4e\x6c\x7d\xec\xc7\xc2\xf6\xdc\x2d\x4e\xa8\xe7\xcd\x84\xba\ +\x5e\x36\x02\xcf\x61\xb8\x43\xbc\x80\x55\xbd\x0f\x1c\xed\xd0\xfc\ +\xa8\xe6\x09\x46\x7b\x50\xb2\xda\x3e\x36\x00\x71\xc0\x9a\x9a\x0b\ +\xa6\xe9\x73\x82\xe5\x34\x17\x34\xe6\xb8\xf0\x8c\x20\xef\xf8\x4c\ +\xa2\xfe\x25\xc5\x75\xe1\xcd\x77\xf1\x3a\xb1\xb7\x15\x35\xac\x67\ +\x36\x21\x4e\x39\x52\xc0\xda\xbf\xb1\x2c\xbc\x96\x0b\x5c\xa3\xa0\ +\xb9\x1c\x9e\x55\xe8\x73\x17\x0c\xe2\xdd\x6b\x3e\x23\xc1\x32\xc6\ +\x67\x17\xf9\xbb\xf0\x9a\xf1\xf7\x11\x0c\x94\xb2\xd9\xbd\x65\xf3\ +\xd8\x13\x10\xaf\x18\xf3\x56\xd4\xbd\xcc\xc4\x68\xf2\x35\xa6\xb3\ +\xef\xfb\x56\xb4\xed\xa5\xc2\x0d\x8a\xd3\x4b\x11\x8c\x75\xe1\x1e\ +\x44\xf0\x3e\x71\x4f\xa0\xea\xf7\x05\x98\x43\xc9\xc7\x51\xc4\xbd\ +\x78\xfc\x59\x56\x47\xb8\xb2\xb8\x4f\x90\x17\xdc\x94\xac\xc9\x33\ +\xf3\x39\xb3\x43\x3c\xe2\xf9\x30\xc4\xe7\xa9\x1e\xe2\x04\x3d\xf7\ +\x6e\xdc\x23\x92\x09\xb5\xed\xb5\x89\x44\xe3\x6b\xe9\xf0\xaa\x97\ +\x89\xe2\x1c\x00\xcf\x00\x96\x88\x07\xac\xe7\xd7\x73\x34\xd7\xa3\ +\xde\xed\xa2\x57\x47\xef\x07\x74\x64\xb6\x89\x6b\x9b\x1a\xef\x94\ +\xee\x9f\x5c\x7b\x89\xf2\xfd\x0e\xdd\xbf\x5c\x04\x9f\x99\x05\x2f\ +\x17\x5a\xf0\xb2\x70\xed\xc9\xc8\xda\x4d\x93\xe6\x3b\xfe\x65\x53\ +\xe8\xaf\x41\xf7\x77\x62\x2d\xe3\xb7\xee\xce\xef\x10\xc8\x49\x95\ +\xad\xa3\x38\x0b\xb0\xed\x95\x1f\x4f\x84\xe6\x7f\x36\x13\x6e\x92\ +\x2d\x2f\x42\x7e\x5b\x36\xf0\x34\x79\xd6\x15\x5e\x79\xfe\xad\x25\ +\xb5\xef\xe6\x00\x26\x06\x73\x01\xe8\x9a\x10\x72\x04\x16\x9d\x79\ +\xca\xfb\x73\xc8\x11\x86\x1c\xf0\xf8\x79\x7c\xce\x8d\xba\x97\x32\ +\x1b\x87\x76\x4c\x54\x31\x2e\xbc\xab\x73\x40\xc8\xef\xf1\xf8\x4c\ +\xf2\xd2\x8f\x53\x9f\xc2\x66\x3c\xab\x12\xe9\x37\xe3\xd8\xe1\x6e\ +\x1e\xd7\xb2\x8e\xe7\xb4\xac\xe8\x9d\x55\x39\x8c\xe5\x5d\x17\xbf\ +\xa6\xe3\xdc\x26\x3d\xeb\x45\xac\xf5\x5b\x97\x5e\x0f\xa9\xc9\x1f\ +\xa9\x7e\x7e\x82\xbd\xb8\xf2\xd8\x50\xfe\x5d\xd6\xf4\x85\x5f\x70\ +\x43\x8d\x9f\xa5\x09\xd3\x53\xdf\x23\xf8\xfe\xf0\xff\x55\x71\x37\ +\x98\x4e\x93\xf7\x84\x2c\xbe\x3f\xbc\x33\xc8\x33\xc2\x54\x3f\xb7\ +\xf4\x7d\xaa\x73\x5d\x84\xe6\x00\xea\x1c\x2b\x49\x2e\x9d\x33\x78\ +\x7f\xd2\x9c\x7e\xea\xbb\xef\xc6\x3d\x22\x19\x57\xdb\xce\x9a\x71\ +\xf7\x7f\x35\x8b\xfc\x23\x66\x8f\x30\x87\x0a\x66\xc7\xe7\xff\xd6\ +\xfd\x8a\xaa\xe6\x01\xb4\xfb\x3d\x3f\xee\x89\x34\x05\xf3\x1c\xef\ +\xcd\x3c\xe1\xa3\x21\x36\x62\x99\x78\x9f\xf9\xef\x5a\xb4\xe7\x7c\ +\x0c\x44\xe6\x80\x6a\x13\xf7\x4f\x2e\x82\x18\x27\x2d\x2f\xb1\xbb\ +\xfd\xa9\xe1\x51\xf5\x54\xb8\x9c\xc7\x29\xd6\xfd\x00\x03\xe4\xd4\ +\x15\xda\x1b\x05\x07\x7b\x96\x1d\x7d\xff\x7f\x24\x22\xbc\xbb\x83\ +\x3d\x9c\x22\x3e\xe3\x86\xc6\xbb\x69\x0a\xd6\x7b\x83\x3e\x26\x4e\ +\x4c\xab\xee\x73\x02\x97\x84\x1b\xb4\x48\x1c\xe1\x73\x90\xeb\xcf\ +\x73\x0d\x10\x5e\x33\x16\x7f\x9c\x65\x6c\x40\x2f\x15\x9d\xf7\x66\ +\xcc\x37\x7c\x12\x7e\xf4\x99\x77\xf1\x1a\xa7\x36\xa9\x89\x73\x32\ +\x76\xe3\x6b\x59\xe4\xb3\x77\x19\x5f\x87\x77\xcf\xb9\x76\x8f\xb1\ +\x3c\xe3\x52\x32\x6e\x7d\x19\x9f\x59\x7c\x75\xe7\xe4\x15\x9e\xdf\ +\x98\x1c\x67\xce\xe7\x30\xd2\xbc\x66\x45\xb8\xa6\x82\xb5\xff\x50\ +\x3e\x76\xe1\xa7\xe1\xe7\xa5\xd4\xf1\x71\xf7\xb8\x52\x23\xa7\x8f\ +\xaa\xed\x6f\xb4\x22\x1f\xf8\xf4\x4c\xa4\x71\x38\x03\x5f\x8f\xf6\ +\xac\x68\xb2\x4f\x2c\xc3\xef\xc5\x47\xdb\x13\xb1\x8b\x16\xeb\x91\ +\xe6\x50\xc7\x7b\x43\xf7\x08\xee\x07\xdd\x23\xa7\x4e\xb8\xa9\x59\ +\xc2\x4f\x86\x83\xf8\x69\xb8\x33\x0d\x76\x33\x9f\xb9\x0c\xee\xd1\ +\xdd\xab\x95\x4e\xa8\x71\xd0\xff\x4b\xbe\x9a\xc1\x3c\x02\xf9\x07\ +\xf0\x98\xfd\x1d\x7d\xda\xdb\x33\x19\xcf\xbd\xa4\xf9\x1c\x1c\xe6\ +\x74\x2a\xb9\x7c\x8d\x74\xff\x1c\xbe\x4f\x65\xb8\x5f\x15\x17\xed\ +\xf7\x3e\xc8\xe5\xf0\xda\xf1\xfd\x7e\xba\x7e\xc6\x7f\xe3\xfe\x0e\ +\xe2\x3e\xa1\xfe\xe3\xcf\xb5\xe3\x97\xac\xc0\xa5\x58\x8a\x7b\x98\ +\x18\x47\x61\x2e\x15\xd4\x00\x4f\x6d\x29\xee\x1a\x2f\x9d\x13\x8b\ +\xec\xbf\x2d\x65\xb4\x8e\xe5\x90\xbf\x06\xe3\x5c\x8a\xf7\x3b\x14\ +\x0b\xe8\xd9\x57\x3d\xf3\x42\x31\x35\xe1\xc0\xd6\xc9\x1f\x50\x2f\ +\x40\xf8\x41\xb5\x5f\x23\x7c\x70\x93\x5f\x71\x06\x00\x79\x71\xd2\ +\x91\xa6\x67\x1b\x97\xfd\x50\x0d\x8d\xe1\x6c\x38\xf6\x86\xee\x2c\ +\xc7\xc5\x67\x28\xb1\x6b\xea\xd9\xff\x9a\x0f\x2f\xff\x14\x71\xed\ +\x8a\xe4\xfb\x07\xf1\xec\x84\xdb\xc7\x6e\x0a\x86\xad\xf8\x33\xd9\ +\x55\x19\xec\x63\xe3\xb3\x5d\x11\x0e\x43\x8a\x61\x1c\xc6\x36\x2c\ +\x52\xde\xde\xfe\xe6\xc4\xce\x3f\xc4\xf9\xe4\x5f\x37\xaf\x62\x6c\ +\x55\x5b\x5e\x94\x32\x2f\xf8\xaf\x4c\xb4\x73\x14\x6b\xdd\xa5\x28\ +\xe6\xfc\x72\x7f\x68\x3e\x88\x71\x02\x34\x46\x00\xcf\x08\x68\xec\ +\x50\xb1\xa3\xd2\x3b\x67\xec\x64\xc1\x0e\xb1\x74\xce\xd4\xa2\x1a\ +\x60\x0a\xef\x91\xb5\xef\x87\x23\x23\x95\xf7\x2b\x4c\xeb\xef\xe2\ +\x3c\xc0\xf8\xd0\xa6\xb3\xf2\xee\xbe\xaf\xa0\xef\x27\xfd\x87\x58\ +\x09\xf3\x8a\xa2\xc9\x18\xbd\x65\xd9\x5b\x2a\xeb\x19\x2e\xc1\x75\ +\x2f\x3b\x1a\xd3\x57\xf0\xce\xa5\x46\x5a\x71\xd8\xef\xe3\x7d\x2b\ +\x11\xef\xf3\x1c\xd7\xff\x28\x0e\x68\x70\xae\x87\xfb\xcc\xc8\x75\ +\x80\xb9\x1d\xd8\x67\x23\x3c\x8f\xdc\xe7\x05\xc5\x7c\x33\xb8\xeb\ +\x8d\x71\xc0\xec\x5d\x7c\x0e\x03\xd9\x20\xd9\xb4\x49\x3d\x74\x26\ +\xf1\xb7\xad\x74\xb4\x7b\x6b\x8e\x74\x82\x73\x64\x8c\xf7\xab\x76\ +\x3f\x5e\xa4\x98\xd1\x96\x58\xda\x66\xff\xc0\x3a\x35\x47\xcf\x4a\ +\xd9\x99\xf3\xe3\x00\xf4\x19\x78\x90\x0f\x3a\xef\x70\x3d\x20\x13\ +\xea\x7a\xce\xd4\xa2\x97\xcf\xbd\x1b\x6b\x5c\x67\xa8\x3b\xef\x73\ +\x85\x37\xab\xd1\xa7\xc6\x8c\xfd\xdf\xcd\x85\xd7\x64\xcf\x8f\xeb\ +\x90\x54\xbb\x92\x79\x5e\xe4\xec\x61\xac\x6a\xc6\xee\x25\x2c\xaf\ +\x38\x62\x57\xcd\x41\xfc\x3a\xcf\xc7\x9d\xa7\x78\xa0\x1a\x9b\xf7\ +\x7d\x1c\xc6\xbc\x34\xcb\x8f\x3e\x37\x71\x29\x3e\xb7\xc8\x53\x72\ +\x67\x39\xf7\xce\xf1\x71\xf5\x28\x3b\x7a\xe9\xff\x22\xc7\x2f\xd9\ +\x0d\x8b\x73\x7f\xdc\x11\xc4\x59\xe1\xaa\xf4\x11\xab\x8e\x7e\x65\ +\x1c\x41\xbe\x47\x3a\x07\xc0\xd9\xb9\xf9\xfe\xd1\xf6\xd2\x95\xba\ +\x60\xb4\xe3\xc5\xc2\x8b\x5e\x36\xd6\xfe\xa2\x62\xac\x30\x8c\xa1\ +\x7f\x63\x2d\x70\x5c\x4d\x9c\x15\xb7\xba\x5f\x29\x38\x4b\x14\x93\ +\x17\x10\x8f\x17\xeb\x8f\xb6\xe0\xfe\x3a\x8c\xd9\x59\xb1\x65\xde\ +\x51\xf6\x9e\x11\xf7\x8c\xae\x93\x30\x91\xf8\x9a\x2b\x36\xeb\x3f\ +\x72\x23\x97\x1d\xe6\x46\xaa\xb8\xfb\xe1\xff\xdf\x4f\x71\x00\x9e\ +\x92\x70\x9f\xa3\x7d\x29\x46\xba\xe0\xff\x17\x3d\x23\xda\xfb\x67\ +\xc5\x7d\x3f\xcc\xa1\x10\x03\x18\xf7\xff\xef\x2d\xe6\x43\x20\xeb\ +\x2f\x88\xd5\xfa\x30\xc7\xf9\xd0\x57\xb2\xe0\xdf\x72\x60\xcf\x0b\ +\x91\x25\xe2\x08\x41\x8e\x80\x62\x94\xe7\x80\x4b\x46\x97\x7c\x1e\ +\xd5\xff\xa8\xff\xd5\xf4\x67\x5f\x99\x17\xaf\x8f\x83\x47\x3c\x38\ +\xc2\x0d\xce\xbe\x8d\xe3\xc4\x44\xb8\xeb\x25\xed\xd6\x97\x87\x86\ +\xd4\xd9\xea\xce\x67\x5d\x66\xb7\x0c\xed\xba\x20\x69\xae\xdc\x92\ +\x33\xaf\xf2\xb0\x4f\x49\xb3\x2d\xf6\x02\xd5\x9e\x70\x16\x81\xf6\ +\x11\x6c\x3d\xc3\xa2\xfb\x7c\x2d\x7f\x4f\x9d\xe7\x94\x79\x5f\x91\ +\x66\x95\xe2\x58\x9f\xef\x70\x0d\xc1\x5e\xa0\x7a\x42\xd6\x58\xf6\ +\x9c\xf4\x5b\xe6\xd5\x6f\xc6\xe3\x41\x3f\x3c\x1d\x4d\xfc\x9f\xf7\ +\xc4\xc2\x2b\xb7\x20\xce\x5e\x01\x31\x36\x10\x3f\x2d\xdc\xf5\xf1\ +\x93\x4b\xd1\x0e\xef\x50\x09\x7e\x4a\x49\xf7\x07\x24\x8f\xa2\x1a\ +\x20\x61\x02\x33\x2e\x20\xe5\xfd\xf8\x1e\xf2\xf4\x2c\xfa\x52\xe4\ +\x0c\x31\x17\xbc\x94\xbd\x78\x28\x6b\xbe\xf3\x5f\xc1\x95\xe6\xd4\ +\x5d\x98\xa3\x19\x1f\x9a\x3a\x2b\x1e\x6b\x7f\x25\x0d\x7a\x98\x36\ +\x16\xbc\x0c\xfc\xed\x10\x0b\x14\xef\x17\xe2\x72\x23\x47\x5f\xc9\ +\x62\x2c\x70\xe6\x76\xe9\xc2\xbd\xe9\xf8\x18\x9e\x55\x57\xcf\x77\ +\xb7\x29\x87\x61\xce\x74\xce\x15\x4a\xb2\xf3\xed\xf3\x1f\x52\x4d\ +\xb3\x4b\x33\x86\x58\x63\xcc\xe3\xfc\xa8\xbd\xec\xc5\xa7\xd7\x3e\ +\x0f\x97\xf2\x44\xb9\x8f\x63\x72\x4f\x47\xef\xda\x23\x18\xc8\x06\ +\x0a\x3e\xdb\xc6\x98\x4a\x7c\x20\x13\x59\x3c\x94\x8f\x2e\x81\xae\ +\x32\x3e\x30\xe2\x48\x14\xa2\x5d\x89\x23\x39\x9e\x64\xdf\x27\xf9\ +\xae\xcd\x78\x20\x7a\x07\x96\x31\xc1\x05\x13\xc8\x90\xdd\x50\xb1\ +\x03\x79\xc8\x27\xd2\xe1\x96\x37\x13\xad\xff\x70\x7c\xb4\x76\x95\ +\xba\x73\x6e\xec\xc7\x45\x43\x2f\xf9\x87\x5c\xe4\xc0\x6d\x59\x63\ +\xcd\xcb\x53\xdd\x7f\x49\xb8\x26\xf9\x59\xad\xf8\xdc\x9e\x2d\x99\ +\x4f\x6b\xc9\xae\xaa\xd6\x7f\x79\xc5\x9d\xc5\x18\xcf\xe5\x72\x8f\ +\xae\x4b\xf3\x71\x79\x0b\x7b\xd6\xcb\xdf\xdd\xbc\xeb\xf4\x73\xee\ +\xe2\x7d\x1a\xc1\xbd\x36\xd7\x9a\xff\x42\xc1\x5c\xbc\x3d\x4f\xfc\ +\x09\xa8\xf3\x70\x22\x5d\xc1\xd9\xe8\xf9\x5c\x8a\x15\xbf\xc6\xae\ +\xf1\x02\xda\xfd\x59\x39\x8d\x9d\x61\xf6\xef\x11\xf2\x86\x51\x2f\ +\x00\xbe\x5f\x2e\xda\x3b\x1a\x4f\xaf\xdc\x00\x9a\xfd\x7a\x50\xa1\ +\xec\x6f\xba\xb0\x09\x35\x75\x96\x1b\x6f\x7e\x35\x09\x76\x3b\x1d\ +\x5d\x24\x1c\x90\x1c\xd6\x00\xc1\x16\xa1\xae\x62\xde\x54\xb2\x59\ +\xef\x69\x9e\xcb\x95\x99\x05\xc1\xf1\x65\x9e\x37\xe1\x49\xa6\x99\ +\xe9\x96\xd8\x52\x3d\x03\xc4\xb3\x1e\x7d\x1b\xd0\xa6\x99\x02\xde\ +\x33\xc6\x98\x03\xed\xd6\xc1\x6b\xe1\x52\x9e\xac\xa4\xb6\xa4\x38\ +\x7f\x09\xf4\xff\xbe\x21\xdb\x46\x87\xd5\x33\xb3\x56\xfd\xe6\x42\ +\x74\x91\xe6\x81\x0b\x51\x9e\x0d\x46\xfd\x2f\x18\x1d\xea\xfb\x50\ +\x2f\x8f\xf8\xe4\xdb\xfe\xac\x5b\x1f\xfb\x46\xf7\xb6\x98\x13\x0b\ +\xf5\x5f\x73\xe2\xe4\x0c\xe6\xc5\x42\xfd\xcf\x44\xf7\x1f\x09\x6f\ +\x7d\x29\xf6\xda\x7f\x1d\x3e\xdc\x26\xdc\x89\x73\x67\x2e\xbe\x3e\ +\xb5\xfb\x8a\x23\x59\x63\x05\x74\x62\x59\x38\x2d\x7b\x1c\x7f\x48\ +\xee\x5f\x91\x39\x96\xb2\xe4\xfd\x15\xd9\x4f\xe6\x1d\xe5\x16\xe1\ +\x13\x95\xe3\x18\x03\xc0\xf3\x4e\xf3\x8b\x0b\xf4\x3d\x88\x1f\x23\ +\xd6\xf3\xd2\xd6\x81\xcf\x80\xf5\x7b\xc1\xdd\xb8\x4f\x91\x88\xfd\ +\xda\x4e\x32\xbc\x72\x23\xdb\x46\xde\xb3\x2f\x11\x87\xaa\x3e\xcc\ +\xa3\x54\x1e\x98\x13\x2e\x59\xbc\x23\xd0\xd7\x7f\x9e\x99\x67\xde\ +\x80\x76\x9f\x3f\xd8\xc4\xfb\xd6\xa3\x3d\x5e\xc7\x5c\xb8\x3d\x67\ +\x9d\xf7\x59\x75\x17\x30\xc3\x27\x86\x26\xff\x36\x06\x39\x43\xc6\ +\x5c\x85\x58\x7c\x99\x71\x00\x90\x0b\x00\x74\x14\x63\x0b\x8e\x79\ +\x3a\xc4\xd7\x5d\x12\xbb\x84\x7f\x43\xe4\xf1\x41\xbd\xaf\xc6\x3b\ +\xe2\xe3\x79\x1e\xa0\xac\xf5\x9f\x76\xfe\x64\xdf\x5b\x62\x01\xb4\ +\xa1\xd4\x5b\xc0\xdf\x95\xe2\xb1\x25\x9a\x39\xce\x38\x8b\x58\x43\ +\xc5\x98\x7f\x1b\x18\x00\xe4\x00\x40\x0e\xc0\x7b\x8b\x6f\x10\xc8\ +\xfa\x0b\xf6\xd9\x77\xc1\x79\x48\x3a\xfd\xbe\x1b\x70\x06\x08\x79\ +\x01\x08\x47\x2e\xca\xfc\xae\xe4\xf7\x2d\xee\x27\x51\xdf\xc7\x90\ +\x1a\xb8\xd4\x92\x68\xef\xdd\xe1\x9d\x9f\x9c\x35\xf8\x4c\x4b\x2e\ +\x20\xb1\x6e\x3e\x8a\x36\x60\x2f\xf8\xdd\xfa\x9d\x71\x02\xec\x18\ +\x51\x43\x2f\x49\x82\xbf\x4f\x87\x0e\x7a\xc8\xf1\x97\xc7\xf9\x44\ +\xda\x6b\x6d\xd3\x3c\x52\x4d\x66\x7c\x74\x3d\xb2\xea\x3f\xaf\x4d\ +\xda\x51\x2e\xeb\x67\x18\x63\x7e\x57\x7c\x3f\xcd\x09\x32\x2f\x06\ +\x62\x1e\x23\x57\x5e\x3a\xb1\xd6\x55\x8c\xc5\x77\x57\x05\xfc\xda\ +\x96\xd7\xe5\xed\xab\xbe\x58\xb6\x65\x66\xd2\xd4\x73\x53\x3c\x33\ +\x81\xbb\xf6\xbc\x23\xa0\xb9\xd4\x65\x0e\x40\x6a\x06\x78\x1f\x68\ +\x26\x88\xe6\x67\xbb\x12\xff\xf7\xef\x57\xc1\x05\x9d\x45\xbc\x60\ +\xf0\xa9\xc9\xd8\x82\x37\xaa\x46\xcf\x86\x9f\x1b\xbf\xb3\x8b\x9a\ +\x50\x93\x2f\x4d\xc4\x17\xae\xcd\xc0\x7d\xca\x42\x9e\x84\x33\x9d\ +\xc8\x05\x44\xf9\x12\xd8\x22\xb4\xdb\x65\x87\xb9\x3a\x2a\x7a\x06\ +\xd8\xed\xf8\xfb\x1c\x15\x8d\x07\x04\xf7\xab\x22\xfb\x12\x15\xc1\ +\xfe\xa0\x7e\x81\xec\xfd\xa2\x1d\xad\xc8\xbd\xa4\x99\x42\xcc\x01\ +\x70\x7f\x04\xfe\x36\x49\x67\x09\xeb\x28\x98\xef\x5b\xdb\xe3\xd9\ +\x7f\xda\xbc\xbd\xf4\x29\x78\xff\x92\xbb\x71\x6f\x03\xd9\x18\xc1\ +\x38\x1c\x6b\xb5\x8f\x9a\x9c\xfc\xeb\x1b\xca\xe6\x1a\xcd\x8d\x10\ +\x96\x3c\x3c\x3b\x45\xf4\xfd\x70\xb0\xf7\xad\xf5\x5f\x63\xbf\x0f\ +\xc6\x01\x05\xe9\x09\x11\x27\x90\x60\xdf\xe4\x6d\xcd\x95\xd9\x66\ +\x1b\x81\x7b\x41\xe6\x5e\x2f\xe5\xb4\xef\x4c\xff\x4b\x23\xdb\x1e\ +\xf9\xae\x5c\x78\xc5\x4b\x85\xaf\x80\xaf\x5f\xe5\xf9\x64\xdc\x6b\ +\xb1\xf8\xd9\xad\x48\x5d\xab\x36\x10\x03\x54\x24\x4e\xad\xc4\xfa\ +\xf9\xaa\xc6\x2b\x23\xcc\x7a\xca\x1d\x98\x17\xaf\x80\x3e\x12\x6b\ +\x56\xee\x7b\x90\x9f\xb0\x74\x37\xee\xd5\x0e\x48\x96\x9e\x57\x98\ +\xe9\x7e\x36\x6b\x1c\xa4\x38\xa2\x14\x5d\xf4\x31\xd4\x2b\x26\xef\ +\xda\x94\xe5\x3a\x99\x47\xad\xe5\xcf\x1d\xd1\xbd\xd2\xf7\xc3\xd4\ +\xb1\x00\x63\x05\x52\x2d\xdd\xd2\x7c\x62\x1d\x8a\x01\xb2\x88\x71\ +\x52\xfc\x10\xc4\x00\x63\x7f\x73\x67\x17\xb5\x59\xed\x7a\xcd\xcc\ +\x4c\xe7\xcb\x90\xcf\x80\x6d\x65\xdb\x96\x27\x0e\x30\x8e\xfd\x29\ +\x07\xb0\x85\xdb\xc5\xee\xfa\xf9\xbe\xae\xa1\xe8\x39\xc9\x8a\x70\ +\xa6\x56\x65\xdf\x67\x30\xfe\x67\xec\x1f\xe1\xfe\xb0\xa4\xff\x41\ +\x73\x45\x4b\x54\x9b\x49\xda\x0b\xff\x02\x51\x0a\xce\x2e\x62\x0f\ +\xf0\x1f\xb7\xed\x7c\xfc\xa7\xc6\x02\xfd\xbf\x2f\x08\xd6\x98\x5e\ +\xa3\xc6\xfe\x6c\x69\x72\xba\x77\x5b\x21\x72\xc0\xcb\x87\xf9\xef\ +\x8b\xbd\x40\x9c\x77\xc3\xf8\x3f\x1f\x6d\x93\x0d\xd0\xcf\x6d\x51\ +\x66\xdc\x35\x17\x54\xd1\x1e\xe4\xc5\x6c\xd2\x1e\x00\xd7\x00\x65\ +\x4f\xd4\xe0\xb9\xf1\x9c\x01\xfa\x6f\x77\xef\x4c\xff\x9f\xe0\x38\ +\xe7\xf6\xb2\x91\x35\x88\x65\x51\xc7\x56\xc9\xcf\xe2\x4e\x3b\x73\ +\xcd\x75\xfa\xb9\xbf\xd3\x92\x59\x9f\xb6\xec\x25\x36\x7d\x9e\x02\ +\xca\x05\x84\xaf\x06\x67\x07\x90\x0b\x0b\xbf\x47\x5e\xfc\x55\xce\ +\x5e\xf1\xc6\xb6\xef\x79\xa9\x62\x6c\xa1\xbb\x2a\x18\x87\x9f\xb1\ +\x6b\xd7\x73\xae\x4c\x9b\x07\xa9\x2e\x81\x79\x52\xc9\x60\x1e\x15\ +\x9e\x9b\xe4\xde\x69\xd5\xe7\x53\x12\x1e\x25\x8b\xfd\x7f\x49\xea\ +\x00\x1a\x3b\x97\xf2\x00\xab\xcf\x21\x4e\x9c\x42\x70\x9f\xf3\x11\ +\x9e\xaf\x4d\xc6\x9a\x3f\x1a\x1f\xc9\xed\x03\x1b\x30\xf3\xeb\x2e\ +\x6a\x42\xed\x3a\x6b\x66\xa6\x0d\xf9\xff\x32\xc5\xff\xc8\x03\x8e\ +\xf6\xa3\x48\x39\x7a\x87\x78\x88\x34\x17\xa0\xde\x01\xe0\x1a\x5f\ +\xa7\x5f\x3f\x8d\x71\xee\x5f\xd3\xbb\xd2\x31\xc9\xff\x05\xf3\x0b\ +\x5f\x0b\x76\x1f\xf3\x9c\x6a\x8a\x94\xef\xc0\xfd\x84\x93\xb3\x7a\ +\xff\x0f\x32\xff\x3f\xc1\xfb\x39\x34\xa2\xc0\x5e\x0d\xe3\x1c\xe3\ +\x19\x77\xe3\xde\x06\xb2\x31\x92\x19\x57\x0f\x7d\xdd\xc8\xd4\x85\ +\x37\x87\x76\xb4\xbc\xc4\x24\xfc\x2d\xc3\x3d\x2f\x1b\x92\x7a\x9f\ +\xd1\xa5\x1c\xa0\x40\x31\x40\x5b\xfa\x4b\x9a\x03\x86\x77\xdc\x4b\ +\xb2\xeb\x5b\xd4\xb9\x80\xad\xf1\xaf\xf4\x8e\x08\xe7\xbe\x5c\x03\ +\x9f\x3b\x9a\x89\x2d\xe0\x9e\xd8\xaf\xcb\xff\x5f\x90\x89\xed\xfd\ +\x4c\xc9\xba\x1c\x9e\x2b\xd0\x7d\x0b\xcf\x32\xf1\x7c\x94\xc5\x7f\ +\x55\xec\xbe\xff\xa2\xf9\x7e\x8d\x4d\xe8\xb0\x1d\x60\xdf\xcf\xd7\ +\xc7\x75\xee\xae\xc4\xac\x8b\x64\x4b\x0a\x76\xef\x68\xda\x5d\xc6\ +\x9d\xdb\x3f\xbb\x9b\xf7\x8a\x6a\x5b\x23\x4a\xbd\x3f\xe9\x2c\xde\ +\x5c\x88\xae\x82\x0e\x2c\xf1\xce\xfd\x00\x97\x2a\xf3\xa9\xcb\xa1\ +\x7a\x63\x5b\x62\x81\x8e\x3f\x37\x5d\xb2\x39\xa7\x62\xac\x80\x8e\ +\xf4\x00\x5a\x90\xbb\x37\x24\x5f\x42\xfd\xef\x78\x29\xf8\xda\xdf\ +\xae\xee\xc3\xda\xfa\x8b\x7f\xdd\x45\x8d\xab\xe9\xb3\x52\xa0\xff\ +\x79\x73\x85\xf8\xbf\x72\xbe\xff\x67\x1b\xc0\xf9\xbf\xf4\x4f\x1d\ +\x8d\xe9\xd4\x91\x7d\x29\xc6\x45\x22\xfd\xc7\x1e\xa6\xc6\x03\x8e\ +\xe9\x7c\x4a\x6a\xa8\xae\x60\xff\x0a\xd6\x11\xed\x3c\x4b\x0d\x00\ +\x6b\x2a\x19\xab\xf5\xbf\x70\x29\xaf\x54\x3c\xb7\x99\x54\x1c\x07\ +\x04\x3c\x80\xa7\xbe\xec\xda\xa4\xd4\xe3\xb7\x0e\x5f\x72\xbd\x3d\ +\x05\x79\x5c\x68\xe1\xf6\x14\x9c\x1c\x72\x83\xa2\x0f\xc1\x79\x20\ +\x97\xf9\x5d\xd1\x1e\x14\xcc\x8e\xec\xb6\xb6\x04\xfb\x4e\xf6\x02\ +\x6d\xb1\x07\x12\xeb\xe7\x05\x0f\x9b\xb1\x70\xda\xe4\x83\x28\x17\ +\x76\xe6\x7f\x9c\x98\x59\xc2\xdc\xd0\xfa\x15\xd7\x32\x32\xb6\xc9\ +\x79\x37\xe4\xfb\x3f\x28\x42\x1e\x82\x27\x67\xac\x80\xce\x2c\x8b\ +\xef\x62\x1c\xcb\x8a\xdd\x92\x5d\xdf\xae\x8f\x65\xc9\x75\xab\x36\ +\xed\xff\x95\xe5\x19\xa5\xfe\x1f\xd5\xfd\x7a\x5c\x3b\x44\xdd\x0f\ +\x83\xbf\xb2\x97\x6f\x83\x78\xf9\x93\x6a\x13\xe5\x3d\xf7\x44\x9e\ +\x31\x13\x7f\xdd\x95\xe9\xc8\x95\xe2\x67\x17\x68\xd7\x06\x6d\x00\ +\xe2\x27\x23\x8e\x72\x39\xda\x11\xee\xad\xae\x3f\x73\x5f\x12\xcc\ +\x00\xbf\x06\xe0\x73\x86\x75\xa8\xfe\xcf\x33\x35\x62\x03\x0c\x6d\ +\x53\xdb\x38\x1f\x70\xc7\x6c\xfc\xc3\x5f\x80\x18\x00\x67\x14\x7f\ +\xa9\x1f\x38\xae\x62\x67\xe5\x13\xcd\xaf\xe6\xe0\x3a\xb2\x98\xbb\ +\xe1\x2b\xf6\x6b\xf1\x77\xc6\xdf\xdd\xd2\xb5\x3f\xae\x47\xd0\xae\ +\xa4\xc4\x00\xd5\x18\xf7\x01\x6a\x82\x91\xd4\xc7\x4c\x69\x4b\x1e\ +\xd5\xe0\x7a\x4a\xbc\x4d\x35\x1e\x9a\xbf\x74\xf8\xef\x59\x76\x17\ +\xa8\xa6\x5a\xa0\x19\x80\xee\x91\xbc\xf5\xbe\x65\xb8\x3a\xc4\xfd\ +\x0c\xb0\xbf\xee\x3b\x32\x32\xaa\x54\x61\xeb\xd8\x05\xdf\x8c\x6c\ +\x5b\x38\x16\x09\x5d\xfd\xed\x99\xe9\xd6\x97\x8b\xe9\x8b\xbe\x93\ +\x8a\xac\xdd\x96\x33\xbb\x47\x73\x34\xeb\xcd\x3d\x64\x8c\x01\x74\ +\xbf\xbf\x28\xb9\x3f\xf3\x03\x4b\x5d\x40\xe3\xde\x10\x2f\x6e\xdd\ +\xc7\xc2\x2a\x8b\xef\x29\xbb\xf5\x1b\x9d\x64\x13\xeb\x6e\x91\x5f\ +\x71\x2d\xd3\xd3\xe1\x17\xb4\x0b\xe1\x35\x78\x76\x91\xc7\x6a\xd9\ +\xa3\x9d\x56\xaa\xfd\x8b\xff\xd2\xb3\x75\xb4\xaf\x26\x79\x6b\x4c\ +\x7a\x56\x52\xc7\x66\xbd\x97\xbc\x5f\x62\x7f\xc4\x0b\x43\xbe\xb3\ +\x42\x74\x19\x9e\xe7\xe5\x1f\x19\xd3\x7f\xfb\x01\x75\xcf\xe7\xd3\ +\x8a\xf0\x80\xbf\x33\x61\xb5\x8f\xa6\x8c\xcb\x19\x77\x07\x77\xee\ +\x20\x17\x40\x9b\x59\x25\x4e\x55\xe6\x52\x29\x47\x65\x4f\x58\x7a\ +\x01\xc5\xe3\xf2\x27\x8d\x15\xaa\xfb\x24\x4d\xaa\xd5\xe5\x25\x5f\ +\x2a\x0c\xd4\x51\xd2\x85\x36\xc6\x2b\x88\xab\x83\xbd\xb5\xe3\x66\ +\x15\xc6\x87\x92\xaf\x2d\xc4\x5a\x5f\xe3\xbe\x1f\xea\x3f\xe2\x00\ +\x77\xe1\xba\xfa\x75\xdb\xb2\xd4\x23\xb0\xe6\xcf\x7c\x0e\x7a\xf7\ +\x8f\x63\xfd\xaa\x8f\xfd\x27\x9c\x1f\x4e\x43\x66\x2a\xb4\x1d\x80\ +\x03\x36\xa0\xa8\xf9\xff\xfc\xb8\xaa\x47\x3f\x2b\x8d\x5c\x0f\x49\ +\x9a\x5b\x7a\xbd\x0a\x70\xbf\xef\x4b\x82\xcf\x92\xb3\x75\xf4\xec\ +\x7f\x99\xdc\xb1\x74\x64\x87\x7a\x6e\x03\xec\xc1\xd3\xc7\x37\xa9\ +\xc7\x4c\xef\x7e\xf3\x27\x33\x56\xfb\x16\x9c\x27\x2b\xea\x5a\x20\ +\xed\x7f\x49\x0e\xe8\xb4\xfd\x57\x9e\xcb\xd7\x3e\x7f\xa0\x27\x68\ +\xb2\x2f\xa3\x5a\x33\x7e\x0f\xbb\x75\x73\x2e\xbd\x84\x3c\xf1\xbf\ +\xd4\xff\x87\x38\xe4\x11\x49\xe7\xe2\xab\xab\x51\xe4\xf7\x39\x00\ +\x3f\x67\xc5\xc3\x3a\x3b\xe1\xd9\x20\x86\x15\xf9\xad\x56\x5f\xef\ +\xf5\x8e\x6f\x8c\xeb\xfc\x65\x89\x01\xca\x8e\x8e\x51\xf1\x79\xef\ +\xd1\xec\x12\xe2\x9c\x14\xc2\xcb\xf4\xfd\x2a\xb1\xee\x8d\x10\x9a\ +\x9e\xa9\x7e\x75\x0c\x72\x57\x64\x14\x12\x81\x33\x23\x91\x77\xfd\ +\xc4\x8d\x5c\x71\x94\x30\x37\xad\x45\xaa\x01\x10\x86\x02\xea\xbf\ +\xc1\x79\x00\xe1\x28\x9a\x03\x78\x61\x56\xdb\x3f\x45\xe9\x07\x14\ +\x24\xde\x27\xdd\x17\xde\xc0\xbc\xc9\x38\x01\xd8\x4b\xa9\x60\x4f\ +\xc0\xee\x1e\x31\x76\x3c\xf7\xd3\x32\x0f\x70\x5c\x0c\x30\xbe\xa9\ +\xf2\x26\xf0\xd7\xd7\x55\x5d\x88\xfb\xc5\xff\x17\x30\x2e\xa7\xfc\ +\xbf\x2d\x71\x87\xec\x70\x3b\x1a\xfb\x5b\x70\x12\xdc\xf6\x71\x58\ +\x60\x8c\x05\xd0\x24\xfc\x24\x3f\x2f\x88\x31\x77\x01\xd7\x52\xc4\ +\x7e\xe9\x1c\xc0\xc1\xfc\x1f\x67\x29\xda\x5e\x74\xf7\xbe\x43\x93\ +\x3b\x9e\xf4\xe9\x7b\x71\x5f\x03\xd9\x18\x89\x4c\xa8\x3f\xea\x8c\ +\x8e\xac\xde\x1e\x99\x98\x6b\xc3\xc7\x4f\xd8\xac\x94\x19\x8d\x3e\ +\xeb\x92\x8c\xb9\xf0\x3f\x45\xbb\xe7\xeb\x3f\xd6\xd0\x30\xf6\xe3\ +\x1a\xd0\x00\xfe\xc5\x80\xff\xd7\xd8\x77\xba\x1e\x40\xf8\x21\xc4\ +\xa1\x47\xf3\x3b\x77\x94\xd2\x2b\x5f\x02\x6d\xc7\x5e\xf1\x2f\xd4\ +\xde\x46\x5e\x90\xb7\x96\x3f\x57\x8e\xae\x51\xdd\x1f\x71\x09\x30\ +\x5f\xa7\xd8\x5a\x70\x3e\x78\xe6\xaf\xbf\xe3\xcf\x76\x40\x6a\x59\ +\x71\x8d\x51\xd6\x15\xbc\x32\xe1\xa7\xa6\x9a\xfc\x22\x61\x62\x60\ +\xdf\xaa\x96\x59\xf8\x1f\xf8\x61\xa7\xab\xbb\xb9\x67\xfb\x0b\xf2\ +\x48\x38\x07\x13\x56\xe3\xd0\x0c\xce\x27\x60\x9e\x2d\x33\x81\x35\ +\xc2\x52\xea\x52\x1e\x40\x71\x00\xf6\x2d\x6d\x7e\x2d\x8b\x2e\x52\ +\x3f\xd0\x16\x1b\x20\x33\x75\x05\xca\x01\xda\x12\x17\xb4\x18\x57\ +\x81\x76\x95\xa8\x7e\x72\xac\x54\x58\xf8\xae\x52\x13\x90\x63\x8f\ +\x25\x07\x2f\x64\xcb\x96\x47\xbd\x1f\xe2\xa2\x43\x1a\xf7\x1b\x71\ +\x80\x8a\x54\xeb\xe8\xf2\xac\x8e\xe6\x45\x17\x2c\xd7\xb2\xec\x4d\ +\xfa\xf8\x3f\x9a\x0f\x58\x73\x02\xb9\xfc\xca\xf8\x69\x12\x5f\xc5\ +\x75\x3d\xb5\xcd\xfc\x3f\x76\xdb\xaf\x2b\xe2\xf3\x81\xbb\xcc\x33\ +\xd1\xb9\xa3\xf1\xf8\x39\x77\x56\xdb\x09\xe4\xd4\x94\xdd\x63\x6a\ +\xd7\x3b\x47\xd5\xc7\x7e\xb2\x63\xf8\xe3\x9f\x50\x13\xea\x39\xf0\ +\xb9\xa9\xed\x3b\x4f\x7f\x73\x29\xda\xfe\x0a\xfa\xa4\x22\xcd\xcd\ +\xb4\xfd\x59\x80\xa2\xee\xfd\xd9\x1a\x17\x48\xe3\x60\x0e\x62\xe1\ +\x0b\x37\x8e\xc9\xbd\xc2\x9a\xec\xea\xe7\x63\x9d\x9b\x77\x6e\xfd\ +\x03\x8c\x13\x8f\x9b\x6d\x1b\x1a\x0a\x9f\x5f\x35\x56\xff\xab\x88\ +\xba\x8f\x7d\x35\xc8\xfb\xcb\x88\x47\x28\x75\xff\xda\x71\x73\x7f\ +\x6d\xbf\x66\xcd\xf3\x2a\x7d\xdf\x5f\x71\x79\xaf\x9d\xf4\xdf\x61\ +\x1e\xec\x12\xe6\xe9\x88\x73\x66\x2e\x1e\xb2\x92\xef\xc1\x59\xf5\ +\x7b\xeb\xa3\x10\xa7\xe7\xff\x44\x26\x9e\xf1\x19\x27\xba\x74\x2b\ +\xce\xdd\xd1\xbe\x7d\x94\x39\x55\xab\xc4\xa7\xda\xf1\xf5\xbf\x62\ +\xf6\x77\xee\xa9\x17\x68\xea\x7b\xc7\xf5\x79\xaa\x05\x0a\x9e\x66\ +\xce\xc7\xd5\xe7\xfd\x00\xda\x11\x36\x90\x4f\xa9\x79\xdb\xe9\x33\ +\xe7\x7c\x4a\xa9\x61\xdc\x55\xc6\x5e\x04\xc6\x6e\x23\xbb\x76\x3e\ +\x69\x8e\xf1\x07\x3a\x5c\xf3\xc7\xde\xbf\xd5\xf5\xbf\x7f\xd9\xef\ +\x99\xf4\xb1\xdc\x75\xff\xc4\x7f\x1d\xe0\x48\xa8\xe9\x3e\x80\xdb\ +\x14\xdc\xe4\x86\x3f\x17\xe4\xf3\x99\x69\x8c\x33\xba\xee\x0e\x5d\ +\x73\x2c\x74\xf1\x61\x2b\xf6\xe6\x2f\xaa\xf5\xe1\x38\x0f\x64\xfd\ +\x64\xc7\x56\xa5\x5e\xf4\x20\xf5\xa9\x1f\xee\x50\xd7\x7c\x6d\x68\ +\x7c\xe2\xb5\xf0\xb9\x9d\x13\xdb\xcd\x97\x41\xac\x7f\x2d\xe2\xbb\ +\x20\xce\x0b\xcd\x03\x98\x7a\x06\xa0\xe5\xf7\xfe\x4b\x32\x3b\x5e\ +\x74\xfa\xb8\x11\x5c\x0b\xec\x9f\x82\x60\x67\xe2\xc9\xdb\xbd\xdb\ +\x32\xce\x3b\xb0\x06\x78\x1c\x46\xcc\x68\xe8\x69\xcb\xe5\xf0\xea\ +\x4d\x88\xf1\xcd\x1c\x96\x8c\x4f\xc8\x7d\xf5\x8e\xcf\x47\x46\x18\ +\x5f\x92\xc3\xea\x3a\x95\x9e\x5f\xe5\xdc\xbf\xe3\x3f\xfb\xe4\x9f\ +\xd0\x0f\x22\x3e\x36\xf8\xe9\x3d\xce\xda\x7f\x0f\x8f\x15\x2e\x50\ +\x27\x06\x9f\x7a\x17\x28\xe1\xff\x35\xac\x0f\x7e\xce\x35\xd6\x6e\ +\x2f\x20\xff\x2e\x71\x29\x83\xfe\x4b\x1e\x50\x81\xfc\x9f\x76\x04\ +\x07\x39\x95\xa5\x1e\x58\xf4\xf3\x00\xb6\xa7\x84\x9b\x6c\xb5\xfd\ +\xbe\x69\x5e\x70\x54\x70\xcf\x92\xb8\x06\xe1\xdf\x4e\xcb\xce\x7b\ +\x4a\x85\xce\x06\xf5\xc7\x99\x20\xec\x47\x4c\x19\xd3\x7f\xd9\xaa\ +\xc8\xac\x71\xc1\xe8\x8a\xff\x5f\x10\x7c\xe2\x36\xe7\xfe\x03\xfd\ +\x12\x9f\x03\xcc\x69\xf9\x3b\x14\x55\x8d\x9b\xea\xf3\x81\x08\x9e\ +\x02\xd5\x56\x44\xff\x35\xff\xa7\x2b\x75\x5e\xbd\xcb\x00\x3f\x07\ +\xe7\x3d\x13\xa1\x4b\x6e\xdd\xba\xf3\x79\x9f\x54\x8c\xf3\x14\xc8\ +\x7d\x47\x26\x90\x43\x7a\x5c\x2d\xdd\x34\xaa\xae\xbc\x6e\x74\xa8\ +\xf2\x26\xf8\xdc\xce\x9d\x13\xbb\x5f\x06\xcf\xe3\xb5\x79\x78\x7e\ +\x30\x2e\x45\x3f\x5a\x30\xfd\xbd\x59\xd2\xff\x72\xac\xcb\xf3\xad\ +\x8e\xf8\x06\xab\x2e\x9c\x78\xe2\x27\x84\x1f\x47\xcf\xbe\xe0\x5e\ +\x21\xe4\xe9\xc7\x2a\x4e\xf3\x36\x78\x7a\x9f\x35\x78\x11\xa1\xc4\ +\xb9\x5f\x9d\x8d\x2c\xff\x9c\xb8\x3d\x4d\xe4\xf8\x59\x65\x0e\x7b\ +\xc4\xae\x47\x0c\x62\xc1\xde\xa6\xdc\xd5\x6d\xf9\x18\x5f\x5c\xff\ +\xe7\x7e\x16\xea\x3e\xe6\xcb\x65\xdf\xf7\x77\xa8\x46\x55\x8c\xac\ +\x80\x3e\x1e\xf4\x6a\xe9\xe5\xcf\x29\xe6\xdd\xb9\x3b\x7d\xff\x5f\ +\x27\xb8\x3b\x81\xb3\x93\xaf\x48\xc5\xf7\xfe\x1b\xee\xde\xe4\x69\ +\x26\x08\x7e\x5e\xa8\x23\xf1\x7f\x87\x7c\x3f\xf1\x70\x58\x9c\xc3\ +\x94\x08\x2f\x40\x7c\xbf\x29\xbd\x51\x47\xfc\xbf\xd9\xea\xd7\x05\ +\x70\x37\xd8\x98\x87\xcf\xd5\x69\xcf\x82\x66\x0a\xe1\x3e\x9e\x96\ +\x7b\xbf\x9e\x09\x1a\x1b\x51\x6a\x4f\x2a\xf5\xaa\xcb\x6b\x62\xef\ +\xb0\x4e\x4b\x31\x13\xce\x3a\x4b\xcf\x81\xee\x0b\xe5\xfe\x1d\x99\ +\x9b\x1e\xb0\x01\xd2\xf7\xc3\xf7\xc8\x03\x52\x15\x1e\xd0\xe3\xe6\ +\x00\x68\x9e\x5a\x66\xab\x63\xfd\xf8\xbf\x20\xf8\x46\x3c\xcb\xdc\ +\xf4\xb2\x6e\xe7\x7b\x63\xea\x49\x3d\xf5\xab\x6b\xbb\x81\x9c\xba\ +\x82\xf5\xa4\x99\x2d\xaa\xf9\x9d\x61\xd5\x39\xb4\x43\xbd\x1a\xf1\ +\x9b\x12\x93\x13\x93\xaf\xcc\x5b\x9d\x6b\xa9\x7f\x87\xfb\xa4\xe2\ +\xff\xb5\x5f\x21\xfd\x97\x5e\x3c\xc7\xde\x52\x83\x8b\xb5\x24\x06\ +\x10\x9c\x68\xd9\x13\xa2\x19\x3d\x7c\xa5\xcf\x75\xbc\x91\x3e\xce\ +\x05\xfd\xfc\xa4\x73\xf1\x77\x66\xc9\xdf\x23\x6e\xe5\x22\xe3\x7c\ +\xda\x8c\x43\x5c\xd3\x1c\xdf\x03\xf8\xfe\x54\xfb\x8b\xb7\x65\x6e\ +\x9d\x9f\xf3\x8a\x23\xb5\x6e\xe9\x79\x97\xa8\x0e\x86\x3e\x79\xc5\ +\x2b\x47\x57\xae\xb3\xed\xe7\xe3\x6e\x3d\x62\x53\x9e\xb0\x1e\xd5\ +\xa8\x52\xc5\xa8\x75\xe6\x39\xf1\xc8\xf2\xcf\xa8\x1f\x88\xb3\x93\ +\xd1\x2e\xcf\x03\x50\x0e\xc0\x3c\x22\x74\xb0\x06\x22\xf1\x7f\x59\ +\xd7\x4f\x04\x8b\x80\x72\x26\x99\x11\xc2\xdd\x20\xee\x0f\xe2\xac\ +\x35\xfa\xff\x3a\xd9\x0e\x8c\x05\xb2\xf1\xfd\x3f\x8a\x3a\x7f\xbd\ +\x0f\x7e\x74\x05\xce\xd3\x8b\x85\xf7\xfd\x23\xcd\x3e\xc5\xb9\x1e\ +\x47\xdc\x1f\x96\xf0\xb7\x59\x7a\x4e\x5a\x6c\xa7\xe4\xfb\x84\x8f\ +\xee\xea\x7c\x9f\xf1\x54\x90\x2f\x7d\x0f\x71\x27\xb6\x7e\x99\x03\ +\x48\x38\x9f\x8a\x0e\xdb\x5d\xaa\xef\xd0\xef\xd1\xe1\x99\x10\x78\ +\x9f\x0a\xef\xfd\xce\x54\xe4\xd9\xc8\xf5\x14\x3e\x51\xf7\x36\x90\ +\x93\x22\x9c\x47\x8e\xbe\xfc\x9f\x37\xa9\xde\xa1\xe9\xcd\x6b\x1f\ +\x1f\x1d\x55\x4f\xdd\x36\xae\xce\xcc\xc6\xbb\xff\x54\xd2\x75\x29\ +\x8a\x2f\x35\x6e\x9c\xcc\xb5\x39\xba\xde\xde\x9f\xbb\x2d\x69\x9e\ +\x38\xab\xe1\xbf\xc7\xe7\x97\x30\x39\x08\x77\x13\xf7\xe1\xe7\xbc\ +\x1d\xaa\x88\x79\x06\xf2\xdf\x6d\x03\x2d\x7a\x26\xd8\x86\x9b\xab\ +\xa8\xfb\xfa\x10\x87\x5d\x97\x70\x3e\x89\x7f\x53\xcf\xfc\xe9\x39\ +\xd5\x81\x98\x5f\xcf\xb4\x92\xaf\xb3\x25\xcf\xb6\x79\xe6\xb7\x44\ +\x7b\xaa\xe0\x9b\x67\xba\xc8\x4d\xf1\x58\xf5\x9b\xf1\x47\xee\xae\ +\x6c\xda\xa4\xd4\x63\x62\xce\xde\x7f\x4b\x45\x57\x68\x87\xaf\x24\ +\xf5\x7f\xea\x01\x08\x7f\x00\xfa\x7f\xc4\x11\xaf\xc8\x2e\x00\xe1\ +\x2c\xf9\x73\x51\xfd\x98\xba\x60\xea\xb9\x09\xcd\xb5\xdb\xf0\xb1\ +\x56\x70\xae\x12\x71\x38\xd2\xf9\xb9\x6f\x0e\x8f\xfc\x36\xee\x2e\ +\x5f\x9c\xcf\xcd\x7f\xb5\x82\x1c\x9d\x0e\xcf\x6c\x6b\x3e\x02\xdd\ +\xe3\x2f\x3b\x7d\x2c\x44\x9e\x9d\x90\x1a\x9f\xd4\x00\x67\xe5\xd4\ +\x88\x1b\xb5\xc5\x58\xa9\x78\xe2\x6d\x99\xab\x6e\xc9\x2e\x80\x70\ +\x3e\x3a\x82\xfd\x4f\xb3\x8d\xac\xff\xd8\xe3\x29\xb8\xcd\x2f\x8f\ +\x6e\x7d\xf8\xd9\x2a\xe8\xff\xdd\x27\x65\x9b\x2a\xef\x53\xea\xc0\ +\x77\xc6\xd5\xda\x7f\x6e\x1f\xb5\xce\xde\xb9\x59\xfd\xb1\x9d\x6d\ +\x7e\x14\xf1\x80\x78\xf6\x9f\xf7\x81\x74\x2f\x7e\xb0\xfe\xe7\xcf\ +\xde\x89\xdf\xaf\xf8\xdc\x20\x75\xc6\x0a\xb6\x19\x93\x87\x38\x77\ +\xc8\x9f\xcd\x7b\xc9\x89\x57\x9c\xab\xb8\x06\x38\xa5\x86\xb6\xbe\ +\xed\x0c\xa3\xf7\xe3\x59\xe2\xac\x67\x2e\xe2\x9a\xbd\xe0\xf3\x8f\ +\xd5\xa4\xf7\x4f\xbe\x8b\x62\x7c\xbd\xb7\x2a\x3b\x6b\x94\x0b\x68\ +\x4c\xfe\x0e\xc5\xbf\x15\xd2\x87\x1e\x73\x1b\x98\x2b\x47\x22\xd6\ +\xcb\x5e\xad\xee\x1d\xdf\xe6\x9d\x49\x6c\x6a\xea\x39\x17\xc4\x42\ +\x2b\x87\xf3\xe6\xd2\x31\xda\x9d\xa2\x79\x40\xee\x01\xd4\xa8\x0e\ +\xc8\x5c\x82\x15\x83\x39\x85\x79\x26\x40\xe3\x6b\xea\x39\xc9\xb6\ +\x5f\x0b\xd0\x3c\x4a\xb4\x5f\x61\xa2\xcd\x84\x5c\xc0\xa8\xf3\x0c\ +\x6e\xac\x75\x47\x3a\xd7\xbb\x71\x9b\xfa\xeb\xff\x57\x8c\xb7\x6e\ +\xc6\xde\x7c\x25\xde\x23\x3b\x58\x76\x79\xcf\x87\x73\xa3\x8e\xe0\ +\x10\xf6\xeb\xa6\xda\x8e\x22\x5f\xea\xac\xd8\x01\xb6\x01\xcc\x8b\ +\xce\x78\x2a\x32\x5b\xed\xf4\x67\x81\x28\x07\x71\x3b\xf2\x37\xd6\ +\xbb\x4d\x8c\x01\x8b\x39\x4d\xce\x69\x5f\xbb\x79\xe7\xef\xe1\x8c\ +\x42\xc0\xfd\x79\x1f\x14\x70\xc2\xaf\x19\x57\x1f\xfd\xcf\x51\xb5\ +\x72\xfd\xf4\xb6\x37\x63\x1e\xf7\x27\xf1\xec\xfe\x8f\x94\x65\x17\ +\x00\x75\x89\x74\x4a\x7a\x71\x65\xe9\xc7\xf5\xe3\x00\xd6\x7d\x8d\ +\x19\x51\x91\x3d\xfc\xa2\xd8\x00\xc4\xc1\x41\xfd\x9f\x45\x1f\x16\ +\x9d\xf3\x0a\xbb\x2f\x46\x3c\x50\xdc\x3f\x88\x6e\xda\xf5\xd8\xe5\ +\xd3\x22\xcb\x77\xd4\x88\x7b\x74\x81\xb9\x08\x71\xde\xcf\x62\xbd\ +\x9f\x75\xa5\xf6\xe7\x48\xdc\x4a\xbb\x6a\x6d\xbf\xf6\xcf\xb6\x47\ +\x7a\x7f\x14\xff\xf7\xe8\x70\xce\xd2\xf5\x0a\x91\xe5\x9b\xe1\xe7\ +\x3c\x75\x1d\x6f\xdf\xc8\xb8\x52\xcf\x8e\xbb\xfb\xae\x4f\x45\xaf\ +\x3c\x42\x98\xa5\x7a\x1f\x28\xd2\x21\xfd\xaf\x69\xde\x10\xb3\xcf\ +\x21\xc6\xbb\xc1\x92\xbb\xdb\x8c\x09\xe0\xfb\x7f\xe4\xd6\xb4\x98\ +\x6b\x93\x74\x4f\xea\xab\x65\x8b\x39\x45\xb3\x18\x77\x25\x40\x07\ +\x63\xec\xa3\xf7\xc4\xa5\xfe\xe1\x48\x7e\xe4\xf3\xfc\x68\x3e\xa4\ +\x36\xc5\xf8\xb3\x9a\x23\x19\xbf\xce\x61\x1e\xd4\x3d\xb1\x01\xdd\ +\xd7\x1c\xc9\x31\xd9\xfd\x71\x5a\xfe\x5e\x85\xce\xf3\x4a\xb6\xce\ +\x5d\x78\x4e\x1c\x73\x9a\xb2\xbb\x00\xfa\xff\xd8\x40\xff\xef\xa3\ +\xb2\x65\x58\xfd\xd1\xd8\xf0\x65\x9f\x1c\x53\xad\x23\x5b\xb6\x5c\ +\x8d\x3d\xf2\x97\x26\xd2\x4b\x9f\x2a\xcb\xfc\x1d\xef\xdf\x77\x84\ +\x0f\x43\xb8\xf0\x74\x8c\x39\x80\x29\x47\x7b\xe3\x36\xef\x8e\x95\ +\x04\x73\x77\x50\xff\x6b\xe0\xfb\x4b\xe6\x3e\x2f\x3f\xdd\x44\xdc\ +\x3d\xc4\x8a\x72\x77\xbb\x7f\xfb\xd5\x4a\x78\xe9\x58\x55\xf0\xaa\ +\x89\x7f\xc8\xe6\xf9\x5e\x7e\x4e\xdb\x82\xf5\x2b\xbb\xff\xae\xde\ +\x59\xe9\xcf\xfd\xb3\x0d\x62\x9c\x0b\x9c\x53\x20\xfe\x12\xc4\xc4\ +\x8b\x36\xbc\x64\x64\xf9\x2a\x88\xfa\x4f\x5f\xc7\xdb\x87\xf9\xc4\ +\x19\x5b\xb6\xfc\xf6\x25\xa9\xe8\xc2\xad\x05\xc2\xe0\x95\xd9\xa3\ +\x48\x87\xe7\x81\xa2\x82\x19\xa6\xf9\x44\x7c\xac\x6d\xe9\x03\x50\ +\x3c\xa5\xfb\x2b\x1d\xa9\x07\xc8\xde\x8d\xcd\x7a\x48\xbb\x0d\x56\ +\x4b\x6a\x7d\x3a\xf7\x69\x4b\x9d\xbe\xe5\xf3\x7b\x1f\x57\xc7\x97\ +\x7c\x69\x56\xfa\x26\x1c\xfb\xb7\x08\xb3\x4c\xe7\xff\xb3\xa4\xff\ +\x0d\xca\xfd\xf1\x3d\xe1\x01\xba\x83\xf8\x0a\xb2\x57\x2d\x75\x40\ +\x9f\xe7\xc0\xd2\x98\x50\xf4\xf1\xb5\x9b\x27\x67\x03\xfd\xbf\xef\ +\xca\xcc\xf0\xd8\xcb\x97\x46\x55\xc7\xdb\xa2\x56\x7e\x6a\x4c\x9c\ +\x7b\x75\x31\x7a\xe0\xdb\x58\x3f\xc3\x5d\x0f\xc2\xbe\x97\xe7\xb6\ +\x22\x18\xfb\xfe\x91\xfd\x3b\xd6\x79\xc1\x98\xa5\x9c\x94\x71\xee\ +\x08\x67\x56\xf4\xbf\x4a\xfe\x7f\xaf\x97\x0d\x2d\xd6\xd5\xb0\x7a\ +\x2a\xe6\xce\x8e\x73\xfe\x77\xaa\xd1\x25\xaa\x99\x57\x88\x73\x80\ +\xe7\xe6\xfb\x33\x2a\xec\xa7\x06\x75\x9f\x62\x0d\x5b\xf6\x7c\x6d\ +\xee\xfb\x95\x6d\xa9\x51\x62\xac\x82\xb8\xc1\x88\x4d\x1f\xed\x7a\ +\x33\xd6\x02\xda\x1a\x7b\x9d\xef\x5f\x68\xf3\xb0\x7a\x4a\x2a\x3e\ +\xf7\xcd\x64\x78\xe9\x08\xd6\x01\x10\x3f\xa5\x0c\xa7\x86\x75\x00\ +\xd1\x7f\xea\x09\x0a\xae\xaa\xde\x0f\x2c\xca\x1c\x20\xbd\xea\xd9\ +\x60\x99\x03\x2c\x6a\x3c\x7e\x87\x63\xa9\xb2\xae\xbd\xd9\xfd\x7d\ +\xa7\x8a\xee\x87\x38\x8c\x6f\xea\x73\xa0\x49\x0c\xe0\xcf\xf7\x39\ +\x2d\xc1\xfb\x96\x3a\x00\x71\x20\xb7\xfc\xd8\x9f\xf9\x91\xb9\xfe\ +\x47\x9c\xc0\xf1\xb6\x9f\xcb\xe9\x7d\xea\xa2\xe6\x3a\xb5\xfb\xf3\ +\xc5\x58\xcf\xcc\x83\xff\x1f\x19\x32\x03\xfd\xbf\xef\xca\xe6\x11\ +\xf5\xdb\x17\x6d\x19\xe9\x1d\xda\xf9\xa0\xfa\xcf\xdd\x9d\x8d\x1f\ +\xa6\xa7\x7a\x77\x14\xa3\xbc\x7f\xdb\xc7\xb7\x69\xfb\xb1\x78\x59\ +\x78\x00\xab\xb4\x17\xd2\x94\x1c\xa0\x4e\x31\x00\xd6\xa4\x08\x3b\ +\x36\x56\xef\xef\x93\xa3\xfe\xe3\x4e\xb0\x71\x99\x37\x13\x6d\x21\ +\x66\xf4\x4b\xb7\xa8\x2d\xcf\x9f\x71\x2e\xfc\x1e\xd6\xe8\x29\xff\ +\xb7\x79\x77\xa6\xe2\xe7\xfb\x2d\xbf\x5f\x45\xfd\xea\x18\xf3\xfc\ +\xe9\xda\x9f\xc6\xae\x23\x3f\x4a\xb3\xb6\x82\x4f\x17\xd5\x3b\x4c\ +\x8b\xde\x36\xf3\x6f\x5f\xa1\xee\x05\xc7\xf6\x5d\x14\xc4\x52\x89\ +\x6f\x55\xd9\xa5\x54\x74\xf9\x7b\x19\xdc\xc1\xd3\xf1\x0c\xd8\x80\ +\x3d\x54\x0b\x60\x4e\xe1\xaa\x3f\x0b\x00\x7a\x64\x34\xfb\xbb\x81\ +\xe2\x57\xfd\xb9\x6a\xbd\x43\x65\x6a\x8e\x71\xa9\xbf\x6b\x3c\x01\ +\x87\x39\x98\x09\x03\xcd\xcf\xd9\x1b\x7d\x0e\x74\xdf\x7e\x4a\x7d\ +\x3f\xc6\x1c\xe9\x7b\xe8\x7d\xdb\xb7\x01\x7b\xa4\xf7\x3f\xeb\x32\ +\x46\x28\xc5\x0a\x2e\xd7\x00\xab\x32\xff\xa7\x39\xc0\x19\x07\xa0\ +\x2d\xf3\x0b\x32\x67\x65\x22\xaf\x29\xe4\xff\x13\xa7\x05\xfa\x7f\ +\x1f\x96\x21\x35\xf4\xfa\x2d\xe3\xcd\xff\x8a\x6c\x6a\x79\xf1\xed\ +\x6d\x2f\x3b\xd5\x61\x8e\x70\xa3\x27\x3d\x6c\xbd\x83\xd3\xaf\xb9\ +\x73\xfe\xdf\xc7\xdf\x2c\x09\xbe\x3c\xfa\x7f\xc6\x94\x67\xee\x0d\ +\xac\xf9\x69\xce\x5d\xc2\x01\xb1\x1b\x6b\xf0\x23\xdf\x38\x3d\xfd\ +\x90\x73\xf2\xd6\x65\x3f\x2c\xd1\xf7\x67\x0c\x3d\xec\xf7\xd3\x8e\ +\x9f\x3b\x90\xc3\x8a\x3f\xa3\x3e\xa3\xd4\xa5\xcb\xd2\xfb\xd3\xb1\ +\x3f\xfb\xa2\x1e\xc5\x2b\x45\xda\xcb\xe9\x1e\xcb\x1a\xbd\xc3\xea\ +\x9e\xf3\x0f\xdf\x5d\xd9\xbe\x45\xa9\xe7\xe6\xe3\x7b\x3f\x93\xb6\ +\x56\x8e\xe1\x4c\x50\x89\xf6\x02\x30\x06\x80\xdf\xc9\xe4\x7e\x20\ +\xdd\x47\x1d\x47\x99\xba\x0e\xa0\x79\x82\xf4\x4c\x40\xdb\x8f\xab\ +\x8a\xb6\x3e\x7a\xff\x8a\x7b\x71\xba\xcf\x5a\xd2\xb9\x97\xe6\xee\ +\x15\xbe\xe3\xaa\xf8\xf7\x9a\xcc\xf5\xcd\xd2\x6b\x53\x74\x1e\x31\ +\x94\x39\xae\xa2\xf8\xdf\x6d\x88\xee\xff\xff\xec\xbd\x09\x78\x5c\ +\x57\x79\x30\x7c\x2c\x59\xb6\x64\xd9\x96\x17\x69\x96\xbb\xcd\x8c\ +\x96\xd9\x57\x29\x09\xd0\x52\x02\x4d\x59\x5a\x0a\x5d\x3e\x5a\x42\ +\x69\x7f\x28\xfd\x80\x52\x4a\x57\x28\x29\xcb\x67\x43\x5a\xf6\x35\ +\x90\x04\x08\x38\x8e\x34\xfb\x8c\x56\x27\x21\x14\xda\x1a\xfe\x16\ +\x5a\x4a\x4b\xfb\x03\xa5\x85\xb4\x71\xbf\x12\x42\x81\x10\x07\x42\ +\xe2\xd8\xb1\xee\xff\x2e\xe7\xdc\x19\x39\x5e\x24\x59\xf2\x48\xce\ +\x79\x9f\x9c\x8c\xae\x8e\x75\xe7\xde\x73\xce\xbb\x6f\x55\xd6\x01\ +\x42\x32\x17\x28\xc4\xb9\x40\xaa\xae\x92\xca\xaf\x66\x99\xa5\x5d\ +\xfe\x6f\x80\xfe\xaf\xe5\xff\xcd\x0c\xbd\xdd\xe2\x25\x7b\x87\x0e\ +\xfd\x55\xa0\xb7\xe2\x3a\x3b\xeb\x6e\x74\x3f\xc8\xa1\xe8\x3b\xf3\ +\x37\x96\xc4\xe1\xa9\x1a\xfc\xca\x17\x97\x53\xb5\xe4\xbd\xbe\xf1\ +\xaa\x86\x4c\x5b\x5f\x0e\x9b\x6b\x6f\x53\x3f\x11\x67\xd2\x8d\x86\ +\x0f\x7f\xb6\x5b\x0c\xde\x32\x1c\x7f\x53\x39\x67\x15\x7f\x98\x93\ +\xb5\xb3\x0a\x36\xdb\xfb\x0b\x4e\xd5\xb3\x53\xb1\xef\xbf\x26\x75\ +\x5c\xfe\x3e\x15\xff\x93\xb5\x95\x3d\xaa\xce\xb1\x74\x41\xc6\x7d\ +\xf4\xc3\xc7\x8d\xca\xc9\x61\x63\xf6\x1b\xa0\x67\xfc\xe2\x25\x5a\ +\x42\x94\x01\x0c\xd1\x95\x98\x1c\xb3\x8a\x0f\x27\x54\x2d\x25\xac\ +\x0d\xe2\xaf\x92\x1d\x70\x1c\x7d\x9a\xd2\x17\x40\xf9\xcc\x5e\x4d\ +\xbe\x56\x9f\xd5\x8c\xcc\xa7\x66\x99\x40\xc5\x54\xca\xfa\x21\x0a\ +\xf7\x9d\xb2\xe7\x63\x25\x3d\xc8\x61\x5c\xa5\x3e\x07\x9e\x8c\xaf\ +\xec\xfa\x4c\x03\xa8\x66\x3a\xfa\xf9\x88\xd7\x57\xa5\xec\xcf\xb2\ +\x00\xc9\xff\xb2\x57\xea\x78\xa8\x95\x0f\x48\x76\x40\x29\x5f\xa8\ +\x9e\x8f\xea\x59\x54\x0e\x03\xf6\x40\xc9\x86\x9b\x5f\xde\xbe\x3d\ +\xac\xf1\x7f\x13\x43\x8f\x10\x4f\xda\x31\xf8\x96\x9b\x02\xfd\x35\ +\x77\x64\xef\x9c\x1b\xf7\xcf\xb8\xb1\xc1\x9a\xf4\x65\xd5\x5b\x3d\ +\x70\x65\x2e\x7b\x4e\xd5\x8f\x95\xb5\x77\xb2\xb2\xdf\xae\xea\x31\ +\x43\x78\xef\xf5\xdd\x2a\x71\xef\x6d\x3a\xaf\x68\x17\x28\x7f\xad\ +\x5b\x3c\xe3\xb3\xf1\xc8\xc7\xff\x19\xf0\xfb\x04\xc5\xa7\xc8\xbe\ +\x5e\xca\x4f\x4d\x3f\x3b\x2d\x1b\x96\xaa\x55\xa7\x74\x52\xf6\x6b\ +\x33\xef\xe7\x1a\x7b\x75\xae\x59\x0c\x23\xe1\xc3\x3a\x7a\xcd\x1f\ +\xa7\x92\xb5\xbf\x04\xac\xbc\xe6\x12\x2e\x63\xd7\x36\x21\x5e\x94\ +\x1c\x7b\xcb\x5d\xa3\xe6\x9c\x8b\x32\x00\xd6\x51\xa1\x9a\x00\xd8\ +\x53\x51\xf5\x10\xc5\x78\x00\xb4\x9b\x9b\x15\xcf\x9f\xc2\xba\xbd\ +\xca\xaf\xac\x78\xb8\x9d\x56\xb5\x77\xe4\x48\x39\x5c\x6f\x0d\xe3\ +\xf1\xd8\x37\x50\x92\xf6\xd7\x12\xd5\xee\x23\xfd\x5d\xda\xf7\xa8\ +\xcf\xb9\x53\xf6\x68\x00\xf9\xf9\x81\x4e\x8c\xab\xdf\x4b\xb9\x9f\ +\xe6\x65\x8f\xf4\x42\x5b\x4f\xb5\x9c\xd4\xfd\x3d\x39\xc3\xe3\xfd\ +\x15\x19\x13\xce\x35\xce\xb2\xe1\x99\x2f\xf7\x08\xad\xff\x6f\x72\ +\x08\xf6\xee\x7d\xce\x9f\xfa\x77\xd6\xdc\xc8\xae\xa6\x1b\x1f\x9a\ +\x76\xb1\x16\x48\xc2\x57\xa5\xfa\xf6\x6c\xbb\x96\xf5\xed\x1c\xc9\ +\xbf\x3c\xdc\x2c\x7b\xf8\x9f\x57\xbc\xc8\x69\xe9\xfe\xd8\x03\x83\ +\xfb\xcc\xb0\x7f\x20\x13\xaa\xff\xa7\x33\xf8\xbe\xaf\x67\x42\x87\ +\x1f\x00\x3a\x71\x1a\xf9\x0f\xf7\xd1\x90\x7c\xc7\x91\x83\xce\x21\ +\xe7\xf9\x7a\xf5\x3e\xbc\xfa\x3e\xca\xee\x57\xf3\x62\xe9\x53\x92\ +\xf7\xc7\x06\x11\x07\x9a\x0f\x0e\x8f\x7d\x18\x63\xd2\x9e\x74\x89\ +\xd7\x71\x14\x68\xc0\xc1\x31\x67\xea\x61\xa0\x01\x8b\x9c\x83\x50\ +\x23\x9b\x24\xe9\xff\x6a\xe0\x7a\xca\x7e\x8b\x59\x99\x27\xa9\xe4\ +\x19\x65\x03\xc8\x4a\x9c\x57\xf5\xf7\x30\xfe\x26\xe5\xb4\x7c\x02\ +\x59\xaf\xaf\x17\xf7\x19\xca\xc9\xde\xe6\x4a\xce\x1f\x97\xfd\x91\ +\xf0\x93\xf4\x7c\x98\x27\x7c\xc7\x39\xbb\xcc\x3a\x00\xec\xc7\x84\ +\xa2\x01\x1e\xfe\x97\x3c\x1a\xe0\xd9\x76\x6d\xe9\x83\x74\xaa\xd2\ +\x2e\x59\x97\x3e\x21\xca\x5d\xfa\x72\x5f\x9f\xe6\xff\x9b\x1c\xb6\ +\xf5\x8a\xfe\xdf\xf4\xed\x6a\x3e\x34\x32\x30\x7f\x3a\x36\x34\x03\ +\x32\xc0\x34\xd5\x04\xcb\xca\x1a\x40\xaa\x96\x85\xc7\xfb\xad\xb2\ +\xd7\x83\xa3\x55\x8f\xbf\xd5\x87\xd3\xd3\x03\xa4\xec\xaf\x7a\x63\ +\x26\x82\xc5\xfb\x93\xf6\xe4\xfd\xb9\x08\xc6\x06\x2a\xda\xc0\xfd\ +\x7c\xda\xeb\x50\xe6\xe5\x7d\xf3\xca\xe6\xa7\xea\x52\x58\x2a\xd7\ +\x4f\xe6\xa2\x61\x2c\x0a\xf1\x7f\xec\x61\x82\x34\x8b\x7a\x16\x7d\ +\x5f\x88\xd8\x1b\xe1\xbd\x62\x97\x7a\x1d\x01\xff\x7f\x71\x38\xfa\ +\x8e\x2f\x0d\x07\x3e\x79\x02\x6b\x72\x60\xfe\x34\xf5\x57\x47\x3a\ +\xaa\x7c\x81\x86\xea\xb3\x2a\xf1\xde\xaa\xb4\xd9\x03\xb8\x77\x00\ +\xf7\x5a\xaf\x78\x35\xf8\x39\xc6\xa2\xc4\x3d\x45\x1d\xfe\x54\x3e\ +\x17\xae\xdb\xc1\x7d\x7c\xd8\xb6\x5f\x96\xfc\xbf\xe4\xe1\x38\xf2\ +\x78\xa4\x03\x13\x21\x69\xf7\xa7\x7f\x57\xf2\xe8\x02\xf6\x01\x52\ +\x31\x40\xf9\x30\xdb\x12\x55\x7f\x15\xee\xf5\x5a\xf2\xf2\x39\x32\ +\xb2\x1f\x30\xda\xff\x13\x4e\xed\xcb\x3d\x3d\x7e\x8d\xff\x9b\x1c\ +\xfa\x84\xf8\xe5\xbd\xfb\x9a\xf7\x8c\x0d\xcc\x9d\x8c\xed\x9f\x21\ +\xfe\x8f\x79\xed\x14\xd7\xae\x64\x7f\x53\xe5\x94\xa8\x5a\xfc\xdc\ +\x87\x37\x6b\x97\x3c\xbb\x11\xe5\x8e\xaa\xbe\xbb\x92\xff\x17\x94\ +\xfd\x5a\xd5\xb8\x31\xa7\xd8\x2e\x80\xfd\xa8\x1c\xee\x41\xa5\x74\ +\x50\x95\x8f\x9e\x97\xbe\xa8\xac\x97\xf3\x57\xf3\x7a\x57\x70\x9c\ +\xab\xcc\xf5\xc7\x38\x25\xa4\x51\x68\x77\x87\x67\x2e\x04\xeb\xa7\ +\x9e\x92\xac\xff\x87\xe0\xbe\xe3\x6b\x91\xef\xb7\x52\x48\x6d\x15\ +\xe2\xfa\x51\x63\xea\x7b\x09\x6b\x66\x11\xf3\x82\xa8\x46\x38\xd6\ +\x20\x90\x31\x81\x2a\x1e\x80\x6c\xaa\xd4\x47\xac\xea\xc9\x01\x69\ +\xd9\x4b\x90\x7d\x2a\x2d\x3c\x27\xdc\x57\x78\xe8\xc8\xde\xe6\x5e\ +\x2f\xbf\x92\xf4\xdd\x33\xff\x56\x78\x4d\xfd\xbe\x28\xb7\x87\xf1\ +\x1f\x07\xe2\xfe\x15\xa8\xf7\x13\x5d\x50\xb6\xff\x92\x47\x33\xf2\ +\xca\x97\x10\x51\xcf\xa0\xea\x01\xc8\xd8\x4f\xea\x85\x5a\x95\x7d\ +\x86\x11\xff\xb5\xff\xef\x72\x80\xed\x42\xfc\xac\xdf\x38\xfc\x0f\ +\xc9\x81\xb9\x47\x92\xbe\x19\x8a\x9d\xa7\x5e\x20\x58\xcf\xca\xac\ +\x7b\xf6\x2a\xac\xc3\xa1\xea\xf1\x2d\xe9\xc5\x21\xf3\x46\x29\xde\ +\xd7\x96\xfd\xe5\xd0\x76\x64\x95\xbc\x73\x44\x36\x6e\x43\xf5\xca\ +\xe5\xfe\x9c\x05\xe2\x35\x52\x16\x08\xf1\x59\xcd\x79\x7d\x29\xcb\ +\x5c\x9f\x5e\xf6\xa8\xc9\x3a\x2d\x7e\xc9\x79\xbe\x0d\x99\x37\xc7\ +\x35\x69\x51\x57\x79\x4a\xa4\x72\x6f\xdf\xee\x67\x61\x8c\x3c\xe6\ +\xa3\x77\x77\x60\x29\xfb\x7b\x84\x78\xb2\x69\xbc\xf6\x5f\x47\xcc\ +\xd9\x93\x48\x9b\xa8\x56\x18\xc6\x03\x22\x1d\xa0\xbc\x00\xd9\x43\ +\x54\xc6\x04\xb5\xe2\xaa\xda\xe2\x2a\xa4\xfe\xcf\xb8\x2f\xfd\x2b\ +\x6d\xf5\xce\xd3\xd4\x07\xb9\xc2\xfd\xbb\x2d\xa6\xa3\x85\x90\xec\ +\x41\xa8\x7e\xa6\xdf\x17\x59\xef\x0f\xb5\x78\xfd\x04\xd2\x59\xbb\ +\xe4\xc9\x00\x6a\xce\xd3\x01\x64\xfc\x2f\x8e\x0c\xf5\x4e\x6d\xb3\ +\xb7\xaa\x1c\x6b\x59\x6b\x00\xfd\xff\x7d\xfd\x31\x8d\xff\x9b\x1c\ +\x80\x67\xfd\x54\x60\xec\x43\xd3\xa9\x3d\x73\x3f\x4a\x82\xfe\x8f\ +\xb2\x74\xd2\x57\xa7\xbe\xc0\xaa\xa6\x25\xf5\xe1\x90\xf9\xa4\x79\ +\x19\x77\xef\xf5\x8e\x92\xb5\xe3\xb8\x96\xa4\x94\x49\x6d\x3e\xa3\ +\x19\x2f\x8e\x55\xea\xad\x24\x4b\x72\xff\xee\xbc\xe4\xff\x39\x3a\ +\xb7\x4c\x07\xd8\x86\xc0\xba\x44\xbb\xee\x4f\xb9\xac\xe1\x3a\xf3\ +\x49\x53\xf6\x2a\xb0\x39\x16\x35\x85\xf5\xcb\x03\x8d\x47\xd3\xd1\ +\x8f\xdd\x81\x3d\xbb\xc4\xc5\xd5\xf9\xb9\x18\xa0\xde\x6a\x3b\x84\ +\xb8\x71\xd8\xac\xde\xc3\xfd\x38\x6a\xbc\x8e\x81\x2a\xc7\x04\xa1\ +\x2d\x10\xed\x67\xc1\x0a\xe1\xbe\xd7\x73\x55\xe1\xbf\xd4\xf1\xd3\ +\x32\x9e\x32\x6b\x97\x3d\x79\xa0\xdd\xd6\xaa\x7c\x7e\x6c\x5f\x2d\ +\xb2\xfe\x6f\xb7\xe1\xba\x67\xfb\x67\xfd\x6a\x5c\xca\x05\x13\x61\ +\x65\x23\x60\x1a\x31\x1e\x52\xfa\x7f\x45\xd2\xdf\xb2\x57\x07\x30\ +\x63\xab\x5c\xee\xf2\x12\xf9\x9f\x06\x9c\x83\x44\xb8\xf1\xe5\xed\ +\x7d\x8e\xc6\xff\x4d\x0e\xc0\xb3\xae\xd8\x67\xbe\xf6\x23\xe9\x7d\ +\xf3\xc7\x63\x83\xb3\x80\x4f\x0d\xf2\xff\x71\x5e\x2b\xeb\xff\xaa\ +\xc7\x25\xf3\xfd\x9a\xac\xc5\x25\xfb\xf0\x58\x12\xff\x23\x15\xe9\ +\x8f\xe2\xd8\xbf\x5c\xa8\x15\xaf\x97\xb1\x55\x4f\xc9\x32\xe5\xb5\ +\x64\x1d\x1e\x39\xc5\xb7\x24\xee\xab\x1a\x14\xd9\x50\xcb\xe7\x9f\ +\x93\xb5\xc6\xb8\x17\x8d\xac\xed\x8f\xfc\xdf\x6e\xc8\x9a\x77\x78\ +\xbe\x27\xbf\xd2\xd5\xeb\x5c\x27\x2e\xdc\xdb\x73\xbd\xa1\x1f\x04\ +\x8f\xe7\x1a\xbe\x83\x77\x45\xcd\xe9\x93\x18\x43\x89\xbe\x09\xf4\ +\xa5\x2a\xfc\x57\x7d\x84\x73\xe4\x07\xe0\x98\xaa\xbc\x8a\xa9\xb6\ +\xd9\x07\x92\xc1\xfc\x1f\xbb\xe5\xef\xe3\xbe\xe2\xb2\xa7\xb9\x8c\ +\xb3\xce\x4b\x3a\x5b\x90\x3c\x9e\x68\x80\xa3\x78\x3f\x5f\x63\x4f\ +\xe2\xf1\x36\xbd\x60\x5c\xf1\xff\x50\xb9\xa5\x1f\x38\xdc\xc3\x38\ +\x27\xaf\x55\x6c\x47\x46\xc6\x7a\x65\xda\x62\x93\x58\xff\x67\xfe\ +\x1f\x0b\x21\xfe\x6b\xfb\xdf\x66\x87\x6d\x42\x64\xfa\xf7\x3e\xff\ +\x9d\x89\xc1\xd9\x1f\xc4\xf6\xcf\x49\xf9\x7f\xda\x4d\x07\x64\x1d\ +\x0b\x87\x6b\xd9\xe4\xbd\xba\x72\x2d\x99\x95\xea\xf2\x86\x54\x2c\ +\x3a\xcb\xef\x05\xea\xd1\x2d\xfd\x81\xb6\x8a\x55\xe5\x5a\x21\x19\ +\x5b\xf9\xae\x64\xdf\x79\x6b\xaa\x65\x0b\x0c\xb1\x2f\x2b\xaf\xe2\ +\xda\xc2\x2a\xd7\x5f\xc6\xfa\xc8\x18\xd4\x8c\xec\x73\x99\x26\x5b\ +\x74\x63\x31\xe9\xaf\x9d\x8a\x8f\xdc\x72\x83\x10\xeb\x1a\xef\xbf\ +\x5c\x40\x19\x60\x27\xfc\xef\xed\xa3\x66\xfd\x7e\xec\xcf\x91\xa4\ +\x3e\x21\x0d\xf2\x05\xa2\x0e\x80\xb1\x00\x18\x13\xc0\x75\x02\x95\ +\x0e\x50\x91\xbd\xbb\x55\xff\xd0\x92\x94\x09\xa4\x9f\x0f\x65\x7e\ +\xe5\xef\x93\xf6\x3e\xd2\xb5\x08\xcf\xa7\x24\x1e\xb7\x74\x7f\xe2\ +\xf9\x21\xc6\x77\xe6\xf9\x45\x89\xff\x25\xd2\xff\x55\x4c\x00\xf5\ +\x01\xb7\x4b\x9e\x9f\x90\x6d\x39\x95\x16\xed\x76\xca\xad\x7a\xef\ +\x5e\xfc\x2f\xd7\x84\x8c\x85\x41\xfe\xef\x4b\x69\xfc\xdf\xfc\x10\ +\xd8\xd6\x6d\x5c\x1b\x1d\xaa\xde\x97\x0a\x2c\xb8\x09\x3f\xf6\xcc\ +\x9a\xa6\x1a\x7a\x59\xa3\x2e\x6d\x7f\xb2\x8f\x9c\xd7\x87\xaf\x55\ +\x3b\x36\xa7\x7c\x76\x2a\x76\x04\xed\x7b\xa1\xa2\x67\x0b\xcc\x49\ +\x3b\x21\x9e\xdd\x8c\x55\x6a\x9d\x61\xec\x47\x4f\x43\xca\x00\x61\ +\x96\x21\x38\x86\xa0\x44\xb1\xe8\x4a\x76\xc8\x29\x9f\x9f\xcc\x4b\ +\xa2\xfa\x9b\xf0\x4c\x89\x60\xf5\xd1\xa8\x51\xc2\xfe\xa2\xcf\xef\ +\xf4\x22\xb6\x03\xc8\x54\x57\x8e\x0d\xdf\xfc\x99\x51\x73\xe6\x31\ +\xd2\x57\x30\x2f\x00\xf5\x80\x20\xfb\x01\x73\xc1\x0a\xc5\x3d\x91\ +\x0c\x60\xb2\x3f\x30\x27\x6b\x77\xe4\xa5\x0f\x90\x7d\x27\x3c\xb2\ +\xb6\xb2\x93\x96\x24\x2d\x98\x62\x5d\x9f\x62\x78\xa4\x0f\x05\x7e\ +\xa7\xf0\x1c\x3f\xf3\x56\xfb\x35\xe2\x7b\x91\xfd\x01\xd2\x4f\x40\ +\xfc\x5f\xe9\xfe\x32\x07\x88\x69\x0e\xfb\x77\x54\xad\x37\xd5\xf7\ +\x85\xe3\x14\x65\x5d\x18\x78\xf6\x44\xa4\xfa\x2f\xbb\xf6\xfe\xe4\ +\xeb\x04\xd7\x44\xd2\xb0\x79\x21\x00\x32\xeb\xb5\x51\x7f\xf9\xbe\ +\x38\xc8\xff\x09\xdf\xb4\x1b\xf7\xcd\x70\xaf\x3b\xd9\xeb\x9a\xec\ +\x00\xb2\x26\x17\xc6\x7e\xa9\x58\xfd\x9c\x8c\x33\xcd\xd9\xd2\x6e\ +\x17\x52\x76\x3d\xb6\xf1\x93\x2e\x80\xbf\xb7\x39\x1e\x88\xec\xd5\ +\x14\x5f\x36\x45\x67\x38\xe7\xc9\xfe\x4a\xf7\x2f\x7a\x3c\x28\xdf\ +\x56\xdf\x9b\x73\x5d\xb8\xa7\x15\xf9\xfc\x2c\xae\x11\x9a\x0d\xd5\ +\x1e\xf0\xf9\xde\xf7\x3e\x40\xb8\x5c\xa7\x17\xf1\x0c\xe8\x05\xb6\ +\x78\xc3\x98\x7d\xf8\x7e\xec\xd1\x93\xa4\xfa\x00\x35\xd2\xfb\x0b\ +\x66\x95\x46\x1e\xf5\x7f\xb4\xab\x2a\xfc\x47\xbc\x33\xca\x5e\xbf\ +\x03\xa2\xb3\xde\xcf\x25\xcf\x5e\xa2\xe8\x25\xe1\xb6\xc7\xdb\x5b\ +\xf6\x3e\xb2\xf5\x2b\x1f\x9f\x67\xfb\x6f\xd9\xfd\x54\x2c\x40\xcb\ +\x5f\x58\xa6\x5a\x60\x39\x19\x47\xa8\xea\xac\x7b\x75\xdc\x54\x4d\ +\x47\x55\xbb\x90\xd6\xbf\x0e\xf2\x7f\xed\x9e\x9d\x03\x3f\x83\x7d\ +\x15\x3a\xe1\x6b\xd1\xb0\x76\x40\xf8\x3f\x1c\x40\xfc\x67\xfe\x1f\ +\x1b\x44\xf9\x1f\xf3\xe9\x38\x46\xdf\xeb\x6d\x23\xeb\x73\xb4\x78\ +\x15\xc7\x9c\xb7\xf4\x80\xa2\xb4\xff\x01\x7f\x0a\x73\x0c\xb0\xb2\ +\x07\xe4\xdb\x63\xcb\xa5\x7c\xc0\x3a\xbf\xb2\x17\x32\xad\xe0\x1a\ +\xb4\xca\x06\x50\x93\xb6\x28\xf6\x41\xe6\x6c\x69\xfb\xa3\xfa\xd9\ +\x15\x37\x6e\x1c\xba\x57\x88\x08\xd6\xc7\x1d\xec\xf4\x22\x9e\x09\ +\xa0\x57\xfd\x5a\x62\xec\x83\x9f\x1a\xf6\xcf\x71\x9d\x40\x83\xdf\ +\x01\xe9\x29\xdb\x01\x2a\x5c\xe3\xd4\xae\x49\xfe\x5f\x91\xba\x15\ +\xf3\xfe\xac\x5c\x57\xb2\xa5\x48\xfc\xcf\x39\x4a\xe6\x67\xbd\x3f\ +\x4f\x73\x53\xac\x03\x10\x0d\x98\x6a\xa3\x07\x25\x4f\xe6\xf7\x64\ +\x00\x65\x1b\xb4\x5b\x79\x02\x79\x45\x07\xbc\x58\xeb\x36\x9b\x9f\ +\x57\xd3\xb5\x2a\xed\xad\xb2\xbe\x2a\x9c\x89\x98\x5d\xbb\xd7\xe7\ +\x7f\x25\xfa\x5b\x74\xfd\xaf\xcd\x0d\x58\x1b\xf3\x9a\x61\xf3\xd0\ +\xb7\x62\x43\x0b\x6e\x7c\x88\x65\x00\x8c\x01\xc8\x04\x1a\x7c\x6e\ +\x49\x87\xe5\x18\x1c\xb6\x07\x54\x3c\xfe\xcf\x32\xaa\xf4\x01\x12\ +\xff\x98\xe2\x33\xd9\xe6\x0f\x24\x7d\xb5\x3d\x5e\x45\xea\xff\x18\ +\x6f\xe2\x9d\x63\x47\xc5\x10\xb5\xf2\x5b\xbd\x3a\xbf\xaa\x9f\xb5\ +\xdd\xe4\x3a\x1f\x70\x06\x13\x56\xe9\x44\x3c\x54\xff\x67\x78\xf6\ +\xa8\xe0\x38\xfc\x8d\x06\xd1\x1d\x62\xf7\x5b\xc6\x8c\xca\x43\x89\ +\xc0\xf4\x69\xca\x4f\x52\xfd\x42\xcd\x6a\x5b\x6d\xa0\xaa\x8c\x07\ +\x6c\x93\xab\x2c\x8e\x8b\x6c\xf5\x3e\x52\x74\x56\xe9\xeb\x6d\x32\ +\x7e\x48\xda\xf3\x08\xf7\x4b\x2d\x59\xc0\x69\xd9\xfd\x70\x7d\x51\ +\x47\x40\xbf\x7f\xcb\xff\xd7\x8a\x0f\xce\x2b\xde\x6f\xb7\xd9\xff\ +\x9c\x96\xed\x8f\xf2\x93\x2d\xae\x37\x8a\xb8\x8f\xf2\x57\x32\x5c\ +\xfb\x81\x35\xf2\xce\xbb\xc4\x59\x7a\xbb\x68\xd8\x74\x10\x0e\xfb\ +\x3e\x78\x4f\x02\x70\x3f\x89\xf2\xff\xd0\x0c\xf9\x01\xb2\xa8\x03\ +\x04\x65\x7e\xbe\x8c\x05\xf0\xfc\xd6\x4e\x5b\xdc\xbe\xa3\xfc\x80\ +\x25\xaa\x23\x89\x67\x2d\x47\xf9\x3f\x45\x59\x93\xa2\xe5\x17\xc8\ +\xb7\xd9\xff\x38\x16\x48\xfa\x01\xc2\x25\x4f\xf6\x27\x5f\xb7\xd3\ +\x92\x41\xb3\xca\xee\x6f\x35\x64\x6f\xdf\xaa\x1b\x35\xcb\xdf\x31\ +\x23\xef\xdb\xd0\xf5\x67\xb7\x0b\xf1\xfc\xf8\xe8\x0d\x5f\x1b\xf1\ +\x7f\xf2\xd1\xb8\xd1\xa0\x78\x00\xaa\xd5\x29\xe3\x01\x0b\x4b\xe2\ +\x00\x14\x0d\x68\xb3\xab\x22\xfe\x5b\x8a\xc6\x96\x3c\xde\xcf\xb6\ +\xfe\x96\xef\x6f\x5c\xd9\xf7\x96\xc4\xfa\x97\x5a\x72\x80\xfc\x5b\ +\x25\xf3\x8f\xab\x3a\xa0\x76\x8b\xff\xb7\x62\x3a\xb0\xae\x6b\xad\ +\xd5\xe3\x0d\xf1\xdf\xe1\xbe\x05\x29\x4b\xe2\x3f\xf6\x01\x0e\x55\ +\x4f\x5a\xa3\x87\x74\xfd\xff\xcb\x03\xc2\xc1\x3d\x7f\x78\x0f\xea\ +\xff\xc9\xa1\xa6\x9b\x00\xfc\x4f\x07\xa6\xb9\xcf\xad\xc9\xf9\xac\ +\x9c\x0f\x28\x6b\x5a\x5a\x55\x4f\x56\xcd\xab\x58\x60\x2f\x17\xa0\ +\xe4\xc5\xf7\x30\x8f\x57\xb1\xe5\x6d\xf2\x80\xa3\x62\x80\xdb\x3e\ +\xc3\xad\x5c\x76\xce\x6d\x97\x7d\x3d\x65\x8d\x1f\xaa\x71\x6d\x32\ +\xfe\x50\x7d\x92\x70\xfd\x9f\xba\xfa\xae\xc0\xba\xd8\x6b\x51\xdb\ +\x7b\xbd\x20\xd9\x25\x76\xbe\x75\x34\x58\xbd\x1f\x79\x26\xc6\x54\ +\x51\x5f\x25\x7f\xa5\xcd\x17\x58\xf5\x6c\x80\x19\x53\xe2\xbf\x55\ +\xf6\xf8\xb1\xf2\xc9\x7b\xfc\xdf\xd3\xff\xa5\x0c\x60\x97\x5a\xfc\ +\xbe\x3d\x06\xd0\x2e\xb5\xf2\x7b\xec\xb6\x6b\x65\xef\x5f\x22\xff\ +\x57\x96\xe0\xbf\x17\xf3\xa7\x78\x3f\x0d\xb6\xbb\xa4\x24\xfe\xc7\ +\xc3\x8d\xc5\xd1\xb1\x59\x8c\xb7\x0c\x77\x7a\x91\x35\x5c\x34\x84\ +\xfb\xbb\x9f\x01\xfc\x7f\xce\xc5\x18\x80\xe4\x20\xc6\xd4\xce\x50\ +\x8f\xbb\x1c\xe5\xb3\x37\xa9\xb7\x65\x9a\x7a\x5b\xc8\x38\x20\xbb\ +\xd5\x37\x82\xf9\x55\xd9\x8b\xed\xcb\xa1\x5f\x4f\xda\xa8\x73\x8e\ +\xb2\x5d\xb1\xec\x9a\x77\x94\x1c\xd0\xb2\xff\xa9\xfc\x13\xef\x0c\ +\xca\x9c\x13\xd5\x6b\x84\xf3\x4e\x1a\x54\xeb\x1a\xe5\x91\x64\xa0\ +\xec\x26\x47\x4a\x7f\x05\xcf\xfd\x1c\xc1\x3d\xa8\x37\x2a\xec\xdd\ +\xbe\x55\x3c\x7b\x6c\xf8\xa6\xbb\x23\xbe\xe9\x53\x49\x83\xfb\x74\ +\x52\x6e\x15\xf9\x02\x5b\x7a\x80\xca\x09\xca\xd9\xad\xcf\x9c\xad\ +\xec\x71\x52\xbe\x52\x76\x00\x9b\x71\x3d\x67\x2d\x8d\xfd\xc9\xcb\ +\xf9\x71\xa5\x13\xa8\x98\x00\xbb\x65\x03\x60\xda\x50\xf6\x68\x80\ +\xca\xbb\x52\x39\x1d\x2a\xc7\xa8\xa5\xf7\xb7\xe1\x3f\xf6\x85\xb2\ +\xb1\x07\x20\x8c\x70\xdd\x8d\x8e\xdd\x81\x7d\xc0\x7f\x42\xac\x7f\ +\xad\x15\x0d\xeb\x0b\xe1\x3e\xb1\xf7\x9e\xb4\xef\x88\x9b\x0e\xde\ +\x4e\xfa\x3f\xca\x01\x68\x03\xc8\x23\xee\x93\x2f\x10\x63\xd9\xb8\ +\x8e\x7d\x5e\xc6\xad\x28\x7c\xcd\xcb\xbc\xd3\xac\x39\xe9\xc5\xf2\ +\x2e\x89\xed\x73\xd4\xb9\x55\x72\xab\xf2\xf9\x29\x59\xa0\x15\xfb\ +\x93\x93\x31\xb0\x59\xaf\xe7\x28\xf7\x22\xca\x5a\x5c\xeb\x1e\x6d\ +\x12\xf8\x0c\xc3\x89\x9b\x67\xe0\xb9\x47\xc4\x59\x7a\x64\x6f\x20\ +\xa0\x1a\x41\x3b\xc4\xc0\x4c\x34\x38\xfb\x3f\x63\x41\xec\x19\x22\ +\xe3\xaa\x65\x6e\x30\xd9\x01\xa5\x3f\x40\xd9\x00\x3c\xbc\x97\xb6\ +\x40\x8f\xff\xcb\x38\x09\x25\x03\x20\x9d\x1d\x6f\xf3\xfd\xe7\xad\ +\xa9\x33\xe4\xff\x36\x59\xc0\xcb\xfb\x29\x33\xfe\x87\x94\xbd\x46\ +\xf9\xfe\x65\x1c\xa2\xb4\xbb\x2c\xed\xef\x5c\x73\x93\xd4\xcb\xa9\ +\x4e\xf8\x8f\x7d\x0f\x12\x20\x97\x25\x46\x66\xbe\x2d\x38\xdf\x62\ +\xc3\xd9\x5f\x35\xac\x08\x9c\x5e\x21\xbe\x9a\x35\x66\x4e\x26\x7c\ +\xf3\x84\xff\xc8\xff\x33\xa4\x03\x34\xa8\xcf\x6d\x4e\xc6\x02\x28\ +\x7b\xb5\xb2\xff\xe1\xf9\x64\x1a\x20\xed\x7c\x36\xc7\xf4\xb4\xf2\ +\x7b\x54\x1d\x80\xa2\x97\x9b\x46\xb4\xc0\x9a\x92\xb4\xa2\xe4\xe5\ +\x12\x29\xff\x93\x57\xdf\x4b\xd5\xca\x0d\x56\xa9\xce\x0f\xc6\x26\ +\xa7\x02\x68\x87\x2e\x9d\x0c\x3a\x2f\xfc\x48\xa7\x17\x6d\x99\x40\ +\xfd\x96\x2c\xdf\x9f\x7d\x26\xe4\x6b\x9c\xc2\x77\x41\x5b\x60\x56\ +\xf6\x0c\x27\xde\x8f\x76\x40\xaa\x0d\xa0\x6a\x1c\xc8\x1c\x7b\xa7\ +\x15\x03\xdc\xb2\x9f\xb6\xec\xa8\xbc\x8e\xad\x78\xbf\x25\xbc\x5e\ +\xda\x09\xf2\x6d\x74\x60\xa9\xdf\xaf\xd2\xca\xb7\x26\xdb\x6b\x45\ +\xda\xfe\x19\xff\xd3\xed\xf2\x3f\xf6\x2d\x47\x9f\x3f\xf6\xfe\xc3\ +\xfe\x9f\xd8\xfb\x08\xfb\x80\x85\xa7\xff\x47\x88\xe0\x2b\x85\xee\ +\x01\xba\xd9\xc1\xd8\x22\xc4\x1d\xe9\xd1\x5b\xee\x1f\xf6\xdd\x49\ +\x3e\x00\xc4\xff\xb4\x1f\xe4\xff\x00\xcb\xdc\x5c\x0f\xa4\x26\xfb\ +\x5b\x57\x25\xaf\x2a\x2f\xe1\xff\x39\xa9\x83\xaa\xcf\x7c\xdb\xe7\ +\x92\xfc\x14\xa7\xec\xd1\x05\xe6\xff\x6c\x8f\xca\xa9\xde\x15\x5e\ +\xed\x9b\xaa\x8c\xf3\xe3\x3c\x3f\x8c\x4b\x4e\x06\x40\xee\x0c\x54\ +\x1e\xec\xda\xba\xff\x9d\x9d\x5e\xb4\x65\x82\x8a\x09\xbc\x21\x14\ +\x3c\xf4\xfd\x11\xdf\x1c\xd6\x29\xe1\xd8\xaa\x40\xd5\x93\x01\xb2\ +\x98\x17\x2c\x65\xfe\x6c\xbb\xec\x2f\xe5\x00\xcf\x37\xd2\xa6\x53\ +\xb5\xfc\x81\xa5\x25\x34\xa0\x65\xf7\x2b\x7a\x7c\x7f\x49\xac\x9f\ +\x1a\x2a\xe7\x27\xd4\xea\xb3\xb2\x94\xff\x73\x2f\x28\xc4\xff\x84\ +\xc5\x34\x20\x8e\xbe\x17\xb4\x65\x62\x0c\xb0\x55\xbd\xdf\xef\xff\ +\xcd\xeb\xe1\xfd\x52\x9d\x5e\x64\x0d\x17\x05\xbb\x61\xbc\x2c\x12\ +\x7c\xe9\xdf\x0f\x83\x0e\x90\xf0\x2f\x00\xae\xcd\xb8\xa9\x41\xac\ +\x63\x85\x35\xed\xb9\xb6\x76\x56\xda\xfe\xa8\x26\x00\xf2\x27\x4b\ +\xf9\xa8\x55\xec\x68\xb9\x0d\xd7\x5b\xfc\xc7\xe3\xfb\x76\x1b\x0d\ +\x08\x49\x1f\xb6\xca\xf9\x97\xb9\x2f\x9c\x73\xc6\x35\xb1\xc9\xe7\ +\xec\x48\x7f\x3f\xd6\xf7\x82\xe7\x49\x80\x0c\x10\xf7\xd5\x81\xef\ +\x88\x37\x74\x7a\xd1\x56\x00\x5d\xdd\x42\xbc\x68\xc4\x79\xed\x5d\ +\x11\x03\xd6\x56\xd6\x0a\xcf\x20\xfe\xab\x9e\xe1\x96\xb4\x03\xda\ +\x2d\xfd\xa7\x15\x8f\xa7\x70\xff\x0c\x39\x40\xc9\x55\x52\xdf\x52\ +\x7e\x01\xe6\xfd\xa5\x25\x31\x7e\xed\xb9\x80\x2d\x5b\x80\x92\xff\ +\x65\x2c\x87\xb2\xbd\x2c\xe9\xef\xce\xf6\x7f\xec\x55\x8c\x36\x00\ +\xa4\x01\x31\xcc\xbb\x82\xdf\x27\x9c\xea\x03\xe1\xf0\x1b\xde\x27\ +\xc4\x86\x8b\xbf\xd2\xb0\x32\xd8\x06\x23\xde\x2b\x7a\xeb\xa3\x46\ +\xe5\xd1\x84\x0f\x63\x00\x9a\xe4\x03\xc4\x38\xc0\xac\x8a\x03\x90\ +\xbd\x1f\x72\xb2\xc7\xf4\x92\x1c\x00\xa5\x9f\x7a\xe7\x51\xe1\x76\ +\x69\x89\xdc\xbf\x34\xe7\xbc\x24\xe3\x7d\xd4\x3d\xb8\xb6\x00\xf7\ +\xc9\xae\x52\x6f\xab\xa4\x21\xeb\x7c\x00\xce\x24\xfc\x18\x4b\x37\ +\xed\x5e\x69\xd7\xef\x83\xe7\xbd\xae\xd3\x8b\xb6\x42\xa0\x1a\x41\ +\x23\xf6\xd4\xc3\x23\xc6\xdc\x62\x52\xfa\x02\xb2\x41\x55\x1f\x48\ +\xe6\x04\x29\x3b\x60\x5b\x2c\x6e\x2b\x2f\x4f\xd5\xe8\x2a\xb5\xd6\ +\xb8\x3d\x1e\xc8\xcb\x05\x6c\xf9\xfd\xb0\xfe\x6a\x7b\xfc\x4f\x2b\ +\x57\xa0\xbd\xe6\x52\x45\xd2\xf0\x76\xfe\x5f\x93\xba\x3f\x8c\x10\ +\xe3\x3f\xd9\x00\x4c\xd4\x01\x60\x5f\xd8\x56\x70\xdc\xbf\xef\xc5\ +\xa8\x87\x5d\xd1\xe9\xc5\xd5\x70\x51\x80\x39\x73\x7d\x5b\x85\x38\ +\x10\x09\x1d\xfe\x66\x6c\xff\xac\x1b\xf7\xa3\xbc\xdd\x74\xd3\x14\ +\x07\x04\x3c\xd8\x5f\x93\x36\x40\xd5\x13\x40\xd9\xaa\x59\x77\xcc\ +\xcb\x3c\x95\xbc\xaa\x49\xeb\x14\x3d\x19\xb3\x3d\x2e\xa5\xa5\x17\ +\xb4\xea\x4e\xa8\xde\xf4\x59\xd5\x67\xc2\x96\xbc\xdf\x66\x7f\x33\ +\xc5\x9c\x1b\x0d\xaa\xf1\x97\xf1\xcf\x1e\xbf\x22\x59\xfe\x3c\x3c\ +\xef\xaf\x75\x7a\xd1\x56\x08\x54\x23\xc8\x09\x5f\xff\xa5\x70\xe0\ +\xae\x13\x71\xaa\x57\x8c\xbe\x00\xd9\x33\x5c\xd5\x05\x30\xd9\xff\ +\xc7\x75\x41\xca\x1e\x1d\x50\x35\x3f\x3c\xf9\x5f\xae\x73\xb6\x4d\ +\xc6\x6a\xd7\x05\xda\x87\x8a\x19\x68\x9f\x53\xbe\xff\x76\xf9\x3f\ +\xd7\x26\xfb\xb3\xef\xbf\xce\xbd\x60\x9d\x3a\xc5\xff\x12\xfe\xa3\ +\x0d\x80\xe3\xaf\x30\x0f\xf1\x7e\x50\x6d\xb4\xfc\x7f\xf9\xc0\xb3\ +\xa3\x89\x37\x54\x22\x83\x0b\x6e\x14\x6b\x81\xf8\xa6\x29\x0e\x80\ +\x71\x5f\xda\xff\x64\x3d\x10\xc5\xa3\x72\xca\x46\x65\xb7\xec\xd4\ +\x8f\xd7\xf7\xdb\x74\xd2\x90\xca\x5b\x69\xf9\xb4\x5b\x75\x85\xab\ +\x32\xcf\x47\xd2\x00\x19\xeb\x8b\x34\x20\x19\x80\xb3\x17\xa8\x00\ +\x2d\xaa\xfc\xd3\xd6\x6d\x63\x7f\x26\xd8\xf6\xbf\xd9\x20\x05\x34\ +\xe0\xfa\xe1\x20\xd5\x08\xe2\x58\x00\xa4\xa7\xd2\x0e\x88\x32\x00\ +\xd9\x00\x65\x7d\xb0\xdc\x99\x3a\x40\x1b\x0d\x50\x7e\xc0\xbc\x67\ +\x5f\x95\x9f\x76\x9b\x1c\xe0\xd9\xfa\x8a\x67\xd0\x82\x96\x3c\xe6\ +\xd1\x00\x65\xfb\x97\xf9\x16\x8c\xff\x35\x1a\x49\x15\xff\x87\x7c\ +\x1f\x3e\xe3\x06\xca\x04\xc5\xc5\xf1\x78\xf9\x5b\xf0\x4e\x58\x6b\ +\x59\xe7\x00\x5c\x1e\xb0\x1f\x54\xd5\x3f\x0a\x0f\x22\xef\xc7\x5c\ +\x60\x90\x03\x86\xea\x6c\x07\x04\xf9\x3b\x1d\x90\xba\xbf\xd9\x26\ +\xff\x2b\xbe\xe1\xe1\xff\x52\x7b\x9f\xa2\x01\xed\x31\xe9\x2a\xd7\ +\x94\xea\x7e\x7a\x75\x27\xd4\xd9\x93\xfd\xc6\x49\xe6\xe7\x1a\x84\ +\x44\x03\xb0\xc6\x9f\x7f\xd2\x4d\x18\x9f\xf8\x18\x3c\xe7\xd3\xc4\ +\xc6\xf6\xfb\x9d\x0b\xbc\x1a\x41\x61\xdf\xec\x69\x8c\x07\xa2\x78\ +\x80\x00\xd7\x05\xa2\x9e\x81\x46\x89\x64\x80\x56\x4d\x00\x69\x67\ +\x71\x5a\x35\xbf\x14\x0d\xc8\xaa\xb8\xe9\x25\xeb\xbd\xb4\x0e\x40\ +\xab\x1e\x50\x3b\xef\x57\xf8\x5f\xf6\x68\x80\x47\xc7\xcf\x90\xff\ +\xd9\xff\xaf\x70\xbf\x4e\x76\xc0\x04\xd5\xff\x9e\x3a\x99\xc9\x50\ +\xfc\xdf\x98\xe8\x4c\xbd\x25\x0d\x6b\x0f\x5b\xb7\x0b\xf1\x3c\xc3\ +\x38\xfc\x0f\x29\xd0\xb5\x13\xfe\x59\xd2\x01\xb0\xbe\x5e\x96\xea\ +\xd9\x49\xfe\x2f\xfb\x02\xa9\x9e\xa0\x8f\xe3\x4d\xa1\xf2\x12\xfb\ +\x3f\x8f\xf6\x5a\x55\x6d\x75\x3e\xbd\x3a\x42\x32\xd6\x0f\xf1\xdf\ +\x91\x75\xa6\x64\x9e\x3f\xd6\xfa\x02\xde\xbf\x08\x78\xf2\xb0\x3f\ +\xf8\xca\xdf\x17\x44\xa7\x36\x25\x78\x35\x82\x22\x81\xe9\x87\x28\ +\x9e\xc6\x94\x32\x00\xf9\x02\x94\x3f\x90\x71\x5e\xd9\x00\xbd\x3c\ +\xc0\x36\xf9\x7f\xe9\xcf\xad\xbc\x40\xea\xb9\x7e\x36\x1d\xe0\x0c\ +\xfc\xcf\x2f\xa1\xd5\xad\x38\x23\xd5\x8f\x80\x78\xbf\xcc\xfb\x21\ +\xfc\x47\xfe\xef\x30\xff\xa7\xde\xc5\xe1\xe2\xb7\x83\xe1\x3f\x2d\ +\x8b\x0d\x1c\x7f\xad\x61\x55\x10\xdd\xef\x3c\xf7\xf5\x63\x83\xf3\ +\x6e\x74\x68\xce\x4d\x61\x3d\x00\x7f\x93\xf1\x5f\xf9\x01\x4d\xd5\ +\xcf\xaa\xda\x16\xa7\xd6\x16\xab\x1a\x2a\xb7\x7c\x53\x32\xbe\x57\ +\xe9\xfe\x6c\xf3\xaf\x78\x67\x2e\xaf\x6c\xfe\x5e\x2f\x8c\x5a\x2b\ +\xcf\x9c\x74\x7f\xac\xa1\x03\x3c\x27\x50\x7a\x24\x12\xb8\xed\xf3\ +\x62\xab\x78\x76\xa7\x17\xe8\x22\x01\x48\xac\x98\x18\x89\x7c\xf8\ +\x3f\x1c\xdf\xf4\xa9\x04\xc5\x04\x56\xe9\x1d\x51\x06\xe0\x58\x80\ +\xb2\x67\x0b\xcc\x79\x34\x40\xf9\x46\x5b\x71\xd4\xed\xbe\x80\xf6\ +\xf8\x4b\xcf\xb6\x2a\xed\x80\xb9\x25\x7e\xc0\xf6\x98\x80\x96\x0d\ +\xa0\xe5\x7b\xad\xc8\x1a\xcb\x35\xb2\xbf\x12\xfd\xa5\xb8\x9f\x1a\ +\xf1\x7f\x1a\xd8\xb3\x38\x3c\xf9\xf7\x40\x86\x5f\x2a\xd8\x77\xa4\ +\xe1\xf2\x81\x81\xad\x42\xfc\x74\x74\x70\xee\x64\xd2\x3f\xbf\x88\ +\xf8\x4f\x36\x40\x8c\x05\x36\x64\x0c\x00\xf5\xeb\xab\x2d\xcd\x5b\ +\x71\x5a\xb6\x69\x65\x93\x6a\xc9\xf7\xca\x4f\x55\x6a\xf3\x39\xcb\ +\xba\xdf\xb2\xa7\x0f\xe7\xf9\xd5\x5a\x35\xa6\x65\x9d\x8f\x14\xe0\ +\x43\xca\x87\x3a\x71\xe9\x07\xfb\x07\x5e\xf7\x76\x78\xbe\x74\xa7\ +\x17\xe8\x22\x81\x6c\xad\x7d\x62\xcf\xd4\x88\x31\x7d\xef\xa8\x1f\ +\xe3\xe9\x38\x26\x90\xe4\xab\xb6\x78\x80\x9c\x94\x01\x94\x9f\xd5\ +\xcb\xb7\xf4\xf4\xff\xf6\x7c\x8a\xd6\xa7\xf2\xab\x2a\x9a\x9b\xf3\ +\xfa\x03\x94\xce\xa0\x07\x4b\xf1\xdf\x93\xff\x25\xfe\x23\x9f\x67\ +\xbd\x9f\x6d\x80\xcc\xfb\x29\xfe\xca\x4d\x8d\x7c\xe4\x76\xc1\xfd\ +\x9c\xb7\x77\x78\x3d\x35\xac\x3d\xd8\xa1\xc1\xf9\xef\x66\x86\x16\ +\x1e\x4b\x63\x2c\x20\xd6\x03\x97\x71\x00\x39\x43\xd6\x03\xb1\x64\ +\xae\xaa\xb4\x53\xe5\x3d\x3f\x55\x4b\x1f\x55\xe7\x71\x5c\xe5\x00\ +\x29\xdf\xa0\x97\x33\xa8\xea\xdd\xb4\x74\xff\xb4\xac\x31\x9b\xb6\ +\xb8\xd7\x44\x2a\x80\x3d\xc9\xca\xa7\xc7\x23\xb7\xfc\x17\xa8\x27\ +\x3f\x23\x2e\x93\x7a\x53\x80\x34\x3f\x37\x16\xb9\xf9\x33\x23\xe6\ +\xec\x63\x69\xd9\xbf\x90\xf4\x2a\xe9\x07\x2c\x58\xb2\x1f\x52\xbb\ +\x0c\xe0\xa8\x5a\xab\x2a\x8f\xba\x74\xc6\xba\x96\x38\xfe\xb2\x3d\ +\x36\xa0\xcd\xee\xa7\x62\x32\x79\x94\x5b\xd7\x2a\xfe\xc7\xe3\xff\ +\x35\x2f\xfe\x82\xea\x7e\x48\x5f\x0c\xe1\x3e\xc5\x00\x14\x4f\x47\ +\x46\x3f\x70\x1b\xbc\xc6\x4e\xc1\x3a\x8d\x86\xcb\x0b\xfc\x61\xdf\ +\xd4\x67\xaf\xf0\x2d\x3c\x9c\xf1\xab\x5a\x20\x58\xc3\x0e\x6b\xd9\ +\x37\xa8\xa7\x25\xd7\xaf\xab\x79\x35\xec\x1e\x8f\xff\x92\x07\x79\ +\xb8\x2f\x75\xd0\xb0\xaa\x1b\xd2\x6e\x3b\xe4\xbe\x3e\x19\x2f\xd7\ +\xa7\x4e\x7a\x71\x9a\xfc\x63\xd8\x4b\xab\xf4\x50\x34\xf4\xa1\x2f\ +\xc0\x73\x45\xc4\xe5\x73\xde\xfa\x61\x99\x6f\x18\xb5\x6e\xbd\x3f\ +\x1a\x9c\x71\x13\xc1\x3a\xc5\x39\xab\x58\x20\xaa\x0f\x64\xcb\x7c\ +\x00\xcf\x16\x40\x72\x90\x67\x67\xf5\xea\x00\x2b\x3a\xd0\x9e\x5b\ +\xd9\x5e\x13\xdc\xc3\xff\xd6\x68\xb7\x01\x8e\x87\x5b\xfa\x98\xaa\ +\xd7\x4c\x76\x3f\xab\x55\xf7\x07\x73\x7f\x31\x16\x03\xf7\x27\x1d\ +\x2a\x3d\x60\x3a\xaf\x7a\x9b\xb8\x7c\xf6\x42\xc3\x52\xd8\xe7\x38\ +\xef\xb8\x35\x33\x78\xfb\x83\x69\x8c\x03\xf4\x73\xde\x4d\x0e\x46\ +\x3e\x58\x97\x39\x6b\x35\x96\x53\x65\x2e\x80\xca\x07\x5e\x12\x9b\ +\xe6\xe5\x03\x2f\xed\x2f\x95\x73\x5a\xb1\x3e\xdc\x4b\x56\xea\xff\ +\x18\x6b\x2a\xfb\xfa\x50\xcc\x4f\x80\x6b\xfe\x80\xec\xfa\xef\x5d\ +\xdb\x9e\x82\xe7\x6d\xb3\xda\xfd\xce\x0a\x58\x23\x28\x36\xfc\xde\ +\x4f\x45\x02\x73\x14\x53\x8b\xf9\x95\x98\x63\x45\xb5\x01\x31\x1e\ +\xd8\x64\x3f\x7d\x56\xc6\x03\xb4\x72\x82\x97\xea\xfb\x5e\x1d\x35\ +\x69\x6f\x69\xd7\x03\xd0\xee\x9a\x93\x75\x80\x95\x1d\x66\x89\x2d\ +\xd0\xf3\x03\xa8\xf8\xff\x32\xd7\x59\xf7\x86\xdc\x13\xf9\x99\x23\ +\xd9\xa0\xf4\x7f\x7b\xfa\xc2\xbf\xdf\xe9\xf5\xd3\xb0\x6e\x30\x30\ +\xb0\xff\x79\x7f\x9e\xf6\x2d\xdc\x8f\xf8\xdf\xe2\xff\x75\xee\x65\ +\x61\x72\xfe\xaa\xca\x5b\x53\x3a\x00\xf3\x26\x69\x97\x6a\xc3\x7f\ +\xae\x01\x50\x6c\xd9\x08\xbc\x78\x93\x1a\x9f\x27\xbb\xea\xf1\x9c\ +\xb4\x94\x31\xa9\xbe\xe7\x10\xda\xc1\xa6\x4f\xa5\xc7\x3e\x82\x75\ +\x66\xb0\xa7\xe7\x46\xce\xf5\x5d\x0d\x44\x77\x0a\xdf\x5b\x22\x81\ +\xca\x43\x29\x6b\xf6\x34\xd5\x08\x44\x1f\xa0\x59\x93\x79\x81\xaa\ +\x1e\x40\xc5\xf3\xb3\xa8\x38\x5d\xd5\x6b\x41\xd1\x55\xaf\xa7\x4a\ +\x5b\x0c\xa6\xf2\xb7\x78\x75\xc2\xcf\xf0\xcd\x16\x3c\x79\xa1\xe5\ +\x8b\xc9\x52\xed\x2f\xd5\x77\xbc\xea\xc9\xff\x64\x03\xa0\xb8\x0f\ +\x78\xbe\x70\x03\x6b\xae\x5e\xaa\x1e\xeb\x1a\x2e\x3d\xec\xec\x11\ +\x3d\x7f\x90\xf4\x95\xbe\x9b\xf2\x2f\xb8\x19\x3f\xe7\x02\x23\xff\ +\x57\xf8\x4f\xbd\xad\x51\xfe\xf7\x6a\xd7\xaa\x38\xb2\x33\xed\xd1\ +\x2d\x19\x95\x7e\x0e\xb7\xe5\x99\xb4\xc5\xfa\x67\x54\x8d\x39\x29\ +\xfb\xa7\x0c\xd2\xfb\x81\xee\x54\x1f\xb0\x8c\x97\x7e\x58\x5c\xa6\ +\xba\x26\xd6\x08\x1a\x8d\x7c\xf8\xeb\xc3\xfe\xbb\x1e\xc5\xbc\xfa\ +\x94\x21\xeb\xab\xc8\x3e\x01\x05\x4b\xe1\x7f\xb9\x2d\xe7\x5a\xd5\ +\x5b\x59\x2a\x5b\x15\x64\x3e\xb5\x87\xd7\x8e\x8a\xfd\x2f\x7b\xf2\ +\xff\xb8\x27\x17\x94\xbd\xdc\x4b\xd5\xaf\x85\x6b\x35\xb7\xf2\xff\ +\x55\x0e\x56\x46\xd9\x01\xcc\x2a\xe5\x00\x5e\x11\xaf\x7e\x09\x1e\ +\xfd\xb9\x9d\x5e\x3b\x0d\xeb\x06\x7d\xdd\x42\xbc\x38\xe3\xdc\x76\ +\x5f\x1a\xf1\x3f\x30\x43\xf8\x9f\xf5\x63\x0d\xfb\x86\x3b\x4e\xbc\ +\xbf\x06\xf8\x5f\x5f\xda\xcf\x4e\xc5\x03\x5a\x45\xaf\x9e\x2c\xe3\ +\x7b\x9b\x6f\x30\x5c\xf5\xfc\x7d\x5c\xd7\x4b\xf1\x7f\x19\xeb\x87\ +\xb2\x26\xd6\xf7\x09\xd4\x65\x9f\xea\xc9\x2f\xc2\xf3\xbc\x5a\x5c\ +\x86\xb8\x2f\x21\xd7\xb3\x35\xf8\xbe\x88\xbf\xf6\x00\xe6\x38\xa4\ +\x4d\x8e\xb1\xe2\xfa\x60\x15\x29\x5f\xb5\xec\xac\xec\x0b\x54\xf5\ +\x12\xd4\xba\x72\x2d\x05\xae\xa7\x50\xf2\xfc\x2c\xe3\x6d\x31\x18\ +\xaa\x36\xb0\xf2\x09\x8c\x87\x5b\x71\xd8\x05\xd9\x77\x81\xeb\xb4\ +\xb7\x6c\x00\x19\x19\x8f\x91\x96\x76\x80\xac\xc5\x3e\xc1\xc2\xd8\ +\xa1\xbf\x80\xe7\xce\x74\x7a\xe1\x34\xac\x1b\xa0\x8f\x2a\xb6\xa7\ +\xf7\x45\xc7\xb2\x81\x79\x37\x1b\x9c\xa5\x5a\x80\xc8\xff\x73\xbe\ +\x9a\x3b\x61\xd4\x65\x4f\xcb\x1a\xd5\xb0\x53\x35\x2c\x0b\xaa\x26\ +\x80\x8c\x07\xf6\x7a\x79\x78\xb1\x01\xaa\xbe\x87\x1c\x5e\x8c\x09\ +\xe3\x3f\xeb\xfe\x6c\xf7\x4b\x07\x2a\xee\x38\xe8\x13\x81\xc1\xdf\ +\x7d\xb3\xb8\xbc\x6b\xcc\x61\x4c\xe0\x55\x8e\x73\xf0\x5f\xc7\x8c\ +\xf9\x93\x49\xac\xb7\x82\xb5\xd6\x40\xf6\xc1\xfa\x40\xe3\x88\xfb\ +\x18\x13\xe8\xf9\x00\x55\xae\x74\xc9\xa3\x03\x05\x59\x3b\x2d\xa7\ +\xec\xad\x4e\x8b\xbf\xb7\xe2\xb0\x5a\xbc\x5f\xe5\x5e\x92\xdd\x4f\ +\xc6\x02\x65\xa5\x6c\xc6\x7d\x7f\xa4\x2d\xd6\x51\xb1\xd8\x6c\x0b\ +\xc4\x7a\x8c\x13\xe1\x9a\x3b\x36\xf2\xa7\x15\xa1\xfd\xfe\x97\x3b\ +\x98\x70\x2e\x3f\x93\x0e\x4c\x1f\x4f\x07\x66\xb9\x16\x20\x8c\x42\ +\xb0\x01\xf8\x0f\x32\x80\xc2\x7f\x55\xcb\xde\x6e\xf3\x07\x2a\x5f\ +\x80\xd7\x4f\x4a\xe5\xae\x56\x5b\xc3\x5e\x2a\xf3\x67\x2c\xf5\x59\ +\xa7\x5a\xf9\x19\xa3\x7c\x32\xe9\x1c\xba\x5b\x74\x8b\x6b\x05\xd5\ +\xd3\xbf\x6c\x41\xc6\x04\x76\xdf\x68\xfa\xa6\xef\x89\x61\xcd\x55\ +\xf4\xaf\x9a\x35\xd9\x2f\x50\xad\x6f\xc5\x5b\x5f\xae\x9f\x50\x65\ +\xf9\x5f\xc5\xfb\x87\x2b\xde\xb5\xea\xe7\xd1\x9e\x6f\xd1\xa2\x09\ +\x65\xe2\xfd\x9c\x83\x21\x75\x89\x48\x5b\x1e\x87\x27\xfb\xcb\x9e\ +\xe4\x26\xd3\xe7\x64\x10\xfb\x91\x4e\xb9\x85\x91\xca\xb7\xfb\x07\ +\x62\x58\x7b\x61\x23\xd6\x5c\xd6\xb0\x76\xb0\x7f\x7b\x97\x78\x47\ +\xde\x2c\x7d\x23\xe5\xbf\x93\x74\x80\xac\xbf\xe9\xe6\x61\x8c\x4b\ +\xfc\x1f\x37\x65\x6f\x6b\xec\x0f\x06\x32\x40\x81\xe4\xd4\x56\x2f\ +\x3b\x96\x25\xcb\xb2\x87\xa7\xec\xe7\x15\xaa\xb5\xe1\x7e\xd5\x8b\ +\xef\x55\x7e\x3f\xce\x8b\xaf\xbb\x57\x44\x8a\x0f\x1a\x81\xeb\x3e\ +\x01\xcf\x71\x55\xa7\x17\xe2\x12\x40\xff\x0e\xd0\xa7\x47\x42\xb7\ +\x7e\x66\xc4\xbf\x70\x2a\x25\x73\x82\x30\xd6\x9a\xfa\x05\xc9\x7e\ +\x81\xaa\x3e\x48\x7b\xce\x75\xb6\xcd\x1f\x90\x0b\x4b\x9b\x40\xa8\ +\x5d\x0f\x68\x8b\x07\x92\x63\x3c\xac\x62\xb4\xdb\x6a\x8b\x7a\xb9\ +\x05\x15\xd9\x77\xa9\x95\x8b\x41\x7a\x1a\xc5\x64\x4d\xba\x57\xc4\ +\x26\xff\x16\x9e\xf7\xe5\x9d\x5e\x30\x0d\xeb\x0e\x58\xd3\xf1\xb9\ +\xf6\xe0\xef\xfe\x75\xdc\xb7\xe0\xa6\x7c\x73\x6e\xc6\x37\xed\xe6\ +\x03\xd3\x6e\x01\x75\x73\xa3\xce\x34\xc0\x62\x3b\x40\x4e\xc6\x03\ +\x53\x4f\x7b\xc9\xe3\x15\xde\xb7\xf8\x7e\xcd\xcb\xef\xa5\xd8\x52\ +\xaf\xa7\x8c\xf4\xf5\x63\x5c\x31\xe5\xc3\x54\x17\x9f\x1c\x3d\x74\ +\x8f\x78\xe2\xe4\x96\x51\x8d\xa0\xbe\xee\xf1\x0f\x87\xfc\xa5\x07\ +\xb0\xf6\x4a\xc6\x68\xc8\xbc\x40\x8e\x0b\x2e\xa8\x5e\x81\x56\xab\ +\xee\x32\xc9\x01\xd4\xaf\x9b\xf5\x81\xf1\x48\xc5\xcb\x0b\x6e\xe5\ +\x58\x32\xae\x8f\x47\x54\x9f\xb0\x76\xdf\xa0\x8a\xdb\xac\xc8\x1a\ +\x63\xdc\xa7\x35\x2b\xeb\xff\x67\x3d\xfd\x9f\xeb\xbe\x25\x8d\xdb\ +\xdc\x54\xe4\xa6\xc3\xf0\xac\xcf\xe8\xf0\x7a\x69\x58\x7f\xc0\x9c\ +\x2e\xbf\x10\x7b\x6b\x09\x8c\x49\xf3\xcf\xba\xb9\xe0\x0c\xd5\x02\ +\x29\x80\x8e\x3a\x1e\xac\xbb\x13\x56\x83\x7a\x59\x16\x64\x5d\x70\ +\xea\x11\x24\xf1\x3f\x63\x55\x3c\x1d\x9f\xe3\x7a\x2b\x5e\x5e\x6f\ +\x46\xfa\x92\xa8\x9f\xa4\x2d\x73\xfc\x64\x6d\x6f\xcc\x83\xb9\x2a\ +\xd2\x38\xe1\xf7\xfd\xf1\xac\xe0\xda\xd2\x4f\x94\xdc\xb2\x2e\xd0\ +\xb7\x5e\x3d\x16\x9e\xfc\x22\xe6\x5d\xa6\xad\x19\xaa\xbd\x8e\xb9\ +\x81\x14\x6f\xa5\x74\x2c\xa9\x67\xe5\x65\x9d\x40\xd2\x03\x54\x1d\ +\x1f\xd9\x83\xb9\x55\x73\x1d\xf1\x9e\x07\xdb\xfd\xca\xad\xfc\x6b\ +\x19\x9b\x9d\x0d\xb1\x4d\x96\xf0\x3f\xa4\xfa\xfd\xb5\x6a\xb0\x65\ +\x65\xef\x3f\xec\xff\x7e\x05\xe8\xfe\x83\x83\x2f\x78\xab\xd8\x9c\ +\xb9\xd7\x1a\x56\x06\x68\x03\xec\xd9\xb9\x55\x5c\x1f\x75\x4a\xc7\ +\x52\x81\x23\xc0\x87\x66\xa9\x1e\x78\x3e\xd8\x60\xfe\x8f\x03\x68\ +\x40\xc1\x6a\x32\x0d\xb0\x65\x5e\x80\x87\xf3\xb2\x77\x17\xf5\xed\ +\xac\x49\x39\x5f\xc5\x95\x2a\x5f\x9f\xa4\x03\x74\xc6\x31\xcf\xa8\ +\x0c\xb2\xff\xa1\xef\xc3\x77\xbf\x08\xc6\xae\x0e\xaf\xc1\x25\x05\ +\xc0\xff\x71\xc7\x78\xd9\x0d\x63\x92\xff\x67\x54\xdd\x55\xcc\x0d\ +\x94\x39\x17\x2a\xe6\x92\x6d\x01\x2d\x7b\xc0\x12\xdf\xab\xd2\xf7\ +\xc3\x4a\xdf\x6f\xcb\xb7\x6e\x8f\x1b\x54\xb1\x18\x61\xd5\x6f\x5d\ +\xf6\x5c\xf5\xfa\x2e\xd6\x69\x60\x0e\x46\x26\x54\x7e\x2c\x3f\x56\ +\xbb\x1f\x1e\xf3\xb7\x84\xae\xf7\xfd\x44\x82\x6b\xed\xc1\xd7\x7c\ +\x32\x11\xbc\x13\xce\xe4\x3c\xd9\x01\xb1\x26\x78\x5e\xea\x00\x18\ +\x0f\x3c\x0e\x78\x4b\xe7\xd3\x92\x3c\x1c\x87\xcd\xb9\x3c\x2a\xa7\ +\x47\xe5\xf5\x65\x65\x1c\x39\xe3\xbd\xea\x2b\x57\xa3\xfa\x62\x69\ +\x7f\xd9\x9d\x70\x4a\x3f\xcc\x87\x6e\xfa\x1b\xc1\x7d\xa5\x9e\x68\ +\x36\xa6\x5d\xbd\x42\xbc\x24\xe4\xaf\x1c\xa3\x9a\x4b\x68\x0b\xc4\ +\x5a\x81\xf0\x73\xc1\x56\x3d\xd8\x54\x0d\x76\x89\xff\xb2\x27\x3b\ +\xd1\x03\xd5\x87\xbd\x2d\xc7\xaa\x20\xfb\x32\xa3\x6c\x80\x76\x41\ +\xcf\x3e\x28\xff\x1d\xf5\x5a\x0a\x57\x3c\xde\xef\xe1\x3f\xda\x69\ +\x08\xff\x31\xff\x92\xe4\x8a\x47\x33\xb1\xc9\xaf\x80\x34\xf6\xbc\ +\x4e\x2f\x92\x86\x4b\x0a\xe9\xed\x62\xeb\xbb\x12\x56\xe3\x54\xce\ +\xba\x73\x31\x0b\xfa\x7f\x0e\xce\x65\xde\x98\x76\x0b\x46\x93\xec\ +\x7f\x79\xf4\x57\x99\xaa\x47\x58\x83\xfb\xf4\xc8\x5e\x9d\x19\xec\ +\xd9\xab\x6a\xf8\x9a\xaa\x7f\x6c\xcd\xcb\x2b\xc5\x3c\x3f\xcc\x7d\ +\xc3\x9e\x18\x05\xab\xb6\xf8\x94\xb1\xc9\xaf\x8a\xad\xe1\xff\xd3\ +\xe9\x97\xee\x14\x00\xc1\x7b\xda\xe8\xf0\x27\x66\x31\xef\x2a\x03\ +\xf2\x56\x3a\xc8\x72\x00\xda\x45\xb2\xb2\xff\x4a\xce\xae\xcb\xda\ +\x0b\x55\x90\xcb\xeb\x5e\xff\xc0\x42\xa4\xe6\xc5\x61\x23\x8e\xa3\ +\x7f\xaf\x20\x6d\x03\x44\x0f\xda\x6b\x2d\x2a\x9f\x8c\xe2\xff\xaa\ +\xef\xaf\x2d\xe5\x7f\x85\xff\x16\xd7\x2a\x1f\x1f\xae\xfd\xd8\x30\ +\x6e\xba\x0b\x1e\x50\xeb\xfe\x4f\x30\x00\x05\xfc\x17\xc6\x9c\xf7\ +\xfc\x5b\xc6\xfa\xd4\xa3\x59\x63\x8e\x6a\x82\x92\x0c\x80\xc3\xc0\ +\x7c\xa0\x26\x9c\xc1\x69\xf2\x5b\x73\x8f\xae\x26\xf1\x2d\xf2\xe7\ +\xc9\x1a\x17\x9c\xcb\xdf\xe0\x3c\x72\xe0\xfd\x14\xe3\x87\x7c\x1f\ +\xe9\x04\xe5\x14\x54\xdc\x09\xbb\xfc\x3d\x33\xf0\x5b\x37\xc1\x57\ +\x06\x3b\xfd\xce\x1d\x84\x67\xc7\x42\x6f\xfa\x3c\xd6\x5c\x4a\x62\ +\xde\x25\xac\x2d\xca\x01\x68\x0b\xc8\x1b\x75\x59\x87\xad\xce\x71\ +\xb8\x0e\xd3\x81\x3c\xf5\x65\x56\x3d\xd9\xdb\xfa\x32\xcb\x58\x81\ +\x82\xec\xa7\x9e\x97\x35\x3e\xf2\xf2\x5a\xf5\x59\xce\x38\xaa\xe6\ +\x7f\x99\x78\x7f\x5a\xe6\xff\xaa\x9e\x8b\x29\xa0\x3f\xf9\x48\xe3\ +\x21\xd3\x7e\xef\x3c\xe0\xff\xd3\x3a\xbd\x40\x1a\x2e\x39\x5c\xd1\ +\xd3\xe5\x7c\x2c\x63\xd7\x8f\xa7\xcd\x19\xee\x07\x84\x71\x2a\x98\ +\x0f\x64\xb0\x8e\x9a\xb7\x9a\x12\xff\x25\xee\xe3\xb9\xf5\xfa\xc5\ +\xc2\xcf\xd4\x37\x0a\x6b\x48\x34\xb8\x96\x94\x21\xed\xfd\x16\xdf\ +\xe3\x8a\x70\xc9\x7d\x52\xf8\x23\x68\xf3\xfb\x25\xf1\xc4\x93\xfb\ +\xdb\xe1\x1a\x63\xf0\xe7\x3f\x1d\x0b\xcc\xbb\x31\x5f\x9d\xf2\x02\ +\xd3\xe6\x2c\xc8\x02\x58\x7f\x81\x07\xd1\x00\xd4\xb7\x1c\xee\x85\ +\x4a\xf5\x18\x65\x4d\xe6\x7c\xa8\xde\xca\x11\xf0\x72\x05\x24\xbe\ +\xcb\xd8\x3e\xc6\x7d\xf6\xcd\xe4\xc3\x1c\xeb\x83\x3d\x3f\xd3\x16\ +\xe2\x7f\x8d\x06\xd7\xff\x00\xb9\x03\xfb\x2e\xc2\x1e\x25\xac\xe9\ +\x13\xb1\xc8\xad\xff\x0c\xcc\xe0\xe7\x3b\xbd\x40\x1a\x2e\x39\x18\ +\xbd\xdd\xe2\xc5\xf1\x48\xf1\xbe\xb8\xb1\xe0\xa6\x55\x3c\x70\x80\ +\x73\x82\xf9\x4c\x36\xd8\x66\x85\x03\xe9\x80\xd5\xa4\x9a\xfd\x14\ +\xd3\x8a\xf5\x3b\xb1\x67\x84\x51\xf7\x7a\xc8\xe2\xc8\x28\xba\x11\ +\x2c\x9f\x7a\xd2\xe8\xd4\xbd\xa2\x67\x0c\x73\xca\x9e\xe8\xfd\xa4\ +\x27\xba\x45\xef\xcd\x71\xe3\x08\xd0\xcb\x19\xe0\xbd\xd3\xc4\xff\ +\xb1\x0e\x6b\x06\x6b\x30\x10\x0d\x68\x70\x3f\x06\xea\xc9\xc0\x74\ +\x00\x07\xf7\x49\xad\xb5\xd9\x05\x6a\x32\xae\xbf\xea\x8d\xac\xa4\ +\x05\xaa\xcf\x27\x0d\x94\xf5\x43\xad\xda\x6b\x5e\xdd\x6f\xa9\xbf\ +\x65\x81\x76\xa7\x9c\xe6\xe9\xd4\x48\xe3\x01\xc0\xff\x97\x08\xae\ +\x17\xaf\xe1\x89\x03\xbd\xb0\xe1\x99\xc0\xee\x17\x7e\x2e\x69\x1d\ +\xf9\x61\xc6\x9c\x77\xd3\x06\xd7\x05\x42\x7b\x60\xd6\xe0\x3e\xe1\ +\x58\x23\x28\x6d\x4e\x93\xce\xca\x72\x2b\x9c\x1b\xb8\x26\x3a\x60\ +\x29\xfc\xe7\x9f\xb3\xf6\x34\xd5\xbc\x28\x18\x15\xf7\xaa\x48\xf5\ +\xc1\x91\x91\xb7\x63\x3d\x89\x27\x75\xfa\x45\x37\x00\x84\x7a\x84\ +\x78\x25\xf5\xdd\xb1\x6f\xa7\xf5\x4b\x5b\xd3\xb2\x0f\x03\xd0\x5d\ +\xaf\x16\x23\xe0\xbc\xcd\xb2\x56\x46\xd1\x01\xc2\xff\x3a\xe5\x10\ +\xe7\x48\x7e\xaf\x32\x6e\xab\x78\x0c\xa7\x26\x3f\x97\xd6\x5c\x61\ +\xdb\x6c\x45\xe6\xf9\x71\xbf\x0f\xb6\xcf\xa2\xed\x86\xed\x37\x23\ +\xfe\xb2\x9b\x0c\x37\x5c\x40\x7d\xac\xbd\x3c\xda\xe9\x45\xd2\x70\ +\xc9\x61\xff\x4e\x21\xde\x9a\x09\x95\xbf\x1e\x33\x3e\x09\x7c\x69\ +\x46\xd6\x05\xc2\x73\x39\xcd\xb8\x4f\xbc\x6a\x86\x3e\xb1\x57\x57\ +\x0a\xf1\x9f\x68\x00\xd6\xb8\xaa\x53\xdf\x1b\x1c\x29\xb2\x17\x34\ +\xc9\x6e\x78\x85\x53\x39\x31\x3e\xfc\xb1\xaf\xc1\xfd\x7f\x5a\x5c\ +\x26\xb5\x7d\x2e\x12\xd0\xb7\x76\xd5\x48\xf0\x63\x0f\x0e\xfb\xef\ +\x38\x9d\x30\xe7\xdc\xa4\x0d\x6b\x4d\x34\x76\x86\x68\x00\xc6\x61\ +\x52\x5f\x46\xb3\xe9\xd9\x5c\x32\xaa\x96\xb8\xb4\x0f\x2a\x79\x20\ +\xeb\xb4\xf9\x63\xed\x36\x3a\x60\xab\x18\x8d\xa5\xfe\x59\x55\xf3\ +\x07\x6b\x7d\x60\x9d\x7f\xc4\xff\x24\xd0\x99\x18\xd6\x61\x8b\xcc\ +\xb8\xdb\xba\x53\x4d\x78\x3e\xad\x03\x3c\xf1\x60\x07\x28\xe5\xd7\ +\x8c\x45\xfe\xcf\x67\xa2\xc6\xbc\x9b\x84\x73\x98\x0c\x4c\xcb\xda\ +\x20\x4d\xe2\x4f\x28\x0f\x20\xee\xa7\x02\xd3\x2d\x1a\x80\x7d\xfb\ +\x0c\xb6\x01\xa4\x08\xf7\xeb\xa4\x1b\xa0\xaf\x60\x22\x54\x76\x9f\ +\x14\xbd\xed\x9f\x45\xd7\xe8\x1f\x09\x8e\xf3\xbb\x5c\x73\xfc\x56\ +\x02\xb8\x06\x43\xfd\xdb\xc2\x87\x62\x81\xc9\x07\xc7\x10\xff\x49\ +\x66\x9a\x96\x32\xd7\x34\xc7\x62\x07\x9b\xe4\x17\xc8\xc8\x5e\x62\ +\xac\x0b\xa8\xc1\x75\x53\xb2\x32\xaf\x82\x62\x30\x9c\xba\x8c\xc5\ +\xe0\xb8\x0c\xe5\x9f\xc5\xf8\xab\x5c\xa8\x21\xe3\xb0\xeb\x84\xff\ +\xc9\xb6\x7e\xbf\x09\xac\xc3\x80\xdf\x01\xff\x26\x01\x34\x63\x60\ +\xc7\x53\x6f\x14\x4f\x8c\x98\x6c\x0d\x4b\x01\xe3\xf0\x86\xba\xc5\ +\x8e\x9b\xc6\xcc\xf2\xf7\xe3\xc6\x9c\x9b\x80\xb3\x88\x36\x6a\xec\ +\x15\x8e\xf5\x41\xd2\xfe\x3a\xd3\x80\x00\xcb\xfe\x34\x17\x6c\x70\ +\xbf\x78\x03\xed\x01\x75\xd2\x0b\xd0\x96\x95\x0d\x01\xfe\x47\xa6\ +\xbe\xbd\xdf\xf7\x1a\xb4\xf7\x63\x0d\xf9\xcd\x58\xcf\x7f\xbd\x00\ +\xf5\xeb\x9f\xb6\x77\xbf\x7c\x2e\xe2\xab\x7e\x27\x1c\x9c\x75\xe3\ +\xf6\x2c\xe1\x7f\x06\xf4\x81\xac\xc1\xf6\x17\xac\xc9\x94\xc7\x6b\ +\xb4\xc1\x98\x6d\x76\x01\xab\x41\xfd\x1a\xd0\x6e\x87\x23\xeb\x48\ +\x7b\x0b\xda\xf3\x6d\xb6\x1d\x62\xfc\xb5\xf2\xc9\xaa\x7a\x0b\xc8\ +\xeb\x53\x16\xd7\xfb\xc7\x3c\xff\x38\x0e\xd0\x03\xe2\x06\xc7\x68\ +\xe0\x5c\x5f\xff\x04\xd2\xea\xcb\xaa\x0e\x93\x86\xe5\x43\x4f\x8f\ +\x78\x65\x76\xf4\xe6\x2f\x24\xad\x3b\xe0\x9c\xcc\x02\x7e\x83\x1c\ +\xe0\x67\xb9\x9f\x64\x00\x94\xf7\xfd\x75\xee\xd5\x8d\xb2\x80\xc1\ +\x03\xed\x02\x59\x6b\x16\xce\xef\x0c\xc5\x08\x8c\x3b\x8d\x87\xd2\ +\x91\x1b\x6b\xdd\xdd\xe2\xf9\x9d\x7e\xa7\x0d\x0a\x3b\x77\x6e\x13\ +\x2f\x1c\x1e\xba\x6e\x66\x38\x50\xf9\x4e\xd4\x3f\x0f\xf8\xc7\x7e\ +\x00\x92\xfb\x91\x16\x20\x0d\x30\xd8\xfe\x9a\xb7\xd8\x06\x93\xb5\ +\x78\x9e\x62\x07\xf1\x77\xd2\x26\x8b\xfd\xd3\x32\xf6\x34\xd3\x04\ +\x94\xc3\x30\xcf\xca\x96\x34\x19\x65\xb3\x60\x83\xec\x7d\x29\xe2\ +\xf7\x5c\xe7\x23\x49\x3d\x3f\xe0\xe7\x60\x85\x64\x8a\xb8\x79\xd8\ +\xb5\x02\xbf\xf1\x16\x78\xb6\xe1\x4e\x2f\x8e\x86\x8e\x41\xb4\x57\ +\x88\xb7\x8c\x18\xcd\x47\x12\xc0\x97\x12\x41\xd6\xe7\x31\x6f\x1d\ +\xe9\x00\xd1\x02\x83\x6b\x06\x27\x49\xff\x9f\x26\x5b\x41\x9a\xec\ +\x57\x18\x2f\xd4\x5c\x1c\xb7\xeb\x27\x13\x89\xf7\xd7\x04\xe7\x91\ +\x68\x5b\xf2\xf9\xe1\x69\x03\x62\xdb\x9f\x1b\xfb\x6e\xfa\xdb\x61\ +\x5f\xf3\xc1\xd1\xc0\xdc\xe9\x18\xac\x3b\xfa\x02\x72\x20\x07\xe4\ +\x61\x5d\x0b\x18\x8f\x01\xb4\x21\x2b\x6d\xaf\x48\x63\xd1\x56\x90\ +\x0a\xb2\xbc\xc0\x3e\x59\x8c\x29\x9e\x26\xba\x9c\x36\x66\x78\xbf\ +\x82\xac\x9f\x21\x6d\x26\x1d\xcd\xa8\x91\x6d\x96\xfa\xfb\x19\x55\ +\xf2\xd1\x92\x2d\x20\x58\x21\xfd\x20\x6e\x1d\x76\x13\xc3\x37\xdc\ +\x09\xcf\xf4\xab\x9d\x5e\x14\x0d\x9d\x03\x50\x04\x9e\x1f\xb1\x4b\ +\xff\x35\x1c\xfc\x94\x3b\x1a\x9c\x73\xe3\x01\xb4\xed\xe3\x79\x03\ +\x9d\x00\xfb\x06\x22\x5d\x20\x5a\x30\x43\x9f\x68\x0f\xc8\x9a\x54\ +\x43\x60\x31\x67\x37\x4f\xa4\x43\xb7\xdc\x0d\xb7\x79\xba\xd0\xf6\ +\xbe\xe5\x82\xd1\xd7\x2d\xae\x0d\xf4\x3e\xef\xb3\xa1\xbd\x1f\xff\ +\xef\xe8\xd0\xec\x0f\xe3\x81\xb9\xc7\x32\x14\x87\xcd\xf9\x17\xe3\ +\xf6\x0c\x7c\x22\x0d\x50\x72\x18\xf6\x17\x9c\x95\x36\x59\xb6\xcb\ +\xa0\xec\x90\xc4\xbd\xf2\x4b\xda\x8c\xf4\x00\x70\x3f\x21\xfd\xb4\ +\x29\x69\xa7\x49\x9a\x75\x1e\x06\xc7\x69\x61\x6f\x92\xac\x53\x5e\ +\x4c\x87\x6b\x27\x1c\xe7\xfd\x93\xf0\x3c\xcf\xea\xf4\x82\x68\xe8\ +\x28\x24\x77\xf6\x16\x4a\x69\xec\xc9\x1d\xba\xcb\xcd\x84\x80\x06\ +\x80\xcc\x8f\xf6\x80\xd8\x10\xd6\xb2\x9e\xa3\x5e\xbd\xa4\x1b\x00\ +\x2d\x48\x05\x80\x4f\x81\xec\x99\xb3\x2b\x27\xf3\xe1\x8f\xdd\xdd\ +\xdb\x9b\xc0\xda\x91\x58\x3f\x46\xdb\xfb\x96\x07\x18\x0f\x85\xeb\ +\x15\xef\x17\xe2\x37\xc3\xfb\x7e\xb3\x1c\x1b\x3c\x7c\x7f\x7a\x08\ +\x71\x79\x96\xea\xb3\xa2\xfc\x9e\x73\xe6\x28\x66\x00\x7d\x2b\x69\ +\xc9\xf3\x93\xa4\x83\xcd\x72\xcc\x86\x8c\x25\x48\x05\x25\xff\x27\ +\xdb\xec\x34\x7f\x2a\x39\x8e\x64\x01\xb6\xd1\x52\xec\x9f\x51\x86\ +\xcf\x49\x37\x1f\x29\x9d\x48\x58\x93\xff\x04\xcf\xf0\x02\x71\xf9\ +\xd5\x61\xd5\xb0\x32\xd8\x8d\x3e\xea\x90\xff\x9d\x77\x47\xf6\x37\ +\x4f\x46\xe0\x3c\x8d\x84\x66\xdd\x31\xc0\xf1\x31\x38\x73\x71\xe0\ +\x43\x71\x38\x47\x71\xec\xd9\x4b\xe7\x0a\xf9\x48\xf9\x87\x49\xf3\ +\x63\x47\x45\xd7\x28\xd6\xf2\x0b\x09\x8d\xfb\x2b\x05\xca\xc7\x84\ +\x61\xc1\x78\x0a\xfc\xf0\xd2\x3e\xe1\x7b\xdd\x9e\xad\x4f\x7b\xd3\ +\xee\xed\x4f\x7d\xf5\xfe\xdd\xff\xeb\xd5\x81\xc1\xf7\xbc\x6b\xc4\ +\x98\xfe\x6a\xdc\xb8\xf3\xa1\x8c\x05\xf8\x0e\xfa\x3f\xe2\x3f\xc9\ +\x62\x41\xd5\xcb\x11\x69\x00\xd3\x64\x92\x03\xd0\x86\x4b\x72\x80\ +\xa4\x01\x48\x23\x28\x5e\xb3\x4e\x71\x81\x85\x91\xf2\xa3\x13\xa1\ +\xc3\xdf\x4c\xc7\x6e\x40\xbe\x8f\xb8\x6f\x76\x74\x15\x34\x6c\x14\ +\xc8\x6c\xeb\x12\x6f\xea\x15\x57\x7e\x6c\xc7\xae\x9b\x1b\x83\xfe\ +\xea\x91\x48\xa0\x76\xd7\x58\xb0\xf9\xd9\x68\xb0\xf9\xc5\x44\xa0\ +\xfe\xaf\xa0\x5b\xde\x13\x1b\xaa\x7d\x2b\xb6\xaf\xfa\xff\x99\x83\ +\xef\xaf\xc2\xf1\x7d\x85\x78\x62\xe6\xf5\xad\x07\x60\x4d\x34\xf4\ +\x99\xda\x82\x63\x06\x70\xa4\x7b\xc5\xd6\x03\xc6\xe0\xe4\x3f\x8e\ +\x05\x66\x4e\xc6\x51\x0e\x23\x3e\x3f\x43\x9f\x89\x00\xda\x63\x98\ +\x0e\x10\xdf\x47\xdc\x27\x3b\x00\xd3\x09\xd4\x0d\x54\xdc\x76\xce\ +\x29\x9e\x4c\x85\x6f\xbd\x67\xcc\xb8\xe9\xc8\xce\x3d\xcf\x3f\xb0\ +\x75\xab\x78\xa6\xd0\x7c\x5f\xc3\xd9\xc1\x00\x7e\x94\x03\xa4\xfe\ +\xc9\x1d\xa2\xfb\x17\x77\x88\x2b\x5f\xde\xd5\xf5\xf2\xb7\xec\xe8\ +\xfd\xa3\x9b\x7a\xc4\xb5\x87\x85\xd8\xfb\x27\xf0\x6f\xc6\x61\xf4\ +\x75\xf8\x39\x2f\x77\x40\xba\x1a\xdc\x26\xc4\x9f\xf9\x7c\x1f\xf9\ +\x8f\x90\x7f\xe1\xa1\x61\xff\xed\x6e\xd4\x37\x07\xa3\x46\x74\x20\ +\x89\xbd\x46\x80\xf7\xa7\xcc\x79\x37\x0e\x72\x5b\x1c\xe9\x01\xd0\ +\x02\xd4\xdd\x50\x5e\x00\x7d\xff\x64\xd2\x2e\x3f\x18\x33\x3f\xfa\ +\x6f\xa6\x4d\xb9\x58\x3f\x25\xf4\xbe\x69\x38\x3f\xe0\xb9\xc3\x3e\ +\x90\xc8\x93\x90\x0f\xa1\xae\xba\x4f\x30\x7f\xf2\xc3\xd8\x2b\xe7\ +\xb7\x74\xea\x01\x9f\x20\x80\xeb\x8b\x7b\xb1\xbf\x7f\x9b\x78\xb1\ +\x15\x7c\xd7\x5c\xd2\x42\xbd\xec\x93\x6e\xca\x9e\x07\x19\x00\x73\ +\xfb\xe6\xa4\xdf\xb6\x09\xb8\x0f\x78\x6f\xcd\x91\xed\x3f\x13\xae\ +\xbb\xd9\x48\xd1\xcd\x98\xc5\x7b\xc6\x46\x3f\xf8\x89\x9e\x1e\x8a\ +\xc5\xc6\x3c\xcc\x3e\xa1\xf7\x4d\x83\x86\xcd\x06\x46\x97\x10\xbf\ +\x17\xd8\xf7\x86\x7b\x9d\xfd\xa5\x53\x91\xa1\xe9\xef\x8f\x99\x8d\ +\xef\x8c\x19\xd5\x87\x47\xcd\xda\x62\x14\x63\x7a\xed\x86\x1b\xa7\ +\x9e\xde\xd5\x93\x19\xa3\x7c\x77\xd4\xbc\xe1\x56\xd1\x73\x35\xd6\ +\xf6\xc4\xf8\x3e\xa4\xe3\xda\x46\xa3\x41\xc3\xe6\x05\xb4\x0d\xfc\ +\x62\x4f\xb7\xf8\x8d\x6d\xdd\xe2\x05\x30\x7e\x79\x5b\xb7\xff\xd7\ +\xfa\x7b\xaf\x79\xc9\x8e\xde\xd7\xbf\x61\x67\xef\xc1\xeb\xb7\x6f\ +\x7d\xdd\xbb\xbb\xc4\x53\xdf\x21\x38\xef\x3a\x2a\x74\x6d\x2f\x0d\ +\x1a\x9e\x08\x80\x76\x58\xcc\xe3\x4b\xc9\xa1\xe3\xb0\x34\x68\xd0\ +\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\ +\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\ +\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\ +\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\ +\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\ +\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\ +\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\ +\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\ +\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\ +\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\ +\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\ +\x1a\x34\x68\xd0\xa0\x41\x83\x86\x4d\x06\xae\x06\x0d\x1a\x9e\x60\ +\x70\xc2\x3d\x7a\x51\xf3\xc7\x85\xb8\xfa\x7c\xf3\x40\x58\x06\xce\ +\x33\xbd\x08\xf3\xdd\x17\x98\x17\x07\x56\x3f\x7f\x42\x9c\xff\x01\ +\x8e\x5f\x60\xfe\x18\xce\x6f\xbf\x7c\xe7\x8f\x6e\xf0\x79\xb1\x9c\ +\xf9\xf3\xec\xdf\x25\x9f\x7f\x6c\xdb\x96\x8b\x9a\x3f\x7e\xfe\xf9\ +\x45\xb1\x74\xfe\xe8\x19\xf3\xc7\x45\x97\x38\xdf\x3c\x9e\x87\xab\ +\xdd\xa5\xd7\x17\x3d\xdf\xbd\xb2\xf9\xed\x2b\x9d\xdf\xbe\xfc\x79\ +\x7c\xdf\x2d\x1b\x68\xfe\xcc\xf5\xbf\xd0\xfc\xb1\xb3\xcd\x9f\xf1\ +\xfe\x62\x9d\xe7\x57\xfc\x7c\x2b\x98\x3f\xee\xcd\x7f\xa1\x35\x1f\ +\x3a\xcb\xfc\x89\xee\xd6\xfc\x81\xb3\xcc\x1f\xdb\x72\xd6\xf9\x13\ +\xea\x75\xe4\x31\x3c\x7a\xc6\xfb\x2e\x67\x1e\xef\xbc\x28\x9f\xfa\ +\x5c\xf3\x27\xe4\x63\x9c\x39\xbf\x28\xe7\x8f\xcb\x5f\xaf\x76\x5e\ +\xe1\xd1\x99\xef\xd7\x3e\x1f\x5a\xe5\xbc\x90\xbf\x1f\x50\xf3\x57\ +\x5f\x60\x3e\xd4\xf6\x80\x2b\x98\xdf\x7e\x9e\xf9\x83\xf2\x39\xcf\ +\x35\x2f\xda\xee\xb3\xa6\xf3\x07\x69\x3d\xe8\x35\x71\x5d\xce\x5c\ +\xff\x25\xf3\x57\x5f\x60\x3e\xb4\xea\xf9\xc7\x68\x7e\xe0\x2c\xf3\ +\xc7\x68\xfe\x78\xfb\xfc\xf6\x33\xe7\x43\x72\x7e\xfb\xe3\xe9\xc9\ +\x9a\xce\x77\x9f\x63\x7e\x60\xe9\xfc\xe3\x9e\xff\x7c\xf3\xc7\x69\ +\xfe\x98\x90\x1b\x24\x56\x3a\x7f\xac\x7d\xfe\x80\xab\xf6\x71\x8d\ +\xe7\x8f\xf2\xfc\xd5\xe7\x7a\x3e\x39\x3f\x70\xc1\xf9\x73\xbc\xbf\ +\x9c\xdf\xfe\xf8\xf9\x13\x34\x7f\x70\x79\xf3\xdd\x67\x9f\xdf\x7e\ +\x81\xf9\x6e\x3e\x9e\xb8\xb3\x2b\x9e\x7f\x4c\xcd\x6f\xbd\xc0\xfc\ +\xb6\xd6\x7c\xfb\xfa\xd2\x8a\xe1\x3f\x1a\xc0\x67\x3c\xf0\xf8\xf9\ +\x83\x6a\x1e\xa7\xae\x5e\xfd\xfc\xd5\xc7\xce\x3e\x8f\xbf\xc1\x97\ +\xbc\x1a\x77\x22\x74\xf6\xbf\x5f\xb3\xf9\x81\x73\xcf\x1f\x38\xcf\ +\x3c\x4e\x1d\xa0\x95\x3c\x2a\xce\xc0\xbf\xa5\xf3\x5b\x56\x3e\x8f\ +\xbf\xf9\x03\x9c\x5f\x3c\xff\xbc\xab\x0e\xc1\xb9\xe6\xdd\xd5\xcf\ +\x3f\x9d\xe6\x8f\x9e\x73\x5e\x9c\x67\x9e\x49\x0b\xd2\x96\x63\xe7\ +\x9b\xdf\x7e\xf1\xf3\xc7\x57\x35\x7f\x82\x7f\x39\xe0\xfd\xb4\xea\ +\xf9\xc7\x2e\x30\xbf\xb8\xaa\xf9\xc7\xbc\x79\xf7\x62\xe6\x43\xcb\ +\x98\x3f\x78\x9e\xf9\x03\x17\x98\xc7\x1f\x8f\x5d\xe4\xfc\xf1\xd5\ +\xcc\x2f\xb6\x7e\x77\x62\x6d\xe6\xc5\x2a\xe6\xb7\xb7\x3d\xea\xaa\ +\xe7\x17\x2f\x30\xef\xae\x66\x9e\x77\x6d\x7b\xeb\xc7\x55\xcd\x0f\ +\xb4\xcd\x2f\x5d\xbf\x76\x91\xed\xe8\x6a\xe6\x8f\xb5\xe6\x8f\x2f\ +\x6b\xbe\xfb\x2c\xf3\x57\xd3\x8f\x27\xda\xd6\x62\x35\xf3\x8f\x9d\ +\x73\xfe\xc0\x05\xe6\xdd\x73\xcf\x1f\x5f\xc6\xbc\x7c\x65\xde\xcb\ +\x81\x55\xcf\x9f\xd5\xfc\x71\xbc\x6d\xc9\x0e\x9e\x65\xfe\xb1\x33\ +\xe7\x43\x8f\x9f\x57\x7f\x72\xf4\x2c\xf3\x8b\x6b\x30\x1f\x6a\x9f\ +\x1f\x78\xfc\xfc\xd5\xe7\x99\x77\xd7\x60\xfe\x80\xfc\xf1\xd8\xd9\ +\xe6\x8f\xb6\x4e\xe4\x59\xcd\x8f\x6d\xf3\x8f\x9d\x6d\xfe\x58\xeb\ +\xc4\x2e\xae\x6e\xbe\x75\x62\xce\xb2\x7e\xf0\x50\x03\x6d\x3f\x3f\ +\xde\xbe\xbb\xd8\xfe\x9b\x83\x8f\x77\x1c\x5d\x68\xfe\x8c\x2f\x3b\ +\x9f\xf9\x17\x51\xec\xcc\xc7\x3b\xf3\x06\x07\xce\x3f\xaf\x41\x83\ +\x06\x0d\x1a\x2e\x00\x71\x20\xf5\xc4\xaf\xb7\xe0\x7f\x61\x62\xfd\ +\xa2\x77\x8b\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\ +\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\ +\x41\x83\x06\x0d\x1a\x34\x68\xd0\xb0\x6a\x08\xc3\x78\x29\x0c\x07\ +\x46\x02\xc6\x93\x61\x3c\x47\xfe\xee\x0d\x5b\x45\xec\xdd\xf0\xf9\ +\x1b\x30\xba\x3a\xf3\x78\x1a\xd6\x09\x76\x0a\x11\x7f\x7b\x66\xec\ +\xaf\xbe\x9d\x89\x7c\xea\x54\x7c\xf4\xe8\xff\xa4\xa2\x9f\xb9\x3f\ +\x3e\xfc\xc9\x1f\x46\x43\x77\x3e\x12\xb5\xe7\xdd\xd1\xc0\xbc\x9b\ +\x32\xe7\xdc\xa8\xb9\xf0\x70\xcf\xf6\x89\x9b\xf8\x6f\x34\x5c\x06\ +\xb0\x7b\x34\xda\xf8\x56\xcc\xb9\xc3\x4d\x5a\xb7\xbb\x69\xf3\x08\ +\xec\xf3\x02\x8c\x79\x37\x61\xce\xba\x49\x7b\xc6\x4d\x39\x33\xf0\ +\x73\xc3\x8d\x1b\x75\x37\x6e\x35\xe0\xdf\x2d\xb8\xe1\xd1\xdb\xef\ +\xef\x12\xbe\x83\x42\x6c\x4b\x09\x8a\xe0\xd2\xb0\x19\xa1\x77\xf7\ +\xb3\xdf\x12\xf5\x2d\x2c\xa6\xed\x39\x37\x09\xf8\x9d\xb6\x67\xdd\ +\x94\xd5\x74\x33\x76\xd3\x4d\x06\xab\xf0\x73\x1d\x7e\xd7\x70\x13\ +\x56\xcd\x4d\xd9\x30\x2c\xfe\x5d\x1c\xce\x43\xca\x69\x2e\x46\xc2\ +\xcd\xef\x03\x3b\x78\x33\xdc\xaa\xaf\xd3\xef\xa2\x61\x45\x80\x38\ +\xfb\x3b\x49\xdf\x2c\xe1\x7a\xd2\x9c\x81\x7d\x86\x61\xe1\x67\xd3\ +\x4d\x3b\x30\xec\x3a\xec\x75\xcd\x4d\x87\x1a\xb4\xf7\x49\xd8\x7b\ +\x1c\x29\xbb\x02\x7b\x5f\x75\x63\xf0\xf3\x18\x9c\x83\x28\xd0\x84\ +\x42\xf6\xbd\x1f\x87\xfb\xf5\x74\xfa\xa5\x34\x2c\x1b\xfa\xfd\xe6\ +\xbb\x8f\x8e\xfa\x80\xde\x5b\xf3\x6e\xd6\x81\x73\x00\xfb\x9e\x81\ +\xbd\x4c\x3b\x38\xea\x6e\x06\xf7\x1d\xf6\x39\x0d\x23\xe3\xc0\x9e\ +\xdb\x65\x18\x78\x5d\x01\x7a\x50\x76\x13\x36\x7e\xd6\xe1\x1c\x4c\ +\xbb\xb6\x39\xfb\x6d\xb8\x67\xa0\xd3\x2f\xa5\x61\xd9\xe0\x1f\xf3\ +\xcf\x7f\x2b\x16\x04\x5e\x6f\xcd\x02\xae\x4f\xc3\x1e\x37\xe1\x1c\ +\x34\x79\xbf\x43\x35\x37\x0b\x03\xf7\x3a\xe3\xd4\x68\xef\xd3\x0e\ +\xee\x7f\x09\x64\x02\xf8\x0c\x01\x2d\x80\xdf\x27\x90\x26\xa0\x6c\ +\xe0\xd4\xbf\x0a\xf7\xdc\xd7\xe9\x97\xd2\xb0\x6c\x88\x45\x7d\xf3\ +\x6e\x3c\x38\x0f\x34\x7f\x96\xf0\x3e\x05\xf4\x3e\x0d\x7b\x9e\x09\ +\x57\x79\xe0\x7e\x3b\x25\x38\x0b\x70\x06\x42\x25\x1a\xd9\x70\x85\ +\x7e\x87\x74\x21\x61\x55\x80\x1f\x20\x5f\x00\xf9\x60\xa4\xfe\x8f\ +\x70\xcf\x81\x4e\xbf\x94\x86\xe5\xc1\xae\x5d\x99\x77\xc6\x8d\x3b\ +\xdd\xa4\x31\x07\x7b\x8f\xf2\x5e\x03\x46\x9d\x70\x3e\x0b\xb8\x9d\ +\x85\x3d\xcf\xc1\x67\x0e\xf6\x3a\x87\xfb\x8e\xe7\x20\x5c\x02\x1a\ +\x50\xa4\xf3\x90\x74\x24\x2f\x08\x35\x41\x37\xa8\xbb\xa3\xe1\xfa\ +\x5d\x70\xdb\xde\x4e\xbf\x97\x86\xe5\xc1\xc8\xc8\xc7\xef\x8e\x1b\ +\x40\xfb\x0d\xa0\xfd\x66\x83\xe4\xfd\x8c\x8d\x7b\x0f\x67\x00\x69\ +\x3e\xd0\xf9\x1c\xec\xb1\xda\x7f\xfc\xc4\x33\x90\x0d\x95\x61\xff\ +\xcb\xc4\x17\x90\x4f\xa4\xec\x06\xe1\x7f\x78\xf4\xb6\x79\xc1\x35\ +\x38\x34\x6c\x7c\x18\xc9\x06\xa7\x41\xbf\x9b\x83\xfd\x07\x79\x1f\ +\xf0\x37\x63\x02\xce\x03\x3f\xc7\xbd\x27\xbc\x07\x1c\xcf\x87\xcb\ +\xb4\xf7\x79\xd8\xf7\x3c\xd1\x80\x29\xf8\x1d\x9e\x8d\x0a\xcb\x83\ +\x66\x45\xea\x08\x4d\xd7\x17\xb8\xee\x70\xa7\x5f\x4a\xc3\xb2\xe1\ +\x57\x12\x7e\xa0\xdb\x81\x19\xd8\x7f\x90\xfb\x40\x86\xcf\xc2\x3e\ +\x22\xfe\x33\xcd\x2f\xd3\xde\xe3\x9e\xe7\xec\xa2\x5b\x20\xfc\x9f\ +\xe2\x4f\x94\x03\x60\x3e\x0d\x32\x60\x06\xe9\x3f\xfc\x6d\x12\x68\ +\xc6\x7e\xdf\xf3\x3f\xdc\xe9\x97\xd2\xb0\x3c\xd8\x21\xc4\x8d\xc9\ +\x00\xc8\xec\x41\xc0\x7d\x83\x75\xbe\x2c\x9e\x01\x47\xf1\x7d\xd8\ +\xe7\x30\xe2\xfc\x14\xfc\x8c\xfb\x5e\xa4\x91\x47\xfc\x87\xcf\x2c\ +\xec\x3f\xfe\x3b\xda\x7f\xb3\x46\x7a\xa0\xe8\x1a\xb8\xae\xd3\xef\ +\xb5\x46\x80\x32\xcc\x8b\x84\x08\xbf\x53\xfd\xa2\x1b\xf0\x65\x87\ +\x78\xf6\xad\xf0\xe3\x9f\xc3\xe8\xef\xd8\x93\xad\x11\xc0\xfb\xfc\ +\xda\x58\x60\x0e\xe4\x36\xe4\x01\x4d\xc6\x7f\xd0\xf7\x11\xf7\xf3\ +\x72\xff\x71\x9f\x0b\x91\x12\xed\xfb\xb8\xda\x7f\x18\x39\x87\xf7\ +\x3f\x83\xf8\x0f\xfc\x02\x79\x47\xd4\x2c\x62\x59\x87\x97\x77\xfa\ +\xbd\x56\x09\x68\x07\x43\xbd\x25\x08\xe3\x37\x46\xc2\xcd\xaf\x8e\ +\x59\x73\xae\xb5\xeb\xd3\xb3\xea\x1f\xec\x37\xea\x47\xac\x1d\x73\ +\x6e\xc8\xf8\xab\xa2\xb8\x4c\x6c\x5c\x89\xf8\xbb\xbe\x16\x37\xe7\ +\x81\x77\x4f\xb3\xdc\x4f\xfb\x5f\x61\xda\x8f\x7b\x4d\x7b\x8f\x03\ +\xf0\xdf\xe1\x33\x90\x97\x83\xf7\x1f\x78\x3f\xda\x84\xc9\xfe\x53\ +\xc6\xfd\xff\xc5\x4e\xbf\xd3\x2a\xe0\x99\x42\x44\x27\x93\xc3\x9f\ +\xf9\x52\x34\x72\xe4\xbb\x31\xfb\xf6\xc5\x11\xd0\x87\xe3\xe6\x9c\ +\x1b\xf6\x7d\xf6\x6b\x42\xda\x33\x8c\x7d\x33\xf7\x05\x06\x1a\x6e\ +\x68\xdf\xdc\x43\x42\x6c\x7f\x6d\x87\x9f\x79\xad\xe0\xa7\x46\xcc\ +\x99\x47\xe2\x68\xf7\xb1\x9b\x44\xfb\x33\xc4\xf7\x2b\xb4\xf7\x84\ +\xff\xe1\xe2\x12\xfc\xc7\x4f\xd6\x05\x81\xff\xc3\x9e\xa7\x4c\xe4\ +\xff\xc0\x47\x02\xb4\xff\x3f\xd5\xe9\x17\x5a\x21\xec\xd8\xe7\x2c\ +\xfc\x65\xd8\x77\xa7\x3b\xe6\xbf\xc3\x4d\x18\x47\x80\x16\xc2\xde\ +\x07\x66\x88\x2e\xa2\x7f\x23\x5e\x98\xfd\xbe\x10\xcf\x6e\x46\x02\ +\x75\x77\xd8\x5f\x77\x43\xc1\xba\x6b\x0f\x56\xf1\x5d\x27\x3a\xfd\ +\xf0\x6b\x00\xfd\xf1\x44\xf5\xaf\x93\xa1\x39\xb2\xf7\xe7\xd0\xde\ +\x0b\x32\x7d\x1e\xe5\x3f\x94\xf9\x22\x65\xda\xff\x3c\xe1\x3e\x9f\ +\x87\xf1\x30\xca\x7f\x45\x96\xff\x70\xff\xad\x2a\xac\x5b\xcd\x8d\ +\x05\x91\xfe\x6f\xfd\x20\xdc\xd3\xe8\xf4\x4b\xad\x00\x86\x46\xf6\ +\xdd\x7e\xcf\xe8\xe0\x82\x1b\xf5\xcf\xbb\x89\x20\xfb\xbf\xd0\x16\ +\x9a\x04\x7d\x06\x75\x9a\xb8\x35\xe3\xc6\x41\xbf\x8d\x01\x8e\x44\ +\x81\x46\x8e\xc0\xbb\x8e\x9a\x4d\x17\x18\xe8\xaf\x77\xfa\xe1\xd7\ +\x00\x76\x8d\x8d\xcc\x7c\x21\x1e\x9a\x21\xff\x5e\xd6\x52\xf6\x9e\ +\x0a\xed\x71\x1e\xf6\xba\x30\x0c\x03\x3f\x9d\x36\xfe\x8f\xf2\xbf\ +\x5d\x82\xfd\xaf\xc0\x7a\xb1\xed\x77\xc4\x57\x74\x87\x27\x0e\x9d\ +\x16\x5d\xe2\x6d\x9d\x7e\xa9\x15\x80\x11\xdb\x3f\xff\x83\xa8\x7f\ +\x01\xe4\xe0\x39\x8a\x6d\x48\xc2\x7e\xe3\xfb\xa0\x3d\x0b\xfd\x1a\ +\xe8\xf3\x8e\x81\x7c\x1b\x83\xbd\x1f\x83\xeb\x51\x83\xfd\x5d\xf6\ +\x70\x15\x6d\x9d\x6f\x85\x11\xe9\xf4\x4b\x5c\x04\x0c\xa6\xc2\x0b\ +\x77\x27\xc3\x33\x40\xcf\x1b\xb0\xef\xb5\x96\xfc\xe7\x30\x9e\xe7\ +\x9d\x96\xec\xcf\xba\x1f\xf0\x7e\x89\xff\x19\xb2\xfd\x80\xee\x87\ +\x6b\x05\xf4\x42\x6c\x15\xaf\x13\x5c\xa3\x75\xb3\x40\x3a\x19\x38\ +\xb2\x98\x00\x9a\x4f\x76\x10\x13\xfd\xde\x33\x64\xcf\x4a\xc1\x7a\ +\x24\x41\x17\x4e\xc0\x9a\xc4\x41\xc7\x89\xa3\xaf\xd3\x46\x39\xa7\ +\x4e\xe7\x61\x0c\x74\x66\xa0\x09\x58\xea\xec\x86\x4e\xbf\xc4\x45\ +\x80\x1d\xb7\x9a\x8f\xc4\x41\xfe\x4b\x5b\x55\xde\x7f\x45\xff\x49\ +\xdf\x2f\x92\xfe\x9f\x97\x7a\x3f\xd2\x81\x7c\xb8\xa5\xff\xa3\xed\ +\x57\xd9\xfe\x47\x8c\x92\x2b\xfa\x82\x93\x62\x13\xed\x7f\x97\x10\ +\x6f\x8a\x19\x80\xfb\x01\xb4\x81\xcd\x91\x0f\x04\x7d\x60\xe8\xf7\ +\x46\xdf\x46\x4a\xda\xb8\x93\xa1\x32\x9c\x83\x0a\x9c\x83\x0a\xec\ +\x7f\x8d\xf6\x3f\x6a\x4a\x3e\x20\xc4\xab\x3b\xfd\x1e\x17\x01\xe1\ +\x58\x10\xe3\x3a\x40\xff\x33\x6b\x72\xff\xab\xd2\xf6\xc7\x7b\xcd\ +\xf2\xfe\x94\x47\xfb\xc9\x06\x18\x2a\xb1\x1f\x90\xe8\x3f\xec\x3f\ +\xac\x43\x21\xf2\xe9\xcf\x89\x9d\x5d\xa8\x1b\x6f\x9a\xfd\x07\x78\ +\x52\x34\xb0\x70\x1a\xf7\x3f\x03\xb4\x3f\x63\xc3\xfe\xa3\x2e\x04\ +\x72\x10\xda\xb5\xd3\xe8\xe7\x82\x77\xc5\xfd\xc7\x11\xb7\x4a\x70\ +\x06\x78\xff\x63\xa8\xf3\x02\x0d\x18\xc9\xd4\x3e\xd2\xe9\x97\x58\ +\x2d\x6c\x13\xdd\xd7\xa6\x4c\x8c\xf1\x41\xdb\x9f\xdc\x7f\xa2\xfd\ +\x4a\xff\x47\x5d\xa0\xc8\xf6\x1f\xfa\x94\xfb\x0f\xbc\x21\x6d\xa3\ +\xdf\x0f\x86\x51\x23\x7e\x19\x1e\x7e\xdb\xe7\x04\x99\x95\x36\x15\ +\xec\x1d\xf3\xdd\xf1\x95\x78\x00\xe8\x7e\x80\xe3\x5e\x32\xa4\x0b\ +\x35\xd8\xff\x0d\xfb\x9f\x46\x3f\x47\x08\xfd\x9d\x18\xeb\x80\x67\ +\xa0\x0c\x7b\x5f\x01\xfa\x0f\x3c\x00\xce\x80\xe3\x9b\xfd\xef\x4e\ +\xbf\xc4\x6a\xa1\x4f\xf4\x5d\x1b\x33\x41\xd7\x31\xd0\xf6\x8f\x74\ +\xbf\x46\xb4\x5f\xd9\x7f\x72\x0e\xdb\xff\xc8\xe6\x27\xe5\x80\x9c\ +\xd4\xfd\x79\xff\x41\xf6\x27\xf9\xaf\xe6\x0e\x0f\x01\xfd\x17\xdb\ +\xd0\x5e\xd6\xdd\xe9\xf7\x5a\x01\xf4\x86\x43\xc5\x4f\x26\x61\xff\ +\x93\xfe\x69\x37\x0b\x3a\x5f\x9a\x7c\x60\x75\x92\x6d\xc8\xbe\x8d\ +\x67\x3d\x54\xf6\xf6\x3f\x41\x3c\xa0\x04\xb4\xbf\x0c\xa3\xe4\x46\ +\x83\x95\x47\xe0\x3e\x85\x4e\xbf\xc8\x6a\x60\xc7\xd6\xb1\xeb\x11\ +\x77\x53\x46\x83\xf0\x3f\x6b\x57\xa4\xec\x57\x96\x7b\xcf\xf8\x8e\ +\x3a\x5f\xde\x61\x3e\xa0\x6c\x7f\x2c\xfb\x57\xe0\xec\x54\x38\xfe\ +\xc3\xbe\xcd\x0d\x26\xde\x3c\x0d\xb7\xdd\xde\xe9\xf7\x5a\x01\xf4\ +\x6e\x11\xf6\x27\x53\xa0\xfb\xa5\x83\x20\x03\x03\x3d\xcf\x82\x2c\ +\x83\xbc\x90\xec\xe0\xe8\x03\x45\x1b\x37\xc6\x3a\x60\xcc\x0b\xec\ +\x7b\x02\xf6\x1c\xf9\x40\xcc\x98\x02\x19\x60\xd2\x0d\xfb\x0f\xbf\ +\xbf\xd3\x2f\xb1\x5a\xe8\xeb\x99\xf8\x40\xd2\x64\x99\x27\x6b\xb3\ +\xef\x8f\xf6\xbe\xcd\xfe\x9b\x27\xfd\x7f\xd2\xb3\xfb\xb1\x0f\xb8\ +\xec\xe9\x7e\xb4\xff\x26\xfa\x02\x0e\xff\x08\x6e\x39\xd4\xe9\x77\ +\x5a\x29\x6c\xdd\x2a\xde\x99\x0e\xc0\xfe\x83\xfc\x97\x33\x9a\x70\ +\x06\x40\x0f\x02\xfc\xcf\xd9\x2c\x07\xb1\x9f\xab\x08\x03\xce\x80\ +\x55\xa2\xb8\xc7\x38\xbc\x6f\xcc\x28\xba\xd1\xc0\x21\x77\x9b\xf8\ +\xa5\x77\xac\xe7\xe3\xad\xe3\xbd\x45\x7f\xdf\x35\x1f\xc0\xf8\xee\ +\x14\xd0\xff\xac\xc5\x7e\x5f\x1c\x68\xff\xcb\x49\x7f\x6f\xbe\xcd\ +\xe6\x4b\xb8\x1f\x6a\xed\x7f\xca\xa8\x50\x8c\x20\xd0\xc9\xd3\x40\ +\xf5\x5f\xbc\x9e\xcf\xba\x8e\xe0\x44\x02\x20\x03\x01\x0f\x40\x7f\ +\x38\xed\x3f\xac\x05\xee\x7f\x16\x78\x3d\xfb\xb9\xd0\xd6\x5d\x24\ +\x7e\x90\xc2\x98\xc7\x20\xd2\xbc\xc6\xa7\x52\x23\x37\x7e\x4e\x6c\ +\xb3\xfe\x64\xad\x1f\x08\x36\xfd\xa9\x5b\xc4\x33\x3e\x6d\xf9\x5e\ +\xf2\x05\xb8\x1c\x5b\xeb\xfb\x2b\xe8\xeb\xff\xd9\x0f\x60\xcc\x37\ +\xc9\x3d\x16\xd3\x3c\xc6\x7d\xf6\xfd\xa2\x0d\x90\xcf\x00\xd3\x7f\ +\x2f\x06\x08\xe3\x00\xad\xaa\x37\x72\x91\xc3\xf7\x89\x4d\x1c\xf7\ +\x13\x4f\xbe\xf9\x2f\x69\xff\x8d\x19\x37\x0f\xf2\x7f\xce\x42\xfc\ +\x67\x5d\x28\x6b\x97\x3c\x7b\x17\xbd\x37\xf9\x3c\xaa\xee\xee\x81\ +\x5f\xb9\x53\xb0\xac\xb3\x56\xef\x8d\x3e\xa5\x6b\xe3\x23\x47\xfe\ +\x36\x16\xb9\xdd\x8d\x87\xe6\xdc\xb0\xbd\xe0\x9a\x76\xe3\xc7\x42\ +\xec\xc2\x33\xb6\xe6\x71\x75\xfd\x3b\x7f\x16\xf0\x7f\x8e\x75\x1e\ +\x89\xff\xec\xfb\xa9\x78\xbe\xff\xd6\x90\xb2\x1f\xe9\x7f\xec\xf7\ +\xcd\xa2\x9c\x0c\x7f\x07\xab\xf0\xbf\xd7\xfa\xd9\x2e\x31\xc4\x13\ +\xbe\x23\xa7\x92\x01\xc0\xff\x60\x83\x68\x21\xf1\x00\x8b\xd7\x23\ +\x23\xe3\x9e\x32\x6d\x7c\x2f\xea\x07\x59\x20\xf8\xd1\xcf\x82\xcc\ +\xfb\x0b\x6b\xf0\xfd\x56\x72\xb8\x7e\x2c\xe5\xcc\xc2\x77\xa2\x2e\ +\x3a\xed\xa6\xe0\x39\x46\xd1\xee\x8c\xb1\x15\xc1\x9a\x6b\x47\x2a\ +\xdf\x15\xa2\xeb\x15\x62\x0d\x73\xae\x78\xff\x59\xe7\x55\xf2\x1f\ +\xeb\x7e\x1c\xf3\x53\x80\x33\x30\x2e\xcf\x81\x8a\xfb\xc0\x39\xb2\ +\xfd\xc1\xfe\x67\x28\x2f\x60\x06\x6d\x20\x4f\x5d\xab\x67\xea\x10\ +\xec\x88\x0f\x2d\xfc\x4f\x0a\xf6\x3f\x03\x3c\x20\x07\xeb\x9e\x77\ +\x58\x06\x60\x9e\x58\xa2\x33\x80\x34\x00\xe3\x9d\x12\x94\xf3\x00\ +\xc3\x57\x71\x47\x9d\x3b\xaa\x17\xf9\xdd\xe3\x11\xb3\xfe\x8d\x2c\ +\xec\xc1\x78\x08\xf6\xdf\x44\x19\x94\xfd\xf1\x51\x8a\xbd\xad\xc1\ +\x77\xd6\xdc\x28\xf0\xe8\x58\xa0\xee\xfe\x44\xf4\xa3\x9f\x01\x0e\ +\xf1\xb4\xb5\x78\x69\xdc\xff\x38\xd0\xbc\x94\xc9\xfa\x7f\xc6\xaa\ +\x10\xbf\x6b\xf9\x80\x25\xff\x27\xfd\xaf\x28\x79\x40\xd9\xc3\x83\ +\x2c\xc5\x0b\x37\xdc\xad\x5b\xbb\x5e\xbf\x16\xcf\xd3\x41\xe8\x1d\ +\x19\xaa\xdd\x97\xc6\xbd\x07\x19\x30\x67\xd6\x59\x06\xb0\x98\x1f\ +\x92\xbd\x83\x74\x80\x32\xd9\x3c\x62\x06\xe8\x7d\x81\x49\x77\xcc\ +\x3f\xe5\x9a\x43\xf5\x6f\x5c\xc4\xf7\x6e\x0b\xf8\xae\x9b\x8f\xfb\ +\x90\xff\xe2\xb9\x83\x11\x6a\x92\x1f\x3e\x0d\x67\x2f\x06\xf2\x27\ +\xea\x9d\x69\x13\x65\x4e\xb6\x3b\xc5\x0d\x78\xa6\x14\xe1\x5c\xf4\ +\x62\x5f\x1a\xf7\x1f\x73\x7e\xd0\xe6\xc1\xf2\x5f\x59\xda\x7f\xd1\ +\xef\x57\xf1\xf0\x7e\x1c\xfd\x80\x4e\x51\xfa\x04\x60\xff\x2d\xe6\ +\x83\x39\xca\x15\xa9\xb9\x57\x16\x16\xbe\x2e\x36\x97\xdd\xef\x4c\ +\xe8\x1d\x0e\xdc\x76\x5f\x0a\xf0\x2b\x03\x23\x2f\xf7\x3f\xef\xb0\ +\x2f\xac\x15\xef\x5a\xa2\xfd\x47\x9b\x07\xee\x7f\xdc\x9c\x72\x47\ +\x7c\x93\x27\x2e\x7c\xfb\x73\x42\x00\x78\xce\x7d\x18\x7f\x8b\xf1\ +\xd7\xb4\xf7\x14\x7b\x5b\x23\x3f\x6c\x22\x52\xa1\x38\xec\x0c\xe5\ +\x5b\xd5\xd8\xd6\x8e\x3e\x09\xf8\xfe\xde\x9e\x89\x9b\x2f\xf6\xa5\ +\xfb\xfb\x7f\x96\xf5\x3f\xf8\x6e\xd2\xff\x70\x4f\x43\x2c\xff\x2b\ +\xbb\x3f\xeb\xfd\x45\xe2\x05\x28\x13\xb0\x0c\xc4\x72\x70\x9a\x62\ +\xff\xe0\x5c\x86\xca\x0f\xc1\xed\x7c\x17\xfb\x3c\x9d\x84\xfd\x7b\ +\xdf\x78\x4f\x0a\xf4\x80\x6c\xb0\xe9\xe6\x81\xf7\xe6\x10\xcf\x2c\ +\x8e\x83\xcc\x4a\x19\x80\xec\x00\xf0\xde\x71\xc4\x7f\xb3\x04\xf8\ +\x5f\x74\xcd\xc1\x8f\xa3\xdf\xeb\x39\xab\xf9\x4e\x40\x98\xe7\xe4\ +\x8c\x3b\x49\xfe\xce\x86\xa7\x65\xdc\xbd\x8c\xbf\x0c\x57\xdd\x64\ +\x84\xcf\x5d\x8e\x72\x6f\x40\x0e\x40\x59\xc0\x2c\xd1\x59\x88\x87\ +\x29\x06\xe1\x95\x17\xf3\xce\xfd\xfd\x3f\xf7\x81\x24\xc5\xfe\x36\ +\xe4\xfe\xf3\x79\x47\xdc\xcf\xa2\xff\x3f\xcc\xf8\xaf\x64\xc0\x6c\ +\x9b\xed\x07\x73\x02\x93\x66\x99\xfc\x7e\x49\x7b\x0a\x9f\x65\x55\ +\x6b\xb0\x51\x60\x8b\x10\xb3\x29\xf4\x01\xfa\xa7\xdd\x7c\x00\xf8\ +\x3f\xc9\x7f\xb8\x26\x65\xc9\xff\x8b\x34\x92\x66\x11\xf0\x1e\xf6\ +\x1e\x46\x22\x36\xf3\xb9\x01\xdf\xcd\xdf\xd8\x2e\xf6\xff\xde\x6a\ +\xbe\x33\x12\xbf\x6e\x3e\x85\xfa\x97\x3d\x03\x7b\x0e\x67\x2e\x54\ +\x97\xbe\x17\xf8\x5e\xc0\xb5\x64\x04\x63\x30\xcb\x44\x87\x30\x17\ +\x2b\x65\xc9\xdc\x5b\xca\xbd\xac\xbb\x63\xd1\xea\x77\x80\x85\x24\ +\x57\xfb\xce\x8c\xff\x33\x44\x7b\x48\xfe\xb3\x24\xfe\x87\x2a\x84\ +\xef\x9e\xcf\x4f\xc5\xfe\x93\xdf\x8f\x63\xfe\x71\xef\xd1\xff\x93\ +\x80\xbd\x4f\xd8\xb7\xba\xfe\xc1\x97\xcf\xaf\xf6\x39\x36\x08\xbc\ +\x38\x3a\x78\xc4\x4d\xf9\x60\xff\x83\x28\x03\xe0\x19\x40\x3d\x00\ +\x74\x1d\xab\x28\x7d\x1e\x53\xf0\xce\x45\xb2\x05\x26\xe0\x1c\x0c\ +\x5f\xf5\xc1\xbf\xed\x12\xe2\xd5\x3b\xc4\x0b\x3f\xb4\x8a\xef\xb3\ +\x31\xb6\x24\x03\xeb\x9f\xa5\xd8\x9b\x2a\x0d\xb2\xc1\x03\xfe\x15\ +\x86\x61\x9d\x23\xac\x73\xe7\x65\xbe\x25\xc6\x5a\x92\xcf\x45\xe6\ +\xdf\x25\x31\xee\x7e\xe4\xad\x15\xb1\xca\x78\x44\xda\x7f\x92\xff\ +\x50\xe7\xa9\x12\xaf\xc9\x85\x2a\x1e\xef\x57\xfc\x5f\xd1\xfe\xac\ +\x94\xfd\x52\x84\xff\x55\x69\xf7\xc5\xdf\xdd\x7a\x5f\x6a\xf4\xa6\ +\xcd\xbe\xff\xdb\x63\x46\xf5\xe1\x8c\x1f\x78\xb1\x0f\xf9\x00\xec\ +\xbd\x89\xeb\x51\x93\xb1\x8e\x45\xf6\x05\x58\x53\x6c\x0b\x44\x1a\ +\x30\x7c\xc7\xb7\xb7\x8a\xad\xcf\xe8\xef\xf9\xc3\xd5\xc8\x80\xbf\ +\x9d\x33\xe6\x60\x8d\x67\x29\xf6\x82\xf7\xbd\xe6\x16\x22\x28\x77\ +\x94\x29\xd6\x1e\xf7\x9f\xe2\x6f\x65\x4c\x76\x26\xc4\x79\xb8\x24\ +\x83\x18\x45\x92\x05\xa2\x56\x13\xdb\xb5\xdd\xb8\x9a\x17\xc6\xfd\ +\x4f\x99\x33\x32\xf6\x4b\xe2\x3f\xc9\xfd\x80\xfb\x91\x96\xfc\x47\ +\xba\x3f\xda\x83\xc2\x65\x7a\x77\x8c\xfb\x24\xdf\x3f\xc8\xa5\x39\ +\xb3\x7c\xbf\xe8\xa7\x9c\xdf\x4d\x5f\x0b\xc4\x8a\xbc\xaf\x91\x1a\ +\x02\x7a\xec\x07\x7a\x1c\x04\x5a\x8c\x7e\x00\x4b\xca\x80\xb6\xe2\ +\x7f\x6c\x07\x46\xfa\x17\x0d\x16\x1f\xde\xd9\xe5\x7b\xcb\x96\x6d\ +\x2f\xba\x57\xac\xd0\xef\x61\x8d\x7d\xe8\xae\x5c\x08\xf7\x7f\x5a\ +\xda\x9a\x2a\xbc\xff\x88\xfb\x24\x7f\xc3\x59\x0b\x4f\xc9\xfd\x67\ +\x9b\x0c\xc5\xdb\xd2\xda\xd7\x38\xf7\x12\xed\xee\xa0\x83\x0d\x3b\ +\xd3\xe8\x83\x5a\x71\x1c\xd2\xce\xfe\x67\x7f\x20\x16\x6c\xe9\x7f\ +\x59\x29\xef\xe6\xe5\xf7\x17\x1c\xce\xfb\x21\x5e\x20\xf7\x3f\x6b\ +\xb7\xe2\x7e\xd1\x4f\x1a\x1b\xab\x9d\x82\x5b\x5d\xb3\xd2\xef\xde\ +\x88\xb0\x5d\x04\x5f\x99\xf1\x2f\x90\x1d\x38\x07\x7a\x40\xd6\x64\ +\x3b\x90\xa7\x17\x87\xcb\x4c\xff\x31\x0e\x00\x3e\xa3\xfe\xe2\xa2\ +\x11\xb9\xe9\xe4\x56\x31\xf5\x5d\xb1\xb2\x9c\x80\xae\x8c\x31\x77\ +\x6f\xd6\x99\x03\xbc\x06\x79\x13\x70\x6f\x3c\x82\x7b\x5f\xf5\xf8\ +\x2e\xc5\x58\x47\xa4\xdf\xdd\x6a\xf3\xbb\x50\x0e\x36\xd3\x5e\xca\ +\xbf\x47\xdd\x10\xe4\xd5\xad\x5b\xae\x54\xf6\xc8\x65\xc3\xce\xfe\ +\x67\x12\xff\x4f\x9b\x4d\xd2\xff\xf2\x36\xc7\xfe\x14\x22\x55\x3a\ +\x83\xe3\x70\x16\xd1\xf7\x87\x67\x21\x27\xe9\xbf\x8a\xfb\xce\x61\ +\xbe\x88\x53\xfc\x91\x10\xa3\xf8\xbd\x2f\x5b\xc9\xf7\x6e\x54\xd8\ +\x26\xc4\x2f\x64\x07\x17\x1e\x4d\xfb\x41\x16\x43\x1d\x00\xed\xc0\ +\xc8\x03\x6c\xa6\xbf\x69\xa9\x03\x24\x61\x3f\x12\xd6\xa4\x9b\x0c\ +\x1d\x7a\xb8\x5f\x3c\xeb\x5d\x03\xfb\x6e\xf9\x96\x58\xbe\xfe\x83\ +\x7a\xf2\x75\x69\xf3\x76\xb8\xff\x0c\x9d\xaf\x02\xe2\x7d\x1b\xdf\ +\x25\x9c\x87\x7d\x4f\x87\x27\xe1\x73\xca\x9d\x40\xfc\x77\x14\xee\ +\x95\x49\xfe\x4b\x62\x4c\x9a\xc9\xba\x08\xfa\xab\xa3\xce\x34\xc6\ +\xdf\x3e\x6b\x25\xef\xbb\x73\xe7\x33\xd9\xfe\x83\xf6\x5f\x53\xee\ +\x3d\x8d\x0a\x7d\x1f\xd9\xff\x42\x65\x8f\xff\xd3\x19\x90\x71\x7f\ +\xb8\x36\xe3\x23\xa5\x93\x70\x9b\x5f\x5e\xe9\x3a\x6f\x60\xf8\x99\ +\xcc\xd0\xfc\xc3\x69\x65\x07\x06\xba\x88\x7a\x00\xcb\x46\x15\x19\ +\xf3\x58\x66\x3f\x30\x9c\x03\x8c\x03\x08\xa4\xca\x77\x1b\x83\x25\ +\x57\x74\x3f\xbd\xbe\xcc\xef\x30\x87\xa3\x87\xbf\x93\x01\xbd\x3b\ +\xe7\xcc\x00\xde\x63\xec\x54\x9d\x70\x3f\x4f\x38\x87\xf6\x16\xb6\ +\xb9\x64\x60\xff\xc7\x61\xff\xc7\xd1\x07\x61\x61\x1e\x1e\xd3\x1f\ +\xa4\x01\x09\xb2\x43\x00\xee\x5b\x9c\x83\x99\xb0\xa7\x5d\x27\xfc\ +\xdb\x2b\xca\xbf\xdd\xbd\xe7\x9a\x0f\xa4\x64\xbc\x2b\xd1\xba\x10\ +\xdb\x3c\xc6\xc3\x2d\xfc\x9f\x18\xae\x4a\x19\x90\x7d\x02\xb4\x06\ +\xc4\x13\x1b\x94\x33\x36\xd0\x97\x7d\xcf\xea\x96\x7a\x43\xc2\x9e\ +\xa8\xff\xb6\x6f\xa5\xfd\xd2\x0e\x6b\x36\x98\x37\xdb\x35\x19\x0b\ +\xc0\x36\x20\xb4\xc9\xa1\x0e\x18\x85\x75\x8f\x1a\x15\x37\x34\x54\ +\x75\x03\xfb\xe6\xdd\x0b\xdf\x9e\xe0\x27\x33\xc6\xfc\x0f\xd1\xde\ +\x97\x0f\xc3\xde\x87\xeb\x24\xdf\x29\xda\x8f\xf6\x76\x8a\xb5\x06\ +\xf9\x2f\x13\x99\xe4\xfc\x0b\x1b\x75\x80\x32\xe9\x22\x8a\x07\xa4\ +\xe4\x19\x40\x3a\x90\x20\x5b\x4c\xcd\x4d\x44\xa6\x01\x1f\x7b\x9e\ +\xb4\xec\x97\xdd\x9f\x7a\x49\x0c\x78\x1d\xc6\xb9\xa3\xcd\x1b\xdf\ +\x93\x68\x80\x23\x65\x90\x50\x4b\x06\xc4\x6b\x92\xff\x88\x06\x56\ +\xc9\x06\x80\x71\x92\x63\xa1\xca\x37\x57\xb9\xd6\x1b\x12\xa2\xf6\ +\x4d\x9f\x4e\x81\xfc\x9f\xf6\x01\xee\xc3\xba\x14\x70\x6d\xa4\x2d\ +\x90\xd6\xde\xe1\x58\x20\x8c\x01\x89\x52\x1c\x58\xd9\x1d\x0e\x56\ +\x5c\xcb\x47\xf6\x98\xfc\x85\xbf\xa1\xe7\xa5\x19\xe3\xf6\xc7\x48\ +\xe7\x77\x90\xee\xd7\x98\xfe\x23\xfe\xe3\xfe\x47\x58\xf6\x42\x3a\ +\x80\xf8\x8f\x32\x58\xc1\x2c\x11\x6f\xce\x91\xcd\x1d\xed\x2f\x6c\ +\x87\x4a\xd9\x5c\x7f\x03\xf7\x9f\xf4\x41\xe0\x55\xa3\xa1\x77\xff\ +\x83\x58\x9e\x2d\xb6\x77\xe7\x4e\xfb\x55\x68\x7f\xc8\x18\x4c\xeb\ +\xc8\xde\x65\x55\x68\xdf\xc7\x3d\x39\xb4\xe2\xc9\x80\x39\xa5\xff\ +\x23\xff\x31\xcb\xcc\x83\x9c\x49\x7c\xef\xab\x2e\x6e\xd5\x37\x0e\ +\xf4\xf6\xbe\xf0\xee\x6c\x00\xf6\x06\x47\x10\xf6\x1f\xf8\x6a\xde\ +\xaa\x7b\x32\x00\xe9\x80\x61\x8c\x07\x96\x67\x00\xf8\xef\x18\xd0\ +\x80\x61\xe0\x13\xf0\xe7\xcf\xbf\xd0\xfd\x77\x98\xaf\xba\x29\xe7\ +\x2c\xc0\xda\x4a\xb9\x2f\xcc\xfc\x7f\x3c\x22\x65\x3f\x5a\x77\xc6\ +\xb9\x6c\xb8\x48\xfc\x77\x1c\xbe\x27\x0f\x7b\x8c\x67\x80\x63\x12\ +\x2a\xb4\xff\x49\x1c\x52\x16\x24\x3f\x01\xfa\x0c\x40\x8e\x84\xed\ +\x7f\xf6\x32\x5e\x35\xba\xdf\xaa\xfd\x88\x62\x5e\x8d\x69\x92\xe7\ +\xd0\xde\x81\xcf\xc4\x31\x80\xe5\x25\x34\x80\x7c\x82\x61\x8e\x87\ +\x42\x5b\x04\xea\x7e\xa8\x87\x8e\x99\x53\x6e\x60\xe8\x79\xcd\x8b\ +\x5f\xf9\x0d\x01\x81\x5d\x5d\x99\xfb\x92\x83\x75\x37\x3d\x34\x43\ +\x76\xe0\x3c\xf0\x80\x82\xc5\xb4\x31\x63\xb1\xef\x1b\xed\x3f\x14\ +\x0f\xe8\xb0\x1d\x18\xe3\x41\x47\x42\xc5\x65\xe5\x3f\xc6\x46\xca\ +\xff\x9a\xb5\x90\xf7\xc3\xd9\x0a\x81\x0c\x15\xaa\x11\xbf\x1d\xf7\ +\x64\x7f\x35\xd4\xfe\x33\xfe\x17\x10\x37\x0d\xd4\xb7\xe1\x0c\x98\ +\x4c\x03\x38\x06\x93\x7d\x52\xa8\x8f\x20\x6d\x8a\xc1\xb8\x2a\xfd\ +\x91\x85\x65\xbc\x6b\x3c\x34\xb8\xe0\x26\x61\xef\xd3\xa0\x03\xe4\ +\x48\xd6\xa9\xd1\x28\xc8\x1c\x20\x92\x01\x3d\x5f\x90\xb4\x83\x62\ +\x2c\xbc\x59\x24\xfc\x47\xd9\x03\x64\x60\xd7\x1f\x7f\x35\x7e\xdf\ +\x66\x8a\xfb\x3c\x27\xf4\x08\x71\x38\x11\x5c\x38\x95\x35\xe6\x41\ +\x06\x9c\x05\xd9\x6b\x9a\xd7\x86\xf2\x63\x38\x1e\x0c\xeb\x1f\xa5\ +\x65\x5d\xa4\x18\xd9\x83\x01\x0f\x42\x64\x03\x7f\xc1\xf9\xee\x0d\ +\x44\xf9\xea\x42\x70\x01\xd6\x78\x16\xee\xd7\x24\xda\x3f\x0e\xb2\ +\x1f\xea\x7e\x38\xc8\xf6\x86\xeb\xed\xf0\x9a\x23\xbd\x9d\x40\xfd\ +\x0b\xf6\xbd\x00\x3c\xa8\x80\x72\x88\x51\x26\x1c\xc5\xdc\x3b\xa2\ +\xc5\xe4\x23\xac\x4a\x7b\x40\x91\x6c\x83\x78\x2e\xe1\xeb\x7e\x5e\ +\x9c\xbf\x46\xaf\x31\x66\x61\x3d\xd7\x69\xd2\xff\x94\xcf\x1b\x6d\ +\x8d\x48\x93\xf2\x52\x07\x40\xba\x94\x57\xf1\x40\xf8\xde\x98\xf7\ +\x45\xb2\x47\x99\x62\x21\x73\xce\xad\x3f\x10\x97\x49\x3e\xb4\x84\ +\x9e\xd1\xd1\x43\x9f\x48\x04\x51\x06\x84\x7d\xb2\x81\x4e\xc3\xda\ +\x14\x42\x0d\x19\x13\x2a\xfd\xdf\xa8\x07\x3a\x53\xd2\xff\x01\xb8\ +\x10\x26\xfc\x3f\x6f\x5e\x70\x77\xf7\xe8\xc7\x73\xf6\x02\xac\xf5\ +\x0c\xe1\x19\xae\xf3\xb8\xd4\xfd\xf2\xc4\xff\x2b\x94\x73\x99\xb7\ +\x95\xdd\xa5\x44\xf2\x7f\x2e\x88\xf8\x5f\x27\xdc\xa7\x98\x14\xe9\ +\xab\xa1\xfc\xfb\xb6\xfd\x4f\xda\xec\x8f\x41\xd9\x74\x24\xd6\x7c\ +\x00\x4e\xdc\x33\xcf\xf7\x3c\x0e\xc6\xfe\x9a\xd3\x24\xc7\x33\xfd\ +\x87\xf7\x44\x99\xc4\x51\x39\x60\x98\x07\x2c\xe3\x00\x48\xff\x67\ +\x3f\x78\x9a\x62\x61\xcb\xa4\x33\xc6\xf7\x97\xff\x1d\x6e\xf5\xbc\ +\xb5\xdc\x80\x4e\x43\x60\xf4\x6d\x9f\xe7\x18\x9c\x59\x8a\x09\xce\ +\x11\x7e\x20\x5f\xac\xb7\xe2\x82\x65\x1d\xbc\x04\xd0\x5d\xd4\x07\ +\x31\x3f\xc4\x17\x78\xfa\xad\xe7\xb9\xed\x9e\xe1\xb1\xc3\xdf\xca\ +\xd9\xf3\xb0\xb7\xa0\xf7\xc1\x79\x1a\x0f\x37\x88\x06\x10\xae\xc9\ +\xb8\x7b\xe2\xb5\xd6\x14\xed\xff\x55\x71\x90\xff\x46\xdf\xfb\x37\ +\xa9\xc1\xfa\xa9\x09\xdc\x13\xd0\xd1\xf2\x24\x03\x72\xbc\x7e\x56\ +\xca\xe1\x94\x87\x43\xb6\xf8\x2a\xc5\xa7\x23\x4f\x4a\x00\xbd\xba\ +\x32\x7d\xc3\x79\x65\xc1\x30\xfa\x14\xb1\xf6\x0b\xbe\x9f\xa4\x01\ +\x28\xeb\x2a\x7d\x24\x2f\x6d\xc1\x18\x07\x48\xb1\x7f\x98\xf7\x27\ +\xe3\x60\x39\x0e\x0a\xce\xfc\x36\xf1\x46\x71\x99\xd5\x7d\xed\x15\ +\x3d\x7f\x9d\xc0\x98\x60\x53\xee\xbd\xa9\x74\x40\xae\x81\xa9\xe2\ +\x5f\xbc\xfd\x47\x1a\x00\x7b\x96\xca\xbe\xbf\x21\xce\xbd\xde\xcf\ +\xc8\x5b\x47\x1e\xca\x5b\xf3\x92\xf6\x4b\x7d\x8b\x68\x6d\x55\xda\ +\xf7\x64\x8c\x05\xae\xb7\x51\x04\x59\xee\x1d\x3f\x14\x88\xa6\x43\ +\xef\xbe\x23\x05\xf7\x27\xf9\x1c\x6b\x34\x99\x15\xb2\x49\x72\x0d\ +\x26\xf6\x0d\x25\xa5\x3c\x48\x39\x0a\x4e\x91\xf4\x82\x18\xe0\xb7\ +\x38\x8f\x6d\x2e\x12\xa9\xdc\x9b\x21\xfb\xdf\x8c\x9b\xc1\x1c\x20\ +\x8b\x75\x00\xd4\x75\xf2\x92\x06\x70\xbc\xe7\x94\xf7\x6c\xe8\x07\ +\x21\xd9\x13\x78\x52\x34\x50\x73\x7b\x42\x07\x4e\x75\x75\x89\xeb\ +\xd7\x63\x1f\x3a\x05\xc0\xcc\xae\x1c\x1e\xaa\x9c\xc4\xbc\x16\xb2\ +\x8b\x90\x9f\xa3\xca\xfa\xb7\xb4\xc1\x91\x1d\x00\x6d\xc1\xc4\x03\ +\xa6\xc8\x26\x17\x0b\x4e\x62\x1c\xc4\xcf\x9d\xed\x9e\xbd\xfd\xcf\ +\x7c\x1b\xc5\x5a\xda\xcc\x47\x38\xb6\xa4\xad\xb6\x1a\xe5\xd5\xb0\ +\x7f\x01\xe9\x4b\x3a\x58\x73\xfb\xb7\xff\x8c\xca\x2d\x08\x85\x86\ +\x3e\xfa\xf5\x68\xb0\xb2\x98\x81\x75\xcf\xc2\xc8\x5b\x1c\x9f\x9c\ +\x23\x1f\x80\x8c\xc9\xa1\x18\x25\x79\x1e\x49\x1f\x04\x99\x35\xd6\ +\x40\xdf\xc4\xe0\xd9\x9e\x69\x38\x74\xeb\xdf\x25\x4c\xb6\xff\x50\ +\xfc\x27\xdd\x93\xed\x9d\x54\xfb\x4d\xfa\xbe\xe9\x6c\x62\xfc\x33\ +\x3c\x5f\xda\x2a\xca\x18\xe8\x9a\x9b\x1c\x6a\x3e\xb0\x75\xeb\xee\ +\x37\xc1\xad\xd6\x22\x06\x72\x23\x41\x57\x5f\xd7\xfe\xd7\xc7\xe8\ +\x9c\xc3\xba\x06\x79\xcd\xc9\x17\x0c\x34\x0f\x7d\x41\x1c\x0b\x02\ +\xfb\x8e\x31\x01\xb0\x26\xe4\x0f\x80\x7f\x63\x05\x0f\x7e\xfd\x6c\ +\x37\x8c\xda\x9f\xf8\xef\x34\xd5\x56\xac\x73\x8c\xa5\x8c\x2b\x26\ +\xfa\x2a\x73\xaa\xb3\xa0\x4b\xa3\x8d\x05\xf7\x12\x64\x81\x87\xe1\ +\xcf\xda\xf5\xb8\x61\xd3\x78\xff\xdd\xf1\xe0\x14\xe8\xeb\xf0\x37\ +\x38\x00\xc7\xc9\x2e\x80\xfb\x64\xb3\x6f\x32\x25\xe3\x31\x92\x28\ +\x9b\x82\x6e\x1a\x31\xaa\x8f\x82\x64\x7e\xd6\xfd\x19\x1e\xfe\x10\ +\xec\x7f\x8d\xea\x7a\x63\x8c\x19\xc7\x80\xc8\x1a\x7f\xb6\xa4\x43\ +\xf8\x5c\xf6\x24\xd5\x7d\x4b\xc3\x67\xca\x9a\x64\x1f\x04\xc8\x0b\ +\x11\x63\x1a\xeb\xfd\xfa\x61\x64\xc5\x65\xc6\x03\x00\x76\x47\x8d\ +\x5b\xbe\x90\x86\xf5\xce\x62\x2c\x10\xae\x37\xda\x61\x30\x16\xc0\ +\x84\xf5\x80\xb5\xce\xd0\x5a\x4c\x02\xfe\xc0\x30\x26\xdd\x84\xbf\ +\xea\x0e\x0f\x7d\xcc\xed\x11\x3d\x4f\x6e\xbf\x11\x5c\x5f\x99\x06\ +\xfa\x5a\xb0\xeb\xec\x63\x41\x1b\xab\x53\x92\xf5\xb4\x26\x69\xe4\ +\xec\x29\xf2\xf9\x62\xcc\x15\x7e\xcf\xf8\xc8\x27\x10\x6f\xf7\x9f\ +\xf1\x4c\x46\xd4\xb8\xf9\xeb\x39\xb9\xff\x79\x13\x47\x91\xe4\x45\ +\xf4\x11\x21\x8e\x66\xd0\x3f\x8d\xbe\x09\xd0\xcb\x93\xc0\x43\x30\ +\xa6\xed\xc9\xd1\x0f\x7c\x51\x9c\x85\x2f\xa5\xe2\xef\xf9\xbb\x34\ +\xbc\x5b\x0a\x46\xc6\x60\x1b\x73\xd6\x94\x79\x1e\x16\xd7\xfc\xc9\ +\xe3\x19\xb0\x6f\xa3\x67\xcb\x58\x87\xe1\xde\x30\xe0\xf9\xd2\x46\ +\x0d\xe4\xa3\xc3\xdf\xdf\xc6\x3d\x42\x70\x5c\x76\x75\x1f\x41\xa1\ +\x7d\x11\xd6\xc6\xc2\xb8\xe0\xb4\xd1\xa0\x77\xc6\x1a\x89\x44\x6b\ +\x2d\xb6\x05\x26\x3d\x5b\x3c\xd2\x8a\xaa\x3b\x1a\x20\x3d\xe0\x03\ +\x67\xdc\xea\xcd\x51\xe3\x0e\x58\xb7\x59\xaa\xb1\x97\x93\x36\x16\ +\x95\x6b\x95\x95\x76\x15\xaa\xb7\x8b\x7e\x55\x90\x3b\x82\xc3\xef\ +\x9a\x3d\xc7\x33\xfd\x3f\x69\x63\xfa\x54\x3a\x00\xb2\x23\xfa\xed\ +\x89\x67\xcb\xfc\x1d\xaa\xc5\xd6\x92\x07\x39\x56\x19\xeb\x15\xd4\ +\x17\x61\x7b\x5e\x74\xe6\xbd\x8c\xe1\xc9\xbf\x8b\x1b\x58\x03\x6c\ +\x86\x62\x8c\xa9\x06\x94\x55\xf7\xea\x40\x50\xec\x73\x88\xe3\x1f\ +\xb3\xd2\xf6\x9d\xa1\x78\xc4\x3a\xec\x3d\xfa\x8d\x66\x41\xc7\x20\ +\x9b\x27\xd6\x7c\xb9\xdc\xfa\xc1\xe0\x79\xfe\xc9\x54\x1c\x64\x23\ +\xb2\x91\xc0\xda\x1a\x15\xde\x7f\x9b\xe5\x2f\xaa\x87\x6d\x29\x5d\ +\xb8\x4c\xeb\x8d\x32\xb1\xb1\xef\xda\x76\x3d\x60\xfb\x90\xf3\xf6\ +\xdb\x13\xc6\x3c\xc5\xf9\xb1\x2d\x99\xfd\xfd\x59\x19\x5b\x8a\xfb\ +\x4f\x71\x9e\x14\x83\xdf\x24\x9d\x4c\x9c\x5b\xa7\xca\xa5\x8d\xd9\ +\x1f\x64\xd1\x67\x8b\x32\x9b\xf2\xdd\xa3\x4c\x88\xb5\x38\xc9\x2e\ +\x5f\x93\xf1\x19\x55\xf2\x11\xa5\x80\x56\x5f\x91\x9d\xfc\x17\xf8\ +\xdb\xbd\xed\x37\x72\x46\xca\x9f\x43\xff\x5f\x1c\x7d\x00\x58\xff\ +\x93\xce\x66\xbd\x15\xf7\x8a\x7c\x4a\xea\x01\x4b\x9e\x93\x74\x51\ +\x90\x1b\xec\xc6\xf7\xe0\x36\x23\x7d\xbb\xa2\xa8\x03\x6e\xea\xf8\ +\xcf\xb3\xc0\x80\x18\xbc\xe1\x4b\x41\x1f\xe8\x48\x81\x06\x9f\x79\ +\xb3\xc6\xe7\x80\xf4\x80\x2a\xd3\x00\x19\x93\x41\x3e\x18\xab\x4a\ +\x72\x41\x60\xff\x4b\x0e\xb5\xdd\x67\x7f\xdc\x38\xf2\x6f\x49\xb4\ +\x27\xc9\x3c\x0b\xb2\xb1\xca\x1a\xab\x54\x67\x59\xda\x14\x28\xee\ +\x1b\xce\x48\xc2\x6e\x9c\x3e\xcf\x73\xf5\x87\x23\xd7\x7f\x83\x64\ +\x76\x38\x97\x79\xcc\x57\xc3\x33\x80\x7a\x01\xea\x04\x98\x93\x85\ +\xcf\x68\xd7\x64\xcc\x30\xc7\x8b\xe0\x39\x80\xa3\xf8\xaa\xf6\x1b\ +\x0d\x8f\x4d\xfd\x5d\x02\xf0\x38\x49\x75\x2f\xb8\xfe\x33\xd5\x01\ +\xb0\xaa\x5e\x3c\x52\x5e\xc6\x03\x52\xdc\x77\x58\xd6\x7c\x35\xca\ +\x14\x33\x98\xb2\x6a\x3f\x04\xae\x82\xb9\x1f\x57\x8a\xcd\x1d\xff\ +\x7d\x36\xd8\xba\xa5\xfb\xba\xa6\x39\x50\x7f\x6c\x64\x68\xfa\x11\ +\x94\xdd\xb0\x17\x4a\x86\x7a\xa1\xf0\x9e\xa7\xc9\x0e\x8f\xb6\x60\ +\xb6\x85\x63\x4c\x5c\x16\xf0\x65\xdf\xfe\xa7\xb7\xeb\x43\xd1\x94\ +\x7f\xe1\x04\xd6\xd8\xce\xda\xb0\x5f\xa4\xf7\x55\xc9\xef\x97\x8f\ +\x70\x9c\x2f\xe1\x94\xc3\xf9\x54\x19\xcc\x43\x0e\xcf\xfd\xe7\xf9\ +\x1e\x6c\x47\x97\x78\x45\xcc\xe4\x9a\xdd\xe8\xa3\xc0\x58\x25\x94\ +\x51\xd0\x57\x4d\x7b\x4f\x31\xa2\x1c\x9f\xc5\x7b\x5f\xa2\x73\x91\ +\x1c\xa9\xff\x18\xc8\x5a\x5a\xdd\x27\x31\x0a\xfb\x8f\xf5\x1f\xe0\ +\x3e\x28\xcf\x21\xef\x61\xde\xa4\xfc\x51\x55\x19\x0b\x0e\x7c\x0a\ +\x63\xd1\xc3\x55\xb2\x37\x52\x2c\x22\x3c\x6b\xdc\x9c\x5e\x1c\x19\ +\xfd\x9d\xd5\xc4\x3e\x6e\x0a\xd8\x2a\x46\xdf\xb1\x6b\xd7\x1d\xdf\ +\xeb\xdf\x26\xb2\x49\xbb\xf2\x1f\x58\xe7\x94\xe4\x1e\xd4\x03\xb1\ +\x46\xbe\x17\x8f\xc5\xfe\x18\xcc\x89\xc2\x78\x8e\xe1\xf0\xeb\xbc\ +\xba\xa1\x3b\xc5\xce\xd7\x64\xcd\x05\xae\xaf\x6f\x32\x6d\x2d\xc8\ +\x3a\x0b\xec\x4f\xe2\x5c\xba\x5c\xb8\x41\xf9\x1f\x18\x7f\x1c\x8f\ +\x4f\xde\x7e\xa1\x67\x1b\x36\x9b\x0f\x11\x3f\xc1\x9c\x45\x92\x2d\ +\x9b\xa4\x13\x92\x9f\x42\x9e\x81\xb4\xad\x7a\xb5\x94\x89\x2f\xe1\ +\xde\xf5\x89\xf1\x29\x21\x71\x35\x37\x5a\xfc\x26\x9e\xa1\xa4\xd1\ +\xa4\x73\x83\xb4\xbf\xbd\x06\x0c\xea\xba\x79\x19\x97\xc2\xf1\x7f\ +\x2a\x0e\xa6\x4a\x31\x8b\x71\x78\x1f\xbf\xef\xf0\x23\xeb\xb8\x05\ +\x1d\x05\x90\xb5\x5e\xb0\x45\x7c\xfa\x61\xb1\x4f\x3c\x33\x15\x2e\ +\x2f\x60\x9d\x2b\x3a\x03\x16\xeb\x4a\xbc\x77\x15\xaa\x0f\xc2\x39\ +\x11\x80\x67\x06\xd0\x89\x70\xfd\x6e\x75\x8f\x91\x91\xf7\x7f\x2e\ +\x8d\xb6\x64\xca\xed\xe3\xbc\x52\xda\x7f\x89\xf7\x1c\x73\x8b\xf5\ +\x26\x1a\x84\xcf\x69\xae\x29\x74\xc1\xfa\x92\x3d\x42\xfc\x61\x88\ +\x64\x4a\xd8\x77\x1c\xc1\x1a\xef\xbf\xd4\xe1\xd3\x92\x0f\x30\x0d\ +\x40\x39\x60\x8a\x62\x56\x61\xff\x4e\x82\xaa\x86\x31\x02\x7d\xf9\ +\xc8\x14\xd5\x3a\xe0\xfc\xdf\xaa\xf4\x47\xd7\xdb\xfc\x3f\x8c\xfb\ +\x79\x59\x13\x92\x65\x55\xc6\xff\x14\xe5\xfe\x57\xdd\x88\xff\xd0\ +\xfd\xeb\xb9\x07\x1d\x86\x91\x6e\x31\x77\x6a\x77\xaf\xf8\xf5\x44\ +\xe2\xe3\x73\x69\xa7\xe1\xd5\xc9\x46\x3d\x3e\x63\x97\x65\x3c\x06\ +\xfb\x44\x50\x2f\xa0\x9a\x01\x76\x51\xc5\x82\x0c\x20\xfe\xe5\x81\ +\x57\x17\x90\xf6\xdb\x35\x89\xff\x55\x99\x67\xa7\xf2\x3d\xea\x4c\ +\xfb\xd1\x16\x1b\xb8\x1d\xf5\xbe\x65\xc4\x11\x00\x1f\xd8\xf9\xd3\ +\x6f\x4c\xd9\xb3\xa7\x51\x37\x29\x18\x1c\xaf\x9a\xf7\xe2\x15\x6b\ +\x5e\xbc\x78\xca\x64\x5b\x25\xc9\x18\x70\x16\xf2\xd1\x9b\xf0\x7c\ +\x3e\x15\xe3\x4b\xf3\x91\x86\x17\xff\x4f\xfb\x1f\x66\xff\xdf\xb8\ +\xe4\xfd\xe3\x18\xff\x13\xae\x78\xfe\x5f\xd2\x55\x1c\xce\xfb\x41\ +\xbd\x31\x6a\x37\xbf\xba\x6e\xab\xdf\x79\xd8\xd2\xbb\xa5\xf8\x8d\ +\xa1\xde\x37\xde\x1a\xc9\x1f\xbc\x11\x6d\x77\x69\x95\x2b\x69\xb7\ +\x6c\xc1\x1c\x9b\xcd\x3e\xd9\x9c\x8c\xdd\x81\xbf\x2d\x00\xfd\x78\ +\xee\x84\x51\xa7\x9c\xf2\xbc\xc5\xbe\x15\xb6\xab\xca\x1a\xdb\x61\ +\x59\x67\x84\xf6\x0c\x70\x1f\x78\xf9\xbe\x1d\x2f\xc4\x5c\xea\xe5\ +\xf6\xd2\xdb\x1f\xb5\x4a\x5f\xc5\xfc\xad\x8c\x0f\xee\x6d\x20\x0d\ +\xa8\x79\xf6\x61\xe2\x4d\x52\x2e\x21\x5d\xc5\x66\xbb\x0e\xd6\xb4\ +\x12\x62\xd7\x9d\x18\xc7\x80\xfd\x9d\x26\x90\xf7\x84\x54\xfd\x97\ +\x2a\xd9\xff\xc9\x37\x45\x3f\xcb\x58\xf0\x30\xcb\xab\x14\xff\xed\ +\x30\x6d\x41\x9d\x33\x6a\x35\x8e\xac\xe3\xfa\x77\x1c\xba\xba\x32\ +\xef\xec\x17\xd3\xc7\x1c\xe7\x95\xef\xcf\xa9\x3a\x99\x12\x57\x32\ +\x96\x94\xdb\x43\xb2\x4e\x10\xd0\xd8\xac\x55\x74\x27\xec\x49\x17\ +\x18\xec\x4f\xf5\x6e\xeb\x7f\xfb\x38\xd2\x66\xf4\xad\x91\x5f\xad\ +\xe2\xed\x3f\xc5\xd0\x86\xd8\x8f\x87\x31\xdc\x59\xea\xa1\x51\xff\ +\x1f\xc1\x35\xa8\x97\x0b\x78\x4e\x0e\x60\xff\x1e\xac\x5b\x81\xfb\ +\x3f\x6e\x73\xcc\x2a\xd9\x02\x6c\xd6\x55\xd2\x44\x07\x38\x66\x2c\ +\x43\x71\x03\x30\x8f\x7b\x1a\xe1\x7c\xa3\x2c\xc5\x17\x97\x49\xe6\ +\x43\x1b\x27\xc7\xff\x55\x64\x5c\x82\x94\xff\xc2\xad\xf8\x0f\xf2\ +\x3b\x23\x9f\xc1\x9c\x54\xa7\x3a\xb7\x4e\x4b\xbf\x21\x60\xdb\x36\ +\x91\xda\xb3\xad\x71\x3a\x3a\x58\xfd\x01\xfa\x48\xd2\x52\xcf\xca\ +\x49\xfd\x88\x75\xe2\xb2\xf4\x91\x94\x68\x2d\xf3\xc6\x94\xdb\xdf\ +\x3b\xfa\xa7\xce\xf0\x81\x4f\xe1\xde\xb7\x62\x2b\x2a\xec\xef\x0d\ +\xab\xbc\xf2\x2a\xd7\x51\x40\xd9\xdb\xdf\x70\x47\x47\x3f\x81\x36\ +\x9f\x95\xfa\xd2\xfb\xe2\x63\x87\xef\x45\x9b\x41\x5e\x9e\x01\xf4\ +\x13\x72\xee\x62\x95\xe5\x52\xaa\x65\xc5\xf4\x20\x23\x6d\x16\x19\ +\x9b\x9f\x9b\xf8\x7b\x88\x6d\xc8\xb4\xdf\x6d\xf1\xbf\x68\x57\xa4\ +\xf8\x23\x19\x9b\x4a\xf4\x5f\xe6\x21\x90\x9d\x2a\x58\x01\xfc\xaf\ +\x9d\xd5\x4e\x75\x19\xc1\xd0\x9e\x9e\xc6\x7f\x8e\xec\x03\xfc\x09\ +\x00\x9e\x1a\xd2\x17\x28\x73\x65\x55\x6e\x50\x56\xd9\xf0\xf1\x67\ +\x38\x03\x56\xe0\xf9\x1f\x4a\x84\x0e\x7f\x2d\x27\xf5\x7d\x5e\x53\ +\xf6\xab\xe6\xc2\x9c\xeb\xc1\xbd\x56\x6a\x14\x7f\x97\x08\x54\xdc\ +\x9e\xfe\x9f\x78\xef\x6a\x1e\xb0\xaf\x5b\xfc\x52\xd4\x9c\x5b\x44\ +\x39\x20\x17\x64\x1e\x90\xb7\x59\x0e\x24\x3b\x95\x3c\x03\xa4\xbb\ +\x4b\xbe\x40\x79\x5b\x32\xae\x0b\x79\x82\xc2\xf7\x89\xb0\x8c\xfd\ +\xc3\xfd\xb7\x78\xff\x29\x06\x51\xc6\xff\x64\x55\xdf\x1f\xf2\x43\ +\x02\xff\xb7\x2a\x97\x35\xfe\x03\xf4\xed\xdc\x5d\xf9\x8b\xb1\xc1\ +\x69\x37\xe1\x63\x7b\x1b\xd5\x86\x70\x54\x7f\x1c\x15\x1b\x55\xe4\ +\xfe\x68\x80\xfb\xe8\x37\x49\x46\x6e\xfe\x9b\xbc\x53\x7a\x80\x6c\ +\x67\x16\xe3\x10\xe2\x18\xe7\x57\x71\xae\x35\xee\x3d\xd5\x50\x82\ +\x7d\x8b\xf9\xd1\x3e\x23\x7e\x67\x95\xcf\xb8\x3b\x66\x4e\x7d\x2f\ +\x89\xfb\x4f\xb2\x60\xd5\xf3\x0f\x72\x9c\x48\x45\xf6\x6a\xa8\xc8\ +\xfc\x11\x99\xcf\x6e\xf3\x7e\x62\xac\xc1\x78\xa8\x22\x3f\x39\xe6\ +\x7f\x02\xcf\x03\x9d\x89\x56\x3c\x4a\x5e\xc5\xc0\x23\x2d\xa1\x38\ +\x34\xcc\xfd\xae\x5f\xee\xf8\xbf\xa5\x7b\xe7\x8b\x6f\x8c\xec\x99\ +\x71\x93\x98\x1f\x6e\xd6\x3d\x1f\x29\xe9\xc7\x32\x2e\xd6\xf3\xdf\ +\x92\x8c\x55\x76\x63\xc1\xa9\x07\xb2\xc0\x13\xd0\x7f\xa2\xe2\x28\ +\x58\x8f\x92\xf5\x55\x1d\xd6\x23\xd1\xff\x92\x0e\x36\xdc\x71\x93\ +\xe2\x47\x97\x1d\xbb\x7d\xe6\x33\xf6\x09\x71\xe3\x28\xc5\xab\xc8\ +\xfa\x05\x46\xf5\x8c\x58\xa1\x0a\xf9\xab\xc9\x86\x17\xe2\x33\x80\ +\x75\xcd\x54\x9d\x2f\x2f\xee\xcc\x3b\x03\x15\x38\x03\x2a\x16\x5d\ +\xd6\x82\x95\x3a\x60\x9a\x7c\xa0\x9c\x03\x12\x75\xea\x97\x3b\xfe\ +\x23\x43\x7e\x4d\x7c\x70\xc6\x4d\xf8\xeb\x64\xc3\x21\xff\xab\xcc\ +\x95\xcf\xc9\x58\x3d\xf4\x97\xe5\x65\x6d\x34\xce\x8f\x2b\xc9\xdf\ +\xb1\x3f\x8d\xe2\x67\xc8\xe7\xcb\x39\xa5\xdc\x37\xa7\xca\xbd\xb3\ +\x02\xf5\xc5\x9d\xbb\x9f\xf6\x67\x17\xf9\x98\x7d\xf1\xd1\xea\x37\ +\x99\x06\xf0\xfe\xe7\x6d\x3e\xa7\x9c\xc3\x2c\xfb\xb5\xa0\xfc\xae\ +\x7c\x85\x36\xd7\x73\x24\x1c\xb7\x26\x79\xdf\x69\xff\x4b\xfc\xe9\ +\x94\x65\x1c\xb8\x8c\x4b\x0a\x57\x64\xec\x13\xdb\xac\x70\x2d\x92\ +\x23\xcd\xcb\x7e\xff\xbb\x81\xbf\xc6\x86\xe6\x5d\xaa\x0f\x65\x34\ +\x49\x96\xf3\x6a\x25\x79\xb5\x32\xcb\x6d\xf1\x1b\x65\xb9\xde\xec\ +\x3f\x47\xdf\xa9\xaa\xa9\xa4\x7a\x2a\x66\x6d\x65\x4b\xaa\xbb\x57\ +\x3a\x65\xb4\xa1\xec\xb9\xd8\xe7\xdc\xd1\x25\x7e\x3b\xe2\x9f\x3d\ +\x85\xf5\x7c\x31\x5e\xb0\x40\x35\x6c\x28\x47\x97\x6d\x13\x0e\xcb\ +\xff\x59\x19\xcf\x41\xb5\xbc\xa9\xae\x0f\xe7\x7a\xd2\x9e\x87\xe5\ +\xfe\xd3\x59\x28\x7b\x31\xc0\x4c\xe7\xa4\xfc\xe7\xb0\x9f\x12\x75\ +\x96\x58\x68\xf6\x72\xa7\xff\x08\xf1\x14\xf6\x08\x18\x6a\xb0\xbd\ +\x5d\xd6\xca\x46\x3d\x80\x62\xa4\x6c\xce\x8f\x40\x7a\xcf\x75\x73\ +\x19\xcf\x28\x5e\xce\x9a\xe4\xfc\x39\x25\x3f\x85\x99\x16\xd3\xfe\ +\x63\x8f\x6d\x90\xa1\xf7\x9b\xef\x38\x5f\xdc\xe0\x4a\xc0\x3f\xea\ +\x4c\xdd\x9d\xc2\xdc\x65\xd4\x03\x90\x07\x50\x5c\x07\xe7\x0d\x50\ +\x9c\x88\x55\xf2\x62\xcc\xf2\x44\xdb\xcb\x9e\x9f\x9f\x62\xcd\x6d\ +\xa6\x07\x13\x4e\x49\xce\x49\xbe\x45\xe7\x5c\xd5\xc3\x64\xf9\x8f\ +\xfa\x3e\x85\x9a\x9f\x5e\xa3\x67\xdf\xc8\x10\x8f\xee\xbf\xc3\xa5\ +\x3a\x4d\x7e\xae\x0d\x91\x93\x32\xb6\xaa\x97\x9b\x97\x7d\x51\x28\ +\x8e\x43\xf2\x55\xa2\xfb\x0e\xd7\xcf\x52\xb5\x93\x3c\xbd\x8f\xfc\ +\x89\xa0\xf3\x1b\xc4\xf7\x57\xa2\xf3\x9f\x17\x80\x57\xbd\x6c\x14\ +\xe4\x94\xb4\xdc\xff\xbc\x8c\x15\xcb\xe1\xfe\x5b\x72\xff\xa5\x3c\ +\x47\x3d\x5e\xe0\x79\x31\xe7\x28\x2f\xfb\x7b\x50\x5c\x0a\xfc\x3c\ +\x11\xa9\x48\xd9\x5f\xee\xbd\x2d\x6d\x9b\x24\x43\x2a\xfb\x1f\xd6\ +\xa8\x6b\xfe\xeb\x5a\x3d\xfb\x46\x86\x18\xc8\xff\x58\x1b\x24\xed\ +\x67\xbf\x3b\xf9\x5c\x31\x16\x4f\xe6\x65\x52\xbd\x3c\x59\x23\x8d\ +\xea\xa4\xa1\x3d\xc0\xe6\x4f\xaa\xa3\x14\x2e\x4b\x5e\x51\x95\xb5\ +\xf3\x1a\xe4\x2b\x48\x84\x1a\x9f\x59\xeb\x67\x4d\x8c\xdd\xf0\x29\ +\xca\xe9\xc7\x1a\x16\x46\x45\xc6\x08\xb2\x8e\xaf\x62\xc5\x48\xa6\ +\xc7\xfd\x77\x8a\x9e\x8c\xc7\x7c\xbf\x2c\xe9\x40\xa9\x8d\xfe\x57\ +\xa4\xec\x5f\xa5\xb3\x8b\xfe\x04\xae\x47\x34\xed\xc6\x43\xf5\x53\ +\x6b\xfd\xfc\x1b\x11\xa2\xa0\xfb\x27\x7d\x58\x1b\x02\x6d\xf4\x35\ +\x92\x7d\xc8\xc6\x62\x57\x64\x8d\x28\x89\x53\x92\x9f\xb6\x46\x51\ +\xf6\x51\x90\xf1\x1e\xb6\x8c\xf3\x40\x7b\x2f\xec\x7f\x20\x74\xfd\ +\x5b\xd7\xfa\x59\x7b\xb1\x87\x9d\x6f\xd6\xcd\x04\x6b\x32\x66\x5c\ +\xe9\x02\x15\x19\xd7\x51\x6e\xa3\x01\xbc\xef\x44\xff\x25\xee\x17\ +\xa4\x3c\xd0\x4e\xff\xb9\x0e\x5a\x55\xf6\x7c\xa9\x52\x2d\xaa\xb8\ +\xd9\xa4\xde\x28\xf0\x95\xe9\x0b\x3e\xd4\x26\x87\x61\xe3\xfa\x1f\ +\xa2\x0e\x90\x86\x75\xf5\x6a\x03\xd8\x92\xae\xaa\x5a\x89\x6a\xcf\ +\xed\x62\x4b\x67\x96\xe7\x81\xcf\x08\xeb\xfc\x69\xf2\xf5\x60\x9c\ +\x4f\x09\x6b\xb7\x5c\xbb\x0e\x8f\xeb\x1b\xb6\xa7\x1e\xc6\xba\xce\ +\x99\x60\xd5\x2d\x98\x55\x69\x0f\x92\x32\xab\x17\xd7\x2b\xe9\x95\ +\xdd\xb6\xe7\x76\xd1\xb3\x01\x8c\xcb\x5c\xb4\xbc\x8a\x53\x93\x71\ +\x2f\x58\x93\x32\x49\xfe\x7f\xac\x4f\x5a\xc5\xfa\xaf\x97\x53\x0d\ +\x80\xb3\xc2\x0e\x21\x3e\x9c\xf4\x1f\x71\xd3\x58\x27\x38\x20\x6b\ +\x44\x5b\xb2\x46\xb0\xa5\xfa\x63\xb7\x70\xbf\xe0\xe1\xbf\xac\xa7\ +\x2b\xf7\x1e\x71\x1f\x63\x2d\x12\xfe\x06\xc6\x15\x3e\xb2\xda\xda\ +\x71\x17\x82\x6d\x42\x5c\x1f\x33\xa7\x17\x31\xee\x34\x07\x67\x20\ +\x6b\x94\x3d\xfc\x57\x7a\x8b\xaa\xeb\xe5\xd5\x79\x91\xfa\xbf\xd2\ +\x05\xf2\xd2\x2e\xc8\xb1\x4a\x6a\xff\x6b\x32\xef\xb8\xe6\xc6\xe1\ +\x3d\x30\xff\x13\x54\xcf\x3f\x5a\x8f\x77\xd8\x60\x70\x55\xd4\xa8\ +\x3f\x18\xf7\x63\x6e\x78\x83\xf0\x8a\x63\xae\x24\x6d\x54\xfb\x1d\ +\x6a\xe1\x7d\xa1\xed\x9a\x6b\x08\xf1\xfe\x63\x1c\x59\x12\xee\x11\ +\xb7\x6e\xbd\x0b\xee\xeb\xac\xd3\xf3\xee\x4f\x84\xcb\x5f\xc5\xf8\ +\x9f\x4c\x80\x73\x47\xf3\x84\xff\xca\x0e\xd9\xea\xe9\xae\x9e\x91\ +\x68\xbf\xa4\x05\x13\x64\x03\x6e\x9d\x61\xa6\x19\xec\x53\x22\xfe\ +\x4f\xf1\x1f\x70\xfe\x23\x44\xff\x9f\xb1\x4e\xef\xb0\x91\x60\xab\ +\xed\xbc\xf3\xb3\x09\xd0\x01\xd0\x4f\x8b\xb2\x15\xe7\x04\x54\x3d\ +\x9d\x2a\xef\xf1\x81\x62\x8b\xee\xab\x3c\x0a\x5b\xc9\xfd\xec\x43\ +\xce\x18\x0d\x94\x9b\xd6\x93\x6f\x6e\x01\x9a\x75\x60\xd8\x3f\x47\ +\x31\x1e\xa8\x0b\x78\x34\xc0\x56\xb2\xa8\xd2\x03\xa5\x2e\xe0\xf1\ +\x7d\x8e\x73\x47\xfb\x7f\x4b\xf7\x53\xf6\x63\x8e\x2b\x44\xf9\x0f\ +\x63\x0a\x33\x91\xd2\xff\x5d\xc7\x77\xd8\x68\x70\x4d\x74\x68\x8e\ +\x7a\x05\xa1\x9d\x1d\x7d\x41\x59\xb3\x25\x03\xb2\xde\xd7\xe2\x01\ +\x2c\x63\x31\xee\x64\x14\xee\x98\xec\x43\x04\xde\xff\xc5\x4b\xf0\ +\xbc\xfb\x47\x87\x3f\xf6\x23\xec\xd1\x84\xbe\xba\x7c\x5b\xfe\x68\ +\xeb\x0c\x14\xcf\x4a\xb7\x0a\x76\x4b\x2f\x20\xdf\x9f\xd4\x5b\x5b\ +\x71\xa5\x35\xd2\x01\xe3\xf6\x8d\x9b\xb6\xff\xd5\x6a\x60\xc4\x77\ +\xfb\xb7\xd3\xa0\x07\xb2\x1d\x88\xfd\xba\x98\x8f\x9f\x93\x38\xb2\ +\x74\x2d\xa5\x6f\xd5\xe1\xde\x2a\x68\xeb\xc3\x18\xeb\x84\xaf\xe4\ +\xf6\x6d\xff\x89\x55\xd5\x0c\x5d\x29\x80\x1c\xf0\xbf\xa2\xe6\xcc\ +\x49\xea\xef\x66\x55\x64\xfe\x28\xd3\x80\xbc\xb2\x03\x2a\xfb\x7e\ +\xbb\xec\x2a\xe9\x81\xf7\x1e\x32\x1e\x3c\xed\x70\x2d\x62\x3c\x07\ +\xd9\x50\xe5\x74\x6f\x7f\xfc\x25\x97\xe2\x3d\x36\x0a\x84\x43\xb7\ +\x4d\x63\x7d\xa0\x8c\xbf\x4e\x31\x57\xe4\x6b\xb5\xda\xf0\x49\xf2\ +\x54\x75\x1e\x94\x9f\x8f\xec\xfd\x68\xf3\x21\x7f\x4f\x05\xe3\xbb\ +\x2f\xba\x7e\xf7\x32\xa1\x7f\xd8\xb9\xf9\x33\x49\xb2\x05\xd6\x28\ +\x67\xa8\xa5\xb3\x48\xdb\xb5\xec\xe9\x48\x32\x80\xd2\x05\xbd\x6b\ +\x15\x23\x50\x95\x3e\x64\x8e\x27\x49\x51\x6d\xf4\x32\xc6\x7f\xff\ +\xe4\x25\x7a\x8f\x0d\x01\x5b\xc5\xf0\xfb\x33\x81\x05\xd2\x01\xc6\ +\x81\xae\xa2\x9d\xbd\x7d\xff\xd5\x9a\xaa\x5a\xea\x19\xe9\x7b\x53\ +\xf5\x12\xd3\x81\x9a\x3b\x66\x1d\xfa\xbc\xb8\x84\xf9\x32\xbd\x42\ +\xbc\x74\x14\x7d\x17\xb0\xff\xa4\x0b\x9a\x25\x0f\xff\x79\x6f\xa5\ +\x0f\x30\x5c\xf6\xf6\x9c\xfb\xfd\x4a\x79\x20\xcc\x7e\xee\xac\xa3\ +\x62\x3f\xd8\xfe\x07\x67\x04\xeb\x1e\x6e\xe6\xfe\xb7\x2b\x86\x6e\ +\x21\x7e\xbd\x10\xf8\xe4\x22\xd6\x09\x1f\xc7\x78\x9b\x60\x8d\xfc\ +\x2c\x79\xe9\x0f\x56\xba\x15\xd5\x8d\xa6\xdf\x29\xdc\xaf\xb1\xdc\ +\x17\xac\xa2\xce\xbf\x5a\x3f\xef\x6a\xa1\xcf\xf1\x1d\xfe\x7e\x86\ +\x62\xc4\xf1\x79\xd9\x6e\x59\x08\x71\x1e\xaa\xf2\x4d\xa8\x3a\x9f\ +\xf9\x36\x39\xb0\x20\xe3\x43\x94\xfc\x47\x34\x40\xf6\x8a\x18\x4f\ +\x1d\xc2\xba\xb7\x97\x53\xed\x8f\xe5\x40\x21\x1d\x2c\x3e\x90\xa1\ +\x3a\xe1\x75\x77\xdc\x6c\xc8\x98\x3b\xc9\xe7\x55\x5c\x9f\x53\x95\ +\x78\x52\xe1\x7e\xa2\x58\x2f\xdd\x57\x75\x27\x46\x3f\xf6\xf7\x70\ +\x8f\xdd\x97\xfa\xa1\xb7\x89\xc0\xc1\xa4\x39\xb3\x98\x93\xf6\xc0\ +\xbc\xa5\x7a\x3d\xa8\x7e\x2f\x1c\xe7\xc9\x75\xff\xb8\x06\x19\xd7\ +\xfe\x57\xfd\xe0\x54\xec\x57\x55\xea\xb0\x45\xb7\x77\x47\xe2\x4d\ +\x97\xfa\x3d\x36\x00\x6c\xdd\x2d\x12\x9f\xcf\x1b\x5c\x1f\x6a\xc2\ +\x44\x39\xa0\x46\xb5\x53\xb8\x46\x94\xdc\x77\x93\x7d\x7c\x29\xca\ +\x09\xab\x93\xad\x1f\xeb\x38\xc2\xdf\xff\x6a\x87\x9e\x3b\x19\x0b\ +\x54\xef\x4f\x9b\x5c\xeb\x25\xeb\xf9\x85\xa4\x7d\xc7\x8b\x51\x91\ +\xbd\xbe\x6c\xd5\xff\x95\x63\xff\x55\xae\x0a\xc9\x32\xf0\x37\x13\ +\xa3\x0d\xcc\xfb\x30\x3a\xf4\x2e\x1d\x05\xe0\x01\xbf\x94\x36\xe7\ +\xa9\x57\x44\x01\x63\x77\x2c\x8e\xf1\xa5\xba\x2c\x98\x1f\x66\x31\ +\xbe\x73\x0e\x8e\x8c\x19\xf5\xc3\x3a\x8e\xde\x8c\xb5\x72\x3b\x95\ +\x27\xd7\x15\x08\xfc\xee\xcd\x1c\xc3\xd8\x60\x59\x30\xd4\x90\xf5\ +\xad\x5b\x79\x7e\xf9\x90\xaa\x3f\x2c\x7d\x04\xe1\x8a\xec\x81\xc7\ +\xb9\x1f\xb4\xff\xf0\xb7\xa9\x50\xfd\x5f\x3a\xf4\x1e\x1b\x02\x32\ +\x66\xf3\xdb\xd8\x2f\x36\x17\x68\x72\x0e\x26\xf5\x6c\x6a\x90\x6d\ +\x97\x72\xe9\x80\xd7\x62\xfd\x0d\xdc\x7f\xf4\x15\x3d\xc9\x29\x63\ +\x8f\xbc\x44\x27\x9f\x19\x74\xc1\xa9\x24\xc8\x9f\x58\xf3\x87\x72\ +\x06\xb1\xee\x87\x59\x95\xf5\xc7\x39\xef\x2f\x67\xab\xfe\x6f\xaa\ +\x0f\x78\x8b\x9f\x71\xde\x2b\xbf\x4f\x6a\xf8\xc8\x97\x3b\xf9\x2e\ +\x9d\x86\xbd\xbb\x9f\x35\x97\x09\x32\x0d\xc0\x5a\xc1\x19\xaa\x0f\ +\x50\xa7\x7c\x2c\xf4\x8b\x63\xae\x18\xdb\x7a\x80\x3f\x00\x2f\xd8\ +\xdb\xff\x73\xef\x12\x9d\xcf\x91\x7f\x55\xc6\x5e\x80\xe7\x9c\xe1\ +\x1a\xe7\xb2\xdf\x69\x96\x72\x1a\x38\xa6\x35\xaf\xce\x41\x48\xc5\ +\x29\x56\x3d\x9f\x65\xda\xe6\xf3\x8c\xfe\xab\xb8\x43\xf6\xcb\x4d\ +\x5f\xf3\x7f\xb5\x80\xb5\xfc\x12\x16\xac\x65\x80\x63\x02\xb0\x77\ +\x18\xd6\x89\x48\xa1\x5f\xcf\x40\xdc\x6f\x52\x5f\x1d\xac\x1f\x75\ +\x65\xe4\x10\xf6\xf1\x5c\x49\x7d\xf8\xf5\x82\x7e\x73\xf0\xe6\x7f\ +\x8c\x02\xef\xc2\x67\x24\x5f\x36\x9e\x5d\x93\x6b\x5b\x60\x5c\x33\ +\x9e\x05\xcc\x03\x45\x3c\x57\xfe\xaa\x0c\xd9\xad\x60\xef\x9d\x06\ +\xf5\x9e\xc2\x9a\x12\x58\xff\x54\x74\x4e\x96\xd9\x10\x30\x16\xfe\ +\xe3\xbf\x4f\x18\x0b\x54\x0b\x03\x6b\xc6\xe3\x59\xc0\x1e\x52\x29\ +\x93\xcf\x00\xe6\xf3\x15\x42\xb5\x07\xe1\x9f\x5e\xdd\xe9\x67\x6d\ +\x83\x2b\x9c\xc1\xc9\x6f\x27\x83\xb3\x54\x67\x04\x7b\x9e\x62\x4c\ +\x23\xc5\xb4\x50\x1d\xe0\x86\xec\xeb\xa9\xea\x9d\x30\x4d\x43\x99\ +\x06\xf3\x3d\xb9\xef\x40\x8d\x7a\x9f\x89\x35\x88\x59\xdc\xcc\x80\ +\x39\x5e\xe1\xe0\xc2\x23\x98\x3f\x9d\x00\x1a\x90\xf0\x61\x2f\xf5\ +\x69\xa2\x05\x79\x6b\x0e\x75\x82\x47\x41\x3d\xc6\x7c\xbe\x4e\xd3\ +\xfd\x33\xe1\x8a\xa1\x7d\x37\xfd\xf3\x98\x31\x47\xfd\x2e\x89\x07\ +\xd0\x73\xc3\x3e\x07\xe0\x2c\x07\x98\x9e\xa5\xa9\x37\x98\xa2\x69\ +\xdc\x7f\x0c\x7b\x1f\xa3\x2d\x31\x33\x4c\xba\xcc\xeb\x3a\xfd\x22\ +\x1d\x86\x7e\x73\xe8\xe5\x7f\x31\x62\x1c\x71\x63\x3e\xd8\xff\xe0\ +\x9c\x9b\x04\x9a\x4a\xc3\x68\x3e\x2c\xba\xf2\xaf\xee\xf4\x03\x9e\ +\x07\xfa\xb6\x0b\xf1\x9a\xd0\xae\x4f\x7c\x3d\x19\x2c\x7f\xab\x60\ +\x96\xbf\x15\x37\x16\x4e\x61\x2e\x02\xd5\xf6\x09\xf0\x39\x4e\x06\ +\x1b\x7c\x0e\x90\xa7\x61\x3c\x89\x89\x75\x42\x8a\xa7\x33\xce\xad\ +\x9f\xeb\xf4\x0b\x6c\x10\x18\x80\x75\x1c\xeb\x13\xa3\xbf\xb2\x73\ +\xcf\x8d\x6f\xde\xbb\x73\xb2\x32\xb4\xff\x83\x58\x0f\x19\xfb\x76\ +\x6f\x34\xbc\x3f\x1b\x60\xdd\x66\xb4\xe1\xf5\x80\x7e\xf0\x7a\x3b\ +\x50\x3f\x35\xe6\xc7\x7c\x34\x90\x61\x81\x16\x24\xe0\x1c\xe0\xcf\ +\x78\x1e\xb2\xa4\x13\x1c\xba\x47\xd6\x7c\xb9\xec\xea\x7d\x69\x10\ +\xa2\x77\x2b\xf0\x34\x7f\xe9\xa1\xa4\x33\xf3\x83\x84\x59\x3b\x1d\ +\xf3\x97\xa8\xef\x60\x3a\x50\xf9\xca\xf6\x9d\x57\xbd\x06\xfe\xc9\ +\xae\x4e\x3f\xa3\x86\x75\x07\x6b\x87\x10\x46\xaf\x10\xa1\xed\x62\ +\xf0\xb9\xe8\x3f\x12\x5c\x3b\x6c\xb9\x75\x09\x34\x68\xd0\xa0\x41\ +\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\ +\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\ +\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x3c\xc1\xc1\xd5\xa0\xe0\xe8\ +\xf6\xa5\xd7\xa2\x7b\xc9\xe5\xa2\x10\x07\xce\xb8\xbe\xba\xfd\xfa\ +\x84\x10\xa1\xf5\xbc\x3e\x7e\xc6\xf7\x9d\xf3\xfa\xbf\x07\x96\x5c\ +\x2f\x76\x0f\xa8\xfb\xd1\xf5\x63\x5b\x96\x5e\x9f\x10\xdb\x97\x7c\ +\xdf\xe3\xaf\xb7\xac\xf6\xfa\xea\xb3\xcf\x8b\xf3\xfe\xfb\xc7\xf0\ +\xfa\x14\x5d\x1f\xf0\xae\xff\xab\x75\xbd\x88\xd7\xf0\xa3\xba\x0f\ +\x5e\x2f\xc2\xad\xda\xaf\x1f\x13\x03\x4b\xae\xf1\x9d\xda\xff\xbe\ +\xfd\xda\x85\x7f\x77\x02\xf6\x7a\xe9\xf5\x96\x25\xd7\xc7\xe9\x77\ +\xe7\xb8\x3e\x28\x0e\xc0\xf5\x01\xf5\x7d\x78\x7d\x0c\xde\xa5\xfd\ +\xfa\x28\x5d\x6f\x69\xbf\x0e\x9d\xf3\xfa\xa8\xb8\x1a\xae\x07\x8e\ +\xab\xbf\x3f\xf3\xfa\xa0\x77\x7d\x40\xcd\x1f\x14\xa2\xbb\xfd\xdf\ +\xe3\xb5\xf7\xfd\xc7\x28\x4b\x72\x4b\xdb\x75\xe8\x71\xd7\x5d\x42\ +\x2c\xb9\xee\xa6\x6b\xbe\xff\x71\xb1\x5b\x74\x1f\x14\xd7\xa9\xeb\ +\x13\x70\xbd\xfd\x68\xeb\xfa\xb8\xd8\x89\xd7\x4f\x6e\xbf\x1e\x38\ +\xf3\xfa\x98\x08\xa8\xf7\x3b\x81\xd7\xc7\x45\xef\x19\xd7\xa2\x75\ +\xdd\x2b\x06\x4e\xb4\x5f\x8b\x25\xd7\x58\xe7\x27\x74\xe6\xf5\x63\ +\x4b\xaf\xaf\x5e\x5c\xfe\x35\xfe\x78\xc0\x3d\xf3\xfa\xe0\x92\x6b\ +\xf7\x71\xd7\x47\xbd\x6b\x97\x7e\x3a\xf6\xf8\x6b\x71\xbe\xeb\xe3\ +\xe7\xbb\xee\xa6\x6b\x75\xbf\x83\x88\x91\x27\x5a\xd7\x47\xf1\xfa\ +\xb1\x0b\x5c\x2f\xb6\x5f\x0f\x3c\xfe\x9a\xbf\x45\x5e\x87\x96\x5c\ +\x1f\x93\xd7\x8a\x1e\x1e\x27\xc4\x3c\xf8\xb8\xeb\x6e\xef\xfa\xc0\ +\x92\xeb\x13\x82\xef\xba\xf4\xfa\x58\xeb\xba\x9b\xff\x4a\xdd\xef\ +\x31\xba\x7e\x4c\x9c\x41\x7f\x8f\x86\x96\x5e\x1f\xbb\xda\xd5\xb0\ +\xd6\x10\x17\x9c\x84\x72\x14\xcf\xbf\x08\x93\x4c\x70\xf0\xc3\x6b\ +\x2e\x66\x68\xd0\xa0\x41\x83\x06\x0d\x1a\x34\x68\xd0\xa0\x41\x83\ +\x06\x0d\x1a\x34\x68\xd0\xb0\x99\xa0\xb7\x4b\x88\x4f\xc0\xe7\x38\ +\x8c\x17\xc0\xcf\xd7\x09\x61\xdc\xea\x1f\x78\xe3\x1d\xf0\xf9\x21\ +\xa1\xeb\xb9\xac\x1b\x74\x89\xf1\xc9\xdc\xf0\xfc\x8f\x63\xe6\x1d\ +\x6e\xca\xf9\xa4\x9b\x0a\x1d\x71\x13\xce\xbc\x9b\x34\x67\xdd\x84\ +\x39\xe3\x26\x2d\xf8\x8c\x36\xbf\x26\x44\xf7\xaf\x09\xbd\x0f\x6b\ +\x0d\xcf\x8a\x07\x66\xdd\xb4\x35\xef\xa6\x60\xbd\xb1\x86\x61\xda\ +\x9e\x76\x53\x16\xd7\xae\xc5\xfa\x95\x49\x93\x7b\x98\xa6\xec\xa6\ +\x1b\x8d\x36\x60\x1f\xb6\x3e\xbb\xd3\x0f\x7d\x99\xc0\xce\xf8\xd0\ +\xec\x09\x3c\xe7\x54\x07\xd5\x9a\xa6\x5a\xa2\xbc\xf6\x30\x42\xdc\ +\x3f\x30\x69\x96\xe1\xb3\x02\x7b\x51\x71\xa3\x30\x3f\x6a\x36\x17\ +\x45\x8f\x28\x74\xfa\xe1\x37\x3b\x6c\x15\xe2\xf5\xb1\xc0\x9d\x7c\ +\xee\xb1\x8e\x2b\xf6\x1a\xc5\x3a\xbe\x21\x1c\x58\xc3\xbb\x02\x7b\ +\x80\x6b\x5f\x76\x93\xf0\x73\x12\xe6\x12\xd4\xcf\x71\xda\xdd\xde\ +\x1f\xfc\x40\xa7\x9f\x7f\xb3\xc3\x60\xe4\x7d\xdf\x88\x07\x8f\xc0\ +\xba\xcf\x72\xbf\xaf\x10\x0c\xac\x9b\x1f\xae\xc0\xcf\x58\x47\xbf\ +\x4c\x9f\x99\x30\xec\x81\x03\x03\xf6\x24\x61\xd6\xa8\x5e\x3c\xfc\ +\xf9\x1f\x74\xfa\xf9\x37\x3b\x24\xad\xb9\xe3\x29\x73\xde\xcd\xc0\ +\x79\xce\x52\x1d\xeb\x1a\xf7\x2d\x08\x57\x64\xaf\x2b\xde\x83\x2c\ +\xad\x7d\x09\xf6\xa0\x42\x75\xad\x91\x3e\x01\xfd\x79\x72\xa7\x9f\ +\x7f\x93\xc3\xf6\x44\x00\xe4\x1c\x63\x96\x7a\x5d\x61\x1d\xf1\x6c\ +\xa8\xc6\xbd\x23\x64\x9f\x29\xea\x33\x16\x2e\x61\x0d\x59\xa0\x41\ +\x25\xa6\x49\xd4\x4b\xbc\x86\xe7\xff\x09\x5b\x4f\x7e\x8d\xe0\x55\ +\xb1\xe0\x3c\xf5\x77\xa0\x9a\xed\xaa\xdf\xab\x53\x96\xfd\xe7\xb9\ +\x2f\x69\x21\xc4\x7d\x2a\x71\x5f\xd2\xd4\xcf\xab\x01\x7c\xa0\xba\ +\xd8\xe9\x87\xdf\xec\x30\x64\xfc\xd6\x97\xe2\xbe\x9a\x9b\x86\xf5\ +\xc7\x1a\xea\xd8\x2b\x29\x27\xfb\x2b\xe5\x23\xdc\x1f\x3a\x67\x4f\ +\x71\x7f\x1d\xc0\x03\xe2\x05\xb4\xfe\x75\x37\xee\xd4\x1e\xe9\xf4\ +\xf3\x9f\x05\xb0\x57\xcd\x73\xcc\xfd\xb7\x7c\x51\x74\xf5\xff\x3e\ +\xfe\x62\x6f\x64\xfa\xe8\xc0\xbe\xbf\xc0\xde\x0f\xa3\x9d\x7d\xb4\ +\xc7\x43\x8f\x10\x57\xc6\xcd\xf9\xd3\x58\x8f\x1d\x79\x2f\xf7\xe2\ +\x82\x75\x0f\xab\xbe\xa6\x53\x70\xf6\xe5\xfa\xc3\xc8\x00\x3f\xa0\ +\x7e\x66\xf0\x6f\xa3\xc1\xd2\xf1\x4e\x3f\x7f\x1b\xfc\xba\x33\x76\ +\xd7\x91\xe8\xf0\x1d\x8f\x44\xcc\x05\x77\x0c\xf4\x18\xd0\x28\xa9\ +\x96\xb8\xb9\x73\xfe\xbb\xc6\xe0\x0c\x5c\x6f\xfd\xe3\x4e\x3f\xe4\ +\xd9\x20\x93\x78\xf7\xdd\x49\x6b\x06\xd6\xb5\x01\x34\xa7\xc6\x7d\ +\x10\x81\xde\x14\xe0\xfc\x8f\x87\xb8\xa7\x6c\x5e\xd1\x1f\xd9\x1f\ +\x91\xfa\xe5\x38\x95\xfb\x3b\xfd\xec\x12\x7e\x35\xe4\xbb\xcb\x4d\ +\x04\x6f\x77\x93\xc1\x05\xa0\xa5\x73\xc0\x9b\x50\x7f\xac\x9e\xb6\ +\x02\xb7\x7c\x69\xc4\x68\xb8\xc3\x26\xe8\x2b\xc1\x06\xf2\xab\xfd\ +\x9d\x7e\xd8\xb3\xc0\x35\x89\xf0\x0c\xc9\x33\xc4\x7b\xb1\x9f\x0f\ +\x9c\xff\xf1\x48\x99\xe8\x3e\xe1\x80\xec\xf7\x99\x41\x19\xc8\xac\ +\x52\xaf\x9a\x48\x60\xea\x24\xfc\xed\x9f\x74\xfa\xe1\x7b\x06\x5f\ +\x32\x35\x32\xb8\xe0\x52\x5f\x0d\xd0\x61\x70\xed\xa9\xef\x80\xc9\ +\x7a\x3b\xe9\x8a\x46\xc5\x1d\x33\x70\xfd\xad\x57\x88\x0e\xf4\xd2\ +\x3b\x3f\xf4\xbd\x36\x35\xbc\x40\x32\x0d\xf5\xcc\x93\x3d\x61\xc7\ +\x87\xcb\x74\xee\xa9\xaf\xa6\xb7\xfe\x20\x7f\x9a\xa0\x83\xa1\x7e\ +\x6c\x4c\x3e\x0a\x7f\xfc\xda\x4e\x3f\xbd\x15\xf9\xe8\x37\xe3\x01\ +\xec\x0f\x03\xc3\x9a\x25\xbb\x49\x12\xe5\x33\x87\x78\x94\x1b\xb3\ +\xaa\xee\x98\x89\x3a\x63\xdd\x1d\x0b\x36\xdd\x91\xd1\xbb\x1e\x10\ +\xd4\x62\x74\x63\x40\x9f\xef\x45\x9f\x4b\x3a\x33\xd4\xaf\x86\x64\ +\x1f\xea\x65\xc5\x7d\x2d\xe9\xfc\x93\x0c\x5a\xa4\x81\xe7\x3f\x89\ +\xfd\x4c\xe0\x6c\x8d\x05\x2a\x78\xfe\xf7\x75\xfa\xf9\x23\xce\xf4\ +\xfd\x89\x00\xf6\x68\x9a\x83\xb3\x31\x23\x6d\x26\x55\xd0\x55\xe0\ +\x9c\x80\xbc\x80\x7d\x77\xe2\xf0\x6e\x31\x03\x06\xcc\x85\x8d\x23\ +\x14\x12\xdc\xe9\xe7\x56\x60\x86\x3f\x72\x4f\xdc\xe0\x5e\x68\x5e\ +\x0f\x29\x29\xf3\x17\xc2\x92\xf6\xdb\x93\xd4\x6f\x14\x65\x4f\xb2\ +\x05\x01\x2e\xef\xde\xf7\xfa\x5b\xe1\xcf\xfb\x3a\xfd\xfc\x3b\xf7\ +\xbf\xec\xd3\x09\x38\xff\xd8\xfb\x02\x75\x48\xe4\x63\x99\x90\xb4\ +\x99\xc0\x7b\x24\x69\xfd\x2b\x12\x0f\xea\xee\x88\x5d\xde\x50\x7c\ +\x20\x6c\xdd\x72\x1f\xca\x3f\xd8\xbb\x29\xab\xfa\xbc\x7b\xfd\x7d\ +\x8b\xb2\xb7\xe3\x14\xe0\x87\x5c\x7f\xb2\x85\x02\xae\x0c\x4f\x7f\ +\xab\xd3\xcf\x2e\xe1\xa9\x71\x3f\xae\xff\x0c\xaf\x3f\xf6\xcf\xc3\ +\x1e\x64\x28\x2b\xc3\x99\x49\x4a\xbb\x55\xdc\x2a\x01\x2f\xa8\xb8\ +\x23\x16\xf5\xa1\xf9\xa5\x4e\x3f\xb4\x82\x91\x40\xf1\xfb\xb4\xfe\ +\xd8\x57\x33\x5c\xf3\x7a\x82\xe3\xb9\x57\x83\xf4\x00\x3a\xff\x55\ +\xb2\x43\xc7\x0d\xc4\xed\x49\x7c\x8f\x2b\x3b\xfd\xfc\x00\x85\xb8\ +\xef\x4e\x5e\x7f\x3a\x47\xc8\xc7\x6a\x84\xaf\xbc\xfe\xa0\xb7\xc3\ +\x9a\x27\xad\x32\xf0\xe0\x29\xd8\x8b\x5b\xf0\xb9\x37\x0c\xfd\x1f\ +\x31\x6a\x0f\xa4\xd1\xf6\xa3\x74\x2f\xd9\xd7\x14\x79\xae\xd2\x7b\ +\x49\xf7\x82\xdf\x63\x6f\x5e\x5a\x7f\xec\xdd\x1b\xbf\xe5\x6f\x3b\ +\xfd\xec\x0a\x32\xa1\xe2\x83\xd8\x83\x07\x7b\xc7\xe5\xb0\x37\x9f\ +\xec\xd7\x9e\x95\x3a\x63\x12\xd6\x9f\xed\xe6\xb7\x3d\x18\x09\xde\ +\x86\x7a\xfb\xc5\xac\x3f\xf6\x71\xb1\x60\x98\x6b\xf1\xec\xa3\xc6\ +\xf4\x03\x29\xb2\x3f\x54\xe5\xd9\xe7\xf3\xcf\x7d\xa5\x8b\x44\x87\ +\xb2\x24\xfb\x03\x3d\xb5\x24\xfd\xe1\xbe\xb8\x1b\x06\xfa\xba\x47\ +\x4b\xa9\xe0\xac\x9b\xc3\xde\x8e\x40\xe3\x73\x36\xbf\x4b\x96\xfa\ +\xba\x03\xde\x5a\x25\xea\x85\x28\x7a\x7b\x0f\xc2\x3f\x0f\xae\xf2\ +\x6b\x40\xb7\xde\xf1\xbf\x33\x31\xd0\x33\xec\x79\xd7\x09\x4c\xbb\ +\xb2\x57\x58\xf7\xc5\x3c\x7b\x0c\xd6\x3f\x4d\x74\xb3\xd6\xb2\x3d\ +\x10\xef\x65\x1e\xb0\xc4\xf6\xe0\xd4\x48\x4f\xde\xbf\xf3\x8f\x6f\ +\xbc\x98\xef\x5c\x07\xe8\xcb\x04\xe6\xa8\x0f\x19\xaf\x3f\xf6\x25\ +\xad\xc8\xf5\x2f\x92\xcd\x04\xd7\x7f\xd4\x5f\x72\x47\x86\x6f\xbe\ +\x03\xfe\xfd\xf6\x15\xde\x3f\x97\xb6\xe7\x1e\xc9\x3a\xb3\x80\x5b\ +\xa0\x2b\x05\x59\xae\x4d\x80\xcc\x62\x44\x66\xbe\x0d\xf3\xbf\x22\ +\x56\xd9\xbb\x09\xd7\x3f\x45\x78\x8b\xfd\x14\xb9\x77\x72\x4e\xd9\ +\x3e\x95\xec\x1f\xae\x48\x1b\x34\xf2\xe8\xa6\x0b\x1b\xfe\xb2\xd5\ +\x7c\xd7\x7a\xc2\xa8\x7f\xce\x55\x34\x28\x6f\xd7\xc8\x96\x82\x38\ +\x8b\x72\x43\x0a\xe8\x51\x02\x68\x66\x34\x58\x72\x87\x83\xb7\xae\ +\x54\xfe\xe9\x87\xfb\xfe\x38\x87\x6b\x6f\xe3\x3a\x35\xc9\x56\x8c\ +\xfc\x04\x7b\x66\x47\x61\xbf\xc7\x8c\xba\x6b\xed\xf9\xed\x23\x62\ +\x15\xbd\x92\x63\xc6\xcc\x03\xd8\xaf\x4e\xe1\xac\x47\x7f\x22\x4c\ +\x7f\x90\x0e\xe5\x42\x65\xd9\xcb\xbc\x46\xf4\x35\x93\x38\xf4\xf9\ +\x95\x7e\xcf\x7a\x43\x6c\xcf\xbc\x9b\xc4\x9e\x5b\xc1\x86\x9b\x07\ +\x1a\x89\x3c\x80\x78\x16\xc9\x0d\x72\xfd\x03\x93\xee\x70\xe0\x30\ +\xae\xbf\xbd\xdc\xfb\x76\x89\x3d\x1f\x4f\x00\x6e\xe5\x9c\x69\x58\ +\x87\x66\x9b\x7c\xc5\x3d\x5e\x13\xc4\x0f\x41\xdf\x00\xbe\x2f\x18\ +\x0f\x56\xf6\xdc\x46\x13\xe8\x0f\xaf\x3f\xda\x77\xf0\xfc\x93\xec\ +\x29\x65\x50\xe5\x7f\x41\xbb\x3f\xea\xbe\x6c\xfb\xdc\x58\xf4\x1f\ +\x21\x02\xf4\x1f\x7b\x65\xe7\x70\xfd\x51\x3e\xb6\xf0\xbc\xb0\x0c\ +\x8a\xf2\x4f\xc2\x40\xf9\xb3\x0c\xe7\x1f\xd7\xdf\xf7\x47\xcb\xbd\ +\xef\x88\x53\xbd\x2f\x03\x7a\x75\x2e\x84\xfa\x11\xf7\xdc\x45\xdf\ +\x14\xd1\x09\x5b\xc6\x24\x58\xec\x23\x47\xdd\x4f\xac\x50\xb7\x48\ +\x18\x8d\x07\xd2\xa6\x3c\xff\xb0\xc6\xa4\xfb\x46\x2a\xee\x78\x58\ +\xf6\xf5\x6e\x5f\x7f\xab\x4a\x7e\xe0\xb8\x49\xb2\xe7\x4f\xac\x74\ +\x8d\xd6\x13\x7a\x85\xaf\x94\xf2\x33\x0f\xc6\xde\xea\x39\x0b\xfb\ +\x10\xa3\x0c\x5a\x24\xdf\x51\xc2\x2c\xba\xa3\xd6\x6d\xf0\xdc\xfd\ +\xcf\xe9\x13\xef\x5e\x2e\xff\xea\x4b\x1b\x47\x4e\x65\x9c\x19\xea\ +\x67\xcd\x72\x2d\xd0\x83\x30\xf3\x48\xe4\x31\xe8\x1f\xa7\xf5\x47\ +\xd9\x10\xbe\xf3\x29\x13\xe5\xaf\x89\x15\xd0\x21\x5c\xff\x14\xf6\ +\xfd\x05\xda\x8e\x74\x1e\x47\x01\x06\xda\xdf\xd4\xf9\x27\xfa\x0f\ +\xf3\x49\x0b\xe3\x1f\x40\x96\x0e\xdd\xea\xee\xd9\xf6\xb4\xdb\x57\ +\xb7\x52\xeb\x06\x13\xa9\xa1\x59\x37\x83\x34\xc8\x60\x1e\x9c\x25\ +\xbe\x5b\x04\x99\x01\xd6\xdf\xc0\x3d\x00\xdd\xb7\x57\x5c\xb3\x6b\ +\xcb\xef\x7e\x63\x79\xb7\xec\x3d\x98\xb6\x94\x6f\x90\x7b\x8a\x93\ +\x4f\x96\xe4\x43\xb4\xcb\x57\x58\x2f\x85\xdf\x93\x5d\x06\xcf\xa6\ +\x81\xb4\x61\xeb\x7b\x97\xfb\xd0\x31\x3c\xff\x96\x5c\x7f\x47\xf6\ +\xb3\x0f\x4b\xf9\x3f\x5c\xf1\x64\x1f\xfc\xee\x14\xf1\xfc\xa2\xdb\ +\xbd\xad\xff\xd7\xe1\x4f\x8d\x55\xae\xd3\x7a\xc1\xae\x38\xac\x7f\ +\xda\x37\x4d\xbd\x79\xb3\x56\x4d\xae\x99\xf4\x9d\xc2\x73\xa3\x1e\ +\x10\xda\xf3\xc1\x7f\x17\x62\xfc\xfb\xcb\xb9\xe1\xa8\xd5\xf8\x6e\ +\xce\x06\x9e\x0e\x74\x25\x0f\xf7\x2a\x84\xab\xb4\x36\xe3\xe1\x22\ +\x8c\x29\xb7\x80\xb6\x02\xba\xbf\xb4\xcb\xc0\x27\xea\x46\xb8\x9e\ +\x62\x99\xbe\x59\x45\xff\xf1\x7c\x63\x0f\x79\xec\x25\x3f\x8e\x7b\ +\x20\x47\x8e\xe4\x9f\x76\xbf\x17\xd0\x9e\x6d\xe2\xf5\x17\xb5\x52\ +\xeb\x04\xa3\xfe\xe6\x8f\xb0\x47\x36\xf2\x80\xac\x59\x95\x38\x50\ +\x26\x3a\x84\xeb\x1f\xb7\xa6\x5c\x7b\xe8\xf0\xe7\x76\xf4\xbf\xed\ +\xf4\x32\x6e\xd7\x97\xf2\xdf\xbe\x88\x32\x0f\xf6\x58\x2f\xe0\xba\ +\x20\x6d\x40\xdb\x70\xb8\x48\xe7\x1f\x6d\xc3\x44\xe3\xac\x32\xcb\ +\x58\x06\xd2\x87\x32\xd9\x67\x92\x63\x37\xfe\xdb\x72\x9e\x39\x41\ +\xf2\x27\xf6\x70\xae\xc9\x3d\xae\xd0\x77\x15\x9c\x12\xed\x03\xf1\ +\x99\x30\x9f\xff\x1c\xac\xff\xc0\x9e\x97\x37\x05\xf7\xf6\xdb\x70\ +\x60\xda\x7f\xfc\x77\xd8\x53\x9b\xd7\x1f\x71\x80\x65\x0a\xe2\xc1\ +\x36\xda\xe2\x30\x7e\xe0\xf0\x89\xc1\x5d\x87\x1f\xec\xda\x2e\x7e\ +\xef\x7c\xf7\xda\x3b\xf8\xdc\xf9\x9c\x39\x4b\xf2\x66\x21\x5c\xa7\ +\x73\x49\x3a\x11\xfa\x43\x60\x4c\x90\x6d\x1e\xce\xa6\x55\x22\xbe\ +\x89\x32\x16\xd1\x67\xb4\xcf\x03\x2e\xc4\xac\x19\xdc\xe3\x0b\xea\ +\x7a\x49\x6b\x9a\xe5\x4f\x87\x69\x10\xd2\x34\xda\x6b\xe2\xc1\x25\ +\xa2\x47\xf9\x48\x95\xf0\x23\x47\x7d\xb6\x17\x10\xb7\x56\xaa\xbf\ +\x5c\x2a\x78\x52\x0e\x64\xc5\x2c\xf0\x60\x3c\x2b\x74\xfe\xe5\xfa\ +\xa3\xed\x3c\x4e\x36\xa0\x8a\x1b\x19\x2a\xb9\xe1\xc1\xd2\xb1\xf3\ +\xdd\x28\x69\xcc\xff\x67\x56\xd2\x9e\x42\x48\xd2\x05\xf4\x49\xc1\ +\x99\x9f\x40\xfa\x13\x9a\xa4\x9f\xd1\x5e\x89\xb2\x6e\x46\xda\x07\ +\xe2\x66\x99\x74\x83\x24\xec\xc3\xc4\xc4\xed\xf7\x5e\xe8\x81\x47\ +\xc3\xd5\xfb\x30\xde\x13\x9f\x37\x0f\xfb\x56\x40\x1c\xc0\x35\x77\ +\x94\x0d\x0e\x3e\x87\xab\x1c\x77\x82\xf4\x9f\x65\x4f\x67\xad\x16\ +\x6c\x8d\xc1\xca\x81\x0c\x94\x21\x1a\x04\xef\x43\xba\x70\x99\xed\ +\xd1\x0e\xfb\x02\x62\x26\xef\x81\x63\xcc\x7c\xef\x3c\xf7\x09\xa6\ +\x8d\x79\xd2\xb7\x0a\x20\xf3\x14\xc2\xcc\x17\x99\xef\x4a\xfa\x83\ +\xba\x11\xd0\xb4\xbc\x5c\xff\xb4\xc9\x7a\x06\xc5\x68\x22\xad\xc6\ +\x4f\x58\x33\x71\x7e\x3e\x19\x4e\x5a\x8d\x1f\x65\x4c\xd4\x1b\xeb\ +\x24\xb3\x31\x9e\xc1\xa7\x5d\xe2\x3d\x40\xda\x1f\xae\x48\xdb\x3f\ +\xdf\x7b\x60\xcf\xd3\xde\xb3\xc6\xeb\xb6\x56\x70\x6d\x7a\x3f\xe0\ +\x2a\xec\x41\xde\x68\xc0\xfa\x34\x88\x76\x67\x50\x46\x44\xdf\x11\ +\xbc\x4f\xcc\xc2\x51\x71\x47\x9d\xd2\x03\xe7\xb9\xcf\xef\x64\x9c\ +\x79\xa0\x07\x4d\x38\xe7\x35\x77\x02\xf0\x7f\x62\x58\xf1\x5e\xd8\ +\x0b\xe0\xe7\x13\xb8\x1f\xb8\x46\xb8\x66\x76\x95\x78\x00\xae\x3f\ +\xae\x13\xd2\xa1\x94\x5c\xb3\x2b\xae\xa8\x9f\x8f\x0f\x3c\x39\x8a\ +\x32\x83\x81\xe7\xbf\x41\x7a\x3b\xe1\x9a\xa4\x41\x85\x10\xdb\xaf\ +\x32\xe8\xc7\x40\x1d\x06\xce\x4e\x14\xf6\x3c\x12\x3b\x74\xbe\x67\ +\xef\x24\xec\x45\x7b\x4a\xc6\xc0\xf5\x9f\xa1\x77\x2a\x38\x52\x67\ +\xf2\x70\xa0\x44\x3c\x32\x1a\x3a\xfc\xe0\xb9\x6e\x32\x12\x3f\x74\ +\x34\xef\xcc\xd2\xdf\x16\x60\xff\xc6\x23\x8c\x03\xc4\x7f\x9d\x32\ +\x8d\x2b\x10\x17\xe0\x3e\x05\xb4\x09\x18\xcc\xeb\x53\x46\x89\xe3\ +\x65\xe1\x6f\x30\x4e\x90\x78\x0e\xda\xfd\x44\xf7\xb5\xe7\xf8\x2a\ +\x03\xfb\x65\x93\xfe\x65\xa2\x8c\x55\x07\xda\xd6\xa0\xb5\x67\x39\ +\x94\xf5\x3c\xa4\x9f\xa8\xc7\x53\xec\x21\xdb\xfd\x33\xeb\xb3\x7c\ +\x17\x0f\x3b\x84\x78\x45\x06\xf8\x66\xde\x9a\x81\xf3\xd4\x20\xfa\ +\x9d\x25\xdd\xbe\x4c\x76\xd0\x24\xc8\x40\x78\x96\x62\x36\xc5\x0f\ +\x9c\x0d\x7a\x81\x86\x3d\x94\x77\xe6\xe4\xfa\xf3\x79\xcc\xd1\x79\ +\x04\x79\xd0\x2a\xd2\x27\xf0\xc6\x13\x85\x20\xfc\x0e\xd7\x0d\xed\ +\xf1\xb0\xce\x18\xbf\x86\x74\x88\xed\xc4\x55\xf2\xf9\xe0\x08\x59\ +\x4d\x8c\x3f\x4a\x9f\xed\xcb\xf8\xec\x4f\xc3\xf3\xa2\xdd\xaa\xee\ +\x8e\x3b\xc8\xeb\x01\xd7\x22\xcc\x07\x50\xbe\x45\x3b\x7a\x1a\xe8\ +\x1d\xda\x1f\xae\x62\xfa\xff\x73\xeb\xb6\x80\x17\x09\xfd\x42\x1c\ +\xc1\x78\xca\xac\xc1\xeb\x9f\x25\xbb\x2e\xeb\x96\x24\xa3\xa0\x2c\ +\xea\xb0\x2c\x04\xff\x7c\xcf\x59\x6e\xf1\x1b\x59\xeb\x4e\x58\x93\ +\x19\x38\xdb\xb8\x16\x75\x92\xcb\xc9\x9e\x0d\x7b\x87\x23\x07\xba\ +\x74\x20\xfd\xdb\x95\xe1\xf0\xc1\x12\xfe\xac\x68\x37\xca\x28\x19\ +\x49\xa7\x31\x5e\x3f\x8e\xfa\x18\xe9\x7e\x65\x77\xc4\xf9\xc3\xbf\ +\x3c\xdb\xf3\x26\xcd\xe9\xd3\x69\x7c\x56\xb2\x01\xd5\x69\xaf\x91\ +\x07\x90\xdc\x4c\x31\x87\x28\xdf\x4e\xc1\xd9\x29\x93\x9e\x6d\xed\ +\xad\xbb\xa2\xab\xff\x9d\xeb\xbb\x8a\x17\x05\x3b\x87\x7d\x53\x8f\ +\xa6\x80\x26\x64\xe1\xbd\xf3\xe8\xd7\x83\x91\xb5\xd8\x1f\x96\xb6\ +\xa7\x80\xfe\xc0\xfb\xc0\xfa\xe4\x53\xcd\x7f\x3f\xf3\x8f\x63\xa3\ +\x9f\xf8\xab\x2c\xd0\x7d\xd4\x9d\x0b\xa4\xef\xb6\xd9\x83\x91\x1e\ +\x23\x8d\x27\x1d\x57\x44\x60\xf4\x5b\x43\x37\x7f\x25\x19\x2c\xd1\ +\x77\xe5\x4c\x94\x47\x91\x2f\x54\xa4\xdd\x1b\xf7\x9a\xe3\x66\x51\ +\x1e\x82\x7f\x9f\x3f\xf3\xfb\x12\x46\xf5\x91\xa4\x94\xff\xc9\x06\ +\x84\x31\x70\x76\x89\x06\xca\xba\x19\x18\x7c\xf6\x81\x6e\x06\x6a\ +\x6e\xcf\x76\x13\x63\xce\x37\x74\xdc\x73\x7f\xb7\x78\x69\x14\xcf\ +\x23\xda\x41\xcd\x8a\x94\x51\x8a\x7c\x8e\xec\x49\x58\x8f\x22\xd9\ +\xb1\x46\xfd\x65\x94\xd1\xdb\xe5\x93\xfe\xa4\x7f\xf6\x14\xca\xe2\ +\xa4\x0b\xc9\x38\x04\x2f\x16\x01\x74\x2e\x5c\xff\x44\xa8\xf4\x0f\ +\xed\x7f\xe3\x58\x37\x7e\x3e\x03\xfb\x9d\x97\xdf\x85\x72\x4b\x06\ +\xbf\x0f\xfd\xe6\x52\xf7\x40\x9f\x6d\x62\xf8\x7d\x77\x9e\xf9\xac\ +\x70\xfe\x1f\x49\x21\x9e\xe2\xdf\xaa\xfd\x46\xb9\x96\x64\xab\x29\ +\x79\x8f\x22\xfb\x90\x82\xc0\x4b\xba\x7c\xaf\x82\x3f\x9b\x58\xef\ +\x35\xbc\x48\xe8\x1a\x0e\xdf\xf2\x45\xe4\x6d\xa9\x20\xc6\x15\xd7\ +\x58\x3e\xb1\x4a\x52\x86\x2b\x13\x0f\x8e\xc3\x5c\xef\xb6\xc2\x5d\ +\x6d\x7f\xf7\xcc\xb8\xb1\x00\x38\x3f\x4d\x3c\x3b\x1f\x62\xfe\x97\ +\xa5\x81\x3c\x1c\xee\x05\xbc\xb2\x6f\xef\x95\x6f\x3f\xe3\xfb\x8c\ +\x14\xac\x63\x86\x6c\xaf\xc0\x6f\xcc\x1a\xe9\x7e\x1c\xaf\xc0\xf2\ +\x10\xd9\x87\x82\x0d\xd8\xef\x6d\xf1\xf6\x3f\x8c\x19\x33\x8f\xc4\ +\x65\xfc\x67\x46\xc5\xc0\x49\x79\x21\x27\xe3\xd0\x49\x7e\x06\x7d\ +\x1e\xe9\xd4\xce\x9e\xa7\x62\xce\x4b\xc7\xe3\x7e\x2e\x00\xc6\x36\ +\x21\xde\x9e\xc1\x3c\x36\xa3\x46\xcf\x4e\x71\xab\xb6\xe2\x01\x72\ +\x4d\x50\x17\x70\xaa\xf7\xa8\x3f\xea\xd9\xf5\xf4\xf7\x60\x2e\x44\ +\x1a\xed\x91\xb6\x3c\x8b\xe1\xaa\x8c\xc7\xaf\x90\x0f\x20\x05\xbc\ +\x45\x9c\x45\xfe\x48\x8d\xd4\xff\x21\x13\x64\x3e\x9a\x95\xb1\xb4\ +\x59\xb2\x49\x57\xd9\x67\x4b\xdf\x07\x72\x54\xfa\xa3\xed\xb8\x43\ +\xe7\x3f\x6e\x72\xfc\x27\xe9\xbf\x21\xf6\xdd\xd1\xde\x3b\xd2\xf6\ +\x86\xdf\x8f\xf8\x0c\xff\x2e\x34\xf2\x67\x6f\x82\x3f\xfb\x7f\xd7\ +\x7f\x09\x2f\x0a\xcc\x7d\xbb\x6a\x6e\xd4\x87\x32\x61\x8d\xd6\x93\ +\xf2\xa9\x9c\xaa\xb4\x17\x57\x88\x1e\xa7\x61\x3d\xc6\x42\x33\x5f\ +\x51\x7f\x94\x30\x6a\x77\x63\xfc\x68\xd6\x51\xf6\xce\x8a\x5c\xfb\ +\x2a\x9d\xcb\x34\xc5\x34\xd6\xcf\x2a\x37\x6d\x15\xe2\x4f\x32\xa0\ +\x2f\x67\xfd\xf0\xb7\x46\x9d\xec\x4f\xe8\x53\x4f\x19\x65\xf2\x7d\ +\x26\x29\x6e\xb3\x42\xfe\x02\x90\x47\x9f\xa7\xfe\x2e\x67\x34\x1e\ +\x49\xe0\x39\x41\xbc\xb1\x59\x06\x45\x5e\x4f\x76\x20\xe4\xfb\x11\ +\xdc\xc3\x12\xf9\x7e\x71\xff\xc3\x46\xf1\x3e\xb1\x01\xe2\xae\x2e\ +\x00\x5b\x7a\xc5\xf4\xfd\x80\x03\x2f\x8c\x59\xd5\x07\x90\x17\x23\ +\xbf\xa5\xdc\x05\x87\x7d\x18\x49\x93\x7d\xf2\x89\xe8\x8c\xb2\xa3\ +\x9b\xf9\xe0\x11\x58\x83\x59\xcf\xde\x99\x0b\xc9\xb3\x8f\x3f\x83\ +\x5c\x9e\x42\xbb\x46\xb8\xfe\x9d\x73\x7c\xe7\xb6\x50\xe0\xce\xd3\ +\x19\x90\x27\x51\xf7\x23\xd9\xcb\x92\x7b\x20\xe5\x51\x92\x8b\x00\ +\x1f\xa2\xf1\x0a\xea\xde\x3d\xf8\x47\xe3\xc1\xfa\xa3\x49\xc0\x19\ +\xc4\x51\x96\xd5\xaa\x24\x7f\xe2\xf9\xa7\x58\xac\x70\x95\xf4\x16\ +\xbc\x47\x06\xe4\x82\x48\x90\x78\xbf\x75\x29\x16\xf1\x62\x60\x60\ +\xd7\x1b\x9a\x5d\xbd\xfd\x7f\x0a\xeb\xfe\x65\x8c\x19\x46\xdb\x09\ +\xea\xc1\xb8\x96\x4a\x4f\x45\xff\x61\xd2\x6e\x3c\x2c\xff\xe4\xb9\ +\x19\x13\xce\xbe\x39\xcd\xb6\xc8\x30\xdb\x83\x73\xf2\xec\xa3\xdf\ +\x31\x1d\x58\x70\xbb\xb7\xa7\x3e\x74\xae\xef\xec\x15\xe2\x0d\x71\ +\x73\xee\x74\x0e\xed\x69\x41\xf8\x5b\xb4\xc1\x12\xef\xe1\xef\x27\ +\xbb\x10\xd9\xeb\x50\x27\xf3\x1d\x84\x3f\xd9\x8f\xff\x06\x78\x07\ +\xe7\x5e\x38\xbc\xf6\x1e\xfd\x91\xfc\x87\xf6\x20\xc4\x38\x1b\xb5\ +\x48\xff\x5a\x93\xd8\x97\xf5\x84\x1d\x5d\xe2\x15\xfe\x9d\xb7\xce\ +\xc6\xec\xe6\x3f\xe2\xd9\x41\xdc\xa6\xd8\x79\xb4\x07\xe1\xfa\x3b\ +\xcc\x57\xf3\x1c\x4b\xd3\xd3\xb7\xe7\x57\xdf\x93\xb7\xd9\x0e\x83\ +\x76\x00\x5a\x07\xe2\x81\xcc\x0f\x31\xdf\x30\x13\x68\xfe\x48\x5c\ +\xc0\xae\x3f\x3a\x76\xdb\x17\x52\x78\xfe\xd1\x07\x84\x32\xb0\xa4\ +\x43\x69\x69\x93\x4b\x18\x2c\x13\x25\x23\xe8\x8b\x13\xaf\x45\xdf\ +\x0d\xd2\x9e\x7c\x98\x07\xda\x9b\x28\x0e\xc2\x61\x3f\x8c\xb7\xfe\ +\x18\x4b\x00\xf4\x32\xc5\xfa\xef\xd0\xa5\x58\xc3\x8b\x84\x89\x6d\ +\x62\xee\xde\x48\xfc\xb6\x4f\x51\xbe\x02\xc6\x77\x13\x4f\xac\x90\ +\x3c\xc1\x3e\xa5\x92\x3b\x0e\x72\x1e\xfc\xdb\x44\xde\x3c\x7c\x37\ +\xe9\xa0\x70\x5e\x0b\x52\x07\x55\xb4\x1f\xf3\xe2\x50\x3e\x89\x8e\ +\xd6\x97\x13\x73\xb6\x73\x2c\xf8\xc9\x53\x64\xcf\x31\x19\x07\x32\ +\x44\x3b\x6a\xa4\xbf\xa2\xff\x30\x05\x3a\x1b\xc6\x1b\x66\x86\x6b\ +\x64\x5b\x56\xb2\x16\xf2\x7b\xb2\x75\xc0\xe7\x04\xd2\xff\x88\x7a\ +\xce\x0a\xdb\x71\xad\x1a\xf9\xf2\xc4\xd9\xf5\xc6\x8d\x06\x5b\x77\ +\xf4\x34\x1e\x8a\xee\x6f\x9c\xc8\x18\xca\x1f\x5c\x96\x3e\xf9\x22\ +\xe9\x01\x69\x73\x0a\xd6\x88\xce\xff\xef\xe7\x41\xb7\xc9\x2b\x1f\ +\x48\x88\xe9\x0f\xc5\x38\xe0\xbb\xa3\x2d\xdb\x68\x5e\xc8\x96\xe9\ +\xc1\x4e\x11\x9f\x41\x9f\x4a\x81\xf0\xa0\x4a\xb1\x00\x59\xb2\x85\ +\xb3\x7e\x9c\x56\xeb\x49\xfc\xbd\x44\x36\x06\xb2\xbb\xd9\x65\x69\ +\x77\x43\x1f\x18\xdb\x9a\x68\x7f\x42\x7c\x66\x32\xe4\xe7\x3f\xa7\ +\xde\xbe\xe1\x60\xd7\xd0\xcd\x8d\xe8\x3e\xc0\x5d\x94\xcb\xf1\xfc\ +\x3b\xad\x98\x20\xd4\x2b\x51\x1f\x43\x3d\x73\x8b\x88\xce\x50\xec\ +\x87\xb4\x3d\x92\x1f\x36\xcc\xe7\x12\x69\x16\xee\x5f\x0c\xf4\xd4\ +\x15\x7c\x75\x5f\x34\x30\xe7\x66\x40\x5f\x1a\x47\xda\x62\x49\xfb\ +\x90\x5d\xf1\x68\x1f\x0d\x8a\x69\x2e\xd1\xf3\xe4\xa5\x5d\x0f\x7d\ +\x3a\xf8\x39\x4e\xf2\x27\xc7\x82\x66\x65\xfe\x3b\xad\xff\xe6\x39\ +\xff\xc0\x0f\xfb\x7f\x33\x36\x34\xe3\xa6\xfe\xff\xf6\xbe\x04\x4c\ +\xae\xab\x3a\xf3\x75\x57\x2f\xda\xac\xd6\xd2\x5d\xcb\xdb\xab\xba\ +\xbb\xf6\xb5\x0d\xc6\x90\x04\x39\x06\x62\x03\x1f\x03\x81\x84\xb0\ +\x4c\x3e\x3c\x24\x61\x99\x0c\x81\x30\x4c\x80\x0c\x41\x72\x1c\x02\ +\x13\x08\x18\x06\x32\x09\xb6\xb1\xa4\xae\xbd\xab\x37\xb5\x30\x66\ +\x99\xa1\x03\x03\x26\x03\x93\x6d\xc8\x97\x6f\xb2\x8c\x45\xe2\xc4\ +\x21\xc6\x58\xc6\x0e\x28\xb1\xd0\x9b\xfb\x9f\x73\x5f\x55\x75\xab\ +\x77\x55\x55\x4b\xf1\x3b\x49\xf1\xae\x5b\x55\xef\xdd\x7b\xde\x5d\ +\xce\x3d\xf7\x9c\xff\x0f\xd6\xf8\x3c\x52\xea\x16\xf3\x4e\x4e\xfa\ +\x76\x73\xb4\x1f\x38\xfd\x28\x6c\xed\x29\x9b\x63\x9f\x5a\x79\x28\ +\x35\xb6\xdf\xe9\xfd\x95\xb6\x74\x66\xec\x4a\x24\xfa\x81\x6f\x24\ +\xe0\x03\x17\xef\x20\xaf\x56\x78\xee\xa3\xf8\x1d\xde\x4f\x65\x64\ +\x6c\x12\x74\x4f\x71\x6e\xae\xee\x8d\x22\xeb\xde\xe0\xd8\x73\x8a\ +\xb3\xb0\xf8\x5d\x91\xfe\xd7\xf7\x5b\x5d\x75\x22\x6c\xf2\x1f\x4b\ +\x8e\xcd\x52\xff\xcd\x4b\x9b\x92\xfb\x77\x4b\xff\x59\x19\xc3\x90\ +\x6f\x8b\x35\xce\xb9\x76\x0f\xfa\x3e\x72\xcd\x03\x55\x47\xdc\xec\ +\xe6\x6d\x3e\x5e\x8d\x04\x17\xc5\xb3\x6b\x34\x07\x15\xa4\x6f\x87\ +\xfd\x6a\x65\xf9\x7e\x71\x36\xcd\x7a\x9e\x82\x3f\x5b\xf6\x81\xeb\ +\x71\xce\x60\xca\xf3\x77\xfa\x9e\x8c\x65\xc2\x3e\xce\xba\x76\xf4\ +\x2f\x24\x1c\x1f\x13\x36\x25\xfc\xa1\x5a\x8d\xce\x62\x68\x0c\xd0\ +\x99\xfc\x34\xe5\xf4\x70\x8c\x10\xe7\xf8\xa0\xaf\x41\x1f\x1c\x87\ +\x53\xa3\x9c\x5c\xac\xdd\xd9\x50\x75\x27\xb9\x86\x7d\x43\xfb\x6e\ +\xb8\x07\xeb\x00\x6c\x21\x9c\x23\xe0\x9c\x06\xfe\x39\x8c\x81\xac\ +\x8c\x9d\xe0\x18\xdb\x12\xf9\x7a\xf2\x46\xdb\x7b\x90\x67\x30\xe8\ +\x2f\xbc\x6e\x55\xc8\x06\x48\xda\xe5\x6b\x49\xff\xc1\xf8\xe8\x19\ +\x31\xff\xcc\x73\x4c\x16\xf2\xfb\x4d\x9e\x57\x57\xe8\x5b\xe6\x58\ +\xe5\x65\x9c\x3d\xc7\x60\x56\xf9\xbc\x5b\xc3\x7e\x35\xfc\x92\xcd\ +\x1f\xb5\xa6\x1c\x89\x04\x16\xe8\xdd\xe7\xe0\x8b\x35\xf8\x7c\x9d\ +\xdf\x7f\xb1\x99\xdf\x8e\xfc\x16\xca\x73\x84\xfe\x49\xf7\x25\x8a\ +\x6d\xe1\xf9\x9f\xf7\xe1\xd8\xaf\xa0\x2e\x71\x93\xce\x34\x03\x9d\ +\x54\x52\x37\x25\x3e\x3a\xef\x24\xfd\xb3\x9c\x1b\xa0\xf3\x59\x58\ +\x5e\xfa\x94\xa9\xfd\x76\x9b\x2e\x2c\xce\x33\xe1\x39\x42\xac\x97\ +\x68\xaf\x4a\xf6\xf6\xc8\x4e\x9f\xdf\xaf\x1c\xf8\x75\xf8\x40\x0a\ +\x38\x5f\x87\x2d\xaa\xb9\x7d\xbf\xcc\x3e\x66\xcc\x3f\x06\xc7\x7b\ +\xd2\xfc\x8f\x73\x2f\x83\xd7\x03\xd6\x3f\xcf\x3d\x29\xf2\x23\xcd\ +\x38\x71\x8e\x71\xb4\x3b\xa6\xa0\x2e\x4b\x26\xb4\xe4\x24\xc7\x1a\ +\x4e\x16\xb1\xa1\xba\xf4\x2b\xc8\x3e\x4e\xf9\x9d\x74\x8e\x5b\x94\ +\xf1\x06\x25\xd9\xde\x0a\xe5\xd1\xa4\xd5\x19\xf2\x9d\x29\x57\x96\ +\xaf\x77\x74\x3c\x88\x35\x08\x7b\x81\x0a\xe7\x86\x18\xad\xf9\xc7\ +\x7d\x07\xee\xbc\xc3\x73\x0f\xdb\x42\xf4\x6f\x96\xf4\x99\xd0\x67\ +\x46\xec\xe1\x60\x07\xfb\x5e\xd9\x29\xfd\x74\x5b\xc2\xa1\xdb\xfe\ +\x20\x15\x60\xbf\x98\x1b\x13\xc7\x39\x6e\x8c\x71\xc1\x73\x6f\xb1\ +\x19\x6f\xcc\x76\xb9\xb0\x7b\x90\xbf\x3a\x3a\xe3\x3c\x63\xaa\xfc\ +\xf5\xcd\x9f\xb2\xb1\x8c\x9b\xef\xb8\x3f\x85\xf5\x07\xe7\x64\x5a\ +\xbb\xfe\xcb\xcd\x1c\x0b\xaa\x83\xab\x7f\x8b\x6d\xd0\x9c\xdb\xff\ +\xc9\x67\xc5\xb1\xbe\x71\xb1\x96\xd8\xf6\xaf\x7e\xb8\x13\xba\xe9\ +\x91\xdc\x32\xe1\x5f\x74\x10\x97\xe5\xfa\xe5\x73\x66\xab\xed\xad\ +\x71\xcf\x7d\x91\xf1\x47\x78\xbf\x9b\x0c\xd2\x99\x55\x27\x70\xd6\ +\x52\xe3\xda\xc2\x25\x3a\xa3\x51\x2b\xb4\xf7\x65\x5b\xb8\xdc\x8c\ +\x6b\xc9\xb9\xf3\x50\xdb\x1e\x20\x6f\x96\xdb\xfa\x43\x8d\x63\xad\ +\xc9\x77\xa4\xbc\xac\x03\x75\xea\x99\x44\x03\x67\xfe\x3c\x19\x10\ +\xf3\xbf\xca\x3e\x49\x3a\xe3\x6b\xd3\x3f\xc6\x00\xe5\x39\x98\x1c\ +\xe7\x97\x26\xec\x35\x61\xeb\x05\xcb\xeb\xf9\x3a\xb7\x2d\x07\x94\ +\x67\x97\x93\xaa\x8c\x95\x68\x5f\x03\xcc\x52\xcb\x0e\x82\xfe\x0d\ +\xde\x03\xe4\xe5\x9e\x2c\x47\x6b\x6f\x95\xeb\xa3\x43\xff\xd3\x57\ +\x55\xfe\xec\x56\xe4\x48\xe8\x8d\x77\x52\x5c\x6e\xb0\x4e\xfe\xc8\ +\xa6\xfe\xed\xb6\xf1\x4f\x31\x67\x7c\x86\x0e\xfd\xa7\x82\xb0\x33\ +\x06\x9e\xdf\xc1\x6a\xd8\xe3\xda\xfc\x45\x8c\xc1\x82\xce\x3e\x89\ +\x15\xba\x77\xeb\x61\xb6\xd6\x01\xfe\xef\x8a\x3c\xc3\xe1\x73\x9c\ +\xb4\x56\xc4\xf9\xc3\x8e\x72\x9d\x76\x4b\x86\x15\xe5\x85\x69\xb1\ +\x06\x20\x26\xae\xe0\xfa\x03\x74\xde\x7f\xe5\x49\x07\x65\x39\x1f\ +\xf0\x7e\x17\xbe\xd2\x9c\x36\x8b\x98\x91\x7d\x9d\xac\xc7\x01\xc5\ +\x7f\x3b\xce\x70\xc9\x2f\x27\xfb\x00\xed\xbf\x64\x5c\x5d\x5e\xce\ +\x83\x53\xee\x7c\x48\xfd\x82\x31\x4f\x52\xd2\x87\x1d\xb6\x7f\xfb\ +\x54\x27\xeb\xd4\x23\x09\x25\xc5\x1a\x90\x0b\xc2\x27\xe6\xf6\xbf\ +\x72\xd3\x0e\x72\x7d\x0d\xd4\xf7\x11\x47\x25\xe6\xfd\xcc\xe4\x27\ +\xcb\x5d\xa8\x87\x41\xe7\x03\x34\x06\xe4\x1a\x60\xc8\x7e\x20\xf5\ +\xcf\x78\x57\xb2\xef\x23\xf6\x90\xfa\x49\xb5\x19\x1f\x21\xee\x71\ +\x6b\x17\xea\xd5\x75\xc9\x6b\xa5\xbf\xc8\x8a\x35\xa0\x20\xe6\x15\ +\x8c\x81\x82\x3c\xdf\x25\x7f\x9c\xc9\x67\x31\xc8\x1f\xa2\x33\xf0\ +\x20\xed\xf1\x6f\xe8\x46\x3d\xc6\xad\x7b\xbf\x90\x95\x3e\x89\xbc\ +\x51\x69\xd9\x42\x4d\xcc\x8d\xd6\x9a\xc4\xe3\xa3\x24\xfd\x76\xf0\ +\x05\xd2\x5e\x64\xb4\x1b\xf5\xea\xb6\x1c\x18\x50\xee\xc8\xa9\xf3\ +\x42\xff\x75\x67\x4a\x67\x7f\x50\x96\x7c\x92\x35\x3e\x1b\xc3\x18\ +\xa7\xf3\xaa\x86\x93\x1c\xbf\xf7\xde\x6e\xd5\x63\x50\x51\xa6\x28\ +\xde\x50\x75\xf3\x64\xdd\xb9\x48\xe6\xd5\xc8\xfc\x17\xf6\x51\x55\ +\xa4\x0f\xbc\x4a\xfb\x91\xfc\x64\x0d\x7e\x90\x6b\x6a\xee\x6f\x93\ +\xa3\xa9\xd0\x7d\x17\x91\x1f\x56\x40\x7c\x83\xc6\xbe\x05\xb2\x75\ +\x80\xa7\xa3\xf1\xba\x3b\xa5\xd7\x80\xab\xd3\xd5\xf8\xee\xf8\xd8\ +\xd9\xbf\x85\x4f\x35\x07\x7b\xc8\xe0\x3c\x05\x3a\x73\xb0\x2a\xcd\ +\xfc\x0b\x3a\x7b\x93\xb1\x17\x88\xfb\xc4\x5e\xdc\xb6\x3f\xbe\xd8\ +\xcd\x7a\x75\x5b\xe2\xe1\xe2\xc3\x6e\x7e\x06\x7c\xa2\x19\x0d\x7a\ +\x17\x7b\x4a\xd1\x17\x53\xb4\x2e\x8b\xbd\xe5\xe0\xe4\x5b\xbb\x5e\ +\x0f\xe3\x53\x7f\x9a\x02\x5e\x0b\xf6\x84\x9a\x1b\xaf\x52\xe7\x1c\ +\x30\xd2\xbd\xdc\xa3\xd8\xf2\xcc\x06\x71\x47\xf0\xc3\x8e\xcf\x20\ +\xee\xf9\xaa\xc1\xce\xd9\xae\x0c\x28\xca\xf3\xd2\xda\x19\x27\x25\ +\xd6\x01\xe4\xca\xa7\xf0\x51\x1b\xf4\x0e\x30\xef\x3c\x2b\x7a\xea\ +\x8f\x95\x1e\x8c\x6f\x9f\x4f\x79\xed\xa4\xb6\x40\x71\xe7\x19\x7f\ +\x83\xfa\x41\x16\x67\xa4\xc0\xb5\xd5\x79\x4e\x24\x2c\x56\x83\xc7\ +\x27\xf6\x5d\x09\x60\x7a\xf1\xfa\xbb\xbf\xdb\xf5\xeb\xa6\xc4\xb4\ +\x93\x8f\x26\x44\xbb\x31\x0e\x52\x62\x2d\x48\x00\x33\x42\x47\xac\ +\x79\xed\x49\xf1\xcf\xc1\x5e\xd5\x63\xff\x80\xf2\xf6\xf1\xd0\x19\ +\x3a\x9b\xcb\x05\x11\x7f\x3e\x4b\x1f\x60\xb8\xa4\x69\x3c\x36\x28\ +\x2e\x1d\xe3\x12\x78\xc3\xc8\xf3\x4e\x70\xec\xc3\xb5\xe2\x7b\x5e\ +\x53\xf6\xf8\x94\xd7\x27\xac\xfb\x1d\xc4\x26\x26\x82\x73\x4e\x12\ +\xb8\x1d\x46\xe5\x5f\xc4\xba\x98\xdb\x85\xea\xc4\x83\x07\x7e\x4f\ +\xec\xcd\x45\x1d\xcc\x05\xd1\xdf\x67\x45\x7d\xc4\x3b\x08\x21\x6e\ +\x72\x96\x70\x59\xf1\x1e\x92\x62\xdf\x82\x38\x2e\xa1\xff\x3f\x54\ +\xae\xdd\xf5\x77\x85\x88\xb9\xe8\x47\x06\x06\x5e\xfe\x1f\x07\x95\ +\x57\x9d\x54\xae\x8e\x78\xb2\x01\x7b\xf4\x0d\x5f\x8b\x04\xce\x0a\ +\xbd\xcf\x39\x71\xff\x8c\x13\x17\x7d\x03\x98\x52\x29\x7b\xfa\xdb\ +\xe2\xdf\x7f\x6c\xb7\x2b\xf8\x74\x90\xc1\x3e\xe5\x73\x56\xf8\xd4\ +\x72\x4c\x3b\xfd\xad\xc9\xc0\x34\xfc\x4f\xaf\xde\xed\x3a\x79\xe2\ +\x89\x27\x9e\x78\xe2\x89\x27\x9e\x78\xe2\x89\x27\x9e\x78\xe2\x89\ +\x27\x9e\x78\xe2\x89\x27\x9e\x78\xe2\x89\x27\xd7\x96\x38\x57\xa9\ +\x9c\x1b\x69\x95\x97\x7d\xad\xf2\x89\xbe\x56\xb9\xbd\xf6\x5b\x28\ +\x5f\x5a\x51\xee\x5b\x5d\xfe\x96\xd5\x2a\xdf\x6e\xd1\x6f\xa9\xac\ +\x8c\xb4\xee\xa3\x0c\xb7\x95\x7d\x1b\x96\xfb\x36\xfa\xfb\x09\x9f\ +\xf3\xb8\xfb\x97\x13\xc3\xce\xf2\x71\xb7\xec\x73\x4e\x58\xb2\x2c\ +\x5a\x2d\x1e\xbd\x76\x79\x58\xde\x67\xd9\x77\x49\xfc\x71\xed\x72\ +\x9f\xfc\xfe\x39\xdf\xc5\x56\xb9\xef\xa2\xa8\xcc\x5a\xe5\x0b\x8a\ +\xf2\xde\x75\xca\xcf\xe5\xf2\xf9\xbe\xf3\x8a\x62\xc9\xb2\xb2\xaa\ +\x3c\xc2\xe5\x0b\xca\x6d\xbe\xf6\xf2\x89\xe1\x56\x79\xb9\x55\x1e\ +\x5e\xf6\xb9\xe5\x9b\x86\x97\xfb\xb8\x7c\x51\x94\xcf\x29\x6e\x59\ +\x19\x3e\xdf\x2a\x8f\xb4\x97\x2f\xc8\xb2\x78\x9d\x56\x7b\xf9\xe2\ +\xda\xe5\x63\xed\xe5\x4b\xb2\x2c\x5e\xc9\x31\x67\xed\xf2\x71\xe7\ +\xc4\x1a\xe5\x13\xe2\x15\x2e\xaf\x53\x3e\xc7\xbd\x82\xba\xa6\x5b\ +\x5e\xee\x83\x62\x64\xd9\xb7\xb2\x7c\x81\x7b\x94\x73\x6e\x18\xe5\ +\xe1\xcb\xca\xe7\x47\xd0\x50\x59\xb6\x50\x71\x2e\x5f\x3c\x86\x1b\ +\x58\x4e\x53\xce\x1f\x77\xae\x79\x01\x18\x11\x92\x09\x4e\x2a\x08\ +\x2c\xb2\x69\x4e\x5a\x7e\xe3\x2e\x4d\x86\x9e\x78\xe2\x89\x27\x9e\ +\x78\xe2\x89\x27\x9e\x78\xe2\x89\x27\x4f\x0f\x01\x97\xea\xdd\xe2\ +\x73\x9b\xa2\x68\x55\xd5\xf8\xe8\x83\x3a\xb0\x2e\x07\x94\x4e\xe6\ +\xe0\xfe\xab\x94\x88\xbe\xf8\x83\xa4\xb9\xe4\xa4\x88\x83\x7d\xd1\ +\x49\xea\xcc\xc3\xce\x1c\xec\x0d\xc7\x9e\x38\x8b\xbc\x31\x4f\x8f\ +\x6b\x88\xa9\x9f\xa8\x67\x0c\xa1\x33\x6d\xde\x01\x0f\x67\xda\x68\ +\x38\x29\x99\xf3\x02\xac\x50\xe2\x5d\xb3\xc0\xa7\x3e\xeb\x44\x27\ +\xe7\x37\xe5\x33\x79\x9a\xc9\x75\x13\xa3\xf7\x09\x7d\x2d\x10\x36\ +\x4c\xda\x98\x71\x52\x94\xaf\x25\x71\x76\xdb\xf8\x48\x12\xc4\xdd\ +\xd5\x70\xbc\xf1\xbc\x42\xac\x68\x68\x41\xe8\x4d\xf4\x3d\x60\xce\ +\xdb\x75\x27\x63\x57\x09\x9b\x8d\x71\xaf\x99\xb7\x07\xfc\xd9\x49\ +\xca\x55\x6d\xac\x89\x21\xff\x74\x15\xd5\x7e\x53\x09\xdc\x98\xe0\ +\x2f\xcb\x20\x5f\x0d\xfc\xac\x76\x8b\x77\x36\x6b\x15\x85\x0e\xcb\ +\x84\x1d\x9b\x36\x39\xc7\x54\xe9\x61\x8e\xd7\xd5\x2e\x59\xe4\x38\ +\x85\x98\xdf\x8f\x79\xc3\x19\xeb\xd2\xc5\xa3\xc8\x49\xde\x67\xe4\ +\xa7\x23\x47\x37\xc9\xd8\x4f\xd7\x6c\xfe\x65\xa7\x25\xe9\xaf\x09\ +\xfd\x89\xbe\x27\xf9\x0b\x19\x2b\xd7\xe5\x6e\x66\x3c\xaf\xac\xc4\ +\xf0\x43\x8e\x6b\xdc\xa8\x5e\xd8\xe5\x2a\xc7\x0e\x8d\xbc\x6b\x99\ +\x8b\xcf\x3c\xa9\x1d\x7a\xd7\xff\xd9\xf0\xdb\x5d\x96\x49\x6d\x8e\ +\x72\xec\x90\x67\x9a\x95\xb8\x8c\x79\xe2\x36\x2c\x13\x1e\x1c\xf8\ +\x2f\x80\x4d\x47\xf8\x03\x62\xec\x46\xb5\xf2\xf7\x7a\x5d\x47\x9f\ +\xa2\xfc\xb4\x39\x79\xff\xd2\x84\xf5\xe9\xa7\x26\xb4\x05\xc7\x0a\ +\x7c\x91\xb8\x87\xb5\x03\x8b\xff\xa8\x1f\x9d\x47\xae\xfa\xee\x61\ +\xd1\xf9\x94\x57\xa4\x74\xc6\xee\x87\xfe\x18\xaf\x19\x58\x62\xcc\ +\x0f\x36\x25\xf1\xe4\xd2\xc4\xfd\x80\xf9\xb1\xb2\x13\x1c\xc5\x2b\ +\x91\x11\xf3\xe8\xe7\x9d\x78\x70\xc9\xc1\x3c\x9d\x12\x76\x69\x5c\ +\x9b\x75\xc2\x13\x4b\x8f\x4e\x8a\x39\xdb\x0c\xd6\x9c\xc9\xc4\xe7\ +\xbe\xd6\xe3\x3a\xb5\xcb\xde\x64\x78\x81\x6c\x3e\xe0\x0d\xb7\x30\ +\xe1\x8a\x12\x07\x83\xb1\x11\xd3\x92\x3b\x21\x12\x98\x06\x5f\xc9\ +\xeb\x7a\x58\x3f\x75\xc2\x7f\x56\xe8\x6f\x9e\xec\xd3\x94\xb0\x11\ +\x90\x87\x1d\xd7\xc5\x58\x10\x9f\x49\x5c\x55\x9a\x93\x7f\xbd\x87\ +\x75\x6a\x97\x51\xe8\x2f\x2b\x79\x23\x08\xc3\xda\x92\x58\x76\xcd\ +\xf9\xaf\x44\xf8\x15\xc0\x8e\x4a\xe8\xa7\x91\x63\xdd\xb3\xfc\xf1\ +\x41\x45\xf9\x45\xf4\x3b\xac\x71\x69\x31\x4e\x80\x29\x07\xfb\x34\ +\x21\xe6\xe9\x98\x18\x13\x31\x61\x53\x45\x43\x75\x71\xad\xef\x16\ +\xae\x89\x1d\x87\xdd\xac\x4b\xfd\x81\x77\xcf\x2e\x49\x9e\x39\x70\ +\xa0\xb3\xfd\x07\xec\xcb\x84\x78\xcf\xf2\x5d\xf7\x92\x7b\x20\x97\ +\x08\x9e\x71\xc0\x27\x06\x8e\x46\xe2\xb8\x06\x16\xb3\xa8\x5b\x1c\ +\x9c\x3a\x62\x5c\x4c\xaa\xe8\x83\xb3\x84\xa1\xde\xc3\x7a\x91\xec\ +\x05\xdf\x1f\xb8\x4b\x88\x6b\xa8\xc5\x1d\x9c\x03\x96\x28\xfa\x1f\ +\x30\xae\x89\x17\x94\xfb\xdf\xd8\x91\x9f\xfa\x5c\xaf\xab\x98\x80\ +\x7d\x1f\x9a\x63\x0e\x12\xe2\x22\x64\xbb\x3e\x09\x0e\x1e\xb3\x42\ +\x7c\x84\x13\x8c\x81\xde\xf3\x31\xbc\x47\xb1\xde\x93\x24\xfc\x03\ +\xc6\xb9\xcd\x4b\xde\xe5\xa9\x08\xcf\x83\xee\xda\x4b\xbc\x9e\x41\ +\xa1\x47\xc6\xfe\xef\xe5\x7a\x37\x38\x21\xd6\x8e\x74\x68\x96\xb8\ +\x30\x19\xaf\xa7\xdc\xe4\x74\x4a\x49\xbe\xe9\x98\x76\x72\x57\xec\ +\xfa\xbd\xc3\xcf\xbe\x13\xeb\x2f\xe3\x5a\xb6\x30\x5d\xdd\xb9\xaf\ +\xa9\x3f\x70\xbf\xa8\x55\xb1\xee\x7d\xb4\xd6\xeb\x3a\x6a\xf6\xcf\ +\x2d\x26\x43\x73\x84\xb7\xc3\x58\x37\x65\xc9\x49\x5d\x62\x4c\x5d\ +\xe0\x1e\x8d\x7f\xe2\x4b\xe2\xab\x07\x77\x70\xfb\x77\xeb\xfe\xd7\ +\x3d\xb0\xd3\xba\xed\xdd\xff\xc2\x3b\x93\x6a\x83\xc6\x2f\xf4\x07\ +\xbe\x03\xc2\x81\x94\x58\xc4\xac\xbf\xb2\xc4\x67\x22\x4e\xeb\xdd\ +\x90\x9b\xa3\x7e\x60\xd9\x4b\x4e\x6f\xc2\xf0\x66\x4e\x6f\xd8\x05\ +\x78\xb7\xca\x80\xf2\x02\x45\xf2\xc9\x6c\x4d\x62\x6f\x4b\x99\x67\ +\x1c\xf0\x04\x86\xad\x86\x33\x1e\x9a\xbd\xa8\x90\xdf\x73\x7b\xb2\ +\xff\xc0\x0b\xef\x4c\x81\x3f\x11\x38\x52\xa6\xe4\xea\x80\xed\x62\ +\xbb\x58\xaa\x25\x89\x2d\x56\x77\xae\xdb\x7b\xc3\x07\xb6\x7b\xff\ +\x4e\x49\x34\xc0\xf8\xa3\x2e\xfe\x31\xef\x29\x4b\xc4\x99\x1d\x17\ +\xfa\x9b\x18\x23\x9c\xd1\x2d\xe1\x7f\x4c\xd8\x77\xfd\x7e\x0e\x1c\ +\x41\x3a\xcf\x09\x31\xc9\x63\x13\x13\xf6\xe4\xb8\x39\x0f\x8c\xfc\ +\x2d\xf3\xc2\xef\x3f\xf0\xa2\x3b\xc1\x95\x02\xbc\x53\xe0\xa0\x31\ +\x1e\xa4\xe4\x3d\x21\xfc\x39\xc6\x3e\x06\x36\x4e\x32\x55\xfa\x1f\ +\x3b\x6d\xff\x95\x4a\xec\xd0\x22\xe1\xc2\x10\x5e\x95\xe4\xd4\x4e\ +\x4b\xfd\x45\xc5\xfc\x37\x19\xa2\x79\x79\x3d\x8e\xd3\x76\xf1\xc7\ +\x85\x3d\x04\x1e\x29\x70\xec\x81\x13\x2b\x6e\x33\xbe\x2d\xf0\x65\ +\xe2\xe2\xde\x56\xb8\xf8\xc4\x56\xeb\xb5\x5f\x8c\x5f\xc2\xd1\x32\ +\xaa\xcd\xfe\xe7\x72\x74\x13\xae\xb5\xc5\xbc\x49\xe0\x56\x8a\x9b\ +\x95\xdd\x1a\xbf\x4a\x04\x78\x3a\x7e\xb1\x47\x0a\x32\x06\x3c\x71\ +\xa1\x82\x83\x10\x3c\xa8\x6a\xd1\x99\xd4\xa6\x9d\x43\x7b\x3e\x72\ +\x7a\xb3\xfb\xec\x53\x06\x7f\x31\x2d\xf6\x30\xc4\xc5\x45\x9c\x9e\ +\x62\xee\x0c\x33\x46\x6d\x93\x5f\x4a\xcc\x11\x83\x7b\x9e\xb3\x25\ +\xec\x44\x57\x7f\x64\x3f\x93\xed\x27\xf1\xf7\xc2\x2e\xdf\xa4\xd0\ +\x9f\x56\x96\xbc\x61\xc4\x7b\xf1\xe2\x2b\x56\xc6\x0e\x64\x40\x51\ +\xfe\x73\xca\xcf\xb8\x61\x79\xc2\x86\x2a\xcb\xf9\x6f\x9a\x78\x04\ +\x23\x37\x7c\xf4\x2b\x3e\xe5\xdd\x9b\xae\x6d\x71\xec\x55\x8d\x59\ +\xd6\x9d\x55\x25\x8e\xf5\x74\x98\xb1\x57\xd3\xd2\xc7\x09\x7e\x28\ +\xf6\x33\x0d\x6e\x3a\x1f\x90\xfe\x80\xa9\x6b\xb8\x9c\x5d\xac\xb7\ +\x29\xbb\xdc\xec\x7f\x58\xdf\xc8\xf7\x6c\x9d\x3c\x1f\xcf\xfd\xe6\ +\xc7\x3b\xa3\x91\x6d\xcb\x58\x86\xf0\x4f\x1b\x8c\xc1\x2c\x6d\x05\ +\x60\x8f\x82\xd7\xd3\x0e\xce\x7c\x77\x8f\xf2\x8c\xcf\x6c\x72\x8f\ +\xbd\xb0\xc3\x73\x16\xfb\x9a\x0a\x76\x8d\xc6\x5a\x3a\x3c\x4d\x6d\ +\x76\x79\x55\x80\x13\x9e\x10\x63\x6e\xdc\x9c\x59\x8f\xdf\xb7\x29\ +\xac\x3f\x77\xfd\xa8\xd2\xf8\xc5\x3b\x71\xb1\x50\xd9\x4e\x60\xee\ +\x3a\x61\x2c\xbe\xbe\x43\xba\xd8\x89\xf4\xa5\xfc\x8b\x3f\xcc\x06\ +\x19\x43\x1f\xe3\x25\x6b\x55\x9a\x76\xa0\x98\xff\x9e\x1a\xdd\x77\ +\xc7\x0f\x37\xba\xc1\xd0\xd0\xd1\x3b\x32\xfa\x3c\xe9\x0e\x9c\xde\ +\x68\x27\xf8\xec\xb3\x61\xf6\x95\x50\x1f\x94\x38\xf7\xd0\x5f\x9a\ +\xec\x8d\xb1\xd9\x8d\xee\x79\x70\xff\x2d\x77\xa6\x55\xb6\x4b\x79\ +\xff\x5b\x96\x7b\xdf\x12\xe1\x69\xe2\x1d\x83\xfb\xe9\x7a\x8b\xe6\ +\xd4\x37\x74\x54\x23\xdb\x94\x94\x7f\xe1\x61\xf8\x7b\xc1\x47\x42\ +\xbc\xac\xc4\x65\xcd\x3c\xc4\x71\xbd\x78\x49\x3b\xf8\xbe\xbf\xee\ +\x1f\x56\x7e\x69\x9d\x9f\x0f\x27\x47\xcf\xfe\x10\x9c\xdc\x53\xf6\ +\x8c\xe4\x66\x63\x9c\xf4\x4c\x98\xf7\x5a\xc0\xf3\x05\x37\x15\xfa\ +\x60\x82\xf8\x3e\xc5\xfe\x5a\x9f\xc3\x3b\x59\x77\xbf\x7f\xe8\xd0\ +\xf3\xee\x4c\x62\xfd\x00\xdf\xa2\x21\xf9\x36\x24\x17\x41\xde\xc5\ +\xa5\x25\x0c\xba\xc6\xae\x73\x8e\x05\x46\xdf\x73\x37\x30\x8c\xb3\ +\x2a\x63\x48\xbb\xfa\x03\x36\x64\x54\xc5\x07\x5c\x9e\x9f\xf9\x9b\ +\xf5\x7e\x8e\x33\x9e\x02\x71\x8b\x57\xc9\xce\x2d\x48\x9e\x97\x2c\ +\xc6\x2f\xf1\xcd\x32\xd6\x2d\xb8\xc1\x70\x5e\x96\x24\xae\xca\x9a\ +\xb3\xaf\x3f\xfe\xb1\xf5\xea\x74\xd4\x9f\x7e\x39\xf6\xe5\xe0\xe9\ +\x28\x10\x6f\x56\x45\xde\x9b\x7d\xd0\x38\xfb\x60\xec\x74\xd1\x97\ +\x7d\xca\xbf\xed\x92\x6a\xb6\x24\xd7\x29\xca\x3d\xa9\xb1\x06\xcd\ +\x81\xc4\x57\x6d\xc8\xf1\x6b\x96\x99\x27\x5c\x8c\x3b\x5b\x9f\xfd\ +\xee\x5a\xbf\xdd\xab\x1c\x78\x0b\x30\xfa\xf2\x26\xfb\x98\xa6\x22\ +\x35\x69\xa7\x89\x39\xca\x66\x9e\x5e\xe8\x0f\xfb\x58\xf4\x41\xf4\ +\xbd\xb4\x98\x27\x71\xee\x13\xb7\x6b\xeb\xda\x1d\x47\xf5\xda\x13\ +\xe0\x94\xe5\xfa\x30\x07\x1b\xe1\xaf\x4a\x4e\xb0\x34\x71\x24\x31\ +\x77\x6a\xc4\x2e\xfd\x45\xf7\xb4\xb3\xb9\xf4\x2b\xca\x34\xd6\x90\ +\xbc\x06\xae\xee\xba\xc4\xc5\xac\x90\x3f\x26\x21\xc6\x0c\xd6\xe1\ +\x09\xe3\xd4\x63\x6b\xfd\x36\x62\x37\x7e\x90\x37\xe7\x44\xbb\x98\ +\xdf\x9b\x78\xed\x25\xbe\x7e\x2e\x2c\xfa\x8a\xce\xdc\x2c\x39\xe2\ +\xcb\x64\xbb\x92\xf8\x26\xe8\xec\xbb\xe2\x84\x0e\xdf\x56\x5a\xeb\ +\xbe\x46\x60\x81\xf0\xd9\x98\x57\x83\xd7\xa4\x29\xf0\xb6\xa3\x5f\ +\xdb\x6c\xe3\xc3\xdf\x91\x10\x36\xcc\xe1\xf8\xcf\xae\xe6\x0c\xee\ +\xb5\xf4\xc5\xc5\x7e\x2b\xa7\x81\x57\xbd\x41\xef\x9b\xb9\x05\xc4\ +\x3b\xb6\x99\x0f\x39\x6a\x17\xd7\xe4\x38\x9b\xd2\x96\xc4\x5c\xd7\ +\x10\xe3\x75\x46\x62\xc3\x32\x37\x07\xf8\x59\xe1\xa7\x23\xfe\x10\ +\xc9\xef\x81\xf9\x3e\x2b\x71\xcc\xa1\x43\xcc\xaf\x31\x1d\xb8\x99\ +\xbe\xd7\xac\xbe\xaf\x0d\x1c\x60\x0d\xbc\xf7\x8d\x26\x37\x8e\x6b\ +\xc7\x64\x89\x23\xaf\x48\x7d\x2f\xcd\x7b\xcc\xdb\xbb\xaf\xa2\x8d\ +\x25\xa6\x9e\x75\x52\xc4\x6b\xef\x62\x27\x33\x2f\x1e\x38\xce\xe1\ +\xcf\x92\x9c\xf6\xc3\xab\x7e\xf6\xb3\x79\x63\x41\xb4\xad\x41\xdc\ +\xb6\x79\x17\xdb\xd5\x64\x8e\x81\xe4\xc4\x87\x7f\x70\xe0\xe0\x0d\ +\xbf\x01\x1e\xfb\xac\x0a\x7e\x1a\xc6\x3b\x66\xbe\x4a\xf8\xc8\xc4\ +\x3a\x22\xfe\x2d\xa2\x4f\x5f\x36\x8e\xc3\x91\xea\x63\x69\x4d\x72\ +\xd7\xc3\x26\x37\x5c\x0e\x85\x12\xf9\x9d\xc9\xc6\x17\xf7\x8a\x06\ +\xab\xce\x60\x7f\xac\xda\x1b\x2d\x6d\x28\x2f\x01\x0f\x39\xf1\x60\ +\x18\xcc\x83\x42\x1c\x78\xa2\xbe\x09\xbc\x6b\xd1\xde\xb1\x43\x3f\ +\x71\x77\xfb\x0f\x26\xec\x7b\xbf\x82\xf3\x9d\x42\x93\x0f\x14\x73\ +\x9e\x6b\x9b\x55\x9c\x7e\x25\xf0\xcb\xe2\x6b\x7d\x21\xff\x47\xbf\ +\x94\x0c\x95\x25\xe7\x2a\x73\x9c\xf0\xf8\x13\xe3\x99\xfa\x77\xe5\ +\xb2\x3d\x62\x24\xf2\x7b\x5f\x43\x4c\x46\x46\x93\xfc\xce\xe0\x7c\ +\x20\xdb\x19\x6b\x47\x91\xea\x85\xfe\x97\xd1\xe6\x10\xf7\x72\x55\ +\xe0\x7e\x47\xd5\xbb\x1e\xc8\x82\x43\x84\xf8\xa4\xc4\x3c\xad\x83\ +\xc7\xf0\xb4\xa8\xa7\xf8\x68\xa7\x9d\x49\xff\xe9\xf6\x7e\xb2\x3f\ +\xaf\x2d\xd2\xd8\x62\x3e\xb5\xa2\x3c\x53\x9c\x26\x1f\x71\x4e\xad\ +\xac\xe0\xb2\x98\xd4\xee\x7c\x20\x47\x3c\x31\xe2\xde\x7a\x8b\xb3\ +\x3e\x25\x3e\x49\xb1\x4f\x9c\xf0\x7f\x0a\xe7\x17\x4d\xfc\xcf\x54\ +\xfc\x43\x5f\x4b\x85\xc0\x8f\x28\xde\x07\x78\x6d\x75\x69\x4b\x9a\ +\xa7\x84\xfe\x4f\x89\x3e\x7c\x52\xe8\x4e\xf4\xc1\xd0\x49\xf8\x25\ +\x42\xbd\xd3\xd2\x86\x92\xc9\xc0\x67\x0e\x7f\x34\xce\x04\x0d\xb6\ +\xd5\x88\x0f\x5e\xe8\x34\xe6\x2f\xb5\xeb\x2f\x05\xff\x35\xc5\x07\ +\x18\x92\x0b\x5b\xc6\xa7\xe4\x2c\x61\x4b\xda\xf3\xe7\x57\xdd\xfb\ +\x68\x5a\xec\x51\x60\x23\xe5\x4d\xde\x97\x65\x0d\x5e\x3f\x53\x84\ +\xb3\x3e\x87\x7b\xbf\xc5\xfd\xb2\x15\x2d\x7e\x3e\xa1\x2f\x10\xaf\ +\x32\x70\x87\x69\x1f\x17\xae\x32\xe7\x69\x58\x72\x44\x82\x03\x4b\ +\xab\xfd\xc3\x81\x83\x03\xbf\xd6\x13\xed\x6c\x26\x7b\x3e\xf2\xd5\ +\x98\x7f\x86\x31\x7a\x55\x8e\x73\xc2\x5c\x85\x7d\x03\x8d\x15\xbd\ +\xe5\xe7\xb0\xf4\xb7\x2f\xa5\xf5\x45\xc6\xb6\x96\xfa\xe3\xd8\x1e\ +\xd8\xe0\xb3\xce\x44\xac\xfe\x47\xab\xee\xee\x8b\x86\x96\x9e\x64\ +\x1e\x77\xe9\xaf\x35\x98\x7b\x99\x62\xd2\xc4\x18\x9d\xa4\xb5\x84\ +\x25\x12\x9d\xfe\x5a\x82\xe2\xd6\x5c\xee\xf6\x3a\xf9\x24\x98\x37\ +\xbc\x42\xfe\x0d\xbc\xbb\xa4\x31\xf3\x4f\xca\x55\xc2\x99\x3c\xa0\ +\x64\x3e\x3c\xba\x4f\x79\x13\x78\xc1\xd3\xe0\x66\x27\x1f\x74\x99\ +\x6c\x0e\x70\x82\xc3\x96\x70\xbf\x9b\x56\x17\x89\x0f\x9c\xda\x65\ +\xba\xbc\x95\x92\x0b\x3c\x30\x8f\xef\xfd\xf8\xea\xfb\x0f\x2a\xca\ +\x27\x53\x3a\x30\xe6\x67\x99\x03\xdc\x90\x6b\x31\xad\xc7\xcc\xff\ +\xad\x8e\xfc\x3c\x9d\xe1\x67\xc6\x4b\xdf\x64\x9c\x65\xe6\xe8\x65\ +\xce\x6b\xb6\x2d\xa1\x47\x5a\xdb\x84\xbe\xa3\x21\x61\x43\x0e\x29\ +\x3f\xdd\x43\x35\x6d\x24\x2f\x38\xa2\xbc\x73\x56\xcc\xd7\x7f\x04\ +\xfd\x65\x88\xa7\x98\x79\x72\x53\xc4\xe7\x50\x77\xf6\xf7\xdd\x40\ +\x9c\xea\x79\x63\x91\xfd\x2d\x46\xad\xc9\x6b\xc6\x67\x50\x62\xec\ +\x07\xe7\xd7\xb5\x8b\x2d\xad\xfa\x20\x70\xd9\xc1\x19\x97\x75\xf9\ +\x8b\x5d\x3d\xea\x45\xea\xcf\x62\x99\x1f\xc7\x3a\x84\x98\x49\xf8\ +\xef\xb1\xff\x85\xfd\xc7\x36\x8c\xf4\x45\x87\xab\xf4\x3c\x9c\x7d\ +\x08\xfd\xbd\xb4\x77\x2a\xda\x50\xfa\xf6\x2a\xf7\x7d\x67\x72\xbc\ +\xfe\x45\x9a\x73\x48\x1f\x92\x5f\x93\xec\x2e\xac\x0d\x8d\xbf\xf7\ +\x29\xca\x8b\xa7\x8c\x59\xb2\xb5\x89\x9f\x01\xeb\xaf\x5d\x63\x0e\ +\x6f\x31\xde\x62\xa1\xbb\xef\xdc\xe0\x19\x47\x69\x4c\x86\xea\x92\ +\x63\x80\xfb\x39\xf9\xf1\x4c\x5e\xf3\x23\x89\x53\x0f\xc2\xee\xcc\ +\xd9\x6e\xdc\x55\x8d\xd6\xf8\x29\x7c\x6c\xe6\x3d\xa7\xd8\x35\xd8\ +\x93\xe0\xa0\x1b\x54\xa6\x7a\xa6\xa1\x4d\x64\x78\x60\xd6\x99\x3c\ +\x32\xf3\x67\x69\xb9\x6f\xc2\xfc\x97\x21\x7f\x9b\x3c\x17\x51\x4f\ +\x3e\x32\x3a\xf6\xa2\x6a\x1e\x7d\xc8\x64\x9e\x11\xf2\x79\x41\x7f\ +\xf0\x7f\x31\x97\xf3\xe4\x46\xcf\x88\x85\xef\xf9\x42\x46\xf2\xc8\ +\x63\xfd\x4e\x6b\x7c\x0e\x99\xd2\x99\xb7\x19\xff\x5d\x00\x37\x33\ +\xf1\x35\x54\x99\x37\x1a\xfc\xd9\xf0\xc1\x84\x99\xbf\x98\xcf\x5a\ +\xf1\xbc\xda\x55\x15\x37\xb9\x7f\xe4\x3f\x94\xa2\x47\xab\x74\x26\ +\x47\x7c\x60\xb6\xf4\x07\x12\x1f\x2a\xec\x8d\xd3\xdf\x4b\x58\xd3\ +\xff\x37\xaf\xbb\xfb\xb5\x9a\xe4\x80\xad\xd2\xba\x23\x6c\xc8\x4d\ +\x7d\x7b\x42\x8e\x26\xc4\x1c\x98\x0d\x48\xce\x35\x4d\x72\xb8\xe8\ +\x3c\x87\x66\xa4\xff\x2c\x2b\xb9\xaf\x99\x73\xb9\xcc\x3a\xb4\xd9\ +\x3f\x81\x7a\xa1\xdf\x66\xd9\x4e\xba\x6a\xf4\x27\x36\x18\x31\xf0\ +\x2a\x67\xd1\xff\x4c\x97\xd7\x5a\x72\xfa\x32\x5f\xcd\x53\x74\x0e\ +\x66\x32\x9f\x32\xc7\xf6\x80\xe7\xbe\xcc\x5c\xf7\x5b\xe4\x52\x06\ +\x87\x32\xe6\xd8\x5c\xa8\x4c\xfb\x5b\x70\x67\x32\x7f\x72\x99\xfb\ +\x96\xc1\xfc\x38\xc4\x59\xd7\xce\x5d\x67\x95\x9a\xbc\xc9\xcc\xe3\ +\x79\x75\xf5\x3f\x21\x47\xe3\xa3\x73\xd4\x97\xe0\xcb\xca\x4b\x4e\ +\xc6\xbc\xf4\x7b\x64\x0c\xde\x67\xe4\xe4\x39\x4e\x3e\xcc\xb6\x19\ +\x6c\xbe\x2c\xf1\x4f\x2a\xd6\x56\x9f\x43\xb1\x55\x5a\x4d\xf6\xc1\ +\x32\xf3\x8f\x4a\x5e\x21\xda\x07\xea\x92\x77\xd1\x28\xf1\xd8\xb5\ +\xb8\xef\xc1\x47\x91\x95\x7d\x1e\xe7\x6f\xca\xd5\xa5\xbf\x3d\xe0\ +\xd3\xca\x84\xd8\xbe\x20\x3e\x43\xa3\x24\xf9\xdc\xb0\x67\xe0\xd8\ +\xe3\x82\x35\xcd\x31\x51\x34\xbe\x6b\x14\x67\x96\x08\x96\xfe\x64\ +\x3b\x0f\x0a\x8c\xfd\xda\x5c\x5a\xac\x23\x2e\x8f\x3d\xf9\xcd\xf4\ +\x22\x73\x83\x4a\xbe\xb8\x26\x87\x6b\x1b\x6f\x6b\x41\xce\x7f\xc4\ +\xdd\x47\x1c\xbe\xca\xb3\xba\xa4\x8b\x9d\x48\x5f\x62\x6c\x5e\xd8\ +\x20\x73\x92\x8f\x8f\x7d\x6f\xcc\x87\x3a\xcd\x63\xd9\xe5\x01\x93\ +\x5c\xc4\xc4\x47\xc2\xed\xf8\xc9\x6d\x3e\x6b\x4f\x9c\xb8\x66\x2a\ +\xe4\x9f\xc9\xc9\x58\x17\xe6\x5d\x95\xdc\xa3\x46\xab\x0f\x16\x24\ +\xef\x21\xd9\x4b\xf0\x7f\x81\x0f\x0d\x7d\xde\xb7\xa5\xf3\xd5\x9e\ +\x49\xda\xcf\xbc\xb6\x14\xd7\xa1\xf3\xf9\x7f\x56\xec\x7f\x9b\x7d\ +\x82\x7c\x54\xd3\x64\x47\x64\xa9\xcf\xcc\xd0\x7c\xa9\xec\x80\x4b\ +\xd8\xb4\x7f\xf5\x1b\xd0\x7d\xde\xe5\xaf\x95\xf3\xad\xcb\x97\x97\ +\xd7\xa7\x5b\xfa\x93\xbc\xb5\x39\xd3\xe5\x4d\xad\x51\xde\x87\xae\ +\xbf\x7a\xd7\xfd\x57\xed\x02\x5e\xda\x64\x40\xec\x83\x03\x35\xd9\ +\x07\x25\x27\xad\x29\xc7\x10\xfa\x44\xb8\xd2\xe2\x1f\xc5\x3e\x34\ +\x50\x5b\xd3\x3f\xb8\x05\xa1\x79\xb0\xc5\xbd\x59\x69\xfa\x72\xf2\ +\x2e\xff\xb0\xd1\xde\xff\xda\x78\x7f\x0d\x9c\xcb\xcf\x38\xf9\x74\ +\x65\xae\xa3\x0a\xb8\x72\xb9\x21\xe6\x9f\x17\xfb\xb0\x1a\xed\x11\ +\x48\x7f\x46\x8b\xc3\xcf\xed\x83\x59\xe2\x4d\xaf\x51\xff\x3b\xec\ +\x7f\xeb\x8e\x63\x50\xf4\xc0\xfb\xbe\x00\x1e\x6b\x97\xc3\x3a\xe7\ +\xee\x33\x24\x6f\x2d\xf1\x65\xca\xb5\xc4\xe5\xae\xcb\x10\x67\x6c\ +\x8d\xf8\x73\x86\xf6\xaa\xbf\xd2\xc9\xc6\x77\x42\xa2\x62\x0d\x49\ +\x8d\xd5\xc9\x3e\x75\x7d\x76\x39\xb7\xfe\x68\x53\x98\x79\xe9\xc8\ +\xce\x56\xaf\x38\x7e\xe2\x68\x54\x15\xfd\x3d\x58\x6e\xf1\x50\x37\ +\xd7\x61\xf9\xde\x9a\xfe\xab\x52\x8b\xf7\xd5\xe2\xf8\x54\xf1\xfb\ +\x48\x27\xda\xdc\x49\xb1\xed\xbb\xeb\xe0\xd1\xca\x93\x1d\x53\x6d\ +\x72\xea\x52\x0c\x19\xe5\x13\x54\x25\xbf\x1f\x62\xb7\xb6\xb7\xee\ +\xae\x25\x7a\xf8\x9d\x9f\x25\x7b\x50\x2d\xb3\x3f\xc7\xe5\x30\x95\ +\xf1\x6a\x4d\xee\xc4\xb6\xf9\x0f\x9c\x8e\x39\xbb\xbc\xd3\x79\xa3\ +\xab\x22\xf6\xb8\xaf\xcd\x06\x67\x9d\x29\x39\xae\x9a\xeb\xa2\x55\ +\x91\x73\xbc\xcb\x85\x5b\xc7\xf9\xc3\x65\xbe\x96\x1d\xc8\x21\x70\ +\x9d\xb5\xf3\xaf\x72\xdc\x50\xa9\x79\xee\xe6\xea\xcf\xe5\x9d\xc4\ +\xfe\xf7\x59\x13\xb5\x8e\xf1\x20\x77\x58\x8e\x66\xb5\xb3\xce\x94\ +\xb0\x03\xa7\x24\xa7\x67\x56\xfa\x0a\x68\xdc\xd2\x7e\xab\xee\x3c\ +\x23\x5c\x7c\xbc\x53\x0f\x6c\xf2\x77\x4a\xfe\x54\x1a\xbf\x92\x2f\ +\x12\xf1\x0c\xd0\x5f\x56\xac\xc7\xac\x3f\xf6\xbf\x1e\x3a\xf4\xfc\ +\xab\x96\xaf\x3c\xab\xd7\xfe\x2e\x1f\x02\x2f\x6d\x9d\x7c\x7f\x99\ +\x26\x27\x27\xfb\x3d\x61\x63\x8b\xaf\x3d\xa7\x83\x8f\x34\x61\x4f\ +\x67\xc1\x03\x6c\xb0\xff\x02\xb6\xb2\x7b\x9e\xcc\x6b\x56\x59\xfa\ +\xca\xaa\x2e\xe7\xec\x36\x62\x3b\x7b\x2b\x62\x2f\xfc\x9f\xb2\x62\ +\x9f\x5f\x40\x1c\x0a\x7c\xfa\x06\xf3\x09\x22\x5f\x05\xfb\xce\xeb\ +\xad\x53\x7f\xde\xe9\x67\x22\x9e\x1d\xb6\x7b\xd6\xf5\x5f\xb8\xfb\ +\x47\x5b\xfa\xc9\xa4\x4f\x92\xfc\x85\xda\xae\xc5\xed\x6e\x55\x7c\ +\x29\xfd\x3e\xd1\x9e\x59\x27\x1d\x02\x27\x23\xf8\x30\x67\x9c\x84\ +\xe8\x1f\x05\xf6\x1b\x75\xfc\xdc\x26\x61\x9d\x22\xbf\x69\x96\x62\ +\x62\x65\x4c\x18\xe5\xc0\x55\xc9\x1f\x08\x7f\x2a\xf1\x30\x8b\xbf\ +\xc5\x42\x54\x87\x9f\xef\x74\x1d\x3a\x29\x81\xc3\x2f\x5a\x40\x1c\ +\x19\xf1\xe6\x41\x7f\xe0\x17\x0d\x61\xaf\xd1\xbf\x5e\x3c\xd1\x95\ +\xca\x81\x89\xc0\xdc\xe3\x19\xf0\x25\x8a\xf5\x1f\xcf\xc2\x3c\x41\ +\x39\x16\xe0\x34\x15\x3a\x4b\x51\xbe\x91\xb8\xaa\x33\x5b\x8e\x2d\ +\xde\x45\x39\x18\xd5\x97\x98\x13\xd1\x5f\xa7\xb1\xa5\x07\x7e\xad\ +\xdb\xf1\x12\x43\xc1\xe1\xe7\xfc\x76\x1a\x7b\x70\x73\x81\xb9\x26\ +\x45\x39\x15\x04\xef\x61\x83\xf6\xbc\x19\x9c\xab\x47\xe8\x3c\x75\ +\x27\xb9\x01\x3d\x97\x21\x45\x49\x1e\x54\x86\x10\xe7\x74\x4b\x8f\ +\x1f\xed\x1b\x0d\xbc\xff\x4c\x34\x34\x2f\xfa\xfe\x82\x13\x0b\xce\ +\x8b\xf1\x3c\xeb\x58\xa1\xf7\x23\xa6\x78\xa0\xc7\x75\xb9\x96\xc5\ +\xda\x23\x3e\x7b\x95\x51\x70\x0e\x5e\xb7\xdb\x95\xf1\xc4\x13\x4f\ +\x3c\xf1\xc4\x13\x4f\x3c\xf1\xc4\x13\x4f\x3c\xf1\xc4\x13\x4f\x9e\ +\x5e\xd2\x62\x0c\xd9\x95\x72\x5f\xab\x7c\x49\x39\xde\x2c\x5f\x24\ +\xea\x18\x2e\x5f\x50\xac\x6d\x96\xf9\xb7\xff\xb5\x55\xbe\x78\xb8\ +\x55\xbe\xd0\xd7\xfa\xfe\x05\xa5\xbd\x7c\x7c\x75\xf9\xd8\x46\x7f\ +\xbf\xa8\x1c\xff\x67\xfa\x03\x97\xcf\x1d\x97\x65\xd1\x8c\x65\xab\ +\x55\x3e\xd1\x5e\x1e\x91\xbf\x45\x79\xb8\x55\x56\x86\x5b\xdf\x51\ +\x7c\xb2\xec\x28\xcf\x55\xfa\xb6\x50\x56\xda\xcb\xef\x92\xe5\x13\ +\xfa\xca\xf2\x8d\xb2\xbc\x1c\xec\x3b\x11\x6c\x96\x7d\xeb\x95\x97\ +\xf7\xb8\xe5\x3d\xc3\xe7\x14\xb7\xac\xb4\xca\xe7\x88\x46\xc8\x2d\ +\x8f\xb4\x97\x2f\xac\x5d\x06\x75\xd0\xe5\xe5\xf3\x8a\x75\xa9\x55\ +\x3e\xd6\x5e\x76\xdc\x32\xb7\xaf\x55\x06\x35\xd0\xe5\x65\xd4\x8f\ +\xcb\x17\xdb\xcb\xa0\x0e\xea\x6b\x2b\xcb\xbf\x5f\xf2\xb5\x95\x87\ +\xf1\x3c\xd9\x0f\x3f\x22\xfe\xbb\xad\x4f\x3a\xef\xdf\xa5\x71\xb1\ +\xe5\x32\x78\x7e\x6e\x15\x1f\x04\x6d\xbb\x3c\x3f\xb7\xfd\xd4\xee\ +\xcc\x25\x9e\x78\xe2\x89\x27\x9e\x78\xe2\x89\x27\x9e\x78\xb2\x4b\ +\xf2\x59\xf1\x79\x25\xf8\x56\x34\xf3\x77\x1f\x0c\x5b\xb3\x88\xb3\ +\xdc\xbb\xdb\x95\xda\x7d\x39\xf8\xeb\x09\xf3\xd3\x4e\x56\x5f\x72\ +\xd2\xfa\x82\x93\xd4\x66\x9d\xa4\xde\x70\x52\x26\xe2\xea\x1a\x4e\ +\x21\x35\xff\x07\x4a\x1b\x6e\xc0\xd3\x4c\xc6\xa2\x81\x25\x27\xe5\ +\x62\x02\x0b\xbd\x10\xb7\x82\x5e\x23\x8c\x09\xe4\x20\xc7\xd4\xb2\ +\x33\x71\x6d\xc4\x5d\x75\x5c\x0e\xec\xbf\xb9\x94\xd4\x96\x08\x3f\ +\x2c\x6b\x32\x2f\x45\xda\x92\xf9\x96\x16\x70\x9d\xca\x84\x9b\x9c\ +\xd0\x67\x9c\x60\xf0\x8e\xab\x01\x93\xa4\xa7\x02\x2c\x5a\x60\xfe\ +\xe7\xac\x86\x93\xb5\xea\x4e\x36\x5c\x93\xf1\xa2\x92\xef\x04\x98\ +\x8a\x84\xb9\x54\x77\x06\x07\x13\x57\x75\xdc\x63\x37\x24\xa9\x9d\ +\x71\x10\x4b\x89\x7c\xb7\x2c\xe9\xa5\xd2\xcc\x2b\x24\x3c\x39\xea\ +\x47\xac\x1f\xf1\xf5\xeb\x77\xbb\xbe\x3d\x96\x67\x23\xb6\x2e\x23\ +\xe6\xe0\x16\x5f\x09\xf2\x53\xcb\xcd\xbc\x1f\xca\x19\x05\x96\x04\ +\xcf\x3f\xbd\xc4\x4a\x87\xec\x19\x52\x18\x27\xc2\xa7\x28\x3f\x23\ +\x2e\x3f\xd1\xe3\xe7\xdf\x1c\x0d\x71\x8e\x6e\x4e\xe2\x11\x22\xb7\ +\x82\xb0\xe4\x09\xfb\xc6\xe5\x83\xa8\x38\x69\xd6\x8f\xbf\x07\x75\ +\xf2\x09\x9d\xfc\x64\x3e\xfd\x85\x47\x22\x62\xcd\x98\x0c\x9e\xf9\ +\x26\xfe\x68\x8e\xcc\x7e\x7f\x54\x9d\xfd\x66\x0f\x9e\xbf\x42\x26\ +\xcc\xda\x53\x29\x9d\x31\x48\xa9\xdf\x44\x4a\xce\xf5\x61\x89\xb7\ +\x4f\xb8\x4a\x65\xc2\x03\x49\x71\xde\xc1\xb6\x73\x25\xb7\x2b\xfb\ +\xaf\x7b\xe9\xfb\x63\xc1\xb3\x4e\xc2\xbf\x20\xd6\xd4\x05\xe2\x6d\ +\x03\x3f\x46\x9c\xe2\x47\xc5\x18\xef\x57\xde\xdc\xed\x3a\xb4\xcb\ +\x1e\xc5\xf7\xda\x84\x31\x2b\x39\x1d\x24\x96\xa0\xe5\xe6\x85\x15\ +\x69\x7c\x21\x37\x03\x31\xde\xfb\x87\xed\xff\xde\xed\xfa\x98\xa1\ +\xc6\xdf\xc4\x82\x67\xc4\x78\x06\xa7\x1d\x61\xd9\x38\x49\xb1\x6e\ +\x44\x8d\x9a\x33\xa9\x56\x9c\x89\x60\x03\x9c\x26\xef\xec\x76\x3d\ +\x5c\x99\x48\x7f\xfc\xfe\x94\x35\xcb\x78\x63\x2e\xde\xac\xcc\x5d\ +\xca\x4b\xbe\x29\x60\xc6\xc4\x83\x94\x37\x32\xd1\xed\xfa\xc4\x03\ +\x0b\x14\x73\x0c\x5c\x62\xe4\x0b\x10\xe6\x9c\x5d\x71\xe2\x46\xd9\ +\x89\x6a\xe0\x08\xa9\x3b\xe3\x13\x5f\xfe\xdb\x6e\xd7\xc3\x95\x30\ +\xe1\xb5\x37\x56\xf0\x59\x50\x1e\x32\xcd\x3d\xd3\x94\x93\xce\xdc\ +\x7a\x34\xbe\xba\x1e\xa7\x6d\x4e\x9c\xfe\x83\x64\x10\x58\x07\xb3\ +\x92\x23\xac\x42\x78\x7f\x84\x0d\x69\x54\x45\x1f\xaa\x3a\x11\xbd\ +\xfc\x64\xb7\xeb\xe1\xca\x64\x88\xf1\x0c\x28\x67\x46\xf6\x9f\x82\ +\x5d\x6c\xe6\xcc\x12\x1e\x97\xd0\xcf\x64\xb0\xd2\x2b\xcc\xd3\x57\ +\xa5\x82\x0b\x0e\x72\x88\x28\xdf\xca\x64\xdc\x19\xd8\x19\x84\x89\ +\xa8\x95\x9c\x98\x75\x6f\xc7\xf2\xd7\x36\x93\xf1\xe0\x0c\xe7\xaa\ +\xcb\x1c\x69\x97\x47\x8b\xb8\x64\xb0\x76\x01\x67\x4b\xcc\xcf\x31\ +\x95\x70\xca\x8e\xf4\xa0\x4a\x63\x89\x10\x70\x23\x67\x65\x9e\x7d\ +\x95\x70\x53\x08\x7f\x5d\xd4\x31\xae\x01\xaf\xe5\xec\xc3\x3b\xb8\ +\xef\x8e\x72\xca\x26\x44\x3f\x66\xbc\x2f\xc6\x8c\x29\xb4\xf1\x8d\ +\xb1\x7e\x2a\xb4\x17\x4b\xdb\xd3\x3d\xc3\x2b\x8d\x86\x16\x9e\x44\ +\x1e\x0e\x30\xdf\x08\xdf\xdf\x28\x52\xfe\x21\xe1\xd3\x9b\xf7\xfe\ +\x3f\x65\x1b\x9c\x3f\xda\xd1\xdf\x99\x8d\x99\x4b\x0e\xd6\xbf\x42\ +\xf4\x14\xb8\x25\xb6\xa5\xa7\x28\xe5\xad\xd4\x25\x5e\x49\xa9\xc9\ +\x85\x40\x5c\x76\x56\x49\x62\xe8\xd0\xdc\x73\x60\x9b\xcd\xbc\x02\ +\x39\xf4\x72\xe4\xcc\x11\x6e\xab\xc4\x59\x84\x9d\x01\x2c\xa3\xc9\ +\x60\xd9\xb1\xfc\xe5\xad\xe0\xd1\x0c\xa5\x8d\xf9\xef\x17\x4c\xb6\ +\x7f\xd3\x84\xab\x57\x93\xfb\xec\xe0\x89\xad\xd6\x24\xa6\x32\x5f\ +\x5d\xc6\x28\x4b\x6c\x0d\xb6\x7d\xdc\xfd\x05\x6c\xc3\xbc\x31\xd7\ +\x13\xdb\xc7\x15\xf1\x82\x6f\x44\xde\x58\x4e\xe5\x7c\xcc\x8c\xc4\ +\xc4\x04\x5e\x56\x34\x34\xed\x8c\x07\x4e\x3e\xb5\xd9\x3d\xae\xbb\ +\xee\xf9\x8b\x84\x8f\x6e\xce\x30\x5f\x08\xf0\x56\x74\xc6\xe3\x8f\ +\x53\xfe\xfa\xe1\x4f\x6e\xa5\x2e\x31\x1a\x5f\xf5\x26\xbe\x00\x63\ +\xd1\xf0\x38\xcb\x50\x9f\x66\x4c\xc2\xc1\xc1\xe8\x87\xae\xbc\xe5\ +\x5b\x97\x54\x40\xec\x79\x82\x75\xc9\xff\x50\x96\xfc\x0f\x25\xb1\ +\x7e\x15\x85\x0d\xf4\x29\xbc\xaf\x0d\xf3\x65\x32\xa2\xff\xc1\x1f\ +\x91\x93\x18\x81\xf8\x10\x6f\x01\xfa\x91\xea\x62\xee\x6f\x2e\x2d\ +\xfd\x54\x5b\xfa\x09\x97\x9b\x78\xdd\x98\x13\x99\x9b\xe7\xde\x9e\ +\xe6\x7d\x26\xfc\x8b\x4e\x0e\x73\x10\xe5\x51\x32\xbf\x03\xb0\xc8\ +\xe2\xad\x75\x62\x23\xde\xa2\x50\xc6\x5c\x60\x1e\x47\x9b\x79\x1c\ +\xf3\xb2\x4d\xc4\x4b\xa0\x31\x97\xed\xb8\x55\x01\x8e\xfb\x86\xfc\ +\x97\x34\xbe\x0c\x9e\x07\x0b\x34\xb6\x18\x57\x0b\x39\xda\x64\x1b\ +\x6a\x8c\x8f\x9e\x8d\x9c\xec\x78\x5e\xee\x46\x92\x1c\x3d\x73\x3e\ +\x13\x98\x25\x0c\x18\xc6\xe5\x64\xbc\x76\xe0\x9a\x1e\xf6\x61\x6c\ +\x0c\xaf\xbb\x57\x1d\x52\x8c\xf7\x64\x08\x7f\x9b\x79\x16\x0a\x12\ +\x23\x16\xfa\x71\xc7\x04\xda\x14\x07\xce\x9f\x12\x69\x6c\x54\x0f\ +\xe8\x07\x79\x9a\xee\xfa\x45\x58\x77\x92\xeb\x82\x73\xd6\xeb\x4e\ +\xc2\x9c\xbe\xa4\x5c\x8e\x23\xdc\x55\x09\x19\xbf\xf5\x8d\x74\x80\ +\x71\x37\xb3\x72\x8c\x65\x25\xbe\xb6\x7f\xe8\x75\xf7\xf9\x86\x3f\ +\xf8\xbb\xeb\xfc\xb4\x2f\x1d\x3a\x43\xd8\x58\x84\xdd\x4c\xe3\x41\ +\xee\x99\xac\xa2\xd4\x73\x99\xb0\x41\x99\x07\x99\xb8\xd2\x86\xd6\ +\xab\x47\x1c\xe3\x4b\x9b\x69\x62\x22\x4d\x49\x4e\x90\x9c\xe4\x11\ +\x05\xbe\xa3\xb2\x4f\xf9\x9d\xee\x68\x61\x7d\x11\x15\x7e\x35\xfa\ +\x0f\xe1\xe3\x9a\xcc\xd7\x49\x3c\x66\xe2\x1a\x09\x55\x1c\x2d\x58\ +\x5a\x6f\xbc\xbf\x22\x6d\x2c\xd0\xbc\x5c\xb0\x6a\xad\xfd\xa4\xb4\ +\x79\x09\xa7\xd8\xe5\x89\x26\xff\x71\xd5\x39\x32\xfa\xef\xee\x5b\ +\xaf\x1e\x31\x8d\xed\x1f\xe6\x2c\x2b\x33\x6e\x1d\xe1\x1e\xb8\xb8\ +\x62\x75\x27\x1d\xa9\xac\xc6\xa5\xed\x89\xa4\xc1\x91\xa2\x32\x1e\ +\x3a\x61\x2e\x59\x65\xf2\xf7\x46\x35\x31\x77\x70\x1e\xf7\x65\x36\ +\x47\xc0\x78\x53\x05\x18\xea\xc0\x66\x67\x3c\xf1\x0a\xad\xc7\xe4\ +\x8f\x20\x8c\x6c\xc6\x1a\x71\xb9\x29\x52\x56\x59\xe2\x89\xaf\x69\ +\x17\xed\x07\xc7\x4a\x56\x75\xf1\x60\x59\x2f\x2e\x97\x16\xf5\x67\ +\x71\x8f\x98\xa8\x8f\xd2\xfb\xfc\xca\x1b\xd3\x63\xa2\x0f\x84\x1a\ +\x8c\x6d\x2b\x39\x3c\x18\x1f\x9d\xb9\x04\xc5\x77\x0e\xad\xfe\x51\ +\x5a\x5b\xf8\x2e\xf8\x8a\x0a\x96\xab\x9b\x0a\xfb\xfa\x5c\xdc\x2e\ +\x83\xf1\xae\x09\x2b\x84\xf0\x5d\x2b\x84\xf3\x3a\x3e\xfe\x9e\xb5\ +\xd6\xfb\x60\x3c\x50\x27\xec\xdd\xbc\xc4\x44\x25\xce\x04\x89\xbf\ +\x48\xfe\x79\xb1\xdf\x89\x6b\xc5\xed\x60\xdc\x75\x4c\xe2\xfe\xfa\ +\x37\xc1\x31\x01\x3e\x02\xe0\x0d\xe6\x08\xff\x89\x39\x3a\x92\xcc\ +\x9f\x74\xd9\x1a\x96\x13\xb6\x72\xc1\x6e\x08\xbd\xd4\x9b\xed\xc9\ +\x4b\x0c\xb3\x1c\xe9\x87\x6d\x2a\xcc\xf9\x84\x27\x05\x7e\x18\xac\ +\x8b\x06\xf5\x81\x97\xac\xbe\x1f\xf2\xe5\x91\x0b\x4e\x73\xbd\xc4\ +\xa3\x77\x6d\x67\xe0\x96\x92\x7e\xad\x53\xc0\x9f\xec\xf9\x39\xe1\ +\x8d\xd7\x9f\x7e\x88\xf0\xe7\x75\x89\xbb\x67\x31\xc6\x5d\x02\x18\ +\xdd\xdc\x9e\x55\x98\xa2\xfd\x6f\xc9\x9b\x67\x84\x0e\x66\xc4\xbc\ +\xcc\xe3\x8b\xb1\x95\xc0\x31\x5c\xfc\xa1\xa1\xbe\xb5\x02\xdc\x79\ +\xe0\x13\x66\x89\x63\x8e\x39\x60\x30\x4f\xc7\xc5\xda\x18\xd7\x2e\ +\xc7\x5c\xc2\x59\x20\xf6\xca\x59\xbd\xd6\xc4\xac\x63\x8e\x53\xc6\ +\xad\x03\x1f\x5c\x78\xa2\x04\xde\x93\x1e\xee\x2f\x9a\x12\x19\x0f\ +\x14\x09\x5f\x9e\xf0\x90\xdc\x7d\x86\xa8\x5b\x5c\xe8\x28\xa2\x57\ +\x57\xe0\x86\xc6\xcd\xca\x77\x80\x05\xdc\xe4\x84\x08\xbb\x18\xae\ +\x25\x27\x12\xbc\xbd\x2e\xbe\xd2\x67\x04\x3f\xf6\x2d\x60\x9c\x13\ +\x66\x94\xc6\xb8\x3c\xa4\x23\xa1\x9f\x04\xcf\x23\x2b\x70\xf1\x60\ +\x6f\xa7\xe5\xfc\x97\x93\x76\x8f\x8b\x27\x4f\x18\xcf\x98\xbb\x06\ +\x09\xcb\xb1\x5f\xd9\x05\x39\x3c\xfa\xfc\x0f\xc2\x96\x4e\x07\x6b\ +\x4d\x0e\x03\xb4\x03\xf5\x8a\x05\x30\x47\x0f\xa5\xe5\x57\x0f\x26\ +\xf4\xfb\x89\x33\x9e\xd6\x62\x17\xf7\x1c\xf8\x1c\x06\xad\xe1\xcd\ +\xf3\x5f\x53\xab\xfd\x65\x1e\x7d\x42\x65\x2c\x34\xe6\x0b\x16\x7d\ +\x48\xac\x8b\xe3\xea\x1c\x38\xbf\x9b\x36\x23\xd6\x77\xe2\x6c\x86\ +\x0d\x2d\xb9\x9c\x70\x5e\x81\xbe\x4c\x5c\x5f\x8c\x8d\x0b\xae\x20\ +\xa3\xa7\x8a\x69\x49\x2a\x4f\x36\x48\x8d\x30\xd9\x19\x07\xa7\x85\ +\x6f\xae\xb4\x78\x0a\x9f\x07\x5e\x5d\x9c\xc3\x60\x6e\xa6\x3d\x2d\ +\xf6\x15\xb4\xff\x9a\x5d\x31\x6e\x7c\x3e\xe5\x15\x19\x17\x8f\x1b\ +\xfd\x43\xad\x48\xae\x34\xe6\x65\x1d\x54\x06\xdf\xe6\x7e\x17\x98\ +\xb5\x49\x8d\x39\x81\x30\x07\x66\x69\x0e\xaa\x10\x9f\x08\x8d\x77\ +\xc6\x1f\xbd\x75\x78\x4f\x76\x5d\x1b\xa1\x9b\xd2\xdf\xff\x33\xbf\ +\x31\x19\x9c\x7d\x0a\x7b\xc0\x8c\xce\x7b\x4c\xc2\x89\x24\x4c\x62\ +\x5a\xe3\x71\xee\xa3\x44\xc3\x27\xff\x12\x7c\xd7\x2e\x37\xa8\x8b\ +\x45\x0c\x7c\x92\x84\xbe\xf0\x57\xab\xef\x1b\xd5\xee\x27\x2c\x13\ +\xcc\xfd\x19\xc2\x89\x66\xec\x3a\xf8\xba\x12\x6d\xeb\x3d\x6c\x85\ +\x34\xf1\x5d\xd4\xc9\xc7\x4a\xbc\x99\x36\x63\x08\xa7\x0c\xb6\x7f\ +\x52\xda\xbd\x3d\xdd\x5b\xac\x92\x9b\x0e\x2b\xc1\x77\xa6\x43\xb3\ +\xdf\xc3\xd8\xc9\x34\x6d\x97\x32\xe1\xda\xc4\xec\x8f\x12\x6e\x76\ +\x0e\xbc\x02\x5a\x43\xda\xb9\x12\x33\x08\x78\x63\xcc\x25\x7c\x19\ +\x57\x91\x68\xfc\x29\x9c\x8b\xe6\x61\xdb\x68\x3c\x76\xb1\xcf\xc7\ +\xd8\xc5\x3e\xf8\x47\xb3\x77\x83\xc3\xb4\x0f\xf3\x5e\x13\x0f\xdf\ +\x74\x79\xe1\x2a\x34\x0f\x65\xc3\x55\x9a\x9f\xed\xd0\xdd\x97\x7a\ +\xad\x94\x36\xd9\x7b\xc0\xf7\x95\xbf\x16\x76\xcd\x63\xe9\xa6\x9f\ +\x8a\xf7\xe2\xf4\x31\x88\xe7\x64\x2c\xaf\xf3\x3a\x57\x90\x7e\x62\ +\xe6\xcc\x13\x63\x8b\xcf\xa5\xd6\xf4\xa7\x8d\x1b\xa5\x27\x30\xaf\ +\x01\x67\x32\x2b\x39\x3d\xc0\x29\x92\x36\x18\x2f\x51\x8c\xc4\x17\ +\x67\x25\xa6\x20\xef\x4f\xab\x4d\xbc\xe7\x3c\x61\x5d\x96\x25\xf6\ +\x50\xf1\x9f\x7a\xab\x92\x95\xb2\x4f\x99\x79\x2a\x35\x5e\xfb\x36\ +\xf6\x82\x84\x79\x4b\x7e\x29\xde\xaf\xe6\x75\xe0\xd1\xf8\x7e\xa6\ +\x00\x1c\x39\x60\x77\xd1\x39\x5e\x8d\x6c\x1b\xf0\x81\x6a\xc1\xfa\ +\xd9\x0d\x6e\xad\xa2\x0f\x15\x34\xf6\xa3\x10\x3e\xa4\x8c\x59\x21\ +\xac\x7f\xd8\x05\x16\xe3\xeb\x92\x6e\x5c\x5c\xec\x30\x63\xf8\x32\ +\x66\x36\x6c\x85\xd2\x9a\x3c\x4b\xbd\x92\xa3\x23\x77\x2d\x27\xfc\ +\x8c\x1b\xe5\xf2\x18\x81\x2f\x28\x03\xce\x20\x6d\xda\x99\x48\x7e\ +\x68\x11\xfb\x44\xb2\x05\x4d\xc6\xe2\x02\xb6\x54\x9a\xf9\xc3\x37\ +\x5c\x57\xc6\xf5\xe2\x43\x39\x8c\x31\xb5\xdc\x5c\xcb\x32\x2e\x4f\ +\xb0\xce\x7c\x32\xb4\xaf\x30\xab\x8c\xd5\x6c\xf1\x1e\x0c\xfb\x5e\ +\xd8\x0d\xb4\x66\xec\xb2\x7e\xc4\x5e\x35\x15\x1b\x05\x1e\x95\x9c\ +\x03\x6c\xf6\x05\x43\x3f\x59\x9d\x6d\x35\xc6\x27\x2d\xc9\xb9\x87\ +\xd7\xba\x84\xbf\xb6\x15\xbf\xe7\x81\xb8\xd0\x4f\xde\xb5\x89\xe4\ +\xfc\x96\xb1\x2b\xd2\x3e\xa8\xf0\xde\xc4\x94\xe7\x82\xa6\xe4\x93\ +\xb5\xca\x92\xbb\x1a\xe3\xaf\xb8\xab\xfa\x11\x72\x14\xd8\xc1\xc4\ +\x9b\x24\xf1\xef\x18\xab\xbc\xc8\xb6\x88\xc1\x67\x75\xe4\x1f\x26\ +\x1c\x4d\xc6\x22\xcb\x5b\xd3\x5b\xe2\x86\x9d\x50\xab\x8f\x83\x6b\ +\x15\xb8\xe9\xc0\xfc\x86\xdd\x98\x21\x4c\x47\x89\x93\x69\xba\xfa\ +\x29\x31\x2f\x8f\xc4\xfb\x76\x31\xf7\x92\x56\x79\xb7\xf5\xb3\x27\ +\xe9\x3f\x43\x98\x62\x2e\x2f\x17\xf9\xa7\xcc\xd3\x6c\xef\x93\x6e\ +\x8a\x4d\x8e\x51\xd8\x40\x12\x63\x7b\xab\x31\x81\x36\xc6\x62\x41\ +\x63\x3c\x60\x97\x3f\xc8\xc5\xf2\x2e\x90\x5e\x64\xff\x71\x71\xaa\ +\x09\xcf\x96\x79\x38\xe2\x56\x69\xcb\x1c\xbd\xdd\x92\x8c\x5f\xd8\ +\x21\x41\x60\x79\x32\xa7\x78\x5e\x9e\xd5\x71\xac\x92\xc4\x44\x95\ +\x78\x80\xc0\x8e\x8e\x69\x95\x6d\x9d\xb1\x4e\x86\xe6\xbf\x95\xc5\ +\x18\x03\x6e\xbc\xe4\xf5\x6a\xea\xc7\xe4\x3e\xe4\xf6\x1f\x60\xc8\ +\xe7\x29\x56\xaa\x46\x67\x5f\x71\xbb\xbe\x9b\xeb\x3b\x49\x26\x70\ +\xe6\x12\xfc\x41\xc4\x85\x64\x54\x9a\xd8\xc8\x8c\x4d\x2b\xf9\xcd\ +\x69\x6c\xd5\x99\x8b\x29\x59\xfb\xcb\xed\xdc\x7f\x40\x51\x6e\x49\ +\xe2\xde\x5a\x95\x7c\x61\xae\x8e\x72\x4d\x1d\x15\x25\xa6\x3e\xfb\ +\xc9\x98\x73\xbb\x4a\xe7\x21\x49\x83\x6c\xe8\x5d\x8d\xf3\x1d\x19\ +\xca\x3d\x90\x94\xf6\x2e\xf1\x3a\x12\x27\x61\x49\xe2\x6f\xbb\xfc\ +\xb3\x8c\xdf\x9b\x62\x9b\x7f\x4b\xe7\x37\xed\x62\x85\xee\xf9\x0e\ +\x71\x13\x6a\x95\x36\xbc\xd9\xd6\x3b\x98\x32\x25\x6e\xb4\x9c\xe7\ +\x78\x8d\xab\xca\xf3\x22\xe5\x70\xe7\x5b\xbd\x2d\xe9\x4f\xa0\xff\ +\x04\x79\x0e\x82\x9f\xd4\xe5\x25\xe7\x3a\xb3\x0d\x97\xd2\xc0\x43\ +\x55\xde\x0a\x1f\xc8\x5a\x72\x03\xc6\x0b\xc6\x18\x73\x0b\x94\x5b\ +\xe3\x57\xc6\xfb\xb4\xde\x45\x45\x72\x61\x8a\xf7\x61\x9d\xee\x59\ +\xbc\xc4\x46\x92\x1e\x5d\xfc\xc7\xb4\xbf\xce\xb8\xea\x46\x45\x62\ +\x30\x97\x25\x7e\x7f\x0b\x7f\x37\xa4\xbe\x65\xdb\x7d\xc7\x95\x88\ +\x71\xef\xa3\x99\x10\x73\xd8\xf0\x78\x6d\xcd\x6f\xbc\x8e\xb9\x78\ +\xd9\x6d\x78\xe3\x13\xa7\xbf\xd2\xc9\x76\xee\x54\xc6\x03\x9f\xfa\ +\x22\xf6\x94\x64\xef\x6a\xac\x1b\xe2\xf5\xa0\xb5\x9e\xb1\xa9\x13\ +\xa3\xa5\x0d\xcf\x23\xb6\x20\x01\xcc\x43\x53\x12\xd3\x39\x6f\xba\ +\x67\x43\x12\x0f\x9b\x78\x1c\xca\x92\xbf\xa6\x42\x7b\x36\xf1\x9b\ +\xd7\x76\xa8\x89\x57\x24\xfd\x8a\xf2\xb6\xb4\xb0\xa3\xa7\xb0\x16\ +\xd3\x18\x73\x71\xaf\x19\x7f\x15\x7d\x67\x6a\x62\xfa\x7f\x5f\xe9\ +\x73\xc6\x83\xe5\x47\x88\x03\xc5\x90\xfe\x54\x37\x6e\xc3\xc5\xbb\ +\x36\x99\x43\x9e\xf8\x79\xd8\xa7\x76\xb5\x48\x1f\x7c\x3c\x05\xf0\ +\x8f\x68\xcc\x45\x47\x3c\x1c\x06\x7f\xd2\x01\xf2\x07\x75\x02\x1f\ +\x37\x99\x81\x4d\xad\xd7\x9a\xf3\x74\xc1\x76\xf1\xc0\x25\x1e\x33\ +\xf4\xa3\x53\x9c\xf8\x55\x31\xf7\xb8\x92\x0c\x7f\xfc\xab\x59\x70\ +\x58\xab\x12\x7b\x56\xec\xd9\x53\xa4\xab\xba\xb0\x63\x3f\x36\xd3\ +\xa9\xe7\xc4\x30\xcf\x69\x2e\x56\x70\xcb\x26\xa5\x18\x68\x93\x63\ +\xc2\xb3\xf0\xbd\x85\x17\x76\x12\x8b\xd4\x4d\xc9\x25\x02\x33\x84\ +\x75\x9c\x0a\xcd\x3a\x09\xe0\xf4\x8a\x7d\xc7\x33\xad\x3a\xfc\xa2\ +\x1d\xc3\x46\x9d\xf0\xd7\x1f\x05\x97\x33\x38\xe2\x61\x6f\x52\xfc\ +\xbc\x51\x93\x3e\x25\x5e\xdb\xc1\x03\x11\xd7\xaf\xaa\xf1\x45\x92\ +\x34\xeb\x4f\x21\x27\x22\x19\xa8\x91\x8e\x72\xa1\x19\xd8\xaf\x1d\ +\x3f\x3f\x18\x0f\xd4\xce\x83\x03\x3e\x0f\x3d\x81\x0b\x02\xef\x42\ +\x62\xfd\x02\x2f\x9c\xf0\x92\xf5\x2b\xe6\x99\xe8\x86\x8c\x99\xfe\ +\xc6\x43\xd1\xd0\xec\x77\x85\xad\xf3\x3d\xf1\xdf\x6a\x17\x9f\x85\ +\x3e\x39\x38\x19\x98\x7f\x22\x19\x6a\x38\xe8\x53\x78\x37\x09\x51\ +\xce\x84\xa7\xc1\xe3\xf0\x82\x2e\x3e\xfb\x9a\x92\xc0\xa1\xdf\x7c\ +\x2c\xa6\x57\xbe\x1f\x17\xeb\xa5\xe2\x8b\x00\xb3\x77\x57\xce\x74\ +\x3c\xf1\xc4\x13\x4f\x3c\xf1\xc4\x13\x4f\x3c\xf1\xc4\x13\x4f\x3c\ +\xd9\xbe\xb4\x41\x26\xf6\xa8\x7c\xee\x78\xab\x7c\xc2\x6a\x95\x95\ +\x91\x6d\x95\x2f\xc9\xf2\xa5\x97\xb6\xca\xe7\x5f\xda\xfa\xce\xf9\ +\xe1\xb6\xb2\x6f\xdb\xe5\x07\x1d\x85\xeb\x76\xc1\xe7\x0c\xb7\xca\ +\x17\x7d\x6d\xe5\x3e\xb7\x7c\xb1\xaf\xbd\x7c\x41\x39\xbe\x66\xf9\ +\xbc\x72\x8c\xe0\x3b\x57\x96\x2f\x29\xe7\x15\xd3\xfd\x4e\x5b\x19\ +\x7f\x1f\x69\x96\xcf\xad\x28\x0f\xcb\xb2\xa3\xdc\x14\xf4\xb5\xca\ +\x37\xb6\x95\x7f\xb4\x4f\xde\x1f\x65\xa5\x59\x06\x18\xaa\x2c\x9f\ +\x50\xde\xdb\x56\x3e\xbe\x4e\x59\xfc\xff\x1a\xe5\xe5\x3e\x67\x79\ +\x45\xd9\x6a\x96\xcf\x35\xcb\x3e\x51\x96\xdf\x39\xe7\x93\xd0\xa5\ +\xab\xcb\xc3\x12\xc6\x74\x55\xf9\xfc\x08\xb0\x63\x2f\x2f\x5f\xb0\ +\x24\x1c\x2e\xca\xc7\x44\x7b\xda\xfa\xd2\xb9\x1e\xf6\xe1\xad\x97\ +\x81\x43\x7a\x93\xf8\x9c\x50\x5a\x38\xa4\xca\xcd\xdb\x1d\xa5\x9e\ +\x78\xe2\x89\x27\x9e\x78\xe2\x89\x27\x57\x85\xec\x1b\x54\xcc\x2f\ +\x2b\xca\x9e\x37\x68\x87\xef\xfc\x72\x26\xba\xe4\x98\xd6\xd2\xf7\ +\x95\x6d\x60\x3f\x5c\xc3\x32\x14\x53\xcf\x38\x19\x6d\x49\x7c\xe6\ +\x08\x5f\x22\x01\x0e\x66\x7d\x86\x70\x00\x0b\xb1\xbb\x10\x43\xd2\ +\xd3\x7c\xe6\x5e\x8a\x11\x98\x7f\x82\xf1\x20\x67\x1c\xe4\x93\x65\ +\xac\x19\x8a\x85\x02\xee\x61\xd2\x28\x3b\x31\xb5\xea\x44\xc3\x8d\ +\xab\xf1\x5c\xb9\x23\x32\xa9\x2e\x39\x59\x6b\x9e\xf0\x85\xb2\x94\ +\x8b\xc0\xb9\xbf\x69\xca\x6f\x95\x18\x14\x46\xed\x5f\x6b\xfb\x8f\ +\x25\xd4\x45\x27\x8b\x58\x72\x7b\x86\x72\x7a\x11\x6b\x4a\xf1\xd2\ +\xc8\x19\x25\x9c\x93\x9a\x13\xbd\x3a\xe3\x0a\xae\x58\x0e\x07\xde\ +\xf4\x49\xca\x83\x33\x64\x4e\xb3\x1b\xa7\x8c\xdc\x7f\x7d\x9a\x72\ +\xc3\x10\x67\x87\x3c\xf0\xdd\xae\x6b\x37\x64\xdc\x3a\xfd\x1d\xc4\ +\x47\x50\x9e\x1b\x72\xad\xc2\x25\x8e\xff\xa3\x18\xf9\x12\xe5\x3c\ +\x20\x0e\x27\x6e\xd7\xbb\x9c\x93\x36\xfa\x5b\x13\xd6\xfd\x8f\xc7\ +\x8d\x79\xd2\xb3\x7a\x64\xd6\x31\xed\xb7\xff\x97\xee\x3e\x93\x24\ +\x19\xd3\xe7\x08\x33\x90\xe2\x43\xed\x62\x1b\xde\x22\xe3\x9d\x21\ +\x2f\x30\x1a\x99\x9e\xef\x56\x05\xac\x23\x9f\x71\x62\xc0\x81\x13\ +\xe3\x10\xb9\x29\xd1\xc8\xbc\x33\x29\xd6\x9e\x89\x50\x6f\xe6\xdc\ +\x94\x3d\x4f\x79\x75\x14\xff\xd9\xc4\x9b\x64\x4c\x21\xb4\x1f\x39\ +\x8c\xa6\x4d\x78\x30\xdd\xc0\x9b\xec\x8b\x85\x80\x99\x3a\x4f\x58\ +\xc4\xc0\x95\x4b\x88\x71\x18\x15\x73\x71\xdc\x68\x38\xe3\xc6\x22\ +\x9e\xbb\xa7\x0b\xcf\x6d\xca\xa4\x31\x4b\x71\xfc\x14\xbb\x68\xc9\ +\x18\x76\xe4\x42\x88\x0f\x72\x83\x92\x6a\xcd\x99\x88\x94\xbf\xde\ +\xa5\xc7\x5b\xb1\xc0\x59\x6a\x7f\x86\xb0\x98\x2b\x4e\xca\x2e\x33\ +\x4e\x84\x98\x77\xc6\x83\xb5\xed\xe4\xa5\xec\x44\xf6\xc6\x11\x97\ +\x48\x78\x0a\x8c\xf7\xc7\xf8\x27\x1c\x27\x4d\x79\xb1\x3a\xe1\x58\ +\xbe\xab\x5b\x15\x48\x84\x80\x5f\x37\x47\xf8\x3d\xc0\x5a\xa1\x35\ +\xc7\x64\x0c\xc4\x49\xb1\xee\x08\xbb\x74\xba\x5b\xcf\x16\x62\x25\ +\xa8\xfd\x9c\x67\x9a\x97\x58\x5a\x6e\x2e\x0c\xe7\xa8\xd6\x1c\xdd\ +\x7f\xaa\x6b\x63\xd1\xd6\x91\xeb\x36\xcb\xf9\x80\x94\xeb\x27\xf1\ +\xb3\xf4\x92\x13\xd5\x4e\xbb\x6e\xc7\x6e\x49\x1e\xf3\x7f\x46\xaf\ +\x34\x73\x80\x5a\x78\x7d\x65\x99\x5f\x49\x7d\xf0\xa6\x6e\x55\x60\ +\x48\x51\x5e\x95\x0e\xb6\x70\x57\x08\x07\x86\xda\x5f\x75\xc4\x3f\ +\x22\x97\x78\x4b\xe3\x7f\x58\xf9\xf1\x8f\x4f\x1a\x67\x7e\xa8\xf8\ +\x2e\xcf\x3f\xde\x40\xf2\xc8\xf3\x26\x3c\x50\xe4\xaa\x53\xae\x1f\ +\xe7\xf7\x50\xce\xb7\x68\xfb\x94\x59\xfb\xbb\x9d\xb5\x6c\xcb\xd2\ +\x97\x12\x63\x20\xaf\xcf\x72\x2e\x90\xc9\xb9\x98\xc0\x20\x98\xf0\ +\x97\x2e\x8a\x7f\x7f\xd6\x26\xbf\xcf\xa5\xf4\x85\x4b\x39\xac\x63\ +\xb0\xd5\xc4\x7c\x1d\x09\x35\x90\x03\xbc\x95\x18\xd4\x3c\xaf\xff\ +\x1c\xb7\x9d\x97\x78\x72\x05\x69\xff\x61\x5e\x78\x66\xb2\xf2\xa5\ +\x2b\x6f\xe2\xc6\x92\xf4\x37\x28\x06\xbb\x1d\x1f\x2d\xae\x56\x9c\ +\x68\xf0\xb4\xd3\x3f\x1c\xfe\xad\x8d\x7e\x9b\x1e\x5b\x10\x73\x37\ +\x63\xde\xd2\xbe\xc5\xac\x50\x2c\x6c\x3c\x54\xdf\x4a\x9e\x54\x1e\ +\x98\x0d\xc8\x33\xe5\x5c\x7c\xc6\xfb\xca\xdb\x32\x67\x46\xc3\x1e\ +\xa0\xd6\xf5\x7c\xb4\xe8\xd1\xb3\x17\x33\xc0\xd0\xd3\x18\x3f\x2f\ +\x43\xf8\x79\x25\xb1\x06\x94\x2e\x8e\xec\xaf\xfe\xaf\x0d\x7e\x1a\ +\x27\x9c\x02\x8a\x95\x16\xba\xb3\x2b\x12\x17\x8e\xb1\x64\x13\x91\ +\x4d\x73\x55\xf3\x29\x60\x87\x02\x6f\xc4\x74\xf1\x4c\x65\x3e\x30\ +\xed\x7d\xf0\xe9\xfa\x1c\xa4\x1c\x3a\x78\xcb\x52\x06\x73\x00\xc5\ +\xde\x73\xbe\x1b\x72\xc6\x13\x41\x60\xf9\xfc\xc2\xc7\xd6\xfb\xdd\ +\x75\xa1\x5f\x3c\x9d\x35\xe7\x68\xde\x24\x0c\x14\x99\xbb\x42\xeb\ +\x28\xea\x4e\xb8\x32\xea\x3d\x1b\x3c\x3a\x9f\x52\x1b\x4d\xbc\x2e\ +\xce\xf5\x95\xd8\x68\x84\xdf\x23\xec\x7f\xab\x84\xdc\xbe\x6e\xc6\ +\x2c\x43\x12\x99\xc0\x3c\xe5\x3c\xd3\xbb\x40\x3e\xbb\x36\x2d\xc6\ +\x40\xd9\x19\x1a\x7c\xef\x03\xeb\xfd\x28\x2b\x6c\x46\xc6\x21\x01\ +\x6e\x59\x85\xed\x56\x6b\x9a\xf2\x5a\xd3\x06\xb7\x3f\x49\xb8\x6e\ +\xeb\xd6\x3f\x9f\x12\x36\x77\xde\xaa\xb7\x72\xf8\x30\xee\x91\x33\ +\x46\xb6\xbf\xb0\x43\x9f\xfb\xc1\xff\xd9\x9d\x26\xaf\x94\x0c\x70\ +\x6c\x81\x21\x49\xb8\x25\x3c\x07\x24\x0c\xe4\x37\xdd\x88\xf7\x3f\ +\xba\xc6\x4f\x9e\x93\xd5\xb8\xee\x78\xf7\x8c\xa5\xca\x39\x5d\x94\ +\x53\x81\xb6\x1b\x8c\x31\x91\x4c\x34\xd6\xc3\x53\xcd\x03\x13\x08\ +\x98\x68\x2e\x8e\x0e\xe5\xf4\xd8\x9c\xef\x5d\xb0\x1a\x5b\xc9\x29\ +\xef\x88\x64\xfd\xf3\x4f\x66\x29\x67\xb9\x4e\x79\xdc\xb0\x83\xe2\ +\xa2\xee\xd8\x7b\x0f\xf4\xef\x7f\xf7\xea\xef\x4f\x4c\xdc\xfd\x47\ +\xe0\x61\x28\x58\x2e\x56\x98\xcc\x67\x13\xef\x9f\x30\xb5\xf4\x12\ +\xcd\x01\xd4\x87\x39\xbf\x39\xb9\xc6\x63\x47\xc1\x03\x02\x4c\x0e\ +\xc2\x30\x93\x78\x63\x8c\x47\x50\x21\x1f\x90\x31\xf6\x6f\xee\xee\ +\x7e\xeb\x91\x0f\x28\xda\x21\xe6\x80\x82\xd1\x60\xfc\x35\x93\xf1\ +\xd7\x62\x62\x0e\x0e\xeb\x67\x17\x56\x7f\x1f\xeb\xe5\x94\xdd\x70\ +\xae\xb7\x6b\x8c\x2d\x26\xf1\x0c\x28\x2f\x14\xb8\x0a\x5a\xb9\x89\ +\x7d\x80\xb1\x1c\x89\x97\x2e\xcb\xd1\xed\x57\x94\x0f\x10\xa6\x04\ +\x61\x94\xd5\x24\x6e\x04\xe7\xe2\x32\x9e\x18\xea\x70\xf7\x85\x5e\ +\xb4\x7f\xd0\x17\xfc\x38\xf2\x3a\xf2\x46\x83\xfa\x23\xe6\x00\xea\ +\x03\x7a\xd1\x99\xb4\xeb\xab\xd7\x80\x91\x9c\xb9\x20\x71\xe7\x38\ +\xff\xd6\xc5\x72\x28\x88\xf7\x4f\xb9\x58\x84\x6f\x53\x66\xcc\x65\ +\xa3\x2c\x7d\x18\x7b\x6e\x5a\x75\x9f\x9f\x4b\x85\x1a\xfc\xfe\x25\ +\x26\x68\x4e\xe2\x15\xa6\x25\x3e\xe0\xf0\xde\xe1\xd9\x5e\xb4\x5f\ +\xc8\xaf\xa4\x82\xc0\x6a\x06\x7e\x62\x8d\xb0\x3c\x69\x2d\x07\x46\ +\xa5\x39\xbd\xc2\xfe\xde\xd3\x3f\xf4\xee\x9c\x2e\xda\x6f\xd6\x24\ +\x2e\x58\x99\xf2\xa6\xaf\x17\xd7\xa0\xf5\x8e\x46\x41\xcc\xa1\xc8\ +\xad\xce\x10\x2e\x18\xe3\x12\xc6\x0d\x60\x5e\xd1\x5c\xd8\x9e\xb7\ +\xf4\x3a\xf4\xff\x02\x30\xcf\x75\xbe\x0f\xd9\x3d\x16\xe3\x71\x24\ +\xf9\xfb\xf7\xf6\xa8\xfd\x4a\x24\x58\xfa\x97\x0c\x61\xbf\x54\x9a\ +\x38\xa8\x09\x63\x5a\xbc\x3f\xcc\x83\x83\x4d\x3e\x1e\xcc\xe9\x69\ +\x83\xd7\xec\x5c\x18\xd8\x4d\x8c\x15\x96\x09\x9e\x84\xcf\x5e\x31\ +\x47\x7f\xe7\xaf\x52\xa1\x0a\xe5\x8d\x32\x2e\x27\xb0\xdf\x8a\xa2\ +\x2f\x95\x9c\xeb\xae\xbb\xf9\xc3\xee\x7d\x06\x94\x81\x5b\x63\x1a\ +\xfb\x3c\xdd\xfc\x61\x6a\xbb\xf8\xe0\x99\xc0\xc0\x52\x7a\x9b\x17\ +\x72\x20\xe1\x07\x4e\x0e\xb0\x96\x30\x6f\x01\xdb\xab\x4c\xb6\xe0\ +\xa4\xd1\x1a\x03\x71\x6d\x9e\xf0\x71\x78\x9c\x96\x24\xcf\x0a\xcd\ +\xd5\x96\xfb\x9d\xc9\xe0\xe2\x53\xd9\x50\x9d\x31\x99\x80\xfb\x4b\ +\x18\xa7\x62\x4f\xd9\xe6\x57\x11\x1d\xe1\x56\x17\x13\x97\xd7\x5d\ +\xc6\xac\x22\x3c\x26\x60\xef\x84\xe6\x7b\xdd\xfe\x57\x16\xb4\x25\ +\x27\xa5\xca\x1c\x56\xb2\xc1\x18\x7f\x34\xa9\x9e\x74\xeb\xfd\x5a\ +\x61\xef\x93\xcd\xd2\xe2\xde\xa9\x52\xee\x99\xb2\x12\x57\xf2\x8d\ +\x94\x53\xa7\x31\x86\xa0\x8b\xa7\x8c\x3e\x1d\x3a\x70\xdb\xb2\xfc\ +\x8e\x78\xff\xf3\xb4\x6f\x60\x4e\x04\xce\x6f\xcd\x86\x2b\x84\xf7\ +\x06\xac\x3c\xf1\x9d\x1f\xeb\x61\xfb\xf7\x0e\xf9\x3e\xf9\xd9\x38\ +\x7c\xae\xaa\xcc\xe5\xa5\xdc\x7e\x51\x6f\xab\x42\xf3\xb7\x1d\xb9\ +\xeb\xa1\x34\x61\x4f\xb1\xad\xcb\x7b\xe6\x86\x68\xff\xfc\xea\x3d\ +\xfa\x10\xf0\xda\x08\xdb\x4d\xab\xc8\x3e\xc0\x38\x68\x72\x6f\x00\ +\x5d\xbd\x08\x98\xae\x84\x55\x64\x31\xd6\x0c\xdb\x7e\x15\xe2\x32\ +\x02\x26\x91\x78\xfb\xff\xbe\x87\xed\x17\x1b\x96\x2f\xfe\x71\x9c\ +\xf2\xfa\xaa\x4d\x8c\xc4\xb4\xc9\x98\x50\xf8\xf7\xbc\x7a\xe6\x22\ +\xea\xe5\xb6\x9f\x31\x69\x66\x9c\x6c\xb4\xfe\xe9\x35\x6e\xf7\x4b\ +\x84\x07\x49\x39\x95\x35\xd1\xaf\x2a\x84\x91\x00\x2c\xc8\xdc\x64\ +\x55\xec\x0d\x0e\xbd\x07\xf9\x83\xe0\x72\xe2\x3d\x50\x59\xf2\xce\ +\x70\xfb\xe1\xfb\x57\xfa\x07\x8e\xf7\xb2\xfd\xc3\xca\xe7\x9f\x4c\ +\x87\xd8\xef\x44\xed\xb7\x18\x23\x2c\x47\x73\xa0\xb2\x67\x0a\x73\ +\xb5\x29\x73\x8d\x81\x7d\x83\xbd\x8f\xba\x3e\x26\xc6\xb8\xba\xf0\ +\xcf\xc0\xb3\xc9\xaa\x9c\x83\x0c\x0c\xe7\xb4\xcc\x49\x4e\x86\x4b\ +\xdf\xc9\xda\x8c\x87\x4d\xeb\xa8\xe1\xe2\x3d\x57\xe8\x6f\x69\xc6\ +\x92\x78\x59\x2f\xdb\x3f\x72\xe0\xe7\x3f\x97\x1a\x63\xbe\x02\xc2\ +\x17\xa3\xbd\x58\x91\x70\x52\x86\x95\xe1\xb7\xc0\x3e\x2a\x98\x15\ +\x89\xd1\xc8\xd8\x47\x12\x77\x6d\x3d\xb9\x81\xf1\x6a\x66\x58\x07\ +\x34\x17\x30\x36\x36\xcd\x9b\xb4\xe7\x87\x9f\x43\xda\x50\xb0\x9f\ +\x08\x0f\xa9\x42\x7e\x71\xc5\xd7\xdb\xf6\x2b\xe0\xa8\x1b\x13\x7d\ +\x12\xd8\x1f\xd2\x1f\x96\x35\x25\x86\x8e\x75\xf2\x49\xc2\x35\xb5\ +\x39\x17\x9f\xec\x3b\xf4\xed\xe8\xdc\xd2\x46\x37\x14\x7d\xe0\x5f\ +\x72\xc0\x93\x82\x3d\xa0\xb9\xe3\x86\xd7\x0d\x9c\xf3\xe0\x9d\x13\ +\x1e\x8d\xc1\x98\xdf\xee\x1c\xb0\x1b\xef\x1f\x92\xf4\xc3\x17\x32\ +\xc3\xf8\x5f\x84\x8b\x3c\x2d\xf1\x83\xf8\x5c\x02\xf3\x14\x9f\xd5\ +\xd5\x69\xcf\xa8\x6c\xc2\xb3\x00\xbc\x19\xe4\xe8\x17\x54\x17\xf7\ +\x8a\xed\x05\x17\x2b\x04\x58\x33\x84\xc9\x63\xca\xfe\xef\xe2\x67\ +\x6b\xbb\xd3\xfe\x54\x50\xac\x5b\x58\xbb\x81\x77\x6f\xb2\x4f\x8e\ +\x70\xad\x2c\x97\xeb\xa0\x24\x71\xd1\x1a\xc0\x95\xdb\x12\x5e\xc7\ +\x84\x56\x7f\x34\x47\x58\x20\x8c\x39\xcc\x98\x3e\xc0\xa4\x63\x0c\ +\x10\xc2\xb4\x22\x3b\xb2\x85\x59\x90\x66\x9e\xb6\xb7\x76\xb9\xb9\ +\x97\x49\xc6\x3f\xe7\xe4\xd4\x46\xd3\xc6\x71\x39\xe4\xb2\x12\x5f\ +\x8a\xdf\x0f\xe3\x51\x8a\xaf\xff\xc8\x16\x6f\x9b\x48\x0b\x9d\x66\ +\x43\x65\xe6\xaf\x31\xa5\x0e\x0c\xc6\x1c\x62\xdc\xa1\x32\xe1\xce\ +\x31\x96\x2e\xd6\x89\x86\x13\xb1\x6f\x2f\x77\xb3\xad\x6b\xc9\xa4\ +\x7f\xd1\x61\xbc\x7b\xc6\xce\xa1\x35\x49\xe2\x46\xd1\xfb\x37\xd9\ +\x9e\x89\x1e\xdd\xde\xb9\x7c\x38\xf8\x99\x0b\xd9\x50\x8d\xde\x3f\ +\x30\xbb\x18\x6f\xa9\x24\x31\xa9\x4a\xb2\xfd\x65\x89\x97\x53\x25\ +\x5e\x85\xb8\x51\xfd\x46\xb7\xda\xb9\x9e\xf8\x14\xe5\xe5\x31\xf8\ +\x44\x75\x17\x07\xd3\xc5\x1a\x29\xca\xfd\x39\xe3\x9b\x88\xfd\xdf\ +\x76\xf1\x4d\xae\x4f\xa9\xb5\x26\xf6\x5d\x13\x0f\xc7\x68\xb5\x9f\ +\xf0\x70\x70\xee\x0d\xbc\x20\x9c\x41\x4d\xbc\xf9\x74\x57\x1a\xb9\ +\xb1\xf8\xd2\x62\x2f\x98\x57\xeb\x12\xcb\xba\xd4\xea\x03\x98\xf7\ +\xc0\x0f\xc2\x73\xd3\x8d\xdb\xbd\x71\x38\x34\xf3\x3d\xe0\xb9\xe4\ +\xf4\x16\xa6\x14\xdd\xdb\xc5\xdd\x6a\xe2\x25\x31\xde\x96\xd2\x19\ +\x8c\x94\x6d\x4b\xca\xbf\xe4\xe4\xc5\x78\x2d\xd0\x5e\xbe\xd8\xc2\ +\xf3\xb3\x18\x17\x29\x15\x20\x9c\xea\x9d\xc8\x7e\x9c\x69\x16\x24\ +\xee\x58\xd6\x68\xc7\x8a\x9a\x96\x7c\x05\x15\xf2\x1f\x66\xf5\xdd\ +\x8b\x7b\x19\xd9\xf7\x82\x3f\x2c\x88\x3d\xcd\x14\xec\x00\xcc\xd9\ +\xe4\x17\x66\x4c\x31\xbc\xfb\x31\xff\x5b\xe7\x76\x7a\xef\xa8\xd8\ +\x63\xe5\x55\xb9\xe7\x35\x24\x26\xa6\xe5\x72\x1b\x48\x3c\x1f\xc2\ +\xab\xa9\xfe\x63\x27\xdb\xb4\x4d\x19\x83\x4f\x7c\x0a\xfe\x10\xec\ +\x4f\x09\xef\xba\x4e\x36\x89\xa8\xfb\x4e\xdf\x3d\x89\x30\x16\x9e\ +\x95\x21\xbf\x8f\x8b\xbd\xc5\xf8\x5b\xf0\x7b\xc2\xde\xcc\x85\xab\ +\x74\xa6\xb0\x7f\xe4\x86\x0f\x74\xaa\x31\x3b\x91\x98\x7a\x16\x78\ +\x2a\x62\x1d\x60\x5c\x9e\x24\xe1\x2b\xd3\x9a\xfc\xca\x2b\xbc\xf5\ +\x18\xb8\x04\x32\xc1\x3a\xd9\x99\x7c\xfe\x5b\xa3\x7e\x4f\xe3\x8b\ +\xfa\x19\x9e\x73\xf8\x37\x3b\xd1\x8e\x9d\x8a\xd8\xd0\xbc\x3d\x11\ +\x04\x56\x63\x83\x38\x1b\x81\xbd\x23\x6c\xf3\x8e\xf4\x49\xf3\xc8\ +\xe9\x07\xc1\xb9\x84\xbd\x53\x96\x78\x5d\xea\xbc\xe7\x22\x9e\xec\ +\xaa\x13\x83\xbf\x20\xfe\xbb\x67\x3a\xf1\xac\x2b\x11\x6b\xec\x8c\ +\x93\x08\xcc\x3b\xc0\xcc\x2d\x18\x35\x60\xe5\x75\x0c\x77\x28\x72\ +\xf4\xcd\x0d\x3a\x77\x44\xdc\x67\x08\x9f\x59\xe2\xef\x05\xc7\x68\ +\x52\xd8\x09\x91\xc8\x5d\x3b\x9e\x63\x3a\x2c\xd6\x1e\x45\x79\x9e\ +\xb2\x09\x7f\xd1\x15\xc8\x1e\x3b\x34\xf3\xd7\x49\xd1\x1f\x62\xe0\ +\x78\x36\x2a\xc0\xca\x79\x66\x97\x9e\x75\xb5\xcb\x46\x5c\x53\x9e\ +\x78\xe2\x89\x27\x9e\x78\xe2\x89\x27\x9e\x78\x72\x99\x38\x9d\x90\ +\xf3\x16\x5f\xcf\x0d\xaf\x7d\x5d\x5e\xe3\xfa\xf8\x31\xbe\x9e\x3b\ +\x46\xd0\x0c\xce\xf2\x08\x7f\x1f\x57\xfa\xfb\x65\xd7\x0b\xfc\x9d\ +\x91\x73\xc7\x70\x3d\x3f\x72\xce\xe2\xeb\xb2\x85\x7f\x17\xd7\x11\ +\x79\x1d\xc6\xdf\x2f\x0c\x9f\x70\xaf\xbe\x95\x57\xa5\x4f\x5e\x15\ +\x5c\x2f\xfa\xfa\xdc\xeb\x09\xba\xf6\xf7\x9d\xb8\x89\xae\xbe\x13\ +\x8a\xb8\x5e\xea\xf7\x2d\xd3\x55\xf1\x9d\xe3\xeb\xb0\x7b\x3d\x8f\ +\xab\xd3\xbc\x8e\x5c\x58\x79\xb5\x2e\xae\xba\x5e\xa2\xeb\x89\x63\ +\x97\x14\x8b\xae\x0e\x5f\x8f\xf3\x75\xd9\xbd\x12\x3c\x09\xe1\x4a\ +\x2c\xe3\xfa\xb8\x68\xd3\x31\xd6\xdb\xa5\x8e\xbc\xad\x15\x82\x60\ +\x49\x90\xa4\xdd\xa6\xb4\x70\x22\x4e\x4c\xae\xd7\x5b\x3c\xf1\xc4\ +\x13\x4f\x9e\x9e\x32\xa4\x28\x2f\x4d\xd9\x9f\xfe\x9b\x4c\xf2\xbe\ +\xbf\x9a\x54\xe7\x9d\x67\x8d\x7f\x72\x57\xb8\x01\x77\x28\x05\xc4\ +\xdf\x83\x33\x11\x67\xa5\x38\x2f\x43\x2c\x56\x8c\x38\x26\x0f\xf7\ +\x22\x7f\xf1\x8a\x24\x3e\xb6\x74\x21\x63\xce\x31\x2f\x1a\xc5\xda\ +\x30\x67\x76\x12\xb9\x03\x56\x75\xb7\x79\x9c\x36\x95\x78\x70\x91\ +\xce\xc2\xb2\x16\xc7\xcc\xe3\x2c\x8f\xe2\x85\x10\xef\x69\xcf\xff\ +\xfd\x6e\xd7\x6f\x33\x89\x23\xce\x41\xaf\x49\xae\x25\x9c\xc1\x4f\ +\x4b\x4e\xaa\x9a\xa3\x9b\x1f\xb9\x2c\xe6\x79\x27\x32\xa0\x28\x2f\ +\x98\x08\x2f\xd0\x39\x9e\x7d\xe4\x4c\x47\xcf\xf3\xe2\xc4\x85\x5a\ +\xa3\x78\x0c\xe6\xb5\x61\x1e\x5d\xc4\xeb\x29\xfd\xca\xdb\x36\xbf\ +\xc3\xc6\x92\x18\xbb\xef\x89\x44\x68\x91\x38\x57\x13\x66\x5d\x8c\ +\xab\x19\xc7\x52\x17\xbe\xd3\x89\xba\x43\x62\xe3\xb3\x8f\xf0\xd9\ +\x0f\xf3\xbe\x4f\xc9\xdc\x07\xc4\xbd\xd9\xcf\x98\xbe\xa2\x33\x36\ +\x48\xd4\x2f\xea\xae\xce\x39\x69\xb3\x4e\xb1\xd4\xc0\x5a\x8f\x72\ +\xec\xe1\x4b\x3b\x50\x7d\x25\xad\xcd\x11\xcf\x1f\xc7\x2d\xf2\x39\ +\x2e\xc5\xcd\x0b\x3d\x3d\xf3\xfa\xc5\x7f\xb8\xd2\xfb\x27\xfc\x4b\ +\x8f\x66\xd4\x39\x99\x57\x55\xa2\x38\xf2\xa8\x5a\x76\x26\x42\xb5\ +\x6f\x77\xa2\xfe\x93\x81\x06\x9d\xbb\xf1\xd9\xbe\xcc\xb9\x06\x3f\ +\xb1\x56\x73\x22\x47\xdf\xfb\x67\x57\x7a\xff\x7d\xca\xfe\x3f\xa3\ +\x38\x1a\x8a\xa5\x2d\x13\x1f\x77\x82\xb1\x0c\x5e\xb5\xe9\x8f\xb7\ +\x20\x38\x2f\xa1\xdc\x49\x99\x37\x48\x39\xd3\x46\xc5\x8d\x1b\xe8\ +\x88\x24\xe4\x1c\x91\x93\x3c\x60\x29\x8e\x49\x5f\x97\xdf\x2a\x3a\ +\x31\xf3\xf5\x84\x58\x47\x31\x56\xc4\xea\xba\x56\xce\x47\x5b\xfd\ +\x17\x29\x0e\x84\xe3\xe9\x4a\x92\x67\x11\x71\x95\x73\x1d\xab\x7f\ +\x06\xf9\x75\x3a\xc7\x71\x71\x4e\x4b\xc9\x51\x8f\x96\xff\x74\xad\ +\xef\xea\xda\xc9\x6f\x67\x65\x2e\x5f\x8a\xf2\xf8\xea\x8e\x7a\xf0\ +\x35\xeb\xc6\xf6\xa1\x9d\x88\x61\xc8\xdb\xcc\xc9\x03\xfd\xbb\xf9\ +\x7f\x9d\xaa\x7f\x6a\x0c\xbc\x24\x9c\x9b\x8a\x31\x10\x0d\x15\x9d\ +\x91\xc0\x5d\xdf\x5f\xeb\xbb\x49\x7d\x81\x73\xa9\xc3\x1c\xb7\x99\ +\x22\xec\x08\x7a\x5f\xfb\xd6\xfc\x3e\xfa\x8f\x21\xf3\x8e\xc2\x7c\ +\xf6\x4e\x3c\x66\x66\xb1\x63\xf5\xd7\x23\xef\x3a\x9b\x0b\x71\x8e\ +\x5b\x06\x5c\xeb\x42\xff\xfb\x07\x0e\xde\xb2\xc6\x57\xf7\x22\x07\ +\x9d\x73\xe9\x18\x03\x03\x7d\x01\x39\x44\xc0\x25\x58\xbb\xfe\x73\ +\x14\xa3\x46\xf9\x27\x36\xc7\xcd\x22\x4e\xc1\xb4\xca\xe7\x3b\x55\ +\x7f\x21\x21\x70\x9e\x50\x5e\x98\xc5\xdc\xe5\xfb\x94\xe7\xbe\x68\ +\xf5\x97\x26\xac\xc6\x43\x05\x73\xa6\xc9\xb3\x36\x45\x31\x83\x9c\ +\xc3\x9c\x60\xde\x98\xf7\xae\xfe\x0d\xfa\x0f\xf1\xd7\x59\x32\xee\ +\x13\xb1\x1f\x06\xbd\x2f\xb3\x83\xf5\x57\xd2\x41\xe6\x03\xc6\xdc\ +\x96\x12\x63\x60\x92\x79\xa2\x7e\xb4\xfd\x3b\xc0\x1e\xa2\x5c\x2e\ +\x51\x87\xeb\xc3\x9c\x87\xeb\xc6\x78\x27\x10\xff\xce\xfc\xaf\x2b\ +\x24\x8e\x9c\x51\xbd\x26\x73\xd7\x98\xcf\x12\xed\x8d\x85\x3b\x8a\ +\xd7\x32\x98\x09\xcc\x11\xff\x37\xc5\x85\x89\x67\x20\x37\xbf\x5f\ +\xd9\xdb\xbe\xbe\x8f\xe4\xcd\x39\xce\x9f\xb2\x99\x47\x0c\x79\x58\ +\x79\xe6\x93\xa5\x58\xaa\x84\x36\xed\x84\x0e\xdf\x56\x6a\xbf\x71\ +\x92\xf2\x9d\x38\x87\xa9\x20\xe3\xae\x29\xde\x5d\xed\x2c\x87\x71\ +\x4e\x3d\x43\xf9\xd5\xc4\xd7\x28\x73\x8a\xa2\x99\xf2\x83\xee\xbf\ +\x5b\xb1\xdf\xf8\x4c\xc1\x9a\xa5\x38\x68\x5e\x4b\x2b\x4e\xe0\xd0\ +\x2f\x9f\x9d\xd2\x99\x13\x9e\xe6\x74\xf1\x89\xf3\xda\xd1\xcc\x47\ +\x47\xfd\x73\xc0\x88\xa2\xdc\x81\x32\xe5\xcd\xa4\xf8\xdd\xbe\xb3\ +\x93\xf5\x17\xa2\x53\x3e\x8a\x5a\xa4\x18\xe0\xa4\x58\x27\xa3\x81\ +\x52\xf3\x1d\xa7\x90\x33\x46\xb9\x20\x45\xc2\x30\x49\xcb\x5c\x01\ +\x55\xff\xc4\x57\x33\x32\xce\x09\x31\xe4\xc0\x95\xb0\x8d\xe2\x43\ +\xee\xef\xc0\x4d\xce\x39\xf7\x45\xe2\xd5\xcd\x08\xfb\x2d\xc5\xf3\ +\x55\xc7\xf1\xae\xb2\xc6\x1c\xe5\xb5\x70\x3e\x56\x93\x4b\x0e\x32\ +\x08\x1b\x89\xea\x11\x96\xf9\x7a\xf6\x7c\x73\xfe\x48\x23\xc7\xd3\ +\xe0\xfc\x1c\xe4\x6e\xc8\x1c\x2e\xc2\x25\x8b\xc1\xb6\x32\x38\x7e\ +\x87\xe2\xa1\xed\x8a\x9b\xeb\xd8\x71\x7e\x4c\xf3\x48\xed\xc9\xb4\ +\x55\x6f\x72\xa2\xb7\xea\xbf\xef\x0d\x19\xca\x21\xad\x52\xce\x5a\ +\x96\xe2\x86\x8c\xf7\x35\x7f\x67\xbc\xe7\x4b\x79\x6d\x8e\x72\xdb\ +\x29\x27\x19\x1c\x95\xd6\x0c\xf2\xfa\xc5\xfc\x33\x4b\xfb\x17\xce\ +\x3f\x10\xe3\xd7\xe6\xbc\x9f\xa1\xa1\xc0\x1d\x9d\xae\xff\xb0\xb2\ +\xf4\x58\xc6\xaa\x53\xec\x7f\x46\xc6\xb7\x8f\x1f\xfd\xd0\x83\x05\ +\xe4\x3f\x52\x0e\x31\xec\x00\xb4\xef\x72\xdc\x19\xea\xe7\x2a\xe7\ +\x23\x30\x27\x39\xf5\xbd\x97\xa5\x29\xff\xae\x4e\xfd\xdf\xe5\x21\ +\x87\x5e\xcc\xb1\xe2\x57\x3b\x5d\xff\xa1\xa1\xc4\x1d\x69\x60\x35\ +\x50\x3e\x67\x89\xc6\x41\x5a\x3d\xf9\x08\xf2\x05\x0b\x2e\x07\x3b\ +\xb0\x8a\xb4\xfa\x23\xab\x7f\x2b\x16\xdf\x17\xe7\xc0\x83\x87\xd8\ +\x41\x8a\x6b\x2e\xd3\x18\x61\xde\xde\x0a\xe5\x53\x90\xfe\x91\x2b\ +\x27\xe6\xe0\x50\xe0\x8e\x3b\x3b\x5d\x7f\x21\x63\x89\x80\xe8\x27\ +\xa4\xeb\x12\xcd\x15\x69\x6d\xfa\x42\xce\x62\xfe\x5d\xce\x79\xaf\ +\x39\xa3\xc1\x9f\x5e\x13\xef\x00\x63\x27\x4f\xef\x40\x7e\x97\x70\ +\x22\x8a\x6c\x3b\xe8\x45\xb9\x77\x29\x53\x5c\xb4\x1e\xea\x4a\xfd\ +\x95\x14\xea\x6f\xce\xc8\x38\xb9\x22\xad\x67\x39\x8b\xeb\x40\xfd\ +\x4a\x5f\x1f\xb3\x68\xc8\x27\xfa\x4b\xa0\x42\x3c\x8a\x9c\x7f\xc0\ +\xf6\x1a\xe5\x5d\xe0\x23\xe3\x2e\xf1\x7e\xb4\xd0\xfb\xba\x53\xff\ +\x20\xc7\x54\x13\xd6\x43\xd8\xad\xc3\xb4\x8c\x2d\xc5\xfe\xb2\xba\ +\x5e\x9e\x38\x49\x1c\xfc\x6e\x6d\x71\xa3\x39\x7d\x9a\x63\x46\x0d\ +\x8e\x9d\x66\xec\x85\x9a\x13\x0e\x97\x3a\xb6\x47\x5d\xf1\xfc\x20\ +\x78\xad\xeb\xf4\xfc\xa9\xb0\xcb\xa9\x3c\x2d\xb1\x2a\xc8\x46\xd3\ +\x37\xfa\xfd\xa0\xa2\xdc\x98\x09\x56\x88\xf3\xd9\xe5\xac\xe6\xdc\ +\x17\x8e\xfb\xe7\xfa\x57\x85\x7d\x52\xea\xa8\x9f\xc0\x95\x7d\x23\ +\x2f\xbc\x87\xe2\x4e\x65\xec\xb9\x8b\x33\xc4\x3c\x7f\x5b\xb3\xd9\ +\x27\x31\x17\x69\x2e\x67\xb2\x1b\xb7\x5e\x5c\xa1\xff\x6c\x64\xfa\ +\x8a\xf7\xbe\xeb\x09\x62\x31\xb3\x1a\x73\x42\xe7\x0c\xce\x45\x00\ +\x6e\xa2\xd0\xe7\x9f\x6c\xe5\xf7\x03\x8a\x72\x73\x56\xc6\xdd\x72\ +\x2e\x43\x8b\x4b\xd4\xe5\x75\x15\x5f\x0b\x76\xab\xfe\x39\xd1\x87\ +\x0b\x32\xaf\x22\x47\xbc\xf6\x55\xc2\x5e\x52\xb6\x81\xb3\x95\x15\ +\xb6\x94\xcb\x8b\x5d\x70\xf9\x50\x25\x66\x48\x86\xed\x87\x6e\xc5\ +\x29\x2a\x89\xf0\x27\xbe\x0e\x4e\xd3\xac\xce\xf1\xd0\xf0\xd5\x14\ +\xc2\xa7\x36\x1c\xb7\xab\x65\xa0\x3f\x7d\x1c\xeb\x46\xd6\xc5\x3d\ +\xc2\x38\x02\x76\x0a\xe5\x7c\x56\xbb\xd2\xf7\xdb\xc4\x97\x12\xf6\ +\x34\xf8\xb3\x93\x14\x7b\xba\xf6\xde\x6a\x13\x51\xe1\x73\xce\xe9\ +\x9c\x27\x47\xd8\x2f\xd4\x0f\xc5\x1c\x16\xea\x7e\xcc\xbe\x39\xf6\ +\xe9\xa7\x92\x14\x97\x4c\x7e\x82\xf4\x4e\xee\x31\x3c\xa0\xdc\x92\ +\xa1\xd8\x6e\x61\x03\x69\xcc\x2f\x9a\x14\x6d\x49\x86\xae\x3d\xac\ +\xc9\x49\xf5\xb3\x97\x80\x23\x13\xb7\x3f\xd8\x2b\xac\x04\x4f\x3c\ +\xf1\xc4\x13\x4f\xae\x61\xe1\x68\xa1\xed\x5d\xef\x90\x57\x65\xa3\ +\xeb\x7f\x93\x57\x9f\xbc\xf6\x5d\x7e\xed\xc3\xf5\xf6\x0b\xc7\xf9\ +\x7a\xfe\x98\xbc\x5a\x7c\x3d\xe7\x5e\x47\xe8\xba\x2c\xaf\x27\x96\ +\x87\xf9\xbf\x97\x7d\x7c\xfd\x7d\xbe\x9e\xbb\xfd\xf6\x95\x57\xdf\ +\xf2\xaa\xeb\x39\xba\x9e\x1f\x76\xaf\xe7\x57\x5e\x47\x2e\xd0\xf5\ +\x42\xf3\x7a\x91\xaf\x16\x38\x9a\xc4\xf5\x18\x5f\x2f\x1e\xbb\xe4\ +\x93\xed\x7c\x60\x9b\x7a\x5b\xeb\x8a\x38\x2d\x5b\x61\x70\xcb\x66\ +\x9c\xd6\xa1\x5d\xeb\x0e\x9e\x3c\xcd\x24\x17\x59\xfc\xa7\x94\xb5\ +\xe4\x24\x34\xd8\xd1\xbe\xd7\xf4\xf2\xd9\x62\x1f\xfa\x4e\xf0\x1b\ +\xc0\xdf\xc5\x31\x1f\x35\x67\x78\x7f\xa8\x2b\x7e\x97\xb5\x24\x11\ +\x5c\x22\x7f\x7c\x56\xe2\x6d\x22\x6e\x46\xd9\x1a\x66\x69\xbb\x0c\ +\x28\xfd\xfb\xdf\x3a\x72\xe4\x73\x4f\x6d\xf7\xf9\x71\x6d\xf1\x87\ +\x74\xf6\x69\xba\xe7\xe6\xdb\xdb\xf7\x0d\x8e\xbe\x6e\x1a\xbc\x09\ +\xe0\x8a\x98\x50\x69\xcf\x72\x70\x7b\x35\xd8\xfb\x0e\xf8\xd1\xa6\ +\x22\xbc\x7f\x4e\xb1\xcf\xfe\x1d\x5b\xfd\xf5\x81\xa3\xaf\xff\x7c\ +\x06\x71\x47\x74\x1e\x53\x71\xc6\x8d\xed\x61\xd4\xdb\xfa\x5d\x0f\ +\x73\xec\x03\xfc\x18\xd3\x8c\xf5\xb3\x4d\xc9\x01\x87\x09\xf1\x06\ +\x7a\xc9\x09\x87\x4e\xad\x87\x93\xaa\xad\xf5\xc7\x09\x75\xf6\x31\ +\xc2\xad\x24\xbf\x5f\x71\x47\xcf\x4f\x85\xf8\xdc\x00\x58\x55\x91\ +\xd0\xbd\xab\x7f\xbf\x1f\x38\x49\xc0\xcf\x9a\x5c\xe3\xec\x2c\xa6\ +\xce\xf1\xf3\xc3\xec\x07\xc9\x19\xdb\xdf\x87\xa7\x02\xf3\xe4\xd7\ +\x87\x1f\x56\x3c\xee\xd6\xf6\x7f\x4b\xab\x4b\x4f\xe5\xe8\x3c\x8f\ +\xe3\x49\x9e\x7d\x7d\x79\x45\x3c\x43\x42\x9d\x79\x0c\xe7\x5d\x53\ +\x61\x3e\xf7\x4a\xe8\xdb\xf7\xb9\x4d\x04\x1a\x4f\xc0\x97\x04\x7f\ +\xaa\x31\x76\x72\x05\x4e\x2f\xda\x3e\x45\xe7\xb2\xd3\x84\x27\x29\ +\xcf\x40\xdb\x9e\x3f\xfb\x18\xce\x2c\xe0\x3f\xc3\xb9\xf3\xc8\xa1\ +\x5f\x68\x6c\xf7\xf9\x42\x74\xf8\xd5\x11\x37\x16\xd3\x56\xdc\x3f\ +\xc4\xb8\x94\xec\x9b\x83\xbf\x11\x67\x3e\x09\xab\x35\xc6\x92\xfa\ +\xcc\x13\xd0\x1d\xb0\x27\x32\x68\xbf\xb1\xb3\x7d\x7f\x5e\x9f\xe3\ +\x73\x09\xbd\x85\x11\x98\x0b\xcc\x3f\x09\x3c\xc3\x02\xe3\x19\x5f\ +\xc8\x03\xf3\x49\x2b\x11\xfe\x9d\x22\xfd\x15\xc0\x4c\xa2\xb3\x47\ +\xe4\xba\x8b\x7a\xde\x60\xee\xcc\xe7\x19\xa5\x36\xe0\x4c\xe4\xb4\ +\x33\x11\x28\x53\xcc\x50\xce\x9c\x61\x2c\x5a\x9b\xeb\x64\xea\x9f\ +\xf8\x2a\xbe\x93\x31\xa6\x09\xcb\x8e\xda\xaf\xcd\xfe\x80\xce\x8c\ +\x74\xc6\x1a\x54\xfa\xfd\x6f\xde\xc9\xf3\x8f\x5c\x57\x23\xdf\x2f\ +\xe1\xa4\x31\x26\x86\x82\x1c\x6e\xc6\xef\x69\xf5\xe9\x6c\x60\x86\ +\xcf\xd0\xe8\xfc\xcc\xf7\x92\x9c\x3a\xf3\x83\xac\xc1\xd8\xa9\x38\ +\xcf\xb1\xd5\xe2\xc3\x3b\x79\xfe\xbe\x7e\xe5\x0d\x38\xd7\xc2\x99\ +\x0a\xce\xdf\xf6\x1e\x7a\xe5\x87\x70\xce\x42\xd8\x54\xc1\xc6\x13\ +\xee\xf7\x26\x26\x4f\x3d\x90\x53\x19\x7b\x2a\x63\xf2\x99\x30\xce\ +\x9b\x70\x56\x0c\x1c\xaf\x94\x75\x7a\xc7\x7e\x9f\x34\xfc\x48\x38\ +\x0f\xd1\xd9\x17\xce\xf8\xaf\x97\xcf\xe7\xc0\x4a\x02\x5e\x18\x63\ +\xca\xb1\xcf\x7e\x8a\xf0\x44\x70\x6e\xbe\xf3\x98\x8b\xac\x3a\x2f\ +\xb1\x39\x98\x37\x20\x47\xe7\x21\x97\xcf\x27\x43\xfb\x6e\xb8\xa7\ +\x40\xd8\x2d\x12\x67\xd8\x28\x12\xee\x16\x7c\xd9\x49\x7b\xe7\x1c\ +\x23\xc9\xb1\x86\xc4\x89\x61\x2c\x23\x3a\x63\x5d\x67\x3e\xcd\xa8\ +\xd5\xe6\xf9\x85\x8b\xf9\x82\xb5\x2f\xa9\xed\x9c\x6f\x22\x1a\x38\ +\xf3\xe7\x14\x07\x22\xf1\xa3\x25\x6e\xd2\x9a\x72\x40\x79\x76\x39\ +\xa7\x95\x9b\xb8\x33\xf8\x50\xcc\x8b\x35\xbd\xe3\xe7\x2b\x98\x6f\ +\x54\x8e\x91\x42\xbf\x4b\x05\x37\x9e\x4b\x72\xe4\xff\xe6\xf3\x0f\ +\xac\xfd\x59\x5e\xfb\x6f\xdd\xe8\x37\x9b\x09\x62\x6c\x70\xf6\x9c\ +\xe2\x31\xb8\x61\xfc\x48\x7c\xec\xec\xdf\xe6\x8c\x3a\xf9\x9e\x09\ +\xeb\xd9\xbc\x72\x9f\x67\x4c\x3b\xf9\x68\x2a\x58\x07\x26\xea\x93\ +\x5b\xf9\x3e\xc6\x4c\x0e\x7e\x57\xf1\xde\x13\x5c\xe7\x5d\xd9\xf9\ +\xc4\xb4\xd3\xdf\xda\x8d\xe7\x7a\xe2\xc9\x56\xe5\xf2\x0c\xaf\x8b\ +\xc7\x88\xbf\x18\x0e\x8a\xe3\x17\x8e\x89\xff\xb3\xf0\xbf\x17\x9f\ +\x2b\x3e\x37\xbe\x4b\x7c\x6e\xe4\x4f\x3e\x78\xec\x52\x7e\xcf\xb1\ +\x4b\x87\xf1\x39\x71\xec\x52\xdf\x89\x63\x8e\x6f\x59\x7e\xce\x1d\ +\x73\x86\xf1\x39\x7f\xcc\x79\xff\xf9\xe3\xce\x47\xc0\x81\xbc\x76\ +\x32\x1a\xfc\x14\x18\x9c\xb6\xd2\xf2\x53\xdc\xd4\x31\x14\x94\xdd\ +\x11\x9c\x5f\x65\xac\x9d\x9f\xb5\xd1\x79\x9d\xb5\xfe\x9a\x89\x98\ +\x6b\x19\x6b\xbd\xce\xef\x19\x5b\x75\xbd\x7f\xc7\xf9\xa2\x8c\xb5\ +\x25\x41\xac\xe0\xea\xe7\x67\x36\x98\xb7\xb1\x1e\xa4\x5a\xe7\xe8\ +\x7b\x69\x8f\xd7\xb6\xc7\xcc\xcb\x58\xc9\xf5\x7e\x8f\x98\xbb\xb4\ +\x6c\x1f\x62\xeb\x08\xff\x52\xd8\xaf\x6e\x0c\x1d\x62\xe6\x36\xaa\ +\x3f\xdd\x43\xda\xd4\x84\xa7\x6e\xcf\x9f\x47\x2c\x55\x52\x77\xff\ +\xd6\xc4\x85\x5f\x57\x08\x37\x58\x3d\xf9\x48\xb6\xad\x9d\x14\x43\ +\xa3\x71\xcc\x0c\x7c\x07\x1b\xfe\x1e\xf1\x73\x74\xbe\xdf\x7a\x0e\ +\xc5\x50\xc0\xf6\x00\xae\xf7\x26\xbc\x7a\x38\x6b\xc7\x19\xfb\xea\ +\xb3\x75\x9c\x9d\xe3\xbc\x5c\x9e\x95\x6f\x24\xbe\xe4\x1a\xb1\xab\ +\xe8\x7b\x58\xf3\x7b\x71\x56\xda\x4b\x61\xdf\xa6\xf8\x3c\xcc\x9f\ +\x87\xc5\xe7\xef\xc5\xe7\xa1\x37\x8a\x4f\x4c\x51\x9e\x14\x9f\xc7\ +\xdf\x2f\x3f\x0f\x28\xca\x13\x0f\xb4\xfd\x46\x7c\xfe\x3f\x60\x90\ +\xc1\x7e\ +\x00\x00\x03\xaa\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x39\x37\x30\x31\ +\x39\x38\x39\x38\x34\x35\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x39\x32\x37\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x35\x30\x30\x2e\x33\x32\x20\x35\x39\ +\x2e\x38\x34\x61\x38\x20\x38\x20\x30\x20\x30\x20\x31\x20\x38\x20\ +\x36\x2e\x34\x76\x33\x35\x32\x61\x38\x39\x2e\x36\x20\x38\x39\x2e\ +\x36\x20\x30\x20\x30\x20\x30\x20\x38\x39\x2e\x36\x20\x38\x39\x2e\ +\x36\x68\x33\x35\x30\x2e\x34\x61\x38\x2e\x31\x36\x20\x38\x2e\x31\ +\x36\x20\x30\x20\x30\x20\x31\x20\x38\x2e\x31\x36\x20\x38\x2e\x31\ +\x36\x76\x31\x32\x2e\x38\x41\x34\x34\x38\x20\x34\x34\x38\x20\x30\ +\x20\x31\x20\x31\x20\x34\x38\x37\x2e\x30\x34\x20\x36\x30\x2e\x33\ +\x32\x68\x31\x31\x2e\x35\x32\x7a\x4d\x34\x34\x31\x2e\x34\x34\x20\ +\x31\x33\x32\x2e\x38\x6c\x2d\x35\x2e\x39\x32\x20\x31\x2e\x31\x32\ +\x61\x33\x38\x30\x2e\x39\x36\x20\x33\x38\x30\x2e\x39\x36\x20\x30\ +\x20\x31\x20\x30\x20\x34\x34\x36\x2e\x38\x38\x20\x34\x34\x38\x6c\ +\x31\x2e\x31\x32\x2d\x36\x2e\x32\x34\x48\x35\x39\x38\x2e\x32\x34\ +\x61\x31\x35\x36\x2e\x39\x36\x20\x31\x35\x36\x2e\x39\x36\x20\x30\ +\x20\x30\x20\x31\x2d\x31\x35\x36\x2e\x38\x2d\x31\x35\x31\x2e\x38\ +\x34\x56\x31\x33\x32\x2e\x38\x7a\x20\x6d\x31\x34\x32\x2e\x35\x36\ +\x2d\x36\x36\x2e\x35\x36\x6c\x38\x2e\x36\x34\x20\x31\x2e\x36\x20\ +\x36\x2e\x35\x36\x20\x31\x2e\x32\x38\x68\x32\x2e\x37\x32\x61\x34\ +\x34\x38\x20\x34\x34\x38\x20\x30\x20\x30\x20\x31\x20\x33\x34\x36\ +\x2e\x30\x38\x20\x33\x35\x30\x2e\x35\x36\x6c\x32\x2e\x30\x38\x20\ +\x31\x31\x2e\x33\x36\x61\x38\x2e\x33\x32\x20\x38\x2e\x33\x32\x20\ +\x30\x20\x30\x20\x31\x2d\x36\x2e\x37\x32\x20\x39\x2e\x34\x34\x48\ +\x36\x32\x30\x2e\x36\x34\x61\x34\x34\x2e\x39\x36\x20\x34\x34\x2e\ +\x39\x36\x20\x30\x20\x30\x20\x31\x2d\x34\x34\x2e\x38\x2d\x34\x31\ +\x2e\x36\x56\x37\x34\x2e\x34\x61\x38\x2e\x31\x36\x20\x38\x2e\x31\ +\x36\x20\x30\x20\x30\x20\x31\x20\x38\x2e\x31\x36\x2d\x38\x2e\x31\ +\x36\x7a\x20\x6d\x35\x39\x2e\x32\x20\x38\x39\x2e\x36\x61\x34\x2e\ +\x34\x38\x20\x34\x2e\x34\x38\x20\x30\x20\x30\x20\x30\x20\x30\x20\ +\x31\x2e\x34\x34\x76\x32\x31\x32\x61\x34\x2e\x31\x36\x20\x34\x2e\ +\x31\x36\x20\x30\x20\x30\x20\x30\x20\x34\x20\x34\x2e\x31\x36\x68\ +\x32\x31\x31\x2e\x38\x34\x61\x34\x2e\x31\x36\x20\x34\x2e\x31\x36\ +\x20\x30\x20\x30\x20\x30\x20\x34\x2e\x31\x36\x2d\x34\x2e\x31\x36\ +\x20\x34\x2e\x36\x34\x20\x34\x2e\x36\x34\x20\x30\x20\x30\x20\x30\ +\x20\x30\x2d\x31\x2e\x34\x34\x20\x33\x38\x32\x2e\x37\x32\x20\x33\ +\x38\x32\x2e\x37\x32\x20\x30\x20\x30\x20\x30\x2d\x32\x31\x34\x2e\ +\x34\x2d\x32\x31\x34\x2e\x34\x20\x34\x2e\x31\x36\x20\x34\x2e\x31\ +\x36\x20\x30\x20\x30\x20\x30\x2d\x35\x2e\x32\x38\x20\x32\x2e\x34\ +\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x2d\ +\x69\x64\x3d\x22\x39\x32\x38\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x07\xca\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x07\ +\x84\x49\x44\x41\x54\x78\x5e\xed\x9b\x3f\x8c\x1b\x55\x10\xc6\xdf\ +\xc6\xc4\x27\x14\x1d\x82\xf8\xaa\xab\x1c\x05\x9d\x69\x5c\x58\xb6\ +\x69\x82\x94\xa4\xa2\xa4\x85\xee\x0e\x3a\x4a\x8a\x54\x48\x04\x89\ +\x2a\x05\x25\x1d\x49\x3a\x68\x29\xa9\x62\x24\xa0\xe0\x6c\xb9\x70\ +\xc3\x59\x44\x31\x8d\xab\xf8\x84\x64\x45\xe8\x9c\x33\x8b\x66\x93\ +\x8d\xf6\x36\xbb\x6f\xf7\xed\xcc\x5a\x1e\xfb\x5b\xe9\xa4\x5c\xee\ +\xbd\xd9\x99\xef\xfb\xbd\x3f\xfb\xd6\xf6\x4c\xec\x3a\x3e\x3e\xbe\ +\x4b\xff\xe5\x79\xde\x4d\x63\xcc\xad\xf8\xdf\xf1\xbb\x3a\x05\x26\ +\x2f\x33\xee\x79\x9e\xf7\x4b\xbb\xdd\x7e\x18\xad\xc0\x0b\x7f\x19\ +\x0e\x87\xf5\xe5\x72\xf9\x00\xa6\xab\x33\xd8\x35\xe1\x49\xa5\x52\ +\xb9\xdd\x6a\xb5\x02\x30\x02\x00\x5e\x9a\xff\xc4\x35\x12\xda\xab\ +\x55\x60\xe2\xfb\xfe\x51\xb7\xdb\xed\x05\x00\xf4\xfb\xfd\x47\x18\ +\xf9\x6a\xcd\x2c\x9a\xf8\xa4\xd3\xe9\x5c\xf3\x06\x83\xc1\xa1\xef\ +\xfb\x34\xf5\xe3\xda\x32\x05\x7c\xdf\xff\xda\xeb\xf7\xfb\x64\xfe\ +\xe1\x96\xd5\x8e\x72\x5f\x28\xd0\x23\x00\x68\xed\xaf\x43\x91\xad\ +\x54\x60\x42\x00\xf8\x5b\x59\x3a\x8a\x0e\x14\xc8\x05\x40\xb5\x5a\ +\x35\xfb\xfb\xfb\xa6\x56\xab\x41\x36\xa6\x02\x8b\xc5\xc2\x9c\x9d\ +\x9d\x99\xc9\x64\x62\xe8\xdf\x49\x57\x54\xef\x32\xda\x5f\x38\x07\ +\xc8\x9a\x01\x28\x99\x66\xb3\xc9\x2c\x1b\xdd\xe3\x0a\x90\xb1\x27\ +\x27\x27\x89\x10\xb4\xdb\xed\xd7\x04\x93\x6c\xef\x04\x40\xbd\x5e\ +\xc7\xc8\x2f\x89\xdf\xf9\x7c\x6e\xc6\xe3\xf1\x85\xe8\x36\xbd\x25\ +\xda\xc7\x4b\xc9\x5c\x02\x68\xf4\xd3\x2c\x80\x4b\x5e\x01\x1a\xd5\ +\xa3\xd1\xe8\x42\x60\x9b\xde\x12\xed\x01\x80\xbc\x8f\xac\x88\x83\ +\xc1\xe0\x42\xff\x83\x83\x03\xb3\xbb\xbb\x9b\x1a\x93\xdb\xde\x19\ +\x00\x2c\x01\x2c\x7f\xad\x9d\x67\xb3\x59\xb0\x19\x8c\x5e\x36\xbd\ +\x25\xda\x3b\x03\x80\x4d\x60\x39\x00\xa4\x6d\xea\x48\xef\x46\xa3\ +\x91\xb8\xec\xd2\x72\x11\x7f\x72\x70\x6d\xef\x0c\x00\x75\xa0\x9b\ +\xec\xed\xed\x05\x9b\x41\xec\x07\x78\x40\x90\x81\xb4\x99\x8b\x8f\ +\xfc\x68\xd4\xa8\xde\xf4\xff\xd4\x7e\x3a\x9d\x5a\x1f\x1b\x43\x7f\ +\xf2\xb4\x77\x7a\x0a\xe0\x95\x8b\xde\xeb\xae\x40\xe6\x53\xc0\xba\ +\x17\x80\xfc\x78\x0a\x00\x00\x9e\x7e\xea\x7b\x03\x00\xf5\x16\xf2\ +\x0a\x00\x00\x3c\xfd\xd4\xf7\x06\x00\xea\x2d\xe4\x15\x00\x00\x78\ +\xfa\xa9\xef\x0d\x00\xd4\x5b\xc8\x2b\x20\x13\x80\xa4\x57\x93\xbc\ +\x5b\xa2\xf7\x2a\x15\x88\xbf\x3b\x70\x3e\x09\x04\x00\xab\xb4\x4b\ +\xfe\x5e\x00\x40\x5e\x53\x55\x11\x01\x80\x2a\xbb\xe4\x93\x05\x00\ +\xf2\x9a\xaa\x8a\x08\x00\x54\xd9\x25\x9f\x2c\x00\x90\xd7\x54\x55\ +\x44\x00\xa0\xca\x2e\xf9\x64\x01\x80\xbc\xa6\xaa\x22\x02\x00\x55\ +\x76\xc9\x27\x0b\x00\xe4\x35\x55\x15\x11\x00\xa8\xb2\x4b\x3e\x59\ +\x00\x20\xaf\xa9\xaa\x88\x00\x40\x95\x5d\xf2\xc9\x02\x00\x79\x4d\ +\x55\x45\x04\x00\xaa\xec\x92\x4f\x16\x00\xc8\x6b\xaa\x2a\x22\x00\ +\x50\x65\x97\x7c\xb2\x00\x40\x5e\x53\x55\x11\x01\x80\x2a\xbb\xe4\ +\x93\x05\x00\xf2\x9a\xaa\x8a\x08\x00\x54\xd9\x25\x9f\x2c\x00\x90\ +\xd7\x54\x55\x44\x00\xa0\xca\x2e\xf9\x64\x01\x80\xbc\xa6\xaa\x22\ +\x02\x00\x55\x76\xc9\x27\x0b\x00\xe4\x35\x55\x15\x11\x00\xa8\xb2\ +\x4b\x3e\x59\x00\x20\xaf\xa9\xaa\x88\x00\x40\x95\x5d\xf2\xc9\x02\ +\x00\x79\x4d\x55\x45\x04\x00\xaa\xec\x92\x4f\x16\x00\xc8\x6b\xaa\ +\x2a\x22\x00\x50\x65\x97\x7c\xb2\x00\x40\x5e\x53\x55\x11\x01\x80\ +\x2a\xbb\xe4\x93\x55\x09\xc0\xb3\x1f\xef\x9b\xb3\x3f\x7e\x4d\x54\ +\xe3\xed\x2f\xef\x99\x4b\x57\xf7\x0a\x29\xf5\xfc\xaf\x3f\xcd\xf9\ +\xe3\x13\x73\x76\xfc\x9b\xf9\xef\xf4\xe9\xab\x18\x61\xbc\xcb\xef\ +\xbe\x67\xde\xb8\xde\x30\x3b\xdd\x1b\x85\xe2\xa7\x75\x2a\xab\x9e\ +\x3c\x49\xaa\x03\x80\x4c\x9a\x7f\x77\x2f\xb1\xb6\x37\x3f\xfc\xc8\ +\xd0\x8f\xeb\x45\x86\x3f\xfb\xe1\xfb\xdc\xdd\x08\x08\x82\xa0\xc8\ +\xbd\xe2\x37\x29\xa3\x9e\xdc\x85\x18\x63\xd4\x01\x40\xe6\x93\x68\ +\x49\xd7\xd5\x6f\xef\xbb\xd4\x1e\xb4\xb5\xc5\xcb\x0a\x46\x20\xd0\ +\x8c\xc3\xb9\xa4\xeb\x71\xcd\x45\x15\x00\xb6\x91\xba\xfb\xf9\x1d\ +\x43\x53\xb4\xcb\xc5\x31\x3f\xbc\x0f\x07\x02\xe9\x7a\x5c\x6a\x0f\ +\xdb\xaa\x02\xe0\x9f\x6f\xee\x5c\x58\x9b\xc3\x22\xc8\x78\x02\xc0\ +\xe5\x72\x9d\xf6\x6d\xb1\xaf\x7c\xf2\x59\xa1\x7d\x81\x64\x3d\x2e\ +\xb5\x47\xdb\xaa\x01\xe0\xdf\x9f\x7f\x32\xf4\x93\x74\x49\x8f\xfe\ +\x9d\xf7\x3f\x30\x97\xde\xa9\x05\x6b\x3c\x6d\x06\x9f\x3f\x3e\x79\ +\xb1\x39\x4c\xd9\x78\x16\x99\x05\xa4\xeb\xd9\x68\x00\xc8\x04\x1a\ +\x2d\x49\x17\x99\x75\xe5\xe3\x4f\x9d\xea\xb7\x8d\x7e\xdb\x6c\x62\ +\x33\xcd\x65\x16\x90\xae\xc7\xa9\xf8\x58\x63\x15\x33\x80\x6d\xad\ +\x2e\xf2\xd8\x97\x16\x2f\xcf\x52\x92\xd6\xd7\x65\x16\x90\xae\x67\ +\xa3\x01\xb0\x3d\x26\xb9\x8c\xba\x50\x24\x6e\x3c\x5b\xff\x3c\x4b\ +\x11\xf7\xfe\x1c\xb3\x93\xfa\xae\xfd\x0c\x20\x31\xe2\xa2\x85\xdb\ +\xa6\xff\x3c\x8f\x91\xb6\xe9\x3b\xcf\x39\x84\x74\x3d\x5c\x20\xd6\ +\x1a\x80\x32\x36\x4a\x69\x31\x5d\xf6\x12\x69\x26\x66\xc5\x28\xa3\ +\x9e\x8d\x06\xe0\xf4\x8b\xe4\xcd\x5d\xb8\x56\x27\xfd\x3d\x6b\x2d\ +\x4e\x3b\x76\xcd\x32\x2f\x2a\x74\x9a\x91\x59\x7b\x88\x32\xea\xd9\ +\x58\x00\xf2\x6c\x94\x8a\x00\x90\x16\x37\xcf\xf4\x1d\x8a\x9d\x06\ +\x80\x0d\xbe\xb2\xea\xd9\x48\x00\xf2\x9e\x8f\x17\x01\x20\xed\xf0\ +\xc5\x65\x43\x99\x96\x5f\x1a\x00\x65\xd6\xb3\x91\x00\xe4\x3d\x1f\ +\x97\x04\xc0\x65\x06\x70\xdd\x48\x96\x59\xcf\xc6\x01\x60\x13\x97\ +\x46\xe9\xe5\xeb\x8d\x57\x35\x27\x1d\x0e\xd1\x28\x7c\x2b\x72\x2c\ +\x1c\x7f\x35\x2c\xb1\x04\xa4\xe5\x98\x34\x03\x94\x5d\xcf\xc6\x01\ +\x90\xb6\x51\x2a\x5a\x68\xfc\xd1\xae\xcc\x4d\x60\xd2\x46\xb2\xec\ +\x7a\x8a\xea\xb2\xb6\x2f\x83\xca\x16\xac\xe8\x0e\x3e\x2a\xb4\x0b\ +\x44\x65\xd7\x03\x00\x32\x14\x88\xcf\x00\xae\x1b\xb8\xa4\xf0\x2e\ +\x1b\x49\x00\xe0\x88\x68\xd9\x82\x71\x8f\x62\xb3\xd6\xf4\xf8\xc7\ +\xc5\xca\xae\xc7\x51\xde\xd7\x9a\xaf\xdd\x49\xe0\x2a\x04\x5b\xe5\ +\xcb\xa0\x55\xd4\xc3\x81\x60\xed\x00\xa0\x11\x96\xf7\x4a\xfb\x1c\ +\x1f\x3d\x2d\x84\x57\xd2\x07\x38\x6d\xb3\x80\xed\x44\xd0\xf6\xe1\ +\xcd\xb4\x73\x84\x55\xd4\x93\x57\x2f\x95\x2f\x83\x6c\xc5\x15\x39\ +\x07\x08\xe3\xd9\x9e\xcd\xe9\x48\xb7\xda\xbd\x11\x7c\xca\x87\x5e\ +\xfe\x2c\x4f\x9f\x9a\x45\xff\x77\xd1\x0f\x84\x24\xd5\xc5\xa9\xa7\ +\x28\x04\x6b\x37\x03\xb8\x14\xc2\x11\xcc\x36\x0b\xb8\xe4\x40\x6d\ +\x5d\x4e\x11\xcb\x02\xda\x35\xe7\xb5\x7d\x0c\x74\x29\x84\x03\x00\ +\xdd\xc7\xf6\x76\x2e\x6f\x1e\x59\x2f\x80\xf2\xc6\xa1\x76\xdc\x7a\ +\x5c\xee\x05\x00\x8c\x09\xa6\x77\x5a\xa3\xd3\x3e\x6b\x98\x25\xa8\ +\xa4\xf9\x00\x20\x4b\xed\x84\xbf\x4b\x8d\x98\x10\x82\xe8\xb7\x81\ +\x6c\xe9\x48\x7e\x31\x24\x7a\x1f\xa9\x7a\x5c\xa4\xdc\xda\x3d\x40\ +\x5c\xa4\x70\xb3\x47\x9f\xfe\xa5\x1f\xda\xf8\x85\x40\x84\xef\x13\ +\x68\x53\x48\x5f\x0d\x73\xfd\xfe\x41\x5e\x43\x00\x40\x5e\xa5\xd0\ +\x4e\x4c\x01\xd5\x33\x80\x98\x0a\x5b\x1c\x08\x00\x6c\xb1\xf9\x54\ +\x3a\x00\x00\x00\x56\x05\xbc\x7e\xbf\xef\xdb\x5a\xb4\xdb\xed\x2d\ +\x97\x50\x77\xf9\x98\x01\x74\xfb\xc7\xce\x1e\x00\xb0\x25\xd4\x1d\ +\x00\x00\xe8\xf6\x8f\x9d\x3d\x00\x60\x4b\xa8\x3b\x00\x00\xd0\xed\ +\x1f\x3b\x7b\x00\xc0\x96\x50\x77\x00\x00\xa0\xdb\x3f\x76\xf6\x00\ +\x80\x2d\xa1\xee\x00\x00\x40\xb7\x7f\xec\xec\x01\x00\x5b\x42\xdd\ +\x01\x00\x80\x6e\xff\xd8\xd9\x03\x00\xb6\x84\xba\x03\x00\x00\xdd\ +\xfe\xb1\xb3\x07\x00\x6c\x09\x75\x07\x00\x00\xba\xfd\x63\x67\x0f\ +\x00\xd8\x12\xea\x0e\x00\x00\x74\xfb\xc7\xce\x1e\x00\xb0\x25\xd4\ +\x1d\x00\x00\xe8\xf6\x8f\x9d\x3d\x00\x60\x4b\xa8\x3b\x00\x00\xd0\ +\xed\x1f\x3b\x7b\x00\xc0\x96\x50\x77\x00\x00\xa0\xdb\x3f\x76\xf6\ +\x6c\x00\x9a\xcd\xa6\xa9\x56\xab\xec\x44\x10\x60\xf5\x0a\x2c\x16\ +\x0b\x33\x1a\x8d\xac\x37\xce\xfc\x62\x48\xbd\x5e\x37\xb5\x5a\x6d\ +\xf5\xd9\xe3\x8e\x6c\x05\xe6\xf3\xb9\x19\x8f\xc7\x3c\x00\x68\xf4\ +\x37\x1a\x0d\xcc\x02\x6c\x3b\x56\x1f\x80\x46\x3f\xcd\x02\xb6\x2b\ +\x73\x06\xa0\xce\x04\x01\xcd\x04\x3b\x3b\x3b\x00\x61\xf5\x3e\x3a\ +\xdf\x71\x36\x9b\x99\xe9\x74\x9a\x69\x3e\x05\xce\x05\x80\x73\x06\ +\xe8\xa0\x46\x01\x02\xe0\x91\x31\xe6\x96\x9a\x8c\x91\xa8\xa8\x02\ +\x00\x40\x54\x4e\x75\xc1\x1e\x7a\x83\xc1\xe0\xd0\xf7\xfd\x07\xea\ +\x52\x47\xc2\x6c\x05\x3c\xcf\x3b\xf2\x28\x0a\x96\x01\xb6\x96\x1a\ +\x03\xf4\x3a\x9d\xce\xed\x00\x80\xe1\x70\x58\x5f\x2e\x97\x4f\x34\ +\x56\x81\x9c\x8b\x29\x50\xa9\x54\xae\xb5\x5a\xad\x49\x00\x40\x08\ +\xc1\xf9\xf9\xf9\xa1\xe7\x79\x5f\x15\x0b\x89\x5e\x4a\x14\xe8\x55\ +\x2a\x95\x23\x32\x3f\x78\x0c\x8c\x27\xfd\x72\x4f\x70\xd3\x18\x53\ +\xc7\xd3\x81\x12\x4b\xb3\xd3\x24\xb3\x7b\xbe\xef\xff\xdd\xed\x76\ +\xef\x46\x9b\xff\x0f\xbc\x44\x22\x65\x53\x6c\x50\x85\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x6f\xa0\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\ +\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x31\x22\x20\x73\x69\ +\x6c\x6c\x79\x76\x67\x3d\x22\x74\x72\x75\x65\x22\x20\x74\x65\x6d\ +\x70\x6c\x61\x74\x65\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\ +\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x2d\x77\x69\x64\x74\x68\ +\x3d\x22\x36\x34\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\ +\x2e\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x22\x20\x78\x6d\x6c\ +\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x3e\ +\x0d\x0a\x20\x20\x20\x20\x3c\x64\x65\x66\x73\x20\x6e\x6f\x64\x65\ +\x2d\x69\x64\x3d\x22\x35\x33\x22\x3e\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\ +\x6e\x74\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\x73\ +\x3d\x22\x6f\x62\x6a\x65\x63\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\ +\x42\x6f\x78\x22\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\ +\x72\x61\x64\x69\x65\x6e\x74\x2d\x33\x22\x20\x6e\x6f\x64\x65\x2d\ +\x69\x64\x3d\x22\x36\x22\x20\x73\x70\x72\x65\x61\x64\x4d\x65\x74\ +\x68\x6f\x64\x3d\x22\x70\x61\x64\x22\x20\x78\x31\x3d\x22\x30\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x30\x2e\ +\x35\x22\x20\x79\x31\x3d\x22\x2d\x30\x2e\x31\x31\x37\x31\x35\x38\ +\x32\x37\x22\x20\x79\x32\x3d\x22\x30\x2e\x37\x35\x36\x38\x33\x38\ +\x31\x34\x22\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x73\x74\x6f\x70\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\ +\x30\x22\x20\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3d\x22\x23\ +\x64\x30\x38\x37\x38\x37\x22\x3e\x3c\x2f\x73\x74\x6f\x70\x3e\x0d\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x74\ +\x6f\x70\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x20\x73\x74\ +\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3d\x22\x23\x61\x33\x34\x66\x34\ +\x66\x22\x3e\x3c\x2f\x73\x74\x6f\x70\x3e\x0d\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\ +\x69\x65\x6e\x74\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x2f\x64\x65\x66\ +\x73\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x67\x20\x6e\x6f\x64\x65\x2d\ +\x69\x64\x3d\x22\x39\x30\x22\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x36\x36\x34\ +\x2e\x36\x35\x20\x39\x30\x33\x2e\x34\x39\x20\x4c\x20\x36\x37\x38\ +\x2e\x35\x30\x20\x39\x31\x30\x2e\x38\x39\x20\x4c\x20\x36\x39\x30\ +\x2e\x36\x34\x20\x39\x31\x38\x2e\x30\x32\x20\x4c\x20\x37\x30\x31\ +\x2e\x32\x33\x20\x39\x32\x34\x2e\x38\x39\x20\x4c\x20\x37\x31\x30\ +\x2e\x33\x39\x20\x39\x33\x31\x2e\x34\x39\x20\x4c\x20\x37\x31\x38\ +\x2e\x32\x36\x20\x39\x33\x37\x2e\x38\x34\x20\x4c\x20\x37\x32\x34\ +\x2e\x39\x35\x20\x39\x34\x33\x2e\x39\x35\x20\x4c\x20\x37\x33\x30\ +\x2e\x35\x38\x20\x39\x34\x39\x2e\x38\x34\x20\x4c\x20\x37\x33\x35\ +\x2e\x32\x36\x20\x39\x35\x35\x2e\x35\x32\x20\x4c\x20\x37\x33\x39\ +\x2e\x30\x36\x20\x39\x36\x31\x2e\x30\x32\x20\x4c\x20\x37\x34\x32\ +\x2e\x30\x39\x20\x39\x36\x36\x2e\x33\x35\x20\x4c\x20\x37\x34\x39\ +\x2e\x38\x38\x20\x39\x38\x32\x2e\x32\x35\x20\x4c\x20\x37\x35\x36\ +\x2e\x39\x35\x20\x39\x39\x37\x2e\x35\x39\x20\x4c\x20\x37\x36\x33\ +\x2e\x33\x31\x20\x31\x30\x31\x32\x2e\x34\x30\x20\x4c\x20\x37\x36\ +\x39\x2e\x30\x30\x20\x31\x30\x32\x36\x2e\x37\x30\x20\x4c\x20\x31\ +\x38\x36\x2e\x31\x38\x20\x31\x30\x32\x34\x2e\x39\x33\x20\x4c\x20\ +\x31\x39\x31\x2e\x39\x35\x20\x31\x30\x30\x38\x2e\x30\x32\x20\x4c\ +\x20\x31\x39\x37\x2e\x36\x39\x20\x39\x39\x32\x2e\x36\x39\x20\x4c\ +\x20\x32\x30\x33\x2e\x34\x30\x20\x39\x37\x38\x2e\x38\x33\x20\x4c\ +\x20\x32\x30\x39\x2e\x30\x37\x20\x39\x36\x36\x2e\x33\x35\x20\x4c\ +\x20\x32\x31\x31\x2e\x38\x33\x20\x39\x36\x30\x2e\x33\x38\x20\x4c\ +\x20\x32\x31\x35\x2e\x31\x35\x20\x39\x35\x34\x2e\x36\x30\x20\x4c\ +\x20\x32\x31\x39\x2e\x30\x36\x20\x39\x34\x38\x2e\x39\x39\x20\x4c\ +\x20\x32\x32\x33\x2e\x35\x39\x20\x39\x34\x33\x2e\x35\x33\x20\x4c\ +\x20\x32\x32\x38\x2e\x37\x37\x20\x39\x33\x38\x2e\x32\x31\x20\x4c\ +\x20\x32\x33\x34\x2e\x36\x36\x20\x39\x33\x33\x2e\x30\x34\x20\x4c\ +\x20\x32\x34\x31\x2e\x33\x31\x20\x39\x32\x38\x2e\x30\x30\x20\x4c\ +\x20\x32\x34\x38\x2e\x37\x37\x20\x39\x32\x33\x2e\x31\x30\x20\x4c\ +\x20\x32\x35\x37\x2e\x31\x32\x20\x39\x31\x38\x2e\x33\x36\x20\x4c\ +\x20\x32\x36\x36\x2e\x34\x32\x20\x39\x31\x33\x2e\x37\x37\x20\x4c\ +\x20\x32\x37\x36\x2e\x37\x34\x20\x39\x30\x39\x2e\x33\x36\x20\x4c\ +\x20\x32\x38\x38\x2e\x31\x38\x20\x39\x30\x35\x2e\x31\x34\x20\x4c\ +\x20\x33\x30\x35\x2e\x32\x33\x20\x39\x30\x32\x2e\x32\x33\x20\x4c\ +\x20\x33\x32\x30\x2e\x33\x30\x20\x39\x30\x30\x2e\x31\x39\x20\x4c\ +\x20\x33\x33\x33\x2e\x35\x35\x20\x38\x39\x38\x2e\x39\x32\x20\x4c\ +\x20\x33\x34\x35\x2e\x31\x35\x20\x38\x39\x38\x2e\x33\x33\x20\x4c\ +\x20\x33\x35\x35\x2e\x32\x36\x20\x38\x39\x38\x2e\x33\x33\x20\x4c\ +\x20\x33\x36\x34\x2e\x30\x33\x20\x38\x39\x38\x2e\x38\x35\x20\x4c\ +\x20\x33\x37\x31\x2e\x36\x30\x20\x38\x39\x39\x2e\x38\x30\x20\x4c\ +\x20\x33\x37\x38\x2e\x33\x33\x20\x39\x30\x31\x2e\x31\x38\x20\x4c\ +\x20\x33\x38\x35\x2e\x34\x30\x20\x39\x30\x33\x2e\x31\x38\x20\x4c\ +\x20\x33\x39\x32\x2e\x38\x34\x20\x39\x30\x35\x2e\x38\x35\x20\x4c\ +\x20\x34\x30\x30\x2e\x36\x38\x20\x39\x30\x39\x2e\x32\x35\x20\x4c\ +\x20\x34\x30\x38\x2e\x39\x37\x20\x39\x31\x33\x2e\x34\x33\x20\x4c\ +\x20\x34\x31\x37\x2e\x37\x33\x20\x39\x31\x38\x2e\x34\x38\x20\x4c\ +\x20\x34\x32\x36\x2e\x39\x39\x20\x39\x32\x34\x2e\x34\x36\x20\x4c\ +\x20\x34\x33\x36\x2e\x38\x30\x20\x39\x33\x31\x2e\x34\x34\x20\x4c\ +\x20\x34\x35\x34\x2e\x37\x38\x20\x39\x32\x32\x2e\x38\x37\x20\x4c\ +\x20\x34\x37\x31\x2e\x35\x34\x20\x39\x31\x35\x2e\x34\x37\x20\x4c\ +\x20\x34\x38\x37\x2e\x31\x34\x20\x39\x30\x39\x2e\x31\x34\x20\x4c\ +\x20\x35\x30\x31\x2e\x36\x36\x20\x39\x30\x33\x2e\x38\x32\x20\x4c\ +\x20\x35\x31\x35\x2e\x31\x35\x20\x38\x39\x39\x2e\x34\x33\x20\x4c\ +\x20\x35\x32\x37\x2e\x36\x39\x20\x38\x39\x35\x2e\x39\x30\x20\x4c\ +\x20\x35\x33\x39\x2e\x33\x33\x20\x38\x39\x33\x2e\x31\x36\x20\x4c\ +\x20\x35\x35\x30\x2e\x31\x33\x20\x38\x39\x31\x2e\x31\x34\x20\x4c\ +\x20\x35\x36\x30\x2e\x31\x36\x20\x38\x38\x39\x2e\x38\x30\x20\x4c\ +\x20\x35\x37\x34\x2e\x32\x36\x20\x38\x38\x39\x2e\x31\x35\x20\x4c\ +\x20\x35\x38\x37\x2e\x36\x36\x20\x38\x38\x39\x2e\x31\x31\x20\x4c\ +\x20\x36\x30\x30\x2e\x33\x39\x20\x38\x38\x39\x2e\x36\x33\x20\x4c\ +\x20\x36\x31\x32\x2e\x34\x38\x20\x38\x39\x30\x2e\x37\x31\x20\x4c\ +\x20\x36\x32\x33\x2e\x39\x38\x20\x38\x39\x32\x2e\x33\x30\x20\x4c\ +\x20\x36\x33\x34\x2e\x39\x32\x20\x38\x39\x34\x2e\x33\x39\x20\x4c\ +\x20\x36\x34\x35\x2e\x33\x32\x20\x38\x39\x36\x2e\x39\x36\x20\x4c\ +\x20\x36\x35\x35\x2e\x32\x32\x20\x38\x39\x39\x2e\x39\x39\x20\x4c\ +\x20\x36\x36\x34\x2e\x36\x35\x20\x39\x30\x33\x2e\x34\x39\x20\x5a\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x34\x64\x38\x30\x63\x66\x22\x20\ +\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\ +\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\x3d\x22\x31\x22\ +\x20\x69\x64\x3d\x22\xe8\x92\x99\xe7\x89\x88\x22\x20\x6e\x6f\x64\ +\x65\x2d\x69\x64\x3d\x22\x31\x31\x22\x20\x73\x74\x72\x6f\x6b\x65\ +\x3d\x22\x6e\x6f\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\ +\x69\x67\x68\x74\x3d\x22\x31\x33\x37\x2e\x35\x39\x36\x35\x36\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x35\ +\x38\x32\x2e\x38\x31\x39\x37\x36\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x78\x3d\x22\x31\x38\x36\x2e\x31\x38\x31\x38\x32\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x38\x38\x39\x2e\x31\x30\x36\ +\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x35\ +\x37\x39\x2e\x38\x34\x20\x39\x39\x36\x2e\x34\x31\x20\x4c\x20\x35\ +\x37\x39\x2e\x38\x34\x20\x31\x30\x32\x36\x2e\x31\x33\x20\x4c\x20\ +\x33\x37\x30\x2e\x31\x32\x20\x31\x30\x32\x35\x2e\x34\x39\x20\x4c\ +\x20\x33\x37\x30\x2e\x31\x32\x20\x39\x39\x36\x2e\x34\x31\x20\x4c\ +\x20\x34\x30\x35\x2e\x36\x34\x20\x39\x39\x38\x2e\x36\x36\x20\x4c\ +\x20\x34\x33\x34\x2e\x30\x30\x20\x31\x30\x30\x30\x2e\x31\x31\x20\ +\x4c\x20\x34\x35\x36\x2e\x32\x35\x20\x31\x30\x30\x30\x2e\x38\x38\ +\x20\x4c\x20\x34\x37\x33\x2e\x33\x32\x20\x31\x30\x30\x31\x2e\x31\ +\x33\x20\x4c\x20\x34\x37\x34\x2e\x30\x33\x20\x31\x30\x30\x31\x2e\ +\x31\x33\x20\x4c\x20\x34\x39\x31\x2e\x30\x39\x20\x31\x30\x30\x30\ +\x2e\x39\x30\x20\x4c\x20\x35\x31\x33\x2e\x36\x38\x20\x31\x30\x30\ +\x30\x2e\x31\x34\x20\x4c\x20\x35\x34\x32\x2e\x38\x37\x20\x39\x39\ +\x38\x2e\x36\x39\x20\x4c\x20\x35\x37\x39\x2e\x38\x34\x20\x39\x39\ +\x36\x2e\x34\x31\x20\x4c\x20\x35\x37\x39\x2e\x38\x34\x20\x39\x39\ +\x36\x2e\x34\x31\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x37\x66\ +\x61\x63\x66\x31\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\ +\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\ +\x69\x64\x3d\x22\x31\x22\x20\x69\x64\x3d\x22\xe5\xbd\xa2\xe7\x8a\ +\xb6\xe7\xbb\x93\xe5\x90\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\ +\x3d\x22\x31\x32\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\ +\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x32\x39\x2e\x37\x31\x39\x39\x37\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x32\x30\x39\x2e\x37\x31\ +\x35\x35\x38\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x33\ +\x37\x30\x2e\x31\x32\x34\x31\x35\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x79\x3d\x22\x39\x39\x36\x2e\x34\x30\x37\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x37\x30\x32\x2e\x31\x32\x20\ +\x39\x32\x35\x2e\x35\x30\x20\x4c\x20\x37\x30\x32\x2e\x31\x35\x20\ +\x39\x32\x35\x2e\x37\x37\x20\x4c\x20\x37\x30\x34\x2e\x35\x37\x20\ +\x39\x34\x36\x2e\x30\x35\x20\x4c\x20\x37\x30\x36\x2e\x32\x31\x20\ +\x39\x36\x33\x2e\x36\x36\x20\x4c\x20\x37\x30\x37\x2e\x31\x38\x20\ +\x39\x37\x38\x2e\x38\x35\x20\x4c\x20\x37\x30\x37\x2e\x35\x35\x20\ +\x39\x39\x31\x2e\x38\x36\x20\x4c\x20\x37\x30\x37\x2e\x34\x31\x20\ +\x31\x30\x30\x32\x2e\x39\x32\x20\x4c\x20\x37\x30\x36\x2e\x38\x36\ +\x20\x31\x30\x31\x32\x2e\x32\x35\x20\x4c\x20\x37\x30\x35\x2e\x39\ +\x35\x20\x31\x30\x32\x30\x2e\x30\x35\x20\x4c\x20\x37\x30\x34\x2e\ +\x37\x35\x20\x31\x30\x32\x36\x2e\x35\x31\x20\x4c\x20\x36\x36\x33\ +\x2e\x39\x32\x20\x31\x30\x32\x36\x2e\x33\x38\x20\x4c\x20\x36\x39\ +\x37\x2e\x30\x34\x20\x39\x32\x32\x2e\x30\x39\x20\x4c\x20\x37\x30\ +\x32\x2e\x31\x32\x20\x39\x32\x35\x2e\x35\x30\x20\x5a\x20\x4d\x20\ +\x32\x35\x34\x2e\x34\x35\x20\x39\x31\x39\x2e\x38\x30\x20\x4c\x20\ +\x32\x38\x37\x2e\x39\x33\x20\x31\x30\x32\x35\x2e\x32\x34\x20\x4c\ +\x20\x32\x34\x37\x2e\x31\x36\x20\x31\x30\x32\x35\x2e\x31\x32\x20\ +\x4c\x20\x32\x34\x36\x2e\x30\x34\x20\x31\x30\x31\x38\x2e\x34\x32\ +\x20\x4c\x20\x32\x34\x35\x2e\x32\x30\x20\x31\x30\x31\x30\x2e\x33\ +\x36\x20\x4c\x20\x32\x34\x34\x2e\x37\x34\x20\x31\x30\x30\x30\x2e\ +\x37\x35\x20\x4c\x20\x32\x34\x34\x2e\x37\x30\x20\x39\x38\x39\x2e\ +\x34\x30\x20\x4c\x20\x32\x34\x35\x2e\x31\x38\x20\x39\x37\x36\x2e\ +\x30\x38\x20\x4c\x20\x32\x34\x36\x2e\x32\x35\x20\x39\x36\x30\x2e\ +\x35\x37\x20\x4c\x20\x32\x34\x38\x2e\x30\x31\x20\x39\x34\x32\x2e\ +\x36\x34\x20\x4c\x20\x32\x35\x30\x2e\x35\x36\x20\x39\x32\x32\x2e\ +\x30\x33\x20\x4c\x20\x32\x35\x34\x2e\x34\x35\x20\x39\x31\x39\x2e\ +\x38\x30\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x33\x63\x36\x64\ +\x62\x38\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\ +\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\ +\x3d\x22\x31\x22\x20\x69\x64\x3d\x22\xe5\xbd\xa2\xe7\x8a\xb6\xe7\ +\xbb\x93\xe5\x90\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x31\x33\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x31\x30\x36\x2e\x37\x30\x36\x34\x38\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x34\x36\x32\x2e\x38\x34\x37\ +\x32\x33\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x32\x34\ +\x34\x2e\x36\x39\x39\x36\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x79\x3d\x22\x39\x31\x39\x2e\x38\x30\x30\x39\x36\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x36\x39\x35\x2e\x35\x33\ +\x20\x39\x31\x38\x2e\x33\x30\x20\x4c\x20\x36\x39\x37\x2e\x39\x35\ +\x20\x39\x34\x35\x2e\x30\x38\x20\x4c\x20\x36\x39\x39\x2e\x34\x34\ +\x20\x39\x36\x37\x2e\x32\x30\x20\x4c\x20\x37\x30\x30\x2e\x31\x34\ +\x20\x39\x38\x35\x2e\x32\x34\x20\x4c\x20\x37\x30\x30\x2e\x32\x31\ +\x20\x39\x39\x39\x2e\x37\x34\x20\x4c\x20\x36\x39\x39\x2e\x37\x37\ +\x20\x31\x30\x31\x31\x2e\x32\x32\x20\x4c\x20\x36\x39\x38\x2e\x39\ +\x33\x20\x31\x30\x32\x30\x2e\x31\x33\x20\x4c\x20\x36\x39\x37\x2e\ +\x38\x30\x20\x31\x30\x32\x36\x2e\x38\x39\x20\x4c\x20\x36\x39\x36\ +\x2e\x34\x38\x20\x31\x30\x33\x31\x2e\x39\x31\x20\x4c\x20\x36\x31\ +\x37\x2e\x30\x32\x20\x31\x30\x33\x31\x2e\x39\x36\x20\x4c\x20\x36\ +\x31\x37\x2e\x30\x32\x20\x38\x39\x38\x2e\x38\x30\x20\x4c\x20\x36\ +\x31\x38\x2e\x34\x30\x20\x38\x39\x36\x2e\x38\x32\x20\x4c\x20\x36\ +\x32\x30\x2e\x31\x38\x20\x38\x39\x35\x2e\x31\x39\x20\x4c\x20\x36\ +\x32\x32\x2e\x34\x30\x20\x38\x39\x33\x2e\x38\x39\x20\x4c\x20\x36\ +\x32\x35\x2e\x31\x36\x20\x38\x39\x32\x2e\x39\x32\x20\x4c\x20\x36\ +\x32\x38\x2e\x35\x38\x20\x38\x39\x32\x2e\x33\x34\x20\x4c\x20\x36\ +\x33\x32\x2e\x37\x38\x20\x38\x39\x32\x2e\x32\x32\x20\x4c\x20\x36\ +\x33\x37\x2e\x39\x33\x20\x38\x39\x32\x2e\x36\x36\x20\x4c\x20\x36\ +\x34\x32\x2e\x36\x31\x20\x38\x39\x33\x2e\x35\x39\x20\x4c\x20\x36\ +\x34\x38\x2e\x37\x38\x20\x38\x39\x35\x2e\x34\x36\x20\x4c\x20\x36\ +\x35\x36\x2e\x37\x38\x20\x38\x39\x38\x2e\x35\x35\x20\x4c\x20\x36\ +\x36\x36\x2e\x39\x36\x20\x39\x30\x33\x2e\x31\x36\x20\x4c\x20\x36\ +\x37\x39\x2e\x37\x33\x20\x39\x30\x39\x2e\x36\x32\x20\x4c\x20\x36\ +\x39\x35\x2e\x35\x33\x20\x39\x31\x38\x2e\x33\x30\x20\x5a\x20\x4d\ +\x20\x32\x35\x36\x2e\x36\x38\x20\x39\x31\x38\x2e\x33\x30\x20\x4c\ +\x20\x32\x35\x34\x2e\x32\x37\x20\x39\x34\x35\x2e\x30\x38\x20\x4c\ +\x20\x32\x35\x32\x2e\x37\x38\x20\x39\x36\x37\x2e\x32\x30\x20\x4c\ +\x20\x32\x35\x32\x2e\x30\x37\x20\x39\x38\x35\x2e\x32\x34\x20\x4c\ +\x20\x32\x35\x32\x2e\x30\x30\x20\x39\x39\x39\x2e\x37\x34\x20\x4c\ +\x20\x32\x35\x32\x2e\x34\x35\x20\x31\x30\x31\x31\x2e\x32\x32\x20\ +\x4c\x20\x32\x35\x33\x2e\x32\x39\x20\x31\x30\x32\x30\x2e\x31\x33\ +\x20\x4c\x20\x32\x35\x34\x2e\x34\x31\x20\x31\x30\x32\x36\x2e\x38\ +\x39\x20\x4c\x20\x32\x35\x35\x2e\x37\x33\x20\x31\x30\x33\x31\x2e\ +\x39\x31\x20\x4c\x20\x33\x33\x35\x2e\x31\x39\x20\x31\x30\x33\x31\ +\x2e\x39\x36\x20\x4c\x20\x33\x33\x35\x2e\x31\x39\x20\x38\x39\x38\ +\x2e\x38\x30\x20\x4c\x20\x33\x33\x33\x2e\x38\x31\x20\x38\x39\x36\ +\x2e\x38\x32\x20\x4c\x20\x33\x33\x32\x2e\x30\x34\x20\x38\x39\x35\ +\x2e\x31\x39\x20\x4c\x20\x33\x32\x39\x2e\x38\x31\x20\x38\x39\x33\ +\x2e\x38\x39\x20\x4c\x20\x33\x32\x37\x2e\x30\x35\x20\x38\x39\x32\ +\x2e\x39\x32\x20\x4c\x20\x33\x32\x33\x2e\x36\x34\x20\x38\x39\x32\ +\x2e\x33\x34\x20\x4c\x20\x33\x31\x39\x2e\x34\x33\x20\x38\x39\x32\ +\x2e\x32\x32\x20\x4c\x20\x33\x31\x34\x2e\x32\x38\x20\x38\x39\x32\ +\x2e\x36\x36\x20\x4c\x20\x33\x30\x39\x2e\x36\x30\x20\x38\x39\x33\ +\x2e\x35\x39\x20\x4c\x20\x33\x30\x33\x2e\x34\x33\x20\x38\x39\x35\ +\x2e\x34\x36\x20\x4c\x20\x32\x39\x35\x2e\x34\x34\x20\x38\x39\x38\ +\x2e\x35\x35\x20\x4c\x20\x32\x38\x35\x2e\x32\x35\x20\x39\x30\x33\ +\x2e\x31\x36\x20\x4c\x20\x32\x37\x32\x2e\x34\x38\x20\x39\x30\x39\ +\x2e\x36\x32\x20\x4c\x20\x32\x35\x36\x2e\x36\x38\x20\x39\x31\x38\ +\x2e\x33\x30\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x39\x30\x36\ +\x32\x33\x64\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\ +\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\ +\x64\x3d\x22\x31\x22\x20\x69\x64\x3d\x22\xe5\xbd\xa2\xe7\x8a\xb6\ +\xe7\xbb\x93\xe5\x90\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\ +\x22\x31\x34\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\ +\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\ +\x22\x31\x33\x39\x2e\x37\x33\x39\x38\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x34\x34\x38\x2e\x32\x30\x35\ +\x38\x37\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x32\x35\ +\x32\x2e\x30\x30\x34\x35\x32\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x79\x3d\x22\x38\x39\x32\x2e\x32\x31\x35\x35\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x36\x32\x35\x2e\x38\x37\x20\ +\x39\x30\x30\x2e\x35\x34\x20\x4c\x20\x36\x32\x36\x2e\x31\x31\x20\ +\x39\x31\x36\x2e\x31\x38\x20\x4c\x20\x36\x32\x36\x2e\x33\x37\x20\ +\x39\x33\x37\x2e\x36\x33\x20\x4c\x20\x36\x32\x36\x2e\x34\x37\x20\ +\x39\x36\x32\x2e\x34\x31\x20\x4c\x20\x36\x32\x36\x2e\x32\x37\x20\ +\x39\x38\x38\x2e\x30\x34\x20\x4c\x20\x36\x32\x36\x2e\x30\x30\x20\ +\x31\x30\x30\x30\x2e\x35\x37\x20\x4c\x20\x36\x32\x35\x2e\x35\x39\ +\x20\x31\x30\x31\x32\x2e\x30\x34\x20\x4c\x20\x36\x32\x35\x2e\x30\ +\x30\x20\x31\x30\x32\x32\x2e\x39\x38\x20\x4c\x20\x36\x32\x34\x2e\ +\x32\x37\x20\x31\x30\x33\x31\x2e\x39\x34\x20\x4c\x20\x36\x31\x37\ +\x2e\x30\x32\x20\x31\x30\x33\x31\x2e\x39\x36\x20\x4c\x20\x36\x31\ +\x37\x2e\x30\x32\x20\x38\x39\x38\x2e\x38\x30\x20\x4c\x20\x36\x31\ +\x38\x2e\x32\x35\x20\x38\x39\x37\x2e\x30\x30\x20\x4c\x20\x36\x31\ +\x39\x2e\x37\x39\x20\x38\x39\x35\x2e\x34\x39\x20\x4c\x20\x36\x32\ +\x31\x2e\x36\x38\x20\x38\x39\x34\x2e\x32\x34\x20\x4c\x20\x36\x32\ +\x33\x2e\x39\x38\x20\x38\x39\x33\x2e\x32\x37\x20\x4c\x20\x36\x32\ +\x34\x2e\x39\x31\x20\x38\x39\x36\x2e\x34\x39\x20\x4c\x20\x36\x32\ +\x35\x2e\x38\x37\x20\x39\x30\x30\x2e\x35\x34\x20\x5a\x20\x4d\x20\ +\x33\x32\x36\x2e\x33\x34\x20\x39\x30\x30\x2e\x35\x34\x20\x4c\x20\ +\x33\x32\x36\x2e\x31\x30\x20\x39\x31\x36\x2e\x31\x38\x20\x4c\x20\ +\x33\x32\x35\x2e\x38\x35\x20\x39\x33\x37\x2e\x36\x33\x20\x4c\x20\ +\x33\x32\x35\x2e\x37\x34\x20\x39\x36\x32\x2e\x34\x31\x20\x4c\x20\ +\x33\x32\x35\x2e\x39\x34\x20\x39\x38\x38\x2e\x30\x34\x20\x4c\x20\ +\x33\x32\x36\x2e\x32\x32\x20\x31\x30\x30\x30\x2e\x35\x37\x20\x4c\ +\x20\x33\x32\x36\x2e\x36\x32\x20\x31\x30\x31\x32\x2e\x30\x34\x20\ +\x4c\x20\x33\x32\x37\x2e\x32\x31\x20\x31\x30\x32\x32\x2e\x39\x38\ +\x20\x4c\x20\x33\x32\x37\x2e\x39\x34\x20\x31\x30\x33\x31\x2e\x39\ +\x34\x20\x4c\x20\x33\x33\x35\x2e\x31\x39\x20\x31\x30\x33\x31\x2e\ +\x39\x36\x20\x4c\x20\x33\x33\x35\x2e\x31\x39\x20\x38\x39\x38\x2e\ +\x38\x30\x20\x4c\x20\x33\x33\x33\x2e\x39\x37\x20\x38\x39\x37\x2e\ +\x30\x30\x20\x4c\x20\x33\x33\x32\x2e\x34\x33\x20\x38\x39\x35\x2e\ +\x34\x39\x20\x4c\x20\x33\x33\x30\x2e\x35\x33\x20\x38\x39\x34\x2e\ +\x32\x34\x20\x4c\x20\x33\x32\x38\x2e\x32\x33\x20\x38\x39\x33\x2e\ +\x32\x37\x20\x4c\x20\x33\x32\x37\x2e\x33\x31\x20\x38\x39\x36\x2e\ +\x34\x39\x20\x4c\x20\x33\x32\x36\x2e\x33\x34\x20\x39\x30\x30\x2e\ +\x35\x34\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x36\x30\x34\x36\ +\x33\x30\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\ +\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\ +\x3d\x22\x31\x22\x20\x69\x64\x3d\x22\xe5\xbd\xa2\xe7\x8a\xb6\xe7\ +\xbb\x93\xe5\x90\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x31\x35\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x31\x33\x38\x2e\x36\x38\x39\x30\x33\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x33\x30\x30\x2e\x37\x33\x34\ +\x36\x32\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x33\x32\ +\x35\x2e\x37\x34\x30\x31\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\ +\x3d\x22\x38\x39\x33\x2e\x32\x36\x36\x33\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0d\x0a\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x35\x32\ +\x33\x2e\x30\x33\x20\x38\x37\x31\x2e\x34\x30\x20\x43\x20\x35\x31\ +\x31\x2e\x32\x38\x20\x38\x39\x32\x2e\x30\x35\x20\x34\x39\x32\x2e\ +\x37\x35\x20\x39\x31\x30\x2e\x32\x35\x20\x34\x36\x37\x2e\x34\x31\ +\x20\x39\x32\x36\x2e\x30\x30\x20\x43\x20\x34\x33\x35\x2e\x33\x36\ +\x20\x39\x30\x31\x2e\x37\x33\x20\x34\x32\x30\x2e\x38\x34\x20\x38\ +\x38\x31\x2e\x34\x30\x20\x34\x32\x33\x2e\x38\x36\x20\x38\x36\x35\ +\x2e\x30\x32\x20\x43\x20\x34\x31\x38\x2e\x37\x39\x20\x38\x35\x36\ +\x2e\x37\x34\x20\x34\x31\x38\x2e\x37\x39\x20\x38\x33\x39\x2e\x36\ +\x35\x20\x34\x32\x33\x2e\x38\x36\x20\x38\x31\x33\x2e\x37\x36\x20\ +\x43\x20\x33\x39\x30\x2e\x30\x38\x20\x38\x32\x32\x2e\x32\x33\x20\ +\x33\x36\x33\x2e\x39\x38\x20\x38\x33\x30\x2e\x36\x34\x20\x33\x34\ +\x35\x2e\x35\x37\x20\x38\x33\x38\x2e\x39\x38\x20\x43\x20\x33\x31\ +\x37\x2e\x39\x34\x20\x38\x35\x31\x2e\x34\x39\x20\x32\x37\x30\x2e\ +\x33\x34\x20\x38\x38\x31\x2e\x37\x35\x20\x32\x39\x36\x2e\x38\x38\ +\x20\x39\x30\x37\x2e\x36\x35\x20\x43\x20\x33\x30\x31\x2e\x33\x30\ +\x20\x39\x31\x31\x2e\x34\x34\x20\x33\x30\x38\x2e\x39\x31\x20\x39\ +\x30\x36\x2e\x35\x39\x20\x33\x31\x35\x2e\x37\x33\x20\x39\x30\x36\ +\x2e\x33\x32\x20\x43\x20\x33\x32\x39\x2e\x31\x32\x20\x39\x30\x35\ +\x2e\x30\x34\x20\x33\x33\x39\x2e\x30\x34\x20\x39\x30\x36\x2e\x33\ +\x32\x20\x33\x34\x34\x2e\x30\x38\x20\x39\x30\x38\x2e\x32\x32\x20\ +\x43\x20\x33\x38\x33\x2e\x32\x37\x20\x39\x32\x30\x2e\x39\x37\x20\ +\x34\x31\x37\x2e\x31\x34\x20\x39\x33\x38\x2e\x38\x31\x20\x34\x35\ +\x39\x2e\x30\x30\x20\x39\x37\x37\x2e\x33\x36\x20\x43\x20\x34\x36\ +\x36\x2e\x31\x37\x20\x39\x38\x33\x2e\x33\x30\x20\x34\x37\x33\x2e\ +\x39\x38\x20\x39\x38\x33\x2e\x33\x30\x20\x34\x38\x32\x2e\x34\x34\ +\x20\x39\x37\x37\x2e\x33\x36\x20\x43\x20\x35\x32\x36\x2e\x34\x30\ +\x20\x39\x33\x31\x2e\x36\x38\x20\x35\x37\x33\x2e\x32\x34\x20\x39\ +\x30\x36\x2e\x30\x36\x20\x36\x32\x32\x2e\x39\x39\x20\x39\x30\x30\ +\x2e\x35\x30\x20\x43\x20\x36\x32\x39\x2e\x38\x38\x20\x38\x39\x39\ +\x2e\x37\x31\x20\x36\x34\x31\x2e\x39\x39\x20\x39\x30\x30\x2e\x36\ +\x36\x20\x36\x35\x34\x2e\x39\x38\x20\x39\x30\x32\x2e\x32\x35\x20\ +\x43\x20\x36\x36\x33\x2e\x35\x33\x20\x39\x30\x35\x2e\x30\x36\x20\ +\x36\x36\x35\x2e\x32\x31\x20\x39\x30\x36\x2e\x37\x38\x20\x36\x36\ +\x38\x2e\x39\x35\x20\x39\x30\x32\x2e\x32\x35\x20\x43\x20\x36\x38\ +\x36\x2e\x30\x36\x20\x38\x37\x35\x2e\x39\x39\x20\x36\x32\x36\x2e\ +\x38\x30\x20\x38\x33\x35\x2e\x39\x36\x20\x35\x37\x38\x2e\x33\x39\ +\x20\x38\x32\x38\x2e\x35\x30\x20\x43\x20\x35\x34\x36\x2e\x31\x32\ +\x20\x38\x32\x33\x2e\x35\x33\x20\x35\x31\x34\x2e\x35\x35\x20\x38\ +\x31\x38\x2e\x34\x33\x20\x34\x38\x33\x2e\x36\x39\x20\x38\x31\x33\ +\x2e\x32\x32\x20\x43\x20\x35\x31\x32\x2e\x36\x32\x20\x38\x33\x32\ +\x2e\x32\x37\x20\x35\x32\x35\x2e\x37\x33\x20\x38\x35\x31\x2e\x36\ +\x36\x20\x35\x32\x33\x2e\x30\x33\x20\x38\x37\x31\x2e\x34\x30\x20\ +\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x35\x61\x38\x63\x64\x39\x22\x20\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x20\x69\x64\x3d\x22\xe8\x92\x99\xe7\x89\x88\x22\x20\x6e\x6f\x64\ +\x65\x2d\x69\x64\x3d\x22\x31\x36\x22\x20\x73\x74\x72\x6f\x6b\x65\ +\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\ +\x65\x69\x67\x68\x74\x3d\x22\x31\x37\x30\x2e\x30\x37\x38\x36\x31\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x34\x31\x35\x2e\x37\ +\x31\x39\x31\x32\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\ +\x32\x37\x30\x2e\x33\x33\x36\x39\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x79\x3d\x22\x38\x31\x33\x2e\x32\x32\x30\x36\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x20\x33\x30\x33\x2e\x39\x37\x20\x39\x30\x30\ +\x2e\x34\x30\x20\x4c\x20\x33\x30\x35\x2e\x37\x32\x20\x39\x30\x30\ +\x2e\x32\x39\x20\x43\x20\x33\x31\x32\x2e\x37\x33\x20\x38\x39\x39\ +\x2e\x37\x33\x20\x33\x32\x33\x2e\x31\x37\x20\x39\x30\x31\x2e\x38\ +\x31\x20\x33\x33\x37\x2e\x30\x34\x20\x39\x30\x36\x2e\x35\x33\x20\ +\x43\x20\x33\x33\x32\x2e\x32\x38\x20\x39\x30\x35\x2e\x38\x32\x20\ +\x33\x32\x36\x2e\x30\x33\x20\x39\x30\x35\x2e\x35\x35\x20\x33\x31\ +\x38\x2e\x35\x38\x20\x39\x30\x36\x2e\x30\x38\x20\x4c\x20\x33\x31\ +\x35\x2e\x37\x33\x20\x39\x30\x36\x2e\x33\x32\x20\x43\x20\x33\x31\ +\x34\x2e\x33\x37\x20\x39\x30\x36\x2e\x33\x37\x20\x33\x31\x32\x2e\ +\x39\x37\x20\x39\x30\x36\x2e\x36\x31\x20\x33\x31\x31\x2e\x35\x38\ +\x20\x39\x30\x36\x2e\x39\x32\x20\x4c\x20\x33\x30\x36\x2e\x30\x37\ +\x20\x39\x30\x38\x2e\x33\x35\x20\x43\x20\x33\x30\x32\x2e\x35\x30\ +\x20\x39\x30\x39\x2e\x32\x34\x20\x32\x39\x39\x2e\x32\x34\x20\x39\ +\x30\x39\x2e\x36\x37\x20\x32\x39\x36\x2e\x38\x38\x20\x39\x30\x37\ +\x2e\x36\x35\x20\x43\x20\x32\x39\x32\x2e\x32\x34\x20\x39\x30\x33\ +\x2e\x31\x33\x20\x32\x38\x39\x2e\x38\x36\x20\x38\x39\x38\x2e\x34\ +\x36\x20\x32\x38\x39\x2e\x32\x35\x20\x38\x39\x33\x2e\x37\x39\x20\ +\x43\x20\x32\x39\x31\x2e\x36\x38\x20\x38\x39\x38\x2e\x34\x35\x20\ +\x32\x39\x36\x2e\x35\x39\x20\x39\x30\x30\x2e\x36\x35\x20\x33\x30\ +\x33\x2e\x39\x37\x20\x39\x30\x30\x2e\x34\x30\x20\x5a\x20\x4d\x20\ +\x36\x37\x30\x2e\x31\x30\x20\x38\x38\x33\x2e\x34\x35\x20\x43\x20\ +\x36\x37\x32\x2e\x37\x38\x20\x38\x39\x30\x2e\x30\x35\x20\x36\x37\ +\x32\x2e\x37\x31\x20\x38\x39\x36\x2e\x34\x38\x20\x36\x36\x38\x2e\ +\x39\x35\x20\x39\x30\x32\x2e\x32\x35\x20\x43\x20\x36\x36\x36\x2e\ +\x35\x33\x20\x39\x30\x35\x2e\x31\x38\x20\x36\x36\x34\x2e\x39\x37\ +\x20\x39\x30\x35\x2e\x35\x30\x20\x36\x36\x31\x2e\x38\x36\x20\x39\ +\x30\x34\x2e\x35\x39\x20\x4c\x20\x36\x35\x39\x2e\x39\x39\x20\x39\ +\x30\x33\x2e\x39\x39\x20\x4c\x20\x36\x35\x39\x2e\x39\x39\x20\x39\ +\x30\x33\x2e\x39\x39\x20\x4c\x20\x36\x35\x36\x2e\x34\x32\x20\x39\ +\x30\x32\x2e\x37\x33\x20\x43\x20\x36\x35\x35\x2e\x39\x36\x20\x39\ +\x30\x32\x2e\x35\x37\x20\x36\x35\x35\x2e\x34\x38\x20\x39\x30\x32\ +\x2e\x34\x31\x20\x36\x35\x34\x2e\x39\x38\x20\x39\x30\x32\x2e\x32\ +\x35\x20\x4c\x20\x36\x34\x39\x2e\x34\x38\x20\x39\x30\x31\x2e\x36\ +\x31\x20\x43\x20\x36\x34\x38\x2e\x35\x38\x20\x39\x30\x31\x2e\x35\ +\x31\x20\x36\x34\x37\x2e\x36\x38\x20\x39\x30\x31\x2e\x34\x32\x20\ +\x36\x34\x36\x2e\x37\x39\x20\x39\x30\x31\x2e\x33\x33\x20\x4c\x20\ +\x36\x34\x31\x2e\x36\x30\x20\x39\x30\x30\x2e\x38\x34\x20\x43\x20\ +\x36\x34\x30\x2e\x37\x35\x20\x39\x30\x30\x2e\x37\x37\x20\x36\x33\ +\x39\x2e\x39\x32\x20\x39\x30\x30\x2e\x37\x31\x20\x36\x33\x39\x2e\ +\x31\x31\x20\x39\x30\x30\x2e\x36\x35\x20\x4c\x20\x36\x33\x34\x2e\ +\x33\x38\x20\x39\x30\x30\x2e\x33\x36\x20\x43\x20\x36\x32\x39\x2e\ +\x38\x35\x20\x39\x30\x30\x2e\x31\x34\x20\x36\x32\x35\x2e\x39\x34\ +\x20\x39\x30\x30\x2e\x31\x36\x20\x36\x32\x32\x2e\x39\x39\x20\x39\ +\x30\x30\x2e\x35\x30\x20\x43\x20\x36\x31\x34\x2e\x34\x39\x20\x39\ +\x30\x31\x2e\x34\x34\x20\x36\x30\x36\x2e\x30\x38\x20\x39\x30\x32\ +\x2e\x39\x38\x20\x35\x39\x37\x2e\x37\x36\x20\x39\x30\x35\x2e\x31\ +\x30\x20\x43\x20\x36\x32\x32\x2e\x39\x38\x20\x38\x39\x36\x2e\x30\ +\x31\x20\x36\x34\x31\x2e\x34\x30\x20\x38\x39\x32\x2e\x37\x34\x20\ +\x36\x35\x33\x2e\x30\x33\x20\x38\x39\x35\x2e\x32\x38\x20\x4c\x20\ +\x36\x35\x34\x2e\x35\x38\x20\x38\x39\x35\x2e\x36\x36\x20\x43\x20\ +\x36\x36\x31\x2e\x34\x39\x20\x38\x39\x37\x2e\x35\x39\x20\x36\x36\ +\x36\x2e\x34\x37\x20\x38\x39\x34\x2e\x31\x34\x20\x36\x36\x39\x2e\ +\x35\x31\x20\x38\x38\x35\x2e\x32\x39\x20\x4c\x20\x36\x37\x30\x2e\ +\x31\x30\x20\x38\x38\x33\x2e\x34\x35\x20\x5a\x22\x0d\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x35\ +\x61\x38\x63\x64\x39\x22\x20\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\ +\x69\x74\x79\x3d\x22\x30\x2e\x35\x22\x20\x66\x69\x6c\x6c\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\ +\x6f\x75\x70\x2d\x69\x64\x3d\x22\x32\x22\x20\x69\x64\x3d\x22\xe5\ +\xbd\xa2\xe7\x8a\xb6\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x31\x37\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x36\x2e\x32\ +\x32\x33\x36\x39\x34\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\ +\x64\x74\x68\x3d\x22\x33\x38\x33\x2e\x35\x32\x37\x39\x35\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x32\x38\x39\x2e\x32\x35\ +\x32\x33\x32\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x38\ +\x38\x33\x2e\x34\x34\x39\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x20\x35\x32\x33\x2e\x30\x31\x20\x39\x31\x36\x2e\x31\x33\x20\x43\ +\x20\x35\x32\x33\x2e\x30\x31\x20\x39\x31\x38\x2e\x32\x35\x20\x35\ +\x32\x31\x2e\x30\x30\x20\x39\x31\x39\x2e\x39\x37\x20\x35\x31\x38\ +\x2e\x35\x33\x20\x39\x31\x39\x2e\x39\x37\x20\x43\x20\x35\x31\x36\ +\x2e\x30\x36\x20\x39\x31\x39\x2e\x39\x37\x20\x35\x31\x34\x2e\x30\ +\x35\x20\x39\x31\x38\x2e\x32\x35\x20\x35\x31\x34\x2e\x30\x35\x20\ +\x39\x31\x36\x2e\x31\x33\x20\x43\x20\x35\x31\x34\x2e\x30\x35\x20\ +\x39\x31\x34\x2e\x30\x31\x20\x35\x31\x36\x2e\x30\x36\x20\x39\x31\ +\x32\x2e\x32\x39\x20\x35\x31\x38\x2e\x35\x33\x20\x39\x31\x32\x2e\ +\x32\x39\x20\x43\x20\x35\x32\x31\x2e\x30\x30\x20\x39\x31\x32\x2e\ +\x32\x39\x20\x35\x32\x33\x2e\x30\x31\x20\x39\x31\x34\x2e\x30\x31\ +\x20\x35\x32\x33\x2e\x30\x31\x20\x39\x31\x36\x2e\x31\x33\x20\x5a\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x32\x61\x33\x35\x34\x37\x22\x20\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\ +\x69\x64\x3d\x22\xe6\xa4\xad\xe5\x9c\x86\xe5\xbd\xa2\x22\x20\x6e\ +\x6f\x64\x65\x2d\x69\x64\x3d\x22\x31\x38\x22\x20\x73\x74\x72\x6f\ +\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x37\x2e\x36\x37\x36\x32\x30\ +\x38\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x38\x2e\x39\ +\x35\x35\x35\x36\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\ +\x22\x35\x31\x34\x2e\x30\x35\x31\x39\x34\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x79\x3d\x22\x39\x31\x32\x2e\x32\x39\x30\x39\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x20\x35\x31\x35\x2e\x36\x31\x20\x39\ +\x31\x35\x2e\x33\x33\x20\x4c\x20\x35\x31\x35\x2e\x36\x31\x20\x31\ +\x30\x31\x30\x2e\x39\x34\x20\x4c\x20\x35\x32\x31\x2e\x38\x38\x20\ +\x31\x30\x31\x30\x2e\x39\x34\x20\x4c\x20\x35\x32\x31\x2e\x38\x38\ +\x20\x39\x31\x35\x2e\x33\x33\x20\x43\x20\x35\x32\x31\x2e\x38\x38\ +\x20\x39\x31\x34\x2e\x33\x36\x20\x35\x32\x30\x2e\x38\x33\x20\x39\ +\x31\x33\x2e\x38\x37\x20\x35\x31\x38\x2e\x37\x35\x20\x39\x31\x33\ +\x2e\x38\x37\x20\x43\x20\x35\x31\x36\x2e\x36\x36\x20\x39\x31\x33\ +\x2e\x38\x37\x20\x35\x31\x35\x2e\x36\x31\x20\x39\x31\x34\x2e\x33\ +\x36\x20\x35\x31\x35\x2e\x36\x31\x20\x39\x31\x35\x2e\x33\x33\x20\ +\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x32\x62\x34\x64\x38\x32\x22\x20\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x34\x31\x22\x20\ +\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x31\x39\x22\x20\x73\x74\x72\ +\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x39\x37\x2e\x30\x37\x34\ +\x32\x32\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x36\x2e\x32\ +\x36\x35\x38\x30\x38\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\ +\x22\x35\x31\x35\x2e\x36\x31\x33\x30\x34\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x79\x3d\x22\x39\x31\x33\x2e\x38\x36\x39\x38\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x20\x35\x31\x37\x2e\x33\x38\x20\x31\ +\x30\x30\x36\x2e\x37\x35\x20\x4c\x20\x35\x32\x30\x2e\x30\x36\x20\ +\x31\x30\x30\x36\x2e\x37\x35\x20\x4c\x20\x35\x32\x30\x2e\x30\x36\ +\x20\x31\x30\x32\x32\x2e\x31\x30\x20\x4c\x20\x35\x31\x37\x2e\x33\ +\x38\x20\x31\x30\x32\x32\x2e\x31\x30\x20\x5a\x22\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x32\x61\x33\x35\x34\x37\x22\x20\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0d\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\xe7\ +\x9f\xa9\xe5\xbd\xa2\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x32\x30\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\ +\x22\x31\x35\x2e\x33\x35\x32\x34\x31\x37\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x32\x2e\x36\x38\x36\x36\ +\x34\x35\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x35\ +\x31\x37\x2e\x33\x37\x37\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x31\x30\ +\x30\x36\x2e\x37\x34\x35\x32\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x20\x35\x32\x35\x2e\x34\x33\x20\x31\x30\x30\x37\x2e\x34\x34\ +\x20\x43\x20\x35\x32\x35\x2e\x34\x33\x20\x31\x30\x31\x31\x2e\x36\ +\x38\x20\x35\x32\x32\x2e\x34\x33\x20\x31\x30\x31\x35\x2e\x31\x32\ +\x20\x35\x31\x38\x2e\x37\x32\x20\x31\x30\x31\x35\x2e\x31\x32\x20\ +\x43\x20\x35\x31\x35\x2e\x30\x31\x20\x31\x30\x31\x35\x2e\x31\x32\ +\x20\x35\x31\x32\x2e\x30\x30\x20\x31\x30\x31\x31\x2e\x36\x38\x20\ +\x35\x31\x32\x2e\x30\x30\x20\x31\x30\x30\x37\x2e\x34\x34\x20\x43\ +\x20\x35\x31\x32\x2e\x30\x30\x20\x31\x30\x30\x33\x2e\x32\x30\x20\ +\x35\x31\x35\x2e\x30\x31\x20\x39\x39\x39\x2e\x37\x36\x20\x35\x31\ +\x38\x2e\x37\x32\x20\x39\x39\x39\x2e\x37\x36\x20\x43\x20\x35\x32\ +\x32\x2e\x34\x33\x20\x39\x39\x39\x2e\x37\x36\x20\x35\x32\x35\x2e\ +\x34\x33\x20\x31\x30\x30\x33\x2e\x32\x30\x20\x35\x32\x35\x2e\x34\ +\x33\x20\x31\x30\x30\x37\x2e\x34\x34\x20\x5a\x22\x0d\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x32\ +\x62\x34\x64\x38\x32\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ +\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\x3d\x22\xe6\ +\xa4\xad\xe5\x9c\x86\xe5\xbd\xa2\x22\x20\x6e\x6f\x64\x65\x2d\x69\ +\x64\x3d\x22\x32\x31\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\ +\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x31\x35\x2e\x33\x35\x32\x34\x31\x37\x22\x0d\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x33\x2e\x34\x33\x33\x33\x35\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x35\x31\x32\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x39\x39\x39\x2e\x37\ +\x36\x33\x33\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\x32\ +\x30\x2e\x36\x31\x20\x39\x31\x36\x2e\x31\x33\x20\x43\x20\x34\x32\ +\x30\x2e\x36\x31\x20\x39\x31\x38\x2e\x32\x35\x20\x34\x31\x38\x2e\ +\x36\x30\x20\x39\x31\x39\x2e\x39\x37\x20\x34\x31\x36\x2e\x31\x33\ +\x20\x39\x31\x39\x2e\x39\x37\x20\x43\x20\x34\x31\x33\x2e\x36\x36\ +\x20\x39\x31\x39\x2e\x39\x37\x20\x34\x31\x31\x2e\x36\x35\x20\x39\ +\x31\x38\x2e\x32\x35\x20\x34\x31\x31\x2e\x36\x35\x20\x39\x31\x36\ +\x2e\x31\x33\x20\x43\x20\x34\x31\x31\x2e\x36\x35\x20\x39\x31\x34\ +\x2e\x30\x31\x20\x34\x31\x33\x2e\x36\x36\x20\x39\x31\x32\x2e\x32\ +\x39\x20\x34\x31\x36\x2e\x31\x33\x20\x39\x31\x32\x2e\x32\x39\x20\ +\x43\x20\x34\x31\x38\x2e\x36\x30\x20\x39\x31\x32\x2e\x32\x39\x20\ +\x34\x32\x30\x2e\x36\x31\x20\x39\x31\x34\x2e\x30\x31\x20\x34\x32\ +\x30\x2e\x36\x31\x20\x39\x31\x36\x2e\x31\x33\x20\x5a\x22\x0d\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\ +\x23\x32\x61\x33\x35\x34\x37\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\ +\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\x3d\ +\x22\xe6\xa4\xad\xe5\x9c\x86\xe5\xbd\xa2\x22\x20\x6e\x6f\x64\x65\ +\x2d\x69\x64\x3d\x22\x32\x32\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\ +\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\ +\x69\x67\x68\x74\x3d\x22\x37\x2e\x36\x37\x36\x32\x30\x38\x35\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x38\x2e\x39\x35\x35\x35\ +\x39\x37\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x34\x31\ +\x31\x2e\x36\x35\x31\x39\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x79\x3d\x22\x39\x31\x32\x2e\x32\x39\x30\x39\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x20\x34\x31\x33\x2e\x32\x31\x20\x39\x31\x35\x2e\ +\x33\x33\x20\x4c\x20\x34\x31\x33\x2e\x32\x31\x20\x31\x30\x31\x30\ +\x2e\x39\x34\x20\x4c\x20\x34\x31\x39\x2e\x34\x38\x20\x31\x30\x31\ +\x30\x2e\x39\x34\x20\x4c\x20\x34\x31\x39\x2e\x34\x38\x20\x39\x31\ +\x35\x2e\x33\x33\x20\x43\x20\x34\x31\x39\x2e\x34\x38\x20\x39\x31\ +\x34\x2e\x33\x36\x20\x34\x31\x38\x2e\x34\x33\x20\x39\x31\x33\x2e\ +\x38\x37\x20\x34\x31\x36\x2e\x33\x35\x20\x39\x31\x33\x2e\x38\x37\ +\x20\x43\x20\x34\x31\x34\x2e\x32\x36\x20\x39\x31\x33\x2e\x38\x37\ +\x20\x34\x31\x33\x2e\x32\x31\x20\x39\x31\x34\x2e\x33\x36\x20\x34\ +\x31\x33\x2e\x32\x31\x20\x39\x31\x35\x2e\x33\x33\x20\x5a\x22\x0d\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x32\x62\x34\x64\x38\x32\x22\x20\x66\x69\x6c\x6c\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\ +\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x34\x31\x22\x20\x6e\x6f\x64\ +\x65\x2d\x69\x64\x3d\x22\x32\x33\x22\x20\x73\x74\x72\x6f\x6b\x65\ +\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\ +\x65\x69\x67\x68\x74\x3d\x22\x39\x37\x2e\x30\x37\x34\x32\x32\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x36\x2e\x32\x36\x35\x37\ +\x37\x37\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x34\ +\x31\x33\x2e\x32\x31\x33\x30\x37\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x79\x3d\x22\x39\x31\x33\x2e\x38\x36\x39\x38\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x20\x34\x31\x34\x2e\x39\x38\x20\x31\x30\x30\ +\x36\x2e\x37\x35\x20\x4c\x20\x34\x31\x37\x2e\x36\x36\x20\x31\x30\ +\x30\x36\x2e\x37\x35\x20\x4c\x20\x34\x31\x37\x2e\x36\x36\x20\x31\ +\x30\x32\x32\x2e\x31\x30\x20\x4c\x20\x34\x31\x34\x2e\x39\x38\x20\ +\x31\x30\x32\x32\x2e\x31\x30\x20\x5a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x32\x61\x33\x35\x34\x37\x22\x20\x66\x69\x6c\x6c\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x0d\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\xe7\x9f\xa9\ +\xe5\xbd\xa2\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x32\x34\ +\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\ +\x35\x2e\x33\x35\x32\x34\x31\x37\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x77\x69\x64\x74\x68\x3d\x22\x32\x2e\x36\x38\x36\x36\x37\x36\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x34\x31\x34\x2e\ +\x39\x37\x37\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x31\x30\x30\x36\x2e\ +\x37\x34\x35\x32\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\ +\x32\x33\x2e\x30\x33\x20\x31\x30\x30\x37\x2e\x34\x34\x20\x43\x20\ +\x34\x32\x33\x2e\x30\x33\x20\x31\x30\x31\x31\x2e\x36\x38\x20\x34\ +\x32\x30\x2e\x30\x33\x20\x31\x30\x31\x35\x2e\x31\x32\x20\x34\x31\ +\x36\x2e\x33\x32\x20\x31\x30\x31\x35\x2e\x31\x32\x20\x43\x20\x34\ +\x31\x32\x2e\x36\x31\x20\x31\x30\x31\x35\x2e\x31\x32\x20\x34\x30\ +\x39\x2e\x36\x30\x20\x31\x30\x31\x31\x2e\x36\x38\x20\x34\x30\x39\ +\x2e\x36\x30\x20\x31\x30\x30\x37\x2e\x34\x34\x20\x43\x20\x34\x30\ +\x39\x2e\x36\x30\x20\x31\x30\x30\x33\x2e\x32\x30\x20\x34\x31\x32\ +\x2e\x36\x31\x20\x39\x39\x39\x2e\x37\x36\x20\x34\x31\x36\x2e\x33\ +\x32\x20\x39\x39\x39\x2e\x37\x36\x20\x43\x20\x34\x32\x30\x2e\x30\ +\x33\x20\x39\x39\x39\x2e\x37\x36\x20\x34\x32\x33\x2e\x30\x33\x20\ +\x31\x30\x30\x33\x2e\x32\x30\x20\x34\x32\x33\x2e\x30\x33\x20\x31\ +\x30\x30\x37\x2e\x34\x34\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x32\x62\x34\x64\ +\x38\x32\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\ +\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\x3d\x22\xe6\xa4\xad\xe5\ +\x9c\x86\xe5\xbd\xa2\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x32\x35\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\ +\x22\x31\x35\x2e\x33\x35\x32\x34\x31\x37\x22\x0d\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\ +\x64\x74\x68\x3d\x22\x31\x33\x2e\x34\x33\x33\x33\x38\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x34\x30\x39\x2e\x36\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x39\x39\x39\x2e\x37\x36\ +\x33\x33\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\x32\x33\ +\x2e\x38\x32\x20\x38\x34\x33\x2e\x30\x30\x20\x43\x20\x33\x37\x32\ +\x2e\x30\x36\x20\x38\x34\x35\x2e\x30\x39\x20\x33\x31\x33\x2e\x39\ +\x33\x20\x38\x36\x33\x2e\x36\x34\x20\x33\x32\x37\x2e\x39\x34\x20\ +\x38\x38\x32\x2e\x31\x35\x20\x43\x20\x33\x34\x31\x2e\x39\x31\x20\ +\x38\x39\x33\x2e\x37\x30\x20\x33\x36\x37\x2e\x37\x34\x20\x38\x37\ +\x32\x2e\x36\x32\x20\x33\x39\x36\x2e\x30\x32\x20\x38\x39\x30\x2e\ +\x31\x30\x20\x43\x20\x34\x31\x32\x2e\x39\x35\x20\x39\x30\x30\x2e\ +\x35\x37\x20\x34\x31\x36\x2e\x34\x32\x20\x39\x30\x33\x2e\x37\x35\ +\x20\x34\x33\x31\x2e\x39\x37\x20\x39\x31\x38\x2e\x38\x31\x20\x43\ +\x20\x34\x33\x39\x2e\x37\x32\x20\x39\x32\x36\x2e\x33\x33\x20\x34\ +\x35\x34\x2e\x33\x31\x20\x39\x34\x39\x2e\x39\x33\x20\x34\x36\x37\ +\x2e\x35\x33\x20\x39\x34\x39\x2e\x35\x32\x20\x43\x20\x34\x38\x30\ +\x2e\x37\x34\x20\x39\x34\x39\x2e\x31\x31\x20\x34\x39\x33\x2e\x32\ +\x34\x20\x39\x32\x39\x2e\x32\x31\x20\x35\x30\x33\x2e\x35\x36\x20\ +\x39\x31\x39\x2e\x33\x36\x20\x43\x20\x35\x30\x39\x2e\x36\x35\x20\ +\x39\x31\x33\x2e\x35\x34\x20\x35\x33\x30\x2e\x30\x32\x20\x38\x38\ +\x39\x2e\x35\x31\x20\x35\x34\x39\x2e\x33\x31\x20\x38\x38\x32\x2e\ +\x38\x31\x20\x43\x20\x35\x37\x30\x2e\x30\x39\x20\x38\x37\x35\x2e\ +\x35\x39\x20\x35\x38\x32\x2e\x31\x38\x20\x38\x38\x32\x2e\x33\x30\ +\x20\x36\x31\x32\x2e\x35\x36\x20\x38\x38\x31\x2e\x34\x35\x20\x43\ +\x20\x36\x34\x32\x2e\x39\x34\x20\x38\x38\x30\x2e\x35\x39\x20\x36\ +\x31\x30\x2e\x32\x38\x20\x38\x34\x35\x2e\x37\x35\x20\x35\x32\x36\ +\x2e\x31\x34\x20\x38\x34\x33\x2e\x30\x30\x20\x43\x20\x34\x39\x32\ +\x2e\x36\x38\x20\x38\x33\x38\x2e\x38\x32\x20\x34\x38\x30\x2e\x38\ +\x37\x20\x38\x33\x33\x2e\x38\x31\x20\x34\x32\x33\x2e\x38\x32\x20\ +\x38\x34\x33\x2e\x30\x30\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x33\x63\x36\x64\ +\x62\x38\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\ +\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\ +\xbe\x84\x2d\x32\x38\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x32\x36\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\ +\x22\x31\x31\x36\x2e\x31\x32\x33\x34\x37\x34\x22\x0d\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x33\x32\x39\x2e\x30\x31\x34\x37\x37\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x33\x31\x33\x2e\x39\ +\x32\x35\x37\x32\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\ +\x38\x33\x33\x2e\x38\x30\x36\x31\x35\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\ +\x22\x4d\x20\x34\x30\x30\x2e\x32\x39\x20\x38\x32\x38\x2e\x31\x34\ +\x20\x43\x20\x33\x39\x39\x2e\x36\x31\x20\x38\x34\x35\x2e\x38\x33\ +\x20\x34\x30\x30\x2e\x30\x33\x20\x38\x35\x37\x2e\x31\x31\x20\x34\ +\x30\x31\x2e\x35\x37\x20\x38\x36\x31\x2e\x39\x37\x20\x43\x20\x34\ +\x30\x37\x2e\x39\x34\x20\x38\x38\x36\x2e\x30\x37\x20\x34\x33\x35\ +\x2e\x33\x30\x20\x39\x32\x35\x2e\x34\x37\x20\x34\x36\x32\x2e\x36\ +\x30\x20\x39\x32\x34\x2e\x30\x35\x20\x43\x20\x34\x39\x32\x2e\x37\ +\x30\x20\x39\x32\x34\x2e\x37\x34\x20\x35\x32\x31\x2e\x36\x39\x20\ +\x38\x38\x34\x2e\x30\x37\x20\x35\x32\x36\x2e\x31\x38\x20\x38\x36\ +\x31\x2e\x39\x37\x20\x43\x20\x35\x32\x39\x2e\x39\x33\x20\x38\x35\ +\x31\x2e\x31\x31\x20\x35\x32\x34\x2e\x38\x36\x20\x38\x33\x35\x2e\ +\x33\x38\x20\x35\x32\x36\x2e\x38\x37\x20\x38\x32\x38\x2e\x31\x34\ +\x20\x43\x20\x35\x33\x31\x2e\x37\x32\x20\x38\x32\x33\x2e\x35\x32\ +\x20\x35\x31\x31\x2e\x39\x32\x20\x38\x32\x35\x2e\x31\x35\x20\x34\ +\x36\x37\x2e\x34\x37\x20\x38\x33\x33\x2e\x30\x33\x20\x4c\x20\x34\ +\x30\x30\x2e\x32\x39\x20\x38\x32\x38\x2e\x31\x34\x20\x5a\x22\x0d\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x66\x66\x62\x35\x61\x31\x22\x20\x66\x69\x6c\x6c\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\ +\x3d\x22\xe8\x92\x99\xe7\x89\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\ +\x64\x3d\x22\x32\x37\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\ +\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x31\x30\x31\x2e\x39\x35\x32\x36\x34\x22\x0d\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x33\x32\x2e\x31\x31\x32\x38\ +\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x33\x39\x39\ +\x2e\x36\x30\x38\x39\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\ +\x22\x38\x32\x33\x2e\x35\x31\x36\x35\x34\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\ +\x3d\x22\x4d\x20\x35\x30\x35\x2e\x37\x30\x20\x38\x39\x39\x2e\x36\ +\x31\x20\x43\x20\x34\x39\x34\x2e\x34\x33\x20\x39\x31\x32\x2e\x37\ +\x35\x20\x34\x37\x39\x2e\x38\x30\x20\x39\x32\x33\x2e\x34\x31\x20\ +\x34\x36\x34\x2e\x37\x35\x20\x39\x32\x34\x2e\x30\x33\x20\x4c\x20\ +\x34\x36\x32\x2e\x36\x30\x20\x39\x32\x34\x2e\x30\x35\x20\x43\x20\ +\x34\x34\x38\x2e\x37\x37\x20\x39\x32\x34\x2e\x37\x37\x20\x34\x33\ +\x34\x2e\x39\x33\x20\x39\x31\x35\x2e\x30\x32\x20\x34\x32\x33\x2e\ +\x38\x30\x20\x39\x30\x32\x2e\x30\x38\x20\x43\x20\x34\x35\x30\x2e\ +\x37\x36\x20\x39\x30\x38\x2e\x35\x38\x20\x34\x37\x37\x2e\x35\x32\ +\x20\x39\x30\x37\x2e\x39\x33\x20\x35\x30\x34\x2e\x30\x36\x20\x39\ +\x30\x30\x2e\x31\x32\x20\x4c\x20\x35\x30\x35\x2e\x37\x30\x20\x38\ +\x39\x39\x2e\x36\x31\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x66\x66\x66\ +\x66\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\ +\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\ +\x84\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x32\x38\x22\x20\ +\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\ +\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x35\x2e\ +\x31\x35\x37\x32\x38\x38\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\ +\x22\x38\x31\x2e\x38\x39\x35\x39\x39\x36\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x78\x3d\x22\x34\x32\x33\x2e\x38\x30\x34\x33\x38\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x38\x39\x39\x2e\x36\ +\x31\x33\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\x33\x30\ +\x2e\x36\x34\x20\x38\x33\x30\x2e\x33\x34\x20\x4c\x20\x34\x36\x37\ +\x2e\x34\x37\x20\x38\x33\x33\x2e\x30\x33\x20\x4c\x20\x34\x37\x39\ +\x2e\x32\x33\x20\x38\x33\x30\x2e\x39\x39\x20\x4c\x20\x34\x37\x39\ +\x2e\x32\x33\x20\x38\x33\x30\x2e\x39\x39\x20\x4c\x20\x34\x38\x39\ +\x2e\x37\x32\x20\x38\x32\x39\x2e\x32\x38\x20\x4c\x20\x34\x38\x39\ +\x2e\x37\x32\x20\x38\x32\x39\x2e\x32\x38\x20\x4c\x20\x34\x39\x38\ +\x2e\x39\x32\x20\x38\x32\x37\x2e\x38\x39\x20\x4c\x20\x34\x39\x38\ +\x2e\x39\x32\x20\x38\x32\x37\x2e\x38\x39\x20\x4c\x20\x35\x30\x34\ +\x2e\x39\x39\x20\x38\x32\x37\x2e\x30\x36\x20\x4c\x20\x35\x30\x34\ +\x2e\x39\x39\x20\x38\x32\x37\x2e\x30\x36\x20\x4c\x20\x35\x31\x30\ +\x2e\x33\x33\x20\x38\x32\x36\x2e\x34\x32\x20\x4c\x20\x35\x31\x30\ +\x2e\x33\x33\x20\x38\x32\x36\x2e\x34\x32\x20\x4c\x20\x35\x31\x34\ +\x2e\x39\x36\x20\x38\x32\x35\x2e\x39\x35\x20\x4c\x20\x35\x31\x34\ +\x2e\x39\x36\x20\x38\x32\x35\x2e\x39\x35\x20\x4c\x20\x35\x31\x37\ +\x2e\x36\x34\x20\x38\x32\x35\x2e\x37\x35\x20\x4c\x20\x35\x31\x37\ +\x2e\x36\x34\x20\x38\x32\x35\x2e\x37\x35\x20\x4c\x20\x35\x32\x30\ +\x2e\x30\x30\x20\x38\x32\x35\x2e\x36\x32\x20\x4c\x20\x35\x32\x30\ +\x2e\x30\x30\x20\x38\x32\x35\x2e\x36\x32\x20\x4c\x20\x35\x32\x32\ +\x2e\x39\x35\x20\x38\x32\x35\x2e\x35\x38\x20\x43\x20\x35\x32\x33\ +\x2e\x32\x34\x20\x38\x32\x35\x2e\x35\x39\x20\x35\x32\x33\x2e\x35\ +\x31\x20\x38\x32\x35\x2e\x36\x30\x20\x35\x32\x33\x2e\x37\x37\x20\ +\x38\x32\x35\x2e\x36\x31\x20\x4c\x20\x35\x32\x35\x2e\x31\x37\x20\ +\x38\x32\x35\x2e\x37\x33\x20\x4c\x20\x35\x32\x35\x2e\x31\x37\x20\ +\x38\x32\x35\x2e\x37\x33\x20\x4c\x20\x35\x32\x36\x2e\x32\x36\x20\ +\x38\x32\x35\x2e\x39\x33\x20\x43\x20\x35\x32\x37\x2e\x38\x30\x20\ +\x38\x32\x36\x2e\x33\x33\x20\x35\x32\x38\x2e\x30\x30\x20\x38\x32\ +\x37\x2e\x30\x36\x20\x35\x32\x36\x2e\x38\x37\x20\x38\x32\x38\x2e\ +\x31\x34\x20\x43\x20\x35\x32\x36\x2e\x32\x35\x20\x38\x33\x30\x2e\ +\x34\x30\x20\x35\x32\x36\x2e\x33\x31\x20\x38\x33\x33\x2e\x34\x39\ +\x20\x35\x32\x36\x2e\x35\x38\x20\x38\x33\x37\x2e\x30\x31\x20\x4c\ +\x20\x35\x32\x37\x2e\x31\x38\x20\x38\x34\x33\x2e\x37\x30\x20\x43\ +\x20\x35\x32\x37\x2e\x37\x33\x20\x38\x34\x39\x2e\x38\x39\x20\x35\ +\x32\x38\x2e\x30\x35\x20\x38\x35\x36\x2e\x35\x34\x20\x35\x32\x36\ +\x2e\x31\x38\x20\x38\x36\x31\x2e\x39\x37\x20\x43\x20\x35\x32\x35\ +\x2e\x32\x33\x20\x38\x36\x36\x2e\x36\x32\x20\x35\x32\x33\x2e\x32\ +\x31\x20\x38\x37\x32\x2e\x30\x38\x20\x35\x32\x30\x2e\x33\x32\x20\ +\x38\x37\x37\x2e\x38\x31\x20\x43\x20\x35\x31\x38\x2e\x38\x33\x20\ +\x38\x37\x37\x2e\x39\x34\x20\x35\x31\x37\x2e\x33\x30\x20\x38\x37\ +\x38\x2e\x30\x31\x20\x35\x31\x35\x2e\x37\x32\x20\x38\x37\x38\x2e\ +\x30\x31\x20\x43\x20\x34\x39\x30\x2e\x30\x36\x20\x38\x37\x38\x2e\ +\x30\x31\x20\x34\x35\x34\x2e\x30\x32\x20\x38\x36\x34\x2e\x35\x35\ +\x20\x34\x30\x37\x2e\x35\x37\x20\x38\x33\x37\x2e\x36\x32\x20\x4c\ +\x20\x34\x30\x30\x2e\x31\x32\x20\x38\x33\x33\x2e\x32\x35\x20\x4c\ +\x20\x34\x30\x30\x2e\x31\x35\x20\x38\x33\x32\x2e\x33\x34\x20\x4c\ +\x20\x34\x30\x30\x2e\x31\x35\x20\x38\x33\x32\x2e\x33\x34\x20\x4c\ +\x20\x34\x33\x30\x2e\x36\x34\x20\x38\x33\x30\x2e\x33\x34\x20\x5a\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x66\x35\x39\x38\x37\x66\x22\x20\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\ +\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x22\x20\x6e\x6f\x64\x65\ +\x2d\x69\x64\x3d\x22\x32\x39\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\ +\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\ +\x69\x67\x68\x74\x3d\x22\x35\x32\x2e\x34\x32\x32\x39\x31\x33\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x37\x2e\x39\x33\ +\x34\x39\x30\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\ +\x34\x30\x30\x2e\x31\x31\x39\x37\x32\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x79\x3d\x22\x38\x32\x35\x2e\x35\x38\x34\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x20\x38\x34\x35\x2e\x32\x32\x20\x33\x35\x36\ +\x2e\x35\x32\x20\x4c\x20\x38\x34\x30\x2e\x38\x38\x20\x33\x36\x34\ +\x2e\x31\x38\x20\x4c\x20\x38\x33\x36\x2e\x33\x34\x20\x33\x37\x31\ +\x2e\x32\x33\x20\x4c\x20\x38\x33\x31\x2e\x36\x30\x20\x33\x37\x37\ +\x2e\x36\x39\x20\x4c\x20\x38\x32\x36\x2e\x36\x36\x20\x33\x38\x33\ +\x2e\x36\x31\x20\x4c\x20\x38\x32\x31\x2e\x33\x32\x20\x33\x38\x39\ +\x2e\x32\x38\x20\x4c\x20\x38\x31\x35\x2e\x37\x39\x20\x33\x39\x34\ +\x2e\x35\x31\x20\x4c\x20\x38\x31\x30\x2e\x30\x37\x20\x33\x39\x39\ +\x2e\x33\x31\x20\x4c\x20\x38\x30\x34\x2e\x31\x37\x20\x34\x30\x33\ +\x2e\x37\x30\x20\x4c\x20\x37\x39\x35\x2e\x39\x32\x20\x34\x30\x39\ +\x2e\x30\x37\x20\x4c\x20\x37\x38\x37\x2e\x33\x38\x20\x34\x31\x33\ +\x2e\x38\x38\x20\x4c\x20\x37\x37\x38\x2e\x35\x31\x20\x34\x31\x38\ +\x2e\x31\x34\x20\x4c\x20\x37\x36\x39\x2e\x34\x32\x20\x34\x32\x31\ +\x2e\x39\x32\x20\x4c\x20\x37\x36\x30\x2e\x30\x38\x20\x34\x32\x35\ +\x2e\x33\x32\x20\x4c\x20\x37\x35\x30\x2e\x34\x37\x20\x34\x32\x38\ +\x2e\x33\x33\x20\x4c\x20\x37\x33\x35\x2e\x38\x33\x20\x34\x33\x32\ +\x2e\x32\x34\x20\x4c\x20\x37\x32\x30\x2e\x38\x31\x20\x34\x33\x35\ +\x2e\x36\x31\x20\x4c\x20\x37\x30\x35\x2e\x36\x33\x20\x34\x33\x38\ +\x2e\x36\x30\x20\x4c\x20\x36\x39\x30\x2e\x33\x31\x20\x34\x34\x31\ +\x2e\x33\x38\x20\x4c\x20\x36\x35\x39\x2e\x37\x33\x20\x34\x34\x36\ +\x2e\x39\x39\x20\x4c\x20\x36\x34\x32\x2e\x39\x32\x20\x34\x35\x30\ +\x2e\x35\x35\x20\x4c\x20\x36\x32\x35\x2e\x32\x36\x20\x34\x35\x34\ +\x2e\x37\x35\x20\x4c\x20\x36\x30\x36\x2e\x37\x33\x20\x34\x35\x39\ +\x2e\x36\x34\x20\x4c\x20\x35\x38\x37\x2e\x32\x39\x20\x34\x36\x35\ +\x2e\x32\x35\x20\x4c\x20\x35\x36\x36\x2e\x38\x39\x20\x34\x37\x31\ +\x2e\x36\x31\x20\x4c\x20\x35\x34\x35\x2e\x35\x31\x20\x34\x37\x38\ +\x2e\x37\x37\x20\x4c\x20\x35\x32\x33\x2e\x31\x31\x20\x34\x38\x36\ +\x2e\x37\x36\x20\x4c\x20\x34\x39\x39\x2e\x36\x33\x20\x34\x39\x35\ +\x2e\x36\x33\x20\x4c\x20\x35\x30\x31\x2e\x37\x36\x20\x34\x37\x38\ +\x2e\x37\x37\x20\x4c\x20\x35\x30\x34\x2e\x32\x36\x20\x34\x36\x33\ +\x2e\x33\x37\x20\x4c\x20\x35\x30\x37\x2e\x31\x30\x20\x34\x34\x39\ +\x2e\x33\x35\x20\x4c\x20\x35\x31\x30\x2e\x32\x34\x20\x34\x33\x36\ +\x2e\x36\x31\x20\x4c\x20\x35\x31\x33\x2e\x36\x36\x20\x34\x32\x35\ +\x2e\x30\x37\x20\x4c\x20\x35\x31\x37\x2e\x33\x32\x20\x34\x31\x34\ +\x2e\x36\x32\x20\x4c\x20\x35\x32\x31\x2e\x32\x30\x20\x34\x30\x35\ +\x2e\x32\x31\x20\x4c\x20\x35\x32\x35\x2e\x32\x39\x20\x33\x39\x36\ +\x2e\x37\x34\x20\x4c\x20\x35\x32\x39\x2e\x35\x37\x20\x33\x38\x39\ +\x2e\x31\x35\x20\x4c\x20\x35\x33\x34\x2e\x30\x32\x20\x33\x38\x32\ +\x2e\x33\x36\x20\x4c\x20\x35\x33\x38\x2e\x36\x33\x20\x33\x37\x36\ +\x2e\x33\x33\x20\x4c\x20\x35\x34\x33\x2e\x34\x31\x20\x33\x37\x30\ +\x2e\x39\x39\x20\x4c\x20\x35\x34\x38\x2e\x33\x36\x20\x33\x36\x36\ +\x2e\x32\x39\x20\x4c\x20\x35\x35\x33\x2e\x34\x38\x20\x33\x36\x32\ +\x2e\x32\x30\x20\x4c\x20\x35\x35\x38\x2e\x37\x38\x20\x33\x35\x38\ +\x2e\x36\x37\x20\x4c\x20\x35\x36\x30\x2e\x37\x37\x20\x33\x35\x37\ +\x2e\x32\x34\x20\x4c\x20\x35\x36\x32\x2e\x32\x34\x20\x33\x35\x35\ +\x2e\x37\x33\x20\x4c\x20\x35\x36\x33\x2e\x32\x38\x20\x33\x35\x34\ +\x2e\x31\x34\x20\x4c\x20\x35\x36\x33\x2e\x39\x34\x20\x33\x35\x32\ +\x2e\x34\x36\x20\x4c\x20\x35\x36\x34\x2e\x33\x35\x20\x33\x35\x30\ +\x2e\x30\x32\x20\x4c\x20\x35\x36\x34\x2e\x32\x39\x20\x33\x34\x37\ +\x2e\x33\x31\x20\x4c\x20\x35\x36\x33\x2e\x37\x31\x20\x33\x34\x34\ +\x2e\x32\x37\x20\x4c\x20\x35\x36\x32\x2e\x32\x33\x20\x33\x33\x39\ +\x2e\x36\x39\x20\x4c\x20\x35\x36\x30\x2e\x30\x31\x20\x33\x33\x34\ +\x2e\x34\x38\x20\x4c\x20\x35\x35\x34\x2e\x37\x34\x20\x33\x32\x33\ +\x2e\x34\x34\x20\x4c\x20\x35\x35\x32\x2e\x31\x32\x20\x33\x31\x37\ +\x2e\x35\x38\x20\x4c\x20\x35\x34\x39\x2e\x38\x31\x20\x33\x31\x31\ +\x2e\x35\x32\x20\x4c\x20\x35\x34\x38\x2e\x35\x35\x20\x33\x30\x37\ +\x2e\x34\x30\x20\x4c\x20\x35\x34\x37\x2e\x36\x35\x20\x33\x30\x33\ +\x2e\x32\x36\x20\x4c\x20\x35\x34\x37\x2e\x31\x30\x20\x32\x39\x39\ +\x2e\x30\x39\x20\x4c\x20\x35\x34\x37\x2e\x30\x32\x20\x32\x39\x34\ +\x2e\x39\x31\x20\x4c\x20\x35\x34\x37\x2e\x34\x39\x20\x32\x39\x30\ +\x2e\x37\x33\x20\x4c\x20\x35\x34\x38\x2e\x35\x34\x20\x32\x38\x36\ +\x2e\x35\x30\x20\x4c\x20\x35\x34\x39\x2e\x37\x30\x20\x32\x38\x33\ +\x2e\x34\x39\x20\x4c\x20\x35\x35\x31\x2e\x33\x31\x20\x32\x38\x30\ +\x2e\x34\x33\x20\x4c\x20\x35\x35\x33\x2e\x34\x30\x20\x32\x37\x37\ +\x2e\x33\x32\x20\x4c\x20\x35\x35\x36\x2e\x30\x33\x20\x32\x37\x34\ +\x2e\x31\x32\x20\x4c\x20\x35\x35\x38\x2e\x38\x34\x20\x32\x37\x31\ +\x2e\x32\x39\x20\x4c\x20\x35\x36\x32\x2e\x32\x39\x20\x32\x36\x38\ +\x2e\x33\x39\x20\x4c\x20\x35\x36\x36\x2e\x34\x36\x20\x32\x36\x35\ +\x2e\x33\x39\x20\x4c\x20\x35\x37\x31\x2e\x34\x35\x20\x32\x36\x32\ +\x2e\x33\x32\x20\x4c\x20\x35\x37\x36\x2e\x33\x38\x20\x32\x35\x39\ +\x2e\x36\x38\x20\x4c\x20\x35\x38\x32\x2e\x31\x37\x20\x32\x35\x36\ +\x2e\x39\x39\x20\x4c\x20\x35\x38\x38\x2e\x39\x32\x20\x32\x35\x34\ +\x2e\x32\x34\x20\x4c\x20\x35\x39\x36\x2e\x37\x33\x20\x32\x35\x31\ +\x2e\x34\x35\x20\x4c\x20\x36\x30\x37\x2e\x30\x34\x20\x32\x34\x38\ +\x2e\x32\x37\x20\x4c\x20\x36\x31\x39\x2e\x33\x31\x20\x32\x34\x35\ +\x2e\x30\x38\x20\x4c\x20\x36\x33\x33\x2e\x37\x36\x20\x32\x34\x31\ +\x2e\x38\x39\x20\x4c\x20\x36\x34\x39\x2e\x39\x35\x20\x32\x33\x37\ +\x2e\x39\x31\x20\x4c\x20\x36\x36\x35\x2e\x30\x38\x20\x32\x33\x34\ +\x2e\x35\x39\x20\x4c\x20\x36\x37\x39\x2e\x32\x30\x20\x32\x33\x31\ +\x2e\x38\x38\x20\x4c\x20\x36\x39\x32\x2e\x33\x37\x20\x32\x32\x39\ +\x2e\x37\x36\x20\x4c\x20\x37\x30\x34\x2e\x36\x34\x20\x32\x32\x38\ +\x2e\x31\x36\x20\x4c\x20\x37\x31\x37\x2e\x36\x36\x20\x32\x32\x36\ +\x2e\x39\x30\x20\x4c\x20\x37\x32\x39\x2e\x37\x31\x20\x32\x32\x36\ +\x2e\x31\x35\x20\x4c\x20\x37\x34\x30\x2e\x38\x36\x20\x32\x32\x35\ +\x2e\x38\x37\x20\x4c\x20\x37\x35\x31\x2e\x31\x36\x20\x32\x32\x36\ +\x2e\x30\x32\x20\x4c\x20\x37\x36\x30\x2e\x36\x35\x20\x32\x32\x36\ +\x2e\x35\x37\x20\x4c\x20\x37\x37\x30\x2e\x36\x37\x20\x32\x32\x37\ +\x2e\x36\x31\x20\x4c\x20\x37\x37\x39\x2e\x38\x35\x20\x32\x32\x39\ +\x2e\x30\x31\x20\x4c\x20\x37\x38\x38\x2e\x32\x34\x20\x32\x33\x30\ +\x2e\x37\x33\x20\x4c\x20\x37\x39\x35\x2e\x39\x31\x20\x32\x33\x32\ +\x2e\x37\x35\x20\x4c\x20\x38\x30\x32\x2e\x39\x30\x20\x32\x33\x35\ +\x2e\x30\x36\x20\x4c\x20\x38\x31\x30\x2e\x30\x38\x20\x32\x33\x37\ +\x2e\x39\x33\x20\x4c\x20\x38\x31\x36\x2e\x35\x37\x20\x32\x34\x31\ +\x2e\x30\x32\x20\x4c\x20\x38\x32\x32\x2e\x34\x33\x20\x32\x34\x34\ +\x2e\x33\x33\x20\x4c\x20\x38\x32\x37\x2e\x37\x31\x20\x32\x34\x37\ +\x2e\x38\x34\x20\x4c\x20\x38\x33\x32\x2e\x34\x34\x20\x32\x35\x31\ +\x2e\x35\x35\x20\x4c\x20\x38\x33\x37\x2e\x30\x31\x20\x32\x35\x35\ +\x2e\x37\x35\x20\x4c\x20\x38\x34\x31\x2e\x30\x36\x20\x32\x36\x30\ +\x2e\x30\x38\x20\x4c\x20\x38\x34\x34\x2e\x36\x32\x20\x32\x36\x34\ +\x2e\x35\x36\x20\x4c\x20\x38\x34\x37\x2e\x37\x32\x20\x32\x36\x39\ +\x2e\x32\x30\x20\x4c\x20\x38\x35\x30\x2e\x33\x36\x20\x32\x37\x34\ +\x2e\x30\x30\x20\x4c\x20\x38\x35\x32\x2e\x36\x35\x20\x32\x37\x39\ +\x2e\x30\x36\x20\x4c\x20\x38\x35\x34\x2e\x35\x32\x20\x32\x38\x34\ +\x2e\x32\x30\x20\x4c\x20\x38\x35\x35\x2e\x39\x39\x20\x32\x38\x39\ +\x2e\x34\x36\x20\x4c\x20\x38\x35\x37\x2e\x30\x37\x20\x32\x39\x34\ +\x2e\x38\x34\x20\x4c\x20\x38\x35\x37\x2e\x37\x35\x20\x33\x30\x30\ +\x2e\x33\x35\x20\x4c\x20\x38\x35\x38\x2e\x30\x37\x20\x33\x30\x37\ +\x2e\x32\x37\x20\x4c\x20\x38\x35\x37\x2e\x38\x33\x20\x33\x31\x34\ +\x2e\x32\x36\x20\x4c\x20\x38\x35\x37\x2e\x30\x34\x20\x33\x32\x31\ +\x2e\x33\x34\x20\x4c\x20\x38\x35\x35\x2e\x36\x37\x20\x33\x32\x38\ +\x2e\x35\x34\x20\x4c\x20\x38\x35\x33\x2e\x38\x31\x20\x33\x33\x35\ +\x2e\x35\x39\x20\x4c\x20\x38\x35\x31\x2e\x34\x36\x20\x33\x34\x32\ +\x2e\x36\x30\x20\x4c\x20\x38\x34\x38\x2e\x36\x30\x20\x33\x34\x39\ +\x2e\x35\x37\x20\x4c\x20\x38\x34\x35\x2e\x32\x32\x20\x33\x35\x36\ +\x2e\x35\x32\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x65\x64\x62\x34\x31\x66\x22\ +\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\ +\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\x3d\x22\x33\ +\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x38\x38\x22\x20\x73\ +\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x36\x39\x2e\ +\x37\x35\x34\x37\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\ +\x33\x35\x38\x2e\x34\x33\x33\x31\x37\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x78\x3d\x22\x34\x39\x39\x2e\x36\x33\x33\x35\x34\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x32\x32\x35\x2e\x38\x37\ +\x31\x31\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x38\x34\x33\ +\x2e\x33\x38\x20\x33\x37\x34\x2e\x38\x37\x20\x4c\x20\x38\x33\x38\ +\x2e\x31\x35\x20\x33\x38\x32\x2e\x31\x39\x20\x4c\x20\x38\x33\x32\ +\x2e\x37\x37\x20\x33\x38\x38\x2e\x38\x36\x20\x4c\x20\x38\x32\x37\ +\x2e\x32\x34\x20\x33\x39\x34\x2e\x39\x30\x20\x4c\x20\x38\x32\x31\ +\x2e\x35\x37\x20\x34\x30\x30\x2e\x33\x35\x20\x4c\x20\x38\x31\x35\ +\x2e\x35\x31\x20\x34\x30\x35\x2e\x35\x30\x20\x4c\x20\x38\x30\x39\ +\x2e\x33\x30\x20\x34\x31\x30\x2e\x31\x37\x20\x4c\x20\x38\x30\x32\ +\x2e\x39\x35\x20\x34\x31\x34\x2e\x33\x38\x20\x4c\x20\x37\x39\x36\ +\x2e\x34\x34\x20\x34\x31\x38\x2e\x31\x35\x20\x4c\x20\x37\x38\x39\ +\x2e\x37\x32\x20\x34\x32\x31\x2e\x35\x37\x20\x4c\x20\x37\x38\x32\ +\x2e\x38\x35\x20\x34\x32\x34\x2e\x36\x35\x20\x4c\x20\x37\x37\x35\ +\x2e\x38\x34\x20\x34\x32\x37\x2e\x33\x39\x20\x4c\x20\x37\x36\x38\ +\x2e\x36\x37\x20\x34\x32\x39\x2e\x38\x31\x20\x4c\x20\x37\x35\x38\ +\x2e\x39\x38\x20\x34\x33\x32\x2e\x35\x37\x20\x4c\x20\x37\x34\x39\ +\x2e\x30\x36\x20\x34\x33\x34\x2e\x39\x33\x20\x4c\x20\x37\x33\x38\ +\x2e\x39\x33\x20\x34\x33\x36\x2e\x38\x36\x20\x4c\x20\x37\x33\x32\ +\x2e\x34\x38\x20\x34\x33\x37\x2e\x39\x31\x20\x4c\x20\x37\x33\x32\ +\x2e\x34\x38\x20\x34\x33\x37\x2e\x39\x31\x20\x4c\x20\x37\x32\x35\ +\x2e\x39\x37\x20\x34\x33\x38\x2e\x38\x33\x20\x4c\x20\x37\x32\x35\ +\x2e\x39\x37\x20\x34\x33\x38\x2e\x38\x33\x20\x4c\x20\x37\x31\x39\ +\x2e\x34\x33\x20\x34\x33\x39\x2e\x36\x35\x20\x4c\x20\x37\x31\x36\ +\x2e\x31\x34\x20\x34\x34\x30\x2e\x30\x33\x20\x4c\x20\x37\x30\x39\ +\x2e\x35\x33\x20\x34\x34\x30\x2e\x37\x31\x20\x4c\x20\x37\x30\x39\ +\x2e\x35\x33\x20\x34\x34\x30\x2e\x37\x31\x20\x4c\x20\x37\x32\x38\ +\x2e\x36\x35\x20\x34\x32\x36\x2e\x36\x39\x20\x4c\x20\x37\x34\x31\ +\x2e\x32\x34\x20\x34\x32\x34\x2e\x34\x37\x20\x4c\x20\x37\x35\x32\ +\x2e\x39\x38\x20\x34\x32\x31\x2e\x38\x30\x20\x4c\x20\x37\x36\x33\ +\x2e\x39\x31\x20\x34\x31\x38\x2e\x37\x31\x20\x4c\x20\x37\x37\x34\ +\x2e\x30\x39\x20\x34\x31\x35\x2e\x32\x32\x20\x4c\x20\x37\x38\x33\ +\x2e\x35\x36\x20\x34\x31\x31\x2e\x33\x35\x20\x4c\x20\x37\x39\x32\ +\x2e\x33\x37\x20\x34\x30\x37\x2e\x31\x31\x20\x4c\x20\x38\x30\x30\ +\x2e\x35\x35\x20\x34\x30\x32\x2e\x35\x31\x20\x4c\x20\x38\x30\x38\ +\x2e\x31\x34\x20\x33\x39\x37\x2e\x35\x37\x20\x4c\x20\x38\x31\x35\ +\x2e\x31\x38\x20\x33\x39\x32\x2e\x32\x37\x20\x4c\x20\x38\x32\x31\ +\x2e\x36\x39\x20\x33\x38\x36\x2e\x36\x32\x20\x4c\x20\x38\x32\x37\ +\x2e\x36\x39\x20\x33\x38\x30\x2e\x36\x31\x20\x4c\x20\x38\x33\x33\ +\x2e\x32\x31\x20\x33\x37\x34\x2e\x32\x33\x20\x4c\x20\x38\x33\x38\ +\x2e\x32\x36\x20\x33\x36\x37\x2e\x34\x37\x20\x4c\x20\x38\x34\x32\ +\x2e\x38\x36\x20\x33\x36\x30\x2e\x33\x30\x20\x4c\x20\x38\x34\x37\ +\x2e\x30\x30\x20\x33\x35\x32\x2e\x37\x31\x20\x4c\x20\x38\x35\x30\ +\x2e\x37\x30\x20\x33\x34\x34\x2e\x36\x37\x20\x4c\x20\x38\x35\x33\ +\x2e\x39\x34\x20\x33\x33\x36\x2e\x31\x34\x20\x4c\x20\x38\x35\x36\ +\x2e\x37\x32\x20\x33\x32\x37\x2e\x31\x30\x20\x4c\x20\x38\x35\x39\ +\x2e\x30\x32\x20\x33\x31\x37\x2e\x35\x31\x20\x4c\x20\x38\x36\x30\ +\x2e\x38\x32\x20\x33\x30\x37\x2e\x33\x34\x20\x4c\x20\x38\x36\x31\ +\x2e\x34\x38\x20\x33\x31\x32\x2e\x39\x35\x20\x4c\x20\x38\x36\x31\ +\x2e\x37\x33\x20\x33\x31\x38\x2e\x36\x30\x20\x4c\x20\x38\x36\x31\ +\x2e\x35\x37\x20\x33\x32\x34\x2e\x33\x31\x20\x4c\x20\x38\x36\x30\ +\x2e\x39\x39\x20\x33\x33\x30\x2e\x31\x30\x20\x4c\x20\x38\x36\x30\ +\x2e\x30\x33\x20\x33\x33\x35\x2e\x38\x31\x20\x4c\x20\x38\x35\x38\ +\x2e\x37\x31\x20\x33\x34\x31\x2e\x35\x32\x20\x4c\x20\x38\x35\x37\ +\x2e\x30\x31\x20\x33\x34\x37\x2e\x32\x34\x20\x4c\x20\x38\x35\x34\ +\x2e\x39\x33\x20\x33\x35\x32\x2e\x39\x37\x20\x4c\x20\x38\x35\x31\ +\x2e\x36\x38\x20\x33\x36\x30\x2e\x33\x39\x20\x4c\x20\x38\x34\x37\ +\x2e\x38\x33\x20\x33\x36\x37\x2e\x36\x38\x20\x4c\x20\x38\x34\x33\ +\x2e\x33\x38\x20\x33\x37\x34\x2e\x38\x37\x20\x5a\x22\x0d\x0a\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x64\x31\x39\x38\x30\x30\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\ +\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\ +\x70\x2d\x69\x64\x3d\x22\x34\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\ +\xe5\xbe\x84\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x33\x33\ +\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\ +\x33\x33\x2e\x33\x37\x30\x39\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\ +\x68\x3d\x22\x31\x35\x32\x2e\x31\x39\x34\x30\x39\x22\x20\x74\x61\ +\x72\x67\x65\x74\x2d\x78\x3d\x22\x37\x30\x39\x2e\x35\x33\x33\x31\ +\x34\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x33\x30\x37\ +\x2e\x33\x34\x30\x31\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\ +\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\ +\x36\x39\x37\x2e\x33\x32\x20\x35\x38\x30\x2e\x30\x36\x20\x43\x20\ +\x37\x32\x31\x2e\x38\x31\x20\x35\x32\x32\x2e\x36\x34\x20\x37\x35\ +\x34\x2e\x35\x33\x20\x35\x30\x32\x2e\x36\x30\x20\x37\x39\x35\x2e\ +\x34\x37\x20\x35\x31\x39\x2e\x39\x36\x20\x43\x20\x38\x35\x36\x2e\ +\x38\x37\x20\x35\x34\x35\x2e\x39\x39\x20\x37\x39\x33\x2e\x32\x37\ +\x20\x36\x37\x31\x2e\x37\x38\x20\x37\x32\x32\x2e\x34\x31\x20\x36\ +\x35\x36\x2e\x39\x33\x20\x43\x20\x36\x37\x35\x2e\x31\x38\x20\x36\ +\x34\x37\x2e\x30\x33\x20\x36\x36\x36\x2e\x38\x31\x20\x36\x32\x31\ +\x2e\x34\x31\x20\x36\x39\x37\x2e\x33\x32\x20\x35\x38\x30\x2e\x30\ +\x36\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x62\x35\x61\x31\x22\x20\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\ +\x64\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x32\x34\ +\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x33\x34\x22\x20\x73\ +\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x39\x2e\ +\x31\x37\x39\x35\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\ +\x31\x39\x30\x2e\x30\x35\x38\x31\x37\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x78\x3d\x22\x36\x36\x36\x2e\x38\x31\x34\x33\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x35\x30\x32\x2e\x36\x30\x32\ +\x39\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\ +\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x37\x31\x35\x2e\ +\x34\x38\x20\x36\x31\x35\x2e\x30\x35\x20\x43\x20\x37\x32\x39\x2e\ +\x33\x33\x20\x35\x38\x38\x2e\x39\x33\x20\x37\x34\x35\x2e\x38\x32\ +\x20\x35\x37\x35\x2e\x30\x31\x20\x37\x36\x34\x2e\x39\x37\x20\x35\ +\x37\x33\x2e\x32\x38\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\ +\x65\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x34\x32\ +\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x33\x35\x22\x0d\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\ +\x3d\x22\x23\x63\x32\x36\x62\x36\x62\x22\x20\x73\x74\x72\x6f\x6b\ +\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x22\x72\x6f\x75\x6e\x64\ +\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x22\ +\x31\x31\x2e\x30\x35\x32\x39\x37\x38\x35\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x34\x31\x2e\x37\x37\ +\x31\x37\x39\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x34\x39\ +\x2e\x34\x38\x39\x38\x30\x37\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x78\x3d\x22\x37\x31\x35\x2e\x34\x38\x34\x39\x22\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x79\x3d\x22\x35\x37\x33\x2e\x32\x38\x32\x36\x22\ +\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x37\x33\x35\x2e\x35\x31\x20\ +\x35\x38\x39\x2e\x35\x37\x20\x43\x20\x37\x34\x38\x2e\x31\x34\x20\ +\x35\x39\x32\x2e\x32\x38\x20\x37\x35\x36\x2e\x35\x31\x20\x35\x39\ +\x39\x2e\x32\x34\x20\x37\x36\x30\x2e\x36\x31\x20\x36\x31\x30\x2e\ +\x34\x34\x22\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x20\ +\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x34\x33\x22\x20\x6e\ +\x6f\x64\x65\x2d\x69\x64\x3d\x22\x33\x36\x22\x0d\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x23\ +\x63\x32\x36\x62\x36\x62\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\ +\x69\x6e\x65\x63\x61\x70\x3d\x22\x72\x6f\x75\x6e\x64\x22\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x31\x2e\ +\x30\x35\x32\x39\x37\x38\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\x2e\x38\x37\x35\x33\x30\ +\x35\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\ +\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x32\x35\x2e\x31\ +\x30\x31\x31\x39\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\ +\x22\x37\x33\x35\x2e\x35\x30\x36\x36\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x79\x3d\x22\x35\x38\x39\x2e\x35\x36\x35\x32\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x20\x32\x35\x33\x2e\x32\x34\x20\x35\x38\ +\x37\x2e\x32\x38\x20\x4c\x20\x32\x34\x38\x2e\x32\x36\x20\x35\x37\ +\x36\x2e\x33\x35\x20\x4c\x20\x32\x34\x33\x2e\x32\x33\x20\x35\x36\ +\x36\x2e\x37\x32\x20\x4c\x20\x32\x33\x38\x2e\x31\x39\x20\x35\x35\ +\x38\x2e\x32\x39\x20\x4c\x20\x32\x33\x33\x2e\x31\x32\x20\x35\x35\ +\x30\x2e\x39\x35\x20\x4c\x20\x32\x32\x38\x2e\x30\x35\x20\x35\x34\ +\x34\x2e\x36\x31\x20\x4c\x20\x32\x32\x32\x2e\x39\x36\x20\x35\x33\ +\x39\x2e\x31\x38\x20\x4c\x20\x32\x31\x37\x2e\x38\x36\x20\x35\x33\ +\x34\x2e\x35\x38\x20\x4c\x20\x32\x31\x32\x2e\x37\x33\x20\x35\x33\ +\x30\x2e\x37\x34\x20\x4c\x20\x32\x30\x37\x2e\x35\x37\x20\x35\x32\ +\x37\x2e\x36\x30\x20\x4c\x20\x32\x30\x32\x2e\x33\x35\x20\x35\x32\ +\x35\x2e\x31\x31\x20\x4c\x20\x31\x39\x37\x2e\x30\x35\x20\x35\x32\ +\x33\x2e\x32\x34\x20\x4c\x20\x31\x39\x31\x2e\x36\x35\x20\x35\x32\ +\x31\x2e\x39\x37\x20\x4c\x20\x31\x38\x36\x2e\x31\x31\x20\x35\x32\ +\x31\x2e\x32\x38\x20\x4c\x20\x31\x38\x30\x2e\x33\x39\x20\x35\x32\ +\x31\x2e\x31\x37\x20\x4c\x20\x31\x37\x34\x2e\x34\x37\x20\x35\x32\ +\x31\x2e\x36\x37\x20\x4c\x20\x31\x36\x38\x2e\x33\x31\x20\x35\x32\ +\x32\x2e\x38\x31\x20\x4c\x20\x31\x36\x31\x2e\x38\x36\x20\x35\x32\ +\x34\x2e\x36\x33\x20\x4c\x20\x31\x35\x35\x2e\x30\x39\x20\x35\x32\ +\x37\x2e\x31\x38\x20\x4c\x20\x31\x35\x31\x2e\x30\x36\x20\x35\x32\ +\x39\x2e\x31\x35\x20\x4c\x20\x31\x34\x37\x2e\x34\x38\x20\x35\x33\ +\x31\x2e\x33\x34\x20\x4c\x20\x31\x34\x34\x2e\x33\x31\x20\x35\x33\ +\x33\x2e\x37\x35\x20\x4c\x20\x31\x34\x31\x2e\x35\x33\x20\x35\x33\ +\x36\x2e\x33\x37\x20\x4c\x20\x31\x33\x39\x2e\x30\x39\x20\x35\x33\ +\x39\x2e\x32\x32\x20\x4c\x20\x31\x33\x36\x2e\x34\x35\x20\x35\x34\ +\x33\x2e\x31\x35\x20\x4c\x20\x31\x33\x34\x2e\x32\x38\x20\x35\x34\ +\x37\x2e\x33\x35\x20\x4c\x20\x31\x33\x32\x2e\x36\x30\x20\x35\x35\ +\x31\x2e\x38\x35\x20\x4c\x20\x31\x33\x31\x2e\x33\x38\x20\x35\x35\ +\x36\x2e\x36\x38\x20\x4c\x20\x31\x33\x30\x2e\x36\x36\x20\x35\x36\ +\x31\x2e\x35\x38\x20\x4c\x20\x31\x33\x30\x2e\x33\x34\x20\x35\x36\ +\x36\x2e\x36\x38\x20\x4c\x20\x31\x33\x30\x2e\x34\x35\x20\x35\x37\ +\x32\x2e\x30\x30\x20\x4c\x20\x31\x33\x31\x2e\x30\x30\x20\x35\x37\ +\x37\x2e\x35\x36\x20\x4c\x20\x31\x33\x32\x2e\x33\x31\x20\x35\x38\ +\x34\x2e\x38\x36\x20\x4c\x20\x31\x33\x34\x2e\x32\x39\x20\x35\x39\ +\x32\x2e\x33\x30\x20\x4c\x20\x31\x33\x36\x2e\x39\x36\x20\x35\x39\ +\x39\x2e\x39\x30\x20\x4c\x20\x31\x34\x30\x2e\x31\x38\x20\x36\x30\ +\x37\x2e\x33\x30\x20\x4c\x20\x31\x34\x33\x2e\x39\x36\x20\x36\x31\ +\x34\x2e\x35\x37\x20\x4c\x20\x31\x34\x38\x2e\x33\x31\x20\x36\x32\ +\x31\x2e\x37\x32\x20\x4c\x20\x31\x35\x33\x2e\x31\x34\x20\x36\x32\ +\x38\x2e\x35\x36\x20\x4c\x20\x31\x35\x38\x2e\x33\x39\x20\x36\x33\ +\x34\x2e\x39\x39\x20\x4c\x20\x31\x36\x34\x2e\x30\x37\x20\x36\x34\ +\x31\x2e\x30\x33\x20\x4c\x20\x31\x36\x38\x2e\x36\x33\x20\x36\x34\ +\x35\x2e\x32\x38\x20\x4c\x20\x31\x37\x33\x2e\x33\x35\x20\x36\x34\ +\x39\x2e\x31\x36\x20\x4c\x20\x31\x37\x38\x2e\x32\x33\x20\x36\x35\ +\x32\x2e\x36\x39\x20\x4c\x20\x31\x38\x33\x2e\x32\x38\x20\x36\x35\ +\x35\x2e\x38\x36\x20\x4c\x20\x31\x38\x38\x2e\x35\x35\x20\x36\x35\ +\x38\x2e\x36\x37\x20\x4c\x20\x31\x39\x33\x2e\x39\x32\x20\x36\x36\ +\x30\x2e\x39\x39\x20\x4c\x20\x31\x39\x39\x2e\x33\x38\x20\x36\x36\ +\x32\x2e\x38\x34\x20\x4c\x20\x32\x30\x34\x2e\x39\x36\x20\x36\x36\ +\x34\x2e\x32\x33\x20\x4c\x20\x32\x31\x30\x2e\x36\x33\x20\x36\x36\ +\x35\x2e\x30\x39\x20\x4c\x20\x32\x31\x36\x2e\x33\x36\x20\x36\x36\ +\x35\x2e\x33\x37\x20\x4c\x20\x32\x32\x32\x2e\x31\x39\x20\x36\x36\ +\x35\x2e\x30\x36\x20\x4c\x20\x32\x32\x38\x2e\x31\x35\x20\x36\x36\ +\x34\x2e\x31\x36\x20\x4c\x20\x32\x33\x36\x2e\x33\x37\x20\x36\x36\ +\x32\x2e\x31\x36\x20\x4c\x20\x32\x34\x33\x2e\x34\x32\x20\x36\x35\ +\x39\x2e\x39\x33\x20\x4c\x20\x32\x34\x39\x2e\x34\x30\x20\x36\x35\ +\x37\x2e\x35\x30\x20\x4c\x20\x32\x35\x34\x2e\x34\x35\x20\x36\x35\ +\x34\x2e\x39\x30\x20\x4c\x20\x32\x35\x38\x2e\x36\x37\x20\x36\x35\ +\x32\x2e\x31\x35\x20\x4c\x20\x32\x36\x32\x2e\x31\x37\x20\x36\x34\ +\x39\x2e\x32\x36\x20\x4c\x20\x32\x36\x35\x2e\x30\x31\x20\x36\x34\ +\x36\x2e\x32\x34\x20\x4c\x20\x32\x36\x37\x2e\x32\x38\x20\x36\x34\ +\x33\x2e\x30\x36\x20\x4c\x20\x32\x36\x39\x2e\x30\x31\x20\x36\x33\ +\x39\x2e\x37\x33\x20\x4c\x20\x32\x37\x30\x2e\x32\x34\x20\x36\x33\ +\x36\x2e\x31\x39\x20\x4c\x20\x32\x37\x30\x2e\x39\x37\x20\x36\x33\ +\x32\x2e\x34\x32\x20\x4c\x20\x32\x37\x31\x2e\x31\x39\x20\x36\x32\ +\x38\x2e\x33\x36\x20\x4c\x20\x32\x37\x30\x2e\x38\x37\x20\x36\x32\ +\x33\x2e\x39\x37\x20\x4c\x20\x32\x36\x39\x2e\x39\x35\x20\x36\x31\ +\x39\x2e\x31\x38\x20\x4c\x20\x32\x36\x38\x2e\x33\x35\x20\x36\x31\ +\x33\x2e\x39\x35\x20\x4c\x20\x32\x36\x35\x2e\x39\x39\x20\x36\x30\ +\x38\x2e\x32\x30\x20\x4c\x20\x32\x36\x32\x2e\x37\x37\x20\x36\x30\ +\x31\x2e\x38\x39\x20\x4c\x20\x32\x35\x38\x2e\x35\x36\x20\x35\x39\ +\x34\x2e\x39\x33\x20\x4c\x20\x32\x35\x33\x2e\x32\x34\x20\x35\x38\ +\x37\x2e\x32\x38\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x62\x35\x61\x31\ +\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\ +\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\x3d\x22\ +\x35\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x32\x34\ +\xe5\xa4\x87\xe4\xbb\xbd\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\ +\x22\x33\x37\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\ +\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\ +\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x34\x34\ +\x2e\x31\x39\x38\x35\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x31\x34\x30\x2e\x38\x35\x35\x36\x35\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x31\x33\x30\x2e\x33\ +\x33\x38\x38\x37\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\ +\x35\x32\x31\x2e\x31\x37\x31\x37\x35\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\ +\x22\x4d\x20\x32\x32\x33\x2e\x37\x30\x20\x36\x31\x36\x2e\x31\x34\ +\x20\x4c\x20\x32\x31\x39\x2e\x33\x32\x20\x36\x30\x38\x2e\x34\x33\ +\x20\x4c\x20\x32\x31\x34\x2e\x39\x32\x20\x36\x30\x31\x2e\x37\x31\ +\x20\x4c\x20\x32\x31\x30\x2e\x35\x31\x20\x35\x39\x35\x2e\x39\x31\ +\x20\x4c\x20\x32\x30\x36\x2e\x31\x30\x20\x35\x39\x30\x2e\x39\x35\ +\x20\x4c\x20\x32\x30\x31\x2e\x36\x37\x20\x35\x38\x36\x2e\x37\x33\ +\x20\x4c\x20\x31\x39\x37\x2e\x32\x33\x20\x35\x38\x33\x2e\x32\x31\ +\x20\x4c\x20\x31\x39\x32\x2e\x37\x36\x20\x35\x38\x30\x2e\x33\x33\ +\x20\x4c\x20\x31\x38\x38\x2e\x32\x34\x20\x35\x37\x38\x2e\x30\x33\ +\x20\x4c\x20\x31\x38\x33\x2e\x36\x36\x20\x35\x37\x36\x2e\x32\x38\ +\x20\x4c\x20\x31\x37\x38\x2e\x39\x39\x20\x35\x37\x35\x2e\x30\x37\ +\x20\x4c\x20\x31\x37\x34\x2e\x32\x31\x20\x35\x37\x34\x2e\x33\x37\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\ +\x6c\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\ +\x64\x3d\x22\x36\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\ +\x2d\x34\x32\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x33\x38\ +\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x23\x63\x32\x36\x62\x36\ +\x62\x22\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\ +\x70\x3d\x22\x72\x6f\x75\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\ +\x68\x3d\x22\x31\x31\x2e\x30\x35\x32\x39\x37\x38\x35\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x34\x31\ +\x2e\x37\x37\x31\x37\x39\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x34\x39\x2e\x34\x38\x39\x37\x39\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x31\x37\x34\x2e\x32\x30\ +\x38\x34\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x35\x37\x34\x2e\x33\x37\ +\x32\x35\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\ +\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x32\x30\x36\ +\x2e\x30\x30\x20\x35\x39\x33\x2e\x33\x38\x20\x4c\x20\x32\x30\x31\ +\x2e\x32\x35\x20\x35\x39\x34\x2e\x36\x37\x20\x4c\x20\x31\x39\x37\ +\x2e\x30\x36\x20\x35\x39\x36\x2e\x33\x34\x20\x4c\x20\x31\x39\x33\ +\x2e\x33\x36\x20\x35\x39\x38\x2e\x33\x37\x20\x4c\x20\x31\x39\x30\ +\x2e\x31\x31\x20\x36\x30\x30\x2e\x37\x35\x20\x4c\x20\x31\x38\x37\ +\x2e\x32\x35\x20\x36\x30\x33\x2e\x35\x31\x20\x4c\x20\x31\x38\x34\ +\x2e\x37\x37\x20\x36\x30\x36\x2e\x36\x35\x20\x4c\x20\x31\x38\x32\ +\x2e\x36\x35\x20\x36\x31\x30\x2e\x32\x32\x20\x4c\x20\x31\x38\x30\ +\x2e\x39\x30\x20\x36\x31\x34\x2e\x32\x36\x22\x0d\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x6e\x6f\x6e\ +\x65\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\x3d\x22\x37\x22\x20\ +\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x34\x33\x22\x20\x6e\ +\x6f\x64\x65\x2d\x69\x64\x3d\x22\x33\x39\x22\x20\x73\x74\x72\x6f\ +\x6b\x65\x3d\x22\x23\x63\x32\x36\x62\x36\x62\x22\x20\x73\x74\x72\ +\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x22\x72\x6f\x75\ +\x6e\x64\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\ +\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x31\x2e\ +\x30\x35\x32\x39\x37\x38\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x30\x2e\x38\x37\x35\x33\x30\ +\x35\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\ +\x22\x32\x35\x2e\x31\x30\x31\x31\x36\x36\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x78\x3d\x22\x31\x38\x30\x2e\x38\x39\x36\x34\x35\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x79\x3d\x22\x35\x39\x33\x2e\x33\x38\x31\x39\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\x36\x34\x2e\x38\x38\x20\x32\ +\x32\x34\x2e\x33\x32\x20\x4c\x20\x34\x37\x34\x2e\x35\x30\x20\x32\ +\x32\x34\x2e\x33\x32\x20\x43\x20\x36\x31\x36\x2e\x33\x34\x20\x32\ +\x32\x34\x2e\x33\x32\x20\x37\x33\x31\x2e\x33\x32\x20\x33\x33\x39\ +\x2e\x33\x30\x20\x37\x33\x31\x2e\x33\x32\x20\x34\x38\x31\x2e\x31\ +\x34\x20\x43\x20\x37\x33\x31\x2e\x33\x32\x20\x34\x38\x32\x2e\x35\ +\x32\x20\x37\x33\x31\x2e\x33\x31\x20\x34\x38\x33\x2e\x39\x31\x20\ +\x37\x33\x31\x2e\x32\x39\x20\x34\x38\x35\x2e\x32\x39\x20\x4c\x20\ +\x37\x32\x39\x2e\x34\x32\x20\x36\x30\x30\x2e\x33\x34\x20\x43\x20\ +\x37\x32\x37\x2e\x32\x37\x20\x37\x33\x33\x2e\x37\x37\x20\x36\x32\ +\x33\x2e\x32\x38\x20\x38\x34\x33\x2e\x33\x31\x20\x34\x39\x30\x2e\ +\x31\x35\x20\x38\x35\x32\x2e\x34\x31\x20\x4c\x20\x34\x36\x36\x2e\ +\x36\x38\x20\x38\x35\x34\x2e\x30\x31\x20\x4c\x20\x34\x36\x36\x2e\ +\x36\x38\x20\x38\x35\x34\x2e\x30\x31\x20\x4c\x20\x34\x35\x31\x2e\ +\x34\x30\x20\x38\x35\x32\x2e\x39\x30\x20\x43\x20\x33\x32\x31\x2e\ +\x35\x34\x20\x38\x34\x33\x2e\x34\x35\x20\x32\x31\x39\x2e\x33\x31\ +\x20\x37\x33\x38\x2e\x33\x31\x20\x32\x31\x33\x2e\x34\x39\x20\x36\ +\x30\x38\x2e\x32\x34\x20\x4c\x20\x32\x30\x38\x2e\x33\x31\x20\x34\ +\x39\x32\x2e\x36\x32\x20\x43\x20\x32\x30\x31\x2e\x39\x37\x20\x33\ +\x35\x30\x2e\x39\x33\x20\x33\x31\x31\x2e\x37\x30\x20\x32\x33\x30\ +\x2e\x39\x32\x20\x34\x35\x33\x2e\x33\x39\x20\x32\x32\x34\x2e\x35\ +\x38\x20\x43\x20\x34\x35\x37\x2e\x32\x32\x20\x32\x32\x34\x2e\x34\ +\x30\x20\x34\x36\x31\x2e\x30\x35\x20\x32\x32\x34\x2e\x33\x32\x20\ +\x34\x36\x34\x2e\x38\x38\x20\x32\x32\x34\x2e\x33\x32\x20\x5a\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x66\x66\x63\x64\x62\x63\x22\x20\x66\x69\x6c\x6c\x2d\ +\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\ +\x64\x3d\x22\xe8\x92\x99\xe7\x89\x88\x22\x20\x6e\x6f\x64\x65\x2d\ +\x69\x64\x3d\x22\x34\x30\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\ +\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x36\x32\x39\x2e\x36\x39\x35\x32\x22\x0d\x0a\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x77\x69\x64\x74\x68\x3d\x22\x35\x32\x39\x2e\x33\x34\x37\x32\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x32\x30\x31\x2e\ +\x39\x37\x31\x33\x39\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\ +\x22\x32\x32\x34\x2e\x33\x31\x38\x34\x35\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\ +\x3d\x22\x4d\x20\x32\x35\x36\x2e\x39\x34\x20\x36\x32\x30\x2e\x31\ +\x33\x20\x43\x20\x32\x39\x30\x2e\x35\x34\x20\x36\x32\x30\x2e\x31\ +\x33\x20\x33\x31\x37\x2e\x37\x38\x20\x36\x34\x37\x2e\x33\x36\x20\ +\x33\x31\x37\x2e\x37\x38\x20\x36\x38\x30\x2e\x39\x36\x20\x43\x20\ +\x33\x31\x37\x2e\x37\x38\x20\x37\x31\x33\x2e\x38\x33\x20\x32\x39\ +\x31\x2e\x37\x31\x20\x37\x34\x30\x2e\x36\x31\x20\x32\x35\x39\x2e\ +\x31\x32\x20\x37\x34\x31\x2e\x37\x36\x20\x4c\x20\x32\x35\x38\x2e\ +\x30\x37\x20\x37\x34\x31\x2e\x37\x37\x20\x43\x20\x32\x33\x36\x2e\ +\x37\x37\x20\x37\x31\x30\x2e\x36\x37\x20\x32\x32\x32\x2e\x31\x34\ +\x20\x36\x37\x34\x2e\x36\x36\x20\x32\x31\x36\x2e\x32\x30\x20\x36\ +\x33\x35\x2e\x37\x39\x20\x43\x20\x32\x32\x36\x2e\x39\x38\x20\x36\ +\x32\x36\x2e\x30\x35\x20\x32\x34\x31\x2e\x32\x37\x20\x36\x32\x30\ +\x2e\x31\x33\x20\x32\x35\x36\x2e\x39\x34\x20\x36\x32\x30\x2e\x31\ +\x33\x20\x5a\x20\x4d\x20\x36\x38\x32\x2e\x37\x39\x20\x36\x31\x32\ +\x2e\x35\x32\x20\x43\x20\x37\x30\x30\x2e\x32\x31\x20\x36\x31\x32\ +\x2e\x35\x32\x20\x37\x31\x35\x2e\x39\x33\x20\x36\x31\x39\x2e\x38\ +\x35\x20\x37\x32\x37\x2e\x30\x32\x20\x36\x33\x31\x2e\x35\x39\x20\ +\x43\x20\x37\x32\x31\x2e\x38\x39\x20\x36\x36\x38\x2e\x37\x36\x20\ +\x37\x30\x38\x2e\x38\x30\x20\x37\x30\x33\x2e\x34\x35\x20\x36\x38\ +\x39\x2e\x34\x38\x20\x37\x33\x33\x2e\x38\x33\x20\x43\x20\x36\x38\ +\x37\x2e\x32\x38\x20\x37\x33\x34\x2e\x30\x37\x20\x36\x38\x35\x2e\ +\x30\x35\x20\x37\x33\x34\x2e\x31\x39\x20\x36\x38\x32\x2e\x37\x39\ +\x20\x37\x33\x34\x2e\x31\x39\x20\x43\x20\x36\x34\x39\x2e\x31\x39\ +\x20\x37\x33\x34\x2e\x31\x39\x20\x36\x32\x31\x2e\x39\x35\x20\x37\ +\x30\x36\x2e\x39\x36\x20\x36\x32\x31\x2e\x39\x35\x20\x36\x37\x33\ +\x2e\x33\x36\x20\x43\x20\x36\x32\x31\x2e\x39\x35\x20\x36\x33\x39\ +\x2e\x37\x36\x20\x36\x34\x39\x2e\x31\x39\x20\x36\x31\x32\x2e\x35\ +\x32\x20\x36\x38\x32\x2e\x37\x39\x20\x36\x31\x32\x2e\x35\x32\x20\ +\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x66\x66\x62\x35\x61\x31\x22\x20\x66\x69\x6c\ +\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x34\x33\x38\ +\x31\x35\x31\x30\x33\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\ +\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\ +\x2d\x69\x64\x3d\x22\x38\x22\x20\x69\x64\x3d\x22\xe5\xbd\xa2\xe7\ +\x8a\xb6\xe7\xbb\x93\xe5\x90\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\ +\x64\x3d\x22\x34\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\ +\x32\x39\x2e\x32\x35\x30\x38\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x77\x69\x64\x74\x68\x3d\x22\x35\x31\x30\x2e\x38\x31\x38\x34\x38\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x32\x31\x36\x2e\ +\x32\x30\x30\x32\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x36\x31\x32\x2e\ +\x35\x32\x32\x34\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x31\ +\x38\x34\x2e\x36\x32\x20\x33\x39\x30\x2e\x38\x34\x20\x43\x20\x31\ +\x37\x30\x2e\x33\x31\x20\x34\x32\x36\x2e\x32\x39\x20\x31\x37\x30\ +\x2e\x33\x31\x20\x34\x35\x38\x2e\x37\x36\x20\x31\x38\x34\x2e\x36\ +\x32\x20\x34\x38\x38\x2e\x32\x35\x20\x43\x20\x32\x30\x36\x2e\x30\ +\x37\x20\x35\x33\x32\x2e\x34\x38\x20\x32\x37\x36\x2e\x32\x35\x20\ +\x35\x30\x33\x2e\x32\x35\x20\x33\x30\x38\x2e\x32\x31\x20\x34\x37\ +\x37\x2e\x32\x39\x20\x43\x20\x33\x36\x34\x2e\x34\x39\x20\x34\x39\ +\x34\x2e\x34\x38\x20\x34\x30\x38\x2e\x37\x34\x20\x34\x38\x37\x2e\ +\x39\x34\x20\x34\x34\x30\x2e\x39\x37\x20\x34\x35\x37\x2e\x36\x37\ +\x20\x43\x20\x34\x38\x30\x2e\x32\x34\x20\x34\x38\x31\x2e\x31\x31\ +\x20\x35\x32\x31\x2e\x30\x30\x20\x34\x38\x37\x2e\x36\x32\x20\x35\ +\x36\x33\x2e\x32\x35\x20\x34\x37\x37\x2e\x32\x31\x20\x43\x20\x36\ +\x30\x32\x2e\x31\x34\x20\x34\x39\x38\x2e\x34\x33\x20\x36\x34\x32\ +\x2e\x35\x35\x20\x34\x39\x39\x2e\x35\x33\x20\x36\x38\x34\x2e\x34\ +\x37\x20\x34\x38\x30\x2e\x35\x32\x20\x43\x20\x37\x30\x32\x2e\x38\ +\x30\x20\x35\x32\x30\x2e\x37\x32\x20\x37\x32\x31\x2e\x35\x37\x20\ +\x35\x33\x31\x2e\x35\x30\x20\x37\x34\x30\x2e\x37\x37\x20\x35\x31\ +\x32\x2e\x38\x36\x20\x43\x20\x37\x35\x35\x2e\x37\x30\x20\x34\x39\ +\x32\x2e\x36\x31\x20\x37\x35\x39\x2e\x36\x37\x20\x34\x35\x32\x2e\ +\x38\x35\x20\x37\x35\x32\x2e\x36\x37\x20\x33\x39\x33\x2e\x35\x38\ +\x20\x43\x20\x36\x31\x37\x2e\x32\x32\x20\x32\x36\x38\x2e\x38\x38\ +\x20\x35\x31\x37\x2e\x34\x31\x20\x32\x30\x36\x2e\x32\x39\x20\x34\ +\x35\x33\x2e\x32\x35\x20\x32\x30\x35\x2e\x37\x39\x20\x43\x20\x33\ +\x38\x39\x2e\x30\x39\x20\x32\x30\x35\x2e\x32\x38\x20\x33\x30\x35\ +\x2e\x38\x34\x20\x32\x36\x36\x2e\x34\x35\x20\x32\x30\x33\x2e\x35\ +\x30\x20\x33\x38\x39\x2e\x32\x38\x20\x4c\x20\x31\x38\x34\x2e\x36\ +\x32\x20\x33\x39\x30\x2e\x38\x34\x20\x5a\x22\x0d\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x33\x38\ +\x32\x32\x32\x32\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\ +\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\x3d\x22\xe8\x92\ +\x99\xe7\x89\x88\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x34\ +\x32\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x33\x32\x37\x2e\x31\x39\x38\x31\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x38\x39\x2e\x33\x35\x39\x31\x22\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x78\x3d\x22\x31\x37\x30\x2e\x33\x31\x30\x31\x32\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x32\x30\x35\x2e\ +\x32\x38\x33\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x36\x39\ +\x30\x2e\x36\x30\x20\x34\x35\x36\x2e\x31\x32\x20\x43\x20\x37\x30\ +\x34\x2e\x38\x34\x20\x34\x39\x31\x2e\x35\x32\x20\x37\x31\x38\x2e\ +\x36\x35\x20\x35\x31\x32\x2e\x35\x39\x20\x37\x33\x32\x2e\x30\x32\ +\x20\x35\x31\x39\x2e\x33\x34\x20\x43\x20\x37\x31\x35\x2e\x38\x36\ +\x20\x35\x32\x37\x2e\x35\x33\x20\x37\x30\x30\x2e\x30\x31\x20\x35\ +\x31\x34\x2e\x36\x30\x20\x36\x38\x34\x2e\x34\x37\x20\x34\x38\x30\ +\x2e\x35\x32\x20\x43\x20\x36\x34\x32\x2e\x35\x35\x20\x34\x39\x39\ +\x2e\x35\x33\x20\x36\x30\x32\x2e\x31\x34\x20\x34\x39\x38\x2e\x34\ +\x33\x20\x35\x36\x33\x2e\x32\x35\x20\x34\x37\x37\x2e\x32\x31\x20\ +\x43\x20\x35\x32\x36\x2e\x33\x31\x20\x34\x38\x36\x2e\x33\x31\x20\ +\x34\x39\x30\x2e\x35\x31\x20\x34\x38\x32\x2e\x34\x38\x20\x34\x35\ +\x35\x2e\x38\x35\x20\x34\x36\x35\x2e\x37\x31\x20\x4c\x20\x34\x34\ +\x38\x2e\x31\x39\x20\x34\x35\x36\x2e\x31\x32\x20\x43\x20\x34\x39\ +\x31\x2e\x30\x38\x20\x34\x36\x39\x2e\x34\x39\x20\x35\x33\x32\x2e\ +\x30\x33\x20\x34\x37\x31\x2e\x39\x38\x20\x35\x37\x31\x2e\x30\x32\ +\x20\x34\x36\x33\x2e\x35\x38\x20\x43\x20\x36\x30\x39\x2e\x34\x39\ +\x20\x34\x38\x39\x2e\x35\x36\x20\x36\x34\x39\x2e\x33\x35\x20\x34\ +\x38\x37\x2e\x30\x37\x20\x36\x39\x30\x2e\x36\x30\x20\x34\x35\x36\ +\x2e\x31\x32\x20\x5a\x20\x4d\x20\x32\x38\x32\x2e\x30\x33\x20\x34\ +\x36\x33\x2e\x35\x38\x20\x4c\x20\x33\x30\x37\x2e\x38\x33\x20\x34\ +\x37\x37\x2e\x35\x39\x20\x43\x20\x33\x30\x31\x2e\x31\x35\x20\x34\ +\x38\x32\x2e\x39\x38\x20\x32\x39\x32\x2e\x38\x33\x20\x34\x38\x38\ +\x2e\x34\x39\x20\x32\x38\x33\x2e\x36\x37\x20\x34\x39\x33\x2e\x34\ +\x35\x20\x4c\x20\x32\x37\x39\x2e\x30\x32\x20\x34\x39\x35\x2e\x38\ +\x38\x20\x43\x20\x32\x35\x30\x2e\x37\x33\x20\x35\x31\x30\x2e\x31\ +\x34\x20\x32\x31\x35\x2e\x39\x33\x20\x35\x31\x38\x2e\x33\x38\x20\ +\x31\x39\x35\x2e\x35\x31\x20\x35\x30\x32\x2e\x31\x34\x20\x43\x20\ +\x32\x32\x33\x2e\x36\x32\x20\x35\x31\x35\x2e\x31\x31\x20\x32\x35\ +\x31\x2e\x38\x30\x20\x35\x30\x33\x2e\x31\x33\x20\x32\x38\x30\x2e\ +\x30\x36\x20\x34\x36\x36\x2e\x32\x30\x20\x4c\x20\x32\x38\x32\x2e\ +\x30\x33\x20\x34\x36\x33\x2e\x35\x38\x20\x5a\x20\x4d\x20\x35\x36\ +\x32\x2e\x31\x32\x20\x32\x36\x36\x2e\x36\x31\x20\x43\x20\x35\x36\ +\x33\x2e\x32\x33\x20\x32\x36\x36\x2e\x36\x31\x20\x35\x36\x34\x2e\ +\x31\x39\x20\x32\x36\x37\x2e\x38\x34\x20\x35\x36\x35\x2e\x30\x32\ +\x20\x32\x37\x30\x2e\x33\x32\x20\x4c\x20\x35\x36\x35\x2e\x35\x30\ +\x20\x32\x37\x31\x2e\x39\x35\x20\x4c\x20\x35\x36\x35\x2e\x35\x30\ +\x20\x32\x37\x31\x2e\x39\x35\x20\x4c\x20\x35\x36\x35\x2e\x39\x35\ +\x20\x32\x37\x33\x2e\x38\x38\x20\x4c\x20\x35\x36\x35\x2e\x39\x35\ +\x20\x32\x37\x33\x2e\x38\x38\x20\x4c\x20\x35\x36\x36\x2e\x33\x37\ +\x20\x32\x37\x36\x2e\x31\x31\x20\x4c\x20\x35\x36\x36\x2e\x33\x37\ +\x20\x32\x37\x36\x2e\x31\x31\x20\x4c\x20\x35\x36\x36\x2e\x37\x35\ +\x20\x32\x37\x38\x2e\x36\x33\x20\x4c\x20\x35\x36\x36\x2e\x37\x35\ +\x20\x32\x37\x38\x2e\x36\x33\x20\x4c\x20\x35\x36\x37\x2e\x31\x31\ +\x20\x32\x38\x31\x2e\x34\x35\x20\x4c\x20\x35\x36\x37\x2e\x31\x31\ +\x20\x32\x38\x31\x2e\x34\x35\x20\x4c\x20\x35\x36\x37\x2e\x34\x33\ +\x20\x32\x38\x34\x2e\x35\x37\x20\x4c\x20\x35\x36\x37\x2e\x34\x33\ +\x20\x32\x38\x34\x2e\x35\x37\x20\x4c\x20\x35\x36\x37\x2e\x37\x31\ +\x20\x32\x38\x37\x2e\x39\x38\x20\x4c\x20\x35\x36\x37\x2e\x37\x31\ +\x20\x32\x38\x37\x2e\x39\x38\x20\x4c\x20\x35\x36\x38\x2e\x30\x38\ +\x20\x32\x39\x33\x2e\x36\x36\x20\x4c\x20\x35\x36\x38\x2e\x30\x38\ +\x20\x32\x39\x33\x2e\x36\x36\x20\x4c\x20\x35\x36\x38\x2e\x32\x39\ +\x20\x32\x39\x37\x2e\x38\x32\x20\x4c\x20\x35\x36\x38\x2e\x32\x39\ +\x20\x32\x39\x37\x2e\x38\x32\x20\x4c\x20\x35\x36\x38\x2e\x35\x33\ +\x20\x33\x30\x34\x2e\x36\x31\x20\x4c\x20\x35\x36\x38\x2e\x35\x33\ +\x20\x33\x30\x34\x2e\x36\x31\x20\x4c\x20\x35\x36\x38\x2e\x36\x36\ +\x20\x33\x30\x39\x2e\x35\x31\x20\x4c\x20\x35\x36\x38\x2e\x36\x36\ +\x20\x33\x30\x39\x2e\x35\x31\x20\x4c\x20\x35\x36\x38\x2e\x38\x31\ +\x20\x33\x32\x30\x2e\x32\x30\x20\x4c\x20\x35\x36\x38\x2e\x38\x31\ +\x20\x33\x32\x30\x2e\x32\x30\x20\x4c\x20\x35\x36\x38\x2e\x38\x34\ +\x20\x33\x32\x39\x2e\x30\x30\x20\x4c\x20\x35\x36\x38\x2e\x38\x34\ +\x20\x33\x32\x39\x2e\x30\x30\x20\x4c\x20\x35\x36\x38\x2e\x37\x39\ +\x20\x33\x33\x38\x2e\x34\x36\x20\x4c\x20\x35\x36\x38\x2e\x37\x39\ +\x20\x33\x33\x38\x2e\x34\x36\x20\x4c\x20\x35\x36\x38\x2e\x36\x31\ +\x20\x33\x35\x32\x2e\x31\x32\x20\x4c\x20\x35\x36\x38\x2e\x36\x31\ +\x20\x33\x35\x32\x2e\x31\x32\x20\x4c\x20\x35\x36\x38\x2e\x34\x30\ +\x20\x33\x36\x33\x2e\x31\x34\x20\x4c\x20\x35\x36\x38\x2e\x34\x30\ +\x20\x33\x36\x33\x2e\x31\x34\x20\x4c\x20\x35\x36\x38\x2e\x31\x31\ +\x20\x33\x37\x34\x2e\x38\x33\x20\x4c\x20\x35\x36\x38\x2e\x31\x31\ +\x20\x33\x37\x34\x2e\x38\x33\x20\x43\x20\x35\x34\x34\x2e\x34\x31\ +\x20\x33\x34\x34\x2e\x35\x32\x20\x35\x30\x34\x2e\x34\x34\x20\x33\ +\x32\x39\x2e\x33\x36\x20\x34\x34\x38\x2e\x31\x39\x20\x33\x32\x39\ +\x2e\x33\x36\x20\x43\x20\x33\x39\x32\x2e\x38\x32\x20\x33\x32\x39\ +\x2e\x33\x36\x20\x33\x37\x30\x2e\x32\x39\x20\x33\x36\x35\x2e\x34\ +\x31\x20\x33\x38\x30\x2e\x35\x39\x20\x34\x33\x37\x2e\x34\x39\x20\ +\x4c\x20\x33\x38\x31\x2e\x31\x30\x20\x34\x34\x30\x2e\x39\x35\x20\ +\x4c\x20\x33\x30\x30\x2e\x39\x38\x20\x34\x35\x30\x2e\x39\x38\x20\ +\x4c\x20\x33\x31\x33\x2e\x39\x39\x20\x33\x32\x36\x2e\x33\x36\x20\ +\x4c\x20\x33\x31\x33\x2e\x39\x39\x20\x33\x32\x36\x2e\x33\x36\x20\ +\x4c\x20\x33\x31\x37\x2e\x33\x36\x20\x32\x39\x31\x2e\x36\x37\x20\ +\x4c\x20\x33\x31\x37\x2e\x33\x36\x20\x32\x39\x31\x2e\x36\x37\x20\ +\x4c\x20\x33\x31\x37\x2e\x39\x36\x20\x32\x38\x34\x2e\x35\x32\x20\ +\x4c\x20\x33\x31\x37\x2e\x39\x36\x20\x32\x38\x34\x2e\x35\x32\x20\ +\x4c\x20\x33\x31\x38\x2e\x31\x35\x20\x32\x38\x31\x2e\x32\x32\x20\ +\x43\x20\x33\x31\x38\x2e\x31\x35\x20\x32\x38\x31\x2e\x31\x30\x20\ +\x33\x31\x38\x2e\x31\x36\x20\x32\x38\x31\x2e\x30\x31\x20\x33\x31\ +\x38\x2e\x31\x36\x20\x32\x38\x30\x2e\x39\x32\x20\x43\x20\x33\x31\ +\x38\x2e\x31\x36\x20\x32\x38\x30\x2e\x34\x30\x20\x33\x31\x39\x2e\ +\x30\x34\x20\x32\x37\x39\x2e\x38\x39\x20\x33\x32\x30\x2e\x37\x30\ +\x20\x32\x37\x39\x2e\x34\x30\x20\x4c\x20\x33\x32\x32\x2e\x33\x30\ +\x20\x32\x37\x38\x2e\x39\x37\x20\x43\x20\x33\x32\x32\x2e\x36\x30\ +\x20\x32\x37\x38\x2e\x39\x30\x20\x33\x32\x32\x2e\x39\x32\x20\x32\ +\x37\x38\x2e\x38\x33\x20\x33\x32\x33\x2e\x32\x35\x20\x32\x37\x38\ +\x2e\x37\x36\x20\x4c\x20\x33\x32\x35\x2e\x34\x30\x20\x32\x37\x38\ +\x2e\x33\x35\x20\x4c\x20\x33\x32\x35\x2e\x34\x30\x20\x32\x37\x38\ +\x2e\x33\x35\x20\x4c\x20\x33\x32\x39\x2e\x32\x36\x20\x32\x37\x37\ +\x2e\x37\x33\x20\x4c\x20\x33\x32\x39\x2e\x32\x36\x20\x32\x37\x37\ +\x2e\x37\x33\x20\x4c\x20\x33\x33\x33\x2e\x38\x35\x20\x32\x37\x37\ +\x2e\x31\x33\x20\x4c\x20\x33\x33\x33\x2e\x38\x35\x20\x32\x37\x37\ +\x2e\x31\x33\x20\x4c\x20\x33\x34\x31\x2e\x30\x30\x20\x32\x37\x36\ +\x2e\x33\x35\x20\x4c\x20\x33\x34\x31\x2e\x30\x30\x20\x32\x37\x36\ +\x2e\x33\x35\x20\x4c\x20\x33\x35\x31\x2e\x34\x33\x20\x32\x37\x35\ +\x2e\x34\x30\x20\x4c\x20\x33\x35\x31\x2e\x34\x33\x20\x32\x37\x35\ +\x2e\x34\x30\x20\x4c\x20\x33\x36\x38\x2e\x34\x33\x20\x32\x37\x34\ +\x2e\x31\x35\x20\x4c\x20\x33\x36\x38\x2e\x34\x33\x20\x32\x37\x34\ +\x2e\x31\x35\x20\x4c\x20\x33\x38\x34\x2e\x37\x37\x20\x32\x37\x33\ +\x2e\x31\x34\x20\x4c\x20\x33\x38\x34\x2e\x37\x37\x20\x32\x37\x33\ +\x2e\x31\x34\x20\x4c\x20\x34\x31\x31\x2e\x34\x34\x20\x32\x37\x31\ +\x2e\x37\x33\x20\x4c\x20\x34\x31\x31\x2e\x34\x34\x20\x32\x37\x31\ +\x2e\x37\x33\x20\x4c\x20\x34\x32\x36\x2e\x39\x34\x20\x32\x37\x31\ +\x2e\x30\x32\x20\x4c\x20\x34\x32\x36\x2e\x39\x34\x20\x32\x37\x31\ +\x2e\x30\x32\x20\x4c\x20\x34\x36\x31\x2e\x39\x37\x20\x32\x36\x39\ +\x2e\x35\x39\x20\x4c\x20\x34\x36\x31\x2e\x39\x37\x20\x32\x36\x39\ +\x2e\x35\x39\x20\x4c\x20\x35\x31\x37\x2e\x37\x30\x20\x32\x36\x37\ +\x2e\x37\x33\x20\x4c\x20\x35\x31\x37\x2e\x37\x30\x20\x32\x36\x37\ +\x2e\x37\x33\x20\x4c\x20\x35\x36\x31\x2e\x32\x31\x20\x32\x36\x36\ +\x2e\x36\x31\x20\x4c\x20\x35\x36\x31\x2e\x32\x31\x20\x32\x36\x36\ +\x2e\x36\x31\x20\x4c\x20\x35\x36\x32\x2e\x31\x32\x20\x32\x36\x36\ +\x2e\x36\x31\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x32\x32\x31\x30\x31\x30\x22\ +\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\ +\x6f\x64\x64\x22\x20\x69\x64\x3d\x22\xe5\xbd\xa2\xe7\x8a\xb6\x22\ +\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x34\x33\x22\x20\x73\x74\ +\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x36\x30\x2e\x39\ +\x32\x39\x38\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x35\ +\x33\x36\x2e\x35\x31\x38\x37\x34\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x78\x3d\x22\x31\x39\x35\x2e\x35\x30\x36\x32\x33\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x32\x36\x36\x2e\x36\x30\x35\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\x38\x30\x2e\x37\x30\ +\x20\x39\x33\x2e\x30\x39\x20\x43\x20\x34\x39\x35\x2e\x30\x31\x20\ +\x39\x33\x2e\x30\x39\x20\x35\x30\x37\x2e\x31\x36\x20\x31\x30\x33\ +\x2e\x33\x37\x20\x35\x31\x31\x2e\x35\x30\x20\x31\x31\x37\x2e\x36\ +\x34\x20\x43\x20\x36\x38\x36\x2e\x31\x38\x20\x31\x34\x31\x2e\x31\ +\x31\x20\x37\x36\x39\x2e\x31\x34\x20\x32\x34\x38\x2e\x30\x39\x20\ +\x37\x36\x30\x2e\x34\x31\x20\x34\x33\x38\x2e\x35\x37\x20\x43\x20\ +\x36\x38\x30\x2e\x39\x33\x20\x34\x35\x35\x2e\x32\x35\x20\x35\x38\ +\x30\x2e\x37\x35\x20\x34\x36\x33\x2e\x35\x38\x20\x34\x35\x39\x2e\ +\x38\x38\x20\x34\x36\x33\x2e\x35\x38\x20\x43\x20\x33\x33\x39\x2e\ +\x30\x30\x20\x34\x36\x33\x2e\x35\x38\x20\x32\x34\x33\x2e\x36\x37\ +\x20\x34\x35\x38\x2e\x35\x34\x20\x31\x37\x33\x2e\x38\x39\x20\x34\ +\x34\x38\x2e\x34\x34\x20\x43\x20\x31\x36\x36\x2e\x31\x36\x20\x32\ +\x33\x35\x2e\x32\x36\x20\x32\x35\x38\x2e\x33\x37\x20\x31\x32\x34\ +\x2e\x33\x37\x20\x34\x35\x30\x2e\x35\x31\x20\x31\x31\x35\x2e\x37\ +\x36\x20\x4c\x20\x34\x35\x30\x2e\x35\x32\x20\x31\x31\x35\x2e\x37\ +\x37\x20\x43\x20\x34\x35\x35\x2e\x33\x31\x20\x31\x30\x32\x2e\x34\ +\x38\x20\x34\x36\x37\x2e\x30\x32\x20\x39\x33\x2e\x30\x39\x20\x34\ +\x38\x30\x2e\x37\x30\x20\x39\x33\x2e\x30\x39\x20\x5a\x20\x4d\x20\ +\x34\x35\x39\x2e\x38\x38\x20\x33\x30\x32\x2e\x35\x34\x20\x43\x20\ +\x33\x37\x34\x2e\x34\x31\x20\x33\x30\x33\x2e\x38\x39\x20\x33\x33\ +\x34\x2e\x30\x34\x20\x33\x34\x36\x2e\x35\x31\x20\x33\x33\x38\x2e\ +\x37\x36\x20\x34\x33\x30\x2e\x34\x31\x20\x43\x20\x34\x31\x37\x2e\ +\x34\x39\x20\x34\x34\x32\x2e\x33\x31\x20\x34\x39\x32\x2e\x35\x30\ +\x20\x34\x34\x32\x2e\x33\x31\x20\x35\x36\x33\x2e\x37\x38\x20\x34\ +\x33\x30\x2e\x34\x31\x20\x43\x20\x35\x38\x32\x2e\x39\x31\x20\x34\ +\x30\x30\x2e\x39\x31\x20\x35\x34\x34\x2e\x38\x35\x20\x33\x30\x32\ +\x2e\x33\x31\x20\x34\x35\x39\x2e\x38\x38\x20\x33\x30\x32\x2e\x35\ +\x34\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x66\x66\x63\x36\x33\x31\x22\x20\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\ +\x64\x22\x20\x69\x64\x3d\x22\xe8\x92\x99\xe7\x89\x88\x22\x20\x6e\ +\x6f\x64\x65\x2d\x69\x64\x3d\x22\x34\x34\x22\x20\x73\x74\x72\x6f\ +\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x37\x30\x2e\x34\x39\x32\ +\x36\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\ +\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x36\x30\x32\x2e\ +\x39\x38\x30\x32\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\ +\x31\x36\x36\x2e\x31\x36\x31\x31\x33\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x79\x3d\x22\x39\x33\x2e\x30\x39\x30\x39\x31\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x20\x35\x31\x38\x2e\x30\x38\x20\x31\x31\ +\x39\x2e\x39\x36\x20\x4c\x20\x35\x31\x34\x2e\x31\x32\x20\x31\x31\ +\x38\x2e\x30\x30\x20\x4c\x20\x35\x32\x31\x2e\x38\x37\x20\x31\x31\ +\x39\x2e\x31\x35\x20\x43\x20\x36\x38\x39\x2e\x34\x36\x20\x31\x34\ +\x35\x2e\x34\x32\x20\x37\x36\x38\x2e\x39\x37\x20\x32\x35\x31\x2e\ +\x38\x39\x20\x37\x36\x30\x2e\x34\x31\x20\x34\x33\x38\x2e\x35\x37\ +\x20\x43\x20\x36\x38\x37\x2e\x30\x34\x20\x34\x35\x33\x2e\x39\x36\ +\x20\x35\x39\x36\x2e\x30\x34\x20\x34\x36\x32\x2e\x32\x35\x20\x34\ +\x38\x37\x2e\x34\x30\x20\x34\x36\x33\x2e\x34\x34\x20\x4c\x20\x34\ +\x36\x39\x2e\x31\x33\x20\x34\x36\x33\x2e\x35\x37\x20\x43\x20\x34\ +\x36\x36\x2e\x30\x36\x20\x34\x36\x33\x2e\x35\x38\x20\x34\x36\x32\ +\x2e\x39\x38\x20\x34\x36\x33\x2e\x35\x38\x20\x34\x35\x39\x2e\x38\ +\x38\x20\x34\x36\x33\x2e\x35\x38\x20\x4c\x20\x34\x33\x39\x2e\x37\ +\x31\x20\x34\x36\x33\x2e\x35\x34\x20\x43\x20\x34\x33\x33\x2e\x30\ +\x36\x20\x34\x36\x33\x2e\x35\x30\x20\x34\x32\x36\x2e\x35\x30\x20\ +\x34\x36\x33\x2e\x34\x36\x20\x34\x32\x30\x2e\x30\x32\x20\x34\x36\ +\x33\x2e\x33\x39\x20\x4c\x20\x34\x30\x30\x2e\x38\x32\x20\x34\x36\ +\x33\x2e\x31\x35\x20\x4c\x20\x34\x30\x30\x2e\x38\x32\x20\x34\x36\ +\x33\x2e\x31\x35\x20\x4c\x20\x33\x38\x32\x2e\x31\x31\x20\x34\x36\ +\x32\x2e\x38\x32\x20\x4c\x20\x33\x38\x32\x2e\x31\x31\x20\x34\x36\ +\x32\x2e\x38\x32\x20\x4c\x20\x33\x36\x33\x2e\x38\x38\x20\x34\x36\ +\x32\x2e\x33\x38\x20\x43\x20\x33\x36\x30\x2e\x38\x39\x20\x34\x36\ +\x32\x2e\x33\x30\x20\x33\x35\x37\x2e\x39\x31\x20\x34\x36\x32\x2e\ +\x32\x32\x20\x33\x35\x34\x2e\x39\x35\x20\x34\x36\x32\x2e\x31\x33\ +\x20\x4c\x20\x33\x33\x37\x2e\x34\x35\x20\x34\x36\x31\x2e\x35\x36\ +\x20\x4c\x20\x33\x33\x37\x2e\x34\x35\x20\x34\x36\x31\x2e\x35\x36\ +\x20\x4c\x20\x33\x32\x30\x2e\x34\x34\x20\x34\x36\x30\x2e\x38\x38\ +\x20\x4c\x20\x33\x32\x30\x2e\x34\x34\x20\x34\x36\x30\x2e\x38\x38\ +\x20\x43\x20\x33\x32\x36\x2e\x30\x34\x20\x34\x34\x36\x2e\x31\x38\ +\x20\x33\x33\x32\x2e\x30\x35\x20\x34\x33\x32\x2e\x36\x34\x20\x33\ +\x33\x38\x2e\x33\x39\x20\x34\x32\x30\x2e\x31\x36\x20\x43\x20\x33\ +\x33\x38\x2e\x34\x34\x20\x34\x32\x33\x2e\x35\x31\x20\x33\x33\x38\ +\x2e\x35\x36\x20\x34\x32\x36\x2e\x39\x32\x20\x33\x33\x38\x2e\x37\ +\x36\x20\x34\x33\x30\x2e\x34\x31\x20\x43\x20\x34\x31\x37\x2e\x34\ +\x39\x20\x34\x34\x32\x2e\x33\x31\x20\x34\x39\x32\x2e\x35\x30\x20\ +\x34\x34\x32\x2e\x33\x31\x20\x35\x36\x33\x2e\x37\x38\x20\x34\x33\ +\x30\x2e\x34\x31\x20\x43\x20\x35\x38\x32\x2e\x39\x31\x20\x34\x30\ +\x30\x2e\x39\x31\x20\x35\x34\x34\x2e\x38\x35\x20\x33\x30\x32\x2e\ +\x33\x31\x20\x34\x35\x39\x2e\x38\x38\x20\x33\x30\x32\x2e\x35\x34\ +\x20\x43\x20\x34\x35\x33\x2e\x30\x33\x20\x33\x30\x32\x2e\x36\x35\ +\x20\x34\x34\x36\x2e\x34\x38\x20\x33\x30\x33\x2e\x30\x32\x20\x34\ +\x34\x30\x2e\x32\x31\x20\x33\x30\x33\x2e\x36\x36\x20\x43\x20\x34\ +\x36\x32\x2e\x38\x35\x20\x32\x38\x38\x2e\x39\x32\x20\x34\x38\x35\ +\x2e\x34\x37\x20\x32\x37\x38\x2e\x37\x33\x20\x35\x30\x36\x2e\x33\ +\x35\x20\x32\x37\x30\x2e\x34\x39\x20\x4c\x20\x35\x31\x34\x2e\x36\ +\x30\x20\x32\x36\x37\x2e\x32\x39\x20\x4c\x20\x35\x31\x34\x2e\x36\ +\x30\x20\x32\x36\x37\x2e\x32\x39\x20\x4c\x20\x35\x32\x32\x2e\x36\ +\x35\x20\x32\x36\x34\x2e\x32\x37\x20\x4c\x20\x35\x32\x32\x2e\x36\ +\x35\x20\x32\x36\x34\x2e\x32\x37\x20\x4c\x20\x35\x34\x31\x2e\x36\ +\x38\x20\x32\x35\x37\x2e\x32\x31\x20\x4c\x20\x35\x34\x31\x2e\x36\ +\x38\x20\x32\x35\x37\x2e\x32\x31\x20\x4c\x20\x35\x34\x38\x2e\x38\ +\x30\x20\x32\x35\x34\x2e\x35\x30\x20\x43\x20\x35\x35\x36\x2e\x39\ +\x32\x20\x32\x35\x31\x2e\x33\x34\x20\x35\x36\x34\x2e\x33\x39\x20\ +\x32\x34\x38\x2e\x31\x39\x20\x35\x37\x31\x2e\x30\x32\x20\x32\x34\ +\x34\x2e\x38\x30\x20\x43\x20\x36\x31\x34\x2e\x36\x33\x20\x32\x32\ +\x32\x2e\x34\x39\x20\x36\x30\x39\x2e\x30\x33\x20\x31\x39\x30\x2e\ +\x34\x33\x20\x35\x37\x38\x2e\x30\x38\x20\x31\x36\x30\x2e\x35\x32\ +\x20\x4c\x20\x35\x37\x35\x2e\x30\x31\x20\x31\x35\x37\x2e\x36\x33\ +\x20\x43\x20\x35\x37\x33\x2e\x39\x36\x20\x31\x35\x36\x2e\x36\x37\ +\x20\x35\x37\x32\x2e\x38\x39\x20\x31\x35\x35\x2e\x37\x32\x20\x35\ +\x37\x31\x2e\x37\x38\x20\x31\x35\x34\x2e\x37\x36\x20\x4c\x20\x35\ +\x36\x38\x2e\x34\x31\x20\x31\x35\x31\x2e\x39\x31\x20\x43\x20\x35\ +\x36\x37\x2e\x38\x34\x20\x31\x35\x31\x2e\x34\x33\x20\x35\x36\x37\ +\x2e\x32\x36\x20\x31\x35\x30\x2e\x39\x36\x20\x35\x36\x36\x2e\x36\ +\x37\x20\x31\x35\x30\x2e\x34\x39\x20\x4c\x20\x35\x36\x33\x2e\x30\ +\x38\x20\x31\x34\x37\x2e\x36\x37\x20\x4c\x20\x35\x36\x33\x2e\x30\ +\x38\x20\x31\x34\x37\x2e\x36\x37\x20\x4c\x20\x35\x35\x39\x2e\x33\ +\x36\x20\x31\x34\x34\x2e\x38\x37\x20\x4c\x20\x35\x35\x39\x2e\x33\ +\x36\x20\x31\x34\x34\x2e\x38\x37\x20\x4c\x20\x35\x35\x35\x2e\x35\ +\x30\x20\x31\x34\x32\x2e\x31\x30\x20\x43\x20\x35\x35\x34\x2e\x38\ +\x34\x20\x31\x34\x31\x2e\x36\x34\x20\x35\x35\x34\x2e\x31\x39\x20\ +\x31\x34\x31\x2e\x31\x38\x20\x35\x35\x33\x2e\x35\x32\x20\x31\x34\ +\x30\x2e\x37\x32\x20\x4c\x20\x35\x34\x39\x2e\x34\x38\x20\x31\x33\ +\x38\x2e\x30\x30\x20\x43\x20\x35\x34\x38\x2e\x31\x31\x20\x31\x33\ +\x37\x2e\x31\x30\x20\x35\x34\x36\x2e\x37\x32\x20\x31\x33\x36\x2e\ +\x32\x30\x20\x35\x34\x35\x2e\x33\x31\x20\x31\x33\x35\x2e\x33\x30\ +\x20\x4c\x20\x35\x34\x31\x2e\x30\x33\x20\x31\x33\x32\x2e\x36\x35\ +\x20\x43\x20\x35\x34\x30\x2e\x33\x31\x20\x31\x33\x32\x2e\x32\x31\ +\x20\x35\x33\x39\x2e\x35\x38\x20\x31\x33\x31\x2e\x37\x37\x20\x35\ +\x33\x38\x2e\x38\x35\x20\x31\x33\x31\x2e\x33\x33\x20\x4c\x20\x35\ +\x33\x34\x2e\x34\x31\x20\x31\x32\x38\x2e\x37\x33\x20\x43\x20\x35\ +\x33\x33\x2e\x36\x36\x20\x31\x32\x38\x2e\x33\x30\x20\x35\x33\x32\ +\x2e\x39\x30\x20\x31\x32\x37\x2e\x38\x37\x20\x35\x33\x32\x2e\x31\ +\x35\x20\x31\x32\x37\x2e\x34\x34\x20\x4c\x20\x35\x32\x37\x2e\x35\ +\x35\x20\x31\x32\x34\x2e\x39\x30\x20\x4c\x20\x35\x32\x37\x2e\x35\ +\x35\x20\x31\x32\x34\x2e\x39\x30\x20\x4c\x20\x35\x32\x32\x2e\x38\ +\x36\x20\x31\x32\x32\x2e\x34\x31\x20\x4c\x20\x35\x32\x32\x2e\x38\ +\x36\x20\x31\x32\x32\x2e\x34\x31\x20\x4c\x20\x35\x31\x38\x2e\x30\ +\x38\x20\x31\x31\x39\x2e\x39\x36\x20\x4c\x20\x35\x31\x38\x2e\x30\ +\x38\x20\x31\x31\x39\x2e\x39\x36\x20\x5a\x20\x4d\x20\x35\x31\x30\ +\x2e\x39\x32\x20\x31\x31\x35\x2e\x38\x38\x20\x4c\x20\x35\x31\x31\ +\x2e\x33\x38\x20\x31\x31\x37\x2e\x32\x31\x20\x4c\x20\x35\x30\x37\ +\x2e\x37\x36\x20\x31\x31\x36\x2e\x35\x34\x20\x43\x20\x35\x30\x31\ +\x2e\x38\x36\x20\x31\x31\x35\x2e\x35\x31\x20\x34\x39\x33\x2e\x39\ +\x37\x20\x31\x31\x34\x2e\x35\x30\x20\x34\x38\x35\x2e\x38\x31\x20\ +\x31\x31\x35\x2e\x31\x36\x20\x43\x20\x34\x38\x39\x2e\x38\x36\x20\ +\x31\x30\x39\x2e\x31\x37\x20\x34\x38\x39\x2e\x35\x30\x20\x31\x30\ +\x31\x2e\x39\x31\x20\x34\x38\x34\x2e\x37\x32\x20\x39\x33\x2e\x33\ +\x38\x20\x43\x20\x34\x39\x36\x2e\x30\x34\x20\x39\x34\x2e\x39\x32\ +\x20\x35\x30\x35\x2e\x35\x37\x20\x31\x30\x32\x2e\x39\x34\x20\x35\ +\x31\x30\x2e\x31\x39\x20\x31\x31\x34\x2e\x30\x30\x20\x4c\x20\x35\ +\x31\x30\x2e\x39\x32\x20\x31\x31\x35\x2e\x38\x38\x20\x5a\x22\x0d\ +\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x65\x39\x61\x39\x30\x30\x22\x20\x66\x69\x6c\x6c\x2d\x72\ +\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\x64\ +\x3d\x22\xe5\xbd\xa2\xe7\x8a\xb6\x22\x20\x6e\x6f\x64\x65\x2d\x69\ +\x64\x3d\x22\x34\x35\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\ +\x6f\x6e\x65\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x33\x37\x30\x2e\x32\x30\x36\x22\x0d\x0a\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\ +\x69\x64\x74\x68\x3d\x22\x34\x34\x38\x2e\x35\x32\x37\x32\x22\x20\ +\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x33\x32\x30\x2e\x34\x33\ +\x39\x35\x34\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x39\ +\x33\x2e\x33\x37\x37\x35\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x20\x36\x32\x31\x2e\x35\x37\x20\x36\x30\x31\x2e\x38\x30\x20\x43\ +\x20\x36\x32\x31\x2e\x35\x37\x20\x36\x32\x31\x2e\x37\x35\x20\x36\ +\x30\x38\x2e\x36\x33\x20\x36\x33\x37\x2e\x39\x32\x20\x35\x39\x32\ +\x2e\x36\x37\x20\x36\x33\x37\x2e\x39\x32\x20\x43\x20\x35\x37\x36\ +\x2e\x37\x31\x20\x36\x33\x37\x2e\x39\x32\x20\x35\x36\x33\x2e\x37\ +\x38\x20\x36\x32\x31\x2e\x37\x35\x20\x35\x36\x33\x2e\x37\x38\x20\ +\x36\x30\x31\x2e\x38\x30\x20\x43\x20\x35\x36\x33\x2e\x37\x38\x20\ +\x35\x38\x31\x2e\x38\x35\x20\x35\x37\x36\x2e\x37\x31\x20\x35\x36\ +\x35\x2e\x36\x38\x20\x35\x39\x32\x2e\x36\x37\x20\x35\x36\x35\x2e\ +\x36\x38\x20\x43\x20\x36\x30\x38\x2e\x36\x33\x20\x35\x36\x35\x2e\ +\x36\x38\x20\x36\x32\x31\x2e\x35\x37\x20\x35\x38\x31\x2e\x38\x35\ +\x20\x36\x32\x31\x2e\x35\x37\x20\x36\x30\x31\x2e\x38\x30\x20\x5a\ +\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x36\x32\x33\x64\x33\x64\x22\x20\x66\x69\x6c\x6c\ +\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\ +\x69\x64\x3d\x22\xe6\xa4\xad\xe5\x9c\x86\xe5\xbd\xa2\xe5\xa4\x87\ +\xe4\xbb\xbd\x2d\x33\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\ +\x34\x36\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\ +\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\ +\x22\x37\x32\x2e\x32\x34\x31\x36\x34\x22\x0d\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\ +\x74\x68\x3d\x22\x35\x37\x2e\x37\x39\x33\x33\x33\x35\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x35\x36\x33\x2e\x37\x37\x37\ +\x34\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x35\x36\x35\ +\x2e\x36\x37\x37\x37\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\ +\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\ +\x33\x37\x35\x2e\x39\x35\x20\x36\x30\x31\x2e\x38\x30\x20\x43\x20\ +\x33\x37\x35\x2e\x39\x35\x20\x36\x32\x31\x2e\x37\x35\x20\x33\x36\ +\x33\x2e\x30\x31\x20\x36\x33\x37\x2e\x39\x32\x20\x33\x34\x37\x2e\ +\x30\x35\x20\x36\x33\x37\x2e\x39\x32\x20\x43\x20\x33\x33\x31\x2e\ +\x30\x39\x20\x36\x33\x37\x2e\x39\x32\x20\x33\x31\x38\x2e\x31\x36\ +\x20\x36\x32\x31\x2e\x37\x35\x20\x33\x31\x38\x2e\x31\x36\x20\x36\ +\x30\x31\x2e\x38\x30\x20\x43\x20\x33\x31\x38\x2e\x31\x36\x20\x35\ +\x38\x31\x2e\x38\x35\x20\x33\x33\x31\x2e\x30\x39\x20\x35\x36\x35\ +\x2e\x36\x38\x20\x33\x34\x37\x2e\x30\x35\x20\x35\x36\x35\x2e\x36\ +\x38\x20\x43\x20\x33\x36\x33\x2e\x30\x31\x20\x35\x36\x35\x2e\x36\ +\x38\x20\x33\x37\x35\x2e\x39\x35\x20\x35\x38\x31\x2e\x38\x35\x20\ +\x33\x37\x35\x2e\x39\x35\x20\x36\x30\x31\x2e\x38\x30\x20\x5a\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x36\x32\x33\x64\x33\x64\x22\x20\x66\x69\x6c\x6c\x2d\ +\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x69\ +\x64\x3d\x22\xe6\xa4\xad\xe5\x9c\x86\xe5\xbd\xa2\xe5\xa4\x87\xe4\ +\xbb\xbd\x2d\x34\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x34\ +\x37\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x37\x32\x2e\x32\x34\x31\x36\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\ +\x68\x3d\x22\x35\x37\x2e\x37\x39\x33\x33\x33\x35\x22\x20\x74\x61\ +\x72\x67\x65\x74\x2d\x78\x3d\x22\x33\x31\x38\x2e\x31\x35\x35\x36\ +\x37\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x35\x36\x35\ +\x2e\x36\x37\x37\x37\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\ +\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\ +\x35\x36\x32\x2e\x31\x33\x20\x35\x32\x35\x2e\x38\x38\x20\x4c\x20\ +\x35\x36\x38\x2e\x37\x35\x20\x35\x32\x34\x2e\x31\x30\x20\x4c\x20\ +\x35\x37\x37\x2e\x31\x30\x20\x35\x32\x32\x2e\x33\x36\x20\x4c\x20\ +\x35\x38\x37\x2e\x34\x36\x20\x35\x32\x30\x2e\x37\x30\x20\x4c\x20\ +\x36\x30\x30\x2e\x31\x33\x20\x35\x31\x39\x2e\x31\x36\x20\x4c\x20\ +\x36\x30\x39\x2e\x33\x30\x20\x35\x31\x38\x2e\x35\x32\x20\x4c\x20\ +\x36\x32\x30\x2e\x36\x35\x20\x35\x31\x38\x2e\x34\x30\x20\x4c\x20\ +\x36\x33\x34\x2e\x35\x33\x20\x35\x31\x38\x2e\x39\x31\x20\x4c\x20\ +\x36\x35\x31\x2e\x33\x31\x20\x35\x32\x30\x2e\x32\x30\x20\x4c\x20\ +\x36\x37\x31\x2e\x33\x37\x20\x35\x32\x32\x2e\x34\x31\x20\x4c\x20\ +\x36\x36\x33\x2e\x39\x35\x20\x35\x31\x37\x2e\x30\x36\x20\x4c\x20\ +\x36\x35\x36\x2e\x36\x34\x20\x35\x31\x32\x2e\x34\x36\x20\x4c\x20\ +\x36\x34\x39\x2e\x34\x32\x20\x35\x30\x38\x2e\x35\x36\x20\x4c\x20\ +\x36\x34\x32\x2e\x32\x39\x20\x35\x30\x35\x2e\x33\x31\x20\x4c\x20\ +\x36\x33\x35\x2e\x32\x32\x20\x35\x30\x32\x2e\x36\x39\x20\x4c\x20\ +\x36\x32\x38\x2e\x32\x30\x20\x35\x30\x30\x2e\x36\x36\x20\x4c\x20\ +\x36\x32\x31\x2e\x32\x31\x20\x34\x39\x39\x2e\x32\x32\x20\x4c\x20\ +\x36\x31\x34\x2e\x32\x33\x20\x34\x39\x38\x2e\x33\x33\x20\x4c\x20\ +\x36\x30\x37\x2e\x32\x33\x20\x34\x39\x38\x2e\x30\x30\x20\x4c\x20\ +\x36\x30\x30\x2e\x32\x30\x20\x34\x39\x38\x2e\x32\x32\x20\x4c\x20\ +\x35\x39\x33\x2e\x31\x31\x20\x34\x39\x39\x2e\x30\x30\x20\x4c\x20\ +\x35\x38\x36\x2e\x39\x37\x20\x35\x30\x30\x2e\x34\x36\x20\x4c\x20\ +\x35\x38\x31\x2e\x37\x33\x20\x35\x30\x32\x2e\x32\x34\x20\x4c\x20\ +\x35\x37\x37\x2e\x32\x37\x20\x35\x30\x34\x2e\x32\x39\x20\x4c\x20\ +\x35\x37\x33\x2e\x35\x31\x20\x35\x30\x36\x2e\x36\x30\x20\x4c\x20\ +\x35\x37\x30\x2e\x33\x36\x20\x35\x30\x39\x2e\x31\x34\x20\x4c\x20\ +\x35\x36\x37\x2e\x37\x36\x20\x35\x31\x31\x2e\x39\x31\x20\x4c\x20\ +\x35\x36\x35\x2e\x36\x35\x20\x35\x31\x34\x2e\x39\x34\x20\x4c\x20\ +\x35\x36\x34\x2e\x30\x32\x20\x35\x31\x38\x2e\x32\x35\x20\x4c\x20\ +\x35\x36\x32\x2e\x38\x34\x20\x35\x32\x31\x2e\x38\x38\x20\x4c\x20\ +\x35\x36\x32\x2e\x31\x33\x20\x35\x32\x35\x2e\x38\x38\x20\x5a\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x36\x32\x33\x64\x33\x64\x22\x20\x66\x69\x6c\x6c\x2d\ +\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\x20\x67\ +\x72\x6f\x75\x70\x2d\x69\x64\x3d\x22\x39\x22\x20\x69\x64\x3d\x22\ +\xe8\xb7\xaf\xe5\xbe\x84\x2d\x32\x37\x22\x20\x6e\x6f\x64\x65\x2d\ +\x69\x64\x3d\x22\x34\x38\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\ +\x6e\x6f\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\ +\x32\x37\x2e\x38\x38\x32\x35\x30\x37\x22\x20\x74\x61\x72\x67\x65\ +\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x30\x39\x2e\x32\x34\x32\ +\x36\x37\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x35\ +\x36\x32\x2e\x31\x32\x35\x33\x37\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x79\x3d\x22\x34\x39\x37\x2e\x39\x39\x38\x30\x35\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x20\x33\x38\x34\x2e\x34\x37\x20\x35\x32\ +\x35\x2e\x38\x38\x20\x4c\x20\x33\x37\x37\x2e\x38\x34\x20\x35\x32\ +\x34\x2e\x31\x30\x20\x4c\x20\x33\x36\x39\x2e\x34\x39\x20\x35\x32\ +\x32\x2e\x33\x36\x20\x4c\x20\x33\x35\x39\x2e\x31\x33\x20\x35\x32\ +\x30\x2e\x37\x30\x20\x4c\x20\x33\x34\x36\x2e\x34\x36\x20\x35\x31\ +\x39\x2e\x31\x36\x20\x4c\x20\x33\x33\x37\x2e\x33\x30\x20\x35\x31\ +\x38\x2e\x35\x32\x20\x4c\x20\x33\x32\x35\x2e\x39\x34\x20\x35\x31\ +\x38\x2e\x34\x30\x20\x4c\x20\x33\x31\x32\x2e\x30\x36\x20\x35\x31\ +\x38\x2e\x39\x31\x20\x4c\x20\x32\x39\x35\x2e\x32\x39\x20\x35\x32\ +\x30\x2e\x32\x30\x20\x4c\x20\x32\x37\x35\x2e\x32\x33\x20\x35\x32\ +\x32\x2e\x34\x31\x20\x4c\x20\x32\x38\x32\x2e\x36\x35\x20\x35\x31\ +\x37\x2e\x30\x36\x20\x4c\x20\x32\x38\x39\x2e\x39\x36\x20\x35\x31\ +\x32\x2e\x34\x36\x20\x4c\x20\x32\x39\x37\x2e\x31\x37\x20\x35\x30\ +\x38\x2e\x35\x36\x20\x4c\x20\x33\x30\x34\x2e\x33\x30\x20\x35\x30\ +\x35\x2e\x33\x31\x20\x4c\x20\x33\x31\x31\x2e\x33\x37\x20\x35\x30\ +\x32\x2e\x36\x39\x20\x4c\x20\x33\x31\x38\x2e\x33\x39\x20\x35\x30\ +\x30\x2e\x36\x36\x20\x4c\x20\x33\x32\x35\x2e\x33\x38\x20\x34\x39\ +\x39\x2e\x32\x32\x20\x4c\x20\x33\x33\x32\x2e\x33\x37\x20\x34\x39\ +\x38\x2e\x33\x33\x20\x4c\x20\x33\x33\x39\x2e\x33\x37\x20\x34\x39\ +\x38\x2e\x30\x30\x20\x4c\x20\x33\x34\x36\x2e\x34\x30\x20\x34\x39\ +\x38\x2e\x32\x32\x20\x4c\x20\x33\x35\x33\x2e\x34\x39\x20\x34\x39\ +\x39\x2e\x30\x30\x20\x4c\x20\x33\x35\x39\x2e\x36\x32\x20\x35\x30\ +\x30\x2e\x34\x36\x20\x4c\x20\x33\x36\x34\x2e\x38\x37\x20\x35\x30\ +\x32\x2e\x32\x34\x20\x4c\x20\x33\x36\x39\x2e\x33\x32\x20\x35\x30\ +\x34\x2e\x32\x39\x20\x4c\x20\x33\x37\x33\x2e\x30\x38\x20\x35\x30\ +\x36\x2e\x36\x30\x20\x4c\x20\x33\x37\x36\x2e\x32\x33\x20\x35\x30\ +\x39\x2e\x31\x34\x20\x4c\x20\x33\x37\x38\x2e\x38\x34\x20\x35\x31\ +\x31\x2e\x39\x31\x20\x4c\x20\x33\x38\x30\x2e\x39\x34\x20\x35\x31\ +\x34\x2e\x39\x34\x20\x4c\x20\x33\x38\x32\x2e\x35\x38\x20\x35\x31\ +\x38\x2e\x32\x35\x20\x4c\x20\x33\x38\x33\x2e\x37\x36\x20\x35\x32\ +\x31\x2e\x38\x38\x20\x4c\x20\x33\x38\x34\x2e\x34\x37\x20\x35\x32\ +\x35\x2e\x38\x38\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x36\x32\x33\x64\x33\x64\ +\x22\x20\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\ +\x6e\x6f\x64\x64\x22\x20\x67\x72\x6f\x75\x70\x2d\x69\x64\x3d\x22\ +\x31\x30\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x32\ +\x37\xe5\xa4\x87\xe4\xbb\xbd\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\ +\x3d\x22\x34\x39\x22\x20\x73\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\ +\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x32\x37\ +\x2e\x38\x38\x32\x35\x30\x37\x22\x20\x74\x61\x72\x67\x65\x74\x2d\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x30\x39\x2e\x32\x34\x32\x36\x37\ +\x36\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\x22\x32\x37\x35\ +\x2e\x32\x32\x36\x39\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x79\x3d\ +\x22\x34\x39\x37\x2e\x39\x39\x38\x30\x35\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\ +\x3d\x22\x4d\x20\x34\x36\x34\x2e\x35\x30\x20\x35\x34\x35\x2e\x38\ +\x31\x20\x43\x20\x34\x36\x35\x2e\x35\x37\x20\x35\x34\x32\x2e\x39\ +\x36\x20\x34\x36\x38\x2e\x38\x34\x20\x35\x34\x31\x2e\x34\x38\x20\ +\x34\x37\x31\x2e\x38\x31\x20\x35\x34\x32\x2e\x35\x31\x20\x43\x20\ +\x34\x37\x34\x2e\x37\x38\x20\x35\x34\x33\x2e\x35\x33\x20\x34\x37\ +\x36\x2e\x33\x32\x20\x35\x34\x36\x2e\x36\x37\x20\x34\x37\x35\x2e\ +\x32\x35\x20\x35\x34\x39\x2e\x35\x32\x20\x4c\x20\x34\x37\x33\x2e\ +\x31\x38\x20\x35\x35\x35\x2e\x31\x30\x20\x43\x20\x34\x35\x31\x2e\ +\x36\x35\x20\x36\x31\x33\x2e\x37\x35\x20\x34\x34\x37\x2e\x37\x34\ +\x20\x36\x34\x34\x2e\x37\x34\x20\x34\x35\x36\x2e\x37\x34\x20\x36\ +\x34\x36\x2e\x37\x38\x20\x4c\x20\x34\x35\x36\x2e\x38\x37\x20\x36\ +\x34\x36\x2e\x38\x30\x20\x4c\x20\x34\x35\x38\x2e\x36\x36\x20\x36\ +\x34\x36\x2e\x37\x37\x20\x43\x20\x34\x36\x38\x2e\x32\x30\x20\x36\ +\x34\x36\x2e\x33\x39\x20\x34\x37\x37\x2e\x39\x31\x20\x36\x34\x33\ +\x2e\x35\x38\x20\x34\x38\x37\x2e\x38\x33\x20\x36\x33\x38\x2e\x32\ +\x37\x20\x4c\x20\x34\x39\x30\x2e\x31\x32\x20\x36\x33\x37\x2e\x30\ +\x30\x20\x43\x20\x34\x39\x32\x2e\x38\x33\x20\x36\x33\x35\x2e\x34\ +\x35\x20\x34\x39\x36\x2e\x33\x34\x20\x36\x33\x36\x2e\x33\x30\x20\ +\x34\x39\x37\x2e\x39\x35\x20\x36\x33\x38\x2e\x39\x30\x20\x43\x20\ +\x34\x39\x39\x2e\x35\x37\x20\x36\x34\x31\x2e\x35\x30\x20\x34\x39\ +\x38\x2e\x36\x38\x20\x36\x34\x34\x2e\x38\x36\x20\x34\x39\x35\x2e\ +\x39\x37\x20\x36\x34\x36\x2e\x34\x31\x20\x43\x20\x34\x38\x33\x2e\ +\x36\x32\x20\x36\x35\x33\x2e\x34\x38\x20\x34\x37\x31\x2e\x32\x35\ +\x20\x36\x35\x37\x2e\x32\x38\x20\x34\x35\x38\x2e\x39\x32\x20\x36\ +\x35\x37\x2e\x37\x32\x20\x4c\x20\x34\x35\x36\x2e\x34\x36\x20\x36\ +\x35\x37\x2e\x37\x37\x20\x4c\x20\x34\x35\x35\x2e\x37\x35\x20\x36\ +\x35\x37\x2e\x37\x33\x20\x43\x20\x34\x33\x32\x2e\x36\x37\x20\x36\ +\x35\x34\x2e\x39\x34\x20\x34\x33\x37\x2e\x33\x39\x20\x36\x31\x38\ +\x2e\x31\x32\x20\x34\x36\x34\x2e\x35\x30\x20\x35\x34\x35\x2e\x38\ +\x31\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x66\x32\x38\x30\x38\x30\x22\x20\x66\ +\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x6e\x6f\x6e\x7a\x65\x72\ +\x6f\x22\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x33\x30\ +\x22\x20\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x35\x30\x22\x20\x73\ +\x74\x72\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x20\x74\x61\x72\ +\x67\x65\x74\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x31\x36\x2e\ +\x32\x38\x36\x31\x33\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\ +\x36\x36\x2e\x38\x39\x38\x31\x36\x22\x20\x74\x61\x72\x67\x65\x74\ +\x2d\x78\x3d\x22\x34\x33\x32\x2e\x36\x37\x30\x33\x35\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x79\x3d\x22\x35\x34\x31\x2e\x34\x38\x32\ +\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\ +\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x20\x34\x31\x37\x2e\x30\ +\x35\x20\x37\x30\x31\x2e\x34\x36\x20\x4c\x20\x35\x31\x35\x2e\x36\ +\x38\x20\x36\x38\x37\x2e\x30\x31\x20\x43\x20\x35\x31\x35\x2e\x36\ +\x38\x20\x37\x32\x37\x2e\x31\x38\x20\x35\x30\x32\x2e\x37\x35\x20\ +\x37\x35\x30\x2e\x33\x36\x20\x34\x37\x36\x2e\x39\x30\x20\x37\x35\ +\x36\x2e\x35\x34\x20\x43\x20\x34\x35\x31\x2e\x30\x35\x20\x37\x36\ +\x32\x2e\x37\x31\x20\x34\x33\x31\x2e\x31\x30\x20\x37\x34\x34\x2e\ +\x33\x36\x20\x34\x31\x37\x2e\x30\x35\x20\x37\x30\x31\x2e\x34\x36\ +\x20\x5a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ +\x69\x6c\x6c\x3d\x22\x75\x72\x6c\x28\x23\x6c\x69\x6e\x65\x61\x72\ +\x47\x72\x61\x64\x69\x65\x6e\x74\x2d\x33\x29\x22\x20\x66\x69\x6c\ +\x6c\x2d\x72\x75\x6c\x65\x3d\x22\x65\x76\x65\x6e\x6f\x64\x64\x22\ +\x20\x69\x64\x3d\x22\xe8\xb7\xaf\xe5\xbe\x84\x2d\x33\x31\x22\x20\ +\x6e\x6f\x64\x65\x2d\x69\x64\x3d\x22\x35\x31\x22\x20\x73\x74\x72\ +\x6f\x6b\x65\x3d\x22\x6e\x6f\x6e\x65\x22\x0d\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x74\x61\x72\x67\x65\x74\x2d\x68\x65\x69\ +\x67\x68\x74\x3d\x22\x37\x35\x2e\x37\x30\x33\x32\x35\x22\x20\x74\ +\x61\x72\x67\x65\x74\x2d\x77\x69\x64\x74\x68\x3d\x22\x39\x38\x2e\ +\x36\x33\x33\x38\x38\x22\x20\x74\x61\x72\x67\x65\x74\x2d\x78\x3d\ +\x22\x34\x31\x37\x2e\x30\x34\x37\x32\x37\x22\x20\x74\x61\x72\x67\ +\x65\x74\x2d\x79\x3d\x22\x36\x38\x37\x2e\x30\x31\x30\x39\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x09\xa0\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x30\x37\x36\x32\x31\x35\x32\x31\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x31\x35\x33\x39\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x20\x33\x30\ +\x2e\x37\x32\x68\x39\x36\x30\x76\x39\x36\x30\x48\x30\x7a\x22\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x30\x30\x30\x30\x30\x30\x22\x20\x66\ +\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x22\x20\ +\x70\x2d\x69\x64\x3d\x22\x31\x31\x35\x34\x30\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x37\ +\x34\x2e\x32\x38\x38\x36\x34\x20\x37\x31\x36\x2e\x34\x33\x31\x33\ +\x36\x63\x32\x37\x2e\x34\x32\x32\x37\x32\x2d\x31\x33\x2e\x37\x31\ +\x31\x33\x36\x20\x34\x37\x2e\x39\x39\x34\x38\x38\x2d\x35\x38\x2e\ +\x32\x38\x36\x30\x38\x20\x36\x35\x2e\x31\x33\x36\x36\x34\x2d\x36\ +\x35\x2e\x31\x33\x36\x36\x34\x20\x31\x30\x2e\x32\x39\x31\x32\x2d\ +\x33\x2e\x34\x33\x30\x34\x20\x35\x31\x2e\x34\x33\x35\x35\x32\x2d\ +\x32\x34\x2e\x30\x30\x32\x35\x36\x20\x32\x37\x2e\x34\x33\x32\x39\ +\x36\x2d\x38\x35\x2e\x37\x30\x38\x38\x2d\x35\x34\x2e\x38\x35\x35\ +\x36\x38\x2d\x35\x34\x2e\x38\x36\x35\x39\x32\x2d\x39\x32\x2e\x35\ +\x36\x39\x36\x2d\x31\x30\x36\x2e\x32\x39\x31\x32\x2d\x39\x32\x2e\ +\x35\x36\x39\x36\x2d\x32\x32\x36\x2e\x33\x30\x34\x68\x34\x31\x31\ +\x2e\x34\x32\x32\x37\x32\x63\x30\x20\x31\x31\x36\x2e\x35\x38\x32\ +\x34\x2d\x33\x37\x2e\x37\x31\x33\x39\x32\x20\x31\x37\x31\x2e\x34\ +\x33\x38\x30\x38\x2d\x39\x32\x2e\x35\x36\x39\x36\x20\x32\x32\x36\ +\x2e\x33\x30\x34\x2d\x32\x34\x2e\x30\x30\x32\x35\x36\x20\x36\x38\ +\x2e\x35\x36\x37\x30\x34\x20\x31\x33\x2e\x37\x32\x31\x36\x20\x38\ +\x35\x2e\x37\x30\x38\x38\x20\x32\x30\x2e\x35\x37\x32\x31\x36\x20\ +\x38\x35\x2e\x37\x30\x38\x38\x20\x32\x34\x2e\x30\x30\x32\x35\x36\ +\x20\x36\x2e\x38\x36\x30\x38\x20\x38\x32\x2e\x32\x38\x38\x36\x34\ +\x20\x35\x34\x2e\x38\x35\x35\x36\x38\x20\x31\x30\x36\x2e\x32\x39\ +\x31\x32\x20\x36\x35\x2e\x31\x33\x36\x36\x34\x20\x33\x2e\x34\x32\ +\x30\x31\x36\x20\x30\x2d\x31\x33\x33\x2e\x37\x32\x34\x31\x36\x20\ +\x33\x37\x2e\x37\x31\x33\x39\x32\x2d\x32\x34\x30\x2e\x30\x30\x35\ +\x31\x32\x20\x33\x34\x2e\x32\x39\x33\x37\x36\x2d\x36\x38\x2e\x35\ +\x36\x37\x30\x34\x20\x30\x2d\x31\x33\x37\x2e\x31\x34\x34\x33\x32\ +\x2d\x31\x33\x2e\x37\x32\x31\x36\x2d\x32\x30\x35\x2e\x37\x32\x31\ +\x36\x2d\x33\x34\x2e\x32\x39\x33\x37\x36\x7a\x22\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x46\x46\x45\x35\x38\x46\x22\x20\x70\x2d\x69\x64\ +\x3d\x22\x31\x31\x35\x34\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x38\x30\x20\x33\x37\ +\x2e\x35\x38\x30\x38\x63\x2d\x36\x35\x2e\x31\x34\x36\x38\x38\x20\ +\x30\x2d\x32\x30\x32\x2e\x32\x38\x30\x39\x36\x20\x34\x37\x2e\x39\ +\x39\x34\x38\x38\x2d\x32\x31\x39\x2e\x34\x33\x32\x39\x36\x20\x31\ +\x36\x34\x2e\x35\x36\x37\x30\x34\x68\x34\x34\x32\x2e\x32\x38\x36\ +\x30\x38\x43\x36\x38\x32\x2e\x32\x39\x31\x32\x20\x39\x32\x2e\x34\ +\x33\x36\x34\x38\x20\x35\x34\x35\x2e\x31\x34\x36\x38\x38\x20\x33\ +\x37\x2e\x35\x38\x30\x38\x20\x34\x38\x30\x20\x33\x37\x2e\x35\x38\ +\x30\x38\x7a\x20\x6d\x32\x32\x36\x2e\x32\x38\x33\x35\x32\x20\x31\ +\x39\x38\x2e\x38\x36\x30\x38\x73\x2d\x33\x2e\x34\x33\x30\x34\x20\ +\x30\x20\x30\x20\x30\x48\x32\x35\x33\x2e\x37\x31\x36\x34\x38\x63\ +\x2d\x31\x30\x2e\x32\x39\x31\x32\x20\x31\x30\x2e\x32\x38\x30\x39\ +\x36\x2d\x33\x37\x2e\x37\x31\x33\x39\x32\x20\x31\x37\x2e\x31\x33\ +\x31\x35\x32\x2d\x34\x38\x2e\x30\x30\x35\x31\x32\x20\x36\x38\x2e\ +\x35\x36\x37\x30\x34\x68\x35\x34\x38\x2e\x35\x37\x37\x32\x38\x63\ +\x2d\x31\x37\x2e\x31\x34\x31\x37\x36\x2d\x35\x31\x2e\x34\x33\x35\ +\x35\x32\x2d\x34\x31\x2e\x31\x34\x34\x33\x32\x2d\x35\x38\x2e\x32\ +\x38\x36\x30\x38\x2d\x34\x38\x2e\x30\x30\x35\x31\x32\x2d\x36\x38\ +\x2e\x35\x37\x37\x32\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x46\x41\x41\x44\x31\x34\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x31\ +\x35\x34\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x37\x30\x32\x2e\x38\x35\x33\x31\x32\x20\ +\x32\x33\x36\x2e\x34\x34\x31\x36\x73\x33\x2e\x34\x33\x30\x34\x20\ +\x30\x20\x30\x20\x30\x76\x2d\x31\x30\x2e\x32\x39\x31\x32\x63\x30\ +\x2d\x36\x2e\x38\x36\x30\x38\x20\x30\x2d\x31\x37\x2e\x31\x34\x31\ +\x37\x36\x2d\x33\x2e\x34\x32\x30\x31\x36\x2d\x32\x34\x2e\x30\x30\ +\x32\x35\x36\x48\x32\x36\x30\x2e\x35\x36\x37\x30\x34\x63\x30\x20\ +\x36\x2e\x38\x36\x30\x38\x2d\x33\x2e\x34\x32\x30\x31\x36\x20\x31\ +\x37\x2e\x31\x34\x31\x37\x36\x2d\x33\x2e\x34\x32\x30\x31\x36\x20\ +\x32\x34\x2e\x30\x30\x32\x35\x36\x20\x30\x20\x33\x2e\x34\x33\x30\ +\x34\x2d\x33\x2e\x34\x33\x30\x34\x20\x36\x2e\x38\x36\x30\x38\x2d\ +\x33\x2e\x34\x33\x30\x34\x20\x31\x30\x2e\x32\x38\x30\x39\x36\x68\ +\x34\x34\x39\x2e\x31\x33\x36\x36\x34\x7a\x22\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x44\x34\x36\x42\x30\x38\x22\x20\x70\x2d\x69\x64\x3d\ +\x22\x31\x31\x35\x34\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\x30\x2e\x32\x38\x38\ +\x36\x34\x20\x38\x34\x33\x2e\x32\x39\x34\x37\x32\x6c\x2d\x31\x37\ +\x2e\x31\x34\x31\x37\x36\x2d\x33\x34\x2e\x32\x39\x33\x37\x36\x63\ +\x2d\x32\x34\x2e\x30\x30\x32\x35\x36\x2d\x35\x31\x2e\x34\x32\x35\ +\x32\x38\x2d\x36\x35\x2e\x31\x34\x36\x38\x38\x2d\x38\x35\x2e\x37\ +\x30\x38\x38\x2d\x31\x31\x33\x2e\x31\x35\x32\x2d\x31\x30\x39\x2e\ +\x37\x31\x31\x33\x36\x2d\x32\x30\x2e\x35\x36\x31\x39\x32\x2d\x31\ +\x30\x2e\x32\x38\x30\x39\x36\x2d\x34\x34\x2e\x35\x36\x34\x34\x38\ +\x2d\x31\x37\x2e\x31\x34\x31\x37\x36\x2d\x36\x38\x2e\x35\x36\x37\ +\x30\x34\x2d\x32\x30\x2e\x35\x37\x32\x31\x36\x2d\x32\x30\x2e\x35\ +\x37\x32\x31\x36\x2d\x33\x2e\x34\x33\x30\x34\x2d\x33\x37\x2e\x37\ +\x31\x33\x39\x32\x2d\x33\x2e\x34\x33\x30\x34\x2d\x35\x38\x2e\x32\ +\x38\x36\x30\x38\x20\x30\x2d\x33\x37\x2e\x37\x31\x33\x39\x32\x20\ +\x33\x2e\x34\x33\x30\x34\x2d\x37\x31\x2e\x39\x39\x37\x34\x34\x20\ +\x36\x2e\x38\x36\x30\x38\x2d\x31\x30\x36\x2e\x32\x39\x31\x32\x20\ +\x36\x2e\x38\x36\x30\x38\x2d\x33\x37\x2e\x37\x30\x33\x36\x38\x20\ +\x30\x2d\x37\x35\x2e\x34\x31\x37\x36\x2d\x33\x2e\x34\x33\x30\x34\ +\x2d\x31\x31\x36\x2e\x35\x36\x31\x39\x32\x2d\x36\x2e\x38\x36\x30\ +\x38\x2d\x32\x30\x2e\x35\x38\x32\x34\x2d\x33\x2e\x34\x33\x30\x34\ +\x2d\x34\x31\x2e\x31\x34\x34\x33\x32\x20\x30\x2d\x35\x38\x2e\x32\ +\x38\x36\x30\x38\x20\x30\x2d\x32\x34\x2e\x30\x30\x32\x35\x36\x20\ +\x33\x2e\x34\x33\x30\x34\x2d\x34\x38\x2e\x30\x30\x35\x31\x32\x20\ +\x31\x30\x2e\x32\x39\x31\x32\x2d\x36\x38\x2e\x35\x37\x37\x32\x38\ +\x20\x32\x30\x2e\x35\x38\x32\x34\x2d\x34\x37\x2e\x39\x39\x34\x38\ +\x38\x20\x32\x33\x2e\x39\x39\x32\x33\x32\x2d\x38\x39\x2e\x31\x33\ +\x39\x32\x20\x35\x38\x2e\x32\x37\x35\x38\x34\x2d\x31\x31\x33\x2e\ +\x31\x34\x31\x37\x36\x20\x31\x30\x39\x2e\x37\x30\x31\x31\x32\x6c\ +\x2d\x31\x37\x2e\x31\x34\x31\x37\x36\x20\x33\x34\x2e\x32\x39\x33\ +\x37\x36\x63\x2d\x31\x30\x2e\x32\x38\x30\x39\x36\x20\x31\x33\x2e\ +\x37\x31\x31\x33\x36\x2d\x31\x33\x2e\x37\x32\x31\x36\x20\x32\x37\ +\x2e\x34\x32\x32\x37\x32\x2d\x31\x33\x2e\x37\x32\x31\x36\x20\x34\ +\x34\x2e\x35\x36\x34\x34\x38\x20\x30\x20\x35\x38\x2e\x32\x38\x36\ +\x30\x38\x20\x34\x34\x2e\x35\x38\x34\x39\x36\x20\x31\x30\x32\x2e\ +\x38\x36\x30\x38\x20\x31\x30\x32\x2e\x38\x36\x30\x38\x20\x31\x30\ +\x32\x2e\x38\x36\x30\x38\x68\x35\x35\x35\x2e\x34\x33\x38\x30\x38\ +\x63\x31\x37\x2e\x31\x34\x31\x37\x36\x20\x30\x20\x33\x30\x2e\x38\ +\x35\x33\x31\x32\x2d\x33\x2e\x34\x33\x30\x34\x20\x34\x34\x2e\x35\ +\x36\x34\x34\x38\x2d\x31\x30\x2e\x32\x38\x30\x39\x36\x20\x35\x34\ +\x2e\x38\x35\x35\x36\x38\x2d\x32\x37\x2e\x34\x33\x32\x39\x36\x20\ +\x37\x35\x2e\x34\x32\x37\x38\x34\x2d\x38\x39\x2e\x31\x34\x39\x34\ +\x34\x20\x34\x38\x2e\x30\x30\x35\x31\x32\x2d\x31\x33\x37\x2e\x31\ +\x34\x34\x33\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\ +\x43\x35\x33\x44\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x31\x35\x34\ +\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x36\x35\x31\x2e\x34\x32\x37\x38\x34\x20\x36\x37\ +\x38\x2e\x37\x31\x37\x34\x34\x76\x31\x30\x36\x2e\x32\x39\x31\x32\ +\x63\x30\x20\x33\x37\x2e\x37\x31\x33\x39\x32\x2d\x33\x30\x2e\x38\ +\x35\x33\x31\x32\x20\x36\x38\x2e\x35\x36\x37\x30\x34\x2d\x36\x38\ +\x2e\x35\x36\x37\x30\x34\x20\x36\x38\x2e\x35\x36\x37\x30\x34\x48\ +\x33\x37\x37\x2e\x31\x33\x39\x32\x63\x2d\x33\x37\x2e\x37\x31\x33\ +\x39\x32\x20\x30\x2d\x36\x38\x2e\x35\x36\x37\x30\x34\x2d\x33\x30\ +\x2e\x38\x35\x33\x31\x32\x2d\x36\x38\x2e\x35\x36\x37\x30\x34\x2d\ +\x36\x38\x2e\x35\x36\x37\x30\x34\x56\x36\x37\x35\x2e\x32\x38\x37\ +\x30\x34\x63\x2d\x32\x34\x2e\x30\x30\x32\x35\x36\x20\x33\x2e\x34\ +\x33\x30\x34\x2d\x34\x38\x2e\x30\x30\x35\x31\x32\x20\x31\x30\x2e\ +\x32\x39\x31\x32\x2d\x36\x38\x2e\x35\x37\x37\x32\x38\x20\x32\x30\ +\x2e\x35\x38\x32\x34\x56\x39\x39\x30\x2e\x37\x32\x68\x34\x38\x30\ +\x2e\x30\x31\x30\x32\x34\x56\x36\x39\x35\x2e\x38\x35\x39\x32\x63\ +\x2d\x32\x30\x2e\x35\x38\x32\x34\x2d\x36\x2e\x38\x36\x30\x38\x2d\ +\x34\x34\x2e\x35\x37\x34\x37\x32\x2d\x31\x33\x2e\x37\x31\x31\x33\ +\x36\x2d\x36\x38\x2e\x35\x37\x37\x32\x38\x2d\x31\x37\x2e\x31\x34\ +\x31\x37\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x41\x41\ +\x44\x31\x34\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x31\x35\x34\x35\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x04\xf3\ +\x00\ +\x00\x11\x18\x78\x9c\xcd\x58\x6d\x6f\xdb\x36\x10\xfe\x2b\x37\xed\ +\x33\x29\xbe\x89\xa2\x8a\x24\x45\x9a\xb4\xcd\x80\x66\x2b\x90\x2e\ +\xc3\xf6\xcd\x70\xb2\xc8\x98\x62\x07\xb1\xa1\x14\xf9\xf5\x7b\x8e\ +\x94\x13\xc9\x96\x9d\x61\xcd\x87\x34\xb6\x48\xf3\x78\x6f\xcf\x1d\ +\x79\xa7\x1e\xbc\xff\x7e\xdb\x50\x7b\x7d\xbf\x9c\x2d\xe6\x87\x99\ +\x96\x2a\xa3\xe5\x6a\x32\xbf\x9a\x34\x8b\xf9\xf5\x61\x36\x5f\x64\ +\xef\x8f\x0e\x7e\x3a\xfd\xed\xe4\xdb\x9f\x5f\x3f\xd2\xb2\xbd\xa1\ +\xaf\xbf\x7f\xf8\xf2\xcb\x09\x65\x22\xcf\xff\xb0\x27\x79\x7e\xfa\ +\xed\x94\x2e\x2e\x3f\x93\x96\x3a\xcf\x3f\xfe\x9a\x51\x56\xaf\x56\ +\x77\xef\xf2\xfc\xe1\xe1\x41\x3e\x58\xb9\xb8\xbf\xc9\x3f\xdf\x4f\ +\xee\xea\xd9\x74\x99\x63\x63\xce\x1b\xc1\x94\x43\x98\xd6\xf2\x6a\ +\x75\x95\x1d\x1d\xb0\xe0\x15\xf4\x97\xca\x14\xde\x58\x15\x4c\x51\ +\x64\x34\x6d\x26\xcb\xe5\x61\x36\x9b\x2e\xe6\x19\xb5\xb3\xeb\x87\ +\x0f\x8b\xef\x87\x99\x22\x45\x5a\x19\x17\x1f\x59\xdf\x78\x9d\x11\ +\xdc\x99\x83\x65\xdb\x04\xa3\x94\x62\x95\x19\xdd\x89\xd9\x15\x76\ +\x3b\xa3\x7c\xb7\xff\xdd\xf7\x66\x36\xff\x67\x8c\x4b\x57\x55\x95\ +\x47\x6a\x46\x0f\xb3\xab\x55\x0d\x46\x70\xd5\xd7\xb3\x9b\x7a\x15\ +\xe7\x47\x07\x77\x93\x55\x4d\x90\x78\xae\x3d\x0c\x0b\xae\x2e\xb4\ +\x69\xe1\xc6\x19\x7e\x3f\x66\xf4\xf7\xac\x69\x0e\xb3\x9f\x3f\x7d\ +\x3a\x2d\x9d\xea\x6b\x2f\xc1\x9b\x33\x73\x4f\x84\x2f\x0d\x39\x17\ +\x98\x75\x12\x28\x50\xf4\x55\x04\x11\x5a\x01\x89\xcf\x4b\x84\x25\ +\xd6\xd3\x5f\xa1\xd0\x0e\xf6\x08\xcc\x1e\xe9\x56\x14\xca\x09\xed\ +\x6b\x57\xf9\x4b\x5d\x99\x5a\x60\xd2\x1a\xd7\x33\xcd\x78\x6b\x6c\ +\xe8\x9b\x16\x46\x4c\x2b\x95\xa3\xca\xb9\x33\x6d\xc2\x54\x18\x2f\ +\x9d\x77\xa4\x84\x0b\xc2\x68\x59\x58\xcf\x33\x17\x2e\xb5\x73\x53\ +\xb5\x26\x3f\x51\x28\x12\xeb\xa2\xf4\xd3\x35\x27\x96\x3a\x3a\x45\ +\x7a\x5b\x16\x66\xaa\x28\x91\xc5\x13\x25\x31\x3f\x9e\x43\x2b\x69\ +\x6d\xa6\x42\x97\xd2\x63\x4d\x09\x6b\x48\x3b\x69\x0b\xc3\x33\x6b\ +\x3a\xfe\x8e\x9c\x28\x64\xbb\x4f\xd4\xbc\xe6\xc4\x6f\xf1\x44\x07\ +\x73\x67\x73\x22\x8b\x27\x99\xe9\xc3\xee\xee\x43\xaa\x1a\x43\x2a\ +\xa4\xdc\x3c\x03\xdc\xbb\xa1\x6a\x45\xe8\x45\x4f\x7b\x52\x6d\xd8\ +\xe3\x00\x44\xed\x74\xc0\x98\xdd\x0e\xd4\x03\x35\x8a\x33\x21\xfc\ +\xdf\x20\x84\x38\xd6\xc2\xbb\x4d\x91\xc3\x15\x78\xb3\x07\x33\xad\ +\x46\x30\x0b\x00\x20\x6c\xe5\xfc\x40\x6c\x84\xa8\xbf\x12\x13\xfc\ +\xbc\x82\x89\xda\xfa\x1f\xb6\x4a\x8f\x58\x55\x21\xe7\xb5\x0f\x43\ +\xb3\x2e\x2b\xff\xb2\x55\x38\x60\x64\xab\xde\xf9\x14\x5e\x5a\x3e\ +\x88\x46\x86\xca\x37\x48\x65\x04\xaa\x6f\x9e\x97\x0a\x40\x5b\xa9\ +\x42\xa0\x52\x3a\xdc\x03\xe9\xb9\xa6\xe2\xbe\x33\xd2\x87\xd0\x68\ +\x84\xc5\xeb\xe8\xb3\x64\xd4\xb4\x02\x6b\xe5\x05\xff\x5e\x0b\xd4\ +\xfc\x87\xed\x60\xaa\x64\x50\xa1\x11\x50\x48\x03\x85\x6c\x89\x81\ +\x2e\x25\x1d\xa8\x49\xa6\xe8\x64\x8a\x4e\x66\xd4\xe1\x8e\x9f\x8d\ +\xec\xbc\xda\x07\xa3\x19\x81\x31\xb2\x05\x77\x2b\x60\x8f\x9a\xb0\ +\x27\xae\x0b\x49\x4c\xe7\xde\x02\x67\x9a\xfa\xab\x77\x69\xf2\xbf\ +\xbe\x78\xbb\x43\xbc\xd3\x7e\x70\x37\x0c\x8e\xc1\xb2\x7f\x51\xa4\ +\xe7\xe0\x80\x0d\x4e\x13\x9e\xb8\x35\xd9\x92\x89\x06\x0a\x8c\x70\ +\x1a\x54\xf7\xc7\xcc\x63\x04\xf0\xee\x03\xc6\x8d\x58\xee\xc2\xab\ +\x01\x53\xec\x10\xff\xf6\x81\xf1\x23\x96\xb3\x52\x84\xf5\x35\x80\ +\x19\x2b\xb3\x51\x7c\x69\xde\x38\x30\x63\x55\x18\x75\xe0\xb5\x80\ +\x19\x2b\x5d\x51\xfc\xdb\x00\xe6\x1c\x35\x9b\x82\x77\x53\x51\x94\ +\xd2\x3a\xae\xa0\x1a\x17\xa8\xf3\xd2\x17\x3e\x4e\xf1\xbd\x28\x74\ +\xe0\xdf\xc4\x5f\x66\xc0\xb8\xc4\x3a\xa5\x6d\xc4\x53\xde\xe6\xad\ +\x8d\x32\x20\x8f\x3a\xb9\xd1\xb2\x58\xa1\x5d\x90\x85\x61\x5f\x71\ +\x1d\xda\x4a\xba\x10\x78\x16\xc2\x45\x61\xd2\x1d\xcc\x75\x2f\x72\ +\xb9\xb0\x04\x31\xed\xa1\xb8\xed\x02\x77\x6c\xe4\xe6\xce\x2d\x1a\ +\x50\xc2\x74\xaf\xc0\x60\xc2\x19\x0a\xf3\x66\x4d\xc2\x71\xdf\x2c\ +\x4a\x71\x3b\xbe\xff\x71\xfb\xee\x8c\x31\x63\x95\xd5\x3b\x2b\x03\ +\x3b\x01\x67\x30\x36\x4a\x2a\x04\x47\x31\xdc\xc7\xb8\xe2\xab\x35\ +\xe8\xd1\x78\xef\x5a\x54\x27\x1f\x77\x52\x1a\x9e\xf5\x39\x75\xe2\ +\x06\x29\x64\xc6\x6a\x66\xd4\xc7\xf0\xd8\x42\x86\x41\x3f\x5a\x48\ +\xcf\x5d\x85\xb4\xd6\x37\x22\x09\xef\x86\x49\x29\xb9\x8c\xa7\x67\ +\xda\x6c\x62\x9a\x15\x9c\x85\xad\xa8\x36\x5a\xdf\xe9\x3a\x25\x68\ +\x3b\xd6\x13\xad\x10\x6b\x6e\x17\xbb\x31\xc9\xb3\x28\x74\x48\xb7\ +\xd2\x22\x5a\x34\xb0\x09\x2d\x10\x9b\x84\x84\x43\xdf\x56\x16\x3e\ +\x56\xd9\xa2\x92\x40\x97\xd2\x70\x1c\xa0\x0e\xe1\x8f\xcf\x84\x16\ +\x3c\xa1\x92\x9b\xf4\x20\xb9\x35\xed\x86\x94\xbc\x01\x9f\x78\x7c\ +\xda\xe0\xa2\xe4\x3d\x11\x1b\x2b\x97\x31\xd5\x80\x5c\x15\x8d\x4b\ +\xcf\x4e\x2b\x10\x42\xe2\x1b\x68\x73\xee\x0b\xef\x83\x0d\x35\xc3\ +\xd3\x8f\x64\x9c\xf7\xdf\x3c\x0a\x53\x98\xbe\xd2\xb1\x22\xda\x9d\ +\x0a\xa0\xe7\xa2\x2b\xeb\xb1\x6b\x16\xd2\x71\xa3\x41\x14\xea\x0a\ +\xed\xbc\xe4\xce\x02\xb7\x8f\xe4\xd3\x2b\xe3\x49\xe1\x30\x27\x4c\ +\x9b\x64\x70\xcc\xa4\xc1\xeb\x0b\xbe\x9a\x83\x73\xcc\x41\x72\xf1\ +\x5d\x2e\x8d\x89\xfc\x7c\x44\x3b\x24\xe1\xe2\xd4\x71\x87\x84\xb7\ +\x23\x89\x87\xe6\xae\x06\x0d\x23\x25\x72\x6c\x1d\xb7\x62\x84\x50\ +\xc2\x06\x61\x94\xc4\x29\x02\x5a\xb1\x7f\x02\x62\xe8\x60\x5f\x0e\ +\xcc\x58\xb9\xb6\x08\x04\x44\xd4\xe8\x97\xb6\x9a\xea\x8d\xa5\x17\ +\x0e\xea\x58\xb5\x66\xe9\xd1\xb8\x1f\x96\x3e\x5a\x51\x21\x3d\xb8\ +\xd7\x90\x3e\x56\x50\xab\xf4\x72\xb8\xd9\xbf\x5b\xb3\xd9\x29\xf7\ +\x57\x62\xa7\xbc\x47\xd1\x58\xfd\x63\x45\x61\xfb\x45\x01\x9d\xec\ +\xa6\xa6\xc1\xd2\x4b\xaa\x7a\xb5\x90\xff\x93\xe0\xe8\x5f\xba\xe3\ +\xd4\x26\ +\x00\x00\x05\x9b\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x39\x32\x37\x33\ +\x37\x37\x31\x30\x35\x39\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0d\x0a\x20\ +\x20\x20\x20\x20\x70\x2d\x69\x64\x3d\x22\x31\x32\x35\x37\x39\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x36\ +\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x30\ +\x30\x2e\x33\x37\x31\x32\x32\x38\x20\x33\x39\x34\x2e\x35\x32\x35\ +\x34\x37\x32\x20\x31\x37\x34\x2e\x30\x32\x38\x35\x36\x39\x20\x33\ +\x39\x34\x2e\x35\x32\x35\x34\x37\x32\x6c\x32\x35\x35\x2e\x39\x35\ +\x32\x34\x31\x36\x2d\x32\x32\x37\x2e\x35\x30\x36\x35\x35\x31\x63\ +\x31\x32\x2e\x33\x38\x39\x31\x36\x38\x2d\x31\x31\x2e\x30\x31\x31\ +\x37\x39\x38\x20\x31\x33\x2e\x35\x30\x35\x35\x39\x35\x2d\x32\x39\ +\x2e\x39\x38\x30\x38\x32\x35\x20\x32\x2e\x34\x39\x32\x37\x37\x34\ +\x2d\x34\x32\x2e\x33\x36\x39\x39\x39\x33\x2d\x31\x31\x2e\x30\x31\ +\x31\x37\x39\x38\x2d\x31\x32\x2e\x33\x38\x36\x30\x39\x38\x2d\x32\ +\x39\x2e\x39\x37\x37\x37\x35\x35\x2d\x31\x33\x2e\x35\x30\x36\x36\ +\x31\x39\x2d\x34\x32\x2e\x33\x36\x37\x39\x34\x37\x2d\x32\x2e\x34\ +\x39\x32\x37\x37\x34\x4c\x37\x36\x2e\x34\x32\x35\x36\x32\x33\x20\ +\x34\x30\x30\x2e\x39\x37\x35\x33\x37\x31\x63\x2d\x36\x2e\x39\x36\ +\x30\x35\x32\x39\x20\x35\x2e\x34\x39\x36\x31\x37\x38\x2d\x31\x31\ +\x2e\x34\x33\x34\x34\x32\x33\x20\x31\x34\x2e\x30\x30\x33\x39\x34\ +\x35\x2d\x31\x31\x2e\x34\x33\x34\x34\x32\x33\x20\x32\x33\x2e\x35\ +\x36\x31\x36\x32\x35\x20\x30\x20\x30\x2e\x30\x31\x33\x33\x30\x33\ +\x20\x30\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\x30\x32\x36\x36\ +\x30\x36\x20\x30\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\x30\x33\ +\x39\x39\x30\x39\x20\x30\x20\x30\x2e\x30\x31\x32\x32\x38\x2d\x30\ +\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\x30\x32\x35\x35\x38\x33\ +\x2d\x30\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\x30\x33\x37\x38\ +\x36\x32\x20\x30\x20\x30\x2e\x34\x37\x33\x37\x39\x31\x20\x30\x2e\ +\x30\x31\x35\x33\x35\x20\x30\x2e\x39\x34\x36\x35\x35\x38\x20\x30\ +\x2e\x30\x33\x37\x38\x36\x32\x20\x31\x2e\x34\x31\x38\x33\x30\x32\ +\x20\x30\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\x30\x31\x36\x33\ +\x37\x33\x20\x30\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\x30\x33\ +\x32\x37\x34\x36\x20\x30\x2e\x30\x30\x31\x30\x32\x33\x20\x30\x2e\ +\x30\x34\x39\x31\x31\x39\x20\x30\x2e\x33\x39\x32\x39\x35\x20\x38\ +\x2e\x30\x33\x30\x39\x30\x37\x20\x33\x2e\x39\x39\x32\x39\x34\x31\ +\x20\x31\x35\x2e\x35\x39\x35\x31\x38\x36\x20\x31\x30\x2e\x30\x33\ +\x34\x35\x34\x31\x20\x32\x30\x2e\x39\x36\x32\x34\x32\x37\x6c\x33\ +\x31\x35\x2e\x30\x34\x30\x31\x36\x33\x20\x32\x38\x30\x2e\x30\x32\ +\x38\x37\x36\x34\x63\x35\x2e\x37\x31\x37\x32\x31\x32\x20\x35\x2e\ +\x30\x38\x33\x37\x38\x35\x20\x31\x32\x2e\x38\x33\x35\x33\x33\x20\ +\x37\x2e\x35\x38\x30\x36\x35\x32\x20\x31\x39\x2e\x39\x32\x35\x38\ +\x31\x38\x20\x37\x2e\x35\x38\x30\x36\x35\x32\x20\x38\x2e\x32\x37\ +\x34\x34\x35\x34\x20\x30\x20\x31\x36\x2e\x35\x31\x34\x31\x31\x35\ +\x2d\x33\x2e\x34\x30\x33\x35\x31\x36\x20\x32\x32\x2e\x34\x34\x32\ +\x31\x32\x38\x2d\x31\x30\x2e\x30\x37\x34\x34\x35\x20\x31\x31\x2e\ +\x30\x31\x31\x37\x39\x38\x2d\x31\x32\x2e\x33\x38\x37\x31\x32\x32\ +\x20\x39\x2e\x38\x39\x36\x33\x39\x34\x2d\x33\x31\x2e\x33\x35\x37\ +\x31\x37\x32\x2d\x32\x2e\x34\x39\x32\x37\x37\x34\x2d\x34\x32\x2e\ +\x33\x36\x37\x39\x34\x37\x6c\x2d\x32\x35\x36\x2e\x31\x32\x38\x34\ +\x32\x35\x2d\x32\x32\x37\x2e\x36\x36\x35\x31\x36\x33\x20\x35\x32\ +\x36\x2e\x35\x31\x38\x36\x36\x38\x20\x30\x63\x31\x30\x39\x2e\x32\ +\x31\x39\x35\x31\x37\x20\x30\x20\x31\x39\x38\x2e\x30\x37\x35\x32\ +\x34\x31\x20\x38\x38\x2e\x38\x35\x35\x37\x32\x34\x20\x31\x39\x38\ +\x2e\x30\x37\x35\x32\x34\x31\x20\x31\x39\x38\x2e\x30\x37\x35\x32\ +\x34\x31\x73\x2d\x38\x38\x2e\x38\x35\x35\x37\x32\x34\x20\x31\x39\ +\x38\x2e\x30\x37\x35\x32\x34\x31\x2d\x31\x39\x38\x2e\x30\x37\x35\ +\x32\x34\x31\x20\x31\x39\x38\x2e\x30\x37\x35\x32\x34\x31\x4c\x33\ +\x35\x34\x2e\x33\x32\x34\x38\x38\x38\x20\x38\x35\x30\x2e\x36\x39\ +\x36\x39\x35\x35\x63\x2d\x31\x36\x2e\x35\x37\x34\x34\x39\x20\x30\ +\x2d\x33\x30\x2e\x30\x31\x31\x35\x32\x34\x20\x31\x33\x2e\x34\x33\ +\x37\x30\x33\x34\x2d\x33\x30\x2e\x30\x31\x31\x35\x32\x34\x20\x33\ +\x30\x2e\x30\x31\x31\x35\x32\x34\x73\x31\x33\x2e\x34\x33\x37\x30\ +\x33\x34\x20\x33\x30\x2e\x30\x31\x31\x35\x32\x34\x20\x33\x30\x2e\ +\x30\x31\x31\x35\x32\x34\x20\x33\x30\x2e\x30\x31\x31\x35\x32\x34\ +\x6c\x33\x34\x36\x2e\x30\x34\x36\x33\x34\x31\x20\x30\x63\x31\x34\ +\x32\x2e\x33\x31\x36\x33\x31\x20\x30\x20\x32\x35\x38\x2e\x30\x39\ +\x38\x32\x38\x39\x2d\x31\x31\x35\x2e\x37\x38\x33\x30\x30\x33\x20\ +\x32\x35\x38\x2e\x30\x39\x38\x32\x38\x39\x2d\x32\x35\x38\x2e\x30\ +\x39\x38\x32\x38\x39\x53\x38\x34\x32\x2e\x36\x38\x36\x35\x31\x35\ +\x20\x33\x39\x34\x2e\x35\x32\x35\x34\x37\x32\x20\x37\x30\x30\x2e\ +\x33\x37\x31\x32\x32\x38\x20\x33\x39\x34\x2e\x35\x32\x35\x34\x37\ +\x32\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x32\x37\x32\x36\x33\x36\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x31\x32\x35\x38\x30\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x02\xc2\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x36\x30\x39\x36\x32\x30\x36\x39\x36\x33\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x38\x33\x30\x33\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x33\x36\x2e\x31\ +\x37\x30\x36\x36\x37\x20\x36\x36\x39\x2e\x39\x35\x32\x4c\x35\x33\ +\x34\x2e\x36\x31\x33\x33\x33\x33\x20\x32\x36\x38\x2e\x33\x39\x34\ +\x36\x36\x37\x61\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x30\x2d\ +\x34\x32\x2e\x39\x38\x36\x36\x36\x36\x2d\x32\x2e\x30\x36\x39\x33\ +\x33\x34\x6c\x2d\x32\x2e\x32\x38\x32\x36\x36\x37\x20\x32\x2e\x30\ +\x36\x39\x33\x33\x34\x4c\x38\x37\x2e\x38\x32\x39\x33\x33\x33\x20\ +\x36\x36\x39\x2e\x39\x35\x32\x61\x38\x2e\x35\x33\x33\x33\x33\x33\ +\x20\x38\x2e\x35\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x30\x2d\ +\x32\x2e\x34\x39\x36\x20\x36\x2e\x30\x33\x37\x33\x33\x33\x76\x36\ +\x36\x2e\x33\x34\x36\x36\x36\x37\x61\x38\x2e\x35\x33\x33\x33\x33\ +\x33\x20\x38\x2e\x35\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x30\ +\x20\x31\x34\x2e\x35\x37\x30\x36\x36\x37\x20\x36\x2e\x30\x35\x38\ +\x36\x36\x37\x6c\x34\x31\x32\x2e\x30\x37\x34\x36\x36\x37\x2d\x34\ +\x31\x32\x2e\x30\x39\x36\x20\x34\x31\x32\x2e\x31\x31\x37\x33\x33\ +\x33\x20\x34\x31\x32\x2e\x30\x39\x36\x61\x38\x2e\x35\x33\x33\x33\ +\x33\x33\x20\x38\x2e\x35\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\ +\x30\x20\x31\x34\x2e\x35\x37\x30\x36\x36\x37\x2d\x36\x2e\x30\x33\ +\x37\x33\x33\x34\x76\x2d\x36\x36\x2e\x33\x34\x36\x36\x36\x36\x61\ +\x38\x2e\x35\x33\x33\x33\x33\x33\x20\x38\x2e\x35\x33\x33\x33\x33\ +\x33\x20\x30\x20\x30\x20\x30\x2d\x32\x2e\x34\x39\x36\x2d\x36\x2e\ +\x30\x35\x38\x36\x36\x37\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x33\x33\x33\x33\x33\x33\x22\x20\x70\x2d\x69\x64\x3d\x22\x38\x33\ +\x30\x34\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\ +\x3e\ +\x00\x00\x03\xf3\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x34\x31\x33\x36\x33\x37\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x31\x33\x31\x35\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x37\x38\x31\x2e\ +\x32\x38\x20\x34\x32\x35\x2e\x32\x38\x76\x33\x37\x37\x2e\x31\x32\ +\x48\x32\x39\x30\x2e\x34\x56\x34\x34\x35\x2e\x31\x32\x63\x30\x2d\ +\x31\x30\x2e\x38\x38\x20\x31\x30\x2e\x38\x38\x2d\x31\x39\x2e\x36\ +\x38\x20\x32\x34\x2e\x33\x32\x2d\x31\x39\x2e\x36\x38\x68\x34\x36\ +\x36\x2e\x35\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x42\x33\ +\x43\x38\x46\x45\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x31\x33\x31\ +\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x35\x36\x31\x2e\x34\x34\x20\x33\x36\x31\x2e\x37\ +\x36\x68\x31\x37\x31\x2e\x32\x76\x31\x38\x35\x2e\x37\x36\x68\x34\ +\x38\x2e\x36\x34\x56\x33\x33\x37\x2e\x34\x34\x63\x30\x2d\x31\x33\ +\x2e\x34\x34\x2d\x31\x30\x2e\x38\x38\x2d\x32\x34\x2e\x33\x32\x2d\ +\x32\x34\x2e\x33\x32\x2d\x32\x34\x2e\x33\x32\x48\x35\x33\x33\x2e\ +\x39\x32\x6c\x2d\x37\x38\x2e\x34\x2d\x38\x38\x2e\x33\x32\x63\x2d\ +\x34\x2e\x36\x34\x2d\x35\x2e\x32\x38\x2d\x31\x31\x2e\x32\x2d\x38\ +\x2e\x31\x36\x2d\x31\x38\x2e\x32\x34\x2d\x38\x2e\x31\x36\x48\x32\ +\x30\x34\x2e\x39\x36\x63\x2d\x31\x33\x2e\x34\x34\x20\x30\x2d\x32\ +\x34\x2e\x33\x32\x20\x31\x30\x2e\x38\x38\x2d\x32\x34\x2e\x33\x32\ +\x20\x32\x34\x2e\x33\x32\x76\x35\x33\x37\x2e\x32\x38\x63\x30\x20\ +\x31\x33\x2e\x34\x34\x20\x31\x30\x2e\x38\x38\x20\x32\x34\x2e\x33\ +\x32\x20\x32\x34\x2e\x33\x32\x20\x32\x34\x2e\x33\x32\x68\x32\x37\ +\x38\x2e\x30\x38\x76\x2d\x34\x38\x2e\x36\x34\x48\x32\x32\x39\x2e\ +\x32\x38\x56\x32\x36\x35\x2e\x31\x32\x68\x31\x39\x37\x2e\x31\x32\ +\x6c\x37\x38\x2e\x34\x20\x38\x38\x2e\x33\x32\x63\x34\x2e\x36\x34\ +\x20\x35\x2e\x32\x38\x20\x31\x31\x2e\x32\x20\x38\x2e\x31\x36\x20\ +\x31\x38\x2e\x32\x34\x20\x38\x2e\x31\x36\x6c\x33\x38\x2e\x34\x20\ +\x30\x2e\x31\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x35\x31\ +\x38\x36\x46\x35\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x31\x33\x31\ +\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\ +\x64\x3d\x22\x4d\x38\x30\x34\x2e\x33\x32\x20\x36\x39\x35\x2e\x32\ +\x6c\x2d\x37\x37\x2e\x39\x32\x2d\x37\x37\x2e\x39\x32\x2d\x33\x34\ +\x2e\x34\x20\x33\x34\x2e\x34\x4c\x37\x32\x38\x2e\x31\x36\x20\x36\ +\x38\x38\x68\x2d\x31\x35\x32\x2e\x33\x32\x76\x2d\x39\x35\x2e\x30\ +\x34\x68\x2d\x34\x38\x2e\x36\x34\x76\x31\x31\x39\x2e\x33\x36\x63\ +\x30\x20\x31\x33\x2e\x34\x34\x20\x31\x30\x2e\x38\x38\x20\x32\x34\ +\x2e\x33\x32\x20\x32\x34\x2e\x33\x32\x20\x32\x34\x2e\x33\x32\x68\ +\x31\x37\x36\x2e\x36\x34\x6c\x2d\x33\x36\x2e\x33\x32\x20\x33\x36\ +\x2e\x33\x32\x20\x33\x34\x2e\x34\x20\x33\x34\x2e\x34\x20\x37\x37\ +\x2e\x39\x32\x2d\x37\x37\x2e\x39\x32\x63\x39\x2e\x36\x2d\x39\x2e\ +\x32\x38\x20\x39\x2e\x36\x2d\x32\x34\x2e\x38\x20\x30\x2e\x31\x36\ +\x2d\x33\x34\x2e\x32\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x35\x31\x38\x36\x46\x35\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x31\ +\x33\x31\x38\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\ +\x67\x3e\ +\x00\x00\x03\xa3\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x35\x31\x36\x33\x38\x33\x39\x33\x36\x32\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x35\x35\x30\x32\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x39\x34\x2e\ +\x39\x31\x32\x20\x32\x34\x35\x2e\x37\x36\x43\x31\x34\x31\x2e\x33\ +\x31\x32\x20\x32\x34\x35\x2e\x37\x36\x20\x31\x38\x2e\x34\x33\x32\ +\x20\x33\x37\x30\x2e\x36\x38\x38\x20\x31\x38\x2e\x34\x33\x32\x20\ +\x35\x32\x32\x2e\x32\x34\x20\x31\x38\x2e\x34\x33\x32\x20\x36\x37\ +\x35\x2e\x38\x34\x20\x31\x34\x33\x2e\x33\x36\x20\x37\x39\x38\x2e\ +\x37\x32\x20\x32\x39\x34\x2e\x39\x31\x32\x20\x37\x39\x38\x2e\x37\ +\x32\x68\x34\x33\x30\x2e\x30\x38\x63\x31\x35\x33\x2e\x36\x20\x32\ +\x2e\x30\x34\x38\x20\x32\x37\x38\x2e\x35\x32\x38\x2d\x31\x32\x32\ +\x2e\x38\x38\x20\x32\x37\x38\x2e\x35\x32\x38\x2d\x32\x37\x36\x2e\ +\x34\x38\x43\x31\x30\x30\x33\x2e\x35\x32\x20\x33\x37\x30\x2e\x36\ +\x38\x38\x20\x38\x37\x38\x2e\x35\x39\x32\x20\x32\x34\x35\x2e\x37\ +\x36\x20\x37\x32\x37\x2e\x30\x34\x20\x32\x34\x35\x2e\x37\x36\x48\ +\x32\x39\x34\x2e\x39\x31\x32\x7a\x20\x6d\x30\x20\x35\x30\x37\x2e\ +\x39\x30\x34\x63\x2d\x31\x32\x36\x2e\x39\x37\x36\x20\x30\x2d\x32\ +\x33\x31\x2e\x34\x32\x34\x2d\x31\x30\x32\x2e\x34\x2d\x32\x33\x31\ +\x2e\x34\x32\x34\x2d\x32\x33\x31\x2e\x34\x32\x34\x20\x30\x2d\x31\ +\x32\x36\x2e\x39\x37\x36\x20\x31\x30\x32\x2e\x34\x2d\x32\x33\x31\ +\x2e\x34\x32\x34\x20\x32\x33\x31\x2e\x34\x32\x34\x2d\x32\x33\x31\ +\x2e\x34\x32\x34\x68\x34\x33\x30\x2e\x30\x38\x63\x31\x32\x36\x2e\ +\x39\x37\x36\x20\x30\x20\x32\x33\x31\x2e\x34\x32\x34\x20\x31\x30\ +\x32\x2e\x34\x20\x32\x33\x31\x2e\x34\x32\x34\x20\x32\x33\x31\x2e\ +\x34\x32\x34\x20\x30\x20\x31\x32\x36\x2e\x39\x37\x36\x2d\x31\x30\ +\x32\x2e\x34\x20\x32\x33\x31\x2e\x34\x32\x34\x2d\x32\x33\x31\x2e\ +\x34\x32\x34\x20\x32\x33\x31\x2e\x34\x32\x34\x68\x2d\x34\x33\x30\ +\x2e\x30\x38\x7a\x20\x6d\x31\x37\x34\x2e\x30\x38\x2d\x32\x33\x31\ +\x2e\x34\x32\x34\x63\x30\x2d\x39\x34\x2e\x32\x30\x38\x2d\x37\x35\ +\x2e\x37\x37\x36\x2d\x31\x36\x39\x2e\x39\x38\x34\x2d\x31\x36\x39\ +\x2e\x39\x38\x34\x2d\x31\x36\x39\x2e\x39\x38\x34\x53\x31\x33\x31\ +\x2e\x30\x37\x32\x20\x34\x33\x30\x2e\x30\x38\x20\x31\x33\x31\x2e\ +\x30\x37\x32\x20\x35\x32\x32\x2e\x32\x34\x63\x30\x20\x39\x34\x2e\ +\x32\x30\x38\x20\x37\x35\x2e\x37\x37\x36\x20\x31\x36\x39\x2e\x39\ +\x38\x34\x20\x31\x36\x39\x2e\x39\x38\x34\x20\x31\x36\x39\x2e\x39\ +\x38\x34\x73\x31\x36\x37\x2e\x39\x33\x36\x2d\x37\x35\x2e\x37\x37\ +\x36\x20\x31\x36\x37\x2e\x39\x33\x36\x2d\x31\x36\x39\x2e\x39\x38\ +\x34\x7a\x20\x6d\x30\x20\x30\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x43\x43\x43\x43\x43\x43\x22\x20\x70\x2d\x69\x64\x3d\x22\x31\x35\ +\x35\x30\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\ +\x67\x3e\ +\x00\x00\x02\xe4\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x36\x31\x39\x31\x33\x32\x31\x38\x33\x30\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x39\x39\x31\x35\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x31\x36\x20\x31\ +\x39\x32\x43\x35\x33\x37\x2e\x36\x20\x31\x39\x32\x20\x36\x34\x30\ +\x20\x32\x39\x34\x2e\x34\x20\x36\x34\x30\x20\x34\x31\x36\x53\x35\ +\x33\x37\x2e\x36\x20\x36\x34\x30\x20\x34\x31\x36\x20\x36\x34\x30\ +\x20\x31\x39\x32\x20\x35\x33\x37\x2e\x36\x20\x31\x39\x32\x20\x34\ +\x31\x36\x20\x32\x39\x34\x2e\x34\x20\x31\x39\x32\x20\x34\x31\x36\ +\x20\x31\x39\x32\x4d\x34\x31\x36\x20\x31\x32\x38\x43\x32\x35\x36\ +\x20\x31\x32\x38\x20\x31\x32\x38\x20\x32\x35\x36\x20\x31\x32\x38\ +\x20\x34\x31\x36\x53\x32\x35\x36\x20\x37\x30\x34\x20\x34\x31\x36\ +\x20\x37\x30\x34\x20\x37\x30\x34\x20\x35\x37\x36\x20\x37\x30\x34\ +\x20\x34\x31\x36\x20\x35\x37\x36\x20\x31\x32\x38\x20\x34\x31\x36\ +\x20\x31\x32\x38\x4c\x34\x31\x36\x20\x31\x32\x38\x7a\x22\x20\x66\ +\x69\x6c\x6c\x3d\x22\x23\x32\x37\x32\x36\x33\x36\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x39\x39\x31\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x33\x32\x20\x38\ +\x36\x34\x63\x2d\x36\x2e\x34\x20\x30\x2d\x31\x39\x2e\x32\x20\x30\ +\x2d\x32\x35\x2e\x36\x2d\x36\x2e\x34\x6c\x2d\x31\x39\x32\x2d\x31\ +\x39\x32\x63\x2d\x31\x32\x2e\x38\x2d\x31\x32\x2e\x38\x2d\x31\x32\ +\x2e\x38\x2d\x33\x32\x20\x30\x2d\x34\x34\x2e\x38\x73\x33\x32\x2d\ +\x31\x32\x2e\x38\x20\x34\x34\x2e\x38\x20\x30\x6c\x31\x39\x32\x20\ +\x31\x39\x32\x63\x31\x32\x2e\x38\x20\x31\x32\x2e\x38\x20\x31\x32\ +\x2e\x38\x20\x33\x32\x20\x30\x20\x34\x34\x2e\x38\x43\x38\x35\x31\ +\x2e\x32\x20\x38\x36\x34\x20\x38\x33\x38\x2e\x34\x20\x38\x36\x34\ +\x20\x38\x33\x32\x20\x38\x36\x34\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x32\x37\x32\x36\x33\x36\x22\x20\x70\x2d\x69\x64\x3d\x22\ +\x39\x39\x31\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\ +\x76\x67\x3e\ +\x00\x00\x02\x2c\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x37\x38\x34\x34\x38\x37\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x30\x33\x32\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x38\x30\x2e\ +\x36\x37\x37\x20\x31\x37\x36\x2e\x32\x37\x39\x6c\x33\x39\x30\x2e\ +\x31\x38\x32\x20\x32\x32\x35\x2e\x32\x37\x32\x63\x38\x35\x2e\x30\ +\x32\x34\x20\x34\x39\x2e\x30\x38\x39\x20\x38\x35\x2e\x30\x32\x34\ +\x20\x31\x37\x31\x2e\x38\x31\x20\x30\x20\x32\x32\x30\x2e\x38\x39\ +\x39\x4c\x33\x38\x30\x2e\x36\x37\x37\x20\x38\x34\x37\x2e\x37\x32\ +\x31\x63\x2d\x38\x35\x2e\x30\x32\x34\x20\x34\x39\x2e\x30\x38\x39\ +\x2d\x31\x39\x31\x2e\x33\x30\x34\x2d\x31\x32\x2e\x32\x37\x32\x2d\ +\x31\x39\x31\x2e\x33\x30\x34\x2d\x31\x31\x30\x2e\x34\x34\x39\x56\ +\x32\x38\x36\x2e\x37\x32\x38\x63\x30\x2d\x39\x38\x2e\x31\x37\x37\ +\x20\x31\x30\x36\x2e\x32\x38\x2d\x31\x35\x39\x2e\x35\x33\x38\x20\ +\x31\x39\x31\x2e\x33\x30\x34\x2d\x31\x31\x30\x2e\x34\x34\x39\x7a\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x37\x42\x31\x35\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x32\x36\x30\x33\x33\x22\x3e\x3c\x2f\ +\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x04\xe7\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x36\x30\x39\x34\x32\x37\x36\x38\x31\x30\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x32\x34\x39\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x34\x39\x2e\x35\ +\x34\x36\x36\x36\x37\x20\x33\x32\x30\x76\x31\x37\x36\x2e\x36\x34\ +\x6c\x31\x32\x34\x2e\x35\x38\x36\x36\x36\x36\x20\x31\x32\x34\x2e\ +\x35\x38\x36\x36\x36\x37\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\ +\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\ +\x20\x30\x20\x33\x30\x2e\x32\x39\x33\x33\x33\x33\x6c\x2d\x32\x32\ +\x2e\x36\x31\x33\x33\x33\x33\x20\x32\x32\x2e\x36\x31\x33\x33\x33\ +\x33\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\ +\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x2d\x33\x30\x2e\x32\ +\x39\x33\x33\x33\x33\x20\x30\x6c\x2d\x31\x34\x30\x2e\x33\x37\x33\ +\x33\x33\x34\x2d\x31\x34\x30\x2e\x33\x37\x33\x33\x33\x33\x61\x32\ +\x32\x2e\x36\x31\x33\x33\x33\x33\x20\x32\x32\x2e\x36\x31\x33\x33\ +\x33\x33\x20\x30\x20\x30\x20\x31\x2d\x36\x2e\x34\x2d\x31\x34\x2e\ +\x39\x33\x33\x33\x33\x33\x56\x33\x32\x30\x61\x32\x31\x2e\x33\x33\ +\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\ +\x20\x30\x20\x31\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x34\x2d\x32\ +\x31\x2e\x33\x33\x33\x33\x33\x33\x68\x33\x32\x2e\x34\x32\x36\x36\ +\x36\x36\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\ +\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x31\x20\x32\x31\x2e\ +\x33\x33\x33\x33\x33\x34\x20\x32\x31\x2e\x33\x33\x33\x33\x33\x33\ +\x7a\x20\x6d\x33\x34\x36\x2e\x34\x35\x33\x33\x33\x33\x20\x38\x35\ +\x2e\x33\x33\x33\x33\x33\x33\x76\x2d\x32\x31\x33\x2e\x33\x33\x33\ +\x33\x33\x33\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\ +\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x30\x2d\x32\x31\ +\x2e\x33\x33\x33\x33\x33\x33\x2d\x32\x31\x2e\x33\x33\x33\x33\x33\ +\x33\x68\x2d\x31\x32\x2e\x33\x37\x33\x33\x33\x34\x61\x32\x30\x2e\ +\x39\x30\x36\x36\x36\x37\x20\x32\x30\x2e\x39\x30\x36\x36\x36\x37\ +\x20\x30\x20\x30\x20\x30\x2d\x31\x35\x2e\x33\x36\x20\x36\x2e\x34\ +\x6c\x2d\x36\x33\x2e\x35\x37\x33\x33\x33\x33\x20\x36\x33\x2e\x35\ +\x37\x33\x33\x33\x33\x41\x33\x38\x34\x20\x33\x38\x34\x20\x30\x20\ +\x31\x20\x30\x20\x38\x39\x36\x20\x35\x33\x34\x2e\x36\x31\x33\x33\ +\x33\x33\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\ +\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x30\x2d\x35\x2e\x35\ +\x34\x36\x36\x36\x37\x2d\x31\x35\x2e\x37\x38\x36\x36\x36\x36\x20\ +\x32\x32\x2e\x31\x38\x36\x36\x36\x37\x20\x32\x32\x2e\x31\x38\x36\ +\x36\x36\x37\x20\x30\x20\x30\x20\x30\x2d\x31\x35\x2e\x33\x36\x2d\ +\x36\x2e\x38\x32\x36\x36\x36\x37\x68\x2d\x34\x32\x2e\x36\x36\x36\ +\x36\x36\x36\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\ +\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x30\x2d\x32\x31\ +\x2e\x33\x33\x33\x33\x33\x34\x20\x32\x30\x2e\x30\x35\x33\x33\x33\ +\x33\x41\x32\x39\x38\x2e\x36\x36\x36\x36\x36\x37\x20\x32\x39\x38\ +\x2e\x36\x36\x36\x36\x36\x37\x20\x30\x20\x31\x20\x31\x20\x35\x31\ +\x32\x20\x32\x31\x33\x2e\x33\x33\x33\x33\x33\x33\x61\x32\x39\x35\ +\x2e\x36\x38\x20\x32\x39\x35\x2e\x36\x38\x20\x30\x20\x30\x20\x31\ +\x20\x32\x31\x30\x2e\x33\x34\x36\x36\x36\x37\x20\x38\x38\x2e\x33\ +\x32\x6c\x2d\x37\x35\x2e\x39\x34\x36\x36\x36\x37\x20\x37\x35\x2e\ +\x39\x34\x36\x36\x36\x37\x61\x32\x30\x2e\x39\x30\x36\x36\x36\x37\ +\x20\x32\x30\x2e\x39\x30\x36\x36\x36\x37\x20\x30\x20\x30\x20\x30\ +\x2d\x36\x2e\x34\x20\x31\x35\x2e\x33\x36\x76\x31\x32\x2e\x33\x37\ +\x33\x33\x33\x33\x61\x32\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\ +\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x30\x20\x30\x20\x30\x20\x32\ +\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\ +\x33\x34\x68\x32\x31\x33\x2e\x33\x33\x33\x33\x33\x34\x61\x32\x31\ +\x2e\x33\x33\x33\x33\x33\x33\x20\x32\x31\x2e\x33\x33\x33\x33\x33\ +\x33\x20\x30\x20\x30\x20\x30\x20\x32\x31\x2e\x33\x33\x33\x33\x33\ +\x33\x2d\x32\x31\x2e\x33\x33\x33\x33\x33\x34\x7a\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x35\x32\x35\x30\x22\x20\x66\x69\x6c\x6c\x3d\x22\ +\x23\x64\x38\x31\x65\x30\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x03\x5f\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x38\x37\x36\x34\x33\x37\x39\x31\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x31\x35\x36\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x30\x33\x2e\x33\ +\x34\x32\x39\x39\x37\x20\x38\x37\x2e\x30\x31\x33\x38\x39\x36\x61\ +\x34\x37\x2e\x39\x30\x38\x38\x32\x37\x20\x34\x37\x2e\x39\x30\x38\ +\x38\x32\x37\x20\x30\x20\x30\x20\x30\x20\x30\x2d\x37\x30\x2e\x39\ +\x39\x33\x31\x30\x32\x41\x36\x31\x2e\x34\x32\x31\x35\x37\x34\x20\ +\x36\x31\x2e\x34\x32\x31\x35\x37\x34\x20\x30\x20\x30\x20\x30\x20\ +\x37\x32\x33\x2e\x39\x30\x34\x34\x32\x39\x20\x31\x33\x2e\x32\x35\ +\x36\x38\x32\x33\x6c\x2d\x33\x2e\x31\x37\x33\x34\x34\x38\x20\x32\ +\x2e\x37\x36\x33\x39\x37\x31\x4c\x32\x34\x31\x2e\x32\x33\x33\x32\ +\x33\x20\x34\x37\x30\x2e\x39\x34\x39\x39\x31\x35\x6c\x2d\x32\x2e\ +\x34\x30\x35\x36\x37\x38\x20\x31\x2e\x38\x34\x32\x36\x34\x37\x63\ +\x2d\x31\x2e\x36\x33\x37\x39\x30\x39\x20\x31\x2e\x32\x32\x38\x34\ +\x33\x31\x2d\x33\x2e\x31\x37\x33\x34\x34\x38\x20\x32\x2e\x35\x35\ +\x39\x32\x33\x32\x2d\x34\x2e\x36\x30\x36\x36\x31\x38\x20\x33\x2e\ +\x39\x34\x31\x32\x31\x38\x2d\x32\x30\x2e\x30\x31\x33\x31\x39\x36\ +\x20\x31\x38\x2e\x39\x33\x38\x33\x31\x39\x2d\x32\x30\x2e\x39\x38\ +\x35\x37\x30\x34\x20\x34\x38\x2e\x31\x31\x33\x35\x36\x36\x2d\x32\ +\x2e\x38\x36\x36\x33\x34\x20\x36\x38\x2e\x30\x37\x35\x35\x37\x37\ +\x6c\x32\x2e\x38\x31\x35\x31\x35\x35\x20\x32\x2e\x39\x31\x37\x35\ +\x32\x35\x20\x34\x38\x34\x2e\x38\x32\x30\x39\x35\x34\x20\x34\x35\ +\x39\x2e\x39\x34\x35\x32\x31\x36\x63\x32\x32\x2e\x35\x32\x31\x32\ +\x34\x34\x20\x32\x31\x2e\x33\x34\x33\x39\x39\x37\x20\x36\x30\x2e\ +\x30\x39\x30\x37\x37\x33\x20\x32\x31\x2e\x33\x34\x33\x39\x39\x37\ +\x20\x38\x32\x2e\x36\x31\x32\x30\x31\x36\x20\x30\x20\x32\x30\x2e\ +\x30\x31\x33\x31\x39\x36\x2d\x31\x38\x2e\x39\x33\x38\x33\x31\x39\ +\x20\x32\x30\x2e\x39\x38\x35\x37\x30\x34\x2d\x34\x38\x2e\x31\x31\ +\x33\x35\x36\x36\x20\x32\x2e\x38\x36\x36\x33\x34\x2d\x36\x38\x2e\ +\x30\x37\x35\x35\x37\x37\x6c\x2d\x32\x2e\x38\x36\x36\x33\x34\x2d\ +\x32\x2e\x39\x36\x38\x37\x30\x39\x2d\x34\x34\x36\x2e\x38\x39\x33\ +\x31\x33\x32\x2d\x34\x32\x33\x2e\x39\x31\x31\x32\x32\x37\x4c\x38\ +\x30\x33\x2e\x33\x34\x32\x39\x39\x37\x20\x38\x37\x2e\x30\x31\x33\ +\x38\x39\x36\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x33\x30\x33\ +\x31\x33\x33\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x31\x35\x37\x22\ +\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x09\xf9\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x38\x33\x32\x38\ +\x33\x33\x34\x32\x36\x30\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x34\x37\x32\x34\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x32\x30\x30\x22\x20\x68\x65\x69\x67\ +\x68\x74\x3d\x22\x32\x30\x30\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\ +\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x33\x32\x2e\x37\x39\x39\ +\x30\x30\x32\x20\x36\x38\x36\x2e\x30\x38\x31\x30\x31\x34\x6d\x2d\ +\x33\x33\x32\x2e\x37\x39\x39\x30\x30\x32\x20\x30\x61\x33\x33\x32\ +\x2e\x37\x39\x39\x30\x30\x32\x20\x33\x33\x32\x2e\x37\x39\x39\x30\ +\x30\x32\x20\x30\x20\x31\x20\x30\x20\x36\x36\x35\x2e\x35\x39\x38\ +\x30\x30\x33\x20\x30\x20\x33\x33\x32\x2e\x37\x39\x39\x30\x30\x32\ +\x20\x33\x33\x32\x2e\x37\x39\x39\x30\x30\x32\x20\x30\x20\x31\x20\ +\x30\x2d\x36\x36\x35\x2e\x35\x39\x38\x30\x30\x33\x20\x30\x5a\x22\ +\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x46\x34\x45\x46\x43\x39\x22\x20\x70\x2d\x69\x64\x3d\ +\x22\x34\x37\x32\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x38\ +\x33\x2e\x31\x39\x37\x33\x35\x20\x31\x30\x32\x34\x68\x2d\x36\x33\ +\x39\x2e\x39\x39\x38\x30\x38\x41\x31\x34\x31\x2e\x30\x35\x35\x35\ +\x37\x37\x20\x31\x34\x31\x2e\x30\x35\x35\x35\x37\x37\x20\x30\x20\ +\x30\x20\x31\x20\x31\x30\x32\x2e\x33\x39\x39\x36\x39\x33\x20\x38\ +\x38\x33\x2e\x32\x30\x30\x34\x32\x32\x76\x2d\x37\x34\x32\x2e\x33\ +\x39\x37\x37\x37\x32\x41\x31\x34\x31\x2e\x30\x35\x35\x35\x37\x37\ +\x20\x31\x34\x31\x2e\x30\x35\x35\x35\x37\x37\x20\x30\x20\x30\x20\ +\x31\x20\x32\x34\x33\x2e\x31\x39\x39\x32\x37\x20\x30\x2e\x30\x30\ +\x33\x30\x37\x32\x68\x35\x31\x36\x2e\x33\x35\x30\x34\x35\x31\x61\ +\x38\x39\x2e\x30\x38\x37\x37\x33\x33\x20\x38\x39\x2e\x30\x38\x37\ +\x37\x33\x33\x20\x30\x20\x30\x20\x31\x20\x36\x33\x2e\x32\x33\x31\ +\x38\x31\x31\x20\x32\x35\x2e\x35\x39\x39\x39\x32\x33\x6c\x31\x38\ +\x39\x2e\x36\x39\x35\x34\x33\x31\x20\x31\x38\x39\x2e\x36\x39\x35\ +\x34\x33\x31\x41\x33\x38\x2e\x33\x39\x39\x38\x38\x35\x20\x33\x38\ +\x2e\x33\x39\x39\x38\x38\x35\x20\x30\x20\x30\x20\x31\x20\x31\x30\ +\x32\x33\x2e\x39\x39\x36\x39\x32\x38\x20\x32\x34\x33\x2e\x32\x30\ +\x32\x33\x34\x32\x76\x36\x33\x39\x2e\x39\x39\x38\x30\x38\x61\x31\ +\x34\x31\x2e\x30\x35\x35\x35\x37\x37\x20\x31\x34\x31\x2e\x30\x35\ +\x35\x35\x37\x37\x20\x30\x20\x30\x20\x31\x2d\x31\x34\x30\x2e\x37\ +\x39\x39\x35\x37\x38\x20\x31\x34\x30\x2e\x37\x39\x39\x35\x37\x38\ +\x7a\x4d\x32\x34\x33\x2e\x31\x39\x39\x32\x37\x20\x37\x36\x2e\x38\ +\x30\x32\x38\x34\x32\x41\x36\x33\x2e\x39\x39\x39\x38\x30\x38\x20\ +\x36\x33\x2e\x39\x39\x39\x38\x30\x38\x20\x30\x20\x30\x20\x30\x20\ +\x31\x37\x39\x2e\x31\x39\x39\x34\x36\x32\x20\x31\x34\x30\x2e\x38\ +\x30\x32\x36\x35\x76\x37\x34\x32\x2e\x33\x39\x37\x37\x37\x32\x41\ +\x36\x33\x2e\x39\x39\x39\x38\x30\x38\x20\x36\x33\x2e\x39\x39\x39\ +\x38\x30\x38\x20\x30\x20\x30\x20\x30\x20\x32\x34\x33\x2e\x31\x39\ +\x39\x32\x37\x20\x39\x34\x37\x2e\x32\x30\x30\x32\x33\x68\x36\x33\ +\x39\x2e\x39\x39\x38\x30\x38\x61\x36\x33\x2e\x39\x39\x39\x38\x30\ +\x38\x20\x36\x33\x2e\x39\x39\x39\x38\x30\x38\x20\x30\x20\x30\x20\ +\x30\x20\x36\x33\x2e\x39\x39\x39\x38\x30\x38\x2d\x36\x33\x2e\x39\ +\x39\x39\x38\x30\x38\x56\x32\x35\x39\x2e\x30\x37\x34\x32\x39\x35\ +\x6c\x2d\x31\x37\x39\x2e\x31\x39\x39\x34\x36\x32\x2d\x31\x37\x39\ +\x2e\x31\x39\x39\x34\x36\x33\x61\x31\x32\x2e\x37\x39\x39\x39\x36\ +\x32\x20\x31\x32\x2e\x37\x39\x39\x39\x36\x32\x20\x30\x20\x30\x20\ +\x30\x2d\x38\x2e\x34\x34\x37\x39\x37\x35\x2d\x33\x2e\x30\x37\x31\ +\x39\x39\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x34\x33\x34\x32\x36\x30\x22\x20\x70\ +\x2d\x69\x64\x3d\x22\x34\x37\x32\x36\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\ +\x22\x4d\x32\x39\x32\x2e\x30\x39\x35\x31\x32\x34\x20\x35\x31\x32\ +\x2e\x30\x30\x31\x35\x33\x36\x63\x30\x2d\x37\x33\x2e\x37\x32\x37\ +\x37\x37\x39\x20\x34\x34\x2e\x37\x39\x39\x38\x36\x36\x2d\x31\x31\ +\x38\x2e\x30\x31\x35\x36\x34\x36\x20\x31\x30\x32\x2e\x33\x39\x39\ +\x36\x39\x33\x2d\x31\x31\x38\x2e\x30\x31\x35\x36\x34\x36\x61\x38\ +\x37\x2e\x30\x33\x39\x37\x33\x39\x20\x38\x37\x2e\x30\x33\x39\x37\ +\x33\x39\x20\x30\x20\x30\x20\x31\x20\x36\x34\x2e\x32\x35\x35\x38\ +\x30\x37\x20\x32\x38\x2e\x36\x37\x31\x39\x31\x34\x6c\x2d\x31\x39\ +\x2e\x34\x35\x35\x39\x34\x32\x20\x32\x32\x2e\x37\x38\x33\x39\x33\ +\x32\x61\x36\x30\x2e\x31\x35\x39\x38\x32\x20\x36\x30\x2e\x31\x35\ +\x39\x38\x32\x20\x30\x20\x30\x20\x30\x2d\x34\x34\x2e\x32\x38\x37\ +\x38\x36\x37\x2d\x32\x30\x2e\x32\x32\x33\x39\x34\x63\x2d\x33\x38\ +\x2e\x39\x31\x31\x38\x38\x33\x20\x30\x2d\x36\x36\x2e\x30\x34\x37\ +\x38\x30\x32\x20\x33\x32\x2e\x35\x31\x31\x39\x30\x32\x2d\x36\x36\ +\x2e\x30\x34\x37\x38\x30\x32\x20\x38\x35\x2e\x37\x35\x39\x37\x34\ +\x33\x73\x32\x35\x2e\x35\x39\x39\x39\x32\x33\x20\x38\x36\x2e\x35\ +\x32\x37\x37\x34\x20\x36\x35\x2e\x30\x32\x33\x38\x30\x35\x20\x38\ +\x36\x2e\x35\x32\x37\x37\x34\x61\x36\x35\x2e\x37\x39\x31\x38\x30\ +\x33\x20\x36\x35\x2e\x37\x39\x31\x38\x30\x33\x20\x30\x20\x30\x20\ +\x30\x20\x35\x31\x2e\x31\x39\x39\x38\x34\x36\x2d\x32\x34\x2e\x30\ +\x36\x33\x39\x32\x37\x6c\x31\x38\x2e\x39\x34\x33\x39\x34\x34\x20\ +\x32\x32\x2e\x35\x32\x37\x39\x33\x32\x61\x38\x39\x2e\x30\x38\x37\ +\x37\x33\x33\x20\x38\x39\x2e\x30\x38\x37\x37\x33\x33\x20\x30\x20\ +\x30\x20\x31\x2d\x37\x30\x2e\x33\x39\x39\x37\x38\x39\x20\x33\x32\ +\x2e\x35\x31\x31\x39\x30\x33\x63\x2d\x35\x38\x2e\x31\x31\x31\x38\ +\x32\x36\x20\x30\x2e\x37\x36\x37\x39\x39\x38\x2d\x31\x30\x31\x2e\ +\x36\x33\x31\x36\x39\x35\x2d\x34\x31\x2e\x37\x32\x37\x38\x37\x35\ +\x2d\x31\x30\x31\x2e\x36\x33\x31\x36\x39\x35\x2d\x31\x31\x36\x2e\ +\x34\x37\x39\x36\x35\x31\x7a\x4d\x34\x37\x38\x2e\x32\x30\x36\x35\ +\x36\x35\x20\x35\x39\x35\x2e\x39\x36\x39\x32\x38\x34\x6c\x32\x30\ +\x2e\x39\x39\x31\x39\x33\x37\x2d\x32\x35\x2e\x35\x39\x39\x39\x32\ +\x33\x61\x38\x37\x2e\x35\x35\x31\x37\x33\x37\x20\x38\x37\x2e\x35\ +\x35\x31\x37\x33\x37\x20\x30\x20\x30\x20\x30\x20\x36\x30\x2e\x31\ +\x35\x39\x38\x32\x20\x32\x35\x2e\x35\x39\x39\x39\x32\x33\x63\x32\ +\x37\x2e\x33\x39\x31\x39\x31\x38\x20\x30\x20\x34\x32\x2e\x37\x35\ +\x31\x38\x37\x32\x2d\x31\x32\x2e\x37\x39\x39\x39\x36\x32\x20\x34\ +\x32\x2e\x37\x35\x31\x38\x37\x32\x2d\x33\x31\x2e\x39\x39\x39\x39\ +\x30\x34\x73\x2d\x31\x35\x2e\x33\x35\x39\x39\x35\x34\x2d\x32\x37\ +\x2e\x31\x33\x35\x39\x31\x39\x2d\x33\x36\x2e\x33\x35\x31\x38\x39\ +\x31\x2d\x33\x36\x2e\x33\x35\x31\x38\x39\x31\x6c\x2d\x33\x31\x2e\ +\x32\x33\x31\x39\x30\x37\x2d\x31\x33\x2e\x35\x36\x37\x39\x35\x39\ +\x61\x36\x35\x2e\x30\x32\x33\x38\x30\x35\x20\x36\x35\x2e\x30\x32\ +\x33\x38\x30\x35\x20\x30\x20\x30\x20\x31\x2d\x34\x36\x2e\x30\x37\ +\x39\x38\x36\x31\x2d\x35\x39\x2e\x31\x33\x35\x38\x32\x33\x41\x36\ +\x37\x2e\x30\x37\x31\x37\x39\x39\x20\x36\x37\x2e\x30\x37\x31\x37\ +\x39\x39\x20\x30\x20\x30\x20\x31\x20\x35\x36\x33\x2e\x31\x39\x38\ +\x33\x31\x20\x33\x39\x34\x2e\x37\x35\x33\x38\x38\x38\x61\x39\x36\ +\x2e\x37\x36\x37\x37\x31\x20\x39\x36\x2e\x37\x36\x37\x37\x31\x20\ +\x30\x20\x30\x20\x31\x20\x36\x38\x2e\x33\x35\x31\x37\x39\x35\x20\ +\x32\x38\x2e\x36\x37\x31\x39\x31\x34\x6c\x2d\x31\x38\x2e\x36\x38\ +\x37\x39\x34\x34\x20\x32\x32\x2e\x37\x38\x33\x39\x33\x31\x61\x37\ +\x32\x2e\x31\x39\x31\x37\x38\x33\x20\x37\x32\x2e\x31\x39\x31\x37\ +\x38\x33\x20\x30\x20\x30\x20\x30\x2d\x34\x39\x2e\x36\x36\x33\x38\ +\x35\x31\x2d\x32\x30\x2e\x32\x32\x33\x39\x33\x39\x63\x2d\x32\x33\ +\x2e\x30\x33\x39\x39\x33\x31\x20\x30\x2d\x33\x38\x2e\x31\x34\x33\ +\x38\x38\x36\x20\x31\x31\x2e\x30\x30\x37\x39\x36\x37\x2d\x33\x38\ +\x2e\x31\x34\x33\x38\x38\x35\x20\x32\x39\x2e\x31\x38\x33\x39\x31\ +\x32\x73\x31\x38\x2e\x31\x37\x35\x39\x34\x35\x20\x32\x35\x2e\x35\ +\x39\x39\x39\x32\x33\x20\x33\x36\x2e\x36\x30\x37\x38\x39\x20\x33\ +\x34\x2e\x30\x34\x37\x38\x39\x38\x6c\x33\x30\x2e\x39\x37\x35\x39\ +\x30\x37\x20\x31\x33\x2e\x33\x31\x31\x39\x36\x41\x36\x33\x2e\x32\ +\x33\x31\x38\x31\x20\x36\x33\x2e\x32\x33\x31\x38\x31\x20\x30\x20\ +\x30\x20\x31\x20\x36\x33\x38\x2e\x32\x30\x36\x30\x38\x35\x20\x35\ +\x36\x33\x2e\x32\x30\x31\x33\x38\x32\x63\x30\x20\x33\x36\x2e\x33\ +\x35\x31\x38\x39\x31\x2d\x32\x39\x2e\x39\x35\x31\x39\x31\x20\x36\ +\x35\x2e\x37\x39\x31\x38\x30\x33\x2d\x37\x39\x2e\x36\x31\x35\x37\ +\x36\x31\x20\x36\x35\x2e\x37\x39\x31\x38\x30\x33\x61\x31\x31\x32\ +\x2e\x36\x33\x39\x36\x36\x32\x20\x31\x31\x32\x2e\x36\x33\x39\x36\ +\x36\x32\x20\x30\x20\x30\x20\x31\x2d\x38\x30\x2e\x33\x38\x33\x37\ +\x35\x39\x2d\x33\x33\x2e\x30\x32\x33\x39\x30\x31\x7a\x4d\x36\x35\ +\x30\x2e\x37\x35\x30\x30\x34\x38\x20\x33\x39\x39\x2e\x31\x30\x35\ +\x38\x37\x35\x68\x33\x37\x2e\x38\x38\x37\x38\x38\x36\x6c\x33\x33\ +\x2e\x35\x33\x35\x38\x39\x39\x20\x31\x31\x36\x2e\x39\x39\x31\x36\ +\x34\x39\x63\x37\x2e\x36\x37\x39\x39\x37\x37\x20\x32\x35\x2e\x35\ +\x39\x39\x39\x32\x33\x20\x31\x32\x2e\x35\x34\x33\x39\x36\x32\x20\ +\x34\x37\x2e\x38\x37\x31\x38\x35\x36\x20\x32\x30\x2e\x34\x37\x39\ +\x39\x33\x39\x20\x37\x33\x2e\x39\x38\x33\x37\x37\x38\x68\x31\x2e\ +\x35\x33\x35\x39\x39\x35\x63\x37\x2e\x36\x37\x39\x39\x37\x37\x2d\ +\x32\x35\x2e\x35\x39\x39\x39\x32\x33\x20\x31\x33\x2e\x33\x31\x31\ +\x39\x36\x2d\x34\x38\x2e\x31\x32\x37\x38\x35\x36\x20\x32\x30\x2e\ +\x34\x37\x39\x39\x33\x39\x2d\x37\x33\x2e\x39\x38\x33\x37\x37\x38\ +\x6c\x33\x33\x2e\x35\x33\x35\x38\x39\x39\x2d\x31\x31\x36\x2e\x39\ +\x39\x31\x36\x34\x39\x68\x33\x36\x2e\x33\x35\x31\x38\x39\x31\x6c\ +\x2d\x37\x30\x2e\x36\x35\x35\x37\x38\x38\x20\x32\x32\x36\x2e\x30\ +\x34\x37\x33\x32\x32\x68\x2d\x34\x32\x2e\x32\x33\x39\x38\x37\x33\ +\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x34\x33\x34\x32\x36\x30\x22\x20\x70\x2d\x69\ +\x64\x3d\x22\x34\x37\x32\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x08\x37\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x37\x33\x37\x39\x31\x30\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x35\x30\x30\x32\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x30\x2e\x38\x35\ +\x33\x33\x33\x33\x20\x31\x32\x39\x2e\x37\x30\x36\x36\x36\x37\x63\ +\x30\x2d\x32\x38\x2e\x31\x36\x20\x32\x32\x2e\x31\x38\x36\x36\x36\ +\x37\x2d\x35\x31\x2e\x32\x20\x34\x39\x2e\x34\x39\x33\x33\x33\x34\ +\x2d\x35\x31\x2e\x32\x68\x33\x33\x36\x2e\x32\x31\x33\x33\x33\x33\ +\x63\x31\x39\x2e\x36\x32\x36\x36\x36\x37\x20\x30\x20\x33\x37\x2e\ +\x35\x34\x36\x36\x36\x37\x20\x31\x31\x2e\x39\x34\x36\x36\x36\x37\ +\x20\x34\x35\x2e\x32\x32\x36\x36\x36\x37\x20\x33\x30\x2e\x37\x32\ +\x6c\x32\x33\x2e\x38\x39\x33\x33\x33\x33\x20\x35\x38\x2e\x38\x38\ +\x68\x34\x33\x38\x2e\x36\x31\x33\x33\x33\x33\x63\x31\x32\x2e\x38\ +\x20\x30\x20\x32\x35\x2e\x36\x20\x35\x2e\x31\x32\x20\x33\x34\x2e\ +\x31\x33\x33\x33\x33\x34\x20\x31\x35\x2e\x33\x36\x20\x39\x2e\x33\ +\x38\x36\x36\x36\x37\x20\x39\x2e\x33\x38\x36\x36\x36\x37\x20\x31\ +\x34\x2e\x35\x30\x36\x36\x36\x37\x20\x32\x32\x2e\x31\x38\x36\x36\ +\x36\x37\x20\x31\x34\x2e\x35\x30\x36\x36\x36\x36\x20\x33\x35\x2e\ +\x38\x34\x76\x36\x37\x34\x2e\x31\x33\x33\x33\x33\x33\x63\x30\x20\ +\x31\x33\x2e\x36\x35\x33\x33\x33\x33\x2d\x35\x2e\x31\x32\x20\x32\ +\x36\x2e\x34\x35\x33\x33\x33\x33\x2d\x31\x34\x2e\x35\x30\x36\x36\ +\x36\x36\x20\x33\x35\x2e\x38\x34\x73\x2d\x32\x31\x2e\x33\x33\x33\ +\x33\x33\x33\x20\x31\x35\x2e\x33\x36\x2d\x33\x34\x2e\x31\x33\x33\ +\x33\x33\x34\x20\x31\x35\x2e\x33\x36\x48\x35\x30\x2e\x33\x34\x36\ +\x36\x36\x37\x63\x2d\x31\x32\x2e\x38\x20\x30\x2d\x32\x35\x2e\x36\ +\x2d\x35\x2e\x31\x32\x2d\x33\x34\x2e\x31\x33\x33\x33\x33\x34\x2d\ +\x31\x35\x2e\x33\x36\x2d\x39\x2e\x33\x38\x36\x36\x36\x37\x2d\x39\ +\x2e\x33\x38\x36\x36\x36\x37\x2d\x31\x34\x2e\x35\x30\x36\x36\x36\ +\x37\x2d\x32\x33\x2e\x30\x34\x2d\x31\x34\x2e\x35\x30\x36\x36\x36\ +\x36\x2d\x33\x35\x2e\x38\x34\x2d\x30\x2e\x38\x35\x33\x33\x33\x33\ +\x20\x30\x2e\x38\x35\x33\x33\x33\x33\x2d\x30\x2e\x38\x35\x33\x33\ +\x33\x33\x2d\x37\x36\x33\x2e\x37\x33\x33\x33\x33\x33\x2d\x30\x2e\ +\x38\x35\x33\x33\x33\x34\x2d\x37\x36\x33\x2e\x37\x33\x33\x33\x33\ +\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x41\x30\x30\ +\x30\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x35\x30\x30\x33\x22\x3e\ +\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\ +\x4d\x39\x35\x2e\x35\x37\x33\x33\x33\x33\x20\x32\x31\x33\x2e\x33\ +\x33\x33\x33\x33\x33\x68\x37\x35\x30\x2e\x39\x33\x33\x33\x33\x34\ +\x63\x33\x34\x2e\x31\x33\x33\x33\x33\x33\x20\x30\x20\x35\x32\x2e\ +\x30\x35\x33\x33\x33\x33\x20\x31\x37\x2e\x39\x32\x20\x35\x32\x2e\ +\x30\x35\x33\x33\x33\x33\x20\x35\x32\x2e\x39\x30\x36\x36\x36\x37\ +\x76\x34\x37\x37\x2e\x38\x36\x36\x36\x36\x37\x63\x30\x20\x33\x35\ +\x2e\x38\x34\x2d\x31\x37\x2e\x30\x36\x36\x36\x36\x37\x20\x35\x32\ +\x2e\x39\x30\x36\x36\x36\x37\x2d\x35\x32\x2e\x30\x35\x33\x33\x33\ +\x33\x20\x35\x32\x2e\x39\x30\x36\x36\x36\x36\x68\x2d\x37\x35\x30\ +\x2e\x39\x33\x33\x33\x33\x34\x63\x2d\x33\x34\x2e\x31\x33\x33\x33\ +\x33\x33\x20\x30\x2d\x35\x32\x2e\x30\x35\x33\x33\x33\x33\x2d\x31\ +\x37\x2e\x39\x32\x2d\x35\x32\x2e\x30\x35\x33\x33\x33\x33\x2d\x35\ +\x32\x2e\x39\x30\x36\x36\x36\x36\x76\x2d\x34\x37\x37\x2e\x38\x36\ +\x36\x36\x36\x37\x63\x30\x2d\x33\x35\x2e\x38\x34\x20\x31\x37\x2e\ +\x39\x32\x2d\x35\x32\x2e\x39\x30\x36\x36\x36\x37\x20\x35\x32\x2e\ +\x30\x35\x33\x33\x33\x33\x2d\x35\x32\x2e\x39\x30\x36\x36\x36\x37\ +\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\ +\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x35\x30\x30\x34\x22\x3e\x3c\ +\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x31\x33\x31\x2e\x34\x31\x33\x33\x33\x33\x20\x32\x39\x33\x2e\x35\ +\x34\x36\x36\x36\x37\x68\x37\x35\x30\x2e\x39\x33\x33\x33\x33\x34\ +\x63\x33\x34\x2e\x31\x33\x33\x33\x33\x33\x20\x30\x20\x34\x39\x2e\ +\x34\x39\x33\x33\x33\x33\x20\x31\x37\x2e\x30\x36\x36\x36\x36\x37\ +\x20\x34\x34\x2e\x33\x37\x33\x33\x33\x33\x20\x35\x31\x2e\x32\x6c\ +\x2d\x36\x36\x2e\x35\x36\x20\x34\x35\x39\x2e\x39\x34\x36\x36\x36\ +\x36\x63\x2d\x35\x2e\x31\x32\x20\x33\x34\x2e\x31\x33\x33\x33\x33\ +\x33\x2d\x32\x34\x2e\x37\x34\x36\x36\x36\x37\x20\x35\x31\x2e\x32\ +\x2d\x35\x39\x2e\x37\x33\x33\x33\x33\x33\x20\x35\x31\x2e\x32\x68\ +\x2d\x37\x33\x33\x2e\x38\x36\x36\x36\x36\x37\x63\x2d\x33\x34\x2e\ +\x31\x33\x33\x33\x33\x33\x20\x30\x2d\x34\x39\x2e\x34\x39\x33\x33\ +\x33\x33\x2d\x31\x37\x2e\x30\x36\x36\x36\x36\x37\x2d\x34\x34\x2e\ +\x33\x37\x33\x33\x33\x33\x2d\x35\x31\x2e\x32\x6c\x34\x39\x2e\x34\ +\x39\x33\x33\x33\x33\x2d\x34\x35\x39\x2e\x39\x34\x36\x36\x36\x36\ +\x63\x35\x2e\x31\x32\x2d\x33\x34\x2e\x39\x38\x36\x36\x36\x37\x20\ +\x32\x35\x2e\x36\x2d\x35\x31\x2e\x32\x20\x35\x39\x2e\x37\x33\x33\ +\x33\x33\x33\x2d\x35\x31\x2e\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x45\x46\x43\x39\x39\x41\x22\x20\x6f\x70\x61\x63\x69\x74\ +\x79\x3d\x22\x2e\x39\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x35\x30\ +\x30\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x31\x33\x39\x2e\x39\x34\x36\x36\x36\x37\x20\ +\x33\x31\x35\x2e\x37\x33\x33\x33\x33\x33\x68\x37\x35\x30\x2e\x39\ +\x33\x33\x33\x33\x33\x63\x33\x34\x2e\x31\x33\x33\x33\x33\x33\x20\ +\x30\x20\x34\x39\x2e\x34\x39\x33\x33\x33\x33\x20\x31\x37\x2e\x30\ +\x36\x36\x36\x36\x37\x20\x34\x34\x2e\x33\x37\x33\x33\x33\x33\x20\ +\x35\x31\x2e\x32\x6c\x2d\x36\x36\x2e\x35\x36\x20\x34\x35\x39\x2e\ +\x39\x34\x36\x36\x36\x37\x63\x2d\x35\x2e\x31\x32\x20\x33\x34\x2e\ +\x31\x33\x33\x33\x33\x33\x2d\x32\x34\x2e\x37\x34\x36\x36\x36\x37\ +\x20\x35\x31\x2e\x32\x2d\x35\x39\x2e\x37\x33\x33\x33\x33\x33\x20\ +\x35\x31\x2e\x32\x68\x2d\x37\x34\x32\x2e\x34\x63\x2d\x33\x34\x2e\ +\x31\x33\x33\x33\x33\x33\x20\x30\x2d\x34\x39\x2e\x34\x39\x33\x33\ +\x33\x33\x2d\x31\x37\x2e\x30\x36\x36\x36\x36\x37\x2d\x34\x34\x2e\ +\x33\x37\x33\x33\x33\x33\x2d\x35\x31\x2e\x32\x4c\x38\x30\x2e\x32\ +\x31\x33\x33\x33\x33\x20\x33\x36\x36\x2e\x39\x33\x33\x33\x33\x33\ +\x63\x35\x2e\x31\x32\x2d\x33\x34\x2e\x39\x38\x36\x36\x36\x37\x20\ +\x32\x35\x2e\x36\x2d\x35\x31\x2e\x32\x20\x35\x39\x2e\x37\x33\x33\ +\x33\x33\x34\x2d\x35\x31\x2e\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\ +\x32\x35\x30\x30\x36\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x33\x31\x2e\x34\x31\x33\x33\ +\x33\x33\x20\x34\x34\x38\x2e\x38\x35\x33\x33\x33\x33\x68\x38\x34\ +\x33\x2e\x39\x34\x36\x36\x36\x37\x63\x33\x32\x2e\x34\x32\x36\x36\ +\x36\x37\x20\x30\x20\x34\x39\x2e\x34\x39\x33\x33\x33\x33\x20\x31\ +\x31\x2e\x30\x39\x33\x33\x33\x33\x20\x34\x39\x2e\x34\x39\x33\x33\ +\x33\x33\x20\x33\x34\x2e\x31\x33\x33\x33\x33\x34\x6c\x2d\x38\x31\ +\x2e\x39\x32\x20\x34\x32\x37\x2e\x35\x32\x63\x30\x20\x32\x32\x2e\ +\x31\x38\x36\x36\x36\x37\x2d\x31\x36\x2e\x32\x31\x33\x33\x33\x33\ +\x20\x33\x34\x2e\x31\x33\x33\x33\x33\x33\x2d\x34\x39\x2e\x34\x39\ +\x33\x33\x33\x33\x20\x33\x34\x2e\x31\x33\x33\x33\x33\x33\x48\x34\ +\x39\x2e\x34\x39\x33\x33\x33\x33\x63\x2d\x33\x32\x2e\x34\x32\x36\ +\x36\x36\x37\x20\x30\x2d\x34\x39\x2e\x34\x39\x33\x33\x33\x33\x2d\ +\x31\x31\x2e\x30\x39\x33\x33\x33\x33\x2d\x34\x39\x2e\x34\x39\x33\ +\x33\x33\x33\x2d\x33\x34\x2e\x31\x33\x33\x33\x33\x33\x6c\x38\x31\ +\x2e\x39\x32\x2d\x34\x32\x37\x2e\x35\x32\x63\x30\x2d\x32\x33\x2e\ +\x30\x34\x20\x31\x36\x2e\x32\x31\x33\x33\x33\x33\x2d\x33\x34\x2e\ +\x31\x33\x33\x33\x33\x33\x20\x34\x39\x2e\x34\x39\x33\x33\x33\x33\ +\x2d\x33\x34\x2e\x31\x33\x33\x33\x33\x34\x7a\x22\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x46\x46\x43\x41\x32\x38\x22\x20\x70\x2d\x69\x64\ +\x3d\x22\x32\x35\x30\x30\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x07\xb2\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\ +\x72\x61\x70\x68\x69\x63\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\ +\x44\x54\x44\x2f\x73\x76\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\ +\x0a\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x36\x39\x38\x33\x32\x38\ +\x33\x35\x33\x31\x31\x32\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\ +\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\ +\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\x22\x20\x76\x65\x72\ +\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\ +\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x70\x2d\ +\x69\x64\x3d\x22\x35\x37\x36\x37\x22\x0d\x0a\x20\x20\x20\x20\x20\ +\x77\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\ +\x74\x3d\x22\x31\x36\x22\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\ +\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x32\x20\x31\x36\x68\x37\x33\ +\x36\x76\x39\x39\x32\x48\x31\x31\x32\x7a\x22\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x41\x45\x44\x37\x39\x36\x22\x20\x70\x2d\x69\x64\x3d\ +\x22\x35\x37\x36\x38\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\ +\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x39\ +\x32\x2e\x31\x37\x36\x20\x38\x34\x36\x2e\x30\x38\x63\x38\x2e\x30\ +\x33\x32\x20\x34\x2e\x35\x34\x34\x20\x31\x38\x2e\x32\x30\x38\x20\ +\x32\x2e\x30\x33\x32\x20\x32\x32\x2e\x37\x30\x34\x2d\x35\x2e\x36\ +\x31\x36\x6c\x31\x35\x39\x2e\x33\x34\x34\x2d\x32\x35\x36\x2e\x34\ +\x39\x36\x63\x34\x2e\x34\x39\x36\x2d\x37\x2e\x36\x34\x38\x20\x31\ +\x2e\x36\x34\x38\x2d\x31\x37\x2e\x35\x30\x34\x2d\x36\x2e\x33\x38\ +\x34\x2d\x32\x32\x2e\x30\x34\x38\x73\x2d\x31\x38\x2e\x32\x30\x38\ +\x2d\x32\x2e\x30\x33\x32\x2d\x32\x32\x2e\x37\x30\x34\x20\x35\x2e\ +\x36\x31\x36\x6c\x2d\x31\x35\x39\x2e\x33\x34\x34\x20\x32\x35\x36\ +\x2e\x34\x39\x36\x63\x2d\x34\x2e\x35\x31\x32\x20\x37\x2e\x36\x33\ +\x32\x2d\x31\x2e\x36\x34\x38\x20\x31\x37\x2e\x35\x30\x34\x20\x36\ +\x2e\x33\x38\x34\x20\x32\x32\x2e\x30\x34\x38\x7a\x20\x6d\x32\x30\ +\x34\x2e\x34\x31\x36\x2d\x35\x30\x2e\x36\x37\x32\x61\x31\x35\x2e\ +\x38\x34\x20\x31\x35\x2e\x38\x34\x20\x30\x20\x30\x20\x30\x20\x32\ +\x32\x2e\x34\x36\x34\x20\x30\x6c\x37\x39\x2e\x33\x34\x34\x2d\x37\ +\x39\x2e\x33\x34\x34\x63\x30\x2e\x33\x33\x36\x2d\x30\x2e\x32\x38\ +\x38\x20\x30\x2e\x37\x35\x32\x2d\x30\x2e\x33\x38\x34\x20\x31\x2e\ +\x30\x35\x36\x2d\x30\x2e\x37\x30\x34\x61\x31\x35\x2e\x37\x37\x36\ +\x20\x31\x35\x2e\x37\x37\x36\x20\x30\x20\x30\x20\x30\x20\x34\x2e\ +\x35\x39\x32\x2d\x31\x31\x2e\x35\x32\x20\x31\x35\x2e\x38\x30\x38\ +\x20\x31\x35\x2e\x38\x30\x38\x20\x30\x20\x30\x20\x30\x2d\x34\x2e\ +\x36\x35\x36\x2d\x31\x31\x2e\x32\x36\x34\x63\x2d\x30\x2e\x32\x32\ +\x34\x2d\x30\x2e\x32\x32\x34\x2d\x30\x2e\x35\x31\x32\x2d\x30\x2e\ +\x33\x30\x34\x2d\x30\x2e\x37\x35\x32\x2d\x30\x2e\x34\x39\x36\x6c\ +\x2d\x37\x39\x2e\x35\x35\x32\x2d\x37\x39\x2e\x35\x35\x32\x61\x31\ +\x35\x2e\x38\x37\x32\x20\x31\x35\x2e\x38\x37\x32\x20\x30\x20\x31\ +\x20\x30\x2d\x32\x32\x2e\x34\x36\x34\x20\x32\x32\x2e\x34\x36\x34\ +\x6c\x36\x38\x2e\x39\x34\x34\x20\x36\x38\x2e\x39\x34\x34\x2d\x36\ +\x38\x2e\x39\x39\x32\x20\x36\x38\x2e\x39\x39\x32\x61\x31\x35\x2e\ +\x38\x38\x38\x20\x31\x35\x2e\x38\x38\x38\x20\x30\x20\x30\x20\x30\ +\x20\x30\x2e\x30\x31\x36\x20\x32\x32\x2e\x34\x38\x7a\x4d\x32\x36\ +\x31\x2e\x36\x20\x37\x31\x36\x2e\x30\x36\x34\x6c\x37\x39\x2e\x33\ +\x32\x38\x20\x37\x39\x2e\x33\x34\x34\x61\x31\x35\x2e\x38\x34\x20\ +\x31\x35\x2e\x38\x34\x20\x30\x20\x30\x20\x30\x20\x32\x32\x2e\x34\ +\x36\x34\x20\x30\x20\x31\x35\x2e\x38\x34\x20\x31\x35\x2e\x38\x34\ +\x20\x30\x20\x30\x20\x30\x20\x30\x2d\x32\x32\x2e\x34\x36\x34\x4c\ +\x32\x39\x34\x2e\x34\x20\x37\x30\x33\x2e\x39\x35\x32\x6c\x36\x38\ +\x2e\x39\x34\x34\x2d\x36\x38\x2e\x39\x34\x34\x61\x31\x35\x2e\x38\ +\x37\x32\x20\x31\x35\x2e\x38\x37\x32\x20\x30\x20\x31\x20\x30\x2d\ +\x32\x32\x2e\x34\x36\x34\x2d\x32\x32\x2e\x34\x36\x34\x6c\x2d\x37\ +\x39\x2e\x35\x35\x32\x20\x37\x39\x2e\x35\x35\x32\x63\x2d\x30\x2e\ +\x32\x32\x34\x20\x30\x2e\x32\x30\x38\x2d\x30\x2e\x35\x32\x38\x20\ +\x30\x2e\x32\x38\x38\x2d\x30\x2e\x37\x33\x36\x20\x30\x2e\x34\x39\ +\x36\x61\x31\x35\x2e\x37\x34\x34\x20\x31\x35\x2e\x37\x34\x34\x20\ +\x30\x20\x30\x20\x30\x2d\x34\x2e\x36\x35\x36\x20\x31\x31\x2e\x32\ +\x36\x34\x20\x31\x35\x2e\x38\x30\x38\x20\x31\x35\x2e\x38\x30\x38\ +\x20\x30\x20\x30\x20\x30\x20\x34\x2e\x35\x39\x32\x20\x31\x31\x2e\ +\x35\x32\x63\x30\x2e\x33\x32\x20\x30\x2e\x32\x38\x38\x20\x30\x2e\ +\x37\x33\x36\x20\x30\x2e\x34\x20\x31\x2e\x30\x37\x32\x20\x30\x2e\ +\x36\x38\x38\x7a\x4d\x38\x39\x36\x20\x31\x32\x38\x68\x2d\x33\x32\ +\x56\x33\x32\x61\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x30\x2d\ +\x33\x32\x2d\x33\x32\x48\x31\x32\x38\x61\x33\x32\x20\x33\x32\x20\ +\x30\x20\x30\x20\x30\x2d\x33\x32\x20\x33\x32\x76\x39\x36\x30\x61\ +\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x30\x20\x33\x32\x20\x33\ +\x32\x68\x37\x30\x34\x61\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\ +\x30\x20\x33\x32\x2d\x33\x32\x56\x34\x31\x36\x68\x33\x32\x61\x33\ +\x32\x20\x33\x32\x20\x30\x20\x30\x20\x30\x20\x33\x32\x2d\x33\x32\ +\x56\x31\x36\x30\x61\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x30\ +\x2d\x33\x32\x2d\x33\x32\x7a\x20\x6d\x2d\x36\x34\x20\x30\x48\x33\ +\x35\x32\x61\x33\x32\x20\x33\x32\x20\x30\x20\x30\x20\x30\x2d\x33\ +\x32\x20\x33\x32\x76\x32\x32\x34\x61\x33\x32\x20\x33\x32\x20\x30\ +\x20\x30\x20\x30\x20\x33\x32\x20\x33\x32\x68\x34\x38\x30\x76\x35\ +\x37\x36\x48\x31\x32\x38\x56\x33\x32\x68\x37\x30\x34\x76\x39\x36\ +\x7a\x22\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\ +\x6c\x6c\x3d\x22\x23\x32\x42\x33\x31\x33\x39\x22\x20\x70\x2d\x69\ +\x64\x3d\x22\x35\x37\x36\x39\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x0d\x0a\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\ +\x33\x35\x32\x20\x31\x36\x30\x68\x35\x34\x34\x76\x32\x32\x34\x48\ +\x33\x35\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\ +\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x37\x37\x30\x22\ +\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x20\x20\x20\x20\x3c\x70\ +\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x38\x37\x2e\x36\x39\x36\x20\ +\x32\x31\x33\x2e\x38\x32\x34\x68\x33\x35\x2e\x31\x38\x34\x76\x33\ +\x39\x2e\x36\x36\x34\x68\x33\x32\x2e\x39\x34\x34\x76\x2d\x33\x39\ +\x2e\x36\x36\x34\x68\x33\x35\x2e\x31\x38\x34\x56\x33\x32\x38\x68\ +\x2d\x33\x35\x2e\x31\x38\x34\x76\x2d\x34\x35\x2e\x32\x36\x34\x48\ +\x34\x32\x32\x2e\x38\x38\x56\x33\x32\x38\x68\x2d\x33\x35\x2e\x31\ +\x38\x34\x76\x2d\x31\x31\x34\x2e\x31\x37\x36\x7a\x4d\x35\x33\x35\ +\x2e\x38\x35\x36\x20\x32\x34\x33\x2e\x30\x38\x38\x68\x2d\x33\x31\ +\x2e\x39\x38\x34\x76\x2d\x32\x39\x2e\x32\x36\x34\x68\x39\x39\x2e\ +\x31\x33\x36\x76\x32\x39\x2e\x32\x36\x34\x68\x2d\x33\x31\x2e\x39\ +\x38\x34\x56\x33\x32\x38\x68\x2d\x33\x35\x2e\x31\x36\x38\x76\x2d\ +\x38\x34\x2e\x39\x31\x32\x7a\x4d\x36\x31\x35\x2e\x38\x37\x32\x20\ +\x32\x31\x33\x2e\x38\x32\x34\x68\x35\x30\x2e\x30\x34\x38\x6c\x31\ +\x36\x2e\x33\x32\x20\x36\x37\x2e\x31\x36\x38\x68\x30\x2e\x33\x32\ +\x6c\x31\x36\x2e\x33\x32\x2d\x36\x37\x2e\x31\x36\x38\x68\x35\x30\ +\x2e\x30\x36\x34\x56\x33\x32\x38\x48\x37\x31\x35\x2e\x36\x38\x76\ +\x2d\x37\x33\x2e\x32\x34\x38\x68\x2d\x30\x2e\x33\x33\x36\x6c\x2d\ +\x31\x39\x2e\x38\x34\x20\x37\x33\x2e\x32\x34\x38\x48\x36\x36\x39\ +\x2e\x32\x38\x6c\x2d\x31\x39\x2e\x38\x32\x34\x2d\x37\x33\x2e\x32\ +\x34\x38\x68\x2d\x30\x2e\x33\x33\x36\x56\x33\x32\x38\x68\x2d\x33\ +\x33\x2e\x32\x34\x38\x76\x2d\x31\x31\x34\x2e\x31\x37\x36\x7a\x4d\ +\x37\x36\x37\x2e\x30\x35\x36\x20\x32\x31\x33\x2e\x38\x32\x34\x68\ +\x33\x35\x2e\x31\x38\x34\x76\x38\x34\x2e\x39\x31\x32\x68\x35\x30\ +\x2e\x35\x32\x38\x56\x33\x32\x38\x68\x2d\x38\x35\x2e\x37\x31\x32\ +\x76\x2d\x31\x31\x34\x2e\x31\x37\x36\x7a\x22\x0d\x0a\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x66\x69\x6c\x6c\x3d\x22\x23\x32\x42\ +\x33\x31\x33\x39\x22\x20\x70\x2d\x69\x64\x3d\x22\x35\x37\x37\x31\ +\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\ +\x3e\ +\x00\x00\x03\x4a\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x31\x32\x36\x33\x32\x35\x37\x39\x37\x32\x30\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x32\x36\x30\x22\x20\x77\ +\x69\x64\x74\x68\x3d\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\ +\x3d\x22\x31\x36\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\ +\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\ +\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x39\x39\x2e\x31\ +\x20\x38\x36\x39\x2e\x36\x6c\x2d\x35\x33\x2d\x33\x30\x35\x2e\x36\ +\x48\x38\x36\x34\x63\x31\x34\x2e\x34\x20\x30\x20\x32\x36\x2d\x31\ +\x31\x2e\x36\x20\x32\x36\x2d\x32\x36\x56\x33\x34\x36\x63\x30\x2d\ +\x31\x34\x2e\x34\x2d\x31\x31\x2e\x36\x2d\x32\x36\x2d\x32\x36\x2d\ +\x32\x36\x48\x36\x31\x38\x56\x31\x33\x38\x63\x30\x2d\x31\x34\x2e\ +\x34\x2d\x31\x31\x2e\x36\x2d\x32\x36\x2d\x32\x36\x2d\x32\x36\x48\ +\x34\x33\x32\x63\x2d\x31\x34\x2e\x34\x20\x30\x2d\x32\x36\x20\x31\ +\x31\x2e\x36\x2d\x32\x36\x20\x32\x36\x76\x31\x38\x32\x48\x31\x36\ +\x30\x63\x2d\x31\x34\x2e\x34\x20\x30\x2d\x32\x36\x20\x31\x31\x2e\ +\x36\x2d\x32\x36\x20\x32\x36\x76\x31\x39\x32\x63\x30\x20\x31\x34\ +\x2e\x34\x20\x31\x31\x2e\x36\x20\x32\x36\x20\x32\x36\x20\x32\x36\ +\x68\x31\x37\x2e\x39\x6c\x2d\x35\x33\x20\x33\x30\x35\x2e\x36\x63\ +\x2d\x30\x2e\x33\x20\x31\x2e\x35\x2d\x30\x2e\x34\x20\x33\x2d\x30\ +\x2e\x34\x20\x34\x2e\x34\x20\x30\x20\x31\x34\x2e\x34\x20\x31\x31\ +\x2e\x36\x20\x32\x36\x20\x32\x36\x20\x32\x36\x68\x37\x32\x33\x63\ +\x31\x2e\x35\x20\x30\x20\x33\x2d\x30\x2e\x31\x20\x34\x2e\x34\x2d\ +\x30\x2e\x34\x20\x31\x34\x2e\x32\x2d\x32\x2e\x34\x20\x32\x33\x2e\ +\x37\x2d\x31\x35\x2e\x39\x20\x32\x31\x2e\x32\x2d\x33\x30\x7a\x4d\ +\x32\x30\x34\x20\x33\x39\x30\x68\x32\x37\x32\x56\x31\x38\x32\x68\ +\x37\x32\x76\x32\x30\x38\x68\x32\x37\x32\x76\x31\x30\x34\x48\x32\ +\x30\x34\x56\x33\x39\x30\x7a\x20\x6d\x34\x36\x38\x20\x34\x34\x30\ +\x56\x36\x37\x34\x63\x30\x2d\x34\x2e\x34\x2d\x33\x2e\x36\x2d\x38\ +\x2d\x38\x2d\x38\x68\x2d\x34\x38\x63\x2d\x34\x2e\x34\x20\x30\x2d\ +\x38\x20\x33\x2e\x36\x2d\x38\x20\x38\x76\x31\x35\x36\x48\x34\x31\ +\x36\x56\x36\x37\x34\x63\x30\x2d\x34\x2e\x34\x2d\x33\x2e\x36\x2d\ +\x38\x2d\x38\x2d\x38\x68\x2d\x34\x38\x63\x2d\x34\x2e\x34\x20\x30\ +\x2d\x38\x20\x33\x2e\x36\x2d\x38\x20\x38\x76\x31\x35\x36\x48\x32\ +\x30\x32\x2e\x38\x6c\x34\x35\x2e\x31\x2d\x32\x36\x30\x48\x37\x37\ +\x36\x6c\x34\x35\x2e\x31\x20\x32\x36\x30\x48\x36\x37\x32\x7a\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x34\x32\x36\x31\x22\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x31\x33\x32\x32\x37\x61\x22\x3e\x3c\x2f\x70\x61\ +\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x03\x14\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x30\x36\x38\x37\x39\x30\x30\x38\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x38\x35\x37\x39\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x35\x31\x32\x20\x31\ +\x32\x38\x63\x32\x31\x31\x2e\x32\x20\x30\x20\x33\x38\x34\x20\x31\ +\x37\x32\x2e\x38\x20\x33\x38\x34\x20\x33\x38\x34\x73\x2d\x31\x37\ +\x32\x2e\x38\x20\x33\x38\x34\x2d\x33\x38\x34\x20\x33\x38\x34\x2d\ +\x33\x38\x34\x2d\x31\x37\x32\x2e\x38\x2d\x33\x38\x34\x2d\x33\x38\ +\x34\x20\x31\x37\x32\x2e\x38\x2d\x33\x38\x34\x20\x33\x38\x34\x2d\ +\x33\x38\x34\x6d\x30\x2d\x36\x34\x43\x32\x36\x32\x2e\x34\x20\x36\ +\x34\x20\x36\x34\x20\x32\x36\x32\x2e\x34\x20\x36\x34\x20\x35\x31\ +\x32\x73\x31\x39\x38\x2e\x34\x20\x34\x34\x38\x20\x34\x34\x38\x20\ +\x34\x34\x38\x20\x34\x34\x38\x2d\x31\x39\x38\x2e\x34\x20\x34\x34\ +\x38\x2d\x34\x34\x38\x2d\x31\x39\x38\x2e\x34\x2d\x34\x34\x38\x2d\ +\x34\x34\x38\x2d\x34\x34\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\ +\x23\x31\x32\x39\x36\x64\x62\x22\x20\x70\x2d\x69\x64\x3d\x22\x38\ +\x35\x38\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x34\x34\x38\x20\x37\x30\x34\x63\x2d\x31\ +\x32\x2e\x38\x20\x30\x2d\x32\x35\x2e\x36\x2d\x36\x2e\x34\x2d\x33\ +\x32\x2d\x31\x32\x2e\x38\x4c\x33\x31\x33\x2e\x36\x20\x35\x38\x38\ +\x2e\x38\x63\x2d\x31\x32\x2e\x38\x2d\x31\x32\x2e\x38\x2d\x31\x32\ +\x2e\x38\x2d\x33\x32\x20\x30\x2d\x34\x34\x2e\x38\x73\x33\x32\x2d\ +\x31\x32\x2e\x38\x20\x34\x34\x2e\x38\x20\x30\x4c\x34\x34\x38\x20\ +\x36\x33\x33\x2e\x36\x6c\x32\x37\x35\x2e\x32\x2d\x32\x37\x35\x2e\ +\x32\x63\x31\x32\x2e\x38\x2d\x31\x32\x2e\x38\x20\x33\x32\x2d\x31\ +\x32\x2e\x38\x20\x34\x34\x2e\x38\x20\x30\x20\x31\x32\x2e\x38\x20\ +\x31\x32\x2e\x38\x20\x31\x32\x2e\x38\x20\x33\x32\x20\x30\x20\x34\ +\x34\x2e\x38\x6c\x2d\x32\x38\x38\x20\x32\x38\x38\x63\x2d\x36\x2e\ +\x34\x20\x31\x32\x2e\x38\x2d\x31\x39\x2e\x32\x20\x31\x32\x2e\x38\ +\x2d\x33\x32\x20\x31\x32\x2e\x38\x7a\x22\x20\x66\x69\x6c\x6c\x3d\ +\x22\x23\x31\x32\x39\x36\x64\x62\x22\x20\x70\x2d\x69\x64\x3d\x22\ +\x38\x35\x38\x31\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\ +\x76\x67\x3e\ +\x00\x00\x03\x75\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x35\x34\x37\x33\x36\x32\x37\x33\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x33\x30\x34\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x36\x31\x2e\x39\ +\x34\x34\x38\x38\x39\x20\x37\x33\x2e\x31\x34\x34\x38\x38\x39\x48\ +\x31\x34\x36\x2e\x32\x38\x39\x37\x37\x38\x61\x33\x36\x2e\x36\x37\ +\x39\x31\x31\x31\x20\x33\x36\x2e\x36\x37\x39\x31\x31\x31\x20\x30\ +\x20\x30\x20\x30\x2d\x33\x36\x2e\x35\x37\x39\x35\x35\x36\x20\x33\ +\x36\x2e\x35\x36\x35\x33\x33\x33\x76\x38\x30\x34\x2e\x35\x37\x39\ +\x35\x35\x36\x61\x33\x36\x2e\x36\x37\x39\x31\x31\x31\x20\x33\x36\ +\x2e\x36\x37\x39\x31\x31\x31\x20\x30\x20\x30\x20\x30\x20\x33\x36\ +\x2e\x35\x37\x39\x35\x35\x36\x20\x33\x36\x2e\x35\x36\x35\x33\x33\ +\x33\x68\x37\x33\x31\x2e\x34\x32\x30\x34\x34\x34\x61\x33\x36\x2e\ +\x36\x37\x39\x31\x31\x31\x20\x33\x36\x2e\x36\x37\x39\x31\x31\x31\ +\x20\x30\x20\x30\x20\x30\x20\x33\x36\x2e\x35\x37\x39\x35\x35\x36\ +\x2d\x33\x36\x2e\x35\x36\x35\x33\x33\x33\x76\x2d\x35\x38\x38\x2e\ +\x38\x4c\x36\x36\x31\x2e\x39\x34\x34\x38\x38\x39\x20\x37\x33\x2e\ +\x31\x34\x34\x38\x38\x39\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x46\x43\x43\x43\x35\x41\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x33\ +\x30\x35\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x36\x36\x31\x2e\x39\x34\x34\x38\x38\x39\x20\ +\x32\x38\x38\x2e\x39\x31\x30\x32\x32\x32\x61\x33\x36\x2e\x36\x37\ +\x39\x31\x31\x31\x20\x33\x36\x2e\x36\x37\x39\x31\x31\x31\x20\x30\ +\x20\x30\x20\x30\x20\x33\x36\x2e\x35\x36\x35\x33\x33\x33\x20\x33\ +\x36\x2e\x35\x37\x39\x35\x35\x36\x68\x32\x31\x35\x2e\x37\x37\x39\ +\x35\x35\x36\x4c\x36\x36\x31\x2e\x39\x34\x34\x38\x38\x39\x20\x37\ +\x33\x2e\x31\x34\x34\x38\x38\x39\x76\x32\x31\x35\x2e\x37\x36\x35\ +\x33\x33\x33\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x44\ +\x39\x38\x30\x22\x20\x70\x2d\x69\x64\x3d\x22\x34\x33\x30\x36\x22\ +\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\ +\x22\x4d\x33\x34\x37\x2e\x34\x33\x34\x36\x36\x37\x20\x34\x32\x30\ +\x2e\x35\x36\x35\x33\x33\x33\x56\x34\x38\x36\x2e\x34\x68\x31\x31\ +\x38\x2e\x38\x35\x35\x31\x31\x31\x76\x32\x38\x38\x2e\x39\x31\x30\ +\x32\x32\x32\x68\x39\x31\x2e\x34\x32\x30\x34\x34\x34\x56\x34\x38\ +\x36\x2e\x34\x68\x31\x31\x38\x2e\x38\x35\x35\x31\x31\x31\x76\x2d\ +\x36\x35\x2e\x38\x33\x34\x36\x36\x37\x7a\x22\x20\x66\x69\x6c\x6c\ +\x3d\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\x70\x2d\x69\x64\x3d\ +\x22\x34\x33\x30\x37\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\ +\x73\x76\x67\x3e\ +\x00\x00\x09\x07\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x39\x30\x39\x33\x32\x37\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x37\x30\x32\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x39\x34\x32\x2e\ +\x30\x38\x20\x31\x30\x32\x34\x48\x38\x31\x2e\x39\x32\x41\x38\x31\ +\x2e\x39\x32\x20\x38\x31\x2e\x39\x32\x20\x30\x20\x30\x20\x31\x20\ +\x30\x20\x39\x34\x32\x2e\x30\x38\x56\x38\x31\x2e\x39\x32\x41\x38\ +\x31\x2e\x39\x32\x20\x38\x31\x2e\x39\x32\x20\x30\x20\x30\x20\x31\ +\x20\x38\x31\x2e\x39\x32\x20\x30\x68\x38\x36\x30\x2e\x31\x36\x41\ +\x38\x31\x2e\x39\x32\x20\x38\x31\x2e\x39\x32\x20\x30\x20\x30\x20\ +\x31\x20\x31\x30\x32\x34\x20\x38\x31\x2e\x39\x32\x76\x38\x36\x30\ +\x2e\x31\x36\x41\x38\x31\x2e\x39\x32\x20\x38\x31\x2e\x39\x32\x20\ +\x30\x20\x30\x20\x31\x20\x39\x34\x32\x2e\x30\x38\x20\x31\x30\x32\ +\x34\x7a\x4d\x38\x31\x2e\x39\x32\x20\x36\x38\x2e\x34\x39\x38\x32\ +\x38\x36\x61\x31\x33\x2e\x34\x32\x31\x37\x31\x34\x20\x31\x33\x2e\ +\x34\x32\x31\x37\x31\x34\x20\x30\x20\x30\x20\x30\x2d\x31\x33\x2e\ +\x34\x35\x38\x32\x38\x36\x20\x31\x33\x2e\x34\x32\x31\x37\x31\x34\ +\x76\x38\x36\x30\x2e\x31\x36\x63\x30\x20\x37\x2e\x34\x32\x34\x20\ +\x36\x2e\x30\x33\x34\x32\x38\x36\x20\x31\x33\x2e\x34\x32\x31\x37\ +\x31\x34\x20\x31\x33\x2e\x34\x35\x38\x32\x38\x36\x20\x31\x33\x2e\ +\x34\x32\x31\x37\x31\x34\x68\x38\x36\x30\x2e\x31\x36\x61\x31\x33\ +\x2e\x34\x35\x38\x32\x38\x36\x20\x31\x33\x2e\x34\x35\x38\x32\x38\ +\x36\x20\x30\x20\x30\x20\x30\x20\x31\x33\x2e\x34\x32\x31\x37\x31\ +\x34\x2d\x31\x33\x2e\x34\x32\x31\x37\x31\x34\x56\x38\x31\x2e\x39\ +\x32\x61\x31\x33\x2e\x34\x35\x38\x32\x38\x36\x20\x31\x33\x2e\x34\ +\x35\x38\x32\x38\x36\x20\x30\x20\x30\x20\x30\x2d\x31\x33\x2e\x34\ +\x32\x31\x37\x31\x34\x2d\x31\x33\x2e\x34\x32\x31\x37\x31\x34\x48\ +\x38\x31\x2e\x39\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x43\ +\x35\x30\x39\x33\x35\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x37\x30\ +\x32\x32\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\ +\x20\x64\x3d\x22\x4d\x34\x35\x32\x2e\x33\x38\x38\x35\x37\x31\x20\ +\x36\x30\x37\x2e\x30\x38\x35\x37\x31\x34\x63\x2d\x32\x2e\x31\x39\ +\x34\x32\x38\x36\x2d\x32\x32\x2e\x38\x32\x30\x35\x37\x31\x2d\x31\ +\x2e\x30\x39\x37\x31\x34\x33\x2d\x34\x32\x2e\x32\x34\x20\x33\x2e\ +\x32\x39\x31\x34\x32\x39\x2d\x35\x38\x2e\x32\x35\x38\x32\x38\x35\ +\x20\x34\x2e\x33\x38\x38\x35\x37\x31\x2d\x31\x36\x2e\x30\x31\x38\ +\x32\x38\x36\x20\x31\x30\x2e\x33\x38\x36\x32\x38\x36\x2d\x32\x39\ +\x2e\x38\x34\x32\x32\x38\x36\x20\x31\x38\x2e\x30\x36\x36\x32\x38\ +\x36\x2d\x34\x31\x2e\x34\x37\x32\x20\x37\x2e\x36\x38\x2d\x31\x31\ +\x2e\x36\x32\x39\x37\x31\x34\x20\x31\x36\x2e\x34\x35\x37\x31\x34\ +\x33\x2d\x32\x31\x2e\x37\x32\x33\x34\x32\x39\x20\x32\x36\x2e\x33\ +\x33\x31\x34\x32\x38\x2d\x33\x30\x2e\x32\x38\x31\x31\x34\x33\x20\ +\x39\x2e\x38\x37\x34\x32\x38\x36\x2d\x38\x2e\x35\x35\x37\x37\x31\ +\x34\x20\x31\x39\x2e\x30\x39\x30\x32\x38\x36\x2d\x31\x36\x2e\x38\ +\x32\x32\x38\x35\x37\x20\x32\x37\x2e\x36\x34\x38\x2d\x32\x34\x2e\ +\x36\x38\x35\x37\x31\x35\x61\x31\x33\x37\x2e\x38\x37\x34\x32\x38\ +\x36\x20\x31\x33\x37\x2e\x38\x37\x34\x32\x38\x36\x20\x30\x20\x30\ +\x20\x30\x20\x32\x31\x2e\x33\x39\x34\x32\x38\x36\x2d\x32\x34\x2e\ +\x36\x38\x35\x37\x31\x34\x63\x35\x2e\x37\x30\x35\x31\x34\x33\x2d\ +\x38\x2e\x35\x35\x37\x37\x31\x34\x20\x38\x2e\x35\x35\x37\x37\x31\ +\x34\x2d\x31\x38\x2e\x37\x36\x31\x31\x34\x33\x20\x38\x2e\x35\x35\ +\x37\x37\x31\x34\x2d\x33\x30\x2e\x36\x31\x30\x32\x38\x36\x20\x30\ +\x2d\x31\x35\x2e\x33\x36\x2d\x34\x2e\x32\x37\x38\x38\x35\x37\x2d\ +\x32\x37\x2e\x36\x34\x38\x2d\x31\x32\x2e\x38\x2d\x33\x36\x2e\x38\ +\x36\x34\x2d\x38\x2e\x35\x39\x34\x32\x38\x36\x2d\x39\x2e\x32\x31\ +\x36\x2d\x32\x33\x2e\x38\x34\x34\x35\x37\x31\x2d\x31\x33\x2e\x38\ +\x32\x34\x2d\x34\x35\x2e\x37\x38\x37\x34\x32\x38\x2d\x31\x33\x2e\ +\x38\x32\x34\x2d\x37\x2e\x30\x32\x31\x37\x31\x34\x20\x30\x2d\x31\ +\x34\x2e\x34\x38\x32\x32\x38\x36\x20\x30\x2e\x37\x33\x31\x34\x32\ +\x39\x2d\x32\x32\x2e\x33\x38\x31\x37\x31\x35\x20\x32\x2e\x33\x30\ +\x34\x61\x31\x35\x39\x2e\x31\x39\x35\x34\x32\x39\x20\x31\x35\x39\ +\x2e\x31\x39\x35\x34\x32\x39\x20\x30\x20\x30\x20\x30\x2d\x32\x33\ +\x2e\x36\x39\x38\x32\x38\x35\x20\x36\x2e\x35\x38\x32\x38\x35\x38\ +\x20\x31\x39\x31\x2e\x37\x30\x37\x34\x32\x39\x20\x31\x39\x31\x2e\ +\x37\x30\x37\x34\x32\x39\x20\x30\x20\x30\x20\x30\x2d\x34\x32\x2e\ +\x31\x33\x30\x32\x38\x36\x20\x32\x31\x2e\x33\x39\x34\x32\x38\x35\ +\x6c\x2d\x33\x32\x2e\x39\x31\x34\x32\x38\x36\x2d\x36\x33\x2e\x31\ +\x39\x35\x34\x32\x38\x63\x31\x36\x2e\x36\x37\x36\x35\x37\x31\x2d\ +\x31\x31\x2e\x34\x31\x30\x32\x38\x36\x20\x33\x35\x2e\x38\x37\x36\ +\x35\x37\x31\x2d\x32\x30\x2e\x38\x34\x35\x37\x31\x34\x20\x35\x37\ +\x2e\x36\x2d\x32\x38\x2e\x33\x30\x36\x32\x38\x36\x20\x32\x31\x2e\ +\x37\x32\x33\x34\x32\x39\x2d\x37\x2e\x34\x36\x30\x35\x37\x31\x20\ +\x34\x37\x2e\x39\x34\x35\x31\x34\x33\x2d\x31\x31\x2e\x31\x39\x30\ +\x38\x35\x37\x20\x37\x38\x2e\x36\x36\x35\x31\x34\x33\x2d\x31\x31\ +\x2e\x31\x39\x30\x38\x35\x37\x20\x34\x31\x2e\x32\x35\x32\x35\x37\ +\x31\x20\x30\x20\x37\x33\x2e\x35\x30\x38\x35\x37\x31\x20\x39\x2e\ +\x39\x38\x34\x20\x39\x36\x2e\x37\x36\x38\x20\x32\x39\x2e\x39\x35\ +\x32\x20\x32\x33\x2e\x32\x35\x39\x34\x32\x39\x20\x31\x39\x2e\x39\ +\x36\x38\x20\x33\x34\x2e\x38\x38\x39\x31\x34\x33\x20\x34\x36\x2e\ +\x38\x31\x31\x34\x32\x39\x20\x33\x34\x2e\x38\x38\x39\x31\x34\x33\ +\x20\x38\x30\x2e\x36\x34\x20\x30\x20\x32\x32\x2e\x33\x38\x31\x37\ +\x31\x34\x2d\x32\x2e\x39\x32\x35\x37\x31\x34\x20\x34\x30\x2e\x39\ +\x32\x33\x34\x32\x39\x2d\x38\x2e\x38\x38\x36\x38\x35\x37\x20\x35\ +\x35\x2e\x35\x38\x38\x35\x37\x31\x61\x31\x33\x35\x2e\x34\x39\x37\ +\x31\x34\x33\x20\x31\x33\x35\x2e\x34\x39\x37\x31\x34\x33\x20\x30\ +\x20\x30\x20\x31\x2d\x32\x32\x2e\x30\x35\x32\x35\x37\x32\x20\x33\ +\x37\x2e\x35\x35\x38\x38\x35\x37\x63\x2d\x38\x2e\x37\x37\x37\x31\ +\x34\x33\x20\x31\x30\x2e\x33\x31\x33\x31\x34\x33\x2d\x31\x38\x2e\ +\x34\x33\x32\x20\x31\x39\x2e\x33\x38\x32\x38\x35\x37\x2d\x32\x38\ +\x2e\x39\x36\x34\x35\x37\x31\x20\x32\x37\x2e\x33\x31\x38\x38\x35\ +\x38\x61\x32\x34\x39\x2e\x34\x39\x30\x32\x38\x36\x20\x32\x34\x39\ +\x2e\x34\x39\x30\x32\x38\x36\x20\x30\x20\x30\x20\x30\x2d\x32\x38\ +\x2e\x39\x36\x34\x35\x37\x31\x20\x32\x35\x2e\x33\x34\x34\x63\x2d\ +\x38\x2e\x37\x37\x37\x31\x34\x33\x20\x38\x2e\x39\x39\x36\x35\x37\ +\x31\x2d\x31\x36\x2e\x32\x33\x37\x37\x31\x34\x20\x31\x39\x2e\x33\ +\x38\x32\x38\x35\x37\x2d\x32\x32\x2e\x33\x38\x31\x37\x31\x35\x20\ +\x33\x31\x2e\x32\x36\x38\x35\x37\x31\x2d\x36\x2e\x31\x34\x34\x20\ +\x31\x31\x2e\x38\x34\x39\x31\x34\x33\x2d\x39\x2e\x32\x31\x36\x20\ +\x32\x36\x2e\x39\x38\x39\x37\x31\x34\x2d\x39\x2e\x32\x31\x36\x20\ +\x34\x35\x2e\x34\x32\x31\x37\x31\x34\x48\x34\x35\x32\x2e\x33\x38\ +\x38\x35\x37\x31\x7a\x20\x6d\x2d\x31\x33\x2e\x31\x36\x35\x37\x31\ +\x34\x20\x39\x33\x2e\x34\x37\x36\x35\x37\x32\x63\x30\x2d\x31\x35\ +\x2e\x33\x36\x20\x34\x2e\x37\x39\x30\x38\x35\x37\x2d\x32\x37\x2e\ +\x35\x33\x38\x32\x38\x36\x20\x31\x34\x2e\x34\x34\x35\x37\x31\x34\ +\x2d\x33\x36\x2e\x35\x37\x31\x34\x32\x39\x20\x39\x2e\x36\x35\x34\ +\x38\x35\x37\x2d\x38\x2e\x39\x36\x20\x32\x32\x2e\x33\x38\x31\x37\ +\x31\x34\x2d\x31\x33\x2e\x34\x35\x38\x32\x38\x36\x20\x33\x38\x2e\ +\x31\x38\x30\x35\x37\x32\x2d\x31\x33\x2e\x34\x35\x38\x32\x38\x36\ +\x20\x31\x36\x2e\x36\x37\x36\x35\x37\x31\x20\x30\x20\x32\x39\x2e\ +\x38\x34\x32\x32\x38\x36\x20\x34\x2e\x34\x39\x38\x32\x38\x36\x20\ +\x33\x39\x2e\x34\x39\x37\x31\x34\x33\x20\x31\x33\x2e\x34\x39\x34\ +\x38\x35\x38\x20\x39\x2e\x36\x35\x34\x38\x35\x37\x20\x38\x2e\x39\ +\x39\x36\x35\x37\x31\x20\x31\x34\x2e\x34\x38\x32\x32\x38\x36\x20\ +\x32\x31\x2e\x31\x37\x34\x38\x35\x37\x20\x31\x34\x2e\x34\x38\x32\ +\x32\x38\x35\x20\x33\x36\x2e\x35\x33\x34\x38\x35\x37\x20\x30\x20\ +\x31\x35\x2e\x33\x36\x2d\x34\x2e\x38\x32\x37\x34\x32\x39\x20\x32\ +\x37\x2e\x36\x34\x38\x2d\x31\x34\x2e\x34\x38\x32\x32\x38\x35\x20\ +\x33\x36\x2e\x38\x36\x34\x73\x2d\x32\x32\x2e\x38\x32\x30\x35\x37\ +\x31\x20\x31\x33\x2e\x38\x32\x34\x2d\x33\x39\x2e\x34\x39\x37\x31\ +\x34\x33\x20\x31\x33\x2e\x38\x32\x34\x63\x2d\x31\x35\x2e\x37\x39\ +\x38\x38\x35\x37\x20\x30\x2d\x32\x38\x2e\x35\x32\x35\x37\x31\x34\ +\x2d\x34\x2e\x36\x30\x38\x2d\x33\x38\x2e\x31\x38\x30\x35\x37\x32\ +\x2d\x31\x33\x2e\x38\x32\x34\x73\x2d\x31\x34\x2e\x34\x38\x32\x32\ +\x38\x36\x2d\x32\x31\x2e\x35\x30\x34\x2d\x31\x34\x2e\x34\x38\x32\ +\x32\x38\x35\x2d\x33\x36\x2e\x38\x36\x34\x7a\x22\x20\x66\x69\x6c\ +\x6c\x3d\x22\x23\x35\x35\x38\x34\x46\x46\x22\x20\x70\x2d\x69\x64\ +\x3d\x22\x32\x37\x30\x32\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\ +\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x02\xa4\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\ +\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\ +\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\ +\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\ +\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\ +\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\ +\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\x74\ +\x3d\x22\x31\x37\x30\x35\x31\x36\x33\x38\x31\x39\x33\x39\x33\x22\ +\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\ +\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\ +\x31\x30\x32\x34\x22\x20\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\ +\x31\x2e\x31\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\ +\x30\x30\x2f\x73\x76\x67\x22\x0d\x0a\x20\x20\x20\x20\x20\x70\x2d\ +\x69\x64\x3d\x22\x31\x32\x38\x34\x30\x22\x20\x78\x6d\x6c\x6e\x73\ +\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\ +\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\ +\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x22\ +\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x22\x3e\x0d\x0a\x20\ +\x20\x20\x20\x3c\x70\x61\x74\x68\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x65\x31\x65\x31\x65\x31\x22\x20\x64\x3d\x22\x4d\x36\x39\x39\x2e\ +\x37\x20\x32\x38\x34\x2e\x32\x48\x33\x32\x36\x2e\x33\x43\x32\x30\ +\x30\x2e\x32\x20\x32\x38\x34\x2e\x32\x20\x39\x38\x20\x33\x38\x36\ +\x2e\x34\x20\x39\x38\x20\x35\x31\x32\x2e\x34\x63\x30\x20\x31\x32\ +\x36\x2e\x31\x20\x31\x30\x32\x2e\x32\x20\x32\x32\x38\x2e\x33\x20\ +\x32\x32\x38\x2e\x33\x20\x32\x32\x38\x2e\x33\x68\x33\x37\x33\x2e\ +\x35\x63\x31\x32\x36\x2e\x31\x20\x30\x20\x32\x32\x38\x2e\x33\x2d\ +\x31\x30\x32\x2e\x32\x20\x32\x32\x38\x2e\x33\x2d\x32\x32\x38\x2e\ +\x33\x2d\x30\x2e\x31\x2d\x31\x32\x36\x2d\x31\x30\x32\x2e\x33\x2d\ +\x32\x32\x38\x2e\x32\x2d\x32\x32\x38\x2e\x34\x2d\x32\x32\x38\x2e\ +\x32\x7a\x4d\x33\x32\x36\x2e\x33\x20\x37\x31\x39\x2e\x39\x63\x2d\ +\x31\x31\x34\x2e\x36\x20\x30\x2d\x32\x30\x37\x2e\x35\x2d\x39\x32\ +\x2e\x39\x2d\x32\x30\x37\x2e\x35\x2d\x32\x30\x37\x2e\x35\x73\x39\ +\x32\x2e\x39\x2d\x32\x30\x37\x2e\x35\x20\x32\x30\x37\x2e\x35\x2d\ +\x32\x30\x37\x2e\x35\x20\x32\x30\x37\x2e\x35\x20\x39\x32\x2e\x39\ +\x20\x32\x30\x37\x2e\x35\x20\x32\x30\x37\x2e\x35\x63\x2d\x30\x2e\ +\x31\x20\x31\x31\x34\x2e\x36\x2d\x39\x33\x20\x32\x30\x37\x2e\x35\ +\x2d\x32\x30\x37\x2e\x35\x20\x32\x30\x37\x2e\x35\x7a\x22\x20\x70\ +\x2d\x69\x64\x3d\x22\x31\x32\x38\x34\x31\x22\x3e\x0d\x0a\x0d\x0a\ +\x20\x20\x20\x20\x3c\x2f\x70\x61\x74\x68\x3e\x0d\x0a\x3c\x2f\x73\ +\x76\x67\x3e\ +\x00\x00\x02\x1b\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x35\x31\x36\x33\x38\x36\x36\x30\x38\x37\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x37\x39\x32\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x30\x36\x38\x39\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\ +\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\ +\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\ +\x3d\x22\x35\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x32\ +\x22\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x33\x32\x30\x20\ +\x31\x39\x32\x68\x31\x31\x35\x32\x61\x33\x32\x30\x20\x33\x32\x30\ +\x20\x30\x20\x30\x20\x31\x20\x30\x20\x36\x34\x30\x48\x33\x32\x30\ +\x41\x33\x32\x30\x20\x33\x32\x30\x20\x30\x20\x30\x20\x31\x20\x33\ +\x32\x30\x20\x31\x39\x32\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\ +\x43\x43\x43\x43\x43\x43\x22\x20\x70\x2d\x69\x64\x3d\x22\x32\x30\ +\x36\x39\x30\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x70\x61\x74\ +\x68\x20\x64\x3d\x22\x4d\x35\x31\x32\x20\x35\x31\x32\x6d\x2d\x35\ +\x31\x32\x20\x30\x61\x35\x31\x32\x20\x35\x31\x32\x20\x30\x20\x31\ +\x20\x30\x20\x31\x30\x32\x34\x20\x30\x20\x35\x31\x32\x20\x35\x31\ +\x32\x20\x30\x20\x31\x20\x30\x2d\x31\x30\x32\x34\x20\x30\x5a\x22\ +\x20\x66\x69\x6c\x6c\x3d\x22\x23\x46\x46\x46\x46\x46\x46\x22\x20\ +\x70\x2d\x69\x64\x3d\x22\x32\x30\x36\x39\x31\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x07\x41\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x32\x35\x36\x32\x31\x33\x31\x35\x37\x38\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x34\x33\x31\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x36\x32\x34\x2e\x35\ +\x20\x35\x33\x34\x2e\x35\x6d\x2d\x33\x32\x35\x2e\x35\x20\x30\x61\ +\x33\x32\x35\x2e\x35\x20\x33\x32\x35\x2e\x35\x20\x30\x20\x31\x20\ +\x30\x20\x36\x35\x31\x20\x30\x20\x33\x32\x35\x2e\x35\x20\x33\x32\ +\x35\x2e\x35\x20\x30\x20\x31\x20\x30\x2d\x36\x35\x31\x20\x30\x5a\ +\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x43\x31\x45\x36\x44\x45\x22\ +\x20\x70\x2d\x69\x64\x3d\x22\x36\x34\x33\x32\x22\x3e\x3c\x2f\x70\ +\x61\x74\x68\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x35\ +\x39\x2e\x35\x33\x34\x20\x36\x38\x34\x2e\x35\x33\x36\x63\x34\x36\ +\x2e\x34\x39\x34\x2d\x34\x34\x2e\x37\x32\x37\x20\x38\x35\x2e\x35\ +\x35\x32\x2d\x36\x32\x2e\x32\x39\x37\x20\x31\x32\x33\x2e\x31\x33\ +\x34\x2d\x34\x36\x2e\x31\x31\x38\x20\x31\x36\x2e\x35\x38\x20\x37\ +\x2e\x31\x33\x37\x20\x33\x34\x2e\x39\x37\x20\x31\x32\x2e\x38\x33\ +\x32\x20\x35\x35\x2e\x31\x37\x37\x20\x31\x37\x2e\x30\x35\x38\x61\ +\x33\x39\x2e\x32\x37\x20\x33\x39\x2e\x32\x37\x20\x30\x20\x30\x20\ +\x31\x20\x33\x30\x2e\x33\x33\x33\x20\x33\x30\x2e\x30\x38\x36\x63\ +\x32\x30\x2e\x39\x36\x39\x20\x39\x36\x2e\x33\x32\x31\x20\x39\x32\ +\x2e\x32\x35\x39\x20\x31\x34\x32\x2e\x32\x36\x20\x32\x32\x33\x2e\ +\x32\x39\x35\x20\x31\x34\x32\x2e\x32\x36\x20\x35\x31\x2e\x35\x36\ +\x20\x30\x20\x39\x34\x2e\x32\x32\x34\x2d\x37\x2e\x34\x30\x37\x20\ +\x31\x32\x37\x2e\x38\x34\x35\x2d\x32\x31\x2e\x38\x37\x36\x20\x33\ +\x32\x2e\x32\x39\x35\x2d\x31\x33\x2e\x38\x39\x37\x20\x36\x34\x2e\ +\x37\x36\x34\x2d\x31\x2e\x35\x35\x32\x20\x31\x30\x32\x2e\x31\x34\ +\x38\x20\x33\x31\x2e\x37\x39\x36\x76\x2d\x32\x32\x30\x2e\x36\x33\ +\x63\x30\x2d\x39\x34\x2e\x32\x33\x39\x2d\x33\x30\x2e\x36\x34\x37\ +\x2d\x31\x35\x32\x2e\x38\x34\x2d\x39\x30\x2e\x39\x33\x2d\x31\x38\ +\x33\x2e\x35\x37\x34\x61\x33\x39\x2e\x32\x37\x33\x20\x33\x39\x2e\ +\x32\x37\x33\x20\x30\x20\x30\x20\x31\x2d\x32\x31\x2e\x34\x32\x2d\ +\x33\x33\x2e\x39\x37\x34\x43\x37\x30\x34\x2e\x38\x36\x32\x20\x32\ +\x33\x35\x2e\x30\x33\x20\x36\x31\x36\x2e\x36\x33\x34\x20\x31\x35\ +\x39\x2e\x35\x34\x35\x20\x34\x33\x34\x2e\x34\x30\x33\x20\x31\x35\ +\x39\x2e\x35\x34\x35\x63\x2d\x31\x38\x36\x2e\x35\x31\x35\x20\x30\ +\x2d\x32\x37\x34\x2e\x38\x37\x20\x37\x39\x2e\x30\x37\x38\x2d\x32\ +\x37\x34\x2e\x38\x37\x20\x32\x35\x32\x2e\x34\x36\x38\x76\x32\x37\ +\x32\x2e\x35\x32\x33\x7a\x20\x6d\x39\x32\x2e\x30\x38\x35\x20\x32\ +\x36\x2e\x30\x32\x38\x63\x32\x2e\x34\x38\x20\x31\x2e\x30\x36\x37\ +\x20\x30\x2e\x32\x30\x37\x20\x31\x2e\x35\x34\x36\x2d\x37\x2e\x39\ +\x33\x20\x36\x2e\x35\x39\x37\x2d\x31\x34\x2e\x32\x36\x37\x20\x38\ +\x2e\x38\x35\x39\x2d\x33\x32\x2e\x38\x39\x33\x20\x32\x35\x2e\x37\ +\x33\x31\x2d\x35\x35\x2e\x30\x34\x33\x20\x35\x30\x2e\x34\x33\x36\ +\x61\x36\x31\x2e\x37\x30\x32\x20\x36\x31\x2e\x37\x30\x32\x20\x30\ +\x20\x30\x20\x31\x2d\x34\x35\x2e\x39\x34\x20\x32\x30\x2e\x35\x31\ +\x34\x43\x31\x30\x38\x2e\x36\x32\x35\x20\x37\x38\x38\x2e\x31\x31\ +\x31\x20\x38\x31\x20\x37\x36\x30\x2e\x34\x38\x31\x20\x38\x31\x20\ +\x37\x32\x36\x2e\x33\x39\x37\x56\x34\x31\x32\x2e\x30\x31\x33\x43\ +\x38\x31\x20\x31\x39\x33\x2e\x31\x38\x20\x32\x30\x36\x2e\x33\x34\ +\x20\x38\x31\x20\x34\x33\x34\x2e\x34\x30\x34\x20\x38\x31\x63\x32\ +\x31\x34\x2e\x36\x35\x32\x20\x30\x20\x33\x33\x38\x2e\x36\x30\x35\ +\x20\x39\x39\x2e\x33\x38\x38\x20\x33\x35\x32\x2e\x31\x36\x20\x32\ +\x39\x34\x2e\x31\x34\x36\x43\x38\x36\x31\x2e\x37\x33\x20\x34\x32\ +\x32\x2e\x37\x33\x36\x20\x39\x30\x30\x20\x35\x30\x34\x2e\x38\x36\ +\x32\x20\x39\x30\x30\x20\x36\x31\x37\x2e\x31\x31\x33\x76\x32\x36\ +\x39\x2e\x33\x38\x34\x43\x39\x30\x30\x20\x39\x31\x38\x2e\x38\x31\ +\x20\x38\x37\x33\x2e\x38\x30\x36\x20\x39\x34\x35\x20\x38\x34\x31\ +\x2e\x35\x20\x39\x34\x35\x61\x35\x38\x2e\x35\x20\x35\x38\x2e\x35\ +\x20\x30\x20\x30\x20\x31\x2d\x34\x33\x2e\x35\x35\x2d\x31\x39\x2e\ +\x34\x34\x31\x63\x2d\x31\x38\x2e\x36\x36\x2d\x32\x30\x2e\x38\x30\ +\x37\x2d\x33\x34\x2e\x32\x35\x39\x2d\x33\x34\x2e\x39\x33\x32\x2d\ +\x34\x35\x2e\x39\x36\x32\x2d\x34\x32\x2e\x31\x39\x36\x2d\x32\x2e\ +\x35\x35\x38\x2d\x31\x2e\x35\x38\x38\x2d\x34\x2e\x36\x35\x35\x2d\ +\x32\x2e\x36\x37\x38\x2d\x36\x2e\x32\x30\x39\x2d\x33\x2e\x33\x34\ +\x34\x2d\x34\x33\x2e\x33\x35\x37\x20\x31\x37\x2e\x37\x36\x2d\x39\ +\x34\x2e\x38\x36\x36\x20\x32\x36\x2e\x33\x35\x2d\x31\x35\x34\x2e\ +\x33\x30\x36\x20\x32\x36\x2e\x33\x35\x2d\x31\x35\x34\x2e\x39\x32\ +\x20\x30\x2d\x32\x35\x37\x2e\x32\x32\x2d\x35\x39\x2e\x37\x39\x34\ +\x2d\x32\x39\x33\x2e\x37\x31\x38\x2d\x31\x37\x39\x2e\x37\x38\x32\ +\x2d\x31\x36\x2e\x32\x31\x2d\x34\x2e\x34\x32\x37\x2d\x33\x31\x2e\ +\x35\x39\x33\x2d\x39\x2e\x37\x36\x33\x2d\x34\x36\x2e\x31\x33\x36\ +\x2d\x31\x36\x2e\x30\x32\x33\x7a\x20\x6d\x37\x30\x2e\x31\x35\x36\ +\x20\x32\x31\x2e\x37\x39\x35\x63\x2d\x32\x31\x2e\x32\x32\x38\x2d\ +\x34\x2e\x34\x33\x38\x2d\x33\x34\x2e\x38\x34\x2d\x32\x35\x2e\x32\ +\x34\x37\x2d\x33\x30\x2e\x34\x30\x31\x2d\x34\x36\x2e\x34\x37\x38\ +\x20\x34\x2e\x34\x33\x37\x2d\x32\x31\x2e\x32\x33\x20\x32\x35\x2e\ +\x32\x34\x33\x2d\x33\x34\x2e\x38\x34\x34\x20\x34\x36\x2e\x34\x37\ +\x31\x2d\x33\x30\x2e\x34\x30\x35\x20\x32\x38\x2e\x36\x34\x20\x35\ +\x2e\x39\x38\x38\x20\x36\x30\x2e\x38\x34\x38\x20\x39\x2e\x30\x30\ +\x35\x20\x39\x36\x2e\x35\x36\x20\x39\x2e\x30\x30\x35\x20\x31\x38\ +\x36\x2e\x35\x31\x34\x20\x30\x20\x32\x37\x34\x2e\x38\x36\x39\x2d\ +\x37\x39\x2e\x30\x37\x38\x20\x32\x37\x34\x2e\x38\x36\x39\x2d\x32\ +\x35\x32\x2e\x34\x36\x38\x20\x30\x2d\x34\x2e\x32\x30\x35\x2d\x30\ +\x2e\x30\x35\x33\x2d\x38\x2e\x33\x35\x35\x2d\x30\x2e\x31\x35\x39\ +\x2d\x31\x32\x2e\x34\x34\x39\x2d\x30\x2e\x35\x36\x2d\x32\x31\x2e\ +\x36\x38\x32\x20\x31\x36\x2e\x35\x36\x2d\x33\x39\x2e\x37\x31\x34\ +\x20\x33\x38\x2e\x32\x34\x2d\x34\x30\x2e\x32\x37\x34\x20\x32\x31\ +\x2e\x36\x37\x39\x2d\x30\x2e\x35\x36\x20\x33\x39\x2e\x37\x30\x38\ +\x20\x31\x36\x2e\x35\x36\x32\x20\x34\x30\x2e\x32\x36\x38\x20\x33\ +\x38\x2e\x32\x34\x34\x20\x30\x2e\x31\x32\x34\x20\x34\x2e\x37\x37\ +\x35\x20\x30\x2e\x31\x38\x35\x20\x39\x2e\x36\x20\x30\x2e\x31\x38\ +\x35\x20\x31\x34\x2e\x34\x37\x39\x20\x30\x20\x32\x31\x38\x2e\x38\ +\x33\x33\x2d\x31\x32\x35\x2e\x33\x34\x20\x33\x33\x31\x2e\x30\x31\ +\x33\x2d\x33\x35\x33\x2e\x34\x30\x34\x20\x33\x33\x31\x2e\x30\x31\ +\x33\x2d\x34\x30\x2e\x38\x38\x33\x20\x30\x2d\x37\x38\x2e\x34\x33\ +\x35\x2d\x33\x2e\x35\x31\x37\x2d\x31\x31\x32\x2e\x36\x33\x2d\x31\ +\x30\x2e\x36\x36\x37\x7a\x22\x20\x66\x69\x6c\x6c\x3d\x22\x23\x30\ +\x41\x30\x42\x30\x43\x22\x20\x70\x2d\x69\x64\x3d\x22\x36\x34\x33\ +\x33\x22\x3e\x3c\x2f\x70\x61\x74\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\ +\x00\x01\x22\x3a\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x03\x45\x00\x00\x01\x31\x08\x06\x00\x00\x00\xb3\xab\x09\x4b\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\xc4\x00\x00\x0e\xc4\ +\x01\x95\x2b\x0e\x1b\x00\x00\x20\x00\x49\x44\x41\x54\x78\xda\xec\ +\x7d\x77\x9c\x1c\xc5\xb1\xff\xb7\x7a\x66\xd3\xe5\x20\xe9\x82\x24\ +\x24\x9d\xb2\x04\x42\x28\x10\x44\xe6\x21\x8c\x01\x83\x31\x39\x0b\ +\x1b\x1b\x83\x8d\x23\xf6\xcf\xe1\xe1\x6c\xc0\xe6\x39\x3e\x6c\xc0\ +\xcf\xd8\x60\x6c\x1c\xc0\x36\x26\x63\x9b\x8c\xc9\x02\x84\x44\x90\ +\x84\x50\x38\xc5\xd3\x29\x5c\xbe\xdb\xdd\x99\xfe\xfd\x31\x61\x77\ +\xd2\xce\x6c\xb8\xdb\xdd\xbb\xfe\x7e\x3e\xa0\xdb\xdd\x09\xdd\xd5\ +\xd5\xd5\x5d\x55\x5d\x55\x84\xec\x40\xf8\xcb\x39\x51\x54\xb1\xa3\ +\x21\x45\x17\x33\xa2\x29\x20\xf5\x50\x10\xe6\x70\x8e\x98\x76\x09\ +\xd7\xaf\x24\xed\x13\xe7\xe9\x1f\x41\x60\xc8\x0f\x5c\x7f\xae\xf1\ +\x3c\xfd\x5b\xf3\xf9\x84\x92\x06\x57\x91\xde\x72\xae\x13\xa6\xc4\ +\x5b\x5d\xf6\x74\xe7\x3a\xdd\x69\x94\xd2\x9d\xeb\xd7\x95\xda\x38\ +\x8c\x76\xba\x0b\x7e\x17\x74\x17\x74\x17\x74\x17\x74\x17\x74\x17\ +\x74\x1f\x7e\xba\x1b\xfb\x1c\xdb\xe3\x4c\x30\xd0\x4e\x55\xc5\x2b\ +\x44\x7c\xb5\x2a\xa9\x5b\xd1\x37\xf4\x10\x06\xb1\x0d\xe7\xde\xa3\ +\x04\x57\x72\x82\xe2\xa1\xf3\x97\x40\x92\x3e\x01\x89\x9f\x05\x46\ +\x35\x50\x48\x06\x08\x8c\xd1\x80\xde\x49\xa1\x14\x09\xa5\x48\x08\ +\x11\xa1\x14\x09\xe1\x2d\xe8\x2e\xe8\x2e\xe8\x2e\xe8\x2e\xe8\x2e\ +\xe8\x2e\xe8\x3e\xa2\x4a\x91\xf9\x7c\x00\x60\x9c\x83\x68\x10\xe0\ +\x6f\x81\xf8\xed\x48\xc6\xff\x88\xe5\xf7\x74\xe5\xae\x14\xfd\xfc\ +\x83\x11\x00\xc0\xac\xba\x19\x20\xe9\x5b\xe0\x74\xb6\xae\x8a\x65\ +\x6c\xbc\xbd\x8d\x54\xe0\x51\x32\x89\x68\xd5\xbd\x4c\xa6\x30\x7f\ +\x28\x15\x18\xcc\x6a\xb6\xcb\x60\x0a\x42\x3a\x3d\xc1\x4b\x93\x85\ +\xc9\x31\x19\xcb\x93\xee\xe6\x64\x12\x74\x1f\xd1\xf6\x7b\xd2\x1d\ +\xa5\xd9\xfe\x51\xcf\xef\x82\xee\x82\xee\xa3\x91\xee\x66\xfb\xca\ +\x95\xee\x86\xf1\x98\x04\xdd\x05\xdd\x05\xdd\xf3\xd6\xbd\xc8\x26\ +\x8f\x01\x44\xf9\x46\x90\xfa\x43\xec\xef\xfa\x1d\x4e\x7f\xb0\xdf\ +\xeb\xd6\xcc\x6e\x9b\x59\x0d\x57\x81\xc2\xff\x01\xa4\xb3\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x4e\x18\xa4\x69\x48\ +\x4a\x37\xa3\xa6\xfe\x51\xfc\xfb\xd2\x59\x41\x15\x38\x0d\xcf\x5e\ +\x58\x8f\x3e\xf9\x87\x20\x69\x05\x38\x97\x01\x80\x24\xd5\xaa\x88\ +\xc1\x70\xd7\x71\xa7\x46\x96\xae\xd9\x66\xf7\x66\x5f\x5d\xd3\x7c\ +\x1f\xb7\x1e\x17\xe2\x9e\x2e\xa9\xd2\xd4\x98\x8d\x53\x74\xdc\xd3\ +\xf3\x56\xa2\x2e\x8c\x32\xa5\xbb\x69\x81\x30\x2c\x08\x65\x4a\x77\ +\x93\x83\xc8\x6b\x22\x95\x68\xfb\x0d\xf1\xc1\x4a\xbd\xdd\x64\x6d\ +\x8f\xdd\x72\x65\xf2\x3b\x95\x47\xbb\xbd\x3c\x16\x25\x37\x5f\x05\ +\xdd\x05\xdd\x05\xdd\x05\xdd\x05\xdd\xc7\x16\xdd\xbd\xf6\x33\x3c\ +\xf3\x36\x28\xb0\xbe\xa0\xef\xf7\x54\xd5\xfa\xdc\x08\x36\x42\xc5\ +\x55\x38\xfe\xae\x7f\x5a\x14\x0b\xb8\x79\x8a\x9e\xbd\xb0\x1e\xfd\ +\xf2\xef\x41\xd2\x0a\xa1\x5a\x0a\x08\x08\x08\x08\x08\x08\x08\x08\ +\x08\x08\x8c\x0a\x24\xf8\x54\x70\xfc\x09\xff\x5e\x71\xa6\x97\xfa\ +\x06\x3c\xac\xc7\x10\xc9\xe3\x6f\x86\x4a\x2b\x40\xa4\x79\x88\x98\ +\x6a\xd1\x48\xb9\x43\xf3\xf4\x50\xdd\x3c\x3c\x08\xe4\xf7\x05\xf7\ +\xbb\x41\x87\x99\xaf\x80\xe7\xa7\xe1\x73\x8f\xdb\xc8\xfd\xe7\xa0\ +\x0a\x38\xf7\x22\x83\xc3\x63\x61\x78\x5e\x0a\x14\xe4\xc2\x7d\xe8\ +\xea\xd5\xaf\x62\xd3\x3d\xbb\x9f\x53\xbf\xf3\x80\x74\x37\x7e\x51\ +\x87\x89\xee\x01\xfb\x59\x2c\xba\xfb\xf2\x71\xae\xfc\xe5\xdb\xfe\ +\x61\xa2\x7b\xbe\x1d\xf2\x7a\xad\xd7\x7c\x75\xc8\xb5\x1c\x2d\x89\ +\x23\xd5\xee\x62\xf1\xbb\xa0\xbb\xa0\xbb\xa0\x7b\x01\xe9\x5e\xe0\ +\x7d\x80\xa0\xbb\xa0\x7b\x39\xd2\x9d\x67\xd9\x2b\xee\xf1\x62\x73\ +\xff\xad\x6f\xa8\x24\xd6\x01\x62\xa7\xe1\xc4\x3b\x5e\x31\x2e\xb1\ +\x7a\x8a\xa4\xda\xab\xa1\xd2\x0a\xa1\x46\x0a\x08\x08\x08\x08\x08\ +\x08\x08\x08\x08\x08\x8c\x4e\xf0\xf1\x00\xff\x2d\x1e\x5a\xd1\x6c\ +\xaa\x41\xe6\x6f\x97\x2c\x9d\x03\x0a\xfd\x0e\x44\x15\x20\x30\x30\ +\x4d\xc9\x22\xae\xfd\xe1\xf4\x10\xa9\x1e\x7a\x1b\x05\xd3\xfc\xc8\ +\x43\x9b\xb6\x7d\xef\x1b\xb2\x62\xcb\x92\x93\xf5\x89\x4a\x7b\x3b\ +\x28\x4b\x2d\x9f\x3c\xfe\xf3\x6a\xbf\xf1\x3b\xb7\x9e\xa5\x0c\x9a\ +\xcd\x2f\x70\x7b\x82\x7e\xef\xf3\x3b\xd1\x08\xd1\x3d\x57\x04\xa5\ +\xbb\xd9\xa0\x61\xa2\x7b\xae\xfd\x1c\x69\xba\xe7\xdb\x1d\xbd\xbd\ +\x9e\x0e\x22\x4f\xcf\xaf\x3b\xdd\xf9\x70\xd1\xb5\xd0\x7c\x83\xcc\ +\x74\xe7\x59\xbe\x37\xa8\xdd\x9d\xdc\xc8\x18\xa4\xdd\xc3\x45\xf7\ +\x91\x9e\xaf\x82\xee\x82\xee\x63\x81\xee\xdc\x4a\xa8\xf2\xa7\x3b\ +\x4a\x8a\xee\xe4\xb5\x5e\x94\x3a\xdd\x6d\xcf\x1b\x6b\x74\xb7\x5f\ +\x5e\x90\x0d\x0c\xa5\x35\x8e\x73\x02\xe7\x13\x10\x42\x35\xa6\xad\ +\x7a\x18\x4f\x9b\xe1\xe6\x00\x40\xdf\x21\x4e\x35\x42\x73\x14\x10\ +\x10\x10\x10\x10\x10\x10\x10\x10\x10\x18\xfd\xa0\x15\x38\x7a\xc5\ +\x62\x00\x90\x01\x00\xff\x3e\x6f\x29\xc5\xa5\x8f\x00\x1c\x14\xf2\ +\x3a\x43\x9c\xee\x21\xca\xa0\xf3\x06\xf1\x10\x65\x01\x7b\xdd\x04\ +\xef\x0b\x8b\xac\x21\x07\x6d\xbf\x57\x0c\x52\x89\xd6\x9b\xf1\xef\ +\xa0\xa0\x7b\x59\xd3\x9d\x72\x7a\xad\xe3\x7e\x7b\x31\xb6\xa0\x0f\ +\x22\x2a\x32\xff\xf8\xbd\xd8\xf4\x2c\xda\xb3\x6b\xe6\xd7\x6e\x9e\ +\xef\x75\x5e\xb1\x74\x82\xee\x82\xee\x79\xd1\xdd\x63\xf9\x17\x74\ +\x1f\x5e\xba\xfb\x74\xb0\x54\xe8\x9e\xed\x8b\x4b\x85\xee\xbe\xb1\ +\xc6\xa5\x4e\xf7\x2c\xd7\xe9\xa2\x7b\x8c\xb2\xa5\xbb\xfd\x3e\x2a\ +\x54\xc7\xb8\x87\x3c\xb3\xe9\x39\xa4\xaa\x00\xfb\x32\x38\xce\xd5\ +\xce\xc6\x25\xf1\x09\xa1\x29\x0a\x08\x08\x08\x08\x08\x08\x08\x08\ +\x08\x08\x8c\x2d\xa8\xa7\xe2\x89\xcb\xda\x64\x3c\x7f\x4e\x14\xdd\ +\xf2\x47\x20\xf9\x45\x27\xe4\xe9\x21\xca\x57\xb5\xb6\x9b\x86\x48\ +\xb5\xbd\xbf\xd8\xaa\x71\x66\xc5\x16\x65\xea\x90\xf0\x35\xc9\x09\ +\xba\x97\x37\xdd\x83\x1e\x7a\x0e\xfa\xb8\xa0\x9e\x5d\xb3\xbe\x59\ +\x91\xe9\x9b\x2d\xdd\x6d\xfd\x2c\xc8\x39\xe7\x7c\xf8\x20\xeb\x66\ +\x94\x28\xdd\xb3\xe4\x2f\x41\xf7\xe1\xa2\xbb\xbb\x60\x11\x74\x17\ +\x74\x1f\xc1\x69\x5e\xf8\x06\x50\x96\x74\x2f\x95\x75\xbe\x54\xe5\ +\x63\xa1\xe9\xee\xe7\x21\x2a\xd8\xc6\x50\xcf\xd2\xc7\xad\x9e\x22\ +\xae\xa8\x31\x00\x80\xa4\x9c\xcd\xd0\x2d\x1f\x0b\x12\xb1\x44\x02\ +\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x63\x10\x9c\x9f\x25\x83\ +\xc2\x87\x00\x5c\x4e\xe5\x39\x37\x0e\x53\xaa\xba\x02\x57\x20\x0f\ +\x51\xc1\x2c\xdb\x86\x4a\xc9\x2c\x9a\x9f\xd7\x6b\x4a\xd4\x91\xe1\ +\x49\x1e\x94\x48\xfb\x29\xc7\xeb\x05\xdd\x8b\x43\x77\x78\xf4\x23\ +\x7f\x21\x91\x5d\x03\x83\x8a\x03\x4e\x25\x32\xf0\xb9\x9e\xdd\xa6\ +\xd2\x62\x88\xa0\x06\xc2\x92\xa5\x3b\x04\xdd\x4b\x83\xee\x5c\xd0\ +\x5d\xd0\x3d\x6f\xba\xa3\xd4\xe8\xee\xd9\x70\x5e\x1a\xed\x14\x74\ +\xcf\xae\xa3\x7e\xf3\xca\xeb\x77\xd3\x31\xc5\xad\xaf\x31\x1d\x47\ +\xb4\x94\x01\x98\x4a\x54\xae\x67\x8c\x04\x04\x04\x04\x04\x04\x04\ +\x04\x04\x04\x04\x04\xf2\x51\xea\x18\x64\x02\x1d\x06\x48\x43\x80\ +\x12\xd1\x54\x28\x5f\x15\xcf\xd0\xa8\xb2\x7b\x59\x41\x0b\xbf\x00\ +\xa9\x18\x27\xb2\x69\x80\x25\x65\x07\x70\x16\xd6\x55\xb9\x3b\xf9\ +\xf4\x2f\xec\xd9\xd0\x78\x91\xdb\x9d\x8a\xcd\xe1\x36\x0d\xbb\xbc\ +\xe8\x6e\xea\xfd\xc4\x47\x35\xdd\x47\x8e\xb0\x01\xdb\xef\x33\x8b\ +\x4b\xdf\x1c\xc3\x5d\xc5\x5e\xa9\xb5\x3b\x5b\x07\x97\xa0\xbb\xa0\ +\x7b\xa0\x76\x0b\xba\x0b\xba\xe7\x40\xf7\xf2\xdd\x14\x8b\x66\x8d\ +\xea\x8e\x3a\x3c\x59\xfa\x1f\xe1\x94\x5a\xc1\x40\x98\x23\xd4\x43\ +\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x81\x31\x09\x02\x64\x80\ +\x47\xdc\x7e\xe3\x9e\x26\x96\xe2\xe8\xac\xdc\xe5\x2f\x57\xcd\xaf\ +\x50\xb6\x95\x42\x67\xf1\xb0\xe7\x47\xb7\xe7\xc3\x77\x78\xe8\x4a\ +\x03\x3c\x30\x7d\x4a\x9b\xee\xdc\x9e\x96\xa5\x4c\xe9\xce\xb3\xe5\ +\x77\xdf\x98\x19\x1a\x9e\x86\xfb\x65\x6f\x2b\x35\x1b\x6e\xc0\x2c\ +\x39\x45\xcf\xee\x93\xf7\xf0\x08\xba\x0b\xba\x0b\xba\x0b\xba\x8f\ +\xbd\xcd\x6e\x51\xf6\x1f\x82\xee\x45\x7e\xbf\xfb\xfc\x77\x34\x2b\ +\xa9\x9f\x3c\x93\x09\x4c\x8c\x9a\x80\x80\x80\x80\x80\x80\x80\x80\ +\x80\x80\xc0\x58\x86\x9c\xaa\xf7\xa3\xeb\x53\x9e\x59\x99\x86\x59\ +\xe5\xe3\x01\xb3\xaf\x70\x9f\xfb\x0a\x6d\x10\x1a\x26\x03\x13\xb7\ +\xb7\x9f\x97\x97\x69\x82\x53\x79\xd2\xdd\x71\x96\xb4\xcc\xe8\x9e\ +\x0a\xa5\xcb\x31\xa8\x88\x7b\x7c\x51\xe8\xb4\x36\x3c\xe0\x7c\x2f\ +\xb8\x27\xb6\x48\xf7\xe7\xfa\xfc\x91\xb6\x4c\x96\x0d\xdd\xb9\xa0\ +\xbb\xa0\xbb\xa0\x7b\xd9\xd2\x3d\xcb\xf7\xf9\x5d\x2f\xe4\x7b\x71\ +\xc6\xa9\x54\xe9\x9e\x67\x9a\x60\x6e\x8f\x35\x4f\xdb\xe6\x08\x4f\ +\x91\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\xc0\x98\x86\xcc\x0d\ +\xbd\xc8\xf0\x18\xd9\x63\x5f\x86\x5d\x53\xcd\x32\x26\xc2\xa1\xea\ +\x21\xa0\xaa\x5b\x62\x9a\x39\xec\x74\xa6\xd2\x6e\x77\xb9\xd3\xdd\ +\xd1\xce\x32\xa5\x3b\x1b\x26\xba\xfb\xdd\x46\xb9\x16\xf4\x09\x38\ +\x1c\x85\x1e\x5e\x94\x38\xfb\x15\xb8\xdd\x45\xab\x63\x41\xc3\x4d\ +\x30\x2e\xe8\x2e\xf8\x5d\xd0\xbd\x44\xe8\x3e\xe2\xed\x16\x74\x17\ +\x74\x1f\xe1\x76\x09\x4f\x91\x80\x80\x80\x80\x80\x80\x80\x80\x80\ +\x80\xc0\x98\x86\x9c\xb7\xa6\x96\xab\x21\x8f\x07\x7c\x01\xf7\xb9\ +\x9f\xfb\xc5\x56\x94\xa8\xaa\x6b\x6f\x37\xe7\x65\xda\x6e\x41\xf7\ +\x51\x41\x77\xfb\x7c\xf6\x8b\x19\xf3\xf0\x1c\x8d\xbe\xa4\x3d\x25\ +\xea\x39\x2c\xd7\x02\x2c\x82\xee\x02\x82\xee\x65\x4b\xf7\xa2\x79\ +\xe8\x04\xdd\xc7\x06\x59\x4b\xa0\xa3\xc2\x53\x24\x20\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x30\xa6\x95\x51\x39\xc8\x45\xc3\xa2\x09\ +\x9a\x9f\x29\xbb\x1b\xec\xf7\xab\x46\x76\x19\x7b\xe1\x9f\x52\x25\ +\x3a\x0f\xd8\x4f\x2a\xd1\x76\x93\xa0\x7b\x49\xd0\xdd\xa3\x1f\x41\ +\xdb\x6f\x8f\x09\x53\x7d\x26\xbe\x97\xe7\xc8\x56\xa7\x8a\x07\xf5\ +\x18\x15\xdb\x22\x14\x98\x4f\x4b\xd4\x44\x9d\xaf\x87\x5e\xd0\x5d\ +\xd0\x5d\xd0\x5d\xd0\x3d\xcb\xf6\x93\xa0\x7b\x69\xd3\xbd\x5c\xe7\ +\xa9\xd1\xcf\x12\xd8\x46\x0a\x4f\x91\x80\x80\x80\x80\x80\x80\x80\ +\x80\x80\x80\xc0\x98\x86\xec\xab\x40\x0f\x97\xe6\x68\xc6\x46\xa8\ +\x99\x7f\xf7\x6a\x87\xa4\x5a\xd5\xba\x24\xb3\xde\x68\xdc\x17\xf2\ +\x68\x40\x82\xac\xbf\xc7\x6d\xef\x0b\xd9\xae\x8f\x7b\xb4\x23\x6c\ +\xfb\xdd\x2f\x6b\x5f\x44\x7f\x5f\x82\x7b\xb4\xdf\x78\xae\xde\xbf\ +\x84\xad\x3d\x09\xdb\xf3\x8d\x58\x13\xa3\x1d\x09\x1b\xfd\xc2\x1e\ +\xed\x0f\x23\x33\x5d\xbc\x20\x29\xd6\x76\x13\xb3\xf6\xc7\xe6\x39\ +\x70\xd0\xb1\x58\x74\xf7\xe5\x9b\x32\xa3\x7b\xd2\xc3\x9e\xe1\xe5\ +\x11\xb3\xcf\x03\xe3\x7d\xe4\x71\x78\xd9\xab\x60\x19\x15\xe6\xb0\ +\xb3\x7d\xb8\x46\xdc\x32\x14\xd8\x40\xc8\xf3\xbb\xbd\xe8\xed\x17\ +\x74\x2f\x25\xba\x97\x7e\xbb\x47\x57\x2c\x97\xa0\xbb\xa0\x7b\xe6\ +\xf5\x49\xc4\x2e\x16\x87\xee\xa5\x3b\x1a\xc2\x53\x24\x20\x20\x20\ +\x20\x20\x20\x20\x20\x20\x20\x30\xa6\x21\x7b\x6a\x7a\x85\x52\xe9\ +\xec\x9a\xa3\x99\x45\xcb\xe3\x01\x72\xda\x0d\x8c\x81\xc0\x30\x8e\ +\x55\x61\x82\x5c\x83\x0a\x16\x85\xcc\x24\x30\x62\x60\xfa\x65\xc9\ +\x44\x02\x9c\x08\x44\x92\x79\x1f\xb7\x35\x8e\x43\x33\xa0\x5b\x94\ +\xd7\xa8\xed\xbd\xd1\xb4\x6b\xd3\xdb\x6e\x34\x37\x9a\xb9\x32\x0c\ +\x45\x5d\xbe\x27\xab\xe1\x9e\x48\xfb\x1f\x03\x41\x0d\x27\x01\x0e\ +\xff\xb6\xc7\x6c\x6d\x8f\x66\x1e\x12\xf3\xf7\xf4\xb6\x67\xb8\x8f\ +\xdb\x87\x3c\xea\xdf\x76\x00\x50\x95\xa4\xb5\xed\xb1\xdc\xe9\xee\ +\x30\x2a\x0c\x27\xdd\xd5\xc2\xd2\xdd\xf1\xfb\x88\xd0\x9d\x81\x88\ +\x79\xb6\xdd\xf9\x70\x02\x11\x40\x20\x80\x00\xce\x55\x0c\x26\xe3\ +\xe8\x88\xef\xc7\x0e\xde\x07\x15\x8a\x76\x93\xca\x53\x1e\x22\xee\ +\x31\x6f\x4d\x4f\xac\x97\xc7\x28\x98\x89\x28\x67\x8b\x50\x89\xa4\ +\xe1\xe1\x63\xa5\xdd\x82\xee\x82\xee\x63\x89\x5f\xca\x1d\xc3\x4c\ +\xf7\xa0\x8f\x17\x74\x1f\x95\xd3\x69\x8c\x2a\x45\x25\x82\xb3\x1b\ +\x8e\xc0\xb9\x4d\x87\x62\x49\xcd\x54\xb4\x46\x6b\x21\x4b\x92\xb9\ +\x31\x34\x19\x25\x4d\xb1\x22\x2a\x2f\x76\x31\xda\x5e\x6e\xed\x16\ +\x74\x1f\x1d\x74\xe7\xe0\x50\xb8\x8a\x1d\x89\x1e\xac\xdc\xb7\x09\ +\xf7\x74\xac\xc4\x7d\x1d\x2b\x31\x80\x01\x21\x15\x05\x04\x04\x04\ +\x04\x04\x04\xc6\x1c\x08\xff\xba\x4c\xdf\x25\xea\xb1\x14\x86\xa5\ +\x98\x0a\x64\x02\x70\x64\x8b\xb3\xc5\x10\x19\xef\x63\x04\x84\x80\ +\xb3\xeb\x0f\xc7\x0d\x6d\x1f\xc1\x8c\x9a\xa6\xc0\x1b\x44\xb1\x39\ +\x2f\xce\xc6\x5c\xd0\x7d\x74\xd1\xbd\x7d\x60\x0f\xbe\xb9\xee\x1f\ +\xb8\x73\xe7\xf3\x50\x49\x8f\x61\x22\xbb\x27\x48\xb5\x7d\x76\x48\ +\x14\xcb\x1f\x64\xcb\x8a\xc7\x59\x89\xd9\xbc\xbc\x42\xa6\x4c\x79\ +\x05\x0b\x1d\x8c\xec\x7a\x59\x7b\xd4\x69\x98\xdb\x6f\x6f\x16\x2f\ +\x77\xba\x5b\x63\x14\x05\xdd\x05\xdd\xd3\x9f\xef\x68\xb7\xa0\xbb\ +\xa0\x7b\x31\xe8\x3e\x42\xed\x1f\x33\x74\x47\x8e\xdd\xf0\xcc\x5d\ +\xe0\x95\xad\x57\xdf\x9f\xe8\xed\xe0\x46\xcc\x76\x58\x2a\x9d\x98\ +\xa2\xaa\x50\x14\xbf\x9d\x76\x05\xfe\xb2\xe0\x93\xbe\x0a\x91\x80\ +\x80\x40\xe1\x31\x39\xd6\x88\xdb\x17\x5c\x8e\x7b\x0f\xba\x1a\x8d\ +\xa8\x16\x04\x11\x10\x10\x10\x10\x10\x10\x18\x1b\xe0\xf9\xc4\x14\ +\x65\xfd\x32\x0f\x55\x8e\x11\xaa\x59\x0c\x0f\xcc\xff\x1c\x8e\x19\ +\x3f\xbb\x2c\x8f\x35\x09\x08\x8c\x16\x10\x11\xce\x6c\x5d\x84\x29\ +\xb1\x46\x7c\xe0\x95\x1f\xa3\x13\xdd\xfa\x0f\xb6\x3a\x48\x5e\x9f\ +\x87\x59\x8c\xe4\x22\xe4\x8a\xda\xa0\xe1\xf6\x54\x8c\x5e\x4e\xcc\ +\xaf\xa3\x82\xee\xa3\x9a\xee\x22\xc6\xa2\xc4\xe9\x2e\x06\x48\xf0\ +\x7b\x29\xf0\x31\x65\x29\xcf\xa8\x04\xb2\xcf\x11\x18\x7e\x3c\xe3\ +\x42\x1c\x33\x7e\xb6\x98\x08\x02\x02\x25\x82\x45\x75\x53\x70\xfb\ +\x81\x2b\x04\x21\x04\x04\x04\x04\x04\x04\x04\xc6\x04\x8a\xa0\x14\ +\x91\xf6\x1f\x69\xff\x9d\x51\xb7\x18\x97\x1f\x70\x14\x88\x48\x78\ +\x89\x04\x04\x4a\x05\x04\x9c\xde\x7a\x08\xae\x1a\xff\x5f\x00\xb8\ +\xe6\x09\x22\x6e\xce\xdb\x14\x38\x2c\x56\x18\xfd\xa3\xed\xdb\xc2\ +\x21\xdb\x07\xeb\xe2\x66\xe4\x5e\x38\x4a\x31\xe2\x64\x10\x74\x1f\ +\x23\x03\x2d\x50\x5e\xcb\x42\x30\x71\x9a\xb7\xdc\x15\x10\xe4\x2c\ +\x84\x78\xca\x5e\x9e\x15\xd5\x53\x14\xe6\x51\x7c\x67\xd6\x87\xc1\ +\x98\x28\x97\x24\x20\x50\x8a\xb8\x6e\xd6\x87\x50\xcb\x45\x7c\x91\ +\x80\x80\x80\x80\x80\x80\xc0\xe8\xc6\xc8\x6b\x23\x94\xb2\x3a\x2f\ +\xaf\x3b\x10\x07\xd5\x4d\x12\x1a\xb0\x80\x40\x89\xa2\x25\x56\x83\ +\xf3\x9a\x0e\xd5\x62\x02\x79\xba\x0b\xa8\x48\xb6\xab\x42\xbd\x36\ +\xb0\x01\x29\xc7\x17\x8e\xb0\xc1\x7d\xd8\x47\x43\xd0\xbd\x38\x74\ +\x2f\x54\x7f\x04\xdd\x05\xdd\x4b\x88\x2c\xa5\x43\xf7\x52\x25\x84\ +\xa0\x7b\x71\x26\x7e\x31\x3d\x45\xc4\x70\x5e\xd3\x52\xb1\xeb\x14\ +\x10\x28\x65\x10\xe1\x82\x96\x43\x05\x1d\x04\x04\x04\x04\x04\x04\ +\x04\x46\x35\x64\x77\x55\x0c\xc3\xa7\xee\xe9\xf1\x08\x0c\x12\x16\ +\xd7\x4e\x12\x23\x20\x20\x50\xe2\x38\xa8\x6e\x22\xc2\x4a\x04\x00\ +\x10\x97\x12\x3e\xf3\x1b\x01\xe5\x87\x51\xa0\xc0\xab\x8e\x40\x40\ +\x14\x3a\x2d\x0f\xf7\xe9\x07\xd9\xda\x0d\x8f\xf7\x53\xb1\xdb\x2d\ +\xe8\x3e\x2a\xe8\x4e\x45\xa6\x7b\xd0\xf7\x0a\xba\x67\xf7\xdc\x32\ +\xa5\x3b\x8d\x3a\xba\x43\xd0\xbd\x94\xe8\x9e\xab\x1c\x08\xdc\x00\ +\xff\x71\x2c\x9a\xa7\xa8\x4e\xad\xc4\xa4\x8a\x46\xb1\xe3\x14\x10\ +\x28\x71\x34\x86\xab\x70\x40\xb4\x0e\x71\x36\x20\x88\x21\x20\x20\ +\x20\x20\x20\x20\x30\xfa\xc0\xc9\xcd\x53\x94\xad\x26\x96\xa5\xca\ +\x28\x69\x25\xe2\xc7\xb3\x6a\x44\xe5\xb0\x48\x67\x2f\x20\x50\x06\ +\x68\x0d\xd7\xe2\xbd\xa1\x1d\x8e\xe9\xec\xf9\x39\x6b\x61\x54\xe4\ +\xfb\x03\xf7\xcb\x66\x81\xe3\x79\xbe\xbf\x40\xed\xe6\xb9\x16\x62\ +\x2f\x55\xba\x7b\x11\x58\xd0\x7d\x64\xe9\x4e\xa5\xd9\xee\xb2\xa5\ +\x3b\x17\x74\x17\x74\x1f\x0e\xba\x53\x99\xd1\x3d\xe0\xfe\xa1\xd0\ +\xfa\x47\x80\x07\x16\x35\xed\x1b\x13\xaa\x90\x80\x40\xf9\x80\x8b\ +\xf9\x2a\x20\x20\x20\x20\x20\x20\x30\x3a\x21\x13\xa9\x56\x85\x4e\ +\x3f\x8b\x98\xbb\x82\xc6\x6d\x0a\x99\x6d\x23\xa5\x9f\x0d\x27\x62\ +\xc2\x3d\x24\x20\x50\x26\x88\xb2\x90\x76\x4e\xd9\xe1\x49\xb1\xc7\ +\x7a\x70\xdb\xf7\xee\xcf\xcb\x5f\xce\x14\x16\x4e\x87\x10\xb7\x2a\ +\x82\xc4\x6d\xed\x47\x69\xb5\x3f\xa0\x45\xae\x6c\xe8\xee\xd3\x4f\ +\x41\x77\x41\xf7\xcc\x74\xa7\x51\x41\xf7\x52\x2b\x19\x25\xe8\x2e\ +\xe4\x4c\x79\xd2\xdd\x7d\xfd\x36\x11\x26\x73\xbd\x2f\x62\xf6\x39\ +\xa1\x11\x09\x08\x94\x15\xc4\x94\x15\x10\x10\x10\x10\x10\x10\x18\ +\xa5\x90\xc1\x75\xbd\xc8\xf0\x18\x39\x8e\xde\x05\x54\xdd\x78\xe6\ +\x1f\xc8\xa6\x28\x4a\xaa\x9e\x70\x3c\x47\xcd\x96\xeb\xf7\x91\xae\ +\x5c\x71\x5e\x5e\x55\xb8\xcb\xad\xbd\x82\xee\x63\x9b\xee\x04\xee\ +\x6e\xc8\xe0\x9a\xdc\x30\xcd\x2b\xdc\x43\x91\xb2\xb5\x97\x07\x17\ +\x20\x23\x43\x5f\xf3\x0f\x72\xf6\xdb\x45\x21\xe4\x25\xd2\x6e\x67\ +\x47\xdc\x0f\xc5\x9b\x96\xfe\x7c\xb3\xce\x8d\x18\xdd\x51\x16\x74\ +\xb7\x2f\x93\xe4\xd1\xbe\xf2\xe1\x77\x1f\xba\x97\x88\xcb\xc8\xde\ +\x7e\x6f\xba\x53\x59\xd3\x1d\x25\x4b\x77\x08\xba\x0b\xba\x0f\x1f\ +\xdd\x0b\x16\x8c\xe5\x4e\x38\xfb\xc9\x38\x24\xf5\x7d\x8c\x54\xe4\ +\x98\x22\x94\xe9\x06\x55\x40\x60\x4c\x42\x4c\x57\x01\x01\x01\x01\ +\x01\x01\x81\xd1\x08\x45\x81\x9c\x52\xd5\xbc\x62\x00\xb2\x35\x29\ +\x72\x8f\x6f\xf5\xef\x75\x85\x4c\x0d\x29\x79\xb5\x9d\xca\xfc\xf8\ +\x9d\xdd\xf2\x5f\x2e\x10\x74\x1f\x9b\x74\xd7\x4e\xda\x92\x39\x7f\ +\x1d\xa6\x1e\xee\x55\x90\x20\xdf\xf4\x33\xc5\xeb\xb1\x6b\xeb\xf9\ +\x08\xb5\x3b\xa0\x02\x6a\x58\xb5\x54\x8f\xf6\xeb\x07\x00\xcc\x03\ +\x01\xe6\xaf\xaa\xde\x3f\xdb\xe1\x6a\xef\xe7\x8d\xd4\x70\x15\x99\ +\xee\x79\x0f\x9b\x71\x32\x82\x5c\x67\x41\xd9\xf3\x3b\x2f\x55\xba\ +\xc3\x42\xf7\x51\x27\x67\x78\x79\xf0\x7b\xb9\xd0\x9d\xbc\xf8\xa6\ +\x5c\xe8\xce\xcb\x5d\xce\xf0\xcc\x74\x1f\xa1\x75\xd5\xfc\xc8\xc8\ +\xb1\x06\x8e\x38\x54\x11\xa0\x20\x20\x50\x66\x50\x05\x09\x04\x04\ +\x04\x04\x04\x04\x04\x46\x21\x08\xb2\x61\x4a\x4c\x19\x7e\xb3\xcb\ +\x77\xce\x3d\x83\x08\x3c\x34\x3f\xdd\x32\xc9\x39\x01\x94\xbb\x05\ +\xdc\x1e\x53\x51\x6e\x96\x7f\xc6\x58\x59\xb6\x5b\xd0\x7d\x6c\xd1\ +\x9d\xa7\xbf\x5f\x05\x20\xdb\xeb\xc5\x58\x2d\x3d\xc4\xc8\x26\x2e\ +\xbc\xce\x12\xfb\xc8\x19\x2f\x93\x69\xa1\x2d\x77\x1e\x69\x7d\xcc\ +\x2c\x3e\x64\xc4\xe4\x90\x7b\xbb\xbd\x1c\x63\x1e\x72\x32\xeb\x02\ +\xdf\xe4\xd3\x5c\xfd\x33\xf3\xe0\x13\x67\x43\x6c\x96\x3a\x5b\x01\ +\x0c\xe3\x6e\x66\xeb\x20\xf7\x1d\x27\xf7\xee\x93\xdf\xba\xe0\xe8\ +\x9f\x95\xee\xa6\xc7\xcb\x97\x5f\x6c\x0d\xe2\x1e\xe3\xcc\x87\xa7\ +\xc4\x3c\xf9\xd0\x9f\x7c\xb2\x31\xfa\xcf\xc0\xec\x17\xf7\xac\xda\ +\x1f\x98\xee\x3e\x74\x1e\xf6\x3d\x8b\xc7\x04\xe0\xc8\x2c\x67\xf2\ +\x6d\x27\xa1\xb0\xcf\xc9\x56\xce\x78\x4e\x30\x8f\x2c\x99\xc3\x2e\ +\x27\x03\xd2\x3d\x28\x5b\x67\x4b\xdf\x6c\xfb\xe9\x25\x47\x1d\xdd\ +\xcb\x72\x5d\x1a\x29\x4f\x92\xe7\x7a\x88\x60\xfb\x02\x3e\x4c\xf3\ +\xd0\x8f\xef\x3c\xf9\x3d\x20\xdd\x73\x5c\xff\xb9\x23\xf8\x8a\x32\ +\x92\x93\x27\xf5\xcf\x21\x2a\x72\x4c\x91\x80\x80\x40\x79\x28\x65\ +\x22\xa0\x48\x40\x40\x40\x40\x40\x40\x60\xb4\x82\x00\xd9\x6e\x09\ +\x24\x2f\x95\xdd\x5e\x8e\xc4\x47\x13\xf7\xd4\xa4\xcd\xe7\x70\x77\ +\x05\x5c\x40\x40\xa0\x04\xb5\x22\x2f\x97\x80\x5f\x96\x2d\xeb\xc4\ +\xf7\x3e\x83\x1e\x30\x2b\x1a\x0d\x97\x72\xc6\xdd\xbb\x6b\x84\x42\ +\x12\xb7\x35\xcf\xbd\x7e\x11\xcf\xea\x2d\x99\x04\x29\xb7\x91\xc5\ +\xdd\x42\xc8\x6d\x12\x94\x87\xf4\xfb\x8d\x6c\x3a\xb2\xfe\x59\xf7\ +\x90\x9a\xdf\x9b\xa1\x60\xfa\xfd\x8a\xd1\x1d\x8f\xba\x72\x0e\x71\ +\x6e\xb3\x14\xfb\x1a\x28\xb9\xfb\x72\x61\x77\x3c\xd8\x97\x1f\x2f\ +\x4f\x90\x27\xbf\xf8\xf0\x11\x65\x99\x4d\xd5\xce\xf6\xf6\xc7\xdb\ +\x2c\x9f\x5e\xc6\x04\xfb\xba\x3a\x6c\x26\x06\x8f\x6c\x8f\x9e\x64\ +\x20\x5b\xfb\x6d\xb1\x66\xde\x9e\x3e\x1f\x3a\xf3\x60\x5f\x67\x9b\ +\x2b\x8b\x78\xb0\xf7\x73\xe4\x97\x35\x8c\x28\x60\x83\x7d\xf8\x87\ +\xfb\xb0\x9f\x3d\x3b\x97\xca\xec\xb1\x16\xb6\x7e\x7a\xb6\x8b\x7b\ +\xc8\x85\x02\xf5\x9b\x7b\x74\xc0\xd7\xc3\xc3\x03\xee\x17\x73\xdc\ +\x08\xe6\xb8\x1e\x70\xdb\x3c\xe1\x7e\x72\xb8\x40\xf2\x84\xe7\xca\ +\xf7\xbe\xcb\x84\x95\x6f\xb2\xcd\x4e\xeb\xd7\x1e\xf2\x60\x47\xa7\ +\x9e\xc0\x83\xd1\xdd\x94\x33\x5e\x02\x97\x07\xa3\x37\x0f\x4a\x47\ +\x77\x8f\x93\x39\x4f\x22\x29\x8f\x72\x91\xb3\xcf\x89\xbd\xa6\x80\ +\x40\x99\x68\x45\x82\x04\x02\x02\x02\x02\x02\x02\x02\xa3\x16\x32\ +\xb7\xd5\x29\xca\x7f\x4b\xe4\x73\xa5\x6a\x14\x2a\xe2\x39\x19\x06\ +\x04\x04\x04\xca\x40\x79\xb2\xc5\xaa\xe4\x2b\x59\xfc\x1c\xd4\x59\ +\x5b\xda\xb2\xb4\x00\x3b\x8e\x50\xc3\x6e\x99\xcd\x0e\x76\x83\xbe\ +\x59\x2f\xc1\xb0\xf8\x99\x86\x2b\xc3\x92\xa9\x7f\x21\xb1\x54\x7b\ +\x08\x60\x20\x44\x58\x08\x07\x44\xc7\x63\x6e\x65\x2b\x66\x46\x9a\ +\x30\x25\xda\x88\x96\x70\x0d\xea\xe5\x0a\x48\x9c\x34\xeb\x21\x31\ +\x70\x70\xc4\xd5\x04\xba\x12\xfd\xd8\x15\xef\xc2\xfb\xca\x5e\xac\ +\xee\xdf\x8e\x77\xbb\xb6\x61\x1b\xeb\x42\x52\x4d\x68\xed\xe1\x1c\ +\x5c\x6f\x00\x53\x54\x0f\xba\xb9\x53\x3e\xf5\xad\xe3\xb0\x7b\x76\ +\xe4\x77\x1e\x3a\xcf\x8b\x5f\x72\xae\xde\xe1\xe5\xf1\x08\x6a\x20\ +\xb5\x5b\x24\x3d\xdf\x13\xf4\xcc\x04\xcf\xae\x63\x1e\xe3\xc5\x6d\ +\xb1\x36\xe4\xc7\xef\xdc\xa7\x5e\x17\xcf\x4b\x5a\xe4\x7c\xbd\x1f\ +\xdd\x73\x3d\x8a\xc2\x3d\x3d\x25\xf9\x75\x20\xa8\xd8\x71\x58\xfa\ +\x79\x81\x09\x48\x01\xfb\xed\x45\x6f\x5f\xcf\x68\x7e\xcd\x09\x2a\ +\xef\x3d\xa5\x42\xe6\x90\x92\x00\x2b\x08\x0f\x36\x8e\x3e\x0e\xec\ +\x82\x0d\x5b\xc0\x83\x14\xb9\xd6\x2f\xe4\x59\xce\x07\x1e\x90\x5c\ +\x14\xb0\x0e\x11\x37\x63\x33\x79\x56\x0c\xc3\x73\xf4\x54\xa6\xe4\ +\x9a\x2e\x9f\x87\xf4\x75\x2e\xcc\x21\x17\x7b\xef\x24\x20\x20\x20\ +\x20\x10\x1c\x31\x29\x8c\x83\x2a\x27\xe1\x84\xba\xf9\x38\xb6\x76\ +\x36\x16\xd5\x4c\xc1\x38\xb9\x0a\x60\xd6\x43\x89\xe9\x1b\x71\xca\ +\x10\xc8\xaa\x72\x8e\xed\xf1\xfd\x78\x61\xff\xfb\x78\xaa\x6b\x1d\ +\x1e\xef\x7c\x1b\x6b\x07\xb6\x09\x42\x0b\x08\x08\x08\x08\x8c\x29\ +\xc8\xfe\x1a\x5c\x79\x83\x97\x78\x81\xd8\x62\xb5\xcf\x2f\x7b\x59\ +\xb6\xed\xf2\xcd\xba\x54\x22\xf4\xf4\xfb\xbd\xd0\x74\x19\xee\xfe\ +\x95\x6f\xdd\xa8\xc2\xc4\x56\xf0\x5c\xaf\xcb\x1c\x3a\xe9\xfb\xa0\ +\x5c\x3d\x43\xe6\xfd\xdc\x4e\x07\x9b\xe7\x89\xa5\x05\x11\x30\x82\ +\x24\x49\x38\xa4\x62\x2a\x2e\x19\xbf\x0c\xa7\x8d\x5b\x88\xb6\xaa\ +\x71\x01\xde\x49\x01\xf8\x95\xc0\x88\x30\x29\xd2\x80\x73\x9a\x1a\ +\x70\x4e\xd3\x12\x60\x16\xf0\x46\xcf\x16\xfc\xa5\xe3\x15\xfc\x69\ +\xe7\xcb\xd8\x38\xb4\x1b\xcc\xe8\x81\xa2\xd8\x3a\xe0\x7e\xd8\x9c\ +\x6c\x31\x64\x4e\x53\xa7\x4f\x16\x3f\x64\xfe\x99\x0f\x13\x9f\xe4\ +\xcf\xd6\x3e\xe9\xf8\x10\x38\x28\xd7\x83\x00\x99\xb3\x7f\x39\x09\ +\x44\xee\x17\x98\xe3\x61\xf7\x64\xb9\xd7\x0f\xe1\x05\x22\xa4\xc3\ +\x23\x90\x75\x2c\x8a\x0f\x83\x38\xf8\xc8\x23\x18\x9a\xb8\x07\x5d\ +\x47\x98\x91\xec\xf2\x5c\x75\x67\xa3\x61\x12\xbf\xde\x5f\x78\xd0\ +\xc3\x2b\xb4\x28\x5f\x32\xe5\x2a\xc7\xb9\x0f\xa3\xf9\x7b\xe6\xb8\ +\xeb\x70\x04\x4e\x5a\x38\xdc\xc9\xde\x3c\x92\x3d\x92\x83\x8f\x29\ +\xaf\xe7\x3a\xe7\x07\x15\x94\xbd\x89\x0a\xc4\x0f\x59\x97\x4d\xa5\ +\x60\x0c\x9b\x59\x29\x1a\x7d\xf8\xde\xf7\xae\xc7\xe3\x8f\xff\xdb\ +\x85\xd0\x1c\x23\x77\x80\x8f\xe3\xc0\xf9\x07\xe2\xe6\x9b\xff\xd7\ +\xf2\xed\x33\xcf\x3c\x8b\x6f\x7d\xfb\xdb\x50\x55\x35\x2f\xae\xd3\ +\x33\x9c\xbb\x73\x8e\xd5\x7c\x0c\xc6\x08\xb7\xde\x72\x0b\x66\xcf\ +\x9e\x9d\xf1\xd1\x03\x03\x03\x38\xf7\xfc\x0b\xd0\xd7\xdb\x03\xce\ +\xb5\x85\xb3\xb2\xa2\x12\x0f\x3d\xf8\x80\xe5\xba\x2d\x5b\xda\xb1\ +\xe2\xa3\x1f\x85\xaa\xa4\x0a\xf2\xce\x9e\x3d\x1b\xb7\xde\xf2\xcb\ +\x11\x1f\xeb\xaf\x7c\xe5\x6b\x78\xf1\xa5\x17\xdc\xc7\x95\xac\x7b\ +\x86\xf4\x4d\x63\x28\x14\xc2\xdf\xfe\x7a\x2f\x6a\x6a\x6a\x32\x3e\ +\x7f\xcb\x96\x76\x7c\xf4\x8a\x2b\x90\x4c\xc4\x9d\x84\xcd\x69\xd6\ +\x06\xdf\x4d\x90\x31\xdc\x9c\x03\x44\xb8\xfe\xfb\xdf\xc3\x91\x47\ +\x1e\x29\x4c\x3b\xa3\x18\x15\x91\x18\xce\xa9\x5f\x8a\x2b\x9b\x8f\ +\xc3\xd2\xba\x69\x90\x24\x36\x22\x32\x6b\x61\xf5\x01\x58\x58\x3d\ +\x19\xd7\x4d\x3b\x0d\x8f\xee\x5e\x8d\x1f\x6d\xf9\x27\x5e\xe8\xd9\ +\x20\x06\x44\x40\x40\x40\x40\x60\xd4\x42\xf6\x34\x5c\x64\xad\x91\ +\x65\x7f\x1f\xc7\x08\x64\x9f\x23\x60\xcd\x9a\xd5\x78\xfa\xe9\xa7\ +\x8a\x4e\xec\x78\x3c\xee\xf8\xae\x63\xd7\x2e\x3c\xfd\xd4\x53\xe0\ +\x7c\x64\x0b\x63\xf6\xf6\xf6\xfa\xd0\x8d\x90\x48\x24\xf1\xec\xd3\ +\xcf\xa0\xbb\xa7\xcb\x64\x8c\x9a\xba\x3a\x24\x12\x09\x84\x42\x21\ +\x73\x0c\x7b\x7b\x7b\xf0\xf4\x93\x4f\x02\x00\x54\x55\x53\x8c\x06\ +\xfa\xfb\x8a\x42\xe3\x55\xab\xde\xc0\x33\x4f\x3f\x93\xb5\xad\x26\ +\x1c\x8e\x20\x99\x4c\xf8\x5e\x37\xd0\xd7\x87\xa7\x9f\x7c\x0a\x8a\ +\x92\x28\x2a\x2f\x11\x93\xd0\xd9\xb9\xa7\x7c\x25\x4f\xbe\x13\xbf\ +\x50\xf7\xfb\x3d\x2f\xcf\xf7\x38\x3d\x44\x36\x93\xb6\xdd\xa2\x1f\ +\xd3\x62\x86\x22\x14\xc2\xc5\xf5\xcb\xf0\x95\xc9\xa7\x60\x7a\xd5\ +\x04\x90\x54\x0c\x8f\x20\x21\xc6\x22\x38\xb3\x69\x09\xce\x6c\x5a\ +\x82\x47\x77\xaf\xc2\x77\x36\x3e\x80\x17\x7a\xdf\x37\x1b\x4e\x4a\ +\x5a\xdd\x39\xcb\x02\x62\x88\x11\x5b\xdd\xaa\x54\x10\x95\xa5\xdf\ +\x4e\x32\xab\xd6\x6f\x3c\xc8\x35\x6c\x7c\x99\xe3\xf8\x3a\x9e\x63\ +\x16\x90\xf2\x49\xd3\xc6\x79\x30\x86\xf3\xf2\x18\x65\xdb\x7e\x72\ +\xaf\xdb\xc1\xed\xcd\xe5\x85\xe2\x24\xf7\xe7\xa5\x1c\x36\xf6\xa0\ +\x8c\xa0\xb1\x1e\x64\xb9\x9f\xa5\xd2\x45\xba\xb7\xc0\xc1\xa6\x76\ +\x4f\x26\x8d\xa8\xfc\xb3\x67\x9f\xcb\x3a\x9b\x5a\xd0\xa0\x9c\xac\ +\xe5\x58\xb0\xe8\x27\x43\x9e\x91\xc7\xef\x05\x66\xa3\xfc\xe7\x73\ +\xbe\xc1\x4e\x05\x92\x1b\xbe\xf7\x91\xd7\xfb\x3d\x04\x21\x05\x2c\ +\x1c\xe7\xf9\x7e\xf2\x98\x0f\x05\x12\xb8\x7e\xf4\x1c\xae\xb2\x4f\ +\x39\x3c\x6f\x4c\x78\x8a\x4a\xe6\x80\x91\xdb\x59\x81\xa2\x1d\x9f\ +\x63\xc1\x39\xd9\xe7\xc8\x16\x05\x58\x74\x8b\x2b\x09\x83\xdc\x91\ +\x4d\x2a\x11\xb5\x14\x98\x49\x98\x74\x46\x29\x8e\xab\x9c\x87\x9b\ +\xa6\x9e\x8b\xc5\xf5\x53\x4a\x6a\x98\x4f\x1e\x7f\x30\x4e\x68\x9c\ +\x87\x3f\x6c\x7f\x1e\xff\xfd\xfe\x7d\xd8\x9e\xdc\x2f\x06\x4b\x40\ +\x40\x40\x40\x60\xd4\x40\x2e\xa6\x6e\x4f\x23\xa6\xb0\x94\x86\x5a\ +\xe4\x65\x4b\x19\xc9\xc2\x98\x4c\x92\xb4\x7f\x59\xf0\x8a\xd3\x44\ +\xcc\xf4\x64\x31\xb2\xd9\x84\xb8\x66\x2d\xe2\x5e\x75\x48\x46\x4c\ +\xdf\x4c\x55\x04\x27\x26\x81\xab\xca\xf0\xe9\xb5\xbc\x34\xb8\xc9\ +\x77\x0c\x47\x33\xf2\xf5\x64\x07\x16\x73\x79\xca\x43\x3f\x0f\x91\ +\x51\x3f\x48\x06\x1a\x42\xb5\xb8\x61\xe2\x59\x58\x31\xe9\x48\x84\ +\x43\xa5\x69\xaf\x0a\xb3\x10\x2e\x9f\x74\x2c\x4e\x1e\xb7\x00\x5f\ +\x5c\xfb\x27\xfc\xb9\xf3\x15\xa8\x50\x4d\xc7\x0e\xd9\xb2\xad\x71\ +\x5f\x0f\x5c\x40\x93\xec\x70\x7b\x14\xf3\xf6\x10\x71\xab\x1c\x32\ +\xb2\x29\x19\xf4\xe0\xd9\x08\x18\x38\x8b\x65\xd8\xb3\x39\x3a\x2c\ +\xc5\x5e\x8c\x67\xf3\xb8\x05\x0c\x96\x28\x54\x6c\x8b\x27\x9d\xf4\ +\x2c\xb4\xa4\xf3\x3f\xd9\xf9\xc5\x37\x86\xca\xfa\xbd\x3d\x34\xc2\ +\x5e\xff\xc4\x11\x3a\x41\x5e\x0c\x39\xcc\x67\x57\xb8\xad\x21\x14\ +\x30\xa8\x31\xeb\x02\x68\x7e\xc1\x8f\x94\x59\xce\xf1\xc2\xcc\xc3\ +\x72\x35\xdd\xf1\x61\xf7\x10\xf1\xcc\x72\xd0\x2b\x7b\xab\x67\xbd\ +\x23\x0a\xc6\x07\x94\x2b\x1f\x04\x74\x49\xe6\x69\x0c\xa7\x12\xe0\ +\x9b\xa2\xd6\x29\x1a\xa9\x8e\x97\xcc\xd6\xd1\x85\x61\x8a\xe9\x50\ +\xc9\x1c\x84\x6d\xa4\x06\x26\x1f\x82\xf2\x12\x18\xe1\x14\xd4\x3c\ +\x8e\x21\x52\x59\x71\x94\xf0\x14\x8d\x26\x2c\xad\x98\x89\xff\x1c\ +\xf8\x55\xac\x98\x54\x1e\x31\x62\x2d\xd1\x7a\xfc\x6e\xc1\x27\x70\ +\xdb\xac\xcb\x50\x8d\x98\x18\x40\x01\x01\x01\x01\x81\xb2\xc7\x98\ +\x38\x3e\xe7\xa6\xf5\xff\xf4\xa7\x3f\xc5\x51\x47\x1d\x0d\x80\x07\ +\xc8\xe0\x65\xab\x47\x6e\x04\xec\xeb\x79\x1a\xd2\x75\x68\xe3\x59\ +\x1b\x37\x6c\xc0\x59\xe7\x9c\xeb\x1b\x2b\xc4\xb5\x0c\x06\xbe\xf8\ +\xe8\x47\x3f\x8a\xab\xaf\xfe\x94\xab\x12\x45\x44\xe6\x7b\xff\xdf\ +\x97\xff\x1f\xfe\xf9\xaf\x7f\x5a\xb4\xae\x5f\xfe\xf2\x16\x1c\x76\ +\xd8\xa1\x20\x68\x75\x4d\x38\x80\xaf\x7d\xed\xeb\xd8\xb4\x79\x93\ +\xf6\x7e\x22\x84\xe4\x10\x1e\xb8\xff\x7e\x4c\x99\x72\x80\xf9\xcc\ +\xda\xda\x5a\x3c\xf3\xcc\xd3\x50\x14\xc5\xec\x7f\x6f\x4f\x37\x16\ +\x2f\x5e\x8a\x44\x32\xa9\x7d\x47\x84\xf1\x8d\xe3\xf0\xf2\x4b\x2f\ +\x81\x31\x09\x92\x6e\xf9\x5b\xb7\xf6\x5d\x2c\x38\xf8\x10\x24\x13\ +\x89\x94\xe6\x47\xb6\xac\x54\x1c\x38\xfd\xf4\xd3\x71\xe3\x0d\xd7\ +\xfb\x8e\xc1\x0f\x6f\xfa\x1f\xdc\x71\xc7\x1d\x80\xcd\xa2\x48\x44\ +\xe6\xb3\x00\xe0\xb3\xd7\x5c\x83\xef\x5f\xff\x3d\x48\x4c\x32\xc7\ +\x8b\x2c\x46\x17\x82\xaa\x2a\x38\xe3\x8c\x0f\x63\xeb\xb6\xad\xd9\ +\xeb\x18\xe4\xbc\x78\xfe\xfc\x03\x71\xe7\x9d\x77\x78\x2b\x91\x96\ +\x9b\xcd\x14\x0f\xb0\x64\x7e\x48\x6b\x07\x37\xae\x21\x7d\x6c\x01\ +\x7c\xed\xeb\xff\x8d\x87\x1f\x7e\xc8\x83\x2b\xcb\xd0\xb4\x90\xef\ +\xe3\xb2\x3d\x2b\x3e\xc2\x7a\x6c\xca\x50\x6d\xb3\x40\x1b\xb1\x0e\ +\xb2\xce\x8d\x32\xc3\x25\x0d\x47\xe3\xe7\xb3\xce\x47\x4d\xa4\x02\ +\xe5\x94\x4c\x50\x26\x09\x1f\x9b\x74\x0c\xe6\x54\xb6\xe0\xbc\x55\ +\xbf\xc4\x76\x65\xbf\xc3\xf0\xc9\x5d\x64\x95\xc5\x20\xe3\x08\x21\ +\x29\x90\xb2\x3f\xc2\x1e\x22\xbb\xe7\x6f\x52\xb8\x0e\x2a\x49\xd8\ +\x96\xd8\x6b\x0d\x9e\x55\x29\x63\x3f\x89\x6b\x72\xeb\x1b\xcd\x67\ +\xa0\xa1\xba\x16\xaa\xc4\x11\x02\xf0\xe7\x1d\xcf\xe3\xd9\xfd\x6b\ +\x01\x2e\x7b\xb4\xdb\x1e\x5b\xa4\xea\xed\xd5\xe5\xa0\xec\x11\x7b\ +\xe4\x88\xe9\x19\x5e\x23\x4e\xba\xa7\xe6\x88\x8a\x69\xd8\x41\x03\ +\xd8\x14\xdf\x83\xa8\x4e\xb7\xc1\x84\x1e\x77\xab\x7a\x51\xde\xa3\ +\xee\x88\xf1\xbd\xe1\x3d\x0f\x11\xc6\x4b\xb5\xf8\x70\xfd\x81\xb8\ +\xbd\xe3\x45\xa8\x6a\xd2\x9d\xfe\xbe\x59\xea\x0a\xd5\x7d\xf7\xa3\ +\xe8\x90\xf4\xc9\xa2\x72\x40\x65\x81\xe5\x97\x23\xf4\x88\x73\x57\ +\xb6\x34\xff\x08\xd9\xae\x57\xcd\x34\x97\xf6\x09\x1a\x48\xbe\xf2\ +\xa2\xac\x41\xc3\xb8\x3e\x20\x4b\x79\x41\x05\xe2\x03\xce\x35\x1e\ +\xd0\xf9\x96\xf4\x81\xe5\x8a\xd7\xe6\x35\xa0\x47\xcf\x8d\xdf\x24\ +\x0e\x48\x69\xe3\xcb\xc9\xcd\xb5\x6a\xe3\x03\xbf\x0e\xe7\x1a\x8b\ +\xe4\x3e\x9f\x4b\xc1\xd4\x3b\x26\x94\x22\xb7\x05\x68\xc6\x8c\x19\ +\x58\xb4\x78\xd1\xb0\x4c\x69\xce\x39\x42\xb2\xac\x6d\xd8\x0b\x34\ +\xca\xcd\xcd\x2d\x58\xb4\x68\x91\xeb\x3e\x3a\x25\xe7\x38\x6a\x6a\ +\x6a\x1d\x9b\x90\xb6\xb6\x36\x1c\xb2\x70\xa1\x65\xf1\xd8\xb4\x79\ +\x13\xde\x79\xfb\x6d\xf3\xba\x70\xc4\x3d\xd1\xc0\x82\x05\x07\x59\ +\x18\xb6\xb3\xa3\x03\x6b\xd6\xac\x31\x13\x2a\x00\xc0\xb4\xb6\x19\ +\x58\xa8\x3f\x5f\x92\x65\x10\x80\xae\xfd\x5d\x78\x6b\xcd\x1a\x5f\ +\xa5\x70\xe9\x92\x25\x81\xfa\xbf\x73\xc7\x4e\xbc\xf3\xce\xdb\x99\ +\x37\x4d\x44\x68\x6e\x6d\xc1\xe2\xc5\x8b\x01\xdb\x31\x3f\x63\x13\ +\x96\xd0\x93\x5d\x84\xc3\x61\xd7\xfb\x73\x41\x65\x65\xa5\x36\x36\ +\x28\x7c\x8a\x6c\xa3\xdd\xf5\x75\xf5\x25\xb6\xca\x08\x14\x02\xdf\ +\x68\x3a\x1d\x5f\x9f\x79\x3a\x64\xfd\x58\x6b\x39\xe2\xc8\xfa\x99\ +\x78\x7c\xe9\x97\xf1\x91\xd7\x6f\xc6\x3b\x83\xdb\xc7\xfc\x98\x46\ +\x58\x04\x77\xcf\xfa\x24\x66\xd7\xb5\xe2\xc6\xf6\x47\x70\xcb\xb6\ +\x27\x31\x90\x1c\xca\xea\x19\x2b\x5a\x8f\xc2\x94\xfa\xf1\xa6\xb0\ +\xdf\xd2\xb5\x0b\xcf\xee\x7d\x37\xe7\xb3\x1d\x61\x8a\x22\xce\x07\ +\x4b\x86\x46\x4c\x92\x71\xf3\xcc\x4b\x31\xbb\x61\x22\x9e\xdc\xff\ +\x2e\x6e\xdf\xf1\x2c\x1e\xdd\xf7\x66\xc1\x9e\xff\xe9\xf1\xcb\xf1\ +\xf5\x29\xa7\x60\x42\x45\x2d\x3a\x87\x06\xf0\xf7\x7d\x2b\x4b\x8e\ +\x4f\x5a\x42\x0d\x90\x62\x9a\xb6\x22\xab\x1c\x5d\xc9\x7e\xec\x8b\ +\x17\x3e\x41\xd1\xb4\xf0\x04\x4c\xad\x68\x84\x2a\x13\x24\x70\xf4\ +\x2a\x83\x78\xb9\x7b\xa3\x10\xbe\x25\x80\x0a\x16\x43\x53\xb8\x1e\ +\x89\x10\x07\x27\x15\x50\x55\x6c\x1f\xea\x2c\xf8\x7b\x2a\x59\x14\ +\x47\x54\x4e\x83\x12\xd2\x36\x90\x32\x07\x5e\xec\xdf\x80\x1e\x97\ +\xe4\x5f\x63\x1d\xb2\x8b\xa9\xaa\x30\x7b\xa7\x12\xb7\x78\x32\xc6\ +\x86\xad\x89\x0e\x6b\x68\x06\x92\x04\xdd\x44\x53\x80\x3d\x3b\x23\ +\x4a\x3b\x43\x6e\xfd\xde\x6c\x93\x9a\x8a\xbd\xb1\xbf\xc1\xaf\x2d\ +\x64\xf6\xc9\x12\x70\x04\xc6\x52\xf7\x52\x9a\x7e\xc1\x83\x76\x2c\ +\x10\x4d\x11\xac\xec\xb2\xee\x1a\x22\x0f\x3a\x87\x4c\x65\x28\x9f\ +\x7a\x3f\xf6\x44\x13\x7c\xf8\x32\x71\x3b\xea\x88\x8c\x12\x3b\x45\ +\xbe\x72\x85\x4a\x53\x3e\x99\x8f\x35\x62\x32\xec\x69\x75\x24\xa6\ +\xcb\x1f\x09\x3f\x9c\x74\x0e\xbe\x30\xf3\xe4\x7c\xf4\xf1\xa2\xc3\ +\xe0\xcf\xd9\x95\x2d\xf8\xd7\xd2\x6b\xf1\x81\x57\x7f\x84\xb7\x06\ +\xb7\xa6\x79\x8c\xac\xb2\x90\x3b\x28\xc5\x6d\xc3\xe2\x11\xf4\x95\ +\xed\xb8\x0d\x97\x87\xc8\xf4\x28\xa8\xb6\xc7\x19\xe3\x4b\x38\xaf\ +\x7e\x09\x8e\x6c\x9a\x03\x00\xf8\x9f\x19\xe7\xe1\x8a\x96\xa3\x71\ +\xed\x86\x3f\xe2\xe1\x8e\x37\x9d\x69\xdd\xec\x75\x46\x64\x4d\x39\ +\x56\x65\xfd\x04\x83\x49\x0e\x66\x63\x12\xdb\xfd\x76\x0b\xbf\xee\ +\x79\xb9\xa4\xfe\x28\xfc\x64\xde\x79\x90\xf4\xe7\xae\xec\xde\x80\ +\x13\x57\xfe\x00\x5c\x0a\xf9\x4c\x0c\x9f\xca\x50\x76\x4f\x84\x67\ +\xfd\x20\x77\x8b\x76\xb3\x5c\x8b\xd9\xb5\xad\xa8\x0c\x45\x71\xda\ +\xf8\x85\x38\x75\xdc\x02\x6c\x1c\xd8\x8e\xe9\xcf\x7d\xdd\xf6\x3c\ +\x9e\xf1\xb9\xa9\x65\x4c\xeb\xef\x31\x35\xb3\xf0\xd3\xe9\x17\x62\ +\x61\xe3\x34\xf3\x31\xdf\x9e\x79\x26\x1e\x78\x5e\x53\xb8\x92\x2c\ +\xe1\x23\x57\xa9\x40\x72\xc5\x8b\x61\xb5\xcf\x32\xc9\x78\x7c\xfe\ +\xb5\x98\xd1\xd8\x6c\xf6\xe7\x57\xed\xcf\xe0\xd3\x1b\x7e\x67\xe3\ +\x33\x77\x86\xe5\xa6\x27\xd0\xbe\xd7\xb0\xc5\x8e\x31\xc2\x55\xad\ +\x27\xe2\xda\x99\x1f\x30\xef\xdd\x36\xd8\x89\xc9\xff\xb9\xd6\xf6\ +\x1e\x9e\xb9\x5f\x3e\xc9\xcd\x4a\x4e\x7c\x51\xb0\xf6\x67\xbd\x3e\ +\x14\x2a\xdb\xa9\x3e\x3e\x67\xd5\x2e\xc5\xaf\x0f\xbe\x1c\xa1\x88\ +\xb6\x15\x1f\x52\x06\x31\xf3\xc9\x2f\x60\x2b\xef\xcf\xfc\x20\x5b\ +\xac\x2a\xb9\x8b\x25\xd3\x33\xb4\x30\x3a\x05\x8f\x2d\xf9\x0a\x28\ +\xcd\xf6\xf6\x5f\x2f\x7f\x1f\x4f\x0e\x6d\xb0\x8d\xbf\x47\x6c\x93\ +\xfd\x7b\xf2\x09\xd2\xb5\x1d\x19\xe0\x66\x8c\xe5\x08\x73\x8c\xc3\ +\x73\x15\x40\x37\x18\x0b\x9a\x1f\x65\x22\x56\x29\xec\xfa\xa8\x40\ +\xd7\x78\xbc\x96\xb9\x2e\x58\xdc\x6d\x8e\xe6\xd0\x60\x9e\x67\xb7\ +\x0a\x5b\x34\x2f\xbf\xb8\x20\xca\xf1\xce\x11\x98\xe0\xbc\x24\x67\ +\x91\x40\x8e\xf8\x4a\xd3\xa9\xf8\xfc\x8c\x0f\x8c\xaa\x3e\xb5\x46\ +\xea\xf1\x8f\x45\x9f\xc5\x44\x79\xdc\x98\x1d\xd7\x09\x54\x8b\xef\ +\xb4\x7d\xd8\xf2\xdd\x9c\xca\x56\x9c\xd1\xb8\x10\x50\xd4\xfc\xa6\ +\x5c\x0e\xe1\x92\x95\xe1\x08\xea\x63\xd5\xa8\x09\x55\xa2\x26\x54\ +\x81\x1a\xb9\xb2\x24\xe6\xf2\x51\x95\x33\x51\x11\x8e\x5a\x3a\xbb\ +\x37\x91\xbf\x97\x64\x49\xed\x01\x38\xb8\x61\x8a\xe5\xbb\x83\x6a\ +\x26\xe3\x82\xe6\x23\x4a\x8b\x51\x24\xab\x40\x97\x1d\x4a\x6a\x81\ +\x20\xbb\x8c\x35\x67\x10\x28\x15\x3e\x70\x8b\x33\x1f\x9e\x53\x03\ +\xf6\xb2\x0e\x2a\x09\x3e\x70\x9d\x32\xe5\xb3\x29\x1b\xde\xfd\xa4\ +\xa1\x71\xc7\x13\xf1\x9c\x96\x8c\x70\x38\xe2\x50\x32\x1c\xce\x0d\ +\xb7\x78\x20\x49\x42\x38\x1c\x71\x66\xa7\xb2\x5d\x6c\x3f\xee\xa5\ +\xe8\x85\x52\x15\xc5\x9a\x65\x4d\xb1\x67\x5d\xe3\x1c\x89\x64\x02\ +\x43\x71\x6b\xbf\x14\x97\x62\xb1\xe9\x0a\x8a\x79\xdc\x2c\x91\xb0\ +\xb4\x6b\x68\x68\x08\xe1\x48\x58\x7f\xaf\x16\xf7\x12\x0d\x85\x91\ +\xd0\xcf\x82\x2b\x8a\x56\x5c\x72\x68\x68\x08\xa1\x70\xd8\xe3\xf8\ +\x1c\xf9\xf6\x2b\x99\x4c\x5a\x2e\x55\x94\x24\xc2\xe1\xb0\xef\x58\ +\xca\x21\xd9\xfd\xd8\x9c\xde\xbe\x94\xe1\xd2\x59\xc8\x21\x91\x8c\ +\x63\x28\x3e\x64\xa1\x83\xeb\x31\x3b\x37\x0e\xb3\x19\x7c\x55\x55\ +\x85\x92\xcc\xa5\x96\x11\x41\x92\x24\x48\x65\x7c\x9c\x2a\xab\x49\ +\x99\xad\xe5\x3f\x5f\x43\x13\x0d\xb3\xae\x67\xf2\x97\x2d\x7d\x97\ +\x61\x75\x90\x80\x8b\x6a\x97\xe1\x7b\xf3\x3f\x32\xaa\x54\x4d\xc3\ +\xf2\x3e\x3d\x36\x1e\xf7\x1e\x7c\x15\xfe\x6b\xe5\x0f\xd1\xcf\x07\ +\xbd\x43\x5f\x1c\xb1\x74\x01\xeb\xc4\xf0\x61\x1e\x3f\x3f\xe3\x0d\ +\xe7\xee\xcd\x0e\x69\x1b\x8c\xef\x1f\xf0\x61\x1c\x50\x3d\xde\x42\ +\x97\xae\x64\x0f\x6e\xdc\xf8\x28\xc0\x42\xe6\x0d\x12\x31\x90\x4c\ +\xba\x24\x52\xa1\x24\xb9\x85\x6f\x5c\x93\x44\xa5\xbd\x3a\x84\x30\ +\x24\x49\x82\xc2\x14\x70\x4a\x42\xd1\xd3\xc5\xf1\x44\x8a\xcf\x00\ +\x40\x92\x59\x1a\x59\x49\x63\x47\x62\x69\x65\xa0\xec\xc1\x45\x7e\ +\x05\x6f\x82\x4d\x68\xaf\xe1\x45\x48\xfb\xe5\xb4\xc6\x83\x1c\x17\ +\xdd\xd7\xf9\x86\x7f\x3d\x27\x64\xe6\x9b\xdb\x76\x3d\x8f\x2b\x5a\ +\x8e\xc3\xdc\xda\xc9\x96\xcb\xbe\x39\xf3\x43\xf8\x6b\xc7\x4b\x48\ +\xda\x63\x9b\xec\x1a\xa7\x7d\xa3\xc8\xb3\x9e\xf8\x99\xdb\xad\xc7\ +\x8e\x70\x02\x28\x2c\x21\xa4\x2b\x43\xda\x3a\x45\xde\xf4\xb7\xaf\ +\xa3\xc6\x73\x8c\x8d\xae\x4a\x80\xc4\x20\x93\x8c\x83\x23\x93\xc0\ +\x79\x12\xaf\x0d\xb5\x6b\xd7\xb1\x54\x96\x3f\x73\x2f\xae\x13\xdf\ +\xdc\x2d\x48\x46\xff\xf5\x7f\x93\xe4\x31\x1f\xc9\xe3\xdf\x1c\xe5\ +\x7b\xb6\xf3\x79\x98\x62\x05\x87\x65\x53\x99\xe9\x3a\xdd\x73\x0b\ +\xc6\x11\x0a\xcb\xa6\x7c\x09\xb1\xb0\xf5\x98\x0d\xf9\xf0\x81\x3e\ +\xbf\x11\xd6\x9f\x97\x04\xc0\x24\x34\x4b\xf5\x38\xac\xa2\x15\x0f\ +\x74\xaf\xd6\xf6\x3f\x21\x6b\xb6\x47\x70\xae\xbb\x44\x8c\x7d\x96\ +\x64\x9b\xa8\x2a\x1c\x1b\x5a\xd7\x01\xc8\x36\xad\xab\x9f\x07\x78\ +\x64\xe5\x7a\x7e\x4a\x51\x79\x2f\xd9\x6e\xab\xb8\xe3\xab\x13\x4f\ +\x3c\x09\x6f\xbf\xf3\x76\xe0\x27\xea\x62\x0c\xd5\x35\x35\x58\xfb\ +\xee\x3b\x39\x4d\x90\x93\x3f\x78\x32\xde\x7d\xe7\x1d\xa2\x80\xfb\ +\xe3\x00\x00\x20\x00\x49\x44\x41\x54\x33\xa0\x3e\x3d\x69\x80\x91\ +\x24\x80\x88\xa1\xae\xae\xce\x71\xef\x75\xd7\x7d\x13\x77\xdc\x79\ +\x87\x76\x1f\x01\x8c\x18\xf6\xee\xd9\xe3\x50\xf6\x2e\xba\xf8\x62\ +\x44\x23\x51\xb3\xdf\x8c\x11\xb6\xb6\xb7\xfb\xce\xdd\xbe\xbe\x7e\ +\x2c\x5a\xbc\x04\xbd\xbd\x3d\xe6\x02\x5f\x51\x51\x89\x75\xef\xbe\ +\x6b\xc6\x69\x32\x22\x6c\xde\xbc\x09\x33\x67\xcd\x41\x32\x99\x30\ +\xe7\xd4\xdc\x39\x73\xf1\xce\x3b\x6f\xe9\xdb\x09\x4a\x1d\x7f\xa3\ +\xf4\x21\x60\xa8\xa9\xae\x76\x0c\xcf\x2f\x7e\x79\x0b\x6e\xbc\xf1\ +\x86\x54\x22\x0b\x0e\x5c\xf5\xc9\x4f\xe2\x9d\x77\xde\xb6\x24\x95\ +\x48\x91\x8a\x83\x88\x81\x31\x86\x09\x13\xc6\xbb\xd0\xf8\x14\xac\ +\x5e\xfd\x66\x6a\xc1\x26\xc2\xf6\xf4\x24\x0b\x00\xe2\x89\x04\x16\ +\x2e\x5c\x64\xa1\x7d\x6d\x6d\x2d\xde\x5c\xf5\x46\x40\xc5\xc8\x8a\ +\x47\x1f\x7d\x0c\x57\x7c\xfc\xe3\x80\xaa\x06\x70\xc3\x91\x99\x92\ +\x16\x44\xf8\xda\x57\xbf\x8a\x4f\x7f\xfa\x53\xc2\x64\x33\x0a\xb1\ +\x30\x32\x15\xb7\x1c\x78\xc9\xa8\xee\xe3\xe1\x75\xd3\xf1\xd3\x59\ +\x17\xe2\x13\xef\xfe\x76\x4c\x8d\xed\xc9\x55\xf3\xf1\xb1\x69\xc7\ +\x39\xe4\xef\xf7\xdf\x7f\x10\x1b\x07\xac\x72\xf9\xc5\x05\x5f\xc3\ +\x84\x8a\x5a\x24\xf5\x4d\xc9\xf2\xd7\x6e\xc2\xfb\xf1\x3d\x19\x8c\ +\x76\xd6\xcf\xdf\x9b\xfc\x11\x7c\x74\xea\x32\xf4\x29\x5a\xac\xd2\ +\x3d\x1d\x2f\xe2\xcb\xed\x7f\x75\xdc\x57\x4d\x91\x92\xb3\x6d\x56\ +\x21\x8a\x13\xc6\xcd\xb5\x2c\x06\x2a\x57\x70\x5f\xe7\xaa\xbc\x9f\ +\xdd\xa7\x0c\xe2\xba\xcd\xf7\xe1\xde\x05\xd7\x58\xbe\x6f\xab\x18\ +\x8f\xcb\x5b\x8f\xc1\x2f\xb6\xff\xb3\xb4\x8c\x42\x05\x1a\x9d\x43\ +\xaa\xda\xf0\xe1\xc6\x45\x38\xab\xe1\x10\xcc\xa9\x69\xc1\xba\xde\ +\xed\x58\xf0\xfa\x77\x90\x64\x4a\x90\xdd\x90\x40\xd1\x76\xa6\x2e\ +\x9e\xa2\x1c\xd9\xa0\x49\xaa\xc7\xf2\xfa\xf9\x38\xbb\x7e\x11\x4e\ +\x68\x98\x83\x48\x48\xc6\x09\xaf\xde\x84\xe7\x07\xdf\x03\xb9\x79\ +\x07\x45\x98\xb0\x2b\x4d\xe4\xc0\x9a\xda\x30\x25\x10\x1f\x19\xc5\ +\x90\x07\x12\x0c\x9d\x9d\xbb\xb1\x73\x47\xf6\x81\xc2\x7d\x7d\x7d\ +\x66\xe2\x01\xc6\xb2\xb3\xf0\x57\x56\x54\x60\xda\xb4\xa9\xd9\xd3\ +\x8b\x31\x74\xed\xdf\x8f\x1d\xdb\xb7\xf9\x8e\x8f\x45\x51\xa2\x80\ +\x74\x22\x2d\x4b\xdb\xae\x9d\x3b\xd1\xdd\xbd\xdf\xdc\xd8\x57\x57\ +\xd7\xa0\xb9\xa5\x05\xb2\x2c\x9b\x0a\x46\x6f\x4f\x0f\xb6\x6f\xd3\ +\xda\x61\xd0\x61\xf2\xe4\xc9\x98\x3a\x75\x9a\xc7\xd1\x3d\x6f\x30\ +\xc6\xd0\xd7\xd3\x8b\x1d\x3b\x76\x58\xbe\x0f\x85\x43\x98\x3a\x2d\ +\xfb\xe7\x01\x40\x67\xc7\xee\xd4\xf3\xb8\xb7\xc5\x71\xc7\x76\xeb\ +\xd8\x0f\x0e\x0c\x78\xa4\x2d\xf7\x36\x6f\x19\x7f\x0d\x0d\x0c\x62\ +\xd7\x8e\xed\x3e\x69\xcf\xdd\x74\x75\x42\x5f\x7f\x7f\x69\x4a\x8b\ +\x12\xb5\x6f\x14\xb4\x5b\x94\xdf\x0a\xe5\x39\xde\x04\x54\xb2\x0a\ +\xdc\x31\xe7\x72\x54\x85\xa3\xa3\x77\x63\xa2\xcf\xcf\x8f\x4d\x3e\ +\x06\x8f\x76\xae\xc1\xdf\xf6\xbc\x6c\x25\x2c\x87\xcf\xc2\x62\x98\ +\x39\xb8\xe7\xa6\xa1\x28\x9b\x16\x47\xd6\x28\xfd\x1f\xdd\x62\x3f\ +\x9e\x55\xe1\xe7\xb3\x2e\x72\xdc\xff\x6a\xcf\x7a\xfc\x6f\xfb\x13\ +\x69\x02\x4e\xfb\x67\x72\xd5\x38\x34\x55\xd6\x43\xd1\xd3\x4c\x45\ +\x49\xce\x7c\xa4\xdb\x76\x16\xbf\x4a\x8e\xa1\x31\x56\x8b\x46\x9d\ +\xde\xe3\xf6\xd5\x83\xc7\x91\x66\x80\xd1\x9e\x5b\x27\x45\xad\xc6\ +\x1f\x25\xa1\x9d\x9e\x32\x8e\x6f\x25\x6d\x9e\x22\xc9\x88\xd5\xd1\ +\x3f\x2b\xcc\x32\xae\xfe\x62\xc0\xe6\x71\x72\x38\xe4\x55\x2c\xab\ +\x9a\x8e\x89\xd5\xd6\x23\x96\x1b\x06\x76\xe2\x9d\x9e\xed\x69\xec\ +\xa0\x5a\xe7\x9f\xac\x58\xf9\x25\x69\xdb\xe4\x49\x8a\xd9\xce\xbf\ +\xee\x59\x89\xff\xec\x5b\x87\x65\x75\x33\x53\xb1\xae\x44\xf8\x52\ +\xdb\x07\x71\xd7\xf6\xe7\xd0\x4d\x7d\x69\x1e\x19\xd5\x36\xef\xd5\ +\x80\x1b\x15\x3f\x8f\x89\x87\x45\xdd\xb4\x26\x72\xf7\x93\x24\xaa\ +\x3d\x06\xc2\xf6\x59\x66\x20\xc6\x50\x27\x57\xe1\x88\x8a\x36\x9c\ +\x54\x77\x20\x3e\x50\x3f\x1f\x73\xea\x5a\x2d\x6f\x9f\x55\x33\x11\ +\xc7\xd6\xcc\xc5\xe3\xf1\x35\x08\x71\xc9\x21\xd2\x22\x72\x05\x00\ +\x60\x62\xa8\x11\x2a\xa9\xe0\x8c\xc3\x30\xcb\x82\x78\xaa\xce\x96\ +\x94\xaa\x23\xc5\x14\x15\xef\x0d\x68\x6b\xa4\x71\x90\xc3\x77\x7d\ +\xe0\x79\xca\xe3\x42\x2f\x47\x9e\xe3\xc8\x83\x6d\x4c\xf3\x5d\x06\ +\x6d\x31\x62\xf6\xed\x8c\x16\xb7\xad\x22\xe5\xc3\x93\xac\x7c\x43\ +\xd0\x8e\x44\x86\x24\x44\x29\x82\xd9\xa1\x66\x9c\x50\x3b\x07\xa7\ +\xd5\x1f\x8c\xc3\xeb\xda\x50\x61\x18\xbf\xf5\xcb\x3f\xd1\x7a\x3c\ +\x9e\xdb\xb6\xc1\xd5\x2e\xcb\x18\x03\x64\x19\x93\x69\x3c\xc2\x72\ +\xd8\x31\xff\x29\xcd\x8a\x4d\x46\x76\x3c\x55\xc1\xfe\x44\x2f\x76\ +\xc7\xbb\xf4\x76\x49\x81\xe8\xe6\x1d\x72\x30\x4c\xd9\x1e\x03\x0f\ +\x87\x73\x40\xc7\x88\xa7\x28\x77\xad\xbd\x38\x3b\xb5\xc0\x3b\xb0\ +\x61\xdd\x1f\x7a\x6d\xf0\x28\xa0\x8c\xc8\x99\x9a\x54\x1a\x14\xe6\ +\x9e\xe9\x5f\x87\x77\x78\xa8\xc4\xea\x59\x15\x95\xc7\x47\x8d\x70\ +\x61\xf8\xca\xc4\x0f\x62\x41\xc3\x01\x79\x3f\xaa\x7d\x68\x0f\xf6\ +\x0c\xf5\xa0\x39\x5c\x83\xe6\x68\x43\x41\x9b\xb9\x71\x60\x37\x7a\ +\x13\xfd\x68\x8d\xd4\xa3\x31\x52\x93\xf3\x73\x18\x31\xfc\x6c\xce\ +\x05\x78\xea\xc5\x77\xb1\x57\xe9\x1e\xf5\xc3\xfb\xe3\x69\xe7\x62\ +\x7a\x6d\xb3\xd5\x58\xa6\x0c\xe0\x33\xef\xfc\x11\x83\x6a\xc2\x7d\ +\xfe\xa4\xed\x8a\x73\x49\x89\xad\x95\x23\xb0\x50\xdd\x71\x4d\x85\ +\x14\x76\xbe\x3b\xc4\x53\xa9\xa9\x8b\xa0\x34\x9f\x33\x7e\xa9\xe3\ +\xeb\xfb\x76\xbf\x0a\x95\x94\xd4\x26\x30\x4f\x5c\xb7\xe9\x7e\x3c\ +\x76\xf0\xe7\x10\xa2\xd4\x16\x67\x4a\x45\x23\x3e\x75\xc0\x89\xb8\ +\x61\xfb\xfd\xe6\xa9\xa1\x52\x32\x32\xf9\x2d\x17\x4b\x62\x6d\x38\ +\x73\xdc\x22\x2c\xab\x9f\x89\x83\x6b\x0e\x40\x5d\xb8\x52\x3f\xed\ +\x47\x2e\xf3\x8f\x70\x55\xeb\x51\x78\x7c\xd3\x1a\x97\x84\x4f\x7a\ +\x90\x7f\xdd\x22\xfc\xdf\xfc\x15\xda\x5e\x58\xf6\xb0\x82\x53\xfa\ +\x46\x1d\x58\xf0\xcc\x57\xb0\x9e\xef\x16\xf2\xbc\x48\xfb\xba\x1a\ +\xaa\xc2\x15\xe3\x8e\xc6\xe1\xf5\x33\x70\x68\x5d\x1b\x26\xc6\xea\ +\x21\x31\xc9\x33\x51\xd4\x19\xcd\x0b\x30\x69\x47\xbd\x2b\x83\x49\ +\xb2\x84\x10\x0b\xe3\xb1\xb9\xd7\x60\x66\x43\x6b\x9a\xf8\xb0\xaa\ +\xeb\x5c\x9f\xb7\x04\x0e\xce\x39\xfe\xb2\xed\x05\x5c\xbc\xee\x57\ +\xa3\x96\xfc\x72\x40\xfd\x6d\xd8\xf6\x4e\xa3\x61\xab\x45\x34\x72\ +\x9d\x4d\x1f\x1f\xcb\xa6\x3d\x4f\x0b\x0b\xb9\x29\x85\x46\x0d\xa0\ +\xb4\x89\x2a\x31\xe6\x98\xc0\x86\x35\xc9\x4c\xd3\x4d\xe4\x16\x3f\ +\x98\x1b\x41\xf5\x3a\x4a\x96\x63\x73\x23\xa4\x40\x12\xbc\x0b\xc5\ +\xfb\x2e\x70\x79\x28\xac\xa5\x39\x27\x0a\xed\x29\x2a\x85\xda\xd5\ +\x59\x74\x9b\x72\xbc\x4f\x9f\x08\x73\xc3\x13\xf1\xb9\xb6\x93\xf2\ +\xe0\x61\x8e\xfd\x89\x3e\x7c\x66\xc3\x9f\x71\x6f\xe7\x6b\x18\x54\ +\x12\xa8\x62\x61\x5c\x36\xee\x08\x5c\x3f\xf3\x4c\x54\xeb\x96\xdf\ +\x5c\xb1\x69\xb0\x03\x9f\x58\x7f\x37\x9e\xda\xb7\x16\x89\xa1\x41\ +\x34\xc4\x6a\x70\x65\xd3\xd1\xb8\xae\xed\x43\x88\x49\x91\x9c\x9e\ +\x39\xa9\xa2\x11\x5f\x9f\x7a\x1a\xbe\xf8\xde\xdd\x69\x59\xd2\x98\ +\x75\x3e\xda\x0c\xed\x3c\x5f\xb6\x2c\x50\xac\x81\xd9\x2c\x47\xf6\ +\x34\xb2\x7e\x94\x18\x56\x34\x1c\x8e\x8b\xa6\x1c\x6d\xb9\x5f\x55\ +\x15\xfc\xa8\xfd\x11\xbc\xd8\xb5\x49\xbb\x47\xdf\x54\x86\x43\x61\ +\xcb\xf3\x8d\x7a\x6a\x50\x55\xff\x76\xa7\xb5\x5d\x91\xb8\x75\x16\ +\xd9\xeb\x3c\xe9\x4a\x4f\x83\x5c\x6d\x11\xa7\x61\x16\xc1\xac\x68\ +\x1b\x62\x92\xb6\xf4\xd7\xb0\x08\x2a\x28\x04\x59\x22\x2d\x4b\xa9\ +\x99\xcd\x8c\x00\x89\x23\xa4\x02\xcf\x76\xbd\x8b\xdd\x83\x7d\x81\ +\xe8\x6a\xf7\xac\xd9\xc9\x5d\x47\x55\x38\x6d\xc2\xc1\xa9\xdb\xf4\ +\x18\xd2\xbf\xee\x79\x0d\x4c\x0a\xe3\xe4\xda\x83\x20\x87\x42\xe0\ +\x2c\xb5\xee\x50\x80\x71\x35\xd6\x2f\xae\x1f\x13\x92\xa4\x30\x3a\ +\x86\xba\x31\x31\x66\x35\x1a\x7c\x7a\xea\x72\xbc\x17\xdf\x87\x01\ +\x1a\x02\x71\x63\xa9\xf1\xce\xac\xc7\xd3\xb2\xb9\x69\x71\xc2\xda\ +\x38\x3d\xd4\xf9\x2a\x00\x20\x99\xf4\xca\xde\x66\x4f\x07\x46\xae\ +\xfc\xee\xb8\x83\x3c\x38\x91\x38\x2e\x69\x3d\x12\x9f\x69\x3b\x29\ +\xc0\x52\xc7\x31\xa0\x0c\x01\xa4\x82\x38\x41\x61\xd6\xd0\x2b\x02\ +\x10\x8f\x72\x30\x06\x44\xc2\x01\x13\x3c\xe8\x31\x27\xc4\x24\x24\ +\x07\x79\x5a\xec\x15\xb7\x29\xf5\xbc\xac\xc4\xbb\xef\xb2\x94\xaf\ +\x47\x2a\x97\xfd\x07\xb9\xbc\x5f\xf7\xd4\xcc\x89\xb6\xe2\xa6\x79\ +\x17\xc2\x91\x8b\xc1\xe5\x84\x83\xc2\x55\xec\x1c\xdc\x8f\xe6\x70\ +\x25\xd4\xa4\x6a\xbb\x46\xdb\x4f\x71\x99\x20\x4b\x21\xf3\xe4\x4f\ +\x90\x6e\xc9\x2c\x92\x8a\x39\x63\xc1\xea\x7b\x15\xcf\xf3\x9f\x99\ +\x11\xc9\x2e\xcf\x21\x3c\x45\x45\x47\x3c\x1e\x47\x6f\x6f\x2f\xcc\ +\x00\x19\x02\x22\x91\x28\x2a\x2b\x2b\x87\x75\x9f\x5a\x51\x59\xa5\ +\xa5\x69\xe5\x1a\x63\x44\x63\x31\xc8\x21\xd9\xf1\xf0\xf4\xba\x47\ +\x04\x42\x5d\x5d\xbd\x55\x69\xd1\xff\xac\xac\xaa\xb2\x7c\x51\x53\ +\x5b\xe7\xfa\xde\x7d\x7b\xf7\xa6\x29\x73\x84\x48\x24\x62\xed\x2b\ +\x11\xc2\xe1\x08\x6a\x6a\x6a\xf4\x79\xa6\x3d\x2f\x16\xab\xc8\x7b\ +\x5a\xe4\x74\x27\xe5\xfa\x86\xdc\x06\xa7\x74\xd7\x10\xe1\x29\xca\ +\x07\xdf\x98\xfa\x21\x54\x86\x22\x39\xdf\x9f\x54\x93\xb8\xf4\xed\ +\x5f\xe1\x81\xce\x37\x00\xce\x40\xa1\x30\x7a\xd5\x38\x6e\xde\xf5\ +\x6f\xec\x48\x76\xe1\xde\x83\xae\xce\xf9\xd9\x3d\xc9\x7e\x9c\xb9\ +\xea\x17\x78\xa3\x67\xb3\xb9\xbb\xde\x1b\xef\xc6\x0d\xdb\x1f\xc2\ +\x00\x4f\xe0\xfa\xe9\x1f\xc9\x59\x31\xba\x72\xf2\xb1\xf8\xc5\xd6\ +\xc7\xf1\xfe\xd0\xae\x51\x39\xae\x73\xc3\x2d\xf8\xd1\xec\x0b\x1d\ +\xdf\xbf\xd8\xb5\x1e\xff\xb3\xc5\x19\xbf\x12\x4f\x0c\x21\xec\xc9\ +\x07\x3c\x4f\x49\xe1\xfc\xae\xce\xa6\x2c\x2f\xad\x9d\x8a\x35\x87\ +\x7e\x43\x53\x08\x40\xae\xc7\x91\xb5\x82\xde\xa9\x59\x7f\xf1\xca\ +\x9f\xe3\xee\xc1\xd7\x0b\x42\xaf\x0f\xd4\xce\xc7\x84\x0a\xeb\xda\ +\xb0\xae\x7f\x1b\x56\x76\x6f\x41\x05\xc5\xf0\x97\x79\x57\x6a\x47\ +\x80\x18\xcf\x49\xe6\x18\x6d\x27\x0f\xd9\xdd\x1a\xad\xc5\x9f\x17\ +\x5c\x91\x97\xa0\x55\xd4\x04\x26\x3e\xf9\x19\xec\x95\xf3\x38\xe6\ +\x4c\x3e\xc6\x40\x3b\x02\x38\xd0\x06\x94\x21\xbc\xdc\xbd\x19\x7f\ +\xd9\xbd\x12\x0f\xec\x79\x1d\x5b\xe3\x7b\xc1\x25\x5e\x30\x23\xa1\ +\xa6\x7c\x8b\x75\xa0\xe8\xcb\xaa\x4f\xd2\xb8\x0d\x03\x1d\xf8\xc7\ +\xee\x37\xf1\xd7\xdd\xaf\x62\x65\xef\xfb\x18\x62\x09\x1c\x1a\x69\ +\xf3\xe4\x81\xac\x92\x11\xd2\xe8\x1f\x0f\xb9\x60\x9b\xb2\x51\x40\ +\xac\xdc\xad\xb8\x14\x8c\x00\x2e\xc4\x7d\xe8\xa1\x87\x70\xf9\xc7\ +\xae\xd0\x19\x54\x53\x17\x2e\xbd\xe4\x12\xfc\xfc\xe7\x3f\xf3\xd5\ +\xac\xf3\xd9\x40\x3f\xf4\xd0\x83\x58\x70\xd0\x02\x73\xdf\x4f\x44\ +\x96\x64\x0e\x04\x42\x6d\x4d\x0d\xd6\xac\x5e\x65\xf1\x7a\x30\xc6\ +\x2c\x99\xd1\x08\x84\x39\x73\xe6\x60\xf3\xa6\x8d\x16\x7a\x18\xc5\ +\x6b\xd3\xdb\xfa\xc0\xfd\x0f\xe2\xd2\x15\x97\x99\xd6\x33\x0e\xe0\ +\x82\xf3\xcf\xc7\x2d\xbf\xfc\xa5\xa5\xce\xd1\xd5\x57\x7f\x12\x97\ +\x5f\x7e\x99\xa9\x24\x12\x08\xb1\x8a\x58\x1e\xc7\xf1\x68\x8c\xf0\ +\x61\x39\x75\x32\xc7\xfa\x33\x41\xe7\x58\xc1\x48\x18\xd0\xe4\xc9\ +\xbd\x7f\x98\x1f\x99\x82\xf3\x26\x1f\x9a\x57\x2b\x5e\xed\x7e\x1f\ +\x0f\x76\xae\x32\xab\xde\xf3\x01\xbd\x18\x68\x88\xe1\xaf\x1d\xaf\ +\xe0\x99\xdd\xef\xe2\x98\x71\x73\x72\xf0\x68\x71\xfc\x63\xf7\x1b\ +\x78\xa3\x7b\xb3\xbe\xe3\x4b\x1b\x97\x24\x70\xcb\xae\x27\x71\x4d\ +\xcb\xf1\x68\xab\x6e\xce\xcd\xf8\x22\x47\xf1\xd9\xc9\x27\xe1\xb3\ +\xef\xdd\x95\x99\xae\xdc\x98\xff\xaa\x85\x9c\x3c\x5b\x8b\x33\xcf\ +\x6e\xd8\x7c\xc7\xdd\x5e\x8f\xc8\xa8\xbb\xc4\x08\x35\xa1\x18\x7e\ +\x3f\xe7\x63\xa8\x8f\x56\x59\xde\xdf\x31\xb4\x0f\x9f\x5c\xff\x7b\ +\xf4\xc5\x07\x9d\x9b\x50\xaf\x64\x5d\x46\x21\x3a\xca\x4d\xda\xdb\ +\x8f\xfa\x1a\xe9\x77\x1b\x42\x95\x0e\xd9\x12\x82\xe4\xdd\x0e\xce\ +\x1d\xf2\x47\x65\x2c\xeb\xac\x74\xf6\xfa\x5c\x46\x76\xbe\x15\xcd\ +\x47\x59\x9e\x4f\x8c\xe1\xee\x5d\x2f\x42\x51\x55\xa8\x32\x01\x12\ +\x69\xf1\x0b\x79\xca\xc0\x4c\x32\x94\x02\x1b\xbb\xdc\x21\x4b\x61\ +\x70\x26\x41\x4b\x2e\xea\xe1\x5a\xe0\xdc\x9d\x5e\x52\x7a\x76\x40\ +\xb2\x88\x41\x4a\xff\x5d\x31\x33\x19\xa5\x6d\x31\x9c\xd9\x61\xb7\ +\xc7\xf7\xe1\xb9\xee\x0d\xf8\xd7\x9e\x77\xf0\xcf\xbd\x6b\xd0\xde\ +\xd7\x61\x6b\xac\xd6\x16\xcb\xe1\x0b\xcd\xca\x82\xcd\xc9\x4e\x3c\ +\xd5\xf9\x96\x26\x46\x8c\x63\x86\xc6\x6b\x25\x86\x7a\x56\x81\x39\ +\xb5\x13\xdd\x99\xb5\xd8\xd9\xdf\x0a\xb5\x4e\x14\xba\xdd\xf6\xba\ +\x52\x5e\x1e\x14\x96\x61\x9d\x62\x69\x59\x08\x4d\x4f\xb5\x76\x43\ +\x52\xb6\xf2\x37\x57\x39\xfa\xd5\x21\xbc\xde\xd7\x8e\xc7\xf7\xad\ +\xc5\x63\x7b\x56\xe3\xb5\x9e\x4d\x18\x52\x6c\xc5\xa2\x65\xa7\x27\ +\x5a\x55\x54\xa8\xc9\x24\x9e\xeb\x79\x17\x1d\x6a\x57\xda\x7e\x93\ +\xd2\x3c\xd9\x0c\xf3\x2a\x26\xa2\x3a\x12\xb3\xca\x32\xce\x33\x2b\ +\xd7\xf6\xb2\x46\xc5\x56\x10\xb2\xd8\x17\x08\x4f\x51\x91\x91\x8c\ +\x27\xd0\xb5\x7f\x7f\x5a\x60\x29\x61\x70\xc0\xbf\xf2\x78\xbe\x2c\ +\x56\x53\x5d\x83\xfa\xfa\x3a\x5f\xa6\xb5\x67\xbd\xf3\x3a\x16\x56\ +\x5f\x5f\xef\xdf\xd7\x44\x1c\xdd\xfb\xf7\xeb\x3c\xaa\xf5\x77\x60\ +\x60\xc0\x71\x5d\x34\x1a\x45\x34\x1a\x1d\xc3\x5c\xc1\x45\x9b\x46\ +\x91\xe9\xe9\xca\x96\xe3\xf2\x7e\xca\xf3\x5d\xef\x81\x33\xd5\x19\ +\xd8\xaa\xe3\x85\xae\x8d\x38\x7a\xdc\x9c\x5c\x22\x53\xf0\xd2\xfe\ +\xf7\x3d\x7f\x1d\xe2\x09\xac\xea\x69\xcf\x59\x29\x22\x22\x5c\xd4\ +\x7a\x38\xbe\xb5\xe9\x3e\xec\x4b\xf6\x8c\x9a\x51\x65\x4c\xc2\x4f\ +\xa6\x9e\x8f\x43\x1a\xad\x16\xd8\xa4\x92\xc4\x37\xdb\xff\x81\xb7\ +\xba\xda\x3d\xef\x8d\x27\x86\x72\x14\xe8\x94\xf5\x7c\x6c\x0e\xd7\ +\xe4\x3f\xf3\x0b\x14\x7f\x34\x27\xdc\x82\x63\xc7\xcd\xb1\xf4\x23\ +\xce\xe3\xf8\xc3\xce\x57\x52\xe6\xea\x72\xb1\x07\xf1\x3c\x1b\xca\ +\xb2\x9e\xa6\x0e\xbc\xd3\xbd\x1d\x87\xbd\xf9\x7d\xf4\xaa\xfd\x5a\ +\x7e\x08\x25\x98\xec\x36\x14\xd6\xe7\xfa\xde\xc7\xf1\xab\xff\x47\ +\x4f\xc3\x9d\xe6\x99\x23\x2d\x8d\xf7\x92\xd0\x74\xbc\x72\xf8\x75\ +\x62\x2d\x18\x4e\x39\xe2\x9e\x01\xc1\x73\x2c\xed\x9e\xba\x7e\x75\ +\x08\x27\xac\xfc\x31\x5e\x19\x5c\xaf\xed\xcd\x14\x68\x49\x19\x98\ +\x3f\x7f\xaa\x7a\xb6\x8c\x8f\x6f\xfc\xbd\x16\xfa\x40\xaa\x95\xd1\ +\x18\x01\x9c\xe1\xbe\xb6\xcf\xe0\x8c\xc9\x0b\xc7\xc6\xf8\xbb\x66\ +\x9f\x1b\xd3\xde\x51\x5e\xa4\x27\x71\xcb\xdf\x14\xd0\xe9\x94\x8f\ +\x31\x4d\x4b\xf5\x4d\x23\x4a\x5b\x62\xcc\x51\xb7\x88\x46\x60\x7e\ +\x09\x8f\x7f\x09\x4f\xb5\x42\x8f\x0d\x8d\xf8\x54\x77\x7f\xa0\xde\ +\x8e\x1a\x54\xe1\x9c\x96\xc5\x79\xcf\xb5\x30\x97\xb5\x8d\xa3\xdd\ +\x28\xa1\x5b\x96\xeb\xa5\x58\xce\xcf\x8e\x91\xec\x4d\x10\x95\x50\ +\x2f\x55\x04\x2e\x23\xe4\x86\xc6\x48\x35\x4e\x6f\x3c\x04\x77\x76\ +\x3c\xed\x59\x8f\xc8\x9e\xbf\xd1\x34\xd2\xa8\x3c\xb7\x3d\x28\xcf\ +\x53\x56\xa8\xee\xf5\x88\xb8\x5e\x17\xe4\x33\xe3\x8f\xc3\x05\x13\ +\x0f\xb7\x58\x6c\x01\xe0\x9e\xce\x97\xf1\xdb\xed\xcf\x39\xb3\x9b\ +\xd9\x5c\x5e\xe4\xf6\x62\x06\x90\x1e\xeb\x43\x8e\x3d\xb4\xa4\xc5\ +\x75\x48\xcc\x95\x7e\xb6\xb0\x68\xf0\xa4\x8a\x46\xb9\x06\x8d\x91\ +\x4a\x27\x61\x78\x90\xe9\x97\xda\x24\x5b\x59\xce\xcf\x63\xea\x95\ +\x9c\x86\xe3\xa3\x4d\x47\x23\x66\xab\xe7\xf7\xc4\xbe\xb7\xf0\x7e\ +\xbf\x16\xb8\x4f\x2a\x03\x41\x4d\x8b\xe4\x09\x3e\xe8\xd6\x3a\x7f\ +\xc3\x27\xf0\x93\xaa\x56\x7b\x8e\x25\xf5\x80\x24\x66\xf3\x78\xdb\ +\x2d\xe8\x4c\xd2\xb2\x85\x19\x01\x4c\xba\x87\x88\x71\x59\xfb\x3b\ +\x8d\x2d\x18\xc9\x40\x28\xa4\xb1\x8c\xf1\x5c\x52\xb5\xbf\x99\xbe\ +\x56\xf2\x94\xb1\x61\x00\x43\xe8\x8d\xeb\xb1\x5e\x46\x96\x40\x23\ +\xae\xd7\x12\xeb\xc1\x1d\x23\xcb\x07\xe3\x69\x1c\x40\xa9\x87\x1b\ +\x31\x56\x32\x21\x11\x51\x8a\x28\xc8\x47\x66\xd9\x49\xd5\x05\x2b\ +\xf0\x51\x05\x93\x1f\xf5\x71\x91\xb5\xf9\x0d\xd2\xc7\x56\x3f\x6d\ +\xc3\xe0\x8c\xe9\xe2\x52\x04\x90\xc2\x9a\x82\x63\x24\x5f\x24\x25\ +\xd5\xee\xb4\xe1\x8c\x90\x84\x9d\x6a\x37\x78\x32\xbd\xbe\x14\xa5\ +\x79\x1a\xbd\xe7\xad\x0a\x40\x1d\xd4\x0d\x34\x92\xac\x5f\xac\x5a\ +\xfb\x12\x62\x50\x6c\x19\x19\x79\xba\x7c\x94\x02\x8a\x85\xa0\x31\ +\x45\x05\x67\x27\x9e\xf5\xf3\x84\xa7\x68\xb8\x36\xe2\xb9\x5e\x99\ +\x6d\xb1\xb8\x9c\xdb\x47\xc5\x91\x46\x45\x50\xc2\x79\x41\xb3\xf4\ +\x09\x2b\x99\x40\x70\x1c\x5b\x33\x07\x13\x62\xb5\x79\x3f\xe7\x94\ +\x09\x0b\xf1\x95\x0d\x7f\x47\x1f\x9c\x9e\xd5\x1a\x1e\xc3\xc9\xe3\ +\x0f\xcc\xf9\xd9\x1f\x9a\xb0\x08\x37\xb5\x3f\xe2\xfa\xdb\x01\xd4\ +\x80\xc5\x75\xd3\xf2\x6e\xff\xb9\x2d\x87\xe2\xce\x8e\x67\x46\xc5\ +\x98\x2e\xaf\x99\x87\x1b\xe6\x9e\x8b\xa8\x6c\xdd\xe0\xbf\xd5\xb7\ +\x15\x5f\xd8\xf4\x17\x24\x13\x89\x8c\x82\xcd\xb3\x08\x75\x9a\x13\ +\x90\xb9\x55\x9b\x97\xd3\x7f\xf7\x89\x63\x24\xa0\x49\xae\x41\x75\ +\x2c\x75\xb4\xaf\x3f\x39\x88\x8f\xbe\xf3\x5b\x74\x26\x7b\x40\x90\ +\x40\xaa\x96\x7e\x99\x31\x8e\xaf\x4e\x38\x0d\xc7\xb6\xcc\x35\xaf\ +\xfd\xe5\x86\x7f\xe3\xef\xdd\xaf\x21\x44\x61\xac\xec\xdf\x98\x37\ +\xcd\x1a\x58\x15\x2e\x6e\x39\xc2\xf1\xfd\xaf\xb6\x3e\xab\x19\xca\ +\x88\xa1\x2f\xd1\x8b\x4f\xad\xbf\x0b\x32\x0b\x81\x19\x91\xe4\x64\ +\xdd\x54\x81\xdb\x54\x68\x4a\xed\xfd\x98\x5e\xaf\x0e\x00\x92\xd0\ +\xd3\x4a\x73\xcb\xdd\xa9\x47\x70\xeb\xb7\x6e\xb5\x32\x79\xda\xd1\ +\x72\xd2\x9f\x2f\x71\x6d\x73\xdb\x25\xc5\x11\x45\x18\x83\xc8\x5c\ +\xa0\xfb\xdf\xf3\xbe\x8c\x96\x8a\x3a\x28\x52\x4a\x99\x01\x80\x10\ +\x08\xd3\x2b\x27\x58\xae\x3d\xaf\x69\x09\x0e\xaf\xd3\x3c\x8f\x8c\ +\x31\x10\x27\x48\x9c\xe3\xf7\x3b\x9e\xc1\x0d\x9d\x8f\xba\x2c\x9d\ +\xc3\x18\xb7\xaa\xf2\xa2\xad\xd7\xa3\x0d\x5f\x6a\x3a\x05\x97\x4e\ +\x3d\xca\xa2\xac\x32\x9d\x17\xc6\x49\x95\xd6\xe3\xa4\x60\x78\x6c\ +\xe1\xb5\x88\xeb\xe9\x11\x19\x69\x85\x1a\xbb\x93\x3d\x38\x7e\xd5\ +\x0f\x20\x3b\x82\xcb\x82\xf1\x00\x65\xb4\x00\x65\x7b\xe3\xe8\xde\ +\x03\x15\x3e\xfb\x1c\x2f\xe3\xc9\x93\xc7\x58\x33\xc6\x0a\xf6\xde\ +\xbe\xbe\x5e\x6c\xdd\xba\x35\x75\xba\xd3\x92\x53\x9f\x83\x73\x40\ +\xe5\x2a\x54\xce\x31\x7e\x42\x93\xc7\x03\xc9\x14\xe8\x7b\xf7\xee\ +\x45\x22\x11\xcf\x52\x91\xd0\xfe\xdd\xa9\xd7\xf7\x51\xd4\xa4\x45\ +\xa8\x1b\x8a\x86\xf1\x79\xe2\xc4\x49\xbe\xcf\x8c\x44\x22\x98\xd0\ +\xd4\x6c\xde\xcf\x18\x43\x7d\x7d\x83\xa3\xe5\x7d\x3d\xbd\xe8\xea\ +\xda\x6f\x0b\xf8\xa5\xb4\xc5\xcd\xa8\xea\x6a\x90\x25\x2d\x9f\xbe\ +\x5e\x28\xd6\x4c\xc2\xc4\x55\x44\xa2\x31\x93\x4e\x06\x29\x3b\x3a\ +\x76\x95\x2c\x2f\x95\xbb\x9a\x9f\xcd\xe3\x8a\x96\xa4\x28\xf0\x8b\ +\x73\x8c\x7d\xd2\x5d\xa0\x27\x37\xcc\x2f\x88\xa7\x72\x5a\x6c\x02\ +\x7e\x30\xf3\x1c\x7c\x76\xdd\x1f\xa1\x48\x8a\x9e\x06\x08\x08\x53\ +\x08\x37\x4f\xbe\x00\x07\x54\x8d\xcb\x99\x0e\x47\x37\xcc\xc2\xb5\ +\x07\x9c\x8a\x1f\xb5\xff\x13\x3c\xac\x5b\x87\x25\x8e\x4a\x16\xc3\ +\x2f\xa7\x5f\x84\xaa\x70\x2c\xef\x3e\x2c\xab\x6d\x43\x9d\x54\x85\ +\xfd\xc9\x5e\x0b\x21\xc9\x61\xba\x25\xd7\x75\x7b\xc4\xf8\xc3\x23\ +\x11\x19\xd7\x3d\x34\xf3\xa2\x13\x71\xd7\xfc\x4f\x20\x66\x4b\x96\ +\xb0\x2f\xd1\x8b\x2b\x36\xfc\x0e\xbb\x7b\xf6\x6b\x9d\x31\x62\x43\ +\xb8\x61\x09\x56\x2c\xb2\xd9\xc1\x48\xac\x12\xc4\xa2\x00\x18\x64\ +\x25\xe2\xa8\x77\x27\x51\x05\x48\xae\x00\x64\x02\x71\x09\x11\x5b\ +\x51\x56\x47\xa5\x34\x22\x4c\x0d\x8f\xb3\xc8\xe9\x5d\xf1\x2e\xfc\ +\x65\xe7\x0b\x7a\xb3\xac\xef\x3f\xa7\xf6\x70\x1c\x93\x26\x38\x5f\ +\xec\xdb\x80\xc7\x7b\xd7\x00\x89\x90\xc7\x3c\x70\xcf\xb6\xc6\x4d\ +\xcf\x98\x55\xd1\xbb\xa8\xf1\x70\x34\xd9\x12\x2c\x6c\x1d\xea\xc4\ +\x63\x7b\xde\xd2\x8f\xe9\x68\x37\xdc\xb1\xed\x79\xeb\xf3\x65\x5b\ +\xac\x8e\x17\x23\x9a\x8e\x39\xf2\x68\x9f\x07\xec\x3a\x8d\xdd\x70\ +\x9f\x20\xeb\xf7\xbe\x59\xc9\x8c\xeb\x25\x84\xe3\x11\xcc\xad\x69\ +\x45\x4b\x55\xbd\x83\x8f\xdd\x7a\x51\x17\xae\x40\x5d\xb8\xc2\xc6\ +\xf8\x1c\xad\x7b\x1b\x00\x46\x60\x60\x8e\x0c\x62\xa6\x27\x40\x71\ +\xd1\x12\x01\x8d\x5f\x6c\x2f\xa6\xf4\xec\x66\x06\x1f\x18\x74\x08\ +\xa7\x9e\x4d\x2c\xc8\x91\x15\x0a\x28\x17\xb9\x3b\xdd\x82\xc6\x26\ +\x51\x8e\xfb\x4b\xcf\x90\x97\xa0\x75\x89\x78\xc0\x65\xd1\x23\xa5\ +\x79\x58\x42\x73\xb4\x0e\xf3\x6b\x26\xba\x5e\xe6\xb8\x8b\x08\xf3\ +\xaa\x9b\x1d\xcd\xd9\x33\xd8\x0d\x96\x0c\x81\x71\x2b\x0f\x10\x91\ +\x96\x5e\xde\x3e\xee\xaa\xdd\xd0\xe2\xd1\x0f\x26\x5b\xfb\x69\x5c\ +\x16\x4e\xc9\x11\x89\x1c\x65\xd2\x32\xd4\x31\x75\xa7\xab\xf3\xa4\ +\x84\xea\xfa\xa0\x82\xcb\x7b\xca\x7e\x87\x31\x76\x3d\x45\x6e\x59\ +\x77\x4a\xa4\x69\x77\xdf\xfd\x47\xfc\xf1\x4f\x7f\xc9\xbc\x99\x24\ +\x86\x1f\xfe\xf0\x07\xd8\xb1\x7d\x9b\x25\x49\x81\xfd\x3a\x45\x51\ +\xb1\xfc\xc4\x93\xf0\xd4\xd3\x4f\x66\xdd\xdb\xee\x9e\x6e\xcc\x9d\ +\x7f\x20\x7a\x7a\xba\x6d\xd6\xba\x94\xd2\xc5\x09\x68\x6b\x9b\x8e\ +\xf7\xd6\xad\xf5\x7d\xde\x07\x3f\x78\xb2\xde\xde\x4c\x52\x8d\xe3\ +\xe7\x37\xdf\x8c\xeb\xae\xbb\x2e\xf5\xce\x20\x03\x63\xaf\x84\xa7\ +\x7f\x66\x8c\xe1\xd9\x67\x9e\xc6\xa1\x87\x1d\x66\x2e\x06\xc9\x44\ +\x02\x73\xe7\xcd\xc3\xfb\xef\xbf\x5f\x7c\xe5\xa0\xe4\xdf\x3b\x36\ +\xac\x43\xc3\x85\x63\xc6\xcd\x2e\xd8\xf9\xcd\xab\x27\x9f\x80\x69\ +\xd1\x09\xb8\x6d\xc7\xb3\x68\x8f\xef\xc3\x8c\xc8\x04\x7c\xba\xe5\ +\x58\x1c\x3d\x6e\x66\xde\xcf\xbe\x71\xd6\xd9\x58\x58\x3d\x05\x77\ +\xee\x7a\x01\xbb\x92\xdd\x58\x10\x9d\x84\x6b\x27\x9e\x88\x05\xf5\ +\x93\x0b\xd2\xf6\xda\x50\x05\x16\x46\x5a\xf0\x54\x72\x7d\xd9\x8e\ +\xe5\xe4\xd0\x38\xfc\x6d\xfe\x55\xae\x9e\xbf\x2f\x6c\xba\x07\x2f\ +\x75\xae\xb7\x84\x8a\x7c\x7c\xfc\x91\x78\xa5\x6f\x2b\x5e\xef\x4b\ +\xc5\x17\x85\x8d\xe3\x63\x36\x96\x78\x60\xe1\xa7\x31\x84\x84\xb9\ +\x97\x9f\x54\x65\x35\x16\x7d\x76\xfa\x09\x38\x7f\xca\x52\xd3\x3b\ +\x30\x25\x52\xef\x2b\x23\xe6\xc4\x5a\x2c\x9f\x77\xc5\xbd\xeb\x45\ +\x55\xb8\x65\x17\x54\x0a\xc3\xb7\x55\x52\x05\x3e\x73\xc0\x89\xb0\ +\x47\xfb\xbf\xda\xb5\x09\xfd\xca\xd0\xa8\x9d\xfb\xaa\x7e\xd4\x32\ +\xaf\x63\xee\x20\x4f\x09\xcc\xb3\x78\x4a\xd6\x08\x41\xa0\x50\x2b\ +\x67\xa8\x70\xb5\x58\x48\x65\xb9\x8d\xad\x5b\xed\xc3\x20\x0c\xc4\ +\xc6\xd8\x60\xb9\x66\x9f\xe3\x59\x5a\x5a\xfc\x34\xed\xe1\xb9\x2d\ +\xab\x17\xd0\xb0\x6f\xf2\x38\x54\xbd\xce\x44\x5e\x1e\xa3\xf4\x27\ +\xaa\x8a\x8f\x81\x46\x05\x23\x6b\x26\x38\x57\x9e\xce\xb1\x39\x9a\ +\x02\xc1\xc1\x55\x15\xaa\x92\xcc\x4c\xc1\x00\xc7\xd3\xd2\x2b\x8b\ +\xfb\x8d\x17\x03\xa0\x2a\x4a\x41\xc6\x49\xd5\xef\x37\x8f\x9b\x10\ +\x10\x0a\x87\xf3\x7a\x2c\x65\xf8\xcc\x39\xcf\x9b\xa1\x39\x1f\x6e\ +\x7e\x2d\xa1\x05\xa3\x1c\xa4\x64\x36\x2d\xa5\xd4\x59\xee\x26\x6a\ +\xc4\xd4\x58\x43\x41\x64\x9b\x31\x6f\x4e\x99\x70\x10\x4e\x99\x70\ +\x50\xc1\x7b\x29\x11\xc3\x45\xad\x87\xe1\xa2\xd6\xc3\x72\x62\x58\ +\x0e\x60\x88\xc7\xb1\x37\xd9\x87\xad\x83\xfb\xb0\x65\x68\x2f\xf6\ +\x28\xbd\xd8\x37\xa8\x1b\x54\x92\x0a\x7a\x69\x00\xf6\xac\x6e\x9e\ +\x8e\x07\xd3\xf3\x60\x78\x94\xec\x31\x34\x3e\xe9\xa3\x0a\xa4\x88\ +\x72\x7d\x57\x20\x41\xc6\x1d\x73\x2f\xc3\xac\xda\x56\x58\xe3\x6d\ +\x38\x7e\xd4\xfe\x18\xee\xdc\xf2\x2c\x00\x82\xaa\x77\x64\x4e\xac\ +\x15\x37\xcd\xb8\x10\xe1\x88\x84\x5b\xb7\x3e\x8d\x1b\x37\x3f\x8a\ +\x5d\xc9\xfd\x88\x2b\x49\x84\xe5\x98\x43\x3e\xcc\xf0\xf1\xf4\x4d\ +\x88\x55\x61\x02\xaa\x32\xec\x5d\xf4\x0c\x71\x2c\x95\xb0\xe7\xa0\ +\xaa\xc9\x16\x79\xbb\x79\xa0\x33\x95\x34\x21\x6e\x25\x7c\xb5\x4d\ +\x29\x8a\xab\x09\x3d\xa6\x81\x07\x62\x7f\x72\xd4\x25\x4a\x59\x9a\ +\x2f\x69\x3c\x1c\x33\x6a\x5b\x1c\xc3\xdb\x9b\x18\x48\xbb\x83\xb9\ +\x0b\x3f\xa3\x9d\x76\x8f\x86\xdd\xc5\x68\x14\x1f\x4d\x72\xeb\xe7\ +\x84\xfe\xd9\xb0\x7c\xc7\xed\xf2\xd9\xd6\xbf\xb8\xcd\xf3\x21\xd9\ +\x14\x44\x35\x98\x87\x81\x54\x06\x05\x43\x50\x48\x49\xf3\xd6\xe9\ +\xb5\x94\x00\xc4\xb5\xd4\x75\x08\xcb\x21\xf7\xc5\x37\x8d\x9e\xc9\ +\x78\x12\x50\x38\x14\xdb\x20\x34\x87\x1b\x70\xed\xa4\x8f\x00\x4c\ +\x4d\x95\x01\xd3\x67\x06\xa9\x0a\x9e\xee\x7a\x0b\x2f\x0d\x6e\xd4\ +\xeb\x0d\xa6\x9a\xc9\x40\xa0\xb0\x8c\x26\xd4\xe2\xd2\x26\xed\x58\ +\x57\x52\x6f\x06\x31\x6d\x24\x24\x95\xa1\x2d\x34\x3e\x7b\xf1\xe8\ +\x39\x2d\x3d\xb2\x17\xe6\x5a\x5f\x91\x17\x48\xae\x5b\x93\xbb\xb9\ +\x3c\xdf\x47\xfe\x73\x9f\x06\xa9\xc6\xdc\x48\xc5\xd4\xf0\xec\x5a\ +\x08\xce\x39\x54\x95\x43\x1d\xe4\x50\xa3\xd6\xf8\x1e\x46\x12\xae\ +\x69\x59\x8e\x5d\xd4\x6d\x86\xa1\xa5\xdf\xbb\x73\x60\x17\xee\xdc\ +\xf3\x9c\x93\xfe\x9c\x23\x1c\x0e\x03\x32\xc7\x79\x35\xcb\x30\xb5\ +\x62\xbc\xae\xc8\x6b\x35\xa8\x88\x38\x24\x30\x84\x95\x10\x0e\xaa\ +\x9e\xe4\xf4\xe0\x30\x29\x4b\x39\x1a\x6c\x5b\x54\xf8\x50\x5f\x11\ +\x53\x14\x9c\xd0\xdc\x7b\xe3\x51\x94\x7d\x57\x0e\xdc\xc0\x02\xb4\ +\x97\x0f\x0f\xf5\xfc\x8c\x10\x25\xb6\xad\xa5\xc2\x8e\x55\x8e\x96\ +\x99\xf2\xd6\x1e\xc4\x61\xf2\x6c\xe9\x35\x25\xd4\x88\xaa\x48\x6c\ +\xd4\xf6\xb0\x3b\xd9\x8f\x37\x7a\xdb\xf1\x44\xf7\x5a\xbc\xdc\xbd\ +\x11\x6b\x06\xb7\x62\x57\x7c\x1f\xe2\x3c\x81\xb4\x5d\xa0\xc6\xbc\ +\x2a\x37\xd3\x89\x97\x23\x14\x70\xdc\xbb\x7b\x25\x8e\x68\x9c\x89\ +\x28\x4b\x29\x10\xff\xdc\xfb\x26\xfe\x7b\xc3\xdf\x1d\xd7\x7f\xa1\ +\xe5\x44\x54\x45\x63\x20\x22\x7c\x72\xd2\xb1\xb8\xa8\xf9\x50\x2c\ +\x7f\xfd\x26\xac\xea\xdb\x0e\xf0\x61\x8a\xe8\x54\xb9\xa9\x5b\x30\ +\x48\x38\xb0\x7a\xa2\x65\x73\xb0\xa6\x77\xab\xe7\xad\x35\x72\xd4\ +\xb2\x0c\xf5\xaa\xf1\x82\x34\xa9\x92\xc5\xf0\xc5\x29\x27\xbb\xfe\ +\x96\xe4\xea\xa8\x97\x02\x8f\xed\x7d\x03\x13\x7a\xea\x10\x92\xb4\ +\x73\x69\x61\xfd\xb8\x52\x84\x49\x38\xb4\xc6\x9a\xb9\x70\xf7\x60\ +\x17\xde\xec\xdb\xa6\x0f\x25\x07\x53\x55\x84\x48\xc6\xfa\xf8\x6e\ +\x57\xf9\x3f\x31\x56\x87\x9b\x66\x9e\x61\xdb\x03\xa6\x2e\xfc\xee\ +\x5a\xe0\xa5\xc1\xcd\xae\x92\x9c\x24\x09\xf3\xa4\x49\xf8\xde\x9c\ +\x33\x53\xd3\x54\x64\x24\x1a\x96\x39\xb9\xb2\xff\x3d\x3c\xb0\xab\ +\x01\x0c\x12\xc2\x3a\x1f\x30\x62\x90\x25\xc2\x14\xb9\x11\xd3\xaa\ +\xad\xb1\x65\xff\xd9\xb3\x0e\x3d\xc9\x01\x7d\x83\xae\x4d\xe8\x2e\ +\x3e\x00\x45\xe6\xa6\xd1\x25\x1d\x5f\x9c\x7e\x82\x63\xef\xca\xf5\ +\xc0\xb9\x35\xfb\x37\xe1\xce\x3d\xcf\xc3\xab\xda\x2b\xc9\x12\x3e\ +\x3b\xf9\x04\x1c\x3e\x6e\x26\x28\x55\xcd\x78\xec\xee\x05\x5c\xb3\ +\xcf\x8d\x36\x8b\x74\x16\xe3\x17\xe8\x0c\xad\x97\x82\x92\xa3\x4b\ +\x26\x1f\x39\x14\xb4\xb9\x3c\x00\x5d\xdc\x3c\x5d\x41\x13\x14\x10\ +\x00\x45\xf7\xec\xf8\x79\xae\x02\xc9\x11\x55\x1d\x36\x1e\x48\x24\ +\x12\x23\xc7\x78\x39\x28\xbb\xe4\xa1\x9c\x8b\xc3\x6b\x65\x22\x68\ +\xd2\x2c\xd0\x2d\xa1\x3a\x47\xec\x5d\x59\xaf\x17\x9c\xa3\x5f\x1d\ +\xc0\x13\xfb\xd7\xe2\x4f\xbb\x5f\xc5\xe3\xdd\x6f\x63\x57\x62\x7f\ +\x2a\xa6\x4f\x65\x88\x20\x82\x26\x56\x8f\x71\x14\x43\xa3\x5c\x85\ +\xba\x50\x25\x6a\x43\x51\xa8\xe0\xe8\x4a\x0e\xa0\xbb\xa2\x1f\x1d\ +\x89\x5e\xec\x49\xf6\xa1\x3b\xd9\x8f\x21\xc4\x01\xae\xea\x8e\x23\ +\x6e\xba\xb6\x29\xa1\x67\x85\x32\x2c\xe6\x0e\x53\xa5\xcf\x89\x06\ +\x87\x85\x30\x18\xfd\x9d\x47\xe7\x0d\x8b\x3d\xc7\x2d\x3b\x9e\x41\ +\xa7\x32\x80\xdb\xe7\x5e\x8a\x2a\xb9\x02\xab\x7b\x37\xe3\xa2\xb7\ +\x7f\x83\xa1\x64\x3c\x55\x52\x81\x01\x87\xc4\xa6\xe0\x82\xd6\xc3\ +\xf4\x0c\x9f\x40\x54\x8a\xa0\x5f\x19\xc4\x8e\x81\xfd\x00\x27\xc4\ +\x93\x03\x50\x90\x80\xca\x95\xdc\x0c\x36\x2e\x46\x77\x52\x93\x7a\ +\x5a\x31\xed\xab\x5a\x54\x60\x56\x55\xb3\xa5\x5f\xab\xfa\xb6\xa6\ +\xd5\x07\xb3\xf2\x6b\x83\xad\xc8\x6b\x9f\x12\x0f\x24\x74\x1c\xe4\ +\xe7\x56\xcf\xcd\x8a\x71\xcb\x30\xad\xba\xc9\x7b\x88\xcc\x52\x14\ +\xee\x85\x5b\x08\x84\xc5\xb1\x29\x66\xf1\x6e\x92\xac\x1e\x25\x4a\ +\x2f\xe3\xc3\x53\x49\xb7\x48\xe7\x23\x6e\x10\x25\x4b\x8f\x44\x2a\ +\x79\x5b\x12\x6f\xf4\x6f\x41\x97\xbe\x49\x35\xdb\xe9\x70\x71\x5a\ +\xff\xe5\x7a\x0c\xee\xc7\xd7\xdd\x65\xfd\x5d\x8f\x35\x93\x99\x8c\ +\xd5\x07\x7f\x0f\xb3\xeb\x52\x1e\xb4\x7b\x77\xaf\xc2\xa7\x36\xde\ +\xae\x6b\xe1\xb6\xfd\x84\x1c\xb0\x0b\x69\xb1\x48\x09\xae\xfd\xeb\ +\xb6\x9c\x72\xc6\x90\x80\x96\x86\x59\xcb\x64\x2b\x0d\x93\xd0\x28\ +\x93\x8d\xb5\xef\x5e\x87\xb2\xed\xa0\x69\x4e\xb9\x7b\xd7\x4b\xb8\ +\xbb\xe3\x25\x73\x1c\xd3\x9f\xb7\xa2\xe6\x58\xfc\x66\xe1\xe5\xe6\ +\xfa\xa0\xa8\x0a\xce\x7f\xeb\x16\x6c\xe5\x9d\xba\xe5\x20\x2d\xbd\ +\x5b\x08\x50\x98\x9a\x85\x8c\x20\xcd\xf0\xc0\x09\x9c\x73\x6b\x79\ +\x29\x23\xfb\x30\x23\xf4\xb3\x01\x80\x78\xe0\xbc\x8d\x9a\x9d\x4b\ +\x81\xad\x43\x36\x3a\x71\xf7\x65\x31\x20\x95\x47\x28\xdf\x98\x2b\ +\x46\xbf\xa7\x28\x0b\xa2\x4d\x9f\x3e\x43\xdf\xdc\xdb\xea\x41\x90\ +\x21\x9e\xd3\x1e\x99\xb6\xd9\xa9\xab\xad\x1b\xf6\xc1\x1a\x3f\x61\ +\x02\x9a\x9b\x5b\xf4\x75\x97\x20\x49\x12\xe2\x43\x83\x58\xb9\xf2\ +\xd5\x34\xe5\x85\xd0\xd6\xd6\x86\x86\x86\x86\x00\x13\xde\xc9\xa6\ +\x6f\xbf\xf5\x36\x86\xe2\x43\xa6\x70\xed\xeb\xed\xc3\xec\x39\xb3\ +\x31\x34\x34\x64\xf6\x5f\x51\x92\x58\xb3\x66\x8d\xe5\xbe\xc1\xc1\ +\x41\xbc\xfe\xfa\x6b\xda\x24\xd3\x67\x56\x45\x45\x25\xe6\xce\x9d\ +\xeb\xdb\xaf\xce\xce\x3d\xd8\xbc\x69\xa3\x99\x62\x9c\x73\xad\x76\ +\xd1\x41\x0b\x16\xd8\x82\x87\xb9\xcf\x5a\xa0\xdd\xfc\xfe\xc6\xf7\ +\xd1\xd3\xd3\x63\xd9\xc8\xad\x5b\xb7\x16\xa1\x90\x6c\x3e\x45\x51\ +\x54\xc4\xe3\xf1\x61\x65\xbb\xda\xda\x5a\xad\x38\x2e\x0c\x97\xb9\ +\x1e\x87\x45\x4e\xd1\x63\x58\x75\x34\xa5\x54\x42\x73\x73\x73\x79\ +\x4f\x24\x01\x80\x34\xeb\xfb\x68\xc1\x8e\xc1\x3d\xf8\xbf\x9d\xcf\ +\xe0\xb7\xbb\x9f\xc7\xa6\x84\xbe\x60\x73\x09\xe3\x78\x03\x0e\x8b\ +\x4e\xc3\x91\x35\x33\xb0\xb8\x7a\x32\x66\x56\x8e\xc7\xf8\x68\x35\ +\x62\x2c\xa4\x67\x50\x23\x8b\xa2\xa8\x95\xd2\x50\xd0\xa7\xc6\xd1\ +\x31\xd4\x8d\xb5\x7d\x1d\x78\xb5\x6f\x0b\x9e\xd9\xb7\x1e\xaf\xf7\ +\x6d\x46\x57\xb2\xbb\xa4\xe9\x70\xcf\x9e\x95\xd8\xbb\xaa\x0f\xd7\ +\xcf\x3a\x15\x17\xad\xbe\x03\x7b\x06\xbb\x6d\x86\x2a\x19\x5f\x3f\ +\xe0\x54\x54\x86\xad\x1e\xc2\x5b\xb7\x3e\x85\x8e\x78\x8f\x9e\xfa\ +\x16\x38\xe5\xcd\x9f\x83\x31\x49\x37\x82\x30\x70\x70\x9b\x11\x2a\ +\x5d\xe9\x23\x73\x83\x4f\x69\xc7\xd2\x08\x40\x44\xdf\x3c\xef\x4c\ +\x76\xa5\x25\x25\x00\x16\xc4\x26\x5a\xbc\x94\x49\x9e\xc0\xdb\xbd\ +\xdb\x5c\xfb\x14\x95\x22\x8e\x22\xaf\xdd\x7c\x20\xef\xec\xd6\xf5\ +\xac\x0a\x5f\x99\x7a\x8a\xa7\x41\x20\x88\x44\x89\x50\x0c\xf7\x2d\ +\xf8\x0c\x5a\xab\x1a\x9c\x05\x2f\x5d\xce\xe4\x70\x5b\xbc\x6b\x10\ +\x91\xe6\xde\x3c\x23\xb1\x0f\xc7\xf9\xaf\xfd\x2f\xee\xe9\x7a\xad\ +\xe0\x06\x06\xa7\x95\xd3\x67\x8d\xcb\x4a\x06\x1b\x99\x86\x3c\x7e\ +\x52\x54\x0c\x84\x07\x73\x11\x6b\x02\x05\x44\x92\x94\xec\x66\x45\ +\x2e\xde\x55\x35\xed\xd1\xe9\x73\x45\x55\xc1\x95\x5c\xd6\xf5\x51\ +\xbc\x17\xa0\x42\xd6\x29\xa2\x11\xbd\x2d\xcb\x17\xf8\xbf\x85\x88\ +\x70\xcf\x3d\x7f\x76\xe1\x41\x5b\x5d\x1d\xc3\x02\x15\x38\x2b\x49\ +\x61\xf8\xeb\xe3\x57\x5c\x81\xef\x7c\xe7\x3b\x69\x0b\x0c\xc7\x35\ +\xd7\x7c\x06\xd7\x2e\x59\xaa\xb7\x4b\xb3\x28\xfc\xfe\xae\xbb\x70\ +\xe1\x85\x17\x64\x4d\xa6\xa1\x78\x1c\xa7\x9c\x76\x3a\xda\xb7\x6c\ +\xd4\x2d\x72\x12\x62\xd1\x18\xb6\x6d\x6d\x47\x4d\x4d\x8d\xf9\xde\ +\x3d\xbb\x77\xa3\xb9\xa5\x15\x4a\x5a\xcc\x53\x7b\x7b\x3b\x0e\x3d\ +\xec\x70\x4b\xc7\x97\x2e\x59\x82\x17\x5f\x7c\xc1\xd7\x42\xfe\xf7\ +\xbf\xff\x1d\x9f\xbc\xea\x2a\x33\x6e\x89\x24\x09\x9f\xff\xdc\xe7\ +\xf0\xc6\xeb\xaf\xe9\x4a\x82\x46\x6f\x2f\xef\x11\xb3\x8d\xc7\x29\ +\x1f\x3c\x15\x8f\x3e\xf6\x88\x45\xe3\xb8\xec\xb2\x15\xe6\xb8\x79\ +\x8d\x6b\xbe\xea\x82\xbd\x9f\x27\x9e\x78\x02\x56\xad\x7a\xc3\x56\ +\x3f\x03\x19\xb2\xef\x8c\xad\xe5\xc6\x88\x11\xe1\x54\xe6\x02\x96\ +\x7b\x2c\x40\x8c\x40\xb2\x5c\xb6\x1e\xa2\x84\x1e\xf3\xd0\xa5\xf4\ +\xe1\xc7\xdb\x1f\xc3\xad\x1d\xcf\x60\x9f\xd2\x07\x40\x42\xbd\x52\ +\x8b\x0f\x55\x2f\xc0\xb9\x13\x16\x63\x59\xfd\x74\xd4\xc7\xaa\x02\ +\x0b\x63\xad\x1c\x0f\x43\x1d\x0b\xa1\x4e\xae\xc4\xac\xca\x16\x7c\ +\x08\x07\x03\xd3\x80\x8e\x78\x37\x9e\xd8\xbb\x16\xf7\x76\xac\xc4\ +\x63\xfb\x56\xa3\x37\xd9\x6f\x7a\x88\x48\x51\x6d\x1b\x62\xaf\xac\ +\x80\xe4\x3e\xdf\x28\xe0\xa9\x76\xfb\x6d\x86\x0e\xa2\x7b\xc2\x39\ +\xe7\x78\x7c\xdf\x5b\x38\xec\xc5\xd5\xd6\x0b\x75\xcf\xc8\x89\x55\ +\x73\xf0\xa1\xe6\x45\x96\x47\xee\x49\x74\xe1\xe7\x5b\xfe\xa5\xbd\ +\x3b\xa9\x3d\xe7\xf5\x9e\x2d\x3a\x9f\xa8\xee\x9b\x58\xc9\x43\x01\ +\x30\xfe\x55\x6d\xf5\x8a\x54\xeb\x05\xc7\xd5\xcc\xb1\xc6\x13\x0d\ +\xee\x41\xfb\xd0\x3e\xd7\x2e\x57\xf0\x30\x6a\x43\x56\x25\xae\x4b\ +\x19\x74\xa7\xaf\x69\x00\xf6\xb3\xe9\x12\xbe\xd0\x72\x12\x26\x55\ +\x8f\xcb\x72\x89\xb4\x3e\x4f\x95\x19\xb8\x44\x29\x0f\x11\xf9\x3d\ +\x20\x65\xac\x24\x7f\x76\xf4\xbf\x80\x73\x24\x89\x60\xe6\xd4\x06\ +\xf7\xf8\xd7\xc6\x30\x66\x9d\x2d\xfb\xb8\xe9\x5f\x84\x18\x1c\x1e\ +\x2c\x45\x05\x86\x3c\x18\x11\xd6\x7a\x43\x1c\xc0\xfa\xee\x1d\xb8\ +\x68\xed\xaf\x4c\x63\x1a\x54\x0e\x95\xab\x60\xaa\x76\x62\x63\x63\ +\x7c\xb7\x51\x90\xd0\x96\xe3\x82\x03\xc9\x24\x56\x26\x37\x62\xf1\ +\x4b\xdf\xd5\xef\x27\x8d\x66\xfa\x85\x72\x88\x61\x81\x3c\x09\xb7\ +\xcd\xbf\x2c\xb7\xed\xb0\xbd\x6e\x53\xc9\xcb\x71\x9b\x86\x6c\x97\ +\x1b\x41\x3d\xd4\x0e\x31\x64\xe3\x03\x43\x8e\x85\xbc\xe7\x0f\x4b\ +\x26\x80\x84\x8d\xdf\xd3\x3e\x52\x9a\x76\xa3\xaa\x2a\x2e\x5b\xfd\ +\x1b\xbc\x9b\xd4\x0c\x1e\xa4\x1a\x31\x98\xda\x73\xe3\xa4\x00\x12\ +\x81\xbb\xc4\xd6\x2b\x8a\x02\x24\x54\x7c\x7c\xed\x5d\xa8\x91\x34\ +\xa3\x88\x24\x31\x10\x91\x19\x9a\x21\x33\x86\x1f\x4f\x3c\x0f\x87\ +\x8d\x9f\x9e\x9a\x12\x41\x18\xc1\x77\x6e\x31\xd7\xfe\xf3\xac\xb3\ +\xbc\xfa\x31\xa6\xc8\x3e\x17\x5c\xf3\xa0\x92\x68\x45\xf0\x4d\xa4\ +\xbd\xd8\x21\xb1\xac\x78\x26\x50\xfb\x6c\xc9\x1d\x54\xc3\x1b\xc6\ +\x52\x45\x23\x55\x1e\xb4\xaf\xb9\xe5\xcf\xe7\x8a\x52\x76\xdc\x35\ +\x22\xfb\x5e\x61\xa2\x2b\x3f\x93\x53\x99\xe3\x0f\x9d\xff\xc1\x75\ +\x5b\xef\xc7\xd6\xc4\x3e\x80\x33\xb4\xa1\x15\xd7\x4c\x38\x1e\x17\ +\xb5\x1e\x8a\x71\xb1\x1a\x5b\xb9\x80\xfc\x31\x21\x5c\x83\xf3\x9b\ +\x97\xe2\xbc\xa6\x25\x68\x1f\xdc\x8b\xdf\x6c\x7b\x16\xb7\xed\x7c\ +\x0e\x3b\xe3\x7b\xcb\x82\x5e\x15\x88\xe2\x86\xb6\xb3\x10\x92\x64\ +\xcb\x2a\x7f\x4b\xfb\xe3\xd8\x35\xd4\x33\xa2\x6d\x59\xde\x38\xcf\ +\xf2\x79\x5d\x7f\x07\xe2\x6e\x35\x75\x88\xa3\x8e\xc5\x50\x19\x4b\ +\x1d\x9f\xeb\x49\xf4\xa2\x47\x1d\xca\x8b\x87\xdb\x42\x4d\xf8\xec\ +\xb4\xe5\x85\x11\x9c\x45\x34\x9c\x0c\xef\x2c\xb6\x6f\x08\x79\x56\ +\xbb\x87\x2e\xb5\x1f\xaf\xf6\xaf\xd7\xf5\x25\xc9\xba\xf9\x36\xe8\ +\x2b\x39\x4f\x59\xa4\x5f\xf2\x46\xff\x66\xad\x40\x6c\xfa\xbb\xf5\ +\x42\xc2\x83\xb1\x64\x61\x37\x31\x02\x2e\xac\xed\xc2\x61\x19\x5d\ +\x9c\xf6\x42\xbc\x2a\x9e\x1b\x78\x0f\x9b\x87\xb6\x69\x96\x14\x4e\ +\xa9\x4d\x1a\x4f\x77\x7b\xb8\x14\x6f\xd5\xaf\xdb\x38\xb8\x1b\xa0\ +\xdd\x36\xc5\x5b\x3b\x5a\x07\x46\xd8\x11\xef\x1a\x53\x63\x32\x66\ +\x53\x72\x33\xd2\xce\x59\xfa\x59\x72\xc9\x23\x56\xc8\xf7\xbe\x6c\ +\x76\xca\x01\x04\x0d\x63\x64\x89\xd7\xe1\x7a\x66\x38\xbb\x42\xc3\ +\x18\x39\x1e\xe9\xd6\x16\x72\x29\x1a\x4b\x36\xe5\x24\xfd\xbc\x36\ +\xf7\xc9\xf7\xee\xf0\xa8\x05\xec\xba\xaa\xaa\x50\xd3\x95\x31\xd2\ +\x32\x61\xd9\x63\xb4\xfc\x62\xb6\xfc\xe8\x9d\x9b\x67\x88\x07\xec\ +\x07\x79\x56\x6c\x26\xbb\xe5\x30\xcb\x55\xd6\x54\x4c\xcb\x56\x53\ +\xe4\x05\x37\x10\x14\xdd\x42\x11\x70\x1b\x95\xe0\xe5\xa7\xe0\x83\ +\x73\x6c\xee\xdf\x85\x2b\x37\xfe\x1e\x8f\x77\xbd\x87\x24\x4b\x60\ +\x12\x9f\x80\xaf\x36\x9f\x8c\xcb\x26\x1d\x81\xca\x70\x74\x04\x58\ +\x87\x30\x39\xda\x80\x6f\x4e\x3f\x03\xd7\x1c\x70\x02\x6e\xdd\xfa\ +\x0c\x7e\xdc\xfe\x6f\xec\x55\x7a\xcd\xe3\x23\xa4\xcf\x67\x5e\x68\ +\x8f\x91\x07\xdb\x9a\xf2\xcf\x90\x23\x76\x93\x26\x27\x7c\xba\xf9\ +\x58\x1c\xd2\x68\x2d\x74\xbb\x3d\xbe\x17\x3f\xdb\xf2\x6f\xf3\xb3\ +\xc4\xb4\x40\x6b\x45\x52\xd3\x4e\x05\xa7\xbd\x4c\x4a\x6f\x27\x79\ +\xcb\x54\x29\x15\x3b\xc2\xb9\x9a\x7a\x06\x03\x5a\xa5\x06\x2c\xaa\ +\x9f\x6a\x91\x89\x11\x48\xa9\xc0\x1b\x20\x55\xcf\x07\x40\x4b\xd4\ +\x9a\x62\xbc\x57\x19\x44\x9f\x3a\xe4\x9e\xc6\xd7\xcb\x53\x67\xfc\ +\xae\x2b\x84\x37\xb5\x9d\x8d\x98\x1c\xc9\x43\xed\xe0\xe6\xba\xb6\ +\x2b\xb9\x07\xd1\xb8\x9c\x26\x5f\xbd\xef\x49\xc9\x61\x96\x95\xdc\ +\xe4\x1e\xdf\x30\x62\x18\xb2\xd4\xf8\xe3\xb9\xc9\x41\x87\xc7\x4f\ +\xb5\x1e\x67\x32\x9c\x46\xf6\xba\x43\x69\x3d\xb0\xaf\x80\x0c\x00\ +\xe2\xb6\x18\x27\xcb\x99\x40\xae\xf1\x09\xb9\xd0\xc9\x34\x3e\xea\ +\xf4\xe4\x3c\xed\xa1\xfa\x7d\x9c\x3b\x63\x85\xc9\x87\x70\x9c\xdb\ +\xe6\x47\x96\x90\xb8\xb5\xff\x12\xb2\xfb\x0c\xaf\xef\x7d\xe6\x7b\ +\xca\x95\x97\xb9\x7f\xe4\xc7\xc7\x7e\x45\x6f\xad\x59\x12\x3d\x8f\ +\x44\x1a\xc7\xea\x0c\x65\x57\x49\x2b\xbb\xc2\x6d\x63\xa9\x42\x8f\ +\x41\xe3\x69\xfd\xd5\x15\x9c\x24\x19\x02\xc0\xc9\x03\x04\xdb\xf5\ +\x76\x39\xc9\x81\x88\xac\xed\x83\x02\x67\x9f\x73\xcf\xce\x18\xb8\ +\x9c\x55\x09\x6c\x74\xc6\x80\x52\x44\x5e\x6b\x7f\xd9\xed\xbb\xec\ +\xcb\x24\xe7\x14\xc8\xf8\xe6\x66\x81\x0a\x72\x1d\xe5\xc1\xb8\x59\ +\x79\x4f\x1c\x82\xa7\xdc\xcc\x51\xc3\xdf\x5e\x2e\x2c\x74\x65\x87\ +\x5e\x3e\x58\x76\x6d\x7e\xa4\xf3\x75\x5c\xbe\xf1\x2e\xec\x49\x68\ +\x81\xe5\xd7\x54\x9f\x88\x6f\x4e\x3f\x0d\x0d\xd1\x2a\x50\x11\x56\ +\xac\x86\x50\x35\xbe\x36\xed\x54\x5c\x95\x70\x81\x4a\x00\x00\x20\ +\x00\x49\x44\x41\x54\xda\x7a\x04\xbe\xb2\xee\xef\xb8\x7b\xf7\xf3\ +\x25\x49\xb7\x19\xe1\xf1\xf8\xea\x8c\x0f\x39\xbe\xff\xee\xc6\x7f\ +\xa0\x33\xde\x63\xd9\xd2\x3e\x38\xe7\x6a\xd4\x45\xab\xb5\x79\x2d\ +\x4b\xae\xe6\x2a\x22\x8f\xf9\xaf\xef\x75\x75\x63\x3e\x88\xab\x78\ +\x64\xf7\xeb\xf8\xc6\xe6\x7f\x18\xd6\x3e\x7c\xb0\xf6\x20\xc4\x22\ +\x56\xe5\x75\x4e\x45\x33\x2a\x10\x41\x3f\x06\x1d\xef\x9b\x1a\xb6\ +\x1e\x71\xdb\x9b\xe8\x45\xff\x50\xee\xbc\x7b\x5a\xdd\xc1\x38\xbd\ +\x65\x51\xc1\x68\x7b\xc4\xab\x3f\x06\x8b\x28\x46\x66\x06\x17\xb1\ +\xcb\x2d\xca\x1e\x91\xbe\x09\xe3\x19\x76\xf0\xe4\xb2\xb0\xda\x15\ +\x3c\xae\x3d\x28\xae\x2a\xc3\xb2\x5b\x23\xca\x7d\x1d\xa1\x7c\xde\ +\x13\x74\x71\x1e\x6b\x35\x6a\x4a\x64\x77\x9a\xf1\x94\x0d\x51\x4e\ +\x43\x49\xb2\x9b\x61\x9c\xe5\xc2\xa4\xa3\x1e\x72\xd6\x1a\xaf\xdf\ +\xbe\xb0\x4c\x68\xf8\xd2\xcb\x2f\x21\x91\x4c\xa6\x8d\x7d\xb6\xd9\ +\x45\x52\xaa\xaf\xa5\xc0\x9a\xbe\x7a\x6d\x6b\x6f\xcf\x39\xd5\x76\ +\xeb\xc4\x89\x98\x37\x6f\xbe\xbe\xc6\x69\xcf\x96\x88\xe1\xd1\x47\ +\x1e\xd6\x5c\x9e\x7a\x42\x83\x58\x2c\x86\xe5\xcb\x4f\x02\x00\x84\ +\xf4\x7a\x07\xbb\x77\xed\xc2\xc3\x0f\x3f\xac\xb5\x83\x34\x2b\xd0\ +\x94\x29\x53\x1c\xd7\xad\x7e\xf3\x4d\x6c\xdd\xb6\x4d\xbf\x8e\x41\ +\x51\x14\x2c\x5e\xb2\x04\x73\xe7\xcf\xd3\xdf\x47\x08\x87\x22\x78\ +\xfa\xa9\xa7\x20\x87\x52\x45\x0c\xfa\x7b\xfb\x70\xe2\x89\xcb\x2d\ +\xc3\xdd\xdf\xd7\x87\x67\x9f\x7b\xd6\x97\x3d\x76\xed\xda\x85\x95\ +\xaf\xbe\x6a\xf9\xbe\x73\x77\x27\x96\x2f\x4f\x1d\xb3\x90\x25\x19\ +\xd1\x50\x18\x0f\x3d\xf4\xa0\x85\xce\x73\xe6\xce\x45\x5b\x5b\x9b\ +\x65\x97\xb0\x6a\xd5\x2a\x6c\xdb\xbe\x3d\xb5\x57\xe0\x40\x53\x53\ +\x13\x96\x2f\x3f\xc9\x1c\x4f\x46\x84\xe7\x5f\x78\x01\xdd\xdd\x56\ +\x17\xf0\x91\x47\x1e\x85\x8a\x8a\x8a\xd4\xb8\x73\x8e\x27\x9e\x7c\ +\x12\xc9\x64\x22\xeb\x65\x6a\xdf\xfe\xfd\x78\xe8\xa1\x87\xf4\xcd\ +\x0a\xa5\x27\x00\xca\xbc\xea\xda\x78\xc9\xad\xa8\x2d\xd7\x2d\xe3\ +\xdb\xb7\x6f\xcb\x4e\x78\x96\xfc\x6a\x30\x5a\xb5\xbc\xd4\xcc\xd8\ +\xa5\xec\x07\x57\x8d\x23\xa8\x54\xd2\xcd\x55\xb9\x8a\x9f\x6c\x79\ +\x04\x5f\xdb\xae\x6d\xae\x9b\x51\x87\xdb\xdb\x2e\xc3\xf2\xe6\xf9\ +\x25\xb1\x36\x4e\x8e\x36\xe2\x0f\x0b\xae\xc0\x19\x3b\x0e\xc6\x95\ +\xef\xdc\x85\xfd\xd4\xa7\xff\xa2\x58\x27\x9b\x9f\xc7\x28\xe0\x82\ +\xe5\x70\x74\x72\xf7\x18\x12\x16\xd2\x94\x9a\x9f\x4d\x3f\x1f\x35\ +\xe1\x94\x3c\xe1\x9c\xe3\xed\xee\x76\xdc\xba\xe5\x69\x6d\x77\x69\ +\x8c\x7f\x48\xc2\xd2\xc6\xe9\x68\xac\xa8\xc9\xdc\x3c\x0a\xd6\x5c\ +\xce\x81\x0d\xbd\xdb\xd2\x96\x23\x19\x67\x35\x2d\x71\xf4\xa7\x25\ +\x5a\x8f\xb9\xb1\x56\xac\xec\xdd\xe0\x78\xcf\xac\x88\x35\x3b\xdc\ +\xf6\xa1\x2e\x7f\xee\xb6\x59\x69\xb8\x6e\x39\xae\x97\xaa\xf0\x93\ +\x59\xe7\x43\xb6\x65\x21\xf5\xcc\xc2\xe8\x23\x07\x12\x8a\x9e\xf5\ +\xad\xdf\xb6\x63\x21\xeb\xf0\x3b\x06\x8e\x15\x48\xbe\x28\x76\x8f\ +\x63\xb6\x75\xb0\x6c\x7c\xc9\x32\x04\x45\x11\x52\x85\x05\x0d\xfd\ +\x8f\xa5\xde\xc7\x1d\x9e\x43\x06\x84\x24\x2b\x1d\x78\x5a\xec\x9d\ +\xa4\x1d\x9f\x93\x6c\x47\xed\x89\x24\x90\x24\x21\x49\x6a\x4a\x71\ +\xe4\x69\xe9\xf3\xf5\x63\x77\x8c\xc8\x3f\x9b\x2c\xd9\xde\x6b\x8b\ +\xbd\x09\xf1\x30\xaa\x59\x25\x54\xc9\x48\xdc\x47\xee\xca\x29\x77\ +\xd9\x99\xa6\x7f\x67\x6f\x86\xdf\xe7\xf4\xef\xdd\x0a\xbb\x1b\xf1\ +\x8d\xfa\x38\xaa\x49\x55\xab\x55\x44\x2c\xa5\x7c\x73\xe3\x3a\x2d\ +\xce\x46\xe3\xd5\x24\xf6\x25\xba\x53\x19\xfd\x38\xcf\x6e\xff\x6c\ +\x0b\x56\x74\xa4\xd2\x06\x07\x8f\x84\x80\x01\x19\x96\x8d\x8d\x9c\ +\x56\xcf\x8b\x5c\x78\x48\x62\x9a\xf7\x57\xe2\x56\xeb\x39\xd3\xbe\ +\x73\x9e\xb4\x21\x30\x48\x5a\x91\x5e\x4e\xb6\x63\x97\xfa\x03\x24\ +\xed\x5d\x21\xb7\x50\x0d\xee\xe5\x02\x72\xcf\x3e\x37\xec\xcb\x6d\ +\xae\xd6\x03\x17\x39\x5b\x54\x4f\xd1\x88\xad\xb3\x2e\x66\xf6\x6f\ +\x7e\xeb\xdb\x96\x6c\x69\xb9\xe8\x81\xd9\x76\x8a\x02\x8e\xe9\x29\ +\x1f\xfc\x20\x6e\xbd\xed\x36\x33\x58\x94\x83\xe3\xbb\xdf\xfa\x36\ +\x4e\x3d\xed\x43\x16\x25\xee\xa6\xff\xb9\x09\x37\xfd\xe8\xa6\xb4\ +\xe6\x73\x5c\x70\xfe\x85\xf8\xcc\xe7\xbf\x90\x5a\xb4\x19\xc3\xfd\ +\xf7\x3f\x80\x93\x3f\x70\x92\x39\x99\x38\x57\x71\xc8\xc2\xc5\x58\ +\xf3\xd6\x6a\xf3\xba\x70\x38\x82\xd5\x6f\xae\x42\xdb\xf4\xe9\x66\ +\xcd\x82\x9e\xae\x2e\x4c\x99\xda\xa6\x29\x14\xfa\x4b\x6a\x6a\x6a\ +\xd1\xb1\x6b\x27\xe4\xb4\x20\xf2\x77\xdf\x79\x07\xf3\xe6\xcf\xf7\ +\x25\xcd\xf3\xff\x79\x01\xe7\x9c\x7b\x8e\x5e\xec\x51\xeb\xf9\x25\ +\x97\x5c\x82\x47\x1e\x79\x58\xdf\x34\x6a\xfd\xbd\xf1\x86\x1b\x71\ +\xfa\x19\x1f\xd6\xe5\x92\x36\x40\x37\x5c\x7f\x3d\xbe\xfc\xe5\x2f\ +\x59\x04\xc2\x8f\x7e\xfc\x13\xdc\xfd\x87\x3f\x58\x84\xcc\xdf\xfe\ +\x76\x2f\x4e\x3b\xed\x34\x4d\x90\xe9\xf4\x3d\x74\xc9\x52\xac\x7c\ +\x6d\xa5\xa5\x2d\xb7\xdf\x7e\x3b\x66\xcc\x9c\x61\x0a\xc5\xc1\x81\ +\x01\xb4\xb4\xb4\xa2\xab\xbb\x2b\xeb\x59\xb8\x76\xed\x5a\x9c\x7e\ +\xfa\x19\x85\xe3\x21\x9b\xf0\xd6\x5c\xe4\xa3\xbf\xa6\xc7\x68\xb3\ +\x01\x6e\x1a\xda\x8b\xbe\xe4\x20\x2a\xcb\x20\x0b\xdd\x37\x37\xfe\ +\x0d\xdf\xdf\xf1\x08\x42\x4c\xc2\xe1\xa1\x59\xf8\xe3\xdc\x2b\xd0\ +\x52\x59\x5b\x72\xed\x3c\xa7\x65\x09\x0e\xae\x99\x84\xb3\x5f\xbb\ +\x0d\x6b\x86\xda\x4b\xa2\x4d\x97\x35\x1c\x81\x93\x5b\x16\x3a\xbe\ +\x6f\x1f\xdc\x3b\xec\x06\x01\xfb\x9a\x32\x51\x6a\xc0\x71\xe3\x9d\ +\x59\x3f\x19\x31\x1c\x5f\x37\xdb\x45\x29\x22\xcc\xac\xb0\x2a\x45\ +\xef\x0f\xee\xc9\xb9\x3d\x37\x4c\xfd\x08\xda\x6c\x75\x57\x00\xe0\ +\x8e\x9d\x2f\x60\x45\xf3\x11\xc5\x59\xff\x4b\x52\x3c\x64\x3e\xe5\ +\x51\x21\x57\xe2\xc2\x86\xc5\x98\x56\xd1\x80\xaf\x6f\xfe\xbb\x65\ +\xff\x69\x20\x26\x45\x31\x2f\x36\x13\x24\xe9\x75\xc0\xc0\xb5\xe3\ +\x58\x94\x7a\x96\xac\x84\x30\x39\xd4\x68\xb9\x2f\x2c\x85\x30\x4b\ +\xaf\x91\x44\xdc\x38\xc2\x65\x4d\x71\x1e\x22\x8e\x85\xa1\xb6\xbc\ +\xbb\xf9\xf1\xe6\xe3\xf0\xf3\x03\x2f\x44\x90\x10\x68\xee\xa5\xbf\ +\x20\xf8\xbd\xc8\xca\xf4\x61\x55\xd8\x5d\x95\x76\x07\x54\x2c\x7f\ +\xf1\x46\x3c\xd1\xf7\x5e\x81\xd8\x80\x32\xf2\xc5\xe1\xd5\xb3\x71\ +\x65\xeb\x32\x7c\xbf\xfd\x01\xbc\x37\xb4\x3b\x2d\x8c\x21\xa5\xda\ +\x1c\x18\x99\x86\xea\x88\xe6\x79\xa6\xf4\x7d\x42\x1a\x1f\x1c\x14\ +\x9a\xea\x20\xc2\xb4\xe8\x64\xcc\xd5\xab\x23\x4b\x26\x0f\x18\x46\ +\x3c\xed\x9a\x88\x12\xc5\x84\x50\x8d\x2f\xef\x8e\x26\x04\x57\x8a\ +\x02\x6b\x64\x85\xd4\x30\x0a\xa3\x4a\xba\xc6\x05\x71\xee\x3c\x8f\ +\x3e\x12\x9a\x6b\xc0\x89\xc2\xd2\x2c\x09\x04\x82\xaa\xa6\xbc\x06\ +\x5a\xf3\x09\x12\x49\x29\x0b\x00\xd7\xd2\xb5\xaa\x8a\xa2\x6d\xa0\ +\x29\x95\x9d\x44\x62\xb6\x18\x1d\x92\x52\xd7\xa5\x09\x06\xc6\x24\ +\xdb\x75\x0c\x9c\xab\xda\x7b\x79\xba\x31\xcb\xf6\xbc\x20\x85\x90\ +\xa0\x47\xde\x18\xb1\x00\xc6\xe4\xe3\x5a\xdc\x16\x4b\xb3\xb0\x72\ +\xcb\x75\x69\x66\x33\xb2\xe6\x3c\xd2\xe8\xa2\x38\xe8\xcf\x28\x65\ +\x4d\x21\x3d\x0d\xb0\xdb\x02\x94\x6b\x6d\x29\xd7\x61\x1f\x0e\xa5\ +\x85\xfb\x4c\xb8\x52\x74\xb6\x64\x7b\x78\xd8\xaf\xe2\x34\xf7\xb3\ +\x50\x66\xb9\x7b\xf4\x7b\x5e\xae\xbb\x52\xee\x5c\x30\x3a\xe2\xfb\ +\xb0\x79\x60\x37\xe6\xd7\x1c\x50\xb2\x0b\x80\xca\x55\x7c\x63\xc3\ +\x5f\xf1\xfd\x8e\x47\x00\x02\x3e\x1c\x5b\x82\xdf\xcc\xbf\x0c\x95\ +\xe1\x48\x49\xb6\x97\x40\x98\x5d\xd9\x82\x67\x0e\xff\x12\xce\x5a\ +\x79\x2b\x9e\xec\x79\x4b\xff\xc1\x66\xa9\xf6\xe2\xab\x2c\x4f\x34\ +\x98\x6b\x84\xbd\xbe\x8f\xac\xc9\x8e\xb6\xd0\x78\xfc\x68\xee\x05\ +\xae\xb2\x24\xc9\x95\xb4\x14\xba\x7a\x8c\x8b\xc2\xc1\x8c\xf3\xfa\ +\x96\xa2\x21\x3e\x42\x20\xc3\x49\x06\x45\x51\x4d\x4b\xf9\xa5\xe3\ +\x8e\x40\x34\x14\x76\x15\x78\x27\x8f\x5b\x80\x1f\x6d\x7d\x4c\xef\ +\x86\x1e\x33\x03\x19\x33\xab\xac\x4a\xcc\xfa\xbe\x1d\x2e\x74\x33\ +\xb2\x5a\xa9\xb6\xb7\x9b\xd5\x62\x71\x7a\xed\x22\x7c\x62\xea\x71\ +\x0e\xfa\x3d\xba\xff\x2d\xdc\xd1\xf1\x02\x2e\x9c\xb0\x14\x11\x29\ +\x94\xdb\xfc\x22\x73\x4f\xea\xfe\xbd\xfe\x87\xac\xc7\x34\x25\x95\ +\x44\x56\xb2\x55\x92\xf5\x58\x2f\xe3\xa4\x00\xc1\x7d\xdc\xfd\x62\ +\x89\x1d\x9e\x7e\x6e\xdf\x53\xeb\xfc\x43\x96\x61\xd7\xe2\x89\x42\ +\x68\x8a\x4d\xc0\x15\x8d\x47\xe2\xca\x96\x63\x30\xa9\xb2\x0e\xed\ +\x7d\xbb\xf0\xf5\xcd\xf7\xe9\x31\x1c\x56\x1e\x9b\x5b\xdd\x82\x35\ +\x87\x7e\xd5\xba\xb9\xe6\xdc\x26\x8e\x9c\xed\x1d\x17\xa9\xc2\x5b\ +\x4b\xff\xdb\xd2\x3e\x0a\xb8\xe1\xa5\xf4\x9d\x76\x26\xb9\xaf\x1f\ +\x0b\x25\x22\x30\xc6\x4a\x76\x1f\x6d\x8f\x2b\xf7\x55\x8a\x38\x03\ +\x31\xd9\xa9\xa1\xfa\xae\x63\x3c\x90\x72\xcc\x01\x44\xa8\x0a\xa7\ +\x4d\x98\x89\x6b\x5b\x96\xe3\x98\xf1\x33\x00\x00\x7f\xdb\xfd\x2a\ +\xde\x4b\x74\x82\x74\xf5\xc5\x64\x4f\x62\x78\x70\xf1\x95\x2e\xdb\ +\x70\xb2\x8e\x2f\x39\xbd\x92\xff\xb7\xe0\x7c\xe7\xef\x01\xf8\x87\ +\x40\x29\x8f\x26\x15\xc8\x33\x54\xe0\x6c\xcd\x39\xbf\x88\x48\xd4\ +\x29\x2a\xb6\x75\xc8\x1c\x27\x1e\x40\x28\x39\xcc\x21\x3c\x50\x7f\ +\x19\x0b\xe6\xa3\x72\x99\x37\xc1\xfa\x40\xf9\xb1\xa2\xf3\xc8\x33\ +\xf3\xb7\xa8\x78\xf5\x21\x70\x6a\x84\xa0\x5b\xb0\x2c\xc6\x51\x40\ +\xc0\x86\x67\xbb\xde\xc3\xfc\x9a\xc9\x28\x55\xbb\xf8\xff\x6e\x7e\ +\x0c\xd7\xef\x78\x14\x90\x80\xf3\x63\x87\xe3\xd7\xf3\x2f\x43\x45\ +\x28\x52\xf2\x74\xad\x0f\x55\xe2\xaf\x8b\x3f\x89\x73\x5e\xbb\x0d\ +\x8f\x77\xaf\x29\x5a\x3b\x7e\x3b\xfb\x72\xd4\x45\x2a\x3d\x14\x4e\ +\xa7\x7c\x52\xd4\x04\xbe\xb3\xe5\x1f\xa8\x90\xaa\x74\x09\x13\x2c\ +\x21\x00\x79\x6c\xb4\x98\x0a\xbc\xde\xa7\x95\x51\x88\xf2\x28\x3e\ +\x31\xf9\x68\xcf\xa7\x2d\xa9\x9d\x82\x46\xa9\x16\x7b\x94\x94\x37\ +\xbc\x52\x8d\x60\x66\x55\xb3\x45\xa6\xae\xed\xdf\x91\x35\x1d\x0e\ +\x08\x35\xe1\x97\x73\x2f\x76\x7c\xdf\xa3\x0c\xe0\x4b\xef\xfd\x15\ +\x95\x6a\x48\x84\xa8\x58\x06\xd4\x49\x8d\x33\x1b\x0f\xc6\x85\x13\ +\x96\xa2\x2e\x14\x33\x97\xb6\xfa\x68\x35\xc2\x72\x04\x71\x24\xc0\ +\xa9\xf8\x14\xa4\x2c\x47\x51\x91\x46\xe1\xd0\x15\xb0\xd0\xad\x7d\ +\x6f\x26\x41\xc2\x93\x0b\x3f\x8f\x49\x15\xf5\x69\xf5\x0d\x81\x89\ +\xd1\x71\x40\x2f\x0b\x9c\x75\x78\xcc\xec\xa9\x87\xa1\x6f\x32\x91\ +\xea\x6a\x40\xcb\xbb\xdf\x5e\x69\x05\x19\xa5\x59\x1c\x46\x26\x14\ +\x89\x18\x4b\x55\x06\x1d\x79\x29\x92\xda\x60\xbb\x69\xdd\x4c\xf3\ +\x04\xa5\xd7\x6b\x21\x3f\xc5\x48\x7f\x6e\x7a\x1e\x1e\xd5\xb1\x61\ +\x37\xce\x96\x6a\xef\x4d\xd7\xff\x79\x7a\x95\xeb\xb4\xc0\x5d\xb2\ +\x69\xfd\xdc\x25\x6a\x85\x19\xb7\xa4\x9d\xad\xe6\x01\xf2\x74\x73\ +\xa3\x6d\x76\xc3\x82\xeb\x31\x02\x7b\xcf\x74\xe5\x84\x5b\xdb\xc3\ +\x3c\x14\xb4\xf4\x67\x6a\x21\x53\x29\xda\xb3\xb4\x2c\x3a\x64\x7f\ +\xa7\x2d\x53\x10\x11\x21\x64\xb3\x98\x9b\x6d\xa3\x11\x14\x0e\x1e\ +\xef\x1a\x89\x38\x15\xf2\xe2\x49\xbb\xa0\x60\x19\x18\x35\xc8\x0b\ +\x78\xf6\xc2\xab\xa0\xd7\xfb\x35\x37\x5b\x4b\x96\x3e\xbf\x1e\xde\ +\xf7\x26\xae\x9c\x7c\x5c\x51\x92\x14\x64\x6c\x26\xe7\x78\x7c\xcf\ +\x9b\xf8\xf2\xe6\xbf\x21\x04\x86\xe3\xa3\xf3\x70\xfb\x81\x97\xa1\ +\x22\x5c\xfa\x0a\x51\xba\x62\x74\xcf\xa2\x2b\x71\xf2\x2b\x3f\xc5\ +\xcb\x03\xeb\xed\x82\xd0\x2e\x68\xb2\x62\x1c\xc7\x52\x61\xac\x67\ +\xc6\x9c\x63\x0c\x37\x4e\x3a\x0b\x47\x35\xcd\xc9\x8a\xbf\x39\x29\ +\xf8\xe9\x96\x27\xbc\xcf\x68\x18\xd7\xc7\xd3\xeb\xd9\x64\x40\x42\ +\xbf\x21\xcc\x70\x69\xfd\x11\x98\x52\x63\xf5\xfa\x0c\x24\xb5\xe3\ +\x31\x31\x39\x8c\xda\x70\x35\x8e\xab\x9f\x8d\x7b\x77\xbf\x60\xc6\ +\xa2\xcc\x08\x4d\x40\x4d\x34\xa5\xd4\x25\x79\x12\xeb\xfb\x3b\x7c\ +\xe9\x64\x7a\x88\x74\xba\xfe\x62\xe6\xf9\x68\xad\xa8\x4f\x8b\xa7\ +\xd4\xee\xff\xee\xa6\x07\xb1\xae\x67\x17\x16\xc6\x5a\xb3\x9c\x03\ +\x7a\x4c\x0a\xc2\x78\x64\xde\x67\xd0\x52\xd9\xa0\x95\x66\x22\xbb\ +\x40\xd4\xe5\xba\xfe\x74\x95\xeb\x49\x11\x88\x01\xe0\x9e\x7b\x1b\ +\xbb\x48\xb5\xe4\x6c\xd0\x97\x02\xe2\x00\xe3\x0a\xae\x59\x77\x17\ +\xfe\xdd\xb5\xce\x9d\x31\x1c\x69\xb9\xec\x4f\xe4\x56\xbe\x31\x4f\ +\x80\x30\xbd\xb8\x71\x0a\xe9\x59\x00\x0d\xd9\x1e\xe3\x21\x34\xa0\ +\x02\x3b\x79\x17\x24\x95\x3b\x2c\xfb\x5e\xc7\xaf\x02\x97\x79\xc9\ +\xc2\xc0\xa7\x72\x8e\x64\x32\xa9\xc7\x3a\xf9\xc8\x4d\x35\xfd\xf9\ +\x79\x56\x01\x2e\x29\x8d\x08\x90\x13\xdc\x39\xe0\x5e\x06\x65\xae\ +\xda\xd8\x43\x8f\x11\x8f\x6a\x1e\x53\x7b\xe8\x1b\x23\xc2\xe4\xca\ +\x86\xb4\xab\xb5\xeb\x5b\xe5\x7a\x40\x25\x30\x3d\xde\xc9\xc9\x86\ +\x94\xd3\xf8\x66\xcb\x3f\x04\x68\x05\x5f\x13\x7a\x03\xc2\xb9\x16\ +\x28\xe5\x23\xac\x70\x51\xa0\xd7\x03\xc5\x8c\x29\x1a\xc1\x39\xb2\ +\xec\xc8\x23\x21\xc9\x72\x6a\x23\xed\xa8\x3e\x45\x81\x37\xa2\x8e\ +\xdf\x03\xcc\x79\xe3\xa8\xd7\xec\xd9\xb3\x9c\x16\xb6\x29\x53\x70\ +\xd1\xc5\x17\x9b\x02\x92\x08\x58\xb6\xec\xc8\x9c\x05\xda\xb1\xc7\ +\x1d\x87\x8a\xaa\x4a\x73\x32\x31\x22\xbc\xb5\x7a\x0d\xda\xdb\xdb\ +\x75\x61\x2b\xe9\x34\x59\x86\xc5\x4b\x97\x98\xcd\x0e\xc9\x12\xfe\ +\xf5\xd8\x63\x90\xc3\xa9\xa3\x17\xf1\x78\x02\x09\x4b\x3a\x52\xad\ +\xc8\xeb\x9d\x77\xde\x69\x2a\x5a\x44\x84\x1d\xdb\x83\x59\x16\x27\ +\x4f\x9e\x8c\x8b\x2e\xba\x44\x5f\x1f\xb4\x37\x1f\x75\xf4\xd1\x8e\ +\x49\x39\x7f\xfe\x7c\x5c\x74\xf1\x25\xba\x0e\xa5\x5d\x37\x34\x38\ +\x88\x3b\xee\xf8\x2d\xb8\xb9\x68\x31\xbc\xb7\x21\xd8\xb9\xde\x0f\ +\x9e\x72\x0a\xe6\xcd\x9f\x9f\xca\x52\x2a\x49\xa8\xad\xad\xb3\x0a\ +\x23\x49\xc2\xb9\xe7\x9d\x87\xa1\xc1\x41\x93\xb6\x95\x95\x4e\x0b\ +\x70\x4d\x6d\x2d\x2e\xbc\xe8\x22\x93\x39\xc8\xb6\x4e\x52\xc6\x9d\ +\x36\x07\xf2\xa8\xed\xc2\xf5\x0a\x6c\x04\x2d\xf0\xf3\x80\xc9\x07\ +\x8c\xda\x39\x3b\x5a\xf0\x54\xcf\x7a\xec\x1c\xec\x42\x4b\xac\xbe\ +\xa4\xda\xb5\x6b\x68\x1f\x3e\xfa\xee\xef\x00\x00\xd3\xa4\x26\xdc\ +\x35\xff\x63\x88\x85\x22\x65\x47\xdf\xfa\x50\x25\xfe\x78\xf0\x27\ +\x70\xd4\x4b\x37\x60\x07\x1f\xb9\x7a\x46\x1f\xae\x39\x04\x9f\x6f\ +\xfb\x40\xc9\xd0\xa1\x56\xad\xc6\x57\xa7\x9d\x6a\xf9\xee\xfd\xa1\ +\x4e\xfc\x70\xc7\x33\xf8\xc9\xa4\xd3\xcc\xef\xce\x99\xb0\x04\xf7\ +\x76\xbe\x64\x7e\x5e\x5a\x35\xd5\x7a\xe4\x33\xd1\x85\xf6\xf8\xbe\ +\xac\xdf\xdf\x1e\xdf\x0b\x0e\x6e\x51\x7c\x9e\xd8\xff\x36\x7e\xb6\ +\xe5\xa9\xbc\xfa\xc5\x64\x09\xb3\x6b\x5a\x31\xa9\xba\xd1\x29\x83\ +\x2c\x89\xe8\x78\xce\x9b\x7d\xd7\x0d\x59\x9a\x72\x57\x27\x57\x16\ +\x76\xac\x22\xd5\x38\xb7\xee\x50\x4c\x0c\x28\x13\xea\xa4\x30\x76\ +\xc6\x81\x6e\xb5\x0b\xbb\xe3\x5d\x30\x92\x04\xb8\x29\x87\xe9\x9b\ +\x69\x23\x4a\xb7\x21\xec\x2c\xae\xbc\x2f\xd1\x07\x25\xad\x64\x00\ +\x77\xd9\xb1\xf0\xb4\x35\x8e\x1c\xa6\xd1\x6c\x09\x3b\x5a\x16\x8f\ +\xc2\xed\xda\x0f\xab\x98\x81\x0b\x9b\x8e\x08\xc6\x33\x72\x08\x50\ +\x38\x86\xd4\x01\xec\x4e\xec\xd7\xf6\x8b\xe9\x8e\x07\x72\x96\x53\ +\x4e\x73\x3f\x20\x4c\x32\xaa\x6d\x05\x9a\x7b\x93\x83\x18\x54\xe3\ +\xe6\x55\x4e\x23\x38\xd7\x93\x7b\x70\xd3\x28\x0d\x10\xf6\x29\xfd\ +\xa3\x78\xc5\x26\xc8\x0e\x95\xdf\xa7\x2e\x8a\xa7\x41\x24\xe8\x61\ +\x7d\x66\xdf\x27\x66\x9b\xcd\x25\x7b\x7c\xea\xea\xab\xf0\xa9\xab\ +\xaf\x2a\xc9\x21\x58\xba\x74\x09\x7e\x77\xe7\x1d\x9e\x0a\x0f\xe7\ +\xc1\xce\x6a\x1a\x5e\x93\x4f\x7f\xfa\x6a\xc7\x46\xfa\xc4\xff\x5a\ +\x8e\x27\x9f\x7e\x52\x57\x8a\xb4\x01\x78\xf5\xe5\x57\x70\xf0\xc2\ +\x83\x53\x89\x06\x06\x07\x31\x7b\xce\x5c\xb4\x6f\xd9\x9c\xf1\x3d\ +\x7d\x7d\xbd\xf8\xd8\x15\x57\xe4\xb2\xa3\xc7\xe2\xc5\x8b\xf0\xbb\ +\x3b\x7f\xeb\x7b\xdd\x69\xa7\x9d\x8a\xd3\x4e\xb3\x2e\xf0\x5f\xfc\ +\xe2\xb5\xf8\xc6\xb7\xbf\x9d\x53\xec\xce\x77\xbe\xfd\x2d\xab\x62\ +\xa1\xd3\x37\xfd\x3c\x71\x28\x14\xc2\x6d\xb7\xde\xe2\xfb\xac\x96\ +\x96\x16\xdc\x79\xc7\x6f\x8a\x27\x92\xbd\xce\x08\x0f\xf3\xfb\xfc\ +\x2d\xee\x3e\x95\xbf\x6d\x67\xff\x29\xa0\xd7\xb6\x50\x9e\x64\xc7\ +\xa6\xc9\xeb\x89\xbc\x40\x8b\xa0\xde\xbf\x1e\x65\x00\x7f\xee\x78\ +\x05\x9f\x3d\x60\x79\x91\xc6\xcd\x0a\x55\xb7\x5c\x5e\xfb\xde\x5f\ +\xb0\x63\x70\x3f\x24\x8a\xe0\xd7\x73\x2f\xc5\xb8\x8a\xea\xdc\x37\ +\x2f\x45\xdc\xf3\x70\xce\x31\xad\x62\x1c\x7e\x35\xef\x52\x9c\xb9\ +\xfa\x67\x48\x9a\xf5\x3d\x58\xc0\x61\xb4\x57\xb2\xf7\xa9\x33\xc2\ +\x08\x07\x45\xa6\xe0\x57\x07\xae\x40\xc8\x25\x33\x97\x41\x77\xce\ +\xb9\x99\xb0\xc6\x72\xbf\xee\x55\x0f\xc5\x35\xe3\x53\x42\xd6\x63\ +\x58\xb8\x6a\xa5\xa1\xf1\x68\xd5\x3d\xab\x17\xb8\x35\x49\xd0\x92\ +\xea\x49\x98\x58\x55\x67\x19\xf7\x5b\x76\x3c\x8d\x07\xf6\xbc\x8e\ +\x1f\xb6\x7c\x00\x51\x3d\x96\x67\xf9\xb8\x79\x68\x94\x6b\xb1\x47\ +\xcf\xde\xb7\xac\x76\x86\x65\xf0\xd6\xf7\xed\xc4\x80\x92\x48\x8b\ +\xa5\xf1\x20\xa3\xad\xde\xd3\x67\x37\xdd\x8b\x7d\xc9\x41\x7c\x6e\ +\xea\x71\xa8\x90\x2a\xb1\x2f\xd9\x83\x8f\xbf\x7d\x17\x12\x46\x0a\ +\x70\xf2\x88\xb5\x21\x96\x79\x7c\x24\x3d\xc5\xb6\x5b\x1d\x38\x2a\ +\xf0\x5e\xd5\x83\x87\x93\xaa\xff\x3c\xb7\x37\x84\xa7\x67\x05\x63\ +\x04\x62\x0c\xb3\xc3\x93\xf0\xf1\xa6\xa3\x71\x41\xf3\x52\x34\xc7\ +\x6a\x33\x36\xa3\x37\x39\x80\xfb\x3b\xdf\xc4\x6d\xed\x4f\x60\x6d\ +\x42\x2b\xac\xf9\xdf\x9b\xef\xc7\xf7\xb7\x3d\x96\x92\x23\x94\xa1\ +\xf3\x46\xd6\x5a\x09\xf8\xe1\x84\xf3\x70\x65\xdb\xb1\xe6\x7d\xbb\ +\x06\xba\x30\xff\xe5\x6f\x61\x50\x1a\x32\x37\xd6\x1c\x6a\xc6\xe9\ +\x62\x0c\x77\x7f\x72\x40\xe7\x4d\x7b\x3d\x22\xf7\x79\xf4\xe8\xbe\ +\x95\xb8\xe4\xed\xfd\x66\x91\x52\xa7\xfc\xf3\xf2\xe3\x0d\xa7\x3a\ +\x43\x30\x5d\x59\xb6\xfd\xa7\xbd\x0e\x16\x07\xb7\xed\x89\x09\xaf\ +\xc5\xdb\xd3\xe6\x07\xcf\xb8\x5e\x18\x59\x19\xc1\x34\x5e\xae\x63\ +\xd5\x38\xa3\xfe\x10\x7c\xa2\xf9\x18\x1c\xd1\xd8\x96\xb1\xb5\x0a\ +\x57\xf1\x5a\xcf\x16\xdc\xb6\xed\x69\xdc\xdb\xa1\x25\x8a\x5a\x35\ +\xb0\x05\xd3\x5e\xfc\x9a\x39\x6d\x88\xd2\xbc\xa1\xdc\x99\x95\x8e\ +\x18\x81\x18\xc7\x11\xa1\x99\x78\x6c\xd1\xe7\x53\xa7\x4b\x38\xc7\ +\x45\x6f\xfe\x1a\x8f\xf7\xbf\x95\x92\x27\xb6\x75\x92\xbb\xf0\xb9\ +\xa2\xea\x19\x9b\xc3\x5e\x41\x7e\xee\xf2\x8a\xc8\x63\x9f\x40\x81\ +\xa6\x60\x0e\x2a\x2a\x77\xd7\x4f\x8c\x7d\xb5\x5d\x85\x0c\xa5\xde\ +\x5c\x34\x4f\x51\x49\x9c\x8d\x2c\x33\x0d\x36\x57\xa8\x1e\x8a\x84\ +\xfd\xf8\x59\x90\x63\x70\x45\xb5\xd1\x04\xdd\x48\x07\x28\xca\x2b\ +\x90\x03\x98\xa0\x69\xf6\x93\x8f\xe3\xd7\x3b\x9f\x35\x95\xa2\x52\ +\xc0\x93\xfb\xdf\xc6\x9f\x77\xbe\x02\x00\xb8\xa6\xf9\x78\x2c\x1b\ +\x3f\x33\xeb\x67\xec\x4b\xf6\xe1\xbe\xbd\x6f\xe2\xfd\xbe\x0e\x2c\ +\xa9\x9c\x8c\x93\x1a\xe6\x07\x2c\xd6\xe9\x44\xb7\x32\x80\x7f\xec\ +\x7d\x13\xeb\xfa\x76\x60\x71\x6c\x32\x4e\x6c\x9c\x87\x4a\x29\xbb\ +\x8c\x7d\xa7\x34\x2d\xc0\x8a\x5d\x47\xe3\xd7\xbb\x9f\x1a\x56\xda\ +\x35\x4b\x0d\xf8\xf3\x81\x57\x62\x5c\xc4\x6a\x7d\xef\x49\xc6\xa1\ +\x28\x0a\x6a\x2d\xc5\x6d\x33\xcf\x97\x19\xe1\x26\xcd\x48\xc5\xe0\ +\xd8\xe0\xfa\x99\x18\x0d\xe5\x20\xa1\x24\xb0\x2e\xbe\x13\x4f\x74\ +\xad\xc7\x35\x6f\xdf\x8d\x9f\xcc\x39\x1f\x51\x29\x82\xcd\x03\xbb\ +\xf0\xeb\x6d\xcf\xa2\x3b\x39\x80\x37\x7a\xda\x71\x74\xe3\x6c\x00\ +\x40\x5d\xa8\x0a\x67\x8e\x5b\x84\x5f\xef\xd1\x4a\x28\x1c\x51\x3f\ +\xdd\xb2\x11\x7d\xa9\xeb\xfd\x9c\x69\xf3\xad\xad\x0f\x62\x7f\xa2\ +\x0b\xdf\x9a\x79\x06\xae\x7d\xe7\x8f\xd8\xd8\xbf\xcb\x2c\x32\xeb\ +\x6a\x04\x09\x52\xb4\xbc\x04\xea\x1f\xb3\x44\xee\xeb\x62\xb5\x54\ +\x89\x13\xeb\x0e\xc4\xc7\x9b\x8f\xc1\xf1\x0d\xb3\x11\x09\x65\xde\ +\x72\xad\xef\xdf\x89\x3b\x3a\x5e\xc4\x5d\x3b\x5f\xc4\xd6\xc1\xdd\ +\x8e\x63\x3e\x03\xc9\x01\x0f\x25\x08\xd6\x60\x7f\x2d\xdf\x34\x00\ +\x42\x2f\x86\x1c\x6b\xe8\x7e\xde\x05\x25\x99\xd4\x8a\x83\x72\xee\ +\xac\x01\x95\xfe\x60\x8b\x01\x3b\xbb\x7d\xdb\xc6\xa1\xdd\xd8\xb8\ +\xbb\xd3\xc7\xbc\xe5\x95\x02\xd8\xee\x09\xcb\x74\x34\x27\x70\x95\ +\xd5\x94\x96\x67\xa6\x75\x37\x62\x08\x32\xdc\x97\x5e\xf4\x38\x07\ +\x76\x38\xb8\x72\x1a\x2e\x1b\x77\x24\xce\x6b\x5a\x8a\x96\x8a\x9a\ +\x8c\xcd\xdb\x97\xe8\xc5\x43\xfb\xde\xc4\x6d\xdb\x9e\xc3\x0b\xfb\ +\xdf\x83\xc2\x13\x96\x62\xcb\x83\xc9\x04\x38\x25\xb4\xb6\xaa\xb6\ +\xbe\xd8\x15\x0e\x99\x01\x0a\xd0\x25\xf7\x3b\xa8\xdc\xcd\x7b\xd1\ +\xa7\xf4\x00\xaa\x9e\x38\xc2\x4c\xa2\xe2\xcd\x07\x61\x16\xc2\x68\ +\x87\x0c\x6b\x72\x1c\x2f\x3d\x31\x93\x76\x93\xd9\xc2\x66\xff\x5e\ +\xe1\xba\x21\xcc\x9a\x4f\x9d\x67\x19\xef\x63\xdf\xe8\x17\x32\x93\ +\xd8\x88\xec\x95\xf4\xf6\x7b\xb5\xdb\x41\x0f\x72\x17\x25\x7e\x74\ +\x33\x8e\xb8\x99\x59\x45\xf4\x0a\xd5\x21\x3d\x3b\x0c\x2f\xa0\xa1\ +\xcd\xfe\xe2\x6c\xc6\xd4\xeb\x5a\x9e\x6e\x91\x0a\xf0\x3c\xf2\x7b\ +\x9e\xcd\xd3\xe2\x4b\xbf\x12\xa9\x9a\x6a\xe7\xf7\xa0\xed\x2f\x98\ +\x4a\xce\x99\xc6\x24\x6a\x40\x1d\x9d\x6c\xe3\x67\x5b\xf4\xb8\x63\ +\x0d\xcc\x1c\xf3\x51\xf8\x42\xc8\x41\xe5\x9b\x9f\x8d\xca\x23\xfb\ +\x8e\xf1\x73\x52\xc5\x5b\xdd\x5b\xf0\xc7\x6d\x2f\xe2\xfc\xd6\xc3\ +\x8a\x2e\x67\x54\x55\xc5\xb7\xdf\xbb\x1f\x49\x52\xd1\x2a\x8f\xc3\ +\xd7\xda\x4e\xb1\x18\xf1\x7d\xf9\x89\x73\x6c\x1e\xd8\x8d\x53\xde\ +\xfc\x19\xde\x19\xd8\x69\x7e\x7d\x62\xf5\x1c\xfc\x79\xc1\x55\xa8\ +\x77\x39\xaa\x93\x09\xbb\x86\xf6\xe3\xd4\x37\x7e\x86\xd7\xfb\xf4\ +\xf4\xda\x8c\xe3\xd0\xd8\x54\xdc\xb7\xe0\x1a\x8c\x8f\xd4\x04\x96\ +\xef\x04\xc2\x37\x67\x7c\x18\x7f\xef\x7c\x0d\x7b\x78\x77\x00\x0e\ +\xb2\x5b\x36\x7d\x7c\x92\x4c\xdb\xe0\xfe\x71\xf6\xc7\x30\xbb\xa6\ +\xd9\x41\xaf\x2f\x6f\x79\x08\x17\xd6\x1d\x88\xa3\xc2\x33\x52\xdf\ +\xab\x2e\xaf\xd7\x83\x08\x0e\x8c\x4e\xc4\xcb\x47\x7c\xc3\x33\x2e\ +\xd0\x30\x58\x29\xfa\x46\xc5\xa8\x35\x63\x4f\xde\xb0\xb9\xaf\x03\ +\x73\x9e\xfb\x2a\x12\x4c\xc1\x6d\xdb\x9e\xc6\xae\xa1\x7d\xb8\xe3\ +\xc0\x15\xb8\x71\xfd\x83\xe8\x1d\xe8\x85\x4a\x0a\xfe\xb9\x77\x8d\ +\xa9\x14\x81\x80\x15\xad\xcb\xf0\x9b\xde\xe7\x31\x17\x4d\x98\x59\ +\xd7\x62\xe9\xc7\x33\x5d\xeb\x61\x9e\x51\x76\x23\x87\xc9\xdf\x56\ +\x46\x4f\xc4\xb5\x23\x35\x37\x6d\x7b\x0c\xf7\xef\x7b\x03\xeb\xfa\ +\x3a\xf4\x30\x5e\x55\xa7\x72\x42\x3b\xa2\x93\x9e\xfe\x58\x21\x17\ +\x79\x62\x5d\x91\xe2\x18\xc2\x75\x5b\xef\x41\x3d\xab\xd6\xe9\x22\ +\xb9\x4e\x33\x73\x1b\x92\x5e\x17\x8c\x53\x2e\x33\x1e\xe9\x21\xad\ +\xa4\x12\x56\x26\xb6\x64\xe0\x27\xfb\x81\x23\xa6\xb3\x8b\x84\xeb\ +\x26\x7e\x08\x57\x4c\x3a\x06\x13\xab\x1b\x7c\xd7\x17\xce\x39\xfe\ +\xd9\xb1\x06\x1f\x79\xfb\x16\x0c\x20\x0e\x52\x54\x6b\xec\x2e\xec\ +\x59\x10\x7d\x24\x23\xe3\xda\x5e\x4b\x62\x8e\x8c\x81\xf1\x64\x02\ +\x48\x70\x48\x90\xd2\xf8\xc9\x2a\x97\x49\xb5\x2a\x03\x29\x31\xad\ +\x66\xe6\x07\xfb\x38\xaa\xb6\x1a\x38\x9e\xa3\xc0\x7d\xbe\xe3\x19\ +\xe9\x9e\xf3\x8a\xa1\x02\xd6\x4c\x90\x41\x17\x02\xbf\x7d\x97\x76\ +\xfd\x31\x95\xb3\x70\xfd\xb4\xb3\xb1\xac\x69\x66\xa0\x7d\x06\xe7\ +\x2a\x4e\x7f\xe5\x67\x78\xae\x7f\x5d\x8a\x7e\x69\x72\xca\x79\xcc\ +\x91\xfb\xb4\x4f\xd1\xe5\xa7\xa2\x67\x5c\x4e\xfb\x39\xc1\x81\xa4\ +\x6c\x2c\x14\x96\xfb\x1c\x75\xc8\xcc\xf9\x18\xcf\x3c\xee\x76\x7d\ +\x80\xc8\x7d\xf6\x91\xfb\xf2\x99\xb5\xfe\xe1\x3b\x5e\x36\x7e\xb5\ +\xc9\x2d\x73\x3a\x29\xaa\x49\xaf\xa2\x79\x8a\xb8\x24\xea\xae\xe4\ +\x36\xd0\x3c\xd0\x9e\xd4\x3a\xe1\xd4\x60\x62\xa3\x80\x1b\x6c\x26\ +\x0d\x83\x92\x1a\x30\x59\xc6\x68\x3a\xc1\x5c\x7a\xfc\x27\x90\x0b\ +\xbe\xb5\xf5\x41\x9c\xde\xb4\xb0\xe8\x35\x8b\x9e\xdd\xbf\x16\x2f\ +\x74\xbf\x0f\x90\x84\x2f\x4e\x3c\x09\x75\xd1\x8a\x6c\x6d\x1d\xf8\ +\xd2\xfa\x3f\x5b\x14\x22\x00\xf8\xf7\xd0\xbb\xf8\xde\xc6\x47\xf0\ +\xa3\xd9\xe7\x64\xf5\xbc\x6f\x6c\xf8\x3b\x5e\xeb\xde\x0c\x4a\x93\ +\x17\x2f\x0f\x6c\xc2\x37\x37\x3e\x80\x5f\xce\xb9\x28\xab\x67\x4d\ +\xac\xa8\xc7\xc7\x5a\x8f\xc1\x0f\xb7\x3d\x5c\x78\xc2\x31\x86\xef\ +\xb7\x9d\x89\x63\x9a\x9c\x35\x80\xfe\xb4\xf3\x25\xfc\xae\xe3\x45\ +\x5c\x5c\x3b\x3f\xf0\x74\xe1\x85\x5c\x79\x89\x99\x8b\xff\x7d\xdd\ +\xab\x71\xc8\x6b\xd7\xa3\xbd\x2f\x15\x17\xf4\x40\xd7\x6a\x7c\x17\ +\x67\x99\x9f\x97\x35\xcc\xc2\xac\xd8\x24\x2c\x8f\xcd\xb6\x3c\xa6\ +\x57\x19\xc0\xeb\xdd\x5b\xf4\x8d\x43\xee\x6b\xc1\xda\xfe\x5d\xce\ +\xe3\xa9\x2e\xca\x1f\x49\xc1\xde\xf1\xbb\x1d\x2f\x43\x91\x93\x2e\ +\x06\x94\x34\xae\x34\xac\xfc\x0a\x74\x03\xaf\x5f\xb5\x1b\xbb\xdd\ +\xdc\xed\x1c\x8f\x6e\xb8\x55\x29\x6b\xd9\x27\x49\x12\x2e\x99\xb4\ +\x2c\xa3\x42\x64\xc7\xc6\xc1\x3d\x18\x40\x7c\x18\x78\xd7\xce\x2e\ +\x42\x8e\x8f\x14\x8e\x6b\x98\x83\x65\x13\x82\x7b\xe2\x55\x70\x6c\ +\x49\xec\x1e\x91\xe5\xbb\xdc\x1c\x09\x23\x02\x06\xc8\xe9\xf5\x5c\ +\xac\x9a\x5e\x96\x4a\x8e\x97\x5b\xd5\x1e\x3b\xa4\x4f\x48\x15\x5e\ +\x67\x4c\x83\xae\x51\xf6\x2a\xcd\x85\x9d\xe8\x8a\xee\x51\xb9\xf5\ +\xd6\xdb\xd0\xdd\xdd\x65\x6a\xf2\xe1\x48\x14\x57\x5f\x7d\x15\x2a\ +\x62\xb1\x8c\xf7\x77\x76\x76\xe2\xd7\xb7\xdf\x0e\x55\x51\x4c\x42\ +\x4c\x9a\x3c\x09\x97\x5c\x7c\xb1\xa5\xfd\x41\xdb\xbd\xec\xc8\x23\ +\x71\xed\xb5\x5f\xd2\xea\x16\xe9\x41\x75\x5d\xfb\xf6\xe1\xfa\xeb\ +\xaf\x37\x9f\x93\xca\x48\x63\x38\x56\x38\x24\x59\xc2\x96\x2d\xce\ +\x22\x87\xbf\xbe\xfd\x76\x34\x37\x37\x9b\x19\xea\x00\xe0\xec\x73\ +\xce\x86\x2c\xcb\x40\x5a\x9d\x24\x3b\x06\xfa\xfb\xf1\xbf\xbf\xb8\ +\xd9\x57\x39\xd9\xb6\x75\x1b\x7e\xf0\x83\x1f\x58\xb2\xd4\xcd\x98\ +\x31\x13\xe7\x9c\x7d\x56\xc6\x7e\x73\xce\xf1\xc2\x0b\x2f\xe2\xe9\ +\xa7\x9f\xb2\x7c\x1f\x8e\x44\xf0\xc5\x2f\x5e\x6b\xd6\x70\xe2\x9c\ +\xe3\xe1\x87\x1f\xc6\x5b\x6f\x59\xd3\xf1\xde\x73\xef\xbd\x58\xbd\ +\x66\x4d\xaa\x5f\xa6\xf7\x3f\xfd\xac\x3f\xb3\x08\x08\xce\x39\x64\ +\x39\x84\x6b\xae\xf9\x34\x62\x3e\xe3\xea\xd6\xde\xad\x5b\xb7\xe1\ +\xae\xbb\x7e\xe7\xa5\xbf\xa6\xb5\x81\xac\x96\x21\x22\x1c\x7e\xf8\ +\xe1\x38\xe1\xf8\xe3\x2d\xdf\x3f\xfe\xf8\x93\x78\xf9\x95\x97\xb4\ +\xda\x53\x69\x31\x3c\x16\x92\x13\xe1\xdc\x73\xce\xc1\x8c\x19\x33\ +\x86\xd7\x78\x61\x1a\x58\x74\x37\x11\x79\x98\x8e\x55\x4a\xed\xcf\ +\x5c\x1f\xe4\x53\xf9\xba\x44\x14\x2f\xf2\xb0\x13\x38\xc5\x22\x65\ +\xbe\xd3\xf6\x71\xfd\xd0\x4e\xdc\xb4\xf9\x31\x7c\x7b\xc6\x87\x47\ +\x56\xc6\xdb\xe4\xcc\xcd\x5b\x1f\x47\x12\x49\x4c\xe0\xe3\x71\xc5\ +\xa4\x23\xb3\x96\x9b\x03\xca\x00\x1e\xdf\xf7\x2e\x60\x9c\x2d\x57\ +\x8c\x71\x95\xf0\xe0\xde\x55\xf8\x31\xce\xcd\x6a\x18\x1f\xda\xbd\ +\x5a\xdb\x0a\x24\xad\x7c\xf0\xd0\x9e\x37\xa0\xf2\x0b\x21\xff\x7f\ +\xf6\xae\x3b\x3e\x8e\xea\xf8\x7f\xdf\xee\x55\xb5\x53\xb1\x25\x59\ +\x6e\x72\x91\x6c\x5c\x31\x18\x63\x53\x42\x35\x10\x42\x20\xf4\x1a\ +\x4a\xa8\xc1\xa1\x84\x12\x5a\x28\xc9\x8f\x00\x81\xd0\x8c\xe9\x01\ +\x42\xc7\x94\x38\x54\xd3\x8d\x01\x37\xb0\x8d\x7b\xb7\xba\xad\xde\ +\xa5\xeb\xbb\xef\xf7\xc7\x96\xbb\x6d\x77\x7b\xa7\x3b\xe9\x64\xdf\ +\x80\x3e\x96\xee\x76\x5f\x99\x37\x6f\xde\x94\x37\x33\x2c\x1b\x13\ +\x9f\xbc\x6e\xf4\x71\x78\xb6\x7e\x09\xba\xd1\x23\x8e\xcf\x22\x8b\ +\x1b\xfa\x54\x17\x39\x25\xb6\x6c\x58\x64\x2c\x78\xad\xf1\x27\x9c\ +\x5d\x34\x13\xc5\x8e\x3c\xb9\x81\xd5\xdd\xbb\x71\xd5\xce\xb7\xe0\ +\x61\x02\xf0\x73\xa1\xfd\xc1\x30\x8c\x72\x2f\x48\xed\xb0\x21\x0f\ +\xaf\x85\x61\xa2\x5e\x49\xb5\xa8\xd2\xff\xb2\x2a\x3c\xb0\x84\x15\ +\xee\x98\x49\x76\x2f\x1f\x45\xa5\xaf\x39\x34\x43\x1b\xc1\x86\xee\ +\x6a\xac\xee\xd8\x8d\x43\x72\xc7\xcb\xe3\xb8\xa4\xe0\x48\xcc\xc8\ +\x2c\x51\xe0\x75\x7d\x4f\x35\xea\x7d\x5d\x42\x0c\x0c\x55\xc5\x04\ +\x46\xd9\x28\x6a\xc7\x85\xda\x10\xe7\xe3\x39\x21\xf8\x3f\x3c\x33\ +\x68\xb8\xae\xa1\xf1\x40\x89\xcb\x17\x94\xe8\x2c\xa2\x39\x4f\xa9\ +\xc4\x28\x9e\x89\xa4\xe0\x51\xe3\x36\x0d\x3c\x62\x46\x08\x90\x2d\ +\xce\xe2\x9a\x07\x58\x1e\x0d\xfe\x0e\x8c\x23\x45\xaa\x1e\x29\xaa\ +\xbd\xad\x78\xa5\xe1\x67\x5c\x3d\x74\x0e\x4a\x32\x43\x09\x7f\x28\ +\x43\x01\x3e\x20\x3e\xa7\xee\x97\xc2\xc6\x5a\xc1\x5b\x18\xd5\xed\ +\x0f\xaa\xc3\xaf\xa8\x5c\x47\x86\x50\x2b\xec\xb0\x2b\xf0\xce\xb2\ +\x2c\xac\xe2\xf5\xcf\x20\x0d\x8b\x69\x53\x66\xae\x00\x95\x32\xdc\ +\x52\x5e\xf6\x38\xf3\x3c\x8d\x8c\x2f\x35\x7f\xa7\x34\x25\xf8\xba\ +\x21\x7f\x57\x95\x9f\xa2\xa6\x93\x54\x1a\x6d\x00\xa2\x68\xa7\x96\ +\x6b\xd7\x64\xc4\x05\x28\xbc\x5c\x00\x8b\xda\xd6\xa1\xa7\xc7\x8f\ +\x2b\x4a\x43\x7c\x98\xa1\x04\x84\x72\x80\x94\x04\x43\xda\xff\x34\ +\xc4\x0f\x88\x95\xd1\x0e\x8f\x81\x6c\xcc\xa0\x12\xde\x09\x15\x6a\ +\x2a\x01\x70\xd0\x2c\x85\x8c\x08\x00\x0e\x4b\x06\x58\xbb\x13\x84\ +\x0f\xbb\x3e\x49\xa9\x76\x4e\x04\x20\x3c\x05\xa1\x3c\xfc\x3c\xa7\ +\x98\x27\x51\x7b\xaa\x64\x8f\x8f\x5a\xe2\x21\xba\xea\x40\x68\x9b\ +\x25\x87\x5e\x34\x7a\x89\x94\x3c\x94\x12\x59\x09\x0d\x97\x5f\xc0\ +\x0e\x74\x9d\xa2\x41\x60\xb0\x78\xe4\x91\x7f\xa1\xa6\xa6\x4a\x5e\ +\xef\x8c\x8c\x4c\x5c\x72\xc9\xc5\x51\x95\xa2\xa6\xc6\x46\xdc\x75\ +\xd7\x5f\x41\x79\x4e\x26\x9b\x39\x73\xe6\xc8\x4a\x51\xac\x70\xc2\ +\xdc\xe3\x71\xc2\xdc\xe3\x15\xf4\x7a\xdd\xb5\xf3\xf0\xcc\x73\xcf\ +\x46\xf6\xa0\x18\x9c\x09\xf3\xe7\xcf\x57\xac\x81\xcd\x6a\xc7\xc6\ +\x8d\x1b\x51\x56\x16\x59\xc8\x6e\x69\x6e\xc6\xd3\x4f\x3f\x1d\x22\ +\x26\x03\xa8\xa9\xad\xc1\x9d\x77\xde\x19\xae\x11\xe0\xe4\x93\x4f\ +\x96\x95\xa2\x48\xb0\x74\xe9\x52\xdc\x75\xd7\x5f\xe5\x0d\x4e\x00\ +\xdc\xff\x8f\x07\x70\xfb\xed\xb7\x29\x48\xa6\xb1\xb1\x51\xa3\x14\ +\xbd\xfe\xfa\xeb\xc6\xf8\xd0\xfb\x5c\xdc\x8c\x36\xab\x0d\x57\x5c\ +\x71\x79\xcc\x4a\x11\x00\x54\x55\x56\xe1\xaf\x77\xdf\x0d\xf0\xd4\ +\xf4\x25\x0d\x29\xe1\xc5\xad\xb7\xdc\xaa\x50\x8a\x00\xe0\x93\x4f\ +\x3e\xc1\xfc\xf9\x4f\xe8\x1c\xee\x21\x65\x8a\x61\x18\x4c\x9d\x3c\ +\x25\xe9\x4a\x91\xca\x8c\x85\x74\xb1\x91\x78\xad\x2c\x14\xff\xac\ +\xff\x12\xbf\x1b\x7a\x20\x66\xb8\x4a\x07\x64\x08\x8d\xbe\x76\x7c\ +\xd9\xb2\x09\xe0\x09\xce\x2d\x3c\x04\xd9\xf6\xd8\x69\x9d\x46\xa3\ +\x8f\x78\xcf\x01\x9a\x98\xf3\x61\xb8\x33\x1f\xa7\xe6\xcf\xc0\x9b\ +\x6d\x3f\x24\x1c\x7f\xab\xdd\x55\x98\xbb\x6e\x01\x3e\x9c\x72\x25\ +\xc6\x66\x16\x63\x8f\xaf\x05\xa7\xaf\x7b\x1e\x3d\xc1\x1e\x10\x9b\ +\x1d\x3c\x21\x31\x20\x4b\x7a\x20\x01\x87\xa0\x09\x96\xf3\x7a\xf3\ +\x4a\xcc\xcc\x1d\x27\x7b\x70\xfe\x5c\x72\x94\x32\xb8\x9e\x52\x7c\ +\xda\xb2\x3e\x79\x47\xfd\x7e\x18\xe3\x59\xe7\x57\x66\x43\x5c\xd5\ +\x51\x89\xf9\xb5\xdf\xe1\x83\x8e\xb5\xe0\x18\x0e\xe7\xe7\x1f\x84\ +\x12\x95\x81\xcd\x08\x86\xb2\xf9\xd8\x38\xf3\x5e\x10\x31\x95\x33\ +\x88\x8e\xa8\x19\x16\x13\x13\x0a\x33\xa1\xc8\x62\x94\xb1\x7e\xc3\ +\x1c\xb9\xa8\x9d\xfd\x20\x78\xf9\xb4\xa2\x3a\x79\xae\x94\x42\xec\ +\x87\x0d\x3f\xe1\x9a\x1d\x6f\xa4\xf9\x78\x8c\x50\xeb\x69\x53\x5c\ +\x47\x6d\xf1\x77\xe3\xc5\x3d\xcb\xf0\x7c\xfd\x52\x54\x93\x16\x5c\ +\x9c\x73\x38\xae\x80\x32\xdb\x30\xe5\x8c\xe9\xe0\xd5\x71\x57\xe0\ +\xa4\xe2\x69\xe0\x59\x61\x91\x39\x9e\x13\x93\x6e\x28\x8d\x5f\x84\ +\x86\xab\x23\x14\x56\x75\x6d\x25\x02\xbc\x39\xf5\x0a\xf8\x68\x40\ +\x4f\x1c\x0a\x53\xca\x25\xa5\x5f\x50\x86\x7e\xf5\xf3\xff\x61\xbb\ +\xbb\x65\x1f\x5e\x31\x02\x8b\xe6\x8e\x68\xb4\x03\x89\x1a\xf0\xe1\ +\xa8\x57\x2e\x25\x8b\xb2\x64\xb1\x4f\x6d\x26\xc9\xb2\x2c\xfc\x7e\ +\x7f\xe8\x1e\x66\x98\x8a\x6b\x66\xe4\x54\xd4\xbe\xc3\xb3\xc7\xf5\ +\x25\xfe\x83\x68\xb2\xf7\xf0\xca\x78\x9b\x78\x0f\xcc\xb0\x82\xdd\ +\x2c\xcb\x24\xe1\xf0\xa2\xca\x70\x0b\x13\xb1\x28\x0c\xc3\x28\x2c\ +\x8d\x14\x82\x41\x95\x84\xa7\x9d\x8c\x14\x63\x14\xcb\xe7\x34\x54\ +\x93\x29\xfe\x2b\x23\x34\xe6\xac\x78\x46\xcf\x53\x91\x76\x68\xa4\ +\xac\x36\x12\x5d\xf5\xe3\x16\x8a\x9a\xe5\xc5\x20\x89\x54\xf4\xab\ +\xda\x09\xab\x8c\x96\xa4\x79\xaa\xb2\x49\xa9\x2c\xc8\xd4\x20\x96\ +\x88\x40\xf5\x3d\xa5\xf0\xf9\x3d\xb8\x78\xdb\x7f\xb0\xfc\xa0\x5b\ +\x91\x6d\xcd\xec\xf7\xb9\x7d\xd3\xb2\x19\xbd\x41\x0a\x02\x0b\xce\ +\x1e\x76\x70\x5c\x6d\x64\xb0\x0e\x1c\xe9\x9a\x80\x8f\xba\x7f\x51\ +\xce\x9b\xa1\x38\x39\x6f\x4a\xcc\x34\x79\x5c\xfe\x24\xbc\xde\xbc\ +\x3c\x14\xab\x60\x17\x08\xe9\x37\xae\x69\x72\x1c\x4d\x6c\x47\x1a\ +\xc1\xf9\xc5\x87\xe2\xcd\xd6\x1f\xf5\x8d\x0a\x9a\xca\xeb\x54\x57\ +\x08\xd0\x98\x8c\xfd\x82\xf0\xb0\x89\x54\xe3\x98\x8d\x8f\xe3\xe5\ +\x89\x17\xe2\xaf\xdb\x3f\x42\x9d\x5f\x10\x10\x68\x30\x10\x66\x35\ +\x8d\x00\x41\xfd\x58\x40\x4a\x79\x5c\xb7\xf1\x6d\xec\xe2\x85\xf2\ +\x06\xea\x63\x59\x2a\xd9\x70\xe1\x90\xc3\x70\xfe\x88\xd9\x5a\xcb\ +\x36\xa1\xaa\x0f\x44\xf0\x0b\x9f\xbf\xd7\xb2\x16\xf7\x8e\x3e\x15\ +\x05\x62\x9c\x96\x9d\x65\x11\x4a\x71\x07\x04\x68\x10\x1f\x37\xaf\ +\x0b\x9d\x07\xac\x3a\xdb\x1b\x8d\x22\x07\x44\x7e\x4e\x8f\x19\x08\ +\xc6\x69\xa9\xa0\x0d\xa3\xbf\x8f\x44\xd7\x0b\xb5\xf2\x2a\xe1\x5f\ +\xd5\x30\x09\xbb\xea\x46\x34\x2e\x7a\x93\x9a\x39\xb4\x6d\x42\x8c\ +\x0d\xe3\x55\xae\x62\x8d\x67\x80\x2a\xe4\x1b\x04\x29\x6a\xbd\xcd\ +\xf0\xf1\x5e\x7c\xd4\xb4\x01\x4f\xd6\x7e\x87\x65\xdd\xbb\x64\x4f\ +\x10\xcb\x5a\x41\x78\xa5\x69\x51\x88\x43\x53\x59\xca\x45\xbc\x30\ +\x16\x16\x05\x19\x39\xb0\x58\x13\x63\xc7\x1e\x62\x36\xf6\x4f\x1c\ +\x4e\xae\x35\x5b\xb8\x3d\x23\x09\xdf\xaa\xfd\x44\xcc\xa2\x35\xd5\ +\xf9\x7b\xb4\x73\x29\x9a\xfc\xab\xa2\x8f\x86\x40\x27\x82\xd4\x87\ +\x9d\x3d\xad\x98\x5f\xfb\x1d\xde\x68\x5c\x85\x5e\xda\x1b\xea\xd7\ +\xc9\xa9\x25\x09\xf1\x9a\x8f\xaa\x61\x71\xdd\x73\xec\x59\xc8\xcb\ +\xc8\x94\x95\x1e\x19\xff\x71\xc8\x6d\xb9\x56\x27\x00\x73\x86\x31\ +\x29\xf6\xcc\x0a\xab\x32\xe1\x86\x3a\x76\xd8\xc0\x2e\x64\x74\xca\ +\xf3\x24\xa4\xb8\x29\xf1\x1e\x83\xc5\x27\x16\xbd\xc4\x80\xbd\x87\ +\x7b\x3a\x07\x2e\xa6\x88\x0e\xa2\xb2\xb8\x71\xa4\x0d\x24\x84\xf4\ +\x03\x77\x20\x09\x6c\xc9\x5c\x5b\x3c\x1f\x7f\x2c\x98\xa9\x7d\x4b\ +\xa3\x7c\x47\x92\xb9\xcc\xfd\xcf\xc1\x75\x99\x19\x49\xc1\xbd\x41\ +\xf7\xe5\x32\xd6\xfd\x07\x9b\xbc\x75\xb8\x72\xdb\x5b\x78\x67\xea\ +\x95\xfd\xbe\x7e\x5f\xb7\x6e\x06\x65\xdc\x28\x62\x86\xe3\xe0\xbc\ +\x91\x71\x1d\xa4\x84\x30\x78\x74\xc2\x79\xd8\xb6\xae\x11\x3b\x82\ +\x7b\xe5\xcf\x8f\xc9\x9a\x8c\x7b\xc7\xfd\x36\xe6\xf6\x1e\x2c\x3f\ +\x1b\xeb\x7b\xf7\x62\x43\x6f\x28\xeb\xd9\x21\xf6\x71\xb8\x6f\xfc\ +\x69\xf1\x19\x68\x08\x70\x58\xfe\x58\xb8\x48\x26\x3a\x69\x6f\x52\ +\x50\x59\xe3\x6f\xc5\xf1\xeb\x9e\xd0\xb9\x41\x44\xfb\xb0\x3c\x14\ +\x4b\x7a\x36\x63\x8b\xbf\x4e\xb8\x83\x45\xa1\xcd\x26\x46\x80\x32\ +\x47\x09\xce\xc7\x6c\x35\x57\x8e\xca\x18\x1b\x7c\x1d\x58\xd4\xbc\ +\x16\x57\x8c\x38\x5a\xf7\xfb\xf5\x3d\xd5\xd8\xda\x53\x9f\x5c\x06\ +\x1b\x27\x7a\x8e\x75\x1d\x00\xa7\xc3\xa9\x30\xbe\x00\x44\xc1\x26\ +\x19\x46\x69\x74\xe5\x62\xcc\xd7\x4d\x14\xa7\x00\x09\xe9\x68\x34\ +\x88\x65\x5d\xdb\xd1\xec\x8b\x91\x96\x28\x8f\x17\x9b\x97\xe3\xf9\ +\xc6\x15\xd8\xe5\x69\x84\x9e\xa8\x45\xe3\xa0\xed\x94\x11\x82\xd2\ +\x60\x0a\x76\xf9\x5b\x30\x77\xfd\x63\x58\xd6\x59\x89\x20\x0d\x6a\ +\xee\x97\x13\x43\x35\xcd\x88\xff\xa6\x42\x2c\xfe\xbe\x4d\x0b\x16\ +\xaa\x4a\x37\x12\x4d\x30\x34\x17\xe6\x0e\xc3\x3b\xc2\x8a\xf4\x17\ +\x03\x28\x67\x19\x29\x65\xea\x83\x98\xb0\x8c\xe2\x76\x07\xc3\x30\ +\xe6\xa4\x7b\xb1\x2c\xb6\x54\xe4\x14\x20\x60\x19\x36\x71\xe3\xa5\ +\xa1\xab\x54\x71\x9d\x4a\x54\xa9\xa5\x30\x61\xb1\x3a\x51\x95\x22\ +\x86\x28\x52\x44\x9a\x17\xa2\x49\x98\x46\x4f\x63\x7a\x57\x4f\x40\ +\x8a\x89\x7c\x0c\xb2\xa2\x84\xe6\xcf\x28\x02\x50\x63\xca\x9c\xc7\ +\xf3\x20\x0c\x6b\x98\xd0\x22\x12\x9d\xb1\x7a\x09\x29\x06\xa3\xfe\ +\x21\x67\xb1\x8c\x7c\x27\x58\x5b\x6f\x64\x80\x26\x6b\xb2\xac\x9a\ +\xd6\x14\xc5\x44\xa7\x5f\xe8\x64\xdd\x93\xb2\xdb\x10\x60\x61\xf3\ +\x72\x94\x6e\x77\xe1\x1f\x65\x67\x80\x65\xfa\xc7\x2e\xc5\x53\x0e\ +\x3f\x75\x57\x02\x0c\xc1\x41\x59\xa3\x91\x61\xb5\xc5\xdd\xd6\xf8\ +\xcc\x22\xac\x9a\x75\x17\x3e\x6c\xf9\x05\x95\xbe\x76\x4c\xb3\x8d\ +\xc0\xc9\x85\x93\xe1\xb0\xc4\xde\xe6\x70\x47\x2e\x7e\x3c\xe4\x36\ +\x7c\xd8\xfc\x0b\x76\x7a\x9b\x31\xd9\x56\x82\x53\x0a\xa7\xc2\x69\ +\x89\x7f\x7c\x79\xb6\x6c\x4c\xc9\x2a\xc1\xb2\xee\xed\x88\x7a\xdf\ +\x93\xaa\x0d\x11\x6a\x57\x85\x8a\x20\x02\x9c\x8a\x7e\x42\x9e\x40\ +\xdd\x2b\x48\x92\x11\x49\xe6\xfd\x11\x62\x32\xb8\x20\xe0\x0f\x77\ +\xb9\x86\xd5\x53\xb1\x48\xc7\xb4\xaa\xde\x96\x18\x3b\x10\x4a\xb6\ +\xa4\xba\xcb\xcf\x87\x2c\xc9\xcf\xd7\x7f\x8f\xdf\x0f\x3b\x0c\x00\ +\x60\x67\x6d\x0a\x3e\xf7\x46\xe3\x72\xf1\x4a\xb4\x2a\x4b\x24\xed\ +\xeb\x86\xa2\x86\x06\x2d\x33\x27\x97\x0d\x76\xbc\x34\xf1\x72\x8c\ +\xce\x1d\xa2\x7b\x44\x10\xc3\xec\xb5\x44\x97\xed\x9b\xed\x3c\x54\ +\x56\x8a\xc7\x79\x6b\x9e\xc0\x7b\xde\x75\x50\x6a\x65\xd1\xb3\x34\ +\xee\xe8\xaa\x0f\x93\x7f\xfc\x0a\x39\x0b\xd4\x64\xad\x36\xf1\x99\ +\x20\x38\x74\xf2\xdd\xb0\x05\x6c\xa0\x94\x41\x8e\xcd\xa9\x91\x0f\ +\xba\x03\x5e\x21\x8e\x24\xd2\xb2\xa8\x32\x5a\x4b\xce\x30\x0a\x02\ +\x1e\x04\x36\x96\x85\xd3\x62\xd5\x20\x22\xc8\x07\xc5\xeb\xd3\x92\ +\x67\x4c\x55\x8f\x86\x18\xf1\xf7\xf8\xd8\x32\x19\x28\xfe\x6e\x70\ +\x2e\xc5\x6b\x13\xf4\xfa\x3d\x58\xda\xb6\x23\x44\x07\x94\x8b\x3a\ +\x50\xdd\x02\xf0\x01\x21\xb6\xae\x0b\xbd\xe8\x09\xf4\x0a\x74\xc8\ +\xb3\xc8\xb4\x5a\x15\xf2\x84\x27\xe8\x47\x80\x06\x15\x6d\x10\x1a\ +\x39\x47\x89\x72\x9b\x0a\x32\x6b\xb6\xcd\xa1\x7a\x4c\x58\xef\xde\ +\x60\x00\x2c\x2c\xe0\xc5\x7a\x70\x9a\x73\xd0\x20\x3c\x41\x33\x39\ +\x4a\x55\x6c\xd7\xec\xbe\xd2\x5f\x26\x1a\x23\x41\x50\x45\x69\x5b\ +\xe5\xb0\x07\x36\xa6\x66\x80\x79\x72\x00\x00\x20\x00\x49\x44\x41\ +\x54\x68\x00\xe1\x99\x67\x9e\xc5\x8e\x1d\xdb\xe5\x85\x25\x0c\x8b\ +\x9b\x6f\xba\x09\xa3\x46\x8e\x0c\x31\x64\x9b\x0d\x77\xdc\x7e\x3b\ +\xba\xbb\xbb\x65\xe4\xd9\xec\x36\x64\x66\x46\xbf\xfa\x52\x54\x54\ +\x84\x7f\x3e\xf4\x50\x28\x80\x8e\x30\x18\x3e\xbc\x24\xee\xf1\x7e\ +\xf1\xc5\x97\xf8\xfc\xf3\xc5\xa1\x94\xd2\x0c\x83\xfc\x82\x02\xfc\ +\xf3\x9f\x0f\x8b\xd7\xca\xc4\x11\x92\xc8\x59\x77\xf4\x6a\x59\x11\ +\x51\xb0\x7f\xf6\x99\x67\xe0\xf5\xfb\x04\x52\x21\x44\xc3\x49\x09\ +\x43\x40\x79\x8a\x87\x1e\x7c\x10\x0c\xc3\x2a\xaa\x28\xab\x37\x46\ +\x65\x45\x25\x16\x3c\xb3\x40\xf1\xf1\xa6\x4d\x9b\x70\xe3\x8d\x37\ +\xca\x57\xbf\x88\xce\x7d\x0a\xc2\x10\xac\x5e\xbd\x26\x02\x61\x93\ +\x98\xed\x15\xd7\x5e\x3b\x0f\xa3\x4b\x4b\xe5\xe4\x11\x44\x54\x58\ +\xc3\x83\xfa\x2c\x16\x0b\x9c\x4e\x65\x26\x2e\xb7\xdb\x8d\xbb\xef\ +\xbe\x07\x41\x2e\x18\x26\xf4\x68\xdd\xec\x2c\xc3\xe2\x41\x31\xe1\ +\x05\xcb\xb2\x21\xdc\x51\x3d\x61\x4b\x39\x95\x43\x0f\x9d\x65\x5a\ +\x61\xd7\x32\xcf\xb4\xf5\x6e\xb0\xc2\xc3\x4d\x5f\x01\x00\x1e\x9a\ +\x70\x4e\xbf\xf4\xd7\x19\xf4\xa0\xd6\xdf\x0a\x80\xc1\xa4\xcc\xe2\ +\x3e\xb7\x97\x6b\xcd\xc4\x25\xc5\x47\x24\x44\x82\xc9\xb6\x38\x70\ +\xd1\xb0\x39\x7d\x2a\xd1\xa0\x86\x49\x19\x92\x52\xd4\x8f\xf6\xd3\ +\x28\x85\x1c\xa3\x02\x17\xe7\x9c\x19\x65\x57\x4e\x8b\x15\xde\xa0\ +\x36\x8b\xd9\xda\xde\x6a\x7c\xd7\xb2\x0d\x47\x0f\x99\xa8\xf8\xbc\ +\x3b\xe8\xc6\xbb\x4d\x3f\x23\x65\x2d\xc0\x03\x68\x1d\x4f\x1e\x8f\ +\xa5\x86\x76\x3b\x3d\x68\x0d\x76\x62\xc2\x8a\xfb\x10\xb4\x01\x25\ +\x6c\x31\x3e\x2e\xbf\x1c\xe3\x72\x0b\xe5\xef\x83\x94\xc7\xb9\xeb\ +\xdf\xc4\x2a\x5e\x94\x69\x02\x1e\x80\xe3\xc2\xf6\x14\xd1\xd4\x32\ +\x22\x14\x80\x45\x10\x01\x29\x6b\x81\x13\x99\x78\x7f\xfc\x65\x38\ +\x6c\xc8\x38\x4d\xff\x8b\x5a\xd6\x45\xc8\xa2\x93\x86\xf8\xc9\x20\ +\xb6\x3d\x7f\xd9\xf6\xff\xc0\x51\xe5\x00\x43\x33\xf0\xf0\xb0\xd3\ +\xf1\x87\x52\xa5\xfc\xf0\x4e\xed\x7a\xdc\xb6\xf7\x43\x04\xd9\x5e\ +\x50\x2e\x28\xd0\x80\x64\x1c\x21\x06\xfd\x13\xc1\x68\x43\x59\x16\ +\xb0\x58\x71\x41\xe6\xc1\x78\x66\xf2\x05\x9a\x47\xbf\x6e\xdf\x84\ +\x1a\x5f\xc7\xbe\xbe\x20\x7a\x4a\x51\xff\xd4\x09\x19\x68\x6b\xf8\ +\xa2\x45\x8b\xf0\xed\xb7\xdf\xc8\x87\x2f\xc3\xb2\xb8\xf0\xfc\xf3\ +\x31\x52\x54\x8a\x24\xfa\xb9\xf2\xca\x2b\x14\x9a\xb8\x59\x28\x18\ +\x52\x80\x5b\x6e\xb9\xd9\x50\xc5\x8d\xf5\xd0\x5f\xb1\x62\x05\xe6\ +\xcf\x9f\x1f\xa6\x14\x11\xfc\xeb\x5f\x8f\xe2\xcf\x37\xde\x98\x10\ +\x7c\x78\xbd\x5e\x4c\x98\x70\x00\x6a\x6b\xab\x23\x0b\x30\x39\x2e\ +\xb4\xb4\x34\xc1\x6a\x89\x5c\xc4\x6b\xf9\x8f\xcb\xf0\xf4\xb3\x4f\ +\x2b\xe6\x59\x55\x55\x15\x4a\xf0\x10\x33\xef\x88\x8f\x60\x08\xc3\ +\xe0\xc2\x0b\x2f\xc0\x9c\x39\x73\x22\x5a\x8e\x88\x8e\xb2\xe3\xf5\ +\x78\xe4\xf1\x72\x5c\xd0\xb0\x8f\x99\x87\x1c\x82\x9f\x56\xad\x32\ +\x37\x9e\xfd\x25\xe0\x38\x46\x93\x5f\xbf\xb3\x03\x03\x47\x15\x89\ +\x3a\x4e\x1a\x63\xbb\x2a\x93\x76\x90\x93\x3f\xfd\xe7\x9e\xc5\xe0\ +\x28\x8f\x07\xca\xcf\x84\x95\x58\xa2\x4b\x46\x7d\x80\x0e\xbf\x1b\ +\xee\x80\x17\x60\x18\x8c\x71\x16\x24\xc6\x22\x4b\x92\xb4\x26\x09\ +\x80\x51\xb6\x7c\xe3\x9a\x90\x7a\xc2\x88\xce\xdd\x72\xdd\xf5\x33\ +\x24\x0c\x3e\x26\x81\x5a\xbf\x39\x0a\x39\xcd\x9a\x9c\x75\x4a\xf2\ +\x34\x86\x2b\x5e\xe1\xda\x23\x00\x96\x05\x08\x90\x67\xc9\xc1\x2b\ +\xa3\x2f\x82\xd3\x61\xc3\xe5\x5b\xdf\x40\x9d\xaf\x55\xb6\x4c\x4b\ +\x31\x8c\x9f\x34\xad\xc7\x09\x85\x53\x15\x63\x5c\xde\xbe\x53\xc8\ +\x3a\xc7\x02\x10\xb3\x00\x12\x55\xfd\x20\x9a\x6c\x3e\x61\xb0\x2e\ +\xbc\x55\x9f\x2e\xd4\xf8\xe3\x44\x04\xb1\x60\x75\xbf\xef\xcb\xb6\ +\xf2\x13\x26\x02\x02\xcc\x5a\xc6\xf5\xde\xd3\xe6\x98\x33\x8a\x4d\ +\x41\x90\x47\x6b\xb0\x1d\xe0\x2c\xc8\xb4\xdb\x60\xb3\x33\x8a\x00\ +\x7e\x2b\xc3\xe2\x99\x29\xbf\xc3\x6f\x7e\x99\x8f\xad\x81\x3d\x80\ +\x8f\x57\x2a\x94\x54\x95\x65\x4b\x02\x31\x86\x2f\xcb\xe2\xc4\x82\ +\xb1\x17\x68\x14\x22\x4a\x29\x1e\xaa\xf9\x04\xef\x36\xfd\x24\x64\ +\x4e\xa4\xfa\x75\x8a\xa8\xa6\xe0\x14\xed\x13\x7f\xa7\x89\xe2\x25\ +\xea\x10\x2d\x4d\x47\xca\x2c\x8b\xd1\x62\x60\xcc\xf7\x6f\x6e\xe3\ +\x98\x26\x4b\x11\xef\xbe\xa0\x0f\xbe\xa0\x0f\xb0\x78\xe0\x66\xb5\ +\xf5\xd8\x2e\x1c\x7d\x20\x56\x7b\x76\xe2\x99\xc6\x25\x22\xdd\xa8\ +\x8c\x23\xbc\x6a\x9f\x89\x6c\x86\x58\x2c\x40\x10\x38\xc5\x39\x1d\ +\x0f\x8c\x3f\x4d\x73\xde\x55\x78\x1a\x71\xc9\x96\x57\xc0\x11\x83\ +\x02\xaf\x84\xf6\x09\x61\xea\xd8\x34\x6a\x16\x61\x49\xb8\x70\xb2\ +\xdf\xaa\xfe\x7a\x07\x56\x4a\x0b\xac\x34\x31\xee\xdc\xc8\x5d\xf0\ +\x71\xe3\x4e\x9f\xd0\x13\x19\xf3\x14\x3f\x4b\x89\x7f\x14\x03\xe3\ +\xb1\x49\xfb\x7f\xf6\x1f\x78\xb4\xf9\x1b\x5c\xbe\xf9\x55\x74\x04\ +\x7a\x93\xda\x4f\x47\xd0\x2d\x8a\x8d\x04\xf9\x31\x16\x58\x1d\x8c\ +\x30\xd4\xd2\xff\x89\x2c\x68\x0c\x1a\x36\x89\x47\xe1\xd6\x79\x8f\ +\x21\x0c\x48\x86\x15\x79\x96\x1c\xbc\x51\x7a\x05\x4e\x1d\x7e\x08\ +\xe6\x0e\x99\x8e\x0f\xa7\xcf\xc3\x08\x7b\x81\xe6\xfd\x73\x8b\x0f\ +\xd1\x34\x78\x60\xce\x28\x14\x5a\x5c\x29\x6e\x5d\x19\xc8\xa3\x37\ +\x49\x63\x20\xf1\x71\xfe\xbd\xbe\x56\x9c\xbf\xed\x25\xb4\x07\x7b\ +\x14\x9f\x8f\x71\x0e\xc1\xe7\x07\x5e\x8f\x03\xac\xc3\x63\x1a\x46\ +\x36\x71\xe2\xd5\xb1\x97\xe1\xf4\x92\x99\x9a\xef\x3e\x68\x5a\x85\ +\xfb\x2a\x3e\x4e\x33\xea\xfe\x15\x4e\xa3\x03\xc7\xe1\xce\xea\x0f\ +\xf1\x65\xcb\x46\xcd\x57\x8f\x4f\x3c\x1b\x57\x17\xfc\x2a\xe6\x6e\ +\x2f\x74\xcd\xc1\x6b\x93\xae\x80\xcb\xa6\xe4\x9d\xed\xfe\x6e\x9c\ +\xb3\xf1\x39\x34\xfa\x3b\xf7\x0b\xf4\x47\xbd\x3e\xb7\xaf\x85\x57\ +\xf3\xa2\xe0\x4f\x54\xd9\xe0\xa8\x54\x13\x46\x75\x59\x39\x71\x8a\ +\x52\x7c\x1e\x22\xd9\x33\x04\x6d\xbc\x0f\x4b\x48\xc2\xc6\x67\x76\ +\x54\xea\xfa\x45\xda\xac\x78\x42\x4b\x3c\xcf\x83\x24\x82\x7e\x48\ +\x58\x21\x81\xb8\xe6\xaa\x5c\x47\x19\x9f\xa6\xda\x8a\x5d\xe9\x4a\ +\xc8\x7a\xec\x0f\xde\xa4\xd4\x2a\x5f\x11\x61\x9c\xaa\x7a\x2d\x7d\ +\x37\x21\x0a\xff\x04\x42\x1e\xa3\xd7\x9b\x97\x61\xb3\x67\x0f\xde\ +\x38\xe0\x72\x1c\x90\x3d\x22\x29\xd3\xf0\x70\x7e\x21\x1c\x8a\xa1\ +\xfb\x45\xd1\x3e\xbb\x14\xab\x45\x63\x5b\x16\xf3\x04\x4b\x0d\xfe\ +\x55\x33\x4c\x46\xf7\x31\xa2\x1f\x39\x00\x75\x56\x27\xb5\xc7\x51\ +\x53\x78\xd3\xc2\x20\x1f\x85\x58\x58\x7e\x31\x8e\x2c\x28\x97\xbf\ +\x9f\x91\x53\x8a\xff\x4d\xb9\x06\xb3\xd6\xdc\x2f\xf2\x63\x8a\x0b\ +\xf2\x67\xe1\xf0\x21\x13\x34\xb3\x29\x76\xe4\xe3\x2f\xa3\x4e\xc2\ +\x2d\xbb\x16\xca\xdf\x50\xa2\xbc\x73\x4f\x40\xf5\x86\x63\x26\xbd\ +\x64\x8c\x07\x90\xb6\x12\x7d\x38\xae\xa4\xc7\x66\xfe\x70\x2f\x9a\ +\xd9\x2e\x00\xac\x78\x66\xf3\x8a\x24\xd2\xbc\x51\x2c\x93\x7c\x28\ +\x09\xf1\xad\x12\xab\x95\xb2\xfb\x3d\x3f\xfa\x12\x9c\x50\x32\x55\ +\x87\x05\x53\xb3\x13\x30\x98\x37\xd5\xae\x27\xd5\x49\xce\xa7\xf1\ +\x70\xa8\x3c\x0e\x62\x6c\xc9\xb2\xee\x9d\xb8\x64\xeb\x7f\xf0\xf6\ +\xa4\x2b\xc4\x82\xd0\xc2\x73\x23\x9d\x05\x58\x7c\xe0\xf5\x38\x6d\ +\xed\x02\xac\xf7\xd4\x84\xe8\x49\x9d\x20\xc9\x4a\x44\xe3\x81\x0b\ +\xef\x94\x5d\x85\x63\x8b\x27\x69\xce\xf1\xa5\x1d\x5b\xf0\x87\xad\ +\xaf\xc3\xcf\x07\x43\x72\x91\xda\xf3\xa2\xca\x7a\x18\x3b\x7d\x0c\ +\xf4\x79\x93\x60\x09\x97\x44\xeb\x90\xc6\xb6\x3b\x88\x8a\x2f\x48\ +\xeb\xc8\xf2\xe8\xf5\xf7\xe0\xf2\x9d\xff\xc1\xbb\xec\xd5\x38\x2c\ +\x5f\xd8\xd7\x36\x46\xb8\xc1\x33\x7f\xca\xf9\xc8\xda\xe6\xc0\x82\ +\xbd\x5f\x03\x00\x7c\xbc\x4f\xec\x9e\x57\xc9\x18\x04\x0e\x9b\x1d\ +\x57\xe5\x1f\x85\x87\x27\x9e\x0d\xbb\x18\xa3\x24\x2d\x77\x0f\xe7\ +\xc1\x45\x5b\xff\x8d\x75\x3d\x75\xe2\x60\xb8\x04\xf1\xd3\xd4\xca\ +\x3a\x1b\x93\x52\xb4\xcf\xda\x80\x08\x19\x54\x2a\x20\xd5\xbd\x42\ +\x40\x52\x7a\xe5\x08\x43\xb4\x71\x85\x71\x2f\x57\xfc\x89\x16\x18\ +\x36\x0e\x21\x30\x06\xe5\x35\xe1\xeb\x40\xd2\xbe\xa2\xfd\x0d\xd6\ +\x7a\xaa\x70\xca\xa6\x05\x58\x79\xe0\x1d\x18\xea\x4c\x92\xd5\x5e\ +\xa4\x2b\x8e\xf2\xfb\x3c\x3e\x07\xa2\xe2\x83\x56\x2c\x36\x1e\x84\ +\x83\xd8\x84\xa0\x66\xc5\xfb\xb1\x6b\x70\xf9\x96\x4c\x7c\x5a\xfe\ +\x47\xcc\xc8\x51\x7a\x07\x02\x5c\x10\x9f\xb5\xfe\x22\xff\x9d\xc1\ +\xd8\x70\xdb\x98\x93\x0d\x5b\xbc\x7a\xc4\xd1\x78\xab\xe1\x27\xac\ +\xed\xaa\x48\xa9\x75\x34\xca\xe8\x57\x11\xa8\x47\x47\xd0\x1d\xba\ +\x66\x28\x5d\xeb\xe1\x18\xe1\x77\x02\xe3\x24\x03\x7a\xe8\x24\x42\ +\x21\xdd\x26\x9d\x8c\x85\x24\x19\x72\x41\x02\xe8\xf3\xe3\x8e\xf5\ +\xb8\x7c\xf3\x6b\x78\x69\xf2\xc5\xc8\xb4\x84\x12\x2f\x8c\x72\x16\ +\xe0\xab\x43\x6e\xc2\xa5\x1b\x5e\xc2\x67\x1d\x1b\x0c\xdf\x9f\xe2\ +\x18\x81\xb7\x27\x5d\x83\xc9\xb9\x5a\xcf\xd2\x9a\xee\xdd\x38\x6f\ +\xf3\xbf\xd1\xcd\x79\xd2\xcc\x79\x00\xa8\xde\x2c\xec\xf5\x77\xe0\ +\x9c\x6d\xcf\xe3\x9b\xe9\x37\x63\x42\xa6\x72\x1d\x1f\x98\x78\x3a\ +\x46\x38\x5d\xb8\x7d\xf7\x07\xc6\x7c\xc8\x66\xc7\xc3\x25\x67\xe1\ +\xaa\xd2\xa3\x35\xdf\xf5\x04\xdd\x38\x77\xcb\x73\x58\xdc\xb6\x11\ +\xfb\xd3\xfd\x15\x8b\xa1\x2c\x18\x2b\x0e\x52\xd4\xf2\x4b\x41\xf1\ +\xe4\x93\x4f\x61\xf9\xf2\x1f\x43\x25\x55\x18\x06\x1b\x36\x28\x99\ +\x05\xe5\x79\xdc\x79\xd7\x5d\xc8\xcd\xcd\x0d\x1d\x68\x44\x69\x39\ +\x01\x00\xbb\xc3\x89\x67\x16\x2c\x40\x76\x76\x76\xc4\x7e\xeb\xea\ +\xea\x70\xeb\x5f\x6e\x05\xcf\xf3\xe2\xbb\x04\x13\x26\x4c\xc0\xdf\ +\xff\xf6\x37\xc5\x73\x2b\x57\xae\xc2\xe3\x4f\x3c\x26\xd4\xa6\x81\ +\x94\xf8\x40\x79\x54\x12\xc2\x60\xcb\x96\xad\x11\x85\x67\x29\x8f\ +\xfc\xfc\x27\x9f\xc2\xb2\x65\xcb\x40\x18\x2a\x5e\x39\x66\xf0\xd7\ +\xbb\xee\xc4\xb4\x69\xd3\x92\xa6\x9c\xd4\xef\xad\xc7\x8d\x37\xdd\ +\x28\xd3\x0f\x21\x04\x39\xd9\x39\x78\xe5\x95\x57\x42\x49\x20\x08\ +\xc1\x9a\xd5\x6b\xf0\xf8\x13\x8f\x29\xde\x3d\xec\xb0\xc3\x71\xd5\ +\xd5\x57\x0b\xb1\x7e\x0c\xa3\x65\x0d\x62\x77\x07\x1d\x74\x90\x29\ +\xc5\xe5\xc6\x1b\x6e\xc4\x41\x07\x1f\x24\xa6\x55\x15\xea\x2e\x95\ +\x8d\x2f\x8b\x4a\xb6\x01\xbf\x1f\x57\x5f\x73\x0d\xdc\xee\x5e\xd9\ +\x82\x67\xb7\xd9\xf1\xc2\x0b\x2f\xc0\x6a\xb5\x82\x10\x06\x04\x14\ +\x0d\xf5\x0d\xf8\xcb\xed\xb7\x81\xe7\xb9\x98\x74\x18\x4a\x29\xbe\ +\xfd\xf6\x3b\xbc\xf0\xc2\x73\x21\x7a\x22\x04\xbf\x3b\xed\x34\x5c\ +\x70\xc1\x05\x8a\xed\x73\xd1\x45\x17\x62\xe6\x21\x33\x15\x5e\xb9\ +\x67\x9f\x7d\x16\xcb\x96\xfd\x38\x28\x18\x75\x2c\x0c\x83\x0e\x1c\ +\x63\x88\x8f\x8f\xc5\x2a\xb7\x1a\xc5\x16\x85\xa4\x57\x71\x03\x33\ +\xa8\x08\x34\xe0\xbb\x96\xed\x38\x6b\xc4\xac\x84\xeb\xc5\xf9\xd6\ +\x2c\xb0\x94\x05\xc7\x50\x74\x71\x6e\xc3\xfc\x1f\xfb\x0a\x74\xf2\ +\x1e\x65\x5a\x6b\x0d\x19\xc7\x6b\xa9\xa4\x11\x08\x46\x07\x99\xbc\ +\x3e\xa2\x8b\x98\x6c\xcd\xf9\x12\xa0\x3c\xc2\xd2\x38\xea\xf6\xa7\ +\xf6\xd4\x67\x58\xec\x98\x91\x37\x42\x51\xbf\xad\xd3\xd7\x83\x3f\ +\x57\x2f\xc4\xab\x75\xcb\x64\xe5\xf0\x8a\xc2\x23\x30\xd9\x35\xca\ +\x90\x59\x39\x59\x3b\x1e\x2e\x3b\x1b\x27\xaf\x7b\x5c\x20\x4b\x3e\ +\xa0\x4b\xd0\x84\xc4\xeb\x31\x4a\x0c\xeb\x91\xed\xdb\x01\x4e\x88\ +\x71\x51\x6b\xc1\x54\xc4\x9d\xd9\x18\x07\xe9\x7b\x56\x88\xf1\xe1\ +\xf5\x2a\x10\xd3\x44\x30\x18\x6d\x1d\x17\x5d\x63\x1a\x35\xc9\x4f\ +\x3c\x42\xac\xc8\x42\xba\x06\xd8\x04\xbc\x38\xf9\x22\x64\x5b\x33\ +\xe4\x36\x87\xda\x73\xf0\xc1\x41\xf3\x70\xef\xae\x45\x78\xac\xee\ +\x2b\x04\x33\x19\xc0\xcd\x03\x0c\x2f\xc4\xd9\xe6\xce\xc1\xfc\xf2\ +\x0b\x90\x97\x91\xa5\x39\xa7\x7e\xea\xda\x85\xdf\x6d\x7a\x46\xb8\ +\x2e\xc5\x47\xa9\x85\x68\x20\x30\x0e\xb8\x79\xd9\x74\xb6\x41\xfd\ +\x34\x66\xb4\xaf\xb1\x2b\xd4\x24\x26\x62\x65\xf4\x44\x99\x7a\x1e\ +\x3c\xc5\xde\x40\x3b\x7e\xb3\x61\x01\x3e\x99\x3a\x0f\x13\xb3\x84\ +\x9b\x06\x36\xd1\x53\x7e\x43\xe9\x5c\x4c\xca\x1a\x86\x2b\xb6\xbc\ +\x8a\x5a\xae\x15\xb0\x8b\x59\x3d\x83\x01\x8c\xb5\x14\xe1\x95\x71\ +\x97\xe1\xc8\xc2\x89\xb2\x87\x59\x92\x73\x7b\x82\x1e\x9c\xb7\xe5\ +\x39\x2c\x6e\xd9\x24\x4c\x9e\xe3\x0c\x86\x63\x94\xa5\x92\x44\x39\ +\x56\x69\xca\xea\x0f\x03\xea\x29\xea\xaf\xf9\xaf\x5c\xb1\x02\xef\ +\xbf\xf7\xbe\x62\xd1\xf5\xe0\xab\x2f\xbf\x8a\x3a\xe0\x8c\x8c\x4c\ +\x3c\xf6\xe8\xa3\x51\x95\xa2\xae\x8e\x4e\xbc\xbb\xf0\x3d\xf9\xba\ +\x1e\x00\xcc\x99\x33\x47\xa3\x14\xd5\xd5\xd6\xe2\xbd\x77\xdf\x8f\ +\x29\x9d\x73\x24\x58\xb6\x6c\x19\xde\x7f\xff\x5d\x79\xf3\x30\x0c\ +\x83\x3f\xfc\xe1\x32\x53\x4a\x51\xbc\xb1\x31\x1d\x1d\x1d\x78\xff\ +\xbd\x0f\x14\x73\x3d\x64\xe6\x21\x78\xfe\x85\xe7\x15\x2d\x66\x66\ +\x64\x68\x94\xa2\xb1\x63\xc7\xe2\xf7\xbf\xbf\x28\x72\xcf\xc4\x3c\ +\xb5\x1c\x75\xf4\x51\x38\xed\xb4\xd3\x62\x26\x32\x9e\xe3\xb0\xe8\ +\xbf\x8b\xd0\xd9\xd5\x29\x33\x7b\x57\x6e\x1e\xfe\xfd\xd2\x8b\x02\ +\x93\x11\x53\x18\x6f\xdf\xba\x0d\xb7\xdd\x71\x5b\xcc\x87\x26\x05\ +\xb0\x73\xe7\x0e\xbc\xfb\xee\x7b\xa2\xa2\x2b\x0c\x6c\xdc\xd8\xb1\ +\x9a\xd7\x67\xce\x3c\x18\x33\x67\x1e\xac\x78\x77\xf1\xe2\xcf\x07\ +\x58\x29\x4a\x43\x7f\x40\x79\x46\x61\x52\x18\xa3\xcb\x9a\x09\x1b\ +\xb1\xc1\x43\xfc\xd8\x1b\xe8\xd8\xe7\xf1\x58\xed\x6b\x1d\x18\x77\ +\x91\x49\xbe\x30\xca\x91\xaf\xf8\x3b\x48\x39\xf4\xd2\x40\xd4\x26\ +\x6d\x24\xf2\x91\xdd\xe9\xeb\xc1\x45\x3b\x5f\xc2\x67\x4d\xeb\xe5\ +\xcf\x86\xd9\x73\xf1\x97\x31\x27\x2b\x14\xaa\xd6\x40\x0f\xd6\x7b\ +\xea\x70\x5c\x4e\x28\x13\xdd\xd1\xf9\x13\x71\xf9\xb0\x5f\xe1\xa5\ +\xfa\xef\x53\xea\xac\x8f\x98\x45\x99\xf4\xc3\x38\x53\xdc\x70\xb0\ +\xb0\x73\x0d\xbc\x1b\x03\x78\x7d\xea\x65\x8a\xa2\xd0\x0e\xd6\x86\ +\x07\xcb\xcf\xc6\x51\x79\x13\xf0\xc7\x9d\x6f\xa3\x26\xa3\x05\xc5\ +\xc8\xc3\x93\xc3\xcf\xc5\x99\x23\x0e\xd1\xbd\x46\xbb\xb8\x75\x3d\ +\x2e\xdc\xfa\x52\xd2\x63\x1c\xd3\x90\xd8\xbd\x52\xe1\x6b\xc2\xb1\ +\xeb\x9e\xc4\xa2\xc9\x57\xe1\xd0\x3c\xa5\x11\x78\xee\x90\x29\x58\ +\x35\xfb\x4e\x5c\xbf\xf5\x6d\xbc\xdf\x2b\x78\x8f\xaf\xcc\x3b\x06\ +\x0f\x8d\x3f\x0b\x79\x0e\x6d\xec\x65\x8b\xbf\x0b\x97\x6e\x7b\x09\ +\x9f\xb5\xee\x5f\x1e\xa2\x08\x4a\x51\x9c\x16\xb4\x38\x70\x47\xfb\ +\x89\xc4\x08\x4d\x50\xb0\x24\x35\xaf\x3a\x50\xb3\x29\x37\x79\x3e\ +\x86\x6b\x13\xc6\x28\x27\x61\xed\xa9\x0d\x39\xa6\x8b\xcd\x92\xd8\ +\x17\x4e\x30\xc6\x0a\x7d\x32\x84\x09\xc5\x6c\x31\x52\x8a\xf0\xc8\ +\xb5\x7f\x18\x86\x11\x6b\x13\x92\x84\x70\x0f\x46\xf4\x0e\xc5\xbc\ +\xb4\x54\xaa\x24\xad\xb2\xcc\x42\x1d\x5b\x46\x95\x09\x24\x88\x39\ +\xd9\x8b\xc8\xe6\x14\xa5\xa5\x55\x63\x20\x51\x8d\x5d\xf2\x00\x0e\ +\x7c\xb1\xe3\xc4\xf6\xdf\x67\x79\xb5\xaf\x96\x25\x23\x36\x97\xec\ +\x8c\x6a\x86\xeb\xc8\xa3\xd4\x56\x84\xf2\xec\xe2\xa4\x1c\x43\xf9\ +\xb6\x0c\x14\xd8\xb3\x51\xc7\xb5\x61\x5b\x6f\x7d\x9f\xeb\x89\xa4\ +\x3a\xec\x70\x37\xea\x2f\x26\x89\xb6\x0e\x49\x16\x61\xc4\xc7\x27\ +\x65\x96\x28\x70\xdf\x13\xf4\xa2\x97\xf7\x41\xf6\x10\xa9\x4b\xae\ +\x8b\x7f\xe6\xb2\x99\xba\x7c\x9f\x52\x8a\x3d\x9e\x36\x9c\xbd\xfd\ +\x79\xac\x6c\xdd\x29\xd7\x33\x22\x16\x06\xf7\x8e\xf8\x2d\x4a\x32\ +\x95\x75\x7e\x16\xb6\xac\xc4\xa3\xf5\xdf\x61\xcd\xe4\xbf\x20\xcf\ +\x9e\x03\x56\xbc\x86\x76\xdf\xb8\x53\xb1\xb8\x75\x23\xaa\x7c\x8d\ +\xc2\xfb\x9a\x3a\x83\x46\x31\x55\x03\xa5\x41\x10\xa3\x03\x4d\xcd\ +\x58\x0d\xf6\xa1\xba\xd0\x0e\x8d\xa2\x6d\x99\x2d\x80\x43\xa2\xa2\ +\x47\xb7\x25\x5e\x3d\x6e\x1a\x99\x8d\x78\x84\x58\x91\x0f\xf9\xf5\ +\xf8\xf5\xba\x05\x78\x7f\xea\x55\x28\xb2\xe7\x2a\x4a\x81\x9c\x5c\ +\x78\x20\xd6\xe4\x8e\xc3\xc2\xfa\x35\x38\x7b\xe8\x0c\x14\x66\xb8\ +\x42\x1e\x11\x91\x4e\x78\xca\xe3\xd9\x86\x25\xb8\x75\xd7\xfb\x42\ +\x3a\x77\xd9\x43\xc4\x1b\xcc\x96\x46\x66\xa8\xa9\xc6\xdf\xfb\x2b\ +\xa6\xc8\x58\xc0\x88\x6d\x9f\x50\x56\xf1\x18\x31\xb8\x59\x41\xc4\ +\xf5\xa1\x01\xa0\x21\xd0\x82\x13\x36\x2e\xc0\xab\x65\x17\xe1\x37\ +\x45\x33\x04\x23\x0a\x6b\x15\x0d\x23\xf9\x78\xef\xc0\x79\x78\xbf\ +\x61\x35\x86\xb2\x39\x38\x6a\x68\xb9\xa2\x1d\x4e\xf4\x04\x6d\xf1\ +\xec\xc5\x85\xdb\xfe\x8d\x8d\x1d\xb5\x50\xd4\x59\xd3\x6c\x2f\x93\ +\x2e\x58\x4d\x6c\x5c\x94\x7a\x50\x29\xa0\x44\xec\x1f\xd9\xe7\x48\ +\xff\x37\xa5\x27\x98\x13\xa3\x3c\xff\x09\x5c\x58\xdd\x2b\xd3\x66\ +\xeb\x0b\xd0\x78\x10\x40\x4d\xe3\x49\x17\x27\x7d\x59\x0b\x83\x79\ +\xd1\x04\x2d\x2c\x31\xf5\x28\xe9\x27\xd2\xa4\x48\xc3\xbe\xcc\xa3\ +\x28\x8e\xcc\x2a\x83\x53\x55\x34\x2f\x51\x60\x63\xac\x38\x30\x73\ +\x34\x40\x29\x36\x78\x6a\xf7\x69\x54\x7a\x79\x2f\x36\xf6\xd6\xa5\ +\xf4\x18\x8f\xcc\x2b\x57\x6c\xfe\xbd\x81\x76\xf4\xf2\xfe\xa8\xef\ +\x65\x5b\xac\xba\x46\xb4\x4d\x3d\xb5\x38\x66\xe3\xa3\x58\xd9\xba\ +\x53\xf1\xf9\x51\x39\xe5\xb8\x78\xc4\x11\x8a\xcf\x9a\xfd\xed\x78\ +\xb4\xfe\x3b\x54\x77\x34\xe0\xa1\xaa\xcf\x15\x06\x97\xa1\x36\x17\ +\x9e\x2a\x3f\x7f\x10\xac\x72\x72\xf8\x61\xff\xa9\x74\x24\xe1\x9d\ +\x2f\xeb\xd9\x85\xc3\x7e\x79\x14\x2b\xda\x76\x68\xbe\x1b\x62\xcb\ +\xc6\xbc\xd1\x47\x0b\x0a\x91\x0a\xda\xfc\xdd\xb8\x74\xc7\x2b\xb8\ +\x7e\xe7\x3b\xba\xf5\xad\xd2\x90\x3c\x60\x74\x0d\xb8\xf1\x13\x42\ +\x77\xd0\x8d\x4b\x76\xbe\x81\x87\x2b\x16\xeb\x7e\x7f\x56\xf1\x4c\ +\x8d\x42\x24\xc1\x07\x2d\x6b\x70\xf4\xc6\x47\xb1\xb1\xb3\x76\xff\ +\x5e\x13\xbd\xc3\x19\x24\x0e\x86\x43\x07\xb9\xdc\x26\x66\x37\x23\ +\x0c\xa3\xf8\xd1\xa3\x57\x0a\x1e\x3c\xcf\x83\xa7\xc2\x8f\xae\x15\ +\x9f\x84\x62\x5a\xa4\x1f\x0b\x43\x40\x29\x0f\x4a\xc3\xde\x35\x5c\ +\x19\x06\x88\x34\x0e\x83\xf1\xab\xfb\x15\x3c\x27\xda\x65\xe2\x55\ +\xe3\xe0\x39\xce\x9c\xc7\x4a\xf7\xaa\x74\x18\xde\xc2\xfa\x95\xb6\ +\xb7\x94\x97\x86\xa7\x14\x0c\xcb\x82\x61\x59\x43\x1c\x53\x4a\x41\ +\x29\x15\xf0\xab\xc2\x31\xd5\xa9\x96\xac\x5e\x2f\x86\x00\x94\xe7\ +\x34\xef\xa9\xdf\xa7\x94\x0a\xdf\xf3\xc2\x0f\xcf\xf1\x00\x51\xb5\ +\xc5\xb0\xb0\xda\x6c\xb0\xda\x6c\xa1\xf7\x08\x23\x78\xc1\xc2\xe6\ +\xcb\xb2\xac\x8e\x61\x88\x86\x70\x1b\x36\x96\xf0\xf7\x18\x86\x11\ +\x8a\xbd\x46\x61\x9a\x0c\x21\xfb\x9e\x4e\xd4\x57\x7e\x41\x30\x48\ +\x3d\xfb\x54\xf9\x23\xf1\x5b\xc2\xe0\x98\xbc\x03\x8c\xdf\xa2\x14\ +\x3b\xdc\xf5\xf8\xc3\x8e\xd7\x30\x6d\xed\xdf\x70\xf4\xba\x87\x71\ +\xe7\xf6\xf7\xf1\x65\xf3\x06\xb4\xfa\x3a\x11\xe4\x83\x21\x6f\x67\ +\xd8\x3b\xe1\x08\xfb\x55\xd6\x18\x80\x32\xd8\xee\xa9\x47\x65\x6f\ +\x23\xf6\xd5\xab\x11\x5b\x7b\xf7\xa0\xd6\xd3\xa1\x3f\x3f\x43\xba\ +\x8b\x91\xa0\xcc\x3c\x4e\x74\x3a\x66\x84\x00\xf7\x49\x05\xa3\x14\ +\x8f\xae\xed\xaa\x06\xaf\x28\x52\xaa\x1a\x28\x15\x5c\xd2\xff\xed\ +\xdc\x88\x1e\xce\x2d\x9f\x23\x94\x52\xac\xec\xda\x85\xb9\xeb\x9f\ +\xc4\xae\xae\x06\x20\xc8\x03\x41\xe1\x5c\xc9\x71\x64\xe1\x5f\x63\ +\xcf\x91\xad\xc5\x02\x4d\xf0\x78\x6c\xcf\x17\xa8\x69\xae\x03\x09\ +\x04\xb1\xa0\xfe\x7b\x6c\xee\x51\x2a\x90\xbf\x29\x9c\x81\x79\x25\ +\x27\x00\x94\x80\x8a\xff\x69\xa7\x26\x95\x0b\x27\xd2\xa1\x28\x0e\ +\x57\x35\x6e\x96\x08\x3f\x24\x49\xfb\x58\xb3\x9e\x6a\xbc\x19\xfc\ +\xa8\xc1\x4a\xe4\x8c\x6c\x7d\x12\x52\xe5\x3e\xa8\xea\x47\x3a\x78\ +\xc5\x1f\x09\x25\xd1\xf8\xa0\x06\xaf\x62\x7d\x23\x42\x45\x6b\xbd\ +\xf0\xc3\x20\x08\x06\x41\x54\x06\x1a\x70\xc2\xd6\x67\xf1\x61\xdd\ +\xba\xc8\xce\x50\x11\xef\x9b\xbb\xf7\xe0\xc8\x0d\xf3\xf1\x46\xf3\ +\x2a\x50\x0e\x20\xe2\x0f\x78\x4e\xf8\x11\xc7\x2f\x2d\x13\x23\x09\ +\x8d\x54\xba\x22\x91\x24\x46\x4c\xf6\x11\xf6\xa4\x5e\x7f\xe9\xc7\ +\x2a\xfc\xb0\xba\x86\x5d\x12\x22\x14\x9e\x02\x3c\x95\xf7\x3b\x81\ +\xf0\x23\xb5\x4b\x09\x11\x32\x45\xb2\x54\xf8\xe1\x79\x74\x53\x37\ +\xee\x69\xf8\x0c\x97\xaf\x7f\xc3\xd4\x10\x3d\x41\x3f\xae\xdd\xf1\ +\x2e\x2e\xd8\xf9\x0a\x3a\xbc\x1e\x30\x8c\x35\xd4\x3f\x15\x7e\x08\ +\x28\x08\x28\x18\xf1\x47\x56\x13\x44\x3a\x50\xff\x97\x30\x3e\x3b\ +\x00\x74\x62\x41\x1a\x64\x78\xf2\x89\xf9\x28\x9f\x50\x0e\x96\x08\ +\x8a\x44\x30\x18\xc4\xa5\x97\x5e\x86\xc6\xa6\x86\x10\x01\x79\x3c\ +\x38\xe3\x8c\x33\x65\x41\x98\x52\x20\x3b\x27\x07\x9f\x7c\xf4\x91\ +\xa2\xad\xd1\xa3\x47\xe3\xb3\x4f\x3f\x95\x95\x04\x50\x8a\xba\x9a\ +\x6a\xcc\x9d\x3b\x17\x41\x4e\x20\x32\x10\x06\xad\x2d\xad\x1a\xea\ +\xf9\xf5\xaf\x7f\x8d\xeb\xaf\xbf\x21\x74\x15\x8c\x52\xbc\xf9\xc6\ +\x9b\x78\xf5\xf5\x57\xa3\xce\xe1\xee\xbb\xff\x8a\xab\xaf\xba\x52\ +\x11\x38\x77\xf0\xc1\x07\x6b\x9e\xbb\xf2\xca\x6b\xb0\x7b\xf7\x0e\ +\xf9\xa6\x00\x21\x0c\x9a\x9b\x9b\x62\xb6\xd1\x11\x42\x30\x6a\xf4\ +\x28\x7c\xf6\xe9\xa7\x60\xc2\x52\x84\xe7\xb8\x72\x34\xd4\x7b\xf8\ +\xe1\x87\xe3\xf3\xcf\x16\x0b\x4a\x1a\x11\x8e\xd4\x92\x12\x6d\xe6\ +\x9b\xb7\xdf\x7e\x07\x2f\xbe\xf8\x82\x70\x1c\x8b\xc9\x22\xae\xbe\ +\xfa\x2a\x9c\x77\xee\xb9\x8a\xe7\x6e\xb9\xf9\x26\x5c\x78\xc1\x79\ +\x72\x32\x07\x80\xe2\xdd\x85\xef\xe0\x5f\x8f\x3d\x26\xde\x82\xa0\ +\x20\x0c\x8b\xa7\x9f\x7e\x0a\x93\x0e\x50\xa6\x1c\xbd\xe8\xf7\xbf\ +\xc7\x9e\x3d\x7b\x42\x67\xa2\xd5\x86\xff\xbc\xfa\x32\x32\x9c\x42\ +\xb0\x2a\x43\x18\x58\xad\xda\x02\xb5\xa3\x46\x8d\xc4\xa7\x9f\x08\ +\x73\x95\x0e\xb6\x9c\x1c\xad\xf5\x6d\xd9\xb2\x65\xb8\xe7\x9e\x7b\ +\x84\xeb\x6f\xa2\x32\x34\x65\xca\x54\x2c\xfe\x6c\x31\x18\x86\xc8\ +\x57\x67\x4a\xc7\x94\xa6\x37\x5e\x1a\x60\x87\x1d\x47\xe6\xeb\x27\ +\x04\xe9\x0a\xf6\xe2\xb1\x9a\xaf\xf0\x68\xdd\x57\xe8\xe1\x3d\x72\ +\x0a\xe2\xa5\x1d\x9b\xf1\x60\x03\x81\x1d\x36\x8c\x75\x0c\xc1\x44\ +\x67\x11\xca\x1c\xc3\x50\xea\x18\x82\x62\x87\x0b\x79\x8c\x13\x16\ +\x30\x60\x09\x03\x0a\x20\xd3\x6a\x97\xdb\xfc\xa4\x75\x23\xae\xcb\ +\x2c\xda\xf7\x14\x23\x4a\xb1\xa8\x69\xed\x40\x58\xd5\x74\x15\x07\ +\xed\x87\x0c\x2e\x2f\x3e\x52\xf3\xf1\xb7\x6d\x5b\x4c\xdd\x29\xfd\ +\xb2\x73\x13\xce\xda\xf4\x02\xde\x9a\x74\x19\xf2\xad\x39\xf8\xbc\ +\x6d\x3d\xce\xdf\xf4\x0a\x3a\xfd\xdd\xca\x6e\x2c\x0c\x6e\x1b\x7e\ +\x12\x0e\xcc\x55\xf2\x97\x0d\x3d\x55\x78\xbe\x2e\x14\x33\xe4\xe6\ +\xdc\xb8\x69\xd7\x7b\xf8\x72\xc6\x4d\x8a\xe7\xee\x1f\x7f\x3a\x96\ +\xb5\x6f\xc7\x3a\x77\x4d\x2a\x58\x2c\xa3\xda\xe6\x12\x67\x1b\xed\ +\x9f\xac\xb4\x04\xac\xae\xfc\xdc\x17\x18\x6a\xcd\xc5\x5c\xd7\x64\ +\x9c\x33\x74\x26\x7e\x95\x5f\x6e\x6a\x6b\x17\x3a\x5d\x98\x37\xfc\ +\x28\xbc\xd9\xfc\x33\x7e\xe9\xac\x82\x8f\xeb\x49\x33\xe3\x7e\x04\ +\x27\x6b\x4f\x28\xa5\x39\xed\x76\xcc\xce\x18\x87\x33\x87\xcc\xc0\ +\x6f\x86\x4e\x37\xf7\x8e\xc5\x86\x33\x8a\x0e\x82\x87\x09\xe0\xab\ +\xd6\x2d\x68\xf2\xb5\xef\xd7\x6b\xa2\x55\x8a\xd4\x75\x39\x62\x5d\ +\xad\x38\x2b\xd9\x0f\xf4\xd1\x4c\x08\x83\x43\x67\x1f\x8a\x43\x67\ +\x09\xc5\xed\xfc\x7e\xc1\x8d\xec\x74\x2a\xaf\xb3\xf0\x1c\x87\x1f\ +\x7f\x50\x06\xbc\xbb\x5c\xb9\xe0\xc5\xbb\x97\x92\x87\x24\x33\x33\ +\x13\x27\x9c\x30\x57\x31\xcf\xef\x97\x2c\xc1\x92\xef\x96\x0a\x7f\ +\xf3\xc6\x89\x15\x86\x0f\x1f\x8e\x13\x4f\x3c\x41\x29\x64\xff\xb8\ +\xcc\xd4\xb1\x31\x7d\xfa\x34\x53\xcf\xad\x5a\xb1\x12\x9b\xb7\x6c\ +\x4c\x48\xba\xf8\xac\xac\x2c\xcc\x0d\x9b\xab\xde\x7a\x12\x00\x45\ +\x45\x85\x9a\xe7\xf4\xa0\xa6\xa6\x06\x4b\x97\x2e\x95\x95\x3a\x00\ +\x38\xe9\xa4\x13\x15\xad\x12\x42\x30\x75\xea\x14\x4c\x9d\x3a\x45\ +\xf1\xee\xbf\x1e\x7d\x0c\x4b\x45\x1c\x0b\x32\x08\x8b\xce\x0e\x6d\ +\xd1\xb1\x55\x2b\x56\x62\x77\xe5\x6e\xb9\x4d\xab\xd5\x8a\x85\x0b\ +\xdf\x41\x7e\x5e\x5e\xc4\xb1\xa9\xd7\xd5\x88\x9e\x9b\x1a\x9b\xb0\ +\xe4\xbb\xef\x14\x77\x68\x47\x8f\x2e\x95\xdf\x95\xeb\x26\x21\xf2\ +\x0d\x76\x5e\xae\xab\x94\x7a\x82\x49\x1f\x37\x5c\x7c\x84\x97\x2c\ +\x86\x61\x68\x24\x36\x59\x92\x9c\xc6\x36\x6f\x75\x68\x4b\x99\xbd\ +\x08\xa3\x32\x95\xc5\x36\x03\x7c\x10\x1f\x34\xaf\xc6\x5d\x15\x8b\ +\x50\xe1\x16\x0d\x16\x9c\xea\xae\x36\x4b\xe1\x83\x0f\x5b\xf9\x3a\ +\x6c\x75\xd7\x85\x7c\xff\x9c\x6a\x7c\x9c\x32\x56\xe5\x3f\x4d\x2b\ +\x30\x6f\xe4\x31\x60\xc9\xbe\x65\x17\xf3\xf0\x3e\xbc\x53\xff\x13\ +\x52\xa1\x0e\x06\x13\x1e\xa7\x29\x1a\xa9\x46\x5b\x0a\xf0\x87\x51\ +\xca\xc2\x8a\xed\x81\x6e\x7c\xd1\xba\x19\x42\x79\x79\xaa\xbf\x4f\ +\x24\x42\x09\x72\xf8\xb2\x75\x3d\x4e\xda\xf4\x14\xce\x2c\x98\x8a\ +\xff\xdb\xfd\x25\xdc\x9c\x57\xb0\xea\x03\x80\x45\x78\xfe\xa8\x9c\ +\x72\x5c\x37\xf2\x38\xf9\x3c\xf2\x73\xc2\x79\x76\x5f\xf5\x47\x70\ +\x07\xfc\x0a\xef\xcf\x57\x6d\x9b\xf0\xca\x9e\xef\x71\x69\x49\x48\ +\x59\x73\x59\x33\xf0\xc2\x94\xcb\x70\xec\xea\x87\xd1\xc3\x79\x74\ +\xea\xe7\x18\x90\xbf\xfa\x17\x8e\x26\x67\x19\x18\x46\x4c\xb1\x2d\ +\xc5\xb0\xf0\xd0\xdd\x58\x11\x94\x67\x05\x7e\xd9\xb0\x35\xeb\x93\ +\x4e\xa4\xde\x9f\x62\xbb\xac\x45\x94\x1f\x78\xd8\x6c\x0e\x38\x28\ +\x8b\xa1\xf6\x1c\xc5\xf2\x52\x84\xdd\xd2\x51\xf1\x47\x8a\x30\x3a\ +\x22\x0c\x18\x86\x20\x83\xb5\xa3\xcc\x51\x8c\xa3\x5d\x13\xf1\xeb\ +\xbc\xa9\x38\x24\xa7\x14\xb9\xce\xd8\x8a\x16\x17\xda\xb2\x31\x6f\ +\xf8\x91\x98\x37\xfc\x48\x6c\x76\x37\xe0\xdb\xf6\xed\xf8\xb2\x6d\ +\x0b\x7e\xe9\xaa\x42\xb3\xbf\x13\x01\x3e\x00\x4a\x39\x48\x29\x59\ +\x79\xd1\x18\x4c\x82\xc1\xe4\xf0\xe3\xfe\xe6\xef\xb1\x8e\xcb\xe4\ +\x73\xa1\x18\x20\xf1\x03\x31\x53\x22\x63\x11\xe9\x80\xf2\x00\x4b\ +\x30\xce\x3e\x54\xf5\x3a\x85\x9f\x70\x1a\xbe\x21\xd1\x03\xe5\xc5\ +\x20\x71\x46\xb8\x15\x64\x21\x16\x14\x59\x72\x71\x78\xce\x78\x9c\ +\xe4\x9a\x82\x63\xf2\x26\x60\x54\x66\x41\xcc\x65\x48\x4e\xcc\x9f\ +\x80\x13\xf3\x27\xa0\x2d\xd8\x8b\x1f\x3b\x2b\xf0\x49\xcb\x46\x2c\ +\xeb\xdc\x89\x4a\x4f\x13\x7c\x9c\x0f\x3c\xcf\x81\x80\x82\xb5\xd8\ +\x11\x0c\x78\x42\x64\xce\xa8\xe7\x6d\x70\x30\xaa\x43\xf7\x0c\x62\ +\xe5\x52\x81\x9e\xd2\x9e\x22\xc5\x21\x16\xfa\xdd\x66\xb3\xc9\x8a\ +\x51\x42\x17\xc7\xec\x61\x6a\x24\x50\x85\x5f\x8f\xd9\x47\xd7\xa1\ +\x4f\xb7\x6c\xa9\xb9\x77\xf5\xae\x3c\x26\x92\x0f\x53\x4a\x93\xd7\ +\xf8\x80\x40\x3a\xa6\x29\x99\x70\x94\xab\x1c\x56\x36\xc4\x8e\x7f\ +\xee\xaa\xc4\xed\xbb\x3f\xc0\xb7\x9d\x5b\x80\x24\x94\x15\xfa\xa5\ +\xb7\x06\xdf\xb6\x6d\xc5\xdc\x21\x53\xf7\x29\x3c\x7e\xd8\xb2\x06\ +\x3b\xdd\x4d\x29\xb1\xe1\x58\x9d\x6b\xcf\xff\x1a\x7b\x36\xb2\xed\ +\x19\x0a\xe1\x7c\x51\xf3\x6a\x34\xf9\x62\xb3\xd0\xaf\x6e\xaf\xc0\ +\xea\xf6\xdd\x00\xaf\xed\x63\x88\x35\x07\x0b\xc6\x5f\x88\x4c\xab\ +\xd2\xa0\xf7\x5e\xcb\x4f\x58\xdc\xb4\x49\xb7\xbd\x3b\xab\x3e\xc4\ +\xdc\xfc\xc9\x18\x1e\x96\x15\x6f\x66\xce\x18\xdc\x3f\xf6\x4c\xfc\ +\x79\xe7\xdb\x48\x0a\x11\xf6\x55\x9e\xb5\x00\x08\x24\x78\xcd\x92\ +\x4c\x37\x36\x9b\x03\x43\xd8\x1c\xfc\x65\xd8\x09\xc8\x55\x65\xfe\ +\x0a\x46\x29\xea\xe7\xb2\x67\xa3\xdc\x51\x84\x59\xae\xb1\x38\x3c\ +\x67\x3c\x66\xe6\x8c\xc1\x48\x47\xbe\x50\xa8\x98\x44\x4e\x99\x52\ +\xe9\x6d\xc6\xa6\xee\x3a\x1c\x9d\x5b\xae\xc8\x50\x17\x0e\x93\x33\ +\x8a\x31\x29\xa3\x08\xf3\x4a\x8e\x44\x6b\xb0\x17\xdb\xdd\x8d\x58\ +\xde\xb9\x1b\xab\xba\xab\xb0\xa5\x67\x0f\xea\x7c\x6d\xe8\x09\xba\ +\xd3\xcc\x3a\x01\x90\x6d\xcd\xc6\xf1\x59\x93\x70\xd1\x88\x39\x0a\ +\xef\xa4\x9f\x0f\xc2\x1d\x21\x0b\xa5\xc3\xe6\xc0\x30\x6b\x2e\x0e\ +\xca\x1a\x8d\xc3\xb3\xc6\xe3\xc8\xdc\x32\x94\x67\x16\x23\xdb\xea\ +\x04\x08\x89\x68\x6c\xef\xe1\xbc\x58\xde\xb1\x0b\xe3\x1d\x43\x30\ +\x36\xb3\x58\xf7\x99\x7c\x4b\x26\x4e\x2d\x98\x8a\xdf\x16\x4c\x81\ +\x87\xf3\xa3\xc2\xdb\x8a\xb5\xdd\x35\x58\xd1\x5d\x81\xf5\xdd\x35\ +\xd8\xe1\x6e\x44\x17\x80\xa0\x7f\xdf\xad\x5f\xa5\x55\x8a\x8c\x2c\ +\xa3\xd1\x0c\x6f\xfd\x97\xb4\x2e\x69\x42\x1f\xc3\x30\xb2\x30\x4b\ +\x29\x0f\x8b\x85\x35\x65\xa2\x0f\x7f\x44\xed\x31\x92\x3f\xa7\x5c\ +\x54\xa2\x8d\x26\x92\x32\x84\x91\xeb\x28\x10\x03\x26\xc8\x53\x65\ +\x5d\x01\xf5\x38\x38\xb9\x7f\xc9\x03\x21\x5d\x03\xe4\x4c\x8f\x23\ +\x9e\x75\x34\xfd\x1e\xd1\x57\x2a\x08\x21\xe0\x79\x0e\x8c\x14\xbf\ +\x23\x7b\x50\x88\xe6\x39\xfd\x35\x52\xe6\xe1\x97\xef\x73\xab\x2c\ +\x16\x9c\x68\x71\x65\x18\x56\x77\x7c\x54\x95\x0d\x8e\xd1\xc4\x44\ +\x85\xd6\x97\x61\x58\x05\x3d\xb1\x3a\x99\xf1\xa2\x86\x25\xa4\x4c\ +\x21\xd7\x04\x8f\x83\xc6\x99\xa5\x88\xc4\xbd\xbd\x23\xbf\x6f\x58\ +\x80\x9c\x44\xe6\x8b\x7d\x55\x31\xc5\xf5\xf5\x13\x1f\x38\xf8\xd1\ +\xe0\xe9\xc6\xdf\xab\x3e\xc3\x8b\x0d\x4b\x44\x49\x49\x85\x2f\x75\ +\xbd\x23\x89\xdc\x78\x35\x1f\xa6\x06\xe3\x97\xe8\xdd\x82\x7f\x54\ +\x2f\xc6\x71\xf9\x93\x14\xf4\x3e\x98\xc1\xc3\x79\xf1\x50\xe5\x67\ +\x50\x5e\x34\x57\xd3\x59\xff\x29\xf7\x0e\x62\x05\x11\x2d\xb6\x14\ +\x56\xdc\x38\xf4\x58\x9c\x35\x72\xb6\xe2\x99\x5e\xde\x8b\x47\xab\ +\xbf\xd4\xc9\xce\xa4\xa6\x47\x22\x49\xce\xaa\x75\xe6\x14\x7f\x5b\ +\x88\x05\x4f\x8d\x39\x0f\x93\x73\x47\x2a\x66\x5b\xef\xef\xc0\xbd\ +\x95\x1f\x21\x28\xd6\xc5\x92\x32\x68\x4a\x16\xff\xe6\x60\x17\x6e\ +\xab\xf8\x00\xaf\x4d\xba\x5c\xa0\x07\xd1\xe5\x38\x6f\xf4\xb1\x58\ +\xd6\xb9\x1b\xef\x35\xaf\xd2\xa5\x23\x13\x9a\xa1\x38\xbc\x84\x9d\ +\x10\x02\x6e\xad\xb9\x70\x5a\xdc\x20\x0c\x40\xc4\xeb\xa4\x44\x8c\ +\xb1\x00\x48\x28\x09\x8f\x5e\x2c\x2a\x42\xfe\x17\x22\x91\x0a\x2b\ +\x28\x90\x59\x4c\x06\x02\x3c\x07\x1b\x6b\x89\x91\x21\x29\x19\x08\ +\x6b\xb1\xc3\x49\xad\xf8\x66\xca\x9f\xe1\xca\xc8\x02\x27\x3e\x96\ +\x41\xac\x18\x62\xcd\x44\x96\xdd\xa9\x69\xa9\x33\x10\x2a\x46\x9b\ +\xc9\x66\xa2\xd4\x59\x80\x69\x59\xc3\x71\x70\x66\x29\x66\xe6\x94\ +\xa2\x2c\xa3\x10\x25\x19\x79\xa6\xf9\xab\x9f\x06\xf1\x63\xd7\x6e\ +\xbc\x58\xff\x03\x3e\xee\xd8\x80\x5e\x77\x0f\xc6\x65\x14\xe3\xa6\ +\xe1\xc7\xe3\xfc\xa2\x43\x90\x6b\xcb\xd6\x39\x8f\x84\x2b\xf0\x43\ +\xad\xd9\x18\xea\xca\xc6\x11\xae\xf1\x00\x80\xae\xa0\x07\x8d\xfe\ +\x2e\x6c\xf3\x34\x60\x43\xf7\x5e\x6c\xf1\xec\x41\xad\xb7\x05\x2b\ +\xda\xb7\x09\x64\xc9\xa9\xd6\x31\x56\x0b\x3d\x4d\x32\x7f\xef\xf7\ +\x53\x52\x76\xf5\xe0\x6f\x23\x4e\xc3\x39\xc5\xb3\x84\xbf\x6c\x02\ +\x5d\xe5\x32\x0e\xdd\xa4\x17\x6e\xce\x07\x3f\x4f\x61\x65\x04\xc3\ +\x49\xb1\xcd\x85\x09\x59\xc3\x30\x35\xb3\x04\x73\xb2\xc7\x61\x7a\ +\xf6\x08\x8c\xb0\xe7\xc1\x69\xb5\xe9\xca\x09\x84\xd5\xca\x23\xd5\ +\xde\x56\xbc\xd6\xb4\x0a\x2f\x37\xad\x40\xb5\xbf\x11\x99\xbc\x1d\ +\x17\xe6\xcf\xc2\x9f\x46\x1c\x83\xc9\x39\xc3\xc1\x10\x06\xda\xf4\ +\x51\x82\x27\x72\x4a\x66\x09\xa6\x64\x96\xe0\xe2\x62\x81\x6f\xd5\ +\xfa\xda\x51\xed\x6d\xc5\xc6\x9e\x3d\xd8\xd4\x5b\x8f\x0a\x6f\x03\ +\xd6\x75\x55\xa2\xc1\xdd\xa9\xcf\x67\x35\x1e\x4f\xd2\xbf\x0a\x41\ +\x1c\xf5\x56\xd3\x9e\xa2\x70\x7c\xf0\x5c\x0c\xcc\x3a\x1e\xc1\xb5\ +\x0f\x07\xb2\x2a\x20\xcf\x74\x46\xb9\x88\x4d\x0e\x1e\x41\xa8\x4f\ +\x75\x9c\x4c\x5f\xe5\x4c\x9c\x35\x94\x57\xa7\xf6\xde\x07\x84\xce\ +\x34\x24\x0f\x5e\x6e\x5a\x8e\x1f\x7b\x2a\x51\xef\xed\x40\x07\xd7\ +\xdb\x2f\xf7\x25\xbf\xef\xde\x89\x8f\x9a\xd7\xe1\xd4\xa1\x07\x0e\ +\x7e\xde\x4d\x29\xfe\x53\xbf\x14\xeb\xbb\xf6\xa4\x8c\xcd\x20\x83\ +\x84\x62\x12\x0f\x72\x8e\xc0\x03\x07\x9c\xa1\x79\x66\x7e\xed\x57\ +\xd8\xd2\xdb\x90\xb0\x61\x5c\x53\x78\x14\xce\x19\x31\x5b\xf3\xf9\ +\xdd\xd5\xff\x43\x45\x4f\x73\xc4\x74\xb3\x0b\x5b\x7e\xc6\x99\x4d\ +\x07\xe1\xb4\xc2\x19\xf2\x67\x16\x86\xc5\x73\x93\x2e\xc2\x86\x55\ +\x75\xd8\xee\xed\x23\x6e\xe3\xba\x91\xaf\xbf\x0f\xd6\xcf\xbe\x17\ +\x1c\xe5\xe5\x6f\x25\xee\xca\xc9\x25\x21\x58\xe3\x1e\xa8\x52\xf8\ +\x83\x2c\xae\x11\xb8\x6c\x19\x7a\x07\x7c\x7c\x4a\x3a\x09\xc0\x95\ +\x91\x85\x09\xd9\xc3\x4c\x9d\x43\xdb\x7a\xeb\x05\x41\xd8\x9e\x87\ +\x95\x53\x6f\x47\x49\x66\x01\x2c\x56\x56\x53\x48\x3e\x1a\x6c\xe9\ +\xdd\x8b\x45\x2d\xeb\xf0\x76\xd3\x2a\x6c\xed\xad\x13\x0a\x8d\x8b\ +\xc6\x91\xdd\xde\x7a\xcc\xab\x7a\x1d\x7f\xab\xfd\x08\xe7\x15\x1c\ +\x82\x4b\x8a\x0f\xc3\x41\xb9\x63\xa3\xb6\x99\x63\x71\x22\xc7\xe2\ +\x44\x99\xb3\x08\xa7\xe4\x0b\x57\xf4\xbb\x83\x3d\x28\xfb\xe1\x2f\ +\x68\xc3\xbe\xeb\x35\xe8\x33\xb0\x40\x17\x09\x60\x82\xab\x44\x8e\ +\xf3\x8e\xb4\x96\xbb\x3d\x8d\xf0\xf2\x41\x58\x58\x1b\xfe\x59\x7a\ +\x16\xae\x19\xf1\x2b\x38\x6c\x36\x91\x04\xc3\x4b\x9f\x46\xde\x3d\ +\xed\x81\x5e\x2c\x6e\xdf\x8c\xb7\x1a\x57\x62\x49\xfb\x56\xb8\x39\ +\x8f\x40\x03\x76\x16\xbd\x8c\x0f\x2f\xb4\x2c\xc1\x7f\x5a\x7f\xc4\ +\x51\xd9\x13\x70\x79\xf1\x11\xf8\x75\xc1\x54\xe4\xd8\xa2\x5f\xbd\ +\x1c\x69\xcf\xc3\x48\x7b\x1e\x8e\xc8\x19\x07\xa9\xdc\xf1\x9f\xb6\ +\xbe\x82\x67\xdd\xfb\x4e\x0d\x45\x8d\x52\x44\x8c\x2a\xfa\x26\x49\ +\xde\x4f\x95\x98\x22\xca\xf3\x38\xfb\xdc\xf3\x60\xb7\xdb\x43\xd6\ +\x3a\x86\xa0\xaa\xaa\x2a\xea\xbb\xed\xed\xed\x98\x34\x79\x72\xc8\ +\x22\x45\xa4\xbc\x3c\x44\x41\xbc\x5e\xaf\x37\x66\x64\x4a\x0a\xd7\ +\xb5\x7f\xbc\x1a\x67\x9e\xf1\x3b\x31\x73\x99\x20\x04\x0c\x1b\x36\ +\x4c\x23\x84\xdf\x72\xcb\x5f\xb0\x78\xf1\xa7\xc2\x58\x88\xb1\x8d\ +\xee\xff\xfe\xfe\x7f\x28\x2b\x2f\x93\x0f\x49\x9f\xdf\x8f\x53\x7f\ +\x7b\x1a\xea\x1b\xf6\x26\x6d\xb1\x97\x7c\xbb\x04\xd7\xce\xbb\x56\ +\xf1\xd9\x19\x67\x9c\x81\x7f\xdc\x7f\xbf\x42\xb1\xd4\xbb\x0e\xfe\ +\xd8\xe3\x4f\xe0\x3f\xaf\xbe\x26\x67\xd8\x22\x0c\x83\xfb\xef\xbf\ +\x1f\x67\x9c\x71\x86\x82\x7e\xb4\xb3\x35\x57\xe1\xcf\xef\xf7\x63\ +\xce\x9c\xc3\x15\x1e\x25\x97\x2b\x17\x3f\xad\x5a\xa9\x78\xae\xaa\ +\xb2\x0a\xbf\xfd\xdd\x69\x08\x06\x02\x9a\x35\xa2\xe2\xe0\x09\x61\ +\x30\x63\xc6\x0c\xac\x59\xfd\xb3\x58\x87\x49\xf8\x3e\x2f\x3f\x2f\ +\x7e\xfa\xdc\xd7\x0e\x0b\x32\xb8\xfb\x23\xea\x32\x24\x7d\x0c\x61\ +\xe1\x82\x3c\xb6\x76\xed\x09\x63\x88\x06\x16\x79\x42\xf4\x29\x43\ +\xfd\xb9\xf4\x27\xaf\x3f\x3e\x2a\xd2\xef\xcd\x15\x1f\xe0\xc8\xbc\ +\x32\x14\xd8\x72\x06\x35\x39\x55\x78\x1a\x70\xef\xae\x8f\xc3\x16\ +\x86\x8f\x6d\x21\x13\xb2\x21\x95\x6d\xb1\x0c\x23\xd7\x81\xd9\xed\ +\x6b\xc1\x0f\x1d\x5b\x31\x77\xc8\x74\xf9\xd9\xd5\xdd\xbb\xf1\x40\ +\xd5\x67\xe2\xb5\x68\xce\xa0\x29\x95\x67\x48\xf6\x80\xa8\xe8\x90\ +\x61\x70\x54\xc6\x44\xfc\x73\xc2\xd9\x4a\x83\x19\xa5\x78\xb7\x79\ +\x15\xde\xac\x5d\x21\x84\xe0\x10\x55\x8c\x8a\x78\xd0\x73\x22\x3d\ +\xdc\x52\xf9\x3e\x8e\xc8\x19\x8f\x42\x67\xae\xdc\x44\xbe\x2d\x0b\ +\xef\x4c\xbf\x12\xb3\x57\xdd\x0f\x9f\x74\xb5\x87\x18\x6d\x08\x95\ +\x00\xc1\xd1\x08\x5b\x92\xc8\x9e\x11\x23\x5c\x12\x86\xe8\x1a\x00\ +\x0b\x1d\xd9\xba\x02\x04\x35\xb8\x41\x10\x75\xfd\x88\xf1\x28\x84\ +\x63\x94\x35\x3e\x9c\x74\x18\x01\x27\xc6\x38\xad\xeb\xa9\x11\x94\ +\x22\x62\xac\xcc\x03\x40\x83\xbf\x0d\x5f\x75\x6c\x03\x40\xd1\xe0\ +\x6b\x43\x2b\xdc\x18\x65\x2d\x32\x41\x9e\x14\x41\xca\x61\xab\xbb\ +\x11\x1f\xb7\x6e\xc0\x7f\x5b\xd6\x60\x43\x4f\x0d\x02\x41\xa1\x7e\ +\x11\x82\x6a\x0f\xa4\xf0\x6f\x93\xb5\x03\xf3\xf7\x7e\x85\xa7\x9b\ +\x96\x60\x9a\x73\x24\xce\x2d\x98\x89\xdf\x0c\x9d\x8e\x89\x99\xc3\ +\x60\x21\x11\x6e\xc8\x10\x49\xae\x01\x56\x77\x57\xa3\x89\xf3\xa4\ +\x06\x7f\x36\xeb\x88\x4c\xf2\xb9\xa3\xa1\x0e\x86\xc1\x3a\x4f\x6d\ +\x54\x85\x28\xc8\x0b\x1e\xdb\xb7\x1a\x7f\x02\x25\x40\x00\x41\x6c\ +\xf3\x37\xc1\xe9\xb0\x9b\x33\x30\x50\x1e\xcd\x81\x6e\x7c\xdd\xb1\ +\x1d\x1f\xb7\xac\xc3\x57\x1d\x5b\xd0\x1a\xe8\x0c\xed\xbf\xa0\xf8\ +\x52\x98\xdc\xe2\x87\x1f\x5f\xf9\x36\xe2\xab\x96\x8d\x28\xce\xc8\ +\xc3\xaf\x73\xa7\xe2\xac\xc2\x99\x38\xd2\x35\x1e\x59\xd6\x8c\xc8\ +\x7b\x48\x94\x71\x39\x4a\xf1\x7d\x47\x85\x3c\x31\x8d\xf1\x7a\xc0\ +\x05\xfb\xc8\x37\x52\xf4\x94\xcb\xb4\xa7\x48\x21\xf0\x56\xc6\xfd\ +\xee\xf6\x6d\xdb\x92\x2a\xc1\x15\x15\x17\xa1\xa8\xb8\x28\xea\x9b\ +\xb5\xd5\x55\xd8\xb6\x75\x6b\xc4\x67\x18\x96\x45\x59\x79\x19\xa6\ +\x4d\x9b\x26\xe6\x6c\x03\x7c\x5e\x2f\x2c\x16\x8b\x79\x22\x8b\x03\ +\xba\x3a\x3b\xb1\x63\xfb\x0e\xc5\xc6\x09\xcf\x00\x17\x49\xe2\x68\ +\x6a\x6c\x44\x53\x63\xa3\x62\x53\xb6\xb7\xb5\x25\x94\xdf\xee\xd8\ +\xbe\x5d\xf1\xb7\x2b\x37\x17\x7e\x9f\x0f\x36\x7b\x88\x31\xf9\xbc\ +\x5e\x6c\xdb\xb2\x15\x1c\x17\x8c\xd8\xd6\x98\x31\x63\x30\x7d\xfa\ +\x74\x4d\x60\xfd\x60\xd1\x21\xf6\x03\xb5\x2c\x0d\x00\x2a\xbc\x4d\ +\xb8\x61\xfb\xbb\x78\x63\xea\x15\x83\x76\x0e\x3e\xce\x87\x6b\xb7\ +\xbe\x8e\xe6\x40\xcf\x00\xee\x14\x6d\xbf\xe1\xe9\x76\x3b\xa9\x1b\ +\xe7\x6c\x7a\x09\xcf\x96\x9f\x87\xf3\x4a\x0e\x43\x4b\xa0\x1d\x17\ +\x6d\xfa\x37\x7a\xb8\xc4\xc4\xad\x3a\x88\x15\xaf\x4c\xfb\x3d\x9c\ +\xaa\x38\xa2\x6a\x5f\x33\xfe\xbc\xf3\x5d\xd3\xed\x54\xfa\x9a\x70\ +\x77\xe5\xff\xf0\xfc\xa4\x4b\x15\x9f\xe7\xdb\xec\x70\x5a\xac\xf0\ +\x05\xe2\x0b\xe2\xd1\xaf\xdb\x37\x38\x02\x2d\x49\x1f\x2a\x4d\x6f\ +\xec\xae\xc5\xb9\xc3\x66\x45\xa4\xcb\xe6\x40\x17\xae\xd9\xfe\x26\ +\x5a\x03\xa1\x0c\x82\x8b\xda\xd7\x61\x46\x6e\xa9\xe1\x7b\xed\x81\ +\x1e\xac\xe8\xae\xc2\x97\x6d\x9b\xf1\x79\xc7\x26\xec\x76\xd7\x23\ +\x48\x03\xb0\x12\x7b\xcc\x63\xdc\xe0\xa9\xc5\x2f\xb5\x95\xf8\x6b\ +\xed\x22\x94\x39\x8a\x71\xa2\x6b\x12\x4e\x2c\x98\x82\x59\x39\x63\ +\x90\x6f\xcf\x31\xc0\x09\x15\x93\x83\xa4\x21\x22\xf0\xc0\x56\x6f\ +\x03\xbc\x9c\x17\x0e\x36\x72\x0d\xba\xd7\x1b\x97\xe3\xc5\xfa\xe5\ +\x82\xcc\xc0\x10\xfc\xaf\x63\x3d\x9e\xc7\x85\x11\xdf\x59\xd3\x53\ +\x85\x1f\x3b\x76\xe0\x93\xb6\x0d\x58\xd9\x55\x89\x5e\xde\x2d\xda\ +\x81\x63\xa3\xd9\x06\x5f\x3b\x5e\x69\xfe\x1e\xaf\xb4\xfc\x80\xa1\ +\x96\x1c\x1c\x99\x5d\x86\x13\xf3\xa7\xe0\xe8\xdc\x09\x28\xcf\x2a\ +\x31\xe6\x17\x9e\x26\xec\xe8\x6d\xde\xa7\x96\xcc\x92\x70\xd1\x87\ +\x24\xf5\xf1\x7d\x5f\x9e\x93\xea\x0d\x25\x11\xed\x3c\xc7\x81\xf2\ +\xbc\x39\x91\x18\x19\x00\x00\x20\x00\x49\x44\x41\x54\xac\x10\x49\ +\xba\x8e\x99\x3a\x45\x34\x21\x53\x64\x64\xc5\xa8\x2f\x05\xa6\xfb\ +\x72\xa8\xd2\x38\x11\x4b\x4d\xbe\xcd\x24\x48\x19\xa2\x34\x65\xf2\ +\x33\xee\xa7\xa7\x5a\x92\x12\x66\x98\xa6\x5d\xfd\x0a\xf7\x46\xe3\ +\x24\x2a\xba\x09\xbf\x1c\xa4\x68\x48\x32\x4c\xf0\x3c\xde\x6c\x5a\ +\x8e\x83\xab\x46\xe1\xc6\xd1\x73\x07\x8d\xa0\x2a\xf3\x32\xca\xe3\ +\xbe\x8a\x45\xf8\xb2\x7d\x9b\xe0\x45\x31\xb4\x54\x26\xf9\x10\x20\ +\x44\x48\xac\x10\x66\x34\x52\xd4\x17\xe3\x78\x74\xa2\x07\x97\xec\ +\x7a\x15\xd5\x81\x56\x7c\xd7\xba\x0d\x3b\x3c\x8d\x21\x4f\x1e\x35\ +\xc7\xa1\x88\x7e\xa1\x38\x78\x59\x8a\xfb\x2b\x3f\xc5\x82\x49\x17\ +\xc1\xc9\x0a\xf1\x2a\x5e\xde\x8f\x2b\xb7\xbd\x8e\x7a\x4f\x47\xb8\ +\x34\x2b\xbe\xa6\xa2\x2b\x29\xd6\x94\x23\x78\xa1\x61\x29\x4e\x2d\ +\x38\x10\x27\x17\x09\x5e\xad\x46\x7f\x3b\x4e\x5c\xf7\x14\x3a\x38\ +\x9f\x90\xf5\x0d\xd0\x7a\xb6\xa2\xc4\x04\x31\x3a\xd7\xd9\x18\x61\ +\x01\xc5\x3f\x18\xfd\x76\x38\x0a\x02\xa1\x06\x17\x21\x3a\x9b\x50\ +\x13\x83\x6a\xee\x66\x40\x4c\x25\xa9\x78\x13\xfc\x41\x1d\xcb\x27\ +\xc6\x6a\x7d\xd2\xb9\x01\xa3\xf7\xe4\xcb\x09\x1c\x88\x78\x37\xc3\ +\x4f\x39\xb4\x06\x7a\xb1\xd1\xbd\x07\x5f\x76\x6e\x41\x9b\xa7\x0b\ +\xe1\x07\xf2\xa7\xad\x1b\xf1\xb7\xd2\xdf\x82\x10\x21\x2e\xb5\x9b\ +\xf3\x62\x6d\x4f\x1d\xbe\xeb\xd8\x8e\xa5\x9d\xdb\xb1\xba\xbb\x12\ +\x3d\x7c\xaf\xca\x13\x00\x04\xe0\x8b\x32\x5f\xf1\x97\x80\xf0\x1e\ +\x17\x08\x19\xf7\x82\x08\x62\x2b\x57\x87\xad\xbd\x75\x78\xa2\xe1\ +\x2b\x64\x31\x0e\x4c\xcb\x1c\x89\x5f\x65\x97\xe3\xc8\xbc\x72\x1c\ +\x94\x3d\x0a\x85\xf6\x6c\x30\x60\xc1\x51\x1e\xdf\x34\x6f\x4e\x3e\ +\x9f\x1c\xa8\x63\xae\xcf\x31\x4e\x54\xde\x57\x7b\x7b\x9b\xf1\xc4\ +\x9e\x2f\x50\x68\xc9\x91\x15\x6c\x89\xa4\xba\x83\x3e\x54\x7a\x5b\ +\xf0\x6d\xf7\x76\x6c\xee\xad\x03\x0d\x50\x79\x7f\x35\x79\x9a\xb1\ +\xb4\x65\x0b\x8e\x1a\x32\x09\x94\x52\x04\x11\xc4\x4e\x77\x0b\x7e\ +\xe8\xdc\x89\x25\x1d\x5b\xf1\x43\xd7\x0e\xec\xed\x69\x15\xf7\x8f\ +\xd4\x9f\x91\xa7\x9c\xe8\x9f\x3b\xd2\xfe\xe3\x43\xeb\xd8\x8c\x4e\ +\xfc\xd7\xbd\x1a\xff\x6d\x5c\x0d\x8b\xcd\x82\x31\x8e\xa1\x38\x22\ +\x73\x3c\x0e\xcf\x2b\xc7\xa1\x39\x63\x50\x96\x59\x08\x1b\x11\xae\ +\xf4\x7d\xdb\xb2\x0d\x01\x3e\x18\xea\xdf\x30\x36\x57\xea\x9e\xf6\ +\x07\x37\x86\x0e\x83\xd0\x1d\x17\x01\x51\x8e\x87\xec\x2f\x9e\xa2\ +\x41\xb6\x41\xfb\x24\xec\xc7\x40\x6d\x34\xee\x77\x49\x52\x07\x66\ +\xaa\x58\x6d\x5f\x17\xd5\x4c\x02\x0d\x63\x9f\xab\x69\xa5\x28\x71\ +\xa2\xf9\x40\x6b\xf6\x69\x4f\xd1\xbe\x0c\xb7\xd7\x7c\x88\x61\xf6\ +\x1c\x9c\x37\x6c\xf6\xa0\x1a\xf7\xb3\x75\x5f\xe1\xe1\xea\x2f\x06\ +\x9e\xc9\xeb\x78\x13\x58\x83\x08\x9e\x7b\xaa\x3f\x41\x20\x18\x4c\ +\xf8\x10\x5e\x6e\xfd\x09\xd5\xeb\xbb\xf0\xce\xe4\x3f\x20\xcb\x9a\ +\x89\x87\x2a\x3f\xc6\xd7\x2d\xf1\x59\xf3\xaf\xab\x7c\x0b\x73\xf2\ +\xc6\xc0\x0f\x0e\xa7\xfd\xf2\x34\xb6\xf5\xf4\x2d\xee\x89\xf0\x5a\ +\xfe\xc1\x9a\xb8\xe1\xe8\x47\x00\xf7\xd5\x7d\x88\x02\xab\xe0\xb1\ +\xb0\x84\x5d\xb7\x93\x43\xb7\x29\x11\x6c\x89\x34\xa4\x10\x71\x84\ +\x86\x38\x38\x0d\x5d\x1b\x34\x7b\xba\x11\x00\x0c\x4f\x60\x65\xac\ +\xd8\x18\xdc\x1b\xf7\xbc\xd7\xf7\x54\xe1\xaa\x8a\x57\x05\x65\x54\ +\x1e\x1f\x15\x84\x57\x45\x81\x4b\x25\xad\x6c\xe8\xa9\xc3\xbf\xea\ +\x16\xa3\xd1\xd7\x83\x15\xdd\x95\x58\xef\xae\x83\x9b\xf7\x08\xd2\ +\x2b\x0f\x65\xaa\xdc\x24\x41\x0f\xef\xc5\xf2\xae\xed\x58\xde\xbd\ +\x1d\x0f\xed\x25\xb0\x12\x0b\xc6\x38\x87\x60\xb6\x63\x0c\x4a\x33\ +\x86\x62\x93\x7b\x0f\xd2\x60\x0e\xee\xa8\xfc\x40\x0c\x7c\xa3\x61\ +\x96\x68\x91\x6f\x50\x80\x18\x94\x46\x78\x64\xcf\x17\x58\xd1\x5b\ +\x81\x15\x9d\x15\xf8\xc9\x5d\x8d\x46\x7f\x07\x28\x82\x62\x51\x55\ +\xa6\x5f\xf8\x5e\xa5\xb7\x19\x3b\xdd\x7b\xf1\x4a\xcb\xf7\x20\x60\ +\x91\x6f\xc9\xc2\x74\xe7\x70\xcc\xca\x1e\x87\xc5\xed\x9b\x74\x2b\ +\x09\x0c\x5a\x48\x68\xa2\x05\x92\xda\x13\xd5\x30\x64\x8b\x45\xcc\ +\x1c\x16\xc1\xa2\xaf\x13\x27\x40\x29\x45\x20\x10\x88\x4e\x05\x84\ +\xc0\x6a\xb1\x1a\x5e\x9f\x0a\xe5\x69\xd7\xf6\xcc\x80\xc2\xef\xf7\ +\x4a\x1a\x02\x00\xc0\x6e\x53\x15\xf9\x12\x95\x8c\x80\x78\x9d\x41\ +\x6a\x8f\x61\x18\x58\xe5\x67\x85\x0d\x18\x0c\x06\x34\x19\x78\x78\ +\x9e\x83\xdf\x1f\xb2\x2a\xf9\xfc\x5e\xb0\x2c\x1b\xf6\xae\xfe\xb2\ +\x3a\xec\x0e\x65\xfc\x8f\xf8\x6f\x40\x4c\x5f\xae\xbd\x53\x1a\x7a\ +\xd6\xe7\xf3\xc2\x6a\xb3\x29\xc6\x6f\xb5\x58\xb5\xcf\x13\x02\x9b\ +\xdd\x21\x2b\x53\x54\xd7\xe0\x45\x60\xb1\x58\xe3\x2e\xeb\x67\xb5\ +\xda\x14\xd7\xe2\xd4\x45\xd0\x09\x00\x9b\xdd\x0e\x9b\xcd\x6e\xaa\ +\x07\x69\x5e\x10\xb3\xf7\x84\xfe\xd6\x5f\x2f\xa9\x1d\x8b\x98\x4d\ +\x2f\x54\x0c\x58\xb5\xae\xe2\xdf\x1c\xc7\x0d\xf0\x26\x22\xc9\xd9\ +\x93\x24\x75\x78\x42\xe4\x79\x53\xbd\x7f\xfa\x30\x7e\x83\xa0\x06\ +\x8d\x25\x4b\x99\xed\xd0\xfc\xfa\xa8\xb2\xfd\x68\xea\xce\x49\xd9\ +\xcc\x04\xba\xf2\x33\x5e\x5c\xb6\xeb\x35\x10\x00\xe7\x14\xcf\x4a\ +\x48\x22\x97\xa4\x2e\x1f\xe5\xf1\xec\x9e\x6f\xf0\xa7\x1d\x0b\x05\ +\x9e\x21\x79\x3a\x28\x35\xb7\xd0\x09\x36\x5a\x10\x0e\x00\xf5\x23\ +\x48\xfd\x32\x7e\x39\x1a\x44\x58\x61\x0e\x61\x5f\xfb\x02\xfa\xeb\ +\x11\x2b\x3d\xa9\x2d\xff\x22\xff\xfd\xa6\x6b\x0b\x8e\xf9\xe5\x31\ +\x5c\x31\x6c\x36\x1e\xa8\x5a\x1c\x36\x7f\x5e\xb5\xef\x0c\xfa\xe7\ +\x84\xe7\x2a\xdd\x4d\xb8\x78\xc7\x2b\xe8\xf0\x74\xe3\xa7\x9e\xdd\ +\xd0\x78\x18\x63\x24\x73\x42\x29\x02\xf0\x82\xe5\xad\xf2\x29\xc7\ +\x83\x0b\x13\xee\xf5\xc7\x43\xf9\x20\x5e\xac\xfd\x21\x34\x5f\xab\ +\x84\x48\xf1\x03\xab\xaa\x3e\x91\x94\xe6\x4d\xb2\x5c\x07\x0c\xe8\ +\xd8\xaa\x9a\x87\xf4\x9c\x55\xed\xa9\x22\xfa\x7c\xc0\x68\xd8\xea\ +\x60\x43\x9e\x00\x7e\xc8\xf1\xbd\x82\x25\x9f\x44\x30\x1a\xf2\xe2\ +\x32\xf8\x70\xdb\xce\xf7\x43\xba\x92\xec\x71\x34\x49\xd7\xd1\xf8\ +\x2b\x21\xfa\xdb\x24\xa8\xcc\x5e\x1b\xfe\x5c\x00\x41\xec\xf0\x37\ +\x62\x47\x67\x23\xc0\x52\x61\x6c\xdc\xbe\xc9\xdf\xfb\x7e\xdf\x5d\ +\xd5\x6e\x90\x08\xde\x3c\x12\x46\x17\x8a\x6e\x55\x2e\x63\x11\xaf\ +\x9f\x36\xad\xc3\xa7\x4d\xeb\x0c\xc6\x4d\x01\x43\x76\x47\xcc\xf1\ +\x15\x23\x3a\x90\xc8\xc1\x1b\x54\x3c\x47\xc1\xa3\xd5\xdf\x85\x6f\ +\xfd\x9d\x62\xb9\x08\xc3\x42\x45\x06\xfc\x58\x2d\x0f\xd3\xfe\xa1\ +\x9b\x74\x9d\xa2\xe8\xf0\xe2\x0b\x2f\xe2\xf8\xe3\x8f\x13\x52\x5b\ +\x9b\x4e\xbb\x4d\xd0\xd3\xd5\x8d\x59\xb3\x67\xa3\xb3\xb3\x23\xe2\ +\xf3\xa3\x47\x8d\xc6\xd2\xa5\xdf\x81\x61\x45\x7b\xa1\x94\x42\x5b\ +\xec\x8b\xe7\x79\xfd\xbe\x29\xc5\x7b\xef\xbe\x87\xd1\xa3\xc7\x80\ +\x97\x88\x9e\x10\xdc\x78\xc3\x0d\xb8\xf3\x8e\x3b\x14\x8f\xde\x75\ +\xd7\xdd\x78\xf9\x95\x97\x45\x95\x88\x82\x61\x58\xfc\xed\xde\xfb\ +\xf0\xe8\xe3\x8f\x2a\x3c\x15\xe7\x9c\x73\x2e\x96\x2f\x57\x16\x7f\ +\x3d\xee\xf8\x13\x60\xb7\x87\x14\x14\xbb\xdd\x81\x77\xde\x7e\x0b\ +\xa3\x46\x8d\x0a\xa3\x23\x02\x39\xf1\x8d\x58\x23\x89\x61\x18\x59\ +\x80\x97\x60\xf7\xae\xdd\x38\xe2\x57\xbf\x02\xcf\x05\x0d\x36\x1a\ +\x05\x08\xc1\xe1\x73\x0e\xc3\xee\x5d\x3b\x43\xe9\x23\x01\x64\x64\ +\x66\x2a\x70\x40\x00\xfc\xf1\x9a\xab\x71\xc1\xf9\xe7\x69\xf0\x43\ +\xc2\xf0\x48\x29\x45\x6e\x5e\x9e\x49\xfe\xa8\xe5\x90\x4b\x96\x7c\ +\x83\x60\x30\xa8\xed\x43\x71\x33\x83\x98\xda\x5b\x07\x1e\x78\x20\ +\x3e\xfa\xe8\x23\x10\xc2\xc8\x78\xb7\x3b\xec\x9a\xb5\x7d\xf3\xcd\ +\xb7\x71\xf3\xad\x37\x2b\x18\xc5\x75\x7f\xba\x0e\x77\xdc\x71\xbb\ +\xe2\xb9\x7b\xef\xfd\x3b\x5e\x78\xf1\x39\x61\xdc\x54\x50\x74\x3b\ +\x3b\x3a\xd2\xe6\xb6\x34\x24\x15\xbc\x41\x1f\x2e\xde\xf5\x2a\x5a\ +\x7d\xdd\xb8\xb6\x74\x6e\x4a\x8f\xf5\xbe\xaa\xff\xe1\xfe\xca\x4f\ +\x53\xc8\xee\xc6\xe1\xb7\x5b\x16\x20\xcb\x66\x17\xbc\x22\x3c\x81\ +\x1f\xc1\x01\x19\xcb\x26\xef\x5e\xdc\xba\x6b\x51\x9f\xdb\xf9\xb4\ +\x69\x5d\xc2\x2c\xc0\x6b\x3c\x55\x18\xbd\xf2\x76\xb0\x84\x80\xf0\ +\x42\xca\xef\x5e\xce\x9b\xde\x74\x69\x48\x43\x1a\x52\x0a\x2c\xd1\ +\x0c\x0d\x83\x1f\xf4\x67\x52\x58\x38\x14\x23\x46\x8c\x88\xf9\xaa\ +\x5a\x77\x56\x97\xa9\xf4\xca\x56\xab\x15\x23\x47\x8e\xd4\xd4\xb1\ +\x09\xe9\x09\xfa\x59\x72\x28\xa5\xb0\x58\x2c\x68\x0c\x4f\x2a\x00\ +\xc0\xe3\x76\x6b\x66\xd2\xd1\xde\x86\xc6\x86\x7a\xc5\x67\x99\x59\ +\x99\x18\x39\x62\x84\xfc\x37\x4f\x79\xd8\x54\x39\xed\xa5\x77\xc3\ +\x17\xdc\x66\x77\xa0\xa8\xb8\x18\x23\xc2\xde\x8d\x34\x6e\x85\x35\ +\x21\x18\x40\x73\x53\x93\xa8\xec\x71\x5a\x0b\x81\xd8\x87\xcf\xe7\ +\xc7\xf0\xe1\xc3\x75\xe7\x1d\x0e\x39\x39\x39\xc8\xc9\x89\x37\x1b\ +\x96\x9e\x22\xa3\xfd\x2c\x3c\x73\x5f\x5f\x7b\xb0\xdb\xec\x32\xde\ +\x22\xcd\xab\xa7\xbb\x0b\x4d\x0d\xca\x6b\x28\x6e\xb7\x3b\x54\x7b\ +\x49\xa4\xd6\xae\xce\x0e\x34\x36\x34\xc4\x33\xd5\xc1\x03\x2a\xc7\ +\x08\x1d\xa0\xfe\xa3\x77\x4c\x93\xd4\xae\xfa\x35\xaa\xdb\x6b\xf4\ +\x5b\xa7\x51\xea\x72\x45\xb6\xf2\x84\xc0\x2f\x78\x30\xfc\xe0\x31\ +\xaf\xf2\x2d\x6c\xea\xdd\x8b\x7f\x96\x9f\x85\x2c\x8b\x53\x7c\x3c\ +\x35\x3c\x47\xcd\x81\x4e\x5c\xbe\xfd\x3f\xf8\xb8\x71\xbd\xf0\x01\ +\x67\x10\x94\x43\xfa\x9f\x90\xba\xfc\x1e\x74\x49\x45\x0d\x25\x7c\ +\x31\x46\x07\xaa\xda\x92\x1b\xad\xfe\x8f\xb8\x9e\x9a\x10\x33\xd5\ +\x07\x62\x1d\xa2\x40\x54\x72\x51\x9b\x64\x55\xe3\xe1\xa8\x3e\x41\ +\x6b\x5e\x8b\xe6\x89\x13\xbe\xe7\x39\x1e\x8d\xee\x2e\xed\x38\x0c\ +\x63\x38\x54\x78\x93\xfe\xf5\xa9\x9e\xf3\x33\xfa\xdb\x95\x89\x22\ +\xc8\xf8\x99\x28\x9f\xf7\xb1\x20\x63\xbc\xe9\x29\x25\x79\x81\x57\ +\xd5\x21\x8b\x9a\x85\x32\x32\xdf\x8a\xda\x3b\x31\x2b\x00\x2a\x3d\ +\x19\x29\x7b\x36\x99\x8e\x0d\xa2\xe6\x56\xd9\x2c\x5f\x8f\x46\xbf\ +\x1a\x8f\xa3\xda\x80\x6c\x90\xa5\x4e\x13\x13\x43\x22\x1e\xa8\xa1\ +\x5e\x68\x6c\xe7\x11\x51\x35\xc0\x18\x78\x92\xa2\x5e\x5c\x31\x99\ +\x35\x35\xd9\x74\x13\x47\x7b\xfb\xad\xa7\x28\xde\xb8\x1d\xb3\xa1\ +\x31\xa4\x0f\x77\x7e\x49\x84\xcf\x69\x94\xe7\x18\x1d\xe1\x85\x9a\ +\x18\x74\x4e\x76\xb6\x7c\x95\x2b\x9e\xb1\xe6\xe7\xe7\x0b\xe9\x67\ +\xe5\x4b\xdc\xda\xcd\x96\x97\x97\xd7\x0f\xeb\x6a\xf6\xc3\xfe\xa5\ +\x1b\xb3\xeb\x9d\xba\x7a\x4e\x3a\xa6\x68\x7f\x82\x67\xdb\xbe\xc7\ +\xca\x5f\xaa\xf0\xcc\xb8\xf3\x71\x68\xfe\xf8\x94\x19\xd7\x99\x1b\ +\x9e\xc5\x0f\x9d\x5b\x11\xaa\x4c\x93\x86\x34\xa4\x21\x0d\x69\x48\ +\x43\x62\x20\xf1\xd9\xe7\x06\x8b\x52\x14\xa3\x80\x4b\xc3\xe4\xeb\ +\x88\xaf\x89\x9a\x8b\xa4\x9c\x50\x95\xa9\x82\x18\x28\x29\x34\x8a\ +\x10\x4f\x08\x91\xeb\xe0\x84\x14\x1d\xa2\x11\xfe\x59\x86\x28\x14\ +\x21\xa1\xae\x8f\xbe\x70\x6f\xb3\xd9\x71\xf1\xc5\x17\xe3\xec\xb3\ +\xcf\xc6\xf4\xe9\xd3\x30\xb4\xb0\x30\x2e\x5c\x4e\x9c\x38\x11\xbb\ +\x77\xee\x08\x5d\x11\x34\xc0\x89\xc5\x6a\x49\x98\x52\x11\x8e\x57\ +\x59\x59\x14\xaf\xe9\xe9\x2b\xb3\xa1\xac\x27\x24\x96\xf5\xd6\xb4\ +\x41\x4d\x35\x40\x55\x8a\x2c\x35\xd0\xe0\x18\xa2\x1e\x1f\x35\xa5\ +\xc4\x0e\xcc\x8e\xd9\x87\x54\x2d\x03\x43\x78\xac\xca\x37\xed\x37\ +\x3c\x44\xae\x73\x41\xa2\xac\x1a\xd5\x98\x10\x55\x96\x4a\xc9\x98\ +\x12\x90\xb2\xd2\x51\xfc\xe2\xaf\xc4\xd1\x5b\x1e\xc3\x15\x05\x87\ +\xe3\xce\xd2\x5f\x63\x98\xb3\x60\x40\xb3\xd3\x75\x07\xdc\x58\xdb\ +\x59\x23\x20\x8b\x33\xb8\x8b\xce\x98\xb4\xe0\x27\x6c\x3b\x18\x65\ +\xf5\x93\xb2\xaa\xe9\xaf\x1f\xa1\xd4\x80\x9f\xc5\xb8\xed\x88\x81\ +\x29\x9c\x9a\xa4\x34\x0d\x59\x88\x37\x18\xa8\xd2\x33\xa5\xc5\x1f\ +\x6f\x8e\x70\x55\x75\x95\x10\xcd\x72\x6d\x48\x9f\x24\x0a\x42\x8c\ +\x62\x42\x48\x82\xf9\x5d\x9c\xe3\x37\xa0\x3f\xa2\xca\x67\x2a\x25\ +\xa4\xa0\x0c\xd1\xa7\x2f\x6d\x81\x1a\x83\xaf\xa9\xc1\xaa\x13\x23\ +\x06\xa1\xdf\x9e\x91\x47\x82\x2a\xc7\xaf\x61\xab\xf1\xd6\xbb\x4c\ +\x16\x7f\xef\xf7\x73\x29\x0a\x1e\x8d\x62\x79\x88\x41\xac\x29\x43\ +\x74\xd7\x5d\xed\x11\x0a\x65\x53\xa3\x71\x4e\xc4\xe0\x3d\xb5\x07\ +\x89\x1a\xd0\x05\xf8\x18\xf7\x57\x92\x25\x80\x28\x75\x8a\xf4\x86\ +\xb5\x5f\x78\x8a\x12\x9d\xb9\xcb\x95\x9b\x1b\x22\x41\x03\x1e\xe3\ +\xca\xce\x42\x73\x73\xa3\x7c\x28\x10\x95\xc2\x40\x45\x01\x9e\xe8\ +\xec\x8b\x5e\x8f\x5b\xd3\xa7\xdb\xdd\x8b\xe6\xe6\x66\x85\x90\x4d\ +\x18\x06\x79\xf9\x05\x8a\xcd\xe0\xf7\x79\xd1\xdc\xdc\x8c\x70\x15\ +\xc0\x66\xb7\x21\xaf\xa0\x40\xcc\x72\x22\x3c\x39\x6a\x74\x29\x9e\ +\x7a\xf2\x09\x1c\x76\xf8\x61\x09\x11\x14\x72\x5c\xae\x7e\x5f\xd7\ +\x9e\xee\x1e\x78\xbc\x1e\xe5\xfc\x03\xda\x94\xa4\x1d\x9d\xed\x68\ +\x12\x71\x27\xcd\xb5\x70\xe8\x50\xcd\x73\x2d\x2d\x2d\xe0\xc4\xeb\ +\x7f\xa1\xf5\x22\x0a\x0a\x6a\xef\x68\x37\x5d\xf8\xaf\xa5\xa5\x39\ +\x8c\xc7\x08\x09\x3a\xf2\xf2\x87\xa8\x1e\xa7\x68\x69\x69\x91\xd7\ +\x8b\x8a\x6b\x94\x5f\x50\x10\x52\xa4\x89\x30\x57\x9f\xcf\xbb\x7f\ +\x5a\x30\xd2\x30\x60\xe0\x0b\x7a\xf1\xef\xd6\x65\x78\xab\xfd\x27\ +\x5c\x3d\xf4\x48\xcc\x1b\x7e\x2c\x46\x64\x0e\x19\x90\xb1\x64\x5b\ +\x33\x30\xd1\x59\x8c\x35\xee\xdd\xe9\x85\x49\x43\x1a\xd2\x90\x86\ +\x34\x24\x5c\x99\xb6\x24\x4c\xc3\x8e\xf3\xbd\x01\x4b\x52\x12\xa3\ +\x22\x20\x3d\x9d\x9d\x93\x83\xb5\xab\x57\x87\x34\x73\x8d\xe5\x47\ +\x98\xd3\xae\xed\xdb\x30\x61\xe2\xe4\x50\x8c\x4d\xa4\x89\x53\xa5\ +\x45\x21\x10\xd0\x16\xf4\x7b\xea\xa9\x05\x78\xe1\xc5\x7f\x23\xbc\ +\xd2\xf7\x5f\xff\xfa\x57\xec\xda\xb5\x53\xf0\x5e\x89\x9f\xcf\xbb\ +\x76\x1e\xae\xbd\xee\x7a\xb9\x61\x86\x65\xf1\xd2\xbf\xff\x8d\x85\ +\xc7\x1c\xa3\x18\xaf\xc3\xe1\x80\x5d\xcc\xbe\x16\x08\x04\xd0\xd5\ +\xd9\x05\x9f\xcf\x0b\x4a\x29\x78\x83\x0c\x43\xe1\x46\x30\x12\xe6\ +\x91\x22\x61\xd5\xcc\x23\x5e\xef\x23\x4a\x2f\x56\x34\x05\x7f\x58\ +\x71\x31\xac\x56\xab\xfe\xba\x51\xe0\xe6\x5b\x6e\xc5\x3b\xef\xbc\ +\xad\xf8\xba\xbb\xab\x4b\xd9\x0e\xcf\xe3\xcc\x33\xcf\x0e\x25\x87\ +\x10\xbb\x5e\xbb\x76\x0d\xc6\x8d\x0f\x5d\x0b\xf2\x79\x3c\x38\x70\ +\xc6\x41\xe8\xec\xec\x0c\x25\x97\xd0\x71\x2b\x51\x9e\xca\x8a\x93\ +\xde\x3c\xa5\xa9\x7d\xf2\xc9\x27\xb8\xe8\xf7\x17\x29\x62\xc7\xce\ +\x3c\xeb\x2c\xec\xde\xbd\x43\x56\xe2\x28\x28\x9e\x5e\xf0\x0c\xc6\ +\x8d\x2f\x93\x07\x46\x08\xc1\x6d\xb7\xdd\x8e\x5d\xbb\x76\x29\xda\ +\xbe\xfa\xea\x3f\xe2\xdd\x77\xdf\x49\xaa\xb2\xbf\x5f\x41\xcc\x31\ +\x45\x7d\x2c\xc0\x46\xfb\x38\xce\xb8\xe7\xa5\xca\x3e\x47\x0d\x3c\ +\x46\xea\x3a\x16\x12\x0b\x08\x52\xf8\xfc\x1e\xf8\x58\x0f\x1e\xaa\ +\xf9\x14\xcf\x34\x7d\x87\xd3\xf3\x66\xe0\xa2\xa2\x39\x38\x3c\xaf\ +\x0c\x4e\xc6\x96\x38\xef\x8b\x09\xbe\x70\x74\xde\x01\x58\xd3\x5b\ +\x11\x2a\x1e\x43\x23\x7b\xd0\x4c\x7b\x0c\xe2\x5e\x2f\x7d\xfc\x11\ +\xaa\xcc\xfe\x47\x54\xb1\x3c\x34\xea\x79\x14\x99\xee\x8c\xee\x1a\ +\x84\x0c\xb9\x92\x49\x87\xea\xa3\x36\x0a\x3a\x28\x63\x80\x96\x68\ +\xd9\xe7\x88\x61\x81\x92\xc8\x1d\xd3\x68\x9e\x27\xa3\x2c\x56\xca\ +\xec\x8c\xa1\xa3\x88\x98\x6c\x27\x51\x34\x6a\x94\xed\x8b\xea\xa3\ +\x41\xf3\x36\x2f\xe2\x3d\x0a\x63\x32\xca\xae\x48\x63\x64\x20\xc4\ +\x2c\x3d\xd0\xc8\xdb\xc9\x00\x1f\x34\xd5\x62\x8a\xe2\xe5\xa7\x09\ +\x10\xb2\x95\xfc\x37\x36\xfa\x56\xef\x6b\xed\xbe\xa2\x2a\xd9\x2a\ +\xc1\xe7\x8b\x81\xe7\x51\x73\xac\x44\xe1\x07\xc4\x24\x5f\x4b\xb8\ +\xff\x88\xc4\xde\xe2\xfe\x1b\x53\xd4\x87\x77\x73\xf3\x72\x23\xf0\ +\x4c\x01\xf9\xce\x8c\x4c\x74\x77\x75\x82\xe7\x69\x42\x96\xd9\xef\ +\xf7\xc3\xef\xf7\x2b\x16\xdb\xca\x5a\x42\x71\x3a\x54\xb8\x76\xe5\ +\xf7\xfb\x15\x8a\x01\x61\x58\x64\x66\x64\x22\x37\x2f\x4f\xe7\x2a\ +\x18\xd0\xde\xde\x01\xbf\xcf\x8f\x1c\x57\x36\x5c\xae\x1c\xed\xf5\ +\x18\xa2\x4c\x54\x10\xae\xd0\x24\xbe\x78\xaa\x18\x94\xcb\x53\xf4\ +\xf6\xf6\xa2\xa2\xb2\x12\xf9\xf9\x79\x18\x3a\x64\xa8\xee\xd3\x5e\ +\xb7\x07\x3d\xdd\xdd\x62\xf9\x07\x6a\x88\x62\x77\x6f\xaf\x42\x01\ +\x65\x2d\x16\xf0\xbc\xf6\x70\xef\xe9\xee\x46\x4f\x77\x57\x42\xe8\ +\x2b\xe0\xf7\xa3\xab\xab\x4b\x79\x8d\x82\xa7\xc8\x75\xe5\x02\x84\ +\x84\xf0\x48\x85\xc4\x0a\x72\xca\x56\x00\x16\x8b\x05\xb9\x2e\x57\ +\xf8\x09\x0f\xab\xc5\x32\xc0\xdc\x3d\x0d\x69\x00\xba\x02\xbd\x78\ +\xb5\xf5\x47\xbc\xd6\xb6\x0c\xc3\xad\xf9\x38\xd1\x35\x19\x27\xe4\ +\x4f\xc1\xa1\xd9\x63\x30\x3a\x23\xbe\xeb\xb7\xbb\x3d\x4d\x58\xd5\ +\x55\x85\x1f\xba\x77\xa2\xdb\xef\xc1\xb9\x05\x07\xe3\x94\xc2\x03\ +\x75\x9f\x3d\x2e\xff\x00\x3c\x5a\xfb\x39\x30\x40\x99\xdd\xd2\x90\ +\x86\x34\xa4\x21\x0d\xfb\x2e\x58\x12\xaa\x2d\xf4\xb3\x72\xd2\x07\ +\xe9\x1b\xc9\xba\x1a\xaf\x54\x14\x08\xcc\xdf\xb1\x8c\x1d\x73\xe1\ +\x5d\x51\x29\xd6\x45\xa7\x32\x3a\xd1\x8b\xf5\x21\x04\xed\xad\x6d\ +\xb0\xdb\xed\xc8\xcb\xcb\x35\x44\x08\x31\x50\xfa\x12\xa1\x18\x29\ +\x47\x19\x76\x27\x96\x05\x6c\xb9\xb9\xc8\xcb\xcd\xc5\xee\xdd\x15\ +\xb0\xd9\x6c\x70\xb9\x72\xa1\x67\x0a\xa1\x61\xca\x8e\x59\x5a\xe0\ +\x82\x41\xa8\xab\x45\x08\xb1\x57\x34\xde\x45\xd7\x74\x12\x31\xdf\ +\x43\x98\x77\x8d\x52\x5e\x65\x55\x24\x60\xc2\xd2\x84\xf3\x61\xb1\ +\x46\x03\x0b\x83\xd4\x2b\xd5\x67\x57\xb4\x7e\x36\x2a\x1a\xfb\x76\ +\x4d\x2a\x1a\xe3\x9e\xa6\x91\xc7\x48\x9e\xbe\x2a\x78\x2a\x40\x81\ +\x00\x40\x59\x8a\x3a\x7f\x2b\x5e\xf2\x2e\xc5\x4b\x8d\x4b\x61\x63\ +\xac\x18\x66\xcd\xc3\xe4\x8c\x62\x94\x65\x14\xa3\xc4\x9e\x8f\x7c\ +\x36\x13\x2e\x4b\x06\xb2\x58\x1b\x28\x80\x5e\x3e\x80\x8e\xa0\x1b\ +\xed\x81\x1e\xd4\xfb\x3b\xb1\xbd\xb7\x01\x5b\xdc\xf5\xd8\x1b\xec\ +\x40\x80\x8a\xf9\xd2\x78\x1e\x6f\x36\xfe\x80\x13\xeb\xa6\xe1\x9f\ +\x63\xcf\xc0\x34\xd7\x68\x45\x31\xe7\x39\x79\xe3\x90\x01\x07\xdc\ +\xe8\x35\xc0\xeb\xc0\xe4\x33\x94\x63\x2b\x0c\x62\x49\x68\xcc\xd9\ +\xf1\x48\x1f\x77\x29\xd5\x47\x8b\xaa\x7d\x63\x0b\xb4\x2e\xbb\x85\ +\x61\xbd\x1e\xc4\x99\x0d\x8d\x26\x86\x1f\x69\xc9\x80\x26\x87\x0c\ +\x08\x89\x6f\xc7\x19\xc4\x20\xaa\x63\xfe\xb4\xb1\x38\x31\x7a\x82\ +\x92\x2c\x50\x69\x43\x31\xa5\xf3\x8e\xd1\x1f\xef\xbe\x66\xbb\x8b\ +\x95\xbd\x90\x58\xdf\x27\x31\xae\x07\x49\x06\x1b\x31\xfd\x3e\xd5\ +\x6c\x07\x62\x6e\xff\xf4\x57\xdc\x74\xac\x74\x48\xf6\x1b\x4f\x91\ +\xf1\x15\x04\x32\x00\xfd\x26\x0a\x18\x93\x69\x72\x19\xdd\x5a\x71\ +\x14\x1e\xb7\x1b\x79\xf9\x79\x29\xbd\x72\xa3\x4b\x47\x63\xc7\xb6\ +\xad\x21\xa5\x28\xa9\x9a\x2d\x89\xf3\x2d\x73\x25\x64\x8d\xd2\xb3\ +\x83\x12\xf9\x34\x34\x1a\x01\xcf\x0f\x54\xca\xe1\x34\xa4\xc1\x1c\ +\xd4\x07\xda\x51\xdd\xde\x08\xb4\xaf\x17\x09\x54\x75\x65\x4a\x0e\ +\x88\x0c\x53\x20\xa4\xaa\xee\x56\xe5\xde\xf8\xa2\x77\x03\x96\x6e\ +\xd8\x8e\x2b\x0a\x8f\xc0\x7d\x63\x7f\x87\x02\xbb\x90\xa2\xdf\x65\ +\x71\x60\x56\xc6\x48\x7c\xe7\xde\x96\x46\x78\x1a\xd2\x90\x86\x34\ +\xa4\x21\xa1\x90\x38\xa5\x28\x55\x85\x34\x62\x4e\xad\xa7\x94\xa2\ +\xa1\xa1\x1e\x7e\xbf\x5f\xd4\xbe\x85\x77\x46\x8f\x2e\x55\x3d\xc7\ +\x63\x4f\x5d\x1d\x38\x5e\x79\x07\xba\xb4\x54\xf9\x9c\xd5\x66\xc7\ +\x90\xb0\x60\x7e\x96\x65\x64\x41\x9e\x80\x82\xe7\x25\x6f\x01\x89\ +\x10\xc3\x42\x54\x5e\x10\x2a\x3f\x43\x01\x64\x65\x67\x85\x19\xea\ +\x98\x08\xca\xb9\xf6\x46\xa7\xc7\xed\x86\x33\xc3\xa9\x5f\x68\x35\ +\xbc\xcb\x28\x77\x32\xd5\x59\x4f\x64\x21\xde\xa0\x0e\x93\x52\x21\ +\xa5\xf0\x07\x04\x0b\xb1\x4d\x8c\x1d\x52\x7b\xa2\x18\x86\x01\x6b\ +\xb1\x86\xb5\xcb\x8b\x8a\x1e\x41\x76\x76\x0e\x0a\x0b\x8b\xc1\x30\ +\x04\x84\x30\x20\xa0\x68\x6d\x6d\xd5\x26\x24\x30\x45\x27\xfa\xe3\ +\x2c\x2e\x1e\x26\xa2\x57\x4a\x98\xc1\xa8\xc8\x9d\xc2\x95\x9d\x8d\ +\x9a\x9a\x2a\xc5\x3a\xf4\xf4\xf4\x60\xd8\xb0\x12\x85\xe1\xcc\xe5\ +\xca\xd5\xe0\x23\x2b\xdb\x85\xe2\x61\xc3\xc5\x39\x88\x0b\xcb\x07\ +\x51\x53\x53\xad\xb0\x02\xd9\x6c\x36\xa1\xbd\xb0\xbb\xf9\x99\x99\ +\x99\x03\x6e\x58\x88\xdf\x82\xa3\xba\x94\x9c\x44\xcb\x4f\xc4\x76\ +\x4c\x77\xd8\xcf\x68\x8c\x76\x17\x9e\x26\x69\x79\xa9\x41\x7d\x09\ +\x75\xec\x8e\xe4\x00\x17\xc3\xeb\xe4\x42\xa5\x6a\x3e\xa4\xe6\xbf\ +\xbc\xc1\xa4\x7c\xaa\xd8\x4b\x0e\xf0\xc2\x8b\x05\x8d\xdf\xe2\xfd\ +\xb6\x5f\xf0\xb7\x91\xa7\xe2\xb2\x11\x87\xc3\x42\xac\x18\xeb\xc8\ +\xc7\x77\x6e\x15\x22\x48\x9c\xf4\x12\x3d\x6d\x5f\x5c\x78\xa4\x29\ +\x93\x86\x2b\xb6\x0d\x21\x5b\xfc\xa9\x51\xec\x53\x62\xf8\x81\xe9\ +\xfa\x59\x31\xd3\x6f\x7f\x79\x0a\x49\x72\xde\x26\x49\xe9\x2e\x79\ +\x58\x48\xd5\xc2\x96\x34\x41\xef\x27\x9a\x3f\x18\xae\x27\x89\x6d\ +\x38\xfd\x4e\xef\xfd\x23\x1e\xa4\x02\x19\xed\x07\x9e\x22\x62\x0a\ +\xfb\x14\xc0\xc9\x27\x9f\x8a\xf5\x1b\xd6\xc9\x9f\x58\x6d\x76\x6c\ +\xde\xb4\x11\xe3\xc6\x8d\x93\x9f\xeb\xe9\xee\xc1\x81\x33\x66\xa2\ +\xa3\xa3\x4d\x3c\x37\x28\x5c\xae\x5c\xb4\xb7\xb5\x2a\xda\x2b\x2b\ +\x2f\x43\xfd\xde\x3a\x18\xf9\xa3\x68\x14\xa5\x21\x26\x86\x14\x07\ +\x0a\x7c\x5e\x2f\x9c\x19\x19\x03\xb6\x2a\x5e\x8f\x90\x35\x8e\xb5\ +\xb0\xe8\xea\xe8\x84\x3f\xe0\x47\x76\x76\x36\xba\x3a\xbb\xc0\x30\ +\x8c\x5c\x5c\x95\x10\x02\xa7\xc3\xa1\xdb\xc6\x82\x05\x4f\xe0\xa9\ +\xa7\x9e\x50\x7c\xf6\x9b\x93\x7f\x83\xcf\xbf\xf8\x3c\x21\x63\x74\ +\xb9\x5c\xa8\xac\xdc\x0d\x9b\xcd\xa6\x45\x64\x28\x0f\x38\x56\x2c\ +\x5b\x8e\xb1\xe3\xca\x64\x7a\x00\x21\xf8\xf5\x49\xbf\x46\x6d\x4d\ +\x95\xa2\xe8\xa5\xde\x7a\xdd\x78\xe3\x75\xb8\xe1\x86\x79\x72\xdb\ +\x14\x14\x37\xdf\x74\x0b\x4a\xc7\x8c\x93\xe9\x90\x10\x82\xe7\x9e\ +\x7b\x0e\x2f\xbf\xfc\xa2\xac\x48\x13\x92\xca\x96\x88\x34\xa4\x21\ +\x71\xd0\x10\x68\xc7\xd5\xd5\xaf\xe1\xa9\xfa\xaf\x71\x4c\x6e\x39\ +\xbe\xea\x49\x7b\x89\xd2\x90\x86\x34\xa4\x21\x0d\xfd\xa2\x14\xf5\ +\x9f\xe6\xd9\x3f\x22\x9d\xb9\xa0\x22\xc1\xa0\xc9\x83\x4a\x99\xc5\ +\x88\x18\xef\x41\xb5\xda\x13\xe5\x79\xf0\x5c\xc8\xb2\xc9\xf3\xbc\ +\x1c\xb8\xcf\x30\x61\x29\xb8\x23\x28\x2d\x89\x50\x8a\x62\xc1\xb4\ +\xda\x03\x13\x08\x04\x90\xc9\xb2\xf2\xfc\xe4\xc4\x03\xa2\xb0\xed\ +\xf7\xfb\xe1\xf6\x78\x60\x61\x59\xd8\x6c\x56\x78\x3c\x5e\x58\xad\ +\x16\x78\x44\x65\x86\x10\x82\xec\xec\x6c\xf4\xf4\xba\x61\xb7\xdb\ +\xe1\xb0\xdb\xd0\xdd\xd3\x2b\x7b\xc4\x3c\x6e\x0f\xbc\x3e\x3f\xea\ +\xea\x6a\x91\x97\x97\x8f\xd2\xd2\x51\xd8\xb9\x63\x37\xfc\x62\x66\ +\xbd\xac\xac\x4c\xf4\xf6\xf4\xc2\xe1\xb0\x23\xbf\xa0\x00\x5e\xaf\ +\x0f\x9d\x9d\xdd\x18\x3d\x7a\x24\x76\xef\xda\x8d\x82\x21\x05\xb2\ +\x32\x42\x18\x22\x8f\x8f\x17\x2b\xd8\x33\x62\xe2\x01\x86\x21\xf1\ +\x51\x95\xa6\xa0\xbc\x4e\x35\x21\x42\xc0\xb2\x2c\x38\x8e\x83\xd5\ +\x6a\xd3\x6d\x83\x52\x21\x8d\xb6\x4c\x0f\x84\x88\x31\x43\x00\xc3\ +\xb0\x51\xd7\x57\xa0\x93\x50\x21\x4a\x9e\x52\xf0\x7c\x18\x1d\x32\ +\x0c\x28\xa5\x60\x19\x16\x0c\xc3\xc6\xae\x10\x27\x7b\x1f\xc5\x4d\ +\x92\x34\x95\x99\x86\x31\x3f\x8c\x33\xa4\x20\xd9\xf3\x4c\x18\x39\ +\x10\x83\x75\x37\xf2\x78\x44\xeb\x98\x57\xe1\xcd\xd0\xd3\x20\x19\ +\x0f\x54\x59\xc8\xfc\xe2\xdf\x16\x82\x4d\x81\x3a\x6c\xea\xa9\x33\ +\x47\x57\x03\x6d\x38\x25\x34\x31\xc3\x48\xb6\x87\x50\xbd\x8e\x74\ +\x80\xb6\x57\x82\x36\x52\x8a\xd8\xcd\xe3\x18\xf7\x60\x1d\x79\x82\ +\xf9\xf4\x40\xc7\x22\x91\x14\xdd\x9f\xfb\x18\xbd\xf7\xdb\xc8\xa3\ +\xc5\x44\xe9\xf4\x3f\xa0\x9e\xa2\xfe\x5a\x48\x62\x50\x0c\x35\x1a\ +\x02\x03\x7e\x5f\x74\xe1\x93\x0c\x1e\xf2\x33\xfa\xbc\xb9\xb9\x05\ +\xbb\x2b\x2a\x30\x6a\xe4\x70\xec\xae\xaa\x01\x00\x14\x0e\x29\x40\ +\x77\x77\x37\x28\xcf\xa3\xa8\xa8\x10\x0c\x6b\x41\x5b\x7b\x3b\xfc\ +\x7e\x3f\x26\x4f\x9a\x84\x0d\x1b\x37\x21\xd7\x95\x83\xac\xec\x6c\ +\xec\xdc\xb1\x0b\x25\xc3\x8b\xe1\xf1\x78\xd1\xd6\xd6\x0e\x96\x65\ +\x50\x54\x54\x8c\xee\xee\x0e\xe4\xe5\xe5\x23\x3b\x27\x07\x5b\xb6\ +\x6c\x43\x49\x49\x09\x02\x01\x3f\x9a\x9a\x9a\x51\x5e\x56\x86\x1d\ +\x3b\x77\xc2\xe5\x72\xa1\xa8\xb0\x10\xd5\xd5\xd5\xb0\xdb\x6d\x70\ +\x38\x9c\x9a\xc4\x09\x24\x89\x85\x43\x89\x11\xa6\x48\x5f\x71\xde\ +\x07\x0f\x20\x35\x47\xc3\x69\x48\x43\x1a\xd2\x90\x86\x34\xa4\x21\ +\x0d\x69\x48\x8c\x50\x98\x04\xa5\xc8\xbc\x06\xd8\x7f\x62\x1e\x51\ +\x64\xbd\x20\x0c\x23\x7a\x86\xa8\x5c\xcf\x81\x1a\x6a\x6c\xca\xac\ +\x64\x54\x5d\x60\x88\x42\xcc\x16\x16\x5d\xe1\x23\xd0\xc6\xcc\x44\ +\x32\x8c\x50\x71\x8c\x09\x11\x8a\x55\x59\x3f\xc2\xb3\x9a\xb5\xb5\ +\xb6\xa0\xbc\x7c\x1c\x9a\x9a\x9a\x91\xe7\xca\x01\x08\x41\x76\x56\ +\x16\x4a\x86\x95\xa0\xa1\xae\x16\x0d\x7b\xeb\x31\x65\xda\x34\xd8\ +\x6c\x76\xb8\xdd\xbd\x70\x3a\x1c\x18\x35\x72\x24\x72\x72\xb2\x90\ +\x95\x99\x05\x0b\x6b\x41\x20\xe0\xc7\xc4\xf2\x72\xec\xd8\xb5\x0b\ +\x5c\x30\x80\xd1\xa3\x46\xa2\xb2\x8a\x47\x51\xe1\x50\x64\x64\x64\ +\x60\x48\x7e\x1e\x6c\x36\x1b\x58\x96\xc1\xe8\x51\x23\x01\x10\x1c\ +\x30\x71\xa2\x8c\x8f\x31\x63\xc6\x28\x14\x0a\x75\xda\x01\x75\xc5\ +\x75\xed\x7a\x51\xd5\x5c\x75\xb2\xe0\x50\x21\xdd\xb5\xd4\x87\x42\ +\xf7\x22\x62\xfc\x16\x09\x15\x8e\x62\xc3\x3c\x33\x46\x49\x39\xa8\ +\x58\x9b\x49\xba\x26\x27\xd1\x07\x43\x62\x4b\xee\x41\x55\xed\x85\ +\xd6\x8b\x07\x21\x8c\x8e\x47\x6c\xb0\x83\x2a\xf8\x22\x65\x2d\x8b\ +\x06\xc1\x3d\x66\x3d\x5d\xfd\x64\xf9\x34\xdd\x4d\x9f\x0d\x74\x06\ +\x09\x3f\x8c\xea\x05\x11\x73\xd7\x97\x75\xef\x33\x87\x37\xcf\x45\ +\x31\xc9\x92\x28\x95\xd8\xfb\xba\xec\x31\xbf\x1f\x23\x9d\xc4\x1a\ +\x23\x47\x13\xbb\x0d\xa3\xaf\x6f\x6a\xb3\x91\xe8\xd9\xbc\x68\x6a\ +\x8e\x5b\xef\xfc\x4a\xe4\xb0\x49\x92\xe8\xdd\x2c\xde\x63\xe5\xef\ +\xb1\x95\xeb\x4a\x1e\x1e\x48\xb2\xe8\x31\xc9\xf4\xde\xd7\x73\x34\ +\xd9\x74\x6e\xc8\x67\xe2\x44\x5c\x1f\xc7\x4d\x34\xf2\x3f\xd9\x3f\ +\x62\x8a\x86\x0f\x1f\x8e\x29\x93\xa7\x82\x61\x18\x19\xf7\x8d\x0d\ +\xf5\xf8\xf9\xe7\x9f\xe4\x6b\x6e\x0c\xc3\xc2\xe3\x76\x6b\xde\xde\ +\xb2\x65\x0b\xda\xdb\x3b\x64\x71\xd6\xed\x76\x63\xe2\xc4\x09\xe8\ +\xed\x75\xcb\x6b\x99\x93\xe3\xd2\xbc\xe7\xf3\x7a\xb1\x71\xe3\x06\ +\x29\xec\x04\x80\x90\x18\xe1\x80\x89\x07\x28\x9e\xeb\x68\x6f\xc7\ +\xce\x5d\x3b\x43\x69\x9a\x35\x75\x81\x84\x06\x86\x0d\x2b\xc1\x88\ +\x11\x23\xe2\xa4\x77\x1a\x01\x3b\x42\x5f\x99\x99\x59\x28\x2c\x04\ +\x7a\x7b\x84\x79\x65\x67\xe7\x20\x33\x33\x03\xc5\xc5\xc5\x28\x19\ +\x39\x12\x0e\xa7\x13\xce\x0c\x27\x08\x84\x6a\xf6\xc3\x8a\x8b\x64\ +\x82\x2a\x2e\x0a\xd5\x27\x29\x0b\x8b\xbf\x1a\x53\x3a\x5a\xfe\x3d\ +\x14\x97\x63\x4e\x77\x33\x03\xd5\x55\x55\x68\x6e\x6e\x12\x57\x46\ +\xc0\x9d\xcb\x95\x83\xa9\x53\xa6\xca\x05\x66\xa5\xcf\x65\xe2\xe7\ +\x79\xb0\x2c\x0b\xbb\x4e\x9c\xd2\x01\x13\x27\xa1\xd7\x2d\xa4\xfa\ +\x65\x18\x06\x59\x19\x4e\xac\x59\xfd\x33\x08\xc3\x86\x12\x2d\x00\ +\x8a\x14\xc1\x3c\x4f\x51\x53\x53\x83\x69\xd3\xa6\x87\x29\xbc\x14\ +\xa5\x61\x4a\x9e\x04\x2d\xad\xad\xa8\xaa\xac\x08\x29\x47\x52\xaa\ +\x74\xf1\xca\x9d\x90\x8c\x8b\xc2\x62\x61\x31\x7d\xda\x81\xc2\xba\ +\x89\x6d\x16\x14\x14\xa4\xad\x38\x69\x48\x43\x1a\xd2\x90\x86\x34\ +\xa4\x21\x0d\x49\x52\xe2\xcc\x2b\x45\x71\x17\xe6\x50\x01\x43\x14\ +\xc2\x78\x7f\x5c\xcd\xff\xd7\xa3\x8f\xe0\x61\xfe\x9f\x0a\xcd\x70\ +\xee\xdc\x13\xf0\xed\x92\x6f\x43\xd3\xe3\xf5\xeb\x09\x9d\x7a\xea\ +\x69\x8a\xbf\x33\xb3\xb2\x51\x59\xb1\x5b\x16\x52\x8d\xd2\x2c\x57\ +\x56\x54\x60\xce\x61\x47\x28\x8a\x84\xce\x9e\x33\x1b\xcb\x7e\xf8\ +\x41\xf1\xdc\x37\x5f\x7f\x8b\x73\xcf\x3f\x4f\xae\x14\xae\x1e\x87\ +\x24\x80\xdf\x71\xfb\x1d\xf8\xc7\x3f\xee\x8f\x4f\x29\xa2\x5a\x03\ +\x03\x0d\xfb\x90\x61\x19\xb8\xdd\x1e\x10\xc2\x22\x37\x2f\x1f\x7b\ +\xf7\xec\x85\xb7\x77\x0f\x46\x8d\x18\x85\xbd\x9b\x77\xc1\xee\xb4\ +\x63\x68\xd9\x18\xd8\x33\x9c\xb0\x58\x2c\xa0\x30\xf6\x84\x18\x79\ +\xb4\x2c\x2c\x6b\x52\x53\x97\xe2\x9b\xa8\x2e\x25\x85\xe3\xf3\xde\ +\x7b\xff\x8e\x37\xde\x7c\x5d\x61\x91\xfa\xef\xa2\x0f\x70\xea\x6f\ +\x4f\x8d\x3a\x2e\xa2\xaa\xb4\xec\x70\x3a\xb1\x62\xe5\x32\x45\x6c\ +\x55\x5b\x4b\x0b\x8a\x87\x0d\x07\x00\x70\x5c\x50\x7c\x4f\xf4\x08\ +\x89\xeb\x45\x18\x16\x33\x67\xce\xc4\xda\xb5\xab\x95\x64\xae\xa2\ +\x0b\x4a\x29\x3e\xf8\x60\x11\xae\xb9\xfa\x4a\xd5\x38\x18\xcd\x7a\ +\xdf\x7f\xff\xfd\x72\x7b\x52\x3b\x94\xa6\xa8\xa5\xd3\x28\x3d\x55\ +\xac\x1b\x9a\x9a\xb4\x84\x19\xb1\x97\x44\xa1\x47\x3d\x0e\x62\x92\ +\x11\x9a\x1d\x3f\x4d\x91\x85\x8b\x37\xf6\xc6\xf0\x2e\x2e\x35\x37\ +\xcf\x28\x21\x80\x44\x55\x2f\x89\x46\x8d\x19\x34\x4a\x55\x4f\xcc\ +\xbd\x46\x93\xbd\x1f\xd4\xd6\x1e\x03\xbc\xa7\x7a\x50\x00\x49\x55\ +\x7a\xee\x23\x9f\xe8\x2f\xcb\x7e\xbc\xf8\xea\xeb\xfb\xa9\xb2\x3e\ +\x03\xcd\xdf\xa9\x49\x7a\x26\x51\x08\x83\xc6\xb9\x4f\x92\xb5\xff\ +\x8c\x1e\x4c\x15\x79\xc1\xb4\x80\x4f\x93\x4c\xbf\xc4\xf4\x78\x07\ +\xd6\x53\x34\x80\x37\x82\x8c\x94\x20\x33\x60\xb6\x3e\x90\xa6\x0f\ +\x3d\x42\xa5\xe6\xc6\xd1\xa7\xdb\x73\x91\x36\x88\xaa\xe1\xba\x3d\ +\xf5\x18\x31\xbc\x04\x19\x19\x4e\x04\xdd\x3e\xf8\x5a\xdb\x11\xe0\ +\x38\xe4\x0e\x13\xbc\x41\x3e\x8b\xa0\xdc\x64\x25\x31\x1d\x34\xa5\ +\xe6\x6a\xf2\x50\x3d\xdc\xd1\x44\x92\x27\xe9\x3b\x7e\xc3\x81\xe7\ +\x4c\x3d\xc6\x32\x0c\x52\x0d\xd2\x31\x4d\x69\x48\x43\x1a\xd2\x90\ +\x86\x34\xa4\x61\x5f\x06\x0b\x21\xbc\x52\xa1\xa3\x7d\xac\xdc\xae\ +\xb1\x84\x91\x38\x35\xc7\xc4\x82\xd6\xa3\x43\xe2\x52\x8c\x24\x0f\ +\x0b\x13\x45\x70\x95\xda\x0e\x17\xdc\x8d\xbc\x2b\x3c\xcf\x19\x0a\ +\xd6\x52\x3b\xac\xc9\xfe\xf4\xb4\x27\xa3\xf8\x26\xd9\x18\xce\xb0\ +\xb0\xdb\xed\x00\x80\x91\x23\x4a\x90\x91\xe1\x40\xc7\xde\x46\xb4\ +\xed\xae\x44\xe9\xf4\xc9\xe8\xa8\xae\x86\x33\xd7\x05\x8b\xd3\x01\ +\x9e\xe7\xe1\xf5\x78\x13\xbe\x3e\x5a\xbb\x8c\x90\x31\x4f\x4e\x41\ +\x6d\x30\xff\xd0\x1a\x86\x62\xaf\x22\xad\x4d\x34\x8f\x4b\xb8\x67\ +\x86\x10\x22\x7b\x88\x8c\x14\x31\xca\x73\x62\x28\x12\x89\x4b\x79\ +\xd0\xb6\x47\xa3\xce\x61\x60\xec\x16\x34\x2c\xe6\x2a\x6c\xa5\xe2\ +\xbc\x03\x4e\x0c\x63\xc3\x62\x63\x33\x09\x9f\xa7\xba\x5e\x8f\xc1\ +\x7c\x0c\x1d\x2d\x03\xe4\x21\x22\x66\xf9\x6a\x7f\x59\x10\x8d\xea\ +\x1e\x19\x17\xbe\x51\xf1\x2f\x6a\x8e\x00\x4c\x1a\x50\x92\x85\x7f\ +\xd3\xa1\x12\x94\xf6\x07\x19\xc4\x0e\xd4\x24\x82\x52\x3c\x24\x27\ +\x6e\x7a\xa7\xfd\x85\x5f\x83\x71\xd3\x41\x86\x77\x93\x41\x8b\x83\ +\x86\xbf\x27\x9a\x4f\x26\x8b\xcf\x44\xe5\xef\x24\x25\xf9\x4c\xea\ +\xd0\x3b\x55\xe1\x53\x35\x32\x5b\xa8\x1e\x1f\x93\x3a\xd8\xea\xef\ +\xcd\x1d\xdf\x00\x4c\xc7\xbb\xeb\xb4\x6f\x78\xe5\xcc\x24\x32\x68\ +\x9c\x14\xa3\x27\x60\x87\xb7\xc4\xb2\x82\xc3\x30\xc3\xe9\x04\x00\ +\xb8\xdd\x5e\x64\x0f\xc9\x47\x56\x4e\x36\x2a\x96\x2e\x41\xc9\xa1\ +\x07\xc1\xe2\x14\x62\x70\xbc\x1e\x2f\x1c\x0e\x7b\xd2\xd7\x26\x3c\ +\x06\x89\xc4\xc0\xa0\x13\xea\xd1\x20\x89\xa5\x25\xb3\x57\xe0\x48\ +\xaa\x26\x55\x48\x3b\x8b\xd2\x90\x86\x34\xa4\x21\x0d\x69\x48\xc3\ +\x3e\x0a\x16\x50\xa9\xae\x0e\x2f\x29\x4a\x2a\xa9\x39\xc6\x2c\x4b\ +\x51\x35\xc3\xb0\xca\xd9\x14\xc6\x95\xb3\x4d\x0a\x98\x72\x4c\x4a\ +\x02\x2c\xa0\x87\xce\x9a\x8d\xac\x9c\x6c\x39\xe9\x41\x28\x53\x58\ +\x08\x29\x36\x8b\x05\x3f\x7e\xff\x1d\xac\x36\xbb\x88\x2f\x02\x9b\ +\xd5\x86\xe3\x8f\x3f\x5e\xd1\x56\x66\x56\x36\x8e\x3e\xea\x18\x80\ +\x50\x31\x6e\x84\x62\xf4\x88\x12\x7c\xb6\xf8\x33\x45\x8b\xb5\x75\ +\x75\x38\xf6\xd8\x63\xc1\xf3\x42\x6d\x1b\xc9\x33\x22\xa5\x46\x23\ +\x62\x2d\x1c\xf0\x1c\x16\x7f\xf6\x19\x10\x56\xff\x88\x88\x49\x19\ +\x28\xa5\xe0\x44\x8f\x49\x41\x41\x3e\x8e\x3d\xf6\xb8\x10\xaa\x09\ +\xc1\x90\x21\x43\xc0\x89\x75\x74\xc2\x15\x24\x2a\x14\xda\x81\xcd\ +\x6a\x43\x30\x28\x7c\x9f\x91\x21\x28\x46\x3d\x6d\xad\xc8\x18\x39\ +\x0c\xe3\x46\x96\x80\xb1\xd9\x40\x08\x81\xdf\xe7\x87\xc3\x61\x87\ +\x85\x65\xc1\xf3\x7c\xd2\xae\x54\x11\x10\x04\x83\x01\x00\x80\xd5\ +\x62\x55\x64\xe1\xd3\x2a\x18\x34\xaa\xf2\xb1\x62\xc5\x72\xb4\xb7\ +\xb7\xcb\xf4\x42\x08\xc1\x51\x47\x1d\x0d\xa7\xa8\x04\x4a\xef\x7c\ +\xfd\xf5\xd7\x72\xbf\x84\x10\x39\x99\x46\x2c\x4a\x91\xd4\x77\x73\ +\x73\x0b\xd6\xac\xf9\x39\xf4\x3d\x21\xd8\xba\x75\xab\xe9\xf9\xab\ +\xe7\xb0\x79\xf3\x66\xd4\xd6\xd6\xc8\x59\x03\x79\x8e\xc7\xec\xd9\ +\xb3\x31\x64\xc8\x90\x81\x51\x8a\x42\xae\x65\x03\x85\x89\x28\x14\ +\xf9\xe8\x57\xc4\x07\xd6\xb6\x15\x62\x77\xfa\x49\xda\xa9\x61\x76\ +\xc9\xd4\xb0\xc9\xa9\xd9\x35\x89\xce\x98\x93\x3b\x10\x62\x82\x86\ +\x74\xc6\x61\xfc\xba\x6a\xbf\xd3\xd8\xda\xed\x2f\xba\x21\x51\xe6\ +\x95\x6a\xa6\x7f\x0a\x73\xf4\x8e\x41\x4f\xef\xa9\xc9\x67\x34\x7c\ +\x31\xd5\xf1\xae\x12\x10\x8d\xe9\x9d\x0c\x72\xbc\xa7\xda\x3e\x8d\ +\x95\xcf\x20\xc5\xf7\x29\x0c\xf4\x8d\x04\xcf\xc4\xe0\x26\x01\x55\ +\x7f\x1f\x94\xea\x42\x5a\x06\x2e\xa6\x88\xe5\x07\x7a\x93\xa8\xdc\ +\x69\x84\xc1\x13\x4f\x3e\x81\x59\xb3\x0e\x89\xf8\x5e\x77\x57\x17\ +\xc6\x8c\x1b\x8f\x8e\xf6\x76\x48\xea\x9c\xcb\x95\x8b\xf6\xb6\x56\ +\xc5\x73\x23\x47\x8e\xc0\x57\x5f\x7f\xa1\xf8\xec\x87\xef\xbf\xc7\ +\x31\xc7\x1d\x2f\x66\x1a\xe3\x01\x10\x9c\xf6\xbb\xd3\xf0\xe5\x97\ +\x5f\x44\x1d\xef\xdf\xee\xb9\x1b\xa7\x9c\x72\x6a\xe4\x4c\x72\x84\ +\xc1\xeb\xaf\xbd\x86\x67\x9e\x7d\x26\xaa\xa2\x20\x7c\x26\x28\x52\ +\x36\x9b\x45\x43\x86\x59\xf9\x05\xa0\x3c\x0f\x2e\xe8\x43\x30\xe0\ +\xc5\xee\x8a\x4a\xec\xd9\xb3\x17\xd3\xa7\x4f\xc7\xd6\x2d\x5b\x35\ +\xa4\x3b\x74\xe8\x50\x4c\x9a\x34\x29\xa6\x35\xd8\xb2\x75\x0b\x32\ +\x9c\x19\x28\x2d\x2d\x8d\xbc\x15\x8c\x14\x5e\x13\x8a\x30\xa5\x14\ +\xd7\x5f\x7f\x23\xd6\xae\x5d\xab\xb8\xf6\xb8\x65\xf3\x66\x94\x95\ +\x95\xc9\xcf\xf9\x7d\x3e\x9c\x73\xee\x79\xe8\xea\xec\x88\x23\x96\ +\x55\xfb\xc6\xb2\x65\xcb\x70\xe6\x99\x67\x2a\xbf\xa3\xf1\xdf\x1d\ +\x78\xe8\xa1\x87\xf1\xe6\x9b\x6f\x48\x0b\x0d\x86\x61\xf0\xbf\x45\ +\xff\xc5\x29\xa7\x9c\xd2\x8f\x9b\x26\xed\x2a\x4a\x43\x1a\xd2\x90\ +\x86\x34\xa4\x21\x0d\xfb\x20\xf0\x41\x58\x42\x16\x5d\xa3\x8a\xd6\ +\x7d\xad\x8f\xa3\x6f\xd9\xa3\x2c\xdf\xb7\x66\xfb\xea\xa5\xd0\xb1\ +\x34\x5a\x58\xc6\x44\xbb\x04\xe0\xa9\x22\x16\x84\x98\x1c\x1f\xd1\ +\x08\xc6\x34\x94\x8a\x3b\x5a\xaf\xac\x55\x3f\xb1\x40\xa8\x43\x50\ +\xca\x83\x61\x88\xf9\x62\xb5\xe2\x50\x1c\x4e\x07\x02\x7e\xbf\x22\ +\xdd\xf4\xf2\xe5\xcb\x71\xcb\x2d\xb7\xc0\xe7\xf3\x81\xf2\x14\x15\ +\x15\x15\x98\x38\x71\x02\x8e\x3d\xe6\x68\x3c\xf2\xaf\x47\x41\x29\ +\x60\xb3\xdb\x10\x08\x04\x00\x0a\x4c\x99\x32\x05\xab\xd7\xfc\x8c\ +\x8a\x8a\x4a\xbc\xfc\xd2\x2b\xe0\xb8\xa0\x50\x73\x47\x8c\xc1\x92\ +\xbc\x5a\x92\xa7\xa3\xa7\xa7\x17\xef\x2e\x5c\x88\xe3\x8e\x3b\x0e\ +\xef\xbe\xf7\xae\x22\xd9\x17\x61\x22\xc5\xd4\x84\x59\xa8\x74\x12\ +\x5e\x10\xbd\x79\x4b\xeb\x45\x21\x7b\xd4\x34\x75\xa5\x28\x15\x9f\ +\x8b\x5d\x59\xd7\xad\x3b\xc4\xf3\x62\x5b\xb1\xe7\xdd\x57\x78\x9e\ +\x14\x0a\x55\x28\x8e\x42\x18\x66\x7f\x28\x29\x52\xb6\x32\x46\xf8\ +\x5d\xe3\xf8\x65\xf4\x89\x4a\x9c\x03\x23\xeb\x53\x24\x0e\x2c\xf6\ +\x3f\x30\xaa\xac\x98\x5a\xcf\x05\x51\x29\xc2\xa9\xa5\x28\x6a\x29\ +\x87\x18\xce\x34\x82\x19\x22\x11\x03\x88\x09\x3d\x8c\x0a\xaf\x14\ +\x0a\x32\xd2\xda\x13\x52\x4c\x3f\x27\xd1\xb2\xdd\xa5\xe8\xc0\xa3\ +\xd1\x3b\x4d\xf1\xf1\x13\x44\x89\x71\x4c\xf3\x99\xa4\x8e\xbb\x6f\ +\xa7\x64\x2a\xe3\x1d\x29\xba\x4f\xcd\xd2\x43\x6a\xd5\xe7\x32\xe4\ +\xef\x6a\xf9\x80\x26\x9a\xde\xf5\xaf\x78\x84\xb0\x23\x7e\x20\xcb\ +\x9b\x03\x58\xa7\x88\x1f\xe0\x4d\xa2\x17\xc7\x63\x4a\x39\xd1\xd3\ +\x2d\x4c\x09\xd2\x06\xc5\x3c\xcd\xc6\x99\xc4\x80\x2f\x42\x48\xd4\ +\x76\xe5\xb9\x86\x4f\x28\xec\xf7\x9a\xaa\x1a\xac\x5a\xb9\x0a\x19\ +\x19\x19\x28\x2c\x2a\xc4\xb4\x69\xd3\xf0\xc2\xf3\xcf\xa1\xab\xab\ +\x1b\x2f\xbf\xf2\x2a\xba\xba\xbb\x70\xc3\xf5\x37\x80\xb5\xb0\x78\ +\x6a\xfe\x53\xf2\x18\x77\xed\xda\x8d\x67\x9e\x7e\x1a\x9c\x98\x69\ +\x8d\xea\x1e\xab\x04\x0c\x43\x50\x52\x32\x1c\xf7\xdc\x73\xb7\x72\ +\x66\xba\x81\x42\x26\x17\xc2\xe0\x73\x7d\x85\x90\xf6\x07\x91\x25\ +\x2e\xe5\x71\x2a\x1c\x32\x94\x0f\x13\xa6\xd3\x90\x86\x34\xa4\x21\ +\x0d\x69\x48\x43\x1a\xf6\x11\x20\x04\x16\x88\xb1\x44\x24\x9a\xb0\ +\xa9\x11\x90\xa0\x2f\xf4\x9a\xbc\x24\x4b\xa9\xb2\xa8\x66\xcc\xf2\ +\x19\xa5\x31\x2b\x34\xd1\x64\x4a\x39\x9e\x07\x30\x2c\xb7\xa2\xef\ +\x85\x09\x5d\x45\x63\x18\x56\x8d\xa2\x30\x9d\x94\x6a\xbc\x3d\x92\ +\xb2\x43\x0c\xb3\xc6\x51\xf1\x7f\x1a\x71\x2e\x52\xbd\x1b\xa3\x2c\ +\x68\x34\x42\xec\x16\xcb\x5a\xe0\xe3\xbd\x62\x41\xa3\x50\x8c\x16\ +\x61\x08\xe6\xcf\x7f\x12\x97\x5d\x76\x99\xbc\xd2\x94\x02\x13\xcb\ +\x27\x60\xfb\xce\x1d\xb8\xe7\xde\x7b\xc0\x32\x0c\xde\x79\xeb\x1d\ +\x70\x1c\x07\x42\x80\xe9\xd3\xa6\x62\xfe\xfc\x27\x90\x9d\x9d\x8d\ +\x6d\xdb\xb7\x6b\xfa\x95\xb2\xe8\x31\x44\x28\x66\xdb\xdc\xdc\xac\ +\xb5\xd5\x90\x50\xf2\x87\x30\x14\xe8\x2e\xa1\x10\xfb\x25\x3c\x40\ +\x18\x46\x4b\xc7\xe1\x45\x9a\xd4\x98\x27\x24\x2e\xa5\xd3\xbc\xda\ +\x4d\x44\xf2\xa7\x31\x29\x47\x4c\x58\x5c\x19\x11\xbd\x6d\x54\xa7\ +\xb0\x09\x41\xf2\x53\x65\x2b\x3c\x55\x54\xd7\xd4\xa2\xfc\x97\xd1\ +\x1b\x25\xd4\x0e\xa4\x08\x7c\x26\xc1\x96\xa2\x18\x9b\xd3\x3e\xae\ +\xdf\x40\xfc\x78\xef\xa3\xcb\x83\xd2\x88\x46\x00\xa3\xec\x43\xc6\ +\xfc\x3d\xc6\x52\xef\xc6\x0d\x2b\xc7\x47\x60\xee\x79\x35\x96\x55\ +\xbf\xc8\x59\x82\xfa\x8a\x6f\x6a\x60\x3c\x31\xc2\x27\x8d\x52\xd0\ +\xc6\xa8\x9e\x89\x9c\xb5\x90\x98\xa4\x77\x83\xf5\xd5\xba\xb2\x95\ +\xfd\x11\x1a\x23\x39\x11\xdd\xf6\xe5\x98\xbf\x68\x78\x27\x71\xd2\ +\x67\xbc\x16\x6b\x42\x22\xe3\x43\xdd\x7a\x5f\xf1\x6e\xb8\x0e\x51\ +\xf8\x48\xd4\x7a\x5c\x06\xf2\x8f\x8a\x2e\x89\x0a\xef\x4d\xa7\x6e\ +\xae\x00\x00\x20\x00\x49\x44\x41\x54\x21\xf4\x93\xbe\xd1\xbb\xd1\ +\xf8\x69\x8c\xeb\x60\xf4\x1a\x35\xcb\x67\xd2\x78\x1f\x18\xbc\x93\ +\xf8\xf0\x6d\xd8\x5e\x7c\x05\xa7\x8c\xce\xd5\x10\x9f\xe9\x23\xdd\ +\x18\xe9\x25\xc4\xdc\xf3\x72\x06\x35\x4a\x06\xb8\x4e\x51\x0a\x01\ +\xa5\x14\x9f\x7c\xfa\x29\x36\x6c\xda\x24\x2b\x21\x2c\xcb\xe2\xf4\ +\xd3\x4f\x47\x76\x56\x56\xcc\x1a\x56\x47\x47\x07\xfe\xf7\xbf\xff\ +\xc9\x1b\x8c\x10\x82\x1d\xdb\xb7\x9b\x52\xce\xb6\xef\xd8\x81\x95\ +\x2b\x56\x08\x5f\x8b\x4a\xc4\x86\x0d\x1b\x34\xcf\x1d\x7c\xf0\x21\ +\x28\x2f\x2f\x0b\x2d\x2e\x21\x28\x2d\x1d\x13\xf3\xb9\xc3\x30\x44\ +\x51\x14\x35\x5c\xac\xcf\xc9\xc9\x06\x4f\x29\x9e\x78\xfc\x49\xac\ +\xfc\x69\x15\xde\x79\xfb\x2d\x21\x85\x38\x00\xab\xd5\x02\x9e\xe3\ +\xc1\x8a\x8a\x20\x05\xb0\x62\xe5\x4f\xb8\xff\x81\x07\x71\xfc\x71\ +\xc7\xe1\x85\x17\x9e\x07\x21\xe2\x95\x44\x02\xdd\x6c\xed\xc7\x1d\ +\x7b\x1c\x8e\x39\xe6\x58\xa5\xc3\xca\xe4\x09\x7c\xe8\xec\xd9\xf0\ +\x07\x02\xe2\x1c\x04\x3c\xed\xdc\xbe\x0d\xaf\xb6\xb4\x88\x44\x2e\ +\x28\x26\x2d\xad\x2d\x71\x29\xc9\x00\x70\xee\x79\xe7\x81\x61\x58\ +\xa1\x25\x02\xf4\x74\x77\xe3\xc3\x8f\x3e\x8c\xfa\xf2\xc8\x91\x23\ +\x71\xce\x39\xe7\xc9\x7b\x8d\x61\x19\xec\xda\xb9\x13\xab\x7e\x5a\ +\x15\x75\x28\x3f\xaf\x5e\x8d\xd7\xdf\x78\x5d\xdc\xab\xc2\xbc\xaa\ +\x2a\x2b\x07\x76\x7f\xa4\x7c\x95\xc6\x34\xa4\x21\x0d\x69\x48\x43\ +\x1a\xd2\x90\x86\x38\x81\x00\x16\x68\xee\xf8\x45\xd6\x00\xa9\xd9\ +\x4a\xe5\x86\x05\x3e\x54\x96\x9d\xd4\xd1\x8a\x70\xef\xbd\xf7\x86\ +\xea\xe1\x50\xc0\x6a\xb7\xe1\xb0\x39\x87\x21\x6b\x7c\x56\x44\x31\ +\x5d\x6f\x2e\x7b\xf7\xec\xc1\x15\x57\x5c\x09\x5e\xf2\x0c\x51\x6a\ +\x4a\x20\xa7\x94\xe2\xdb\xaf\xbf\xc5\x9f\xae\x9b\xa7\xc0\xa2\xa6\ +\xa6\x12\x21\xf8\xfd\xc5\xbf\xc7\xf5\xd7\xfd\x49\xf5\x31\x89\x41\ +\xf6\x27\xb2\x42\x41\x79\x5e\x35\x0e\x5e\xe1\x25\xf8\x7e\xe9\x77\ +\xf8\xfa\x9b\xaf\xe1\xf7\x79\x41\xc5\x40\x7f\x02\x02\x96\x65\xe5\ +\xfa\x35\x04\x04\x3c\xc7\x89\xfa\x0f\x8f\xdc\xdc\x7c\x3c\xf0\xe0\ +\x03\xe8\xec\xea\x42\x86\xc3\x26\xbc\x23\xa2\x97\x88\x78\x39\x70\ +\xc6\x4c\x65\xd1\x24\x71\x6e\x92\xe2\x25\x78\xde\x68\x58\x3a\xf3\ +\x50\xf6\x95\x3f\xfe\xf1\x6a\xfc\xf1\x8f\x57\x2b\x66\x74\xf2\xc9\ +\x27\xe3\x8b\x2f\xbf\x0c\xcd\x23\xa6\x5a\x54\xca\x35\x72\xb9\x72\ +\xf1\xf6\x5b\x6f\x29\x3e\xdb\xb1\x6d\x1b\x3e\xf9\xf4\x13\x39\x9b\ +\x9f\x56\xd1\x14\xc6\x37\xf3\x90\x83\xf1\xf6\xdb\x6f\x28\xbe\x7b\ +\xe1\xf9\x17\x4c\x28\x45\x14\x6f\xbd\xfd\x16\xde\x7a\xfb\x6d\x45\ +\x7b\xba\xf3\xe8\xcf\x1b\x74\xd4\xe8\x6f\xb3\xd9\xcd\xd4\xd9\xe8\ +\x48\x8c\xef\xc7\xcf\xe4\x4c\xcd\x8b\x44\x9b\x2e\x8d\xcc\xe6\xa2\ +\xf4\x4f\x0d\xcb\x3a\xd1\x88\xf8\x32\xc3\xb7\x14\xfd\x68\xea\xf7\ +\x44\xc1\x73\x5f\x83\x75\x8c\xe8\x80\x9a\x7d\x5e\xdf\x73\x11\x32\ +\xd9\x52\xfd\xe9\xf4\x95\x4c\x62\x4e\xde\x62\x30\x3f\xa2\xc6\x37\ +\x55\x18\x9c\x68\x74\x02\x88\x6f\x1c\x31\x6f\x1b\xf5\xf8\x79\x03\ +\xbc\xab\xe9\xc9\x68\x5c\x24\x4e\xc6\x11\xe7\xfa\x18\xd5\xa3\xa2\ +\xca\x33\x58\x83\x77\xd0\xbe\x8d\x9f\xc6\x39\x9d\x68\xfc\x91\xa8\ +\xd7\x93\xea\xf2\x8b\x3e\xd3\x3b\xed\xeb\xfb\x51\x1a\x50\x67\x01\ +\x4e\x59\xbc\xab\x3d\x8e\x26\xe9\x7d\xc0\xf1\x4e\x23\xb6\x4f\x34\ +\xb1\x46\x71\xf2\xf5\x78\xf9\x10\x54\x68\xd5\x1c\x4b\x06\xf8\x95\ +\x3d\x73\x7d\xf4\x2c\x53\xb3\x68\x56\x3f\xa8\x1a\xb0\x5f\xfc\xde\ +\x86\x01\xf6\x14\x0d\xa0\x5e\x64\xc6\x3d\x1a\xf0\xf9\xfb\x24\x78\ +\xc6\x1b\x6b\x64\x5a\x90\x4f\x90\x62\x69\x13\xd3\x8b\x87\xe5\x20\ +\x97\x17\x68\xef\xde\x3d\x68\x6a\x6e\x46\x67\x47\x87\xa0\x00\x01\ +\xe8\xed\xe9\x96\x71\xd8\xd4\xd4\x04\x9f\xcf\x0b\xbb\xd3\x21\x5c\ +\xf7\x62\x42\x42\x7c\x51\x51\x21\x3a\xbb\xba\xf0\x7f\x7f\xff\x7b\ +\xd8\x6d\x08\x1a\xba\x91\x41\x08\x8e\x3f\x7e\x2e\xde\x7f\xff\x3d\ +\x68\x43\x1d\xe3\x13\xd4\xe2\x47\x49\x2c\x2f\x92\xb8\x86\x97\x72\ +\x86\x80\x34\xa4\x21\x0d\x69\x48\x43\x1a\xd2\x90\x86\x34\x00\x00\ +\x2c\x54\xca\x1e\x45\xf8\x04\x89\x8c\x51\x9e\x94\x52\x71\xb3\x03\ +\x23\x20\xca\x16\x25\x83\x02\x99\xe1\x0a\x89\xd5\x66\xd7\xd5\x5b\ +\xf5\xae\x6d\x86\xc7\x12\x29\x0d\x11\x34\xa2\xb4\x6e\x61\xf5\x55\ +\x00\xde\x84\x62\x64\x94\x69\x4e\x1f\xed\x42\xff\x8c\xf2\x9e\x9a\ +\x0c\x1e\x8f\x47\xa1\x13\x59\xad\x56\x50\x4a\x71\xcb\xad\xb7\xe1\ +\xee\x7b\xee\x83\xbb\xd7\x8d\xb9\x73\x8f\xc7\x53\xf3\xe7\x63\xe3\ +\xe6\xcd\x38\xf7\x9c\x73\xb0\x61\xc3\x46\x1c\x37\x77\x2e\xba\x3b\ +\x3b\x70\xfa\xe9\xa7\x03\x20\x70\xe5\xe4\xa0\xa1\xb1\x11\x4b\x97\ +\x2e\x05\x00\x74\xb4\xb5\xc2\xe7\xf5\xe2\xaa\x6b\xff\x88\x3c\x57\ +\xae\x90\xe1\x4f\x88\x4e\xc2\xab\xaf\xbe\x8e\x96\xe6\x16\x28\xb3\ +\x9a\x09\x75\x9d\xc2\xaf\xe4\x01\x34\x34\x7e\x46\x3f\xb6\x43\x5e\ +\x57\x90\x18\xbd\x43\xe1\xc8\x50\x2b\x3b\x44\x27\x36\xcb\x9c\x82\ +\x6d\x14\xd3\x15\x55\xcf\x52\x19\xd4\x22\x66\x1c\x4c\x49\x50\x07\ +\x17\xd1\x84\xb6\x6a\xa4\x87\x9a\x74\xd8\x68\x9e\x37\x5d\x8b\x59\ +\xdf\x81\x11\x9d\xfb\x69\x2c\x59\x49\x2a\xe9\x1e\xcd\xc4\x69\xba\ +\xee\xdc\x00\x29\xee\x9a\xfd\x21\xd6\xcd\xa3\x51\x62\x68\x52\x85\ +\xdc\x8d\xd0\x6d\xde\x94\x99\x22\x78\x57\x7f\x4c\x53\x8b\x4e\x0c\ +\xf1\x6c\x76\xdc\xa9\x35\x7e\x6d\xfd\x3d\xa4\x36\xbd\x47\x25\xa3\ +\x54\xc7\x3b\x8d\x8c\xf7\x41\x73\x4d\x9c\x1a\xb0\xf5\x81\xd9\xaf\ +\xd4\x20\x6b\x75\xf4\xba\x73\xea\xf3\x98\x9a\x23\x1f\xa2\x3c\x8f\ +\x63\x75\xf1\x85\x8e\x15\xa2\xe1\xd7\x96\x01\x67\x0a\x29\x0c\x01\ +\xbf\x2f\xb4\xe2\x0a\x21\x97\x18\x4b\x5b\x11\x45\xb1\x08\xb8\x20\ +\xb1\xa1\x26\x21\xf1\xf5\x61\x1d\xb9\x3d\x6e\x45\x9b\xe3\xc7\x8f\ +\xc7\xb9\x67\x9f\x8d\x40\x30\x00\x42\x18\x94\x0c\x2b\xc1\x1d\x77\ +\xdd\x89\x65\xdf\x7f\x8f\x5b\x6f\xbe\x19\xb7\xdf\x71\x07\x5a\x5a\ +\x5a\x70\xe2\xf1\xc7\x61\xd2\xa4\x49\xb8\xe9\xe6\x9b\x41\x00\x1c\ +\x71\xe4\x11\x98\x35\x6b\x16\x96\x2c\xf9\x16\x65\xe3\xc7\xc9\x9d\ +\xfc\xbc\x6a\x15\xb2\x32\x33\xe5\xcd\x13\xf0\xfb\xd1\xd2\xd2\x8a\ +\x91\x23\x47\x19\x4b\xa0\xf1\x82\x90\xf9\x22\xca\x23\x24\x32\x52\ +\x23\x21\x38\x55\x3c\x3e\x69\xc7\x53\x1a\xd2\x90\x86\x34\xa4\x21\ +\x0d\x69\x48\x43\x42\xc0\x12\x4d\xd2\x1a\xec\x72\x17\x05\xc5\xc7\ +\x1f\x7f\x8a\x2d\x9b\x37\x01\x10\xe2\x67\x18\x96\x45\x65\x65\x85\ +\xa9\xf7\x5f\x7a\xf9\x65\xe4\xe5\xe6\x89\x99\xe3\x00\x9e\xe3\x70\ +\xf1\x25\x17\x83\xe7\xc5\x6b\x60\x84\x20\x33\x23\x43\xf3\x5e\xc1\ +\x90\x21\x98\x37\x6f\x9e\xac\x1b\x11\x29\x9b\x18\x42\x29\xb3\x09\ +\x21\xc8\x74\xd8\xf0\xc8\x23\x0f\xcb\x77\x71\x59\x86\xc5\xca\x95\ +\x2b\x35\xed\xcd\x3a\x74\x36\xe6\x1c\x76\x98\x50\xd7\x48\x8c\xda\ +\x69\x6b\x6d\xc1\xc3\x0f\x3f\xac\xad\x4a\xae\x97\x79\x8d\x0a\x9a\ +\xd7\xa5\x97\x5e\x82\xa1\x85\x85\x42\xad\x1b\xc5\x3b\x8c\x42\x8d\ +\xcb\xcd\xcf\xc3\xa4\x29\x53\x21\xc5\xf3\x04\x82\x41\x3c\xfb\xdc\ +\xf3\x20\x94\xc2\x62\xb3\xe1\xb1\xc7\x1f\x03\x00\x4c\x98\x30\x11\ +\x3c\xe5\xf1\xce\xc2\x85\xb8\xec\xd2\x4b\xe1\x74\x38\xf0\xd1\x87\ +\x8b\x70\xe6\x19\x67\xa2\xba\xa6\x46\x68\x97\x52\x4c\x99\x32\x15\ +\x39\x39\x39\x60\x19\x02\x80\x07\xcf\x71\xa8\xa9\xad\x81\xc5\x62\ +\xd1\xd0\x1b\xa5\x54\x4e\xe9\x2d\x7b\xe0\x44\x45\x64\xd9\xb2\xe5\ +\x58\xb9\x72\x25\x88\xf8\xb9\x5a\xb9\x39\xe0\x80\x03\x50\x56\x5e\ +\x16\xc2\xb9\x8c\x77\x21\x51\x82\x94\x90\x21\x2f\x3f\x5f\xf1\x1e\ +\x6b\xb1\xe0\xaa\xab\xae\x84\xd7\xeb\x13\xf5\x21\x82\xcc\xcc\x0c\ +\x53\x7a\xc8\x9e\x3d\x7b\xf0\xf0\x23\x8f\xe8\xba\x13\xc3\x0d\x19\ +\xdd\x9d\x5d\xb8\xfe\x86\x1b\x41\x08\x91\x3d\x76\xab\x7f\xfe\x19\ +\x3f\xfc\xf8\x83\xe2\xdd\x23\x7f\x75\x0c\x0e\x3e\x78\x86\xfc\x3e\ +\xc3\x32\x58\xfc\xe9\x62\x6c\xd9\xba\x39\x76\x85\x3b\x61\x10\xa5\ +\x3f\x62\x70\xa7\x99\x98\xb4\x74\x25\x59\x1f\x8c\x2d\xf2\x29\x7a\ +\x43\xa6\xfb\x8f\x12\x0b\xd1\x6f\x8a\x73\xa8\x20\xc4\xe0\xe0\xec\ +\x72\xe5\x76\x91\x4e\xa4\x60\xc4\xc1\x72\x05\x75\xb0\xe3\xdd\x28\ +\x26\x2a\x8d\xf7\xe4\xf0\x55\x4d\xf6\xce\xc1\x8e\xf7\x54\x1f\xf0\ +\x3e\x8a\xf7\x81\x1a\x7f\xb4\x9c\x02\x31\x7a\xe2\x68\x9c\x62\x88\ +\x11\x3f\x8b\xc5\xd0\xbe\xef\x67\x9f\xa3\xc0\x9b\x6f\xbc\x89\xf7\ +\xdf\x7b\x17\x8a\xc4\xc6\x26\x89\xe6\xc1\x07\x1f\x10\xae\x64\x89\ +\x7f\x67\x66\x66\xa2\xaa\xaa\x12\x05\xf9\x05\x11\xdf\x2b\x2c\x2a\ +\xc4\x93\x4f\x3e\x1e\x41\x56\x12\x5a\xfc\xef\xfb\xef\xe3\x9c\xf3\ +\xcf\x17\x95\x14\x41\xe1\xd1\xbb\x6a\x35\x77\xee\xf1\xf8\xfb\xdf\ +\xff\xae\xa0\x89\xeb\xfe\x74\x1d\x9e\x79\xf6\xff\x64\xe5\xcf\x58\ +\xca\x23\x72\x3c\xd0\x49\x27\x9d\x28\x28\x45\x46\x74\x2c\x7e\xb8\ +\x72\xf9\x4a\xdc\x77\xef\xbd\x20\xac\x52\x59\xe2\x82\x82\xb2\x42\ +\x18\x22\x26\x57\x10\x3a\x2c\x2f\x9b\x80\x4b\x2e\xb9\x18\x3c\x47\ +\x71\xed\xbc\xeb\xf0\xcd\xb7\x4b\x30\x7e\xfc\x38\xf9\xbd\xea\xaa\ +\x0a\xb8\x5c\x2e\x30\x62\x7b\x01\xbf\x1f\xbd\x3d\x3d\x18\x5e\x52\ +\x12\x55\x8e\x0c\x87\x2f\x3e\xff\x02\x8f\x3c\xf2\x48\xd8\x5a\x8a\ +\x83\xa6\x14\x84\x61\xb0\x68\xd1\x22\x9c\xfa\xdb\xdf\x46\xc4\x3b\ +\x09\x4b\x61\x1e\x0e\xff\xf8\xc7\xfd\x1a\x25\xcd\x0c\xd4\xd4\xd4\ +\xe0\x8e\xdb\x6f\x57\xae\x83\x3c\xb4\x50\x4a\x81\x4b\x2e\xbd\x0c\ +\x2f\xbf\xf4\x6f\xc5\xbb\x0f\x3c\xf0\xa0\xa0\x14\x85\x29\x53\xa7\ +\x9e\x7a\x0a\x6e\xbe\xe9\xcf\x8a\xe7\xea\xf7\x36\xa8\x94\xa2\xfe\ +\x3e\x79\xd2\x6e\xa9\x34\xa4\x21\x0d\x69\x48\x43\x1a\xd2\xb0\xef\ +\x82\x25\x61\xa2\x4f\x1c\xe5\x45\x28\x90\xfc\x7a\xcd\x44\xc8\xce\ +\xcc\x47\xcb\xe6\x11\x61\x90\xe1\x82\x2e\xe5\x45\x21\x5c\xe5\x09\ +\xd0\x74\x6b\xf2\x7e\x1b\xa5\xa2\x82\x24\xd7\x17\xd1\x1f\x1f\xa3\ +\x6e\x93\x52\xf0\x3c\x8d\x1e\xab\x22\xd6\x96\xe1\x82\xc1\x88\x5a\ +\xb7\xcf\xe7\x53\x60\x87\x8a\x9e\x9a\x9b\x6f\xfc\x33\xce\x3a\xe7\ +\x1c\x10\x00\xd5\x95\x95\x38\xe7\xbc\xf3\x70\xec\x31\xc7\xe0\xfe\ +\x07\xfe\x01\x9b\xcd\x86\xde\x9e\x1e\x9c\x79\xd6\x59\x90\xd2\x5f\ +\xff\xf8\xc3\x0f\x58\xb8\x70\x21\x86\x0d\x1b\x06\x8b\xc5\x22\xd4\ +\x0e\x62\x18\xb4\xb6\xb6\x23\xe0\x0f\x82\x02\xe0\x29\x0f\x0b\xc3\ +\xe2\x94\xdf\x9c\x82\xfb\xfe\x76\x1f\xd4\x17\x13\x09\x81\x2a\xa6\ +\x88\x84\xc5\x0e\x01\x3c\xa8\x4a\x73\x12\x71\xc7\xf3\xf2\x55\xc7\ +\x58\xe9\xc9\x6a\xb5\xc6\x67\x10\x51\x29\xb9\x7a\x0b\x4c\x43\xfa\ +\x4e\x58\xfd\x2b\x12\x46\x4f\xc6\xf4\x13\xba\x7a\xce\xa7\xb6\x9a\ +\x12\xab\x45\xa6\xaf\x1b\x3f\x51\xef\x47\x6b\x2f\xde\x7e\x62\xbe\ +\xda\x4d\x92\xb3\x1e\x7d\xad\x8b\x34\xf0\x36\x2d\xd5\x7c\x52\x7d\ +\xc0\x46\xd9\xb7\xc2\x99\x40\x2a\x23\xda\x88\x9f\x91\xc1\x85\x77\ +\x3a\x38\xf1\x1e\x8a\x79\x49\xf1\x71\x47\xc5\x3b\x49\x6d\xb2\x51\ +\x7b\x2e\x06\x0b\xbd\x44\xe5\x33\x24\xb9\xf8\x32\x1b\x4c\xab\xca\ +\xae\x48\xe5\xac\xc1\x91\xf9\x23\x4d\x7c\xb9\xc8\xbe\x2b\x45\xfb\ +\x1c\x24\x5a\x72\x4c\xc6\x66\xa1\xe6\xd7\x97\x26\x94\x46\x42\x7f\ +\x59\x75\x3c\x24\x14\x14\xb5\x7b\xea\xb0\x6a\xd5\x4f\x60\x18\x82\ +\xa6\xff\x67\xef\xba\xe3\xa3\xa8\xb6\xff\xf7\xce\x6c\x76\xb3\xe9\ +\xa1\x24\x21\x04\x10\x08\x04\x02\x22\x28\x35\x80\xf4\x26\x02\x4f\ +\xb0\x82\x0a\xfa\xd4\x9f\x5d\xb0\x62\x03\x05\xf4\x3d\x04\x51\x50\ +\x29\x8a\x3e\x05\x0b\x08\xa2\xcf\xf6\x0c\x4a\x47\xa5\x17\x69\x2a\ +\x2d\x21\x09\x21\x84\xf4\xbe\xd9\x9d\xfb\xfb\x63\xca\xce\xec\xce\ +\xee\xce\x6e\x36\xd9\x0d\xcc\xd7\x4f\x3e\xb2\xb3\xb3\x33\xf7\x9e\ +\x7b\xee\xbd\xe7\xdc\xd3\x2e\x5c\x00\x40\x51\x58\x54\x88\xbd\x7b\ +\xf7\x82\x10\x06\x16\x8b\x05\x96\x9a\x1a\x69\xb2\xe4\xe7\xe7\x23\ +\x3e\x3e\x1e\xc3\x87\x0f\xc3\x9e\xdd\xbb\x25\x4b\xd2\xf8\xf1\xe3\ +\x90\xd8\x22\x11\xd7\x5c\xd3\x0d\xd7\xf5\xbc\x0e\x0c\x61\xb0\x66\ +\xcd\x1a\x7c\xfd\xcd\x37\x98\x31\x7d\xba\x07\xfa\x52\xaf\x98\x3c\ +\x58\x97\x33\xa2\x51\x99\x62\xd4\x92\x80\xe8\x86\x1a\x1d\x3a\x74\ +\xe8\xd0\xa1\x43\x87\x8e\x7a\xd3\x17\x0c\x2e\x35\x50\x6f\x83\xdd\ +\x7d\x90\x44\x49\x3d\x0a\xb0\x8a\xd6\x0b\x05\x44\xa9\x73\xce\x69\ +\xcf\x4f\x50\x2d\x78\x2e\xb7\xec\x40\x16\xbf\xe2\xf0\x6b\x79\x4c\ +\x8f\xd8\x63\x6f\x4e\xe0\x04\xd7\x37\x42\x88\x54\x3f\x89\x38\x3e\ +\x5f\x23\x18\xd6\x20\x90\x82\xd1\x2c\x9c\x83\x02\x6b\xbe\x58\x83\ +\xb5\x6b\xd7\x4a\x6e\x7d\x1c\x47\x71\xe0\xc0\x41\x1c\x3c\xf4\xb8\ +\x64\xcd\xe0\x38\x0e\x2d\x24\x37\x38\x5e\x75\x33\xb0\x7c\x7d\x21\ +\x1b\xa5\xb0\x5a\x6b\x31\x7f\xfe\x1b\xe0\x38\x0e\xe1\x61\x66\xdc\ +\x7e\xfb\x6d\x08\x0b\x8f\xc0\xea\x55\xab\x90\x96\xd6\x1f\xd3\xa7\ +\x4f\xd7\xac\x6b\x12\xa1\x1e\x12\x55\xcd\x93\xc0\x48\x31\x43\xae\ +\xfb\xc5\xf3\x00\xf5\x90\xff\xdf\xd1\xa2\xe3\x1f\x7d\x9a\xa8\xf3\ +\x89\xac\xf3\x84\x10\x30\x62\xbb\x05\x2d\x98\xb7\xae\xc9\x78\x57\ +\xc8\x8a\xe7\xd8\xd7\x46\x05\xd2\xc0\xbf\x77\xb4\xf8\x68\xf6\x7d\ +\xaf\xab\x93\x3c\xd1\x76\x10\xe2\x73\x61\x12\x17\xf7\x3b\x36\xdb\ +\x31\xdb\x95\xa7\x34\x79\x0d\xce\x00\x9e\x4c\x6b\xc1\xda\x6e\x8d\ +\x74\x17\xff\xc1\x91\x00\xb7\x5f\x2b\x5f\xbb\x8a\x09\x08\x96\x76\ +\x7b\xa0\xbb\xe3\x6d\x5c\x90\xb6\x1b\x2e\xd6\x01\x71\x4f\xe0\x1a\ +\x29\xdd\x5d\xf1\xbf\x4e\xf7\xfa\xa1\xbb\xf8\x7f\xce\xd7\xec\x73\ +\x44\xdb\xd7\x9c\x07\x0b\xa0\xab\xac\x89\xc4\xbb\x7a\xa8\x81\x94\ +\x4b\x02\x6a\x29\x6a\x10\x72\x10\x82\x9b\x6f\x9e\x84\x4e\x9d\x3a\ +\x09\xca\x01\xcb\xc7\x94\xc8\x94\x0e\x69\x52\x10\x99\x89\x8f\xf0\ +\x49\x15\xde\x5c\xb8\x10\xc5\x25\xc5\xd2\xe3\x2c\x35\x35\x98\x3b\ +\xf7\x35\x84\x18\x0c\x82\xc0\x4d\x61\x36\x87\x61\xde\xbc\xb9\x8a\ +\xd7\x5e\xcc\xbb\x88\x05\x0b\x17\x08\xa9\xb5\x79\xe9\xf6\xaa\x36\ +\x57\xe1\x31\xc7\x62\xab\x2a\x4d\xee\xd9\xab\x17\x26\x8c\x9f\xa0\ +\xb8\x76\xfd\xc0\x81\x3e\x93\x60\xea\xb4\x7b\x91\xdc\xbe\x3d\x18\ +\x42\x10\x1f\x1f\xef\xc6\x53\x88\x2a\x84\x76\x42\x08\x6e\xb9\xe5\ +\x16\x0c\x1a\x34\x08\x00\x45\x5e\xee\x05\xbc\x3a\x77\x2e\xba\x77\ +\xef\x8e\xfb\xef\xbf\x0f\x00\x60\xb5\x5a\x31\x6b\xd6\x6c\xe9\x77\ +\x46\x63\x08\xcc\xa1\x66\x49\x49\x21\x20\x08\x0d\x35\x63\xd3\xe6\ +\x4d\xc8\xcc\xc8\xc0\x83\x0f\x3e\x88\x0f\xde\x5f\x09\x53\x68\x28\ +\xba\x5d\x7d\x35\xe6\xbc\xfa\xaa\x57\x75\x89\x86\x0d\x1b\x86\xd0\ +\xd0\x50\x30\x2c\x03\x86\xb0\x4e\x9c\x94\x9a\x9a\xea\xf4\x9b\x25\ +\xef\xbc\x8b\xcc\xcc\x0c\xa9\x4f\x5a\x98\x8f\x82\xc2\x1c\x6a\xc6\ +\x6b\xaf\xcd\xab\x57\xf6\x1c\x3a\x64\x28\x00\xc0\x60\x60\x05\x05\ +\x18\x28\x2a\x2c\xc4\xb3\xcf\x3e\xab\x58\xa4\x93\x93\xdb\x63\xde\ +\xbc\xb9\x10\xb3\x8d\x33\x0c\x41\xe7\xce\x9d\x1b\x91\x16\xa3\x43\ +\x87\x0e\x1d\x3a\x74\xe8\xd0\x11\xbc\x30\xb8\xd4\xf4\x7c\xd5\x70\ +\x82\x44\x76\x92\x37\x63\xd2\xa4\x89\x98\x34\x69\xa2\xc3\xc1\x80\ +\x63\x25\x66\x65\xbf\x6b\x2d\xb5\x00\x80\x95\x2b\x57\x2a\x94\xa2\ +\xda\xda\x5a\x2c\x59\xfc\xb6\x2c\x3d\x0f\x45\x74\x74\x0c\xe6\xcc\ +\x79\x55\x10\x56\xf9\xd3\xfb\x82\x4b\xf9\x78\xeb\xad\xb7\xa4\x9a\ +\x39\x14\x40\x5a\x5a\x3f\x27\xa5\x48\x8d\x5e\x3d\xba\x77\xc7\x8b\ +\x2f\xbe\xa0\x14\xe2\x7d\xa5\x03\xc3\x60\xf2\xe4\xdb\x31\x7c\xf8\ +\x70\xb7\xcf\x33\x85\x86\x82\xb3\x71\x60\x0d\x8c\xf4\x3b\x00\x68\ +\xdb\xb6\x0d\xfa\xf6\xed\x0d\xc2\x30\x38\x97\x91\x01\xc2\x10\x34\ +\x6d\xda\x04\xfd\xfa\xf5\x05\xc0\xd7\x37\x32\x99\x8c\x08\x09\x09\ +\x01\x21\x04\x43\x86\x0c\xc2\x3b\x8b\xdf\xc4\xe2\x25\xef\x22\xc4\ +\x60\x80\xc1\x10\x02\x96\x65\x11\x13\x13\x8d\x8e\x23\x46\x60\xe6\ +\x73\xcf\xe1\xa5\x59\xb3\x31\x6d\xea\xdd\x98\xf5\xca\x2b\x88\x89\ +\x8e\x11\xac\x78\x4a\xd8\x6c\x36\x49\x89\x95\xc7\x14\x0d\x1e\x3c\ +\x08\x83\x07\x0f\x82\x21\xc4\xe0\x70\xe2\xe0\x1a\xab\x3f\x59\x85\ +\x03\x07\xf7\x2b\xc6\xdd\x9d\x12\x2d\x32\x74\x74\x74\x0c\x66\xcd\ +\x7a\x19\x26\x93\xc9\x4f\xa7\x00\xce\xef\x1e\x30\x30\x0d\x03\x06\ +\xa6\x29\x12\x65\x4c\x9f\x3e\x03\x4b\x96\x2c\x56\xdc\xf7\xe1\x87\ +\x1f\x61\xda\x3d\xd3\xec\x86\x0e\x72\x85\x2b\x29\xde\x86\x3c\x90\ +\x06\x6e\x17\x75\x71\x74\xea\xb1\xd2\xbd\xbf\xf2\xea\xc1\xc5\xfb\ +\x82\xc5\xd7\xdf\x53\x3d\x3b\x47\x7a\x70\x8d\xa3\xdd\x4e\x7c\xe0\ +\xa7\xfd\xb5\xa1\xfa\x11\xb4\x74\xd7\xf9\xbd\x51\xd1\x3d\x68\xf6\ +\xa7\x2b\x84\xee\x9e\x62\x7e\xfc\xb5\xae\x11\xc7\x02\x41\x2e\x7e\ +\x4f\x5c\xec\x7b\xd2\x99\x34\xa7\x59\x7e\x6b\x68\x34\x62\xff\x9b\ +\xfa\x85\xd1\x68\xd4\xcc\x2b\x5a\xeb\x46\x51\x2f\x62\x87\xfc\x79\ +\x23\xd1\xd8\x6e\xab\xcd\xea\xf4\xc3\x37\xde\x58\x88\x5e\xbd\xfb\ +\xa0\xe7\x75\xbd\x70\xd3\xa4\x5b\x00\x00\x9b\xb7\x6c\x41\xcf\x5e\ +\x7d\xd0\xab\x57\x1f\x0c\xbc\x7e\x30\x0a\x8b\x8a\x71\xdb\x6d\xb7\ +\x82\x10\x82\xed\x3b\x7e\xc5\xb8\x7f\xdc\x8c\x8d\x3f\x6f\xc2\xc4\ +\x89\x13\x31\x68\xd0\x20\xd4\xda\x6c\xe8\xd9\xb3\x17\x3a\x75\x4e\ +\x85\xd5\x66\xc5\xb0\xa1\x43\xf1\xc1\x87\x1f\xa2\x73\xe7\x54\xfc\ +\xdf\x43\x0f\xba\x57\x54\xfc\x20\x43\x50\x5f\xd2\x53\xba\xc8\x28\ +\x5d\x97\xe6\xd0\x3a\xde\xa3\xdb\x6a\x74\xe8\xd0\xa1\x43\x87\x0e\ +\x1d\x3a\xea\x07\xfe\x77\x9f\x0b\x32\x8b\x91\x6b\x85\xd7\x31\xe5\ +\x00\x51\x55\x8c\x5c\x9e\xc8\xcb\x04\x6d\x42\xe4\xd9\xd1\xa8\xe2\ +\x1e\x2a\x3b\x31\x66\x54\xd2\x40\x13\x77\xda\xb8\xc7\x4e\x30\x9a\ +\xfb\x4a\x3c\x68\x66\x21\x86\x10\x70\x32\x7f\xd4\x9e\xbd\x7b\xe1\ +\xb9\xe7\x66\x2a\x7d\x6d\xa9\x7d\x80\xf9\xba\x4d\x14\x0c\x61\x90\ +\x92\x92\x82\xbb\xef\xbe\x0b\x00\x70\x75\xd7\xae\x78\xe6\x99\x67\ +\x70\x75\x97\x2e\x98\x38\x69\x22\x18\x86\xc1\xba\x2f\xd7\x62\xef\ +\xde\xbd\x00\x80\xe1\xc3\x47\xe0\xee\xbb\xa7\xe2\x93\x55\xab\x50\ +\x55\x55\x8d\x9e\xd7\x5d\xa7\xa0\x31\x15\x9f\xed\x82\x40\x9c\xe8\ +\x3f\xa6\x91\xcf\x34\x7a\xcb\xb9\xd0\x5c\x89\xff\xf8\xd8\x81\x3f\ +\x5c\xf1\x1f\x05\x55\xf5\x0b\x0e\xbc\x65\x88\x06\xf6\x69\xae\x62\ +\x82\x82\x65\x7d\x72\x8a\xd9\x71\x61\x2a\x10\x3d\x3e\x85\x14\xf9\ +\xb0\x59\x01\xe2\x27\xcd\x57\x8d\x36\x56\x6a\x0f\xde\x14\xe7\x30\ +\xa1\xf5\x35\xac\xae\xdb\x45\x35\x7c\x4f\x54\xda\xce\x78\x58\x30\ +\x83\xc1\xf0\xe2\x89\xee\x52\xbd\x34\x1a\x3c\x6d\xd6\xdc\x76\x28\ +\xdb\xae\x36\x8f\x68\x10\xb5\x9d\x93\x37\xcc\x4d\x7c\x34\x0d\x02\ +\x9a\xab\xd1\x5d\x91\x64\x87\x06\x1f\xbf\xbb\x6b\xbb\xb8\xc6\x88\ +\x4c\x41\x10\xfc\x74\xa7\x00\x6c\x8d\x94\xee\x62\xdb\x45\xba\x13\ +\xf0\x16\x1c\x77\xeb\xbb\x37\xf3\xd5\xb1\xd6\x17\x95\xfd\x9b\x73\ +\xb8\xc9\xc9\x43\xc2\xd1\x62\xa8\x6d\xed\xf3\x7b\xa4\x91\xc7\x7a\ +\x89\x0d\xa1\x14\x5d\x8e\x20\xc4\xb5\x99\xc7\x9d\xb0\x2a\x29\x12\ +\xd0\x1c\x6f\xad\x95\x25\xfc\xc3\x34\x0e\x85\x7a\x39\x7b\x74\x61\ +\x87\xe4\x64\xcc\x9d\x3b\x47\x2a\x36\xab\xe4\x33\xea\x52\x58\x6f\ +\x73\x55\x1b\xcc\x79\xf5\x15\xc9\xfd\x0d\x00\xc6\xde\x70\x03\x6e\ +\xb8\xe1\x06\xbb\x72\x46\x80\x97\x5e\x7c\xd1\xb5\xb0\xef\xe7\x6c\ +\xb0\x3e\x25\x24\x20\x62\x8c\x94\xc9\x4f\x2c\xa4\xbd\x13\x1c\xa8\ +\xcf\x7a\xb2\x8e\xc6\x83\x18\x26\x0c\xcd\x0c\x11\x30\x13\x23\x9f\ +\x82\x9e\x10\x80\x12\x87\xb2\xb6\xd4\xe5\x9e\x42\xdc\x4c\x15\xc2\ +\x10\x30\x20\xe0\x58\xde\xfa\x4b\xc5\x44\x2d\x8a\x54\xef\x54\x5e\ +\xe6\xcb\xa3\x3e\x43\xea\xb0\xfe\x10\x0f\x6d\x27\x32\x46\x27\x04\ +\x00\x67\x03\x42\x00\x70\x04\x94\x21\xb2\xba\x62\x54\xd9\x76\x17\ +\x6d\x91\xeb\x59\xee\xea\x4a\xba\x93\x11\xe4\xf7\x6b\x6d\xbf\x44\ +\xf7\x10\x81\xee\x70\xa0\x3b\xd5\x56\x1c\xdd\x55\x5b\xdd\xfd\xce\ +\xd5\xf7\xee\x68\xe0\x9a\xee\xa2\xf2\x6e\x70\xa6\x3b\xb4\xd7\x24\ +\x76\xa4\x21\x5c\xb4\x45\xab\xde\x0c\x4f\xfc\xce\x59\x01\xce\xce\ +\xef\xca\x85\xd3\x79\x2e\x69\x6d\x83\xbb\x3c\x0e\xd4\xc7\x73\x00\ +\x89\x2f\x1c\xe8\x4e\x19\x46\xe2\x77\xea\x66\x1d\x08\x74\xdb\xdd\ +\xad\x33\x8d\x8a\xee\x68\x9c\x74\xe7\x0f\xd5\x6c\x82\xde\xe2\x66\ +\x7d\x87\x17\x69\x16\xc4\xe4\x5e\x0e\x82\x87\xc5\x56\x8b\x02\x4b\ +\x19\xf2\x68\xf1\x65\xbf\x2f\x6b\x57\x8a\x2e\xb3\x94\xc0\x6f\x2c\ +\x58\x88\x23\x47\xfe\x10\x18\x80\x02\x84\xc1\xab\xaf\xcc\x46\xdb\ +\xb6\x6d\x15\xf7\xcd\x7b\x6d\x1e\xca\xcb\xcb\xec\x9b\x32\x91\x33\ +\x12\xcf\x3c\xb5\x96\x6a\xdc\x7d\xf7\x54\xc5\xef\x42\x43\x43\xb1\ +\x74\xe9\x52\xa1\x50\x28\x7f\x67\x59\x49\x31\xa6\x4e\x9d\x26\xf1\ +\x1a\x61\x18\x64\x9d\xcb\x72\x22\xee\xd6\xad\xdb\x31\x6d\xda\x3d\ +\x7c\xc6\x31\x6a\x4f\x69\x7d\xcb\x2d\xb7\x28\x98\x78\xf2\xe4\x3b\ +\xd0\xad\xdb\xd5\x60\x18\x46\x2a\x8a\xba\x62\xd9\x0a\xec\xdb\xbf\ +\x57\xa6\xc0\x70\x58\xb0\x60\x21\x3e\xfd\xf4\x53\x50\x0a\xcc\x9d\ +\x3b\x07\xad\x5b\xb7\x76\x66\x04\xa3\x11\x1c\xe5\x14\x93\x81\x55\ +\x91\xc4\xf9\xe2\xa7\xc4\xa5\xb0\x2f\x7e\xf2\x58\x04\xd5\x8d\x4f\ +\x1f\x23\xcb\x90\x27\xa6\xbe\x10\x2d\x44\x54\x96\xf5\x6f\xe5\x07\ +\x2b\xb1\x63\xc7\x0e\xc5\xf3\x9e\x9c\x31\x03\x3d\x7a\xf4\x50\xb0\ +\xed\xcc\xe7\x67\xa2\xa0\xe0\x92\x6c\x25\x53\x3b\x06\xb2\x2f\x61\ +\xe2\x86\x1f\x66\x36\x6b\xe2\xa5\xab\xae\xba\x0a\x33\x85\xe2\xad\ +\x44\xc5\xba\xc4\xe7\xf0\xe0\x13\x23\x38\xd2\xeb\xfb\xef\x7f\xc4\ +\xba\x75\x5f\x4a\x8b\x11\xc3\x30\xd8\xb3\x6b\xb7\x17\x04\x6b\xa4\ +\xf0\xd6\x62\x43\x7c\xfc\x9d\x27\x32\x36\x10\x59\xc5\xf9\xd0\x3a\ +\xb4\x39\xfe\x2f\x61\x28\x46\x36\xed\x82\x76\x61\xcd\x10\x65\xe4\ +\x79\x8c\x73\xa1\x95\x30\x62\x86\x47\x95\x3a\x55\x5a\x3a\xe8\x4a\ +\x58\xf5\xfe\xb9\xf5\x0b\xd1\x8a\x2e\xd2\xc1\xd3\x89\x61\xb0\xb5\ +\x5f\x2b\xdd\x83\x6f\x43\x6d\xac\xed\x86\xc3\x0e\xe1\xbe\x95\x8d\ +\x9d\xdf\x75\xba\xeb\x74\x6f\x58\xba\x2b\x29\xc3\x10\x06\x95\xd6\ +\x1a\x64\xd4\x14\x62\x4b\xfe\x09\xac\xc8\xde\x8e\x23\x15\xe7\x64\ +\x2f\x14\x3d\x78\xa4\x34\x75\x2e\x9e\xe6\x9e\x9e\x34\x08\x3c\xcd\ +\xae\x58\x4b\xd1\xc6\xf4\x74\x6c\xde\xbc\xc9\x2e\x63\x31\x0c\x1e\ +\x7d\xe4\x11\x27\xa5\x68\xf2\x94\x3b\x9c\x5d\x05\x1c\x06\x2c\x3f\ +\xef\x22\x1e\x7d\x62\x3a\x2f\xb8\x0b\xa3\xda\xa1\x63\x47\x2c\x5f\ +\xb1\x5c\x62\x4e\x00\xd8\xbe\x75\x2b\x9e\x7e\xee\x39\x50\xea\xbe\ +\xe8\xea\xdf\x7f\xff\x85\xbf\xff\xfe\x4b\xc6\x51\x04\xad\xdb\xb4\ +\x56\x28\x45\x00\xd0\xbf\x7f\x1a\xfa\x0f\x48\x53\xcc\x8c\xf4\x9f\ +\xd2\x15\x4a\x11\x00\x6c\xfc\x39\x1d\x8c\x50\x0c\xf5\xe9\xa7\x9f\ +\x04\x45\x6b\x17\x0c\x19\x04\x0b\x80\x8a\xab\x83\xab\xf9\xb1\x63\ +\xc7\x0e\x7c\xf6\xd9\xa7\x32\x5d\x87\xe0\xe6\x49\x93\x14\x4a\x11\ +\x00\x4c\x9c\x74\x93\xd3\xca\x41\x04\x25\x84\xba\xf1\x03\x21\x1a\ +\x55\x93\xb8\xb8\x78\x3c\xf0\xc0\x03\x6a\x47\x2e\x0a\xf7\x43\xb5\ +\xdf\x1e\x3a\x74\x10\xab\x56\xaf\x82\xa7\x23\x9d\xc0\x5b\x8a\x74\ +\x53\x55\x5d\xf1\x7c\xd2\x3f\xf0\x6c\xdb\xd1\x08\x0f\x31\xe9\x14\ +\xd5\xa1\x43\x87\x0e\x1d\x8d\x06\x61\x06\x13\x52\x0d\x2d\xd0\x39\ +\x3c\x01\xf7\xb5\x1a\x88\x8f\xce\xed\xc4\xd3\x7f\xad\x43\x25\xa9\ +\xbe\x7c\x3a\xa9\x5e\xa7\xc8\x85\x0c\x54\x4f\x69\xc5\x03\xa5\x18\ +\x12\xaa\x54\x02\x64\x19\xb9\x1d\xba\x4d\xdc\xfa\xfc\x8b\xc2\x38\ +\x28\xaf\x4d\x73\xd4\x26\x7d\x21\x77\x3d\x53\x18\x63\xdd\xb9\xe3\ +\xb9\x52\x9f\x9d\x92\x7b\x10\x75\xb9\x95\xaa\xfb\x7e\x73\x62\x36\ +\x37\x07\x33\xab\xc4\xf0\x61\x61\xa8\xad\xb5\x4a\x4a\x42\xa0\xb3\ +\x82\x30\x62\xcc\x05\xc4\x38\x23\xb5\x7e\xcb\xb2\xd6\xb9\x50\x34\ +\x89\xd2\xb4\xa7\x88\xf1\x72\xee\xa7\xc6\xca\xb0\x8e\xd6\x31\xb9\ +\xfb\xba\xe3\x33\x3c\x68\x33\x54\x66\x0d\x74\xfb\x5a\xdd\x7f\xae\ +\x7e\x16\x8a\xba\xba\x6a\xba\x8c\x25\xe2\x61\x60\xf8\x25\x76\x45\ +\x87\x7b\x71\x4f\xab\x01\x2e\xc7\x91\xf1\x30\xbe\x0c\xf1\x2d\x27\ +\x8e\xc8\xef\x8c\xcb\xf7\x06\x57\xae\x1d\xc6\x31\xf6\xce\x03\xff\ +\x07\x5b\xfb\xb5\xd2\x3d\x58\x55\x62\xcf\x74\x0f\xee\x75\xe8\xf2\ +\xe5\x77\x9d\xee\x3a\xdd\x03\x41\x77\xa2\x2a\x53\x99\xd8\x10\x3c\ +\xd4\x76\x08\x92\xc3\xe3\x31\xe9\xc0\x32\x94\xd1\x72\xbb\x60\xed\ +\x28\xbb\x02\xa0\xa2\xbc\xc5\x28\xdb\x4d\xfd\xe5\x01\xe2\x4f\xde\ +\xb8\x52\x65\x2b\x35\x33\x1e\xf1\x0b\xcb\xb8\x96\x85\xeb\x22\xd8\ +\xd6\x8b\x4c\x4c\x83\x71\x92\x07\x4e\x3e\xd6\xf6\x4e\xe2\xdf\x71\ +\x0d\xea\xde\x06\x39\xb3\x34\x12\xcc\x6b\x7d\x0b\xee\x69\x35\x40\ +\x27\x84\x0e\x1d\x3a\x74\xe8\xb8\x6c\x30\xbc\x79\x67\x7c\xd2\xed\ +\x9f\x97\x55\x9f\x0c\xae\x44\x2f\x9f\x45\xa0\x20\x53\xac\x5d\xb9\ +\x84\x71\x36\x4e\x51\x1f\x87\x21\xc4\x1e\xbc\x26\x57\x9a\x5c\xba\ +\x33\x11\x65\x97\x55\xd2\xb4\x53\xc7\xf7\x13\xa2\x48\x66\xe0\x59\ +\xe3\xe1\x5d\xba\x08\x21\x60\x65\x96\x13\xc0\xd9\x27\x56\xec\xab\ +\x27\x1f\x52\x8e\xe3\x04\x63\x07\xa3\xb8\x37\x3c\x3c\x0c\x97\x2e\ +\x15\x20\x27\xa7\x4a\x7d\x48\xe5\x96\x10\x31\x28\x57\x68\x1f\xef\ +\x0e\xe8\x4e\x90\x76\x76\x4d\xa3\x4e\x85\x99\xed\x27\x1e\x11\xe1\ +\x61\xaa\x4f\x10\xdb\xaf\x24\xb2\x7b\x97\x37\xa7\xc0\x66\xa7\xfa\ +\x54\xf6\x37\xd5\xd6\x58\x10\x22\xa6\x62\x77\xa1\xf0\x50\xa1\xff\ +\x90\xc5\x98\x31\xb2\x84\x1a\xd4\xcb\x99\x63\xe3\x6c\xda\xd5\x78\ +\x4a\xe5\xe5\xb1\xea\xac\x90\x05\x14\x97\xad\xe1\x4b\x59\x17\xa5\ +\x47\x68\x7b\x4c\x4f\x1e\xa9\x5b\xfa\x74\xe8\xd0\xa1\x43\xc7\xe5\ +\xb5\xdb\x11\x82\x9b\x12\xbb\xe3\xce\x9c\x81\xf8\xb4\x78\x87\xb3\ +\xc4\x46\xd4\x3d\x28\x1a\x5e\xd0\xd0\xfe\xfe\x2b\x22\xa6\xe8\x5f\ +\xff\x7e\x03\xdb\xb7\x6f\x55\x10\x69\xdc\x84\xf1\x78\xf4\x89\xc7\ +\x40\xc0\x07\xf6\xb3\x2c\x8b\x0e\x1d\x3a\x3a\xfd\x76\xea\xb4\x7b\ +\x70\xf1\x62\x9e\xf4\xd9\x64\x0a\xc5\xea\x55\x9f\x20\x2a\x2a\xca\ +\xed\x3b\xb3\xb3\x73\x30\x7e\xfc\x04\x49\x88\x67\x18\x06\xc5\x45\ +\x45\x4e\xf7\xf5\xee\xd3\x17\xcf\xcf\x9c\x09\x0a\x2a\xf0\x0f\x51\ +\x0a\xd6\xc2\x98\xa6\x76\xee\xec\xf4\xdb\x65\xcb\x56\xe0\xbb\xef\ +\xbe\x05\x21\x00\x2b\x64\x09\x3a\xb0\x6f\x9f\xdb\x76\x55\xd7\xf0\ +\xfe\x9f\xa1\xe6\x30\xd4\x54\xd7\xc2\x64\x0a\x95\xbe\x6b\x99\x98\ +\xe8\x52\x49\x23\xae\x94\xcc\xba\x16\x97\xad\x83\x02\x4e\x34\x5e\ +\x7c\xfc\xf1\x27\x70\xf2\xd4\x49\xe9\x4b\x96\x65\xb0\x62\xc5\x72\ +\x24\xb5\x4c\x92\xee\xa9\xad\xb1\xe0\x8e\x29\x77\xa2\xa2\xa2\x5c\ +\xa6\x28\x86\xe3\xab\xf5\xeb\x15\xcf\x6a\x99\xd4\x12\xeb\xd7\xad\ +\x07\x1f\x48\xc8\xdb\x8d\x2e\x5e\xc8\xc5\x8d\xe3\xc6\xc1\x6a\xb5\ +\xba\x97\xf6\x85\xb8\x22\x91\x64\x0c\xc3\xe2\xf4\xa9\x93\x9a\xfa\ +\xba\x70\xe1\x9b\x58\xb3\x76\xad\x2c\x1e\x8d\x60\xf6\xac\x59\x52\ +\x11\x5d\x5d\x8b\x09\x4e\xcc\xb8\x6a\x14\x8c\x8c\x9e\xe4\x53\x87\ +\x0e\x1d\x3a\x74\x5c\x9e\x78\xa6\xc3\x28\xac\xdd\xf5\x3b\x6a\x59\ +\x4b\x23\xd7\xf2\x54\x94\xa2\x86\xb6\x10\x91\x06\xe8\xe4\xe1\x43\ +\x07\x91\x9e\x9e\xae\xd0\x58\x1f\x7f\xfc\x31\x8c\x19\x3d\xda\xe5\ +\x09\x2e\x01\x81\xc5\x62\xc1\xf6\xad\xdb\x70\x2e\x2b\x53\x52\x54\ +\xc2\xc2\x22\x60\xb1\x58\x94\xfa\xb0\xca\x33\x2a\x2a\x2a\xf0\xe3\ +\x0f\xdf\x7b\xec\x60\x42\x42\x3c\x26\x4c\x18\x2f\xb3\x5c\xa8\x57\ +\x00\x96\xea\xd8\xc8\x62\x17\x8e\x1f\x3b\x8a\xf4\xf4\x9f\x94\x23\ +\x47\x5d\x0b\xe4\x00\x50\x54\x58\x04\x4a\x29\x22\x22\xc2\x51\x58\ +\x58\x08\xd0\x08\x5e\x49\x92\x29\x47\x0d\x3d\x7e\xee\xca\x19\x70\ +\x36\x9b\xa2\x0e\x94\xbc\x4e\x11\xd1\x58\x07\xe1\xb7\xdf\x7e\xc3\ +\x81\x83\x07\x14\xe3\x5f\x59\x51\xa9\xb8\xd5\xc6\xd9\xb0\xf9\x97\ +\x4d\x28\x2e\x29\x92\xe8\x15\x13\x13\x03\x8b\xc5\x62\x2f\xe4\x0b\ +\x20\x32\x32\x02\xff\xf8\xc7\x78\x45\x2c\xd3\xce\xed\x3b\xf0\xe3\ +\xc3\x0f\x7b\x77\x22\xe2\xe5\x01\xc6\x91\x23\x7f\x08\xd9\x12\x85\ +\x9f\x33\x2c\x1e\x7a\xe8\xc1\x06\x5c\x2d\x68\xfd\x3e\x96\x34\xf0\ +\xf3\xea\xfb\xe0\x8a\xa5\x88\xa6\x51\x18\xd1\xac\x93\x9e\x4e\x5d\ +\x87\x0e\x1d\x3a\x74\x5c\xb6\xe8\x1a\x95\x88\x8e\x61\x2d\x70\xac\ +\x3a\xd3\x51\x70\x75\x90\x8b\x1c\x36\x68\xce\xb1\x9e\x51\x80\x41\ +\xaf\x90\x98\x22\xe2\x42\xe9\xf1\x97\x38\x58\xb7\x7a\x8b\xb4\x4e\ +\x03\xe8\x2d\x3e\xfa\xcf\x47\x00\x00\x86\x69\x1c\x92\x5a\x61\x61\ +\x21\x62\x62\x62\xb4\x13\x5d\xcd\xca\x45\xb5\x2a\x62\xb4\x61\x05\ +\xe7\xe0\x53\x51\x02\x79\x7c\x71\x79\x81\x02\x1d\x8c\x71\x68\x66\ +\x8e\xd4\x69\xa1\x43\x87\x0e\x1d\x3a\x2e\x5f\x19\x9b\x00\xbd\x22\ +\x5b\x5d\x16\xca\x02\xa3\x2a\xfb\x5c\x4e\xf2\x0f\xb5\x67\x87\xe3\ +\xff\xcd\x17\xe8\x62\xbc\xd1\x4c\xc5\xec\x6f\xa2\x75\x42\x8c\x65\ +\xa1\x54\xaa\xdb\xc3\x51\x9b\x3d\xf3\x9c\xa3\xf4\x2a\xff\x53\x23\ +\xb8\x53\xed\x23\x22\x59\x47\x88\x54\x0d\x49\x64\x3e\xc1\x6a\x42\ +\x04\xc7\x33\x31\x7b\x19\xf5\x24\x29\xf3\x37\xfc\xef\xa7\x9f\x70\ +\xf8\x8f\xc3\x00\x80\x66\xcd\x9a\xe2\xd2\xa5\x02\x54\x54\x54\x80\ +\xe3\x38\xc9\x35\xcb\xed\x9f\xf0\x9f\x5c\x91\xf0\xfb\x7f\x94\xa2\ +\xd6\x62\x41\xde\x85\x3c\x84\x18\x8d\x30\x87\x85\x01\x84\xa0\xbc\ +\xa2\x02\x36\x8e\x43\x88\x31\x44\x18\x0c\x3b\xfb\x12\x86\xe1\xff\ +\x08\x51\xb4\x57\xd2\x93\x54\xb2\xbc\x11\x39\xbb\x53\x28\xbf\x17\ +\xfe\x1d\x12\x12\xe2\x22\xab\x9d\x43\xe1\x43\x87\x71\xd2\xa4\xd5\ +\xd0\x3a\xcd\x5d\x30\x0d\x3a\x51\xeb\x21\xed\x24\xad\x87\xf5\x46\ +\xeb\xf3\xbc\x7d\xaf\xa7\xf1\xa2\x44\x96\x4a\x87\x7f\x76\x1b\x63\ +\x33\x8f\xe9\xf7\xfd\xc4\x0e\x3a\x74\xe8\xd0\xa1\x43\x47\xc0\xb4\ +\x89\x64\x73\x1c\xc0\x59\xf9\x3f\x4f\xfb\x2b\xe5\xf8\xbf\x7a\xdf\ +\x08\xbd\x7c\x20\xbd\x42\x62\x8a\xa8\x6a\x5a\x41\xcf\x45\xad\x8c\ +\x46\xa3\x0b\xf7\x3a\x6d\x55\xc9\xbd\x1a\x37\xe2\xe3\xef\xbc\x44\ +\x69\x69\x29\x66\x4c\x7f\x12\xdf\x7d\xff\x1d\xc2\xc3\xc2\xd0\xac\ +\x59\x53\x54\x54\x54\xe0\x42\x1e\x1f\x37\x65\xb5\x5a\x85\x42\xc8\ +\xd4\x0d\x25\x89\x57\xaf\xf7\x54\x8d\x5c\xde\x7d\x22\x54\xc4\x36\ +\x86\x84\xa0\x49\x93\x58\x84\x84\x84\x00\x00\x2c\x16\x0b\x2a\x2a\ +\x2a\x11\x16\x66\x16\x0a\xe9\xba\x70\x7b\x54\x13\x40\x35\x58\xc5\ +\x08\x88\xef\x04\x0e\x40\xba\x51\x91\x4e\x0d\x7a\x84\xa2\xc3\x2b\ +\x72\x85\x19\x8c\x3a\x1d\x74\xe8\xd0\xa1\x43\xc7\x65\x8f\x30\xd6\ +\x74\x59\xf4\xc3\xff\xd9\xe7\x82\x28\xdf\x38\xc0\x5b\x56\x5e\x7d\ +\xf5\x15\x3c\xf6\xd8\xa3\x42\x16\x37\x5e\x98\x5c\xb2\x64\x09\x9e\ +\x7f\xf1\x65\x7b\x5d\x1e\x86\xc1\xaa\x8f\x3f\x46\x6a\x97\x2e\x6e\ +\x9b\x5f\x51\x5e\x8e\x51\xa3\x46\x0b\x16\x1b\xde\x32\xc1\x07\xd8\ +\x2b\x91\x94\xd4\x0a\x6b\xd6\xae\x95\x9e\x45\x08\xc1\x1f\x87\x0f\ +\xe1\xc1\x87\x1e\x0a\x8c\xbc\x29\x1b\xd0\xad\x5b\xb7\x60\xca\xe4\ +\x29\x78\xff\xfd\x15\x88\x8b\x8b\x43\x44\x44\x04\xc2\xc3\xc3\x83\ +\x8a\x31\xc5\xcc\x78\x14\x14\x3f\xff\xb2\x09\x67\xcf\x9c\xc1\xa4\ +\x9b\x6f\x41\xa8\x39\x14\x14\x14\x0c\x21\x78\xf1\xc5\x17\x70\xff\ +\x03\xf7\x81\x80\x80\x15\x94\x84\xa5\xef\xbd\x8b\xd9\x73\xe6\x48\ +\x63\x4f\x08\x83\xe3\xc7\x4f\xf8\x24\xf3\x17\x17\x17\xa3\x57\xef\ +\x3e\xa0\x54\x48\xaa\x40\xf8\x71\x5d\xbf\xee\x4b\xb0\x06\x83\xf4\ +\x8e\xee\xdd\xbb\x61\xc7\x8e\x1d\xb2\x77\x02\x3b\xb6\xef\xc0\x73\ +\x33\x67\x7a\x9c\x49\x53\xa6\xdc\x89\x87\x1e\x7e\x18\xa0\x54\xca\ +\xf2\x47\x15\x6e\xb6\xca\x8c\x88\xf6\xea\x4a\x04\x9d\x53\x3b\x37\ +\xe8\xd1\x82\x97\x13\xcf\xfd\xef\x88\x9f\xd6\x9b\x60\xeb\xb7\x5c\ +\xcd\x66\xb4\x9b\xa3\x74\x95\x53\x87\x0e\x1d\x3a\x74\x34\x4a\x88\ +\x59\x78\x45\x5b\x03\xe3\x6a\x37\x75\xbf\xe3\x4b\xd9\x75\xfd\xa7\ +\x00\x78\xbd\x8f\x5f\x11\x96\xa2\x94\x94\x8e\x48\x49\xe9\x68\x27\ +\x0d\xa5\xc8\xcd\xbd\x80\x03\x07\x0e\x48\x05\x4f\x09\xcb\xa2\xa2\ +\xb2\x52\xd3\xf3\x0e\xec\xdf\xef\xf1\x9e\x50\xb3\x19\x7d\xfb\xf6\ +\x01\x23\x3b\xd1\xaf\xad\xae\x76\x2d\x77\x35\xb0\x54\xf4\xdd\x77\ +\xdf\xa2\x7b\xf7\x3d\x98\x35\xeb\x65\x8c\x1f\x3f\x0e\x89\x89\x2d\ +\x83\x6e\xdc\xf6\xee\xdb\x87\x15\xcb\xdf\xc7\x17\x9f\x7f\x8e\x99\ +\x33\x9f\x43\xa8\x49\x79\xf2\xde\xa1\x43\x32\x3a\x74\x48\xb6\x93\ +\x91\x52\xcc\x9e\x9d\xaf\x69\x7c\x9c\xc7\x40\x7d\xd2\xec\xdf\xb7\ +\x57\xf1\xb9\xb4\xa4\xc4\x69\x82\x45\x46\x46\xa2\x7f\xff\x34\xa9\ +\x0d\x00\x70\xfe\x7c\xae\xa6\xd7\xb6\x4c\x6a\x89\xb4\x7e\xfd\x9c\ +\x94\x04\xe7\xe6\x51\x27\x65\xbf\xc1\x57\x3d\x1d\x3e\x2e\xc8\x3a\ +\x74\xe8\xd0\xa1\x43\x87\x8e\x60\x57\xee\x9c\xb3\xcf\x51\x87\xfc\ +\xe2\x9a\x85\x4a\xdf\x64\xa7\x06\x37\x2c\x49\xf5\x7d\xc4\x98\x1c\ +\xfb\x65\x7f\x86\x37\x10\xa2\x52\x33\x47\xad\x60\x2c\xc3\x04\x44\ +\xde\xa4\x94\xe2\xc2\x85\x5c\x3c\xf2\xe8\xa3\x78\xfe\x85\x17\x90\ +\x94\x94\x84\xd0\xd0\x50\x18\x0c\x06\xc1\x3d\xcd\xde\x0f\x79\x5c\ +\x44\xa8\xd9\x8c\xb7\x16\x2d\x82\xbc\x60\xce\xc5\x8b\x17\x31\x7b\ +\xd6\x6c\xc5\xf3\x5b\xb7\x69\x8d\x97\x5e\x9e\x05\xab\xc8\x4f\xb6\ +\x5a\xfc\x71\xf8\x30\x96\x2d\x5d\x6a\x17\xea\x89\x60\xf3\x90\x59\ +\x44\x38\xca\xa1\xa6\xc6\x82\xd2\xd2\x52\x9c\x39\x7d\x4a\x7a\x8f\ +\xd9\x6c\x46\x68\x68\xa8\x53\xbd\x26\x47\x45\x81\x68\x75\x65\x23\ +\x0e\x29\x2e\xbc\x12\x60\x89\xdb\x36\xe8\xb2\x33\x9c\x0b\x51\x79\ +\x98\xff\x41\xbd\x4a\xaa\xb6\xd4\xc3\xca\x45\xb5\x38\xe8\xea\xd0\ +\xa1\x43\x87\x0e\x1d\x97\x85\x3e\xe1\x71\x43\x17\xa5\x2e\x4a\x1a\ +\x48\x1e\xd0\x28\x87\xc8\x1b\xa0\x17\xd0\x70\x18\xac\x7a\x91\xa7\ +\xdc\x08\xd3\x4c\x10\x48\xc4\xa5\xa5\xa5\x38\x76\xec\xa8\x67\x0e\ +\x25\x40\x44\x78\x24\x58\x96\x85\x4d\x48\x8d\x1d\x62\x30\xa0\xa6\ +\xaa\x1a\x7b\xf6\xec\xe5\xdd\xcc\x84\x99\x51\x5e\x5e\x06\xc2\x1a\ +\x00\x2b\x9f\x7c\xc2\x60\x30\xa0\xa4\xb8\x04\x7b\xf7\xed\x05\xe5\ +\x7c\x8b\xa6\x63\x35\xc4\xd1\x68\x55\x4a\x7c\xa5\xba\xbf\x2d\x34\ +\x4c\xa3\xd1\x88\xf4\x34\x00\x3a\xbd\x74\xe8\xd0\xa1\x43\x87\x8e\ +\xcb\x77\xc7\x73\x56\x8a\xc8\xe5\xbd\x99\x8b\x42\x2d\x71\x53\xa0\ +\xd4\x13\x4c\xa1\x66\xd4\xd6\xd6\xaa\xff\x56\xf8\x87\x91\x65\x85\ +\x1a\x3b\x9c\xf4\x85\x8d\xb3\xc1\x10\xc2\xbb\x80\x89\xf5\x76\x58\ +\x02\xd8\x6c\x36\x79\x7e\x39\x10\x42\x14\x6e\x77\x5e\xf5\x4f\xc8\ +\xc2\x26\x1f\x4e\x9b\xcd\xe6\x92\x65\x29\xc7\xa9\x13\x41\xb8\x9d\ +\x91\x2c\x33\xfc\x17\x46\xa3\x11\xcd\x9a\xc6\x4a\xe9\xe5\x19\x00\ +\x05\xd1\x91\x60\x0d\x2c\x00\x56\x88\xbf\x01\xc2\xcc\x61\x88\x6b\ +\xde\x14\x56\x2b\x07\xde\x93\x94\x43\x74\x74\x14\x18\xd6\x00\xb0\ +\x00\x84\xf7\x4a\xb1\x43\x0e\xed\x60\x84\x62\xb4\x62\x73\x0c\x0c\ +\x01\xc7\x71\x92\x55\xc5\xe6\x6a\xd4\x1c\x3e\x32\x0c\x2b\x0e\xbc\ +\xc3\x01\x82\x0d\x9c\xcd\x5e\x6c\xd5\x6a\xb5\x82\x65\x0d\x52\xac\ +\x90\x68\x19\xe3\x6c\x36\xa7\x93\x07\x1b\x67\x03\x6c\x50\x24\x9d\ +\x70\x5c\x1a\x38\xce\xa6\xae\x04\xb1\xac\x60\x7e\xe3\x3f\x8b\x89\ +\x24\x74\x34\x72\x88\x53\x8e\x93\xb3\x8a\xae\x18\xe9\xd0\xa1\x43\ +\x87\x8e\x2b\x54\x45\x72\x90\x27\x5d\xee\x88\xbe\xc6\x18\xd7\xc3\ +\x16\xab\x5b\x8a\xdc\xc0\x62\xb1\x38\x51\xdd\x14\x6a\xc6\xb6\xad\ +\x5b\x11\x13\x1b\x63\x77\xfd\x92\x0d\xb8\x98\x54\xe1\x5c\x66\x06\ +\x3a\xa6\x74\x82\xd5\x6a\x93\xdc\xe6\xba\xa4\x76\xc1\xd1\x23\x47\ +\x84\x1a\x41\xbc\xf2\xf3\xeb\x8e\xed\x48\x4e\xee\x68\x2f\x4a\x0a\ +\xe0\xf6\xdb\x6f\xc3\x1b\xf3\xe7\xfb\xd4\xe6\x85\x0b\x16\x62\xec\ +\x8d\x37\x4a\xed\x20\x84\xe0\xae\x3b\xef\xc2\xae\xdd\xbf\x7b\xfd\ +\xac\x50\xb3\x19\x5b\xb7\x6c\x41\x64\x64\x94\xf4\xbc\xb2\xd2\x12\ +\x0c\x1c\x38\x08\x56\xab\x8d\x57\xdc\x08\x90\x10\x9f\x80\x03\x07\ +\xf6\x83\x65\x58\xe9\xbe\xb0\xb0\x30\x34\x89\x89\x91\x09\x86\x14\ +\x37\xdd\xf4\x0f\xf4\xe9\xd3\x9b\x77\x55\x14\xdc\x0b\xd7\xad\x5b\ +\x8f\xd9\xaf\xbe\xa2\x78\xef\xd4\xa9\xd3\xf0\xdc\x73\xcf\x81\x10\ +\x5e\xa9\x61\x19\x06\xcb\x97\x2f\x43\xfb\xe4\x64\x70\x1c\x55\x14\ +\x73\x75\x54\x6e\xf3\x2e\x5c\x70\xea\xc7\x17\x5f\x7c\x81\x6b\xba\ +\x77\x17\x92\xd0\x11\x70\x36\x2b\xa6\x4e\xbd\x07\x39\xe7\x73\xf9\ +\x91\x21\x00\xcb\x18\x90\xfe\x73\x3a\x22\x23\x23\xc1\x08\xcf\x2f\ +\x2b\x29\xc1\xb5\x3d\x7b\x2a\x9e\x75\x26\xe3\x2c\xba\x75\xbd\x1a\ +\xd5\x96\x5a\x49\xd9\x22\x50\x0a\xc2\x84\x10\x54\x55\x55\x39\xf1\ +\xce\xcd\x37\xdf\x8c\x79\xaf\xbd\x26\x4d\x7e\x42\x18\x34\x69\xd2\ +\x44\x9f\x68\x3a\x74\xe8\xd0\xa1\x43\x87\x0e\x1d\x81\x04\xf1\xa7\ +\x52\x44\x1a\xf4\x67\xbe\xeb\xaf\x5e\x9e\xde\x3a\xde\xce\x30\x0c\ +\xda\xb7\x6f\x87\x66\xcd\x9a\xb9\xfd\x5d\x4d\x4d\x15\x32\x33\x32\ +\x15\x16\x83\x56\x49\x49\xe8\xd8\xb1\x83\xe2\xbe\x83\xfb\xf7\x23\ +\x33\x33\x43\x91\x72\xac\xa8\xb0\xd0\x67\x15\x39\x31\xb1\x85\xe2\ +\x1d\x94\x52\x98\x42\xbd\x48\x95\x28\x7b\x2c\x21\x0c\x3a\xa6\xa4\ +\x20\x26\x3a\x46\x32\xb4\xe4\x5f\xbc\x88\xcc\xcc\x4c\xc1\xfa\x24\ +\xd0\x84\x35\x20\xb5\x33\x9f\x09\xcd\x5d\xcc\x8f\x31\xda\x88\xe8\ +\xe8\x68\xc5\xb5\x16\x89\x2d\x04\x77\x3a\x3b\x9a\x36\x6d\x8a\x4e\ +\x9d\x52\x14\x4a\x8f\x8d\xe3\x90\x75\xee\x9c\xf7\xe3\x07\x8a\xa4\ +\xa4\x96\xe8\x28\x4b\xc8\x00\x00\x79\x79\x79\x38\x77\x2e\x53\xfa\ +\x1c\x62\x34\xa2\x5d\xbb\xb6\x68\x12\xdb\x44\x22\x43\xe1\xa5\x4b\ +\x4e\xcf\xb3\xd6\x5a\xf1\xf7\xc9\x93\x3e\xf1\x5e\x64\x54\x14\x3a\ +\x76\xe8\xa0\xaa\xcc\x35\x8a\xd5\xc2\x8f\xb7\x13\xc1\xa9\x98\x36\ +\x50\xec\x62\xc0\xa8\xa6\xe7\x5a\xd0\xa1\x43\x87\x0e\x1d\x3a\x3c\ +\xee\xeb\xd4\x5b\x71\xc3\xa3\x69\xc9\xfb\xec\x73\x8c\x3e\x1a\xea\ +\xe0\xad\x44\xea\x83\xe3\x9b\x40\x4b\x34\x5f\xd6\xf6\x7c\xa2\xf9\ +\x1b\xe2\xa3\x04\xa9\x96\x2c\xc2\xef\x5a\xad\x5a\x59\x21\x17\x75\ +\x85\x7c\x75\x47\x52\x73\x45\x54\x2f\x67\x44\xea\x55\x61\xd7\xe5\ +\xe3\x2b\x09\xfa\x68\xeb\xd0\xa1\x43\x87\x8e\x2b\x4b\xb1\x69\xec\ +\x30\xe8\xe3\xa7\x7e\xd5\x68\x34\xaa\x2a\x14\xa2\xe0\x2c\xd5\x37\ +\x72\x55\x44\xd4\x29\x0b\x1a\x05\xe3\x95\x0b\xf2\x34\x00\x00\x20\ +\x00\x49\x44\x41\x54\x70\x8d\x82\xf2\x27\xe6\x54\xd9\x04\x86\x10\ +\x49\x01\xf0\x56\x01\x23\x0e\x91\x2e\x9c\x2c\x73\x9c\xcf\xe2\x9d\ +\xbb\x84\x11\x14\x60\x49\x3d\x68\x46\xc4\x91\xee\xbe\xeb\xef\x44\ +\x7c\x1e\xa5\xa8\x15\x95\x5d\x10\x27\xba\x39\x8e\xa5\xc1\x68\x04\ +\x2b\xc4\x24\xd9\x5c\xc4\x08\x79\x47\x44\xd2\x08\x2d\x44\xbe\xae\ +\x78\xc4\xc3\x4c\xa3\xde\xbd\x96\xf8\x59\xd7\xd0\xdc\x1d\xce\xc7\ +\x17\x53\x85\xf2\xad\x5b\x8c\x74\xe8\xd0\xa1\x43\x87\x0e\x2f\xc4\ +\x06\xe2\xa7\xe7\x35\x16\xa5\x88\x34\x82\x77\x9b\xc3\xc2\x11\x1e\ +\x11\xc1\xe7\x10\x24\x40\x64\x78\x04\x2a\x2b\xca\x60\x30\xb0\x92\ +\x0a\x42\x18\x06\x91\x91\x91\x4e\xbf\x0d\x0b\x8f\x00\xa5\x36\x80\ +\xf2\xc2\x70\x58\xa8\x09\x65\x65\xa5\x82\x92\xc2\xb7\xa0\xba\xa6\ +\x46\x78\xbe\xbd\x88\xac\x81\x65\x50\x56\x5a\x22\xc4\x28\xf1\xf7\ +\x99\x42\x4d\x30\x99\x42\x3d\xb6\xb7\xba\xba\x0a\x65\xa5\xa5\x3c\ +\x5f\x09\x85\x40\x1d\x93\x42\x00\x7c\xbc\x10\xc3\xb2\x20\x42\x56\ +\x72\x42\x08\x2a\xca\xcb\x7c\xa2\x12\xc7\x71\x28\x2f\x2f\x53\x28\ +\x2e\x0c\xcb\x6a\x2a\x08\x4b\x35\x5f\xd4\xd6\x16\x93\x29\x54\x48\ +\xfa\xc0\x53\x8e\x65\x0d\xa8\xad\xa9\x46\x69\x49\xb1\xf4\x9c\x5a\ +\x8b\x05\xa1\x26\x13\xc2\xc3\x23\x24\x89\xd5\x6c\x32\xa1\xa2\xa2\ +\xcc\x1e\x23\x44\x08\x8a\x8b\x8a\x5c\xf2\x84\x3c\x8d\x38\xe5\x38\ +\x54\x55\x55\xaa\x8c\x7f\xb8\x4c\x27\x62\x11\x16\x16\xe6\x33\xbf\ +\xd6\xd4\xd4\xc0\x52\x53\x63\x2f\x69\x45\x80\xa8\xa8\x68\x7d\x11\ +\xd5\xa1\x43\x87\x0e\x1d\x3a\x74\x04\x18\x97\x87\xa9\xc8\xe0\x59\ +\x55\xf3\x92\x1e\x24\xb8\x49\x48\xbc\x2c\x99\xbb\x63\xc7\x56\x45\ +\xfc\x4c\x79\x59\x19\x06\x0f\x19\x8e\x92\xd2\x12\x80\x02\xb5\x56\ +\x2b\x9a\x34\x69\x82\xb3\x67\x4e\x2b\x7e\x97\xda\xa5\x0b\x4e\x9f\ +\xfa\x5b\x20\x09\xff\xce\xbd\x7b\x76\xa3\x6d\x3b\x65\x6c\xcb\xb0\ +\x61\xc3\x70\xea\xe4\xdf\x92\x8b\x17\x01\xc1\x9a\x2f\x3e\x47\xdb\ +\xf6\xca\xd8\xa3\x27\x67\x4c\xc7\x8b\x2f\xbe\xe8\x91\x7e\x8f\x3e\ +\xfe\x38\x9e\x7a\xe6\x59\x45\x7f\x2f\xe5\x5f\x74\xba\xef\xbb\xef\ +\xbe\xc3\xd5\x5d\xaf\x96\x4e\xb0\x6b\x6a\x6a\xd0\xaf\x6f\x1a\x72\ +\xce\x67\x7b\x4d\xd3\xd3\xa7\x4f\xa1\x7d\x72\x07\x61\xf0\x79\xb1\ +\xbd\x7b\xf7\xee\xf8\x79\x63\xba\x8f\x96\x11\xdf\x39\x63\xc5\xf2\ +\xe5\x18\x35\x66\xb4\x64\xd1\x23\x00\x26\x4e\xba\x19\xc7\x4f\x9c\ +\x50\xdc\xf7\xbf\x1f\x7f\x40\x9b\x36\x6d\xa4\xa4\x0d\x35\x55\x55\ +\xe8\x3f\x60\x10\xca\xca\xcb\xa4\x8c\x19\x94\x3a\x5b\x88\xda\xb6\ +\x6d\x8b\x1d\x3b\x76\x28\xb2\xc6\xed\xdd\xb3\x17\x37\x8e\x1f\x27\ +\x34\x9d\x6f\xfb\x88\x11\x23\xb1\x7a\xf5\x2a\x7b\x42\x08\x10\x98\ +\xcd\x66\xaf\xfb\xc3\x09\xcf\x9b\x3e\xe3\x29\xac\x5f\xff\xa5\x44\ +\x1e\xc2\x30\x58\xf5\xc9\x27\x18\x33\x66\xf4\xe5\xb1\x8e\x92\x20\ +\x3c\x39\xf1\xcb\x7a\xa3\x6f\x95\x3a\x74\xe8\xd0\xa1\xe3\x32\x87\ +\x62\xb3\x13\xe5\x6c\xce\x61\x1f\xd7\xa8\x5f\x78\x51\x57\xa8\x6e\ +\x6d\x76\x7e\xde\x15\x6b\x29\xd2\xfa\xf2\xa6\x4d\x9b\x2a\x3e\x9b\ +\x8c\x46\x14\x16\x15\xa1\xb8\xb8\x48\x21\x04\xab\x21\x2e\x2e\x4e\ +\x31\x76\x61\x61\x61\x28\x2a\x2a\x54\xa4\x9f\xae\xa9\xae\x46\x7c\ +\x7c\xbc\x64\xa1\xa0\x94\x82\x61\x58\x14\x16\x16\x28\x7c\x6f\xf8\ +\x6c\x66\x9e\x39\xa2\xbc\xac\x0c\xe5\x65\x65\x1e\xfb\xd5\x24\xb6\ +\x09\xe2\xe2\xe2\xa4\xec\xd0\xd5\xd5\xd5\x20\x0c\xf1\x99\xe3\x0a\ +\x1c\x92\x12\x94\x95\x96\xf8\x3e\x0c\x75\x60\x8c\xe8\x98\x18\xc4\ +\xc7\xc5\x29\xe8\x59\x51\x5e\x8e\xc2\xc2\x4b\x52\x77\x58\xd6\x80\ +\x98\x98\x18\xa1\xff\xfc\xcb\xaa\x2a\x2b\x51\x54\x58\xc8\x2b\xbb\ +\x1e\x10\x17\x17\x27\x14\xb9\xe5\xdd\x1c\xa3\xa3\xa2\x9c\xee\x31\ +\x99\x4c\xc2\xf8\x13\xbf\x08\xc6\x65\xa5\xa5\x0a\x1a\x13\x86\x51\ +\xb5\x00\xea\xd0\xa1\x43\x87\x0e\x1d\x3a\x74\xe8\xf0\x5e\x31\xd0\ +\xae\x14\x51\x8f\xcf\xf2\x4e\x13\x0c\x42\x62\x68\x92\xc6\x25\x4b\ +\x13\x95\x5d\x22\x52\xbd\x1d\xb7\xb1\x2f\x84\x38\xd7\xe3\x61\x78\ +\xb7\x3c\xa7\x37\xcb\x95\x2d\x4a\xd5\xc9\x59\x07\x69\x9b\x65\x18\ +\xe9\xe7\xae\x2a\x11\xd7\x69\x04\xb5\xb6\x4d\x72\x43\x93\xd1\x53\ +\x65\x1c\x34\x3f\x8e\xcf\x75\x0d\xe5\x99\x85\x32\x6e\xcb\x66\xb3\ +\xda\xe3\x8c\xbc\x84\x81\xb5\xa7\x1d\x57\xf0\x8d\x83\x72\x2c\xd1\ +\xb6\x8e\x0a\x91\xdc\xe2\xe5\xc7\xe1\x87\xdf\xe6\xbd\xd3\xfd\x44\ +\x9b\x62\xab\x32\x8f\xbc\x7a\xbf\xb7\xcb\x0c\xd1\xf8\x3c\xe7\x11\ +\x70\xf1\x43\xa2\x69\x3d\xd1\x63\x8a\x74\xe8\xd0\xa1\x43\xc7\x15\ +\xa6\x5b\x28\xff\x21\x86\x87\x88\xb1\xb6\x8e\xfb\x6a\x43\x59\x86\ +\x3c\xa6\xc5\xbd\x82\xb3\xcf\x39\x25\x1f\xf0\x42\x68\x21\x3e\x66\ +\x29\xd3\x2e\xd8\x7a\x56\x0a\xfc\x21\x63\x51\x37\x7a\x98\x2b\xe5\ +\x44\x2b\x67\x6a\xe6\x71\x4e\x1b\x97\x73\x5e\x24\x8b\x20\x1a\x1b\ +\x43\xfc\x32\xa9\xa8\x26\x1e\xf1\x3b\xbf\x06\x6e\x95\xd3\xa1\x43\ +\x87\x0e\x1d\x3a\x74\xe8\xb8\xcc\x14\x03\xc0\x40\x08\xa7\x10\xed\ +\xfc\x66\xe7\xa1\x2e\x84\x28\xc6\x1e\x63\x21\x3f\xc0\x27\xf5\xd7\ +\x47\x94\x95\x94\xa0\xba\xba\x9a\xb7\xc8\x08\xc2\x2a\xc3\x30\x88\ +\x8e\x89\x95\xee\x33\x18\x42\x60\x34\x19\x3d\x3e\x8f\x65\x59\x44\ +\x47\xdb\x8b\x92\x12\x10\x34\x8d\x8d\x45\xc1\xc5\x3c\xa1\xdb\x0c\ +\x1f\xa7\x22\xd3\x66\x28\xa5\xa0\x14\x28\x2e\x2e\x41\x4c\x6c\x13\ +\xa9\x65\x0c\x61\x10\x16\x6a\xc6\xa5\x8b\x17\x15\xc2\x67\xa5\x4a\ +\xd0\xbe\xb3\x28\x4e\x61\x36\x87\x23\x46\xd6\x07\x00\xa8\xac\xac\ +\x84\xc5\x52\xe3\xb1\x1f\x25\x25\xc5\x28\xc8\xcf\x97\xda\x58\x55\ +\x55\x8d\xf0\xf0\x30\xc4\xc4\xc6\x4a\xfd\x0a\x0f\x8f\xd4\x9c\xce\ +\xda\x11\xb5\xb5\xb5\xb8\x54\x70\x09\x94\xe3\xa4\xb1\x56\xe3\xaf\ +\xca\xca\x4a\xc4\xc4\xc6\x4a\x45\x4f\x59\x86\x45\x08\xc3\xe0\x92\ +\x40\x4f\xf1\x17\xb5\x96\x5a\xc5\x78\x31\x84\xa0\xa2\xa2\xc2\xa9\ +\xaf\x6a\xba\x08\xf1\x37\x77\x39\x3c\x8e\x0d\x09\x41\x4c\x6c\x53\ +\x00\x9c\xc4\xf7\x66\x93\x09\x97\xf2\x2f\x4a\xca\x1c\x21\x04\x66\ +\x73\x98\x6a\x42\x0e\x6d\x8a\x78\x03\xf4\xcb\xcd\x7b\x09\x71\x41\ +\x03\x71\x20\x19\x1f\x8f\x74\x7c\x5d\x70\xfc\x7d\xbf\xbf\x62\x9b\ +\x48\xe3\x50\x23\xad\x36\xab\xb4\x9e\x81\x02\x36\x9b\x0d\x15\x15\ +\x95\xa8\x14\xdc\x74\x59\x86\x41\x68\xa8\x09\x61\x61\x61\xfc\x3d\ +\xa4\x61\xf8\x4d\x87\x0e\x1d\x3a\x74\x34\x2e\x48\x7e\x56\x06\xd6\ +\xc3\x36\x2b\xca\xff\x82\xc5\xc8\x31\x64\x83\xd6\x67\x0b\x65\x9f\ +\xdc\xbc\xc7\x10\x50\x2a\x36\x10\xee\xff\xbf\x87\xf0\xd5\x57\xeb\ +\x25\x65\x82\x21\x0c\xbe\xf9\xfa\x6b\x8c\x1a\x35\x52\x0a\xb4\x17\ +\x05\x57\x4f\x08\x0f\x0f\xc7\xa9\x93\x7f\x49\x82\x22\xa5\x40\xde\ +\x85\x5c\xb4\x6c\xd3\x0e\x9c\xcd\x26\x93\xad\xec\x49\xbb\x45\xa4\ +\xa5\xf5\xc3\xc5\xbc\x0b\x7c\xec\x8e\x70\xe3\x86\xaf\xbe\x42\x8b\ +\xa4\x56\x00\xb5\xa7\x29\x76\x74\xb1\x73\x45\xaf\x05\x0b\xff\x8d\ +\x37\xde\x78\x5d\x48\xff\x4d\xc1\x71\x14\x93\xef\x98\x82\x75\x62\ +\x40\xbe\x1b\x0c\x1e\x3a\x4c\x11\x43\x64\x32\x85\xe2\xd0\x81\xfd\ +\x68\xd7\xbe\xbd\xc2\x3d\x4c\x4d\x29\xd2\x82\x03\x07\x0f\x20\x21\ +\x21\x51\x21\x5d\x2b\xe5\x5f\x3e\x9b\xc1\x5d\x53\xa6\xe0\xe2\xc5\ +\x0b\x0a\xb7\xc3\xf9\xf3\xe7\xa3\x45\x52\x2b\x41\xf9\xe2\x95\xa5\ +\x79\x73\xe7\x22\x3f\x3f\x8f\xbf\x4f\xf0\xb6\xbb\xe7\x9e\x7b\xb1\ +\x7a\xf5\x2a\xbf\xf0\x5a\x5d\x2c\x3b\x7d\xfb\xf6\xc6\xa5\xfc\x3c\ +\x85\xc2\xfa\xdf\xaf\xbf\x41\x62\x52\x6b\x5e\x21\x16\xfa\x3a\x6d\ +\xea\x54\x7c\xb8\xf2\x83\x46\x39\x87\x82\x5e\xca\x0f\xc6\x5d\x22\ +\xc8\x91\x93\x93\x8b\xb3\x67\x33\x90\x95\x7d\x1e\x45\x45\x45\xb0\ +\x5a\x6d\xd2\x9c\x13\x63\xe1\x42\x8c\x06\xc4\xc6\xc4\xa0\x65\xcb\ +\x44\xb4\x6d\xd3\x1a\x57\x5d\xd5\x46\x1f\x5b\x1d\x3a\x74\xe8\xd0\ +\x71\x19\xca\x07\x04\x06\x50\x46\xa9\x3a\x51\xea\xb6\x7f\xd4\xe5\ +\x05\xea\xa0\x82\xb9\x28\x2c\x22\x9d\x3c\x33\x8a\xf7\xd5\x9b\xd3\ +\x3d\xa5\x20\x94\xc2\x66\xb5\x07\xa5\x73\x00\x08\x43\x84\x13\x50\ +\xe2\xf5\x78\xca\x15\x05\x42\x00\x03\x1b\x82\xda\x9a\x6a\x8f\xbf\ +\xb3\x59\xad\x30\x18\x0c\x42\xb3\xec\x25\x7c\x6d\x56\xab\x26\xf3\ +\x8b\x68\x4d\x01\xec\xb1\x4b\xa2\xa6\x4d\x41\xc0\xb0\xda\xeb\xbf\ +\x50\xce\x26\x25\x06\x01\x00\x1b\x5b\x0b\x96\x35\x80\x75\xa1\x04\ +\x49\xed\xf5\xc2\xf7\x93\xb3\x59\x3d\x5a\x02\x38\x4a\x61\x60\x0d\ +\x0a\xfe\x20\x84\xe1\x69\xe2\xa0\xd9\xb3\xac\xc1\xce\x26\xd4\xf5\ +\xc9\xb5\x9c\x4e\x6e\x79\xd9\xe1\x3e\x5f\x66\xb5\xa3\xf2\x28\xa5\ +\xcc\xa6\x80\xd5\x5a\x0b\xb9\x09\x82\xca\x6a\x46\x69\x55\xc2\xb8\ +\x00\xbb\xcd\xd9\xdd\xf6\xa8\x70\x1c\xe4\x6a\x40\x95\x25\xa9\x9d\ +\xb2\x3c\x3a\x1c\xcd\x90\x06\xee\x17\x15\xde\x4f\x28\xf1\xc8\xb7\ +\x6a\xfd\xa3\x2e\x6f\x24\xaa\x1f\xed\xb4\xaa\x6f\x5b\xb8\xa7\x71\ +\xe3\x21\x26\xe5\xb0\xd4\xd6\xe2\xc8\xd1\x63\x38\x7a\xf4\x38\x4a\ +\x4b\xcb\xc0\xb9\x2c\xc3\xc4\x5b\xb7\x2d\x35\xb5\xc8\xcb\xcb\x47\ +\x5e\x5e\x3e\x0e\x1c\x38\x8c\x98\xe8\x48\x74\xe9\xd2\x19\x57\x5f\ +\xdd\x15\x61\x66\x73\xa3\xab\xbb\x45\x5d\xc4\xfe\xf9\x6b\x7c\x02\ +\xef\xe6\xda\x38\x21\x66\x78\xa5\x94\x62\xf7\x9e\xbd\xc8\xce\xce\ +\xc2\xad\xb7\xdc\xa2\x99\xbf\x74\xba\x07\xc7\x7c\xd2\x71\x65\xd2\ +\x9d\x8a\xb2\x3c\xd1\x74\xa7\xdf\xf5\x2a\x97\xfb\xb3\x8b\x50\x60\ +\xea\x10\xeb\x24\x37\x0f\x19\x02\x4e\xc9\x86\xd8\x53\x49\x3d\x2b\ +\xb5\x75\x08\x12\xd3\x2a\x53\x50\xed\xb3\xc5\xf7\x6e\x10\xdf\x59\ +\xd0\x57\x78\xe3\x75\xa5\xe6\x42\xa8\x6d\x30\x34\x32\x00\xa1\xfe\ +\x1b\x6b\x15\x62\x92\x3a\xd0\x8d\x06\xc3\xd1\x8c\x6e\x29\xaa\xeb\ +\x80\x05\x14\x47\x8e\x1e\xc3\x9e\xbd\xfb\x51\x59\x59\xe5\xf3\x33\ +\x4a\x4a\xca\xf0\xfb\xae\x3d\x38\x74\xf8\x08\x7a\xf7\xba\x0e\xd7\ +\xf6\xe8\xde\xe8\x86\xe6\xe0\x81\x83\xf8\xe1\x7f\x3f\xf2\x82\x05\ +\x61\x70\xdb\x2d\xb7\x20\x25\xa5\xa3\xce\xb3\x01\xc6\x86\x6f\xbe\ +\xc1\xda\xb5\x5f\x22\xe3\xec\x19\x18\x42\x42\xd0\xb5\x6b\x17\x74\ +\x49\xed\xa2\x13\x46\x87\x8e\xe0\xd7\xd2\x2e\x9b\x7e\x18\x5c\x1d\ +\x78\x6a\x4f\x37\x47\x5d\x68\x66\x54\xfd\x6e\xc1\x3c\xc1\x3a\x04\ +\xd8\x7b\xab\xf9\x72\x4e\x59\xdc\x18\xed\xb2\x89\x3c\xe6\x87\xd2\ +\x3a\xcb\x30\x04\x04\x84\xb0\xc2\xe3\x6c\xae\xef\x63\x88\xd4\x4f\ +\x7b\x7f\x89\xb6\x97\x53\xf7\x74\x22\xfe\x10\xc6\xa8\x86\x13\x09\ +\xea\x25\xff\x6b\x48\x2e\x26\xb7\xd8\x38\xb3\x0f\x95\x14\x20\x0a\ +\xb9\x41\x93\xba\xe5\x19\xe5\x77\xd4\xe5\x1c\x56\x8c\x07\xd5\x3e\ +\xff\x5d\xbe\x5b\x6e\xf9\xa4\xca\x9e\xca\x2d\x5b\x5a\xf9\xdd\xed\ +\xb8\x7a\xa0\x81\x5f\xf5\x21\xca\x02\x94\x51\x39\x79\x51\x3f\x8a\ +\xa1\x8e\xdf\x3b\x58\xa4\x69\x43\x6b\x0d\x14\xbe\xbd\xd7\xa5\x99\ +\x51\xfc\x82\x53\x5f\x0f\x29\x07\x56\x46\x9b\x40\x9d\xec\xd9\x6c\ +\x36\x14\x17\x97\x60\xf3\x96\x6d\xc8\xc9\x39\x0f\xce\xc1\xe0\x2b\ +\xfa\x82\x33\x20\x60\x58\x56\x8a\xab\xe4\x38\x0e\x56\xab\x15\x1c\ +\xc7\x81\xe3\xec\x7c\x46\x41\x41\x6d\x40\x65\x45\x15\xb6\x6e\xdd\ +\x89\x53\xa7\xcf\x60\xd8\xd0\xc1\x88\x8d\x89\x11\xd8\xde\x3f\x9a\ +\xb3\xd6\xf5\xdd\x17\x9c\x3e\x7d\x1a\x1b\x36\x7c\x2d\x8d\x5e\xff\ +\x7e\xfd\xd0\xb1\x63\x07\xbf\xd2\x5d\x6c\xbf\xaf\xed\x16\xb9\xc5\ +\xd1\x62\x5e\xdf\x10\xdb\x4d\x08\x01\xc3\x30\xbc\x37\x45\x83\x2c\ +\x30\x04\xbf\xee\xd8\x89\xd3\xa7\x4e\x0b\xd3\xcb\x8a\xf7\x96\x2e\ +\xc5\x7b\xef\xbc\xdb\xa0\x74\x0f\x14\xea\x93\xdf\x1b\xb2\xfd\x8d\ +\xbd\xdd\x8d\xcd\xf2\x15\x4c\x74\x27\x94\x01\x6c\x62\xdd\x13\x87\ +\x95\xcc\x31\xa6\xdc\xbd\xa3\x09\xfc\x57\x80\xc8\x21\x14\x85\x32\ +\xea\x7a\x89\x34\xff\x6c\x81\xb3\x14\x51\x96\x6b\x98\x81\x02\x90\ +\x10\x9f\x80\x8e\x1d\x53\x20\x77\xb8\x2a\x2e\x2a\xc2\xd1\xa3\x47\ +\x84\x42\x98\x62\x5c\x11\x91\xe2\x84\x78\x41\x9d\x41\x6a\x6a\x67\ +\x8f\xef\x30\x84\x18\xd0\xa1\x63\x07\xde\x55\x4f\x14\xee\x15\xa3\ +\xce\x3f\xb7\x45\x5c\x1c\x4e\x9c\x38\x2e\x65\x5c\xa3\x00\xce\xe7\ +\xe6\x3a\x3d\x2f\x2a\x2a\x1a\xf1\x09\x09\x76\xc1\x85\x61\x10\x17\ +\x17\xaf\x79\x73\x71\x44\x52\x52\x12\xc2\xc2\xc2\x65\xb7\x10\x64\ +\x9c\x3d\x8b\x1a\x87\x24\x05\xa7\x4f\x9f\x46\x55\x75\x15\x2f\x6c\ +\x03\x2e\xfb\x4f\x7c\x64\xd9\xb0\xf0\x70\xb4\x4c\x6c\x29\x46\x2c\ +\x80\x61\x08\x92\x5a\xb6\x74\x72\x75\x8b\x8d\x6d\x22\x8c\x97\x70\ +\x27\x43\x10\x1f\x17\x0f\xa2\x41\x5e\xcd\xc9\xc9\xc6\xf1\xe3\xc7\ +\xa4\x06\x32\x0c\x83\xaa\xea\x6a\x4d\xb2\x6e\xfb\xe4\x0e\x28\x2f\ +\x2f\x97\x48\xc8\xd9\x6c\x38\x79\xea\xa4\xe2\x1e\x8b\xc5\x82\xe3\ +\xc7\x8f\x83\x65\x19\x41\x19\x26\x8a\xb4\xe2\xa2\x6e\x55\x58\x58\ +\x88\x8e\x1d\x3b\x4a\xc6\x50\x86\x61\x90\xd8\xb2\xa5\xff\x99\xbb\ +\xc1\x56\x3c\xfd\x30\xcc\x2b\x30\xc1\x41\xb0\xec\x9c\x1c\xa4\x6f\ +\xdc\x8c\xca\x8a\x0a\xd5\xef\x13\x12\xe2\xd0\xf6\xaa\xd6\x48\x4c\ +\x6c\x81\x98\x98\x68\x18\x4d\x26\x30\x0c\x01\xc7\x51\x58\x6a\x6a\ +\x50\x5c\x52\x8a\x9c\x9c\x5c\x64\x64\x64\xe2\xc2\x85\x8b\x2a\xf3\ +\x2d\x17\x1b\xbe\xfe\x16\xa3\x47\x0d\x47\xcb\xc4\xc4\x46\x31\x34\ +\x0a\xc5\x2d\x88\x85\xa0\xd9\xb3\x5e\xc1\xfe\x7d\x7b\x15\x0e\x15\ +\xae\xac\xe3\x6e\x4b\x3a\x10\xf7\x13\x98\x2a\x24\x12\x7e\x0d\x0b\ +\x31\xf2\xca\xf1\xaa\x55\x9f\x20\x46\x50\x78\xeb\x77\xba\x10\x3c\ +\xf6\xd8\x63\xd8\xbd\x7b\x0f\xaa\x6b\xf8\x7d\x69\xf7\x9e\xbd\xd8\ +\xbe\x63\x07\xae\x1f\x38\x50\x5f\x4f\x74\xe8\x08\xfa\x85\xf5\xf2\ +\xd8\xb7\x0d\x8e\x1a\x1c\x88\x43\x2c\x90\x63\xcc\x8f\x53\xde\x66\ +\x51\x09\x70\x4f\x11\x69\xe1\x15\x62\x61\x38\x68\x4f\x6e\xa0\xda\ +\x76\x07\xcd\xd8\xdd\x73\xde\x5e\xfc\x16\x16\x71\x6f\x2a\xee\x1b\ +\x3e\x7c\x04\xb6\x6e\xdb\xc6\xc7\xbd\xa8\x8d\xaf\x70\x42\xf6\xd7\ +\x9f\x7f\x22\x39\x39\xd9\xed\x78\xc7\x36\x69\x82\x13\xc7\x8f\x79\ +\x6c\xf3\x8e\xed\xdb\xd0\xed\x9a\xee\x0a\xa5\x49\x2d\xa9\xc2\xad\ +\xb7\xde\x82\x15\x2b\x56\x78\x75\x02\xe0\xc2\x40\x07\xc2\x30\xf8\ +\xe0\x83\x95\x18\x39\x72\x84\xe2\x7a\xf7\x6b\x7a\xe0\xc8\xd1\x3f\ +\xec\xc2\x7e\x4d\x0d\x46\x8e\x1a\x09\xc2\xb0\xd2\xf0\x9b\x43\xc3\ +\x90\x9d\x95\x89\xd8\xd8\x58\xcf\x5a\x91\x86\x4c\xd5\x83\xae\x1f\ +\x84\x1f\x7e\xf8\xde\xe3\x78\x3d\xf8\xe0\x03\x78\xf0\xc1\x07\x7c\ +\x9a\x85\x0f\x3f\xfc\x88\xd0\x6f\xc1\x72\xc7\xd9\x5c\xd2\x4b\xde\ +\x06\x73\x58\x18\xf6\xef\xdf\x6b\xff\x9e\xe3\x50\x58\x58\x88\xf8\ +\x84\x16\xfc\xf9\x81\xc0\x27\x99\x99\x99\xe8\xde\xdd\xd9\x65\x48\ +\x4e\x37\x00\x18\x33\x7a\x0c\x4e\x9c\x38\x26\x5d\xa8\xfb\x49\x8e\ +\x33\xc1\x29\x45\xbd\xc7\x74\x50\xe9\xbc\x85\x13\xaa\x53\x13\xf5\ +\x93\x17\xe5\xf4\x76\x4a\x4a\x47\x1d\xc7\x8c\xb8\x88\xc5\x71\x8a\ +\x51\xd4\x58\xcf\xc8\x77\x09\xd9\xe1\xb4\x4b\xf9\x7e\x4a\xd5\x97\ +\x43\xd9\x4a\xe4\x42\x18\x25\xb0\x81\x04\x2c\xe6\x86\x52\x8a\x33\ +\x67\xcf\x22\x3d\x7d\x13\xaa\xaa\xab\x15\xc9\x64\x8c\x21\x21\x68\ +\xdb\xb6\x0d\xba\x77\xef\x86\x96\x89\x2d\x5c\x1f\x62\x98\xcd\x88\ +\x89\x89\xc1\x55\x6d\x5a\xa3\x4f\x9f\x9e\xb8\x70\x21\x0f\x7f\x1c\ +\x39\x8a\xb3\x67\x32\x60\x11\x62\x94\x28\xc7\xa1\xac\xb4\x0c\x3f\ +\xfc\xb8\x11\x23\x46\x0c\x45\x3b\x21\x11\x43\x5d\xfb\xed\xcd\xfa\ +\xee\x2d\x3f\x13\x42\x64\xb1\xb3\xea\xf3\x88\x02\x38\x7b\xf6\x2c\ +\xe6\xcf\x7f\x03\x94\xa3\xf6\x24\x38\xd4\x39\x46\x8c\x38\xee\x73\ +\xc2\xa1\x12\x08\x51\xd6\x82\x03\xf0\xd6\xa2\x45\x88\x88\x88\xd0\ +\x34\x7e\x85\x05\x05\xc8\xbd\x70\x41\xa0\x07\xbf\xbe\xd8\x28\xa7\ +\x5c\x0a\x44\x85\xc7\x71\x1f\x97\x62\x17\xed\x1f\x29\x1f\xb0\x29\ +\xae\x1e\x8a\xe7\x38\xf6\x8a\x65\x85\x7d\xda\x29\xee\xd2\xb7\xd5\ +\xca\xd3\x2a\x4e\x29\x45\xbb\x76\x6d\x31\x79\xf2\x64\x7c\xf4\xd1\ +\x47\xe0\xac\xfc\xba\xbd\x6c\xc5\x72\xf4\xed\xdb\x17\xc6\x90\x10\ +\xf5\x75\x03\xd4\x9e\xf1\x48\xc6\x37\xe2\x09\x7a\x83\x59\xba\xea\ +\x2a\x8b\xd5\x13\xbf\x37\x74\xfb\x1b\x6b\xbb\x75\xba\xfb\x41\x4e\ +\xe0\x4f\x7f\xd5\xf7\x57\xa7\x98\x5b\xaa\x3c\xce\x71\x9a\xd7\xa4\ +\x0e\x2b\x8a\xfc\x57\x8c\xea\xe3\x88\xa3\x65\x8a\x13\xee\x63\x49\ +\x80\x63\x8a\x02\xcc\x7f\xae\x14\x22\x97\x27\x6e\xfe\x92\x30\x3d\ +\xca\x69\xc4\xaf\x2f\x51\x13\xc8\x39\x4d\x89\x1d\x38\xcd\x75\x94\ +\x02\x31\xd6\x75\xa1\x13\xd1\xf4\xfc\xc0\xb4\x4d\x3b\xeb\x04\xc6\ +\x05\x4d\x87\x16\x5a\x05\x76\x71\xcb\x39\x7f\x1e\x1b\x37\x6e\x72\ +\xb2\x92\xc6\x35\x6f\x86\x81\x03\xd3\xd0\x2a\xa9\x25\x88\x97\x8a\ +\x7a\x42\x42\x3c\x5a\xb4\x48\xc0\xb9\xac\x6c\xfc\xba\xf3\x37\xe4\ +\x5f\x2a\x90\xbe\xab\xac\xa8\xc4\xcf\x3f\x6f\xc6\xd8\xb1\xa3\x90\ +\x14\xcc\x16\x23\x2f\x78\xb8\xac\xac\x0c\xfb\xf7\xed\x13\xd6\x4b\ +\xce\xf3\x76\xe0\x21\x74\x91\x65\x0d\xb0\x6a\x74\x87\x53\xe3\x9e\ +\xd4\x2e\x5d\xa4\x0e\x30\x20\xc2\xf8\x89\xca\x2e\x23\x65\x78\xb1\ +\x59\xad\x38\x72\xf4\x88\xf4\xbb\x96\x89\xad\xd0\xa4\x69\x53\xc5\ +\xc2\x26\xc6\x37\xda\x6a\xf9\xe4\x3f\x22\xbb\xe6\x64\x67\xe3\x52\ +\x41\x41\x9d\xf6\xbf\x4b\x05\x05\xd8\xf4\xcb\x26\x70\xd2\x81\x94\ +\x78\x8a\x46\x5c\xe6\xdd\xe1\xe3\xbb\x88\x60\xa9\x64\x24\x7a\x87\ +\xb0\x21\xf8\xe2\x8b\x35\x30\x1a\x43\x14\xf6\x30\xd5\xe5\x95\x8a\ +\x4a\x1c\x60\x36\x87\x61\xdc\xb8\x1b\xf5\x75\x48\x87\x8e\x86\x92\ +\xa7\x2f\x8b\xb8\x22\x02\x83\xeb\xe0\x72\xc7\x6c\x63\x1e\xb2\x31\ +\x79\x54\xec\x44\x9f\x24\xf1\xc4\xad\x61\x85\x06\x47\x9f\x51\x79\ +\x0a\x68\xd5\xde\xdb\x6c\x08\x31\x9a\x04\xe1\x96\xca\xf2\xab\x6b\ +\x3b\x71\x50\xa5\x26\xe5\x5d\xb2\x3c\x4a\xe2\x94\x2a\xd2\x65\x6b\ +\xda\xeb\x5d\xa7\x91\x02\x43\x9c\xdb\xe7\xca\x77\x56\x61\x59\x21\ +\x5e\x68\x33\x1e\x93\x6c\xf1\xee\x72\xfe\x54\x8e\xdc\x29\x1e\x4e\ +\x16\x22\x87\xdd\x98\x10\xe2\x3e\xcf\x07\xe1\x05\x0e\x9b\xcd\xaa\ +\x91\xfe\x36\x07\x9a\x13\x10\xa1\x66\x55\xdd\x64\x38\x1a\xe4\x4a\ +\x8a\xe8\xa7\xe8\x42\xd8\xd1\x50\x41\x5a\x7d\xbd\xf1\x74\xbd\x7e\ +\xa4\x64\xea\xe2\xfd\xd4\x55\x96\x32\x27\x4b\x17\x51\x7e\x17\x80\ +\xe4\x73\xa5\x65\x65\x48\x4f\xff\x05\x55\xd5\x35\x32\x7e\x64\x90\ +\x9a\x9a\x82\xfe\xfd\xfb\xf9\x94\x35\xce\x20\x3b\x71\x6f\xdb\xa6\ +\x35\x9a\x37\x6b\x8a\x2d\x5b\x77\xe0\xd4\xc9\xd3\x92\xd2\x50\x51\ +\x51\x81\x9f\x7f\xd9\x82\x9b\x27\x4e\x40\x94\x8f\xf5\xb8\x1a\x6c\ +\xeb\x13\xd7\x57\xce\x8d\x32\x43\xe5\x11\xb3\x1e\xd2\x68\x12\xe5\ +\xb8\x13\x47\x5f\x7a\x26\x04\x1c\xf5\x42\x70\x70\x58\x2a\x43\xc3\ +\xc2\xf0\x9f\x8f\x56\x82\x65\x59\x14\x14\x14\xe0\xa5\x97\x67\xa3\ +\x57\xef\x9e\xb8\xfb\xce\x3b\xf9\xf1\x31\xd8\xcf\x37\xab\x2a\xab\ +\x30\x74\xe8\x70\x58\x6a\x6b\x00\x30\xb8\x6b\xea\x5d\xb8\x79\xd2\ +\x44\x47\x2d\x04\x3b\x76\xee\xc4\xe2\x25\x8b\xf1\xd2\xcb\x2f\xa3\ +\x7b\xb7\x6b\x00\x00\x0b\xde\x58\x88\xb5\x6b\xd7\x48\xd9\xe0\xbc\ +\xe5\x5b\x0a\x8a\xdc\x9c\x5c\xcc\x9f\x3f\xdf\xad\xa0\xe4\x68\x39\ +\xa6\x0e\x59\x2b\x45\x72\x1e\x39\x7a\x14\x47\x8e\x1e\x55\x79\x80\ +\x70\xd2\x2c\xee\xeb\x9c\x32\xb6\x39\x26\x36\x16\xa3\x47\x8f\x6a\ +\x34\x96\x22\x1d\x3a\x2e\x0b\x88\x87\x3e\xc6\x10\xf5\x7d\xd4\x59\ +\x93\x52\xc8\x0f\xce\xa7\x1d\x5a\x03\xbd\x35\xea\x25\x0e\xd7\xc5\ +\x83\x16\x6a\xb2\x5b\xaa\x02\x16\x9d\x15\xf0\x80\x36\x0d\x8b\x7d\ +\xad\x10\x73\xe3\x9f\xa6\x6a\x7f\x48\x9d\x04\x69\x42\xfd\xdd\x1c\ +\xff\x91\x9c\x36\xfc\x18\xfa\x4e\x04\xda\x60\xe3\xad\xe9\x14\x86\ +\xa3\xfe\xe5\x13\xef\x27\xac\xbe\xe0\xfb\x53\xa1\xad\x27\x70\x1c\ +\x87\xcd\x9b\xb7\xa1\xa4\xb4\x4c\x71\x3d\x35\x35\x05\x83\x07\x5f\ +\x8f\x30\xb3\xd9\x2f\xef\x09\x0f\x0b\xc3\x90\xc1\x03\x91\x9a\xda\ +\x49\x71\xbd\xa8\xb0\x18\xdb\xb6\xff\x1a\xc4\xda\x90\xf6\x65\x84\ +\x65\x59\x84\x85\x86\x21\xd4\x68\x86\xd9\x64\x86\xd9\x14\x8a\xd0\ +\xd0\x50\x84\x9a\xec\x7f\x26\x53\x28\x4c\x26\x33\x4c\x46\xfe\xdf\ +\xa1\x26\x33\x42\x43\x5d\xd3\x98\xad\x83\x1b\x2d\x21\x0c\x2c\x16\ +\x0b\x9e\x78\xea\x59\xec\xda\xbb\x0f\x4b\x97\xad\xc0\x9b\x6f\xbd\ +\xe5\x5a\x41\xa3\x76\x85\xd8\x11\x3b\x76\xee\xc4\xcc\xe7\x5f\xc0\ +\xe9\xb3\x19\x78\x62\xfa\x0c\xfc\x7d\xf2\xa4\x8b\x95\x8b\xd4\x9d\ +\xc0\xc1\xba\xc1\xeb\xd0\xa1\x43\x87\x03\x0c\x92\xc5\x86\x70\x0a\ +\xcd\xc9\x77\x51\xcf\xe1\x64\xd7\xf1\xe8\x55\x5e\xf7\xa4\x01\x64\ +\x06\x0a\x8a\x63\x47\x8f\x23\xef\xe2\x05\x10\xa1\x40\x2a\xc3\x30\ +\x28\x2a\x2c\xd4\xf4\xfb\x5d\xbb\x7e\x47\x66\x46\x86\xb4\xd9\xb0\ +\x06\x03\xfa\xa7\xa5\x21\x24\xc4\xae\x09\x5b\x2c\x16\xec\xdc\xb9\ +\x53\xa1\xec\xf1\xfb\x10\x51\x64\x8d\x3b\x7d\xea\x34\x06\x0e\x1c\ +\x24\xed\x5b\xa2\xb5\xc2\x51\xd0\x4d\x49\xe9\xe4\x79\x1c\x28\xc5\ +\xdf\x7f\x9f\x44\x76\x76\x96\xf4\x99\x61\x18\xe4\xe7\xe7\x6b\xea\ +\xd7\x75\xbd\x7a\xa1\x59\x5c\x33\xe1\x3d\x7c\x76\xa9\xdd\xbb\x77\ +\xa3\xc6\x43\xbd\x25\xaa\x71\xf8\x23\x22\x23\x71\xed\xb5\xd7\x49\ +\xf4\x60\x19\x06\xad\x92\x92\xb0\x65\xf3\x66\x49\xc8\x27\x84\xa0\ +\x45\x62\x22\x3a\x77\xea\xa4\xc8\x3e\x77\x2e\x33\x13\xa7\x4e\x9d\ +\x52\xe4\xbd\x97\xea\x5a\x09\x6d\x25\x84\x41\xae\x4a\x92\x8a\xce\ +\xa9\xa9\x68\xda\xb4\x19\x18\x22\xf3\x55\x15\xd2\xd6\x11\x6a\x3f\ +\xf1\xfd\xe3\xf0\x21\x64\x64\x66\xf2\x42\x83\xa3\xa0\x42\x39\x50\ +\x00\x15\x15\x95\x3e\xf3\x5d\x41\x41\x01\x36\x6d\xda\x64\x1f\x57\ +\x86\x68\xe0\x7b\x22\x33\xce\x29\x4f\x50\x63\x63\xa2\x31\xf0\xfa\ +\x41\x12\x9d\x58\x86\x45\xb3\xe6\xcd\x82\x67\x25\xe1\x1c\x35\x5f\ +\xa2\xfa\xd9\x5e\xd2\x98\x04\x4e\x3b\x77\xf7\x5a\xa7\x83\x2a\xe1\ +\xe4\x9a\x52\xd5\xe5\xcc\xed\x73\x69\xc3\x1b\x8a\x4e\x9e\x3c\x85\ +\xb3\x19\x99\xd2\xc9\x39\x01\x41\xbb\xf6\x57\x61\xc4\x88\x61\x7e\ +\x6d\x07\x21\x04\x11\xe1\xe1\x18\x3c\x68\x00\xaa\xaa\xaa\x70\xe6\ +\xf4\x59\x69\x7c\xff\xfe\xeb\x24\x4e\xa6\x74\x44\x72\x72\xbb\x80\ +\x8b\xa6\x95\x55\x55\x58\xb4\xe8\x2d\x44\x45\x46\x22\x26\x36\x16\ +\xfd\xfa\xf5\x03\x6b\x34\xda\x2d\x0b\x42\x03\xcf\x66\x64\x60\xc9\ +\x92\x25\x78\xe2\x89\x27\xd0\xa6\x4d\x6b\x10\x10\x74\xed\xda\x05\ +\xe9\x1b\xff\xe7\x95\x18\x2e\x8e\xf7\x67\x9f\x7d\x8e\x95\x2b\x57\ +\xa2\x56\x38\x39\xa5\x9c\x15\x23\x47\x8c\x40\x74\x74\xb4\xe6\xa7\ +\xc9\xe3\x1e\x19\xc1\x74\x65\x34\x1a\x31\xed\xce\x29\x98\x33\x67\ +\x0e\xca\x2b\xab\xb0\xe6\xcb\x75\x28\x2b\x2d\xc1\x4b\x2f\xbe\x84\ +\x50\xb9\xc2\x2b\x25\x80\xa1\x20\x84\x4a\xeb\x21\x05\xc5\x2f\x9b\ +\x36\x63\xd6\xcb\xb3\x50\x5d\x5d\x0d\x86\x00\x83\xaf\xbf\x1e\x29\ +\x1d\x3b\x0a\xef\xe1\xd7\x4b\x8f\xe5\xbc\x28\xc5\x1f\x47\x8e\xe2\ +\x7f\xff\xfb\x1f\xb6\x6e\xdd\x82\xc7\x9f\x78\x1c\x63\x46\x8d\x96\ +\xde\x2b\xae\xd7\x84\xda\xd0\xa4\x69\x53\x44\xc7\xc4\x4a\xfc\xa8\ +\x3c\xcb\x21\x6e\x27\x13\x71\xfa\x97\x4c\xef\x73\xca\xee\x69\xcf\ +\x92\x18\x1d\x13\xdb\xe8\x32\xa1\xe9\xd0\xd1\xd8\x8f\x01\x55\x16\ +\x0a\x07\xb5\x40\x99\x7d\x56\xac\xb3\xa9\x59\x1e\x70\x11\x83\x4c\ +\xbd\x6c\x9b\xe4\xf9\x25\x5e\xae\x11\xfe\x61\x0c\x70\x9d\x22\xda\ +\x40\x2f\x99\x3b\x6f\x1e\xd6\xaf\x5b\xa7\x1c\x0c\x4e\x5b\xf6\xbb\ +\xbb\xef\x9e\xaa\x30\xe9\x85\x85\x85\x23\xe3\xec\x19\x34\x6b\x66\ +\x17\x48\x4b\x8a\x8a\x31\x72\xd4\x68\x50\x8e\xb3\x1b\x09\xa9\xf3\ +\xba\xdf\x2f\x2d\x0d\xdb\xb6\x6e\xb5\x0b\xec\xf0\xfd\xb4\x9f\x02\ +\x58\xf2\xce\x3b\x58\xb6\x6c\xa9\x62\x33\xd6\xda\xaf\x4f\x3e\xfe\ +\x50\xf1\xb9\xaa\xba\x1a\x9d\x52\x3a\x23\x2b\x2b\xd3\xed\x76\xa5\ +\xb5\xb5\x9d\x3a\x75\xc6\xa6\xcd\x9b\xc0\xc8\xfa\xb8\xe1\xab\x0d\ +\x18\x31\x72\xb4\xb0\x71\x51\x81\xbe\x77\xe3\x3f\x1f\x7d\xa4\x98\ +\x44\x9f\x7f\xfe\x05\x5e\x7a\xe9\x25\x99\x5a\x0b\x55\xe9\x52\xad\ +\xaf\xaf\xcd\x9b\x87\xf1\x13\xc6\xdb\x33\xc3\xa9\x6c\xe6\xb5\x16\ +\x0b\x52\xbb\x74\x45\x46\xc6\x59\xc7\x7d\xd5\x6f\x07\x8d\xbf\xfd\ +\xf6\x1b\x46\x8e\x1a\x55\x37\x46\x97\x29\x84\xcb\x97\x2f\xc3\x7b\ +\x4b\xdf\xab\x13\xcf\xe8\xb8\xdc\x16\x37\x15\xbe\xdb\xb5\x47\x61\ +\x55\x8c\x8e\x8e\xc2\xb0\xa1\x83\xeb\xed\x7d\x46\xa3\x11\x83\x07\ +\x0f\x44\x61\x41\x21\x8a\x8b\x4b\xa4\xeb\xbf\xef\xda\x8b\x76\x6d\ +\xdb\x04\xdc\x7d\x29\x2b\x2b\x0b\x5f\x6f\xd8\xc0\xa7\xf0\x27\x04\ +\x51\xd1\xd1\x92\x07\x80\xb8\x67\x7f\xfb\xdd\x77\x38\x78\xf0\x20\ +\xca\xcb\xcb\x51\x51\x51\x81\x65\x4b\x97\x4a\xed\x0e\x0b\x0b\xf3\ +\x7a\xd8\x77\x6c\xdf\x81\x95\x2b\x57\x2a\xae\x77\xeb\xd6\x0d\xb3\ +\x66\xbd\x5c\x87\x9e\xd8\x05\xfc\xe1\xc3\x87\x22\x2c\xcc\x8c\x99\ +\x33\x9f\x47\x59\x55\x25\x7e\xf8\x69\x23\xaa\xaa\xab\xf1\xda\xdc\ +\x79\x30\x0b\x8a\x11\x71\x3e\x6a\x01\x00\xac\x5f\xbf\x01\x0b\xde\ +\x78\x43\x52\xd6\x6e\xbc\xf1\x46\xcc\x7a\xe9\x65\x37\x87\x02\xae\ +\x5b\xf4\x9f\x8f\xfe\x83\x1d\x3b\x77\x00\x94\xe2\xeb\x0d\x5f\x63\ +\xd4\xc8\x51\xc2\xde\x46\x14\xcf\x9b\x3a\xed\x1e\x4c\xbe\xe3\xb6\ +\x06\x51\x90\xa9\x10\x53\x64\xb3\x71\xfa\x1a\xa4\x43\x87\x0e\xaf\ +\x37\x6e\x46\x7d\x59\xa7\x4a\x7f\x78\x38\x7d\xf4\x8b\xd0\xd0\x20\ +\xa2\x1d\xe1\xb7\x13\x8e\xb3\x81\xe3\x6c\xbc\xe2\xc2\x69\x5f\x30\ +\x29\xa5\xd2\x6f\x28\xc7\x81\x93\x14\x1f\x25\x6c\xd6\x5a\xe1\xf9\ +\xc2\x3b\xa8\xec\x4f\xfc\xad\xcd\x06\x96\xe1\xe3\x4c\x3c\xfd\x69\ +\x6a\x9b\xcd\x66\x6f\x93\xbb\x7e\xa9\xb9\x8c\x38\xbe\x13\xce\x2e\ +\x8d\xaa\xc9\x5f\x89\xb6\x84\xdc\x0c\x21\x60\x85\x5a\x17\x7c\xda\ +\x6a\xfe\x3d\x94\xe3\xf8\xec\x4c\x62\x7b\x9d\xb2\x19\xf2\x56\x25\ +\x71\xbc\xa4\xbe\x39\xd0\xd2\x55\x5f\x19\x86\x91\xfe\x5c\xd2\x56\ +\x68\x87\x9c\x6e\xae\xc6\xac\x4e\x2c\xae\xf6\x5c\x6f\xfe\x24\xbe\ +\xb1\x82\x65\x0d\x0a\xde\xf0\x86\x4f\x02\x02\xa2\x4d\xb1\xa4\x81\ +\xfa\x23\xc2\x9f\xc3\x75\xe7\x7e\x50\x17\x7e\x9f\x9e\x56\x44\xfe\ +\x7b\x42\xea\x96\xb0\xc3\x1b\xfc\xf9\xd7\xdf\x28\x28\x28\x92\x6a\ +\x78\x51\x4a\xd1\xbf\x7f\x5f\x44\x44\x84\x6b\x1d\x0e\xef\x87\x99\ +\x10\xc4\x44\x47\xa3\x4f\x9f\x5e\x0a\x05\x28\x3f\xff\x12\x4e\x9f\ +\xc9\x08\x38\x1b\x66\x67\x65\xf1\x16\x17\x86\x80\x21\x40\x62\x8b\ +\x16\xfc\xd0\x30\x0c\xc0\x30\x60\x0d\x06\xec\xfc\xf5\x57\x94\x95\ +\x95\x81\x52\x8a\x7d\xfb\xf6\xe1\xcb\xf5\xeb\x3d\xd6\x41\x73\x1e\ +\x6d\xfe\xbf\x53\x27\x4f\x62\xf6\x2b\xb3\x61\xa9\xad\x85\xa5\xb6\ +\x16\x94\x52\x24\x25\x25\x61\xc1\x1b\xf3\xbd\x53\xb0\xa8\xdd\x93\ +\x80\xb7\x18\x29\xd7\xed\xb4\xb4\x7e\x78\xfb\xed\xb7\x11\x13\x19\ +\x09\x70\x14\x47\x8f\x1d\x47\x7e\x7e\xbe\x43\xd5\x40\x7b\x7c\x0e\ +\x05\x90\x77\xf1\x22\xde\x5f\xf1\x3e\xac\xb5\x56\x10\x00\x37\x8e\ +\xbd\x11\xb3\x5f\x7e\x59\x78\x36\xff\x26\x8b\xc5\xa2\x64\x6f\x97\ +\x3e\xf9\x04\x63\xc7\x8e\xe5\x6f\x20\x0c\x0e\x1f\x3e\x6c\xb7\xee\ +\x83\x57\x40\xa9\xf0\x62\x03\xcb\xc2\xc0\xb2\x60\x35\xfe\x31\x6e\ +\xfe\xdc\xfe\x46\xa8\xab\xc4\x30\x2c\x8c\x46\x23\x8c\x42\x5a\x71\ +\x1d\x3a\x74\x34\xd4\xa6\xef\xb0\x3d\x3a\x6c\x80\x4e\xbb\x26\x1f\ +\x68\x29\xad\x9f\x1e\xe5\x02\xc7\x7d\x9b\x78\xb0\x6a\xfb\xa0\xb8\ +\x5c\xfe\xf6\x65\x5a\xaf\x43\xef\x52\xe9\xd0\xa8\x9b\xd4\x59\x20\ +\xd1\xf6\x5e\xe2\x63\x3f\x89\xcf\x34\x55\xcb\x63\xa1\xe6\xce\xe0\ +\xd4\x07\xea\x8f\xf1\x71\xdf\xdf\xc6\xb8\x59\xea\xc6\x21\x7d\xe9\ +\xf1\x74\x78\x73\xf4\xe8\x71\xc5\xb5\xc4\x84\x16\x48\x49\xe9\xd0\ +\x20\xef\xef\x98\xd2\x01\xcd\xe3\x9a\x2b\x7a\xff\xc7\x91\x63\x01\ +\x1f\x83\xec\xec\xf3\xb2\x20\x7c\x3e\x83\x9e\xe3\x4a\x3c\xf9\x8e\ +\x3b\x64\x74\x04\xde\x7b\x6f\x29\xb2\xb2\xb3\xbd\x7e\x57\x61\x61\ +\x11\x9e\x7b\xee\x39\x94\xc8\x2c\x66\x31\x31\x31\x58\xb8\x70\x01\ +\x9a\x37\x6f\x5e\x27\xee\xa1\x94\x43\x79\x45\x05\x2a\x2a\x2a\x50\ +\x51\x51\x89\xca\xca\x2a\x74\xea\x94\x82\xf9\xf3\xe7\xa3\x5b\xd7\ +\x54\x2c\x79\x7b\x31\x9a\x36\x6b\x86\xaa\xca\x2a\x54\x55\x55\x49\ +\x8a\x1a\x40\x51\x53\x5d\x8d\xca\x8a\x0a\x44\x84\x87\xe3\xf5\xd7\ +\xe7\x21\x32\x2a\x12\x63\xc7\xde\x88\xa7\x9f\x79\x1a\xd5\x35\x35\ +\xa8\xa9\xa9\x41\x65\x65\x15\xaa\x2a\xab\x9c\x36\x2a\x77\x71\xca\ +\xfd\xfb\xf7\x43\xf3\x66\x7c\xbf\xac\x56\x2b\xbe\xf9\xe6\x1b\xb5\ +\x96\x3b\xfd\xf6\xd2\xa5\x4b\xc8\xcf\xcf\x47\xfe\xa5\x4b\xb8\xa4\ +\xf2\x57\xa0\xf6\x57\x20\xfe\x15\xa8\xfe\x15\x16\x16\xa0\xa6\xa6\ +\x46\x5f\x74\x74\xe8\xb8\x12\x36\xbc\x7a\x84\xc1\x55\xbf\x9c\xd2\ +\x86\xd7\x13\x0d\xeb\xdd\xe7\x9e\x08\x12\xba\xac\x96\x81\xcf\xcf\ +\xa1\x62\x56\x31\xe2\x24\xd8\x33\x2c\x4f\x4a\xd5\x34\xdf\x42\x8c\ +\x88\x9a\x52\xa0\xbe\x81\x38\x8b\xf5\x6a\xa7\x96\x5a\x4f\x32\xa9\ +\x78\x2f\x71\xad\x36\x50\x47\xe9\x9b\x52\xe9\x74\x59\xfe\x1e\x8e\ +\x6a\x0b\x1f\x27\xae\xe6\x8c\xdc\x17\x94\xc8\x3c\x49\xfd\x14\xc8\ +\xef\x89\x6e\xb5\xc2\x49\x68\x63\x73\x41\x33\x19\x43\xec\x07\xb7\ +\x24\x20\x49\xcd\xbc\x1b\x00\x4f\x0d\x0c\xda\x0e\x38\xb6\x33\xc0\ +\xb1\x4f\x1a\x51\x51\x51\x89\x9c\x9c\x5c\x45\xc1\xe7\x6e\xd7\x74\ +\x6d\xb8\x8d\x84\x65\xd1\xad\x5b\x57\xe4\x09\x05\x5e\x39\x42\x91\ +\x79\xee\x1c\xca\xca\xca\x11\x19\x19\x11\x30\xba\xe4\xe4\x64\x83\ +\x10\x3e\x86\x31\x3c\x3c\x1c\x71\xcd\x9b\x2b\x32\xbb\x71\x36\x2b\ +\xae\xee\xd6\x0d\x93\x27\x4f\xc1\x67\x9f\x7f\x0e\x02\x8a\x8a\xf2\ +\x72\xbc\xf6\xfa\xeb\x78\xef\xdd\x77\x25\xeb\x97\x27\x36\xad\xa9\ +\xb1\xe0\xa5\x17\x5f\xc4\xd9\x8c\x73\xd2\xdd\x26\xa3\x11\x73\xe7\ +\xcc\x41\x87\xe4\xe4\x3a\xed\x8d\x00\x50\x5e\x5e\x8e\xc1\x83\x87\ +\xd8\x93\x35\x11\x25\x5f\x4e\x99\x32\x59\x58\xd7\x84\x7a\x46\xd6\ +\x5a\x49\xc9\x9b\xff\xc6\x02\xbc\xf1\xe6\x22\xfe\xba\xe0\x56\xf6\ +\xdf\xef\xbe\xc3\x7f\xbf\xfb\x4e\x4a\xfc\x20\xc6\x3c\x8a\xd6\x71\ +\x7b\xb9\x42\xd7\x3d\x0f\x0b\x0b\xc3\xc8\x91\x23\xf1\xe9\x67\xab\ +\x41\x08\x83\x8d\x3f\xff\x8c\x87\x1f\x7e\x18\x94\xa3\xf6\xd8\x01\ +\x22\xcb\xc4\x07\xbe\xd8\xef\xf8\xf1\xe3\x61\x15\xb2\xdb\xf9\x3c\ +\xfd\xa5\xfa\x88\x9c\xd4\xee\x47\x1f\x7b\x0c\xf7\xdf\xf7\x4f\x5d\ +\x38\xd5\xa1\x23\x20\x7b\x3f\x75\xde\xe0\xa9\x7b\xf1\xc0\xe9\x76\ +\xbf\x5b\x0e\xfc\xa0\x14\x5d\x86\x23\x85\x5e\xbd\x7b\xc1\x2a\x28\ +\x2b\x7c\x26\x1e\xd9\x80\x11\x27\xbd\xc7\x2d\xc2\xc2\xc2\x60\x32\ +\x99\x14\xd7\x8c\x26\x13\x26\x4d\x9c\xc4\xaf\xd3\x84\x08\xbc\xa1\ +\x54\x1e\x08\x21\xe8\xd4\xa9\x93\xd3\xf3\xb2\xb3\xb2\xb0\x73\xe7\ +\x4e\x7b\x31\x57\x00\xc9\xc9\xc9\xe8\xd3\xbb\xb7\xe2\xbe\xa3\xc7\ +\x8e\xe1\xe8\x91\x23\x76\x21\x9f\x10\x84\x85\x47\xe0\xe6\x5b\x6e\ +\x55\xb8\xc0\xfd\xf6\xdb\x6f\xc8\xca\x3a\xa7\x50\x0a\xb6\x6c\xd9\ +\x8c\x8b\x17\x2f\x2a\x36\x93\x31\xa3\x47\x2b\x8a\xb2\x1a\x58\x16\ +\x63\x6f\xbc\x91\x4f\x40\x21\x08\x0d\x21\x2c\x8b\xef\xbf\xfb\x96\ +\x77\x35\x11\x94\x98\x8a\x8a\x0a\x4d\x0a\x8c\xda\x1d\x89\x89\x89\ +\xb8\x79\xd2\x2d\x42\x2c\x2e\xdf\x8e\xb8\x66\xcd\xb1\xe6\x8b\xcf\ +\xf9\x38\x08\x21\x40\xf7\xd0\xe1\x43\x4e\xbf\xed\xd2\xf5\x6a\x74\ +\xea\xd4\xc9\xae\x94\x52\x8a\xdd\x7b\xf6\x20\x33\x33\x43\xf5\xdd\ +\xf2\xb9\x90\x9e\xbe\x11\x45\x85\x05\xbc\x81\x96\xaf\xad\x88\xb4\ +\xb4\xfe\xb8\xae\x67\x4f\x3e\x6d\x36\x78\xf7\xca\x75\xeb\xd7\x39\ +\x3d\xeb\xa6\x9b\x26\x82\x35\x18\x54\x02\x84\xdd\xea\xce\xc8\xc9\ +\xce\xc1\xaf\xbf\xed\x54\x7c\xd7\xa6\xcd\x55\xe8\xd9\xab\x17\xaf\ +\x44\xc3\x39\x3d\x39\x5f\x3d\x84\xe2\xe0\xc1\x83\x38\x79\xf2\x6f\ +\xc5\x77\x3b\x77\xfe\xea\x34\xcb\x07\x0d\x1a\x84\x96\x2d\x5b\xea\ +\x8b\x71\x70\x2e\x3b\x0d\x8a\x73\x59\xd9\x92\xa0\x09\x00\x26\x93\ +\x09\xed\xda\x5d\xd5\x70\xdd\x25\x04\xed\xda\x5d\x05\x53\xa8\x09\ +\x35\xb2\x54\xe0\x59\xd9\xd9\x48\xed\xdc\x29\x60\xc3\x90\x99\x69\ +\x8f\x91\x6c\xde\xbc\xb9\xd3\xda\x2d\x2a\x18\xff\xf7\xc0\xfd\xd8\ +\xb6\x6d\x3b\x72\x72\xf8\xc4\x35\x7b\xf7\xee\xc5\xfa\xaf\xbe\xc2\ +\x6d\xb7\xde\xaa\xe9\x3d\x8b\xde\x7c\x13\xbb\xf7\xec\x95\x1d\x62\ +\x18\xf1\xc4\xf4\x27\xd0\xbf\x7f\x5a\xdd\x4e\x0d\x83\x1c\x37\x8e\ +\x1b\x8b\x35\x6b\xbe\x80\x8d\xb3\xa1\xb8\xa8\x18\xdb\x77\xec\x40\ +\x52\x62\x92\x9b\x3e\xd0\xcb\x62\xbe\xe9\xd0\xa1\xe3\xf2\x9c\x84\ +\x06\xbf\xad\xc7\x3e\x9e\xfc\x92\x06\x18\xa6\x27\x67\x4c\x07\x9d\ +\xfe\x84\xdf\x36\x7f\x47\x44\x45\x45\x61\xed\xda\x2f\xbc\xfa\xbd\ +\xa8\x58\xec\xde\xb5\x1b\x77\xde\x79\x97\x42\x85\xfa\xe7\x3f\xff\ +\x89\xde\xbd\x7a\x29\xee\x5f\xbf\x6e\x3d\xe6\xce\x9b\x6b\x3f\xc9\ +\x63\x19\x2c\x5c\xb0\x10\x0b\x16\xbe\x21\x6a\x3f\x00\x80\xdb\x6e\ +\xb9\x4d\xa1\x14\x81\x52\xbc\xfe\xfa\xbf\xec\xb1\x28\xc2\xc9\xe0\ +\x9e\x5d\xbb\x71\x6d\xcf\xeb\x24\xfa\x1b\x8d\x46\x2c\x5f\xf6\x9e\ +\x42\xe1\x29\x2d\x2d\x45\xab\xd6\x6d\x50\x5e\x56\x2a\x2b\x20\x4e\ +\x7d\x1e\x87\x3e\x7d\x7a\x3b\xd1\xe9\x83\xf7\xdf\xc7\x94\xbb\xee\ +\xf6\x18\xbf\x33\xf9\x8e\x3b\x30\x73\xe6\x73\x0a\xfa\x4f\x9d\x7a\ +\x0f\x56\xaf\xce\xf0\xf8\xee\x17\x5f\x7c\x11\x07\x0f\x1d\x94\x29\ +\xc5\xc0\xf1\xe3\xc7\x90\xdc\x21\x59\x52\xce\xaa\xab\xaa\x90\xbe\ +\x31\x1d\xa5\xa5\xa5\xd2\xef\xa2\x63\x62\xb0\x5e\x50\x94\xbc\xb5\ +\x2c\x7d\xbd\xe1\x6b\xfc\xfa\xdb\xaf\x8a\x99\x34\x64\xe8\x10\x7c\ +\xf4\xe1\x87\xee\xa7\x11\xa5\x78\x72\xc6\x53\x58\xec\xa0\x14\x2d\ +\x5b\xb6\x0c\xcb\x96\x2d\xb3\x0b\x72\xac\x01\x5f\x6f\xd8\xd0\x88\ +\x95\xa2\x00\x15\x9e\xf5\x64\xf8\xf1\x97\x05\x8b\x2a\xa7\x4b\x7d\ +\x1b\x26\x73\xcf\xe7\x2a\xf2\xbb\x24\x24\xc4\xc3\x6c\x0e\x6d\x50\ +\x12\x87\x99\xcd\x48\x48\x88\xc7\x99\xb3\x19\x52\x43\xce\xe7\x5e\ +\x08\xa8\x52\x24\x77\x83\x6b\x9d\xd4\x4a\x1a\x1b\x4e\x5c\x47\x85\ +\x41\x8a\x88\x8c\xc0\x33\x4f\x3f\x85\xe9\x33\xa6\x0b\xb7\x30\x58\ +\xba\x6c\x39\xfa\xf6\xe9\x83\x36\xad\x5b\xf3\xf1\x31\x50\xb7\x44\ +\xaf\x59\xb3\x06\xeb\xd6\x7f\x25\x8c\x33\xbf\xbe\xdc\x7a\xdb\xad\ +\x98\x38\xf1\x26\x9f\x2d\xd2\x04\xc0\xb8\xf1\x37\xa2\xfb\xb5\xd7\ +\x38\xf3\x94\xda\x1e\x2a\xcb\x2e\x67\xb5\x58\xf0\xd1\x87\xff\x01\ +\x00\xd8\x28\x87\x81\x03\x06\xa0\x4b\x97\x2e\x52\x5c\xa7\xab\x43\ +\x40\xe1\x4c\x0f\x94\xa3\x30\x08\x2e\xc6\x9e\x52\xb8\xb7\x6f\xdf\ +\x0e\x5d\xba\x74\xc5\xe1\x3f\xf8\x83\xac\xef\xbf\xff\x01\xf7\xdd\ +\xfb\x4f\x7b\x9d\x23\x17\x73\x43\x6c\x46\x6c\x6c\x13\x84\x86\x86\ +\xaa\xc4\xd3\x52\xd5\x8e\x12\x10\xc9\xeb\x83\xe3\x6c\xc8\xbd\x70\ +\x81\xef\xa7\x0d\x7a\xd9\x00\x1d\x3a\xae\xa0\x2d\xbd\xbe\xfa\x10\ +\x50\x4b\x91\x7e\xb8\x03\x40\x45\x19\x20\xea\xd2\xb2\xf2\x23\x47\ +\x5d\x0a\xd5\x1a\xb5\x33\xcd\x23\x24\x56\x1b\xf7\x6e\x6c\x89\x1f\ +\xdb\x01\xf5\x62\xb6\x5a\xfb\xea\xe2\x3e\x42\x18\xe5\x77\xb4\x7e\ +\xf9\x93\xd1\x9a\x40\x43\x63\xbf\xf4\x38\x23\x1d\x22\x0a\x0a\x0a\ +\x15\x52\x6e\x7c\x7c\x5c\x40\xda\x91\x90\x10\x8f\xb3\x67\x33\xa4\ +\xa9\x94\x9f\x7f\x29\x60\x34\xa9\xac\xac\xb2\x97\x5e\xa0\x14\x49\ +\xad\x92\x9c\xe6\xb5\x7c\xa6\x0d\xbc\x7e\x00\x46\x8f\x1a\x8d\x9f\ +\xd2\x7f\x02\x00\x94\x95\x95\xe3\x8d\x85\x6f\x62\xc9\xdb\x8b\xc0\ +\xb2\xea\x5b\xe5\xaf\xbf\xfe\x86\xc5\x8b\x97\x28\xae\x0d\x19\x32\ +\x18\x8f\x3c\xf2\x70\x9d\xdb\x3f\x6a\xd4\x48\xa7\x02\xda\x9e\x33\ +\xc2\x53\x54\x55\x56\x4b\x4a\x11\x08\x83\xeb\x07\x0d\xc2\xa4\x89\ +\x37\x29\x15\x0b\x0d\x6b\x0f\xd1\x50\xbc\x9b\x21\x04\xa3\x47\x8f\ +\x92\x94\xa2\xfd\x07\xf6\x63\x8c\x98\x75\xd3\xd5\x5e\x40\xec\xfe\ +\xbf\x2f\xcd\x7a\x19\x83\xaf\x1f\xa8\x79\xad\x15\x95\x26\xab\xe0\ +\x1e\x38\x61\xc2\x4d\xb8\x90\x97\xa7\x0b\x14\x3a\x74\xe8\xf0\x8b\ +\x52\x62\xf0\xe7\xc3\x82\x59\xb1\xac\xef\x18\x12\x9f\x9f\x4f\x88\ +\x90\xe9\x88\x93\x3e\x13\x95\x58\x1b\x02\xe2\x64\x4d\x31\x30\x8c\ +\xac\x1c\x14\x71\x4b\x53\xc9\x3d\x4f\x38\xc1\x63\x88\xfa\xd6\x28\ +\xaf\x17\xa4\xe8\x92\xbf\x62\x7e\x1c\xe8\xa4\x56\x58\x50\x4d\xf2\ +\xe7\x43\xc3\x18\x05\x5d\x88\x3c\xfd\xab\xcc\x07\x9e\xa8\x30\xa7\ +\xd8\x7f\x1b\x67\xb5\xb7\x43\x7a\x86\x6b\xf6\xb5\x5a\x6b\x61\x34\ +\x9a\x1a\x8c\x5f\xa8\xc6\x99\x21\xf1\x4b\x83\x1f\x61\xf8\x29\xc6\ +\xc6\x4f\x96\x18\xed\xd2\x94\x8b\xcf\x54\x5b\xbb\x68\x90\x0b\x5c\ +\xa5\xe5\x15\x00\xa8\x94\xe0\x24\x36\x36\x3a\x20\xed\x88\x89\x89\ +\x56\xd0\xb1\x5c\x70\xb7\x0d\x44\x0c\xdf\xf9\xf3\x39\xa8\xa9\xb1\ +\x88\x9a\x00\x5a\xb5\x6e\x25\x0d\xb9\x18\xdf\xc9\x71\x9c\x14\x2b\ +\x0a\x00\x33\x66\x4c\xc7\xae\xdd\x7b\x50\x5c\x52\x8a\xa8\xa8\x48\ +\xf4\x4f\xeb\xcf\xbb\xce\xaa\xb0\xdf\x99\x33\xa7\x31\x6b\xd6\xcb\ +\xa8\xb1\x58\xa4\x0e\xa7\xa6\xa6\x62\xf6\xac\x59\x30\x86\x84\xd4\ +\xa9\xed\x65\x65\x65\x76\x45\x57\x85\xdf\xdd\x51\xb3\xaa\xaa\x1a\ +\x56\xc9\x12\x46\x71\x29\x3f\x1f\x67\xce\x9e\x55\xac\xb7\xae\x86\ +\x43\xee\x9e\x4d\x00\x98\x4c\xa1\x48\x48\x88\x77\x39\x7e\x1c\x05\ +\x06\x0f\x19\x82\x77\xdf\x7d\x17\x95\x55\x95\xb0\x5a\x39\xfc\xf8\ +\xbf\x1f\x65\xf4\xb5\x39\x53\x4e\x16\x5c\xca\x32\xac\x22\xd6\x56\ +\xbb\x72\xc4\x38\xad\xed\x44\xd7\x8a\x74\xe8\x08\xa8\x42\xd1\xe0\ +\x52\x7e\x3d\x3c\xde\xa0\x8f\x64\x90\x30\x13\x75\xd2\x03\x1c\xc6\ +\x9e\xba\x54\x18\x3c\x3e\xd0\x17\x25\xae\xa1\x5c\x11\xb4\x5a\x8a\ +\x08\xf1\xf9\xb7\xaa\x59\xef\x54\xe8\x43\x7c\x4d\x2b\xe8\x4e\xb8\ +\xa8\xc7\x59\xde\xb0\x42\x80\xee\x9a\x12\xcc\xb0\x58\x2c\xa0\x42\ +\x54\x1a\x00\x84\x86\x9a\x03\xd2\x0e\x93\xc9\xe8\xc4\x29\x1c\xa5\ +\x60\x1b\x58\x29\xe2\x95\x96\xb3\x8a\xa9\xdc\xba\x55\x6b\x8f\x73\ +\xb3\x79\xf3\x66\x78\xfc\xf1\xc7\xb1\x75\xcb\x56\xcc\x98\xf1\x04\ +\x5a\xb5\x52\x77\x4f\x2d\x2a\xe2\x33\xcd\x15\xc9\x32\xcd\x25\x26\ +\x26\x62\xfe\xfc\x7f\xf9\x25\xb1\xc4\x86\xaf\xff\x8b\xb7\x17\x2f\ +\x06\x43\xec\xb1\x86\xaa\xb5\x11\x1d\x3f\x11\x67\x15\x6e\xc5\x8a\ +\x15\x58\xf1\xfe\xfb\x11\x63\x0b\xfa\x00\x00\x20\x00\x49\x44\x41\ +\x54\x7c\x8a\x6f\xea\x7e\x65\x13\x0f\x65\xc4\xf5\x36\xa5\x53\x67\ +\x7c\xfe\xe9\x2a\xb7\x6d\x6d\xd6\xac\x29\x7a\xf7\xe9\x8b\xed\xdb\ +\xb6\x01\x04\x38\x79\xf2\xb4\x9b\x65\x94\x38\x28\x7f\xa5\x28\x2e\ +\x2e\x56\x1e\xbb\xb8\xe0\x15\x22\xdf\xda\x08\x81\xd5\x6a\x95\xdc\ +\xf4\xa8\xee\x3a\xa7\x43\x47\x60\x71\x99\xcc\x41\xff\x29\x45\x41\ +\x9a\x4d\x8a\x02\xf8\xe1\xfb\x1f\xf0\xd7\x5f\x7f\xaa\xb6\x8f\xb8\ +\x18\x4f\x45\x92\x34\xe1\x02\xa5\xda\x95\x18\xe9\x46\x3e\x7d\x1b\ +\x28\x05\x5a\xb6\x4c\xc2\x6d\xb7\x29\x03\x77\x93\x3b\x76\xc4\x23\ +\x8f\x3c\x26\x25\x1f\x20\x00\xa2\x23\xc3\xb1\x68\xd1\x22\xc5\x4e\ +\xb0\x67\xef\x5e\xb7\x8a\xb9\xf8\xef\x31\x37\xdc\x80\xc4\x96\x2d\ +\xed\xf5\x84\x28\xc5\x86\x0d\x1b\x90\x9d\x93\xad\xfa\x63\xb1\x1b\ +\x56\xab\x15\xab\x3e\x59\x85\x92\x92\x22\x5e\xc8\xaa\xe5\x2d\x2a\ +\xf2\x42\x87\x00\x60\x34\x9a\x70\xff\xfd\xf7\x83\x35\x18\xa4\xc7\ +\x14\x16\x14\x62\xb5\xc3\xc6\x99\x9b\x9b\x8b\xc5\x6f\xbf\x0d\x4e\ +\x46\xb4\x76\xed\xda\x62\xc2\x84\x09\x8a\x8d\xaf\x73\x6a\x67\x3c\ +\xfc\xf0\x23\xfc\x09\xa6\x62\x30\xf8\xf6\x8b\x3e\xe4\xbd\x7a\xf5\ +\xe2\xe9\x28\x23\xf6\xf0\xe1\xc3\x11\x1d\x1d\xad\xa8\xe1\x91\xac\ +\x92\xe9\xe9\x96\x5b\x6f\x41\xbf\xb4\x34\xa9\x0a\x3a\x61\x80\xff\ +\x7e\xf3\x0d\x18\xd6\x20\x25\x5f\xe0\x38\x4e\x38\xf1\x75\x8f\xc2\ +\xc2\x42\xac\x5a\xb5\x5a\xb2\x38\x01\x04\x2d\x5a\xb4\xc0\x1d\xb7\ +\xdf\xee\x51\xd9\x24\x2a\xdf\xef\xd9\xb3\x17\x3b\x77\xee\x90\x14\ +\x5f\x86\x51\x4f\x34\x11\x5c\x33\xca\x8f\xeb\xa7\xaf\xeb\x45\x03\ +\xaf\x33\xa4\xbe\xb2\xe3\xf8\x71\x43\x22\x00\xc0\x89\x07\x01\x81\ +\x69\xa8\xcd\x6a\x73\xc8\xee\xc6\x05\x4c\x60\xcd\xc8\xc8\x94\x0e\ +\x93\x18\xc2\xa0\x55\xab\x56\x0e\x0b\xb9\xfa\xe1\xcb\x4d\xff\x18\ +\x87\x9b\xfe\x31\xce\xe5\x3d\x35\x35\x35\x98\xf5\xf2\xcb\x38\x2b\ +\xab\xc3\x14\x19\x11\x81\xf9\xf3\xff\xc5\xd7\x41\xf2\xc7\x70\x72\ +\x1c\xbf\x2e\x51\x02\x4a\x44\x85\x88\xba\x30\x6c\x12\x21\x23\x25\ +\x01\x38\x80\x80\x03\xe3\x60\x73\xe6\xcb\x07\x51\xb8\xb7\xf4\x12\ +\x69\xec\x38\x4e\xb9\xd6\xba\x5a\x05\x58\x81\xcf\x6e\xba\xe9\x1f\ +\x88\x6b\xde\x1c\x83\x87\x0c\x06\x43\x80\x07\x1e\x78\x40\x3a\xb8\ +\x71\x5c\xf3\x38\x6a\xaf\x4f\xf7\xda\x6b\xaf\xc1\x60\x08\x01\x5c\ +\x28\x7d\x9e\x56\x9f\xca\x8a\x32\xd9\x37\xba\x62\xa4\x43\x47\xe0\ +\x40\x5c\x48\xd0\xfe\x96\x1e\x3c\xbe\x26\x48\x94\xa2\x20\x16\xe2\ +\x56\xaf\xfe\x14\xeb\xd6\x7d\x69\x3f\x07\xa3\x0a\x75\xc7\x3f\x3c\ +\xe0\x66\x9f\x11\xff\xd7\xb7\x6f\x3f\x27\xa5\xe8\x9a\x6b\xba\x61\ +\xf1\xe2\x45\xd2\xe9\x1e\x05\xb0\x7c\xe9\x52\x3c\xfa\xf8\xe3\x8a\ +\xcd\x5b\xab\x60\x71\xef\xbd\xd3\x9c\x36\xa0\x3f\xfe\x38\xe2\xac\ +\x14\x39\x34\xd7\x5a\x6b\xc5\x9c\x39\x73\x91\x95\x95\x29\x05\xb2\ +\x52\x15\x6d\x31\xd4\x6c\xc6\xa2\x45\x6f\xc2\x60\x30\x48\x9b\xdd\ +\x9f\xc7\x4f\x38\x29\x45\x99\x99\x99\x98\xf1\xd4\x93\x10\xed\x19\ +\x14\xc0\x0d\x63\x6e\x90\x94\x22\x11\x69\xfd\xfa\x21\xad\x5f\x3f\ +\x9f\xc8\x7f\xe7\x9d\x93\x71\xe7\x9d\x93\x9d\x84\x1a\x47\x3c\xf3\ +\xcc\xd3\xd2\xbf\xc5\x94\xdc\xa9\xa9\xa9\x92\x4b\x89\x44\x0b\x27\ +\x1a\x3b\xd3\x3c\xef\x42\x1e\x9e\x7e\xe6\x19\xde\x2d\x44\x88\xb5\ +\xea\xdd\xab\x97\xa4\x14\x79\xab\x4e\x6c\xdc\xf8\x33\x66\xcd\x7a\ +\xc9\x43\x3b\x74\xe8\xf0\x4e\x61\xb5\x68\x50\xf0\x1b\x62\x6b\x14\ +\x15\x92\x40\xe0\xf4\xe9\x53\xd2\xbf\xcd\x42\x12\x08\xd5\x43\x2c\ +\x2f\xb6\x81\x9a\x9a\x1a\x2c\x5e\xbc\x18\xbf\xff\xbe\x4b\x71\xfd\ +\x95\x57\x66\xa3\x4b\x6a\xaa\xdf\xda\xde\xbf\x7f\x1a\x9a\x34\x89\ +\x55\xb8\x33\xbb\xa5\xb9\x2c\x41\x81\xa5\xa6\x06\xaf\xbd\xf6\xba\ +\xf4\xdd\xd8\xb1\x63\xd1\xab\x67\x4f\xc1\x35\x5b\xd9\x61\xe2\xb4\ +\x0f\x2a\x95\xa9\x26\x4d\x9a\x68\x6b\x6f\x5a\x5f\xf4\x4f\xeb\x0b\ +\x00\x38\x22\xaf\x4f\xe5\x81\xb6\x7c\x4d\xa5\x2a\xef\xb8\x4a\x70\ +\x9b\x26\xa0\x5e\x44\x5b\xe9\xd0\xa1\x43\x87\x2f\x4a\x91\x78\x14\ +\xea\x58\xc5\xbd\x9e\xe4\xb4\x86\x30\x30\x11\x50\x17\x31\x18\xd4\ +\x3f\x8d\xd7\x70\x0f\x7f\x50\xc7\xa9\x6e\x66\x72\x77\x07\x4a\xc5\ +\xb4\xd1\xd4\xe3\x4b\xd4\x14\x00\xe7\x62\xa8\x04\xee\x2a\x0b\xd9\ +\xb7\x52\x2a\x9c\x4e\x0a\x39\xab\x89\xeb\x77\x2a\xb2\x04\x11\x22\ +\x58\x38\xf8\xfa\x18\x0a\x1f\x72\xca\xf3\x91\xbd\xba\x3a\xd5\xd4\ +\x07\x4d\xa4\xf7\x10\x0b\xe4\xea\xf9\x21\x42\x56\x25\x6d\x15\xeb\ +\xd5\x1c\xd4\x28\x40\x65\xa7\xdf\xc2\x78\x69\x6e\xb7\xe3\xcd\xd4\ +\xf7\x93\x74\xda\x98\x4f\x46\x49\x90\x2d\x18\x2e\x3d\x51\x69\xbd\ +\xae\x7f\xfe\x42\x64\x64\x24\xaa\xaa\xab\xa4\x7e\x94\x95\x95\x07\ +\x44\x1d\xab\xa8\xa8\x50\x5c\x31\x9b\xcd\x81\x49\x08\x42\x29\xfe\ +\x3e\x79\x52\x9a\xc1\x49\x2d\x5b\xc2\x10\x62\x90\x1d\x3c\xc8\xd7\ +\x65\xed\xf3\x36\x3d\x3d\x1d\xeb\xd6\xad\x93\x2c\xe0\x84\x30\x78\ +\xf4\xd1\x47\x30\x74\xe8\x10\xf7\xf3\xdc\xcb\xad\xa4\x43\x87\x64\ +\x74\xe8\x90\xec\xc6\x0d\x41\x39\x11\x88\xec\x40\xa5\xaa\xaa\x1a\ +\xf3\xe7\x2f\x00\x00\x58\x39\x0e\x3d\x7a\xf4\xc0\x84\x09\xe3\xa5\ +\xf5\x9a\x38\xa9\x3f\x2e\xea\xc5\x11\xa5\xea\x24\xbf\xe4\xaa\x55\ +\x47\x8f\x1d\xc3\x07\x1f\xbc\xaf\x98\x58\x6a\xc5\xb2\xc5\xb5\xab\ +\x45\x42\x0b\x44\x46\x45\x81\x80\x77\x73\x76\xb9\x1f\x08\xba\x1b\ +\x21\x44\x4a\xd4\x40\x39\x1b\x4e\x9e\x3c\x25\xec\x3b\xb5\xba\x62\ +\xa4\x43\x87\x0e\xa7\x7d\xc0\x5b\x79\x41\x8f\x29\x6a\x48\x39\x50\ +\x63\x9d\x9b\x7a\x93\x58\xdc\x5c\xd3\x1a\x9f\x42\x88\x8f\x1d\x0b\ +\xba\x2d\x8b\xf8\xed\xb7\x5a\x85\x3e\xe2\x66\xce\x36\x6c\xfb\x1b\ +\xc3\xfb\x74\x78\x83\xd8\xd8\x18\x5c\xcc\xcf\x97\x26\xf6\xa5\x82\ +\xc2\x80\xb4\xe3\xe2\xc5\x7c\xc5\xe7\x26\xb1\x31\x01\x49\x93\x58\ +\x59\x59\x69\xaf\xcd\x06\xa0\x4d\x9b\x36\x0a\x05\xc2\xf3\x02\xe9\ +\x8c\x13\x27\x4e\x60\xc1\x82\x85\x52\x01\x54\x00\x18\x33\x7a\x14\ +\xa6\x4d\x9b\xea\xb7\x76\xef\xd9\xbd\x1b\x96\x1a\x8b\x63\x95\x3b\ +\xaf\xb4\xf2\x6a\x59\x9d\x28\x50\x8a\xbf\xff\xfa\x0b\x5b\xb7\x6d\ +\x53\x2d\x3c\xee\x52\x90\x10\x0f\x9d\x64\xf7\x77\xe9\xd2\xc5\xa5\ +\xe5\xe8\xf7\x5d\xbb\xf0\xc9\xaa\x55\x38\xb0\x7f\x3f\x5f\x73\xce\ +\xcd\xaa\x41\x64\xd9\xe7\x9e\x7d\x6e\x26\x86\x0c\x1a\xe8\xbc\xcc\ +\x50\x17\x5b\x8c\x70\x5d\xac\x3b\x38\x61\xc2\x4d\xc8\xcb\xbb\xa8\ +\xa7\xe2\xd4\xa1\x43\x87\x5f\xe0\xac\x14\x11\xea\x5e\x26\xa2\xd0\ +\xf6\x7d\x10\xad\x51\xc4\xb5\xd9\xc3\x85\x64\x4a\xea\xd6\x07\xea\ +\x89\x48\x1a\x04\x50\x0d\xd2\x32\x21\x44\xc3\x89\x24\x75\x4a\xa9\ +\xcd\xb2\x2c\x18\x86\x38\x38\x4d\x38\xd8\x1d\xa8\x17\x5a\x96\x3c\ +\x55\x1d\x21\x2e\x7e\x4f\xa4\x1a\x49\x4a\x52\x79\xa7\x15\x10\x87\ +\x31\xa3\x1e\xee\x73\x7c\x3e\xa5\x14\x56\x6b\x6d\x1d\xb2\x61\x11\ +\x87\xd3\x56\xa2\x9a\xc8\x41\x73\x3f\x3c\x6a\x9f\xd4\x99\x27\x04\ +\xe1\xc6\x97\xf7\x06\xcf\x09\x8e\x8f\xeb\x04\x69\xe0\xf6\x50\x1f\ +\x9d\x96\x1b\x78\xfd\x8b\x8f\x6f\x8e\xbf\xff\x3e\x29\xb1\x48\x6e\ +\xee\x05\x70\x1c\xd7\x60\x3c\x22\x76\xf7\xfc\xf9\x5c\x65\xbb\xe2\ +\xe2\x02\xb2\x15\x64\x67\xe7\xa0\xa6\xa6\x46\x6a\xd8\x55\x57\xb5\ +\x51\x57\x2d\xb4\x85\xb2\xa0\xa8\xa8\x08\x2f\xbd\xf4\x12\xca\x2b\ +\x2a\xa5\xde\x76\xed\xda\x15\x2f\xbe\xf8\x82\xe6\x54\xfb\x1e\x95\ +\x99\xaa\x6a\x3c\xfd\xcc\x73\x28\x2f\x2f\x73\xa2\xac\xdd\xcb\x80\ +\xa8\xaf\x83\x44\xdd\x97\x9b\x21\x04\xeb\xbf\xfa\x0a\x5f\xae\x5b\ +\xe7\x76\x8f\x93\xb2\xb9\x51\xaa\xdc\xce\x65\x8f\x7d\x73\xc1\x02\ +\x0c\x11\x2d\x62\x94\xc2\x52\x5b\x8b\x6d\xdb\xb7\xe3\xd3\xd5\x9f\ +\xe2\xe8\xd1\xa3\xca\x59\x42\xec\xcf\x8f\x88\x88\x70\x2a\x64\x2e\ +\xbe\x81\x61\x04\x07\x3e\x47\xcb\x3f\xf1\x34\xaf\xec\x36\x2b\x1b\ +\x67\xcf\xa8\xaa\x43\x87\x8e\x60\xda\xe0\x03\x2d\xfc\x7b\xb9\x7f\ +\xd3\x2b\xc6\x52\xe4\x4c\x90\x29\x53\xee\x44\xc7\x94\x14\x69\x69\ +\xf5\x5d\x78\x90\xd2\xe1\x28\xde\x73\xe9\xe2\x45\xbc\xbd\x64\x71\ +\x9d\x04\x0c\x4f\x8a\xd7\x37\xff\xfd\x06\x99\xe7\xce\x49\x27\x7b\ +\x92\xbf\xb8\xac\x29\x06\x43\x08\x06\x0c\x1c\x80\x11\xa3\x46\x28\ +\x82\x5e\x13\x12\x5a\xf8\x4d\x86\x6b\x1e\xd7\x1c\xaf\xbe\x3a\x47\ +\xa9\x0f\xc9\x7c\x54\xc4\xed\xae\x63\x07\xe7\x24\x08\x7b\xf7\xee\ +\xc3\xfa\xaf\xd6\xd9\x37\x63\xd9\x66\x2a\xe4\x89\x00\x08\xc1\x0d\ +\x37\xdc\x80\x41\xd7\x5f\xaf\xf8\xed\x97\x5f\xae\xc3\x81\x83\xfb\ +\x85\xfb\x28\xc0\x30\x98\x36\x75\x2a\x3a\x77\x52\x16\x8b\x7c\xe7\ +\xdd\x77\x91\x9d\x9d\xa5\x60\x83\xc2\x42\xdf\x4e\xd2\xe3\xe2\xe2\ +\xf0\xea\xec\x57\xec\x8a\x11\x21\x48\x6a\x99\xa8\x4d\x2f\xd6\x68\ +\x2a\x1a\x35\x7a\x0c\xd2\xd2\xfa\xf3\x9b\x3c\x91\x13\x42\x26\x3c\ +\x10\x82\x4e\x29\x9d\xa0\x43\xdf\x13\x00\x20\x29\x29\x11\x0c\xc3\ +\x48\xd9\xb8\x4a\x4a\xcb\x90\x77\x31\x1f\x2d\x84\x38\x9a\x86\xc0\ +\xf9\xf3\xb9\x28\x14\x32\x89\x89\x68\x99\x94\x18\x10\xf2\xe7\x38\ +\xc4\x50\x5e\xd5\xb6\x6d\x9d\xc6\xea\xf5\xd7\x5f\x47\x46\x66\xa6\ +\x34\x89\xe3\xe3\xe3\xf1\xef\x7f\xbf\x8e\xb0\xb0\x30\xbf\x33\x0d\ +\x21\x2c\x28\xb5\x05\x19\x3b\x2b\xf7\xc7\x3f\x8e\x1c\xc5\xdc\xb9\ +\x73\x91\x71\xf6\x2c\x9f\x38\x01\xae\x33\xc6\x85\x85\x99\xdd\xee\ +\x63\xfe\x51\xc9\xa9\x6e\xcc\xd6\xa1\x43\x47\x9d\xe1\xa4\x14\xf9\ +\x9c\x65\x29\x48\xb3\xcf\xb9\x6a\xd4\xe4\xc9\x77\x60\xcc\x98\x31\ +\x32\x85\xd2\x53\x92\x52\x57\x4f\x26\xaa\xf7\xfd\x79\xec\x38\x96\ +\xbc\xfb\xae\x4a\x9d\x06\xff\xe1\x97\x5f\x36\xe1\x97\x5f\x36\xb9\ +\xbd\x87\x61\x59\x7c\xf7\xdd\xf7\x18\x33\x7a\x94\x87\x7e\xfa\x4e\ +\xd9\xe6\xcd\x9b\xe3\xc5\x17\x66\x3a\x28\xe8\xda\xde\x73\xf8\xf0\ +\x61\x2c\x5c\xf0\xa6\xc7\xba\x3b\xb1\xb1\xb1\x18\x74\xfd\x20\xc5\ +\xb5\x1f\x7e\xf8\x11\xab\x57\x7f\xa2\xb8\xd6\x3f\x2d\x0d\x9d\x3b\ +\x77\x56\x5c\x5b\xf5\xc9\x2a\xec\x3f\xb0\xdf\xa7\x4d\x98\x3a\xf0\ +\x4e\xd3\x66\x4d\xf1\xe2\x4b\x2f\x68\x3f\xa0\x50\xe5\x15\x37\xac\ +\x49\x08\x86\x0d\x1d\x2a\x25\x87\xa0\x2e\xd2\x22\x36\xfa\x9a\x1c\ +\xba\x00\xe3\x57\x34\x6d\xda\x14\xb1\x31\x31\x28\x28\x2c\x00\x00\ +\xd8\x6c\x36\x1c\x3d\xfe\x67\x83\x29\x45\x94\x52\x1c\x3d\x7a\x4c\ +\x61\x41\x8d\x8d\x89\x41\x62\x8b\x84\x80\xd0\xa3\x77\xaf\xde\x58\ +\xf9\xc1\xfb\xc8\xca\xca\xc6\xf9\xdc\x5c\x74\xed\xda\x55\x9d\xf9\ +\x88\x7b\x5e\xa4\x94\xe2\x8b\x2f\xbe\xc0\xa6\xcd\x5b\xa4\x6b\x26\ +\x93\x09\xaf\xbe\x32\xdb\xab\x4c\x73\xca\x58\x1d\x82\x5a\x8b\x45\ +\x11\x6b\x43\xc0\xc7\x5f\x3d\xfd\x14\x3f\xef\x6b\xad\xb5\x60\x08\ +\x41\x59\x69\x29\xd6\xac\xf9\x12\x37\x4d\xbc\x09\xb1\xb1\xb1\x4e\ +\x87\x77\x94\xb3\xa2\xbc\xbc\x0c\xb9\x17\xf2\xd0\x3c\x2e\x0e\xd1\ +\xd1\xb1\x3c\xf5\x09\x23\x24\xf2\x16\x0f\xa6\x28\xf2\x2f\x5e\xc4\ +\xe6\xcd\xdb\x30\x72\xd4\x48\x44\xc7\xc4\xf0\xab\x88\x64\xa1\xa1\ +\x20\x04\xa8\xad\xb5\xe0\x87\x1f\x7e\xc4\x90\xa1\x43\x10\x19\x19\ +\xcd\xc7\xfa\x08\xde\x6e\x9d\x3b\x2b\x0f\x61\x32\x33\x33\x41\x09\ +\x03\x42\x18\x50\x1b\x07\x96\x0d\x41\x8f\xee\xd7\xa0\x7d\x72\x5b\ +\xac\x5d\xbb\x56\xda\x07\xc2\x23\xc2\x9d\x68\x21\xae\x8f\x6f\x2c\ +\x58\x80\xe5\xcb\x57\x40\x7e\x9e\xe7\x38\x3e\x8a\xdc\x10\x14\x52\ +\xc6\x50\x00\x38\x9f\x7b\x5e\xdb\x40\xea\xd0\xa1\x23\x80\x1b\x7d\ +\x80\x2c\x47\x7a\x4c\x91\x77\xd2\x97\x36\xf7\x33\xdf\x85\x84\x60\ +\x80\x37\xed\x20\xf5\x70\xa7\xbf\x9e\x44\xb4\xfe\x56\xad\x96\x07\ +\xe7\xfb\x58\xa8\x05\x09\x6b\x6b\xaf\xd6\xba\x4a\x2a\xc9\x32\x98\ +\x60\xdc\xdc\xf5\x8c\x78\xc1\x8c\x10\x83\x01\xc9\x1d\xda\xa3\x60\ +\x37\xaf\x14\x11\x4a\x71\xea\xe4\x69\xf4\xb8\xa6\x2b\x9a\x35\x6d\ +\x5a\xef\xef\x2f\x28\x28\xc4\xc9\x53\xa7\x15\x7c\xdd\xb9\x73\x4a\ +\xc0\xe8\x11\x11\x19\x81\xee\xdd\xbb\xe3\x9a\xee\xd7\xa8\xcc\x47\ +\xed\xbc\xfc\xe7\x9f\x7f\x62\xd9\xb2\xe5\x0a\x85\xe8\xc1\x07\xff\ +\x0f\xbd\x7b\xf7\xf2\xba\x4d\xbb\x76\xef\xc1\xc6\x8d\x1b\xd1\xed\ +\xea\xab\xd1\xad\xdb\xd5\x68\xd5\xaa\x95\xd3\xfa\x32\x61\xc2\x58\ +\x80\x42\x2a\xbe\xfa\xc2\xf3\x2f\x20\x37\x2f\x17\xdf\xfe\xf0\x2d\ +\x9e\x9f\x39\x13\x69\x7d\xfb\xda\xad\xe8\xa0\x78\xe6\x99\x99\x38\ +\x74\xf0\x00\x4a\xcb\x4a\x31\xf1\xa6\x89\xf8\xe7\xbd\xf7\x28\x96\ +\x1a\x0a\x3e\xbd\xf6\xa2\xb7\x17\xe3\xfb\x6f\xbf\x43\x59\x59\x29\ +\xae\xce\xbb\x1a\xf7\xfe\x93\xbf\x8f\x91\x79\xe1\x95\x94\x94\x60\ +\xce\xbc\xd7\x70\xf4\xd8\x71\x98\xc3\xc3\xf0\xc6\xfc\xf9\x88\x8a\ +\x8a\x54\x5d\xab\x3a\x75\xea\x84\x36\x6d\xda\xe2\x6c\x06\x9f\xc1\ +\xb3\x67\xcf\x5e\x98\x36\xed\x6e\xf4\xe9\xd3\x0b\xeb\xd6\xad\x97\ +\xad\x65\x0c\xa2\xa3\x62\x5c\xd2\x24\x27\x27\x07\x39\x38\x2f\x35\ +\x98\x91\x65\xc0\x90\xbb\xd5\x51\x95\x23\x2a\x42\xe4\x45\x5f\xf5\ +\xf5\x49\x87\x0e\x5d\x3c\xa8\xbb\x40\xca\xa8\xf5\x8d\xfa\xf8\xb0\ +\x60\x3d\xa8\x71\xe7\xc9\x44\x3c\x06\x9f\x8a\xe9\x3f\xd5\xff\x73\ +\x75\x9f\x42\x4b\xf5\x87\x2a\x41\x1c\xfe\xbc\x12\x98\x58\x7e\xd3\ +\x21\xc4\xcd\xf8\x6a\x4d\x96\x40\x14\xb2\xbd\xf8\x3c\x79\x56\x3a\ +\x2d\x56\x22\x31\xfb\x9b\xcd\x66\xe3\x4f\x33\x25\x57\x31\x15\x45\ +\x82\x10\xfe\x34\x12\x9c\xa2\xfd\x0c\x4b\x54\x6f\xa7\x94\xf3\xcc\ +\xc7\x02\x1d\xdd\xb5\x97\x10\x3e\xa5\x39\xa7\xe1\x79\xe2\xf7\x52\ +\x56\x3b\x0f\x24\xe0\x28\x05\x27\x9c\x98\xf2\x19\x95\x20\x9d\x8a\ +\x2a\x7c\xe3\x1d\xe9\x12\xb0\x72\x1c\xa4\xfe\x26\x67\x50\x2f\xa8\ +\x8d\xa3\xfe\x09\x21\x04\xa9\x9d\x53\x64\xee\x5c\x14\xd5\x55\x95\ +\xd8\xb5\x7b\x9f\xe4\x52\x57\x1f\xb0\xd9\x6c\xb0\xd9\x6c\xf8\xed\ +\xf7\xdf\xa5\xe0\x77\x00\x08\x35\x9a\xd0\xb5\x4b\x6a\xe0\xe9\x02\ +\xa2\x72\x40\x41\x34\x6d\xe8\x55\x55\x55\x98\x37\x77\x2e\x2a\x2b\ +\x2b\xa5\x05\xa3\x7f\xff\xfe\x98\x32\x65\xb2\xe6\x75\x4e\x8e\xac\ +\x73\xe7\xf0\xdf\x6f\xbe\xc1\xdc\xb9\x73\x71\xc7\x94\x29\x58\xff\ +\xd5\x57\x2a\xdc\xc5\xcf\x77\x96\x61\xf0\xf1\x7f\x3e\xc6\xc6\x9f\ +\x7f\xe1\x95\x87\xec\x1c\x1c\x3d\x72\x54\xca\x56\x4a\x08\x01\x43\ +\x18\x24\x24\x24\xa0\xa8\xa4\x04\x36\x1b\x87\x9f\x37\xfd\x82\xd2\ +\xb2\x32\x61\x9d\x17\x13\x56\x13\x30\x84\xc0\x52\x6d\x41\x59\x39\ +\x9f\x91\xf0\xeb\x0d\x5f\x63\xdf\xbe\x7d\x32\xab\x0c\xff\xaf\xfd\ +\x07\x0e\xe2\xd7\x5f\x7f\x07\xc0\xbb\x35\x3f\xf9\xd4\x53\x28\x2e\ +\x2a\x76\x31\xff\x29\x46\x8e\x1a\x89\x5e\xd7\xf5\xc2\x3b\x4b\x96\ +\xe0\xfd\xf7\x97\x22\x2d\xad\x2f\x18\x96\x45\xde\x85\x3c\xc1\x46\ +\x45\x11\x12\x12\xc2\xa7\x16\x77\x78\x82\xb8\x4e\x4a\x5b\x9a\x90\ +\xf5\x94\x10\x16\x84\xb0\x52\xdc\x24\x38\xde\x2a\x44\x28\x40\x28\ +\x51\x8c\x2a\x9f\xa6\x55\xfc\x3f\x45\xfa\xc6\x9f\xf0\xe5\xba\x75\ +\x7a\x21\x57\x1d\x3a\x82\x41\xbb\x90\xe2\x38\x68\x10\xb4\x43\x3b\ +\xae\x88\x3a\x45\x57\xba\xe6\xec\xff\x00\x54\xea\xe7\xf6\x31\x82\ +\x5f\xba\xbb\x7b\xb4\x15\x01\x23\x2e\x14\xb0\x60\xd0\x03\x34\x85\ +\x14\x05\x6d\xb0\xb0\x2e\x68\x04\x3b\x62\x63\x63\xd0\x29\xa5\x23\ +\x0e\x1e\xfa\x43\x72\x47\x3d\x7d\xea\x0c\x8e\xb6\x3a\x81\xee\xdd\ +\xae\xae\xb7\xf7\x1e\xfe\xe3\x08\xce\x66\x64\x2a\xae\x5d\xdd\xad\ +\x0b\x22\x1c\xdc\xa6\x82\x69\xbb\xf6\xc4\xd6\x94\x52\x7c\xf6\xd9\ +\x67\xf8\xf3\xaf\xbf\xa5\x6b\x89\x89\x89\x78\xe1\xf9\x99\x08\x31\ +\xf8\xb6\x6d\x56\x57\x56\x2a\x37\x5f\x37\xcf\xf9\xe1\x87\x1f\xb1\ +\x7c\x85\x3d\xb5\x75\x97\xd4\xce\x98\x7a\xf7\x5d\x4e\xf7\x8d\x1a\ +\x39\x02\x6b\xd7\xae\x05\x47\x6d\x28\x2e\x2a\xc6\xb6\x6d\xdb\x30\ +\x68\xd0\x20\x6c\xd9\xb2\x45\x50\x32\x18\xa4\xa4\xa4\xe0\x81\xfb\ +\xff\x89\x2d\x9b\x37\xa1\xb0\x88\x8f\xa5\x5c\xf4\xf6\x5b\x58\xfd\ +\xf1\x27\x08\x09\x09\x91\x9e\x35\x74\xc8\x60\x3c\xf9\xc4\xe3\x58\ +\xb4\x78\x09\x6a\x6b\x6b\x70\xf0\xe0\x21\xcc\x78\xf2\x49\xbc\xb5\ +\x68\x11\x62\x62\x63\x15\xef\x35\x1a\x8d\x98\x7a\xf7\x9d\xb8\x77\ +\xda\xdd\x60\x59\x56\xb1\xa0\x65\x66\x66\x48\x1f\xa3\xa3\xa3\x11\ +\x19\x19\xe9\x92\xfe\xcf\xbf\xf0\x02\xfa\xcb\xea\xd4\x7d\xf4\xd1\ +\x7f\xf0\xcd\x7f\xbf\x95\xf8\xf9\xed\xb7\xdf\x42\x93\xd8\x58\x17\ +\x07\x6e\xbc\x83\xe0\xee\xdd\xbb\xf1\xee\x3b\xef\xe2\xd4\xa9\x33\ +\x78\x6b\xc9\x62\xb4\x68\x91\x80\xeb\x07\x5e\xaf\x2f\x08\x3a\x74\ +\x34\xe8\xc2\x7a\x19\xc8\x08\xc1\x90\x68\x21\x58\x44\x40\x4a\x29\ +\x5e\x9e\x35\x0b\xe7\x32\x33\x85\xb4\x09\x8e\x69\x45\x1d\x33\xd2\ +\xf1\x5a\x30\xa5\x40\x78\x44\x04\x96\x2d\x5d\x5a\xaf\x1d\xe3\x0b\ +\x9f\xfe\x43\xc8\x1a\xc7\x6f\x06\x5f\x7c\xbe\x06\x9b\xb7\xb8\x8f\ +\x29\xa2\x1c\x87\x7f\xcf\x9f\x8f\x55\xab\x57\x2b\x14\x84\xb9\x73\ +\xe7\xa2\x75\x9b\x36\xf2\x0a\x49\x9a\xea\xde\x54\x54\x94\xe3\xde\ +\x7b\xef\xe3\x33\xc9\x09\x05\x5e\x13\x12\x5a\xe0\xdf\xff\xe2\x8b\ +\x05\x8a\x3e\xef\xa7\x4e\x9d\xc6\xbc\x79\x73\x79\x6b\x88\x03\xf9\ +\xe4\xb5\x73\x9b\xc6\x36\xc1\xd2\xa5\xef\x81\x30\x8c\x43\x91\x47\ +\x65\xfd\x8c\xcc\x8c\x33\xb8\xf7\x9e\x69\x10\xbc\x4a\xc0\x30\x0c\ +\x7e\xfd\xf5\x37\xa7\xf6\x2d\x5e\xb2\x18\xeb\xbe\x5a\x2f\xfd\x92\ +\x61\x0d\xb8\xfd\xf6\xdb\xf0\xd0\xc3\x0f\xf2\xd7\x1c\xb2\xe4\x11\ +\x61\x23\xaf\xad\xb5\xe0\xc9\xa7\x9e\x46\x55\x95\x5d\x70\xa9\x28\ +\xaf\xc0\xdd\x77\xdd\x0d\x86\xb1\xff\x86\x78\xe4\x60\xbe\xdd\xd9\ +\x39\x39\x4e\x12\xd7\x96\xad\x5b\x31\x6d\xda\x34\xc5\xb5\xc4\xc4\ +\x96\x58\xbe\xe2\x7d\xfe\x3c\x43\x48\x55\x9b\x99\x79\x06\xf7\xdc\ +\x33\x8d\xaf\x2a\x2f\x8c\xd7\xfd\xf7\xdf\x8f\x01\x03\x06\x5c\x3e\ +\x33\x35\xd0\x31\x88\xd4\xdb\x7e\xd3\x20\xed\x88\x12\xd7\xf5\xec\ +\x81\x33\x67\x32\x50\x5c\xc2\x9f\xf0\x73\x1c\x87\x5f\x7f\xdd\x85\ +\xf0\xf0\x70\x24\xb7\x6b\xeb\xb7\x98\x42\x91\x2f\xcf\x66\x64\x62\ +\xcf\xde\xfd\xe0\x6c\x76\x3a\xc4\xc4\x44\xe3\xda\x6b\xaf\x09\x5a\ +\x05\x9f\x2a\x4e\x2f\xa9\x6a\x33\xb3\xb3\xb3\xb1\x6a\xd5\x6a\x29\ +\xbd\xb4\x21\x24\x04\x33\x67\x3e\x87\xa6\x4d\x9b\xf8\x36\x7b\x08\ +\x50\x51\x55\x29\xbd\xb5\xd6\x52\x8b\xc8\x88\x48\xe7\xd5\x83\x52\ +\xfc\xf4\x53\x3a\x5e\x7e\x79\xb6\xd4\xd6\xe8\xa8\x28\xbc\x32\x7b\ +\x36\x42\x43\x43\x9d\x9e\xdb\xb9\x73\x67\xc4\xc5\xc5\xa3\xf0\x12\ +\x9f\x0a\x7d\xfd\x86\x0d\x68\xd7\xae\x3d\xe6\xcc\x99\x2b\x1c\x26\ +\x01\x77\x4d\x9d\x86\xc7\x1f\x7d\x14\x53\xee\xbc\x13\xef\xbc\xb3\ +\x04\x00\xf0\xd7\xdf\x27\xf1\xd3\xc6\x74\x8c\x1b\x7b\xa3\xd0\x3e\ +\xbe\x25\x37\xdf\x72\x33\x2c\x56\x2b\xde\x7a\x6b\x11\x00\xe0\x8f\ +\x23\x47\xf0\xd4\x33\x4f\xe3\xad\x45\x6f\x21\x2a\x32\x52\xc1\x3f\ +\x26\xb5\xfa\x43\x94\xe2\xaf\xbf\xfe\x92\xd6\xdf\xd6\xad\x5b\x3b\ +\xf3\x1c\xb1\xbf\x2f\xae\x79\x1c\x5a\x26\xb5\x94\xe8\x70\xff\xfd\ +\xf7\xe1\xe7\x5f\x36\xa1\xbc\xa2\x0c\x45\xc5\xc5\xf8\xe1\xc7\xff\ +\x61\xe6\xb3\xcf\x38\x3d\x83\x52\x8a\xbc\xfc\x8b\x78\xef\xdd\xa5\ +\xf8\x79\x63\x3a\x6a\x6b\xf9\x64\x0f\x96\x6a\x0b\xd6\xad\x5f\xaf\ +\x2b\x45\x3a\x74\x34\xb4\x78\x40\xfd\xb0\xde\x07\x7a\x3b\x25\x57\ +\x70\xf6\x39\xb5\x9d\xf0\xbb\x6f\xbf\xc7\x1f\x7f\x1c\xf2\xfa\xe9\ +\x51\x51\xd1\xce\x4a\x91\x9f\xe5\xb5\x1e\x3d\x7a\xe0\xfe\xfb\xef\ +\x53\x5c\x3b\x74\xf0\xb0\x47\xa5\x08\x00\x7e\xf9\xe5\x17\xc5\x67\ +\x86\x65\xf1\xc4\xf4\xe9\x68\xdd\xa6\x8d\xd7\x6d\xb3\x58\x2c\x58\ +\x2d\x28\x58\x22\x92\x3b\x74\x90\x94\x22\x11\xb9\xe7\xcf\x63\xd5\ +\xea\xd5\xa0\x9c\x7b\x0b\xd0\x94\x3b\xef\xc2\x9b\x0f\x3c\xe0\xf1\ +\xbd\x4f\x3f\xf5\x34\x56\x7d\xf2\xa9\x47\xc5\x6d\xd3\xa6\xcd\xca\ +\x61\x66\x18\xec\xdc\xb1\x03\xfd\x84\xd3\x48\x0a\xaa\x1a\xef\x53\ +\x53\x5d\x8d\x99\xcf\x3f\x8f\xaa\x2a\x65\x5f\x3f\xfb\xec\x33\xbf\ +\x8d\xeb\xa9\x53\xa7\x70\xea\xd4\x29\x05\x0f\x3e\xfd\xf4\xb3\xb8\ +\xff\xbe\x7f\x2a\xee\x9b\xfe\xc4\x0c\x7c\xfc\xf1\x27\xd2\x24\x65\ +\x08\x83\xc1\x83\x87\x04\x58\x29\xd2\xd1\x18\x10\x11\x1e\x8e\xfe\ +\x03\xfa\xe2\x87\x1f\x7e\x92\xf1\x76\x0d\x36\x6d\xe2\x13\x05\x74\ +\x68\xdf\xce\x6f\xef\x3a\x79\xea\x34\x36\x6f\xd9\x86\x2a\xd9\xa4\ +\x31\x18\x0c\x18\x30\xa0\x1f\xc2\xc3\x1b\x81\x95\xc8\xc5\x3e\x00\ +\x00\x1f\x7f\xfc\x89\xac\x10\x2d\x70\xe3\x8d\x37\xa2\x7f\xff\xb4\ +\x3a\xbd\xb9\xaa\xb2\x4a\x71\x25\x32\x32\xc2\xe9\xae\x9f\x7e\x4a\ +\xc7\xab\x73\xe6\x48\x9f\x8d\x06\x03\xe6\xcc\x99\x83\xe4\xe4\x64\ +\xd5\xa7\x1a\x0c\x06\xf4\xed\xd3\x07\x3f\xfe\xf0\x3d\x5a\xb5\x6e\ +\x85\x94\x0e\x1d\x61\xb3\x5a\x9d\x77\x14\x02\x4c\x9a\x38\x11\xeb\ +\xd6\x7e\x09\xb3\x39\x14\x37\xdf\x7a\x33\x86\x0e\x1e\xa2\xfa\xcc\ +\xc9\x77\xdc\x8e\xaa\xaa\x2a\x2c\x5f\xbe\x8c\xdf\x67\x0e\x1d\xc6\ +\x53\x4f\x3f\x85\x37\x17\xbe\x89\xe8\xa8\x28\xb7\xbd\xcc\xce\xce\ +\xc6\xa5\x82\x02\xe9\x73\xa7\x8e\x29\xce\x34\x56\xe4\x51\x50\xae\ +\xe7\x09\x09\xf1\xb8\xf9\xe6\x49\xf8\xf8\x93\x8f\x01\x00\xdf\x7c\ +\xf3\x35\x06\x0e\xe8\x8f\x01\xfd\xfb\x2b\xee\x5b\xb3\x76\x2d\x3e\ +\x58\xb9\x12\x15\xb2\xf4\xe5\x51\x51\xd1\xb8\xef\xbe\x7b\x71\xf3\ +\xa4\x89\xfa\x42\xa0\x43\x87\x0e\x9f\x84\x6f\x83\xe7\x5d\xe3\xf2\ +\xd3\x87\x5c\x75\xb3\x2e\x5d\x17\xb3\xcc\x31\x0c\xeb\xff\x8d\x5b\ +\xda\xbf\x65\x76\x1d\xea\xbb\xaf\x26\x67\xb3\xa9\x7a\xda\xd7\x85\ +\x02\xaa\x2e\x6a\xd4\x73\x27\x09\x9c\x8b\x04\xba\x1a\x46\xea\x07\ +\x17\x2e\x57\xef\xa3\x94\x36\xbc\x87\x18\xa5\xbc\xe5\xcf\x71\x5c\ +\x1d\x68\xc9\x51\x2e\x08\x6a\x12\xf9\x99\x38\x0e\x86\xd7\x06\x37\ +\xbc\x6b\x7e\x31\xf5\x71\xb6\x06\x48\xe8\x27\x04\x29\x1d\x3b\x20\ +\x2f\x2f\x1f\x07\x0e\x1c\x92\x6a\xb8\x54\x56\x54\x62\xe3\xc6\x5f\ +\x50\xd8\xf3\x3a\x5c\xdb\xe3\x1a\xb0\x02\x3f\x79\xcb\x57\x14\x14\ +\xb5\xb5\x56\xec\x3f\x70\x08\x07\x0f\x1c\x42\xb5\xa5\x46\x41\x85\ +\xe8\x98\x68\xb4\x6a\x95\xd4\xb8\xb6\x08\xaa\x1c\xed\xc2\xc2\x42\ +\xa4\xff\x94\x2e\x5d\x8f\x8a\x8e\xc2\x83\xff\xf7\x40\x9d\xdc\x90\ +\x29\x80\xca\xca\x2a\x59\xfd\x1f\x82\xc8\x88\x48\xa7\xfb\x6c\x36\ +\x0e\xe2\xd2\xce\x10\x8a\x19\x4f\x3e\x89\x01\x03\xfa\x4b\x05\x63\ +\x89\x4a\x38\xd4\x43\x0f\xfd\x1f\x1e\x7c\xf0\x01\xc4\xc4\x46\xc3\ +\xc0\x1a\xf0\xe7\x9f\x7f\xd9\x93\xcb\x18\x58\x70\x36\x0e\x9c\xcd\ +\x86\xf0\x70\x33\x56\x7e\xb8\x12\x4d\x9a\xc4\x20\xc4\x18\x22\xec\ +\x5b\x9c\xaa\x8e\x38\x6d\xda\xdd\xc8\xcd\x3d\x8f\x6f\xfe\xfb\x5f\ +\x00\x04\x56\x2b\x07\x56\xc3\xde\xf6\xfb\xef\xbf\xc3\x6a\xb5\x4a\ +\x0c\x71\x4d\xf7\xee\x8a\x59\x44\x08\x51\x78\xd9\x10\x15\xeb\xfb\ +\xbd\xf7\x4c\xc3\xd6\x2d\x5b\x90\x79\xee\x1c\x6a\x6b\xad\x98\xfd\ +\xca\xab\x58\xb6\xec\x3d\x24\xb7\x4f\xc6\xe1\xc3\x7f\x60\xe1\x9b\ +\x0b\xf1\xe7\x89\x3f\xa5\xb1\x63\x18\x16\x43\x87\x0d\xc7\x8c\xe9\ +\x8f\x07\x2c\xdb\xa1\x0e\x1d\x3a\xea\xe3\xd4\xaa\xe1\x9f\x67\xd0\ +\xe9\xec\x1f\x41\xa4\xbe\x1b\xac\xa6\xc2\x70\x75\xc8\xaa\x46\x48\ +\x3d\xd3\xc9\x43\x8c\x90\x08\xad\x89\xd6\x1a\x24\x05\x75\x00\xdc\ +\x7d\x58\x07\x02\xb8\x1a\xd1\xc0\x2b\x45\x7a\xba\xdb\xc6\x84\x7e\ +\xfd\x7a\xa1\xaa\xb2\x12\x47\x8f\x9f\x90\xae\xd5\x54\xd7\xe0\xf7\ +\xdf\x77\x21\x23\x23\x13\xfd\xfa\xf5\x46\x52\xa2\xf7\x35\x84\xb2\ +\xb2\xb2\xf1\xfb\xae\x3d\x28\xb8\x54\x28\x29\x44\x72\x14\x15\x16\ +\xe2\x97\x4d\x5b\x31\x72\xf8\x10\x18\x4d\xa6\x46\x49\xbb\x5d\xbf\ +\xef\x42\xa5\x68\xfd\x22\xc0\xe8\xd1\x63\x10\x1f\x1f\x57\xe7\xe7\ +\x96\xcb\x2c\x4f\x0c\xc3\x20\x3c\xc2\xd9\x52\x34\x76\xec\x18\x44\ +\x44\x44\xe2\x95\xd9\xb3\x31\x62\xe4\x30\xbc\xfd\xd6\xdb\x58\xbc\ +\x78\x89\x54\x13\xcd\xb9\xb8\x29\x9f\x68\x80\x52\x4e\x48\x8f\x4d\ +\xc0\x39\x24\xd6\xf8\xec\xb3\xcf\xb0\x66\xed\x97\xb2\x4c\x73\x82\ +\xef\xb2\x98\xee\x9a\x42\x79\xe4\x44\x29\x08\xc3\x60\xe6\xcc\x99\ +\xc8\xcb\xe3\xdd\xf2\xde\x98\xff\x2f\x84\x87\x7b\xae\xc9\xb4\x31\ +\x7d\x23\xc4\xc7\x87\x9a\x42\xd1\x5d\x50\x8a\xbc\xd9\x3b\x23\x22\ +\xc2\x31\x73\xe6\x4c\x3c\xfe\xf8\xe3\xa8\xb5\x59\x51\x54\x54\x84\ +\xa7\x9f\x79\x16\xd7\x74\xeb\x86\xf4\xf4\x74\xd8\xac\xf6\xfe\xb5\ +\x6d\xd7\x1e\x4f\x3c\xf1\x38\xfa\xa7\xf5\xd5\x8b\xb7\xea\xd0\xa1\ +\xa3\xce\x08\xb8\x52\x54\xef\x2e\x84\x0d\xb6\x4e\xfa\xf6\x22\xaa\ +\x62\x15\xa0\xc2\xa6\x24\x7f\x36\xc3\x32\x4e\x74\xd3\x94\x40\x40\ +\x8a\x9d\x11\x63\x6c\x58\x55\x21\x9b\x8a\x9b\xae\x07\xe1\x5b\x3c\ +\xe5\x93\x27\x46\x60\x88\xbd\x5a\xac\x78\xdd\xc6\x71\x42\xdc\x91\ +\x7b\x7a\x11\xb6\x8e\xc2\x3e\x43\xa4\x8d\x9d\x0a\x1b\xba\x9a\x3a\ +\x25\xa5\x76\xa5\x6e\x2a\x4e\xc9\xfa\x2f\xdd\x47\xd5\x5d\x2f\xc5\ +\xf8\x1f\x48\x35\x33\x5c\xdd\xe7\x9e\x37\x88\xf0\x2e\x2a\x74\x80\ +\xa3\x0e\xf6\x30\x2a\x0a\x51\x44\x08\x9e\x27\xf5\xab\x90\x7b\x9c\ +\xa9\x8d\xe1\xa9\x3e\xbc\x98\x04\xed\x0a\xe6\xdb\xc2\xce\x1a\x30\ +\x72\xe4\x30\x10\x86\xc1\x89\x13\x7f\x4a\x96\x06\xce\xc6\x21\x27\ +\x3b\x07\x5f\x7f\xfd\x2d\x12\x13\x5b\x20\xb5\x73\x27\xb4\x69\xd3\ +\x0a\x66\xb3\xd9\x21\xa6\x0f\xd2\x3c\xae\xae\xae\x46\x46\x66\x26\ +\x4e\x9c\xf8\x0b\x59\x59\x39\x8a\xee\x12\x2a\x66\x4f\xa4\xd2\xbc\ +\x39\x75\xf2\x14\x00\x8a\x11\xc3\x87\xc2\x64\x32\x36\xdc\xa1\x86\ +\x1f\x56\x6d\x02\xe0\xaf\x3f\xff\x54\xcc\xe1\xb4\xb4\x7e\x7e\x79\ +\x57\x71\x71\x91\xc4\x2d\x06\x96\x85\xd9\x6c\x56\x55\x12\x06\x0f\ +\x1e\x88\xcf\xbf\xf8\x14\x61\x61\xe1\xf8\x72\xdd\x06\x41\x79\x51\ +\x68\x30\x4e\x3d\x10\x15\x11\xe9\x8a\x70\x9b\x55\x70\xa5\xab\xb5\ +\xda\xdc\xf7\x5f\xb6\x4e\x89\x49\xb0\x8d\x21\x21\x58\xf4\xe6\x02\ +\x10\x42\xa4\x71\x74\x87\x63\xc7\x8e\xe1\xc0\xa1\x43\xd2\xb4\xb8\ +\xf6\xda\xeb\xd0\xa4\x49\xac\xfb\x79\x4e\xd4\xd7\xb3\xde\xbd\x7b\ +\xe2\xa1\x87\x1e\xc2\xbb\xef\xbd\x07\x00\xc8\xc9\xca\x42\x4e\x56\ +\x96\xd4\xba\xa8\xa8\x18\xdc\x7b\xef\x3d\xb8\x73\xca\x64\xc5\x63\ +\xf4\xcc\x73\x3a\x74\x04\x03\xbc\x9c\x87\xf5\xb5\x3d\x78\x5b\xa7\ +\xe8\x4a\x89\x29\xd2\x3a\x3c\x81\x38\x68\xfa\xed\xb7\xdf\x30\x77\ +\xde\x3c\xc9\x6d\x8a\x30\x0c\x3a\x75\xea\x84\x6f\x36\x7c\x2d\x24\ +\x1f\xe0\x1b\x95\xdc\xa1\x83\xcf\x3c\xf4\xca\xec\x57\xd0\xe3\xda\ +\x1e\x60\x04\xc1\x9f\x52\x8a\xb6\x0e\x15\xde\x4d\x46\x23\x3e\x5c\ +\xb9\x12\xd5\x35\xd5\xb2\x22\x7a\xf2\xfd\x92\x77\x7b\x28\x29\x2d\ +\xc1\x9d\x77\x2a\xb3\x20\x65\x67\x67\x63\xcc\x0d\x63\x05\x45\x81\ +\x4f\xaf\xdd\xac\x69\x33\x6c\xf8\x6a\x3d\x5f\x44\x50\x50\x0e\x88\ +\x9c\xd0\xc2\x26\xde\xaa\x55\x2b\x9f\x07\xe7\x91\x47\x1e\xc5\x88\ +\x11\xc3\x01\x40\x72\xed\x98\x3d\xfb\x15\x1c\x38\xb8\xdf\xeb\x81\ +\x35\x9a\x8c\xf8\xec\xb3\x4f\x61\xb3\xd9\x24\x97\x8e\xb2\xd2\x32\ +\xdc\x21\x6c\xba\x22\x12\x12\x5a\xe0\xbd\xf7\xde\x85\xc1\x10\x22\ +\xea\x64\x38\x71\xfc\x4f\x3c\x3b\xf3\x59\xc5\x7d\x3d\x7b\xf6\xc2\ +\x4b\x2f\xbd\x24\x6d\xf2\x8c\xcc\x22\x44\x60\x57\xd0\x0e\x1c\xd8\ +\x8f\x1b\x6e\x18\x03\x4e\x52\x7e\x18\xfc\x29\x17\xca\x04\xcc\x9f\ +\x3f\x1f\x9f\x7e\xfa\x29\x2f\xd8\x72\x36\x10\x86\xc5\x9c\x57\x5f\ +\x45\x9f\x3e\x7d\x82\x5a\xe9\xd7\x11\x58\x0c\x19\x3c\x10\x51\x51\ +\x91\x38\x70\xe0\x10\xaa\xab\x95\x96\x9d\xf3\xe7\x73\x91\x9d\x7d\ +\x1e\xac\xc1\x80\xa6\x4d\x9b\x20\x26\x3a\x0a\x66\x73\x28\x58\x96\ +\x85\xd5\x66\x43\x75\x55\x35\x8a\x4b\x4a\x50\x50\x50\x08\x9b\xd5\ +\xa6\x2a\x70\x86\x9a\x4c\x48\xee\xd0\x0e\x99\x99\x59\x28\x17\x52\ +\x3e\x03\xc0\xa9\x53\x67\x00\x00\x23\x86\x0d\x81\x29\xb4\x71\x59\ +\x8c\x4a\x4b\xcb\x15\x7b\x6a\x98\x8a\xf2\xe2\xf5\x1e\xc4\x71\xc8\ +\xca\xca\xb2\x2b\xad\x06\x83\xdb\xec\x7c\x89\x89\x89\xa8\xae\xae\ +\xc1\xd8\x1b\xc6\x2a\xd6\x0f\x47\x15\x9c\x8a\xe7\x51\x92\x42\x44\ +\x51\x5c\x54\x84\x9d\x3b\xed\x49\x68\xda\x5e\xd5\x16\x9d\x3a\xa7\ +\x42\x2c\xea\xca\x5b\x9c\xa8\x7b\x21\x02\x40\xab\xa4\x24\x84\x6a\ +\x1c\x3b\x4a\x29\x56\xad\x5a\xa5\x50\x6e\xc6\x8c\x19\xed\x71\x2d\ +\x77\x67\xdd\x99\x3a\xf5\x2e\x5c\xcc\xbf\x84\x2f\xbf\x5c\xab\xb8\ +\x1e\x15\x15\x8d\xf7\xde\x7b\x07\x29\x29\x1d\xf5\x09\xae\x43\x87\ +\x0e\xbf\x2a\x0b\x4e\x4a\x91\x68\x09\xf0\x3a\x91\x44\x70\x1e\x98\ +\x06\xbd\xe0\x97\x9b\x73\x1e\xe9\xe9\xe9\x8a\xcd\x28\xa9\x65\x12\ +\xc6\x4d\x18\xef\xb1\x45\x5a\x5a\xcb\x10\x82\x3e\x7d\xfb\x60\xf4\ +\xa8\x51\x6e\xef\x63\x59\x16\x23\x46\x0e\xf7\xf8\xbc\xfc\x8b\x17\ +\xf9\xe2\xa2\xb2\x83\xc7\xca\xca\x4a\xfc\xbc\x71\xa3\xe2\xbe\xeb\ +\xae\xeb\x85\xf1\xe3\xc7\xfb\xcd\x92\xa1\x16\x20\xdd\xbd\x7b\x77\ +\x4c\x98\x30\x41\x71\xf9\xbd\xf7\x96\xfa\xa4\x16\xb3\x2c\x8b\x1b\ +\x6e\xb8\x41\xf1\x8b\xa2\x4b\x97\x9c\xee\x8b\x88\x08\xc7\xb8\x71\ +\xe3\xa4\x54\xb6\x94\x52\xc4\x44\xc7\x3a\xdd\x17\x1f\x1f\x8f\xf1\ +\xe3\xc7\xb9\xec\xbf\x28\x60\x1e\x3a\x74\x08\x3f\xfd\x94\xee\xb1\ +\x7d\x47\x8f\x1e\xc5\xd1\xa3\x47\xed\xdd\x67\x18\x3c\xf2\xc8\x23\ +\xfa\x22\x56\x57\x86\xa2\x2e\x58\x84\x68\x5d\xd8\x82\xd4\x02\x22\ +\xf0\x9d\xc1\x60\x40\x9f\xde\x3d\xd1\xa2\x45\x3c\x7e\xfd\x75\x37\ +\xf2\xf2\xf2\x41\x29\x07\x9b\x95\x13\x7a\x47\xc1\x59\x2c\xb8\x90\ +\x7b\x01\x17\x72\x2f\xb8\xec\x96\x58\x23\x86\x95\x59\x92\xe3\xe2\ +\x9b\x23\x2d\xad\x0f\x5a\x25\x25\x21\x2b\x27\x07\x3f\x6f\xdc\x84\ +\xb2\xb2\x72\x49\xb8\x3e\x75\xf2\x34\x28\x05\x46\x0c\x1f\x82\x50\ +\xc1\x95\x8e\x04\x8d\x8b\x93\xeb\xa0\xb2\x50\xb3\xd9\x6e\xd1\x31\ +\xb0\xd8\xf9\xdb\x6f\xb8\xf6\xda\x1e\xbc\x75\xdd\x53\xfb\x29\x95\ +\x9e\x2a\xe4\x27\x05\x28\xb0\x7d\xfb\x76\xe4\xe5\x5d\x94\x6e\x0b\ +\x0b\x35\x23\x42\xc5\x7d\x4e\xd1\x8e\x50\x13\x5e\x7b\xed\x55\xaf\ +\xc6\x9b\x52\x8a\xe3\xc7\x4f\x48\x99\x39\x29\x61\x30\x70\xd0\x60\ +\xcc\x78\xe2\x51\xcd\xbf\xf7\x05\x87\x0e\x1d\xc2\xd6\xad\xdb\xa4\ +\xcf\xcd\x9b\x37\xc7\xd0\x61\x43\xd5\xd9\x49\x96\x7d\xce\xfe\x5e\ +\x9e\x6a\xb5\x56\x2b\xfe\x3e\x79\x12\x5b\x36\x6f\x46\x5e\x5e\x1e\ +\x9e\x7f\x7e\x26\xcc\x61\x66\x7c\xba\x7a\x35\x6a\x6b\x6b\xc1\x10\ +\xa0\xac\xb4\x04\x8f\x3e\xf6\x18\x6e\xbb\xed\x56\x4c\x18\x37\x0e\ +\x71\x71\x71\xfa\xa1\x8d\x0e\x1d\x01\x56\x26\xd4\x03\xf5\xd5\x6b\ +\x76\xba\x12\xd1\xe4\x45\xa7\xfd\xb4\x11\xc2\xdb\x27\x1a\xf4\xd1\ +\xf4\x4e\x78\xf6\xf7\xa3\x9c\x36\x21\x2f\x84\x06\xad\x02\x86\x9a\ +\x5b\x4c\x7d\xf7\x8d\x61\xea\x63\x93\x22\x8a\x97\x13\x4d\x85\x7f\ +\x7c\x1f\x56\x57\x02\x02\xd1\x20\x14\x6b\xed\x7f\x5d\xdc\x3d\x48\ +\x63\x9d\x1b\x3a\x1a\x1c\xad\x5b\xb5\x42\xfc\xc4\x78\x9c\x38\xf1\ +\x17\x0e\x1d\xfa\x03\x45\x52\x51\x4e\xef\x11\x15\x1d\x85\xee\xdd\ +\xbb\xa1\x73\xe7\x14\x18\x85\xc3\x81\xd6\x49\x49\x18\x31\x72\x18\ +\x36\xa6\x6f\x52\x58\x8c\xce\x9c\x3e\x83\x9f\xa1\x54\x8c\x82\x45\ +\x1d\x72\xc5\xe5\x1d\x3b\x2a\x2d\x10\x9f\x7d\xf6\x19\x8e\x1f\x3b\ +\x86\x4e\x9d\x3a\x21\x2a\x2a\x0a\x2c\xc3\x08\x05\xab\x95\xb3\x82\ +\xc8\x5c\x78\xc5\xeb\x45\xc5\xc5\xc8\xce\xce\xc6\xde\x3d\xbb\x15\ +\x2e\xc7\xed\xdb\xb7\xab\xb7\x38\x41\xc7\x7d\x81\x65\xeb\x77\xa5\ +\xa8\xa9\xa9\xc1\xe2\xb7\x17\xa3\xb6\xb6\x56\xba\x76\xfb\xed\xb7\ +\xab\xa6\x10\x77\x5c\x47\x28\x28\xaa\x6b\x6a\x70\xec\xf8\x71\x6c\ +\xd9\xb2\x15\x3b\x77\xee\x44\x76\x56\x16\x7f\xd8\xd4\x84\x4f\x7f\ +\xfe\xc8\xc3\x0f\xa2\x4d\x9b\xd6\x58\xbc\x78\x31\x4a\x8a\x8a\x00\ +\x00\xa5\xc5\xc5\xf8\xe0\x83\x0f\xb0\x6a\xd5\x2a\xa4\xa5\xa5\x61\ +\xc4\xb0\xe1\xe8\xd9\xb3\x27\x62\x63\x63\xf4\xc9\xae\x43\x47\x23\ +\x17\x9f\x03\xb9\x39\x38\x29\x45\x94\x34\x78\x1b\x2e\x83\x41\xad\ +\x4b\xd6\x02\x02\x86\x61\xc1\xc9\xaa\xc1\x33\xc4\xb5\x07\xbe\xb8\ +\xb1\x72\x1c\xa7\xe9\x1d\x14\x00\x61\x88\xcf\x21\x14\x8e\x42\xbb\ +\xcd\x66\x73\x4f\x26\x62\xef\x83\x9c\xa4\xc4\x0f\x8c\xc2\xb0\x8c\ +\xd4\x1e\xe2\x52\xd1\x23\x3e\x2b\x8f\x4e\xca\x15\x21\x60\x59\x83\ +\x82\xee\x84\x10\xa7\xea\x8f\x54\x28\x92\x28\x7f\x3d\x21\x04\x1c\ +\xe5\xa4\x13\x76\xc7\x93\x51\xbb\x46\x47\x2e\x8f\xb9\x13\xec\x0b\ +\x35\xf1\x95\xa8\xcc\x65\xb1\xe2\x13\x42\x10\x6a\x32\xa1\x47\xf7\ +\x6e\x48\xed\x9c\x82\xb3\x67\x33\xf1\xe7\x5f\x27\x71\xe1\xc2\x45\ +\x58\x6a\x6a\xc0\x71\x1c\x38\xc8\x32\x1f\xf2\xec\x0f\x42\x08\x18\ +\xc2\xc0\x64\x32\x22\xa1\x45\x0b\xa4\xa4\x24\xa3\x6d\xdb\x36\x30\ +\x19\x9d\x15\x9c\x36\xad\x5a\x61\xf4\xe8\x11\xf8\x29\xfd\x67\x94\ +\x0b\x16\x23\x8e\x52\x9c\x3a\x75\x1a\x00\xc5\xf0\x61\x43\x60\x16\ +\x04\xe5\x80\x5b\x8c\x64\xfe\x67\x84\x28\x2f\x0f\x19\x32\x08\x8b\ +\x97\x2c\x41\x69\x69\x89\x14\xd4\xbf\x6f\xdf\x3e\xec\xdb\xb7\xcf\ +\x39\x06\xc6\x15\x77\x50\x57\x47\x9f\xfc\xe7\xa1\xc3\x86\xa9\xd2\ +\x20\xef\x42\x1e\x6a\x54\x12\x58\x78\x83\xdc\xdc\x5c\x85\x3b\x5d\ +\x49\x71\x11\x32\x33\x33\x85\xc3\x1a\x46\xf3\xda\xe7\x38\x1d\xe2\ +\x12\x12\x9c\x6a\x13\x89\x45\x6e\x0f\x1f\x39\x22\x75\x33\x21\x3e\ +\x01\x93\x26\x4d\x54\x9d\x72\xd6\x5a\x2b\x38\x9b\x5d\x39\xfc\xf8\ +\x93\x4f\xf0\xaf\x7f\xcf\x47\x4e\x76\x8e\x82\x2f\x28\x78\x37\xc6\ +\xb2\xd2\x32\x84\x87\x85\x63\xdc\xd8\x1b\x70\xdd\xb5\xd7\x62\xf1\ +\x92\x25\xd8\xba\x75\x0b\x3f\x2e\x1c\x45\x75\x55\x15\x36\x6f\xda\ +\x84\x2d\x5b\x36\x23\x2c\x2c\x1c\x5d\x52\x53\xd1\xab\x67\x2f\x5c\ +\x7b\x6d\x0f\xa4\xa4\xa4\xa8\xc6\x6d\xe9\xd0\xa1\xa3\x1e\xd6\x53\ +\xa2\xb2\x32\x6a\x4c\xb8\x55\x6f\x7a\x95\x0f\x02\xa8\x6e\x29\x6a\ +\x58\xc9\xc4\xe3\x35\xe2\xc5\xe9\xa1\x56\x2b\x03\xf1\x33\xab\xb1\ +\x2c\x23\xa5\x20\x77\x07\x8e\x72\x60\x08\xeb\x57\xde\xf6\x9e\x56\ +\xbe\xf5\xdd\x3d\x6d\x89\xc7\x71\x65\x48\x80\xf8\x49\x87\x0e\x0f\ +\x30\x99\x4c\x48\xe9\xd4\x11\x29\x29\x1d\x50\x55\x55\x85\xfc\x4b\ +\x85\x28\x2c\x2c\x42\x49\x49\x29\x6a\xaa\x6b\x60\xb5\x59\xc1\xb2\ +\x0c\x42\x43\x43\x11\x1d\x15\x89\x66\xcd\x9a\xa2\x69\xd3\xa6\x30\ +\x9b\x43\x3d\x2a\x33\x49\x2d\x13\x31\x7a\xd4\x08\xa4\xff\xf4\xff\ +\xed\x9d\x7b\xb4\x24\x55\x7d\xef\xbf\xbf\xea\x3e\xe7\xcc\x8b\x79\ +\x8f\x0c\xaf\x61\x1c\x12\x45\xee\x5a\x30\x04\x06\x13\xc5\x01\x09\ +\x03\x38\x84\x70\xd5\x68\xb8\x06\x13\xcd\x43\x42\xa2\xc6\x9b\xb5\ +\xb2\x94\x24\x2b\x80\x0f\x22\x26\x77\xdd\x1b\xe3\x0d\x41\x6f\x62\ +\x12\x1e\x3e\x98\x88\x59\x06\x07\x41\x91\xeb\x55\x60\x8c\x04\x74\ +\x54\x50\x06\x10\x9d\x19\x01\x61\xe6\xcc\x9c\x99\xf3\xee\xfa\xdd\ +\x3f\xba\xaa\xba\x6b\x57\xed\xae\x5d\xdd\xd5\xdd\xd5\x7d\xbe\x1f\ +\x3d\x6b\xe8\xee\x7a\xfc\xf6\xb7\x76\xed\xbd\x7f\xfb\xf1\xdb\x5f\ +\xc6\x44\xd3\x1e\x32\x4f\x3e\xf9\x34\x00\xc4\x1c\xa3\xbe\x3b\x44\ +\x96\xca\x72\xd5\xaa\x95\xb8\xe6\x7d\xef\xc5\xb5\xd7\x5d\x87\xd9\ +\xd9\xd9\xc2\x6f\x7f\xfa\xe9\xa7\xe3\x57\x2f\xfb\x95\xd4\xdf\xde\ +\xf1\xfb\x57\xe3\x99\x67\x7e\x84\xe6\x51\x71\x33\x88\x82\xa6\x44\ +\x62\xd1\xc8\x97\x91\x7a\xa7\x5a\x53\xba\xee\xbc\xf3\xf3\xf8\xd7\ +\xcf\xdd\xd9\x74\xa2\xa4\x16\x1f\x8a\xf8\xa6\xf4\x1a\x39\x29\xf5\ +\xdd\xdd\xfe\xf9\x93\xff\x88\xcd\x9b\xcf\x88\x9d\xb3\x7b\xf7\x77\ +\xf1\x0f\xff\xf8\xc9\x98\xf3\x7d\xf5\xef\x5f\x85\xe5\xc7\x24\xc3\ +\x8d\x1f\x3d\x7a\x14\x77\xec\xd8\x11\xdb\x5a\xe1\xe1\x87\x1f\x4e\ +\x7d\x08\x2f\x3d\x79\x23\xce\x3f\xff\x3c\x2c\x6b\x0a\x5b\x7e\xfc\ +\x71\xeb\xf1\xe1\x1b\x3e\x84\x47\x1e\xfd\x36\x6e\xbd\xf5\x56\x7c\ +\xed\x6b\x5f\x8b\x9d\x33\x39\x79\x14\xbb\x76\x7d\x13\xbb\xbe\xf9\ +\x4d\x88\x78\xf8\xc8\x8d\x37\xe2\x97\x2f\x78\x2d\x5f\x78\x42\x7a\ +\xc1\x90\x4c\x26\x29\xce\x29\x92\x85\xfd\x4c\xbd\x36\x1b\xe8\xbf\ +\x7c\xe1\x05\x78\xf0\x1b\xdf\x80\x78\x8d\x20\x08\xeb\xd6\xad\x4b\ +\x34\xce\x3f\xfe\xf1\xff\x83\xbf\xbf\xf9\x26\x84\xd1\xce\x3c\xcf\ +\xc3\xde\xbd\x7b\xb3\xef\xe8\xfb\xf8\xbd\x77\x5c\x85\x15\x2b\x56\ +\x44\x51\xce\x3c\xaf\x8a\x4f\xdd\x76\x2b\x4e\x7d\xc5\x2b\xac\x8f\ +\x4d\x15\x98\x9a\x9a\xc4\xc5\x97\x6c\xc7\xc4\xc4\xa1\x7a\xb5\x28\ +\x82\xa5\x4b\x96\xe1\xfe\xfb\xef\xc7\xe8\xe8\x68\xcb\x6c\xf0\xc3\ +\x1f\xfc\x00\xe7\x6c\x39\x07\xf3\xb5\xf9\x58\xe6\x08\xa3\xb1\x85\ +\xe9\xba\xfc\xf2\xcb\x71\xfd\x75\xd7\x65\x36\xb6\xfe\xe8\xdd\xef\ +\xc2\xaf\xbf\xf9\xcd\xf5\x11\xa8\xa0\xbd\xf0\xd2\x97\x6e\xec\x38\ +\x1f\x86\x4f\x64\x76\x66\x06\x17\x6e\xdb\x86\x89\x89\x89\xba\x6d\ +\x02\x1c\xb3\x6c\x39\xbe\x7a\xff\x7d\x18\x1b\x1d\x8b\x9e\xef\xd8\ +\xd8\x22\x54\xab\xf1\xd7\x66\xf3\x99\x9b\xb1\x6b\xd7\x43\xc1\xed\ +\xeb\x06\x3c\xf2\x9f\x0f\x63\xcb\xd9\x5b\x50\xf3\xfd\x68\xc3\xd8\ +\xd7\xbf\xfe\xf5\xb8\xee\xda\x6b\x5b\xe7\x09\x01\xde\xf5\xae\x3f\ +\xc2\x95\x57\xfe\x46\x2c\x39\xd7\x5e\x7b\x3d\x76\xee\xbc\x6b\x78\ +\x0a\x21\x6d\x0a\x5f\xd6\xcd\x9e\x1f\x19\xee\x02\xbc\xa3\xe2\x5a\ +\x04\x4b\x96\x2c\xc1\xc9\x1b\x96\xe0\xe4\x0d\x27\x06\xb2\x68\x2c\ +\x1f\xe7\xf7\xd3\x05\x27\x9d\x78\x02\x2e\x79\xdd\x85\xd8\xb9\xf3\ +\xde\x68\x2a\x9d\xfa\x3e\xf6\x3c\xf1\x24\x7c\x5f\x71\xd1\xb6\x0b\ +\xfa\x3c\x62\xd4\xd8\x1b\x4c\x2c\x65\xf7\xc5\x17\x6f\xc3\xea\xd5\ +\xab\x71\xf3\xcd\x37\xe3\xbb\xdf\xfb\x3e\xe6\xe7\xe6\x83\xf5\x41\ +\x0a\x88\x66\x2c\x45\x0b\x1d\x15\x89\xf6\x83\xf3\x3c\xc1\xba\x75\ +\xeb\xb0\x6d\xdb\x36\xfc\xce\xef\xfe\x8e\x75\x04\x23\x1c\x9d\xd3\ +\xa8\xeb\x55\x93\xd9\x36\xd6\x2b\xdb\x48\x87\x34\x3d\xb7\x86\x05\ +\x8d\xe7\x02\x91\xf8\x9e\x4c\xb1\x41\x6f\x69\x0a\x40\xa7\x4d\x11\ +\x3b\x25\xb5\x8e\x53\x00\xe3\xe3\xe3\xb8\xee\xfa\xeb\x31\x35\x35\ +\x1d\x1d\x77\xd6\x2f\x9c\x85\xed\x97\x6e\x4f\x7d\xdd\x1e\x78\xe0\ +\x41\x7c\xea\x33\x9f\x45\xa5\x3a\x12\xcd\x8c\x08\xeb\x81\x6a\xa5\ +\x8a\x4d\x2f\xdd\x84\xf3\xcf\xdf\x8a\xf3\x5f\x7b\x3e\x4e\x3b\xed\ +\x15\xa9\x1d\x40\x9e\x08\xce\xfa\x85\x33\x71\xe6\xe6\x33\xf0\xe4\ +\x53\x4f\x61\xe7\xce\xbb\x71\xdf\x57\xee\xc3\xde\xbd\x7b\xa1\xaa\ +\x18\xec\x21\x82\x94\x00\x00\x20\x00\x49\x44\x41\x54\x1d\x19\xc5\ +\xec\xec\x0c\x36\x6e\x3a\x19\xe7\x9e\xfb\x6a\x36\x54\x09\x29\x5b\ +\xbd\x53\xf2\xea\x97\x23\x45\x7d\x76\xa7\x56\xad\x5e\x8d\x2d\xaf\ +\x3c\x27\xb3\x09\xb2\x7f\xdf\x3e\x3c\xfa\xe8\x23\x6d\xdd\xea\x47\ +\x4f\x3f\xdd\xa8\xd8\x82\x90\xdc\x93\xc6\xee\xea\xb6\xdc\xbb\xfb\ +\x3b\xdf\xc6\xa1\x43\x8d\xf5\x07\xcb\x57\xac\xc2\x96\x2d\x5b\x50\ +\xad\x56\xed\x41\x04\x00\x1c\x3d\x3a\x89\x47\x1e\x79\x34\x08\x23\ +\x6d\x6d\x41\x61\xf3\x19\x9b\x9d\xd2\xb0\x61\xc3\x06\x6c\xd8\xb0\ +\x21\x3e\x87\xdf\xb1\x0d\xec\x2a\xd9\xee\xef\xec\x8e\xa5\x75\xc5\ +\xca\x55\x38\x67\xcb\x39\x75\x07\xb0\xc5\x94\xc6\x65\xcb\x96\xe2\ +\xec\x2d\x5b\x1a\x4d\x18\x55\xfc\xf8\x99\x67\xf0\xc8\xa3\x8f\xc6\ +\xa6\xd1\x9c\x7d\xd6\xd9\x0e\x16\x0b\x4e\x3a\xf1\x44\x6c\x39\xfb\ +\xec\x60\xd1\x42\xbd\x01\xb6\x7a\xd5\x2a\xb6\xec\xc9\xc0\x70\xc2\ +\xf1\xc7\xe3\x75\xaf\xdb\x16\x73\x8c\x00\xe0\xe9\xa7\x7f\x84\x7b\ +\xee\xbd\x2f\xe6\x18\xf5\xb7\xa4\xb6\x97\xbc\x5b\xb6\x9c\x85\xb3\ +\xce\xfa\x7b\xbc\xf0\xc2\x8b\x78\xf6\xd9\x67\x31\x39\x39\xd9\xb4\ +\xd9\xa9\x5a\x9c\xad\x46\x67\x14\x00\x8c\x8c\x8c\x61\xf1\xe2\x45\ +\x58\xbd\x7a\x35\xd6\xac\x5d\x83\xb1\xb1\xb1\x96\x8e\xe0\x25\x17\ +\x5f\x82\x17\x0f\xbc\x08\x81\x17\x38\x31\x69\x9b\xb6\x36\xb6\x03\ +\x68\xa4\x41\xa3\x48\x74\xd2\xa2\xef\x40\x03\xf7\x47\xa5\x69\x9a\ +\x64\x73\xb8\xd1\x30\x7d\xd1\x89\x1e\x44\x14\xbe\x02\x6b\xd7\xae\ +\x89\x5d\xeb\xb1\xc7\x1e\xc7\xd4\xf4\x4c\x74\xff\xa5\x4b\x97\xe1\ +\x9a\xf7\xbd\x17\xd5\x4a\x25\x55\xe5\x57\xbf\xfa\x55\x58\x7f\xec\ +\x7a\x3c\xfb\x5c\x23\xa0\xc7\xc6\x0d\x27\xe3\x82\x0b\x2e\xc0\x45\ +\x17\x6d\xc3\x29\x3f\x77\x0a\x2a\x95\x8a\xb3\xa3\x7c\xca\xa6\x4d\ +\x78\xd7\x3b\xff\x10\x57\x5d\xf5\x0e\x7c\xff\x7b\xdf\xc7\xd7\xbf\ +\xfe\x0d\xec\xda\xb5\x0b\x7b\xf6\xec\xc1\x5b\xaf\xbc\xd2\xda\x71\ +\x47\x08\x21\x39\x9c\xa2\xde\xf9\x72\xfd\x1c\x5c\x2a\xcb\xcc\xa3\ +\x5c\x1d\xde\x05\x3c\x92\x70\x63\xbf\xc4\xd2\x98\x14\xe6\xe7\xe6\ +\x12\x81\x0b\x3c\x4f\x1a\xe1\x61\x55\x53\x2b\x30\x41\xbd\x47\x2f\ +\xd3\x5c\xcb\xf9\x9d\xe8\x95\x7e\x3d\xcd\xee\xb9\xf0\xfd\x64\x90\ +\x06\xd5\xd8\x1e\x47\x6e\xf7\xd3\x60\x3f\x45\x4d\x7c\x1f\x8e\x04\ +\x66\x65\xc0\xb0\x57\xb7\xd9\x72\x3f\x65\xff\xa5\x52\xbb\x44\x59\ +\x51\x5f\x44\x07\xa4\xd0\xf0\xad\xce\x6b\x99\xcb\xb7\xf6\xcb\xa3\ +\x82\xa2\x45\x8a\xe0\xc4\x13\x4e\xc0\xf6\xed\x17\xe3\x8b\x5f\xbc\ +\x07\x13\x13\x87\xa3\xf7\xec\xa9\x27\x9f\xc2\xbd\xe2\x61\xdb\x85\ +\xe7\x17\x12\xee\x3a\x9f\x57\x54\x1f\x89\xdf\x7c\xfa\x19\xf0\x83\ +\xf2\x67\xcd\x9a\xd5\xd6\xf7\xba\x52\xa9\xe0\xd8\x63\x5f\x92\x7b\ +\xf3\xd6\xc6\xda\xc7\x7c\x7a\x5e\x75\xd5\xef\x0d\x48\x3e\x01\x5e\ +\xf5\x4b\xbf\x88\x3b\x3e\xfb\x69\xdc\xbd\xf3\x4b\xf8\xf4\xa7\x3f\ +\x8b\x5f\x7b\xd3\x1b\x71\xca\x29\x9b\xac\xe7\x2c\x59\xb2\x04\x6f\ +\x78\xc3\x1b\xb0\xe3\x8e\x3b\xf0\xda\xf3\xcf\xc3\x45\x17\x5f\x84\ +\x33\xce\x38\xbd\xad\xd7\xbe\x79\xd4\x6a\x6c\x74\x14\x67\x9e\xb9\ +\x19\x67\x9e\xb9\x19\xef\x7c\xe7\x1f\xe0\xc5\x17\x0f\x24\x1c\x38\ +\x42\x48\x7f\xbb\x9f\xca\xd8\xc0\xd6\x14\x3b\xab\x0b\x56\xb6\xb4\ +\xbd\x36\xbd\x12\x37\x63\x0a\xf6\xe2\x5c\x2a\x6b\xed\xb8\xa1\xa7\ +\xbd\xcf\x05\xa9\x4e\x9a\xb4\x7f\x29\x29\x28\x8f\x69\x21\xef\x70\ +\x57\x1a\xb0\x84\x74\x8b\xe3\x8f\x5b\x8f\xed\xdb\x2f\xc2\x17\x77\ +\xde\x83\x89\xc3\x87\xa3\xef\xc3\xa8\x74\x97\x5f\xf6\xba\x9e\xdb\ +\xb4\xf5\xbc\xad\xd8\x7a\xde\x56\x3e\x9c\x02\x58\xb6\x74\x29\xde\ +\xf8\xc6\xd7\xe3\xbf\x5e\xfe\xab\x89\x0d\xc6\xd3\x78\xeb\x95\x6f\ +\xc1\x95\xbf\x71\x05\x46\x46\x46\xba\x36\x75\x32\xcd\xc9\x25\x84\ +\xf4\xd7\x01\x19\x14\x5f\xae\xda\x3d\x65\xb4\xdc\x1a\xa6\xdc\xdc\ +\xf3\x2a\xa8\x04\x9b\x72\x5a\xed\x37\x07\x13\x20\x18\x19\x1d\x2b\ +\x2c\xd7\x84\x3d\x8c\xe1\xb4\x89\x68\xee\xba\x31\x0d\x2d\x0c\x32\ +\x10\x46\x3d\x13\x9b\x99\xaa\xc1\x94\x0f\xcd\xd9\xa0\xd6\xf0\xff\ +\x71\x8d\x44\x82\xeb\x49\x32\x49\x4d\x07\xcf\xd7\xe6\x53\x66\xc4\ +\xa7\x26\x18\x35\xbf\xd6\x98\xc2\x61\x39\x21\xea\x19\x0c\x47\x50\ +\x8c\x69\x2c\x8d\xa0\x59\xbe\x53\x6f\x40\x2d\x3c\x3f\xd0\xb5\xe6\ +\x10\x38\x22\x97\xa3\x92\x1a\x7c\x41\x53\xef\x53\xa9\x54\x1b\xd3\ +\x5d\x3c\x41\xb5\x5a\x89\x6f\x74\x1b\xfc\xeb\x55\x1a\xaf\xab\x57\ +\xa9\x38\x35\x42\xca\xdb\xe5\x61\xec\x5f\x20\x1d\xde\x46\x1c\xbf\ +\xcf\x4d\x9b\xd1\xe7\xe8\xaf\x46\x9d\x2f\x27\x1c\x7f\x1c\x2e\x0d\ +\x46\x8c\x0e\x07\x8e\xd1\xd8\xd8\x28\x5e\x71\xea\xcf\xf7\xc5\x9e\ +\xb2\xeb\xd5\xd7\xb7\xd6\x18\x91\x76\xb1\x47\x44\x50\x1d\x71\x6b\ +\x4a\x8c\x8c\x70\xc6\x3e\x21\x74\x98\x12\x85\x48\x7b\xf5\x6c\x87\ +\x7d\xea\x62\xcc\xc8\x01\x64\x21\xaf\x29\x4a\x46\x10\xfb\xfc\x9d\ +\x9f\xc3\xcc\xec\x2c\x3c\xcf\x83\x34\x45\xf0\x11\xa3\x91\xdb\x58\ +\xda\xaa\x4d\x11\x7a\x8a\x7b\x82\xb7\xdc\x72\x1b\xae\xf9\xd3\xf7\ +\x45\xfb\x61\x79\x9e\x17\x85\xb8\x6d\xe6\xcf\xff\xec\xcf\xf1\x5b\ +\x6f\x7b\x1b\x44\xc2\x10\xd8\x46\x78\xd9\xc0\x81\xf9\x6f\x57\xbc\ +\x05\x0f\xed\x7a\x30\x7f\xa3\x2d\xe5\x98\x03\x07\x0f\x60\xe3\xc6\ +\x4d\x10\xaf\x69\x19\xaf\x1a\xd9\x4a\x04\xb3\xb3\x73\x4e\xd1\xf1\ +\x3e\xbb\x63\x07\xbe\x7c\xdf\x7d\xb1\x63\x9b\xf5\x0c\x23\x2a\x5d\ +\x73\xcd\xfb\xf0\x07\x57\x5f\x1d\x3b\xf7\x3d\xff\xfd\x8f\xb1\x63\ +\xc7\x1d\xc1\xb3\x51\x78\xe2\xe1\x85\x9f\xbd\xe0\xa4\xf1\xd6\xd7\ +\x6c\xc5\x8f\x9e\xf9\x51\xb4\x56\xc8\xf3\x3c\x1c\x6e\x8a\x96\xd5\ +\x8d\xb6\xed\xad\xb7\x7d\x0a\x77\xed\xbc\x3b\x5a\x2b\x24\xe2\xe1\ +\x8a\x2b\xae\xc0\x13\x7b\x9e\x88\xee\x25\xa8\xaf\x33\x33\xf9\xe8\ +\xff\xfa\x9f\xf8\xd0\x07\xdf\x1f\x45\x97\xf2\x55\xb1\xfe\xd8\xf5\ +\x2c\x6c\x4b\xeb\x13\xd2\x2b\x6a\xe6\xb8\xf5\xc7\xd6\x47\x8c\xee\ +\xba\x07\x33\xb3\xb3\xb8\xf0\xc2\xf3\xf1\xf3\x3f\x77\x0a\x85\x21\ +\x84\x10\x52\x1a\xb7\xc0\xdd\x29\xca\xeb\x91\xd9\x1a\x05\x5e\xe8\ +\x52\x14\xbc\x8f\x4d\x01\x2e\xd2\x49\x1b\x4e\x2a\xf0\x7a\xd2\xb6\ +\x86\x47\x26\x0e\x63\xff\xfe\xfd\x0d\xaf\x20\x4d\x5e\x55\xac\x5d\ +\xbb\x06\xa7\x6c\x7a\x69\xcb\x6b\xf9\xbe\x9f\xbe\x89\x9e\xba\x69\ +\x92\x76\xdf\xfd\xfb\xf7\x15\xa6\xd3\xd4\xe4\x24\xf6\x4d\x4e\x3a\ +\x68\x32\x11\xb7\x49\x04\xe3\x07\x0e\xd6\xf7\xe4\x68\xa1\x93\x2d\ +\xad\xcf\xfe\xf4\xa7\x0d\x8d\xad\xe7\xd7\xd7\xf6\xcc\xcd\xcd\x62\ +\x64\xc4\x6d\xd1\x6e\x2b\x47\x70\x6a\x6a\x12\x53\xfb\xe2\x69\xad\ +\x78\x1e\x36\x6e\xdc\x68\xcd\xff\xe1\xf7\x6b\xd6\xae\xc1\x9a\xa6\ +\x79\xf2\x3d\xeb\x51\xce\x5e\x02\xd5\x99\x1b\x59\xd4\x12\x46\xcd\ +\x79\xdd\xbc\xf7\x75\x4d\x56\xb5\x5b\x2e\xf5\x80\xd7\x35\x22\x38\ +\xfe\xb8\xf5\xf8\x95\xcb\x2e\xc1\xe4\xd1\x49\x6c\xda\xb4\x91\xa2\ +\x10\x42\xc8\xf0\xf8\x13\x40\xb5\x92\xde\x60\xd0\x78\x3c\xcc\x64\ +\xf5\xeb\x36\x33\xab\x43\xeb\x9c\xda\x11\xd5\xfe\xab\xd8\x3f\xb4\ +\x9b\x26\x48\x07\xe9\x75\x5d\x7f\xe2\xd8\x52\x75\xdd\xcf\xa8\x6b\ +\xf9\xb1\xb8\x96\x55\x6f\xcf\xeb\xb0\x11\x38\x20\xaf\xc1\x50\x59\ +\x49\xc5\xca\xcd\xfa\x9c\x01\x0b\x08\x21\x84\x90\x5e\x51\x15\x89\ +\xaf\x5d\x11\xd5\x0e\x1b\xc6\xda\xba\x69\xd0\xf3\xa1\x21\x69\xe5\ +\x2d\x74\xa5\xc1\xdc\xae\x13\x92\xe6\x59\xb7\xeb\xd8\x35\xd6\x26\ +\x69\x6c\xcf\xbe\x8a\x57\x4d\x6d\xb4\x6b\xca\x73\x57\x5f\xcd\x8d\ +\xd8\x5b\x67\x08\x69\x3a\x50\xdb\x5c\x83\xa1\xee\x2e\x9a\x34\x85\ +\xc9\x56\x73\x3d\x52\xf4\xd9\xb6\x7a\xca\x65\xae\x7c\x76\xb6\xd5\ +\x54\x4b\xd5\xb0\xc1\xae\x53\xbb\xeb\x82\xe6\xe7\xeb\xfb\x7c\x98\ +\x7b\x26\x75\xcf\x0f\x0d\x62\xfd\x66\xcd\xfd\x75\x7c\xbf\x45\xb5\ +\xbb\x8e\xb7\xe6\xfb\x5d\xb2\xde\x3f\xd7\x72\x2b\x7b\x5f\x5f\x42\ +\x08\x21\x64\xb8\x90\x36\x0e\xf6\xcc\x76\x41\xbb\x7e\x47\xbe\x06\ +\x81\x98\x33\xd9\x46\x25\x6a\x48\x56\x07\x43\xc0\xe2\x5b\x47\x47\ +\x8e\x1e\xc1\xf8\xf8\x38\x20\x45\x9a\xd2\x68\x05\x1f\x39\x7a\xa4\ +\xed\x44\xab\x63\x96\x98\x9e\x9a\xc2\xa1\xf1\xf1\xa4\x7b\x14\x98\ +\xa1\x50\xa8\x2a\x46\x46\xaa\x38\x66\xf9\x8a\xe8\x3c\xcf\xf3\x52\ +\x17\xc6\x1e\x39\x72\x04\xb5\x5a\xad\xbe\xd9\xa8\x0a\x26\x8e\x1c\ +\xc6\xb2\xa5\xcb\x0c\x9f\x45\x63\x51\xa4\x42\xc2\xeb\x4b\x70\xf3\ +\x5a\xad\x86\xa3\xa9\x1a\xa0\xc5\xb9\xf5\x54\xcc\xce\xcc\x60\x66\ +\x66\x3a\x53\xb9\xb1\x45\x8b\xb0\x74\xd9\x31\x30\xd7\x52\x35\x3b\ +\x23\xe2\x79\xa9\xfb\x55\x2c\x59\xba\x14\xc7\x1c\xb3\x3c\xb0\xb8\ +\xee\x38\x4e\x4c\x1c\x4a\x38\x8a\xe3\xe3\x07\x51\x1d\x19\x05\x70\ +\xb4\xf5\xd3\x13\x89\x34\x07\x80\xe9\xe9\x69\x1c\x73\xcc\xf2\x68\ +\x37\x7a\x49\x75\xfe\x24\x75\xaf\x96\xe9\xe9\x69\x4c\x4f\x4f\x27\ +\x13\xde\xec\x48\x28\x70\x4c\xca\xae\xf1\xc3\xf1\xce\x2e\xb4\x0a\ +\x82\x10\x42\x08\x19\x60\x74\x38\xf6\x4d\xac\x42\xc3\xa8\x5e\x7e\ +\xe8\x28\x39\x39\x15\x89\xaf\x9d\xa3\x48\x69\xe0\x20\x7a\xc1\x70\ +\x44\x7b\x3d\xc6\xe6\x3e\x10\x79\x47\x67\xde\xf6\xf6\xdf\xc6\xc8\ +\xc8\x48\x97\x1a\x44\x02\xbf\x56\x83\x9f\xb2\x71\xa9\x8b\x9d\x4e\ +\x53\xaf\x54\x71\xdd\xf5\xd7\xe3\x2f\x6f\xfc\x08\x5a\x2d\xa8\x10\ +\xaf\x82\x9b\x6f\xba\x09\xb7\x6f\xbd\x2d\x76\xc4\xba\x75\xeb\x62\ +\xb6\xcc\xcc\xce\xe2\xdc\x73\xb7\xe2\x27\x7b\x7f\x1c\x3d\x8f\x45\ +\x8b\x16\xe3\x6b\xff\xf7\xab\x58\xbb\x76\x2d\xe6\xe6\xeb\xd1\xe4\ +\x0e\x8d\x8f\xe3\xe5\xa7\x9e\xda\xb4\x89\x21\xb0\x71\xe3\x26\x3c\ +\xf0\xe0\x37\x50\xf1\x2a\x91\x73\xf2\xad\x6f\x7e\x0b\xdb\x2f\xbb\ +\x34\xf3\x45\x79\xd3\x9b\xde\x8c\x8f\xfd\xef\x8f\x35\x59\xad\xf8\ +\xdb\x8f\x7e\x0c\x1f\xf8\xe0\x07\x92\xb9\x46\xe3\xee\xe2\x5f\x7d\ +\xe4\xc3\x78\xff\xfb\xaf\x0b\x82\x62\x48\x52\x81\x60\x5f\xa0\xe6\ +\xb4\x86\x76\x7f\xf5\xab\x5f\x81\xef\xfb\xd1\x79\xb3\x33\x33\x38\ +\xed\xb4\xff\x82\xc3\x13\x0d\x87\x6f\x7c\x7c\x1c\x2f\x3f\xf5\xb4\ +\xcc\x96\x6f\xda\xfc\xd8\xad\x5b\xb7\xe2\x87\x3f\x78\x3c\xda\x73\ +\x48\x52\x9e\xad\xaa\x62\xc9\x92\x25\xb1\xe7\xa0\x00\x3e\xf0\xc1\ +\x1b\x70\xd3\x4d\x7f\x87\xc6\x56\x8b\xcd\xee\x72\xb8\x43\xa3\xe0\ +\x53\xb7\xdd\x8e\x8b\x2e\xda\xd6\xbb\x56\xbe\xb8\x77\x3a\x34\x9e\ +\xa6\xa6\x16\x0b\xce\xe5\x8c\xf9\x73\x97\x9c\x0d\xb5\x78\x33\x92\ +\xb0\x37\xa3\x3c\x0c\xdf\x0b\xaf\x02\xcf\xab\x14\x33\x6a\xdc\x51\ +\x3d\x35\x98\x15\x55\xa7\xe5\x7b\x59\xec\xa7\xee\xd4\x9d\xba\x53\ +\xf7\x05\xa3\xbb\x1f\xd8\xe3\x99\x7e\x81\x39\x13\x29\xfc\xec\xa5\ +\xb7\x0b\xf2\x46\xa5\xd5\x0c\x47\x2d\x31\x61\xcd\x18\x92\x9a\xaf\ +\x45\xf5\x76\xdf\x46\x8a\xa4\x47\x0f\xd3\x76\x97\x70\xe1\x7e\x4f\ +\x33\xb0\xd3\x31\xee\xba\x4c\x4e\x4e\x62\x32\x23\x48\x81\x78\x1e\ +\x96\x2d\x5b\x86\x75\xeb\xd6\x65\x5e\xef\xe0\x81\x03\x38\x78\xe0\ +\x40\xf4\x79\xd1\xe2\x25\x58\xbb\x76\x2d\x56\xae\x5c\x19\xcf\x64\ +\x86\x89\x95\x6a\x05\xeb\xd6\xae\xad\xff\x77\xb0\x9b\xf9\xb2\x65\ +\x4b\x9d\xd2\xb0\x68\xd1\x22\xac\x5d\xb3\x26\x16\x1a\x71\xb1\x65\ +\x43\x47\x73\xaa\xe0\xf2\x15\x2b\xb0\x7c\xc5\x8a\xb6\x9e\xc5\x9a\ +\x35\xf1\xcd\xfd\xa6\xa7\xa6\x52\xe7\x3a\x35\xeb\x91\x87\xf9\xb9\ +\x79\xbc\xe4\xd8\x97\xe4\xdf\x4b\x48\x15\x47\x0e\x1f\xc6\xc1\x03\ +\x2f\xb6\x3e\xce\xf3\x30\x3b\x33\xd3\xe3\x0c\x5c\xe6\x10\xe0\xe5\ +\xc3\xf3\x95\x22\x10\x42\x08\x19\x7a\x64\x18\xda\x07\x7e\x0d\xd5\ +\x46\x33\x53\x0c\x57\xcd\x48\xb0\xd1\xf3\x9b\x76\x44\xeb\x96\x7f\ +\xdc\x33\x53\xcf\xef\xec\x01\x38\x4e\xd6\x17\x94\x64\x6f\x8a\x60\ +\xb4\x20\xb4\x25\x1c\xb1\x48\x8e\x70\x14\x6f\xab\xe7\xb0\x29\xad\ +\xfa\x7e\x72\xbc\x29\x65\x04\x46\x55\xe3\x6b\x65\x82\x63\x42\x67\ +\xa8\xf9\xb8\x60\x62\x5a\x86\x6d\x5e\xec\x1e\x02\x40\xbc\x0a\x92\ +\xfb\x20\x75\x7f\xab\xd2\x22\xef\x50\x5f\xef\x24\x6d\xe5\x93\x32\ +\xe6\x6b\x09\x7b\x74\x12\x8f\xd3\x8b\x3d\x27\x41\x3c\xca\x4c\x63\ +\x97\x1f\xb3\xab\xc6\x36\xca\x56\x40\xcf\x42\x27\xef\x8a\x61\x67\ +\x63\xa4\x4b\x32\x6e\x6f\x84\xe9\x13\x45\xcd\xd3\x12\x14\x3b\x83\ +\x39\x8f\x4f\x06\x7c\x31\x16\x75\xa7\xfd\xd4\x9d\x76\x2f\x28\xfb\ +\xeb\x7b\x9b\x18\xf5\x74\xdc\xaf\x90\x68\xc9\x79\xd0\xfe\xf5\x83\ +\x7a\xd5\xb3\xf8\x0f\xda\x69\x78\x5a\xe3\xba\x46\xb3\x32\xda\xd7\ +\x32\xb4\xbb\xd1\xd2\xe9\x3d\xda\xab\x49\xf7\xa5\xca\xf4\xd2\xa7\ +\x17\xc7\x73\x78\x1e\x76\xdd\x92\x2f\x9e\xb8\xa5\xaa\x1d\xed\x2d\ +\xa7\xf4\x64\x60\x51\x06\x28\xdf\xf5\x38\x5f\xab\x70\xd4\x23\xa7\ +\x60\xd4\x80\x10\x42\xc8\xf0\x33\x2c\x11\x85\x44\x50\x0d\xd7\x12\ +\x89\xb5\x61\x68\x34\x80\x35\xbd\x27\xd5\xda\xb0\x34\x3d\xc6\xc8\ +\x53\x94\x60\x1b\x98\xf6\xc4\x74\xdd\x79\x5b\x01\x2c\x5e\xb2\x14\ +\xab\x56\xd5\xa7\x4b\x49\xe0\x11\x16\xfd\x0c\x5b\xa6\x23\x58\x80\ +\xbf\x62\xe5\xaa\xe8\x2b\x2f\xb2\x23\x7e\x9e\xef\xfb\x18\x5b\xb4\ +\x18\x2b\x57\xd6\xed\xf5\x2a\x9e\x61\xab\xb8\xd9\xae\xe1\x92\x2d\ +\xc5\xa2\xc5\x8b\x32\x75\x16\x11\xac\x5c\xb1\x0a\x53\x53\x53\x91\ +\x6e\x4b\x16\x2f\x49\xd8\x29\x9e\x87\x35\xab\xd7\xc2\x47\x63\xa4\ +\x6f\xf5\xea\x35\x89\xeb\x57\x47\x47\xb1\x32\x48\x6f\x38\xe2\x14\ +\x3b\x24\x78\x7c\x61\xb0\x80\xe6\x11\xb4\xb1\xb1\x31\xac\x5a\xb5\ +\x06\xf5\xe5\x38\x1e\x14\xc0\xd2\x65\xcb\xa0\xaa\x91\x3d\xed\x62\ +\xd3\xdd\xf3\x2a\x58\xb1\x62\x55\x30\x4a\xd5\x7c\x5c\xa4\xba\x9b\ +\xd3\x14\xa4\x6b\xc5\x8a\x15\xf0\x7d\x3f\x31\x82\x96\x85\x5f\xab\ +\x61\x49\x53\x7e\x0d\xa3\xd3\x25\x47\x6a\x05\x8b\x16\x2f\xee\x7a\ +\x4f\x91\x36\xbf\x6f\xbe\x1f\xed\x33\x96\xcc\x40\x9a\xea\xbc\xaa\ +\xcd\x81\x36\xa3\xb4\x25\xc6\x8c\xa4\xd8\x04\x48\x67\x87\x47\x4e\ +\xa1\xcd\xd9\x09\x9f\x43\x2d\x7c\x01\x1c\xca\x85\x5e\xf8\x66\xc6\ +\x9c\xf9\x81\xf1\x29\x1d\xcb\xf7\xb2\xdb\x4f\xdd\xa9\x3b\x75\xa7\ +\xee\xc3\xae\xbb\x02\xf0\xa1\x40\x10\x15\x17\xe1\x7a\xfd\xc4\x40\ +\x8f\xb9\xc6\x27\x3e\x13\xc3\xee\x88\xe4\xab\xc0\x15\x19\x6b\x92\ +\x4c\xbb\xbc\xc6\x88\x96\xc8\x97\x7f\x53\x73\xdd\x3c\xd1\xe8\xd1\ +\x8c\xd6\x84\xf1\x6f\xa5\xfe\x1f\x2f\xab\x6e\xc0\xf7\x5e\x73\x3d\ +\xaa\x5e\xa5\xab\x99\x39\x5a\x47\x35\x37\x8b\xe6\x85\xf1\x66\xf4\ +\x66\x18\xe1\x97\x5b\x45\x53\x6e\xd9\xce\xd2\x46\xbb\x49\x34\x2e\ +\xbe\x88\xc0\x33\x1a\xc9\x69\x4e\x11\x00\xd4\xe6\xe7\x33\x3d\x37\ +\x71\x79\x64\x0a\x54\xaa\xd5\xcc\x97\x46\x55\x31\x3d\x33\x83\x6a\ +\xa5\x12\xa5\x51\x44\x12\x21\x9f\x55\x15\xf3\xf3\x73\x81\x73\xd6\ +\x18\x12\xad\x54\xd2\x8e\x9b\x6f\x6d\x7b\xd3\x79\xe6\xb4\xc2\x5a\ +\xad\x16\x3b\x3e\x74\x2e\x3a\x75\x8a\x6c\x85\x88\xaa\x62\x76\x66\ +\x16\x5e\x45\xd0\x88\xa1\xe7\xa6\x79\x18\x0d\x2e\x4c\x93\x6a\xc3\ +\xce\xbc\x4e\x51\x98\x6e\xdf\xaf\xc5\xf2\x6b\xfd\xba\x71\xdb\x2b\ +\x95\x6a\xcf\x9c\xa2\x4b\x1e\xbc\x11\xf7\x1c\xdc\xdd\xd8\x9c\x2d\ +\xe1\x6d\x9a\xe5\x80\xa4\x95\x7d\x4d\xeb\x2a\xa5\x18\x2f\xa6\x60\ +\xa7\xa8\x61\x9d\xc6\xf2\x8b\x26\x23\x2e\xa4\x96\x87\x91\x57\x58\ +\x15\x5c\xb9\xea\x3c\xdc\x72\xe6\x6f\xb3\xd2\x64\x63\x85\xba\x53\ +\x77\xea\x4e\xdd\x87\xda\x29\xfa\xe8\x9e\x2f\xe1\x3d\x3f\xf8\x17\ +\xc3\x29\x8a\xb7\x0b\xc4\x8b\xd7\xab\x91\x33\xe4\x79\xc5\x19\x82\ +\xec\xb5\xf9\x51\x75\x1e\x06\x46\x5a\x1c\x39\x28\xa8\x02\x6a\xb4\ +\x1d\x5a\xcf\xe1\xd3\xcc\x16\x7a\xc6\x3e\x45\xe2\x66\x74\x51\x84\ +\x77\x1f\x19\x19\x2d\xf5\xcb\x18\xb5\x2d\x83\xcc\xe1\x8d\xf6\xd6\ +\x5e\x91\xf4\xf0\xd0\x69\x54\xab\x23\x99\x85\x88\x88\xb4\x15\xdd\ +\x2f\x4a\xbf\xe7\xf5\x3c\xfd\x63\x8b\xc6\xfa\x9e\x2f\x42\x27\x2a\ +\x6d\x8d\x56\x5f\x0b\x6f\xeb\xfc\xc5\xe0\x7b\xdf\xad\x1c\x30\xd7\ +\xe8\xb4\x08\x1b\x53\x6c\x01\x90\x75\x79\x9b\xaf\x13\xad\x7d\x72\ +\x8c\x92\x69\x74\x02\xa9\xb1\xd4\x88\x10\x42\x08\x19\x26\xa2\x15\ +\xb7\x61\xa7\xa9\x25\xba\xac\x26\x2a\x4a\xc9\xf8\xec\xea\x04\xb9\ +\x56\xcc\xf1\x7a\x3d\x62\x36\xf8\x7d\x14\xe8\x6b\xb8\x08\xe5\x32\ +\x05\x42\xc8\xd0\xc2\x02\x8e\x10\x42\x08\x19\x94\x3a\xbb\xaa\xc6\ +\x3e\x45\x5d\x77\x60\x9a\xe2\x98\xb3\xf3\x94\x90\x21\xf7\x07\xa4\ +\x98\xcb\x98\x48\x4e\xf7\xc3\xba\x4f\x52\xd6\x76\x08\xa2\x6d\xa6\ +\x47\x59\xbe\x11\x42\x08\x59\x18\xd5\xb7\x88\xfd\x0c\x4d\xaf\xa9\ +\xd5\xb8\x93\x64\xcc\x50\x4b\x8c\x23\xb9\x4e\x38\x49\x0f\x7e\x1b\ +\xc5\x48\x68\x3e\x9d\x1b\x8f\x10\x42\x48\xe1\xd0\x25\x22\x84\x10\ +\x42\x06\x89\x6a\x0b\x97\x2e\x9f\x47\x46\x08\x21\x59\x51\xda\x8c\ +\x92\xa5\xdd\xe2\x44\x0b\x3e\xde\xba\xf6\x27\xef\x3e\x09\xb1\x6d\ +\xdf\xe8\x18\x11\x42\x08\x19\x0c\x0a\xaf\x8f\xb3\xa6\x98\x79\x92\ +\xeb\x7a\xbd\x70\x3f\x38\x52\x44\x08\x21\x5d\xc0\x67\x0f\x12\x21\ +\x84\x90\x05\x40\x6d\x48\xea\xbb\x6a\xd2\xb1\x6b\x8e\x27\xdd\x86\ +\xab\x28\xf9\x4f\x21\x84\x2c\x30\x3a\x5d\x73\x54\xd4\xf9\x8e\x07\ +\x3a\xef\xc5\xea\x35\x4e\x9b\xf1\x67\xf9\x9c\x09\x21\x84\x0c\x04\ +\x9d\xcc\x6d\x98\xad\xcd\x27\xae\x10\x46\xc9\x0d\xf7\xf9\x4b\xc4\ +\x9a\xf3\xc3\xfa\x55\xf2\xd5\xb3\x5d\x4c\x10\x47\x8a\x08\x21\xdd\ +\x2d\x2d\x17\xa4\x5e\x8a\x03\x7a\x84\x3a\x10\x42\x08\x19\xf2\xe6\ +\x81\xe2\x85\xf9\x89\xc1\x4f\x88\xa6\x39\x45\xa2\xf9\x47\x89\xc2\ +\x46\x53\x8e\x86\x13\xf7\xed\x20\x64\x00\x4b\x8c\x22\x9d\x2c\xe9\ +\xe1\xf9\x8a\xe4\x8e\xcd\xe2\x7e\x23\xe7\x62\xd1\xaf\xff\x55\x64\ +\x04\x4f\xce\x3c\x8f\x99\x79\x8e\x16\x11\x42\x08\x19\x6e\x1e\x3e\ +\xfa\x4c\x53\x3d\x5b\xff\x0f\xd5\xfa\x5f\xa2\xfe\x2d\xaf\x77\xd7\ +\xdf\x91\x22\xfa\x45\x84\x0c\x12\x7c\x63\xf3\xb0\x77\xf6\x00\x9e\ +\x9c\x7c\x8e\xaa\x11\x42\x08\x19\x5a\x0e\xcd\x1f\xc5\xb7\x0f\xfd\ +\x64\x28\xd2\xe2\xb5\x6a\xfe\x74\xa5\x32\xf7\x24\x88\x38\xc1\xa6\ +\x02\x21\xfd\xc2\xb5\xe3\x26\x7a\x53\xf3\x0e\xed\x76\xfb\x15\x57\ +\xe3\xaf\x6b\xf6\xb4\xd7\xc5\x55\x83\x8f\x1a\x7c\x7c\x62\xff\xff\ +\x6b\xda\x8b\x81\x10\x42\x08\x19\xae\x96\xc4\xed\xfb\x1f\xc2\xc1\ +\xd9\x69\xa0\x22\xf5\x3f\x18\x7f\x89\xfa\x37\xfc\x5e\x4a\x37\x6d\ +\x8c\x6b\x8a\x08\x21\xee\x8e\x0e\xc9\xc5\x27\x7e\xf6\x75\xec\x3e\ +\xbc\x97\x42\x10\x42\x08\x19\x3a\x9e\x9b\x1d\xc7\x0d\x4f\xde\x33\ +\x34\xde\x44\x22\x19\xe1\xdc\xf9\xae\x4f\x01\x14\x46\x9f\x23\xa4\ +\x9f\xfe\x8d\x8b\x8f\xa3\x5a\xff\x9b\xf5\x6b\xc1\x89\x61\xef\x8e\ +\x71\x01\x4f\x01\x4f\xdd\xaf\x1b\xfc\x39\x0f\xe0\xd8\xd6\x04\x15\ +\x35\x22\x65\xbd\x4e\xde\x1b\x04\xc7\xcf\xf9\xc0\x9c\x8f\x49\x4c\ +\xe3\x8a\xc7\x3f\x8e\xfd\x93\x07\xb3\xf7\x6c\x20\x84\x10\x42\xca\ +\x4e\xd0\x30\x98\x98\x9f\xc6\x5b\xbf\x7b\x0b\xf6\xce\xbd\x18\x78\ +\x13\xc1\xa2\x5a\x73\x2a\x87\x63\x35\x5a\xf8\x04\x93\xb0\x01\x63\ +\x6d\x56\x68\x62\x26\x47\x9f\x7d\x3b\x36\x12\x08\x19\x2c\x57\x8a\ +\xe4\xe5\xb1\x99\x7d\xb8\x78\xf7\xdf\xe0\x89\x23\xcf\x52\x0c\x42\ +\x08\x21\x03\xcf\x73\x73\x87\xf1\xc6\xef\x7c\x02\xf7\x1e\xdc\x3d\ +\x54\xe9\x4a\x38\x45\x2a\x9d\xc6\x0a\x0f\x7c\xbd\xc4\x85\x02\x8f\ +\xb1\x56\xff\x3b\x82\x49\xcc\xfb\x3e\x73\x16\x21\x3d\x20\xef\x12\ +\x9c\xe8\x6d\x0e\x06\x86\x8e\xd4\x66\xdc\xee\xa3\xd2\xd8\xeb\x2c\ +\x87\x5d\xae\xc5\x4a\xbf\xa2\xd8\xb4\x5d\x2e\x4e\xd7\x80\xe9\x1a\ +\xbe\x3b\xfd\x0c\x5e\xf9\x9d\x0f\xe1\x86\xa7\xbe\x80\x9f\x4e\x1f\ +\x84\xaa\x1f\xf4\x62\x75\x2a\x8c\xed\x39\x04\x51\x7f\x48\x6f\xf3\ +\x09\x75\xa7\xee\xd4\x9d\x0c\x9d\xee\x41\x34\x39\x28\x0e\xcf\x4f\ +\xe2\x1f\x7e\xfa\x00\xce\xf9\x8f\x8f\xe0\xde\x83\xdf\x06\xe0\x03\ +\x52\xab\xff\x99\xf5\x97\x39\xf4\x13\x54\xa4\xb6\x11\xa1\x8c\x81\ +\x9d\x36\xdc\x91\xd6\x6b\x96\x24\xf8\x5f\x33\xd5\x7e\x3d\xd4\x71\ +\x4c\xe2\xe8\xfc\x34\x16\x8f\x8c\x32\x87\x13\x52\x72\xf6\xce\x8d\ +\x03\xc2\x25\x88\x9d\x70\x70\xfe\x28\xfe\x6c\xdf\x0e\x7c\x78\xff\ +\x5d\x38\x6b\xe9\x06\x9c\xb3\x74\x23\x36\x2c\x7a\x09\x96\x54\x46\ +\xe0\x21\xac\x28\x24\xda\xe8\xae\x2d\xa7\x48\xe2\x35\x8c\xaf\x0a\ +\x0f\x02\xf5\x04\xa2\x02\x11\x6d\x44\x4c\x2d\x1b\x69\xb6\x8b\x40\ +\x85\xb6\xd3\x76\xda\x4e\xdb\x69\x7b\xba\xed\x1e\x54\x50\x8c\xed\ +\x12\x77\x18\x10\xb8\x42\xb3\xbe\x8f\x7d\x33\xe3\xf8\xcf\x89\x9f\ +\x60\xd7\xd1\xa7\xf1\xdc\xec\xa1\xba\x33\x34\x6c\x61\x09\x34\xc5\ +\x29\x32\x77\x9c\xed\xf8\xe1\x99\x17\x0a\x1a\x56\x93\xfe\x2c\xf6\ +\x1c\x7d\x0e\x6b\x17\x2f\x67\x6b\x89\x90\x1e\x96\xa5\x79\x79\x7a\ +\xea\x79\x3c\x3b\x77\x28\xe8\x71\x71\x2b\x21\xa4\xb8\x92\xa4\xb8\ +\x84\x64\x14\x86\xad\xae\x6f\x4d\x8d\x58\xce\x37\x87\x95\xa6\x1b\ +\x67\x4e\x60\x0a\xf7\x4f\x3f\x8e\xfb\x5f\x7c\x1c\xa8\x04\x5f\xd6\ +\x82\xdf\xbd\x9c\x95\x8c\xfa\xb1\x72\x35\xfa\x5c\x09\xee\xef\x9b\ +\xf6\x49\xba\xfd\xbe\x71\x9d\x7e\x67\xd4\xb0\xbb\x30\x72\x10\xbd\ +\xf4\x74\x87\x7a\xf5\xbb\x01\x43\xdd\xa9\x3b\x75\xa7\xee\x65\xd3\ +\xdd\xb5\xde\xb0\x11\x3e\xaf\x8a\x17\xbf\x5f\x34\xc9\xcb\xcf\xa8\ +\x47\x35\xdd\xbe\x48\x67\xed\x6e\xfd\x1e\x3d\x5f\xf7\x53\xbc\x7e\ +\x3e\xdc\x6f\x1c\x7e\x82\xad\x55\x42\x4a\xce\x37\x0f\xed\xa1\x08\ +\x84\x10\x42\x08\x19\x6a\xaa\x36\xc7\xaa\xf8\x1e\xd9\xd0\xb3\xad\ +\xdf\x40\xaa\x55\xdc\xf6\xb3\x5d\x78\xf7\xc9\x17\x01\x00\x46\x2a\ +\xe9\x33\xf9\xba\x66\x0e\x21\x24\x13\x55\x1f\x9f\xdc\xfb\x00\x1a\ +\xfd\x27\x35\xa7\xd7\xdc\xf6\x1e\x0f\x2d\x89\x11\xa3\xb0\x87\x2c\ +\xf8\x21\xea\x18\x93\xb8\x8c\xa6\x9c\xb5\xac\x12\x2f\xec\xf9\x32\ +\x7b\xdc\xc2\xd3\x82\xcf\x35\x3f\xfe\x7b\xe6\xc0\x9d\x67\x49\x8f\ +\xe5\x04\xb3\x47\x32\x6b\x22\x78\x64\x6f\x96\x8e\x86\x6e\x56\xbb\ +\xbd\xd6\xfa\x67\xdf\xc8\xed\xb8\xc8\xee\xac\xe7\xe2\xc5\x9f\x5f\ +\xa6\xfd\x3d\xd2\x3d\xeb\xc5\x2c\xab\xee\xce\xf6\xf7\x58\x77\xcd\ +\x5b\xa2\x51\xf7\x9e\xea\x3e\xa8\xe5\x8c\xb3\xfd\xed\xea\x8e\xf4\ +\x7a\x02\xb6\xf4\x88\xd1\x6e\xcf\xc8\x16\x89\xe2\xd1\xf5\x84\x5e\ +\x57\xcc\xd9\x87\xf7\x75\x0c\xf3\xd1\xa9\xbd\xb8\xfb\x85\xe1\x8a\ +\x5c\x41\xc8\x30\xf1\xd0\xe1\x3d\xf8\xca\x8b\x1c\xd1\x25\x84\x10\ +\x42\xc8\x70\x53\x75\xee\x18\x68\x9b\xf4\x1e\x36\xad\xd5\xbb\x48\ +\xff\xe4\xe9\xcf\x61\xeb\xaa\x97\x63\x85\x65\xa4\x88\x23\x44\x84\ +\xf4\x87\x69\x7f\x06\x7f\xfc\xd8\x0e\xcc\x8b\x9f\xf2\x46\xfa\xf1\ +\x8f\x2a\x2d\x5f\x5c\x6b\x7f\x4d\xd1\x43\xc1\xae\xd7\xeb\x56\x47\ +\x95\x6d\xc4\x28\xfa\x5d\xe2\xff\xb6\x7d\x83\xac\x74\x1a\x73\xb6\ +\xad\xf7\x75\xec\x79\xcd\x34\x4b\xda\x32\x3f\x3b\x7d\x59\x7a\xd9\ +\xe6\xa4\x0b\x0a\x32\x28\xe7\xf3\x92\x72\xea\x8e\x01\xd5\xbd\xdd\ +\x17\xaf\x5b\xba\x4b\xd1\xf6\x53\xf7\xae\xe8\x2e\x6d\x1e\xe0\x95\ +\x44\x77\xe9\x91\xee\x99\xe9\xb1\x7c\x36\xeb\xb7\x8c\x11\x22\xe9\ +\xdb\x48\x51\xfe\xf6\x43\xdf\x43\x47\xfc\x60\x76\x3f\xde\xfd\xc4\ +\x67\xd8\x02\x25\xa4\x64\x0e\xd1\x5f\x3c\xf1\x6f\x78\xe8\xf0\xd3\ +\x14\x83\x10\x42\x08\x21\xc3\x8d\xf4\x32\x24\xb7\xd9\xa3\x1c\xce\ +\x89\x14\x1f\xff\xf2\xdc\xd7\x70\x6c\x65\x29\xfe\xf2\x65\x6f\x44\ +\xc5\xab\xf0\xc1\x10\xd2\x47\x7c\xf5\xf1\xb1\x9f\xdc\x8f\xff\xf1\ +\xe3\xaf\x20\x5a\xf4\xe2\x05\xff\x86\x1d\x41\x51\xcf\x94\x1f\x7f\ +\xaf\xa5\xcd\x72\xa1\xe8\x72\xc6\xb9\x3c\xca\x54\xa3\x33\x43\x5d\ +\xe7\xa0\xab\x63\x0f\x65\xe6\xfd\xe2\x23\x79\xd9\xb7\xef\x52\x94\ +\xc0\xbc\x02\x49\xfa\xfd\x25\x58\x6b\xa0\xb6\xb9\xf6\xfd\x32\xdf\ +\xac\xcf\x22\xfb\x95\xba\x53\x77\xea\x3e\x68\xba\x67\xd9\x3f\xe8\ +\xba\x77\xb2\xcd\x43\xac\xfa\xd3\xf4\xcf\x59\x15\xb0\x6b\xf5\x59\ +\xf4\xcc\x91\xbc\xd7\xd1\x12\x05\x19\xff\xab\xe7\xbf\x84\x5f\xfb\ +\xf6\x4d\x78\x6e\x6a\x9c\xad\x52\x42\xfa\xc4\xc1\xb9\x23\xf8\xdd\ +\xc7\x6e\xc1\x7b\x7f\xf8\x39\x8a\x41\x08\x21\x84\x90\x05\x43\xfe\ +\x91\xa2\xdc\x1e\x73\x86\xab\x36\xd7\x08\xb4\xfe\xf9\x83\xdf\xc2\ +\x83\x0f\xef\xc1\x9f\x9c\x78\x31\x7e\xf3\xb8\x57\x61\xed\xe8\x72\ +\x40\xd2\xe6\x23\x0e\x2e\xdc\xfd\x99\xba\x97\x51\x9b\x89\xda\x14\ +\x3e\xfd\xdc\xb7\x70\xc3\x33\x3b\xf1\xcc\xcc\xf3\x68\xac\x19\xf2\ +\xe3\xef\x7b\x14\x94\xa6\xc3\x9e\xa7\xb2\x21\x6d\x96\x5f\xae\xa7\ +\x65\x95\x9b\xd6\x1e\x4c\x6d\x7d\x5a\xe2\xbf\xfc\x5c\xd7\xcf\x7b\ +\xbf\xee\xcb\x6f\xde\x39\xde\x33\x6a\x7d\x1c\xe2\x6a\x7f\x51\x5d\ +\xbe\xc1\x5c\xf9\x2c\x5d\x07\x4e\x77\x8b\xfe\x03\xa3\x7b\xbe\x7d\ +\x49\x7a\xad\xbb\xd8\xec\xa5\xee\xd4\xbd\x07\xba\xbb\x96\x47\x8d\ +\xb5\x40\xda\xea\xae\x2d\x4e\xcf\x39\xf3\xa1\x44\x4d\x7c\xc1\xbd\ +\xbf\xa5\xb1\xc6\x8f\xab\x75\xae\xda\xaa\xe3\xe7\x91\xe0\xbe\x15\ +\x05\x3c\xc1\x0a\x6f\x09\x2e\x58\xfe\x0a\xbc\x6a\xf9\x26\x6c\x5e\ +\x72\x12\x4e\x58\xbc\x06\x8b\x2b\xa3\xf0\x44\x9a\xf6\x01\xf3\x21\ +\x22\x80\xc4\xdd\x26\x7b\x76\xed\x97\xf2\x1a\xbf\xb7\x2a\x54\x35\ +\xb0\x3d\xee\xf4\x95\xcf\xf6\x44\x0b\xba\x0d\xdb\x4b\x62\x7f\xcc\ +\xf6\x01\xcb\x33\x50\xa8\x9f\x47\x77\xb1\x7e\xaa\xef\x50\x5d\xc3\ +\x4f\xa7\x0f\xe1\x3b\x47\xf6\xe1\xa1\x23\x4f\xe1\x9e\x03\x8f\xe1\ +\xf9\xb9\x83\x8d\x23\xe7\x7d\xb7\x46\xb6\x19\xaa\x38\xfa\xc7\xa8\ +\x14\x82\xe1\x7f\xf5\x4a\x16\x64\x3f\xdd\xfc\x06\x7e\xbc\xd2\xd1\ +\x4e\xed\xce\x3b\x1b\x2e\xb7\x53\xa4\xa9\xf7\x53\x33\x24\x78\x69\ +\x1a\xe7\x92\xde\x38\x37\xe6\x83\xa8\xe3\x66\x8f\x3d\x6f\xac\xd8\ +\x1e\xf0\xc0\xea\x1e\xb7\x60\xf0\x74\x0f\xec\x08\x17\xcc\x97\x4c\ +\x77\xeb\x82\x73\xea\x4e\xdd\x7b\xa0\x7b\xde\x50\xf2\x45\x39\x45\ +\xd6\xf2\x3d\x32\xbb\xdb\xf5\x6a\x7a\xfb\x48\x82\xfa\x5d\x2b\xc1\ +\xf2\x80\xd1\x4a\x07\x4e\x51\xa7\xce\x11\x2c\x95\x45\x98\x49\xc3\ +\xc6\xd3\x68\xf0\xaf\xb1\x9f\x87\xe7\x07\x99\x37\xdc\x86\x23\x6c\ +\x74\xa1\x9c\xf8\x52\x4f\x80\x17\xbe\x74\xc1\xc3\xf0\x25\x9e\x3b\ +\x3c\xf5\xca\x99\x00\xb3\x11\x1c\x64\xe2\x41\xd1\x3d\xcc\xd6\x9e\ +\x1f\x8f\xd2\xe2\x07\x96\x0f\x9a\xee\xd9\x85\x5f\x7a\xa5\x50\x33\ +\x5f\xa4\x48\x0f\xcf\x70\x02\x6c\x4e\x96\xdf\xb2\x90\x89\xf2\x45\ +\xa2\x10\x2c\xb9\x53\x64\xeb\xe0\xf2\xe3\xcf\xa1\xd7\x4e\x91\xfb\ +\x89\x62\xd8\xaf\x31\xfb\x1b\xd9\x5b\x1c\x2f\xdb\xed\x37\x5a\x2c\ +\xce\xa8\xa6\xfa\xda\x89\xa8\x47\xe8\xb3\xdd\x46\xad\x3e\x6c\xba\ +\x37\x96\x32\x0c\x98\xee\x6a\x16\x8f\xd4\x9d\xba\x2f\x40\xdd\x13\ +\xed\x85\x4e\xed\x97\x62\x7e\x8e\x9a\x11\x96\xce\xc6\x76\xab\x57\ +\xab\x7f\x61\x1b\x49\xb3\x38\x45\x23\x15\x94\xb4\x25\x48\x08\x21\ +\x84\x10\x42\x08\x21\xbd\xa1\x6a\xf3\xb8\x9c\x1d\xe6\x76\x1d\x4d\ +\xeb\xce\xef\xc6\x0e\xba\xd3\x66\x3c\xf6\xf0\xe7\x78\x8f\x5c\xff\ +\x3c\xfa\x7c\x02\xf8\xd6\x69\x4e\xb6\xdf\xdb\xb4\x5f\x5b\x47\x5b\ +\xe9\x1c\x1d\x28\xdd\x43\xfc\x64\x06\x8c\xeb\x6e\xdb\x5f\xa6\x34\ +\x74\x49\x77\xb5\xec\x3b\x14\xe9\x90\x77\x84\x68\xc8\x69\x77\xdb\ +\x85\xb6\x67\x37\x48\x9b\xc5\x80\x63\x17\x9e\x16\x73\xbf\x76\xb3\ +\xb3\xda\xa6\x5d\xe6\xd6\x5d\x7a\x9b\x01\x64\xb0\x75\x4f\x76\xe1\ +\x6a\xec\x79\x0c\x9c\xee\xa0\xee\xfd\xd0\x1d\xd4\xbd\xbf\xba\x9b\ +\x6b\x7c\x33\xa7\xa3\x49\xa1\xe6\x15\x9d\x4c\xcd\xfb\x5c\x0b\x94\ +\x9b\x23\x45\x84\x10\x42\x08\x21\x84\x90\x05\x4d\xb5\x6d\x07\x4c\ +\xb3\x7a\x00\x72\x9e\x67\xac\xad\x49\xee\x2c\x9c\x7e\xa3\x44\x5c\ +\xff\xd2\x61\x5b\x00\x6d\x0c\xc9\xd9\x87\xd2\x3a\xf4\xe0\xa5\xcb\ +\xf6\x17\xdd\x65\xd0\x67\xdd\x45\x4b\x9a\x1e\x9b\xfd\x45\x5d\xd7\ +\xb2\x53\xb5\x35\x4a\x4f\xbb\x3d\x83\xe1\xe5\x83\x35\x46\x79\x47\ +\xe4\xb4\xe4\xd9\xcd\xb9\x00\x75\xbc\x4e\x87\xa7\x35\x06\xfe\x34\ +\xae\x7b\x41\xf7\xed\x96\x7c\x8e\xd9\xa8\xb4\xaf\x69\x18\x2d\xaa\ +\x31\xe0\x5a\x4e\xdd\x41\xdd\xa9\x7b\x11\xc5\x93\xc4\xdb\x03\xd4\ +\xbd\x47\xba\xf7\xec\x02\x5d\x56\xdc\x8c\xaf\x23\x45\x3f\x38\xf7\ +\x0a\x99\x23\x45\x84\x10\x42\x08\x21\x84\x90\x05\x4d\xb5\x6d\x8f\ +\x32\xef\x3e\x1c\xce\xc7\x39\x86\x74\x76\x5e\x7a\xd3\xa7\xad\x88\ +\xd3\x83\x87\xa0\xe3\x1d\xa0\x7b\x96\x1c\x69\x79\xdf\xc6\x47\x69\ +\x6d\x7f\xaf\xf7\xb3\x29\x4a\x77\x73\xad\x5b\xbf\x76\x54\x30\xf4\ +\xcb\x6d\x3f\x6c\x7a\x20\xf5\x3e\xc9\x50\xa3\x96\x13\x2d\x8b\x0e\ +\x5d\x07\x72\xb4\xdd\x35\x5b\x45\xf5\x78\x69\x41\xe7\x4b\xb9\x8a\ +\x9d\x6e\x27\xbb\x57\xd9\x5f\xd4\x5a\xe0\x94\xd1\xdc\xa4\x7d\xc6\ +\x9a\xbc\xc1\xd1\x7d\x30\xf2\x31\x75\x2f\xc9\x03\xa0\xee\xfd\xd5\ +\x7d\x50\x90\xc1\xb9\x2f\x47\x8a\x08\x21\x84\x10\x42\x08\x21\x0b\ +\x9a\x6a\xe6\x11\xdd\x9a\xc3\x9f\xb5\x84\x26\xb1\xa9\xa2\xe9\x1a\ +\xfb\xf1\xe3\xbc\xf4\x4d\xff\xca\xe2\x21\x4b\x96\xc0\x92\xf5\x00\ +\xfa\xe3\x79\x27\xf6\x9b\x11\x8b\xce\x92\x61\x77\x8f\x7b\x0a\x44\ +\xda\xd5\xdb\x92\xde\xfe\x64\x9b\x0e\x74\x97\x5c\xe9\x35\x83\xce\ +\x59\x27\xf7\x8a\xb8\x3d\x57\xd7\x35\x87\x25\x5f\xc2\xd5\x71\x3e\ +\x96\xf6\x6e\xd3\xae\x95\x92\xa5\xb7\x74\xe7\xfe\x85\xd7\x07\x6d\ +\x47\x9f\xeb\x4f\xee\x90\x76\xf3\x41\xe9\x74\x07\x75\xa7\xee\xd4\ +\x9d\xba\x77\x59\xa7\x82\xda\x87\x5a\xbc\xfd\x1c\x29\x22\x84\x10\ +\x42\x08\x21\x84\x2c\x60\x24\x6d\xa4\x28\xa3\x87\xb9\x5b\x73\x30\ +\x33\xe2\xc4\x27\x3d\xe5\x20\xba\x89\x67\x3b\xcf\xbc\x40\xd6\xd6\ +\xf5\xae\x5d\xdb\xe9\x51\x33\x92\x5d\xb4\xd2\x5e\xba\xad\x5d\x04\ +\xe6\x4e\xc5\x70\x7b\x10\x1d\x77\x31\x64\xd8\x23\x8e\xf6\x22\x43\ +\xa7\xac\x74\x65\x46\x5d\x73\xcc\x80\x9a\x31\xd2\xa1\xb6\x1e\x6a\ +\xdb\x73\xef\x30\xdf\xbb\xee\x2b\x10\xde\xd6\x93\x9c\xd7\x71\xcb\ +\xaf\x6a\x1e\xdf\xa5\xa0\x85\xce\xf9\x35\xef\xf5\x73\xbe\xb6\xee\ +\xd9\x3f\xe3\x44\x5b\x3e\xe8\xf5\x5c\x75\xe9\xf0\xc1\xf4\x6b\xae\ +\x7a\x9b\xc5\x66\xdf\xed\xce\x6d\x6e\xc9\x74\xc7\x60\xeb\x0e\xea\ +\x3e\xa8\x6d\x4e\xea\xde\xcf\xfc\x8e\x82\xd3\xa1\x7d\x7a\x7e\xdd\ +\x2a\xb1\xb9\x4f\x11\x21\x84\x10\x42\x08\x21\x64\x41\xa3\x40\x55\ +\xc4\x77\x73\xc0\x3a\xed\xf9\x2c\xd8\xd3\xce\x7d\x99\xdc\x3b\xfc\ +\x3a\x1e\x2f\x39\x3d\xd1\xc4\xf9\x19\xd1\xd9\x44\x3a\x4b\x87\x14\ +\xa3\x73\x63\xa7\xf9\x8c\xfd\x65\xc4\x55\xf7\x9c\xe9\xca\x99\x6e\ +\x6b\x87\x90\x64\xe8\x2e\xed\x3e\xf7\x36\x91\x7c\xba\xdb\xed\x46\ +\x97\xf3\xab\xdb\x69\xb9\x97\x60\xb5\x5b\x2e\x68\xce\x02\x41\x9d\ +\x33\x7a\x77\x0a\xa4\x2e\xf7\xa8\x49\xa7\xf6\xf6\x6b\x4d\x57\xb7\ +\x46\x12\xbb\x2d\xb4\x16\x94\xde\xb2\xef\x1f\x52\x52\xdd\x07\x35\ +\xbf\xdb\xd7\xfc\x39\x8e\x48\xf7\x5b\xf7\xbc\x23\xd2\xaa\xd4\xbd\ +\xa7\xba\x17\x6c\x7f\xd7\x46\xc8\x1c\x2f\xac\x45\xdf\x2f\xbb\x9d\ +\xc2\x91\x22\x42\x08\x21\x84\x10\x42\xc8\x02\x46\x50\x8d\x16\xe5\ +\x44\x3b\x9e\xbb\xae\xcd\x68\xcf\x63\xcd\xef\xf8\x85\xfb\xa7\x48\ +\xba\x9f\x69\xd9\xd6\x25\x71\x5f\xc9\xb9\xff\x51\x62\x9f\x17\x69\ +\xed\x62\x6a\xbc\x27\x5e\x72\x0a\x68\x5f\x29\x93\x75\x3f\xb5\xd8\ +\x67\xae\x25\x91\xd6\xe9\x32\x04\x94\xac\x49\xa8\x19\xba\xab\xf1\ +\xdc\xd4\xb4\x03\x70\xb3\x27\xf1\xb8\x34\xa7\xdd\xa6\xf9\x6e\xba\ +\x27\xf5\x17\x4b\xfe\x68\x53\x67\x33\x59\x6d\x46\x1f\xb4\xe9\xde\ +\xe9\x62\x8d\xdc\xdb\x89\x89\x45\x27\x5b\x7e\xd7\xde\x76\xc1\x69\ +\x54\xbe\x89\xe3\x6b\xa9\x4e\xd9\xb0\x34\x38\x3e\x28\xab\xee\x65\ +\x49\x8f\x61\x9f\x16\x3b\xf0\xdd\x3d\x9d\x95\xba\x97\x42\x77\x29\ +\xb9\xee\xda\x5a\xf7\xd2\x95\x33\xae\x23\xf2\xd4\xbd\x14\xba\x47\ +\xed\x65\xe7\x25\xd6\xe6\x73\x93\xee\x3c\xaf\x2e\xd7\xab\x9a\xe5\ +\x70\x18\xed\x13\x35\x5b\x38\x4d\xd1\x15\x38\x52\x44\x08\x21\x84\ +\x10\x42\x08\x59\xb8\xf8\x8a\xaa\x1a\x1e\x9c\x96\x34\xcc\x86\x39\ +\x62\x22\x96\xa8\x61\xd6\x29\xa3\xae\x3e\xa6\xb4\xe9\xc2\x1a\xbf\ +\x67\xa9\x27\x89\x35\x30\xe1\x67\xdf\x4d\x10\xd3\x1e\xc9\xe8\x5a\ +\xb0\xae\x01\x52\x27\xbd\xed\xba\xb7\x3e\x5e\x5d\xed\xc8\xdb\x55\ +\x90\xd3\xee\xc6\xc8\x8a\x58\x54\x72\x5c\x14\x92\xb9\x1f\x93\xb6\ +\x95\x2e\x85\x6b\x3e\x15\x27\xdd\xf3\x2f\xba\xe9\xe4\xe8\x6c\x7b\ +\x92\xf9\x5d\x7b\x5d\x80\xb4\x75\xdf\x28\x88\xa2\x74\x76\x9d\x7e\ +\x21\x68\x37\xbf\xf7\xbf\xc4\x4f\xcf\xef\x39\xcb\x49\xea\xbe\x20\ +\x74\x8f\xd4\x36\x66\x6c\x0c\x4a\x7e\x49\x2c\x1e\x19\x90\x72\x86\ +\xba\x97\x45\x77\x6d\xdd\x0e\x76\xac\xe8\x7b\x97\x6e\x9b\xee\x45\ +\xe5\x1b\xe3\x3a\x89\x91\x2a\x63\x24\x49\xc3\xe3\x6a\x1c\x29\x22\ +\x84\x10\x42\x08\x21\x84\x2c\x60\x3c\x41\x55\x6c\xfb\xfa\x74\x7d\ +\x16\xb1\xb1\xf8\x26\x63\x1f\x1a\x31\x47\xb4\x82\xcf\x5e\xe4\x30\ +\x5b\xd6\x32\x98\xd7\xcf\xda\xe0\x44\x6c\xfb\x1b\x65\xc5\x7f\xcf\ +\xb2\xdb\xb0\xdf\x7a\x96\x57\xcc\x63\x50\xd7\x7d\x19\xd2\xd3\x6f\ +\xb5\xdb\xaa\x7b\xd6\xfe\x41\xfd\xd5\x5d\xad\x6b\x89\x24\xfd\x3a\ +\x65\xd3\x1d\xf1\xdf\x07\x5f\x77\xaf\xd8\xe2\xa6\xdf\xf9\xbd\x64\ +\xe5\x8c\x73\x7e\xef\x96\xee\x89\xe8\x53\x45\xe5\x77\x23\xff\x74\ +\x4b\x77\xc7\x7d\xe7\xa8\x7b\xd9\x75\xb7\xd8\x5d\x94\xee\xb6\x76\ +\x4c\xb7\xca\x77\xea\x4e\xdd\x53\x75\x2f\xb8\x1d\xd3\xa9\xee\x09\ +\xbb\xdc\x74\x6f\x04\xd7\xf5\xd2\xdb\x33\xb6\xfd\x2f\x6d\xe6\x8b\ +\x67\xdc\xc7\xe2\x4f\xd4\x82\xfb\x55\x85\x23\x45\x84\x10\x42\x08\ +\x21\x84\x90\x85\x8c\x34\x62\x2e\x58\xa3\x37\xa4\x9c\x94\xcb\x01\ +\xb5\x3a\xd4\xda\xfa\x7b\xd3\xd1\x96\xd6\x9e\x7e\xe6\x2c\x4a\xb1\ +\xa5\xcb\x9c\x5b\xe8\xb8\x76\xc4\xe2\x51\x27\x92\x23\xc8\xe8\x31\ +\x70\x4b\xbf\xfd\xbe\x96\x74\x9a\xb2\x64\x45\x2f\xd1\xf4\x74\xa0\ +\x5d\xdd\x33\xf5\x5b\x98\xba\x47\x56\x50\x77\xe3\xf7\x01\xd7\x7d\ +\x50\xcb\x99\xae\xe9\xae\xe5\xd0\x5d\x2d\x9f\xb3\x74\x37\x8f\x73\ +\xd5\xdd\x1a\x65\xb3\xec\xba\x9b\x6b\x62\xa9\xbb\x8b\xee\x6a\x44\ +\xfb\xa2\xee\x25\xd5\x3d\xc3\x6e\xe7\x35\x7f\xd4\xdd\x4d\xf7\xc8\ +\x6e\xcd\xa5\xbb\x4a\xd6\x3e\x69\x9a\x33\x39\xb6\xe7\x6f\x46\x45\ +\x6e\xfc\xc2\x91\x22\x42\x08\x21\x84\x10\x42\xc8\x82\xa6\x0a\xe0\ +\x59\xc0\x5f\xdf\xe4\xda\xa5\xbb\x88\x86\x87\xac\x19\x23\x46\xa6\ +\x63\x67\xeb\x90\xb7\x1d\x97\xbd\x03\x75\x7a\x0f\x4b\xde\x8e\x57\ +\xdb\xe1\x62\xeb\x69\x46\xeb\x0e\x02\xfb\x05\x6d\x3f\x6b\x21\x76\ +\x23\x4b\x5f\xb4\xd6\x1d\x59\x72\x9b\xf9\x43\x94\xba\xb7\xa1\x7b\ +\x96\xfd\xd4\xbd\x6c\xba\xc7\x6f\xd0\x6b\xdd\x9d\x3b\xc8\x6c\x23\ +\xee\x46\x8f\x18\xf3\x7b\xb7\x75\x1f\xd4\xfc\x9e\xbe\x0f\x1b\x75\ +\x77\xd3\x1d\x1d\xeb\xae\x83\xa9\xbb\x3f\x20\xba\x27\xea\x25\x29\ +\x45\x3b\x92\xba\x9b\xba\x67\x6c\x68\xaa\x39\x93\x67\xdd\x57\xd2\ +\x7e\xbc\xa7\xea\xff\x07\x74\x30\xc2\xcb\x12\x42\x08\x21\x84\x10\ +\x42\x48\xd1\x54\xe1\xeb\x6e\x15\xbd\xcc\x3e\x93\x4e\xd2\x5d\xc7\ +\xc4\x9c\x6f\x37\x87\x2d\xcb\xc3\x73\xdf\xb8\xd7\x8b\xff\x50\xf0\ +\x06\xca\x79\xed\xcb\x72\xec\x9d\x7b\x02\x3a\xb4\xbb\x70\xfb\xb5\ +\xbd\x1b\x51\x77\xea\x3e\x1c\xba\x7b\xf1\x23\x06\x45\x77\x5b\x34\ +\x4e\xe6\x77\xe6\xf7\x21\xd0\x1d\x6d\xda\x5f\x5e\xdd\x65\x20\xca\ +\x99\x84\xee\x82\x01\x2f\x67\xa8\x7b\x99\x74\x2f\x6e\x78\xc6\xb2\ +\x1f\x91\x59\x2d\x46\x13\xe3\xbc\xa6\x1a\x5f\x6b\xfb\xc0\xa1\x22\ +\x42\x08\x21\x84\x10\x42\xc8\x42\x44\x31\x51\xc5\xdc\xfc\xbf\x63\ +\x6c\xe4\xaf\xe1\x63\x71\xcc\xa5\x13\xdb\xa2\x00\x5b\x7c\xf5\x2c\ +\xa4\x43\x5b\x2d\x1e\x60\x62\x47\xdc\x0c\x4f\xba\xe7\x1a\x5b\xf4\ +\xb3\xed\x78\x5e\x12\xbb\x13\x9e\x7e\xf4\xd9\xa7\xee\x3d\xb5\x7f\ +\x50\xf3\xbb\x0e\x95\xee\x52\x72\xfb\xa9\x3b\xcb\x99\x85\xa4\x7b\ +\xc2\x2e\xea\x4e\xdd\x8b\xd4\x5d\xb2\x5e\x74\xea\xde\x0d\xdd\x0b\ +\x28\x81\x0d\x7d\x0c\x41\xd4\xf2\x7b\x2d\x5c\xc3\x2a\xb7\x79\x98\ +\xc6\x3e\xf8\xf2\x18\x5d\x44\x42\x08\x21\x84\x10\x42\xc8\xc2\x43\ +\xef\xa9\xbb\x47\x5f\x7c\xcb\xd5\xf0\xaa\x1f\x0b\x5c\xa5\xf8\x16\ +\xb0\x45\x85\xb3\xe8\x14\x4b\xb8\x8e\xd0\xd3\x54\xeb\x0e\xc2\x7d\ +\xb2\x2f\x23\x2c\x5f\x23\xfe\x7c\x4e\xbb\x33\x36\x52\x2e\x3c\x3d\ +\x16\xbb\x06\x4f\xf7\x0e\xf3\x0b\x75\xa7\xee\xd4\x9d\xba\x2f\x54\ +\xdd\xb5\x24\xf5\x3e\x75\xcf\xd9\x4e\xa2\xee\xd4\x7d\x21\x96\x33\ +\x66\xc2\x82\x7f\x7d\xdf\x68\x88\x7b\x8d\xdf\x3d\x7d\x0a\x73\x2f\ +\x9c\x56\xff\xe6\xc8\xdc\xed\x40\xed\xc7\xf4\x12\x09\x21\x84\x10\ +\x42\x08\x21\x0b\x02\x15\x1f\x82\xbf\xc1\xf6\x9d\x33\x0d\x3f\xee\ +\x4b\x6f\xb9\x1a\xf0\xfe\x16\x5a\xa9\xc4\x3d\x3c\xb5\x78\x7e\x25\ +\x99\xcc\xed\x19\x86\xa9\xed\xc0\xb2\x3d\x84\x01\xb5\x9f\xba\xd3\ +\x6e\xea\x4e\xdd\x69\x37\x75\xa7\xee\xb4\x9b\xba\xd3\xfe\x32\xda\ +\x6d\x46\x61\x0d\x47\x88\xd4\x18\x21\xf2\x83\xdf\x47\xf0\x18\xe6\ +\x6a\xbf\x88\xed\xb7\x1d\x6e\xc4\xa1\x9b\x39\xfc\xcf\xf0\xf0\x00\ +\x5d\x46\x42\x08\x21\x84\x10\x42\xc8\xd0\x33\x86\x6b\xb0\xfd\xb6\ +\xc3\x4d\xee\x59\xc0\x5d\xbf\xfe\x32\x8c\x8c\xdc\x0d\xdf\xdb\x18\ +\xfd\x96\x98\xd3\x98\x31\xf9\xb0\xdd\x60\x12\x9a\xf3\x7c\x73\x2b\ +\x60\x2f\xf4\x34\x73\x4e\x8e\xb4\xcd\xa9\x74\xdd\x32\xbc\x53\xfb\ +\xa3\x6d\x50\x1c\xed\xce\x6b\x8f\xeb\x73\xc9\xd2\x21\x3a\xce\xb8\ +\xf0\xc0\xe8\xae\x71\x3b\x07\x4e\xf7\x41\xcd\xef\x5d\xd2\xbd\x5d\ +\xbb\xa9\x3b\x75\xa7\xee\xd9\xba\x4b\x7a\xb4\xcb\xb6\xeb\x73\xea\ +\xde\x1b\xdd\x5d\xef\x4f\xdd\x07\x43\x77\xeb\x73\x18\x56\xdd\x33\ +\xec\xcf\xbb\x06\x4a\x8d\x68\xac\xd1\xc8\x51\x18\x6d\x0e\x35\x88\ +\x7f\x03\x2e\xb9\xf5\x2f\x60\x34\xc9\xeb\x5c\xfa\x99\x1f\x42\xe4\ +\x6a\x78\x38\x44\xd7\x91\x10\x42\x08\x21\x84\x10\x32\x74\x54\x6a\ +\x77\x42\xe4\xc6\xd6\x7e\x9f\x42\xf0\xe5\xb7\xbe\x1e\xa2\x7f\x87\ +\x79\xbc\x24\xea\xa2\x73\x1e\x01\xca\x70\x15\xc5\xf0\xe0\x12\xdf\ +\x67\x79\xd2\x66\xf4\x0a\x0d\x1c\x4c\xaf\xbb\xe2\x69\xc6\xfe\x4d\ +\x16\xfb\x60\x89\xaa\x11\xd9\x9d\xe8\x01\xed\x93\xfd\xe6\xef\xb6\ +\xcf\xd4\x9d\xba\x0f\xb3\xee\x16\x06\x47\xf7\x78\x39\x4c\xdd\xa9\ +\x3b\x75\xa7\xee\xd4\x7d\xc8\x75\x17\xc9\x68\x38\x97\x65\x76\xb1\ +\x43\x00\x00\x01\x80\x49\x44\x41\x54\x4c\xf7\x30\x7a\x5e\x94\x5d\ +\xbc\x7c\x7a\xb8\x0e\x45\xa9\xb1\xa1\xa3\x46\xc2\xf9\x18\xf5\x3f\ +\x87\x51\x5c\x85\xd7\xdc\x7e\xb0\xf9\xcc\x74\x4b\x2e\xbc\xe5\x4e\ +\xcc\xe9\x65\xa8\xc8\xf7\xe8\x4a\x12\x42\x08\x21\x84\x10\x42\x06\ +\x9e\xca\xec\x0d\x98\x7f\xe1\xed\xa6\x43\x94\xed\x56\xde\xf5\xb6\ +\xf5\x18\xc5\xb5\x80\xff\x76\x54\xe7\xfd\xc0\xd3\x5a\x1c\xeb\x09\ +\x98\xf3\xd2\x3d\x34\xc7\x5b\x44\x8c\xfa\xf1\xcf\xb3\x5e\x6b\x87\ +\x30\xf4\x00\x6d\xd1\x2b\x46\xe2\x3b\xe7\x46\xd7\x33\xef\xe7\xfa\ +\xbd\xcd\xde\x30\xfd\x59\x73\x1b\x47\x83\x03\xe6\xc2\x91\x31\xdf\ +\xb0\xdb\xe6\x79\x67\xdc\x3f\xb4\xd3\xd5\x6e\xf3\xb1\x8c\x38\x9e\ +\x37\xe8\xba\x87\x76\xd7\x50\x0e\xdd\xb3\xee\x43\xdd\xa9\x3b\x75\ +\x4f\x99\x2b\xdf\x23\xdd\xf3\xda\x5d\x36\xdd\xc3\x72\x7d\xde\xa3\ +\xee\xbd\xd4\x3d\xa1\xe7\x80\xe8\x9e\xd7\x6e\xea\x5e\x12\xdd\x8d\ +\xc5\xe9\xc3\xa6\xfb\xac\x38\x96\x73\xc1\x71\x55\x8d\x7f\x0e\xed\ +\xa9\x01\x10\xdf\xc7\xc8\xfc\xe3\x80\xff\xa7\xd8\xb6\xe3\xdf\x6c\ +\x97\x6c\x9d\xf2\x4b\xff\xe9\x59\x7c\xfd\x9f\xfe\x10\xaa\xe7\xc2\ +\xaf\x7e\x81\xee\x25\x21\x84\x10\x42\x08\x21\x64\x20\x18\x9b\x7b\ +\x12\x23\xb3\xef\xc1\xdc\xc4\x2f\xb5\x72\x88\x9a\xfd\xb6\x6c\x14\ +\x82\x2f\xbc\x75\x23\x96\xe1\x4d\x98\x9a\x7b\x03\x80\x57\x42\x24\ +\xb8\x42\x97\xe7\x31\x0a\x92\x71\xc7\x55\x11\x1f\x3e\x6a\xf2\xef\ +\x24\xf8\xad\xdf\xa1\xd9\xc5\xf0\x9c\x43\xad\x68\x3b\x6d\xa7\xed\ +\xb4\x9d\xb6\xa7\xd8\x3e\xc8\xe5\x3b\x6d\xa7\xed\xb4\x9d\xb6\xf7\ +\xdb\x76\x0d\xea\x80\x01\xb4\x5d\x9a\x46\xe6\x32\x6d\xd7\x16\xdf\ +\x0b\x20\x7a\x18\x55\xb9\x15\xa8\xdd\x8b\xd9\x89\x9d\xd8\xbe\x73\ +\xc6\xc5\xe4\xff\x0f\x5a\x59\x1b\xc9\x18\xa2\x86\x7c\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x02\x99\ +\x3c\ +\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\ +\x30\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\x6e\ +\x6f\x22\x3f\x3e\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\x76\ +\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\x43\ +\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\x45\ +\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\ +\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\x53\ +\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\x31\ +\x2e\x64\x74\x64\x22\x3e\x3c\x73\x76\x67\x20\x74\x3d\x22\x31\x37\ +\x30\x34\x38\x38\x37\x36\x38\x34\x30\x32\x39\x22\x20\x63\x6c\x61\ +\x73\x73\x3d\x22\x69\x63\x6f\x6e\x22\x20\x76\x69\x65\x77\x42\x6f\ +\x78\x3d\x22\x30\x20\x30\x20\x31\x30\x32\x34\x20\x31\x30\x32\x34\ +\x22\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\ +\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\ +\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\ +\x67\x22\x20\x70\x2d\x69\x64\x3d\x22\x37\x31\x33\x30\x22\x20\x78\ +\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\ +\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\ +\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x77\x69\x64\x74\x68\x3d\ +\x22\x31\x36\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x31\x36\x22\ +\x3e\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x34\x30\x2e\x38\ +\x37\x31\x36\x39\x34\x20\x39\x37\x2e\x31\x31\x37\x33\x31\x34\x61\ +\x35\x36\x2e\x33\x39\x38\x34\x34\x20\x35\x36\x2e\x33\x39\x38\x34\ +\x34\x20\x30\x20\x30\x20\x31\x20\x30\x2d\x38\x30\x2e\x34\x36\x31\ +\x37\x37\x35\x20\x35\x38\x2e\x31\x31\x30\x33\x39\x33\x20\x35\x38\ +\x2e\x31\x31\x30\x33\x39\x33\x20\x30\x20\x30\x20\x31\x20\x38\x31\ +\x2e\x34\x36\x39\x37\x34\x36\x20\x30\x6c\x34\x36\x30\x2e\x37\x38\ +\x37\x32\x35\x37\x20\x34\x35\x35\x2e\x31\x30\x37\x34\x31\x34\x61\ +\x35\x36\x2e\x33\x39\x38\x34\x34\x20\x35\x36\x2e\x33\x39\x38\x34\ +\x34\x20\x30\x20\x30\x20\x31\x20\x30\x20\x38\x30\x2e\x34\x34\x35\ +\x37\x37\x35\x4c\x33\x32\x32\x2e\x33\x34\x31\x34\x34\x20\x31\x30\ +\x30\x37\x2e\x33\x33\x32\x31\x34\x31\x61\x35\x38\x2e\x31\x31\x30\ +\x33\x39\x33\x20\x35\x38\x2e\x31\x31\x30\x33\x39\x33\x20\x30\x20\ +\x30\x20\x31\x2d\x38\x31\x2e\x34\x36\x39\x37\x34\x36\x20\x30\x20\ +\x35\x36\x2e\x33\x39\x38\x34\x34\x20\x35\x36\x2e\x33\x39\x38\x34\ +\x34\x20\x30\x20\x30\x20\x31\x20\x30\x2d\x38\x30\x2e\x34\x36\x31\ +\x37\x37\x35\x4c\x36\x36\x30\x2e\x39\x35\x36\x30\x37\x36\x20\x35\ +\x31\x31\x2e\x39\x38\x35\x38\x34\x20\x32\x34\x30\x2e\x38\x37\x31\ +\x36\x39\x34\x20\x39\x37\x2e\x31\x31\x37\x33\x31\x34\x7a\x22\x20\ +\x66\x69\x6c\x6c\x3d\x22\x23\x31\x31\x31\x31\x31\x31\x22\x20\x70\ +\x2d\x69\x64\x3d\x22\x37\x31\x33\x31\x22\x3e\x3c\x2f\x70\x61\x74\ +\x68\x3e\x3c\x2f\x73\x76\x67\x3e\ +\x00\x00\x05\x66\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x05\x2d\x49\x44\x41\x54\x58\x85\xed\x56\x5d\x4c\x93\x57\ +\x18\x7e\xda\x50\x7e\xfa\x8b\xfd\xf1\x6b\x41\x8b\x50\xa2\x04\x71\ +\xa6\x54\xa3\xd0\x32\x2d\x63\x6e\x8a\x37\xfb\x01\x92\xed\x42\x2e\ +\x4c\xd4\x5d\x2c\xf3\x27\x8a\xcb\x9c\x8b\x5e\xb8\x65\xbb\x98\x59\ +\xb2\x61\x7b\x83\x71\x33\x99\x5b\x32\x9c\x54\xf7\x63\xbb\x60\x8a\ +\x08\x53\xb0\xb4\x10\x44\x01\x4b\xda\xaf\x3f\x14\xfa\x95\xd2\x3a\ +\x45\x3d\xbb\xc0\x36\x14\x6a\x2c\x3f\x5e\x2c\xd9\x93\x9c\x8b\xef\ +\x9c\xf7\x7b\xde\xe7\x9c\xf3\xbe\xef\x79\x81\xff\xf1\x5f\xc6\xc4\ +\x64\x88\xe3\xf5\x7b\x94\x8b\xe1\x48\x7b\xde\x82\x6f\xd4\xab\xa4\ +\x69\x5a\x1f\x64\x82\x45\xe2\x65\x62\xbb\x42\xa1\xb0\x52\x32\xf9\ +\xc8\x4c\x9b\xb6\xb6\xb6\x6f\x3b\x3b\x3b\x77\x77\xdb\xba\xea\xd5\ +\xeb\x4b\xcf\x2e\x99\x80\xbe\xfe\xde\x6a\x83\xc1\xd0\xd2\x7e\xbd\ +\x1d\x0c\xc3\x20\x3b\x3b\x1b\x5a\x9d\x16\x8e\x3e\xfb\x5b\x25\xc5\ +\xeb\x9a\x81\xe9\xdd\x1b\x8d\xc6\xdd\x16\xb3\x05\x1a\x8d\x46\x0f\ +\x60\x41\x02\xe6\x80\xf6\xba\x55\x47\x8e\x1e\x26\x2b\x56\xe6\x12\ +\xb0\x10\x1f\xca\xbc\x95\xe4\xc8\xd1\xc3\x84\xf6\xba\x55\x31\xdb\ +\x1e\x87\xad\xe6\xd7\x96\x8b\x3f\xcc\x9c\x9b\x09\x8f\x8f\x56\xdd\ +\x1d\x1c\xd0\x87\xc2\x0c\x37\x65\x01\x2d\x97\x2f\x35\x95\x95\x6f\ +\x4e\x70\x1e\x1b\x9a\x0d\xa5\xc4\x74\xa5\xa5\x29\x15\x1e\xaf\xdf\ +\xa3\x3c\x76\xfc\x13\x52\x5b\x57\x43\x2e\xfc\xfc\xe3\xef\xe1\xc8\ +\x04\x27\x99\x1d\x7b\xe6\x47\x28\xcc\x70\x69\xb7\x5b\x3f\x3a\x3a\ +\x9a\x94\x74\x74\x74\x14\x6e\x97\x4b\xff\x3c\xb2\x99\xf0\x78\x3c\ +\x7a\x53\x8b\x09\xa6\xcb\x26\x58\xcc\x96\x6d\x0f\x1e\x3c\x90\x26\ +\xb3\x4b\x88\x01\x36\x9b\x3d\x95\xc5\xe5\x06\xd2\xd2\xd2\x12\x23\ +\x9b\x05\x80\x00\xe9\xe9\xe9\x10\x08\x85\x23\x02\x9e\x70\xea\x45\ +\x02\x28\x8a\xb2\x56\xef\xac\x46\x61\x7f\x21\x2a\x5f\xab\xfc\x23\ +\x2b\x2b\x2b\xf0\xa2\x7f\x00\x00\xdd\xb6\xae\x5d\x3b\x76\xee\x20\ +\x99\xbc\x0c\x02\x36\xa6\xc7\xb3\x2b\xd8\x51\xbd\x9d\xb4\x77\x5c\ +\x3f\x98\x12\x11\xa6\xe3\xa9\xaf\xbf\xb7\x7a\x5e\x31\xe0\x0f\xf8\ +\x14\xdf\x9f\x3f\x47\xb6\xea\xb7\x90\xe5\x72\x19\x11\x66\xf3\x89\ +\x5c\x41\x11\x7d\xe5\x56\x72\xf6\x5c\x53\x4f\x30\x34\x2e\x4a\x99\ +\x2c\x05\xb0\x66\x4f\x8c\x33\x63\x22\xaf\xd7\xcb\xd8\xed\x76\x0c\ +\x0c\x0c\x80\x61\x18\xc8\x64\x32\xa8\xd5\xea\xef\xd4\x6a\xf5\xc9\ +\xe5\x52\xca\xf3\x52\x04\x84\x23\x13\x9c\xdb\xb7\x6f\x37\x58\xad\ +\xd6\x13\x81\x40\x00\x12\x89\x04\x6a\xb5\x1a\x6b\xd6\xac\xd9\xcc\ +\xe7\xf3\x47\x96\xda\xf1\x1c\x98\xae\xb4\x34\xbd\xb9\xfd\x0d\x42\ +\xc9\x97\x13\x9e\x80\x1b\x3f\xf6\xb6\x76\x6b\xc3\x52\xf0\xdb\x7b\ +\x7b\x6a\x0c\xc6\x46\xa7\xc1\xd8\xe8\x1c\x1c\xbe\xa7\x4b\x58\x1c\ +\xba\x3f\xb8\x69\xef\xbe\x3d\x49\x73\x7f\xff\xc1\x8f\xc8\xbc\x82\ +\x28\x09\x68\xaf\x5b\xd5\xf0\xf1\x11\x92\xbb\x22\x87\xe4\xad\x52\ +\x92\x2f\xbe\xfc\x9c\xf8\x03\x3e\x05\xf0\x2c\x0d\x43\xa1\x50\xd1\ +\x9d\x3b\x77\xe2\xe9\x36\x13\xdd\x5d\xdd\x88\x44\x22\x0a\x00\x83\ +\x0b\x15\x10\x8d\x46\x15\x43\x83\x43\x70\xbb\x69\x00\xc0\xf0\xd0\ +\x30\x1e\x3f\x7e\xcc\x8d\x0b\x60\xb1\x58\x53\x59\x59\x59\x73\x9c\ +\x03\x00\x97\xbb\xa8\xcd\x03\x00\xc4\x62\xb1\x5d\x57\xa1\x8b\xba\ +\x5c\x2e\x6e\x46\x46\x06\x74\x15\xba\x8e\x58\x5d\x48\x03\x80\x9c\ +\x9c\x9c\xbf\xb4\x3a\x2d\x6c\x36\x5b\x5c\x25\x00\xc8\xe5\x14\xaa\ +\x5e\xaf\x42\x8e\x3c\x77\xc1\xbb\x07\x00\x71\xb6\x24\xe4\x0f\xf8\ +\x0a\x37\x6e\xdc\xf8\x1e\x00\xa8\x54\xaa\xf3\xcb\x44\xe2\x50\x82\ +\x91\xbd\xb7\xa7\x66\xef\xbe\x3d\xa4\x54\xa3\x26\x79\xab\x94\x44\ +\xb3\xa1\x94\x1c\x38\xb4\x9f\xdc\x1b\xba\xab\x4b\xca\xba\x44\x48\ +\xa8\x03\x83\xc3\xf7\x74\x03\x03\x03\xbb\x82\xc1\x60\x91\x50\x28\ +\xd4\xe5\xe5\xe5\x81\xa2\xa8\x9c\x97\x99\x82\x73\x0a\x11\x30\xfd\ +\x28\x39\x1c\x8e\x48\xaf\xc3\x81\xf0\xe4\x24\x56\xaf\x5e\x7d\x5e\ +\xa3\xd1\x7c\xba\xd8\xab\x48\x19\xd7\xac\xad\xc7\xde\x79\xf7\x6d\ +\xa2\x2a\x2c\x20\xb9\x2b\x72\x48\x59\xf9\x66\x72\xfa\x9b\xaf\x1f\ +\xcd\xb7\xfd\xba\x7e\xa3\xed\xa0\xc1\xd8\xe8\xb4\xb4\x9a\x4f\xa5\ +\x5c\xc2\x3d\x3e\x5a\x75\xe0\xd0\x7e\x22\x91\x8a\x13\xea\xc1\x96\ +\xad\xaf\x92\xab\x96\x3f\xbf\x4a\xd5\xf9\xe5\xdf\x4c\xc6\x72\x6d\ +\x19\x91\x2b\x28\x52\xaa\x51\x13\x83\xb1\xd1\x99\xec\x19\x67\xcf\ +\x9e\x08\x87\xc3\x4a\xe7\x7d\x27\x26\x23\xe1\x84\x79\xb7\xdb\x0d\ +\x9f\xcf\x97\x10\x90\x13\x93\x21\xce\x38\x33\x26\x9a\x4d\xec\x0f\ +\xf8\x14\x66\xb3\x79\xb7\xad\xc7\x06\xaf\xd7\x87\xae\xae\x6e\x74\ +\x76\xfe\xad\xa4\x69\xb7\x7e\xb6\xbf\x39\x3d\x21\x9f\xcf\x1f\x91\ +\xc9\x64\x48\x4b\xe3\xe0\x21\x6b\x2a\x5e\x1b\xa4\x52\x29\x24\x12\ +\x49\x57\xcc\xee\x46\x67\xfb\x87\x67\xce\x9c\x39\xcd\x30\x0c\x4a\ +\x4a\x4a\xac\xb4\xd7\x5d\x1f\x8b\x11\x0e\x87\x13\x15\x89\x44\xc8\ +\xcc\xc8\xc4\xc3\x47\xff\x20\x23\x3d\x13\x6c\x36\x1b\x02\x81\x30\ +\xb5\x18\x9a\xf9\x2e\x48\x65\x12\xb2\xee\x95\x12\xf2\xd9\x89\xe3\ +\x64\xd8\x39\xb4\x09\x98\x4e\xd9\xda\xba\x1a\x22\x91\x8a\x09\x4f\ +\xc0\x25\x25\xeb\xd6\x12\x83\xb1\xd1\x19\x2b\xaf\xc0\x74\x5f\x51\ +\x5b\x57\x43\xca\xb5\x65\xa4\xb6\xae\x86\x5c\xbc\xf4\xcb\x85\x64\ +\xbe\x92\x76\xc5\x5a\xad\xf6\x03\x00\xb8\x79\xf3\xe6\xae\x68\x34\ +\x0a\x55\x41\xc1\x88\xbe\xb2\xb2\x3e\x3f\xaf\xa0\x23\x1c\x99\xe0\ +\x34\x37\x37\x37\xdc\xba\x75\x0b\x63\x63\xe3\x00\x00\x87\xa3\x17\ +\x57\xaf\x9a\x95\xba\x8a\x8a\x52\x00\x26\x00\x50\xaf\x2f\x3d\xdb\ +\xd7\xdf\x1b\x70\xb9\x5c\xdb\x28\x8a\xea\xc8\xcf\xcf\xff\x29\x65\ +\x01\xd9\xc2\x65\x51\x00\xf5\x1e\x1f\x7d\x92\x10\x02\x1e\x8f\xe7\ +\x11\x09\xb2\xa3\xb1\xf5\xa7\x4f\x9f\x72\x9e\x3c\x79\x12\xb7\xe7\ +\xf1\x93\x97\xeb\xe2\xa2\xb5\xa6\x98\xa0\x25\x45\xec\x78\x67\x5f\ +\xc1\x38\x33\x36\xef\x6e\x29\x69\x21\x4a\x05\x96\x56\xf3\xa9\x6b\ +\xad\xd7\x1a\x82\xc1\x20\xd6\x16\x17\x8f\xbc\x56\x55\xf5\xbe\x2a\ +\xbf\xd0\xba\x50\xbe\x05\xc1\x1f\xf0\x29\x3c\x3e\x7a\x51\xfd\xc2\ +\xbf\xcb\x75\x6c\xdc\xb0\x66\x5f\x43\x00\x00\x00\x00\x49\x45\x4e\ +\x44\xae\x42\x60\x82\ +\x00\x00\x05\x7a\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x05\x41\x49\x44\x41\x54\x58\x85\xcd\x57\x5d\x4c\x93\x57\ +\x18\x7e\x50\x08\xf3\xfb\x68\x81\x82\xb4\x50\x07\x6c\x2d\xa8\x6d\ +\x81\x8d\xb6\x6e\x6c\x68\x32\xa2\x02\x22\xfe\x2c\x81\x9a\xdd\xcc\ +\x8b\xc5\x9f\x25\x2e\xcb\xcc\x12\x9d\x63\x17\x5e\x2d\xd9\x9c\x42\ +\x20\x1a\xbc\x71\x17\xfc\x69\x70\x2a\x73\x11\x14\x56\x90\x64\x1a\ +\x88\xac\x95\x22\xa5\x80\x52\xd3\x9f\xaf\xb4\xa5\x2d\x85\x8f\xa5\ +\x4d\xcf\x2e\xb4\x15\xa4\x20\x30\x48\xf6\x24\xdf\xc5\x77\xce\x7b\ +\xde\xe7\xc9\x79\x7f\xce\x39\x11\x58\x21\x2c\x8c\x59\xec\xf1\xb8\ +\x0d\x00\x10\x1b\x1b\x97\x26\x48\x4a\x36\xae\xc4\x4f\xc4\x72\x17\ +\xb8\x3c\x13\x94\x56\xab\x3d\xd5\xda\xda\x5a\x31\xf8\x64\x10\x00\ +\xb0\x55\xb2\x15\x45\x45\x45\xa7\x65\x32\x59\x55\x1c\x37\x7e\x7a\ +\x25\x42\x96\x8c\x8e\xce\xf6\x73\xe5\xaa\x32\xc2\x17\x24\x11\x44\ +\x80\x20\x02\x84\x2f\x48\x22\xe5\xaa\x32\xd2\xd5\xdd\x59\xb1\xa6\ +\xe4\x66\xab\x49\xfc\xfd\x0f\x67\x88\x70\x53\xca\x0b\xf2\x75\x08\ +\x89\x10\x6e\x4a\x21\x67\x2a\xbe\x23\x66\xab\x49\xb4\x1c\x9f\x91\ +\x0b\x4d\xd8\xec\x4c\x0a\xc3\x30\x3b\xfc\x7e\x3f\xcd\xe7\xf3\x3b\ +\x53\x04\xc2\x61\xa7\xd3\x99\x33\xa4\x1f\x82\xcd\x6e\x7b\x11\x3c\ +\xf2\xca\xde\x64\x32\xc3\x30\x64\x80\xd3\xe9\xcc\x02\x30\xf2\x9f\ +\x04\x68\xfb\x35\x87\x6a\x6b\x6b\x1b\xfa\x1e\xf5\x81\x65\x59\x48\ +\xa4\x12\xdc\x6d\x6f\xbb\x34\x39\x39\x39\x06\x00\xbe\x7f\xfc\x73\ +\xb3\x27\x02\xa0\x69\x6a\xa9\x9c\x8b\x0b\x18\x7d\x36\x92\x57\x5d\ +\x5d\xdd\xd0\xd4\xd8\x04\x93\xc9\x0c\x00\xe8\xe9\xe9\xc1\xd3\xd1\ +\xa7\xc7\x54\x87\x54\x10\x67\x88\x21\x14\xa6\x84\xe6\x00\x00\x04\ +\xe0\xc4\x70\x90\x91\x99\x01\x1e\x8f\xf7\x38\x38\x1c\x0c\x47\x8a\ +\x40\xb8\xe0\x8e\xcc\x13\xd0\xdf\xdf\x7f\xb2\x53\xdd\x39\x87\x60\ +\x7c\xdc\x8e\x07\x0f\x1e\x40\xae\x90\x23\x2f\x2f\x0f\xfa\x41\x3d\ +\xd4\x6a\x35\x1c\x4e\x27\x00\x80\xcb\x8d\x41\x7e\x7e\x3e\x0a\x0a\ +\x0a\xce\x05\xc9\x2c\x8c\x59\x54\x53\x53\x33\x4c\x08\xc1\xe8\xb3\ +\x91\x0f\xdf\x4d\x17\x3d\x7c\xa3\x80\xc9\x29\x4f\x54\x73\x73\x73\ +\x8e\xdb\xed\x9e\x67\x68\x32\x99\xe1\x70\x38\x20\x97\xcb\xc5\x1b\ +\x37\x6e\x2c\x91\xca\xa4\x95\xbd\x3d\xbd\x00\x80\x6d\x1f\x6c\xc3\ +\xfe\xfd\xfb\x0f\x8b\x44\xa2\xfa\xd0\xa6\x10\x02\xab\xc5\x0a\x00\ +\x98\x9a\x9a\x4a\x05\x10\x56\xc0\x3c\x5c\xbf\xd1\xfc\x87\x5c\x91\ +\x1b\xca\xee\x60\xb6\x6f\x7a\x5b\x48\x7e\xfe\xe5\x27\xe2\xf2\x4c\ +\x50\x00\xe0\xf1\xba\xa3\x98\x71\x6b\xaa\xd5\x66\x49\xf5\x78\xdd\ +\x51\xe1\x7c\xe9\x9e\xf4\x1f\xd0\x3d\xe9\x3f\xb0\x24\xe2\x20\x86\ +\x47\x0d\x3b\xbe\xfa\xfa\xc4\x9c\x3a\x4f\x48\xe4\x91\x3d\x25\xc5\ +\x6b\x52\xe7\xf3\x72\x20\x29\x29\xe9\x2f\x95\x4a\x05\x8a\xa2\xa0\ +\xd5\x68\x11\x08\x04\x90\x9e\x9e\x8e\xd2\x7d\xa5\xbf\xca\x64\xb2\ +\xaa\xd5\x16\x10\x2a\xa6\x09\xb7\x33\xce\x68\x34\xee\xb3\xdb\xed\ +\x0a\x8a\xa2\x4e\x70\x38\x1c\xf8\x7c\xbe\xc3\x00\xc0\xe7\xf3\xbb\ +\x39\x1c\x8e\x91\x43\x73\x7d\x6b\x22\xc0\xe9\x72\xc4\xb5\xb7\xb7\ +\xdf\xbc\x76\xf5\xda\x0e\x9b\xcd\x86\x84\x84\x04\x14\x16\xee\xc6\ +\xde\xd2\x52\xf1\x62\x25\xb4\x6a\xb8\xd7\x71\xb7\xaa\x78\x4f\x11\ +\xa1\x39\x54\x28\xee\x72\x45\x2e\x69\x68\xaa\xbf\xbf\x1a\xfe\x3d\ +\x5e\x77\x54\x57\x77\x67\x45\xed\xe5\x4b\x63\x7d\x9a\x47\x9f\xcf\ +\x99\x74\x4f\xba\xa8\x0b\x55\xe7\x5f\xf5\xf7\x97\x1f\xcd\xa1\xc8\ +\xc9\x6f\xbf\x21\xee\x49\xd7\xca\x5a\xdc\x2c\x0c\x0d\xeb\x3f\x29\ +\x57\x95\x11\x71\x86\x88\x1c\x3b\x7e\x74\xce\x79\xb1\x0e\x78\x51\ +\xb3\x6b\x09\xbf\xdf\x4f\x71\xb9\x5c\x10\x42\x40\xd1\x14\x66\x66\ +\x66\x12\xe7\x18\xdc\x6d\x6f\xab\x2c\x2a\x2e\x0c\x85\xe0\x2d\x3a\ +\x9a\xc8\x15\xb9\xa4\xf1\x6a\x43\xc7\x6a\x08\xf0\x78\xdd\x51\xea\ +\xae\x8e\xb3\xe1\x42\x10\x01\x00\x36\x3b\x93\xac\x56\xab\xaf\xb4\ +\xb4\xb4\xec\x7e\x6e\x7c\x1e\x4c\x42\xe3\xde\xd2\xd2\x82\xb5\x4e\ +\xc2\xd9\x65\x18\x6b\x34\x1a\x4b\xec\x76\x7b\x2e\x8f\xc7\x7b\x2c\ +\x14\x0a\xdb\x92\x12\xf9\x96\xb5\x24\x7f\x23\x26\xdc\xce\xd8\xd5\ +\x48\xc2\xc5\x10\xf6\x4e\x68\xb3\x33\xc9\xbd\xbd\xbd\x67\x75\x3a\ +\xdd\x17\xd1\xd1\xd1\xd3\xdb\xb7\x6f\xff\x52\x2c\x16\xd7\x2f\xb7\ +\x11\xb9\x27\x5d\x14\xcb\xb2\x89\x34\x4d\x5b\x16\x5a\x1b\xf6\x42\ +\xd2\xd5\xd5\x75\xb9\xa6\xba\xa6\xc4\x60\x30\x20\x32\x32\x92\xd2\ +\x6a\xb4\x57\x8e\x1c\x3d\x42\x01\xb8\xb8\x54\x72\x66\xdc\x9a\xda\ +\xd4\xd8\x78\x5f\x3f\x34\x94\x9a\x9b\x9b\xfb\xd0\xe9\x72\x14\xf2\ +\xe2\x12\xe6\x1f\xb3\xaf\xc3\x6c\x35\x89\x8e\x1d\x3f\x4a\x12\x12\ +\x79\xa1\x9e\x90\xfe\x4e\x1a\xa9\xaa\xae\x9c\x0a\x9e\x84\x4b\xc1\ +\xf5\x1b\xcd\xbf\xc9\xb2\xa4\x84\xe6\x50\xe4\xa3\x8f\xf3\x48\xdb\ +\xbd\xd6\xca\x70\x76\xeb\x5e\x1f\x60\x59\x36\xd9\xef\xf7\xc3\xe1\ +\x70\x86\xc6\x7c\x3e\x1f\x66\x66\x66\xa8\x40\x20\x10\xf6\xd8\x0d\ +\x07\x96\x65\x93\x3d\x1e\x0f\xa6\xbc\xd3\xf0\x7a\xbd\x60\xd9\xe9\ +\xe4\x70\x76\xf3\x42\x10\x1f\x1f\xff\x58\x2a\x93\x62\xcb\x96\xcd\ +\x18\x79\x3a\x02\x6e\x0c\x17\x99\x99\x99\x90\x4a\xa5\xbf\xce\xde\ +\xc2\xbf\xb5\x7d\x9f\x69\x34\x9a\x53\x00\x90\x93\x93\xf3\xe3\x7b\ +\xd9\xef\xd7\xcf\xf6\xa3\x54\x2a\x4f\x1f\xfc\xf4\x60\x87\x7e\x50\ +\x0f\x85\x52\x81\xac\xac\xec\x73\x4b\x12\xc0\x8b\x4b\x70\x9b\xad\ +\x26\x31\x21\x64\x78\x40\x37\x80\xf5\xeb\xd7\x63\xd7\xee\x5d\xb7\ +\x95\x4a\xe5\xe9\xa0\xcd\xc0\xa0\xae\xe4\xc2\xf9\x0b\x75\x77\xee\ +\xdc\x41\x20\x10\x40\x71\x71\x71\xdd\xe0\xd0\x80\x7d\x4b\xa6\xa4\ +\x2d\x68\x93\x29\xde\xfc\xa7\xd9\x6a\x12\x33\x0c\x93\x2f\x10\x08\ +\xba\x93\xf9\x29\xcb\xeb\x27\x4e\x97\x23\x76\x78\xd4\x90\x1f\xee\ +\x9e\xdf\x72\xfb\x56\x5d\x56\xb6\x2c\x94\x23\x59\xd9\x32\x72\xeb\ +\xf7\x9b\x75\xcb\x22\x78\x89\x05\xdf\x05\x2f\xb7\xbb\x3b\xdc\xdc\ +\x86\x0d\x1b\x2c\x34\x4d\x87\xfe\x63\x62\x62\x40\x51\xd4\x8a\x9a\ +\xd6\x82\x02\x16\x83\x44\x22\xb9\x58\x56\x5e\x76\x92\xc7\xe3\x81\ +\x10\x82\x9d\xbb\x76\x42\x22\x91\x2c\xb9\x44\x67\x63\xd9\x8f\xd3\ +\x20\x2c\x8c\x59\x34\x36\x36\x56\x02\x00\x69\x69\x69\xb7\x97\x1d\ +\xe3\xff\x0b\xfe\x05\xac\x87\x61\x7c\xf4\xfe\x88\xd7\x00\x00\x00\ +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x06\x1f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x05\xe6\x49\x44\x41\x54\x58\x85\xcd\x57\x5b\x4c\x14\x67\ +\x14\xfe\x40\x51\x60\x76\xd9\x71\xef\xec\x6e\x03\x0b\x82\x94\x4b\ +\x65\x25\xd9\xa0\x58\xdb\x6d\xbd\xb5\x5a\x9b\xb6\xde\x9a\xd8\x97\ +\x6a\x53\x13\x7b\x49\xdb\x07\x9b\x26\xb5\x69\x9b\x26\x3e\xa8\x4d\ +\x7a\x21\xed\x43\xfb\xa2\x35\x50\xad\x7d\xa8\x35\x05\x51\x54\xa8\ +\xe2\x16\x25\xc2\x2e\xdd\x85\x15\x28\x11\xd8\x85\x99\xd9\x99\xd9\ +\x99\x61\xb7\x5c\xfe\x3e\x28\x57\x17\x14\xec\xed\x7b\xfc\xf3\x9d\ +\xf3\x7d\xff\x9f\x33\xe7\x9c\x01\xfe\x63\x24\xcc\x37\xb0\x37\xd8\ +\x93\xdb\xdd\xdd\xfd\x5c\x34\x3a\x68\x34\x18\x8c\x6e\xab\xd5\x7a\ +\x9a\x4e\x5b\x22\xcf\x35\xcf\xc2\xf9\x88\x37\x7b\x6e\xec\x2a\x2f\ +\x2f\x3f\xfa\x6b\xfd\xaf\x88\xc5\x62\xb0\xd9\x6c\xd8\xf2\xec\x96\ +\xb6\xbe\x50\xef\x33\xe9\x26\x4b\xdb\x7c\x72\xde\x37\x02\x1d\xed\ +\xae\x77\xdf\xdb\x4f\x6c\x0f\x59\x09\x12\x40\x90\x00\x42\xa9\x53\ +\xc9\x63\x8f\xaf\x21\x95\x27\x2a\xae\x0b\x11\x9e\x1a\xe3\x0a\x11\ +\x9e\xe2\x78\x96\x16\x25\x21\x69\xa6\x7c\x33\xbe\x80\x10\xe1\x29\ +\x96\x65\x1d\xa2\x28\xe6\x6a\x34\x9a\x36\xbd\x5e\x7f\x55\x4d\xa5\ +\x0d\x05\x02\x81\x97\xaf\x5c\xbe\x82\xd0\x40\x68\x9c\x2b\x4b\x0a\ +\x5a\x5b\x5b\x71\xed\xda\x35\x87\xd3\xe9\x74\x70\x3c\xeb\xf1\xfb\ +\xfd\xaf\x57\x56\x54\xec\x97\x15\x85\x32\x99\x4c\xde\x16\x6f\xf3\ +\xc1\xa2\x82\x47\x8e\xdd\x97\x01\x8e\x67\xe9\xea\xea\xea\xaa\x73\ +\x35\xe7\x9c\x0c\xc3\x40\xaf\xd7\x63\xd3\xe6\x4d\xa7\x7b\x83\x3d\ +\xef\xd4\xd5\xd5\x15\x84\xc3\x61\x0c\xc5\x86\x27\x02\x12\x00\x65\ +\x50\x01\xc7\x72\xe0\x79\xbe\xae\xa1\xa1\x01\xa7\x7e\x38\x85\x96\ +\x96\x16\x0c\x0e\x0e\x42\xa7\xd3\x15\x38\x9d\xce\xa3\xf5\x97\xeb\ +\x72\x57\xaf\x7a\xf4\xc0\x3d\x0d\xb8\xdd\xee\xcf\xcb\xbf\x2c\x77\ +\xba\x7f\x73\x03\x00\x52\x92\x53\xd0\xdd\xdd\xbd\x79\xdf\x6b\xfb\ +\x36\x6b\xb5\x5a\x58\x2c\x16\x34\x37\xb7\x4c\x94\x30\x01\xd4\x2a\ +\x35\x0c\x46\x03\x3c\x1e\x0f\x8e\x7f\x77\x1c\x97\xea\x2e\x41\x96\ +\x14\x00\xc0\x1f\x7f\x74\xa3\xb7\xb7\x17\x00\xde\xf7\xb5\xb5\xba\ +\xf3\x72\xf3\x4f\x8f\x69\x25\x4e\x17\xef\x67\x42\xd6\xc6\xc6\xc6\ +\x5d\x1e\x8f\x07\xb2\xa4\x40\x96\x14\x30\x0c\x0b\x8f\xc7\x03\x9f\ +\xcf\x07\x8b\xc5\x82\xb2\xd5\x65\xc8\xcc\xcc\x00\xc8\xed\x98\xe4\ +\xd4\xc5\x28\x2e\x2e\x86\xc3\xe1\xc0\xad\x5b\xb7\xe0\xf5\x7a\xc7\ +\xc5\xc7\x4c\x06\x83\x21\xf8\x7c\x3e\x74\x76\x76\xed\x9a\xf5\x05\ +\x46\x47\x47\x17\x29\x8a\x82\xd1\xd1\xd1\xdb\xc1\x77\x44\x62\xb1\ +\x18\x62\xb1\x18\x0c\x06\x83\x6d\xf7\xee\xdd\x94\xc9\x68\xbc\x5e\ +\x53\x73\x8e\x92\x24\x09\x85\x45\x85\xd8\xb4\xe9\xe9\x23\x39\x39\ +\xb9\x5f\xb7\xb4\xb4\xf8\x15\x45\x99\x88\x25\x13\xb9\x45\x51\x84\ +\x28\x8a\xb9\xb3\x1a\xa0\x28\xea\x56\x51\x51\x91\xd7\x6a\xb5\x16\ +\x48\x72\x04\xb1\xd8\x10\x92\x16\x2d\x84\xdd\x6e\x47\x4e\x4e\x8e\ +\xdb\xa8\x37\xf5\xdc\xa1\xaa\xfa\x99\x90\x75\x78\x78\x98\x4a\x49\ +\x49\xe9\x5f\xa2\xd1\xf2\x42\x84\xa7\x0c\x06\x03\x54\x2a\x15\x18\ +\x86\x9d\x72\x81\xe4\xd4\xc5\x50\xab\xd5\xa0\x69\xda\x3b\xab\x01\ +\x35\x95\x36\xd4\x1b\xec\x79\xbe\xbd\xbd\xdd\x7f\xfe\xdc\x79\x30\ +\x0c\x03\x9b\xcd\x86\x75\xeb\xd7\xa1\xa4\xa4\xe4\x9d\xc9\xdc\x49\ +\x66\x00\x00\x1a\x35\x2d\x5f\xac\xab\x3d\x52\x52\x52\xf2\x36\x17\ +\x66\x21\x0a\xd2\x24\xae\x11\xa5\x2b\x4b\x91\x95\x95\x35\xe5\x4b\ +\x88\xdb\x09\x23\xb2\x98\x14\x89\x44\xec\x5e\xaf\x77\x3f\xc7\x71\ +\x0e\x9d\x4e\xe7\xce\xcf\xcf\x3f\x62\x31\x5b\xef\xd9\x64\x38\x9e\ +\xa5\x6b\x6b\x6b\x7f\xaa\xac\xa8\x5c\xdd\xda\xda\x8a\x68\x34\x0a\ +\x8d\x46\x83\x35\x8f\xad\xc1\xf6\xed\xdb\x0f\x14\x16\x16\x1e\x54\ +\x53\x69\x43\x33\x1a\x10\x25\x21\x69\x64\x64\x84\x5a\xa2\xd1\xf2\ +\xf7\x12\x9b\x09\x11\x59\x4c\xea\xe8\xe8\x78\xc9\xef\xf7\xbf\xaa\ +\x28\x8a\x55\xab\xd5\x36\xe5\xe7\xe7\x1f\x59\x9a\x95\x53\x3b\x9d\ +\x3b\x6e\x20\x2c\x70\x74\x57\x57\xd7\x8e\xe6\xe6\xe6\xf7\x09\x21\ +\x70\x38\x1c\x07\x96\x17\x15\x7f\x3b\x5f\x13\x63\x46\x08\x21\x48\ +\x53\x69\x86\xee\x49\xae\xae\xa9\xfa\x66\xeb\xb6\x17\xc8\xd2\x9c\ +\x6c\x92\xbd\x34\x8b\x6c\xdf\xb1\x8d\x5c\xaa\xbf\x78\xf0\x41\x0c\ +\x4c\xc7\xe4\x36\x3d\x05\xfd\x4c\xc8\xfa\xf1\x27\x1f\x11\x93\xd9\ +\x38\xde\xdf\x4d\x66\x23\xf9\xe0\xc3\x03\x64\xb6\x3e\x3e\x17\xb4\ +\xfa\xbc\xcf\x7d\xfe\xe5\x67\xe4\xfb\x93\x95\x57\xfb\x99\x90\x75\ +\xec\x3c\x11\x00\x86\x87\x87\xa9\x70\x38\x0c\x49\x9e\xa8\x5a\x49\ +\x96\x10\x0a\x86\x90\x90\x30\xef\x89\x3d\x05\xc1\x50\xd0\x75\xa1\ +\xf6\x02\x1a\x1b\x1b\x9d\xb2\x2c\xdb\xc7\xce\x17\x02\x80\x4a\xa5\ +\xea\xcc\x5b\xb6\x4c\xce\xce\xca\xa6\x02\x37\xdb\x01\x00\x79\xcb\ +\xf2\xb0\x62\x85\x43\x9e\x5c\xb1\x0f\x82\x87\xf3\x1e\xfe\x62\xcf\ +\x2b\x7b\x8c\x34\x4d\x7b\x75\x3a\xdd\xd5\x29\x06\xd2\x54\x9a\xa1\ +\xde\x60\xcf\x0a\x49\x96\xfd\x0d\x57\x1a\x00\x00\x6b\xd7\x3e\x29\ +\xaf\x5d\xb7\x6e\xe3\xdf\x21\x0e\x00\x77\xf6\x84\x9d\xd3\xcf\xa7\ +\xbc\x6f\x68\x20\x68\x67\x59\xb6\x78\x64\x64\x84\xd2\xeb\xf5\xee\ +\x7f\x7c\xb9\xf8\xdf\x23\x2c\x70\xf4\xe4\x8a\xfd\x27\x30\x63\x89\ +\x37\xdd\xb8\xfe\x6a\x4d\x4d\xcd\x57\xa2\x28\xa2\xac\xac\xec\x58\ +\x69\x69\xe9\xde\xb9\x2e\x9d\xc1\xfe\x3e\x7b\x5f\x5f\xdf\x7a\xad\ +\x4e\xdb\x94\x61\xcb\x74\xdf\x77\x60\xfb\xcd\xb6\x0d\x7b\x5e\xd9\ +\x4d\x4c\x66\x23\xd1\xe9\xb5\xc4\xf5\xc4\xe3\xe4\xcc\x2f\x3f\x57\ +\xcc\x45\x5c\x88\xf0\xd4\xe1\x4f\x0f\x91\x55\x65\x2b\xc9\x9b\x6f\ +\xbd\x41\x6e\x76\x06\x5c\xf1\x78\x77\x2d\x24\x00\xd0\xd7\xd7\xe7\ +\x6a\x6a\x6a\x42\x28\xd4\x0f\x96\xe5\xd0\xd1\xd1\x81\x40\x20\xb0\ +\x83\x17\xc3\xf1\x3b\x59\x1c\x44\xa3\x51\x63\x7b\x5b\x3b\xfc\x7e\ +\x3f\xfc\x3e\x3f\x06\x06\x06\x9c\xf1\x78\x71\x57\x32\xad\x56\xdb\ +\x64\xb7\xdb\xd1\xd5\xd5\x85\x68\x2c\x8a\xf4\xf4\x74\x98\xcd\x66\ +\xf7\x82\x05\x0b\xfe\x9c\x7e\x4b\x86\x61\x9c\x29\x29\x29\x3d\xd3\ +\x27\xa5\xc9\x60\xee\x3c\x79\xea\x44\x3d\x21\x64\x75\x41\x61\x01\ +\x32\x32\x32\x7e\x8c\xa7\x15\xb7\x06\x84\x08\x4f\x55\x55\x55\x9d\ +\x3f\x5b\x7d\xd6\x29\x08\xc2\x78\x4f\xc8\xca\xcc\xae\x1f\xe3\x70\ +\x3c\x4b\x9f\x39\x73\xe6\xea\x85\xda\x0b\xb9\x26\xb3\x09\x5b\xb7\ +\x6e\xdd\xeb\x58\xbe\xe2\xeb\xc9\x79\x44\x49\x48\x92\x24\xc9\x9e\ +\x9c\x9c\xdc\xaf\xa5\x75\x73\x9b\xae\xa2\x24\x24\xdd\xec\x0c\xb8\ +\xbc\xbf\x7b\x76\xc4\xfb\x12\x9a\x3d\x37\x76\x6d\x7c\x6a\x03\x41\ +\x02\x48\xa6\x3d\x83\x1c\xfe\xf4\x10\x09\x0b\x1c\x3d\x27\x11\xcc\ +\xf2\x5f\x70\x67\x84\xde\x35\xbf\xc7\x40\x08\x59\x94\x98\x98\x08\ +\x4a\x95\x0a\x00\xf3\x9e\x19\xf3\xfa\x35\x03\x80\xf4\xf4\xf4\xaa\ +\x9d\x2f\xee\xec\xb4\x58\x2c\x76\xa3\xc9\x08\x97\xcb\xb5\x77\x3e\ +\x4b\xcc\x03\x8d\x3a\x8e\x67\x69\x8e\xe3\x1c\xa9\xa9\xa9\x3d\x6a\ +\xb5\xba\xf3\xef\x1a\x5c\xff\x2a\xfe\x02\x82\x3e\xb3\xa0\x21\xcb\ +\x97\x11\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x06\x05\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x05\xcc\x49\x44\x41\x54\x58\x85\xe5\x97\x4d\x50\x13\x67\ +\x18\xc7\xff\xd9\x81\xb5\x24\x26\x90\x6c\x42\x30\x6c\x0c\x09\x14\ +\x42\x2d\x32\x80\x41\xa8\x35\xd4\x19\xa1\x7e\xcb\xd0\xa1\x87\x5a\ +\x67\xec\xa5\xd5\x91\x1e\xda\x1e\xbc\xb4\xd3\x19\xe8\x17\xad\x3d\ +\xd9\x8b\x8e\x0e\xda\x29\x9d\x56\x9c\x02\x5a\x68\x1d\xad\x45\x85\ +\x80\x32\xc8\x80\xa0\x01\x49\x1a\x63\xbe\x36\x9b\x10\x4c\x36\x9a\ +\x00\x43\x7a\x10\x30\x28\x1f\x05\x5a\x3d\xf4\x3f\xb3\x97\x7d\x9f\ +\x7d\x9e\xdf\xbe\xef\xf3\xfe\xf7\x5d\xe0\x39\x8b\xb7\xd4\x07\xdd\ +\x1e\x86\xb6\xdb\xed\xa5\x56\xeb\xdd\x72\x3e\x5f\x70\x4f\xa3\xd1\ +\x9c\x4c\x55\xa7\x5d\x7c\x26\x00\x23\x7e\x9f\xe0\xdc\xb9\x73\xa6\ +\xc6\x86\x46\xb9\xd9\x6c\x86\x50\x28\x84\xbe\x48\x8f\xb2\xb2\xb2\ +\xf7\x73\xb2\x73\xbf\x5b\x4a\xce\x45\xa9\xfd\x9a\xa1\x72\xdb\xf6\ +\xad\x11\x81\x90\x1f\x01\x0f\x11\xf0\x10\xc9\xd0\xa6\x47\xbe\xac\ +\xfe\x22\xe2\x70\xd9\xb5\x8b\xc9\x15\x33\xdf\x60\x20\xe8\x27\x47\ +\x47\xc3\xe2\xd8\x58\xd2\x27\x5a\x19\x3f\x0a\x00\x7e\xee\x3e\xd9\ +\xdc\xdc\x5c\x6e\x32\x99\x10\x0c\x3e\x98\x8e\xb5\xd9\x6d\x30\x0d\ +\x99\xe0\xf5\x7a\x0b\x00\x18\x1d\x2e\xbb\xd6\x6a\xb5\x96\x8f\x8d\ +\x8d\x89\x25\x12\x49\x17\x4d\xd3\x0d\xf1\xc2\x84\xe0\x3f\x06\x30\ +\x5b\x4c\xfa\xa6\xa6\xa6\xa3\x66\xb3\x59\x4b\xd3\x34\xd3\x7f\xbb\ +\xef\xa3\x35\x99\x2f\xd7\xf2\x78\x3c\x10\x04\x31\xc6\xe3\xf1\x80\ +\xc8\x64\x70\xd4\x42\x4e\x4c\x4c\x90\xdd\x3d\x37\x2a\x8e\x1f\x3f\ +\x7e\xa4\xa3\xbd\x03\x0f\x1f\x3e\x44\x6a\x6a\x2a\x8a\x4b\x8a\x8d\ +\x0c\xeb\xda\x2e\x97\x25\x99\x17\x04\x70\xb8\xec\xda\x13\x27\x4e\ +\x5c\xae\xff\xa5\x1e\x76\xbb\x1d\x32\x99\x4c\xbe\x6b\xf7\xae\x1f\ +\x06\x87\x06\x7c\x42\x81\xa8\xf9\x96\xb1\xbf\x2a\x7f\x7d\xfe\x69\ +\x96\x65\xe1\xf5\x0e\x43\x20\xe0\x43\x9b\xa1\x45\x7e\xbe\x0e\x1c\ +\xc7\x1d\xad\xaf\xaf\xc7\x99\xba\x33\xb0\x58\xee\x02\x00\xae\x77\ +\x5e\x87\xcd\x66\xd3\xae\x58\x41\xd6\xf8\xb9\xfb\xc5\x53\xb3\x39\ +\x27\x80\xd5\x6a\x2d\xbf\xf4\xc7\x25\xdc\xb8\xd1\x0d\x00\x60\x18\ +\x37\x44\x22\x11\x36\x6c\xd8\x70\x10\x40\xb3\x52\xa9\x6c\xdc\xbb\ +\x77\x6f\x2d\x3f\x8e\xbf\x67\x60\x60\x00\x71\x71\x71\x28\x2d\xdd\ +\x8d\x57\x37\x6e\x7c\x73\x68\x68\xe8\x5d\x43\x9b\x61\xf3\x54\x71\ +\x00\x08\x72\x0f\xd0\xdd\xdd\x8d\xeb\xd7\x3b\xf5\xf9\xf9\xeb\x35\ +\x00\x8c\xf3\x02\x8c\x8f\x8f\x0b\xc2\xe1\x30\x62\x48\x02\xe3\xa3\ +\x13\x00\x80\x50\x28\x84\x70\x38\x2c\x06\x00\xa1\x40\x34\x0a\xe0\ +\x6d\x27\xe3\xf8\x2c\x10\x08\x68\x08\x82\x18\x95\x4a\xa5\xed\x09\ +\x22\x71\xf0\xe7\xba\x9f\x2a\xfd\x7e\xff\x53\x39\xb9\x20\x07\x37\ +\xe3\xc6\xc8\xc8\x48\xd6\x82\x00\x1a\x8d\xe6\xe4\xda\xb5\x6b\x0f\ +\xd9\x6c\x36\x78\x87\xbd\x90\x52\x52\xe4\xe5\xe5\x41\xad\x56\xff\ +\x18\x1d\xb7\x4a\xae\x30\x46\x27\x03\x00\xb1\x58\xdc\x25\x93\xc9\ +\xb4\x82\x95\xfc\x19\x4d\x2a\xa5\xa4\x50\xae\x56\x22\x21\x21\xe1\ +\x66\x74\xfc\xac\x00\x8a\xa4\x64\x63\x5b\x7b\x6b\xb5\x22\x59\x71\ +\xa8\xef\x66\x1f\xd2\x33\xd2\x51\x54\x54\x54\xab\xd1\x68\x6a\x66\ +\x8b\x8f\x56\x5a\x5a\xda\x31\x7d\x91\x7e\x0f\xcb\xb2\xb8\x33\x34\ +\x88\x70\x68\x0c\x14\x25\xc1\xba\x75\xeb\xa0\xd3\xe9\x20\x14\x0a\ +\x67\x34\xe1\xbc\x46\xe4\x70\xd9\xb5\x5e\xaf\xb7\x80\xa2\xa8\x0e\ +\xa1\x50\x68\x9e\x9c\xfa\x05\xd5\xdb\xd7\xb3\xef\xc2\x85\x0b\x35\ +\xd7\x3a\xae\x81\xe3\x38\xac\x5e\xbd\x1a\x05\x85\x05\xd0\xe9\x74\ +\xa0\x28\x2a\x55\x20\x10\xd8\xa6\x72\x2d\xd9\x8a\x17\xd2\xf0\x88\ +\x57\xec\x74\x3a\xb7\x79\x3c\x6c\x01\xcb\x7a\x2a\xac\x56\x2b\x7c\ +\x3e\x1f\xf8\x7c\x3e\xd2\xd3\xd3\xbb\x72\x72\x72\x3e\xd4\xa4\xa4\ +\x5e\x99\xb1\x04\x5e\x1f\x2b\x1f\x1e\xf6\xe5\xc5\xc4\xc4\x70\x14\ +\x45\x75\x44\x6f\x97\xc5\x4a\x92\x40\xf9\x00\xd4\x5e\x6d\xbb\x92\ +\x77\xf1\xc2\x45\xb4\xb6\xb6\xc2\xe3\xf1\x80\x24\x49\xa8\xd5\xea\ +\xbc\x1d\x3b\x77\x5c\x76\xb8\xec\x99\xd3\x00\x66\x8b\x49\x7f\xea\ +\xd4\xf7\x97\x0d\x6d\x06\x10\x04\x81\xb2\x37\xca\x8c\x6e\x0f\x53\ +\x9c\x28\x95\xdb\x96\x0a\xe1\x64\x1c\xda\xc3\x87\x0f\x7f\xd0\xd0\ +\xd0\x00\x97\x8b\x99\xbe\x6f\xb5\xde\x03\xc7\x71\x90\xcb\xe5\xb7\ +\xa7\x01\x7a\x7b\x7b\xaa\xea\x4e\xd7\xa1\xbd\xbd\x03\x14\x25\x01\ +\xc7\x71\xda\x8c\x8c\x8c\x52\x00\x4b\xfe\xb8\xb8\x5c\xae\xcd\xed\ +\x86\xf6\xc7\xc5\x79\x98\x76\x4f\x8b\xc5\x02\x43\x9b\x01\x04\xf0\ +\xc8\xdf\xdd\x8c\x5b\xcf\xb2\x2c\x00\xc0\xeb\x1d\x06\xc3\x30\x60\ +\x18\x46\xbf\xd4\xe2\x53\x9a\xf6\x84\xa8\xe2\x00\x10\x0a\x87\xe0\ +\x0f\xf8\x1f\x01\x88\x56\xc6\x8f\xa6\xa5\xbf\x78\x2c\x3b\x3b\x1b\ +\x8a\xe4\x55\x48\x49\x51\x41\xa7\xd3\x81\xa6\xe9\xc6\xe5\x14\x8f\ +\x8d\x8d\xf5\xd1\x34\x8d\x17\xf8\x2b\x1e\x43\x4c\x5e\xfc\x38\x3e\ +\xd4\x6a\xf5\x63\x1f\x58\xf3\xd2\x9a\xea\x7d\xef\xec\xd3\xe4\xe6\ +\xe5\x6e\x8e\x8b\x8b\x43\x61\x61\x61\x95\x4a\xa5\xaa\x5b\x0e\x00\ +\x4d\xd3\x0d\xc5\x25\xc5\xb0\xd9\x6c\x8f\x3c\x21\x3c\x06\x44\x00\ +\x8a\x92\x40\xa7\xd3\x61\xd3\xa6\x4d\x33\xb7\x61\x20\xe8\x27\x83\ +\xc1\x20\x4d\x10\xc4\xe8\x72\x9a\x2f\x5a\xb7\x8c\xfd\xe5\x67\xcf\ +\x9e\x3d\x7d\xfe\xf7\xf3\x60\x59\x16\x24\x49\x22\x37\x37\x17\x5b\ +\xb6\x6e\xe9\xd2\xeb\xf5\xa5\xff\x99\x0f\x44\xcb\xe1\xb2\x6b\x07\ +\x07\x07\x0e\xba\xdd\x6c\x11\x49\xc6\xfa\x54\xaa\x94\x3a\x95\x4a\ +\x55\x3b\xb9\x55\x9f\xaf\x16\xb4\x62\x96\x65\xf5\x12\x89\xb8\x4b\ +\x99\xac\xea\x7a\x56\x50\x00\x80\x3b\xa6\xc1\x6d\x9f\x7c\xfa\x71\ +\xe4\xb5\x4d\x45\x91\xfd\x07\xde\x8b\x74\xf7\xdc\xa8\x58\x6c\x8e\ +\xfe\xdb\x7d\x7b\xbe\xf9\xf6\xeb\x48\xd3\x6f\xbf\x36\x05\x82\x7e\ +\x72\xb6\x98\x39\x8f\x64\x3d\x3d\x3d\x95\x8d\x0d\x8d\xe8\xed\xbd\ +\x09\xa7\xd3\x89\xdc\xdc\x9c\x23\xf7\x03\x23\x35\xb3\x9d\xeb\xe6\ +\x92\xc5\x62\x79\xab\xb9\xa9\x19\xa1\x50\x68\x9b\x4e\xa7\x4b\x04\ +\xf0\x54\x63\xcf\x09\x20\x14\x0a\xcd\x0a\x85\x22\xcf\xe1\x70\x20\ +\x29\x29\x09\x94\x54\xda\x45\x10\xc4\xd8\x93\x71\x0c\xeb\xd2\x90\ +\x24\xe9\x13\xc7\x4b\x9e\x6a\xa8\xcc\xcc\xcc\xea\xfd\x07\xf6\x6b\ +\x94\x4a\x65\xdd\x5c\xbb\x6a\xce\x1e\x70\xb9\x9d\x9a\x96\x96\x96\ +\xa6\xce\xce\x4e\x6d\x56\x56\x96\xaf\xa4\xa4\xe4\x15\x45\x52\xf2\ +\x8c\xc3\x47\xab\xe1\xea\x57\x2d\x2d\x2d\x87\x12\x65\x32\xec\xd8\ +\xb9\x33\xf3\xc9\xf1\x65\x2b\x10\xf4\x93\x4e\xc6\xa1\x1d\xf1\xfb\ +\x04\x4f\x8e\xb9\x3d\x0c\x5d\xf5\x79\x65\x24\x45\xad\x8a\x6c\xd9\ +\xfa\x7a\xe4\xf2\xd5\x3f\x8f\x2c\xa5\xc6\xbc\xff\x05\x93\x87\x86\ +\x59\xdf\x8a\x24\x49\x9f\x3c\x31\x11\x0a\x85\x02\x34\x4d\x43\x24\ +\x8a\x1f\xf8\xd7\x01\xe6\x53\x82\x48\x1c\x34\xfd\x35\x54\x4c\x2b\ +\x95\x15\xf1\xf1\xf1\xc6\x94\x94\x94\xda\xa5\xe6\xfa\x7f\xeb\x6f\ +\xd5\xc9\x6c\xfc\xef\x3f\xe9\x87\x00\x00\x00\x00\x49\x45\x4e\x44\ +\xae\x42\x60\x82\ +\x00\x00\x06\x1f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x05\xe6\x49\x44\x41\x54\x58\x85\xed\x57\x5d\x4c\xd3\x57\ +\x14\xff\x95\xb0\x62\xe9\xbf\x2d\xfd\x6e\x6d\xab\x45\x51\xa1\xd0\ +\x39\x98\x9a\x15\xa2\x85\x9a\xa8\xd3\x61\xfc\xdc\xe6\xcb\x7c\x50\ +\xdc\xa6\x7b\x98\xcb\x16\x97\x3d\xb8\x65\xd9\x16\xb7\x07\x74\x9b\ +\x26\x04\x7c\x90\x68\x98\x66\xd3\x30\x34\x9b\xa8\x48\x74\xa2\x41\ +\x13\x04\x05\xb1\xb4\x08\x54\xdb\xfe\xfb\x49\x3f\x59\x0b\xa5\x77\ +\x0f\x0a\x52\x04\x8b\x38\xb2\x97\xfd\x1e\xcf\xb9\xe7\xde\xdf\xfd\ +\x9d\x73\x6e\xce\x05\xfe\x63\x30\xa6\x1b\xd8\xef\xf7\x0a\xac\x56\ +\x6b\x69\x30\x18\xcc\xe1\x72\xb9\x9d\x0a\x85\xe2\x74\x06\x97\x1f\ +\x7a\xd1\x7d\x52\xa7\x73\xb8\x3f\xe8\xa3\xae\x5c\xb9\x52\x57\xf7\ +\x7b\x5d\xd1\xa3\x47\x8f\xa0\x56\xab\xb1\x76\xdd\xda\x32\xaf\xcf\ +\xb3\x5e\x90\x21\xf4\xce\x38\x81\xde\xde\xde\xed\x27\x8e\x9f\x28\ +\x6a\x68\x68\x80\xc7\xe3\x85\x50\x28\x40\x2c\x16\x2b\x92\x48\x24\ +\x1f\x03\xd8\xff\xaf\x11\x08\x86\x03\xcc\x78\x3c\xce\xe4\x71\x32\ +\x12\xa4\xa5\x69\x7a\x75\x77\x77\x37\x3c\x9e\xc7\x97\xf5\x78\xbc\ +\x30\x99\x4c\x70\xb9\x5c\x86\x11\x02\x81\x90\x9f\x49\xd3\xf4\x6a\ +\xaf\xd7\xbb\x94\xa2\xa8\x6e\x85\x42\x71\x96\xcf\x13\x3c\xa3\xce\ +\xa4\x04\xee\x76\xdc\x29\xab\xad\xad\x2d\xff\x7b\x60\x80\xba\xd1\ +\x7c\xfd\x7b\x8d\x46\xf3\xcd\x08\x11\x36\x9b\x6d\x96\x48\x24\x60\ +\x53\xe9\x08\x87\x06\xc0\xa6\xd2\xc1\x66\xb3\xc1\xe5\x72\xee\x01\ +\x80\xd3\xed\x98\x73\xf5\xea\xd5\x63\xe7\xce\x9e\x2b\xb1\x58\x2c\ +\x98\x3d\x7b\x36\x4a\x0c\x25\x5e\x1b\x6d\x5d\x3e\x5b\xa6\xb8\x97\ +\x54\x16\x53\x77\x57\xe9\x67\xfb\x3e\x25\x79\xda\x5c\x32\x3f\x6b\ +\x1e\xd9\x59\xb6\x83\x5c\xbd\x76\xe5\xf0\x88\xdf\xee\xb0\x69\x0e\ +\xfd\x74\x90\xe8\x8b\x57\x90\x45\xd9\x0b\x49\x89\xa1\x98\x54\x56\ +\x55\x10\x1b\x6d\xd5\x04\xc3\x01\xe6\xa5\xcb\x17\x6b\xb6\x6c\xdd\ +\x4c\x44\x62\x21\x01\x03\x44\x28\x12\x90\x12\x43\x31\x39\x53\x7b\ +\xba\xd5\x1f\xf4\x51\x49\x09\x34\x34\x5e\xaa\x29\x2c\xd2\x11\x30\ +\x40\xc0\x00\xc9\xd3\xe6\x92\xca\xaa\x0a\xe2\x0b\xf4\x8f\x06\xdb\ +\x68\xab\xe6\xcf\xfa\x3f\xce\x57\x56\x55\x90\x8b\x0d\x17\x7e\xb3\ +\x3b\x6c\x1a\x00\xf0\xfa\x3c\x82\x1f\x7f\x3e\x44\xe6\x67\xcd\x1b\ +\x8d\x07\x03\x44\xa9\x52\x90\xaf\xbe\xfe\x92\xd8\x68\xab\x26\x69\ +\x0a\xd2\xd3\xd3\x2d\x5c\x2e\x17\xe9\xec\x59\x18\x08\x47\x90\x96\ +\x96\x06\x8a\xc3\xa1\x19\x8c\xa7\x5d\xfb\x44\xca\x35\xe3\x63\x63\ +\xb1\x18\x35\x34\x34\x84\xe1\xe1\xe1\xc7\x06\x06\x00\x02\xc4\x62\ +\x31\x44\x22\x11\x44\xa3\x51\x29\x80\xd1\x34\x4c\x48\x20\x33\x33\ +\xf3\xe8\xa6\x4d\x1b\xf7\xb1\xd9\x6c\x84\xc3\x61\x2c\x5f\xb1\x1c\ +\x4b\x96\x2c\xd9\x35\xbe\x18\x27\x02\x8b\xc5\xa2\x17\x2e\x5c\xd8\ +\x94\x99\x99\x59\xe4\x72\xbb\x10\x1d\x8c\x20\x8d\x39\x0b\x6a\xb5\ +\x1a\x39\x39\x39\x83\x3c\x1e\xaf\x2d\xa9\x02\x32\x89\xdc\x6c\xa3\ +\xad\xb9\x79\x5a\xed\x7b\x91\x68\x44\xa6\x9e\xab\xae\x9e\xa7\x9e\ +\xdf\x98\xec\x70\x00\xe0\xb0\xb9\x83\x36\xda\xba\x6b\xdb\xb6\x77\ +\x3b\x58\x2c\x16\x1c\x0e\x07\xc4\x62\x31\x8a\x4b\x8a\xa1\xd3\xe9\ +\xb6\x8c\x7f\x27\xa6\xfd\x12\x26\x83\x8d\xb6\x6a\x1e\x3c\x78\xb0\ +\xd3\xe9\x74\x1a\x52\x53\x53\x17\xab\x54\x2a\xf0\x78\x3c\x43\x46\ +\x46\x46\xdb\x58\x12\x33\x46\x60\x2c\x91\x96\x96\x96\x8e\xf6\xf6\ +\x76\x84\xc3\x61\xa8\x94\x4a\x2c\x5d\xb6\xec\x93\xac\xac\xac\x23\ +\x1c\x36\x77\x70\x46\x0f\x0f\x86\x03\xcc\x53\xbf\x9e\xec\xdb\xbc\ +\x65\x13\x99\xab\x9e\x43\xa4\x32\x09\xc9\xce\x59\x44\x3e\xf8\xf0\ +\x7d\x72\xbb\xad\x65\x6f\xc2\x62\x7f\xd0\x47\xdd\x68\xbe\x7e\xa0\ +\xb2\xaa\x82\x9c\xa9\x3d\xdd\x3a\xbe\x5d\xa6\x03\x53\x77\x57\xe9\ +\xdb\xef\x6c\x25\x6c\x4e\x7a\x42\x4b\xce\x55\xcf\x21\xdf\x1d\xf8\ +\x96\xd0\x4e\x7b\xd6\x68\x11\x5a\x2c\x96\x6d\xd5\xc7\xaa\xf7\x35\ +\x36\x36\x82\xcf\xe7\x2f\xde\xbd\x67\x77\xb3\x3f\xe8\x93\x4f\xa5\ +\xf2\x27\x83\xdd\x6e\x5f\xdd\xd9\xd9\x89\x70\x68\x20\xc1\xee\xf6\ +\xb8\xd1\x7a\xbb\x15\x81\x40\xc0\x94\x32\x62\xf4\xf9\x7c\x8b\x8d\ +\x46\x23\x8c\xc6\x2e\xf4\xf6\xf6\xa2\xaf\xaf\x8f\x8a\x44\x22\xb2\ +\xe9\x1e\x0e\x00\xa9\xa9\xa9\x21\x26\x93\x39\x61\xa5\x71\xb9\x5c\ +\x10\x12\xc7\x28\x01\xa1\x50\xd8\xa4\x2b\xd4\xa1\xb0\x50\x87\x82\ +\x82\x02\x68\xb5\x79\xb7\x58\x2c\x96\xe5\x65\x08\xc8\xe5\xf2\xfa\ +\xfc\xfc\x7c\x88\x45\xa2\x04\xbb\x52\xa1\xc4\xa2\xec\x45\x10\x8b\ +\x25\xc2\xd1\x14\x68\xb2\x73\x7f\xe9\x32\x1b\x43\x7a\xbd\xbe\x8c\ +\xa2\x28\xf3\x82\x05\x0b\x0e\x71\x29\xde\x4b\x55\xa9\x48\x24\x6a\ +\xda\xb0\x71\x03\xa2\x83\x51\xb4\xb5\xb6\x61\x60\x60\x00\x22\x91\ +\x08\x86\x95\x06\xac\x5a\xb5\xea\x23\x41\x86\xd0\x3b\x63\x6d\xe8\ +\x74\x3b\xe6\xb8\x5c\xae\x12\x8f\xc7\x73\xcc\x6e\xb7\xc3\xe9\x74\ +\x22\x1e\x8f\x43\x2a\x95\x5a\xb4\x5a\xed\xfe\xdc\x9c\xbc\x6a\x60\ +\x06\xde\x81\x60\x38\xc0\x34\x9b\xcd\x7b\x2e\x5f\xbe\x5c\xde\x79\ +\xaf\x13\xfd\xfd\xfd\x10\x8b\xc5\x28\x28\xc8\xc7\x1b\x3a\x1d\x54\ +\x2a\x95\x70\xec\x5c\x30\xad\x89\xe8\x79\xe8\xeb\xeb\xdb\x56\x53\ +\x53\x53\x7e\xb6\xee\x2c\xee\xdf\x37\x02\x00\x84\x42\x01\x8c\x46\ +\x23\x98\x69\x69\x90\x48\x24\x02\x00\x53\x1b\xdb\xba\xcc\xc6\xd2\ +\x6b\xd7\xff\x2a\xef\xb5\xf4\x14\x4d\x65\x7d\x20\xe4\x67\x56\x56\ +\x55\x90\x82\xd7\xf3\xc9\x2b\xb3\x52\x13\x7a\x5f\x28\x12\x90\x9d\ +\x65\x3b\x9e\x79\x80\x26\x55\xa0\xcb\x6c\x2c\x3d\x7a\xf4\x68\xdd\ +\xcd\xe6\x9b\x58\xf7\xd6\xba\xbd\x36\xda\x9a\x9b\x6c\x9a\x89\x44\ +\x22\x32\xab\xcd\x86\x87\x0f\x1f\x62\x28\x1a\x4b\xf0\x79\x3c\x5e\ +\xb4\xb7\xb7\xa3\xa7\xa7\x67\x3b\x80\x83\x23\xf6\x94\xf1\x9b\x8c\ +\x20\x1c\x0e\x67\xf5\x3c\xe8\x81\xc9\x64\x42\xb7\xb9\x1b\xa1\x50\ +\x68\x7e\x32\x05\x08\x21\xcc\x78\x3c\xfe\xd4\x30\xae\xc2\x52\x52\ +\x52\x90\x92\xc2\x48\xe8\xac\x49\x15\x90\x4a\xa5\xf5\xa5\xeb\x4b\ +\x43\x4a\x95\x92\x32\x18\x0c\x4d\x62\xb1\xb8\x69\xa2\x75\xfd\x7e\ +\xaf\x60\xa4\xa8\x58\x2c\x96\x45\xa5\x54\x42\x2e\x97\xc3\xe5\x72\ +\x3f\x25\x41\x00\x91\x48\x08\xa5\x52\x09\x99\x4c\x7e\x3e\xd9\x45\ +\x46\xe1\x0b\xf4\x53\x23\x73\xde\x44\xfe\xa6\x1b\xd7\xca\x2b\xab\ +\x2a\x12\xf2\xda\x7e\xef\xee\xf6\xcf\xbf\xd8\x47\xf2\xb4\xb9\x84\ +\xc7\xe7\x10\x36\x27\x9d\x48\x65\x12\xb2\xe6\xcd\xd5\xa4\xfa\xf8\ +\xb1\xa8\xc3\x45\x67\x4d\x49\x01\x00\x78\xf2\xd3\x99\x30\xef\xfe\ +\xa0\x8f\x3a\x75\xf2\xe4\xde\xfa\xfa\x0b\xe0\x0b\x04\xbb\xf1\x24\ +\xaf\x79\x1a\x6d\x75\xeb\x9d\xdb\x94\x54\x2a\x3d\xdc\xd1\xde\x81\ +\x40\x20\x00\x81\x40\x00\x7d\xb1\x9e\xd6\xeb\xf5\x2b\xa5\x62\x99\ +\x79\xca\x04\x9e\x07\x1e\x27\x23\xd4\x74\xe3\xda\x41\x00\x7b\xb3\ +\xb3\xb3\x7f\x18\xeb\x7b\xed\xd5\xfc\x23\x76\x87\xad\xd1\xed\x76\ +\x17\x0d\x0f\x0f\x33\x39\x1c\x8e\x99\xcf\xe7\xdf\x7a\xd1\x5f\xd3\ +\x94\x30\xa5\x31\xfb\x7f\x3c\x07\xff\x00\xcc\x9c\x97\xa4\x0a\x60\ +\xdb\x5a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x06\x3d\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x06\x04\x49\x44\x41\x54\x58\x85\xd5\x96\x5b\x50\x1b\x55\ +\x18\xc7\xff\xc4\x98\x4d\xb2\xb9\x90\x84\x10\x92\x96\x00\xcd\x72\ +\x49\x20\xd3\x56\x2c\x17\xc1\x14\xaa\x95\xb1\x45\xc5\xc1\xd6\xe9\ +\x74\xa6\xf6\xc1\x8e\x97\x3e\x38\xfa\xa0\x33\x4a\x9f\x74\xd4\xf1\ +\x3e\xb5\x54\xc5\x07\x0b\x75\xda\x07\xed\x38\x40\x6f\xe0\x4c\xab\ +\xd8\xa2\x40\x68\x83\x2d\x04\x0a\x21\x04\x09\x49\xba\x90\x6c\xc8\ +\xc2\x90\x48\xbb\x3e\xb4\xa4\x50\x28\x25\xd4\x3a\xe3\x6f\x66\x1f\ +\xf6\x3b\xdf\xf9\x9f\xff\x9e\xfd\xf6\x3b\x0b\xfc\xdf\x09\x86\x18\ +\xc9\xbd\xcc\x8f\x5b\xe9\x44\x3f\x33\xae\xec\xe9\xe9\xa9\x72\x38\ +\x1c\x7b\xe5\x72\x59\x57\x4e\x8e\x79\x1f\xb5\x26\xbd\xe9\x5e\xcc\ +\xc4\xc4\x2f\x2d\x67\x6a\xb6\x3f\xbf\x8d\xcb\x31\x67\x73\x1b\x4b\ +\x2c\xdc\xa7\x9f\x7f\xc2\x39\x5d\x83\xa5\xff\xc9\xe2\xc1\x10\x23\ +\xf9\xb2\x7a\x3f\x97\x92\xaa\xe7\x10\x07\x8e\x94\x8a\xb9\xe7\xb6\ +\x55\x72\xbf\xb7\xb5\x7e\x18\xab\x16\x7f\xa5\x26\x08\x81\x00\x7c\ +\xfe\xad\xe9\x3c\x1e\x0f\x42\xa1\xd0\x37\x37\xc7\xe1\x1c\x28\xf3\ +\x78\x3c\x65\x3c\x1e\x2f\x92\x9a\x9a\x5a\xa7\x4b\x5a\xd5\xb3\x6c\ +\x03\x57\xc7\x7c\x7a\xbb\xbd\xa7\x8a\xa6\xc7\x8a\x8c\x46\xe3\x47\ +\xd9\xc6\x9c\xda\xd9\x31\xb9\x34\x9e\xfd\xa3\xfd\xf7\x77\xb7\x6c\ +\xdd\xb2\xaf\xa3\xbd\x03\x4a\xa5\x12\x8f\x3f\xfe\x18\x34\x1a\x4d\ +\xb4\x06\x2e\x76\x5d\x78\x7d\xff\xfe\xfd\x9f\x75\xd9\xba\x20\x14\ +\x0a\x51\xf8\x48\xe1\x5b\xdd\xf6\xcb\xbb\xe7\xea\x2c\xc9\x89\x53\ +\xc7\xcf\x6c\xdb\xfe\x1c\x57\x50\x98\xcf\xbd\xb3\xef\x6d\xae\xa7\ +\xb7\x7b\xc7\xdc\xf1\x09\x36\x28\xf8\xf3\x72\xd7\x9e\xfa\xc6\x9f\ +\xda\x7f\x3b\xdf\x72\xc0\xe3\x1b\x35\xcd\x8e\x79\xaf\x7a\xa8\x8f\ +\x3f\xfd\x88\x33\x50\x6b\x38\xc4\x81\x43\x1c\xb8\xdc\x87\x1f\xe2\ +\x0e\xd5\x7d\x17\xf6\x33\xe3\xca\xbb\xee\x40\x20\xe8\x57\x1e\x3c\ +\x78\xb0\xb4\xb5\xb5\x15\x6e\xf7\x28\x44\x22\x11\x2c\x16\xcb\x0e\ +\x00\x47\x67\x73\x64\x12\x79\x04\xc0\xb7\x37\xaf\x79\xb0\x2c\x6b\ +\x70\x0c\x38\xe0\xf5\x79\xa3\x31\x9f\xcf\x07\xa7\xd3\x29\x98\x9e\ +\x9e\x4e\x02\xe0\x5f\xd2\x00\x9f\xcf\x67\x29\x8a\x1a\x36\x9b\xcd\ +\x7a\x85\x42\x81\xcc\xcc\x4c\x24\x26\x26\x9e\xbd\xcb\xa6\x45\x11\ +\x8b\xc5\x7f\x25\xeb\x93\xa1\x52\xaa\x30\xc9\x4e\x41\x28\x26\xa0\ +\x54\x2a\xb1\x4a\xa7\x5b\xb8\xd6\x62\x02\x52\x52\x16\x19\xf5\xba\ +\x9f\xe4\xf3\xf9\x3f\x8c\x8f\x8d\x99\x32\x32\x33\xbe\x4d\x4b\x4b\ +\x5b\xf0\xa4\x77\x42\x2a\x95\x0e\x58\x2c\x96\xea\x61\xd7\xf0\x5e\ +\xab\xd5\x0a\x82\x20\x50\x54\x5c\x84\x0d\x79\x79\x6f\xdc\x5e\x88\ +\x4b\x36\xa2\x09\x36\x28\x98\x99\x99\x91\x28\xe3\x55\xfe\xa5\xf2\ +\x16\x83\x99\x08\x48\x9c\x4e\xe7\x1e\x87\xc3\xf1\x22\x41\x10\x81\ +\xd4\xd4\xd4\xda\xe4\xe4\xe4\xa3\xf1\x32\x05\x1b\xab\xd6\xbf\x46\ +\x30\xc4\x48\x6e\x6f\xdd\x2b\x6e\xc5\xb1\x10\x9a\x9c\x10\xb8\x5c\ +\xae\x1d\xbd\xbd\xbd\x6f\x46\x22\x11\xa5\x5e\xaf\x3f\x9a\x91\x91\ +\xf1\x45\x62\x82\x66\x78\x81\x81\x40\xd0\xaf\x9c\x9e\x9e\x4e\x92\ +\x48\x24\x03\x52\x52\x16\xf9\x37\x0c\xb4\x9c\xfb\xf5\xc0\xe1\xba\ +\xc3\x7b\xdb\xda\xda\x70\xfd\xfa\x75\xe8\xf5\x7a\x54\x54\x3c\x83\ +\x8a\x67\x9f\x4d\x99\x57\x84\xa3\x5e\xb7\xa9\xbe\xbe\xfe\xa2\xcb\ +\xe5\x12\x14\x16\x16\x1e\x63\x26\x02\xbb\xef\xf5\x9d\x39\x5d\x83\ +\xa5\x35\x35\x35\x7b\x4f\x9e\x3c\x09\xb7\x7b\xf4\x46\x6c\xc8\x09\ +\x91\x48\x04\xa3\xc9\xe4\x8a\x1a\x08\x4d\x4e\x08\xda\xda\xda\xaa\ +\x1a\x1b\x1a\x05\x36\x9b\x0d\x53\x53\x53\x95\x14\x45\x55\x03\x58\ +\xf6\xe7\xb7\x18\x0c\xc3\xac\xbb\xd2\x77\x05\x4c\x90\x89\xc6\x26\ +\xd9\x29\xf4\xf5\xf5\x61\x64\x64\x04\xbc\xd9\xa0\x94\x94\x45\x54\ +\x2a\x55\x87\x5a\xad\x46\x7a\x7a\x3a\x56\xaf\x5e\x0d\x91\x48\xe4\ +\x5b\x54\x35\x06\x04\x02\x81\x5f\xa1\x50\xdc\xb8\xb9\xf9\xc2\xf9\ +\x02\x1e\x24\x12\x09\x48\x92\x9c\xdf\x07\x28\x8a\xaa\x7e\xf9\x95\ +\x97\x23\x0c\x13\x58\xab\xd7\xa7\x1c\xd5\x6a\x74\x0b\x0e\x8f\x58\ +\x49\x48\x48\x38\x5f\xfc\x68\x31\xfa\xfb\xfb\xd1\xdd\xdd\x0d\x8e\ +\xe3\xa0\x56\xab\xb1\xb1\x64\x23\xb2\xb2\xb2\xe6\x1b\xb8\x59\x74\ +\xd5\xf7\xba\xe8\x5c\x84\x42\xa1\x37\x2f\x2f\x0f\x91\x70\x18\x1d\ +\x1d\x56\x70\x1c\x07\x2a\x9d\x42\x49\x49\xc9\x37\x5a\xad\xf6\xb5\ +\xfb\xf6\x19\x0e\x0e\x39\x4a\xfb\xfb\xfb\x5f\xa7\x69\xba\x88\xcf\ +\xe7\x2b\xb5\xda\x24\xc8\x64\x72\x00\x78\x4f\xa3\xd1\x1c\xd3\x25\ +\xad\xb2\x01\xf7\xa9\x0f\x74\xdb\x2f\xbf\xd0\xd0\xd0\x70\xa8\xb9\ +\xa9\x19\x34\x4d\x43\x2a\x95\xa2\xa0\xb0\x00\x15\x15\xcf\x60\xdd\ +\xba\xf5\x72\xb9\x34\x7e\x62\x36\x77\xc5\x3f\x24\x77\xc2\x7b\xd5\ +\x43\x35\xd4\xd7\x1f\xfa\xf1\x87\x1f\xd1\xd9\x79\x21\x1a\xa7\x69\ +\x1a\x62\xb1\x18\x5a\xad\xae\x1c\xc0\x91\x65\x19\x18\xf5\xba\x4d\ +\x56\xab\xb5\x26\x39\x39\xf9\x18\x45\x51\xd5\x73\x1b\xd3\x78\x80\ +\x4e\x1a\x19\x71\x57\x86\x42\x21\x03\x8f\xc7\x8b\x68\xb5\xda\xa6\ +\xb4\x94\x35\x67\x7d\x3e\x5f\x59\x7b\x7b\x07\x86\x86\x86\xe6\x69\ +\x0d\x0c\x38\xd0\x69\xed\xc4\xa6\x4d\x9b\x5e\x5a\xb6\x01\xbb\xdd\ +\x5e\xf5\xf5\x57\x5f\x17\x15\x3f\x5a\x5c\xb4\x6b\xd7\xae\x33\x00\ +\xba\x00\x60\x60\xb0\xbf\xec\xf0\xe1\xef\x4f\x37\x37\x35\x63\x64\ +\x64\x04\x24\x49\x62\xed\xda\xb5\x6f\x9d\x38\x75\xfc\xac\xcf\xe7\ +\xf3\x07\x02\x01\x4c\x87\xa7\x17\xe8\x85\xc3\x61\x5c\xbb\x76\x8d\ +\x98\x1b\x5b\xd2\x80\x46\xa3\x69\x2a\x29\x2d\xd9\x91\x91\x91\xde\ +\x21\x16\x8b\xff\x9a\xdd\x95\xe3\x8d\x8d\xa7\xeb\x6a\xeb\x70\xe1\ +\xc2\xc5\x68\xee\xf0\xf0\x30\xfc\x7e\x7f\xe9\x53\x4f\x3f\x05\x7d\ +\x8a\x1e\x8a\x78\x05\x26\xd9\xa9\xe8\xb8\x4a\xa5\x84\xc1\x60\x80\ +\x5a\xad\xfe\x79\xd9\x06\x72\x4c\xe6\x5a\xef\x55\xcf\x79\xa1\x50\ +\xe8\x9d\x6d\xc9\x0e\x87\xe3\xd5\xa6\xa6\x66\xf4\x5d\xe9\x9b\x97\ +\xeb\x76\x8f\xa2\xb3\xb3\x13\xeb\x1f\x5a\x8f\xfc\xfc\x7c\xd0\x34\ +\x8d\x73\xbf\x9d\x03\xcb\xb2\x20\x08\x02\x66\xb3\x19\x96\x8d\x16\ +\xe8\x74\xba\x23\x73\xe7\xdd\xb5\x08\x93\x12\xb5\x03\x73\xef\x19\ +\x86\x59\xe7\xf1\x78\xe6\x3d\x1d\xe2\x00\x70\x00\xc3\x30\xf0\xfb\ +\xfd\x28\x2f\x2f\x87\x5a\xad\x86\xd9\x6c\x86\x73\xd0\x09\x55\x82\ +\x0a\x1b\x36\x3c\x4c\xe7\xe5\xe5\x3f\xa1\x51\x27\xd9\x63\x32\x70\ +\x3b\x04\x41\x78\x65\x32\x19\x1e\x24\xf8\xf8\x3b\x3c\x13\x5d\x1c\ +\xb8\xf1\x6b\x4e\x92\x24\x54\x2a\xd5\xfa\x94\x94\x14\xbb\xd1\x68\ +\x34\x4e\x4e\x4e\x9a\x48\x92\xec\x11\x89\x44\x6e\x85\x5c\x49\xdf\ +\xae\x17\xb3\x01\x9d\x4e\xd7\x98\x99\x95\x59\x69\xb3\xd9\xe0\xf5\ +\xde\x3a\x2a\x08\xe1\x83\x30\x18\x0c\xc8\xca\xca\x02\x49\x92\x83\ +\x32\x89\x3c\x0c\xc0\x76\xf3\xba\x23\x0f\xc4\x6a\xe0\xfd\x0f\xde\ +\x77\x90\x24\x99\x39\x3e\x3e\x6e\x62\x59\x16\x33\x33\x7f\x43\x26\ +\x95\x22\x3b\x3b\x07\x5b\xcb\xb7\x62\xf3\xe6\xcd\x3b\x57\x69\x57\ +\x5b\x97\xab\xb7\xa2\x4e\x18\x0c\x31\x92\x4b\x97\x2e\x85\x5a\x5a\ +\x5a\xe0\x1c\x74\x42\x4c\x8a\x91\x9b\x9b\x8b\x82\x82\x82\x9d\x19\ +\x54\xe6\x91\xbb\x2b\xdc\xe2\x1f\xa2\x0a\x59\xa4\x7e\xcb\xf8\xd5\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x06\x4f\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x06\x16\x49\x44\x41\x54\x58\x85\xe5\x56\x5b\x4c\x1b\x67\ +\x1a\x3d\x86\xda\x1e\x7b\x98\xf1\xc4\x0c\xb6\x63\x0c\x2c\xb1\x0d\ +\x94\xcb\x54\x80\x89\x92\x3a\x49\xa1\x4e\xb4\xa1\x0f\x5d\x29\x17\ +\xa9\x97\x54\xaa\x36\xda\xae\xda\x97\xec\x43\xd5\xa7\xf6\xa5\x7d\ +\xea\x45\x15\xdd\x55\xd2\xaa\x95\xa2\x44\x4d\x5a\x15\x54\x09\x50\ +\xb2\xdb\x15\x85\xa4\x17\xb2\x84\x0d\xb4\xb6\x81\x32\x60\xf0\x96\ +\xb5\xcd\x18\xcf\xf8\x36\x36\x0d\x0d\x61\xfa\x90\x42\xc1\x14\x92\ +\x90\xec\x6a\xa5\x3d\xd2\xff\xf4\x7f\xe7\xff\x8e\xbe\xcb\x99\x01\ +\xfe\xdf\xa1\xba\x17\x72\x44\x08\x73\xd9\x6c\xb6\x92\xa6\x69\x9f\ +\xb9\xc8\xc2\x6f\xe5\x8d\x07\xb6\x9a\xdc\xeb\xff\xf6\xa5\x33\x67\ +\xce\xbc\x3e\xf3\xfd\x0c\x1a\x1a\xea\x11\x11\xc2\x0f\x59\x2d\xc5\ +\xbe\xad\xbe\x77\x57\x90\xb3\x69\xed\xfb\x1f\xbc\xa7\x34\xba\x1a\ +\x14\xb3\xc5\xa4\x1c\x3e\x72\x48\xf9\xaa\xff\xcb\x0f\xb7\xf2\xd6\ +\x96\x2b\x00\x00\xd9\x6c\x16\x99\x6c\x06\xf1\x78\x1c\x37\x16\x6f\ +\xd0\xb9\xf7\x89\x54\x9c\x95\x24\xe9\x61\x95\x4a\x85\xc2\xc2\xc2\ +\x4b\x0c\xbd\x4d\xbe\x2b\x01\x89\x54\x9c\xcd\x64\xe4\x4a\x9a\x36\ +\xf8\x0c\x14\xb3\x42\xa6\x48\x7a\xe1\x1b\xef\xf0\x2b\x87\x0e\x1f\ +\x7a\x2d\x30\x19\xc0\x9e\xbd\x7b\x50\x55\x59\xf5\xca\x6a\xee\x6c\ +\x34\xc2\x75\xb4\xb7\x7b\xaf\x5d\x1b\x42\x5e\x5e\x1e\x3c\xfb\x3d\ +\x72\x34\x26\x34\xe5\xce\xca\x86\x02\xe6\xc4\x68\x79\x6f\x6f\xef\ +\xa0\xdf\xef\x67\x5d\x2e\x17\x1f\x4f\x4a\x7b\x8c\x4c\xa1\xb8\x7c\ +\x6f\xb7\xdb\xdf\x3c\x7e\xfc\xb8\x2f\x93\xc9\x54\x15\x15\x15\x7d\ +\x96\xdb\x7f\x9e\x1f\x7f\xb9\xb3\xb3\x0b\x57\xaf\x5e\x85\x5a\xad\ +\x46\x3c\x1e\xa7\x6c\x36\xdb\x09\x00\x2f\xdc\x91\x80\x70\x38\xfc\ +\x74\xfb\x27\xed\xec\xe0\xe0\x20\xa2\x42\xb4\xb2\xbc\xbc\xfc\x28\ +\x80\x77\x97\xef\xe9\x02\xc3\x02\x80\xee\x9f\xcf\x1a\xa4\xe4\x24\ +\x75\xe1\xc2\x85\xa3\x13\x13\x13\x90\xa4\x38\x00\x20\x14\x0a\x21\ +\x16\x8b\x3d\x9a\xce\xa4\xb4\x3f\x73\x01\x00\x79\x1b\x09\x60\x18\ +\xe6\x5a\x6d\x5d\x2d\xaa\xaa\xaa\x60\x77\xd8\x41\x92\x64\x70\xa3\ +\xd8\x5c\x18\x28\x46\xb6\xd9\x8a\x3b\x2a\x2a\x2a\x60\xb1\x98\x51\ +\x5a\x5a\x82\xea\xea\x6a\x98\x4c\xa6\xcf\x56\x27\x07\x6e\xe3\x03\ +\xfe\x51\xdf\x89\x50\x28\x74\xac\xb4\xb4\xf4\x74\xcd\x83\xb5\xef\ +\x6e\x16\x9b\x8b\x39\x31\x5a\x7e\xf9\xf2\x65\xef\xc0\xc0\x00\xa5\ +\xd1\x68\xe0\x76\xbb\x79\xb7\xdb\xbd\xa6\x8d\xb7\x15\x70\xaf\x48\ +\xa6\x13\x94\x28\x8a\x2d\x79\x79\x79\x3f\x16\x16\x16\xf6\xaf\x1e\ +\xe4\xff\x19\xfc\x47\x2b\xb0\x1a\xc9\x74\x82\x4a\x24\x12\xee\xa5\ +\xa5\x25\x0d\x45\x51\x7e\x13\x6b\x0e\x02\xf7\x68\x44\x77\x8a\x88\ +\x10\xe6\x3a\x3b\x3b\xbd\xfd\x5f\xf7\x43\x51\x14\xd4\x71\x75\x18\ +\x1b\x1f\x3d\x5e\x5d\x55\x73\x7a\x4d\x60\x4a\x4e\x52\xfe\x51\xdf\ +\x89\xaf\xfa\xbf\xfc\x30\x22\x84\xb9\xfb\x91\x3c\x25\x27\xa9\x8e\ +\x4f\xdb\xd3\x8f\x34\xef\x53\x0a\x59\xa3\x02\x15\x94\x86\xc6\x7a\ +\xe5\x2f\x27\xff\xac\xcc\x89\xd1\xf2\x35\x6b\x28\x49\x92\xfb\xe2\ +\xc5\x8b\x6d\x67\xcf\x9c\x3d\x36\x3a\x3a\xda\x76\x3f\x04\xcc\xcf\ +\xcf\x97\x4f\x4e\x4e\x52\x3c\xcf\xaf\x78\x02\x3f\xc1\xc3\xfb\xad\ +\x17\x89\x44\x7c\x7a\x4d\x0b\xf4\x7a\x7d\xb0\xac\xac\x0c\x2a\x95\ +\x0a\x2c\xcb\xf6\xdd\x0f\x01\xf9\xf9\xf9\xb2\x5e\xaf\x47\x41\x41\ +\x01\x80\x28\x00\x80\x2a\xa0\x40\x16\x90\xa0\x28\x7a\xed\x0c\x58\ +\x4c\xdb\xf9\x78\x52\x2a\xba\x7e\xfd\xba\x95\xa2\xa8\x2d\x7d\xdf\ +\x73\x61\x62\xcd\xc1\xfe\x7f\x7c\x7d\xba\xb9\xb9\xf9\xf7\x04\x41\ +\x60\x71\x71\x11\x35\x35\x35\xd8\xbd\x7b\x37\x74\x3a\x9d\xf9\xbf\ +\xb2\x05\xc9\x74\x82\xf2\xf9\x7c\xa7\x86\x87\x87\x8f\xdd\xbc\x79\ +\x13\x4e\xa7\x33\xe5\x72\xb9\x3c\x56\x4b\xf1\xd0\x86\x02\x02\xd3\ +\x93\x8f\x4f\x4d\x4d\xbd\x24\x8a\xa2\x9b\x20\x08\x71\xc7\x8e\x1d\ +\xef\xd8\x4a\x6c\xe7\x8b\x8c\xa6\x3b\xb6\xe4\x5c\x44\x63\x42\xed\ +\xd2\xd2\x92\x56\xa7\xd3\x05\x18\x7a\x5b\x0a\xd8\xc0\x07\x7c\x23\ +\xde\x13\x9d\x9d\x9d\x6d\x97\xfa\x2e\x41\x92\x24\xa8\xd5\x6a\xd4\ +\xd7\xd7\xa3\xf5\xb1\x56\x71\xef\xde\xbd\x3b\x97\x77\xf8\x36\xc9\ +\x2a\x83\xc1\xe0\xf3\xa2\x28\xb6\xd0\x34\xed\x73\x38\x1c\xcf\x59\ +\x2d\xc5\x3f\xe4\xc6\xad\xf3\x81\x88\x10\xe6\xce\x9d\x3b\xd7\xd6\ +\xd1\xde\x81\xe9\xe0\x34\xb2\x99\x79\x00\xb7\xbe\x66\xe9\x74\x9a\ +\xdd\x66\xdc\xd6\x06\xe0\x77\x9b\x25\x9f\x8d\x46\xb8\x9e\x9e\x1e\ +\x6f\x77\x57\x37\x42\xa1\x10\x18\x86\xe1\x3c\xfb\x3d\xc7\x26\x02\ +\xfc\xb3\x15\x8e\xca\xb3\x9b\x2a\xef\xfb\xa2\xb7\xeb\xf0\x91\x43\ +\x0a\x54\x58\x77\x1c\x4e\xbb\xf2\xd6\xdb\x6f\x2a\xcb\x1e\x21\x25\ +\x62\xd6\xef\x43\xff\x6a\x89\x08\x61\x2e\x9d\x49\x69\x81\x5b\xbf\ +\x6b\x7f\xfb\xfb\x5f\xff\x79\xb0\xf5\xb7\x2b\x7b\x4f\x52\x7a\xa5\ +\xd1\xd5\xa0\xbc\xff\xc1\x7b\x8a\x30\x37\x5b\xbb\x61\x05\xe4\x6c\ +\x5a\xdb\xd7\xd7\x5b\x37\x3b\x3b\x0b\x2d\xa1\xc6\xc2\xf5\x1b\xb7\ +\x2e\x54\x00\x14\x40\x96\x65\x44\xa3\x51\x48\x92\xd4\xd2\xf7\x45\ +\xef\x6b\x27\x4f\x9e\x7a\x7c\xc4\x3f\x02\xa3\xd1\x88\x86\x86\x7a\ +\x8c\x7e\x37\xf2\x82\x2c\xcb\xfd\x81\x40\xc0\x15\x08\x04\x56\xf6\ +\x3e\x9b\x99\xc7\xcc\xcc\x0c\x46\xc7\xc6\xd0\xdc\xd2\xd2\x08\x60\ +\xe4\x57\x05\x50\x24\xbd\xf0\x79\x5f\x0f\xcf\x30\x4c\xf9\x4a\xf2\ +\x65\xa8\x00\xb5\x5a\x0d\x82\x20\x30\x35\x15\x68\xfb\xe8\xfc\xc7\ +\x18\x18\x18\x80\x14\x97\x00\x00\x57\xae\x5c\x41\x74\x6e\xee\x94\ +\xc7\xe3\x81\x56\xa3\x01\x41\x10\x6b\xc4\x6b\x34\x1a\x68\xb5\x5a\ +\xa8\x54\x6b\xc7\x6e\xdd\x0c\x58\xad\xd6\x0e\xee\x21\xee\xe0\xc8\ +\xc8\x08\x22\x42\x18\x8b\x37\x96\x00\x05\x20\x0b\xf4\x70\x3a\x9d\ +\x28\xb1\xd9\x30\x36\xf6\x1d\x86\x86\x86\x30\x33\xf3\xef\x15\x9e\ +\xcf\xe7\x87\xd1\x68\x44\x45\x45\x05\x4a\x4a\x4b\x51\x5d\x5d\x0d\ +\x51\x14\x21\x67\x64\x10\x5a\x02\x0e\x87\x03\x1c\xc7\xc1\x60\x30\ +\xf4\x6f\x2a\xa0\xa4\xa4\xe4\xfc\x81\x03\x07\x8e\x8a\x31\xf1\xe0\ +\xe0\xe0\x20\x24\x49\x82\x4e\xa7\x83\xd3\xe9\x44\xeb\x63\xad\xb0\ +\x3b\x1c\x18\xe7\x79\xa4\x52\xa9\x5c\x2a\x04\x41\x40\x2a\x99\x44\ +\x53\x53\x13\x9e\x7a\xfa\x49\x30\x0c\x03\x49\x92\x90\x9f\x9f\x8f\ +\xfd\xfb\x3d\xd8\xb5\x6b\xd7\x13\x26\xd6\x1c\xd8\x54\x00\x45\xd2\ +\x0b\xf1\xa4\xf4\x8c\x5e\xaf\x7f\x75\xe7\xce\xa6\xe7\x67\x05\x01\ +\x24\x49\xc2\xe1\xb0\x07\x6b\x6b\xeb\xfe\xa4\x52\xa9\x60\x30\x18\ +\xba\x56\x4a\xbc\x0a\x24\x49\xc2\xc0\x30\x60\x59\x96\xd8\xb7\xef\ +\x11\x43\x59\xd9\x6f\x5e\x4c\xa7\x53\x8d\x34\x6d\x18\x32\x9b\xcd\ +\x9f\x58\x2d\xc5\x43\xeb\x48\x9b\x21\x91\x8a\xb3\x11\x21\xcc\x45\ +\x63\x42\xe5\xf2\x94\xa7\xe4\x24\xd5\x7d\xa1\x6b\xbc\xe5\xd1\x66\ +\x85\xa4\xf4\x2b\x1b\x62\x2b\x29\x56\x9e\xfb\xe3\x1f\x94\x6f\xbc\ +\xc3\x6f\xdc\x4d\x8e\x2d\x59\xb1\x30\x37\x5b\xd9\xdd\xd5\x35\xde\ +\xd3\xf3\x39\xa6\xa7\xa7\xa1\xd5\x6a\xc1\x71\x1c\x8e\x1c\x3d\x32\ +\xd4\xd4\xd4\xe4\x31\x50\xcc\xfa\xfe\xdc\x4f\x01\x00\x10\x4f\x4a\ +\x2c\xcf\xf3\xb1\x48\x24\x02\xbd\x5e\x0f\xbb\xdd\x8e\xed\xdb\xb7\ +\x13\x14\x49\x2f\xdc\x9e\xfd\x0b\x7e\x02\x0c\x57\x94\xa9\x04\x56\ +\x57\xa4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x06\x6c\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\ +\x00\x00\x06\x33\x49\x44\x41\x54\x58\x85\xed\x57\x5d\x50\x1b\xd7\ +\x15\xfe\x84\xc1\x8b\x57\xd2\x4a\xc2\xe8\x17\x24\x81\xc0\x08\x61\ +\xc9\x11\xc1\xe0\xe0\x74\x5c\x08\xd3\x60\xf2\x83\xeb\x71\xd2\x76\ +\xfc\x10\x33\x99\xb4\x71\x5f\xda\x87\x24\x7e\xc2\x33\xe9\xd8\x4f\ +\x75\xdc\xb4\x6f\xd4\x9e\x26\x8c\x3b\x49\x4a\x33\xf6\x64\x1a\x4f\ +\x22\x07\x27\x9d\x26\x19\x7b\x60\x44\x64\x59\x60\x7e\x24\x11\xc0\ +\x92\x90\x56\xab\xbf\x95\x56\x42\x06\x73\xfb\xe0\x84\x82\xf9\x29\ +\x98\xf6\xa1\x33\xfd\x66\xee\xcc\xee\x9e\x3d\xe7\x7c\xf7\xdc\x73\ +\xcf\x3d\x17\xf8\x3f\xfe\x57\x91\xe4\x13\x8c\xcb\xfd\xcd\x99\x6b\ +\xfd\x0e\xd7\x84\x6f\xfc\xf8\xa3\xda\x29\x7c\x54\xc5\x60\x30\xd8\ +\xd5\xd7\xd7\xd7\xed\x9d\xf0\xa2\xa5\xb5\xe5\xbd\xd9\x48\xe8\x8e\ +\x56\xad\xbb\xb5\x55\x3b\x05\x8f\x4a\x80\xe7\xf9\x7a\xef\x84\x17\ +\x6e\xb7\x1b\x81\x40\x00\xb9\x5c\xae\xfc\xe1\x7f\x52\xe9\x24\xc3\ +\x72\x11\x53\x2a\x9d\x64\xd6\xb3\xf3\xc8\x11\x30\x1a\x8d\x7f\x68\ +\x6f\x7f\xba\xab\xc6\x5c\x83\xe6\xe6\xe6\x80\x42\xa1\x18\x58\x2e\ +\x0f\x85\x83\x76\x87\xc3\xe1\xf2\xf9\x7c\xa8\xaa\xaa\x42\x28\x1c\ +\xac\xd7\x69\xca\xb6\x16\xa1\x09\xdf\xf8\xf1\x6b\xfd\x0e\xd7\xe4\ +\x94\xff\xb9\xb5\xe4\x61\x76\xd6\xe2\xff\xd6\x77\x2c\x9e\x8c\x29\ +\x1f\x96\x7d\xfe\xf7\xeb\xff\x78\xe6\xd9\x0e\x62\xac\x30\x90\x67\ +\x9e\xed\x20\x57\x3f\xf9\xd8\x9f\x16\x78\x6a\xd3\xce\x59\x2e\x62\ +\xba\x70\xb1\x87\xbc\xf0\xe2\x31\xd2\xf7\xe1\x5f\x48\x22\x15\x5f\ +\xe5\x64\x3d\xf0\x99\x14\xf5\xe1\xe5\xbf\x92\x7d\x8f\xd9\x08\x44\ +\x20\x8f\x37\xd4\x93\x3f\xbf\x77\x89\xac\xb5\x14\xeb\xe6\x00\x45\ +\x51\x5c\x45\x65\xe5\xc0\xfe\xc6\xfd\xd0\xeb\xf5\xbd\x85\x85\x85\ +\xfc\x66\x09\x30\x12\x59\x7e\xcf\x9e\x3d\xa7\x0f\x1e\x3c\x88\xc3\ +\x87\xdb\xd1\xd2\xda\x02\xab\xd5\x7a\x56\x26\x95\xaf\xb2\x21\xda\ +\xc8\x50\x22\x15\x57\xe6\x72\xb9\x32\x9a\xa6\x27\xe5\x8c\x62\xd3\ +\x04\x00\x20\x2d\xf0\x94\xcf\xe7\xeb\x66\x59\xf6\x39\x95\x4a\x75\ +\xd5\x64\x32\x9d\x5b\x8b\xc0\xba\xca\x5b\x71\xb6\x1d\x2c\x45\x20\ +\x91\x8a\x2b\x03\x81\x40\x57\x30\x18\x3c\x9e\xcd\x66\x4d\x25\x25\ +\x8a\x2f\xf5\x7a\x43\x6f\x55\x65\xf5\xe5\xff\x3a\x81\x24\x9f\x60\ +\x9c\x4e\xe7\xc7\x0e\x87\xe3\xd0\xb0\x67\x18\xb9\x5c\x0e\xa5\xa5\ +\xa5\x68\x6c\x6a\x44\x67\x67\xe7\xc9\xba\xda\xbd\x7f\xfc\x4f\x38\ +\x4b\xa4\xe2\x4a\x42\x08\x4a\xe4\xbb\xa3\x2b\x04\x37\x07\x6e\xbc\ +\xfb\xf3\x5f\xbc\x42\xca\xf5\x65\x04\x22\x10\x88\x40\xc4\x52\x9a\ +\xd4\x5a\xcc\xe4\xfc\xdb\x6f\x91\x50\x38\x68\xdf\x8e\x63\x3e\x93\ +\xa2\x5c\xee\x6f\xce\x5c\xb8\xd8\x43\xce\xbf\xfd\x16\x71\x7c\xf6\ +\xa9\x6b\x36\x12\x7a\x60\x33\xcc\xce\x5a\x2e\x5c\xec\x21\x56\xdb\ +\xde\x25\xe7\xcb\xc7\xe1\x8e\x76\x72\x73\xe0\xc6\xbb\xdb\x21\x30\ +\x32\x3a\xfc\xab\xd7\x4f\xbd\x46\x6a\x2d\x66\x52\x51\x69\x24\x2f\ +\xfe\xe4\x05\xf2\xe9\xb5\x4f\xee\xa4\x05\x9e\x2a\xcc\xe5\x72\x77\ +\xfc\x93\x93\xe0\x38\xee\x5f\x1a\x22\x00\xe4\xc1\x63\x28\x14\x42\ +\x32\x99\x3c\xb0\x1d\x02\xe1\x70\xf8\xd8\x90\x73\x08\x63\x63\xe3\ +\x00\x00\x8a\xa2\x30\x3e\x3e\x6e\x69\x68\x68\x98\x2b\xa0\x28\x0a\ +\x52\xa9\x14\x14\xb5\x76\xe2\xd3\x34\x8d\xad\xd4\x80\xb5\x50\x52\ +\x52\xf2\xa5\x52\xa9\x84\x52\x59\x0a\xb1\x84\x86\x42\xa1\x80\x42\ +\xa1\xc0\xce\x9d\x3b\x65\x85\x62\xb1\x58\x5e\x5b\x5b\x9b\xb4\x58\ +\x2c\x88\x72\x2c\xb2\xd9\xb9\xa5\xd9\xef\xde\x5d\x02\xbb\xdd\x8e\ +\xb2\xb2\xb2\x6d\x2d\x81\x56\xab\x7d\xbf\xf3\x48\x67\x37\xc3\x30\ +\x48\x24\x12\x68\xd8\xdf\x80\xfa\xfa\xfa\x53\x72\x46\xc1\x17\xca\ +\xa4\xf2\x94\xd7\x3f\xd1\xf5\x54\xdb\x53\xbd\x3c\xcf\x63\x7a\x7a\ +\x1a\x73\x73\x73\x90\xcb\xe5\x30\x9b\xcd\x38\xdc\xd1\x0e\xad\x56\ +\x7b\x65\x3b\x04\x34\x2a\xed\x68\x28\x1c\xac\x37\x99\x4c\xbf\x9e\ +\x9f\xbf\x57\xaa\xd3\x95\x7d\xa0\xd1\x68\x2e\x03\xcb\xea\x80\xd7\ +\x3f\x71\xc2\xe9\x74\xf6\x7a\xbd\x5e\xa4\xd3\x69\x30\x0c\x03\xb5\ +\x4a\x05\x83\xd1\x08\x8d\x46\x73\x5a\xa5\x52\x5d\xdd\xf2\x69\xb6\ +\x09\xac\x28\xc5\xa9\x74\x52\x26\x08\x42\x75\x34\x1a\x75\x8e\x8c\ +\x8c\xc0\xed\x76\xc3\xef\xf3\x43\x2e\x97\xa3\x6e\x6f\x1d\x5a\x5b\ +\x5b\xcf\xd6\x3f\xf6\xf8\xe9\xcd\x1a\x0f\x85\x83\xf6\x4c\x26\x53\ +\x27\x91\x48\xee\xac\x47\x7e\x45\x3f\x20\x93\xca\x53\x69\x81\x1f\ +\x9e\x9c\x9c\xc4\x17\x9f\x7f\x81\xeb\xd7\xaf\x23\xca\x45\x51\x4c\ +\x15\x63\x70\x70\x10\xc9\x64\xb2\x7b\xc2\x37\x3e\x5a\x53\x6d\x7e\ +\x7f\x23\xc7\x69\x81\xa7\x3c\x1e\x4f\xcf\xa5\x4b\x97\xba\xa6\xbe\ +\x9d\x82\xc1\x68\xc0\xcd\x81\x1b\xbd\x56\xab\xf5\xa4\x54\xcc\xe4\ +\x37\x64\x1d\x89\x86\xad\xbf\xfb\xfd\x79\x52\x51\x69\x5c\x55\x13\ +\x7e\xd8\x72\x88\x7c\xf4\xb7\x2b\x2c\x9f\x49\x6d\x78\x56\x78\x46\ +\x6e\xbf\xf1\xfa\xa9\xd7\x48\x45\xa5\x91\x88\xa5\x34\xa9\xa8\x34\ +\x92\x93\xbf\x7c\x95\xb8\x3d\xb7\xba\x37\x8c\x00\x00\xdc\xbf\x7f\ +\x9f\x62\x59\x16\x82\x20\xac\xa8\x07\x00\x10\x89\x44\xc0\x46\x58\ +\xa5\x20\x08\x96\x30\x3b\x9b\xe7\x38\xee\x47\xf3\xf3\xf3\x4a\x9a\ +\xde\xe5\xd7\x68\xb4\x57\xbe\x3f\xed\x42\xa1\xd0\xf1\x21\xe7\x10\ +\xa6\xa6\xa6\x01\x00\x42\x66\x1a\x63\x63\x63\x98\x99\x99\x79\x95\ +\xcf\xa4\xce\x31\x12\xd9\x52\x14\xd6\x6c\xc9\x64\x32\x19\x76\xed\ +\xda\xf5\xe0\xe5\x3b\x12\x85\x3b\x0b\x20\x16\x8b\x41\x8b\xc5\x88\ +\xc5\x62\x2e\x97\xcb\x85\xaf\xbf\xfa\x1a\x1c\xc7\xa1\x7a\x4f\x35\ +\xda\xda\xda\x4e\xc6\x93\xb1\xe7\x8b\x8a\x8a\xf8\x81\x81\x01\xbe\ +\xb8\xb8\x18\x62\x09\x0d\x21\x93\x85\x58\x42\x43\x24\x12\xa1\xa8\ +\xa8\x88\x13\x89\x56\x76\x00\xab\x08\x48\xa5\xd2\x61\xbb\xdd\x7e\ +\xd7\x6a\xb5\xea\x73\xb9\x1c\x92\x7c\x12\xf3\xf9\x05\x94\xeb\xf4\ +\x68\x6c\x6c\x84\x5a\xad\x86\xdb\xed\xc6\x3b\x7f\x7a\x07\xb7\x6f\ +\xdf\x46\x2c\x16\x87\xc1\xa0\x47\x8c\x8b\x1d\xa0\x69\x9a\xb5\xd9\ +\x6c\x30\x18\x0c\x68\x3e\xd8\x0c\x96\x65\x11\x8d\x46\xa1\x54\x2a\ +\xf1\xe4\x0f\x9e\x84\xc1\x60\xe8\x79\x38\x07\x56\x13\x10\x33\xf9\ +\x50\x38\x78\xf4\xa5\x13\x2f\x39\x75\x3a\x1d\x02\x81\x00\x0a\x0a\ +\x0a\x60\xa9\xb3\xa0\xad\xad\x0d\xa5\xa5\xa5\xe8\xef\xef\xc7\xe8\ +\xe8\x28\x62\xb1\x38\x00\x60\x66\xe6\x2e\x06\x07\x07\xd1\xd4\xd4\ +\x88\x9a\x9a\x9a\x2a\xad\x56\x1b\x3c\x72\xe4\xc8\x1b\x1a\xb5\xfa\ +\xcc\xcc\xdd\xbb\x30\xe8\xf5\x68\x6c\x6a\x3a\xab\xd7\xeb\x7b\xff\ +\x6d\x0e\x00\x80\x4e\x53\x36\x34\x1b\x09\xed\x37\x9b\xcd\x3f\x0d\ +\x87\xc3\x3f\xdb\xb1\x63\x47\x4a\xa3\xd1\xf4\xa9\xd5\xea\x8f\xa2\ +\xd1\x68\x47\x3e\x9f\xff\xed\xc2\xc2\xc2\x0a\x9d\xc5\xc5\x45\xe4\ +\xef\xdd\x5b\x9a\x44\x5a\xe0\xcf\xa9\x54\xaa\xab\x82\x20\x54\xd1\ +\x34\xed\xdf\xd4\x36\x5c\x0e\xad\x5a\x37\x04\x60\x08\xc0\xa9\xe5\ +\xdf\x43\xe1\x20\xb5\xb7\xae\x0e\x5a\xad\x16\xa9\x74\x0a\xf3\xf9\ +\x05\x88\x25\x34\xca\xcb\xcb\x61\x34\x1a\x03\x14\x45\x71\xdf\x93\ +\x00\x70\xeb\xbb\xb1\x2e\x76\x6c\x24\x5c\x0b\x6f\xfe\xe6\xcd\x38\ +\x4d\xd3\x58\x5c\x5c\x3c\x44\xee\x13\xc8\x64\x0c\xf6\xd9\xf6\xe1\ +\xe8\xd1\x1f\xe3\xc0\x13\x4f\xbc\xbc\xd5\xdb\xd1\x86\x4d\xe9\x46\ +\x98\xf0\x8d\x9f\xf0\x78\x3c\xbd\xd9\x6c\x16\x2a\x95\x0a\x36\x9b\ +\x6d\xeb\x17\x0f\x00\xff\x04\x49\x5f\xac\xeb\x7f\x07\x08\x64\x00\ +\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +" + +qt_resource_name = b"\ +\x00\x05\ +\x00\x6f\xa6\x53\ +\x00\x69\ +\x00\x63\x00\x6f\x00\x6e\x00\x73\ +\x00\x0f\ +\x00\x0e\x27\xe7\ +\x00\x67\ +\x00\x65\x00\x74\x00\x5f\x00\x77\x00\x78\x00\x5f\x00\x69\x00\x6e\x00\x66\x00\x6f\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0b\ +\x00\xa2\x2f\x87\ +\x00\x64\ +\x00\x65\x00\x63\x00\x72\x00\x79\x00\x70\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0b\ +\x00\xb0\xf5\xa7\ +\x00\x6c\ +\x00\x6f\x00\x61\x00\x64\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0b\ +\x00\xb9\xd7\xa7\ +\x00\x65\ +\x00\x6d\x00\x6f\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x02\xc6\x3c\x87\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x39\x00\x39\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x07\ +\x03\x81\x5a\x27\ +\x00\x6d\ +\x00\x61\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x03\x81\xa6\x07\ +\x00\x77\ +\x00\x6f\x00\x6d\x00\x61\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x03\xea\xef\xc7\ +\x63\x09\ +\x94\xae\x00\x5f\x5f\x00\x54\x2f\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0c\ +\x04\x2c\x62\x87\ +\x00\x75\ +\x00\x6e\x00\x73\x00\x65\x00\x6c\x00\x65\x00\x63\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x04\xe0\xfa\xc7\ +\x00\x6d\ +\x00\x79\x00\x69\x00\x6e\x00\x66\x00\x6f\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x05\xe2\x54\xa7\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x05\xe2\x59\x27\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x08\ +\x06\x38\x57\x27\ +\x00\x68\ +\x00\x6f\x00\x6d\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x06\x5f\x55\xa7\ +\x00\x74\ +\x00\x6f\x00\x6f\x00\x6c\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x06\x87\x55\x07\ +\x00\x77\ +\x00\x6f\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x06\xe1\x57\xa7\ +\x00\x64\ +\x00\x6f\x00\x77\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0b\ +\x06\xf5\xf3\xdf\ +\x00\x6c\ +\x00\x6f\x00\x67\x00\x6f\x00\x33\x00\x2e\x00\x30\x00\x2e\x00\x69\x00\x63\x00\x6f\ +\x00\x0c\ +\x07\x0f\x52\xc7\ +\x00\x61\ +\x00\x6e\x00\x61\x00\x6c\x00\x79\x00\x73\x00\x69\x00\x73\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x07\ +\x07\x37\x57\x27\ +\x00\x34\ +\x00\x30\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x12\ +\x07\x61\x60\xe7\ +\x00\x64\ +\x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x5f\x00\x61\x00\x76\x00\x61\x00\x74\x00\x61\x00\x72\x00\x2e\x00\x73\x00\x76\ +\x00\x67\ +\x00\x0b\ +\x07\x73\x91\x87\ +\x00\x63\ +\x00\x6f\x00\x6e\x00\x74\x00\x61\x00\x63\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x11\ +\x07\x7b\x14\xc7\ +\x00\x61\ +\x00\x6e\x00\x6e\x00\x75\x00\x61\x00\x6c\x00\x5f\x00\x72\x00\x65\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\ +\x00\x08\ +\x07\x9e\x57\xc7\ +\x00\x62\ +\x00\x61\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x06\ +\x07\xc3\x5a\xc7\ +\x00\x75\ +\x00\x70\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x07\xc9\x83\xa7\ +\x00\x6f\ +\x00\x75\x00\x74\x00\x70\x00\x75\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x08\x6b\x33\x87\ +\x51\x73\ +\x95\xed\x72\xb6\x60\x01\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x08\x94\x6d\xc7\ +\x00\x73\ +\x00\x65\x00\x61\x00\x72\x00\x63\x00\x68\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x08\x97\xaf\x87\ +\x00\x73\ +\x00\x74\x00\x61\x00\x72\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x08\xab\xd7\x87\ +\x00\x75\ +\x00\x70\x00\x64\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0e\ +\x08\xfa\x38\xa7\ +\x00\x61\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x07\ +\x0a\xa9\x5a\x07\ +\x00\x63\ +\x00\x73\x00\x76\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x0a\xc8\xf6\x87\ +\x00\x66\ +\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x07\ +\x0a\xc9\xa6\x13\ +\x00\x43\ +\x00\x75\x00\x72\x00\x73\x00\x6f\x00\x72\x00\x73\ +\x00\x08\ +\x0b\x3f\x57\x27\ +\x00\x68\ +\x00\x74\x00\x6d\x00\x6c\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x0b\x85\x8e\x87\ +\x00\x63\ +\x00\x6c\x00\x65\x00\x61\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x0b\xa8\x62\x87\ +\x00\x73\ +\x00\x65\x00\x6c\x00\x65\x00\x63\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x07\ +\x0b\xf7\x5a\x27\ +\x00\x74\ +\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x0c\x33\x57\x07\ +\x00\x68\ +\x00\x65\x00\x6c\x00\x70\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x09\ +\x0c\xc8\xe9\x07\ +\x63\x09\ +\x94\xae\x00\x5f\x51\x73\x95\xed\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x06\ +\x0d\x20\x51\x87\ +\x51\x73\ +\x95\xed\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x08\ +\x0e\x87\x57\xe7\ +\x00\x63\ +\x00\x68\x00\x61\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x0a\ +\x0f\x0e\xef\x47\ +\x00\x77\ +\x00\x65\x00\x69\x00\x78\x00\x69\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0f\ +\x0f\x22\x69\x47\ +\x00\x61\ +\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\ +\x00\x05\ +\x00\x33\x57\x47\ +\x00\x30\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x34\x57\x47\ +\x00\x31\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x35\x57\x47\ +\x00\x32\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x36\x57\x47\ +\x00\x33\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x37\x57\x47\ +\x00\x34\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x38\x57\x47\ +\x00\x35\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x39\x57\x47\ +\x00\x36\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x05\ +\x00\x3a\x57\x47\ +\x00\x37\ +\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct_v1 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x2c\x00\x00\x00\x03\ +\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x13\x52\ +\x00\x00\x00\x50\x00\x01\x00\x00\x00\x01\x00\x00\x19\x78\ +\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x20\x83\ +\x00\x00\x00\x88\x00\x00\x00\x00\x00\x01\x00\x00\x23\x99\ +\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x42\xe3\ +\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x4f\xef\ +\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x56\x8f\ +\x00\x00\x00\xce\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x2f\ +\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x9c\ +\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x61\xc0\ +\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x66\x5f\ +\x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x6f\x77\ +\x00\x00\x01\x4a\x00\x00\x00\x00\x00\x01\x00\x01\x0c\xc4\ +\x00\x00\x01\x60\x00\x00\x00\x00\x00\x01\x00\x01\x17\x64\ +\x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x01\x1b\xe8\ +\x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x01\x22\xb6\ +\x00\x00\x01\xa2\x00\x01\x00\x00\x00\x01\x00\x01\x25\x1e\ +\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x02\x25\x85\ +\x00\x00\x01\xdc\x00\x00\x00\x00\x00\x01\x00\x02\x29\x33\ +\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x02\x31\x01\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x02\xa0\xa5\ +\x00\x00\x02\x36\x00\x01\x00\x00\x00\x01\x00\x02\xaa\x49\ +\x00\x00\x02\x5e\x00\x00\x00\x00\x00\x01\x00\x02\xaf\x40\ +\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x02\xb4\xdf\ +\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x02\xb7\xa5\ +\x00\x00\x02\xa0\x00\x00\x00\x00\x00\x01\x00\x02\xbb\x9c\ +\x00\x00\x02\xb6\x00\x00\x00\x00\x00\x01\x00\x02\xbf\x43\ +\x00\x00\x02\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xc2\x2b\ +\x00\x00\x02\xe8\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x5b\ +\x00\x00\x03\x02\x00\x00\x00\x00\x00\x01\x00\x02\xc9\x46\ +\x00\x00\x03\x24\x00\x00\x00\x00\x00\x01\x00\x02\xcc\xa9\ +\x00\x00\x03\x38\x00\x00\x00\x00\x00\x01\x00\x02\xd6\xa6\ +\x00\x00\x03\x52\x00\x02\x00\x00\x00\x08\x00\x00\x00\x2f\ +\x00\x00\x03\x66\x00\x00\x00\x00\x00\x01\x00\x02\xde\xe1\ +\x00\x00\x03\x7c\x00\x00\x00\x00\x00\x01\x00\x02\xe6\x97\ +\x00\x00\x03\x94\x00\x00\x00\x00\x00\x01\x00\x02\xe9\xe5\ +\x00\x00\x03\xae\x00\x00\x00\x00\x00\x01\x00\x02\xec\xfd\ +\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x02\xf0\x76\ +\x00\x00\x03\xd8\x00\x00\x00\x00\x00\x01\x00\x02\xf9\x81\ +\x00\x00\x03\xf0\x00\x00\x00\x00\x00\x01\x00\x02\xfc\x29\ +\x00\x00\x04\x02\x00\x00\x00\x00\x00\x01\x00\x02\xfe\x48\ +\x00\x00\x04\x18\x00\x00\x00\x00\x00\x01\x00\x03\x05\x8d\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x04\x27\xcb\ +\x00\x00\x04\x56\x00\x00\x00\x00\x00\x01\x00\x04\x2a\x68\ +\x00\x00\x04\x66\x00\x00\x00\x00\x00\x01\x00\x04\x2f\xd2\ +\x00\x00\x04\x76\x00\x00\x00\x00\x00\x01\x00\x04\x35\x50\ +\x00\x00\x04\x86\x00\x00\x00\x00\x00\x01\x00\x04\x3b\x73\ +\x00\x00\x04\x96\x00\x00\x00\x00\x00\x01\x00\x04\x41\x7c\ +\x00\x00\x04\xa6\x00\x00\x00\x00\x00\x01\x00\x04\x47\x9f\ +\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x04\x4d\xe0\ +\x00\x00\x04\xc6\x00\x00\x00\x00\x00\x01\x00\x04\x54\x33\ +" + +qt_resource_struct_v2 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x2c\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x00\x34\x00\x00\x00\x00\x00\x01\x00\x00\x13\x52\ +\x00\x00\x01\x8d\x88\x23\x0f\x6b\ +\x00\x00\x00\x50\x00\x01\x00\x00\x00\x01\x00\x00\x19\x78\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x00\x6c\x00\x00\x00\x00\x00\x01\x00\x00\x20\x83\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x00\x88\x00\x00\x00\x00\x00\x01\x00\x00\x23\x99\ +\x00\x00\x01\x8d\xcc\x18\xce\x1a\ +\x00\x00\x00\xa2\x00\x00\x00\x00\x00\x01\x00\x00\x42\xe3\ +\x00\x00\x01\x8d\x88\x23\x0f\x71\ +\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x4f\xef\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x01\x00\x00\x56\x8f\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x00\xce\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x2f\ +\x00\x00\x01\x8d\x88\x23\x0f\x74\ +\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x9c\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x61\xc0\ +\x00\x00\x01\x8d\x88\x23\x0f\x71\ +\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x66\x5f\ +\x00\x00\x01\x8d\x88\x23\x0f\x6f\ +\x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x6f\x77\ +\x00\x00\x01\x8d\x88\x23\x0f\x6e\ +\x00\x00\x01\x4a\x00\x00\x00\x00\x00\x01\x00\x01\x0c\xc4\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x01\x60\x00\x00\x00\x00\x00\x01\x00\x01\x17\x64\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x01\x76\x00\x00\x00\x00\x00\x01\x00\x01\x1b\xe8\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x01\x8c\x00\x00\x00\x00\x00\x01\x00\x01\x22\xb6\ +\x00\x00\x01\x8d\x88\x23\x0f\x6b\ +\x00\x00\x01\xa2\x00\x01\x00\x00\x00\x01\x00\x01\x25\x1e\ +\x00\x00\x01\x8d\x88\x23\x0f\x70\ +\x00\x00\x01\xbe\x00\x00\x00\x00\x00\x01\x00\x02\x25\x85\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x01\xdc\x00\x00\x00\x00\x00\x01\x00\x02\x29\x33\ +\x00\x00\x01\x8d\x88\x23\x0f\x68\ +\x00\x00\x01\xf0\x00\x00\x00\x00\x00\x01\x00\x02\x31\x01\ +\x00\x00\x01\x8d\x88\x23\x0f\x6b\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x02\xa0\xa5\ +\x00\x00\x01\x8d\x88\x23\x0f\x6a\ +\x00\x00\x02\x36\x00\x01\x00\x00\x00\x01\x00\x02\xaa\x49\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x02\x5e\x00\x00\x00\x00\x00\x01\x00\x02\xaf\x40\ +\x00\x00\x01\x8d\x88\x23\x0f\x6a\ +\x00\x00\x02\x74\x00\x00\x00\x00\x00\x01\x00\x02\xb4\xdf\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x02\xb7\xa5\ +\x00\x00\x01\x8d\x88\x23\x0f\x71\ +\x00\x00\x02\xa0\x00\x00\x00\x00\x00\x01\x00\x02\xbb\x9c\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x02\xb6\x00\x00\x00\x00\x00\x01\x00\x02\xbf\x43\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x02\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xc2\x2b\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x02\xe8\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x5b\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x03\x02\x00\x00\x00\x00\x00\x01\x00\x02\xc9\x46\ +\x00\x00\x01\x8d\x88\x23\x0f\x6a\ +\x00\x00\x03\x24\x00\x00\x00\x00\x00\x01\x00\x02\xcc\xa9\ +\x00\x00\x01\x8d\x88\x23\x0f\x6b\ +\x00\x00\x03\x38\x00\x00\x00\x00\x00\x01\x00\x02\xd6\xa6\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x03\x52\x00\x02\x00\x00\x00\x08\x00\x00\x00\x2f\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x03\x66\x00\x00\x00\x00\x00\x01\x00\x02\xde\xe1\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x03\x7c\x00\x00\x00\x00\x00\x01\x00\x02\xe6\x97\ +\x00\x00\x01\x8e\xc0\xdb\x74\x28\ +\x00\x00\x03\x94\x00\x00\x00\x00\x00\x01\x00\x02\xe9\xe5\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x03\xae\x00\x00\x00\x00\x00\x01\x00\x02\xec\xfd\ +\x00\x00\x01\x8d\x88\x23\x0f\x72\ +\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x02\xf0\x76\ +\x00\x00\x01\x8d\x88\x23\x0f\x6c\ +\x00\x00\x03\xd8\x00\x00\x00\x00\x00\x01\x00\x02\xf9\x81\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x03\xf0\x00\x00\x00\x00\x00\x01\x00\x02\xfc\x29\ +\x00\x00\x01\x8d\x88\x23\x0f\x73\ +\x00\x00\x04\x02\x00\x00\x00\x00\x00\x01\x00\x02\xfe\x48\ +\x00\x00\x01\x8d\x88\x23\x0f\x6a\ +\x00\x00\x04\x18\x00\x00\x00\x00\x00\x01\x00\x03\x05\x8d\ +\x00\x00\x01\x8e\xd1\x1c\xf8\xad\ +\x00\x00\x04\x32\x00\x00\x00\x00\x00\x01\x00\x04\x27\xcb\ +\x00\x00\x01\x8d\x88\x23\x0f\x6a\ +\x00\x00\x04\x56\x00\x00\x00\x00\x00\x01\x00\x04\x2a\x68\ +\x00\x00\x01\x8d\x88\x23\x0f\x68\ +\x00\x00\x04\x66\x00\x00\x00\x00\x00\x01\x00\x04\x2f\xd2\ +\x00\x00\x01\x8d\x88\x23\x0f\x68\ +\x00\x00\x04\x76\x00\x00\x00\x00\x00\x01\x00\x04\x35\x50\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x04\x86\x00\x00\x00\x00\x00\x01\x00\x04\x3b\x73\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x04\x96\x00\x00\x00\x00\x00\x01\x00\x04\x41\x7c\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x04\xa6\x00\x00\x00\x00\x00\x01\x00\x04\x47\x9f\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x04\x4d\xe0\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +\x00\x00\x04\xc6\x00\x00\x00\x00\x00\x01\x00\x04\x54\x33\ +\x00\x00\x01\x8d\x88\x23\x0f\x69\ +" + +qt_version = [int(v) for v in QtCore.qVersion().split('.')] +if qt_version < [5, 8, 0]: + rcc_version = 1 + qt_resource_struct = qt_resource_struct_v1 +else: + rcc_version = 2 + qt_resource_struct = qt_resource_struct_v2 + +def qInitResources(): + QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/app/ui/Icon.py b/app/ui/Icon.py new file mode 100644 index 0000000..b91bbe2 --- /dev/null +++ b/app/ui/Icon.py @@ -0,0 +1,45 @@ +from PyQt5.QtGui import QIcon + +from app.resources import resource_rc + +var = resource_rc.qt_resource_name + + +class Icon: + Default_avatar_path = ':/icons/icons/default_avatar.svg' + Default_image_path = ':/icons/icons/404.png' + logo_path = ':/icons/icons/logo99.png' + logo_ico_path = ':/icons/icons/logo3.0.ico' + MainWindow_Icon = QIcon(':/icons/icons/logo.svg') + Default_avatar = QIcon(Default_avatar_path) + Output = QIcon(':/icons/icons/output.svg') + Back = QIcon(':/icons/icons/back.svg') + ToDocx = QIcon(':/icons/icons/word.svg') + ToCSV = QIcon(':/icons/icons/csv.svg') + ToHTML = QIcon(':/icons/icons/html.svg') + ToTXT = QIcon(':/icons/icons/txt.svg') + Chat_Icon = QIcon(':/icons/icons/chat.svg') + Contact_Icon = QIcon(':/icons/icons/contact.svg') + MyInfo_Icon = QIcon(':/icons/icons/myinfo.svg') + Annual_Report_Icon = QIcon(':/icons/icons/annual_report.svg') + Analysis_Icon = QIcon(':/icons/icons/analysis.svg') + Emotion_Icon = QIcon(':/icons/icons/emotion.svg') + Search_Icon = QIcon(':/icons/icons/search.svg') + Tool_Icon = QIcon(':/icons/icons/tool.svg') + Home_Icon = QIcon(':/icons/icons/home.svg') + Help_Icon = QIcon(':/icons/icons/help.svg') + Get_info_Icon = QIcon(':/icons/icons/get_wx_info.svg') + Folder_Icon = QIcon(':/icons/icons/folder.svg') + Start_Icon = QIcon(':/icons/icons/start.svg') + Decrypt_Icon = QIcon(':/icons/icons/decrypt.svg') + Man_Icon_path = ':/icons/icons/man.svg' + Woman_Icon_path = ':/icons/icons/woman.svg' + Man_Icon = QIcon(':/icons/icons/man.svg') + Woman_Icon = QIcon(':/icons/icons/woman.svg') + Arrow_left_Icon = QIcon(':/icons/icons/arrow-left.svg') + Arrow_right_Icon = QIcon(':/icons/icons/arrow-right.svg') + Update_Icon = QIcon(':/icons/icons/update.svg') + Clear_Icon = QIcon(':/icons/icons/clear.svg') + # Man_Icon_pixmap = QPixmap(Man_Icon_path) + # Woman_Icon_pixmap = QPixmap(Woman_Icon_path) + # Logo_Icon = QIcon(':/icons/icons/logo.png') diff --git a/app/ui/QSS/style.qss b/app/ui/QSS/style.qss new file mode 100644 index 0000000..998eb98 --- /dev/null +++ b/app/ui/QSS/style.qss @@ -0,0 +1,105 @@ +QWidget{ + background: rgb(238,244,249); +} +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; +} +QMenu::item:selected { + color: black; + background: rgb(230, 235, 240); +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 120px; + max-width: 380px; + color: black; + border:none; +} +QListWidget::item{ + min-width: 80px; + max-width: 380px; + min-height: 60px; + max-height: 60px; +} +QListWidget::item:hover { + background: rgb(230, 235, 240); +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + background: rgb(230, 235, 240); + border-left: 2px solid rgb(62, 62, 62); + color: black; + font-weight: bold; +} +/*鼠标悬停颜色*/ +HistoryPanel::item:hover { + background: rgb(52, 52, 52); +} + +QCheckBox::indicator { + background: rgb(255, 255, 255); + Width:20px; + Height:20px; + border-radius: 10px +} +QCheckBox::indicator:unchecked{ + Width:20px; + Height:20px; + image: url(:/icons/icons/unselect.svg); +} +QCheckBox::indicator:checked{ + Width:20px; + Height:20px; + image: url(:/icons/icons/select.svg); +} +QScrollBar:vertical { + border-width: 0px; + border: none; + background:rgba(133, 135, 138, 0); + width:4px; + margin: 0px 0px 0px 0px; +} +QScrollBar::handle:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgb(133, 135, 138), stop: 0.5 rgb(133, 135, 138), stop:1 rgb(133, 135, 138)); + min-height: 20px; + max-height: 20px; + margin: 0 0px 0 0px; + border-radius: 2px; +} +QScrollBar::add-line:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgba(133, 135, 138, 0), stop: 0.5 rgba(133, 135, 138, 0), stop:1 rgba(133, 135, 138, 0)); + height: 0px; + border: none; + subcontrol-position: bottom; + subcontrol-origin: margin; +} +QScrollBar::sub-line:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgba(133, 135, 138, 0), stop: 0.5 rgba(133, 135, 138, 0), stop:1 rgba(133, 135, 138, 0)); + height: 0 px; + border: none; + subcontrol-position: top; + subcontrol-origin: margin; +} +QScrollBar::sub-page:vertical { + background: rgba(133, 135, 138, 0); +} + +QScrollBar::add-page:vertical { + background: rgba(133, 135, 138, 0); +} +QProgressBar{ + height:22px; + text-align:center; + font-size:14px; + color:rgb(49, 218, 27); + border-radius:11px; + background:#EBEEF5; +} +QProgressBar::chunk{ + border-radius:11px; + background:qlineargradient(spread:pad,x1:0,y1:0,x2:1,y2:0,stop:0 #99ffff,stop:1 #9900ff); +} diff --git a/app/ui/__init__.py b/app/ui/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/ui/chat/__init__.py b/app/ui/chat/__init__.py new file mode 100644 index 0000000..00e557b --- /dev/null +++ b/app/ui/chat/__init__.py @@ -0,0 +1 @@ +from .chat_window import ChatWindow diff --git a/app/ui/chat/ai_chat.py b/app/ui/chat/ai_chat.py new file mode 100644 index 0000000..1641289 --- /dev/null +++ b/app/ui/chat/ai_chat.py @@ -0,0 +1,217 @@ +import json +import sys +import time +import traceback +from urllib.parse import urljoin + +import requests +from PyQt5.QtCore import QThread, pyqtSignal, QSize, Qt +from PyQt5.QtGui import QPixmap +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QHBoxLayout, QApplication, QTextBrowser, QMessageBox + +from app import config +from app.config import SERVER_API_URL +from app.log import logger +from app.ui.Icon import Icon + +try: + from .chatInfoUi import Ui_Form +except: + from chatInfoUi import Ui_Form +from app.components.bubble_message import BubbleMessage +from app.person import Me, ContactDefault + + +class Message(QWidget): + def __init__(self, is_send=False, text='', parent=None): + super().__init__(parent) + self.avatar = QLabel(self) + + self.textBrowser = QTextBrowser(self) + self.textBrowser.setText(text) + + layout = QHBoxLayout(self) + if is_send: + pixmap = Me().avatar.scaled(45, 45) + self.textBrowser.setLayoutDirection(Qt.RightToLeft) + self.textBrowser.setAlignment(Qt.AlignRight | Qt.AlignVCenter) + self.avatar.setPixmap(pixmap) + layout.addWidget(self.textBrowser) + layout.addWidget(self.avatar) + else: + pixmap = QPixmap(Icon.Default_avatar_path).scaled(45, 45) + self.avatar.setPixmap(pixmap) + layout.addWidget(self.avatar) + layout.addWidget(self.textBrowser) + # self.textBrowser.setFixedHeight(int(self.textBrowser.document().size().height())) + self.textBrowser.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) + self.avatar.setFixedSize(QSize(60, 60)) + + def append(self, text: str): + self.textBrowser.insertPlainText(text) + self.textBrowser.setFixedHeight(int(self.textBrowser.document().size().height())) + + +class AIChat(QWidget, Ui_Form): + def __init__(self, contact, parent=None): + super().__init__(parent) + self.now_message: Message = None + self.setupUi(self) + self.last_timestamp = 0 + self.last_str_time = '' + self.last_pos = 0 + self.contact = contact + self.init_ui() + self.show_chats() + self.pushButton.clicked.connect(self.send_msg) + self.toolButton.clicked.connect(self.tool) + self.btn_clear.clicked.connect(self.clear_dialog) + self.btn_clear.setIcon(Icon.Clear_Icon) + + def init_ui(self): + self.textEdit.installEventFilter(self) + + def tool(self): + QMessageBox.information(self, "温馨提示", "暂未接入聊天数据,您可进行基础的AI对话,后续更新敬请期待") + + def chat(self, text): + self.now_message.append(text) + self.scrollArea.verticalScrollBar().setValue(self.scrollArea.verticalScrollBar().maximum()) + + def send_msg(self): + msg = self.textEdit.toPlainText().strip() + self.textEdit.setText('') + if not msg: + return + print(msg) + bubble_message = BubbleMessage( + msg, + Me().avatar, + 1, + True, + ) + self.verticalLayout_message.addWidget(bubble_message) + message1 = Message(False) + self.verticalLayout_message.addWidget(message1) + self.show_chat_thread.msg = msg + self.now_message = message1 + self.show_chat_thread.start() + self.scrollArea.verticalScrollBar().setValue(self.scrollArea.verticalScrollBar().maximum()) + + def clear_dialog(self): + self.show_chat_thread.history = [] + while self.verticalLayout_message.count(): + item = self.verticalLayout_message.takeAt(0) + widget = item.widget() + if widget is not None: + widget.deleteLater() + else: + del item + + def show_chats(self): + # return + self.show_chat_thread = AIChatThread() + self.show_chat_thread.msgSignal.connect(self.chat) + + def update_history_messages(self): + print('开始发送信息') + message1 = Message(False) + msg = '你好!' + self.verticalLayout_message.addWidget(message1) + self.show_chat_thread.msg = msg + self.now_message = message1 + self.show_chat_thread.start() + + def add_message(self, message): + print('message', message) + # self.textBrowser.append(message) + self.textBrowser.insertPlainText(message) + self.textBrowser.setFixedHeight(int(self.textBrowser.document().size().height())) + + def eventFilter(self, obj, event): + if obj == self.textEdit and event.type() == event.KeyPress: + key = event.key() + if key == 16777220: # 回车键的键值 + self.send_msg() + self.textEdit.setText('') + return True + return super().eventFilter(obj, event) + + +class AIChatThread(QThread): + msgSignal = pyqtSignal(str) + showSingal = pyqtSignal(tuple) + finishSingal = pyqtSignal(int) + msg_id = 0 + + # heightSingal = pyqtSignal(int) + def __init__(self): + super().__init__() + self.msg = '' + self.history = [] + + def run(self) -> None: + url = urljoin(SERVER_API_URL, 'chat') + data = { + 'username': Me().wxid, + 'token': Me().token, + 'version': config.version, + 'messages': [ + *self.history, + { + 'role': 'user', + "content": self.msg + } + ] + } + message = ''' + 幼儿园三班一共有35人,上个月34人满勤。\n其中1月15日,小明同学感冒了,他的妈妈给他请了一天的病假。 + ''' + try: + # for s in message: + # self.msgSignal.emit(s) + # time.sleep(0.05) + # return + resp = requests.post(url, json=data, stream=True) + message = { + 'role': 'user', + 'content': self.msg + } + resp_message = { + 'role': 'assistant', + 'content': '' + } + if resp.status_code == 200: + for line in resp.iter_lines(): + if line: + trunk = line.decode('utf-8') + try: + data = json.loads(trunk.strip('data: ')) + answer = data.get('answer') + print(answer) + if isinstance(answer, str): + resp_message['content'] += answer + self.msgSignal.emit(answer) + except: + print(trunk) + resp_message['content'] += trunk + self.msgSignal.emit(trunk) + else: + print(resp.text) + error = resp.json().get('error') + logger.error(f'ai请求错误:{error}') + self.msgSignal.emit(error) + self.history.append(message) + self.history.append(resp_message) + except Exception as e: + error = str(e) + logger.error(f'ai请求错误:{error}{traceback.format_exc()}') + self.msgSignal.emit(error) + + +if __name__ == '__main__': + app = QApplication(sys.argv) + contact = ContactDefault('1') + dialog = AIChat(contact) + dialog.show() + sys.exit(app.exec_()) diff --git a/app/ui/chat/chatInfoUi.py b/app/ui/chat/chatInfoUi.py new file mode 100644 index 0000000..1c0b5db --- /dev/null +++ b/app/ui/chat/chatInfoUi.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'chatInfoUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(817, 748) + self.horizontalLayout_7 = QtWidgets.QHBoxLayout(Form) + self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_7.setSpacing(0) + self.horizontalLayout_7.setObjectName("horizontalLayout_7") + self.frame = QtWidgets.QFrame(Form) + self.frame.setFrameShape(QtWidgets.QFrame.NoFrame) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.label_reamrk = QtWidgets.QLabel(self.frame) + self.label_reamrk.setObjectName("label_reamrk") + self.horizontalLayout_2.addWidget(self.label_reamrk) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.btn_clear = QtWidgets.QPushButton(self.frame) + self.btn_clear.setObjectName("btn_clear") + self.horizontalLayout_2.addWidget(self.btn_clear) + self.toolButton = QtWidgets.QToolButton(self.frame) + self.toolButton.setObjectName("toolButton") + self.horizontalLayout_2.addWidget(self.toolButton) + self.verticalLayout_2.addLayout(self.horizontalLayout_2) + self.scrollArea = QtWidgets.QScrollArea(self.frame) + self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame) + self.scrollArea.setWidgetResizable(True) + self.scrollArea.setObjectName("scrollArea") + self.scrollAreaWidgetContents = QtWidgets.QWidget() + self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 799, 564)) + self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.verticalLayout_message = QtWidgets.QVBoxLayout() + self.verticalLayout_message.setObjectName("verticalLayout_message") + self.verticalLayout_3.addLayout(self.verticalLayout_message) + self.scrollArea.setWidget(self.scrollAreaWidgetContents) + self.verticalLayout_2.addWidget(self.scrollArea) + self.textEdit = QtWidgets.QTextEdit(self.frame) + self.textEdit.setMaximumSize(QtCore.QSize(16777215, 100)) + self.textEdit.setObjectName("textEdit") + self.verticalLayout_2.addWidget(self.textEdit) + self.pushButton = QtWidgets.QPushButton(self.frame) + self.pushButton.setObjectName("pushButton") + self.verticalLayout_2.addWidget(self.pushButton) + self.horizontalLayout_7.addWidget(self.frame) + + self.retranslateUi(Form) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) + self.label_reamrk.setText(_translate("Form", "EmoAi")) + self.btn_clear.setText(_translate("Form", "清除对话")) + self.toolButton.setText(_translate("Form", "...")) + self.pushButton.setText(_translate("Form", "发送")) diff --git a/app/ui/chat/chatUi.py b/app/ui/chat/chatUi.py new file mode 100644 index 0000000..457f7dc --- /dev/null +++ b/app/ui/chat/chatUi.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'chatUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(840, 752) + Form.setStyleSheet("background: rgb(240, 240, 240);") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(Form) + self.horizontalLayout_2.setSpacing(6) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setSpacing(6) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label = QtWidgets.QLabel(Form) + self.label.setText("") + self.label.setObjectName("label") + self.horizontalLayout.addWidget(self.label) + self.lineEdit = QtWidgets.QLineEdit(Form) + self.lineEdit.setMinimumSize(QtCore.QSize(200, 30)) + self.lineEdit.setMaximumSize(QtCore.QSize(200, 16777215)) + self.lineEdit.setStyleSheet("") + self.lineEdit.setCursorMoveStyle(QtCore.Qt.VisualMoveStyle) + self.lineEdit.setObjectName("lineEdit") + self.horizontalLayout.addWidget(self.lineEdit) + self.label_2 = QtWidgets.QLabel(Form) + self.label_2.setMinimumSize(QtCore.QSize(30, 0)) + self.label_2.setText("") + self.label_2.setObjectName("label_2") + self.horizontalLayout.addWidget(self.label_2) + self.verticalLayout.addLayout(self.horizontalLayout) + self.verticalLayout_2.addLayout(self.verticalLayout) + self.listWidget = QtWidgets.QListWidget(Form) + self.listWidget.setMinimumSize(QtCore.QSize(250, 0)) + self.listWidget.setMaximumSize(QtCore.QSize(250, 16777215)) + self.listWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.listWidget.setObjectName("listWidget") + self.verticalLayout_2.addWidget(self.listWidget) + self.verticalLayout_2.setStretch(1, 1) + self.horizontalLayout_2.addLayout(self.verticalLayout_2) + self.stackedWidget = QtWidgets.QStackedWidget(Form) + self.stackedWidget.setObjectName("stackedWidget") + self.horizontalLayout_2.addWidget(self.stackedWidget) + self.horizontalLayout_2.setStretch(1, 1) + + self.retranslateUi(Form) + self.stackedWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) diff --git a/app/ui/chat/chat_info.py b/app/ui/chat/chat_info.py new file mode 100644 index 0000000..0fa8b42 --- /dev/null +++ b/app/ui/chat/chat_info.py @@ -0,0 +1,188 @@ +import traceback + +from PyQt5.QtCore import QThread, pyqtSignal +from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QHBoxLayout + +from app.DataBase import msg_db, hard_link_db +from app.components.bubble_message import BubbleMessage, ChatWidget, Notice +from app.person import Me +from app.util import get_abs_path +from app.util.emoji import get_emoji + + +class ChatInfo(QWidget): + def __init__(self, contact, parent=None): + super().__init__(parent) + self.last_timestamp = 0 + self.last_str_time = '' + self.last_pos = 0 + self.contact = contact + self.init_ui() + self.show_chats() + + def init_ui(self): + self.label_reamrk = QLabel(self.contact.remark) + + self.hBoxLayout = QHBoxLayout() + self.hBoxLayout.addWidget(self.label_reamrk) + + self.vBoxLayout = QVBoxLayout() + self.vBoxLayout.setSpacing(0) + self.vBoxLayout.addLayout(self.hBoxLayout) + + self.chat_window = ChatWidget() + self.chat_window.scrollArea.verticalScrollBar().valueChanged.connect(self.verticalScrollBar) + self.vBoxLayout.addWidget(self.chat_window) + self.setLayout(self.vBoxLayout) + + def show_chats(self): + # Me().save_avatar() + # self.contact.save_avatar() + self.show_chat_thread = ShowChatThread(self.contact) + self.show_chat_thread.showSingal.connect(self.add_message) + self.show_chat_thread.finishSingal.connect(self.show_finish) + # self.show_chat_thread.start() + + def show_finish(self, ok): + self.setScrollBarPos() + self.show_chat_thread.quit() + + def verticalScrollBar(self, pos): + """ + 滚动条到0之后自动更新聊天记录 + :param pos: + :return: + """ + # print(pos) + if pos > 0: + return + + # 记录当前滚动条最大值 + self.last_pos = self.chat_window.verticalScrollBar().maximum() + self.update_history_messages() + + def update_history_messages(self): + self.show_chat_thread.start() + + def setScrollBarPos(self): + """ + 将滚动条位置设置为上次看到的地方 + :param pos: + :return: + """ + self.chat_window.update() + self.chat_window.show() + pos = self.chat_window.verticalScrollBar().maximum() - self.last_pos + self.chat_window.set_scroll_bar_value(pos) + + def is_5_min(self, timestamp): + if abs(timestamp - self.last_timestamp) > 300: + self.last_timestamp = timestamp + return True + return False + + def get_avatar_path(self, is_send, message, is_absolute_path=False) -> str: + if self.contact.is_chatroom: + avatar = message[13].smallHeadImgUrl + else: + avatar = Me().smallHeadImgUrl if is_send else self.contact.smallHeadImgUrl + if is_absolute_path: + if self.contact.is_chatroom: + # message[13].save_avatar() + avatar = message[13].avatar + else: + avatar = Me().avatar if is_send else self.contact.avatar + return avatar + + def get_display_name(self, is_send, message) -> str: + if self.contact.is_chatroom: + if is_send: + display_name = Me().name + else: + display_name = message[13].remark + else: + display_name = None + return display_name + + def add_message(self, message): + try: + type_ = message[2] + str_content = message[7] + str_time = message[8] + # print(type_, type(type_)) + is_send = message[4] + avatar = self.get_avatar_path(is_send, message,True) + display_name = self.get_display_name(is_send, message) + timestamp = message[5] + BytesExtra = message[10] + if type_ == 1: + if self.is_5_min(timestamp): + time_message = Notice(self.last_str_time) + self.last_str_time = str_time + self.chat_window.add_message_item(time_message, 0) + bubble_message = BubbleMessage( + str_content, + avatar, + type_, + is_send, + display_name=display_name + ) + self.chat_window.add_message_item(bubble_message, 0) + elif type_ == 3: + # return + if self.is_5_min(timestamp): + time_message = Notice(self.last_str_time) + self.last_str_time = str_time + self.chat_window.add_message_item(time_message, 0) + image_path = hard_link_db.get_image(content=str_content, bytesExtra=BytesExtra, up_dir=Me().wx_dir,thumb=False) + image_path = get_abs_path(image_path) + bubble_message = BubbleMessage( + image_path, + avatar, + type_, + is_send + ) + self.chat_window.add_message_item(bubble_message, 0) + elif type_ == 47: + return + if self.is_5_min(timestamp): + time_message = Notice(self.last_str_time) + self.last_str_time = str_time + self.chat_window.add_message_item(time_message, 0) + image_path = get_emoji(str_content, thumb=True) + bubble_message = BubbleMessage( + image_path, + avatar, + 3, + is_send + ) + self.chat_window.add_message_item(bubble_message, 0) + elif type_ == 10000: + str_content = str_content.lstrip('').rstrip('') + message = Notice(str_content) + self.chat_window.add_message_item(message, 0) + except: + print(message) + traceback.print_exc() + + + +class ShowChatThread(QThread): + showSingal = pyqtSignal(tuple) + finishSingal = pyqtSignal(int) + msg_id = 0 + + # heightSingal = pyqtSignal(int) + def __init__(self, contact): + super().__init__() + self.last_message_id = 9999999999 + self.wxid = contact.wxid + + def run(self) -> None: + messages = msg_db.get_message_by_num(self.wxid, self.last_message_id) + if messages: + self.last_message_id = messages[-1][0] + for message in messages: + self.showSingal.emit(message) + self.msg_id += 1 + self.finishSingal.emit(1) diff --git a/app/ui/chat/chat_window.py b/app/ui/chat/chat_window.py new file mode 100644 index 0000000..8a656da --- /dev/null +++ b/app/ui/chat/chat_window.py @@ -0,0 +1,186 @@ +import shutil + +from PyQt5.QtCore import QThread, pyqtSignal +from PyQt5.QtGui import QPixmap +from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit + +from app.DataBase import micro_msg_db, misc_db, msg_db, close_db +from app.components import ContactQListWidgetItem, ScrollBar +from app.person import Contact, Me +from app.ui.Icon import Icon +from app.util import search +from .ai_chat import AIChat +from .chatUi import Ui_Form +from .chat_info import ChatInfo + +# 美化样式表 +Stylesheet = """ + +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; + border:none; +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 250px; + max-width: 250px; + min-height: 80px; + max-height: 1200px; + color: black; + border:none; +} +QListWidget::item{ + height:60px; + width:250px; +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + background: rgb(230, 235, 240); + border-left:none; + color: black; + font-weight: bold; +} +""" + + +class ChatWindow(QWidget, Ui_Form): + load_finish_signal = pyqtSignal(bool) + + def __init__(self, parent=None): + super().__init__(parent) + self.show_thread = None + self.setupUi(self) + self.ok_flag = False + self.setStyleSheet(Stylesheet) + self.contacts = [[], []] + self.init_ui() + self.show_chats() + self.visited = set() + self.now_index = 0 + + def init_ui(self): + search_action = QAction(self.lineEdit) + search_action.setIcon(Icon.Search_Icon) + self.lineEdit.addAction(search_action, QLineEdit.LeadingPosition) + self.lineEdit.returnPressed.connect(self.search_contact) + self.listWidget.clear() + self.listWidget.setVerticalScrollBar(ScrollBar()) + self.listWidget.currentRowChanged.connect(self.setCurrentIndex) + self.listWidget.setCurrentRow(0) + self.stackedWidget.setCurrentIndex(0) + pixmap = QPixmap(Icon.Default_avatar_path).scaled(45, 45) + contact_item = ContactQListWidgetItem('AI小助手', '', pixmap) + self.listWidget.addItem(contact_item) + self.listWidget.setItemWidget(contact_item, contact_item.widget) + chat_info_window = AIChat(Me()) + self.stackedWidget.addWidget(chat_info_window) + + def show_chats(self): + # return + if self.ok_flag: + return + msg_db.init_database() + micro_msg_db.init_database() + if not msg_db.open_flag: + QMessageBox.critical(self, "错误", "数据库不存在\n请先解密数据库") + self.show_thread = ShowThread() + self.show_thread.load_finish_signal.connect(self.load_finish_signal) + self.show_thread.start() + return + self.show_thread = ShowContactThread() + self.show_thread.showSingal.connect(self.show_chat) + self.show_thread.load_finish_signal.connect(self.stop_loading) + self.show_thread.start() + self.ok_flag = True + + def search_contact(self): + content = self.lineEdit.text() + if not content: + return + index = self.search_contact_index(content) + self.select_contact_by_index(index) + + def search_contact_index(self, content: str) -> int: + return search.search_by_content(content, self.contacts) + + def select_contact_by_index(self, index): + self.stackedWidget.setCurrentIndex(index) + self.listWidget.setCurrentRow(index) + + def show_chat(self, contact): + # return + self.contacts[0].append(contact.remark) + self.contacts[1].append(contact.nickName) + contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) + self.listWidget.addItem(contact_item) + self.listWidget.setItemWidget(contact_item, contact_item.widget) + chat_info_window = ChatInfo(contact) + self.stackedWidget.addWidget(chat_info_window) + + def setCurrentIndex(self, row): + # print(row) + item = self.listWidget.item(self.now_index) + item.dis_select() + self.stackedWidget.setCurrentIndex(row) + item = self.listWidget.item(row) + item.select() + self.now_index = row + if row not in self.visited: + chat_info_window = self.stackedWidget.currentWidget() + chat_info_window.update_history_messages() + self.visited.add(row) + + def stop_loading(self, a0): + # self.label.setVisible(False) + self.load_finish_signal.emit(True) + + +class ShowContactThread(QThread): + showSingal = pyqtSignal(Contact) + load_finish_signal = pyqtSignal(bool) + + # heightSingal = pyqtSignal(int) + def __init__(self): + super().__init__() + + def run(self) -> None: + contact_info_lists = micro_msg_db.get_contact() + if not contact_info_lists: + self.load_finish_signal.emit(True) + # QMessageBox.critical(None, "错误", "数据库错误,请重启电脑后重试") + close_db() + try: + shutil.rmtree('./app/Database/Msg') + except: + pass + return + for contact_info_list in contact_info_lists: + # UserName, Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl + contact_info = { + 'UserName': contact_info_list[0], + 'Alias': contact_info_list[1], + 'Type': contact_info_list[2], + 'Remark': contact_info_list[3], + 'NickName': contact_info_list[4], + 'smallHeadImgUrl': contact_info_list[7] + } + contact = Contact(contact_info) + contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid) + contact.set_avatar(contact.smallHeadImgBLOG) + self.showSingal.emit(contact) + # pprint(contact.__dict__) + self.load_finish_signal.emit(True) + + +class ShowThread(QThread): + showSingal = pyqtSignal(Contact) + load_finish_signal = pyqtSignal(bool) + + # heightSingal = pyqtSignal(int) + def __init__(self): + super().__init__() + + def run(self) -> None: + QThread.sleep(1) + self.load_finish_signal.emit(True) diff --git a/app/ui/contact/__init__.py b/app/ui/contact/__init__.py new file mode 100644 index 0000000..a83ae0a --- /dev/null +++ b/app/ui/contact/__init__.py @@ -0,0 +1 @@ +from .contact_window import ContactWindow diff --git a/app/ui/contact/contactInfo.py b/app/ui/contact/contactInfo.py new file mode 100644 index 0000000..ead7273 --- /dev/null +++ b/app/ui/contact/contactInfo.py @@ -0,0 +1,155 @@ +from datetime import datetime + +from PyQt5.QtCore import pyqtSignal, QUrl, QThread +from PyQt5.QtGui import QDesktopServices +from PyQt5.QtWidgets import QWidget, QMenu, QAction, QToolButton, QMessageBox + +from app.ui.Icon import Icon +from .contactInfoUi import Ui_Form +from .userinfo import userinfo +from ..menu.export_time_range import TimeRangeDialog +from ...DataBase import msg_db +from ...person import Contact, Me +from app.ui.contact.export.export_dialog import ExportDialog + + +class ContactInfo(QWidget, Ui_Form): + """ + 显示联系人信息 + """ + exitSignal = pyqtSignal() + urlSignal = pyqtSignal(QUrl) + + # username = '' + def __init__(self, contact, parent=None): + super(ContactInfo, self).__init__(parent) + self.time_range = None + self.setupUi(self) + self.contact: Contact = contact + self.view_userinfo = userinfo.UserinfoController(self.contact) + self.btn_back.clicked.connect(self.back) + self.init_ui() + + def init_ui(self): + self.btn_back.setIcon(Icon.Back) + self.btn_report.setIcon(Icon.Annual_Report_Icon) + self.btn_analysis.setIcon(Icon.Analysis_Icon) + self.btn_emotion.setIcon(Icon.Emotion_Icon) + self.btn_report.clicked.connect(self.annual_report) + self.btn_analysis.clicked.connect(self.analysis) + self.btn_emotion.clicked.connect(self.emotionale_Analysis) + self.stackedWidget.addWidget(self.view_userinfo) + self.stackedWidget.setCurrentWidget(self.view_userinfo) + menu = QMenu(self) + self.toDocxAct = QAction(Icon.ToDocx, '导出Docx', self) + self.toCSVAct = QAction(Icon.ToCSV, '导出CSV', self) + self.toHtmlAct = QAction(Icon.ToHTML, '导出HTML', self) + self.toTxtAct = QAction(Icon.ToTXT, '导出TXT', self) + self.toAiTxtAct = QAction(Icon.ToTXT, '导出AI对话专用TXT', self) + self.toJsonAct = QAction(Icon.ToTXT, '导出json', self) + self.toolButton_output.setPopupMode(QToolButton.MenuButtonPopup) + self.toolButton_output.clicked.connect(self.toolButton_show) + menu.addAction(self.toDocxAct) + menu.addAction(self.toCSVAct) + menu.addAction(self.toHtmlAct) + menu.addAction(self.toTxtAct) + menu.addAction(self.toAiTxtAct) + menu.addAction(self.toJsonAct) + self.toolButton_output.setMenu(menu) + self.toolButton_output.setIcon(Icon.Output) + # self.toolButton_output.addSeparator() + self.toHtmlAct.triggered.connect(self.output) + self.toDocxAct.triggered.connect(self.output) + self.toCSVAct.triggered.connect(self.output) + self.toTxtAct.triggered.connect(self.output) + self.toJsonAct.triggered.connect(self.output) + self.toAiTxtAct.triggered.connect(self.output) + + def set_contact(self, contact: Contact): + self.view_userinfo.set_contact(contact) + self.contact = contact + + def toolButton_show(self): + self.toolButton_output.showMenu() + + def analysis(self): + # QDesktopServices.openUrl(QUrl("https://memotrace.cn/")) + self.report_thread = ReportThread(self.contact) + # self.report_thread.okSignal.connect(lambda x: QDesktopServices.openUrl(QUrl("http://127.0.0.1:21314"))) + self.report_thread.start() + QDesktopServices.openUrl(QUrl(f"http://127.0.0.1:21314/charts/{self.contact.wxid}")) + + def annual_report(self): + date_range = None + chat_calendar = msg_db.get_messages_calendar(self.contact.wxid) + if chat_calendar: + start_time = datetime.strptime(chat_calendar[0], "%Y-%m-%d") + end_time = datetime.strptime(chat_calendar[-1], "%Y-%m-%d") + date_range = (start_time.date(), end_time.date()) + self.time_range_view = TimeRangeDialog(date_range=date_range, parent=self) + self.time_range_view.date_range_signal.connect(self.set_time_range) + self.time_range_view.show() + if 'room' in self.contact.wxid: + QMessageBox.warning( + self, '警告', + '暂不支持群组' + ) + return + + def set_time_range(self, time_range): + self.time_range = time_range + self.contact.save_avatar() + Me().save_avatar() + self.report_thread = ReportThread(self.contact, time_range) + self.report_thread.start() + QDesktopServices.openUrl(QUrl(f"http://127.0.0.1:21314/christmas/{self.contact.wxid}")) + + def emotionale_Analysis(self): + QDesktopServices.openUrl(QUrl("https://memotrace.cn/")) + + def back(self): + """ + 将userinfo界面设置为可见,其他界面设置为不可见 + """ + return + + def output(self): + """ + 导出聊天记录 + :return: + """ + self.stackedWidget.setCurrentWidget(self.view_userinfo) + if self.sender() == self.toDocxAct: + dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='docx', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + elif self.sender() == self.toCSVAct: + # self.outputThread = Output(self.contact, type_=Output.CSV) + dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='csv', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + elif self.sender() == self.toHtmlAct: + dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='html', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + elif self.sender() == self.toTxtAct: + dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='txt', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + elif self.sender() == self.toAiTxtAct: + dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='ai_txt', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + elif self.sender() == self.toJsonAct: + dialog = ExportDialog(self.contact, title='选择导出的消息类型', file_type='json', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + +class ReportThread(QThread): + okSignal = pyqtSignal(bool) + + def __init__(self, contact, time_range=None): + super().__init__() + self.contact = contact + self.time_range = time_range + + def run(self): + from app.web_ui import web + web.contact = self.contact + web.time_range = self.time_range + web.run(port='21314') + self.okSignal.emit(True) diff --git a/app/ui/contact/contactInfoUi.py b/app/ui/contact/contactInfoUi.py new file mode 100644 index 0000000..616634b --- /dev/null +++ b/app/ui/contact/contactInfoUi.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'contactInfoUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(494, 748) + self.verticalLayout = QtWidgets.QVBoxLayout(Form) + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setSpacing(0) + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.btn_analysis = QtWidgets.QPushButton(Form) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.btn_analysis.sizePolicy().hasHeightForWidth()) + self.btn_analysis.setSizePolicy(sizePolicy) + self.btn_analysis.setStyleSheet("") + self.btn_analysis.setFlat(False) + self.btn_analysis.setObjectName("btn_analysis") + self.horizontalLayout_3.addWidget(self.btn_analysis) + self.btn_emotion = QtWidgets.QPushButton(Form) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.btn_emotion.sizePolicy().hasHeightForWidth()) + self.btn_emotion.setSizePolicy(sizePolicy) + self.btn_emotion.setFlat(False) + self.btn_emotion.setObjectName("btn_emotion") + self.horizontalLayout_3.addWidget(self.btn_emotion) + self.btn_report = QtWidgets.QPushButton(Form) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.btn_report.sizePolicy().hasHeightForWidth()) + self.btn_report.setSizePolicy(sizePolicy) + self.btn_report.setFlat(False) + self.btn_report.setObjectName("btn_report") + self.horizontalLayout_3.addWidget(self.btn_report) + self.btn_back = QtWidgets.QPushButton(Form) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.btn_back.sizePolicy().hasHeightForWidth()) + self.btn_back.setSizePolicy(sizePolicy) + self.btn_back.setText("") + self.btn_back.setFlat(False) + self.btn_back.setObjectName("btn_back") + self.horizontalLayout_3.addWidget(self.btn_back) + self.toolButton_output = QtWidgets.QToolButton(Form) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.toolButton_output.sizePolicy().hasHeightForWidth()) + self.toolButton_output.setSizePolicy(sizePolicy) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap("../../data/icons/output.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.toolButton_output.setIcon(icon) + self.toolButton_output.setCheckable(False) + self.toolButton_output.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup) + self.toolButton_output.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) + self.toolButton_output.setAutoRaise(True) + self.toolButton_output.setArrowType(QtCore.Qt.NoArrow) + self.toolButton_output.setObjectName("toolButton_output") + self.horizontalLayout_3.addWidget(self.toolButton_output) + self.verticalLayout.addLayout(self.horizontalLayout_3) + self.stackedWidget = QtWidgets.QStackedWidget(Form) + self.stackedWidget.setObjectName("stackedWidget") + self.page_3 = QtWidgets.QWidget() + self.page_3.setObjectName("page_3") + self.stackedWidget.addWidget(self.page_3) + self.page_4 = QtWidgets.QWidget() + self.page_4.setObjectName("page_4") + self.stackedWidget.addWidget(self.page_4) + self.verticalLayout.addWidget(self.stackedWidget) + + self.retranslateUi(Form) + self.stackedWidget.setCurrentIndex(1) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) + self.btn_analysis.setText(_translate("Form", "统计信息")) + self.btn_emotion.setText(_translate("Form", "情感分析")) + self.btn_report.setText(_translate("Form", "年度报告")) + self.toolButton_output.setText(_translate("Form", "导出聊天记录")) diff --git a/app/ui/contact/contactUi.py b/app/ui/contact/contactUi.py new file mode 100644 index 0000000..5d87a09 --- /dev/null +++ b/app/ui/contact/contactUi.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'contactUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(840, 752) + Form.setStyleSheet("background: rgb(240, 240, 240);") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(Form) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setSpacing(6) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label = QtWidgets.QLabel(Form) + self.label.setText("") + self.label.setObjectName("label") + self.horizontalLayout.addWidget(self.label) + self.lineEdit = QtWidgets.QLineEdit(Form) + self.lineEdit.setMinimumSize(QtCore.QSize(200, 30)) + self.lineEdit.setMaximumSize(QtCore.QSize(200, 16777215)) + self.lineEdit.setStyleSheet("") + self.lineEdit.setCursorMoveStyle(QtCore.Qt.VisualMoveStyle) + self.lineEdit.setObjectName("lineEdit") + self.horizontalLayout.addWidget(self.lineEdit) + self.label_2 = QtWidgets.QLabel(Form) + self.label_2.setMinimumSize(QtCore.QSize(30, 0)) + self.label_2.setMaximumSize(QtCore.QSize(30, 16777215)) + self.label_2.setText("") + self.label_2.setObjectName("label_2") + self.horizontalLayout.addWidget(self.label_2) + self.verticalLayout.addLayout(self.horizontalLayout) + self.verticalLayout_2.addLayout(self.verticalLayout) + self.listWidget = QtWidgets.QListWidget(Form) + self.listWidget.setMinimumSize(QtCore.QSize(250, 0)) + self.listWidget.setMaximumSize(QtCore.QSize(250, 16777215)) + self.listWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.listWidget.setObjectName("listWidget") + self.verticalLayout_2.addWidget(self.listWidget) + self.verticalLayout_2.setStretch(1, 1) + self.horizontalLayout_2.addLayout(self.verticalLayout_2) + self.stackedWidget = QtWidgets.QStackedWidget(Form) + self.stackedWidget.setObjectName("stackedWidget") + self.horizontalLayout_2.addWidget(self.stackedWidget) + self.horizontalLayout_2.setStretch(1, 1) + + self.retranslateUi(Form) + self.stackedWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) diff --git a/app/ui/contact/contact_window.py b/app/ui/contact/contact_window.py new file mode 100644 index 0000000..499cf7f --- /dev/null +++ b/app/ui/contact/contact_window.py @@ -0,0 +1,196 @@ +from typing import List + +from PyQt5.QtCore import QThread, pyqtSignal +from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit, QLabel + +from app.DataBase import micro_msg_db, misc_db, close_db +from app.components import ContactQListWidgetItem, ScrollBar +from app.person import Contact +from app.ui.Icon import Icon +from .contactInfo import ContactInfo +from .contactUi import Ui_Form +from ...DataBase.hard_link import decodeExtraBuf +from ...util import search + +# 美化样式表 +Stylesheet = """ +QPushButton{ + background-color: transparent; +} +QPushButton:hover { + background-color: lightgray; +} +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; + border:none; +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 250px; + max-width: 250px; + min-height: 80px; + max-height: 1200px; + color: black; + border:none; +} +QListWidget::item{ + height:60px; + width:250px; +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + background: rgb(230, 235, 240); + border-left:none; + color: black; + font-weight: bold; +} +/*鼠标悬停颜色*/ +HistoryPanel::item:hover { + background: rgb(52, 52, 52); +} +""" + + +class ContactWindow(QWidget, Ui_Form): + load_finish_signal = pyqtSignal(bool) + + def __init__(self, parent=None): + super().__init__(parent) + self.now_index = 0 + self.show_thread = None + self.setupUi(self) + self.ok_flag = False + self.setStyleSheet(Stylesheet) + self.init_ui() + self.contacts = [[], []] + self.contacts_list:List[Contact] = [] + self.show_contacts() + self.contact_info_window = None + + def init_ui(self): + search_action = QAction(self.lineEdit) + search_action.setIcon(Icon.Search_Icon) + self.lineEdit.addAction(search_action, QLineEdit.LeadingPosition) + self.lineEdit.returnPressed.connect(self.search_contact) + self.listWidget.clear() + self.listWidget.setVerticalScrollBar(ScrollBar()) + self.listWidget.currentRowChanged.connect(self.setCurrentIndex) + self.listWidget.setCurrentRow(0) + self.stackedWidget.setCurrentIndex(0) + + def show_contacts(self): + """ + 创建一个子线程来获取联系人并通过信号传递联系人信息 + @return: + """ + # return + if self.ok_flag: + return + micro_msg_db.init_database() + if not micro_msg_db.open_flag: + QMessageBox.critical(self, "错误", "数据库不存在\n请先解密数据库") + self.show_thread = ShowThread() + self.show_thread.showSingal.connect(self.show_contact) + self.show_thread.load_finish_signal.connect(self.load_finish_signal) + self.show_thread.start() + return + + self.show_thread = ShowContactThread() + self.show_thread.showSingal.connect(self.show_contact) + self.show_thread.load_finish_signal.connect(self.load_finish_signal) + self.show_thread.start() + self.ok_flag = True + + def search_contact(self): + """ + 搜索联系人 + @return: + """ + keyword = self.lineEdit.text() + if keyword: + index = search.search_by_content(keyword, self.contacts) + self.listWidget.setCurrentRow(index) + self.stackedWidget.setCurrentIndex(index) + + def show_contact(self, contact: Contact): + """ + 显示联系人 + @param contact:联系人对象 + @return: + """ + # return + self.contacts[0].append(contact.remark) + self.contacts[1].append(contact.nickName) + contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) + self.listWidget.addItem(contact_item) + self.listWidget.setItemWidget(contact_item, contact_item.widget) + self.contacts_list.append(contact) + if self.contact_info_window is None: + self.contact_info_window = ContactInfo(contact) + self.stackedWidget.addWidget(self.contact_info_window) + + def setCurrentIndex(self, row): + # print(row) + item = self.listWidget.item(self.now_index) + item.dis_select() + self.stackedWidget.setCurrentIndex(row) + item = self.listWidget.item(row) + item.select() + self.now_index = row + # self.stackedWidget.setCurrentIndex(row) + self.contact_info_window.set_contact(self.contacts_list[row]) + + +class ShowContactThread(QThread): + showSingal = pyqtSignal(Contact) + load_finish_signal = pyqtSignal(bool) + + # heightSingal = pyqtSignal(int) + def __init__(self): + super().__init__() + + def run(self) -> None: + contact_info_lists = micro_msg_db.get_contact() + if not contact_info_lists: + self.load_finish_signal.emit(True) + # QMessageBox.critical(None, "错误", "数据库错误,请重启电脑后重试") + close_db() + import shutil + try: + shutil.rmtree('./app/Database/Msg') + except: + pass + return + for contact_info_list in contact_info_lists: + # UserName, Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl,ExtraBuf + detail = decodeExtraBuf(contact_info_list[9]) + contact_info = { + 'UserName': contact_info_list[0], + 'Alias': contact_info_list[1], + 'Type': contact_info_list[2], + 'Remark': contact_info_list[3], + 'NickName': contact_info_list[4], + 'smallHeadImgUrl': contact_info_list[7], + 'detail': detail, + 'label_name': contact_info_list[10], + } + contact = Contact(contact_info) + contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid) + contact.set_avatar(contact.smallHeadImgBLOG) + self.showSingal.emit(contact) + # pprint(contact.__dict__) + self.load_finish_signal.emit(True) + + +class ShowThread(QThread): + showSingal = pyqtSignal(Contact) + load_finish_signal = pyqtSignal(bool) + + # heightSingal = pyqtSignal(int) + def __init__(self): + super().__init__() + + def run(self) -> None: + QThread.sleep(1) + self.load_finish_signal.emit(True) diff --git a/app/ui/contact/export/__init__.py b/app/ui/contact/export/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/ui/contact/export/exportUi.py b/app/ui/contact/export/exportUi.py new file mode 100644 index 0000000..4177ab3 --- /dev/null +++ b/app/ui/contact/export/exportUi.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'exportUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(553, 394) + self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setObjectName("label_3") + self.horizontalLayout.addWidget(self.label_3) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.btn_select_all = QtWidgets.QPushButton(Dialog) + self.btn_select_all.setObjectName("btn_select_all") + self.horizontalLayout.addWidget(self.btn_select_all) + self.comboBox_time = QtWidgets.QComboBox(Dialog) + self.comboBox_time.setObjectName("comboBox_time") + self.comboBox_time.addItem("") + self.comboBox_time.addItem("") + self.comboBox_time.addItem("") + self.horizontalLayout.addWidget(self.comboBox_time) + self.comboBox_type = QtWidgets.QComboBox(Dialog) + self.comboBox_type.setObjectName("comboBox_type") + self.comboBox_type.addItem("") + self.comboBox_type.addItem("") + self.horizontalLayout.addWidget(self.comboBox_type) + self.verticalLayout.addLayout(self.horizontalLayout) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setObjectName("label_2") + self.verticalLayout_2.addWidget(self.label_2) + self.horizontalLayout_2.addLayout(self.verticalLayout_2) + self.horizontalLayout_2.setStretch(0, 1) + self.verticalLayout.addLayout(self.horizontalLayout_2) + self.textBrowser = QtWidgets.QTextBrowser(Dialog) + self.textBrowser.setObjectName("textBrowser") + self.verticalLayout.addWidget(self.textBrowser) + self.progressBar = QtWidgets.QProgressBar(Dialog) + self.progressBar.setProperty("value", 24) + self.progressBar.setObjectName("progressBar") + self.verticalLayout.addWidget(self.progressBar) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.label_time = QtWidgets.QLabel(Dialog) + self.label_time.setText("") + self.label_time.setObjectName("label_time") + self.horizontalLayout_3.addWidget(self.label_time) + self.label_process = QtWidgets.QLabel(Dialog) + self.label_process.setText("") + self.label_process.setObjectName("label_process") + self.horizontalLayout_3.addWidget(self.label_process) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem1) + self.btn_start = QtWidgets.QPushButton(Dialog) + self.btn_start.setStyleSheet("QPushButton{\n" +" background-color: rgb(233,233,233);\n" +" border-radius: 5px;\n" +" padding: 10px;\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"border:1px solid rgb(31,156,220) ;\n" +"}") + self.btn_start.setObjectName("btn_start") + self.horizontalLayout_3.addWidget(self.btn_start) + self.btn_cancel = QtWidgets.QPushButton(Dialog) + self.btn_cancel.setStyleSheet("QPushButton{\n" +" background-color: rgb(233,233,233);\n" +" border-radius: 5px;\n" +" padding: 10px;\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"border:1px solid rgb(31,156,220) ;\n" +"}") + self.btn_cancel.setObjectName("btn_cancel") + self.horizontalLayout_3.addWidget(self.btn_cancel) + self.verticalLayout.addLayout(self.horizontalLayout_3) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_3.setText(_translate("Dialog", "导出过程中请不要退出")) + self.btn_select_all.setText(_translate("Dialog", "全选")) + self.comboBox_time.setItemText(0, _translate("Dialog", "全部时间")) + self.comboBox_time.setItemText(1, _translate("Dialog", "最近三个月")) + self.comboBox_time.setItemText(2, _translate("Dialog", "自定义时间")) + self.comboBox_type.setItemText(0, _translate("Dialog", "全部聊天记录")) + self.comboBox_type.setItemText(1, _translate("Dialog", "不含图片/视频/文件")) + self.label_2.setText(_translate("Dialog", "消息类型")) + self.btn_start.setText(_translate("Dialog", "开始")) + self.btn_cancel.setText(_translate("Dialog", "取消")) diff --git a/app/ui/contact/export/export_dialog.py b/app/ui/contact/export/export_dialog.py new file mode 100644 index 0000000..91ce09c --- /dev/null +++ b/app/ui/contact/export/export_dialog.py @@ -0,0 +1,229 @@ +import os +import sys +import time +from datetime import datetime, timedelta +from PyQt5.QtCore import QTimer, QObject, pyqtSignal +from PyQt5.QtGui import QTextCursor +from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox + +from app.DataBase import msg_db +from app.components import ScrollBar +from app.config import OUTPUT_DIR +from app.ui.menu.export_time_range import TimeRangeDialog +from .exportUi import Ui_Dialog +from app.util.exporter.output import Output + +types = { + '文本': 1, + '图片': 3, + '语音': 34, + '视频': 43, + '表情包': 47, + '音乐与音频': 4903, + '文件': 4906, + '分享卡片': 4905, + '转账': 492000, + '音视频通话': 50, + '拍一拍等系统消息': 10000, +} +Stylesheet = """ +""" + + +class EmittingStr(QObject): + textWritten = pyqtSignal(str) # 定义一个发送str的信号 + + def write(self, text): + self.textWritten.emit(str(text)) + + +class ExportDialog(QDialog, Ui_Dialog): + def __init__(self, contact=None, title="选择导出的类型", file_type="csv", parent=None): + super(ExportDialog, self).__init__(parent) + self.select_all_flag = False + self.setupUi(self) + self.setStyleSheet(Stylesheet) + # 下面将输出重定向到textBrowser中 + sys.stdout = EmittingStr(textWritten=self.outputWritten) + sys.stderr = EmittingStr(textWritten=self.outputWritten) + scroll_bar = ScrollBar() + self.textBrowser.setVerticalScrollBar(scroll_bar) + self.contact = contact + if file_type == 'html': + self.export_type = Output.HTML + self.export_choices = {"文本": True, "图片": True, "语音": False, "视频": False, "表情包": False, + '音乐与音频': False, '分享卡片': False, '文件': False, + '转账': False, '音视频通话': False, '拍一拍等系统消息': True} # 定义导出的数据类型,默认全部选择 + elif file_type == 'csv': + self.export_type = Output.CSV + self.export_choices = {"文本": True, "图片": True, "视频": True, "表情包": True} # 定义导出的数据类型,默认全部选择 + elif file_type == 'txt': + self.export_type = Output.TXT + self.export_choices = {"文本": True, "图片": True, "语音": True, "视频": True, "表情包": True, + '音乐与音频': True, '分享卡片': True, '文件': True, + '拍一拍等系统消息': True} # 定义导出的数据类型,默认全部选择 + elif file_type == 'ai_txt': + self.export_type = Output.AI_TXT + self.export_choices = {"文本": True} # 定义导出的数据类型,默认全部选择 + elif file_type == 'docx': + self.export_type = Output.DOCX + self.export_choices = {"文本": True, "图片": False, "语音": False, "视频": False, + "表情包": False, '拍一拍等系统消息': True} # 定义导出的数据类型,默认全部选择 + elif file_type == 'json': + self.export_type = Output.JSON + self.export_choices = {} # 定义导出的数据类型,默认全部选择 + else: + self.export_choices = {"文本": True, "图片": True, "视频": True, "表情包": True} # 定义导出的数据类型,默认全部选择 + self.setWindowTitle(title) + self.resize(400, 300) + self.worker = None # 导出线程 + + for export_type, default_state in self.export_choices.items(): + checkbox = QCheckBox(export_type) + checkbox.setChecked(default_state) + self.verticalLayout_2.addWidget(checkbox) + + self.btn_select_all.clicked.connect(self.select_all) + self.btn_start.clicked.connect(self.export_data) + self.btn_cancel.clicked.connect(self.reject) # 使用reject关闭对话框 + self.comboBox_time.activated.connect(self.set_export_date) + self.timer = QTimer(self) + self.time = 0 + self.total_msg_num = 99999 # 总的消息个数 + self.num = 0 # 当前完成的消息个数 + self.timer.timeout.connect(self.update_elapsed_time) + self.time_range = None + + def export_data(self): + self.btn_start.setEnabled(False) + self.btn_cancel.setEnabled(False) + # 在这里获取用户选择的导出数据类型 + selected_types = {types[export_type]: checkbox.isChecked() for export_type, checkbox in + zip(self.export_choices.keys(), self.findChildren(QCheckBox))} + + # 在这里根据用户选择的数据类型执行导出操作 + print("选择的数据类型:", selected_types) + self.worker = Output(self.contact, type_=self.export_type, message_types=selected_types, + time_range=self.time_range) + self.worker.progressSignal.connect(self.update_progress) + self.worker.okSignal.connect(self.export_finished) + self.worker.rangeSignal.connect(self.set_total_msg_num) + self.worker.start() + # 启动定时器,每1000毫秒更新一次任务进度 + self.timer.start(1000) + self.start_time = time.time() + # self.accept() # 使用accept关闭对话框 + + def outputWritten(self, text): + cursor = self.textBrowser.textCursor() + cursor.movePosition(QTextCursor.End) + cursor.insertText(text) + self.textBrowser.setTextCursor(cursor) + self.textBrowser.ensureCursorVisible() + + def set_export_date(self): + date_range = self.comboBox_time.currentText() + if date_range == '全部时间': + pass + elif date_range == '最近三个月': + + # 获取今天的日期和时间 + today = datetime.now() + + # 获取今天的日期 + today_date = today.date() + + # 获取今天的24:00:00的时间戳 + today_midnight = datetime.combine(today_date, datetime.min.time()) + timedelta(days=1) + today_midnight_timestamp = int(today_midnight.timestamp()) + + # 获取三个月前的日期 + three_months_ago = today - timedelta(days=90) + + # 获取三个月前的00:00:00的时间戳 + three_months_ago_date = three_months_ago.date() + three_months_ago_midnight = datetime.combine(three_months_ago_date, datetime.min.time()) + three_months_ago_midnight_timestamp = int(three_months_ago_midnight.timestamp()) + self.time_range = (three_months_ago_midnight_timestamp, today_midnight_timestamp) + + elif date_range == '自定义时间': + date_range = None + chat_calendar = msg_db.get_messages_calendar(self.contact.wxid) + if chat_calendar: + start_time = datetime.strptime(chat_calendar[0], "%Y-%m-%d") + end_time = datetime.strptime(chat_calendar[-1], "%Y-%m-%d") + date_range = (start_time.date(), end_time.date()) + self.time_range_view = TimeRangeDialog(date_range=date_range, parent=self) + self.time_range_view.date_range_signal.connect(self.set_time_range) + self.time_range_view.show() + self.comboBox_time.setCurrentIndex(0) + # QMessageBox.warning(self, + # "别急别急", + # "马上就实现该功能" + # ) + + def set_time_range(self, time_range): + self.time_range = time_range + self.comboBox_time.setCurrentIndex(2) + + def set_total_msg_num(self, num): + self.total_msg_num = num + # b''+num +(1,1) + + def export_finished(self): + self.btn_start.setEnabled(True) + self.btn_cancel.setEnabled(True) + self.time = 0 + end_time = time.time() + print(f'总耗时:{end_time - self.start_time}s') + reply = QMessageBox(self) + reply.setIcon(QMessageBox.Information) + reply.setWindowTitle('OK') + reply.setText( + f"导出聊天记录成功\n在{OUTPUT_DIR}目录下(跟exe文件在一起)\n{os.path.normpath(os.path.join(os.getcwd(), OUTPUT_DIR))}") + reply.addButton("确认", QMessageBox.AcceptRole) + reply.addButton("取消", QMessageBox.RejectRole) + api = reply.exec_() + # 在任务完成时重置sys.stdout + sys.stdout = sys.__stdout__ + self.accept() + + def select_all(self): + self.select_all_flag = not self.select_all_flag + print('全选', self.select_all_flag) + if self.select_all_flag: + for checkbox in self.findChildren(QCheckBox): + checkbox.setChecked(True) + self.btn_select_all.setText('全不选') + else: + for checkbox in self.findChildren(QCheckBox): + checkbox.setChecked(False) + self.btn_select_all.setText('全选') + + def update_elapsed_time(self): + self.time += 1 + self.label_time.setText(f"耗时: {self.time}s") + + def update_progress(self, progress_percentage): + self.num += 1 + progress_percentage = int((self.num) / self.total_msg_num * 100) + self.progressBar.setValue(progress_percentage) + self.label_process.setText(f"导出进度: {progress_percentage}%") + + def close(self): + sys.stdout = sys.__stdout__ + del self.worker + super().close() + + +if __name__ == '__main__': + import sys + + app = QApplication(sys.argv) + dialog = ExportDialog() + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + if result == QDialog.Accepted: + print("用户点击了导出按钮") + else: + print("用户点击了取消按钮") + sys.exit(app.exec_()) diff --git a/app/ui/contact/userinfo/__init__.py b/app/ui/contact/userinfo/__init__.py new file mode 100644 index 0000000..6d32454 --- /dev/null +++ b/app/ui/contact/userinfo/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +""" +@File : __init__.py.py +@Author : Shuaikang Zhou +@Time : 2022/12/24 10:34 +@IDE : Pycharm +@Version : Python3.10 +@comment : ··· +""" diff --git a/app/ui/contact/userinfo/userinfo.py b/app/ui/contact/userinfo/userinfo.py new file mode 100644 index 0000000..1ce0b3a --- /dev/null +++ b/app/ui/contact/userinfo/userinfo.py @@ -0,0 +1,62 @@ +from PyQt5.QtGui import QPixmap +from PyQt5.QtWidgets import * + +from app.person import Contact +from app.util.region_conversion import conversion_region_to_chinese +from .userinfoUi import Ui_Frame +from ...Icon import Icon + + +class UserinfoController(QWidget, Ui_Frame): + def __init__(self, contact, parent=None): + super().__init__(parent) + self.setupUi(self) + self.l_remark.setText(contact.remark) + self.l_avatar.setPixmap(contact.avatar) + self.l_nickname.setText(f'昵称:{contact.nickName}') + self.l_username.setText(f'微信号:{contact.alias}') + self.lineEdit.setText(contact.remark) + # self.l_region.setVisible(False) + self.l_contact_label.setText(contact.label_name) + if contact.detail: + self.l_signature.setText(contact.detail.get('signature')) + self.l_tel.setText(contact.detail.get('telephone')) + region = contact.detail.get('region') + area = conversion_region_to_chinese(region) + self.l_region.setText(f'地区:{area}') + gender_code = contact.detail.get('gender') + gender = '' + pixmap =QPixmap() + if gender_code == 1: + gender = '男' + pixmap = QPixmap(Icon.Man_Icon_path) + elif gender_code == 2: + gender = '女' + pixmap = QPixmap(Icon.Woman_Icon_path) + self.l_gender.setPixmap(pixmap) + # self.l_gender.setText() + def set_contact(self,contact:Contact): + self.l_remark.setText(contact.remark) + self.l_avatar.setPixmap(contact.avatar) + self.l_nickname.setText(f'昵称:{contact.nickName}') + self.l_username.setText(f'微信号:{contact.alias}') + self.lineEdit.setText(contact.remark) + # self.l_region.setVisible(False) + self.l_contact_label.setText(contact.label_name) + if contact.detail: + self.l_signature.setText(contact.detail.get('signature')) + self.l_tel.setText(contact.detail.get('telephone')) + region = contact.detail.get('region') + area = conversion_region_to_chinese(region) + self.l_region.setText(f'地区:{area}') + gender_code = contact.detail.get('gender') + gender = '' + pixmap = QPixmap() + if gender_code == 1: + gender = '男' + pixmap = QPixmap(Icon.Man_Icon_path) + elif gender_code == 2: + gender = '女' + pixmap = QPixmap(Icon.Woman_Icon_path) + self.l_gender.setPixmap(pixmap) + # self.l_gender.setText() \ No newline at end of file diff --git a/app/ui/contact/userinfo/userinfoUi.py b/app/ui/contact/userinfo/userinfoUi.py new file mode 100644 index 0000000..e7c7c15 --- /dev/null +++ b/app/ui/contact/userinfo/userinfoUi.py @@ -0,0 +1,168 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'userinfoUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Frame(object): + def setupUi(self, Frame): + Frame.setObjectName("Frame") + Frame.resize(624, 720) + Frame.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor)) + Frame.setMouseTracking(True) + Frame.setTabletTracking(True) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(Frame) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + spacerItem = QtWidgets.QSpacerItem(162, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem1) + self.gridLayout_2 = QtWidgets.QGridLayout() + self.gridLayout_2.setVerticalSpacing(2) + self.gridLayout_2.setObjectName("gridLayout_2") + self.l_avatar = QtWidgets.QLabel(Frame) + self.l_avatar.setMinimumSize(QtCore.QSize(80, 80)) + self.l_avatar.setMaximumSize(QtCore.QSize(80, 80)) + self.l_avatar.setText("") + self.l_avatar.setPixmap(QtGui.QPixmap("../../../a_img/be0fa6c0c4707fb5f7b37b660de826d3.jpg")) + self.l_avatar.setScaledContents(True) + self.l_avatar.setAlignment(QtCore.Qt.AlignCenter) + self.l_avatar.setObjectName("l_avatar") + self.gridLayout_2.addWidget(self.l_avatar, 0, 0, 4, 1) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.l_remark = QtWidgets.QLabel(Frame) + self.l_remark.setMinimumSize(QtCore.QSize(0, 30)) + self.l_remark.setMaximumSize(QtCore.QSize(16777215, 30)) + font = QtGui.QFont() + font.setPointSize(15) + self.l_remark.setFont(font) + self.l_remark.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_remark.setObjectName("l_remark") + self.horizontalLayout.addWidget(self.l_remark) + self.l_gender = QtWidgets.QLabel(Frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.l_gender.sizePolicy().hasHeightForWidth()) + self.l_gender.setSizePolicy(sizePolicy) + self.l_gender.setText("") + self.l_gender.setObjectName("l_gender") + self.horizontalLayout.addWidget(self.l_gender) + self.gridLayout_2.addLayout(self.horizontalLayout, 0, 1, 1, 1) + self.l_nickname = QtWidgets.QLabel(Frame) + self.l_nickname.setMinimumSize(QtCore.QSize(0, 20)) + self.l_nickname.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.l_nickname.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_nickname.setObjectName("l_nickname") + self.gridLayout_2.addWidget(self.l_nickname, 1, 1, 1, 1) + self.l_username = QtWidgets.QLabel(Frame) + self.l_username.setMinimumSize(QtCore.QSize(0, 20)) + self.l_username.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.l_username.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_username.setObjectName("l_username") + self.gridLayout_2.addWidget(self.l_username, 2, 1, 1, 1) + self.l_region = QtWidgets.QLabel(Frame) + self.l_region.setText("") + self.l_region.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_region.setObjectName("l_region") + self.gridLayout_2.addWidget(self.l_region, 3, 1, 1, 1) + self.verticalLayout.addLayout(self.gridLayout_2) + spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem2) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.label = QtWidgets.QLabel(Frame) + self.label.setMinimumSize(QtCore.QSize(80, 0)) + self.label.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setPointSize(15) + self.label.setFont(font) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.lineEdit = QtWidgets.QLineEdit(Frame) + self.lineEdit.setMinimumSize(QtCore.QSize(0, 25)) + self.lineEdit.setMaximumSize(QtCore.QSize(16777215, 25)) + font = QtGui.QFont() + font.setPointSize(15) + self.lineEdit.setFont(font) + self.lineEdit.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) + self.lineEdit.setAutoFillBackground(False) + self.lineEdit.setStyleSheet("\n" +" background:transparent;border-width:0;border-style:outset\n" +" ") + self.lineEdit.setObjectName("lineEdit") + self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(Frame) + self.label_4.setMinimumSize(QtCore.QSize(80, 0)) + self.label_4.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setPointSize(15) + self.label_4.setFont(font) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1) + self.l_tel = QtWidgets.QLabel(Frame) + self.l_tel.setText("") + self.l_tel.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_tel.setObjectName("l_tel") + self.gridLayout.addWidget(self.l_tel, 1, 1, 1, 1) + self.label_3 = QtWidgets.QLabel(Frame) + self.label_3.setMinimumSize(QtCore.QSize(80, 0)) + self.label_3.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setPointSize(15) + self.label_3.setFont(font) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1) + self.l_contact_label = QtWidgets.QLabel(Frame) + self.l_contact_label.setText("") + self.l_contact_label.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_contact_label.setObjectName("l_contact_label") + self.gridLayout.addWidget(self.l_contact_label, 2, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(Frame) + self.label_2.setMinimumSize(QtCore.QSize(0, 0)) + self.label_2.setMaximumSize(QtCore.QSize(100, 16777215)) + font = QtGui.QFont() + font.setPointSize(15) + self.label_2.setFont(font) + self.label_2.setWordWrap(False) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 3, 0, 1, 1) + self.l_signature = QtWidgets.QLabel(Frame) + self.l_signature.setMinimumSize(QtCore.QSize(300, 0)) + self.l_signature.setMaximumSize(QtCore.QSize(300, 100)) + self.l_signature.setText("") + self.l_signature.setWordWrap(True) + self.l_signature.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextSelectableByMouse) + self.l_signature.setObjectName("l_signature") + self.gridLayout.addWidget(self.l_signature, 3, 1, 1, 1) + self.verticalLayout.addLayout(self.gridLayout) + spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem3) + self.horizontalLayout_2.addLayout(self.verticalLayout) + spacerItem4 = QtWidgets.QSpacerItem(162, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem4) + + self.retranslateUi(Frame) + QtCore.QMetaObject.connectSlotsByName(Frame) + + def retranslateUi(self, Frame): + _translate = QtCore.QCoreApplication.translate + Frame.setWindowTitle(_translate("Frame", "Frame")) + self.l_remark.setText(_translate("Frame", "曹雨萱")) + self.l_nickname.setText(_translate("Frame", "昵称:997")) + self.l_username.setText(_translate("Frame", "账号:TextLabel")) + self.label.setText(_translate("Frame", "备注名")) + self.lineEdit.setText(_translate("Frame", "曹雨萱")) + self.label_4.setText(_translate("Frame", "电话")) + self.label_3.setText(_translate("Frame", "标签")) + self.label_2.setText(_translate("Frame", "个性签名")) diff --git a/app/ui/home/__init__.py b/app/ui/home/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/ui/home/home_window.py b/app/ui/home/home_window.py new file mode 100644 index 0000000..54f9861 --- /dev/null +++ b/app/ui/home/home_window.py @@ -0,0 +1,79 @@ +from PyQt5.QtCore import Qt, pyqtSignal, QThread, QUrl +from PyQt5.QtGui import QFont, QDesktopServices +from PyQt5.QtWidgets import QWidget, QMessageBox + +from app.ui.Icon import Icon + +from .home_windowUi import Ui_Dialog +from ...person import Me + +Stylesheet = """ +QPushButton{ + border-radius: 5px; + padding: 8px; + border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ + border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ +} +QPushButton:hover { + background-color: lightgray; +} +""" + + +class HomeWindow(QWidget, Ui_Dialog): + load_finish_signal = pyqtSignal(bool) + + def __init__(self, parent=None): + super().__init__(parent) + self.setupUi(self) + self.init_ui() + self.setStyleSheet(Stylesheet) + self.load_finish_signal.emit(True) + self.btn_report.clicked.connect(self.report) + self.btn_save.clicked.connect(self.save_info) + + def init_ui(self): + self.label_wxid.setText(Me().wxid) + self.lineEdit_name.setText(Me().name) + self.lineEdit_phone.setText(Me().mobile) + + def save_info(self): + if self.lineEdit_name.text(): + Me().name = self.lineEdit_name.text() + else: + QMessageBox.critical(self, "错误", + "昵称不能为空") + return + if self.lineEdit_phone.text(): + Me().mobile = self.lineEdit_phone.text() + else: + QMessageBox.critical(self, "错误", + "手机号不能为空") + return + Me().save_info() + QMessageBox.information(self, "修改成功", + "个人信息修改成功") + + def report(self): + time_range = ['2023-01-01 00:00:00', '2024-02-10 00:00:00'] + self.report_thread = ReportThread(Me(), time_range) + self.report_thread.start() + QDesktopServices.openUrl(QUrl(f"http://127.0.0.1:21314/")) + + +class ReportThread(QThread): + okSignal = pyqtSignal(bool) + + def __init__(self, contact, time_range=None): + super().__init__() + self.contact = contact + self.time_range = time_range + + def run(self): + from app.web_ui import web + web.contact = self.contact + web.time_range = self.time_range + web.run(port='21314') + self.okSignal.emit(True) diff --git a/app/ui/home/home_windowUi.py b/app/ui/home/home_windowUi.py new file mode 100644 index 0000000..616f542 --- /dev/null +++ b/app/ui/home/home_windowUi.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'home_windowUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(590, 547) + font = QtGui.QFont() + font.setFamily("微软雅黑") + Dialog.setFont(font) + self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout_2.setObjectName("verticalLayout_2") + spacerItem = QtWidgets.QSpacerItem(20, 157, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem1) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.btn_report = QtWidgets.QPushButton(Dialog) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(30) + self.btn_report.setFont(font) + self.btn_report.setObjectName("btn_report") + self.verticalLayout.addWidget(self.btn_report) + self.label = QtWidgets.QLabel(Dialog) + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.verticalLayout.addWidget(self.label) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 0, 0, 1, 1) + self.lineEdit_phone = QtWidgets.QLineEdit(Dialog) + self.lineEdit_phone.setStyleSheet("background:transparent;\n" +"\n" +" border-radius:5px;\n" +" border-top: 0px solid #b2e281;\n" +" border-bottom: 2px solid black;\n" +" border-right: 0px solid #b2e281;\n" +" border-left: 0px solid #b2e281;\n" +"\n" +"\n" +" border-style:outset\n" +" ") + self.lineEdit_phone.setFrame(False) + self.lineEdit_phone.setObjectName("lineEdit_phone") + self.gridLayout.addWidget(self.lineEdit_phone, 0, 1, 1, 1) + self.lineEdit_name = QtWidgets.QLineEdit(Dialog) + self.lineEdit_name.setStyleSheet("background:transparent;\n" +"\n" +" border-radius:5px;\n" +" border-top: 0px solid #b2e281;\n" +" border-bottom: 2px solid black;\n" +" border-right: 0px solid #b2e281;\n" +" border-left: 0px solid #b2e281;\n" +"\n" +"\n" +" border-style:outset\n" +" ") + self.lineEdit_name.setFrame(False) + self.lineEdit_name.setObjectName("lineEdit_name") + self.gridLayout.addWidget(self.lineEdit_name, 1, 1, 1, 1) + self.label_wxid = QtWidgets.QLabel(Dialog) + self.label_wxid.setText("") + self.label_wxid.setObjectName("label_wxid") + self.gridLayout.addWidget(self.label_wxid, 2, 1, 1, 1) + self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5.setObjectName("label_5") + self.gridLayout.addWidget(self.label_5, 1, 0, 1, 1) + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setObjectName("label_6") + self.gridLayout.addWidget(self.label_6, 2, 0, 1, 1) + self.verticalLayout.addLayout(self.gridLayout) + self.btn_save = QtWidgets.QPushButton(Dialog) + self.btn_save.setObjectName("btn_save") + self.verticalLayout.addWidget(self.btn_save) + self.horizontalLayout.addLayout(self.verticalLayout) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem2) + self.verticalLayout_2.addLayout(self.horizontalLayout) + spacerItem3 = QtWidgets.QSpacerItem(20, 157, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem3) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.btn_report.setText(_translate("Dialog", "我的年度聊天报告")) + self.label.setText(_translate("Dialog", "修改个人信息")) + self.label_4.setText(_translate("Dialog", "手机号")) + self.label_5.setText(_translate("Dialog", "微信昵称")) + self.label_6.setText(_translate("Dialog", "wxid")) + self.btn_save.setText(_translate("Dialog", "保存")) diff --git a/app/ui/mainview.py b/app/ui/mainview.py new file mode 100644 index 0000000..f473ad8 --- /dev/null +++ b/app/ui/mainview.py @@ -0,0 +1,524 @@ +# -*- coding: utf-8 -*- +""" +@File : mainview.py +@Author : Shuaikang Zhou +@Time : 2022/12/13 15:07 +@IDE : Pycharm +@Version : Python3.10 +@comment : 主窗口 +""" +import json +import os.path +import subprocess +import sys +import time +import traceback +from urllib.parse import urljoin + +import requests +from PyQt5.QtCore import pyqtSignal, QThread, QSize, QUrl, Qt +from PyQt5.QtGui import QPixmap, QIcon, QDesktopServices +from PyQt5.QtWidgets import QMainWindow, QLabel, QMessageBox, QPushButton + +from app.DataBase import misc_db, micro_msg_db, close_db +from app.ui.Icon import Icon +from . import mainwindow +# 不能删,删了会出错 +from app.ui.chat import ChatWindow +from app.ui.contact import ContactWindow +from app.ui.tool.tool_window import ToolWindow +from app.ui.home.home_window import HomeWindow +from .menu.export import ExportDialog +from app.util.exporter.output import Output +from ..components.QCursorGif import QCursorGif +from ..config import INFO_FILE_PATH, DB_DIR, SERVER_API_URL, version +from ..log import logger +from ..person import Me + +try: + from app.ui.menu.about_dialog import AboutDialog +except ModuleNotFoundError: + logger.error(f'Python版本错误:Python>=3.10,仅支持3.10、3.11、3.12') + raise ValueError('Python版本错误:Python>=3.10,仅支持3.10、3.11、3.12') +# 美化样式表 +Stylesheet = """ +QMessageBox QPushButton{ + background-color: rgb(250,252,253); + border-radius: 5px; + padding: 8px; + border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ + border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ +} +QPushButton{ + background-color: rgb(238,244,249); + border-radius: 5px; + padding: 8px; +} +QPushButton:hover { + background-color: lightgray; +} +QWidget{ + background: rgb(238,244,249); +} +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; +} + +QMenu::item:selected { + color: black; + background: rgb(230, 235, 240); +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 120px; + max-width: 380px; + color: black; + border:none; +} +QListWidget::item{ + min-width: 80px; + max-width: 380px; + min-height: 60px; + max-height: 60px; +} +QListWidget::item:hover { + background: rgb(230, 235, 240); +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + background: rgb(230, 235, 240); + border-left: 2px solid rgb(62, 62, 62); + color: black; + font-weight: bold; +} +/*鼠标悬停颜色*/ +HistoryPanel::item:hover { + background: rgb(52, 52, 52); +} + +QCheckBox::indicator { + background: rgb(255, 255, 255); + Width:20px; + Height:20px; + border-radius: 10px +} +QCheckBox::indicator:unchecked{ + Width:20px; + Height:20px; + image: url(:/icons/icons/unselect.svg); +} +QCheckBox::indicator:checked{ + Width:20px; + Height:20px; + image: url(:/icons/icons/select.svg); +} +QScrollBar:vertical { + border-width: 0px; + border: none; + background:rgba(133, 135, 138, 0); + width:4px; + margin: 0px 0px 0px 0px; +} +QScrollBar::handle:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgb(133, 135, 138), stop: 0.5 rgb(133, 135, 138), stop:1 rgb(133, 135, 138)); + min-height: 20px; + max-height: 20px; + margin: 0 0px 0 0px; + border-radius: 2px; +} +QScrollBar::add-line:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgba(133, 135, 138, 0), stop: 0.5 rgba(133, 135, 138, 0), stop:1 rgba(133, 135, 138, 0)); + height: 0px; + border: none; + subcontrol-position: bottom; + subcontrol-origin: margin; +} +QScrollBar::sub-line:vertical { + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop: 0 rgba(133, 135, 138, 0), stop: 0.5 rgba(133, 135, 138, 0), stop:1 rgba(133, 135, 138, 0)); + height: 0 px; + border: none; + subcontrol-position: top; + subcontrol-origin: margin; +} +QScrollBar::sub-page:vertical { + background: rgba(133, 135, 138, 0); +} + +QScrollBar::add-page:vertical { + background: rgba(133, 135, 138, 0); +} +QProgressBar{ + height:22px; + text-align:center; + font-size:14px; + color:black; + border-radius:11px; + background:#EBEEF5; +} +QProgressBar::chunk{ + border-radius:11px; + background:qlineargradient(spread:pad,x1:0,y1:0,x2:1,y2:0,stop:0 #99ffff,stop:1 #9900ff); +} +QComboBox +{ + border-radius:3px; + border:0px ; + padding-top: 2px; + padding-left: 2px; +} +QComboBox:disabled +{ + background-color:rgba(50,50,50,200); + color:rgb(160,160,160); +} +QComboBox:hover +{ + background-color:rgba(230,230,230,200); + border:1px solid rgb(31,156,220) ; +} + /*下拉箭头的边框*/ +QComboBox::drop-down +{ + border:none; +} + + /*下拉箭头样式*/ +QComboBox::down-arrow +{ + right:0px;/*控制箭头左右偏移*/ + width: 16px; + height: 16px; + image: url(:/icons/icons/down.svg); +} + /*下拉箭头点击样式*/ +QComboBox::down-arrow:on +{ + width: 16px; + height: 16px; + image: url(:/icons/icons/up.svg); +} +QLineEdit +{ + background:transparent; + border-radius:10px; + border-top: 0px solid #b2e281; + border-bottom: 1px solid rgb(227,228,222); + border-right: 1px solid rgb(227,228,222); + border-left: 0px solid #b2e281; + border-style:outset; + background-color:rgb(247,248,252); +} +QLineEdit:hover +{ + background-color:rgb(238,241,248); +} +""" + +''' + + +/*点击combox的样式*/ +QComboBox:on +{ + border-radius:3px; + background-color:rgba(35,35,35); + font: 75 9pt "Microsoft YaHei"; + color:rgb(255,255,255); + border:1px solid rgb(31,156,220) ; +} +/*下拉框的样式*/ +QComboBox QAbstractItemView +{ + outline: 0px solid gray; /*取消选中虚线*/ + border: 1px solid rgb(31,156,220); + font: 75 9pt "Microsoft YaHei"; + color: rgb(255,255,255); + background-color: rgb(45,45,45); + selection-background-color: rgb(90,90,90); +} + /*选中每一项高度*/ +QComboBox QAbstractItemView::item + { + height: 25px; + } +/*选中每一项的字体颜色和背景颜色*/ +QComboBox QAbstractItemView::item:selected +{ + color: rgb(31,163,246); + background-color: rgb(90,90,90); +} + +''' + + +class Avatar(QLabel): + def __init__(self, parent=None): + super().__init__(parent) + + def mouseDoubleClickEvent(self, e): # 双击 + super().mouseDoubleClickEvent() + QDesktopServices.openUrl(QUrl("https://blog.lc044.love/post/7")) + + def mousePressEvent(self, e): # 单击 + super().mousePressEvent(e) + QDesktopServices.openUrl(QUrl("https://blog.lc044.love/post/7")) + + +class MainWinController(QMainWindow, mainwindow.Ui_MainWindow, QCursorGif): + exitSignal = pyqtSignal(bool) + okSignal = pyqtSignal(bool) + + # username = '' + def __init__(self, username, parent=None): + super(MainWinController, self).__init__(parent) + self.outputThread0 = None + self.outputThread = None + self.setupUi(self) + # self.myavatar = Avatar(self) + # self.setWindowIcon(Icon.MainWindow_Icon) + pixmap = QPixmap(Icon.logo_ico_path) + icon = QIcon(pixmap) + self.setWindowIcon(icon) + self.setStyleSheet(Stylesheet) + self.listWidget.clear() + self.resize(QSize(800, 600)) + self.info = QLabel(self) + self.info.setText('Tips ') + self.info.setAlignment(Qt.AlignRight) + self.statusbar.addPermanentWidget(self.info) + self.statusbar.showMessage('遇到问题可添加QQ群咨询', 5000) + self.load_flag = False + self.load_data() + self.load_num = 0 + self.label = QLabel(self) + self.label.setGeometry((self.width() - 300) // 2, (self.height() - 100) // 2, 300, 100) + self.label.setPixmap(QPixmap(':/icons/icons/loading.svg')) + self.menu_output.setIcon(Icon.Output) + self.action_output_CSV.setIcon(Icon.ToCSV) + self.action_output_CSV.triggered.connect(self.output) + self.action_output_contacts.setIcon(Icon.Output) + self.action_output_contacts.triggered.connect(self.output) + self.action_batch_export.setIcon(Icon.Output) + self.action_batch_export.triggered.connect(self.output) + self.action_desc.setIcon(Icon.Help_Icon) + self.action_update.setIcon(Icon.Update_Icon) + + def load_data(self, flag=True): + if os.path.exists(INFO_FILE_PATH): + with open(INFO_FILE_PATH, 'r', encoding='utf-8') as f: + dic = json.loads(f.read()) + wxid = dic.get('wxid') + if wxid: + me = Me() + me.wxid = dic.get('wxid') + me.name = dic.get('name') + me.nickName = dic.get('name') + me.remark = dic.get('name') + me.mobile = dic.get('mobile') + me.wx_dir = dic.get('wx_dir') + me.token = dic.get('token') + self.set_my_info(wxid) + self.load_flag = True + else: + pass + + def init_ui(self): + # 设置忙碌光标图片数组 + self.initCursor([':/icons/icons/Cursors/%d.png' % + i for i in range(8)]) + self.setCursorTimeout(100) + self.startBusy() + self.action_update.triggered.connect(self.update) + self.action_help_faq.triggered.connect( + lambda: QDesktopServices.openUrl(QUrl("https://memotrace.cn/doc/posts/error/"))) + self.about_view = AboutDialog(main_window=self, parent=self) + self.update_thread = UpdateThread(check_time=True) + self.update_thread.updateSignal.connect(self.show_update) + self.update_thread.start() + + def setCurrentIndex(self, row): + self.stackedWidget.setCurrentIndex(row) + if row == 2: + self.stackedWidget.currentWidget().show_contacts() + if row == 1: + self.stackedWidget.currentWidget().show_chats() + + def setWindow(self, window): + try: + window.load_finish_signal.connect(self.loading) + except: + pass + self.stackedWidget.addWidget(window) + + def set_my_info(self, wxid): + self.avatar = QPixmap() + img_bytes = misc_db.get_avatar_buffer(wxid) + if not img_bytes: + return + if img_bytes[:4] == b'\x89PNG': + self.avatar.loadFromData(img_bytes, format='PNG') + else: + self.avatar.loadFromData(img_bytes, format='jfif') + self.avatar.scaled(60, 60) + contact_info_list = micro_msg_db.get_contact_by_username(wxid) + if not contact_info_list: + close_db() + import shutil + try: + shutil.rmtree(DB_DIR) + except: + pass + QMessageBox.critical(self, "数据库错误", "数据库错误,请删除app文件夹后重启电脑再运行软件") + return + me = Me() + me.set_avatar(img_bytes) + me.smallHeadImgUrl = contact_info_list[7] + self.myavatar.setScaledContents(True) + self.myavatar.setPixmap(self.avatar) + + def stop_loading(self, a0): + self.label.setVisible(False) + self.stopBusy() + + def loading(self, a0): + self.load_num += 1 + if self.load_num == 1: + self.label.clear() + self.label.hide() + self.okSignal.emit(True) + self.listWidget.setVisible(True) + self.stackedWidget.setVisible(True) + self.stopBusy() + if self.load_flag: + self.listWidget.setCurrentRow(1) + self.stackedWidget.setCurrentIndex(1) + else: + self.listWidget.setCurrentRow(0) + self.stackedWidget.setCurrentIndex(0) + + def output(self): + # self.startBusy() + if self.sender() == self.action_output_CSV: + self.outputThread = Output(None, type_=Output.CSV_ALL) + self.outputThread.startSignal.connect(lambda x: self.startBusy()) + self.outputThread.okSignal.connect( + lambda x: self.message('聊天记录导出成功')) + self.outputThread.start() + elif self.sender() == self.action_output_contacts: + self.outputThread = Output(None, type_=Output.CONTACT_CSV) + self.outputThread.startSignal.connect(lambda x: self.startBusy()) + self.outputThread.okSignal.connect( + lambda x: self.message('联系人导出成功')) + self.outputThread.start() + elif self.sender() == self.action_batch_export: + dialog = ExportDialog(None, title='批量导出聊天记录', parent=self) + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + + def message(self, msg): + self.stopBusy() + QMessageBox.about(self, "提醒", msg) + + def update(self): + self.update_thread = UpdateThread() + self.update_thread.updateSignal.connect(self.show_update) + self.update_thread.start() + + def show_update(self, update_info): + if not update_info.get('update_available'): + QMessageBox.information(self, '更新通知', "当前已是最新版本") + return + detail = f''' + 当前版本:{version},最新版本:{update_info.get('latest_version')}
+ 更新内容: + {update_info.get('description')} +
查看详情 + ''' + + # 创建一个 QMessageBox 对象 + error_box = QMessageBox() + + # 设置对话框的标题 + error_box.setWindowTitle("更新通知") + pixmap = QPixmap(Icon.logo_ico_path) + icon = QIcon(pixmap) + error_box.setWindowIcon(icon) + # 设置对话框的文本消息 + error_box.setText(detail) + # 设置对话框的图标,使用 QMessageBox.Critical 作为图标类型 + error_box.setIcon(QMessageBox.Information) + # 添加一个“确定”按钮 + # 添加自定义按钮 + custom_button = error_box.addButton('更新', QMessageBox.ActionRole) + is_update_online = update_info.get('is_update_online') + custom_button.clicked.connect(lambda x: self.update_(update_info.get('download_url'), is_update_online)) + error_box.addButton(QMessageBox.Cancel) + # 显示对话框 + error_box.exec_() + + def update_(self, url, is_update_online): + QDesktopServices.openUrl(QUrl("https://memotrace.cn/")) + + def about(self): + """ + 关于 + """ + self.about_view.show() + + def decrypt_success(self): + QMessageBox.about(self, "解密成功", "请重新启动") + self.close() + + def closeEvent(self, event): + close_db() + + def close(self) -> bool: + close_db() + self.contact_window.close() + + super().close() + self.exitSignal.emit(True) + + +class UpdateThread(QThread): + updateSignal = pyqtSignal(dict) + + def __init__(self, check_time=False): + super().__init__() + self.check_time = check_time + + def run(self): + now_time = time.time() + try: + with open(INFO_FILE_PATH, "r", encoding="utf-8") as f: + data = json.load(f) + update_time = data.get('update_time') + if update_time: + if now_time - update_time < 14400 and self.check_time: + return + except: + os.makedirs(os.path.dirname(INFO_FILE_PATH), exist_ok=True) + data = { + 'update_time': now_time + } + data['update_time'] = now_time + + with open(INFO_FILE_PATH, "w", encoding="utf-8") as f: + json.dump(data, f, ensure_ascii=False, indent=4) + server_url = urljoin(SERVER_API_URL, 'update') + data = {'version': version} + try: + response = requests.post(server_url, json=data) + if response.status_code == 200: + update_info = response.json() + self.updateSignal.emit(update_info) + else: + print("检查更新失败") + except: + update_info = {'update_available': False} + self.updateSignal.emit(update_info) diff --git a/app/ui/mainwindow.py b/app/ui/mainwindow.py new file mode 100644 index 0000000..9ae38fc --- /dev/null +++ b/app/ui/mainwindow.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'mainwindow.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + MainWindow.resize(605, 565) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(12) + font.setBold(False) + font.setWeight(50) + MainWindow.setFont(font) + MainWindow.setMouseTracking(True) + MainWindow.setStyleSheet("") + MainWindow.setIconSize(QtCore.QSize(50, 24)) + MainWindow.setDockOptions(QtWidgets.QMainWindow.AllowTabbedDocks|QtWidgets.QMainWindow.AnimatedDocks) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setMouseTracking(True) + self.centralwidget.setObjectName("centralwidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) + self.horizontalLayout.setContentsMargins(10, 0, 0, 0) + self.horizontalLayout.setSpacing(0) + self.horizontalLayout.setObjectName("horizontalLayout") + self.frame_info = QtWidgets.QFrame(self.centralwidget) + self.frame_info.setMinimumSize(QtCore.QSize(80, 500)) + self.frame_info.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.frame_info.setStyleSheet("") + self.frame_info.setFrameShape(QtWidgets.QFrame.NoFrame) + self.frame_info.setFrameShadow(QtWidgets.QFrame.Plain) + self.frame_info.setLineWidth(5) + self.frame_info.setObjectName("frame_info") + self.myavatar = QtWidgets.QLabel(self.frame_info) + self.myavatar.setGeometry(QtCore.QRect(10, 40, 60, 60)) + self.myavatar.setObjectName("myavatar") + self.listWidget = QtWidgets.QListWidget(self.frame_info) + self.listWidget.setGeometry(QtCore.QRect(0, 230, 120, 331)) + self.listWidget.setMinimumSize(QtCore.QSize(0, 0)) + self.listWidget.setMaximumSize(QtCore.QSize(16777215, 16777215)) + self.listWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.listWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.listWidget.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored) + self.listWidget.setObjectName("listWidget") + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + self.horizontalLayout.addWidget(self.frame_info) + self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) + font = QtGui.QFont() + font.setFamily("Microsoft YaHei UI") + font.setPointSize(15) + font.setBold(False) + font.setWeight(50) + self.stackedWidget.setFont(font) + self.stackedWidget.setObjectName("stackedWidget") + self.horizontalLayout.addWidget(self.stackedWidget) + MainWindow.setCentralWidget(self.centralwidget) + self.menubar = QtWidgets.QMenuBar(MainWindow) + self.menubar.setGeometry(QtCore.QRect(0, 0, 605, 33)) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(12) + font.setBold(False) + font.setWeight(50) + self.menubar.setFont(font) + self.menubar.setObjectName("menubar") + self.menu_F = QtWidgets.QMenu(self.menubar) + self.menu_F.setObjectName("menu_F") + self.menu_data = QtWidgets.QMenu(self.menubar) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(12) + font.setBold(False) + font.setWeight(50) + self.menu_data.setFont(font) + self.menu_data.setObjectName("menu_data") + self.menu_output = QtWidgets.QMenu(self.menu_data) + self.menu_output.setObjectName("menu_output") + self.menu_2 = QtWidgets.QMenu(self.menubar) + self.menu_2.setObjectName("menu_2") + self.menu_about = QtWidgets.QMenu(self.menubar) + self.menu_about.setObjectName("menu_about") + MainWindow.setMenuBar(self.menubar) + self.statusbar = QtWidgets.QStatusBar(MainWindow) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(12) + font.setBold(False) + font.setWeight(50) + self.statusbar.setFont(font) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + self.action_3 = QtWidgets.QAction(MainWindow) + self.action_3.setObjectName("action_3") + self.action_4 = QtWidgets.QAction(MainWindow) + self.action_4.setObjectName("action_4") + self.action_help_decrypt = QtWidgets.QAction(MainWindow) + font = QtGui.QFont() + font.setFamily("Microsoft YaHei UI") + self.action_help_decrypt.setFont(font) + self.action_help_decrypt.setObjectName("action_help_decrypt") + self.action_desc = QtWidgets.QAction(MainWindow) + self.action_desc.setObjectName("action_desc") + self.action_help_chat = QtWidgets.QAction(MainWindow) + self.action_help_chat.setObjectName("action_help_chat") + self.action_help_contact = QtWidgets.QAction(MainWindow) + self.action_help_contact.setObjectName("action_help_contact") + self.action_output_CSV = QtWidgets.QAction(MainWindow) + self.action_output_CSV.setObjectName("action_output_CSV") + self.action_output_contacts = QtWidgets.QAction(MainWindow) + self.action_output_contacts.setObjectName("action_output_contacts") + self.action_batch_export = QtWidgets.QAction(MainWindow) + self.action_batch_export.setObjectName("action_batch_export") + self.action_update = QtWidgets.QAction(MainWindow) + self.action_update.setObjectName("action_update") + self.action_help_faq = QtWidgets.QAction(MainWindow) + self.action_help_faq.setObjectName("action_help_faq") + self.menu_F.addSeparator() + self.menu_F.addSeparator() + self.menu_F.addAction(self.action_3) + self.menu_F.addAction(self.action_4) + self.menu_output.addAction(self.action_output_CSV) + self.menu_data.addAction(self.menu_output.menuAction()) + self.menu_data.addAction(self.action_output_contacts) + self.menu_data.addAction(self.action_batch_export) + self.menu_2.addAction(self.action_help_faq) + self.menu_2.addSeparator() + self.menu_2.addAction(self.action_help_decrypt) + self.menu_2.addAction(self.action_help_chat) + self.menu_2.addAction(self.action_help_contact) + self.menu_about.addAction(self.action_update) + self.menu_about.addSeparator() + self.menu_about.addAction(self.action_desc) + self.menubar.addAction(self.menu_F.menuAction()) + self.menubar.addAction(self.menu_data.menuAction()) + self.menubar.addAction(self.menu_2.menuAction()) + self.menubar.addAction(self.menu_about.menuAction()) + + self.retranslateUi(MainWindow) + QtCore.QMetaObject.connectSlotsByName(MainWindow) + + def retranslateUi(self, MainWindow): + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) + self.myavatar.setText(_translate("MainWindow", "avatar")) + __sortingEnabled = self.listWidget.isSortingEnabled() + self.listWidget.setSortingEnabled(False) + item = self.listWidget.item(0) + item.setText(_translate("MainWindow", "新建项目")) + item = self.listWidget.item(1) + item.setText(_translate("MainWindow", "新建项目")) + item = self.listWidget.item(2) + item.setText(_translate("MainWindow", "新建项目")) + item = self.listWidget.item(3) + item.setText(_translate("MainWindow", "新建项目")) + item = self.listWidget.item(4) + item.setText(_translate("MainWindow", "新建项目")) + self.listWidget.setSortingEnabled(__sortingEnabled) + self.menu_F.setTitle(_translate("MainWindow", "文件(F)")) + self.menu_data.setTitle(_translate("MainWindow", "数据")) + self.menu_output.setTitle(_translate("MainWindow", "导出聊天记录(全部)")) + self.menu_2.setTitle(_translate("MainWindow", "帮助")) + self.menu_about.setTitle(_translate("MainWindow", "关于")) + self.action_3.setText(_translate("MainWindow", "保存")) + self.action_4.setText(_translate("MainWindow", "退出")) + self.action_help_decrypt.setText(_translate("MainWindow", "解密教程")) + self.action_desc.setText(_translate("MainWindow", "关于软件")) + self.action_help_chat.setText(_translate("MainWindow", "聊天相关")) + self.action_help_contact.setText(_translate("MainWindow", "好友相关")) + self.action_output_CSV.setText(_translate("MainWindow", "CSV")) + self.action_output_contacts.setText(_translate("MainWindow", "导出联系人")) + self.action_batch_export.setText(_translate("MainWindow", "批量导出")) + self.action_update.setText(_translate("MainWindow", "检查更新")) + self.action_help_faq.setText(_translate("MainWindow", "常见问题解答")) diff --git a/app/ui/menu/__init__.py b/app/ui/menu/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/ui/menu/about_dialog.cp310-win_amd64.pyd b/app/ui/menu/about_dialog.cp310-win_amd64.pyd new file mode 100644 index 0000000..1adbee7 Binary files /dev/null and b/app/ui/menu/about_dialog.cp310-win_amd64.pyd differ diff --git a/app/ui/menu/about_dialog.cp311-win_amd64.pyd b/app/ui/menu/about_dialog.cp311-win_amd64.pyd new file mode 100644 index 0000000..b304d5b Binary files /dev/null and b/app/ui/menu/about_dialog.cp311-win_amd64.pyd differ diff --git a/app/ui/menu/about_dialog.cp312-win_amd64.pyd b/app/ui/menu/about_dialog.cp312-win_amd64.pyd new file mode 100644 index 0000000..f2117be Binary files /dev/null and b/app/ui/menu/about_dialog.cp312-win_amd64.pyd differ diff --git a/app/ui/menu/dialog.py b/app/ui/menu/dialog.py new file mode 100644 index 0000000..c479e15 --- /dev/null +++ b/app/ui/menu/dialog.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'dialog.ui' +# +# Created by: PyQt5 UI code generator 5.15.7 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(553, 394) + self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.label_version = QtWidgets.QLabel(Dialog) + self.label_version.setLayoutDirection(QtCore.Qt.LeftToRight) + self.label_version.setAlignment(QtCore.Qt.AlignCenter) + self.label_version.setObjectName("label_version") + self.verticalLayout.addWidget(self.label_version) + self.label_logo = QtWidgets.QLabel(Dialog) + self.label_logo.setMinimumSize(QtCore.QSize(100, 100)) + self.label_logo.setObjectName("label_logo") + self.verticalLayout.addWidget(self.label_logo) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem) + self.horizontalLayout.addLayout(self.verticalLayout) + self.textBrowser = QtWidgets.QTextBrowser(Dialog) + self.textBrowser.setFrameShape(QtWidgets.QFrame.NoFrame) + self.textBrowser.setObjectName("textBrowser") + self.horizontalLayout.addWidget(self.textBrowser) + self.verticalLayout_2.addLayout(self.horizontalLayout) + self.label_weixin = QtWidgets.QLabel(Dialog) + self.label_weixin.setAlignment(QtCore.Qt.AlignCenter) + self.label_weixin.setObjectName("label_weixin") + self.verticalLayout_2.addWidget(self.label_weixin) + self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) + self.buttonBox.setOrientation(QtCore.Qt.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) + self.buttonBox.setObjectName("buttonBox") + self.verticalLayout_2.addWidget(self.buttonBox) + + self.retranslateUi(Dialog) + self.buttonBox.accepted.connect(Dialog.accept) # type: ignore + self.buttonBox.rejected.connect(Dialog.reject) # type: ignore + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_version.setText(_translate("Dialog", "TextLabel")) + self.label_logo.setText(_translate("Dialog", "logo")) + self.label_weixin.setText(_translate("Dialog", "TextLabel")) diff --git a/app/ui/menu/export.py b/app/ui/menu/export.py new file mode 100644 index 0000000..a28a29d --- /dev/null +++ b/app/ui/menu/export.py @@ -0,0 +1,288 @@ +import os +import sys as sys_ +import time +from typing import List +from PyQt5 import QtWidgets +from PyQt5.QtCore import QTimer, QThread, pyqtSignal, QObject +from PyQt5.QtGui import QTextCursor +from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox + +from app.DataBase import micro_msg_db, misc_db +from app.util.exporter.output import Output +from app.components import ScrollBar +from app.components.export_contact_item import ContactQListWidgetItem +from app.config import OUTPUT_DIR +from app.person import Contact +from app.ui.menu.exportUi import Ui_Dialog +from app.ui.menu.export_time_range import TimeRangeDialog + +types = { + '文本': 1, + '图片': 3, + '语音': 34, + '视频': 43, + '表情包': 47, + '音乐与音频': 4903, + '文件': 4906, + '分享卡片': 4905, + '转账': 492000, + '音视频通话': 50, + '拍一拍等系统消息': 10000, +} +file_format = { + 'Docx': Output.DOCX, + 'TXT': Output.TXT, + 'HTML': Output.HTML, + 'CSV': Output.CSV, + 'JSON': Output.JSON, +} +Stylesheet = """ +""" + + +class EmittingStr(QObject): + textWritten = pyqtSignal(str) # 定义一个发送str的信号 + + def write(self, text): + self.textWritten.emit(str(text)) + + +class ExportDialog(QDialog, Ui_Dialog): + def __init__(self, contact=None, title="选择导出的类型", file_type="html", parent=None): + super(ExportDialog, self).__init__(parent) + self.setupUi(self) + self.contacts: List[Contact] = [] + self.setStyleSheet(Stylesheet) + self.contact = contact + self.btn_select_all.clicked.connect(self.select_all) + self.select_all_flag = False + self.btn_start.clicked.connect(self.export_data) + self.comboBox_time.activated.connect(self.set_export_date) + # 下面将输出重定向到textBrowser中 + sys_.stdout = EmittingStr(textWritten=self.outputWritten) + # sys.stderr = EmittingStr(textWritten=self.outputWritten) + scroll_bar = ScrollBar() + self.textBrowser.setVerticalScrollBar(scroll_bar) + self.export_choices = {"文本": True, "图片": True, "语音": False, "视频": False, "表情包": False, + '音乐与音频': False, '分享卡片': False, '文件': False, + '转账': False, '音视频通话': False,'拍一拍等系统消息': True} # 定义导出的数据类型 + self.setWindowTitle(title) + self.checkBox_word.setEnabled(False) + self.checkBox_word.setText('Docx(暂时不可用)') + self.resize(800, 600) + self.worker = None # 导出线程 + for export_type, default_state in self.export_choices.items(): + checkbox = QCheckBox(export_type) + checkbox.setObjectName('message_type') + checkbox.setChecked(default_state) + self.verticalLayout_2.addWidget(checkbox) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem1) + self.timer = QTimer(self) + self.time = 0 + self.total_msg_num = 99999 # 总的消息个数 + self.num = 0 # 当前完成的消息个数 + self.timer.timeout.connect(self.update_elapsed_time) + self.show_thread = ShowContactThread() + self.show_thread.showSingal.connect(self.show_contact) + # self.show_thread.load_finish_signal.connect(self.stop_loading) + self.show_thread.start() + self.listWidget.setVerticalScrollBar(ScrollBar()) + # self.listWidget.currentRowChanged.connect(self.setCurrentIndex) + self.listWidget.itemClicked.connect(self.setCurrentIndex) + self.visited = set() + self.now_index = 0 + self.time_range = None + + def set_export_date(self): + date_range = self.comboBox_time.currentText() + if date_range == '全部时间': + pass + elif date_range == '最近三个月': + from datetime import datetime, timedelta + + # 获取今天的日期和时间 + today = datetime.now() + + # 获取今天的日期 + today_date = today.date() + + # 获取今天的24:00:00的时间戳 + today_midnight = datetime.combine(today_date, datetime.min.time()) + timedelta(days=1) + today_midnight_timestamp = int(today_midnight.timestamp()) + + # 获取三个月前的日期 + three_months_ago = today - timedelta(days=90) + + # 获取三个月前的00:00:00的时间戳 + three_months_ago_date = three_months_ago.date() + three_months_ago_midnight = datetime.combine(three_months_ago_date, datetime.min.time()) + three_months_ago_midnight_timestamp = int(three_months_ago_midnight.timestamp()) + self.time_range = (three_months_ago_midnight_timestamp, today_midnight_timestamp) + + elif date_range == '自定义时间': + self.time_range_view = TimeRangeDialog(parent=self) + self.time_range_view.date_range_signal.connect(self.set_time_range) + self.time_range_view.show() + self.comboBox_time.setCurrentIndex(0) + # QMessageBox.warning(self, + # "别急别急", + # "马上就实现该功能" + # ) + + def set_time_range(self, time_range): + self.time_range = time_range + self.comboBox_time.setCurrentIndex(2) + + def outputWritten(self, text): + cursor = self.textBrowser.textCursor() + cursor.movePosition(QTextCursor.End) + cursor.insertText(text) + self.textBrowser.setTextCursor(cursor) + self.textBrowser.ensureCursorVisible() + + def export_data(self): + self.btn_start.setEnabled(False) + # 在这里获取用户选择的导出数据类型 + selected_types = {types[export_type]: checkbox.isChecked() for export_type, checkbox in + zip(self.export_choices.keys(), self.findChildren(QCheckBox, 'message_type'))} + + # 在这里根据用户选择的数据类型执行导出操作 + print("选择的数据类型:", selected_types) + + file_types = [] + for checkbox in [self.checkBox_txt, self.checkBox_csv, self.checkBox_html, self.checkBox_word,self.checkBox_json]: + if checkbox.isChecked(): + file_types.append(file_format[checkbox.text()]) + select_contacts = [] + count = self.listWidget.count() + # 遍历listwidget中的内容 + for i in range(count): + item = self.listWidget.item(i) + if item.is_select: + select_contacts.append(self.contacts[i]) + # 在这里根据用户选择的数据类型执行导出操作 + print("选择的文件格式:", file_types) + self.worker = Output(select_contacts, type_=Output.Batch, message_types=selected_types, sub_type=file_types, + time_range=self.time_range) + # self.worker.progressSignal.connect(self.update_progress) + self.worker.okSignal.connect(self.export_finished) + self.worker.rangeSignal.connect(self.set_total_msg_num) + self.worker.nowContact.connect(self.update_progress) + self.worker.start() + # 启动定时器,每1000毫秒更新一次任务进度 + self.timer.start(1000) + self.start_time = time.time() + # self.accept() # 使用accept关闭对话框 + # 绑定点击槽函数 点击显示对应item中的name + + def set_total_msg_num(self, num): + self.total_msg_num = num + # b''+num +(1,1) + + def setCurrentIndex(self, item): + # print(row) + # row = self.listWidget.it + # item = self.listWidget.item(row) + item.select() + item.dis_select() + # self.now_index = row + + def select_all(self): + self.select_all_flag = not self.select_all_flag + print('全选', self.select_all_flag) + if self.select_all_flag: + count = self.listWidget.count() + # 遍历listwidget中的内容 + for i in range(count): + item = self.listWidget.item(i) + item.force_select() + self.btn_select_all.setText('全不选') + else: + count = self.listWidget.count() + # 遍历listwidget中的内容 + for i in range(count): + item = self.listWidget.item(i) + item.force_dis_select() + self.btn_select_all.setText('全选') + + def export_finished(self): + self.btn_start.setEnabled(True) + self.time = 0 + end_time = time.time() + print(f'总耗时:{end_time - self.start_time}s') + reply = QMessageBox(self) + reply.setIcon(QMessageBox.Information) + reply.setWindowTitle('OK') + reply.setText(f"导出聊天记录成功\n在{OUTPUT_DIR}目录下(跟exe文件在一起)\n{os.path.normpath(os.path.join(os.getcwd(), OUTPUT_DIR))}") + reply.addButton("确认", QMessageBox.AcceptRole) + reply.addButton("取消", QMessageBox.RejectRole) + api = reply.exec_() + # 在任务完成时重置sys.stdout + sys_.stdout = sys_.__stdout__ + self.accept() + + def close(self): + sys_.stdout = sys_.__stdout__ + del self.worker + super().close() + + def show_contact(self, contact): + # return + # print(contact.remark) + contact_item = ContactQListWidgetItem(contact.remark, contact.smallHeadImgUrl, contact.smallHeadImgBLOG) + self.listWidget.addItem(contact_item) + self.listWidget.setItemWidget(contact_item, contact_item.widget) + self.contacts.append(contact) + + def update_elapsed_time(self): + self.time += 1 + self.label_time.setText(f"耗时: {self.time}s") + + def update_progress(self, remark): + self.num += 1 + progress_percentage = int((self.num) / self.total_msg_num * 100) + self.progressBar.setValue(progress_percentage) + self.label_process.setText(f"导出进度: {progress_percentage}% {remark}") + + +class ShowContactThread(QThread): + showSingal = pyqtSignal(Contact) + load_finish_signal = pyqtSignal(bool) + + # heightSingal = pyqtSignal(int) + def __init__(self): + super().__init__() + + def run(self) -> None: + contact_info_lists = micro_msg_db.get_contact() + for contact_info_list in contact_info_lists: + # UserName, Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl,bigHeadImgUrl + contact_info = { + 'UserName': contact_info_list[0], + 'Alias': contact_info_list[1], + 'Type': contact_info_list[2], + 'Remark': contact_info_list[3], + 'NickName': contact_info_list[4], + 'smallHeadImgUrl': contact_info_list[7] + } + contact = Contact(contact_info) + contact.smallHeadImgBLOG = misc_db.get_avatar_buffer(contact.wxid) + contact.set_avatar(contact.smallHeadImgBLOG) + self.showSingal.emit(contact) + # print(contact.wxid) + # pprint(contact.__dict__) + self.load_finish_signal.emit(True) + + +if __name__ == '__main__': + import sys + + app = QApplication(sys.argv) + dialog = ExportDialog() + result = dialog.exec_() # 使用exec_()获取用户的操作结果 + if result == QDialog.Accepted: + print("用户点击了导出按钮") + else: + print("用户点击了取消按钮") + sys.exit(app.exec_()) diff --git a/app/ui/menu/exportUi.py b/app/ui/menu/exportUi.py new file mode 100644 index 0000000..9d05f5c --- /dev/null +++ b/app/ui/menu/exportUi.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'exportUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(791, 599) + self.verticalLayout_3 = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setObjectName("label_3") + self.horizontalLayout.addWidget(self.label_3) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.btn_select_all = QtWidgets.QPushButton(Dialog) + self.btn_select_all.setObjectName("btn_select_all") + self.horizontalLayout.addWidget(self.btn_select_all) + self.comboBox_time = QtWidgets.QComboBox(Dialog) + self.comboBox_time.setObjectName("comboBox_time") + self.comboBox_time.addItem("") + self.comboBox_time.addItem("") + self.comboBox_time.addItem("") + self.horizontalLayout.addWidget(self.comboBox_time) + self.comboBox_type = QtWidgets.QComboBox(Dialog) + self.comboBox_type.setObjectName("comboBox_type") + self.comboBox_type.addItem("") + self.comboBox_type.addItem("") + self.horizontalLayout.addWidget(self.comboBox_type) + self.verticalLayout_3.addLayout(self.horizontalLayout) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize) + self.verticalLayout.setObjectName("verticalLayout") + self.label = QtWidgets.QLabel(Dialog) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) + self.label.setSizePolicy(sizePolicy) + self.label.setObjectName("label") + self.verticalLayout.addWidget(self.label) + self.checkBox_word = QtWidgets.QCheckBox(Dialog) + self.checkBox_word.setObjectName("checkBox_word") + self.verticalLayout.addWidget(self.checkBox_word) + self.checkBox_html = QtWidgets.QCheckBox(Dialog) + self.checkBox_html.setObjectName("checkBox_html") + self.verticalLayout.addWidget(self.checkBox_html) + self.checkBox_csv = QtWidgets.QCheckBox(Dialog) + self.checkBox_csv.setObjectName("checkBox_csv") + self.verticalLayout.addWidget(self.checkBox_csv) + self.checkBox_txt = QtWidgets.QCheckBox(Dialog) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.checkBox_txt.sizePolicy().hasHeightForWidth()) + self.checkBox_txt.setSizePolicy(sizePolicy) + self.checkBox_txt.setChecked(True) + self.checkBox_txt.setObjectName("checkBox_txt") + self.verticalLayout.addWidget(self.checkBox_txt) + self.checkBox_json = QtWidgets.QCheckBox(Dialog) + self.checkBox_json.setObjectName("checkBox_json") + self.verticalLayout.addWidget(self.checkBox_json) + self.label_2 = QtWidgets.QLabel(Dialog) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) + self.label_2.setSizePolicy(sizePolicy) + self.label_2.setObjectName("label_2") + self.verticalLayout.addWidget(self.label_2) + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.verticalLayout.addLayout(self.verticalLayout_2) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem1) + self.horizontalLayout_2.addLayout(self.verticalLayout) + self.listWidget = QtWidgets.QListWidget(Dialog) + self.listWidget.setMinimumSize(QtCore.QSize(0, 0)) + self.listWidget.setObjectName("listWidget") + self.horizontalLayout_2.addWidget(self.listWidget) + self.horizontalLayout_2.setStretch(0, 1) + self.horizontalLayout_2.setStretch(1, 1) + self.verticalLayout_3.addLayout(self.horizontalLayout_2) + self.textBrowser = QtWidgets.QTextBrowser(Dialog) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.textBrowser.sizePolicy().hasHeightForWidth()) + self.textBrowser.setSizePolicy(sizePolicy) + self.textBrowser.setMaximumSize(QtCore.QSize(16777215, 80)) + self.textBrowser.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.textBrowser.setTabStopWidth(0) + self.textBrowser.setOpenExternalLinks(False) + self.textBrowser.setObjectName("textBrowser") + self.verticalLayout_3.addWidget(self.textBrowser) + self.progressBar = QtWidgets.QProgressBar(Dialog) + self.progressBar.setProperty("value", 0) + self.progressBar.setObjectName("progressBar") + self.verticalLayout_3.addWidget(self.progressBar) + self.horizontalLayout_4 = QtWidgets.QHBoxLayout() + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.verticalLayout_3.addLayout(self.horizontalLayout_4) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.label_time = QtWidgets.QLabel(Dialog) + self.label_time.setText("") + self.label_time.setObjectName("label_time") + self.horizontalLayout_3.addWidget(self.label_time) + self.label_process = QtWidgets.QLabel(Dialog) + self.label_process.setText("") + self.label_process.setObjectName("label_process") + self.horizontalLayout_3.addWidget(self.label_process) + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem2) + self.btn_start = QtWidgets.QPushButton(Dialog) + self.btn_start.setStyleSheet("QPushButton{\n" +" background-color: rgb(233,233,233);\n" +" border-radius: 5px;\n" +" padding: 10px;\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"border:1px solid rgb(31,156,220) ;\n" +"}") + self.btn_start.setAutoDefault(False) + self.btn_start.setDefault(False) + self.btn_start.setFlat(False) + self.btn_start.setObjectName("btn_start") + self.horizontalLayout_3.addWidget(self.btn_start) + self.verticalLayout_3.addLayout(self.horizontalLayout_3) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label_3.setText(_translate("Dialog", "导出过程中请不要退出,为减少卡顿请尽量不要超过十个")) + self.btn_select_all.setText(_translate("Dialog", "全选")) + self.comboBox_time.setItemText(0, _translate("Dialog", "全部时间")) + self.comboBox_time.setItemText(1, _translate("Dialog", "最近三个月")) + self.comboBox_time.setItemText(2, _translate("Dialog", "自定义时间")) + self.comboBox_type.setItemText(0, _translate("Dialog", "全部聊天记录")) + self.comboBox_type.setItemText(1, _translate("Dialog", "不含图片/视频/文件")) + self.label.setText(_translate("Dialog", "导出格式")) + self.checkBox_word.setText(_translate("Dialog", "Docx")) + self.checkBox_html.setText(_translate("Dialog", "HTML")) + self.checkBox_csv.setText(_translate("Dialog", "CSV")) + self.checkBox_txt.setText(_translate("Dialog", "TXT")) + self.checkBox_json.setText(_translate("Dialog", "JSON")) + self.label_2.setText(_translate("Dialog", "消息类型")) + self.btn_start.setText(_translate("Dialog", "开始")) diff --git a/app/ui/menu/export_time_range.py b/app/ui/menu/export_time_range.py new file mode 100644 index 0000000..47b3254 --- /dev/null +++ b/app/ui/menu/export_time_range.py @@ -0,0 +1,109 @@ +from datetime import datetime +from PyQt5 import QtWidgets +from PyQt5.QtCore import QTimer, QThread, pyqtSignal, Qt, QPoint +from PyQt5.QtGui import QMouseEvent +from PyQt5.QtWidgets import QApplication, QDialog, QCheckBox, QMessageBox, QCalendarWidget, QWidget, QVBoxLayout, QLabel + +from app.components.calendar_dialog import CalendarDialog +try: + from .time_range import Ui_Dialog +except: + from time_range import Ui_Dialog +Stylesheet = ''' +QToolButton{ + color:#000000; +} +QCalendarWidget QAbstractItemView:disabled { + +} +QCalendarWidget QAbstractItemView:enabled{ +} +''' + + +class TimeRangeDialog(QDialog, Ui_Dialog): + date_range_signal = pyqtSignal(tuple) + + def __init__(self, date_range=None, parent=None): + """ + + @param date_range: tuple[Union[QDate, datetime.date],Union[QDate, datetime.date]] 限定的可选择范围 + @param parent: + """ + super().__init__(parent) + self.calendar = None + self.setupUi(self) + self.setWindowTitle('选择日期范围') + # self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint) + self.setStyleSheet(Stylesheet) + self.toolButton_start_time.clicked.connect(self.select_date_start) + self.toolButton_end_time.clicked.connect(self.select_date_end) + self.calendar = CalendarDialog(date_range=date_range, parent=self) + self.calendar.selected_date_signal.connect(self.set_date) + self.btn_ok.clicked.connect(self.ok) + self.btn_ok.setEnabled(False) + self.btn_ok_num = 0 + self.btn_cancel.clicked.connect(lambda x: self.close()) + self.start_time_flag = True + self.start_timestamp = 0 + self.end_timestamp = 0 + + def set_date(self, timestamp): + if self.start_time_flag: + self.start_timestamp = timestamp + date_object = datetime.fromtimestamp(timestamp) + str_start = date_object.strftime("%Y-%m-%d") + self.toolButton_start_time.setText(str_start) + self.btn_ok_num += 1 + else: + date_object = datetime.fromtimestamp(timestamp) + str_start = date_object.strftime("%Y-%m-%d") + self.end_timestamp = timestamp + 86399 + self.toolButton_end_time.setText(str_start) + self.btn_ok_num += 1 + if self.btn_ok_num == 2: + self.btn_ok.setEnabled(True) + + def ok(self): + date_range = (self.start_timestamp, self.end_timestamp) + self.date_range_signal.emit(date_range) + self.close() + + def select_date_start(self): + self.start_time_flag = True + self.calendar.set_start_date() + self.calendar.show() + + def select_date_end(self): + self.start_time_flag = False + self.calendar.set_end_date() + self.calendar.show() + + def mouseMoveEvent(self, e: QMouseEvent): # 重写移动事件 + if self._tracking: + self._endPos = e.pos() - self._startPos + self.move(self.pos() + self._endPos) + + def mousePressEvent(self, e: QMouseEvent): + if e.button() == Qt.LeftButton: + self._startPos = QPoint(e.x(), e.y()) + self._tracking = True + + def mouseReleaseEvent(self, e: QMouseEvent): + if e.button() == Qt.LeftButton: + self._tracking = False + self._startPos = None + self._endPos = None + +if __name__ == '__main__': + import sys + from datetime import datetime + + app = QApplication(sys.argv) + # 设置日期范围 + start_date = datetime(2023, 12, 11) + end_date = datetime(2024, 1, 9) + date_range = (start_date.date(), end_date.date()) + ex = TimeRangeDialog(date_range=date_range) + ex.show() + sys.exit(app.exec_()) diff --git a/app/ui/menu/time_range.py b/app/ui/menu/time_range.py new file mode 100644 index 0000000..97e1813 --- /dev/null +++ b/app/ui/menu/time_range.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'time_range.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(280, 200) + Dialog.setMinimumSize(QtCore.QSize(280, 200)) + Dialog.setMaximumSize(QtCore.QSize(280, 200)) + self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout.setObjectName("verticalLayout") + self.label = QtWidgets.QLabel(Dialog) + self.label.setLayoutDirection(QtCore.Qt.LeftToRight) + self.label.setAlignment(QtCore.Qt.AlignCenter) + self.label.setObjectName("label") + self.verticalLayout.addWidget(self.label) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setObjectName("label_2") + self.horizontalLayout_2.addWidget(self.label_2) + self.toolButton_start_time = QtWidgets.QToolButton(Dialog) + self.toolButton_start_time.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) + self.toolButton_start_time.setArrowType(QtCore.Qt.DownArrow) + self.toolButton_start_time.setObjectName("toolButton_start_time") + self.horizontalLayout_2.addWidget(self.toolButton_start_time) + self.verticalLayout.addLayout(self.horizontalLayout_2) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3.setObjectName("label_3") + self.horizontalLayout.addWidget(self.label_3) + self.toolButton_end_time = QtWidgets.QToolButton(Dialog) + self.toolButton_end_time.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) + self.toolButton_end_time.setArrowType(QtCore.Qt.DownArrow) + self.toolButton_end_time.setObjectName("toolButton_end_time") + self.horizontalLayout.addWidget(self.toolButton_end_time) + self.verticalLayout.addLayout(self.horizontalLayout) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.btn_ok = QtWidgets.QPushButton(Dialog) + self.btn_ok.setObjectName("btn_ok") + self.horizontalLayout_3.addWidget(self.btn_ok) + self.btn_cancel = QtWidgets.QPushButton(Dialog) + self.btn_cancel.setObjectName("btn_cancel") + self.horizontalLayout_3.addWidget(self.btn_cancel) + self.verticalLayout.addLayout(self.horizontalLayout_3) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.label.setText(_translate("Dialog", "自定义时间")) + self.label_2.setText(_translate("Dialog", "开始日期")) + self.toolButton_start_time.setText(_translate("Dialog", "请选择时间")) + self.label_3.setText(_translate("Dialog", "结束日期")) + self.toolButton_end_time.setText(_translate("Dialog", "请选择时间")) + self.btn_ok.setText(_translate("Dialog", "确定")) + self.btn_cancel.setText(_translate("Dialog", "取消")) diff --git a/app/ui/tool/__init__.py b/app/ui/tool/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/app/ui/tool/__init__.py @@ -0,0 +1 @@ + diff --git a/app/ui/tool/get_bias_addr/getBiasAddrUi.py b/app/ui/tool/get_bias_addr/getBiasAddrUi.py new file mode 100644 index 0000000..c753bc9 --- /dev/null +++ b/app/ui/tool/get_bias_addr/getBiasAddrUi.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'getBiasAddrUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(650, 580) + self.verticalLayout = QtWidgets.QVBoxLayout(Form) + self.verticalLayout.setObjectName("verticalLayout") + self.scrollArea = QtWidgets.QScrollArea(Form) + self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame) + self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) + self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.scrollArea.setWidgetResizable(True) + self.scrollArea.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.scrollArea.setObjectName("scrollArea") + self.scrollAreaWidgetContents = QtWidgets.QWidget() + self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 632, 562)) + self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.label_4 = QtWidgets.QLabel(self.scrollAreaWidgetContents) + self.label_4.setMaximumSize(QtCore.QSize(16777215, 20)) + self.label_4.setAlignment(QtCore.Qt.AlignCenter) + self.label_4.setObjectName("label_4") + self.verticalLayout_3.addWidget(self.label_4) + self.widget = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget.setObjectName("widget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget) + self.horizontalLayout.setObjectName("horizontalLayout") + self.label = QtWidgets.QLabel(self.widget) + self.label.setMinimumSize(QtCore.QSize(80, 0)) + self.label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label.setObjectName("label") + self.horizontalLayout.addWidget(self.label) + self.lineEdit_tel = QtWidgets.QLineEdit(self.widget) + self.lineEdit_tel.setObjectName("lineEdit_tel") + self.horizontalLayout.addWidget(self.lineEdit_tel) + self.verticalLayout_3.addWidget(self.widget) + self.widget_3 = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget_3.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget_3.setObjectName("widget_3") + self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.widget_3) + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.label_2 = QtWidgets.QLabel(self.widget_3) + self.label_2.setMinimumSize(QtCore.QSize(80, 0)) + self.label_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.horizontalLayout_3.addWidget(self.label_2) + self.lineEdit_wx_alias = QtWidgets.QLineEdit(self.widget_3) + self.lineEdit_wx_alias.setObjectName("lineEdit_wx_alias") + self.horizontalLayout_3.addWidget(self.lineEdit_wx_alias) + self.verticalLayout_3.addWidget(self.widget_3) + self.widget_4 = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget_4.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget_4.setObjectName("widget_4") + self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget_4) + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.label_3 = QtWidgets.QLabel(self.widget_4) + self.label_3.setMinimumSize(QtCore.QSize(80, 0)) + self.label_3.setLayoutDirection(QtCore.Qt.LeftToRight) + self.label_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.horizontalLayout_4.addWidget(self.label_3) + self.lineEdit_wx_name = QtWidgets.QLineEdit(self.widget_4) + self.lineEdit_wx_name.setObjectName("lineEdit_wx_name") + self.horizontalLayout_4.addWidget(self.lineEdit_wx_name) + self.verticalLayout_3.addWidget(self.widget_4) + self.btn_get_bias_addr = QtWidgets.QPushButton(self.scrollAreaWidgetContents) + self.btn_get_bias_addr.setObjectName("btn_get_bias_addr") + self.verticalLayout_3.addWidget(self.btn_get_bias_addr) + self.widget_2 = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget_2.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget_2.setObjectName("widget_2") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_2) + self.horizontalLayout_2.setContentsMargins(9, -1, -1, -1) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.commandLinkButton = QtWidgets.QCommandLinkButton(self.widget_2) + self.commandLinkButton.setEnabled(True) + self.commandLinkButton.setTabletTracking(False) + self.commandLinkButton.setFocusPolicy(QtCore.Qt.StrongFocus) + self.commandLinkButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) + self.commandLinkButton.setToolTipDuration(-1) + self.commandLinkButton.setLayoutDirection(QtCore.Qt.LeftToRight) + self.commandLinkButton.setAutoFillBackground(False) + self.commandLinkButton.setCheckable(False) + self.commandLinkButton.setChecked(False) + self.commandLinkButton.setAutoRepeat(False) + self.commandLinkButton.setAutoExclusive(False) + self.commandLinkButton.setAutoDefault(False) + self.commandLinkButton.setDefault(False) + self.commandLinkButton.setObjectName("commandLinkButton") + self.horizontalLayout_2.addWidget(self.commandLinkButton) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.label_error_log = QtWidgets.QLabel(self.widget_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_error_log.sizePolicy().hasHeightForWidth()) + self.label_error_log.setSizePolicy(sizePolicy) + self.label_error_log.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_error_log.setObjectName("label_error_log") + self.horizontalLayout_2.addWidget(self.label_error_log) + self.checkBox_send_error_log = QtWidgets.QCheckBox(self.widget_2) + self.checkBox_send_error_log.setText("") + self.checkBox_send_error_log.setIconSize(QtCore.QSize(64, 64)) + self.checkBox_send_error_log.setChecked(True) + self.checkBox_send_error_log.setObjectName("checkBox_send_error_log") + self.horizontalLayout_2.addWidget(self.checkBox_send_error_log) + self.verticalLayout_3.addWidget(self.widget_2) + self.scrollArea.setWidget(self.scrollAreaWidgetContents) + self.verticalLayout.addWidget(self.scrollArea) + + self.retranslateUi(Form) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) + self.label_4.setText(_translate("Form", "为避免输入错误,下面信息请从微信里复制")) + self.label.setText(_translate("Form", "手机号:")) + self.lineEdit_tel.setPlaceholderText(_translate("Form", "填入微信绑定的手机号")) + self.label_2.setText(_translate("Form", "微信号:")) + self.lineEdit_wx_alias.setPlaceholderText(_translate("Form", "填入您的微信号")) + self.label_3.setText(_translate("Form", "微信昵称:")) + self.lineEdit_wx_name.setPlaceholderText(_translate("Form", "填入您的微信昵称")) + self.btn_get_bias_addr.setText(_translate("Form", "获取信息")) + self.commandLinkButton.setText(_translate("Form", "收集版本信息")) + self.commandLinkButton.setDescription(_translate("Form", "需要收集微信版本信息以支持更多用户")) + self.label_error_log.setText(_translate("Form", "开")) diff --git a/app/ui/tool/get_bias_addr/get_bias_addr.py b/app/ui/tool/get_bias_addr/get_bias_addr.py new file mode 100644 index 0000000..6d24763 --- /dev/null +++ b/app/ui/tool/get_bias_addr/get_bias_addr.py @@ -0,0 +1,146 @@ +import json +import os.path +from urllib.parse import urljoin + +import requests +from PyQt5.QtCore import pyqtSignal, QThread +from PyQt5.QtWidgets import QWidget, QMessageBox + +from app.components.QCursorGif import QCursorGif +from app.config import SERVER_API_URL +from app.decrypt.get_bias_addr import BiasAddr +from .getBiasAddrUi import Ui_Form + +Stylesheet = """ +QPushButton{ + background-color: rgb(250,252,253); + border-radius: 5px; + padding: 8px; + border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ + border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ +} +QPushButton:hover { + background-color: lightgray; +} +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; + border:none; +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 400px; + max-width: 400px; + min-height: 80px; + max-height: 80px; + color: black; + border:none; +} +QListWidget::item{ + min-width: 80px; + max-width: 400px; + min-height: 80px; + max-height: 80px; +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + border-left:none; + color: black; + font-weight: bold; +} +QCheckBox::indicator { + background: rgb(251, 251, 251); + Width:60px; + Height:60px; + border-radius: 10px; +} +QCheckBox::indicator:unchecked{ + Width:60px; + Height:60px; + image: url(:/icons/icons/按钮_关闭.svg); +} +QCheckBox::indicator:checked{ + Width:60px; + Height:60px; + image: url(:/icons/icons/按钮_开启.svg); +} + +""" + + +class GetBiasAddrControl(QWidget, Ui_Form, QCursorGif): + biasAddrSignal = pyqtSignal(dict) + + def __init__(self, parent=None): + super(GetBiasAddrControl, self).__init__(parent) + self.thread = None + self.setStyleSheet(Stylesheet) + self.setupUi(self) + self.init_ui() + + def init_ui(self): + self.initCursor([':/icons/icons/Cursors/%d.png' % + i for i in range(8)], self) + self.setCursorTimeout(100) + self.btn_get_bias_addr.clicked.connect(self.get_bias_addr) + self.commandLinkButton.clicked.connect(self.show_info) + self.checkBox_send_error_log.clicked.connect(self.set_error_log) + + def set_error_log(self): + if self.checkBox_send_error_log.isChecked(): + self.label_error_log.setText('开') + else: + self.label_error_log.setText('关') + + def show_info(self): + QMessageBox.information(self, "收集版本信息", + "为了适配更多版本,需要收集微信的版本信息,该操作不会上传包括手机号、微信号、昵称等在内的任何信息\n示例数据:\n\"3.9.9.27\": [68065304, 0, 68065112, 0, 68066576]" + ) + + def upload(self, version_data): + url = urljoin(SERVER_API_URL, 'wxBiasAddr') + try: + requests.post(url, json={'bias_dict': version_data}) + print('版本信息上传成功') + except: + pass + + def get_bias_addr(self): + account = self.lineEdit_wx_alias.text() + mobile = self.lineEdit_tel.text() + name = self.lineEdit_wx_name.text() + if not all([account, mobile, name]): + QMessageBox.critical(self, "错误", + "请把所有信息填写完整") + return + key = None + db_path = "test" + self.startBusy() + self.thread = MyThread(account, mobile, name, key, db_path) + self.thread.signal.connect(self.set_bias_addr) + self.thread.start() + + def set_bias_addr(self, data): + if self.checkBox_send_error_log.isChecked(): + self.upload(data) + self.stopBusy() + self.biasAddrSignal.emit(data) + + +class MyThread(QThread): + signal = pyqtSignal(dict) + + def __init__(self, account, mobile, name, key, db_path): + super(MyThread, self).__init__() + self.account = account + self.mobile = mobile + self.name = name + self.key = key + self.db_path = db_path + + def run(self): + bias_addr = BiasAddr(self.account, self.mobile, self.name, self.key, self.db_path) + data = bias_addr.run(logging_path=True) + self.signal.emit(data) diff --git a/app/ui/tool/pc_decrypt/__init__.py b/app/ui/tool/pc_decrypt/__init__.py new file mode 100644 index 0000000..ae1c618 --- /dev/null +++ b/app/ui/tool/pc_decrypt/__init__.py @@ -0,0 +1,3 @@ +from .pc_decrypt import DecryptControl + +__all__ = ['DecryptControl'] diff --git a/app/ui/tool/pc_decrypt/decryptUi.py b/app/ui/tool/pc_decrypt/decryptUi.py new file mode 100644 index 0000000..b9edd2d --- /dev/null +++ b/app/ui/tool/pc_decrypt/decryptUi.py @@ -0,0 +1,206 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'decryptUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(611, 519) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(12) + Dialog.setFont(font) + Dialog.setLayoutDirection(QtCore.Qt.LeftToRight) + Dialog.setStyleSheet("QPushButton {\n" +" background: rgb(238,244,249);\n" +"}\n" +"QPushButton:hover{\n" +" background: rgb(230, 235, 240);\n" +"}") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout_2.setObjectName("verticalLayout_2") + spacerItem = QtWidgets.QSpacerItem(20, 79, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + spacerItem1 = QtWidgets.QSpacerItem(78, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem1) + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout_4 = QtWidgets.QHBoxLayout() + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(spacerItem2) + self.btn_help = QtWidgets.QPushButton(Dialog) + self.btn_help.setMinimumSize(QtCore.QSize(0, 40)) + self.btn_help.setMaximumSize(QtCore.QSize(200, 16777215)) + self.btn_help.setStyleSheet("") + self.btn_help.setObjectName("btn_help") + self.horizontalLayout_4.addWidget(self.btn_help) + spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_4.addItem(spacerItem3) + self.verticalLayout.addLayout(self.horizontalLayout_4) + self.label_3 = QtWidgets.QLabel(Dialog) + font = QtGui.QFont() + font.setFamily("一纸情书") + font.setPointSize(20) + self.label_3.setFont(font) + self.label_3.setAlignment(QtCore.Qt.AlignCenter) + self.label_3.setObjectName("label_3") + self.verticalLayout.addWidget(self.label_3) + self.label_9 = QtWidgets.QLabel(Dialog) + self.label_9.setAlignment(QtCore.Qt.AlignCenter) + self.label_9.setObjectName("label_9") + self.verticalLayout.addWidget(self.label_9) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.label = QtWidgets.QLabel(Dialog) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.label_pid = QtWidgets.QLabel(Dialog) + self.label_pid.setText("") + self.label_pid.setObjectName("label_pid") + self.gridLayout.addWidget(self.label_pid, 0, 1, 1, 1) + self.label_7 = QtWidgets.QLabel(Dialog) + self.label_7.setObjectName("label_7") + self.gridLayout.addWidget(self.label_7, 1, 0, 1, 1) + self.label_version = QtWidgets.QLabel(Dialog) + self.label_version.setText("") + self.label_version.setObjectName("label_version") + self.gridLayout.addWidget(self.label_version, 1, 1, 1, 1) + self.btn_getinfo = QtWidgets.QPushButton(Dialog) + self.btn_getinfo.setMinimumSize(QtCore.QSize(0, 40)) + self.btn_getinfo.setObjectName("btn_getinfo") + self.gridLayout.addWidget(self.btn_getinfo, 1, 2, 2, 1) + self.checkBox = QtWidgets.QCheckBox(Dialog) + self.checkBox.setText("") + self.checkBox.setCheckable(False) + self.checkBox.setObjectName("checkBox") + self.gridLayout.addWidget(self.checkBox, 1, 3, 2, 1) + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1) + self.lineEdit_phone = QtWidgets.QLineEdit(Dialog) + self.lineEdit_phone.setStyleSheet("background:transparent;\n" +"\n" +" border-radius:5px;\n" +" border-top: 0px solid #b2e281;\n" +" border-bottom: 2px solid black;\n" +" border-right: 0px solid #b2e281;\n" +" border-left: 0px solid #b2e281;\n" +"\n" +"\n" +" border-style:outset\n" +" ") + self.lineEdit_phone.setFrame(False) + self.lineEdit_phone.setObjectName("lineEdit_phone") + self.gridLayout.addWidget(self.lineEdit_phone, 2, 1, 1, 1) + self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5.setObjectName("label_5") + self.gridLayout.addWidget(self.label_5, 3, 0, 1, 1) + self.lineEdit_name = QtWidgets.QLineEdit(Dialog) + self.lineEdit_name.setStyleSheet("background:transparent;\n" +"\n" +" border-radius:5px;\n" +" border-top: 0px solid #b2e281;\n" +" border-bottom: 2px solid black;\n" +" border-right: 0px solid #b2e281;\n" +" border-left: 0px solid #b2e281;\n" +"\n" +"\n" +" border-style:outset\n" +" ") + self.lineEdit_name.setFrame(False) + self.lineEdit_name.setObjectName("lineEdit_name") + self.gridLayout.addWidget(self.lineEdit_name, 3, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1) + self.label_wxid = QtWidgets.QLabel(Dialog) + self.label_wxid.setText("") + self.label_wxid.setObjectName("label_wxid") + self.gridLayout.addWidget(self.label_wxid, 4, 1, 1, 1) + self.btn_db_dir = QtWidgets.QPushButton(Dialog) + self.btn_db_dir.setMinimumSize(QtCore.QSize(0, 40)) + self.btn_db_dir.setObjectName("btn_db_dir") + self.gridLayout.addWidget(self.btn_db_dir, 4, 2, 3, 1) + self.label_6 = QtWidgets.QLabel(Dialog) + self.label_6.setObjectName("label_6") + self.gridLayout.addWidget(self.label_6, 5, 0, 1, 1) + self.label_key = QtWidgets.QLabel(Dialog) + self.label_key.setMaximumSize(QtCore.QSize(400, 16777215)) + self.label_key.setText("") + self.label_key.setObjectName("label_key") + self.gridLayout.addWidget(self.label_key, 5, 1, 1, 1) + self.checkBox_2 = QtWidgets.QCheckBox(Dialog) + self.checkBox_2.setText("") + self.checkBox_2.setCheckable(False) + self.checkBox_2.setObjectName("checkBox_2") + self.gridLayout.addWidget(self.checkBox_2, 5, 3, 1, 1) + self.label_8 = QtWidgets.QLabel(Dialog) + self.label_8.setObjectName("label_8") + self.gridLayout.addWidget(self.label_8, 6, 0, 1, 1) + self.label_db_dir = QtWidgets.QLabel(Dialog) + self.label_db_dir.setMaximumSize(QtCore.QSize(400, 300)) + self.label_db_dir.setText("") + self.label_db_dir.setObjectName("label_db_dir") + self.gridLayout.addWidget(self.label_db_dir, 6, 1, 1, 1) + self.verticalLayout.addLayout(self.gridLayout) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem4) + self.btn_start = QtWidgets.QPushButton(Dialog) + self.btn_start.setMinimumSize(QtCore.QSize(80, 40)) + self.btn_start.setMaximumSize(QtCore.QSize(200, 16777215)) + self.btn_start.setObjectName("btn_start") + self.horizontalLayout_2.addWidget(self.btn_start) + spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem5) + self.verticalLayout.addLayout(self.horizontalLayout_2) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.label_ready = QtWidgets.QLabel(Dialog) + self.label_ready.setObjectName("label_ready") + self.horizontalLayout.addWidget(self.label_ready) + self.progressBar = QtWidgets.QProgressBar(Dialog) + self.progressBar.setProperty("value", 0) + self.progressBar.setObjectName("progressBar") + self.horizontalLayout.addWidget(self.progressBar) + self.verticalLayout.addLayout(self.horizontalLayout) + self.horizontalLayout_3.addLayout(self.verticalLayout) + spacerItem6 = QtWidgets.QSpacerItem(128, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_3.addItem(spacerItem6) + self.verticalLayout_2.addLayout(self.horizontalLayout_3) + spacerItem7 = QtWidgets.QSpacerItem(20, 79, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout_2.addItem(spacerItem7) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.btn_help.setText(_translate("Dialog", "使用说明")) + self.label_3.setText(_translate("Dialog", "解密数据库")) + self.label_9.setText(_translate("Dialog", "以下内容为自动获取,如获取失败请手动填写")) + self.label.setText(_translate("Dialog", "PID")) + self.label_7.setText(_translate("Dialog", "版本")) + self.btn_getinfo.setText(_translate("Dialog", "获取信息")) + self.label_2.setText(_translate("Dialog", "手机号")) + self.label_5.setText(_translate("Dialog", "微信昵称")) + self.label_4.setText(_translate("Dialog", "wxid")) + self.btn_db_dir.setText(_translate("Dialog", "设置微信路径")) + self.label_6.setText(_translate("Dialog", "密钥")) + self.label_8.setText(_translate("Dialog", "微信路径")) + self.btn_start.setText(_translate("Dialog", "开始启动")) + self.label_ready.setText(_translate("Dialog", "未就绪")) diff --git a/app/ui/tool/pc_decrypt/pc_decrypt.py b/app/ui/tool/pc_decrypt/pc_decrypt.py new file mode 100644 index 0000000..33533cf --- /dev/null +++ b/app/ui/tool/pc_decrypt/pc_decrypt.py @@ -0,0 +1,340 @@ +import json +import os.path +import sys +import traceback +from urllib.parse import urljoin + +import requests +from PyQt5.QtCore import pyqtSignal, QThread, QUrl +from PyQt5.QtGui import QDesktopServices +from PyQt5.QtWidgets import QWidget, QMessageBox, QFileDialog + +from app.DataBase import msg_db, misc_db, close_db +from app.DataBase.merge import merge_databases, merge_MediaMSG_databases +from app.components.QCursorGif import QCursorGif +from app.config import INFO_FILE_PATH, DB_DIR, SERVER_API_URL +from app.decrypt import get_wx_info, decrypt +from app.log import logger +from app.util import path +from . import decryptUi +from ...Icon import Icon +from ...menu.about_dialog import Decrypt + + +class DecryptControl(QWidget, decryptUi.Ui_Dialog, QCursorGif): + DecryptSignal = pyqtSignal(bool) + get_wxidSignal = pyqtSignal(str) + versionErrorSignal = pyqtSignal(str) + + def __init__(self, parent=None): + super(DecryptControl, self).__init__(parent) + self.max_val = 0 + self.setupUi(self) + # 设置忙碌光标图片数组 + self.initCursor([':/icons/icons/Cursors/%d.png' % + i for i in range(8)], self) + self.setCursorTimeout(100) + self.version_list = None + self.btn_start.clicked.connect(self.decrypt) + self.btn_getinfo.clicked.connect(self.get_info) + self.btn_db_dir.clicked.connect(self.select_db_dir) + # self.lineEdit.returnPressed.connect(self.set_wxid) + # self.lineEdit.textChanged.connect(self.set_wxid_) + self.lineEdit_name.returnPressed.connect(self.set_wxid) + self.lineEdit_name.textChanged.connect(self.set_wxid_) + self.lineEdit_phone.returnPressed.connect(self.set_wxid) + self.lineEdit_phone.textChanged.connect(self.set_wxid_) + self.btn_help.clicked.connect(self.show_help) + self.btn_getinfo.setIcon(Icon.Get_info_Icon) + self.btn_db_dir.setIcon(Icon.Folder_Icon) + self.btn_start.setIcon(Icon.Start_Icon) + self.btn_help.setIcon(Icon.Help_Icon) + self.info = {} + self.lineEdit_name.setFocus() + self.ready = False + self.wx_dir = None + + def show_help(self): + # 定义网页链接 + url = QUrl("https://blog.lc044.love/post/4") + # 使用QDesktopServices打开网页 + QDesktopServices.openUrl(url) + + # @log + def get_info(self): + self.startBusy() + self.get_info_thread = MyThread(self.version_list) + self.get_info_thread.signal.connect(self.set_info) + self.get_info_thread.start() + + def set_info(self, result): + # print(result) + if result[0] == -1: + QMessageBox.critical(self, "错误", "请登录微信") + elif result[0] == -2: + self.versionErrorSignal.emit(result[1]) + QMessageBox.critical(self, "错误", + "微信版本不匹配\n请手动填写信息") + + elif result[0] == -3: + QMessageBox.critical(self, "错误", "WeChat WeChatWin.dll Not Found") + elif result[0] == -10086: + QMessageBox.critical(self, "错误", "未知错误,请收集错误信息") + else: + self.ready = True + self.info = result[0] + self.label_key.setText(self.info['key']) + self.label_wxid.setText(self.info['wxid']) + self.lineEdit_name.setText(self.info['name']) + self.lineEdit_phone.setText(self.info['mobile']) + self.label_pid.setText(str(self.info['pid'])) + self.label_version.setText(self.info['version']) + self.lineEdit_name.setFocus() + self.checkBox.setCheckable(True) + self.checkBox.setChecked(True) + self.get_wxidSignal.emit(self.info['wxid']) + directory = os.path.join(path.wx_path(), self.info['wxid']) + if os.path.exists(directory): + self.label_db_dir.setText(directory) + self.wx_dir = directory + self.checkBox_2.setCheckable(True) + self.checkBox_2.setChecked(True) + self.ready = True + if self.ready: + self.label_ready.setText('已就绪') + if self.wx_dir and os.path.exists(os.path.join(self.wx_dir)): + self.label_ready.setText('已就绪') + self.stopBusy() + + def set_wxid_(self): + if self.sender() == self.lineEdit_name: + self.info['name'] = self.lineEdit_name.text() + elif self.sender() == self.lineEdit_phone: + self.info['mobel'] = self.lineEdit_phone.text() + + def set_wxid(self): + if self.sender() == self.lineEdit_name: + self.info['name'] = self.lineEdit_name.text() + QMessageBox.information(self, "ok", f"昵称修改成功{self.info['name']}") + elif self.sender() == self.lineEdit_phone: + self.info['mobile'] = self.lineEdit_phone.text() + QMessageBox.information(self, "ok", f"手机号修改成功{self.info['mobile']}") + + def select_db_dir(self): + directory = QFileDialog.getExistingDirectory( + self, "选取微信文件保存目录——能看到Msg文件夹", + path.wx_path() + ) # 起始路径 + db_dir = os.path.join(directory, 'Msg') + if not os.path.exists(db_dir): + QMessageBox.critical(self, "错误", "文件夹选择错误\n一般以wxid_xxx结尾") + return + + self.label_db_dir.setText(directory) + self.wx_dir = directory + self.checkBox_2.setCheckable(True) + self.checkBox_2.setChecked(True) + if self.ready: + self.label_ready.setText('已就绪') + + def decrypt(self): + if not self.ready: + QMessageBox.critical(self, "错误", "请先获取信息") + return + if not self.wx_dir: + QMessageBox.critical(self, "错误", "请先选择微信安装路径") + return + if self.label_wxid.text() == 'None': + QMessageBox.critical(self, "错误", "请填入wxid") + return + db_dir = os.path.join(self.wx_dir, 'Msg') + if self.ready: + if not os.path.exists(db_dir): + QMessageBox.critical(self, "错误", "文件夹选择错误\n一般以wxid_xxx结尾") + return + if self.info.get('key') == 'None': + QMessageBox.critical(self, "错误", + "密钥错误\n请查看教程解决相关问题") + close_db() + self.thread2 = DecryptThread(db_dir, self.info['key']) + self.thread2.maxNumSignal.connect(self.setProgressBarMaxNum) + self.thread2.signal.connect(self.progressBar_view) + self.thread2.okSignal.connect(self.btnExitClicked) + self.thread2.errorSignal.connect( + lambda x: QMessageBox.critical(self, "错误", + "错误\n请检查微信版本是否为最新和微信路径是否正确\n或者关闭微信多开") + ) + self.thread2.start() + + def btnEnterClicked(self): + # print("enter clicked") + # 中间可以添加处理逻辑 + # QMessageBox.about(self, "解密成功", "数据库文件存储在app/DataBase/Msg文件夹下") + self.progressBar_view(self.max_val) + self.DecryptSignal.emit(True) + # self.close() + + def setProgressBarMaxNum(self, max_val): + self.max_val = max_val + self.progressBar.setRange(0, max_val) + + def progressBar_view(self, value): + """ + 进度条显示 + :param value: 进度0-100 + :return: None + """ + self.progressBar.setProperty('value', value) + # self.btnExitClicked() + # data.init_database() + + def btnExitClicked(self): + # print("Exit clicked") + dic = { + 'wxid': self.info['wxid'], + 'wx_dir': self.wx_dir, + 'name': self.info['name'], + 'mobile': self.info['mobile'], + 'token': Decrypt.decrypt(self.info['wxid']) + } + try: + with open(INFO_FILE_PATH, "w", encoding="utf-8") as f: + json.dump(dic, f, ensure_ascii=False, indent=4) + except: + with open('./info.json', 'w', encoding='utf-8') as f: + f.write(json.dumps(dic)) + self.progressBar_view(self.max_val) + self.DecryptSignal.emit(True) + self.close() + + +class DecryptThread(QThread): + signal = pyqtSignal(str) + maxNumSignal = pyqtSignal(int) + okSignal = pyqtSignal(str) + errorSignal = pyqtSignal(bool) + + def __init__(self, db_path, key): + super(DecryptThread, self).__init__() + self.db_path = db_path + self.key = key + self.textBrowser = None + + def __del__(self): + pass + + def run(self): + close_db() + output_dir = DB_DIR + os.makedirs(output_dir, exist_ok=True) + tasks = [] + if os.path.exists(self.db_path): + for root, dirs, files in os.walk(self.db_path): + for file in files: + if '.db' == file[-3:]: + if 'xInfo.db' == file: + continue + inpath = os.path.join(root, file) + # print(inpath) + output_path = os.path.join(output_dir, file) + tasks.append([self.key, inpath, output_path]) + else: + try: + name, suffix = file.split('.') + if suffix.startswith('db_SQLITE'): + inpath = os.path.join(root, file) + # print(inpath) + output_path = os.path.join(output_dir, name + '.db') + tasks.append([self.key, inpath, output_path]) + except: + continue + self.maxNumSignal.emit(len(tasks)) + for i, task in enumerate(tasks): + if decrypt.decrypt(*task) == -1: + self.errorSignal.emit(True) + self.signal.emit(str(i)) + # print(self.db_path) + # 目标数据库文件 + target_database = os.path.join(DB_DIR, 'MSG.db') + # 源数据库文件列表 + source_databases = [os.path.join(DB_DIR, f"MSG{i}.db") for i in range(1, 50)] + import shutil + if os.path.exists(target_database): + os.remove(target_database) + shutil.copy2(os.path.join(DB_DIR, 'MSG0.db'), target_database) # 使用一个数据库文件作为模板 + # 合并数据库 + merge_databases(source_databases, target_database) + + # 音频数据库文件 + target_database = os.path.join(DB_DIR, 'MediaMSG.db') + # 源数据库文件列表 + if os.path.exists(target_database): + os.remove(target_database) + source_databases = [os.path.join(DB_DIR, f"MediaMSG{i}.db") for i in range(1, 50)] + shutil.copy2(os.path.join(DB_DIR, 'MediaMSG0.db'), target_database) # 使用一个数据库文件作为模板 + + # 合并数据库 + merge_MediaMSG_databases(source_databases, target_database) + self.okSignal.emit('ok') + # self.signal.emit('100') + + +class MyThread(QThread): + signal = pyqtSignal(list) + + def __init__(self, version_list=None): + super(MyThread, self).__init__() + self.version_list = version_list + + def __del__(self): + pass + + def get_bias_add(self, version): + url = urljoin(SERVER_API_URL, 'wxBiasAddr') + data = { + 'version': version + } + try: + response = requests.get(url, json=data) + print(response) + print(response.text) + if response.status_code == 200: + update_info = response.json() + return update_info + else: + return {} + except: + return {} + + def run(self): + if self.version_list: + VERSION_LIST = self.version_list + else: + file_path = './app/resources/data/version_list.json' + if not os.path.exists(file_path): + resource_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__))) + file_path = os.path.join(resource_dir, 'app', 'resources', 'data', 'version_list.json') + with open(file_path, "r", encoding="utf-8") as f: + VERSION_LIST = json.loads(f.read()) + try: + result = get_wx_info.get_info(VERSION_LIST) + if result == -1: + result = [result] + elif result == -2: + result = [result] + elif result == -3: + result = [result] + elif isinstance(result, str): + version = result + # version = '3.9.9.43' + version_bias = self.get_bias_add(version) + if version_bias.get(version): + logger.info(f"从云端获取内存基址:{version_bias}") + result = get_wx_info.get_info(version_bias) + else: + logger.info(f"从云端获取内存基址失败:{version}") + result = [-2, version] + except: + logger.error(traceback.format_exc()) + result = [-10086] + self.signal.emit(result) diff --git a/app/ui/tool/setting/setting.py b/app/ui/tool/setting/setting.py new file mode 100644 index 0000000..26a7e59 --- /dev/null +++ b/app/ui/tool/setting/setting.py @@ -0,0 +1,208 @@ +import json +import os.path +import time + +import requests +from PyQt5.QtCore import pyqtSignal, QThread +from PyQt5.QtWidgets import QWidget, QMessageBox +from app.config import SEND_LOG_FLAG +from app.person import Me +from .settingUi import Ui_Form + +Stylesheet = """ +QPushButton{ + background-color: rgb(250,252,253); + border-radius: 5px; + padding: 8px; + border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ + border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ +} +QPushButton:hover { + background-color: lightgray; +} +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; + border:none; +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 400px; + max-width: 400px; + min-height: 80px; + max-height: 80px; + color: black; + border:none; +} +QListWidget::item{ + min-width: 80px; + max-width: 400px; + min-height: 80px; + max-height: 80px; +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + border-left:none; + color: black; + font-weight: bold; +} +QCheckBox::indicator { + background: rgb(251, 251, 251); + Width:60px; + Height:60px; + border-radius: 10px; +} +QCheckBox::indicator:unchecked{ + Width:60px; + Height:60px; + image: url(:/icons/icons/按钮_关闭.svg); +} +QCheckBox::indicator:checked{ + Width:60px; + Height:60px; + image: url(:/icons/icons/按钮_开启.svg); +} + +""" + + +def set_SEND_LOG_FLAG(flag): + # noinspection PyGlobalUndefined + global SEND_LOG_FLAG + SEND_LOG_FLAG = flag + + +class SettingControl(QWidget, Ui_Form): + + def __init__(self, parent=None): + super(SettingControl, self).__init__(parent) + self.setStyleSheet(Stylesheet) + self.setupUi(self) + + self.btn_addstopword.clicked.connect(self.add_stopwords) + self.btn_addnewword_2.clicked.connect(self.add_new_words) + self.commandLinkButton_send_error_log.clicked.connect(self.show_info) + self.btn_send_error_log.clicked.connect(self.send_error_log) + self.init_ui() + self.read_data() + + def init_ui(self): + self.checkBox.setText('是') + self.checkBox_send_error_log.clicked.connect(self.set_error_log) + + def show_info(self): + QMessageBox.information(self, "收集错误信息", + "为了更好的解决用户问题,需要收集软件崩溃导致的错误信息,该操作不会上传包括手机号、微信号、昵称等在内的任何信息\n" + ) + + def set_error_log(self): + if self.checkBox_send_error_log.isChecked(): + self.label_error_log.setText('开') + set_SEND_LOG_FLAG(True) + else: + self.label_error_log.setText('关') + set_SEND_LOG_FLAG(False) + print('SEND_LOG_FLAG:', SEND_LOG_FLAG) + + def read_data(self): + os.makedirs('./app/data', exist_ok=True) + stopwords = ['裂开', '苦涩', '叹气', '凋谢', '让我看看', '酷', '奋斗', '疑问', '擦汗', '抠鼻', '鄙视', '勾引', + '奸笑', '嘿哈', '捂脸', '机智', '加油', '吃瓜', '尴尬', '炸弹', '旺柴'] + new_words = ['YYDS', '666', '显眼包', '遥遥领先'] + if os.path.exists('./app/data/stopwords.txt'): + with open('./app/data/stopwords.txt', 'r', encoding='utf-8') as f: + stopwords = set(f.read().splitlines()) + self.plainTextEdit.setPlainText(' '.join(stopwords)) + else: + self.plainTextEdit.setPlainText(' '.join(stopwords)) + stopwords = '\n'.join(stopwords) + with open('./app/data/stopwords.txt', 'w', encoding='utf-8') as f: + f.write(stopwords) + if os.path.exists('./app/data/new_words.txt'): + with open('./app/data/new_words.txt', 'r', encoding='utf-8') as f: + new_words = set(f.read().splitlines()) + self.plainTextEdit_newword.setPlainText(' '.join(new_words)) + else: + self.plainTextEdit_newword.setPlainText(' '.join(new_words)) + stopwords = '\n'.join(new_words) + with open('./app/data/new_words.txt', 'w', encoding='utf-8') as f: + f.write(stopwords) + + def add_stopwords(self): + text = self.plainTextEdit.toPlainText() + stopwords = '\n'.join(text.split()) + with open('./app/data/stopwords.txt', 'w', encoding='utf-8') as f: + f.write(stopwords) + QMessageBox.about(self, "添加成功", "停用词添加成功") + + def add_new_words(self): + text = self.plainTextEdit_newword.toPlainText() + new_words = '\n'.join(text.split()) + with open('./app/data/new_words.txt', 'w', encoding='utf-8') as f: + f.write(new_words) + QMessageBox.about(self, "添加成功", "自定义词添加成功") + + def send_error_log(self): + self.send_thread = MyThread() + self.send_thread.signal.connect(self.show_resp) + self.send_thread.start() + + def show_resp(self, message): + if message.get('code') == 200: + QMessageBox.about(self, "发送结果", f"日志发送成功\n{message.get('message')}") + else: + QMessageBox.about(self, "发送结果", f"{message.get('code')}:{message.get('errmsg')}") + + +class MyThread(QThread): + signal = pyqtSignal(dict) + + def __init__(self, message=''): + super(MyThread, self).__init__() + if message: + self.message = message + else: + filename = time.strftime("%Y-%m-%d", time.localtime(time.time())) + file_path = f'{filename}-log.log' + if os.path.exists(file_path): + with open(file_path, 'r', encoding='gbk') as f: + self.message = f.read() + elif os.path.exists(f'./app/log/logs/{filename}-log.log'): + with open(f'./app/log/logs/{filename}-log.log', 'r', encoding='gbk') as f: + self.message = f.read() + + def __del__(self): + pass + + def send_error_msg(self, message): + url = "http://api.lc044.love/error" + if not message: + return { + 'code': 201, + 'errmsg': '日志为空' + } + data = { + 'username': Me().wxid, + 'error': message + } + try: + response = requests.post(url, json=data) + if response.status_code == 200: + resp_info = response.json() + return resp_info + else: + return { + 'code': 503, + 'errmsg': '服务器错误' + } + except: + return { + 'code': 404, + 'errmsg': '客户端错误' + } + + def run(self): + resp_info = self.send_error_msg(self.message) + self.signal.emit(resp_info) diff --git a/app/ui/tool/setting/settingUi.py b/app/ui/tool/setting/settingUi.py new file mode 100644 index 0000000..93661b5 --- /dev/null +++ b/app/ui/tool/setting/settingUi.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'settingUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(638, 696) + self.verticalLayout_6 = QtWidgets.QVBoxLayout(Form) + self.verticalLayout_6.setObjectName("verticalLayout_6") + self.scrollArea = QtWidgets.QScrollArea(Form) + self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame) + self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn) + self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.scrollArea.setWidgetResizable(True) + self.scrollArea.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) + self.scrollArea.setObjectName("scrollArea") + self.scrollAreaWidgetContents = QtWidgets.QWidget() + self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, -20, 595, 728)) + self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") + self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents) + self.verticalLayout_3.setObjectName("verticalLayout_3") + self.widget = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget.setObjectName("widget") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.widget) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.label = QtWidgets.QLabel(self.widget) + self.label.setObjectName("label") + self.verticalLayout.addWidget(self.label) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.plainTextEdit = QtWidgets.QPlainTextEdit(self.widget) + self.plainTextEdit.setFrameShape(QtWidgets.QFrame.Box) + self.plainTextEdit.setFrameShadow(QtWidgets.QFrame.Sunken) + self.plainTextEdit.setObjectName("plainTextEdit") + self.horizontalLayout.addWidget(self.plainTextEdit) + self.btn_addstopword = QtWidgets.QPushButton(self.widget) + self.btn_addstopword.setObjectName("btn_addstopword") + self.horizontalLayout.addWidget(self.btn_addstopword) + self.verticalLayout.addLayout(self.horizontalLayout) + self.verticalLayout_4.addLayout(self.verticalLayout) + self.verticalLayout_3.addWidget(self.widget) + self.widget_3 = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget_3.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget_3.setObjectName("widget_3") + self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_3) + self.verticalLayout_5.setObjectName("verticalLayout_5") + self.verticalLayout_2 = QtWidgets.QVBoxLayout() + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.label_2 = QtWidgets.QLabel(self.widget_3) + self.label_2.setObjectName("label_2") + self.verticalLayout_2.addWidget(self.label_2) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.plainTextEdit_newword = QtWidgets.QPlainTextEdit(self.widget_3) + self.plainTextEdit_newword.setFrameShape(QtWidgets.QFrame.Box) + self.plainTextEdit_newword.setFrameShadow(QtWidgets.QFrame.Sunken) + self.plainTextEdit_newword.setPlainText("") + self.plainTextEdit_newword.setObjectName("plainTextEdit_newword") + self.horizontalLayout_3.addWidget(self.plainTextEdit_newword) + self.btn_addnewword_2 = QtWidgets.QPushButton(self.widget_3) + self.btn_addnewword_2.setObjectName("btn_addnewword_2") + self.horizontalLayout_3.addWidget(self.btn_addnewword_2) + self.verticalLayout_2.addLayout(self.horizontalLayout_3) + self.verticalLayout_5.addLayout(self.verticalLayout_2) + self.verticalLayout_3.addWidget(self.widget_3) + self.widget_2 = QtWidgets.QWidget(self.scrollAreaWidgetContents) + self.widget_2.setStyleSheet("QWidget{\n" +" background-color:rgb(251,251,251);\n" +" border-radius: 10px;\n" +"}\n" +"\n" +"QPushButton{\n" +" background-color: rgb(250,252,253);\n" +" border-radius: 5px;\n" +" padding: 8px;\n" +" border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */\n" +" border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +" border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */\n" +"}\n" +"QPushButton:hover { \n" +" background-color: lightgray;\n" +"}") + self.widget_2.setObjectName("widget_2") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.widget_2) + self.horizontalLayout_2.setContentsMargins(9, -1, -1, -1) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.commandLinkButton_send_error_log = QtWidgets.QCommandLinkButton(self.widget_2) + self.commandLinkButton_send_error_log.setEnabled(True) + self.commandLinkButton_send_error_log.setTabletTracking(False) + self.commandLinkButton_send_error_log.setFocusPolicy(QtCore.Qt.StrongFocus) + self.commandLinkButton_send_error_log.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) + self.commandLinkButton_send_error_log.setToolTipDuration(-1) + self.commandLinkButton_send_error_log.setLayoutDirection(QtCore.Qt.LeftToRight) + self.commandLinkButton_send_error_log.setAutoFillBackground(False) + self.commandLinkButton_send_error_log.setCheckable(False) + self.commandLinkButton_send_error_log.setChecked(False) + self.commandLinkButton_send_error_log.setAutoRepeat(False) + self.commandLinkButton_send_error_log.setAutoExclusive(False) + self.commandLinkButton_send_error_log.setAutoDefault(False) + self.commandLinkButton_send_error_log.setDefault(False) + self.commandLinkButton_send_error_log.setObjectName("commandLinkButton_send_error_log") + self.horizontalLayout_2.addWidget(self.commandLinkButton_send_error_log) + self.btn_send_error_log = QtWidgets.QPushButton(self.widget_2) + self.btn_send_error_log.setObjectName("btn_send_error_log") + self.horizontalLayout_2.addWidget(self.btn_send_error_log) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.label_error_log = QtWidgets.QLabel(self.widget_2) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_error_log.sizePolicy().hasHeightForWidth()) + self.label_error_log.setSizePolicy(sizePolicy) + self.label_error_log.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_error_log.setObjectName("label_error_log") + self.horizontalLayout_2.addWidget(self.label_error_log) + self.checkBox_send_error_log = QtWidgets.QCheckBox(self.widget_2) + self.checkBox_send_error_log.setText("") + self.checkBox_send_error_log.setIconSize(QtCore.QSize(64, 64)) + self.checkBox_send_error_log.setChecked(True) + self.checkBox_send_error_log.setObjectName("checkBox_send_error_log") + self.horizontalLayout_2.addWidget(self.checkBox_send_error_log) + self.verticalLayout_3.addWidget(self.widget_2) + self.checkBox_2 = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox_2.setObjectName("checkBox_2") + self.verticalLayout_3.addWidget(self.checkBox_2) + self.checkBox = QtWidgets.QCheckBox(self.scrollAreaWidgetContents) + self.checkBox.setObjectName("checkBox") + self.verticalLayout_3.addWidget(self.checkBox) + self.commandLinkButton_2 = QtWidgets.QCommandLinkButton(self.scrollAreaWidgetContents) + self.commandLinkButton_2.setCheckable(True) + self.commandLinkButton_2.setObjectName("commandLinkButton_2") + self.verticalLayout_3.addWidget(self.commandLinkButton_2) + self.radioButton = QtWidgets.QRadioButton(self.scrollAreaWidgetContents) + self.radioButton.setObjectName("radioButton") + self.verticalLayout_3.addWidget(self.radioButton) + self.scrollArea.setWidget(self.scrollAreaWidgetContents) + self.verticalLayout_6.addWidget(self.scrollArea) + + self.retranslateUi(Form) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) + self.label.setText(_translate("Form", "文本框里输入年度报告词云停用词,每个词之间用空格隔开")) + self.plainTextEdit.setPlainText(_translate("Form", "哈哈哈 发呆")) + self.btn_addstopword.setText(_translate("Form", "添加停用词")) + self.label_2.setText(_translate("Form", "文本框里输入年度报告词云自定义词,每个词之间用空格隔开")) + self.btn_addnewword_2.setText(_translate("Form", "添加自定义词")) + self.commandLinkButton_send_error_log.setText(_translate("Form", "收集错误日志")) + self.commandLinkButton_send_error_log.setDescription(_translate("Form", "收集错误信息以帮助改进")) + self.btn_send_error_log.setText(_translate("Form", "手动发送")) + self.label_error_log.setText(_translate("Form", "开")) + self.checkBox_2.setText(_translate("Form", "CheckBox")) + self.checkBox.setText(_translate("Form", "CheckBox")) + self.commandLinkButton_2.setText(_translate("Form", "CommandLinkButton")) + self.radioButton.setText(_translate("Form", "RadioButton")) diff --git a/app/ui/tool/toolUI.py b/app/ui/tool/toolUI.py new file mode 100644 index 0000000..bc61f71 --- /dev/null +++ b/app/ui/tool/toolUI.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'toolUI.ui' +# +# Created by: PyQt5 UI code generator 5.15.7 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(590, 547) + font = QtGui.QFont() + font.setFamily("微软雅黑") + Dialog.setFont(font) + self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) + self.horizontalLayout.setSpacing(0) + self.horizontalLayout.setObjectName("horizontalLayout") + self.label = QtWidgets.QLabel(Dialog) + self.label.setMaximumSize(QtCore.QSize(80, 80)) + self.label.setText("") + self.label.setObjectName("label") + self.horizontalLayout.addWidget(self.label) + self.listWidget = QtWidgets.QListWidget(Dialog) + self.listWidget.setMinimumSize(QtCore.QSize(100, 80)) + self.listWidget.setMaximumSize(QtCore.QSize(500, 80)) + self.listWidget.setFrameShape(QtWidgets.QFrame.NoFrame) + self.listWidget.setFrameShadow(QtWidgets.QFrame.Plain) + self.listWidget.setLineWidth(0) + self.listWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.listWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.listWidget.setFlow(QtWidgets.QListView.LeftToRight) + self.listWidget.setObjectName("listWidget") + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + item = QtWidgets.QListWidgetItem() + self.listWidget.addItem(item) + self.horizontalLayout.addWidget(self.listWidget) + self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2.setMaximumSize(QtCore.QSize(80, 80)) + self.label_2.setText("") + self.label_2.setObjectName("label_2") + self.horizontalLayout.addWidget(self.label_2) + self.verticalLayout.addLayout(self.horizontalLayout) + self.stackedWidget = QtWidgets.QStackedWidget(Dialog) + self.stackedWidget.setFrameShape(QtWidgets.QFrame.NoFrame) + self.stackedWidget.setFrameShadow(QtWidgets.QFrame.Raised) + self.stackedWidget.setObjectName("stackedWidget") + self.verticalLayout.addWidget(self.stackedWidget) + self.verticalLayout.setStretch(1, 1) + + self.retranslateUi(Dialog) + self.stackedWidget.setCurrentIndex(-1) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + __sortingEnabled = self.listWidget.isSortingEnabled() + self.listWidget.setSortingEnabled(False) + item = self.listWidget.item(0) + item.setText(_translate("Dialog", "新建项目")) + item = self.listWidget.item(1) + item.setText(_translate("Dialog", "新建项目")) + item = self.listWidget.item(2) + item.setText(_translate("Dialog", "新建项目")) + item = self.listWidget.item(3) + item.setText(_translate("Dialog", "新建项目")) + item = self.listWidget.item(4) + item.setText(_translate("Dialog", "新建项目")) + self.listWidget.setSortingEnabled(__sortingEnabled) diff --git a/app/ui/tool/tool_window.py b/app/ui/tool/tool_window.py new file mode 100644 index 0000000..672975f --- /dev/null +++ b/app/ui/tool/tool_window.py @@ -0,0 +1,111 @@ +from PyQt5.QtCore import Qt, pyqtSignal +from PyQt5.QtGui import QFont +from PyQt5.QtWidgets import QWidget, QListWidgetItem, QLabel + +from app.ui.Icon import Icon +from .pc_decrypt import DecryptControl +from .setting.setting import SettingControl +from .get_bias_addr.get_bias_addr import GetBiasAddrControl +from .toolUI import Ui_Dialog + +# 美化样式表 +Stylesheet = """ +QPushButton{ + background-color: rgb(250,252,253); + border-radius: 5px; + padding: 8px; + border-right: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-bottom: 2px solid #888888; /* 按钮边框,2px宽,白色 */ + border-left: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ + border-top: 1px solid #ffffff; /* 按钮边框,2px宽,白色 */ +} +QPushButton:hover { + background-color: lightgray; +} +/*去掉item虚线边框*/ +QListWidget, QListView, QTreeWidget, QTreeView { + outline: 0px; + border:none; +} +/*设置左侧选项的最小最大宽度,文字颜色和背景颜色*/ +QListWidget { + min-width: 400px; + max-width: 400px; + min-height: 80px; + max-height: 80px; + color: black; + border:none; +} +QListWidget::item{ + min-width: 80px; + max-width: 400px; + min-height: 80px; + max-height: 80px; +} +/*被选中时的背景颜色和左边框颜色*/ +QListWidget::item:selected { + border-left:none; + color: black; + font-weight: bold; +} + +""" + + +class ToolWindow(QWidget, Ui_Dialog): + get_info_signal = pyqtSignal(str) + decrypt_success_signal = pyqtSignal(bool) + load_finish_signal = pyqtSignal(bool) + + def __init__(self, parent=None): + super().__init__(parent) + self.setupUi(self) + self.setStyleSheet(Stylesheet) + self.init_ui() + self.load_finish_signal.emit(True) + + def init_ui(self): + self.listWidget.clear() + self.listWidget.currentRowChanged.connect(self.setCurrentIndex) + chat_item = QListWidgetItem(Icon.Decrypt_Icon, '解密', self.listWidget) + contact_item = QListWidgetItem(Icon.Contact_Icon, '设置', self.listWidget) + myinfo_item = QListWidgetItem(Icon.Home_Icon, '解密2', self.listWidget) + tool_item = QListWidgetItem(Icon.Home_Icon, '别点', self.listWidget) + + self.decrypt_window = DecryptControl() + self.decrypt_window.get_wxidSignal.connect(self.get_info_signal) + self.decrypt_window.DecryptSignal.connect(self.decrypt_success_signal) + self.decrypt_window.versionErrorSignal.connect(self.show_decrypt2) + self.stackedWidget.addWidget(self.decrypt_window) + + setting_window = SettingControl() + self.stackedWidget.addWidget(setting_window) + + self.get_bias_addr_window = GetBiasAddrControl() + self.get_bias_addr_window.biasAddrSignal.connect(self.decrypt) + self.stackedWidget.addWidget(self.get_bias_addr_window) + + label = QLabel('都说了不让你点', self) + label.setFont(QFont("微软雅黑", 50)) + label.setAlignment(Qt.AlignCenter) + # 设置label的背景颜色(这里随机) + # 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色) + # label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % ( + # randint(0, 255), randint(0, 255), randint(0, 255))) + + self.stackedWidget.addWidget(label) + self.listWidget.setCurrentRow(0) + self.stackedWidget.setCurrentIndex(0) + + def decrypt(self, version_list): + self.listWidget.setCurrentRow(0) + self.stackedWidget.setCurrentIndex(0) + self.decrypt_window.version_list = version_list + self.decrypt_window.get_info() + + def show_decrypt2(self, version): + self.listWidget.setCurrentRow(2) + self.stackedWidget.setCurrentIndex(2) + + def setCurrentIndex(self, row): + self.stackedWidget.setCurrentIndex(row) diff --git a/app/ui/update/update.py b/app/ui/update/update.py new file mode 100644 index 0000000..8644dca --- /dev/null +++ b/app/ui/update/update.py @@ -0,0 +1,11 @@ +from app.ui.update.updateUi import Ui_Dialog +import shutil +from PyQt5.QtCore import QThread, pyqtSignal +from PyQt5.QtGui import QPixmap +from PyQt5.QtWidgets import QWidget, QMessageBox, QAction, QLineEdit + + +class UpdateControl(QWidget, Ui_Dialog): + def __init__(self, parent=None): + super().__init__(parent) + self.setupUi(self) \ No newline at end of file diff --git a/app/ui/update/updateUi.py b/app/ui/update/updateUi.py new file mode 100644 index 0000000..df4464f --- /dev/null +++ b/app/ui/update/updateUi.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'updateUi.ui' +# +# Created by: PyQt5 UI code generator 5.15.10 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(590, 547) + font = QtGui.QFont() + font.setFamily("微软雅黑") + Dialog.setFont(font) + self.verticalLayout = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout.setObjectName("verticalLayout") + self.btn_report = QtWidgets.QPushButton(Dialog) + font = QtGui.QFont() + font.setFamily("微软雅黑") + font.setPointSize(30) + self.btn_report.setFont(font) + self.btn_report.setObjectName("btn_report") + self.verticalLayout.addWidget(self.btn_report) + self.progressBar = QtWidgets.QProgressBar(Dialog) + self.progressBar.setProperty("value", 0) + self.progressBar.setObjectName("progressBar") + self.verticalLayout.addWidget(self.progressBar) + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.btn_start_update = QtWidgets.QPushButton(Dialog) + self.btn_start_update.setObjectName("btn_start_update") + self.horizontalLayout.addWidget(self.btn_start_update) + self.btn_cancle = QtWidgets.QPushButton(Dialog) + self.btn_cancle.setObjectName("btn_cancle") + self.horizontalLayout.addWidget(self.btn_cancle) + self.verticalLayout.addLayout(self.horizontalLayout) + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.btn_report.setText(_translate("Dialog", "更新程序")) + self.btn_start_update.setText(_translate("Dialog", "开始更新")) + self.btn_cancle.setText(_translate("Dialog", "取消更新")) diff --git a/app/util/__init__.py b/app/util/__init__.py new file mode 100644 index 0000000..ed49344 --- /dev/null +++ b/app/util/__init__.py @@ -0,0 +1 @@ +from .path import get_abs_path diff --git a/app/util/compress_content.py b/app/util/compress_content.py new file mode 100644 index 0000000..f21af90 --- /dev/null +++ b/app/util/compress_content.py @@ -0,0 +1,333 @@ +import html +import xml.etree.ElementTree as ET + +import lz4.block + +import requests +import re +from urllib.parse import urlparse +from bs4 import BeautifulSoup + +from app.util.protocbuf.msg_pb2 import MessageBytesExtra +from ..util.file import get_file + + +def decompress_CompressContent(data): + """ + 解压缩Msg:CompressContent内容 + :param data: + :return: + """ + if data is None or not isinstance(data, bytes): + return "" + try: + dst = lz4.block.decompress(data, uncompressed_size=len(data) << 10) + decoded_string = dst.decode().replace("\x00", "") # Remove any null characters + except: + print( + "Decompression failed: potentially corrupt input or insufficient buffer size." + ) + return "" + return decoded_string + + +def escape_js_and_html(input_str): + if not input_str: + return "" + # 转义HTML特殊字符 + html_escaped = html.escape(input_str, quote=False) + + # 手动处理JavaScript转义字符 + js_escaped = ( + html_escaped.replace("\\", "\\\\") + .replace("'", r"\'") + .replace('"', r"\"") + .replace("\n", r"\n") + .replace("\r", r"\r") + .replace("\t", r"\t") + ) + + return js_escaped + + +def parser_reply(data: bytes): + xml_content = decompress_CompressContent(data) + if not xml_content: + return { + "type": 57, + "title": "发生错误", + "refer": { + "type": "1", + "content": "引用错误", + "displayname": "用户名", + }, + "is_error": True, + } + try: + root = ET.XML(xml_content) + appmsg = root.find("appmsg") + msg_type = int(appmsg.find("type").text) + title = appmsg.find("title").text + refermsg_content = appmsg.find("refermsg").find("content").text + refermsg_type = int(appmsg.find("refermsg").find("type").text) + refermsg_displayname = appmsg.find("refermsg").find("displayname").text + return { + "type": msg_type, + "title": title, + "refer": None + if refermsg_type != 1 + else { + "type": refermsg_type, + "content": refermsg_content.lstrip("\n"), + "displayname": refermsg_displayname, + }, + "is_error": False, + } + except: + return { + "type": 57, + "title": "发生错误", + "refer": { + "type": "1", + "content": "引用错误", + "displayname": "用户名", + }, + "is_error": True, + } + + +def music_share(data: bytes): + xml_content = decompress_CompressContent(data) + if not xml_content: + return {"type": 3, "title": "发生错误", "is_error": True} + try: + root = ET.XML(xml_content) + appmsg = root.find("appmsg") + msg_type = int(appmsg.find("type").text) + title = appmsg.find("title").text + if len(title) >= 39: + title = title[:38] + "..." + artist = appmsg.find("des").text + link_url = appmsg.find("url").text # 链接地址 + audio_url = get_audio_url(appmsg.find("dataurl").text) # 播放地址 + website_name = get_website_name(link_url) + return { + "type": msg_type, + "title": escape_js_and_html(title), + "artist": escape_js_and_html(artist), + "link_url": link_url, + "audio_url": audio_url, + "website_name": escape_js_and_html(website_name), + "is_error": False, + } + except Exception as e: + print(f"Music Share Error: {e}") + return {"type": 3, "title": "发生错误", "is_error": True} + + +def share_card(bytesExtra, compress_content_): + title, des, url, show_display_name, thumbnail, app_logo = "", "", "", "", "", "" + try: + xml = decompress_CompressContent(compress_content_) + root = ET.XML(xml) + appmsg = root.find("appmsg") + title = appmsg.find("title").text + try: + des = appmsg.find("des").text + except: + des = "" + url = appmsg.find("url").text + appinfo = root.find("appinfo") + show_display_name = appmsg.find("sourcedisplayname") + sourceusername = appmsg.find("sourceusername") + if show_display_name is not None: + show_display_name = show_display_name.text + else: + if appinfo is not None: + show_display_name = appinfo.find("appname").text + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytesExtra) + app_logo = "" + thumbnail = "" + for tmp in msg_bytes.message2: + if tmp.field1 == 3: + thumbnail = tmp.field2 + thumbnail = "\\".join(thumbnail.split("\\")[1:]) + if tmp.field2 == 4: + app_logo = tmp.field2 + app_logo = "\\".join(app_logo.split("\\")[1:]) + if sourceusername is not None: + from app.DataBase import micro_msg_db # 放上面会导致循环依赖 + + contact = micro_msg_db.get_contact_by_username(sourceusername.text) + if contact: + app_logo = contact[7] + finally: + return { + "title": escape_js_and_html(title), + "description": escape_js_and_html(des), + "url": escape_js_and_html(url), + "app_name": escape_js_and_html(show_display_name), + "thumbnail": thumbnail, + "app_logo": app_logo, + } + + +def transfer_decompress(compress_content_): + """ + return dict + feedesc: 钱数,str类型,包含一个前缀币种符号(除人民币¥之外未测试); + pay_memo: 转账备注; + receiver_username: 接受转账人的 wxid; (因为电脑上只有私聊页面会显示收款所以这个字段没有也罢,不要轻易使用,因为可能为空) + paysubtype: int 类型,1 为发出转账,3 为接受转账,4 为退还转账; + """ + feedesc, pay_memo, receiver_username, paysubtype = "", "", "", "" + try: + xml = decompress_CompressContent(compress_content_) + root = ET.XML(xml) + appmsg = root.find("appmsg") + wcpayinfo = appmsg.find("wcpayinfo") + paysubtype = int(wcpayinfo.find("paysubtype").text) + feedesc = wcpayinfo.find("feedesc").text + pay_memo = wcpayinfo.find("pay_memo").text + receiver_username = wcpayinfo.find("receiver_username").text + finally: + return { + "feedesc": feedesc, + "pay_memo": escape_js_and_html(pay_memo), + "receiver_username": receiver_username, + "paysubtype": paysubtype, + } + + +def call_decompress(is_send, bytes_extra, display_content, str_content): # 音视频通话 + """ + return dict + call_type: int 类型,0 为视频,1为语音; (返回为 2 是未知错误) + display_content: str 类型,页面显示的话; + """ + call_type = 2 + call_length = 0 + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytes_extra) + # message2 字段 1: 发送人wxid; 字段 3: "1"是语音,"0"是视频; 字段 4: 通话时长 + for i in msg_bytes.message2: + if i.field1 == 3: + call_type = int(i.field2) + elif i.field1 == 4: + call_length = int(i.field2) + + try: + if display_content == "": + if str_content == "11": + h, m, s = ( + call_length // 3600, + (call_length % 3600) // 60, + call_length % 60, + ) + display_content = f"通话时长 {f'{h:02d}:' if h else ''}{m:02d}:{s:02d}" + else: + display_content = { + "5": ("" if is_send else "对方") + "已取消", + "8": ("对方" if is_send else "") + "已拒绝", + "7": "已在其他设备接听", + "12": "已在其他设备拒绝", + }[str_content] + except KeyError: + display_content = "未知类型,您可以把这条消息对应的微信界面消息反馈给我们" + + return { + "call_type": call_type, + "display_content": display_content, + } + + +def get_website_name(url): + parsed_url = urlparse(url) + domain = f"{parsed_url.scheme}://{parsed_url.netloc}" + website_name = "" + try: + response = requests.get(domain, allow_redirects=False) + if response.status_code == 200: + soup = BeautifulSoup(response.content, "html.parser") + website_name = soup.title.string.strip() + elif response.status_code == 302: + domain = response.headers["Location"] + response = requests.get(domain, allow_redirects=False) + soup = BeautifulSoup(response.content, "html.parser") + website_name = soup.title.string.strip() + else: + response = requests.get(url, allow_redirects=False) + if response.status_code == 200: + soup = BeautifulSoup(response.content, "html.parser") + website_name = soup.title.string.strip() + index = website_name.find("-") + if index != -1: # 如果找到了 "-" + website_name = website_name[index + 1 :].strip() + except Exception as e: + print(f"Get Website Info Error: {e}") + return website_name + + +def get_audio_url(url): + path = "" + try: + response = requests.get(url, allow_redirects=False) + # 检查响应状态码 + if response.status_code == 302: + path = response.headers["Location"] + elif response.status_code == 200: + print("音乐文件已失效,url:" + url) + else: + print("音乐文件地址获取失败,url:" + url + ",状态码" + str(response.status_code)) + except Exception as e: + print(f"Get Audio Url Error: {e}") + return path + + +def file(bytes_extra, compress_content, output_path): + xml_content = decompress_CompressContent(compress_content) + if not xml_content: + return {"type": 6, "title": "发生错误", "is_error": True} + try: + root = ET.XML(xml_content) + appmsg = root.find("appmsg") + msg_type = int(appmsg.find("type").text) + file_name = appmsg.find("title").text + pattern = r'[\\/:*?"<>|\r\n]+' + file_name = re.sub(pattern, "_", file_name) + appattach = appmsg.find("appattach") + file_len = int(appattach.find("totallen").text) + app_name = "" + file_len = format_bytes(file_len) + file_ext = appattach.find("fileext").text + if root.find("appinfo") is not None: + app_info = root.find("appinfo") + app_name = app_info.find("appname").text + if app_name is None: + app_name = "" + file_path = get_file(bytes_extra, file_name, output_path) + return { + "type": msg_type, + "file_name": escape_js_and_html(file_name), + "file_len": file_len, + "file_ext": file_ext, + "file_path": file_path, + "app_name": escape_js_and_html(app_name), + "is_error": False, + } + except Exception as e: + print(f"File Get Info Error: {e}") + return {"type": 6, "title": "发生错误", "is_error": True} + + +def format_bytes(size): + units = ["B", "KB", "MB", "GB"] + + def convert_bytes(size, unit_index): + if size < 1024 or unit_index >= len(units) - 1: + return size, unit_index + return convert_bytes(size / 1024, unit_index + 1) + + final_size, final_unit_index = convert_bytes(size, 0) + return f"{final_size:.2f} {units[final_unit_index]}" diff --git a/app/util/emoji.py b/app/util/emoji.py new file mode 100644 index 0000000..5939b3a --- /dev/null +++ b/app/util/emoji.py @@ -0,0 +1,318 @@ +# -*- coding: utf-8 -*- +""" +emoji.py + +!!!声明: +由于表情包并不属于个人,并且其可能具有版权风险,你只有浏览权没有拥有权 +另外访问腾讯API可能会给腾讯服务器造成压力 +所以禁止任何人以任何方式修改或间接修改该文件,违者后果自负 +""" + +import os +import re +import traceback +import xml.etree.ElementTree as ET +import sqlite3 +import threading +from PyQt5.QtGui import QPixmap +import requests + +from app.log import log, logger + +lock = threading.Lock() +db_path = "./app/Database/Msg/Emotion.db" +root_path = "./data/emoji/" +if not os.path.exists("./data"): + os.mkdir("./data") +if not os.path.exists(root_path): + os.mkdir(root_path) + + +@log +def get_image_format(header): + # 定义图片格式的 magic numbers + image_formats = { + b"\xFF\xD8\xFF": "jpeg", + b"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A": "png", + b"\x47\x49\x46": "gif", + b"\x42\x4D": "bmp", + # 添加其他图片格式的 magic numbers + } + # 判断文件的图片格式 + for magic_number, image_format in image_formats.items(): + if header.startswith(magic_number): + return image_format + # 如果无法识别格式,返回 None + return None + + +@log +def parser_xml(xml_string): + assert type(xml_string) == str + # Parse the XML string + try: + root = ET.fromstring(xml_string) + except: + res = re.search('.*', xml_string) + if res: + xml_string = res.group() + root = ET.fromstring(xml_string.replace("&", "&")) + emoji = root.find("./emoji") + # Accessing attributes of the 'emoji' element + fromusername = emoji.get("fromusername") + tousername = emoji.get("tousername") + md5 = emoji.get("md5") + cdnurl = emoji.get("cdnurl") + encrypturl = emoji.get("encrypturl") + thumburl = emoji.get("thumburl") + externurl = emoji.get("externurl") + androidmd5 = emoji.get("androidmd5") + width = emoji.get("width") + height = emoji.get("height") + return { + "width": width, + "height": height, + "cdnurl": cdnurl, + "thumburl": thumburl if thumburl else cdnurl, + "md5": (md5 if md5 else androidmd5).lower(), + } + + +def singleton(cls): + _instance = {} + + def inner(): + if cls not in _instance: + _instance[cls] = cls() + return _instance[cls] + + return inner + + +# 一定要保证只有一个实例对象 +@singleton +class Emotion: + def __init__(self): + self.DB = None + self.cursor: sqlite3.Cursor = None + self.open_flag = False + self.init_database() + + def init_database(self): + if not self.open_flag: + if os.path.exists(db_path): + self.DB = sqlite3.connect(db_path, check_same_thread=False) + # '''创建游标''' + self.cursor = self.DB.cursor() + self.open_flag = True + if lock.locked(): + lock.release() + + def get_emoji_url(self, md5: str, thumb: bool) -> str | bytes: + """供下载用,返回可能是url可能是bytes""" + if thumb: + sql = """ + select + case + when thumburl is NULL or thumburl = '' then cdnurl + else thumburl + end as selected_url + from CustomEmotion + where md5 = ? + """ + else: + sql = """ + select CDNUrl + from CustomEmotion + where md5 = ? + """ + try: + lock.acquire(True) + self.cursor.execute(sql, [md5]) + return self.cursor.fetchone()[0] + except: + md5 = md5.upper() + sql = f""" + select {"Thumb" if thumb else "Data"} + from EmotionItem + where md5 = ? + """ + self.cursor.execute(sql, [md5]) + res = self.cursor.fetchone() + return res[0] if res else "" + finally: + lock.release() + + def get_emoji_URL(self, md5: str, thumb: bool): + """只管url,另外的不管""" + if thumb: + sql = """ + select + case + when thumburl is NULL or thumburl = '' then cdnurl + else thumburl + end as selected_url + from CustomEmotion + where md5 = ? + """ + else: + sql = """ + select CDNUrl + from CustomEmotion + where md5 = ? + """ + try: + lock.acquire(True) + self.cursor.execute(sql, [md5]) + return self.cursor.fetchone()[0] + except: + return "" + finally: + lock.release() + + def close(self): + if self.open_flag: + try: + lock.acquire(True) + self.open_flag = False + self.DB.close() + finally: + lock.release() + + def __del__(self): + self.close() + + +@log +def download(url, output_dir, name, thumb=False): + resp = requests.get(url) + byte = resp.content + image_format = get_image_format(byte[:8]) + if image_format: + if thumb: + output_path = os.path.join(output_dir, "th_" + name + "." + image_format) + else: + output_path = os.path.join(output_dir, name + "." + image_format) + else: + output_path = os.path.join(output_dir, name) + with open(output_path, "wb") as f: + f.write(resp.content) + return output_path + + +def get_most_emoji(messages): + dic = {} + for msg in messages: + str_content = msg[7] + emoji_info = parser_xml(str_content) + if emoji_info is None: + continue + md5 = emoji_info["md5"] + if not md5: + continue + try: + dic[md5][0] += 1 + except: + dic[md5] = [1, emoji_info] + md5_nums = [(num[0], key, num[1]) for key, num in dic.items()] + md5_nums.sort(key=lambda x: x[0], reverse=True) + if not md5_nums: + return "", 0 + md5 = md5_nums[0][1] + num = md5_nums[0][0] + emoji_info = md5_nums[0][2] + url = emoji_info["cdnurl"] + if not url or url == "": + url = Emotion().get_emoji_url(md5, False) + return url, num + + +def get_emoji(xml_string, thumb=True, output_path=root_path) -> str: + """供下载用""" + try: + emoji_info = parser_xml(xml_string) + md5 = emoji_info["md5"] + image_format = [".png", ".gif", ".jpeg"] + for f in image_format: + prefix = "th_" if thumb else "" + file_path = os.path.join(output_path, prefix + md5 + f) + if os.path.exists(file_path): + return file_path + url = emoji_info["thumburl"] if thumb else emoji_info["cdnurl"] + if not url or url == "": + url = Emotion().get_emoji_url(md5, thumb) + if type(url) == str and url != "": + print("下载表情包ing:", url) + emoji_path = download(url, output_path, md5, thumb) + return emoji_path + elif type(url) == bytes: + image_format = get_image_format(url[:8]) + if image_format: + if thumb: + output_path = os.path.join( + output_path, "th_" + md5 + "." + image_format + ) + else: + output_path = os.path.join(output_path, md5 + "." + image_format) + else: + output_path = os.path.join(output_path, md5) + with open(output_path, "wb") as f: + f.write(url) + print("表情包数据库加载", output_path) + return output_path + else: + print("!!!未知表情包数据,信息:", xml_string, emoji_info, url) + output_path = os.path.join(output_path, "404.png") + if not os.path.exists(output_path): + QPixmap(":/icons/icons/404.png").save(output_path) + return output_path + except: + logger.error(traceback.format_exc()) + output_path = os.path.join(output_path, "404.png") + if not os.path.exists(output_path): + QPixmap(":/icons/icons/404.png").save(output_path) + return output_path + + +def get_emoji_path(xml_string, thumb=True, output_path=root_path) -> str: + try: + emoji_info = parser_xml(xml_string) + md5 = emoji_info["md5"] + image_format = [".png", ".gif", ".jpeg"] + for f in image_format: + prefix = "th_" if thumb else "" + file_path = os.path.join(output_path, prefix + md5 + f) + return file_path + except: + logger.error(traceback.format_exc()) + output_path = os.path.join(output_path, "404.png") + return output_path + + +def get_emoji_url(xml_string, thumb=True) -> str: + """不管下载,只返回url""" + try: + emoji_info = parser_xml(xml_string) + md5 = emoji_info["md5"] + url = emoji_info["thumburl" if thumb else "cdnurl"] + if not url or url == "": + url = Emotion().get_emoji_URL(md5=md5, thumb=thumb) + return url + except: + logger.error(traceback.format_exc()) + output_path = os.path.join("./emoji/404.png") + return output_path + + +if __name__ == "__main__": + # xml_string = ' ' + # res1 = parser_xml(xml_string) + # print(res1, res1['md5']) + # download(res1['cdnurl'], "./data/emoji/", res1['md5']) + # download(res1['thumburl'], "./data/emoji/", res1['md5'], True) + # print(Emotion().get_emoji_url("144714f65c98844128ac3a1042445d9a", True)) + # print(Emotion().get_emoji_url("144714f65c98844128ac3a1042445d9a", False)) + print(parser_xml("")) + # print(get_emoji(xml_string, True)) + # print(get_emoji(xml_string, False)) +# http://vweixinf.tc.qq.com/110/20403/stodownload?m=3a4d439aba02dce4834b2c54e9f15597&filekey=3043020101042f302d02016e0402534804203361346434333961626130326463653438333462326335346539663135353937020213f0040d00000004627466730000000131&hy=SH&storeid=323032313037323030373236313130303039653236646365316535316534383236386234306230303030303036653033303034666233&ef=3&bizid=1022 diff --git a/app/util/exporter/__init__.py b/app/util/exporter/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/util/exporter/exporter.py b/app/util/exporter/exporter.py new file mode 100644 index 0000000..d74d33e --- /dev/null +++ b/app/util/exporter/exporter.py @@ -0,0 +1,176 @@ +import csv +import html +import os +import shutil +import sys + +import filecmp + +from PyQt5.QtCore import pyqtSignal, QThread + +from app.config import OUTPUT_DIR +from app.person import Me, Contact + +os.makedirs(os.path.join(OUTPUT_DIR, '聊天记录'), exist_ok=True) + + +def set_global_font(doc, font_name): + # 创建一个新样式 + style = doc.styles['Normal'] + + # 设置字体名称 + style.font.name = font_name + # 遍历文档中的所有段落,将样式应用到每个段落 + for paragraph in doc.paragraphs: + for run in paragraph.runs: + run.font.name = font_name + + +def makedirs(path): + os.makedirs(path, exist_ok=True) + os.makedirs(os.path.join(path, 'image'), exist_ok=True) + os.makedirs(os.path.join(path, 'emoji'), exist_ok=True) + os.makedirs(os.path.join(path, 'video'), exist_ok=True) + os.makedirs(os.path.join(path, 'voice'), exist_ok=True) + os.makedirs(os.path.join(path, 'file'), exist_ok=True) + os.makedirs(os.path.join(path, 'avatar'), exist_ok=True) + os.makedirs(os.path.join(path, 'music'), exist_ok=True) + os.makedirs(os.path.join(path, 'icon'), exist_ok=True) + resource_dir = os.path.join('app', 'resources', 'data', 'icons') + if not os.path.exists(resource_dir): + # 获取打包后的资源目录 + resource_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__))) + # 构建 FFmpeg 可执行文件的路径 + resource_dir = os.path.join(resource_dir, 'app', 'resources', 'data', 'icons') + target_folder = os.path.join(path, 'icon') + # 拷贝一些必备的图标 + for root, dirs, files in os.walk(resource_dir): + relative_path = os.path.relpath(root, resource_dir) + target_path = os.path.join(target_folder, relative_path) + + # 遍历文件夹中的文件 + for file in files: + source_file_path = os.path.join(root, file) + target_file_path = os.path.join(target_path, file) + if not os.path.exists(target_file_path): + shutil.copy(source_file_path, target_file_path) + else: + # 比较文件内容 + if not filecmp.cmp(source_file_path, target_file_path, shallow=False): + # 文件内容不一致,进行覆盖拷贝 + shutil.copy(source_file_path, target_file_path) + + +def escape_js_and_html(input_str): + if not input_str: + return '' + # 转义HTML特殊字符 + html_escaped = html.escape(input_str, quote=False) + + # 手动处理JavaScript转义字符 + js_escaped = ( + html_escaped + .replace("\\", "\\\\") + .replace("'", r"\'") + .replace('"', r'\"') + .replace("\n", r'\n') + .replace("\r", r'\r') + .replace("\t", r'\t') + ) + + return js_escaped + + +class ExporterBase(QThread): + progressSignal = pyqtSignal(int) + rangeSignal = pyqtSignal(int) + okSignal = pyqtSignal(int) + i = 1 + CSV = 0 + DOCX = 1 + HTML = 2 + CSV_ALL = 3 + CONTACT_CSV = 4 + TXT = 5 + + def __init__(self, contact, type_=DOCX, message_types={}, time_range=None, messages=None,index=0, parent=None): + super().__init__(parent) + self.message_types = message_types # 导出的消息类型 + self.contact: Contact = contact # 联系人 + self.output_type = type_ # 导出文件类型 + self.total_num = 1 # 总的消息数量 + self.num = 0 # 当前处理的消息数量 + self.index = index # + self.last_timestamp = 0 + self.time_range = time_range + self.messages = messages + self.origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + makedirs(self.origin_path) + + def run(self): + self.export() + + def export(self): + raise NotImplementedError("export method must be implemented in subclasses") + + def cancel(self): + self.requestInterruption() + + def is_5_min(self, timestamp) -> bool: + if abs(timestamp - self.last_timestamp) > 300: + self.last_timestamp = timestamp + return True + return False + + def get_avatar_path(self, is_send, message, is_absolute_path=False) -> str: + if is_absolute_path: + if self.contact.is_chatroom: + avatar = message[13].avatar_path + else: + avatar = Me().avatar_path if is_send else self.contact.avatar_path + else: + if self.contact.is_chatroom: + avatar = message[13].smallHeadImgUrl + else: + avatar = Me().smallHeadImgUrl if is_send else self.contact.smallHeadImgUrl + return avatar + + def get_display_name(self, is_send, message) -> str: + if self.contact.is_chatroom: + if is_send: + display_name = Me().name + else: + display_name = message[13].remark + else: + display_name = Me().name if is_send else self.contact.remark + return escape_js_and_html(display_name) + + def text(self, doc, message): + return + + def image(self, doc, message): + return + + def audio(self, doc, message): + return + + def emoji(self, doc, message): + return + + def file(self, doc, message): + return + + def refermsg(self, doc, message): + return + + def system_msg(self, doc, message): + return + + def video(self, doc, message): + return + + def music_share(self, doc, message): + return + + def share_card(self, doc, message): + return diff --git a/app/util/exporter/exporter_ai_txt.py b/app/util/exporter/exporter_ai_txt.py new file mode 100644 index 0000000..2106c38 --- /dev/null +++ b/app/util/exporter/exporter_ai_txt.py @@ -0,0 +1,96 @@ +import os +import re + +from app.DataBase import msg_db +from app.util.compress_content import parser_reply, share_card +from app.util.exporter.exporter import ExporterBase + + +def remove_privacy_info(text): + # 正则表达式模式 + patterns = { + 'phone': r'\b(\+?86[-\s]?)?1[3-9]\d{9}\b', # 手机号 + 'email': r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', # 邮箱 + 'id_card': r'\b\d{15}|\d{18}|\d{17}X\b', # 身份证号 + 'password': r'\b(?:password|pwd|pass|psw)[\s=:]*\S+\b', # 密码 + 'account': r'\b(?:account|username|user|acct)[\s=:]*\S+\b' # 账号 + } + + for key, pattern in patterns.items(): + text = re.sub(pattern, f'[{key} xxx]', text) + + return text + + +class AiTxtExporter(ExporterBase): + last_is_send = -1 + + def title(self, message): + str_time = message[8] + is_send = message[4] + display_name = '' + if is_send != self.last_is_send: + display_name = '\n' + self.get_display_name(is_send, message) + ':' + self.last_is_send = is_send + return display_name + + def text(self, doc, message): + str_content = remove_privacy_info(message[7]) + doc.write( + f'''{self.title(message)}{str_content} ''' + ) + + def image(self, doc, message): + doc.write( + f'''{self.title(message)}[图片]''' + ) + + def audio(self, doc, message): + doc.write( + f'''{self.title(message)}[语音]''' + ) + + def emoji(self, doc, message): + doc.write( + f'''{self.title(message)}[表情包]''' + ) + + def file(self, doc, message): + doc.write( + f'''{self.title(message)}[文件]''' + ) + + def system_msg(self, doc, message): + str_content = message[7] + str_time = message[8] + str_content = str_content.replace('重新编辑]]>', "") + doc.write( + f'''{str_time} {str_content}''' + ) + + def video(self, doc, message): + is_send = message[4] + doc.write( + f'''{self.title(message)}[视频]''' + ) + + def export(self): + # 实现导出为txt的逻辑 + print(f"【开始导出 TXT {self.contact.remark}】") + origin_path = self.origin_path + os.makedirs(origin_path, exist_ok=True) + filename = os.path.join(origin_path, self.contact.remark + '_chat.txt') + messages = msg_db.get_messages_group_by_day(self.contact.wxid, time_range=self.time_range) + total_steps = len(messages) + with open(filename, mode='w', newline='', encoding='utf-8') as f: + for date, messages in messages.items(): + f.write(f"\n\n{'*' * 20}{date}{'*' * 20}\n") + for index, message in enumerate(messages): + type_ = message[2] + sub_type = message[3] + self.progressSignal.emit(int((index + 1) / total_steps * 100)) + if type_ == 1 and self.message_types.get(type_): + self.text(f, message) + print(f"【完成导出 TXT {self.contact.remark}】") + self.okSignal.emit(1) diff --git a/app/util/exporter/exporter_csv.py b/app/util/exporter/exporter_csv.py new file mode 100644 index 0000000..0a1ca60 --- /dev/null +++ b/app/util/exporter/exporter_csv.py @@ -0,0 +1,40 @@ +import csv +import os + +from app.DataBase import msg_db +from app.person import Me +from app.util.exporter.exporter import ExporterBase +from app.config import OUTPUT_DIR + + +class CSVExporter(ExporterBase): + def to_csv(self): + print(f"【开始导出 CSV {self.contact.remark}】") + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + os.makedirs(origin_path, exist_ok=True) + filename = os.path.join(origin_path,f"{self.contact.remark}_utf8.csv") + columns = ['localId', 'TalkerId', 'Type', 'SubType', + 'IsSender', 'CreateTime', 'Status', 'StrContent', + 'StrTime', 'Remark', 'NickName', 'Sender'] + messages = msg_db.get_messages(self.contact.wxid, time_range=self.time_range) + # 写入CSV文件 + with open(filename, mode='w', newline='', encoding='utf-8-sig') as file: + writer = csv.writer(file) + writer.writerow(columns) + # 写入数据 + # writer.writerows(messages) + for msg in messages: + if self.contact.is_chatroom: + other_data = [msg[13].remark, msg[13].nickName, msg[13].wxid] + else: + is_send = msg[4] + Remark = Me().remark if is_send else self.contact.remark + nickname = Me().nickName if is_send else self.contact.nickName + wxid = Me().wxid if is_send else self.contact.wxid + other_data = [Remark,nickname,wxid] + writer.writerow([*msg[:9], *other_data]) + print(f"【完成导出 CSV {self.contact.remark}】") + self.okSignal.emit(1) + + def run(self): + self.to_csv() diff --git a/app/util/exporter/exporter_docx.py b/app/util/exporter/exporter_docx.py new file mode 100644 index 0000000..8947c34 --- /dev/null +++ b/app/util/exporter/exporter_docx.py @@ -0,0 +1,380 @@ +import os +import shutil +import time +from re import findall + +import docx +from docx import shared +from docx.enum.table import WD_ALIGN_VERTICAL +from docx.enum.text import WD_COLOR_INDEX, WD_PARAGRAPH_ALIGNMENT +from docx.oxml.ns import qn +from docxcompose.composer import Composer + +from app.DataBase import msg_db, hard_link_db +from app.util.exporter.exporter import ExporterBase, escape_js_and_html +from app.config import OUTPUT_DIR +from app.log import logger +from app.person import Me +from app.util.compress_content import parser_reply, share_card, music_share +from app.util.image import get_image_abs_path +from app.util.music import get_music_path + +# 要删除的编码字符 +encoded_chars = b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f' + +# 创建一个字典,将要删除的字符映射为 None +char_mapping = {char: None for char in encoded_chars} + + +def filter_control_characters(input_string): + """ + 过滤掉不可打印字符 + @param input_string: + @return: + """ + + # 过滤掉非可打印字符 + filtered_string = input_string.translate(char_mapping) + + return filtered_string + + +class DocxExporter(ExporterBase): + def text(self, doc, message): + type_ = message[2] + str_content = message[7] + str_time = message[8] + is_send = message[4] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message, True) + content_cell = self.create_table(doc, is_send, avatar) + try: + content_cell.paragraphs[0].add_run(str_content) + except ValueError: + try: + str_content = filter_control_characters(str_content) + content_cell.paragraphs[0].add_run(str_content) + except ValueError: + logger.error(f'非法字符:{str_content}') + content_cell.paragraphs[0].add_run('非法字符') + content_cell.paragraphs[0].font_size = shared.Inches(0.5) + # doc.add_picture(avatar) + if is_send: + p = content_cell.paragraphs[0] + p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + doc.add_paragraph() + + def image(self, doc, message): + str_content = message[7] + is_send = message[4] + BytesExtra = message[10] + avatar = self.get_avatar_path(is_send, message, True) + content = self.create_table(doc, is_send, avatar) + run = content.paragraphs[0].add_run() + str_content = escape_js_and_html(str_content) + image_path = hard_link_db.get_image(str_content, BytesExtra, thumb=True) + base_path = os.path.join(OUTPUT_DIR, '聊天记录', self.contact.remark, 'image') + if not os.path.exists(os.path.join(Me().wx_dir, image_path)): + image_thumb_path = hard_link_db.get_image(str_content, BytesExtra, thumb=False) + if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)): + return + image_path = image_thumb_path + image_path = get_image_abs_path(image_path, base_path=base_path) + try: + run.add_picture(image_path, height=shared.Inches(2)) + doc.add_paragraph() + except Exception: + print("Error!image") + + def audio(self, doc, message): + str_content = message[7] + str_time = message[8] + is_send = message[4] + msgSvrId = message[9] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message, True) + content_cell = self.create_table(doc, is_send, avatar) + content_cell.paragraphs[0].add_run('【语音】') + content_cell.paragraphs[0].font_size = shared.Inches(0.5) + if is_send: + p = content_cell.paragraphs[0] + p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + doc.add_paragraph() + + def emoji(self, doc, message): + str_content = message[7] + str_time = message[8] + is_send = message[4] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message, True) + content_cell = self.create_table(doc, is_send, avatar) + content_cell.paragraphs[0].add_run('【表情包】') + content_cell.paragraphs[0].font_size = shared.Inches(0.5) + if is_send: + p = content_cell.paragraphs[0] + p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + doc.add_paragraph() + + def file(self, doc, message): + bytesExtra = message[10] + str_time = message[8] + is_send = message[4] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message, True) + content_cell = self.create_table(doc, is_send, avatar) + content_cell.paragraphs[0].add_run('【文件】') + content_cell.paragraphs[0].font_size = shared.Inches(0.5) + if is_send: + p = content_cell.paragraphs[0] + p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + doc.add_paragraph() + + def refermsg(self, doc, message): + """ + 处理回复消息 + @param doc: + @param message: + @return: + """ + str_time = message[8] + is_send = message[4] + content = parser_reply(message[11]) + refer_msg = content.get('refer') + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message, True) + content_cell = self.create_table(doc, is_send, avatar) + content_cell.paragraphs[0].add_run(content.get('title')) + content_cell.paragraphs[0].font_size = shared.Inches(0.5) + reply_p = content_cell.add_paragraph() + reply_content = f"{refer_msg.get('displayname')}:{refer_msg.get('content')}" if refer_msg else '未知引用' + run = content_cell.paragraphs[1].add_run(reply_content) + '''设置被回复内容格式''' + run.font.color.rgb = shared.RGBColor(121, 121, 121) + run.font_size = shared.Inches(0.3) + run.font.highlight_color = WD_COLOR_INDEX.GRAY_25 + + if is_send: + p = content_cell.paragraphs[0] + p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + reply_p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + doc.add_paragraph() + + def system_msg(self, doc, message): + str_content = message[7] + is_send = message[4] + str_time = message[8] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + + str_content = str_content.replace('重新编辑]]>', "") + res = findall('()', str_content) + for xmlstr, b in res: + str_content = str_content.replace(xmlstr, "") + doc.add_paragraph(str_content).alignment = WD_PARAGRAPH_ALIGNMENT.CENTER + + def video(self, doc, message): + type_ = message[2] + str_content = message[7] + str_time = message[8] + is_send = message[4] + BytesExtra = message[10] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message, True) + content_cell = self.create_table(doc, is_send, avatar) + content_cell.paragraphs[0].add_run('【视频】') + content_cell.paragraphs[0].font_size = shared.Inches(0.5) + if is_send: + p = content_cell.paragraphs[0] + p.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + doc.add_paragraph() + + def create_table(self, doc, is_send, avatar_path): + ''' + #! 创建一个1*2表格 + #! isSend = 1 (0,0)存聊天内容,(0,1)存头像 + #! isSend = 0 (0,0)存头像,(0,1)存聊天内容 + #! 返回聊天内容的坐标 + ''' + table = doc.add_table(rows=1, cols=2, style='Normal Table') + table.cell(0, 1).height = shared.Inches(0.5) + table.cell(0, 0).height = shared.Inches(0.5) + if is_send: + '''表格右对齐''' + table.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + avatar = table.cell(0, 1).paragraphs[0].add_run() + '''插入头像,设置头像宽度''' + avatar.add_picture(avatar_path, width=shared.Inches(0.5)) + '''设置单元格宽度跟头像一致''' + table.cell(0, 1).width = shared.Inches(0.5) + content_cell = table.cell(0, 0) + '''聊天内容右对齐''' + content_cell.paragraphs[0].paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT + else: + avatar = table.cell(0, 0).paragraphs[0].add_run() + avatar.add_picture(avatar_path, width=shared.Inches(0.5)) + '''设置单元格宽度''' + table.cell(0, 0).width = shared.Inches(0.5) + content_cell = table.cell(0, 1) + '''聊天内容垂直居中对齐''' + content_cell.vertical_alignment = WD_ALIGN_VERTICAL.CENTER + return content_cell + + def music_share(self, doc, message): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + is_send = message[4] + timestamp = message[5] + content = music_share(message[11]) + music_path = '' + if content.get('audio_url') != '': + music_path = get_music_path(content.get('audio_url'), content.get('title'), + output_path=origin_path + '/music') + if music_path != '': + music_path = f'./music/{os.path.basename(music_path)}' + music_path = music_path.replace('\\', '/') + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + + def share_card(self, doc, message): + origin_path = f"{os.getcwd()}/data/聊天记录/{self.contact.remark}" + is_send = message[4] + timestamp = message[5] + bytesExtra = message[10] + compress_content_ = message[11] + card_data = share_card(bytesExtra, compress_content_) + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + thumbnail = '' + if card_data.get('thumbnail'): + thumbnail = os.path.join(Me().wx_dir, card_data.get('thumbnail')) + if os.path.exists(thumbnail): + shutil.copy(thumbnail, os.path.join(origin_path, 'image', os.path.basename(thumbnail))) + thumbnail = './image/' + os.path.basename(thumbnail) + else: + thumbnail = '' + app_logo = '' + if card_data.get('app_logo'): + app_logo = os.path.join(Me().wx_dir, card_data.get('app_logo')) + if os.path.exists(app_logo): + shutil.copy(app_logo, os.path.join(origin_path, 'image', os.path.basename(app_logo))) + app_logo = './image/' + os.path.basename(app_logo) + else: + app_logo = '' + + def merge_docx(self, conRemark, n): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录') + all_file_path = [] + for i in range(n): + file_name = f"{conRemark}{i}.docx" + all_file_path.append(origin_path + '/' + file_name) + filename = f"{conRemark}.docx" + # print(all_file_path) + doc = docx.Document() + doc.save(origin_path + '/' + filename) + master = docx.Document(origin_path + '/' + filename) + middle_new_docx = Composer(master) + num = 0 + for word in all_file_path: + word_document = docx.Document(word) + word_document.add_page_break() + if num != 0: + middle_new_docx.append(word_document) + num = num + 1 + os.remove(word) + middle_new_docx.save(origin_path + '/' + filename) + + def export(self): + print(f"【开始导出 DOCX {self.contact.remark}】") + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages(self.contact.wxid, time_range=self.time_range) + Me().save_avatar(os.path.join(origin_path, 'avatar', f'{Me().wxid}.png')) + if self.contact.is_chatroom: + for message in messages: + if message[4]: # is_send + continue + try: + chatroom_avatar_path =os.path.join(origin_path, 'avatar', f'{message[13].wxid}.png') + message[13].save_avatar(chatroom_avatar_path) + except: + print(message) + pass + else: + self.contact.save_avatar(os.path.join(origin_path, 'avatar', f'{self.contact.wxid}.png')) + self.rangeSignal.emit(len(messages)) + + def newdoc(): + nonlocal n, doc + doc = docx.Document() + doc.styles["Normal"].font.name = "Cambria" + doc.styles["Normal"]._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体") + n += 1 + + doc = None + n = 0 + index = 0 + newdoc() + for index, message in enumerate(messages): + if index % 200 == 0 and index: + filename = os.path.join(origin_path, f"{self.contact.remark}_{n}.docx") + doc.save(filename) + self.okSignal.emit(n) + newdoc() + + type_ = message[2] + sub_type = message[3] + timestamp = message[5] + self.progressSignal.emit(1) + if self.is_5_min(timestamp): + str_time = message[8] + doc.add_paragraph(str_time).alignment = WD_PARAGRAPH_ALIGNMENT.CENTER + if type_ == 1 and self.message_types.get(type_): + self.text(doc, message) + elif type_ == 3 and self.message_types.get(type_): + self.image(doc, message) + elif type_ == 34 and self.message_types.get(type_): + self.audio(doc, message) + elif type_ == 43 and self.message_types.get(type_): + self.video(doc, message) + elif type_ == 47 and self.message_types.get(type_): + self.emoji(doc, message) + elif type_ == 10000 and self.message_types.get(type_): + self.system_msg(doc, message) + elif type_ == 49 and sub_type == 57 and self.message_types.get(1): + self.refermsg(doc, message) + elif type_ == 49 and sub_type == 6 and self.message_types.get(4906): + self.file(doc, message) + if index % 25 == 0: + print(f"【导出 DOCX {self.contact.remark}】{index}/{len(messages)}") + if index % 25: + print(f"【导出 DOCX {self.contact.remark}】{index + 1}/{len(messages)}") + filename = os.path.join(origin_path, f"{self.contact.remark}_{n}.docx") + try: + # document.save(filename) + doc.save(filename) + except PermissionError: + filename = filename[:-5] + f'{time.time()}' + '.docx' + # document.save(filename) + doc.save(filename) + self.okSignal.emit(n) + print(f"【完成导出 DOCX {self.contact.remark}】") + self.okSignal.emit(10086) diff --git a/app/util/exporter/exporter_html.py b/app/util/exporter/exporter_html.py new file mode 100644 index 0000000..46eec18 --- /dev/null +++ b/app/util/exporter/exporter_html.py @@ -0,0 +1,523 @@ +import os +import shutil +import sys +import traceback +from re import findall + +from PyQt5.QtCore import pyqtSignal, QThread + +from app.DataBase import msg_db, hard_link_db, media_msg_db +from app.util.exporter.exporter import ExporterBase, escape_js_and_html +from app.config import OUTPUT_DIR +from app.log import logger +from app.person import Me +from app.util import path +from app.util.compress_content import parser_reply, share_card, music_share, file, transfer_decompress, call_decompress +from app.util.emoji import get_emoji_url +from app.util.image import get_image_path, get_image +from app.util.music import get_music_path + +icon_files = { + './icon/word.png': ['doc', 'docx'], + './icon/excel.png': ['xls', 'xlsx'], + './icon/csv.png': ['csv'], + './icon/txt.png': ['txt'], + './icon/zip.png': ['zip', '7z', 'rar'], + './icon/ppt.png': ['ppt', 'pptx'], + './icon/pdf.png': ['pdf'], +} + + +class HtmlExporter(ExporterBase): + def text(self, doc, message): + type_ = message[2] + str_content = message[7] + str_time = message[8] + is_send = message[4] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + + display_name = self.get_display_name(is_send, message) + avatar = self.get_avatar_path(is_send, message) + str_content = escape_js_and_html(str_content) + doc.write( + f'''{{ type:{1}, text: '{str_content}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + + def image(self, doc, message): + base_path = os.path.join(OUTPUT_DIR, '聊天记录', self.contact.remark, 'image') + type_ = message[2] + str_content = message[7] + str_time = message[8] + is_send = message[4] + BytesExtra = message[10] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + str_content = escape_js_and_html(str_content) + image_path = hard_link_db.get_image(str_content, BytesExtra, up_dir=Me().wx_dir, thumb=False) + image_path = get_image_path(image_path, base_path=base_path) + doc.write( + f'''{{ type:{type_}, text: '{image_path}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + + def audio(self, doc, message): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + str_content = message[7] + str_time = message[8] + is_send = message[4] + msgSvrId = message[9] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + try: + audio_path = media_msg_db.get_audio_path(msgSvrId, output_path=origin_path + "/voice") + audio_path = "./voice/" + os.path.basename(audio_path) + except: + logger.error(traceback.format_exc()) + return + voice_to_text = media_msg_db.get_audio_text(str_content) + if voice_to_text and voice_to_text != "": + voice_to_text = escape_js_and_html(voice_to_text) + doc.write( + f'''{{ type:34, text:'{audio_path}',is_send:{is_send},avatar_path:'{avatar}',voice_to_text:'{voice_to_text}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + + def emoji(self, doc, message): + str_content = message[7] + str_time = message[8] + is_send = message[4] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + emoji_path = get_emoji_url(str_content, thumb=True) + doc.write( + f'''{{ type:{3}, text: '{emoji_path}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + + def file(self, doc, message): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + bytesExtra = message[10] + compress_content = message[11] + str_time = message[8] + is_send = message[4] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + file_info = file(bytesExtra, compress_content, output_path=origin_path + '/file') + if file_info.get('is_error') == False: + icon_path = None + for icon, extensions in icon_files.items(): + if file_info.get('file_ext') in extensions: + icon_path = icon + break + # 如果没有与文件后缀匹配的图标,则使用默认图标 + if icon_path is None: + default_icon = './icon/file.png' + icon_path = default_icon + file_path = file_info.get('file_path') + if file_path != "": + file_path = './file/' + file_info.get('file_name') + doc.write( + f'''{{ type:49, text: '{file_path}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}',icon_path: '{icon_path}',sub_type:6,file_name: '{file_info.get('file_name')}',file_size: '{file_info.get('file_len')}',app_name: '{file_info.get('app_name')}'}},''' + ) + + def refermsg(self, doc, message): + """ + 处理回复消息 + @param doc: + @param message: + @return: + """ + str_time = message[8] + is_send = message[4] + content = parser_reply(message[11]) + refer_msg = content.get('refer') + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + contentText = escape_js_and_html(content.get('title')) + if refer_msg: + referText = f"{escape_js_and_html(refer_msg.get('displayname'))}:{escape_js_and_html(refer_msg.get('content'))}" + doc.write( + f'''{{ type:49, text: '{contentText}',is_send:{is_send},sub_type:{content.get('type')},refer_text: '{referText}',avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + else: + doc.write( + f'''{{ type:49, text: '{contentText}',is_send:{is_send},sub_type:{content.get('type')},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + + def system_msg(self, doc, message): + str_content = message[7] + is_send = message[4] + str_time = message[8] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + + str_content = str_content.replace('重新编辑]]>', "") + res = findall('()', str_content) + for xmlstr, b in res: + str_content = str_content.replace(xmlstr, "") + str_content = escape_js_and_html(str_content) + doc.write( + f'''{{ type:0, text: '{str_content}',is_send:{is_send},avatar_path:'',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:''}},''' + ) + + def video(self, doc, message): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + type_ = message[2] + str_content = message[7] + str_time = message[8] + is_send = message[4] + BytesExtra = message[10] + timestamp = message[5] + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + video_path = hard_link_db.get_video(str_content, BytesExtra, thumb=False) + image_path = hard_link_db.get_video(str_content, BytesExtra, thumb=True) + if video_path is None and image_path is not None: + image_path = path.get_relative_path(image_path, base_path=f'/data/聊天记录/{self.contact.remark}/image') + try: + # todo 网络图片问题 + print(origin_path + image_path[1:]) + os.utime(origin_path + image_path[1:], (timestamp, timestamp)) + doc.write( + f'''{{ type:3, text: '{image_path}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + except: + doc.write( + f'''{{ type:1, text: '视频丢失',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + return + if video_path is None and image_path is None: + return + video_path = f'{Me().wx_dir}/{video_path}' + video_path = video_path.replace('\\', '/') + if os.path.exists(video_path): + new_path = origin_path + '/video/' + os.path.basename(video_path) + if not os.path.exists(new_path): + shutil.copy(video_path, os.path.join(origin_path, 'video')) + os.utime(new_path, (timestamp, timestamp)) + video_path = f'./video/{os.path.basename(video_path)}' + doc.write( + f'''{{ type:{type_}, text: '{video_path}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}'}},''' + ) + + def music_share(self, doc, message): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + is_send = message[4] + timestamp = message[5] + content = music_share(message[11]) + music_path = '' + if content.get('is_error') == False: + if content.get('audio_url') != '': + music_path = get_music_path(content.get('audio_url'), content.get('title'), + output_path=origin_path + '/music') + if music_path != '': + music_path = f'./music/{os.path.basename(music_path)}' + music_path = music_path.replace('\\', '/') + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + music_path = escape_js_and_html(music_path) + doc.write( + f'''{{ type:49, text:'{music_path}',is_send:{is_send},avatar_path:'{avatar}',link_url:'{content.get('link_url')}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}',sub_type:3,title:'{content.get('title')}',artist:'{content.get('artist')}', website_name:'{content.get('website_name')}'}},''' + ) + + def share_card(self, doc, message): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + is_send = message[4] + timestamp = message[5] + bytesExtra = message[10] + compress_content_ = message[11] + card_data = share_card(bytesExtra, compress_content_) + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + thumbnail = '' + if card_data.get('thumbnail'): + thumbnail = os.path.join(Me().wx_dir, card_data.get('thumbnail')) + if os.path.exists(thumbnail): + shutil.copy(thumbnail, os.path.join(origin_path, 'image', os.path.basename(thumbnail))) + thumbnail = './image/' + os.path.basename(thumbnail) + else: + thumbnail = '' + app_logo = '' + if card_data.get('app_logo'): + app_logo = os.path.join(Me().wx_dir, card_data.get('app_logo')) + if os.path.exists(app_logo): + shutil.copy(app_logo, os.path.join(origin_path, 'image', os.path.basename(app_logo))) + app_logo = './image/' + os.path.basename(app_logo) + else: + app_logo = card_data.get('app_logo') + doc.write( + f'''{{ type:49,sub_type:5, text:'',is_send:{is_send},avatar_path:'{avatar}',url:'{card_data.get('url')}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}',title:'{card_data.get('title')}',description:'{card_data.get('description')}',thumbnail:'{thumbnail}',app_logo:'{app_logo}',app_name:'{card_data.get('app_name')}'}},\n''' + ) + + def transfer(self, doc, message): + is_send = message[4] + timestamp = message[5] + compress_content_ = message[11] + # open("test.bin", "wb").write(compress_content_) + transfer_detail = transfer_decompress(compress_content_) + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + try: + text_info_map = { + 1: transfer_detail["pay_memo"] or "发起转账", + 3: "已收款", + 4: "已退还", + 5: "非实时转账收款", + 7: "发起非实时转账", + 8: "未知", + 9: "未知", + } + doc.write( + f"""{{ type:49,sub_type:2000,text:'{text_info_map[transfer_detail["paysubtype"]]}',is_send:{is_send},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}',paysubtype:{transfer_detail["paysubtype"]},pay_memo:'{transfer_detail["pay_memo"]}',feedesc:'{transfer_detail["feedesc"]}',}},\n""") + except Exception as e: + logger.error(f'转账解析错误:{transfer_detail}\n{traceback.format_exc()}') + def call(self, doc, message): + is_send = message[4] + timestamp = message[5] + str_content = message[7] + bytes_extra = message[10] + display_content = message[12] + call_detail = call_decompress( + is_send, bytes_extra, display_content, str_content + ) + is_chatroom = 1 if self.contact.is_chatroom else 0 + avatar = self.get_avatar_path(is_send, message) + display_name = self.get_display_name(is_send, message) + doc.write( + f"""{{ type:50, text:'{call_detail["display_content"]}',call_type:{call_detail["call_type"]},avatar_path:'{avatar}',timestamp:{timestamp},is_chatroom:{is_chatroom},displayname:'{display_name}',}},\n""") + + def export(self): + print(f"【开始导出 HTML {self.contact.remark}】") + messages = msg_db.get_messages(self.contact.wxid, time_range=self.time_range) + filename = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark, + f'{self.contact.remark}.html') + file_path = './app/resources/data/template.html' + if not os.path.exists(file_path): + resource_dir = getattr(sys, '_MEIPASS', os.path.abspath(os.path.dirname(__file__))) + file_path = os.path.join(resource_dir, 'app', 'resources', 'data', 'template.html') + + with open(file_path, "r", encoding="utf-8") as f: + content = f.read() + html_head, html_end = content.split('/*注意看这是分割线*/') + f = open(filename, 'w', encoding='utf-8') + html_head = html_head.replace("出错了", f"{self.contact.remark}") + html_head = html_head.replace("

出错了

", f"

{self.contact.remark}

") + f.write(html_head) + self.rangeSignal.emit(len(messages)) + for index, message in enumerate(messages): + type_ = message[2] + sub_type = message[3] + timestamp = message[5] + if (type_ == 3 and self.message_types.get(3)) or (type_ == 34 and self.message_types.get(34)) or ( + type_ == 47 and self.message_types.get(47)): + pass + else: + self.progressSignal.emit(1) + + if type_ == 1 and self.message_types.get(type_): + self.text(f, message) + elif type_ == 3 and self.message_types.get(type_): + self.image(f, message) + elif type_ == 34 and self.message_types.get(type_): + self.audio(f, message) + elif type_ == 43 and self.message_types.get(type_): + self.video(f, message) + elif type_ == 47 and self.message_types.get(type_): + self.emoji(f, message) + elif type_ == 10000 and self.message_types.get(type_): + self.system_msg(f, message) + elif type_ == 49 and sub_type == 57 and self.message_types.get(1): + self.refermsg(f, message) + elif type_ == 49 and sub_type == 6 and self.message_types.get(4906): + self.file(f, message) + elif type_ == 49 and sub_type == 3 and self.message_types.get(4903): + self.music_share(f, message) + elif type_ == 49 and sub_type == 5 and self.message_types.get(4905): + self.share_card(f, message) + elif type_ == 49 and sub_type == 2000 and self.message_types.get(492000): + self.transfer(f, message) + elif type_ == 50 and self.message_types.get(50): + self.call(f, message) + if index % 2000 == 0: + print(f"【导出 HTML {self.contact.remark}】{index}/{len(messages)}") + f.write(html_end) + f.close() + print(f"【完成导出 HTML {self.contact.remark}】{len(messages)}") + self.count_finish_num(1) + + def count_finish_num(self, num): + """ + 记录子线程完成个数 + @param num: + @return: + """ + self.num += 1 + print("子线程完成", self.num, "/", self.total_num) + if self.num == self.total_num: + # 所有子线程都完成之后就发送完成信号 + self.okSignal.emit(1) + + +class OutputMedia(QThread): + """ + 导出语音消息 + """ + + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact): + super().__init__() + self.contact = contact + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages_by_type(self.contact.wxid, 34) + for message in messages: + is_send = message[4] + msgSvrId = message[9] + try: + audio_path = media_msg_db.get_audio( + msgSvrId, output_path=origin_path + "/voice" + ) + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(34) + + +class OutputEmoji(QThread): + """ + 导出表情包 + """ + + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact): + super().__init__() + self.contact = contact + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages_by_type(self.contact.wxid, 47) + for message in messages: + str_content = message[7] + try: + pass + # emoji_path = get_emoji(str_content, thumb=True, output_path=origin_path + '/emoji') + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(47) + + +class OutputImage(QThread): + """ + 导出图片 + """ + + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact): + super().__init__() + self.contact = contact + self.child_thread_num = 2 + self.child_threads = [0] * (self.child_thread_num + 1) + self.num = 0 + + def count1(self, num): + self.num += 1 + print("图片导出完成一个") + if self.num == self.child_thread_num: + self.okSingal.emit(47) + print("图片导出完成") + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages_by_type(self.contact.wxid, 3) + base_path = os.path.join(OUTPUT_DIR, '聊天记录', self.contact.remark, 'image') + for message in messages: + str_content = message[7] + BytesExtra = message[10] + timestamp = message[5] + try: + image_path = hard_link_db.get_image( + str_content, BytesExtra, thumb=False + ) + if not os.path.exists(os.path.join(Me().wx_dir, image_path)): + image_thumb_path = hard_link_db.get_image( + str_content, BytesExtra, thumb=True + ) + if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)): + continue + image_path = image_thumb_path + image_path = get_image( + image_path, base_path=base_path + ) + try: + os.utime(origin_path + image_path[1:], (timestamp, timestamp)) + except: + pass + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(47) + + +class OutputImageChild(QThread): + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact, messages): + super().__init__() + self.contact = contact + self.messages = messages + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + for message in self.messages: + str_content = message[7] + BytesExtra = message[10] + timestamp = message[5] + try: + image_path = hard_link_db.get_image( + str_content, BytesExtra, thumb=False + ) + if not os.path.exists(os.path.join(Me().wx_dir, image_path)): + image_thumb_path = hard_link_db.get_image( + str_content, BytesExtra, thumb=True + ) + if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)): + continue + image_path = image_thumb_path + image_path = get_image( + image_path, base_path=f"/data/聊天记录/{self.contact.remark}/image" + ) + try: + os.utime(origin_path + image_path[1:], (timestamp, timestamp)) + except: + pass + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(47) + print("图片子线程完成") diff --git a/app/util/exporter/exporter_json.py b/app/util/exporter/exporter_json.py new file mode 100644 index 0000000..0de2510 --- /dev/null +++ b/app/util/exporter/exporter_json.py @@ -0,0 +1,193 @@ +import json +import random +import os + +from app.DataBase import msg_db +from app.person import Me +from .exporter import ExporterBase + + +def merge_content(conversions_list) -> list: + """ + 合并一组对话中连续发送的句子 + @param conversions_list: + @return: + """ + merged_data = [] + current_role = None + current_content = "" + str_time = '' + for item in conversions_list: + if 'str_time' in item: + str_time = item['str_time'] + else: + str_time = '' + if current_role is None: + current_role = item["role"] + current_content = item["content"] + elif current_role == item["role"]: + current_content += "\n" + item["content"] + else: + # merged_data.append({"role": current_role, "content": current_content, 'str_time': str_time}) + merged_data.append({"role": current_role, "content": current_content}) + current_role = item["role"] + current_content = item["content"] + str_time = item.get('str_time') + + # 处理最后一组 + if current_role is not None: + # merged_data.append({"role": current_role, "content": current_content,'str_time': str_time}) + merged_data.append({"role": current_role, "content": current_content}) + return merged_data + + +def system_prompt(): + system = { + "role": "system", + # "content": f"你是{Me().name},一个聪明、热情、善良的男大学生,后面的对话来自{self.contact.remark}(!!!注意:对方的身份十分重要,你务必记住对方的身份,因为跟不同的人对话要用不同的态度、语气),你要认真地回答他" + "content": f"你是{Me().name},一个聪明、热情、善良的人,后面的对话来自你的朋友,你要认真地回答他" + } + return system + + +def message_to_conversion(group): + conversions = [system_prompt()] + while len(group) and group[-1][4] == 0: + group.pop() + for message in group: + is_send = message[4] + if len(conversions) == 1 and is_send: + continue + if is_send: + json_msg = { + "role": "assistant", + "content": message[7] + } + else: + json_msg = { + "role": "user", + "content": message[7] + } + json_msg['str_time'] = message[8] + conversions.append(json_msg) + if len(conversions) == 1: + return [] + return merge_content(conversions) + + +class JsonExporter(ExporterBase): + def split_by_time(self, length=300): + messages = msg_db.get_messages_by_type(self.contact.wxid, type_=1, time_range=self.time_range) + start_time = 0 + res = [] + i = 0 + while i < len(messages): + message = messages[i] + timestamp = message[5] + is_send = message[4] + group = [ + system_prompt() + ] + while i < len(messages) and timestamp - start_time < length: + if is_send: + json_msg = { + "role": "assistant", + "content": message[7] + } + else: + json_msg = { + "role": "user", + "content": message[7] + } + group.append(json_msg) + i += 1 + if i >= len(messages): + break + message = messages[i] + timestamp = message[5] + is_send = message[4] + while is_send: + json_msg = { + "role": "assistant", + "content": message[7] + } + group.append(json_msg) + i += 1 + if i >= len(messages): + break + message = messages[i] + timestamp = message[5] + is_send = message[4] + start_time = timestamp + res.append( + { + "conversations": group + } + ) + res_ = [] + for item in res: + conversations = item['conversations'] + res_.append({ + 'conversations': merge_content(conversations) + }) + return res_ + + def split_by_intervals(self, max_diff_seconds=300): + messages = msg_db.get_messages_by_type(self.contact.wxid, type_=1, time_range=self.time_range) + res = [] + i = 0 + current_group = [] + while i < len(messages): + message = messages[i] + timestamp = message[5] + is_send = message[4] + while is_send and i + 1 < len(messages): + i += 1 + message = messages[i] + is_send = message[4] + current_group = [messages[i]] + i += 1 + while i < len(messages) and messages[i][5] - current_group[-1][5] <= max_diff_seconds: + current_group.append(messages[i]) + i += 1 + while i < len(messages) and messages[i][4]: + current_group.append(messages[i]) + i += 1 + res.append(current_group) + res_ = [] + for group in res: + conversations = message_to_conversion(group) + if conversations: + res_.append({ + 'conversations': conversations + }) + return res_ + + def to_json(self): + print(f"【开始导出 json {self.contact.remark}】") + origin_path = self.origin_path + os.makedirs(origin_path, exist_ok=True) + filename = os.path.join(origin_path, f"{self.contact.remark}") + + # res = self.split_by_time() + res = self.split_by_intervals(60) + # 打乱列表顺序 + random.shuffle(res) + + # 计算切分比例 + split_ratio = 0.2 # 20% for the second list + + # 计算切分点 + split_point = int(len(res) * split_ratio) + + # 分割列表 + train_data = res[split_point:] + dev_data = res[:split_point] + with open(f'{filename}_train.json', "w", encoding="utf-8") as f: + json.dump(train_data, f, ensure_ascii=False, indent=4) + with open(f'{filename}_dev.json', "w", encoding="utf-8") as f: + json.dump(dev_data, f, ensure_ascii=False, indent=4) + self.okSignal.emit(1) + + def run(self): + self.to_json() diff --git a/app/util/exporter/exporter_txt.py b/app/util/exporter/exporter_txt.py new file mode 100644 index 0000000..9e37105 --- /dev/null +++ b/app/util/exporter/exporter_txt.py @@ -0,0 +1,146 @@ +import os + +from app.DataBase import msg_db +from app.util.exporter.exporter import ExporterBase +from app.config import OUTPUT_DIR +from app.util.compress_content import parser_reply, share_card + + +class TxtExporter(ExporterBase): + def text(self, doc, message): + str_content = message[7] + str_time = message[8] + is_send = message[4] + display_name = self.get_display_name(is_send, message) + name = display_name + doc.write( + f'''{str_time} {name}\n{str_content}\n\n''' + ) + + def image(self, doc, message): + str_time = message[8] + is_send = message[4] + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name}\n[图片]\n\n''' + ) + + def audio(self, doc, message): + str_time = message[8] + is_send = message[4] + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name}\n[语音]\n\n''' + ) + def emoji(self, doc, message): + str_time = message[8] + is_send = message[4] + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name}\n[表情包]\n\n''' + ) + + def file(self, doc, message): + str_time = message[8] + is_send = message[4] + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name}\n[文件]\n\n''' + ) + + def refermsg(self, doc, message): + """ + 处理回复消息 + @param doc: + @param message: + @return: + """ + str_time = message[8] + is_send = message[4] + content = parser_reply(message[11]) + refer_msg = content.get('refer') + display_name = self.get_display_name(is_send, message) + if refer_msg: + doc.write( + f'''{str_time} {display_name}\n{content.get('title')}\n引用:{refer_msg.get('displayname')}:{refer_msg.get('content')}\n\n''' + ) + else: + doc.write( + f'''{str_time} {display_name}\n{content.get('title')}\n引用:未知\n\n''' + ) + + def system_msg(self, doc, message): + str_content = message[7] + str_time = message[8] + str_content = str_content.replace('重新编辑]]>', "") + doc.write( + f'''{str_time} {str_content}\n\n''' + ) + + def video(self, doc, message): + str_time = message[8] + is_send = message[4] + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name}\n[视频]\n\n''' + ) + def music_share(self, doc, message): + is_send = message[4] + str_time = message[8] + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name}\n[音乐分享]\n\n''' + ) + + def share_card(self, doc, message): + is_send = message[4] + bytesExtra = message[10] + compress_content_ = message[11] + str_time = message[8] + card_data = share_card(bytesExtra, compress_content_) + display_name = self.get_display_name(is_send, message) + doc.write( + f'''{str_time} {display_name} + [链接]:title:{card_data.get('title')} + description:{card_data.get('description')} + url:{card_data.get('url')} + name:{card_data.get('app_name')} + \n\n''' + ) + + def export(self): + # 实现导出为txt的逻辑 + print(f"【开始导出 TXT {self.contact.remark}】") + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + os.makedirs(origin_path, exist_ok=True) + filename = os.path.join(origin_path, self.contact.remark+'.txt') + messages = msg_db.get_messages(self.contact.wxid, time_range=self.time_range) + total_steps = len(messages) + with open(filename, mode='w', newline='', encoding='utf-8') as f: + for index, message in enumerate(messages): + type_ = message[2] + sub_type = message[3] + self.progressSignal.emit(int((index + 1) / total_steps * 100)) + if type_ == 1 and self.message_types.get(type_): + self.text(f, message) + elif type_ == 3 and self.message_types.get(type_): + self.image(f, message) + elif type_ == 34 and self.message_types.get(type_): + self.audio(f, message) + elif type_ == 43 and self.message_types.get(type_): + self.video(f, message) + elif type_ == 47 and self.message_types.get(type_): + self.emoji(f, message) + elif type_ == 10000 and self.message_types.get(type_): + self.system_msg(f, message) + elif type_ == 49 and sub_type == 57 and self.message_types.get(1): + self.refermsg(f, message) + elif type_ == 49 and sub_type == 6 and self.message_types.get(4906): + self.file(f, message) + elif type_ == 49 and sub_type == 3 and self.message_types.get(4903): + self.music_share(f, message) + elif type_ == 49 and sub_type == 5 and self.message_types.get(4905): + self.share_card(f, message) + print(f"【完成导出 TXT {self.contact.remark}】") + self.okSignal.emit(1) \ No newline at end of file diff --git a/app/util/exporter/output.py b/app/util/exporter/output.py new file mode 100644 index 0000000..963df8d --- /dev/null +++ b/app/util/exporter/output.py @@ -0,0 +1,466 @@ +import csv +import os +import time +import traceback +from typing import List + +import docx +from PyQt5.QtCore import pyqtSignal, QThread +from PyQt5.QtWidgets import QFileDialog +from docx.oxml.ns import qn +from docxcompose.composer import Composer + +from app.util.exporter.exporter_ai_txt import AiTxtExporter +from app.util.exporter.exporter_csv import CSVExporter +from app.util.exporter.exporter_docx import DocxExporter +from app.util.exporter.exporter_html import HtmlExporter +from app.util.exporter.exporter_json import JsonExporter +from app.util.exporter.exporter_txt import TxtExporter +from app.DataBase.hard_link import decodeExtraBuf +from app.config import OUTPUT_DIR +from app.DataBase.package_msg import PackageMsg +from app.DataBase import media_msg_db, hard_link_db, micro_msg_db, msg_db +from app.log import logger +from app.person import Me +from app.util.image import get_image + +os.makedirs(os.path.join(OUTPUT_DIR, '聊天记录'), exist_ok=True) + + +class Output(QThread): + """ + 发送信息线程 + """ + startSignal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + rangeSignal = pyqtSignal(int) + okSignal = pyqtSignal(int) + batchOkSignal = pyqtSignal(int) + nowContact = pyqtSignal(str) + i = 1 + CSV = 0 + DOCX = 1 + HTML = 2 + CSV_ALL = 3 + CONTACT_CSV = 4 + TXT = 5 + JSON = 6 + AI_TXT = 7 + Batch = 10086 + + def __init__(self, contact, type_=DOCX, message_types={}, sub_type=[], time_range=None, parent=None): + super().__init__(parent) + self.children = [] + self.last_timestamp = 0 + self.sub_type = sub_type + self.time_range = time_range + self.message_types = message_types + self.sec = 2 # 默认1000秒 + self.contact = contact + self.msg_id = 0 + self.output_type: int | List[int] = type_ + self.total_num = 1 + self.num = 0 + + def progress(self, value): + self.progressSignal.emit(value) + + def output_image(self): + """ + 导出全部图片 + @return: + """ + return + + def output_emoji(self): + """ + 导出全部表情包 + @return: + """ + return + + def to_csv_all(self): + """ + 导出全部聊天记录到CSV + @return: + """ + + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录') + os.makedirs(origin_path, exist_ok=True) + filename = QFileDialog.getSaveFileName(None, "save file", os.path.join(os.getcwd(), 'messages.csv'), + "csv files (*.csv);;all files(*.*)") + if not filename[0]: + return + self.startSignal.emit(1) + filename = filename[0] + # columns = ["用户名", "消息内容", "发送时间", "发送状态", "消息类型", "isSend", "msgId"] + columns = ['localId', 'TalkerId', 'Type', 'SubType', + 'IsSender', 'CreateTime', 'Status', 'StrContent', + 'StrTime', 'Remark', 'NickName', 'Sender'] + + packagemsg = PackageMsg() + messages = packagemsg.get_package_message_all() + # 写入CSV文件 + with open(filename, mode='w', newline='', encoding='utf-8-sig') as file: + writer = csv.writer(file) + writer.writerow(columns) + # 写入数据 + writer.writerows(messages) + self.okSignal.emit(1) + + def contact_to_csv(self): + """ + 导出联系人到CSV + @return: + """ + filename = QFileDialog.getSaveFileName(None, "save file", os.path.join(os.getcwd(), 'contacts.csv'), + "csv files (*.csv);;all files(*.*)") + if not filename[0]: + return + self.startSignal.emit(1) + filename = filename[0] + # columns = ["用户名", "消息内容", "发送时间", "发送状态", "消息类型", "isSend", "msgId"] + columns = ['UserName', 'Alias', 'Type', 'Remark', 'NickName', 'PYInitial', 'RemarkPYInitial', 'smallHeadImgUrl', + 'bigHeadImgUrl', 'label', 'gender', 'telephone', 'signature', 'country/region', 'province', 'city'] + contacts = micro_msg_db.get_contact() + # 写入CSV文件 + with open(filename, mode='w', newline='', encoding='utf-8-sig') as file: + writer = csv.writer(file) + writer.writerow(columns) + # 写入数据 + # writer.writerows(contacts) + for contact in contacts: + detail = decodeExtraBuf(contact[9]) + gender_code = detail.get('gender') + if gender_code == 0: + gender = '未知' + elif gender_code == 1: + gender = '男' + else: + gender = '女' + writer.writerow([*contact[:9], contact[10], gender, detail.get('telephone'), detail.get('signature'), + *detail.get('region')]) + + self.okSignal.emit(1) + + def batch_export(self): + print('开始批量导出') + print(self.sub_type, self.message_types) + print(len(self.contact)) + print([contact.remark for contact in self.contact]) + self.batch_num_total = len(self.contact) * len(self.sub_type) + self.batch_num = 0 + self.rangeSignal.emit(self.batch_num_total) + for contact in self.contact: + # print('联系人', contact.remark) + for type_ in self.sub_type: + # print('导出类型', type_) + if type_ == self.DOCX: + self.to_docx(contact, self.message_types, True) + elif type_ == self.TXT: + # print('批量导出txt') + self.to_txt(contact, self.message_types, True) + elif type_ == self.AI_TXT: + # print('批量导出txt') + self.to_ai_txt(contact, self.message_types, True) + elif type_ == self.CSV: + self.to_csv(contact, self.message_types, True) + elif type_ == self.HTML: + self.to_html(contact, self.message_types, True) + elif type_ == self.JSON: + self.to_json(contact,self.message_types,True) + + def batch_finish_one(self, num): + self.nowContact.emit(self.contact[self.batch_num // len(self.sub_type)].remark) + self.batch_num += 1 + if self.batch_num == self.batch_num_total: + self.okSignal.emit(1) + + def merge_docx(self, n): + conRemark = self.contact.remark + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', conRemark) + filename = f"{origin_path}/{conRemark}_{n}.docx" + if n == 10086: + # self.document.append(self.document) + file = os.path.join(origin_path, f'{conRemark}.docx') + try: + self.document.save(file) + except PermissionError: + file = file[:-5] + f'{time.time()}' + '.docx' + self.document.save(file) + self.okSignal.emit(1) + return + doc = docx.Document(filename) + self.document.append(doc) + os.remove(filename) + if n % 50 == 0: + # self.document.append(self.document) + file = os.path.join(origin_path, f'{conRemark}-{n // 50}.docx') + try: + self.document.save(file) + except PermissionError: + file = file[:-5] + f'{time.time()}' + '.docx' + self.document.save(file) + doc = docx.Document() + doc.styles["Normal"].font.name = "Cambria" + doc.styles["Normal"]._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体") + self.document = Composer(doc) + + def to_docx(self, contact, message_types, is_batch=False): + doc = docx.Document() + doc.styles["Normal"].font.name = "Cambria" + doc.styles["Normal"]._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体") + self.document = Composer(doc) + Child = DocxExporter(contact, type_=self.DOCX, message_types=message_types, time_range=self.time_range) + self.children.append(Child) + Child.progressSignal.connect(self.progress) + if not is_batch: + Child.rangeSignal.connect(self.rangeSignal) + Child.okSignal.connect(self.merge_docx if not is_batch else self.batch_finish_one) + Child.start() + + def to_json(self, contact, message_types, is_batch=False): + Child = JsonExporter(contact, type_=self.JSON, message_types=message_types, time_range=self.time_range) + self.children.append(Child) + Child.progressSignal.connect(self.progress) + if not is_batch: + Child.rangeSignal.connect(self.rangeSignal) + Child.okSignal.connect(self.okSignal if not is_batch else self.batch_finish_one) + Child.start() + + def to_txt(self, contact, message_types, is_batch=False): + Child = TxtExporter(contact, type_=self.TXT, message_types=message_types, time_range=self.time_range) + self.children.append(Child) + Child.progressSignal.connect(self.progress) + if not is_batch: + Child.rangeSignal.connect(self.rangeSignal) + Child.okSignal.connect(self.okSignal if not is_batch else self.batch_finish_one) + Child.start() + + def to_ai_txt(self, contact, message_types, is_batch=False): + Child = AiTxtExporter(contact, type_=self.TXT, message_types=message_types, time_range=self.time_range) + self.children.append(Child) + Child.progressSignal.connect(self.progress) + if not is_batch: + Child.rangeSignal.connect(self.rangeSignal) + Child.okSignal.connect(self.okSignal if not is_batch else self.batch_finish_one) + Child.start() + + def to_html(self, contact, message_types, is_batch=False): + Child = HtmlExporter(contact, type_=self.output_type, message_types=message_types, time_range=self.time_range) + self.children.append(Child) + Child.progressSignal.connect(self.progress) + if not is_batch: + Child.rangeSignal.connect(self.rangeSignal) + Child.okSignal.connect(self.count_finish_num) + Child.start() + self.total_num = 1 + if message_types.get(34): + # 语音消息单独的线程 + self.total_num += 1 + output_media = OutputMedia(contact, time_range=self.time_range) + self.children.append(output_media) + output_media.okSingal.connect(self.count_finish_num) + output_media.progressSignal.connect(self.progressSignal) + output_media.start() + if message_types.get(47): + # emoji消息单独的线程 + self.total_num += 1 + output_emoji = OutputEmoji(contact, time_range=self.time_range) + self.children.append(output_emoji) + output_emoji.okSingal.connect(self.count_finish_num) + output_emoji.progressSignal.connect(self.progressSignal) + output_emoji.start() + if message_types.get(3): + # 图片消息单独的线程 + self.total_num += 1 + output_image = OutputImage(contact, time_range=self.time_range) + self.children.append(output_image) + output_image.okSingal.connect(self.count_finish_num) + output_image.progressSignal.connect(self.progressSignal) + output_image.start() + + def to_csv(self, contact, message_types, is_batch=False): + Child = CSVExporter(contact, type_=self.CSV, message_types=message_types, time_range=self.time_range) + self.children.append(Child) + Child.progressSignal.connect(self.progress) + if not is_batch: + Child.rangeSignal.connect(self.rangeSignal) + Child.okSignal.connect(self.okSignal if not is_batch else self.batch_finish_one) + Child.start() + + def run(self): + if self.output_type == self.DOCX: + self.to_docx(self.contact, self.message_types) + elif self.output_type == self.CSV_ALL: + self.to_csv_all() + elif self.output_type == self.CONTACT_CSV: + self.contact_to_csv() + elif self.output_type == self.TXT: + self.to_txt(self.contact, self.message_types) + elif self.output_type == self.AI_TXT: + self.to_ai_txt(self.contact, self.message_types) + elif self.output_type == self.CSV: + self.to_csv(self.contact, self.message_types) + elif self.output_type == self.HTML: + self.to_html(self.contact, self.message_types) + elif self.output_type == self.JSON: + self.to_json(self.contact, self.message_types) + elif self.output_type == self.Batch: + self.batch_export() + + def count_finish_num(self, num): + """ + 记录子线程完成个数 + @param num: + @return: + """ + self.num += 1 + if self.num == self.total_num: + # 所有子线程都完成之后就发送完成信号 + if self.output_type == self.Batch: + self.batch_finish_one(1) + else: + self.okSignal.emit(1) + self.num = 0 + + def cancel(self): + self.requestInterruption() + + +class OutputMedia(QThread): + """ + 导出语音消息 + """ + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact, time_range=None): + super().__init__() + self.contact = contact + self.time_range = time_range + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages_by_type(self.contact.wxid, 34, time_range=self.time_range) + for message in messages: + is_send = message[4] + msgSvrId = message[9] + try: + audio_path = media_msg_db.get_audio(msgSvrId, output_path=origin_path + "/voice") + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(34) + + +class OutputEmoji(QThread): + """ + 导出表情包 + """ + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact, time_range=None): + super().__init__() + self.contact = contact + self.time_range = time_range + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages_by_type(self.contact.wxid, 47, time_range=self.time_range) + for message in messages: + str_content = message[7] + try: + pass + # emoji_path = get_emoji(str_content, thumb=True, output_path=origin_path + '/emoji') + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(47) + + +class OutputImage(QThread): + """ + 导出图片 + """ + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact, time_range): + super().__init__() + self.contact = contact + self.child_thread_num = 2 + self.time_range = time_range + self.child_threads = [0] * (self.child_thread_num + 1) + self.num = 0 + + def count1(self, num): + self.num += 1 + print('图片导出完成一个') + if self.num == self.child_thread_num: + self.okSingal.emit(47) + print('图片导出完成') + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + messages = msg_db.get_messages_by_type(self.contact.wxid, 3, time_range=self.time_range) + base_path = os.path.join(OUTPUT_DIR, '聊天记录', self.contact.remark, 'image') + for message in messages: + str_content = message[7] + BytesExtra = message[10] + timestamp = message[5] + try: + image_path = hard_link_db.get_image(str_content, BytesExtra, up_dir=Me().wx_dir, thumb=False) + image_path = get_image(image_path, base_path=base_path) + try: + os.utime(origin_path + image_path[1:], (timestamp, timestamp)) + except: + pass + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(47) + + +class OutputImageChild(QThread): + okSingal = pyqtSignal(int) + progressSignal = pyqtSignal(int) + + def __init__(self, contact, messages, time_range): + super().__init__() + self.contact = contact + self.messages = messages + self.time_range = time_range + + def run(self): + origin_path = os.path.join(os.getcwd(), OUTPUT_DIR, '聊天记录', self.contact.remark) + for message in self.messages: + str_content = message[7] + BytesExtra = message[10] + timestamp = message[5] + try: + image_path = hard_link_db.get_image(str_content, BytesExtra, thumb=False) + if not os.path.exists(os.path.join(Me().wx_dir, image_path)): + image_thumb_path = hard_link_db.get_image(str_content, BytesExtra, thumb=True) + if not os.path.exists(os.path.join(Me().wx_dir, image_thumb_path)): + continue + image_path = image_thumb_path + image_path = get_image(image_path, base_path=f'/data/聊天记录/{self.contact.remark}/image') + try: + os.utime(origin_path + image_path[1:], (timestamp, timestamp)) + except: + pass + except: + logger.error(traceback.format_exc()) + finally: + self.progressSignal.emit(1) + self.okSingal.emit(47) + print('图片子线程完成') + + +if __name__ == "__main__": + pass diff --git a/app/util/file.py b/app/util/file.py new file mode 100644 index 0000000..8c8562f --- /dev/null +++ b/app/util/file.py @@ -0,0 +1,59 @@ +import os +import traceback +import shutil + +import requests + +from app.log import log, logger +from app.util.protocbuf.msg_pb2 import MessageBytesExtra +from ..person import Me + +root_path = './data/files/' +if not os.path.exists('./data'): + os.mkdir('./data') +if not os.path.exists(root_path): + os.mkdir(root_path) + + +class File: + def __init__(self): + self.open_flag = False + + +def get_file(bytes_extra, file_name, output_path=root_path) -> str: + try: + msg_bytes = MessageBytesExtra() + msg_bytes.ParseFromString(bytes_extra) + file_path = '' + real_path = '' + if len(msg_bytes.message2) > 0: + for filed in msg_bytes.message2: + if filed.field1 == 4: + file_original_path = filed.field2 + file_path = os.path.join(output_path, file_name) + if os.path.exists(file_path): + # print('文件' + file_path + '已存在') + return file_path + if os.path.isabs(file_original_path): # 绝对路径可能迁移过文件目录,也可能存在其他位置 + if os.path.exists(file_original_path): + real_path = file_original_path + else: # 如果没找到再判断一次是否是迁移了目录 + if file_original_path.find(r"FileStorage") != -1: + real_path = Me().wx_dir + file_original_path[ + file_original_path.find("FileStorage") - 1:] + else: + if file_original_path.find(Me().wxid) != -1: + real_path = Me().wx_dir + file_original_path.replace(Me().wxid, '') + else: + real_path = Me().wx_dir + file_original_path + if real_path != "": + if os.path.exists(real_path): + print('开始获取文件' + real_path) + shutil.copy2(real_path, file_path) + else: + print('文件' + file_original_path + '已丢失') + file_path = '' + return file_path + except: + logger.error(traceback.format_exc()) + return "" diff --git a/app/util/image.py b/app/util/image.py new file mode 100644 index 0000000..e8915cf --- /dev/null +++ b/app/util/image.py @@ -0,0 +1,135 @@ +import os +import traceback + +from app.log import logger +from app.person import Me + +# 图片字节头信息, +# [0][1]为jpg头信息, +# [2][3]为png头信息, +# [4][5]为gif头信息 +pic_head = [0xff, 0xd8, 0x89, 0x50, 0x47, 0x49] +# 解密码 +decode_code = 0 + + +def get_code(dat_read) -> tuple[int, int]: + """ + 自动判断文件类型,并获取dat文件解密码 + :param file_path: dat文件路径 + :return: 如果文件为jpg/png/gif格式,则返回解密码,否则返回-1 + """ + try: + if not dat_read: + return -1, -1 + head_index = 0 + while head_index < len(pic_head): + # 使用第一个头信息字节来计算加密码 + # 第二个字节来验证解密码是否正确 + code = dat_read[0] ^ pic_head[head_index] + idf_code = dat_read[1] ^ code + head_index = head_index + 1 + if idf_code == pic_head[head_index]: + return head_index, code + head_index = head_index + 1 + print("not jpg, png, gif") + return -1, -1 + except: + logger.error(f'image解析发生了错误:\n\n{traceback.format_exc()}') + return -1, -1 + + +def decode_dat(file_path, out_path) -> str: + """ + 解密文件,并生成图片 + :param file_path: dat文件路径 + :return: 无 + """ + if not os.path.exists(file_path): + return None + with open(file_path, 'rb') as file_in: + data = file_in.read() + + file_type, decode_code = get_code(data[:2]) + if decode_code == -1: + return '' + + filename = os.path.basename(file_path) + if file_type == 1: + pic_name = os.path.basename(file_path)[:-4] + ".jpg" + elif file_type == 3: + pic_name = filename[:-4] + ".png" + elif file_type == 5: + pic_name = filename[:-4] + ".gif" + else: + pic_name = filename[:-4] + ".jpg" + file_outpath = os.path.join(out_path, pic_name) + if os.path.exists(file_outpath): + return file_outpath + + # 对数据进行异或加密/解密 + with open(file_outpath, 'wb') as file_out: + file_out.write(bytes([byte ^ decode_code for byte in data])) + print(file_path, '->', file_outpath) + return file_outpath + + +def decode_dat_path(file_path, out_path) -> str: + """ + 解密文件,并生成图片 + :param file_path: dat文件路径 + :return: 无 + """ + if not os.path.exists(file_path): + return '' + with open(file_path, 'rb') as file_in: + data = file_in.read(2) + file_type, decode_code = get_code(data) + if decode_code == -1: + return '' + filename = os.path.basename(file_path) + if file_type == 1: + pic_name = os.path.basename(file_path)[:-4] + ".jpg" + elif file_type == 3: + pic_name = filename[:-4] + ".png" + elif file_type == 5: + pic_name = filename[:-4] + ".gif" + else: + pic_name = filename[:-4] + ".jpg" + file_outpath = os.path.join(out_path, pic_name) + return file_outpath + + +def get_image(path, base_path) -> str: + if path: + base_path = os.path.join(os.getcwd(),base_path) + output_path = decode_dat(os.path.join(Me().wx_dir, path), base_path) + relative_path = './image/' + os.path.basename( + output_path) if output_path else 'https://www.bing.com/images/search?view=detailV2&ccid=Zww6woP3&id=CCC91337C740656E800E51247E928ACD3052FECF&thid=OIP.Zww6woP3Em49TdSG_lnggAHaEK&mediaurl=https%3a%2f%2fmeekcitizen.files.wordpress.com%2f2018%2f09%2f404.jpg%3fw%3d656&exph=360&expw=640&q=404&simid=608040792714530493&FORM=IRPRST&ck=151E7337A86F1B9C5C5DB08B15B90809&selectedIndex=21&itb=0' + return relative_path + else: + return ':/icons/icons/404.png' + + +def get_image_abs_path(path, base_path) -> str: + if path: + base_path = os.path.join(os.getcwd(),base_path) + output_path = decode_dat(os.path.join(Me().wx_dir, path), base_path) + return output_path + else: + return ':/icons/icons/404.png' + + +def get_image_path(path, base_path) -> str: + if path: + base_path = os.getcwd() + base_path + output_path = decode_dat_path(os.path.join(Me().wx_dir, path), base_path) + relative_path = './image/' + os.path.basename( + output_path) if output_path else 'https://www.bing.com/images/search?view=detailV2&ccid=Zww6woP3&id=CCC91337C740656E800E51247E928ACD3052FECF&thid=OIP.Zww6woP3Em49TdSG_lnggAHaEK&mediaurl=https%3a%2f%2fmeekcitizen.files.wordpress.com%2f2018%2f09%2f404.jpg%3fw%3d656&exph=360&expw=640&q=404&simid=608040792714530493&FORM=IRPRST&ck=151E7337A86F1B9C5C5DB08B15B90809&selectedIndex=21&itb=0' + return relative_path + else: + return ':/icons/icons/404.png' + + +if __name__ == "__main__": + pass diff --git a/app/util/music.py b/app/util/music.py new file mode 100644 index 0000000..6ad9296 --- /dev/null +++ b/app/util/music.py @@ -0,0 +1,55 @@ +import os +import traceback +import shutil + +from app.log import log, logger +from app.util.protocbuf.msg_pb2 import MessageBytesExtra +import requests +from urllib.parse import urlparse, parse_qs +import re + +root_path = './data/music/' +if not os.path.exists('./data'): + os.mkdir('./data') +if not os.path.exists(root_path): + os.mkdir(root_path) + + +class File: + def __init__(self): + self.open_flag = False + + +def get_music_path(url, file_title, output_path=root_path) -> str: + try: + parsed_url = urlparse(url) + if '.' in parsed_url.path: + # 获取扩展名 + file_extension = parsed_url.path.split('.')[-1] + + pattern = r'[\\/:*?"<>|\r\n]+' + file_title = re.sub(pattern, "_", file_title) + file_name = file_title + '.' + file_extension + music_path = os.path.join(output_path, file_name) + if os.path.exists(music_path): + # print('文件' + music_path + '已存在') + return music_path + header = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.40 Safari/537.36 Edg/87.0.664.24' + } + requests.packages.urllib3.disable_warnings() + response = requests.get(url,headers=header,verify=False) + if response.status_code == 200: + with open(music_path, 'wb') as f: + f.write(response.content) + else: + music_path = '' + print("音乐" + file_name + "获取失败:请求地址:" + url) + else: + music_path = '' + print('音乐文件已失效,url:' + url) + return music_path + except Exception as e: + print(f"Get Music Path Error: {e}") + logger.error(traceback.format_exc()) + return "" diff --git a/app/util/path.py b/app/util/path.py new file mode 100644 index 0000000..54b4da7 --- /dev/null +++ b/app/util/path.py @@ -0,0 +1,81 @@ +import os +import winreg + +from app.person import Me +from app.util import image + +os.makedirs('./data/image', exist_ok=True) + + +def get_abs_path(path, base_path="/data/image"): + # return os.path.join(os.getcwd(), 'app/data/icons/404.png') + if path: + base_path = os.getcwd() + base_path + output_path = image.decode_dat(os.path.join(Me().wx_dir, path), base_path) + return output_path if output_path else ':/icons/icons/404.png' + else: + return ':/icons/icons/404.png' + + +def get_relative_path(path, base_path, type_='image'): + if path: + base_path = os.getcwd() + base_path + output_path = image.decode_dat(os.path.join(Me().wx_dir, path), base_path) + relative_path = './image/' + os.path.basename( + output_path) if output_path else 'https://www.bing.com/images/search?view=detailV2&ccid=Zww6woP3&id=CCC91337C740656E800E51247E928ACD3052FECF&thid=OIP.Zww6woP3Em49TdSG_lnggAHaEK&mediaurl=https%3a%2f%2fmeekcitizen.files.wordpress.com%2f2018%2f09%2f404.jpg%3fw%3d656&exph=360&expw=640&q=404&simid=608040792714530493&FORM=IRPRST&ck=151E7337A86F1B9C5C5DB08B15B90809&selectedIndex=21&itb=0' + return relative_path + else: + return ':/icons/icons/404.png' + + +def mkdir(path): + if not os.path.exists(path): + os.mkdir(path) + + +def wx_path(): + try: + is_w_dir = False + + try: + key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Tencent\WeChat", 0, winreg.KEY_READ) + value, _ = winreg.QueryValueEx(key, "FileSavePath") + winreg.CloseKey(key) + w_dir = value + is_w_dir = True + except Exception as e: + w_dir = "MyDocument:" + + if not is_w_dir: + try: + user_profile = os.environ.get("USERPROFILE") + path_3ebffe94 = os.path.join(user_profile, "AppData", "Roaming", "Tencent", "WeChat", "All Users", + "config", + "3ebffe94.ini") + with open(path_3ebffe94, "r", encoding="utf-8") as f: + w_dir = f.read() + is_w_dir = True + except Exception as e: + w_dir = "MyDocument:" + + if w_dir == "MyDocument:": + try: + # 打开注册表路径 + key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, + r"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders") + documents_path = winreg.QueryValueEx(key, "Personal")[0] # 读取文档实际目录路径 + winreg.CloseKey(key) # 关闭注册表 + documents_paths = os.path.split(documents_path) + if "%" in documents_paths[0]: + w_dir = os.environ.get(documents_paths[0].replace("%", "")) + w_dir = os.path.join(w_dir, os.path.join(*documents_paths[1:])) + # print(1, w_dir) + else: + w_dir = documents_path + except Exception as e: + profile = os.environ.get("USERPROFILE") + w_dir = os.path.join(profile, "Documents") + msg_dir = os.path.join(w_dir, "WeChat Files") + return msg_dir + except FileNotFoundError: + return '.' diff --git a/app/util/protocbuf/__init__.py b/app/util/protocbuf/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/util/protocbuf/msg.proto b/app/util/protocbuf/msg.proto new file mode 100644 index 0000000..1d88cec --- /dev/null +++ b/app/util/protocbuf/msg.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package app.protobuf; +option go_package=".;proto"; + +message SubMessage1 { + int32 field1 = 1; + int32 field2 = 2; +} + +message SubMessage2 { + int32 field1 = 1; + string field2 = 2; +} + +message MessageBytesExtra { + SubMessage1 message1 = 1; + repeated SubMessage2 message2 = 3; +} diff --git a/app/util/protocbuf/msg_pb2.py b/app/util/protocbuf/msg_pb2.py new file mode 100644 index 0000000..f5f31c5 --- /dev/null +++ b/app/util/protocbuf/msg_pb2.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: msg.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tmsg.proto\x12\x0c\x61pp.protobuf\"-\n\x0bSubMessage1\x12\x0e\n\x06\x66ield1\x18\x01 \x01(\x05\x12\x0e\n\x06\x66ield2\x18\x02 \x01(\x05\"-\n\x0bSubMessage2\x12\x0e\n\x06\x66ield1\x18\x01 \x01(\x05\x12\x0e\n\x06\x66ield2\x18\x02 \x01(\t\"m\n\x11MessageBytesExtra\x12+\n\x08message1\x18\x01 \x01(\x0b\x32\x19.app.protobuf.SubMessage1\x12+\n\x08message2\x18\x03 \x03(\x0b\x32\x19.app.protobuf.SubMessage2b\x06proto3') + + + +_SUBMESSAGE1 = DESCRIPTOR.message_types_by_name['SubMessage1'] +_SUBMESSAGE2 = DESCRIPTOR.message_types_by_name['SubMessage2'] +_MESSAGEBYTESEXTRA = DESCRIPTOR.message_types_by_name['MessageBytesExtra'] +SubMessage1 = _reflection.GeneratedProtocolMessageType('SubMessage1', (_message.Message,), { + 'DESCRIPTOR' : _SUBMESSAGE1, + '__module__' : 'msg_pb2' + # @@protoc_insertion_point(class_scope:app.protobuf.SubMessage1) + }) +_sym_db.RegisterMessage(SubMessage1) + +SubMessage2 = _reflection.GeneratedProtocolMessageType('SubMessage2', (_message.Message,), { + 'DESCRIPTOR' : _SUBMESSAGE2, + '__module__' : 'msg_pb2' + # @@protoc_insertion_point(class_scope:app.protobuf.SubMessage2) + }) +_sym_db.RegisterMessage(SubMessage2) + +MessageBytesExtra = _reflection.GeneratedProtocolMessageType('MessageBytesExtra', (_message.Message,), { + 'DESCRIPTOR' : _MESSAGEBYTESEXTRA, + '__module__' : 'msg_pb2' + # @@protoc_insertion_point(class_scope:app.protobuf.MessageBytesExtra) + }) +_sym_db.RegisterMessage(MessageBytesExtra) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _SUBMESSAGE1._serialized_start=27 + _SUBMESSAGE1._serialized_end=72 + _SUBMESSAGE2._serialized_start=74 + _SUBMESSAGE2._serialized_end=119 + _MESSAGEBYTESEXTRA._serialized_start=121 + _MESSAGEBYTESEXTRA._serialized_end=230 +# @@protoc_insertion_point(module_scope) diff --git a/app/util/protocbuf/readme.md b/app/util/protocbuf/readme.md new file mode 100644 index 0000000..15b3c63 --- /dev/null +++ b/app/util/protocbuf/readme.md @@ -0,0 +1,34 @@ +# 说明 + +## 解析 +```shell +protoc --decode_raw < msg_data.txt +``` + +## 根据解析结果,设置.proto文件 +```shell +1 { + 1: 16 + 2: 0 +} +3 { + 1: 1 + 2: "wxid_4b1t09d63spw22" +} +3 { + 1: 7 + 2: "\n\t\n\t\t2\n\t\n\t\n\t\tc6680ab2c57499a1a22e44a7eada76e8_\n\t\n\t1\n\t198\n\tv1_Gj7hfmi5\n\t\n\t\t\n\t\n\n" +} +3 { + 1: 2 + 2: "c13acbc95512d1a59bb686d684fd64d8" +} +3 { + 1: 4 + 2: "yiluoAK_47\\FileStorage\\Cache\\2023-08\\2286b5852db82f6cbd9c2084ccd52358" +} +``` +## 生成python文件 +```shell +protoc --python_out=. msg.proto +``` \ No newline at end of file diff --git a/app/util/protocbuf/roomdata.proto b/app/util/protocbuf/roomdata.proto new file mode 100644 index 0000000..36b1f9c --- /dev/null +++ b/app/util/protocbuf/roomdata.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; +package app.protobuf; +option go_package=".;proto"; + +message ChatRoomData { + message ChatRoomMember { + string wxID = 1; + string displayName = 2; + int32 state = 3; + } + repeated ChatRoomMember members = 1; + int32 field_2 = 2; + int32 field_3 = 3; + int32 field_4 = 4; + int32 room_capacity = 5; + int32 field_6 = 6; + int64 field_7 = 7; + int64 field_8 = 8; +} \ No newline at end of file diff --git a/app/util/protocbuf/roomdata_pb2.py b/app/util/protocbuf/roomdata_pb2.py new file mode 100644 index 0000000..7800214 --- /dev/null +++ b/app/util/protocbuf/roomdata_pb2.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: roomdata.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eroomdata.proto\x12\x0c\x61pp.protobuf\"\x8b\x02\n\x0c\x43hatRoomData\x12:\n\x07members\x18\x01 \x03(\x0b\x32).app.protobuf.ChatRoomData.ChatRoomMember\x12\x0f\n\x07\x66ield_2\x18\x02 \x01(\x05\x12\x0f\n\x07\x66ield_3\x18\x03 \x01(\x05\x12\x0f\n\x07\x66ield_4\x18\x04 \x01(\x05\x12\x15\n\rroom_capacity\x18\x05 \x01(\x05\x12\x0f\n\x07\x66ield_6\x18\x06 \x01(\x05\x12\x0f\n\x07\x66ield_7\x18\x07 \x01(\x03\x12\x0f\n\x07\x66ield_8\x18\x08 \x01(\x03\x1a\x42\n\x0e\x43hatRoomMember\x12\x0c\n\x04wxID\x18\x01 \x01(\t\x12\x13\n\x0b\x64isplayName\x18\x02 \x01(\t\x12\r\n\x05state\x18\x03 \x01(\x05\x62\x06proto3') + + + +_CHATROOMDATA = DESCRIPTOR.message_types_by_name['ChatRoomData'] +_CHATROOMDATA_CHATROOMMEMBER = _CHATROOMDATA.nested_types_by_name['ChatRoomMember'] +ChatRoomData = _reflection.GeneratedProtocolMessageType('ChatRoomData', (_message.Message,), { + + 'ChatRoomMember' : _reflection.GeneratedProtocolMessageType('ChatRoomMember', (_message.Message,), { + 'DESCRIPTOR' : _CHATROOMDATA_CHATROOMMEMBER, + '__module__' : 'roomdata_pb2' + # @@protoc_insertion_point(class_scope:app.protobuf.ChatRoomData.ChatRoomMember) + }) + , + 'DESCRIPTOR' : _CHATROOMDATA, + '__module__' : 'roomdata_pb2' + # @@protoc_insertion_point(class_scope:app.protobuf.ChatRoomData) + }) +_sym_db.RegisterMessage(ChatRoomData) +_sym_db.RegisterMessage(ChatRoomData.ChatRoomMember) + +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _CHATROOMDATA._serialized_start=33 + _CHATROOMDATA._serialized_end=300 + _CHATROOMDATA_CHATROOMMEMBER._serialized_start=234 + _CHATROOMDATA_CHATROOMMEMBER._serialized_end=300 +# @@protoc_insertion_point(module_scope) diff --git a/app/util/region_conversion.py b/app/util/region_conversion.py new file mode 100644 index 0000000..afbad63 --- /dev/null +++ b/app/util/region_conversion.py @@ -0,0 +1,361 @@ +# 中国省份拼音到中文的映射字典 +province_mapping = { + 'Anhui': '安徽', + 'Beijing': '北京', + 'Chongqing': '重庆', + 'Fujian': '福建', + 'Gansu': '甘肃', + 'Guangdong': '广东', + 'Guangxi': '广西', + 'Guizhou': '贵州', + 'Hainan': '海南', + 'Hebei': '河北', + 'Heilongjiang': '黑龙江', + 'Henan': '河南', + 'Hong Kong': '香港', + 'Hubei': '湖北', + 'Hunan': '湖南', + 'Inner Mongolia': '内蒙古', + 'Jiangsu': '江苏', + 'Jiangxi': '江西', + 'Jilin': '吉林', + 'Liaoning': '辽宁', + 'Macau': '澳门', + 'Ningxia': '宁夏', + 'Qinghai': '青海', + 'Shaanxi': '陕西', + 'Shandong': '山东', + 'Shanghai': '上海', + 'Shanxi': '山西', + 'Sichuan': '四川', + 'Taiwan': '台湾', + 'Tianjin': '天津', + 'Tibet': '西藏', + 'Xinjiang': '新疆', + 'Yunnan': '云南', + 'Zhejiang': '浙江', + 'Taipei': '台北', +} + +country_mapping = { + 'CN': '中国大陆', + 'TW': '中国台湾', + 'GB': "英国", +} +city_mapping = { + "Beijing": "北京", + "Tianjin": "天津", + "Shanghai": "上海", + "Chongqing": "重庆", + "Yinchuan": "银川", + "Shizuishan": "石嘴山", + "Wuzhong": "吴忠", + "Guyuan": "固原", + "Zhongwei": "中卫", + "Wulumuqi": "乌鲁木齐", + "Kelamayi": "克拉玛依", + "Lasa": "拉萨", + "Huhehaote": "呼和浩特", + "Baotou": "包头", + "Wuhai": "乌海", + "Chifeng": "赤峰", + "Tongliao": "通辽", + "Eerduosi": "鄂尔多斯", + "Hulunbeier": "呼伦贝尔", + "Bayannaoer": "巴彦淖尔", + "Wulanchabu": "乌兰察布", + "Nanning": "南宁", + "Liuzhou": "柳州", + "Guilin": "桂林", + "Wuzhou": "梧州", + "Beihai": "北海", + "Chongzuo": "崇左", + "Laibin": "来宾", + "Hezhou": "贺州", + "Yulin": "玉林", + "Baise": "百色", + "Hechi": "河池", + "Qinzhou": "钦州", + "Fangchenggang": "防城港", + "Guigang": "贵港", + "Harbin": "哈尔滨", + "Daqing": "大庆", + "Qiqihaer": "齐齐哈尔", + "Jiamusi": "佳木斯", + "Jixi": "鸡西", + "Hegang": "鹤岗", + "Shuangyashan": "双鸭山", + "Mudanjiang": "牡丹江", + "Yichun": "伊春", + "Qitaihe": "七台河", + "Heihe": "黑河", + "Suihua": "绥化", + "Changchun": "长春", + "Jilin": "吉林", + "Siping": "四平", + "Liaoyuan": "辽源", + "Tonghua": "通化", + "Baishan": "白山", + "Songyuan": "松原", + "Baicheng": "白城", + "Shenyang": "沈阳", + "Dalian": "大连", + "Anshan": "鞍山", + "Fushun": "抚顺", + "Benxi": "本溪", + "Dandong": "丹东", + "Jinzhou": "锦州", + "Yingkou": "营口", + "Fuxin": "阜新", + "Liaoyang": "辽阳", + "Panjin": "盘锦", + "Tieling": "铁岭", + "Chaoyang": "朝阳", + "Huludao": "葫芦岛", + "Shijiazhuang": "石家庄", + "Tangshan": "唐山", + "Handan": "邯郸", + "Qinghuangdao": "秦皇岛", + "Baoding": "保定", + "Zhangjiakou": "张家口", + "Chengde": "承德", + "Langfang": "廊坊", + "Cangzhou": "沧州", + "Hengshui": "衡水", + "Xingtai": "邢台", + "Jinan": "济南", + "Qingdao": "青岛", + "Zibo": "淄博", + "Zaozhuang": "枣庄", + "Dongying": "东营", + "Yantai": "烟台", + "Weifang": "潍坊", + "Jining": "济宁", + "Taian": "泰安", + "Weihai": "威海", + "Rizhao": "日照", + "Laiwu": "莱芜", + "Linyi": "临沂", + "Dezhou": "德州", + "Liaocheng": "聊城", + "Heze": "菏泽", + "Binzhou": "滨州", + "Nanjing": "南京", + "Zhenjiang": "镇江", + "Changzhou": "常州", + "Wuxi": "无锡", + "Suzhou": "苏州", + "Xuzhou": "徐州", + "Lianyungang": "连云港", + "Huaian": "淮安", + "Yancheng": "盐城", + "Yangzhou": "扬州", + "Taizhou": "泰州", + "Nantong": "南通", + "Suqian": "宿迁", + "Hefei": "合肥", + "Bengbu": "蚌埠", + "Wuhu": "芜湖", + "Huainan": "淮南", + "Bozhou": "亳州", + "Fuyang": "阜阳", + "Huaibei": "淮北", + "Suzhou": "宿州", + "Chuzhou": "滁州", + "Anqing": "安庆", + "Chaohu": "巢湖", + "Maanshan": "马鞍山", + "Xuancheng": "宣城", + "Huangshan": "黄山", + "Chizhou": "池州", + "Tongling": "铜陵", + "Hangzhou": "杭州", + "Jiaxing": "嘉兴", + "Huzhou": "湖州", + "Ningbo": "宁波", + "Jinhua": "金华", + "Wenzhou": "温州", + "Lishui": "丽水", + "Shaoxing": "绍兴", + "Quzhou": "衢州", + "Zhoushan": "舟山", + "Taizhou": "台州", + "Fuzhou": "福州", + "Xiamen": "厦门", + "Quanzhou": "泉州", + "Sanming": "三明", + "Nanping": "南平", + "Zhangzhou": "漳州", + "Putian": "莆田", + "Ningde": "宁德", + "Longyan": "龙岩", + "Guangzhou": "广州", + "Shenzhen": "深圳", + "Shantou": "汕头", + "Huizhou": "惠州", + "Zhuhai": "珠海", + "Jieyang": "揭阳", + "Foshan": "佛山", + "Heyuan": "河源", + "Yangjiang": "阳江", + "Maoming": "茂名", + "Zhanjiang": "湛江", + "Meizhou": "梅州", + "Zhaoqing": "肇庆", + "Shaoguan": "韶关", + "Chaozhou": "潮州", + "Dongguan": "东莞", + "Zhongshan": "中山", + "Qingyuan": "清远", + "Jiangmen": "江门", + "Shanwei": "汕尾", + "Yunfu": "云浮", + "Haikou": "海口", + "Sanya": "三亚", + "Kunming": "昆明", + "Qujing": "曲靖", + "Yuxi": "玉溪", + "Baoshan": "保山", + "Zhaotong": "昭通", + "Lijiang": "丽江", + "Puer": "普洱", + "Lincang": "临沧", + "Guiyang": "贵阳", + "Liupanshui": "六盘水", + "Zunyi": "遵义", + "Anshun": "安顺", + "Chengdu": "成都", + "Mianyang": "绵阳", + "Deyang": "德阳", + "Guangyuan": "广元", + "Zigong": "自贡", + "Panzhihua": "攀枝花", + "Leshan": "乐山", + "Nanchong": "南充", + "Neijiang": "内江", + "Suining": "遂宁", + "Guangan": "广安", + "Luzhou": "泸州", + "Dazhou": "达州", + "Meishan": "眉山", + "Yibin": "宜宾", + "Yaan": "雅安", + "Ziyang": "资阳", + "Changsha": "长沙", + "Zhuzhou": "株洲", + "Xiangtan": "湘潭", + "Hengyang": "衡阳", + "Yueyang": "岳阳", + "Chenzhou": "郴州", + "Yongzhou": "永州", + "Shaoyang": "邵阳", + "Huaihua": "怀化", + "Changde": "常德", + "Yiyang": "益阳", + "Zhangjiajie": "张家界", + "Loudi": "娄底", + "Wuhan": "武汉", + "Xiangfan": "襄樊", + "Yichang": "宜昌", + "Huangshi": "黄石", + "Ezhou": "鄂州", + "Suizhou": "随州", + "Jingzhou": "荆州", + "Jingmen": "荆门", + "Shiyan": "十堰", + "Xiaogan": "孝感", + "Huanggang": "黄冈", + "Xianning": "咸宁", + "Zhengzhou": "郑州", + "Luoyang": "洛阳", + "Kaifeng": "开封", + "Luohe": "漯河", + "Anyang": "安阳", + "Xinxiang": "新乡", + "Zhoukou": "周口", + "Sanmenxia": "三门峡", + "Jiaozuo": "焦作", + "Pingdingshan": "平顶山", + "Xinyang": "信阳", + "Nanyang": "南阳", + "Hebi": "鹤壁", + "Puyang": "濮阳", + "Xuchang": "许昌", + "Shangqiu": "商丘", + "Zhumadian": "驻马店", + "Taiyuan": "太原", + "DaTong": "大同", + "Xinzhou": "忻州", + "Yangquan": "阳泉", + "Changzhi": "长治", + "Jincheng": "晋城", + "Shuozhou": "朔州", + "Jinzhong": "晋中", + "Yuncheng": "运城", + "Linfen": "临汾", + "Lvliang": "吕梁", + "Xi'an": "西安", + "Xianyang": "咸阳", + "Tongchuan": "铜川", + "Yanan": "延安", + "Baoji": "宝鸡", + "Weinan": "渭南", + "Hanzhoung": "汉中", + "Ankang": "安康", + "Shangluo": "商洛", + "Yulin": "榆林", + "Lanzhou": "兰州", + "Tianshui": "天水", + "Pingliang": "平凉", + "Jiuquan": "酒泉", + "Jiayuguan": "嘉峪关", + "Jinchang": "金昌", + "baiyiin": "白银", + "Wuwei": "武威", + "Zhangye": "张掖", + "Qingyang": "庆阳", + "Dingxi": "定西", + "Longnan": "陇南", + "Xining": "西宁", + "Nanchang": "南昌", + "Jiujiang": "九江", + "Ganzhou": "赣州", + "Jian": "吉安", + "Yingtan": "鹰潭", + "Shangrao": "上饶", + "Pingxiang": "萍乡", + "Jingdezhen": "景德镇", + "Xinyu": "新余", + "Yichun": "宜春", + "Fuzhou": "抚州", + "Tin Shui": "天水" +} + + +def conversion_province_to_chinese(province): + area = '' + if province in province_mapping: + area = f'{province_mapping[province]}' + return area + + +def conversion_region_to_chinese(region: tuple): + area = '' + if not region: + return area + if region[2]: + if region[2] in city_mapping: + area = city_mapping[region[2]] + else: + area = region[2] + if region[1]: + if region[1] in province_mapping: + area = f'{province_mapping[region[1]]} {area}' + else: + area = f'{region[1]} {area}' + if region[0]: + if region[0] in country_mapping: + area = f'{country_mapping[region[0]]} {area}' + else: + area = f'{region[0]} {area}' + return area diff --git a/app/util/search.py b/app/util/search.py new file mode 100644 index 0000000..59e8a00 --- /dev/null +++ b/app/util/search.py @@ -0,0 +1,14 @@ +from typing import List + +from fuzzywuzzy import process + + +def search_by_content(key, choices: List[List]): + result = [] + for i, choice in enumerate(choices): + res = process.extractOne(key, choice) + result.append((res, i)) + result.sort(key=lambda x: x[0][1], reverse=True) + k = result[0][1] + item = result[0][0][0] + return choices[k].index(item) diff --git a/app/web_ui/__init__.py b/app/web_ui/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/web_ui/templates/charts.html b/app/web_ui/templates/charts.html new file mode 100644 index 0000000..dc2a2cf --- /dev/null +++ b/app/web_ui/templates/charts.html @@ -0,0 +1,155 @@ + + + + + + 微信年度聊天报告 + + + + + +

{{my_nickname}}——{{ta_nickname}}

+
+

我们第一次聊天在

+

{{first_time}}

+

距今已有

+
+ + + + +
+

+
+
+
+

消息统计

+
+
+
+
+
+
+ + + + + + diff --git a/app/web_ui/templates/christmas.html b/app/web_ui/templates/christmas.html new file mode 100644 index 0000000..d03bbe0 --- /dev/null +++ b/app/web_ui/templates/christmas.html @@ -0,0 +1,383 @@ + + + + + + 微信年度聊天报告 + + + + + + + + + +
+ +
+
+
+ Mountain Image + Top Left Light + Bottom Right Light + Left Bottom Image + Right Top Image + +
+
+ +
+
+
+ + {{my_nickname}} +
+ + Right Top Image +
+ + {{ta_nickname}} +
+
+
+

我们第一次聊天在

+

{{first_time}}

+

距今已有

+
+ + + + +
+
+ +
+
+
+
+
+ Mountain Image + Top Left Light + Bottom Right Light + 礼袋 + 圣诞老人 +
+
+
+
+
+
二〇二三
+
你们说的最多的是
+
“{{keyword}}”{{keyword_max_num}}
+ +
+
+ {% for dialog in dialogs %} +
{{dialog[0][3]}}
+ {% if dialog[0][0]==0: %} +
+ +
+ {% for p in dialog[0][2][:-1] %} + {{p}}{{keyword}} + {% endfor %} + {{dialog[0][2][-1]}} +
+
+
+
+ {{dialog[1][2]}} +
+ +
+ {% endif %} + {% if dialog[0][0]==1: %} +
+
+ {% for p in dialog[0][2][:-1] %} + {{p}}{{keyword}} + {% endfor %} + {{dialog[0][2][-1]}} +
+ +
+
+ +
+ {{dialog[1][2]}} +
+
+ {% endif %} + {% endfor %} +
+
+
+
+ Mountain Image + Top Left Light + Bottom Right Light + Left Bottom Image + Right Top Image + 圣诞老人 + Right Top Image +
+
{{latest_time}}
+
这么晚了你们还在聊天
+
那天一定有你们难忘的回忆
+

+
你们都是{{chat_time_label}}
+
{{chat_time}}
+
你们一共发送了{{chat_time_num}}条消息
+
+
+
+
{{latest_time}}
+ {% for dialog in latest_time_dialog %} + {% if dialog[0]==0: %} +
+ +
+ {{dialog[1]}} +
+
+ {% endif %} + {% if dialog[0]==1: %} +
+
+ {{dialog[1]}} +
+ +
+ {% endif %} + {% endfor %} +
+
+
+
+
+
+ Mountain Image + Top Left Light + Bottom Right Light + Left Bottom Image + 滑雪的小女孩 + Right Top Image + Right Top Image +
+
过去的一年里
+
你们一共发送了{{total_msg_num}}条消息
+
总计{{total_num}}
+

+
你们的聊天似乎没有规律
+
+ {{max_month}} + 一共发送了 + {{max_month_num}} + 条消息 +
+
对你的话说不完
+

+
+ {{min_month}} + 只有 + {{min_month_num}} + 条消息 +
+
有时候你们也想静静
+
+
+
+
+
+ Mountain Image + Top Left Light + Bottom Right Light + 包饺子 + Right Top Image +
+
{{year}}年
+
+ 我们有 + {{chat_days}} + 天在聊天 +
+
有你在的日子里
+
+ 都很有 + 意义! +
+

+
这一年
+
+ 一共发送了 + {{emoji_total_num}} + 个表情包 +
+
Ta最常用的表情包是
+ +
+ 一共 + {{emoji_num}}次 +
+
+
+
+
+
+

分享此页面

+ + +
+ 点击生成我的年度聊天报告 +
+
+ Logo +

Copyrights © 2022-2024 SiYuan 版权所有. Inc.

+ +
+
+ +
+ + + + + + + + diff --git a/app/web_ui/templates/home.html b/app/web_ui/templates/home.html new file mode 100644 index 0000000..4a43eb1 --- /dev/null +++ b/app/web_ui/templates/home.html @@ -0,0 +1,177 @@ + + + + + + + + + + 年度聊天报告 + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+

未眠人

+

{{sub_title}}

+
+
+ + + + + +
+
+ avatar +
+
+
+

+ {{nickname}}

+
+
+
+

+ 我们第一次聊天发生在

+

+ {{first_time}}

+
+ 距今已有 + 626 天 + 6 时 + 26 分 + 26 秒 +
+
+
+
+
+
进入
+
+
+
+
+
+
+
+ + + + + +
+
+
+ + \ No newline at end of file diff --git a/app/web_ui/templates/index.html b/app/web_ui/templates/index.html new file mode 100644 index 0000000..cb2aec8 --- /dev/null +++ b/app/web_ui/templates/index.html @@ -0,0 +1,441 @@ + + + + + + 微信年度聊天报告 + + + + + + + + + + + +
+ +
+
+
+

年度聊天报告

+

可掌控的才真正属于你

+ +
+
+
+

2023年

+

你一共给{{contact_num}}个联系人
发送了{{send_msg_num}}条消息
收到了{{receive_msg_num}}条消息
总计{{total_text_num}}

+

{{man_contact_num}}人 女{{woman_contact_num}}

+
+
+
+
+
+
+
+
+
+ + +
+
+

年度关键词

+
“{{keyword}}”{{keyword_max_num}}
+
+
+
+

年度聊天好友

+

聊天榜单

+ +
+
+

敬请期待

+
+ Logo +

Copyrights © 2022-2024 SiYuan 版权所有. Inc.

+ +
+
+
+ + + + + diff --git a/app/web_ui/web.py b/app/web_ui/web.py new file mode 100644 index 0000000..ec98616 --- /dev/null +++ b/app/web_ui/web.py @@ -0,0 +1,297 @@ +import os +import sys +import time +from urllib.parse import urljoin + +import requests +from flask import Flask, render_template, send_file, jsonify, make_response, request +from pyecharts.charts import Bar + +from app.DataBase import msg_db, micro_msg_db +from app.DataBase.hard_link import decodeExtraBuf +from app.analysis import analysis +from app.config import SERVER_API_URL +from app.person import Contact, Me, ContactDefault +from app.util.emoji import get_most_emoji +from app.util.region_conversion import conversion_region_to_chinese + +app = Flask(__name__) + +run_flag = False +wxid = '' +contact: Contact = None +start_time = '2023-1-01 00:00:00' +end_time = '2023-12-31 23:59:59' +time_range = (start_time, end_time) +html: str = '' + +api_url = urljoin(SERVER_API_URL,'upload') + + + +def get_contact(wxid) -> ContactDefault | Contact: + contact_info_list = micro_msg_db.get_contact_by_username(wxid) + if not contact_info_list: + return ContactDefault('') + detail = decodeExtraBuf(contact_info_list[9]) + # detail = {} + contact_info = { + 'UserName': contact_info_list[0], + 'Alias': contact_info_list[1], + 'Type': contact_info_list[2], + 'Remark': contact_info_list[3], + 'NickName': contact_info_list[4], + 'smallHeadImgUrl': contact_info_list[7], + 'label_name': contact_info_list[10], + 'detail': detail, + } + contact =Contact(contact_info) + print(detail) + # region = contact.detail.get('region') + # area = conversion_region_to_chinese(region) + # print(area) + return contact + + +@app.route("/") +def index(): + contact_topN_num = msg_db.get_chatted_top_contacts(time_range=time_range, top_n=9999999, contain_chatroom=True) + total_msg_num = sum(list(map(lambda x: x[1], contact_topN_num))) + contact_topN = [] + for wxid, num in contact_topN_num: + contact = get_contact(wxid) + text_length = 0 + contact_topN.append([contact, num, text_length]) + contacts_data = analysis.contacts_analysis(contact_topN) + contact_topN = [] + send_msg_num = msg_db.get_send_messages_number_sum(time_range) + contact_topN_num = msg_db.get_chatted_top_contacts(time_range=time_range, top_n=9999999, contain_chatroom=False) + + for wxid, num in contact_topN_num[:6]: + contact = get_contact(wxid) + text_length = msg_db.get_message_length(wxid, time_range) + contact_topN.append([contact, num, text_length]) + + my_message_counter_data = analysis.my_message_counter(time_range=time_range) + data = { + 'avatar': Me().smallHeadImgUrl, + 'contact_topN': contact_topN, + 'contact_num': len(contact_topN_num), + 'send_msg_num': send_msg_num, + 'receive_msg_num': total_msg_num - send_msg_num, + } + return render_template('index.html', **data,**contacts_data, **my_message_counter_data) + + +@app.route("/christmas/") +def christmas(wxid): + contact = get_contact(wxid) + # 渲染模板,并传递图表的 HTML 到模板中 + try: + first_message, first_time = msg_db.get_first_time_of_message(contact.wxid) + except TypeError: + first_time = '2023-01-01 00:00:00' + data = { + 'ta_avatar_path': contact.smallHeadImgUrl, + 'my_avatar_path': Me().smallHeadImgUrl, + 'ta_nickname': contact.remark, + 'my_nickname': Me().name, + 'first_time': first_time, + } + wordcloud_cloud_data = analysis.wordcloud_christmas(contact.wxid,time_range=time_range) + msg_data = msg_db.get_messages_by_hour(contact.wxid, time_range=time_range) + msg_data.sort(key=lambda x: x[1], reverse=True) + desc = { + '夜猫子': {'22:00', '23:00', '00:00', '01:00', '02:00', '03:00', '04:00', '05:00'}, + '正常作息': {'06:00', "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", + "17:00", "18:00", "19:00", "20:00", "21:00"}, + } + time_, num = msg_data[0] if msg_data else ('', 0) + chat_time = f"凌晨{time_}" if time_ in {'00:00', '01:00', '02:00', '03:00', '04:00', '05:00'} else time_ + label = '夜猫子' + for key, item in desc.items(): + if time_ in item: + label = key + latest_dialog = msg_db.get_latest_time_of_message(contact.wxid, time_range=time_range) + latest_time = latest_dialog[0][2] if latest_dialog else '' + time_data = { + 'latest_time': latest_time, + 'latest_time_dialog': latest_dialog, + 'chat_time_label': label, + 'chat_time': chat_time, + 'chat_time_num': num, + } + month_data = msg_db.get_messages_by_month(contact.wxid, time_range=time_range) + + if month_data: + month_data.sort(key=lambda x: x[1]) + max_month, max_num = month_data[-1] + min_month, min_num = month_data[0] + min_month = min_month[-2:].lstrip('0') + '月' + max_month = max_month[-2:].lstrip('0') + '月' + else: + max_month, max_num = '月份', 0 + min_month, min_num = '月份', 0 + + month_data = { + 'year': '2023', + 'total_msg_num': msg_db.get_messages_number(contact.wxid, time_range=time_range), + 'max_month': max_month, + 'min_month': min_month, + 'max_month_num': max_num, + 'min_month_num': min_num, + } + + calendar_data = analysis.calendar_chart(contact.wxid, time_range) + emoji_msgs = msg_db.get_messages_by_type(contact.wxid, 47, time_range=time_range) + url, num = get_most_emoji(emoji_msgs) + emoji_data = { + 'emoji_total_num': len(emoji_msgs), + 'emoji_url': url, + 'emoji_num': num, + } + global html + html = render_template("christmas.html", **data, **wordcloud_cloud_data, **time_data, **month_data, **calendar_data, + **emoji_data) + return html + + +@app.route('/upload') +def upload(): + global html + data = { + 'html_content': html, + 'wxid': contact.wxid, + 'username': Me().wxid, + 'token':Me().token, + 'type': 'contact' + } + response = requests.post(api_url, data=data) + print(response) + print(response.json()) + response = make_response(response.json()) + response.headers.add('Access-Control-Allow-Origin', '*') # Replace '*' with specific origins if needed + response.headers.add('Content-Type', 'application/json') + return response + + +def set_text(text): + html = ''' + + + + + + Centered Text + + + +
+ + %s + +
+ + + ''' % (text) + return html + + +@app.route('/test') +def test(): + return set_text('以下内容仅对VIP开放') + + +def run(port=21314): + global run_flag + if not run_flag: + try: + app.run(debug=True, host='0.0.0.0', port=port, use_reloader=False) + run_flag = True + except: + pass + else: + pass + + +def resource_path(relative_path): + """ Get absolute path to resource, works for dev and for PyInstaller """ + base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__))) + return os.path.join(base_path, relative_path) + + +@app.route('/data/avatar/') +def get_image(filename): + try: + # 返回动态生成的图片 + return send_file(os.path.join("../../data/avatar/", filename), mimetype='image/png') + except: + return send_file(os.path.join(f"{os.getcwd()}/data/avatar/", filename), mimetype='image/png') + + +@app.route('/month_count', methods=['POST']) +def get_chart_options(): + wxid = request.json.get('wxid') + time_range = request.json.get('time_range', []) + data = analysis.month_count(wxid, time_range=time_range) + return jsonify(data) + + +@app.route('/wordcloud', methods=['POST']) +def get_wordcloud(): + wxid = request.json.get('wxid') + time_range = request.json.get('time_range', []) + + world_cloud_data = analysis.wordcloud_(wxid, time_range=time_range) + return jsonify(world_cloud_data) + + +@app.route('/charts/') +def charts(wxid): + # 渲染模板,并传递图表的 HTML 到模板中 + contact = get_contact(wxid) + try: + first_message, first_time = msg_db.get_first_time_of_message(wxid) + except TypeError: + first_time = '2023-01-01 00:00:00' + data = { + 'wxid': wxid, + 'my_nickname': Me().name, + 'ta_nickname': contact.remark, + 'first_time': first_time + } + return render_template('charts.html', **data) + + +@app.route('/calendar', methods=['POST']) +def get_calendar(): + wxid = request.json.get('wxid') + time_range = request.json.get('time_range', []) + world_cloud_data = analysis.calendar_chart(wxid, time_range=time_range) + return jsonify(world_cloud_data) + + +@app.route('/message_counter', methods=['POST']) +def get_counter(): + wxid = request.json.get('wxid') + time_range = request.json.get('time_range', []) + contact = get_contact(wxid) + data = analysis.sender(wxid, time_range=time_range, my_name=Me().name, ta_name=contact.remark) + return jsonify(data) + + +if __name__ == "__main__": + app.run(debug=True, host='0.0.0.0') diff --git a/doc/ai-qwen/readme.md b/doc/ai-qwen/readme.md new file mode 100644 index 0000000..ae990a1 --- /dev/null +++ b/doc/ai-qwen/readme.md @@ -0,0 +1,21 @@ +**鉴于** 本仓库原来的训练模型 `Chatllm3-6b` 在低性能机器上部署比较困难,我在原基础上使用微型模型 `Qwen2-0.5b-Instruct` 模型完成模型训练到部署到免费 +Modelspace 创空间中,比较简单,`并且可做到全程免费` 下面是流程: +*** +# 第一步,[创建 Modelspace 免费 GPU](https://www.modelscope.cn/my/mynotebook/preset) +![GPU](/MemoAI/img/img3.png) + +# 开始训练 +**可以参照训练[模板](/MemoAI/qwen2-0.5b/train.md)** +
+把 `train.json` 上传,一步步点击即可
+最后把模型上传到 `Modelspace` +
+![训练](/MemoAI/img/img4.png) +# 部署到创空间 +编辑 `di_config.json` 的一下两个字段 +`model_space: YOUR-NAME-SPACE` +`model_name: YOUR-MODEL-NAME` + +**然后把一下MemoAI/qwen2-0.5b的三个文件:`di_config.json`,`app.py`,`requirements.txt`上传到创空间,点击部署!** + +**最后看看成品吧:**[成品](https://www.modelscope.cn/studios/sanbei101/qwen-haoran/summary) \ No newline at end of file diff --git a/doc/ai_readme.md b/doc/ai_readme.md new file mode 100644 index 0000000..0ee47e4 --- /dev/null +++ b/doc/ai_readme.md @@ -0,0 +1,356 @@ +# 大模型训练指南 + +## 一、导出聊天记录 + +导出json格式的聊天记录。 + +![img.png](images/img10.png) + +你现在应该有两个文件,dev.json(验证集)和train.json(训练集) + +## 二、下载ChatGLM3-68模型 + +下载地址:[https://github.com/THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) + +## 使用方式 + +### 环境安装 + +首先需要下载本仓库: + +```shell +git clone https://github.com/THUDM/ChatGLM3 +cd ChatGLM3 +``` + +然后使用 pip 安装依赖: + +``` +pip install -r requirements.txt +``` + ++ 为了保证 `torch` 的版本正确,请严格按照 [官方文档](https://pytorch.org/get-started/locally/) 的说明安装。 ++ **如果遇到问题,请参照ChatGLM3项目的解决方案,不要在本项目中提问** + +## 三、ChatGLM3-6B 微调 + +本目录提供 ChatGLM3-6B 模型的微调示例,包括全量微调和 P-Tuning v2。格式上,提供多轮对话微调样例和输入输出格式微调样例。 + +如果将模型下载到了本地,本文和代码中的 `THUDM/chatglm3-6b` 字段均应替换为相应地址以从本地加载模型。 + +运行示例需要 `python>=3.10`,除基础的 `torch` 依赖外,示例代码运行还需要依赖。 + + +```bash +pip install -r requirements.txt +``` + +## 测试硬件标准 + +我们仅提供了单机多卡/多机多卡的运行示例,因此您需要至少一台具有多个 GPU 的机器。本仓库中的**默认配置文件**中,我们记录了显存的占用情况: + ++ SFT 全量微调: 4张显卡平均分配,每张显卡占用 `48346MiB` 显存。 ++ P-TuningV2 微调: 1张显卡,占用 `18426MiB` 显存。 ++ LORA 微调: 1张显卡,占用 `14082MiB` 显存。 + +> 请注意,该结果仅供参考,对于不同的参数,显存占用可能会有所不同。请结合你的硬件情况进行调整。 + +> 请注意,我们仅仅使用英伟达 Hopper(代表显卡:H100) 和 Ampère(代表显卡:A100) 架构和系列显卡做过测试。如果您使用其他架构的显卡,可能会出现 +> 1. 未知的训练问题 / 显存占用与上述有误差。 +> 2. 架构过低而不支持某些特性。 +> 3. 推理效果问题。 + > 以上三种情况为社区曾经遇到过的问题,虽然概率极地,如果您遇到了以上问题,可以尝试在社区中解决。 + +## 多轮对话格式 + +多轮对话微调示例采用 ChatGLM3 对话格式约定,对不同角色添加不同 `loss_mask` 从而在一遍计算中为多轮回复计算 `loss`。 + +对于数据文件,样例采用如下格式 + +如果您仅希望微调模型的对话能力,而非工具能力,您应该按照以下格式整理数据。 + +```json +[ + { + "conversations": [ + { + "role": "system", + "content": "" + }, + { + "role": "user", + "content": "" + }, + { + "role": "assistant", + "content": "" + }, + // ... Muti Turn + { + "role": "user", + "content": "" + }, + { + "role": "assistant", + "content": "" + } + ] + } + // ... +] +``` + +**请注意,这种方法在微调的step较多的情况下会影响到模型的工具调用功能** + +- `system` 角色为可选角色,但若存在 `system` 角色,其必须出现在 `user` + 角色之前,且一个完整的对话数据(无论单轮或者多轮对话)只能出现一次 `system` 角色。 + +## 数据集格式示例 + +这里以 AdvertiseGen 数据集为例, +您可以从 [Google Drive](https://drive.google.com/file/d/13_vf0xRTQsyneRKdD1bZIr93vBGOczrk/view?usp=sharing) +或者 [Tsinghua Cloud](https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1) 下载 AdvertiseGen 数据集。 +将解压后的 AdvertiseGen 目录放到 `data` 目录下并自行转换为如下格式数据集。 + +> 请注意,现在的微调代码中加入了验证集,因此,对于一组完整的微调数据集,必须包含训练数据集和验证数据集,测试数据集可以不填写。或者直接用验证数据集代替。 + +``` +{"conversations": [{"role": "user", "content": "类型#裙*裙长#半身裙"}, {"role": "assistant", "content": "这款百搭时尚的仙女半身裙,整体设计非常的飘逸随性,穿上之后每个女孩子都能瞬间变成小仙女啦。料子非常的轻盈,透气性也很好,穿到夏天也很舒适。"}]} +``` + +## 配置文件 + +微调配置文件位于 `config` 目录下,包括以下文件: + +1. `ds_zereo_2 / ds_zereo_3.json`: deepspeed 配置文件。 +2. `lora.yaml / ptuning.yaml / sft.yaml`: 模型不同方式的配置文件,包括模型参数、优化器参数、训练参数等。 部分重要参数解释如下: + + data_config 部分 + + train_file: 训练数据集的文件路径。 + + val_file: 验证数据集的文件路径。 + + test_file: 测试数据集的文件路径。 + + num_proc: 在加载数据时使用的进程数量。 + + max_input_length: 输入序列的最大长度。 + + max_output_length: 输出序列的最大长度。 + + training_args 部分 + + output_dir: 用于保存模型和其他输出的目录。 + + max_steps: 训练的最大步数。 + + per_device_train_batch_size: 每个设备(如 GPU)的训练批次大小。 + + dataloader_num_workers: 加载数据时使用的工作线程数量。 + + remove_unused_columns: 是否移除数据中未使用的列。 + + save_strategy: 模型保存策略(例如,每隔多少步保存一次)。 + + save_steps: 每隔多少步保存一次模型。 + + log_level: 日志级别(如 info)。 + + logging_strategy: 日志记录策略。 + + logging_steps: 每隔多少步记录一次日志。 + + per_device_eval_batch_size: 每个设备的评估批次大小。 + + evaluation_strategy: 评估策略(例如,每隔多少步进行一次评估)。 + + eval_steps: 每隔多少步进行一次评估。 + + predict_with_generate: 是否使用生成模式进行预测。 + + generation_config 部分 + + max_new_tokens: 生成的最大新 token 数量。 + + peft_config 部分 + + peft_type: 使用的参数有效调整类型(如 LORA)。 + + task_type: 任务类型,这里是因果语言模型(CAUSAL_LM)。 + + Lora 参数: + + r: LoRA 的秩。 + + lora_alpha: LoRA 的缩放因子。 + + lora_dropout: 在 LoRA 层使用的 dropout 概率 + + P-TuningV2 参数: + + num_virtual_tokens: 虚拟 token 的数量。 + +## 开始微调 + +通过以下代码执行 **单机多卡/多机多卡** 运行,这是使用 `deepspeed` 作为加速方案的,您需要安装 `deepspeed`。 + +```angular2html +cd finetune_demo +OMP_NUM_THREADS=1 torchrun --standalone --nnodes=1 --nproc_per_node=8 finetune_hf.py data/AdvertiseGen/ THUDM/chatglm3-6b configs/lora.yaml configs/ds_zero_2.json +``` + +通过以下代码执行 **单机单卡** 运行。 + +```angular2html +cd finetune_demo +python finetune_hf.py data/AdvertiseGen/ THUDM/chatglm3-6b configs/lora.yaml +``` + +## 从保存点进行微调 + +如果按照上述方式进行训练,每次微调都会从头开始,如果你想从训练一半的模型开始微调,你可以加入第四个参数,这个参数有两种传入方式: + +1. `yes`, 自动从最后一个保存的 Checkpoint开始训练 +2. `XX`, 断点号数字 例 `600` 则从序号600 Checkpoint开始训练 + +例如,这就是一个从最后一个保存点继续微调的示例代码 + +```angular2html +cd finetune_demo +python finetune_hf.py data/AdvertiseGen/ THUDM/chatglm3-6b configs/lora.yaml yes +``` + +## 使用微调后的模型 + +### 在 inference_hf.py 中验证微调后的模型 + +您可以在 `finetune_demo/inference_hf.py` 中使用我们的微调后的模型,仅需要一行代码就能简单的进行测试。 + +```angular2html +python inference_hf.py your_finetune_path --prompt your prompt +``` + +这样,得到的回答就微调后的回答了。 + +### 在本仓库的其他 demo 或者外部仓库使用微调后的模型 + +您可以在任何一个 demo 内使用我们的 `lora` 和 全参微调的模型。这需要你自己按照以下教程进行修改代码。 + +1. 使用`finetune_demo/inference_hf.py`中读入模型的方式替换 demo 中读入模型的方式。 + +> 请注意,对于 LORA 和 P-TuningV2 我们没有合并训练后的模型,而是在`adapter_config.json` +> 中记录了微调型的路径,如果你的原始模型位置发生更改,则你应该修改`adapter_config.json`中`base_model_name_or_path`的路径。 + +```python +def load_model_and_tokenizer( + model_dir: Union[str, Path], trust_remote_code: bool = True +) -> tuple[ModelType, TokenizerType]: + model_dir = _resolve_path(model_dir) + if (model_dir / 'adapter_config.json').exists(): + model = AutoPeftModelForCausalLM.from_pretrained( + model_dir, trust_remote_code=trust_remote_code, device_map='auto' + ) + tokenizer_dir = model.peft_config['default'].base_model_name_or_path + else: + model = AutoModelForCausalLM.from_pretrained( + model_dir, trust_remote_code=trust_remote_code, device_map='auto' + ) + tokenizer_dir = model_dir + tokenizer = AutoTokenizer.from_pretrained( + tokenizer_dir, trust_remote_code=trust_remote_code + ) + return model, tokenizer +``` + +2. 读取微调的模型,请注意,你应该使用微调模型的位置,例如,若你的模型位置为`/path/to/finetune_adapter_model` + ,原始模型地址为`path/to/base_model`,则你应该使用`/path/to/finetune_adapter_model`作为`model_dir`。 +3. 完成上述操作后,就能正常使用微调的模型了,其他的调用方式没有变化。 + +### 提示 + +1. 微调代码在开始训练前,会先打印首条训练数据的预处理信息(默认已经注释,可以解除注释),显示为 + +```log +Sanity +Check >> >> >> >> >> >> > +'[gMASK]': 64790 -> -100 +'sop': 64792 -> -100 +'<|system|>': 64794 -> -100 +'': 30910 -> -100 +'\n': 13 -> -100 +'Answer': 20115 -> -100 +'the': 267 -> -100 +'following': 1762 -> -100 +... +'know': 683 -> -100 +'the': 267 -> -100 +'response': 3010 -> -100 +'details': 3296 -> -100 +'.': 30930 -> -100 +'<|assistant|>': 64796 -> -100 +'': 30910 -> 30910 +'\n': 13 -> 13 +'I': 307 -> 307 +'need': 720 -> 720 +'to': 289 -> 289 +'use': 792 -> 792 +... +<< << << << << << < Sanity +Check +``` + +字样,每行依次表示一个 detokenized string, token_id 和 target_id。其中,`target_id`为`token_id`在模型词表中的索引,`-100`表示该 +token 不参与 `loss` 计算。 + +2. `_prepare_model_for_training` 的作用是遍历模型的所有可训练参数,并确保它们的数据类型为`torch.float32`。 + 这在某些情况下是必要的,因为混合精度训练或其他操作可能会更改模型参数的数据类型。该代码默打开,可以注释,但是如果使用 + `half` 格式训练出现问题,可以切换回这个代码,显存可能增加。 +3. 在我们的[Huggingface模型代码](https://huggingface.co/THUDM/chatglm3-6b/blob/main/modeling_chatglm.py)中,有以下内容: + ```python + if self.gradient_checkpointing and self.training: + layer_ret = torch.utils.checkpoint.checkpoint( + layer, + hidden_states, + attention_mask, + rotary_pos_emb, + kv_caches[index], + use_cache, + use_reentrant=False + ) + ``` + 这可能导致训练的时候显存增加,因此,如果您的显存不足,可以尝试将``` use_reentrant``` 修改为`True`。 +4. 微调后的模型可以使用任何支持 `peft` 载入的模型加速框架,在这里,我们没有提供demo。 +5. 本仓库的微调数据集格式与 API 微调数据集格式有一定区别 + + ZhipuAI API 微调数据集中的 `messages` 字段在本仓库为 `conversation` 字段。 + + ZhipuAI API 中的微调文件为 `jsonl`, 在本仓库,需要简单的将文件名改为 `json`。 + +> 以上内容来自ChatGLM3项目 + +## 微调示例 + +配置文件 + +```yaml +data_config: + train_file: train.json + val_file: dev.json + test_file: dev.json + num_proc: 10 +max_input_length: 512 +max_output_length: 128 +training_args: + # see `transformers.Seq2SeqTrainingArguments` + output_dir: ./output03-24 + max_steps: 100000 + # settings for data loading + per_device_train_batch_size: 4 + dataloader_num_workers: 10 + remove_unused_columns: false + # settings for saving checkpoints + save_strategy: steps + save_steps: 2000 + # settings for logging + log_level: info + logging_strategy: steps + logging_steps: 10 + # settings for evaluation + per_device_eval_batch_size: 4 + evaluation_strategy: steps + eval_steps: 5200 + # settings for optimizer + # adam_epsilon: 1e-6 + # uncomment the following line to detect nan or inf values + # debug: underflow_overflow + predict_with_generate: yes + # see `transformers.GenerationConfig` + generation_config: + max_new_tokens: 256 + # set your absolute deepspeed path here + #deepspeed: ds_zero_2.json + # set to true if train with cpu. + use_cpu: false +peft_config: + peft_type: LORA + task_type: CAUSAL_LM + r: 8 + lora_alpha: 32 + lora_dropout: 0.1 +``` + +硬件配置:4090 24G、64G内存、CPU 14700KF 20核28线程 + +你需要根据你的硬件配置修改上述参数,各个参数含义上面有说 + +微调命令(需要指定数据集路径和ChatGLM3基础大模型的路径) + +```shell +python finetune_hf.py data/ E:\\Project\\Python\\Langchain-Chatchat\\chatglm3-6b configs/lora.yaml yes +``` diff --git a/doc/images/20231227211149.png b/doc/images/20231227211149.png new file mode 100644 index 0000000..21e7ca8 Binary files /dev/null and b/doc/images/20231227211149.png differ diff --git a/doc/images/20231227211215.png b/doc/images/20231227211215.png new file mode 100644 index 0000000..0527167 Binary files /dev/null and b/doc/images/20231227211215.png differ diff --git a/doc/images/20231227211228.png b/doc/images/20231227211228.png new file mode 100644 index 0000000..95b8d45 Binary files /dev/null and b/doc/images/20231227211228.png differ diff --git a/doc/images/20231227211240.png b/doc/images/20231227211240.png new file mode 100644 index 0000000..5a1fe37 Binary files /dev/null and b/doc/images/20231227211240.png differ diff --git a/doc/images/20231227211250.png b/doc/images/20231227211250.png new file mode 100644 index 0000000..89b91ee Binary files /dev/null and b/doc/images/20231227211250.png differ diff --git a/doc/images/ai_qq.jpg b/doc/images/ai_qq.jpg new file mode 100644 index 0000000..724f02d Binary files /dev/null and b/doc/images/ai_qq.jpg differ diff --git a/doc/images/chat.png b/doc/images/chat.png new file mode 100644 index 0000000..33b205e Binary files /dev/null and b/doc/images/chat.png differ diff --git a/doc/images/contact_info.png b/doc/images/contact_info.png new file mode 100644 index 0000000..afb6e9b Binary files /dev/null and b/doc/images/contact_info.png differ diff --git a/doc/images/demo1.gif b/doc/images/demo1.gif new file mode 100644 index 0000000..6b821f7 Binary files /dev/null and b/doc/images/demo1.gif differ diff --git a/doc/images/dirs.png b/doc/images/dirs.png new file mode 100644 index 0000000..a4af2d2 Binary files /dev/null and b/doc/images/dirs.png differ diff --git a/doc/images/err_log.png b/doc/images/err_log.png new file mode 100644 index 0000000..2dc7801 Binary files /dev/null and b/doc/images/err_log.png differ diff --git a/doc/images/image-20230520235220104.png b/doc/images/image-20230520235220104.png new file mode 100644 index 0000000..d5f559d Binary files /dev/null and b/doc/images/image-20230520235220104.png differ diff --git a/doc/images/image-20230520235338305.png b/doc/images/image-20230520235338305.png new file mode 100644 index 0000000..e0222c8 Binary files /dev/null and b/doc/images/image-20230520235338305.png differ diff --git a/doc/images/image-20230520235351749.png b/doc/images/image-20230520235351749.png new file mode 100644 index 0000000..84e09b3 Binary files /dev/null and b/doc/images/image-20230520235351749.png differ diff --git a/doc/images/image-20230520235400772.png b/doc/images/image-20230520235400772.png new file mode 100644 index 0000000..b286884 Binary files /dev/null and b/doc/images/image-20230520235400772.png differ diff --git a/doc/images/image-20230520235409112.png b/doc/images/image-20230520235409112.png new file mode 100644 index 0000000..2b339eb Binary files /dev/null and b/doc/images/image-20230520235409112.png differ diff --git a/doc/images/image-20230520235422128.png b/doc/images/image-20230520235422128.png new file mode 100644 index 0000000..c2b4a34 Binary files /dev/null and b/doc/images/image-20230520235422128.png differ diff --git a/doc/images/image-20230520235431091.png b/doc/images/image-20230520235431091.png new file mode 100644 index 0000000..3b02109 Binary files /dev/null and b/doc/images/image-20230520235431091.png differ diff --git a/doc/images/img10.png b/doc/images/img10.png new file mode 100644 index 0000000..f23b61a Binary files /dev/null and b/doc/images/img10.png differ diff --git a/doc/images/logo.png b/doc/images/logo.png new file mode 100644 index 0000000..0d5216d Binary files /dev/null and b/doc/images/logo.png differ diff --git a/doc/images/logo0.png b/doc/images/logo0.png new file mode 100644 index 0000000..a7ca12e Binary files /dev/null and b/doc/images/logo0.png differ diff --git a/doc/images/logo3.0.png b/doc/images/logo3.0.png new file mode 100644 index 0000000..a57fa48 Binary files /dev/null and b/doc/images/logo3.0.png differ diff --git a/doc/images/logo99.png b/doc/images/logo99.png new file mode 100644 index 0000000..0ac2198 Binary files /dev/null and b/doc/images/logo99.png differ diff --git a/doc/images/main_window.png b/doc/images/main_window.png new file mode 100644 index 0000000..d56f9f2 Binary files /dev/null and b/doc/images/main_window.png differ diff --git a/doc/images/message.png b/doc/images/message.png new file mode 100644 index 0000000..5ea3454 Binary files /dev/null and b/doc/images/message.png differ diff --git a/doc/images/path_select.png b/doc/images/path_select.png new file mode 100644 index 0000000..b8e7b1d Binary files /dev/null and b/doc/images/path_select.png differ diff --git a/doc/images/qq2.jpg b/doc/images/qq2.jpg new file mode 100644 index 0000000..4fcb55a Binary files /dev/null and b/doc/images/qq2.jpg differ diff --git a/doc/images/qq3.jpg b/doc/images/qq3.jpg new file mode 100644 index 0000000..6974a07 Binary files /dev/null and b/doc/images/qq3.jpg differ diff --git a/doc/images/qrcode0.png b/doc/images/qrcode0.png new file mode 100644 index 0000000..7862e71 Binary files /dev/null and b/doc/images/qrcode0.png differ diff --git a/doc/images/setting.png b/doc/images/setting.png new file mode 100644 index 0000000..799511a Binary files /dev/null and b/doc/images/setting.png differ diff --git a/doc/images/weixin.png b/doc/images/weixin.png new file mode 100644 index 0000000..567df75 Binary files /dev/null and b/doc/images/weixin.png differ diff --git a/doc/images/why.gif b/doc/images/why.gif new file mode 100644 index 0000000..f289d31 Binary files /dev/null and b/doc/images/why.gif differ diff --git a/doc/images/微信图片_20240130214341.jpg b/doc/images/微信图片_20240130214341.jpg new file mode 100644 index 0000000..b7bc7de Binary files /dev/null and b/doc/images/微信图片_20240130214341.jpg differ diff --git a/doc/images/数据库架构设计图.png b/doc/images/数据库架构设计图.png new file mode 100644 index 0000000..3505503 Binary files /dev/null and b/doc/images/数据库架构设计图.png differ diff --git a/doc/images/病假.gif b/doc/images/病假.gif new file mode 100644 index 0000000..c69aef2 Binary files /dev/null and b/doc/images/病假.gif differ diff --git a/doc/开发者手册.md b/doc/开发者手册.md new file mode 100644 index 0000000..aa21e0f --- /dev/null +++ b/doc/开发者手册.md @@ -0,0 +1,84 @@ +# 开发者手册 +## 源码运行 + +运行前请确保您的电脑上已经安装了Git、版本不低于3.10的Python、部分第三方库需要用到MSVC,需要提前安装Windows构建工具 + +### 1. 安装 + +```shell +# Python>=3.10 仅支持3.10、3.11、3.12,请勿使用其他Python版本 +git clone https://github.com/LC044/WeChatMsg +# 网络不好推荐用Gitee +# git clone https://gitee.com/lc044/WeChatMsg.git +cd WeChatMsg +pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple +``` + +### 2. 使用 + +1. 登录微信 + +手机端使用聊天记录迁移功能将聊天数据迁移到电脑上(可选) + +操作步骤: +- 安卓: 手机微信->我->设置->聊天->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)[否则](https://github.com/LC044/WeChatMsg/issues/27) +- iOS: 手机微信->我->设置->通用->聊天记录迁移与备份->迁移-> 迁移到电脑微信(迁移完成后重启微信)[否则](https://github.com/LC044/WeChatMsg/issues/27) + +2. 运行程序 + +```shell +python main.py +``` + +3. 点击获取信息 + +![](./images/pc_decrypt_info.png) + +4. 设置微信安装路径(如果自动设置好了就**不用管**了) + +可以到微信->设置->文件管理查看 + +![](./images/setting.png) + +点击**设置微信路径**按钮,选择该文件夹路径下的带有wxid_xxx的路径(没有wxid的话先选择其中一个文件夹不对的话换其他文件夹) + +![](./images/path_select.png) + +5. 获取到key和微信路径之后点击开始启动 +6. 数据库文件保存在./app/DataBase/Msg路径下 + +### 3. 查看 + +随便下载一个SQLite数据库查看软件就能打开数据库,例如[DB Browser for SQLite](https://sqlitebrowser.org/dl/) + +* [数据库功能介绍](./数据库介绍.md) + +## 仓库目录功能介绍 + +```text +├─app +│ ├─analysis # 聊天数据分析、画图的实现 +│ ├─components # PyQt写的一些自定义UI组件 +│ ├─data # 存储程序用到的必要数据文件 +│ ├─DataBase # 有关数据库的操作和聊天记录导出 +│ ├─decrypt # 数据库解密 +│ ├─log # 日志存储 +│ ├─resources # 必要的资源文件 +│ ├─ui # ui界面实现 +│ │ ├─chat # 聊天界面 +│ │ ├─contact # 联系人界面 +│ │ │ ├─export # 联系人聊天记录导出 +│ │ │ └─userinfo # 联系人详细信息 +│ │ ├─menu # 菜单栏功能的实现 +│ │ ├─QSS # 样式表 +│ │ └─tool # 工具界面 +│ │ ├─get_bias_addr # 获取微信基址 +│ │ ├─pc_decrypt # 数据库解密 +│ │ └─setting # 设置 +│ ├─util # 用到的一些通用工具(聊天数据解析、音视频处理) +│ │ └─protocbuf +│ └─web_ui # 年度报告等网页的实现(flask) +│ └─templates # HTML模板 +├─doc # 文档 +└─resource # pyecharts资源文件,供打包使用 +``` \ No newline at end of file diff --git a/doc/数据库介绍.md b/doc/数据库介绍.md new file mode 100644 index 0000000..93a8555 --- /dev/null +++ b/doc/数据库介绍.md @@ -0,0 +1,252 @@ +# 微信数据库介绍 + +**文章来源:[https://github.com/xaoyaoo/PyWxDump/blob/master/doc/wx%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%80%E8%BF%B0.md](https://github.com/xaoyaoo/PyWxDump/blob/master/doc/wx%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%80%E8%BF%B0.md)** + +转载请注明原始出处 + +# 微信PC端各个数据库简述 + +* 说明:针对 .../WeChat Files/wxid_xxxxxxxx/Msg下的各个文件解密后的内容进行概述 +* 未作特别说明的情况下,“聊天记录数据”指代的数据结构上都和Multi文件夹中的完整聊天记录数据相同或类似。 +* 本文档仅供学习交流使用,严禁用于商业用途及非法用途,否则后果自负 + +## 一、微信小程序相关 + +微信小程序的相关数据,包括但不限于: + +* 你使用过的小程序 RecentWxApp +* 星标的小程序 StarWxApp +* 各个小程序的基本信息 WAContact + +用处不大,不过可以看到你使用过的小程序的名称和图标,以及小程序的AppID + +## 二、企业微信相关 + +### BizChat + +企业微信联系人数据,包括但不限于: + +* 在微信中可以访问的企业微信会话ChatInfo +* 一部分会话的信息ChatSession(未确认与ChatInfo的关系;这其中的Content字段是最近一条消息,疑似用于缓存展示的内容) +* 包括群聊在内的聊天涉及的所有企业微信用户身份信息UsrInfo +* 该微信账号绑定的企业微信身份MyUsrInfo +* 特别说明:未经详细查证,这其中的聊天是否包含使用普通微信身份与企业微信用户发起的聊天,还是只包含使用绑定到普通微信的企业微信身份与其它企业微信身份发起的聊天。 + +### BizChatMsg + +* 企业微信聊天记录数据,包括所有和企业微信聊天的数据。 +* 与BizChat一样,未确定涉及的范围究竟是只有企业微信-企业微信还是同时包含普通微信-企业微信。 +* 另外,此处的消息与Multi文件夹中真正的微信消息不同的是在于没有拆分数据库。 + +### OpenIM 前缀 + +* 这个也是企业微信的数据,包括联系人、企业信息、与企业微信联系人的消息等。 +* 这个是普通微信-企业微信的数据,上面biz前缀的是企业微信-企业微信 +* 这个不常用,而且也没有全新的数据结构,不再详细说了。 + +### PublicMsg + +* 看起来像是企业微信的通知消息,可以理解为企业微信的企业应用消息 + +## 三、微信功能相关 + +### Emotion + +顾名思义表情包相关,包括但不限于以下内容: + +* CustomEmotion:顾名思义用户手动上传的GIF表情,包含下载链接,不过看起来似乎有加密(内有aesKey字段但我没测试) +* EmotionDes1 和 EmotionItem 应该也是类似的内容,没仔细研究 +* EmotionPackageItem:账号添加的表情包的集合列表(从商店下载的那种) + +ps:用处不大,微信的MSG文件夹有表情包的url链接,可以直接网络获取聊天记录中的表情包。 + +### Favorite + +* FavItems:收藏的消息条目列表 +* FavDataItem:收藏的具体数据。没有自习去看他的存储逻辑,不过大概可以确定以下两点 + * 即使只是简单收藏一篇公众号文章也会在 FavDataItem 中有一个对应的记录 + * 对于收藏的合并转发类型的消息,合并转发中的每一条消息在 FavDataItem 中都是一个独立的记录 +* FavTags:为收藏内容添加的标签 + +### Misc + +* 有BizContactHeadImg和ContactHeadImg1两张表,应该是二进制格式的各个头像 + +### Sns + +微信朋友圈的相关数据: + +* FeedsV20:朋友圈的XML数据 +* CommentV20:朋友圈点赞或评论记录 +* NotificationV7:朋友圈通知 +* SnsConfigV20:一些配置信息,能读懂的是其中有你的朋友圈背景图 +* SnsGroupInfoV5:猜测是旧版微信朋友圈可见范围的可见或不可见名单 + +### FTS(搜索) + +* 前缀为 FTS 的数据库可能都和全文搜索(Full-Text Search)相关(就是微信那个搜索框) + +### FTSContact + +有一堆表 + +* FTSChatroom15_content 和 FTSContact15_content + 分别对应的是微信“聊天”界面会展示的消息会话(包括公众号等)和“联系人”界面会出现的所有人(有的时候并不是所有联系人都会出现在“聊天”中),信息包含昵称、备注名和微信号,也和微信支持搜索的字段相匹配。 + +### FTSFavorite + +搜索收藏内容的索引 + +* 命名方式类似上面一条 + +ps:对于收藏内容通过文字搜索,电脑版是把所有东西拼接成一个超长字符串来实现的。这对于文本、链接等没啥问题,但是对于合并转发消息,就会出现搜索\[图片] +这一关键词。 + +### MultiSearchChatMsg + +* 这个数据库前缀不一样,但是看内容和结构应该还是一个搜索相关,搜索的是聊天记录中的文件 +* 存储了文件名和其所在的聊天 +* 不过FTSMsgSearch18_content和SessionAttachInfo两张表记录数量有显著差异,不确定是哪个少了或是怎样。 + +### HardLink(文件在磁盘存储的位置) + +* 将文件/图片/视频的文件名指向保存它们的文件夹名称(例如2023-04),有用但不多。 + +### Media + +* ChatCRVoice和MediaInfo 可能为语音信息 + +## 三、MicroMsg (联系人核心) + +一个数据库,不应该和分类平级,但是我认为这是分析到目前以来最核心的,因此单独来说了。 + +### AppInfo(表) + +一些软件的介绍,猜测可能是关于某些直接从手机APP跳转到微信的转发会带有的转发来源小尾巴的信息 + +### Biz 前缀 + +与公众号相关的内容,应该主要是账号本身相关。 + +能确定的是 BizSessionNewFeeds 这张表保存的是订阅号大分类底下的会话信息,包括头像、最近一条推送等。 + +### ChatInfo + +保存“聊天”列表中每个会话最后一次标记已读的时间 + +### ChatRoom 和 ChatRoomInfo + +存储群聊相关信息 + +* ChatRoom:存储每个群聊的用户列表(包括微信号列表和群昵称列表)和个人群昵称等信息 +* ChatRoomInfo:群聊相关信息,主要是群公告内容,与成员无关 + 顺便再吐槽一下,微信这个位置有一个命名出现异常的,别的表前缀都是ChatRoom,而突然出现一个ChatroomTool + +### Contact + +顾名思义,联系人。不过这里的联系人并不是指你的好友,而是所有你可能看见的人,除好友外还有所有群聊中的所有陌生人。 + +* Contact:这张表存储的是用户基本信息,包括但不限于微信号(没有好友的陌生人也能看!)、昵称、备注名、设置的标签等等,甚至还有生成的各种字段的拼音,可能是用于方便搜索的吧 +* ContactHeadImgUrl:头像地址 +* ContactLabel:好友标签 ID 与名称对照 +* ExtraBuf: 存储位置信息、手机号、邮箱等信息 + +### PatInfo + +存了一部分好友的拍一拍后缀,但是只有几个,我记得我电脑上显示过的拍一拍似乎没有这么少? + +### Session + +真正的“聊天”栏目显示的会话列表,一个不多一个不少,包括“折叠的群聊”这样子的特殊会话;信息包括名称、未读消息数、最近一条消息等 + +### TicketInfo + +这张表在我这里有百余条数据,但是我实在没搞明白它是什么 + +## 四、FTSMSG + +FTS 这一前缀了——这代表的是搜索时所需的索引。 + +其内主要的内容是这样的两张表: + +* FTSChatMsg2_content:内有三个字段 + * docid:从1开始递增的数字,相当于当前条目的 ID + * c0content:搜索关键字(在微信搜索框输入的关键字被这个字段包含的内容可以被搜索到) + * c1entityId:尚不明确用途,可能是校验相关 +* FTSChatMsg2_MetaData + * docid:与FTSChatMsg2_content表中的 docid 对应 + * msgId:与MSG数据库中的内容对应 + * entityId:与FTSChatMsg2_content表中的 c1entityId 对应 + * type:可能是该消息的类型 + * 其余字段尚不明确 + +特别地,表名中的这个数字2,个人猜测可能是当前数据库格式的版本号。 + +## 五、MediaMSG (语音消息) + +这里存储了所有的语音消息。数据库中有且仅有Media一张表,内含三个有效字段: + +* Key +* Reserved0 与MSG数据库中消息的MsgSvrID一一对应 +* Buf silk格式的语音数据 + +## 六、MSG(聊天记录核心数据库) + +内部主要的两个表是`MSG`和`Name2ID` + +### Name2ID + +* `Name2ID`这张表只有一列,内容格式是微信号或群聊ID@chatroom +* 作用是使MSG中的某些字段与之对应。虽然表中没有 ID 这一列,但事实上微信默认了第几行 ID 就是几(从1开始编号)。 + +### MSG + +* localId:字面意思消息在本地的 ID,暂未发现其功用 +* TalkerId:消息所在房间的 ID(该信息为猜测,猜测原因见 StrTalker 字段),与Name2ID对应。 +* MsgSvrID:猜测 Srv 可能是 Server 的缩写,代指服务器端存储的消息 ID +* Type:消息类型,具体对照见表1 +* SubType:消息类型子分类,暂时未见其实际用途 +* IsSender:是否是自己发出的消息,也就是标记消息展示在对话页左边还是右边,取值0或1 +* CreateTime:消息创建时间的秒级时间戳。此处需要进一步实验来确认该时间具体标记的是哪个时间节点,个人猜测的规则如下: + * 从这台电脑上发出的消息:标记代表的是每个消息点下发送按钮的那一刻 + * 从其它设备上发出的/收到的来自其它用户的消息:标记的是本地从服务器接收到这一消息的时间 +* Sequence:次序,虽然看起来像一个毫秒级时间戳但其实不是。这是`CreateTime` + 字段末尾接上三位数字组成的,通常情况下为000,如果在出现两条`CreateTime` + 相同的消息则最后三位依次递增。需要进一步确认不重复范围是在一个会话内还是所有会话。`CreateTime` + 相同的消息则最后三位依次递增。需要进一步确认不重复范围是在一个会话内还是所有会话。 +* StatusEx、FlagEx、Status、MsgServerSeq、MsgSequence:这五个字段个人暂时没有分析出有效信息 +* StrTalker:消息发送者的微信号。特别说明,从这里来看的话,上面的`TalkerId` + 字段大概率是指的消息所在的房间ID,而非发送者ID,当然也可能和`TalkerId`属于重复内容,这一点待确认。 +* StrContent:字符串格式的数据。特别说明的是,除了文本类型的消息外,别的大多类型这一字段都会是一段 XML + 数据标记一些相关信息。通过解析xml可以得到更多的信息,例如图片的宽高、语音的时长等等。 +* DisplayContent:对于拍一拍,保存拍者和被拍者账号信息 +* Reserved0~6:这些字段也还没有分析出有效信息,也有的字段恒为空 +* CompressContent:字面意思是压缩的数据,实际上也就是微信任性不想存在 StrContent + 里的数据在这里(例如带有引用的文本消息等;采用lz4压缩算法压缩) +* BytesExtra:额外的二进制格式数据 +* BytesTrans:目前看这是一个恒为空的字段 + +表1:MSG.Type字段数值与含义对照表(可能可以扩展到其它数据库中同样标记消息类型这一信息的字段) + +| 分类`Type` | 子分类`SubType` | 对应类型 | +|----------|--------------|-------------------------------------------------------------| +| 1 | 0 | 文本 | +| 3 | 0 | 图片 | +| 34 | 0 | 语音 | +| 43 | 0 | 视频 | +| 47 | 0 | 动画表情(第三方开发的表情包) | +| 49 | 1 | 类似文字消息而不一样的消息,目前只见到一个阿里云盘的邀请注册是这样的。估计和57子类的情况一样 | +| 49 | 5 | 卡片式链接,CompressContent 中有标题、简介等,BytesExtra 中有本地缓存的封面路径 | +| 49 | 6 | 文件,CompressContent 中有文件名和下载链接(但不会读),BytesExtra 中有本地保存的路径 | +| 49 | 8 | 用户上传的 GIF 表情,CompressContent 中有CDN链接,不过似乎不能直接访问下载 | +| 49 | 19 | 合并转发的聊天记录,CompressContent 中有详细聊天记录,BytesExtra 中有图片视频等的缓存 | +| 49 | 33/36 | 分享的小程序,CompressContent 中有卡片信息,BytesExtra 中有封面缓存位置 | +| 49 | 57 | 带有引用的文本消息(这种类型下 StrContent 为空,发送和引用的内容均在 CompressContent 中) | +| 49 | 63 | 视频号直播或直播回放等 | +| 49 | 87 | 群公告 | +| 49 | 88 | 视频号直播或直播回放等 | +| 49 | 2000 | 转账消息(包括发出、接收、主动退还) | +| 49 | 2003 | 赠送红包封面 | +| 10000 | 0 | 系统通知(居中出现的那种灰色文字) | +| 10000 | 4 | 拍一拍 | +| 10000 | 8000 | 系统通知(特别包含你邀请别人加入群聊) | \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..0e55f17 --- /dev/null +++ b/main.py @@ -0,0 +1,120 @@ +import ctypes +import sys +import time +import traceback +from PyQt5.QtGui import QFont, QPixmap, QIcon +from PyQt5.QtWidgets import * +from PyQt5.QtCore import Qt + +from app.log.exception_handling import ExceptionHanding, send_error_msg +from app.ui.Icon import Icon +from app.DataBase import close_db +from app.log import logger +from app.ui import mainview +from app.ui.tool.pc_decrypt import pc_decrypt +from app.config import version, SEND_LOG_FLAG + +widget = None + + +def excepthook(exc_type, exc_value, traceback_): + # 将异常信息转为字符串 + + # 在这里处理全局异常 + + error_message = ExceptionHanding(exc_type, exc_value, traceback_) + txt = '您可添加QQ群发送log文件以便解决该问题' + msg = f"Exception Type: {exc_type.__name__}\nException Value: {exc_value}\ndetails: {error_message}\n\n{txt}" + if SEND_LOG_FLAG: + send_error_msg(msg) + logger.error(f'程序发生了错误:\n\n{msg}') + # 创建一个 QMessageBox 对象 + error_box = QMessageBox() + + # 设置对话框的标题 + error_box.setWindowTitle("未知错误") + pixmap = QPixmap(Icon.logo_ico_path) + icon = QIcon(pixmap) + error_box.setWindowIcon(icon) + # 设置对话框的文本消息 + error_box.setText(msg) + # 设置对话框的图标,使用 QMessageBox.Critical 作为图标类型 + error_box.setIcon(QMessageBox.Critical) + # 添加一个“确定”按钮 + error_box.addButton(QMessageBox.Ok) + + # 显示对话框 + error_box.exec_() + + # 调用原始的 excepthook,以便程序正常退出 + sys.__excepthook__(exc_type, exc_value, traceback_) + + +# 设置 excepthook +sys.excepthook = excepthook + + +ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("WeChatReport") +QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True) +QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True) + + +class ViewController(QWidget): + def __init__(self): + super().__init__() + self.viewMainWindow = None + self.viewDecrypt = None + + def loadPCDecryptView(self): + """ + 登录界面 + :return: + """ + self.viewDecrypt = pc_decrypt.DecryptControl() + self.viewDecrypt.DecryptSignal.connect(self.show_success) + self.viewDecrypt.show() + + def loadMainWinView(self, username=None): + """ + 聊天界面 + :param username: 账号 + :return: + """ + username = '' + start = time.time() + self.viewMainWindow = mainview.MainWinController(username=username) + self.viewMainWindow.exitSignal.connect(self.close) + try: + self.viewMainWindow.setWindowTitle(f"留痕-{version}") + self.viewMainWindow.show() + end = time.time() + self.viewMainWindow.init_ui() + print('ok', '本次加载用了', end - start, 's') + + except Exception as e: + print(f"Exception: {e}") + logger.error(traceback.format_exc()) + + def show_success(self): + QMessageBox.about(self, "解密成功", "数据库文件存储在\napp/DataBase/Msg\n文件夹下") + + def close(self) -> bool: + close_db() + super().close() + + +if __name__ == '__main__': + app = QApplication(sys.argv) + font = QFont('微软雅黑', 12) # 使用 Times New Roman 字体,字体大小为 14 + app.setFont(font) + view = ViewController() + widget = view.viewMainWindow + try: + # view.loadPCDecryptView() + view.loadMainWinView() + # view.show() + # view.show_success() + sys.exit(app.exec_()) + except Exception as e: + print(f"Exception: {e}") + logger.error(traceback.format_exc()) diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..1affca7 --- /dev/null +++ b/readme.md @@ -0,0 +1,248 @@ +## [留下你对2024年度聊天报告的期待](https://github.com/LC044/WeChatMsg/issues/532) + +

我的数据我做主

+ + +
+ +
+ +
+
+
+
+

前言

+
+ +

我深信有意义的不是微信,而是隐藏在对话框背后的一个个深刻故事。未来,每个人都能拥有AI的陪伴,而你的数据能够赋予它有关于你过去的珍贵记忆。我希望每个人都有将自己的生活痕迹👨‍👩‍👦👚🥗🏠️🚴🧋⛹️🛌🛀留存的权利,而不是遗忘💀。

+

AI的发展不仅仅是技术的提升,更是情感💞的延续。每一个对话、每一个互动都是生活中独一无二的片段,是真实而动人的情感交流。因此,我希望AI工作者们能够善用这些自己的数据,用于培训独特的、属于个体的人工智能。让个人AI成为生活中的朋友,能够理解、记录并分享我们的欢笑、泪水和成长。

+

那天,AI不再是高不可攀的存在,而是融入寻常百姓家的一部分。因为每个人能拥有自己的AI,将科技的力量融入生活的方方面面。这是一场关于真情实感的革命,一场让技术变得更加人性化的探索,让我们共同见证未来的美好。

+

所以《留痕》

+
+
+
+
+ +## 🍉功能 +- [![](https://img.shields.io/badge/MemoTrace-官网-blue)](https://memotrace.cn/) +[![](https://img.shields.io/badge/GitHub-black.svg)](https://github.com/LC044/WeChatMsg) +[![](https://img.shields.io/badge/Gitee-red.svg)](https://gitee.com/lc044/WeChatMsg) +[![](https://img.shields.io/badge/Download-yellow.svg)](https://memotrace.cn/) +- 🔒️🔑🔓️Windows本地微信数据库 +- 还原微信聊天界面 + - 🗨文本✅ + - 🏝图片✅ + - 拍一拍等系统消息✅ +- 导出数据 + - 批量导出数据✅ + - 导出联系人✅ + - sqlite数据库✅ + - HTML✅ + - 文本、图片、视频、表情包、语音、文件、分享链接、系统消息、引用消息、合并转发的聊天记录、转账、音视频通话、位置分享、名片、小程序、视频号 + - 支持时间轴跳转 + - 引用消息可定位到原文 + - 分享链接、小程序支持超链接跳转 + - 合并转发的聊天记录支持展开 + - CSV文档✅ + - TXT文档✅ + - Word文档✅ +- 分析聊天数据,做成[可视化年报](https://memotrace.cn/demo.html) + +## 2024年度报告 + +### 预览 + +[个人年度报告在线预览](https://memotrace.cn/2024/single/) + +[双人年度报告在线预览](https://memotrace.cn/2024Report/) + +手机可以扫码观看 + + + +![](/doc/images/demo1.gif) + +### 源码地址 + +[https://github.com/LC044/AnnualReport](https://github.com/LC044/AnnualReport) + +## 2.2更新预告 + +### 全面适配微信4.0 + +![](/doc/images/数据库架构设计图.png) + + * 全新框架、重构底层逻辑 + * 更低的内存占用 + * 更快的导出速度 + +### 全新的Ui + * 更简洁 + * 更流畅 + * 更友好 + * 前后端彻底分离 + +### 更宽松的许可证 + + - 如果跟其他模块兼容的话,将采用MIT许可证 + - 已有功能代码全开源 + +## 🥤效果 + +
+ +聊天界面 + +![](./doc/images/微信图片_20240130214341.jpg) + +![](./doc/images/why.gif) + +![](./doc/images/病假.gif) + +![image-20230520235351749](./doc/images/20231227211149.png) + +![image-20230520235351749](./doc/images/20231227211215.png) + +![image-20230520235351749](./doc/images/20231227211228.png) + +![image-20230520235400772](./doc/images/20231227211240.png) + +![image-20230520235409112](./doc/images/20231227211250.png) + +![image-20230520235422128](./doc/images/image-20230520235338305.png) + +![image-20230520235431091](./doc/images/image-20230520235351749.png) + +
+ +# ⌛使用 + +下载地址:[https://memotrace.cn/](https://memotrace.cn/) + +下载打包好的exe可执行文件,双击即可运行 + +**⚠️注意:若出现闪退情况请右击选择用管理员身份运行exe程序,该程序不存在任何病毒,若杀毒软件提示有风险选择略过即可,key为none可重启电脑** + +## 源码运行 + +[详见开发者手册](./doc/开发者手册.md) + +[AI聊天](./MemoAI/readme.md) + +## PC端使用过程中部分问题解决(可参考) + +#### 🤔如果您在pc端使用的时候出现问题,可以先参考以下方面,如果仍未解决,可以在群里交流~ + +* 不支持Win7 +* 不支持Mac(未来或许会实现) +* 遇到问题四大法宝 + * 首先要删除app/Database/Msg文件夹 + * 重启微信 + * 重启exe程序 + * 重启电脑 + * 换电脑 +如果您在运行可执行程序的时候出现闪退的现象,请右击软件使用管理员权限运行。 + +[查看详细教程](https://memotrace.cn/doc/) + +# 🏆致谢 + +
+ +* PC微信工具:[https://github.com/xaoyaoo/PyWxDump](https://github.com/xaoyaoo/PyWxDump) +* PyQt组件库:[https://github.com/PyQt5/CustomWidgets](https://github.com/PyQt5/CustomWidgets) +* 得力小助手:[ChatGPT](https://chat.openai.com/) + +
+ +--- +> \[!IMPORTANT] +> +> 声明:该项目有且仅有一个目的:“留痕”——我的数据我做主,前提是“我的数据”其次才是“我做主”,禁止任何人以任何形式将其用于任何非法用途,对于使用该程序所造成的任何后果,所有创作者不承担任何责任🙄
+> 该软件不能找回删除的聊天记录,任何企图篡改微信聊天数据的想法都是无稽之谈。
+> 本项目所有功能均建立在”前言“的基础之上,基于该项目的所有开发者均不能接受任何有悖于”前言“的功能需求,违者后果自负。
+> 如果该项目侵犯了您或您产品的任何权益,请联系我删除
+> 软件贩子勿扰,违规违法勿扰,二次开发请务必遵守开源协议 + +[![Star History Chart](https://api.star-history.com/svg?repos=LC044/WeChatMsg&type=Date)](https://star-history.com/?utm_source=bestxtools.com#LC044/WeChatMsg&Date) + +# 🤝贡献者 + + + + + +## 赞助者名单 + +感谢以下赞助者的慷慨支持: + +- [STDquantum](https://github.com/STDquantum) +- [xuanli](https://github.com/xuanli) +- [无名路人](https://github.com/wumingluren) +- [时鹏亮](https://shipengliang.com) + +# 🎄温馨提示 + +如果您在使用该软件的过程中 + +* 发现新的bug +* 有新的功能诉求 +* 操作比较繁琐 +* 觉得UI不够美观 +* 等其他给您造成困扰的地方 + +请提起[issue](https://github.com/LC044/WeChatMsg/issues),我将尽快为您解决问题 + +如果您是一名开发者,有新的想法或建议,欢迎[fork](https://github.com/LC044/WeChatMsg/forks) +该项目并发起[PR](https://github.com/LC044/WeChatMsg/pulls),我将把您的名字写入贡献者名单中 + +# 联系方式 + +如果您遇到了问题,可以添加QQ群寻求帮助,由于精力有限,不能回答所有问题,所以还请您仔细阅读文档之后再考虑是否入群 + +## 加群方式 + +1. 关注官方公众号,回复:联系方式 +2. QQ扫码入群 + +后续更新将会在公众号同步发布 +
+ + +
+ +## AI交流 + +欢迎对“前言”中AI感兴趣的加入QQ群(不负责任何答疑),让我们一起探讨新技术,钻研新方案,将科技的力量融入生活,打造出一个真正具有情感的个人AI + +
+ +
+ +# License + +WeChatMsg is licensed under [GPLv3](./LICENSE). + +Copyright © 2022-2024 by SiYuan. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2a8ccd7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,20 @@ +PyQt5 +psutil +pycryptodomex +pywin32 +pymem +silk-python +pyaudio +fuzzywuzzy +python-Levenshtein +requests +flask==3.0.0 +pyecharts==2.0.1 +jieba==0.42.1 +google==3.0.0 +protobuf==4.25.1 +soupsieve==2.5 +lz4==4.3.2 +pilk==0.2.4 +python-docx==1.1.0 +docxcompose==1.4.0 \ No newline at end of file diff --git a/resource/datasets/__init__.py b/resource/datasets/__init__.py new file mode 100644 index 0000000..0ea7ed8 --- /dev/null +++ b/resource/datasets/__init__.py @@ -0,0 +1,141 @@ +import difflib +import os +import typing +import urllib.request + +import simplejson as json + + +class FuzzyDict(dict): + """Provides a dictionary that performs fuzzy lookup""" + + def __init__(self, cutoff: float = 0.6): + """Construct a new FuzzyDict instance + + items is an dictionary to copy items from (optional) + cutoff is the match ratio below which matches should not be considered + cutoff needs to be a float between 0 and 1 (where zero is no match + and 1 is a perfect match)""" + super(FuzzyDict, self).__init__() + self.cutoff = cutoff + + # short wrapper around some super (dict) methods + self._dict_contains = lambda key: super(FuzzyDict, self).__contains__(key) + self._dict_getitem = lambda key: super(FuzzyDict, self).__getitem__(key) + + def _search(self, lookfor: typing.Any, stop_on_first: bool = False): + """Returns the value whose key best matches lookfor + + if stop_on_first is True then the method returns as soon + as it finds the first item + """ + + # if the item is in the dictionary then just return it + if self._dict_contains(lookfor): + return True, lookfor, self._dict_getitem(lookfor), 1 + + # set up the fuzzy matching tool + ratio_calc = difflib.SequenceMatcher() + ratio_calc.set_seq1(lookfor) + + # test each key in the dictionary + best_ratio = 0 + best_match = None + best_key = None + for key in self: + # if the current key is not a string + # then we just skip it + try: + # set up the SequenceMatcher with other text + ratio_calc.set_seq2(key) + except TypeError: + continue + + # we get an error here if the item to look for is not a + # string - if it cannot be fuzzy matched and we are here + # this it is definitely not in the dictionary + try: + # calculate the match value + ratio = ratio_calc.ratio() + except TypeError: + break + + # if this is the best ratio so far - save it and the value + if ratio > best_ratio: + best_ratio = ratio + best_key = key + best_match = self._dict_getitem(key) + + if stop_on_first and ratio >= self.cutoff: + break + + return best_ratio >= self.cutoff, best_key, best_match, best_ratio + + def __contains__(self, item: typing.Any): + if self._search(item, True)[0]: + return True + else: + return False + + def __getitem__(self, lookfor: typing.Any): + matched, key, item, ratio = self._search(lookfor) + + if not matched: + raise KeyError( + "'%s'. closest match: '%s' with ratio %.3f" + % (str(lookfor), str(key), ratio) + ) + + return item + + +__HERE = os.path.abspath(os.path.dirname(__file__)) +with open(os.path.join(__HERE, "map_filename.json"), "r", encoding="utf8") as f: + FILENAMES: FuzzyDict = FuzzyDict() + for k, v in json.load(f).items(): + FILENAMES[k] = v + +with open(os.path.join(__HERE, "city_coordinates.json"), "r", encoding="utf8") as f: + COORDINATES: FuzzyDict = FuzzyDict() + for k, v in json.load(f).items(): + COORDINATES[k] = v + +EXTRA = {} + + +def register_url(asset_url: str): + if asset_url: + registry = asset_url + "/registry.json" + try: + contents = urllib.request.urlopen(registry).read() + contents = json.loads(contents) + except Exception as e: + raise e + files = {} + pinyin_names = set() + for name, pinyin in contents["PINYIN_MAP"].items(): + file_name = contents["FILE_MAP"][pinyin] + files[name] = [file_name, "js"] + pinyin_names.add(pinyin) + + for key, file_name in contents["FILE_MAP"].items(): + if key not in pinyin_names: + # English names + files[key] = [file_name, "js"] + + js_folder_name = contents["JS_FOLDER"] + if js_folder_name == "/": + js_file_prefix = f"{asset_url}/" + else: + js_file_prefix = f"{asset_url}/{js_folder_name}/" + EXTRA[js_file_prefix] = files + + +def register_files(asset_files: dict): + if asset_files: + FILENAMES.update(asset_files) + + +def register_coords(coords: dict): + if coords: + COORDINATES.update(coords) diff --git a/resource/datasets/city_coordinates.json b/resource/datasets/city_coordinates.json new file mode 100644 index 0000000..c56b5e3 --- /dev/null +++ b/resource/datasets/city_coordinates.json @@ -0,0 +1,15006 @@ +{ + "阿城": [ + 126.58, + 45.32 + ], + "阿克苏": [ + 80.19, + 41.09 + ], + "阿勒泰": [ + 88.12, + 47.5 + ], + "阿图什": [ + 76.08, + 39.42 + ], + "安达": [ + 125.18, + 46.24 + ], + "安国": [ + 115.2, + 38.24 + ], + "安康": [ + 109.01, + 32.41 + ], + "安陆": [ + 113.41, + 31.15 + ], + "安庆": [ + 117.02, + 30.31 + ], + "安丘": [ + 119.12, + 36.25 + ], + "安顺": [ + 105.55, + 26.14 + ], + "安阳": [ + 114.35, + 36.1 + ], + "鞍山": [ + 122.85, + 41.12 + ], + "巴中": [ + 106.43, + 31.51 + ], + "霸州": [ + 116.24, + 39.06 + ], + "白城": [ + 122.5, + 45.38 + ], + "白山": [ + 126.26, + 41.56 + ], + "白银": [ + 104.12, + 36.33 + ], + "百色": [ + 106.36, + 23.54 + ], + "蚌埠": [ + 117.21, + 32.56 + ], + "包头": [ + 110, + 40.58 + ], + "宝鸡": [ + 107.15, + 34.38 + ], + "保定": [ + 115.48, + 38.85 + ], + "保山": [ + 99.1, + 25.08 + ], + "北海": [ + 109.12, + 21.49 + ], + "北流": [ + 110.21, + 22.42 + ], + "北票": [ + 120.47, + 41.48 + ], + "本溪": [ + 123.73, + 41.3 + ], + "毕节": [ + 105.18, + 27.18 + ], + "滨州": [ + 118.03, + 37.36 + ], + "亳州": [ + 115.47, + 33.52 + ], + "博乐": [ + 82.08, + 44.57 + ], + "沧州": [ + 116.83, + 38.33 + ], + "昌吉": [ + 87.18, + 44.02 + ], + "昌邑": [ + 119.24, + 39.52 + ], + "常德": [ + 111.69, + 29.05 + ], + "常熟": [ + 120.74, + 31.64 + ], + "常州": [ + 119.95, + 31.79 + ], + "巢湖": [ + 117.52, + 31.36 + ], + "朝阳": [ + 120.27, + 41.34 + ], + "潮阳": [ + 116.36, + 23.16 + ], + "潮州": [ + 116.63, + 23.68 + ], + "郴州": [ + 113.02, + 25.46 + ], + "成都": [ + 104.06, + 30.67 + ], + "承德": [ + 117.93, + 40.97 + ], + "澄海": [ + 116.46, + 23.28 + ], + "赤峰": [ + 118.87, + 42.28 + ], + "赤水": [ + 105.42, + 28.34 + ], + "崇州": [ + 103.4, + 30.39 + ], + "滁州": [ + 118.18, + 32.18 + ], + "楚雄": [ + 101.32, + 25.01 + ], + "慈溪": [ + 121.15, + 30.11 + ], + "从化": [ + 113.33, + 23.33 + ], + "达川": [ + 107.29, + 31.14 + ], + "大安": [ + 124.18, + 45.3 + ], + "大理": [ + 100.13, + 25.34 + ], + "大连": [ + 121.62, + 38.92 + ], + "大庆": [ + 125.03, + 46.58 + ], + "大石桥": [ + 122.31, + 40.37 + ], + "大同": [ + 113.3, + 40.12 + ], + "大冶": [ + 114.58, + 30.06 + ], + "丹东": [ + 124.37, + 40.13 + ], + "丹江口": [ + 108.3, + 32.33 + ], + "丹阳": [ + 119.32, + 32 + ], + "儋州": [ + 109.34, + 19.31 + ], + "当阳": [ + 111.47, + 30.5 + ], + "德惠": [ + 125.42, + 44.32 + ], + "德令哈": [ + 97.23, + 37.22 + ], + "德兴": [ + 117.35, + 28.57 + ], + "德阳": [ + 104.37, + 31.13 + ], + "德州": [ + 116.29, + 37.45 + ], + "登封": [ + 113.02, + 34.27 + ], + "邓州": [ + 112.05, + 32.42 + ], + "定州": [ + 115, + 38.3 + ], + "东川": [ + 103.12, + 26.06 + ], + "东港": [ + 124.08, + 39.53 + ], + "东莞": [ + 113.75, + 23.04 + ], + "东胜": [ + 109.59, + 39.48 + ], + "东台": [ + 120.19, + 32.51 + ], + "东阳": [ + 120.14, + 29.16 + ], + "东营": [ + 118.49, + 37.46 + ], + "都江堰": [ + 103.37, + 31.01 + ], + "都匀": [ + 107.31, + 26.15 + ], + "敦化": [ + 128.13, + 43.22 + ], + "敦煌": [ + 94.41, + 40.08 + ], + "峨眉山": [ + 103.29, + 29.36 + ], + "额尔古纳": [ + 120.11, + 50.13 + ], + "鄂尔多斯": [ + 109.781327, + 39.608266 + ], + "鄂州": [ + 114.52, + 30.23 + ], + "恩平": [ + 112.19, + 22.12 + ], + "恩施": [ + 109.29, + 30.16 + ], + "二连浩特": [ + 111.58, + 43.38 + ], + "番禺": [ + 113.22, + 22.57 + ], + "防城港": [ + 108.2, + 21.37 + ], + "肥城": [ + 116.46, + 36.14 + ], + "丰城": [ + 115.48, + 28.12 + ], + "丰南": [ + 118.06, + 39.34 + ], + "丰镇": [ + 113.09, + 40.27 + ], + "凤城": [ + 124.02, + 40.28 + ], + "奉化": [ + 121.24, + 29.39 + ], + "佛山": [ + 113.11, + 23.05 + ], + "涪陵": [ + 107.22, + 29.42 + ], + "福安": [ + 119.39, + 27.06 + ], + "福清": [ + 119.23, + 25.42 + ], + "福州": [ + 119.3, + 26.08 + ], + "抚顺": [ + 123.97, + 41.97 + ], + "阜康": [ + 87.58, + 44.09 + ], + "阜新": [ + 121.39, + 42.01 + ], + "阜阳": [ + 115.48, + 32.54 + ], + "富锦": [ + 132.02, + 47.15 + ], + "富阳": [ + 119.95, + 30.07 + ], + "盖州": [ + 122.21, + 40.24 + ], + "赣州": [ + 114.56, + 28.52 + ], + "高安": [ + 115.22, + 28.25 + ], + "高碑店": [ + 115.51, + 39.2 + ], + "高密": [ + 119.44, + 36.22 + ], + "高明": [ + 112.5, + 22.53 + ], + "高平": [ + 112.55, + 35.48 + ], + "高要": [ + 112.26, + 23.02 + ], + "高邮": [ + 119.27, + 32.47 + ], + "高州": [ + 110.5, + 21.54 + ], + "格尔木": [ + 94.55, + 36.26 + ], + "个旧": [ + 103.09, + 23.21 + ], + "根河": [ + 121.29, + 50.48 + ], + "公主岭": [ + 124.49, + 43.31 + ], + "巩义": [ + 112.58, + 34.46 + ], + "古交": [ + 112.09, + 37.54 + ], + "广汉": [ + 104.15, + 30.58 + ], + "广水": [ + 113.48, + 31.37 + ], + "广元": [ + 105.51, + 32.28 + ], + "广州": [ + 113.23, + 23.16 + ], + "贵池": [ + 117.28, + 30.39 + ], + "贵港": [ + 109.36, + 23.06 + ], + "贵阳": [ + 106.71, + 26.57 + ], + "桂林": [ + 110.28, + 25.29 + ], + "桂平": [ + 110.04, + 23.22 + ], + "哈尔滨": [ + 126.63, + 45.75 + ], + "哈密": [ + 93.28, + 42.5 + ], + "海城": [ + 122.43, + 40.51 + ], + "海口": [ + 110.35, + 20.02 + ], + "海拉尔": [ + 119.39, + 49.12 + ], + "海林": [ + 129.21, + 44.35 + ], + "海伦": [ + 126.57, + 47.28 + ], + "海门": [ + 121.15, + 31.89 + ], + "海宁": [ + 120.42, + 30.32 + ], + "邯郸": [ + 114.47, + 36.6 + ], + "韩城": [ + 110.27, + 35.28 + ], + "汉中": [ + 107.01, + 33.04 + ], + "杭州": [ + 120.19, + 30.26 + ], + "蒿城": [ + 114.5, + 38.02 + ], + "合川": [ + 106.15, + 30.02 + ], + "合肥": [ + 117.27, + 31.86 + ], + "合山": [ + 108.52, + 23.47 + ], + "和龙": [ + 129, + 42.32 + ], + "和田": [ + 79.55, + 37.09 + ], + "河池": [ + 108.03, + 24.42 + ], + "河间": [ + 116.05, + 38.26 + ], + "河津": [ + 110.41, + 35.35 + ], + "河源": [ + 114.68, + 23.73 + ], + "菏泽": [ + 115.480656, + 35.23375 + ], + "鹤壁": [ + 114.11, + 35.54 + ], + "鹤岗": [ + 130.16, + 47.2 + ], + "鹤山": [ + 112.57, + 22.46 + ], + "黑河": [ + 127.29, + 50.14 + ], + "衡水": [ + 115.72, + 37.72 + ], + "衡阳": [ + 112.37, + 26.53 + ], + "洪湖": [ + 113.27, + 29.48 + ], + "洪江": [ + 109.59, + 27.07 + ], + "侯马": [ + 111.21, + 35.37 + ], + "呼和浩特": [ + 111.65, + 40.82 + ], + "湖州": [ + 120.1, + 30.86 + ], + "葫芦岛": [ + 120.836932, + 40.711052 + ], + "花都": [ + 113.12, + 23.23 + ], + "华阴": [ + 110.05, + 34.34 + ], + "华蓥": [ + 106.44, + 30.26 + ], + "化州": [ + 110.37, + 21.39 + ], + "桦甸": [ + 126.44, + 42.58 + ], + "怀化": [ + 109.58, + 27.33 + ], + "淮安": [ + 119.15, + 33.5 + ], + "淮北": [ + 116.47, + 33.57 + ], + "淮南": [ + 116.58, + 32.37 + ], + "淮阴": [ + 119.02, + 33.36 + ], + "黄骅": [ + 117.21, + 38.21 + ], + "黄山": [ + 118.18, + 29.43 + ], + "黄石": [ + 115.06, + 30.12 + ], + "黄州": [ + 114.52, + 30.27 + ], + "珲春": [ + 130.22, + 42.52 + ], + "辉县": [ + 113.47, + 35.27 + ], + "惠阳": [ + 114.28, + 22.48 + ], + "惠州": [ + 114.4, + 23.09 + ], + "霍林郭勒": [ + 119.38, + 45.32 + ], + "霍州": [ + 111.42, + 36.34 + ], + "鸡西": [ + 130.57, + 45.17 + ], + "吉安": [ + 114.58, + 27.07 + ], + "吉首": [ + 109.43, + 28.18 + ], + "即墨": [ + 120.45, + 36.38 + ], + "集安": [ + 126.11, + 41.08 + ], + "集宁": [ + 113.06, + 41.02 + ], + "济南": [ + 117, + 36.65 + ], + "济宁": [ + 116.59, + 35.38 + ], + "济源": [ + 112.35, + 35.04 + ], + "冀州": [ + 115.33, + 37.34 + ], + "佳木斯": [ + 130.22, + 46.47 + ], + "嘉兴": [ + 120.76, + 30.77 + ], + "嘉峪关": [ + 98.289152, + 39.77313 + ], + "简阳": [ + 104.32, + 30.24 + ], + "建德": [ + 119.16, + 29.29 + ], + "建瓯": [ + 118.2, + 27.03 + ], + "建阳": [ + 118.07, + 27.21 + ], + "江都": [ + 119.32, + 32.26 + ], + "江津": [ + 106.16, + 29.18 + ], + "江门": [ + 113.06, + 22.61 + ], + "江山": [ + 118.37, + 28.45 + ], + "江阴": [ + 120.26, + 31.91 + ], + "江油": [ + 104.42, + 31.48 + ], + "姜堰": [ + 120.08, + 32.34 + ], + "胶南": [ + 119.97, + 35.88 + ], + "胶州": [ + 120.03336, + 36.264622 + ], + "焦作": [ + 113.21, + 35.24 + ], + "蛟河": [ + 127.21, + 43.42 + ], + "揭阳": [ + 116.35, + 23.55 + ], + "介休": [ + 111.55, + 37.02 + ], + "界首": [ + 115.21, + 33.15 + ], + "金昌": [ + 102.188043, + 38.520089 + ], + "金华": [ + 119.64, + 29.12 + ], + "金坛": [ + 119.56, + 31.74 + ], + "津市": [ + 111.52, + 29.38 + ], + "锦州": [ + 121.15, + 41.13 + ], + "晋城": [ + 112.51, + 35.3 + ], + "晋江": [ + 118.35, + 24.49 + ], + "晋州": [ + 115.02, + 38.02 + ], + "荆门": [ + 112.12, + 31.02 + ], + "荆沙": [ + 112.16, + 30.18 + ], + "荆州": [ + 112.239741, + 30.335165 + ], + "井冈山": [ + 114.1, + 26.34 + ], + "景德镇": [ + 117.13, + 29.17 + ], + "景洪": [ + 100.48, + 22.01 + ], + "靖江": [ + 120.17, + 32.02 + ], + "九江": [ + 115.97, + 29.71 + ], + "九台": [ + 125.51, + 44.09 + ], + "酒泉": [ + 98.31, + 39.44 + ], + "句容": [ + 119.16, + 31.95 + ], + "喀什": [ + 75.59, + 39.3 + ], + "开封": [ + 114.35, + 34.79 + ], + "开平": [ + 112.4, + 22.22 + ], + "开原": [ + 124.02, + 42.32 + ], + "开远": [ + 103.13, + 23.43 + ], + "凯里": [ + 107.58, + 26.35 + ], + "克拉玛依": [ + 84.77, + 45.59 + ], + "库尔勒": [ + 86.06, + 41.68 + ], + "奎屯": [ + 84.56, + 44.27 + ], + "昆明": [ + 102.73, + 25.04 + ], + "昆山": [ + 120.95, + 31.39 + ], + "廓坊": [ + 116.42, + 39.31 + ], + "拉萨": [ + 91.11, + 29.97 + ], + "莱芜": [ + 117.67, + 36.19 + ], + "莱西": [ + 120.53, + 36.86 + ], + "莱阳": [ + 120.42, + 36.58 + ], + "莱州": [ + 119.942327, + 37.177017 + ], + "兰溪": [ + 119.28, + 29.12 + ], + "兰州": [ + 103.73, + 36.03 + ], + "阆中": [ + 105.58, + 31.36 + ], + "廊坊": [ + 116.7, + 39.53 + ], + "老河口": [ + 111.4, + 32.23 + ], + "乐昌": [ + 113.21, + 25.09 + ], + "乐陵": [ + 117.12, + 37.44 + ], + "乐平": [ + 117.08, + 28.58 + ], + "乐清": [ + 120.58, + 28.08 + ], + "乐山": [ + 103.44, + 29.36 + ], + "雷州": [ + 110.04, + 20.54 + ], + "耒阳": [ + 112.51, + 26.24 + ], + "冷水江": [ + 111.26, + 27.42 + ], + "冷水滩": [ + 111.35, + 26.26 + ], + "醴陵": [ + 113.3, + 27.4 + ], + "丽水": [ + 119.92, + 28.45 + ], + "利川": [ + 108.56, + 30.18 + ], + "溧阳": [ + 119.48, + 31.43 + ], + "连云港": [ + 119.16, + 34.59 + ], + "连州": [ + 112.23, + 24.48 + ], + "涟源": [ + 111.41, + 27.41 + ], + "廉江": [ + 110.17, + 21.37 + ], + "辽阳": [ + 123.12, + 41.16 + ], + "辽源": [ + 125.09, + 42.54 + ], + "聊城": [ + 115.97, + 36.45 + ], + "林州": [ + 113.49, + 36.03 + ], + "临安": [ + 119.72, + 30.23 + ], + "临川": [ + 116.21, + 27.59 + ], + "临汾": [ + 111.5, + 36.08 + ], + "临海": [ + 121.08, + 28.51 + ], + "临河": [ + 107.22, + 40.46 + ], + "临江": [ + 126.53, + 41.49 + ], + "临清": [ + 115.42, + 36.51 + ], + "临夏": [ + 103.12, + 35.37 + ], + "临湘": [ + 113.27, + 29.29 + ], + "临沂": [ + 118.35, + 35.05 + ], + "赁祥": [ + 106.44, + 22.07 + ], + "灵宝": [ + 110.52, + 34.31 + ], + "凌海": [ + 121.21, + 41.1 + ], + "凌源": [ + 119.22, + 41.14 + ], + "浏阳": [ + 113.37, + 28.09 + ], + "柳州": [ + 109.4, + 24.33 + ], + "六安": [ + 116.28, + 31.44 + ], + "六盘水": [ + 104.5, + 26.35 + ], + "龙海": [ + 117.48, + 24.26 + ], + "龙井": [ + 129.26, + 42.46 + ], + "龙口": [ + 120.21, + 37.39 + ], + "龙泉": [ + 119.08, + 28.04 + ], + "龙岩": [ + 117.01, + 25.06 + ], + "娄底": [ + 111.59, + 27.44 + ], + "泸州": [ + 105.39, + 28.91 + ], + "鹿泉": [ + 114.19, + 38.04 + ], + "潞城": [ + 113.14, + 36.21 + ], + "罗定": [ + 111.33, + 22.46 + ], + "洛阳": [ + 112.44, + 34.7 + ], + "漯河": [ + 114.02, + 33.33 + ], + "麻城": [ + 115.01, + 31.1 + ], + "马鞍山": [ + 118.48, + 31.56 + ], + "满洲里": [ + 117.23, + 49.35 + ], + "茂名": [ + 110.88, + 21.68 + ], + "梅河口": [ + 125.4, + 42.32 + ], + "梅州": [ + 116.1, + 24.55 + ], + "汨罗": [ + 113.03, + 28.49 + ], + "密山": [ + 131.5, + 45.32 + ], + "绵阳": [ + 104.73, + 31.48 + ], + "明光": [ + 117.58, + 32.47 + ], + "牡丹江": [ + 129.58, + 44.6 + ], + "南安": [ + 118.23, + 24.57 + ], + "南昌": [ + 115.89, + 28.68 + ], + "南充": [ + 106.110698, + 30.837793 + ], + "南川": [ + 107.05, + 29.1 + ], + "南宫": [ + 115.23, + 37.22 + ], + "南海": [ + 113.09, + 23.01 + ], + "南京": [ + 118.78, + 32.04 + ], + "南宁": [ + 108.33, + 22.84 + ], + "南平": [ + 118.1, + 26.38 + ], + "南通": [ + 121.05, + 32.08 + ], + "南阳": [ + 112.32, + 33 + ], + "讷河": [ + 124.51, + 48.29 + ], + "内江": [ + 105.02, + 29.36 + ], + "宁安": [ + 129.28, + 44.21 + ], + "宁波": [ + 121.56, + 29.86 + ], + "宁德": [ + 119.31, + 26.39 + ], + "攀枝花": [ + 101.718637, + 26.582347 + ], + "盘锦": [ + 122.070714, + 41.119997 + ], + "彭州": [ + 103.57, + 30.59 + ], + "蓬莱": [ + 120.75, + 37.8 + ], + "邳州": [ + 117.59, + 34.19 + ], + "平顶山": [ + 113.29, + 33.75 + ], + "平度": [ + 119.97, + 36.77 + ], + "平湖": [ + 121.01, + 30.42 + ], + "平凉": [ + 106.4, + 35.32 + ], + "萍乡": [ + 113.5, + 27.37 + ], + "泊头": [ + 116.34, + 38.04 + ], + "莆田": [ + 119.01, + 24.26 + ], + "濮阳": [ + 115.01, + 35.44 + ], + "浦圻": [ + 113.51, + 29.42 + ], + "普兰店": [ + 121.58, + 39.23 + ], + "普宁": [ + 116.1, + 23.18 + ], + "七台河": [ + 130.49, + 45.48 + ], + "齐齐哈尔": [ + 123.97, + 47.33 + ], + "启乐": [ + 121.39, + 31.48 + ], + "潜江": [ + 112.53, + 30.26 + ], + "钦州": [ + 108.37, + 21.57 + ], + "秦皇岛": [ + 119.57, + 39.95 + ], + "沁阳": [ + 112.57, + 35.05 + ], + "青岛": [ + 120.33, + 36.07 + ], + "青铜峡": [ + 105.59, + 37.56 + ], + "青州": [ + 118.28, + 36.42 + ], + "清远": [ + 113.01, + 23.7 + ], + "清镇": [ + 106.27, + 26.33 + ], + "邛崃": [ + 103.28, + 30.26 + ], + "琼海": [ + 110.28, + 19.14 + ], + "琼山": [ + 110.21, + 19.59 + ], + "曲阜": [ + 116.58, + 35.36 + ], + "曲靖": [ + 103.79, + 25.51 + ], + "衢州": [ + 118.88, + 28.97 + ], + "泉州": [ + 118.58, + 24.93 + ], + "任丘": [ + 116.07, + 38.42 + ], + "日喀则": [ + 88.51, + 29.16 + ], + "日照": [ + 119.46, + 35.42 + ], + "荣成": [ + 122.41, + 37.16 + ], + "如皋": [ + 120.33, + 32.23 + ], + "汝州": [ + 112.5, + 34.09 + ], + "乳山": [ + 121.52, + 36.89 + ], + "瑞安": [ + 120.38, + 27.48 + ], + "瑞昌": [ + 115.38, + 29.4 + ], + "瑞金": [ + 116.01, + 25.53 + ], + "瑞丽": [ + 97.5, + 24 + ], + "三河": [ + 117.04, + 39.58 + ], + "三门峡": [ + 111.19, + 34.76 + ], + "三明": [ + 117.36, + 26.13 + ], + "三水": [ + 112.52, + 23.1 + ], + "三亚": [ + 109.511909, + 18.252847 + ], + "沙河": [ + 114.3, + 36.51 + ], + "厦门": [ + 118.1, + 24.46 + ], + "汕头": [ + 116.69, + 23.39 + ], + "汕尾": [ + 115.375279, + 22.786211 + ], + "商丘": [ + 115.38, + 34.26 + ], + "商州": [ + 109.57, + 33.52 + ], + "上饶": [ + 117.58, + 25.27 + ], + "上虞": [ + 120.52, + 30.01 + ], + "尚志": [ + 127.55, + 45.14 + ], + "韶关": [ + 113.62, + 24.84 + ], + "韶山": [ + 112.29, + 27.54 + ], + "邵武": [ + 117.29, + 27.2 + ], + "邵阳": [ + 111.28, + 27.14 + ], + "绍兴": [ + 120.58, + 30.01 + ], + "深圳": [ + 114.07, + 22.62 + ], + "深州": [ + 115.32, + 38.01 + ], + "沈阳": [ + 123.38, + 41.8 + ], + "十堰": [ + 110.47, + 32.4 + ], + "石河子": [ + 86, + 44.18 + ], + "石家庄": [ + 114.48, + 38.03 + ], + "石狮": [ + 118.38, + 24.44 + ], + "石首": [ + 112.24, + 29.43 + ], + "石嘴山": [ + 106.39, + 39.04 + ], + "寿光": [ + 118.73, + 36.86 + ], + "舒兰": [ + 126.57, + 44.24 + ], + "双城": [ + 126.15, + 45.22 + ], + "双鸭山": [ + 131.11, + 46.38 + ], + "顺德": [ + 113.15, + 22.5 + ], + "朔州": [ + 112.26, + 39.19 + ], + "思茅": [ + 100.58, + 22.48 + ], + "四会": [ + 112.41, + 23.21 + ], + "四平": [ + 124.22, + 43.1 + ], + "松原": [ + 124.49, + 45.11 + ], + "苏州": [ + 120.62, + 31.32 + ], + "宿迁": [ + 118.3, + 33.96 + ], + "宿州": [ + 116.58, + 33.38 + ], + "绥芬河": [ + 131.11, + 44.25 + ], + "绥化": [ + 126.59, + 46.38 + ], + "随州": [ + 113.22, + 31.42 + ], + "遂宁": [ + 105.33, + 30.31 + ], + "塔城": [ + 82.59, + 46.46 + ], + "台北": [ + 121.3, + 25.03 + ], + "台山": [ + 112.48, + 22.15 + ], + "台州": [ + 121.420757, + 28.656386 + ], + "太仓": [ + 121.1, + 31.45 + ], + "太原": [ + 112.53, + 37.87 + ], + "泰安": [ + 117.13, + 36.18 + ], + "泰兴": [ + 120.01, + 32.1 + ], + "泰州": [ + 119.9, + 32.49 + ], + "唐山": [ + 118.02, + 39.63 + ], + "洮南": [ + 122.47, + 45.2 + ], + "滕州": [ + 117.09, + 35.06 + ], + "天门": [ + 113.1, + 30.39 + ], + "天水": [ + 105.42, + 34.37 + ], + "天长": [ + 118.59, + 32.41 + ], + "铁法": [ + 123.32, + 42.28 + ], + "铁力": [ + 128.01, + 46.59 + ], + "铁岭": [ + 123.51, + 42.18 + ], + "通化": [ + 125.56, + 41.43 + ], + "通辽": [ + 122.16, + 43.37 + ], + "通什": [ + 109.31, + 18.46 + ], + "通州": [ + 121.03, + 32.05 + ], + "同江": [ + 132.3, + 47.39 + ], + "桐乡": [ + 120.32, + 30.38 + ], + "铜川": [ + 109.11, + 35.09 + ], + "铜陵": [ + 117.48, + 30.56 + ], + "铜仁": [ + 109.12, + 27.43 + ], + "图们": [ + 129.51, + 42.57 + ], + "吐鲁番": [ + 89.11, + 42.54 + ], + "瓦房店": [ + 121.979603, + 39.627114 + ], + "畹町": [ + 98.04, + 24.06 + ], + "万县": [ + 108.21, + 30.5 + ], + "万源": [ + 108.03, + 32.03 + ], + "威海": [ + 122.1, + 37.5 + ], + "潍坊": [ + 119.1, + 36.62 + ], + "卫辉": [ + 114.03, + 35.24 + ], + "渭南": [ + 109.5, + 34.52 + ], + "温岭": [ + 121.21, + 28.22 + ], + "温州": [ + 120.65, + 28.01 + ], + "文登": [ + 122.05, + 37.2 + ], + "乌海": [ + 106.48, + 39.4 + ], + "乌兰浩特": [ + 122.03, + 46.03 + ], + "乌鲁木齐": [ + 87.68, + 43.77 + ], + "无锡": [ + 120.29, + 31.59 + ], + "吴川": [ + 110.47, + 21.26 + ], + "吴江": [ + 120.63, + 31.16 + ], + "吴忠": [ + 106.11, + 37.59 + ], + "芜湖": [ + 118.38, + 31.33 + ], + "梧州": [ + 111.2, + 23.29 + ], + "五常": [ + 127.11, + 44.55 + ], + "五大连池": [ + 126.07, + 48.38 + ], + "武安": [ + 114.11, + 36.42 + ], + "武冈": [ + 110.37, + 26.43 + ], + "武汉": [ + 114.31, + 30.52 + ], + "武威": [ + 102.39, + 37.56 + ], + "武穴": [ + 115.33, + 29.51 + ], + "武夷山": [ + 118.02, + 27.46 + ], + "舞钢": [ + 113.3, + 33.17 + ], + "西安": [ + 108.95, + 34.27 + ], + "西昌": [ + 102.16, + 27.54 + ], + "西峰": [ + 107.4, + 35.45 + ], + "西宁": [ + 101.74, + 36.56 + ], + "锡林浩特": [ + 116.03, + 43.57 + ], + "仙桃": [ + 113.27, + 30.22 + ], + "咸宁": [ + 114.17, + 29.53 + ], + "咸阳": [ + 108.72, + 34.36 + ], + "湘潭": [ + 112.91, + 27.87 + ], + "湘乡": [ + 112.31, + 27.44 + ], + "襄樊": [ + 112.08, + 32.02 + ], + "项城": [ + 114.54, + 33.26 + ], + "萧山": [ + 120.16, + 30.09 + ], + "孝感": [ + 113.54, + 30.56 + ], + "孝义": [ + 111.48, + 37.08 + ], + "忻州": [ + 112.43, + 38.24 + ], + "辛集": [ + 115.12, + 37.54 + ], + "新会": [ + 113.01, + 22.32 + ], + "新乐": [ + 114.41, + 38.2 + ], + "新密": [ + 113.22, + 34.31 + ], + "新民": [ + 122.49, + 41.59 + ], + "新泰": [ + 117.45, + 35.54 + ], + "新乡": [ + 113.52, + 35.18 + ], + "新沂": [ + 118.2, + 34.22 + ], + "新余": [ + 114.56, + 27.48 + ], + "新郑": [ + 113.43, + 34.24 + ], + "信阳": [ + 114.04, + 32.07 + ], + "邢台": [ + 114.48, + 37.05 + ], + "荥阳": [ + 113.21, + 34.46 + ], + "兴城": [ + 120.41, + 40.37 + ], + "兴化": [ + 119.5, + 32.56 + ], + "兴宁": [ + 115.43, + 24.09 + ], + "兴平": [ + 108.29, + 34.18 + ], + "兴义": [ + 104.53, + 25.05 + ], + "徐州": [ + 117.2, + 34.26 + ], + "许昌": [ + 113.49, + 34.01 + ], + "宣威": [ + 104.06, + 26.13 + ], + "宣州": [ + 118.44, + 30.57 + ], + "牙克石": [ + 120.4, + 49.17 + ], + "雅安": [ + 102.59, + 29.59 + ], + "烟台": [ + 121.39, + 37.52 + ], + "延安": [ + 109.47, + 36.6 + ], + "延吉": [ + 129.3, + 42.54 + ], + "盐城": [ + 120.13, + 33.38 + ], + "盐在": [ + 120.08, + 33.22 + ], + "兖州": [ + 116.49, + 35.32 + ], + "偃师": [ + 112.47, + 34.43 + ], + "扬中": [ + 119.49, + 32.14 + ], + "扬州": [ + 119.42, + 32.39 + ], + "阳春": [ + 111.48, + 22.1 + ], + "阳江": [ + 111.95, + 21.85 + ], + "阳泉": [ + 113.57, + 37.85 + ], + "伊春": [ + 128.56, + 47.42 + ], + "伊宁": [ + 81.2, + 43.55 + ], + "仪征": [ + 119.1, + 32.16 + ], + "宜宾": [ + 104.56, + 29.77 + ], + "宜昌": [ + 111.3, + 30.7 + ], + "宜城": [ + 112.15, + 31.42 + ], + "宜春": [ + 114.23, + 27.47 + ], + "宜兴": [ + 119.82, + 31.36 + ], + "宜州": [ + 108.4, + 24.28 + ], + "义马": [ + 111.55, + 34.43 + ], + "义乌": [ + 120.06, + 29.32 + ], + "益阳": [ + 112.2, + 28.36 + ], + "银川": [ + 106.27, + 38.47 + ], + "应城": [ + 113.33, + 30.57 + ], + "英德": [ + 113.22, + 24.1 + ], + "鹰潭": [ + 117.03, + 28.14 + ], + "营口": [ + 122.18, + 40.65 + ], + "永安": [ + 117.23, + 25.58 + ], + "永川": [ + 105.53, + 29.23 + ], + "永济": [ + 110.27, + 34.52 + ], + "永康": [ + 120.01, + 29.54 + ], + "永州": [ + 111.37, + 26.13 + ], + "余杭": [ + 120.18, + 30.26 + ], + "余姚": [ + 121.1, + 30.02 + ], + "愉树": [ + 126.32, + 44.49 + ], + "榆次": [ + 112.43, + 37.41 + ], + "榆林": [ + 109.47, + 38.18 + ], + "禹城": [ + 116.39, + 36.56 + ], + "禹州": [ + 113.28, + 34.09 + ], + "玉林": [ + 110.09, + 22.38 + ], + "玉门": [ + 97.35, + 39.49 + ], + "玉溪": [ + 102.52, + 24.35 + ], + "沅江": [ + 112.22, + 28.5 + ], + "原平": [ + 112.42, + 38.43 + ], + "岳阳": [ + 113.09, + 29.37 + ], + "云浮": [ + 112.02, + 22.93 + ], + "运城": [ + 110.59, + 35.02 + ], + "枣阳": [ + 112.44, + 32.07 + ], + "枣庄": [ + 117.57, + 34.86 + ], + "增城": [ + 113.49, + 23.18 + ], + "扎兰屯": [ + 122.47, + 48 + ], + "湛江": [ + 110.359377, + 21.270708 + ], + "张家港": [ + 120.555821, + 31.875428 + ], + "张家界": [ + 110.479191, + 29.117096 + ], + "张家口": [ + 114.87, + 40.82 + ], + "张掖": [ + 100.26, + 38.56 + ], + "章丘": [ + 117.53, + 36.72 + ], + "漳平": [ + 117.24, + 25.17 + ], + "漳州": [ + 117.39, + 24.31 + ], + "樟树": [ + 115.32, + 28.03 + ], + "长春": [ + 125.35, + 43.88 + ], + "长葛": [ + 113.47, + 34.12 + ], + "长乐": [ + 119.31, + 25.58 + ], + "长沙": [ + 113, + 28.21 + ], + "长治": [ + 113.08, + 36.18 + ], + "招远": [ + 120.38, + 37.35 + ], + "昭通": [ + 103.42, + 27.2 + ], + "肇东": [ + 125.58, + 46.04 + ], + "肇庆": [ + 112.44, + 23.05 + ], + "镇江": [ + 119.44, + 32.2 + ], + "郑州": [ + 113.65, + 34.76 + ], + "枝城": [ + 111.27, + 30.23 + ], + "中山": [ + 113.38, + 22.52 + ], + "钟祥": [ + 112.34, + 31.1 + ], + "舟山": [ + 122.207216, + 29.985295 + ], + "周口": [ + 114.38, + 33.37 + ], + "株洲": [ + 113.16, + 27.83 + ], + "珠海": [ + 113.52, + 22.3 + ], + "诸城": [ + 119.24, + 35.59 + ], + "诸暨": [ + 120.23, + 29.71 + ], + "驻马店": [ + 114.01, + 32.58 + ], + "庄河": [ + 122.58, + 39.41 + ], + "涿州": [ + 115.59, + 39.29 + ], + "资兴": [ + 113.13, + 25.58 + ], + "资阳": [ + 104.38, + 30.09 + ], + "淄博": [ + 118.05, + 36.78 + ], + "自贡": [ + 104.778442, + 29.33903 + ], + "邹城": [ + 116.58, + 35.24 + ], + "遵化": [ + 117.58, + 40.11 + ], + "遵义": [ + 106.9, + 27.7 + ], + "晋中": [ + 112.75, + 37.68 + ], + "吕梁": [ + 111.13, + 37.52 + ], + "呼伦贝尔": [ + 119.77, + 49.22 + ], + "巴彦淖尔": [ + 107.42, + 40.75 + ], + "抚州": [ + 116.35, + 28 + ], + "襄阳": [ + 112.2, + 32.08 + ], + "黄冈": [ + 114.87, + 30.45 + ], + "红河": [ + 103.4, + 23.37 + ], + "文山": [ + 104.25, + 23.37 + ], + "商洛": [ + 109.93, + 33.87 + ], + "定西": [ + 104.62, + 35.58 + ], + "陇南": [ + 104.92, + 33.4 + ], + "北京市": [ + 116.4, + 39.9 + ], + "天安门": [ + 116.38, + 39.9 + ], + "东城区": [ + 116.42, + 39.93 + ], + "西城区": [ + 116.37, + 39.92 + ], + "崇文区": [ + 116.43, + 39.88 + ], + "宣武区": [ + 116.35, + 39.87 + ], + "丰台区": [ + 116.28, + 39.85 + ], + "石景山区": [ + 116.22, + 39.9 + ], + "海淀区": [ + 116.3, + 39.95 + ], + "门头沟区": [ + 116.1, + 39.93 + ], + "房山区": [ + 116.13, + 39.75 + ], + "通州区": [ + 116.65, + 39.92 + ], + "顺义区": [ + 116.65, + 40.13 + ], + "昌平区": [ + 116.23, + 40.22 + ], + "大兴区": [ + 116.33, + 39.73 + ], + "怀柔区": [ + 116.63, + 40.32 + ], + "平谷区": [ + 117.12, + 40.13 + ], + "密云区": [ + 116.83, + 40.37 + ], + "延庆区": [ + 115.97, + 40.45 + ], + "天津市": [ + 117.2, + 39.12 + ], + "河西区": [ + 117.22, + 39.12 + ], + "南开区": [ + 117.15, + 39.13 + ], + "河北区": [ + 117.18, + 39.15 + ], + "红桥区": [ + 117.15, + 39.17 + ], + "塘沽区": [ + 117.65, + 39.02 + ], + "汉沽区": [ + 117.8, + 39.25 + ], + "大港区": [ + 117.45, + 38.83 + ], + "东丽区": [ + 117.3, + 39.08 + ], + "西青区": [ + 117, + 39.13 + ], + "津南区": [ + 117.38, + 38.98 + ], + "北辰区": [ + 117.13, + 39.22 + ], + "武清区": [ + 117.03, + 39.38 + ], + "宝坻区": [ + 117.3, + 39.72 + ], + "滨海新区": [ + 117.68, + 39.03 + ], + "宁河县": [ + 117.82, + 39.33 + ], + "静海县": [ + 116.92, + 38.93 + ], + "蓟县": [ + 117.4, + 40.05 + ], + "石家庄市": [ + 114.52, + 38.05 + ], + "井陉矿区": [ + 114.05, + 38.08 + ], + "裕华区": [ + 114.52, + 38.02 + ], + "井陉县": [ + 114.13, + 38.03 + ], + "正定县": [ + 114.57, + 38.15 + ], + "栾城县": [ + 114.65, + 37.88 + ], + "行唐县": [ + 114.55, + 38.43 + ], + "灵寿县": [ + 114.37, + 38.3 + ], + "高邑县": [ + 114.6, + 37.6 + ], + "深泽县": [ + 115.2, + 38.18 + ], + "赞皇县": [ + 114.38, + 37.67 + ], + "无极县": [ + 114.97, + 38.18 + ], + "平山县": [ + 114.2, + 38.25 + ], + "元氏县": [ + 114.52, + 37.75 + ], + "赵县": [ + 114.77, + 37.75 + ], + "辛集市": [ + 115.22, + 37.92 + ], + "藁城市": [ + 114.83, + 38.03 + ], + "晋州市": [ + 115.03, + 38.03 + ], + "新乐市": [ + 114.68, + 38.35 + ], + "鹿泉市": [ + 114.3, + 38.08 + ], + "唐山市": [ + 118.2, + 39.63 + ], + "路南区": [ + 118.17, + 39.63 + ], + "路北区": [ + 118.22, + 39.63 + ], + "古冶区": [ + 118.42, + 39.73 + ], + "开平区": [ + 118.27, + 39.68 + ], + "丰南区": [ + 118.1, + 39.57 + ], + "丰润区": [ + 118.17, + 39.83 + ], + "滦县": [ + 118.7, + 39.75 + ], + "滦南县": [ + 118.68, + 39.5 + ], + "乐亭县": [ + 118.9, + 39.42 + ], + "迁西县": [ + 118.32, + 40.15 + ], + "玉田县": [ + 117.73, + 39.88 + ], + "唐海县": [ + 118.45, + 39.27 + ], + "遵化市": [ + 117.95, + 40.18 + ], + "迁安市": [ + 118.7, + 40.02 + ], + "秦皇岛市": [ + 119.6, + 39.93 + ], + "海港区": [ + 119.6, + 39.93 + ], + "山海关区": [ + 119.77, + 40 + ], + "北戴河区": [ + 119.48, + 39.83 + ], + "青龙满族自治县": [ + 118.95, + 40.4 + ], + "昌黎县": [ + 119.17, + 39.7 + ], + "抚宁县": [ + 119.23, + 39.88 + ], + "卢龙县": [ + 118.87, + 39.88 + ], + "邯郸市": [ + 114.48, + 36.62 + ], + "邯山区": [ + 114.48, + 36.6 + ], + "丛台区": [ + 114.48, + 36.63 + ], + "复兴区": [ + 114.45, + 36.63 + ], + "峰峰矿区": [ + 114.2, + 36.42 + ], + "邯郸县": [ + 114.53, + 36.6 + ], + "临漳县": [ + 114.62, + 36.35 + ], + "成安县": [ + 114.68, + 36.43 + ], + "大名县": [ + 115.15, + 36.28 + ], + "涉县": [ + 113.67, + 36.57 + ], + "磁县": [ + 114.37, + 36.35 + ], + "肥乡县": [ + 114.8, + 36.55 + ], + "永年县": [ + 114.48, + 36.78 + ], + "邱县": [ + 115.17, + 36.82 + ], + "鸡泽县": [ + 114.87, + 36.92 + ], + "广平县": [ + 114.93, + 36.48 + ], + "馆陶县": [ + 115.3, + 36.53 + ], + "魏县": [ + 114.93, + 36.37 + ], + "曲周县": [ + 114.95, + 36.78 + ], + "武安市": [ + 114.2, + 36.7 + ], + "邢台市": [ + 114.48, + 37.07 + ], + "邢台县": [ + 114.5, + 37.08 + ], + "临城县": [ + 114.5, + 37.43 + ], + "内丘县": [ + 114.52, + 37.3 + ], + "柏乡县": [ + 114.68, + 37.5 + ], + "隆尧县": [ + 114.77, + 37.35 + ], + "任县": [ + 114.68, + 37.13 + ], + "南和县": [ + 114.68, + 37 + ], + "宁晋县": [ + 114.92, + 37.62 + ], + "巨鹿县": [ + 115.03, + 37.22 + ], + "新河县": [ + 115.25, + 37.53 + ], + "广宗县": [ + 115.15, + 37.07 + ], + "平乡县": [ + 115.03, + 37.07 + ], + "威县": [ + 115.25, + 36.98 + ], + "清河县": [ + 115.67, + 37.07 + ], + "临西县": [ + 115.5, + 36.85 + ], + "南宫市": [ + 115.38, + 37.35 + ], + "沙河市": [ + 114.5, + 36.85 + ], + "保定市": [ + 115.47, + 38.87 + ], + "北市区": [ + 115.48, + 38.87 + ], + "南市区": [ + 115.5, + 38.85 + ], + "满城县": [ + 115.32, + 38.95 + ], + "清苑县": [ + 115.48, + 38.77 + ], + "涞水县": [ + 115.72, + 39.4 + ], + "阜平县": [ + 114.18, + 38.85 + ], + "徐水县": [ + 115.65, + 39.02 + ], + "定兴县": [ + 115.77, + 39.27 + ], + "唐县": [ + 114.98, + 38.75 + ], + "高阳县": [ + 115.78, + 38.68 + ], + "容城县": [ + 115.87, + 39.05 + ], + "涞源县": [ + 114.68, + 39.35 + ], + "望都县": [ + 115.15, + 38.72 + ], + "安新县": [ + 115.93, + 38.92 + ], + "易县": [ + 115.5, + 39.35 + ], + "曲阳县": [ + 114.7, + 38.62 + ], + "蠡县": [ + 115.57, + 38.48 + ], + "顺平县": [ + 115.13, + 38.83 + ], + "博野县": [ + 115.47, + 38.45 + ], + "雄县": [ + 116.1, + 38.98 + ], + "涿州市": [ + 115.97, + 39.48 + ], + "定州市": [ + 114.97, + 38.52 + ], + "安国市": [ + 115.32, + 38.42 + ], + "高碑店市": [ + 115.85, + 39.33 + ], + "张家口市": [ + 114.88, + 40.82 + ], + "宣化区": [ + 115.05, + 40.6 + ], + "下花园区": [ + 115.27, + 40.48 + ], + "宣化县": [ + 115.02, + 40.55 + ], + "张北县": [ + 114.7, + 41.15 + ], + "康保县": [ + 114.62, + 41.85 + ], + "沽源县": [ + 115.7, + 41.67 + ], + "尚义县": [ + 113.97, + 41.08 + ], + "蔚县": [ + 114.57, + 39.85 + ], + "阳原县": [ + 114.17, + 40.12 + ], + "怀安县": [ + 114.42, + 40.67 + ], + "万全县": [ + 114.72, + 40.75 + ], + "怀来县": [ + 115.52, + 40.4 + ], + "涿鹿县": [ + 115.22, + 40.38 + ], + "赤城县": [ + 115.83, + 40.92 + ], + "崇礼县": [ + 115.27, + 40.97 + ], + "承德市": [ + 117.93, + 40.97 + ], + "双滦区": [ + 117.78, + 40.95 + ], + "鹰手营子矿区": [ + 117.65, + 40.55 + ], + "承德县": [ + 118.17, + 40.77 + ], + "兴隆县": [ + 117.52, + 40.43 + ], + "平泉县": [ + 118.68, + 41 + ], + "滦平县": [ + 117.33, + 40.93 + ], + "隆化县": [ + 117.72, + 41.32 + ], + "丰宁满族自治县": [ + 116.65, + 41.2 + ], + "宽城满族自治县": [ + 118.48, + 40.6 + ], + "围场满族蒙古族自治县": [ + 117.75, + 41.93 + ], + "沧州市": [ + 116.83, + 38.3 + ], + "运河区": [ + 116.85, + 38.32 + ], + "沧县": [ + 116.87, + 38.3 + ], + "青县": [ + 116.82, + 38.58 + ], + "东光县": [ + 116.53, + 37.88 + ], + "海兴县": [ + 117.48, + 38.13 + ], + "盐山县": [ + 117.22, + 38.05 + ], + "肃宁县": [ + 115.83, + 38.43 + ], + "南皮县": [ + 116.7, + 38.03 + ], + "吴桥县": [ + 116.38, + 37.62 + ], + "献县": [ + 116.12, + 38.18 + ], + "孟村回族自治县": [ + 117.1, + 38.07 + ], + "泊头市": [ + 116.57, + 38.07 + ], + "任丘市": [ + 116.1, + 38.72 + ], + "黄骅市": [ + 117.35, + 38.37 + ], + "河间市": [ + 116.08, + 38.43 + ], + "廊坊市": [ + 116.7, + 39.52 + ], + "安次区": [ + 116.68, + 39.52 + ], + "广阳区": [ + 116.72, + 39.53 + ], + "固安县": [ + 116.3, + 39.43 + ], + "永清县": [ + 116.5, + 39.32 + ], + "香河县": [ + 117, + 39.77 + ], + "大城县": [ + 116.63, + 38.7 + ], + "文安县": [ + 116.47, + 38.87 + ], + "大厂回族自治县": [ + 116.98, + 39.88 + ], + "霸州市": [ + 116.4, + 39.1 + ], + "三河市": [ + 117.07, + 39.98 + ], + "衡水市": [ + 115.68, + 37.73 + ], + "桃城区": [ + 115.68, + 37.73 + ], + "枣强县": [ + 115.72, + 37.52 + ], + "武邑县": [ + 115.88, + 37.82 + ], + "武强县": [ + 115.98, + 38.03 + ], + "饶阳县": [ + 115.73, + 38.23 + ], + "安平县": [ + 115.52, + 38.23 + ], + "故城县": [ + 115.97, + 37.35 + ], + "景县": [ + 116.27, + 37.7 + ], + "阜城县": [ + 116.15, + 37.87 + ], + "冀州市": [ + 115.57, + 37.57 + ], + "深州市": [ + 115.55, + 38.02 + ], + "太原市": [ + 112.55, + 37.87 + ], + "小店区": [ + 112.57, + 37.73 + ], + "迎泽区": [ + 112.57, + 37.87 + ], + "杏花岭区": [ + 112.57, + 37.88 + ], + "尖草坪区": [ + 112.48, + 37.93 + ], + "万柏林区": [ + 112.52, + 37.87 + ], + "晋源区": [ + 112.48, + 37.73 + ], + "清徐县": [ + 112.35, + 37.6 + ], + "阳曲县": [ + 112.67, + 38.07 + ], + "娄烦县": [ + 111.78, + 38.07 + ], + "古交市": [ + 112.17, + 37.92 + ], + "大同市": [ + 113.3, + 40.08 + ], + "南郊区": [ + 113.13, + 40 + ], + "新荣区": [ + 113.15, + 40.27 + ], + "阳高县": [ + 113.75, + 40.37 + ], + "天镇县": [ + 114.08, + 40.42 + ], + "广灵县": [ + 114.28, + 39.77 + ], + "灵丘县": [ + 114.23, + 39.43 + ], + "浑源县": [ + 113.68, + 39.7 + ], + "左云县": [ + 112.7, + 40 + ], + "大同县": [ + 113.6, + 40.03 + ], + "阳泉市": [ + 113.57, + 37.85 + ], + "平定县": [ + 113.62, + 37.8 + ], + "盂县": [ + 113.4, + 38.08 + ], + "长治市": [ + 113.12, + 36.2 + ], + "长治县": [ + 113.03, + 36.05 + ], + "襄垣县": [ + 113.05, + 36.53 + ], + "屯留县": [ + 112.88, + 36.32 + ], + "平顺县": [ + 113.43, + 36.2 + ], + "黎城县": [ + 113.38, + 36.5 + ], + "壶关县": [ + 113.2, + 36.12 + ], + "长子县": [ + 112.87, + 36.12 + ], + "武乡县": [ + 112.85, + 36.83 + ], + "沁县": [ + 112.7, + 36.75 + ], + "沁源县": [ + 112.33, + 36.5 + ], + "潞城市": [ + 113.22, + 36.33 + ], + "晋城市": [ + 112.83, + 35.5 + ], + "沁水县": [ + 112.18, + 35.68 + ], + "阳城县": [ + 112.42, + 35.48 + ], + "陵川县": [ + 113.27, + 35.78 + ], + "泽州县": [ + 112.83, + 35.5 + ], + "高平市": [ + 112.92, + 35.8 + ], + "朔州市": [ + 112.43, + 39.33 + ], + "朔城区": [ + 112.43, + 39.33 + ], + "山阴县": [ + 112.82, + 39.52 + ], + "应县": [ + 113.18, + 39.55 + ], + "右玉县": [ + 112.47, + 39.98 + ], + "怀仁县": [ + 113.08, + 39.83 + ], + "晋中市": [ + 112.75, + 37.68 + ], + "榆次区": [ + 112.75, + 37.68 + ], + "榆社县": [ + 112.97, + 37.07 + ], + "左权县": [ + 113.37, + 37.07 + ], + "和顺县": [ + 113.57, + 37.33 + ], + "昔阳县": [ + 113.7, + 37.62 + ], + "寿阳县": [ + 113.18, + 37.88 + ], + "太谷县": [ + 112.55, + 37.42 + ], + "祁县": [ + 112.33, + 37.35 + ], + "平遥县": [ + 112.17, + 37.18 + ], + "灵石县": [ + 111.77, + 36.85 + ], + "介休市": [ + 111.92, + 37.03 + ], + "运城市": [ + 110.98, + 35.02 + ], + "盐湖区": [ + 110.98, + 35.02 + ], + "临猗县": [ + 110.77, + 35.15 + ], + "万荣县": [ + 110.83, + 35.42 + ], + "闻喜县": [ + 111.22, + 35.35 + ], + "稷山县": [ + 110.97, + 35.6 + ], + "新绛县": [ + 111.22, + 35.62 + ], + "绛县": [ + 111.57, + 35.48 + ], + "垣曲县": [ + 111.67, + 35.3 + ], + "夏县": [ + 111.22, + 35.15 + ], + "平陆县": [ + 111.22, + 34.83 + ], + "芮城县": [ + 110.68, + 34.7 + ], + "河津市": [ + 110.7, + 35.6 + ], + "忻州市": [ + 112.73, + 38.42 + ], + "忻府区": [ + 112.73, + 38.42 + ], + "定襄县": [ + 112.95, + 38.48 + ], + "五台县": [ + 113.25, + 38.73 + ], + "代县": [ + 112.95, + 39.07 + ], + "繁峙县": [ + 113.25, + 39.18 + ], + "宁武县": [ + 112.3, + 39 + ], + "静乐县": [ + 111.93, + 38.37 + ], + "神池县": [ + 112.2, + 39.08 + ], + "五寨县": [ + 111.85, + 38.9 + ], + "岢岚县": [ + 111.57, + 38.7 + ], + "河曲县": [ + 111.13, + 39.38 + ], + "偏关县": [ + 111.5, + 39.43 + ], + "原平市": [ + 112.7, + 38.73 + ], + "临汾市": [ + 111.52, + 36.08 + ], + "尧都区": [ + 111.52, + 36.08 + ], + "曲沃县": [ + 111.47, + 35.63 + ], + "翼城县": [ + 111.72, + 35.73 + ], + "襄汾县": [ + 111.43, + 35.88 + ], + "洪洞县": [ + 111.67, + 36.25 + ], + "古县": [ + 111.92, + 36.27 + ], + "安泽县": [ + 112.25, + 36.15 + ], + "浮山县": [ + 111.83, + 35.97 + ], + "吉县": [ + 110.68, + 36.1 + ], + "乡宁县": [ + 110.83, + 35.97 + ], + "大宁县": [ + 110.75, + 36.47 + ], + "隰县": [ + 110.93, + 36.7 + ], + "永和县": [ + 110.63, + 36.77 + ], + "蒲县": [ + 111.08, + 36.42 + ], + "汾西县": [ + 111.57, + 36.65 + ], + "侯马市": [ + 111.35, + 35.62 + ], + "霍州市": [ + 111.72, + 36.57 + ], + "吕梁市": [ + 111.13, + 37.52 + ], + "离石区": [ + 111.13, + 37.52 + ], + "文水县": [ + 112.02, + 37.43 + ], + "交城县": [ + 112.15, + 37.55 + ], + "兴县": [ + 111.12, + 38.47 + ], + "临县": [ + 110.98, + 37.95 + ], + "柳林县": [ + 110.9, + 37.43 + ], + "石楼县": [ + 110.83, + 37 + ], + "岚县": [ + 111.67, + 38.28 + ], + "方山县": [ + 111.23, + 37.88 + ], + "中阳县": [ + 111.18, + 37.33 + ], + "交口县": [ + 111.2, + 36.97 + ], + "孝义市": [ + 111.77, + 37.15 + ], + "汾阳市": [ + 111.78, + 37.27 + ], + "呼和浩特市": [ + 111.73, + 40.83 + ], + "回民区": [ + 111.6, + 40.8 + ], + "玉泉区": [ + 111.67, + 40.75 + ], + "赛罕区": [ + 111.68, + 40.8 + ], + "土默特左旗": [ + 111.13, + 40.72 + ], + "托克托县": [ + 111.18, + 40.27 + ], + "和林格尔县": [ + 111.82, + 40.38 + ], + "清水河县": [ + 111.68, + 39.92 + ], + "武川县": [ + 111.45, + 41.08 + ], + "包头市": [ + 109.83, + 40.65 + ], + "东河区": [ + 110.02, + 40.58 + ], + "昆都仑区": [ + 109.83, + 40.63 + ], + "石拐区": [ + 110.27, + 40.68 + ], + "九原区": [ + 109.97, + 40.6 + ], + "土默特右旗": [ + 110.52, + 40.57 + ], + "固阳县": [ + 110.05, + 41.03 + ], + "达尔罕茂明安联合旗": [ + 110.43, + 41.7 + ], + "乌海市": [ + 106.82, + 39.67 + ], + "海勃湾区": [ + 106.83, + 39.7 + ], + "海南区": [ + 106.88, + 39.43 + ], + "乌达区": [ + 106.7, + 39.5 + ], + "赤峰市": [ + 118.92, + 42.27 + ], + "红山区": [ + 118.97, + 42.28 + ], + "元宝山区": [ + 119.28, + 42.03 + ], + "松山区": [ + 118.92, + 42.28 + ], + "阿鲁科尔沁旗": [ + 120.08, + 43.88 + ], + "巴林左旗": [ + 119.38, + 43.98 + ], + "巴林右旗": [ + 118.67, + 43.52 + ], + "林西县": [ + 118.05, + 43.6 + ], + "克什克腾旗": [ + 117.53, + 43.25 + ], + "翁牛特旗": [ + 119.02, + 42.93 + ], + "喀喇沁旗": [ + 118.7, + 41.93 + ], + "宁城县": [ + 119.33, + 41.6 + ], + "敖汉旗": [ + 119.9, + 42.28 + ], + "通辽市": [ + 122.27, + 43.62 + ], + "科尔沁区": [ + 122.27, + 43.62 + ], + "科尔沁左翼中旗": [ + 123.32, + 44.13 + ], + "科尔沁左翼后旗": [ + 122.35, + 42.95 + ], + "开鲁县": [ + 121.3, + 43.6 + ], + "库伦旗": [ + 121.77, + 42.73 + ], + "奈曼旗": [ + 120.65, + 42.85 + ], + "扎鲁特旗": [ + 120.92, + 44.55 + ], + "霍林郭勒市": [ + 119.65, + 45.53 + ], + "鄂尔多斯市": [ + 109.8, + 39.62 + ], + "东胜区": [ + 110, + 39.82 + ], + "达拉特旗": [ + 110.03, + 40.4 + ], + "准格尔旗": [ + 111.23, + 39.87 + ], + "鄂托克前旗": [ + 107.48, + 38.18 + ], + "鄂托克旗": [ + 107.98, + 39.1 + ], + "杭锦旗": [ + 108.72, + 39.83 + ], + "乌审旗": [ + 108.85, + 38.6 + ], + "伊金霍洛旗": [ + 109.73, + 39.57 + ], + "呼伦贝尔市": [ + 119.77, + 49.22 + ], + "海拉尔区": [ + 119.77, + 49.22 + ], + "阿荣旗": [ + 123.47, + 48.13 + ], + "鄂伦春自治旗": [ + 123.72, + 50.58 + ], + "鄂温克族自治旗": [ + 119.75, + 49.13 + ], + "陈巴尔虎旗": [ + 119.43, + 49.32 + ], + "新巴尔虎左旗": [ + 118.27, + 48.22 + ], + "新巴尔虎右旗": [ + 116.82, + 48.67 + ], + "满洲里市": [ + 117.45, + 49.58 + ], + "牙克石市": [ + 120.73, + 49.28 + ], + "扎兰屯市": [ + 122.75, + 47.98 + ], + "额尔古纳市": [ + 120.18, + 50.23 + ], + "根河市": [ + 121.52, + 50.78 + ], + "巴彦淖尔市": [ + 107.42, + 40.75 + ], + "临河区": [ + 107.4, + 40.75 + ], + "五原县": [ + 108.27, + 41.1 + ], + "磴口县": [ + 107.02, + 40.33 + ], + "乌拉特前旗": [ + 108.65, + 40.72 + ], + "乌拉特中旗": [ + 108.52, + 41.57 + ], + "乌拉特后旗": [ + 107.07, + 41.1 + ], + "杭锦后旗": [ + 107.15, + 40.88 + ], + "乌兰察布市": [ + 113.12, + 40.98 + ], + "集宁区": [ + 113.1, + 41.03 + ], + "卓资县": [ + 112.57, + 40.9 + ], + "化德县": [ + 114, + 41.9 + ], + "商都县": [ + 113.53, + 41.55 + ], + "兴和县": [ + 113.88, + 40.88 + ], + "凉城县": [ + 112.48, + 40.53 + ], + "察哈尔右翼前旗": [ + 113.22, + 40.78 + ], + "察哈尔右翼中旗": [ + 112.63, + 41.27 + ], + "察哈尔右翼后旗": [ + 113.18, + 41.45 + ], + "四子王旗": [ + 111.7, + 41.52 + ], + "丰镇市": [ + 113.15, + 40.43 + ], + "兴安盟": [ + 122.05, + 46.08 + ], + "乌兰浩特市": [ + 122.05, + 46.08 + ], + "阿尔山市": [ + 119.93, + 47.18 + ], + "科尔沁右翼前旗": [ + 121.92, + 46.07 + ], + "科尔沁右翼中旗": [ + 121.47, + 45.05 + ], + "扎赉特旗": [ + 122.9, + 46.73 + ], + "突泉县": [ + 121.57, + 45.38 + ], + "锡林郭勒盟": [ + 116.07, + 43.95 + ], + "二连浩特市": [ + 111.98, + 43.65 + ], + "锡林浩特市": [ + 116.07, + 43.93 + ], + "阿巴嘎旗": [ + 114.97, + 44.02 + ], + "苏尼特左旗": [ + 113.63, + 43.85 + ], + "苏尼特右旗": [ + 112.65, + 42.75 + ], + "东乌珠穆沁旗": [ + 116.97, + 45.52 + ], + "西乌珠穆沁旗": [ + 117.6, + 44.58 + ], + "太仆寺旗": [ + 115.28, + 41.9 + ], + "镶黄旗": [ + 113.83, + 42.23 + ], + "正镶白旗": [ + 115, + 42.3 + ], + "正蓝旗": [ + 116, + 42.25 + ], + "多伦县": [ + 116.47, + 42.18 + ], + "阿拉善盟": [ + 105.67, + 38.83 + ], + "阿拉善左旗": [ + 105.67, + 38.83 + ], + "阿拉善右旗": [ + 101.68, + 39.2 + ], + "额济纳旗": [ + 101.07, + 41.97 + ], + "沈阳市": [ + 123.43, + 41.8 + ], + "和平区": [ + 123.4, + 41.78 + ], + "沈河区": [ + 123.45, + 41.8 + ], + "大东区": [ + 123.47, + 41.8 + ], + "皇姑区": [ + 123.42, + 41.82 + ], + "铁西区": [ + 123.35, + 41.8 + ], + "苏家屯区": [ + 123.33, + 41.67 + ], + "东陵区": [ + 123.47, + 41.77 + ], + "新城子区": [ + 123.52, + 42.05 + ], + "于洪区": [ + 123.3, + 41.78 + ], + "辽中县": [ + 122.72, + 41.52 + ], + "康平县": [ + 123.35, + 42.75 + ], + "法库县": [ + 123.4, + 42.5 + ], + "新民市": [ + 122.82, + 42 + ], + "大连市": [ + 121.62, + 38.92 + ], + "中山区": [ + 121.63, + 38.92 + ], + "西岗区": [ + 121.6, + 38.92 + ], + "沙河口区": [ + 121.58, + 38.9 + ], + "甘井子区": [ + 121.57, + 38.95 + ], + "旅顺口区": [ + 121.27, + 38.82 + ], + "金州区": [ + 121.7, + 39.1 + ], + "长海县": [ + 122.58, + 39.27 + ], + "瓦房店市": [ + 122, + 39.62 + ], + "普兰店市": [ + 121.95, + 39.4 + ], + "庄河市": [ + 122.98, + 39.7 + ], + "鞍山市": [ + 122.98, + 41.1 + ], + "立山区": [ + 123, + 41.15 + ], + "千山区": [ + 122.97, + 41.07 + ], + "台安县": [ + 122.42, + 41.38 + ], + "岫岩满族自治县": [ + 123.28, + 40.28 + ], + "海城市": [ + 122.7, + 40.88 + ], + "抚顺市": [ + 123.98, + 41.88 + ], + "新抚区": [ + 123.88, + 41.87 + ], + "东洲区": [ + 124.02, + 41.85 + ], + "望花区": [ + 123.78, + 41.85 + ], + "顺城区": [ + 123.93, + 41.88 + ], + "抚顺县": [ + 123.9, + 41.88 + ], + "新宾满族自治县": [ + 125.03, + 41.73 + ], + "清原满族自治县": [ + 124.92, + 42.1 + ], + "本溪市": [ + 123.77, + 41.3 + ], + "平山区": [ + 123.77, + 41.3 + ], + "溪湖区": [ + 123.77, + 41.33 + ], + "明山区": [ + 123.82, + 41.3 + ], + "南芬区": [ + 123.73, + 41.1 + ], + "本溪满族自治县": [ + 124.12, + 41.3 + ], + "桓仁满族自治县": [ + 125.35, + 41.27 + ], + "丹东市": [ + 124.38, + 40.13 + ], + "元宝区": [ + 124.38, + 40.13 + ], + "振兴区": [ + 124.35, + 40.08 + ], + "振安区": [ + 124.42, + 40.17 + ], + "宽甸满族自治县": [ + 124.78, + 40.73 + ], + "东港市": [ + 124.15, + 39.87 + ], + "凤城市": [ + 124.07, + 40.45 + ], + "锦州市": [ + 121.13, + 41.1 + ], + "古塔区": [ + 121.12, + 41.13 + ], + "凌河区": [ + 121.15, + 41.12 + ], + "太和区": [ + 121.1, + 41.1 + ], + "黑山县": [ + 122.12, + 41.7 + ], + "义县": [ + 121.23, + 41.53 + ], + "凌海市": [ + 121.35, + 41.17 + ], + "营口市": [ + 122.23, + 40.67 + ], + "站前区": [ + 122.27, + 40.68 + ], + "西市区": [ + 122.22, + 40.67 + ], + "鲅鱼圈区": [ + 122.12, + 40.27 + ], + "老边区": [ + 122.37, + 40.67 + ], + "盖州市": [ + 122.35, + 40.4 + ], + "大石桥市": [ + 122.5, + 40.65 + ], + "阜新市": [ + 121.67, + 42.02 + ], + "海州区": [ + 121.65, + 42.02 + ], + "太平区": [ + 121.67, + 42.02 + ], + "清河门区": [ + 121.42, + 41.75 + ], + "细河区": [ + 121.68, + 42.03 + ], + "阜新蒙古族自治县": [ + 121.75, + 42.07 + ], + "彰武县": [ + 122.53, + 42.38 + ], + "辽阳市": [ + 123.17, + 41.27 + ], + "白塔区": [ + 123.17, + 41.27 + ], + "文圣区": [ + 123.18, + 41.27 + ], + "宏伟区": [ + 123.2, + 41.2 + ], + "弓长岭区": [ + 123.45, + 41.13 + ], + "太子河区": [ + 123.18, + 41.25 + ], + "辽阳县": [ + 123.07, + 41.22 + ], + "灯塔市": [ + 123.33, + 41.42 + ], + "盘锦市": [ + 122.07, + 41.12 + ], + "双台子区": [ + 122.05, + 41.2 + ], + "兴隆台区": [ + 122.07, + 41.12 + ], + "大洼县": [ + 122.07, + 40.98 + ], + "盘山县": [ + 122.02, + 41.25 + ], + "铁岭市": [ + 123.83, + 42.28 + ], + "银州区": [ + 123.85, + 42.28 + ], + "铁岭县": [ + 123.83, + 42.3 + ], + "西丰县": [ + 124.72, + 42.73 + ], + "昌图县": [ + 124.1, + 42.78 + ], + "调兵山市": [ + 123.55, + 42.47 + ], + "开原市": [ + 124.03, + 42.55 + ], + "朝阳市": [ + 120.45, + 41.57 + ], + "双塔区": [ + 120.45, + 41.57 + ], + "龙城区": [ + 120.43, + 41.6 + ], + "朝阳县": [ + 120.47, + 41.58 + ], + "建平县": [ + 119.63, + 41.4 + ], + "北票市": [ + 120.77, + 41.8 + ], + "凌源市": [ + 119.4, + 41.25 + ], + "葫芦岛市": [ + 120.83, + 40.72 + ], + "连山区": [ + 120.87, + 40.77 + ], + "龙港区": [ + 120.93, + 40.72 + ], + "南票区": [ + 120.75, + 41.1 + ], + "绥中县": [ + 120.33, + 40.32 + ], + "建昌县": [ + 119.8, + 40.82 + ], + "兴城市": [ + 120.72, + 40.62 + ], + "长春市": [ + 125.32, + 43.9 + ], + "南关区": [ + 125.33, + 43.87 + ], + "宽城区": [ + 125.32, + 43.92 + ], + "朝阳区": [ + 125.28, + 43.83 + ], + "二道区": [ + 125.37, + 43.87 + ], + "绿园区": [ + 125.25, + 43.88 + ], + "双阳区": [ + 125.67, + 43.52 + ], + "农安县": [ + 125.18, + 44.43 + ], + "九台市": [ + 125.83, + 44.15 + ], + "榆树市": [ + 126.55, + 44.82 + ], + "德惠市": [ + 125.7, + 44.53 + ], + "吉林市": [ + 126.55, + 43.83 + ], + "昌邑区": [ + 126.57, + 43.88 + ], + "龙潭区": [ + 126.57, + 43.92 + ], + "船营区": [ + 126.53, + 43.83 + ], + "丰满区": [ + 126.57, + 43.82 + ], + "永吉县": [ + 126.5, + 43.67 + ], + "蛟河市": [ + 127.33, + 43.72 + ], + "桦甸市": [ + 126.73, + 42.97 + ], + "舒兰市": [ + 126.95, + 44.42 + ], + "磐石市": [ + 126.05, + 42.95 + ], + "四平市": [ + 124.35, + 43.17 + ], + "铁东区": [ + 124.38, + 43.17 + ], + "梨树县": [ + 124.33, + 43.32 + ], + "伊通满族自治县": [ + 125.3, + 43.35 + ], + "公主岭市": [ + 124.82, + 43.5 + ], + "双辽市": [ + 123.5, + 43.52 + ], + "辽源市": [ + 125.13, + 42.88 + ], + "龙山区": [ + 125.12, + 42.9 + ], + "西安区": [ + 125.15, + 42.92 + ], + "东丰县": [ + 125.53, + 42.68 + ], + "东辽县": [ + 125, + 42.92 + ], + "通化市": [ + 125.93, + 41.73 + ], + "东昌区": [ + 125.95, + 41.73 + ], + "二道江区": [ + 126.03, + 41.77 + ], + "通化县": [ + 125.75, + 41.68 + ], + "辉南县": [ + 126.03, + 42.68 + ], + "柳河县": [ + 125.73, + 42.28 + ], + "梅河口市": [ + 125.68, + 42.53 + ], + "集安市": [ + 126.18, + 41.12 + ], + "白山市": [ + 126.42, + 41.93 + ], + "八道江区": [ + 126.4, + 41.93 + ], + "抚松县": [ + 127.28, + 42.33 + ], + "靖宇县": [ + 126.8, + 42.4 + ], + "长白朝鲜族自治县": [ + 128.2, + 41.42 + ], + "临江市": [ + 126.9, + 41.8 + ], + "松原市": [ + 124.82, + 45.13 + ], + "宁江区": [ + 124.8, + 45.17 + ], + "长岭县": [ + 123.98, + 44.28 + ], + "乾安县": [ + 124.02, + 45.02 + ], + "扶余县": [ + 126.02, + 44.98 + ], + "白城市": [ + 122.83, + 45.62 + ], + "洮北区": [ + 122.85, + 45.62 + ], + "镇赉县": [ + 123.2, + 45.85 + ], + "通榆县": [ + 123.08, + 44.82 + ], + "洮南市": [ + 122.78, + 45.33 + ], + "大安市": [ + 124.28, + 45.5 + ], + "延边朝鲜族自治州": [ + 129.5, + 42.88 + ], + "延吉市": [ + 129.5, + 42.88 + ], + "图们市": [ + 129.83, + 42.97 + ], + "敦化市": [ + 128.23, + 43.37 + ], + "珲春市": [ + 130.37, + 42.87 + ], + "龙井市": [ + 129.42, + 42.77 + ], + "和龙市": [ + 129, + 42.53 + ], + "汪清县": [ + 129.75, + 43.32 + ], + "安图县": [ + 128.9, + 43.12 + ], + "哈尔滨市": [ + 126.53, + 45.8 + ], + "道里区": [ + 126.62, + 45.77 + ], + "南岗区": [ + 126.68, + 45.77 + ], + "道外区": [ + 126.65, + 45.78 + ], + "香坊区": [ + 126.68, + 45.72 + ], + "平房区": [ + 126.62, + 45.62 + ], + "松北区": [ + 126.55, + 45.8 + ], + "呼兰区": [ + 126.58, + 45.9 + ], + "依兰县": [ + 129.55, + 46.32 + ], + "方正县": [ + 128.83, + 45.83 + ], + "宾县": [ + 127.48, + 45.75 + ], + "巴彦县": [ + 127.4, + 46.08 + ], + "木兰县": [ + 128.03, + 45.95 + ], + "通河县": [ + 128.75, + 45.97 + ], + "延寿县": [ + 128.33, + 45.45 + ], + "双城市": [ + 126.32, + 45.37 + ], + "尚志市": [ + 127.95, + 45.22 + ], + "五常市": [ + 127.15, + 44.92 + ], + "齐齐哈尔市": [ + 123.95, + 47.33 + ], + "龙沙区": [ + 123.95, + 47.32 + ], + "建华区": [ + 123.95, + 47.35 + ], + "铁锋区": [ + 123.98, + 47.35 + ], + "昂昂溪区": [ + 123.8, + 47.15 + ], + "富拉尔基区": [ + 123.62, + 47.2 + ], + "龙江县": [ + 123.18, + 47.33 + ], + "依安县": [ + 125.3, + 47.88 + ], + "泰来县": [ + 123.42, + 46.4 + ], + "甘南县": [ + 123.5, + 47.92 + ], + "富裕县": [ + 124.47, + 47.82 + ], + "克山县": [ + 125.87, + 48.03 + ], + "克东县": [ + 126.25, + 48.03 + ], + "拜泉县": [ + 126.08, + 47.6 + ], + "讷河市": [ + 124.87, + 48.48 + ], + "鸡西市": [ + 130.97, + 45.3 + ], + "鸡冠区": [ + 130.97, + 45.3 + ], + "恒山区": [ + 130.93, + 45.2 + ], + "滴道区": [ + 130.78, + 45.37 + ], + "梨树区": [ + 130.68, + 45.08 + ], + "城子河区": [ + 131, + 45.33 + ], + "麻山区": [ + 130.52, + 45.2 + ], + "鸡东县": [ + 131.13, + 45.25 + ], + "虎林市": [ + 132.98, + 45.77 + ], + "密山市": [ + 131.87, + 45.55 + ], + "鹤岗市": [ + 130.27, + 47.33 + ], + "向阳区": [ + 130.28, + 47.33 + ], + "工农区": [ + 130.25, + 47.32 + ], + "兴安区": [ + 130.22, + 47.27 + ], + "东山区": [ + 130.32, + 47.33 + ], + "兴山区": [ + 130.3, + 47.37 + ], + "萝北县": [ + 130.83, + 47.58 + ], + "绥滨县": [ + 131.85, + 47.28 + ], + "双鸭山市": [ + 131.15, + 46.63 + ], + "尖山区": [ + 131.17, + 46.63 + ], + "岭东区": [ + 131.13, + 46.57 + ], + "四方台区": [ + 131.33, + 46.58 + ], + "集贤县": [ + 131.13, + 46.72 + ], + "友谊县": [ + 131.8, + 46.78 + ], + "宝清县": [ + 132.2, + 46.32 + ], + "饶河县": [ + 134.02, + 46.8 + ], + "大庆市": [ + 125.03, + 46.58 + ], + "萨尔图区": [ + 125.02, + 46.6 + ], + "龙凤区": [ + 125.1, + 46.53 + ], + "让胡路区": [ + 124.85, + 46.65 + ], + "红岗区": [ + 124.88, + 46.4 + ], + "大同区": [ + 124.82, + 46.03 + ], + "肇州县": [ + 125.27, + 45.7 + ], + "肇源县": [ + 125.08, + 45.52 + ], + "林甸县": [ + 124.87, + 47.18 + ], + "杜尔伯特蒙古族自治县": [ + 124.45, + 46.87 + ], + "伊春市": [ + 128.9, + 47.73 + ], + "南岔区": [ + 129.28, + 47.13 + ], + "友好区": [ + 128.82, + 47.85 + ], + "西林区": [ + 129.28, + 47.48 + ], + "翠峦区": [ + 128.65, + 47.72 + ], + "新青区": [ + 129.53, + 48.28 + ], + "美溪区": [ + 129.13, + 47.63 + ], + "金山屯区": [ + 129.43, + 47.42 + ], + "五营区": [ + 129.25, + 48.12 + ], + "乌马河区": [ + 128.78, + 47.72 + ], + "汤旺河区": [ + 129.57, + 48.45 + ], + "带岭区": [ + 129.02, + 47.02 + ], + "乌伊岭区": [ + 129.42, + 48.6 + ], + "红星区": [ + 129.38, + 48.23 + ], + "上甘岭区": [ + 129.02, + 47.97 + ], + "嘉荫县": [ + 130.38, + 48.88 + ], + "铁力市": [ + 128.02, + 46.98 + ], + "佳木斯市": [ + 130.37, + 46.82 + ], + "前进区": [ + 130.37, + 46.82 + ], + "东风区": [ + 130.4, + 46.82 + ], + "桦南县": [ + 130.57, + 46.23 + ], + "桦川县": [ + 130.72, + 47.02 + ], + "汤原县": [ + 129.9, + 46.73 + ], + "抚远县": [ + 134.28, + 48.37 + ], + "同江市": [ + 132.52, + 47.65 + ], + "富锦市": [ + 132.03, + 47.25 + ], + "七台河市": [ + 130.95, + 45.78 + ], + "新兴区": [ + 130.83, + 45.8 + ], + "桃山区": [ + 130.97, + 45.77 + ], + "茄子河区": [ + 131.07, + 45.77 + ], + "勃利县": [ + 130.57, + 45.75 + ], + "牡丹江市": [ + 129.6, + 44.58 + ], + "东安区": [ + 129.62, + 44.58 + ], + "阳明区": [ + 129.63, + 44.6 + ], + "爱民区": [ + 129.58, + 44.58 + ], + "东宁县": [ + 131.12, + 44.07 + ], + "林口县": [ + 130.27, + 45.3 + ], + "绥芬河市": [ + 131.15, + 44.42 + ], + "海林市": [ + 129.38, + 44.57 + ], + "宁安市": [ + 129.47, + 44.35 + ], + "穆棱市": [ + 130.52, + 44.92 + ], + "黑河市": [ + 127.48, + 50.25 + ], + "爱辉区": [ + 127.48, + 50.25 + ], + "逊克县": [ + 128.47, + 49.58 + ], + "孙吴县": [ + 127.32, + 49.42 + ], + "北安市": [ + 126.52, + 48.23 + ], + "五大连池市": [ + 126.2, + 48.52 + ], + "绥化市": [ + 126.98, + 46.63 + ], + "北林区": [ + 126.98, + 46.63 + ], + "望奎县": [ + 126.48, + 46.83 + ], + "兰西县": [ + 126.28, + 46.27 + ], + "青冈县": [ + 126.1, + 46.68 + ], + "庆安县": [ + 127.52, + 46.88 + ], + "明水县": [ + 125.9, + 47.18 + ], + "绥棱县": [ + 127.1, + 47.25 + ], + "安达市": [ + 125.33, + 46.4 + ], + "肇东市": [ + 125.98, + 46.07 + ], + "海伦市": [ + 126.97, + 47.47 + ], + "大兴安岭地区": [ + 124.12, + 50.42 + ], + "呼玛县": [ + 126.65, + 51.73 + ], + "塔河县": [ + 124.7, + 52.32 + ], + "漠河县": [ + 122.53, + 52.97 + ], + "上海市": [ + 121.47, + 31.23 + ], + "黄浦区": [ + 121.48, + 31.23 + ], + "卢湾区": [ + 121.47, + 31.22 + ], + "徐汇区": [ + 121.43, + 31.18 + ], + "长宁区": [ + 121.42, + 31.22 + ], + "静安区": [ + 121.45, + 31.23 + ], + "闸北区": [ + 121.45, + 31.25 + ], + "虹口区": [ + 121.5, + 31.27 + ], + "杨浦区": [ + 121.52, + 31.27 + ], + "闵行区": [ + 121.38, + 31.12 + ], + "宝山区": [ + 121.48, + 31.4 + ], + "嘉定区": [ + 121.27, + 31.38 + ], + "浦东新区": [ + 121.53, + 31.22 + ], + "金山区": [ + 121.33, + 30.75 + ], + "松江区": [ + 121.22, + 31.03 + ], + "青浦区": [ + 121.12, + 31.15 + ], + "南汇区": [ + 121.75, + 31.05 + ], + "奉贤区": [ + 121.47, + 30.92 + ], + "崇明县": [ + 121.4, + 31.62 + ], + "南京市": [ + 118.78, + 32.07 + ], + "玄武区": [ + 118.8, + 32.05 + ], + "白下区": [ + 118.78, + 32.03 + ], + "秦淮区": [ + 118.8, + 32.02 + ], + "建邺区": [ + 118.75, + 32.03 + ], + "下关区": [ + 118.73, + 32.08 + ], + "浦口区": [ + 118.62, + 32.05 + ], + "栖霞区": [ + 118.88, + 32.12 + ], + "雨花台区": [ + 118.77, + 32 + ], + "江宁区": [ + 118.85, + 31.95 + ], + "六合区": [ + 118.83, + 32.35 + ], + "溧水县": [ + 119.02, + 31.65 + ], + "高淳县": [ + 118.88, + 31.33 + ], + "无锡市": [ + 120.3, + 31.57 + ], + "崇安区": [ + 120.3, + 31.58 + ], + "南长区": [ + 120.3, + 31.57 + ], + "北塘区": [ + 120.28, + 31.58 + ], + "锡山区": [ + 120.35, + 31.6 + ], + "惠山区": [ + 120.28, + 31.68 + ], + "滨湖区": [ + 120.27, + 31.57 + ], + "江阴市": [ + 120.27, + 31.9 + ], + "宜兴市": [ + 119.82, + 31.35 + ], + "徐州市": [ + 117.18, + 34.27 + ], + "云龙区": [ + 117.22, + 34.25 + ], + "九里区": [ + 117.13, + 34.3 + ], + "贾汪区": [ + 117.45, + 34.45 + ], + "泉山区": [ + 117.18, + 34.25 + ], + "丰县": [ + 116.6, + 34.7 + ], + "沛县": [ + 116.93, + 34.73 + ], + "铜山县": [ + 117.17, + 34.18 + ], + "睢宁县": [ + 117.95, + 33.9 + ], + "新沂市": [ + 118.35, + 34.38 + ], + "邳州市": [ + 117.95, + 34.32 + ], + "常州市": [ + 119.95, + 31.78 + ], + "天宁区": [ + 119.93, + 31.75 + ], + "钟楼区": [ + 119.93, + 31.78 + ], + "戚墅堰区": [ + 120.05, + 31.73 + ], + "新北区": [ + 119.97, + 31.83 + ], + "武进区": [ + 119.93, + 31.72 + ], + "溧阳市": [ + 119.48, + 31.42 + ], + "金坛市": [ + 119.57, + 31.75 + ], + "苏州市": [ + 120.58, + 31.3 + ], + "沧浪区": [ + 120.63, + 31.3 + ], + "平江区": [ + 120.63, + 31.32 + ], + "金阊区": [ + 120.6, + 31.32 + ], + "虎丘区": [ + 120.57, + 31.3 + ], + "吴中区": [ + 120.63, + 31.27 + ], + "相城区": [ + 120.63, + 31.37 + ], + "常熟市": [ + 120.75, + 31.65 + ], + "张家港市": [ + 120.55, + 31.87 + ], + "昆山市": [ + 120.98, + 31.38 + ], + "吴江市": [ + 120.63, + 31.17 + ], + "太仓市": [ + 121.1, + 31.45 + ], + "南通市": [ + 120.88, + 31.98 + ], + "崇川区": [ + 120.85, + 32 + ], + "港闸区": [ + 120.8, + 32.03 + ], + "海安县": [ + 120.45, + 32.55 + ], + "如东县": [ + 121.18, + 32.32 + ], + "启东市": [ + 121.65, + 31.82 + ], + "如皋市": [ + 120.57, + 32.4 + ], + "通州市": [ + 121.07, + 32.08 + ], + "海门市": [ + 121.17, + 31.9 + ], + "连云港市": [ + 119.22, + 34.6 + ], + "连云区": [ + 119.37, + 34.75 + ], + "新浦区": [ + 119.17, + 34.6 + ], + "赣榆县": [ + 119.12, + 34.83 + ], + "东海县": [ + 118.77, + 34.53 + ], + "灌云县": [ + 119.25, + 34.3 + ], + "灌南县": [ + 119.35, + 34.08 + ], + "淮安市": [ + 119.02, + 33.62 + ], + "清河区": [ + 119.02, + 33.6 + ], + "楚州区": [ + 119.13, + 33.5 + ], + "淮阴区": [ + 119.03, + 33.63 + ], + "清浦区": [ + 119.03, + 33.58 + ], + "涟水县": [ + 119.27, + 33.78 + ], + "洪泽县": [ + 118.83, + 33.3 + ], + "盱眙县": [ + 118.48, + 33 + ], + "金湖县": [ + 119.02, + 33.02 + ], + "盐城市": [ + 120.15, + 33.35 + ], + "亭湖区": [ + 120.13, + 33.4 + ], + "盐都区": [ + 120.15, + 33.33 + ], + "响水县": [ + 119.57, + 34.2 + ], + "滨海县": [ + 119.83, + 33.98 + ], + "阜宁县": [ + 119.8, + 33.78 + ], + "射阳县": [ + 120.25, + 33.78 + ], + "建湖县": [ + 119.8, + 33.47 + ], + "东台市": [ + 120.3, + 32.85 + ], + "大丰市": [ + 120.47, + 33.2 + ], + "扬州市": [ + 119.4, + 32.4 + ], + "广陵区": [ + 119.43, + 32.38 + ], + "邗江区": [ + 119.4, + 32.38 + ], + "维扬区": [ + 119.4, + 32.42 + ], + "宝应县": [ + 119.3, + 33.23 + ], + "仪征市": [ + 119.18, + 32.27 + ], + "高邮市": [ + 119.43, + 32.78 + ], + "江都市": [ + 119.55, + 32.43 + ], + "镇江市": [ + 119.45, + 32.2 + ], + "京口区": [ + 119.47, + 32.2 + ], + "润州区": [ + 119.4, + 32.2 + ], + "丹徒区": [ + 119.45, + 32.13 + ], + "丹阳市": [ + 119.57, + 32 + ], + "扬中市": [ + 119.82, + 32.23 + ], + "句容市": [ + 119.17, + 31.95 + ], + "泰州市": [ + 119.92, + 32.45 + ], + "兴化市": [ + 119.85, + 32.92 + ], + "靖江市": [ + 120.27, + 32.02 + ], + "泰兴市": [ + 120.02, + 32.17 + ], + "姜堰市": [ + 120.15, + 32.52 + ], + "宿迁市": [ + 118.28, + 33.97 + ], + "宿城区": [ + 118.25, + 33.97 + ], + "宿豫区": [ + 118.32, + 33.95 + ], + "沭阳县": [ + 118.77, + 34.13 + ], + "泗阳县": [ + 118.68, + 33.72 + ], + "泗洪县": [ + 118.22, + 33.47 + ], + "杭州市": [ + 120.15, + 30.28 + ], + "上城区": [ + 120.17, + 30.25 + ], + "下城区": [ + 120.17, + 30.28 + ], + "江干区": [ + 120.2, + 30.27 + ], + "拱墅区": [ + 120.13, + 30.32 + ], + "滨江区": [ + 120.2, + 30.2 + ], + "萧山区": [ + 120.27, + 30.17 + ], + "余杭区": [ + 120.3, + 30.42 + ], + "桐庐县": [ + 119.67, + 29.8 + ], + "淳安县": [ + 119.03, + 29.6 + ], + "建德市": [ + 119.28, + 29.48 + ], + "富阳市": [ + 119.95, + 30.05 + ], + "临安市": [ + 119.72, + 30.23 + ], + "宁波市": [ + 121.55, + 29.88 + ], + "海曙区": [ + 121.55, + 29.87 + ], + "江东区": [ + 121.57, + 29.87 + ], + "北仑区": [ + 121.85, + 29.93 + ], + "镇海区": [ + 121.72, + 29.95 + ], + "鄞州区": [ + 121.53, + 29.83 + ], + "象山县": [ + 121.87, + 29.48 + ], + "宁海县": [ + 121.43, + 29.28 + ], + "余姚市": [ + 121.15, + 30.03 + ], + "慈溪市": [ + 121.23, + 30.17 + ], + "奉化市": [ + 121.4, + 29.65 + ], + "温州市": [ + 120.7, + 28 + ], + "鹿城区": [ + 120.65, + 28.02 + ], + "龙湾区": [ + 120.82, + 27.93 + ], + "洞头县": [ + 121.15, + 27.83 + ], + "永嘉县": [ + 120.68, + 28.15 + ], + "平阳县": [ + 120.57, + 27.67 + ], + "苍南县": [ + 120.4, + 27.5 + ], + "文成县": [ + 120.08, + 27.78 + ], + "泰顺县": [ + 119.72, + 27.57 + ], + "瑞安市": [ + 120.63, + 27.78 + ], + "乐清市": [ + 120.95, + 28.13 + ], + "嘉兴市": [ + 120.75, + 30.75 + ], + "秀洲区": [ + 120.7, + 30.77 + ], + "嘉善县": [ + 120.92, + 30.85 + ], + "海盐县": [ + 120.95, + 30.53 + ], + "海宁市": [ + 120.68, + 30.53 + ], + "平湖市": [ + 121.02, + 30.7 + ], + "桐乡市": [ + 120.57, + 30.63 + ], + "湖州市": [ + 120.08, + 30.9 + ], + "吴兴区": [ + 120.12, + 30.87 + ], + "南浔区": [ + 120.43, + 30.88 + ], + "德清县": [ + 119.97, + 30.53 + ], + "长兴县": [ + 119.9, + 31.02 + ], + "安吉县": [ + 119.68, + 30.63 + ], + "绍兴市": [ + 120.57, + 30 + ], + "越城区": [ + 120.57, + 30 + ], + "绍兴县": [ + 120.47, + 30.08 + ], + "新昌县": [ + 120.9, + 29.5 + ], + "诸暨市": [ + 120.23, + 29.72 + ], + "上虞市": [ + 120.87, + 30.03 + ], + "嵊州市": [ + 120.82, + 29.58 + ], + "金华市": [ + 119.65, + 29.08 + ], + "婺城区": [ + 119.65, + 29.08 + ], + "金东区": [ + 119.7, + 29.08 + ], + "武义县": [ + 119.82, + 28.9 + ], + "浦江县": [ + 119.88, + 29.45 + ], + "磐安县": [ + 120.43, + 29.05 + ], + "兰溪市": [ + 119.45, + 29.22 + ], + "义乌市": [ + 120.07, + 29.3 + ], + "东阳市": [ + 120.23, + 29.28 + ], + "永康市": [ + 120.03, + 28.9 + ], + "衢州市": [ + 118.87, + 28.93 + ], + "柯城区": [ + 118.87, + 28.93 + ], + "衢江区": [ + 118.93, + 28.98 + ], + "常山县": [ + 118.52, + 28.9 + ], + "开化县": [ + 118.42, + 29.13 + ], + "龙游县": [ + 119.17, + 29.03 + ], + "江山市": [ + 118.62, + 28.75 + ], + "舟山市": [ + 122.2, + 30 + ], + "定海区": [ + 122.1, + 30.02 + ], + "普陀区": [ + 122.3, + 29.95 + ], + "岱山县": [ + 122.2, + 30.25 + ], + "嵊泗县": [ + 122.45, + 30.73 + ], + "台州市": [ + 121.43, + 28.68 + ], + "椒江区": [ + 121.43, + 28.68 + ], + "黄岩区": [ + 121.27, + 28.65 + ], + "路桥区": [ + 121.38, + 28.58 + ], + "玉环县": [ + 121.23, + 28.13 + ], + "三门县": [ + 121.38, + 29.12 + ], + "天台县": [ + 121.03, + 29.13 + ], + "仙居县": [ + 120.73, + 28.87 + ], + "温岭市": [ + 121.37, + 28.37 + ], + "临海市": [ + 121.12, + 28.85 + ], + "丽水市": [ + 119.92, + 28.45 + ], + "莲都区": [ + 119.92, + 28.45 + ], + "青田县": [ + 120.28, + 28.15 + ], + "缙云县": [ + 120.07, + 28.65 + ], + "遂昌县": [ + 119.27, + 28.6 + ], + "松阳县": [ + 119.48, + 28.45 + ], + "云和县": [ + 119.57, + 28.12 + ], + "庆元县": [ + 119.05, + 27.62 + ], + "景宁畲族自治县": [ + 119.63, + 27.98 + ], + "龙泉市": [ + 119.13, + 28.08 + ], + "合肥市": [ + 117.25, + 31.83 + ], + "瑶海区": [ + 117.3, + 31.87 + ], + "庐阳区": [ + 117.25, + 31.88 + ], + "蜀山区": [ + 117.27, + 31.85 + ], + "包河区": [ + 117.3, + 31.8 + ], + "长丰县": [ + 117.17, + 32.48 + ], + "肥东县": [ + 117.47, + 31.88 + ], + "肥西县": [ + 117.17, + 31.72 + ], + "芜湖市": [ + 118.38, + 31.33 + ], + "镜湖区": [ + 118.37, + 31.35 + ], + "鸠江区": [ + 118.38, + 31.37 + ], + "芜湖县": [ + 118.57, + 31.15 + ], + "繁昌县": [ + 118.2, + 31.08 + ], + "南陵县": [ + 118.33, + 30.92 + ], + "蚌埠市": [ + 117.38, + 32.92 + ], + "龙子湖区": [ + 117.38, + 32.95 + ], + "蚌山区": [ + 117.35, + 32.95 + ], + "禹会区": [ + 117.33, + 32.93 + ], + "淮上区": [ + 117.35, + 32.97 + ], + "怀远县": [ + 117.18, + 32.97 + ], + "五河县": [ + 117.88, + 33.15 + ], + "固镇县": [ + 117.32, + 33.32 + ], + "淮南市": [ + 117, + 32.63 + ], + "大通区": [ + 117.05, + 32.63 + ], + "田家庵区": [ + 117, + 32.67 + ], + "谢家集区": [ + 116.85, + 32.6 + ], + "八公山区": [ + 116.83, + 32.63 + ], + "潘集区": [ + 116.82, + 32.78 + ], + "凤台县": [ + 116.72, + 32.7 + ], + "马鞍山市": [ + 118.5, + 31.7 + ], + "金家庄区": [ + 118.48, + 31.73 + ], + "花山区": [ + 118.5, + 31.72 + ], + "雨山区": [ + 118.48, + 31.68 + ], + "当涂县": [ + 118.48, + 31.55 + ], + "淮北市": [ + 116.8, + 33.95 + ], + "杜集区": [ + 116.82, + 34 + ], + "相山区": [ + 116.8, + 33.95 + ], + "烈山区": [ + 116.8, + 33.9 + ], + "濉溪县": [ + 116.77, + 33.92 + ], + "铜陵市": [ + 117.82, + 30.93 + ], + "铜官山区": [ + 117.82, + 30.93 + ], + "狮子山区": [ + 117.85, + 30.95 + ], + "铜陵县": [ + 117.78, + 30.95 + ], + "安庆市": [ + 117.05, + 30.53 + ], + "迎江区": [ + 117.05, + 30.5 + ], + "大观区": [ + 117.03, + 30.52 + ], + "怀宁县": [ + 116.83, + 30.72 + ], + "枞阳县": [ + 117.2, + 30.7 + ], + "潜山县": [ + 116.57, + 30.63 + ], + "太湖县": [ + 116.27, + 30.43 + ], + "宿松县": [ + 116.12, + 30.15 + ], + "望江县": [ + 116.68, + 30.13 + ], + "岳西县": [ + 116.35, + 30.85 + ], + "桐城市": [ + 116.95, + 31.05 + ], + "黄山市": [ + 118.33, + 29.72 + ], + "屯溪区": [ + 118.33, + 29.72 + ], + "黄山区": [ + 118.13, + 30.3 + ], + "徽州区": [ + 118.33, + 29.82 + ], + "歙县": [ + 118.43, + 29.87 + ], + "休宁县": [ + 118.18, + 29.78 + ], + "黟县": [ + 117.93, + 29.93 + ], + "祁门县": [ + 117.72, + 29.87 + ], + "滁州市": [ + 118.32, + 32.3 + ], + "琅琊区": [ + 118.3, + 32.3 + ], + "南谯区": [ + 118.3, + 32.32 + ], + "来安县": [ + 118.43, + 32.45 + ], + "全椒县": [ + 118.27, + 32.1 + ], + "定远县": [ + 117.67, + 32.53 + ], + "凤阳县": [ + 117.57, + 32.87 + ], + "天长市": [ + 119, + 32.7 + ], + "明光市": [ + 117.98, + 32.78 + ], + "阜阳市": [ + 115.82, + 32.9 + ], + "颍州区": [ + 115.8, + 32.88 + ], + "颍东区": [ + 115.85, + 32.92 + ], + "颍泉区": [ + 115.8, + 32.93 + ], + "临泉县": [ + 115.25, + 33.07 + ], + "太和县": [ + 115.62, + 33.17 + ], + "阜南县": [ + 115.58, + 32.63 + ], + "颍上县": [ + 116.27, + 32.63 + ], + "宿州市": [ + 116.98, + 33.63 + ], + "埇桥区": [ + 116.97, + 33.63 + ], + "砀山县": [ + 116.35, + 34.42 + ], + "萧县": [ + 116.93, + 34.18 + ], + "灵璧县": [ + 117.55, + 33.55 + ], + "泗县": [ + 117.88, + 33.48 + ], + "巢湖市": [ + 117.87, + 31.6 + ], + "居巢区": [ + 117.85, + 31.6 + ], + "庐江县": [ + 117.28, + 31.25 + ], + "无为县": [ + 117.92, + 31.3 + ], + "含山县": [ + 118.1, + 31.72 + ], + "和县": [ + 118.37, + 31.72 + ], + "六安市": [ + 116.5, + 31.77 + ], + "金安区": [ + 116.5, + 31.77 + ], + "裕安区": [ + 116.48, + 31.77 + ], + "寿县": [ + 116.78, + 32.58 + ], + "霍邱县": [ + 116.27, + 32.33 + ], + "舒城县": [ + 116.93, + 31.47 + ], + "金寨县": [ + 115.92, + 31.72 + ], + "霍山县": [ + 116.33, + 31.4 + ], + "亳州市": [ + 115.78, + 33.85 + ], + "谯城区": [ + 115.77, + 33.88 + ], + "涡阳县": [ + 116.22, + 33.52 + ], + "蒙城县": [ + 116.57, + 33.27 + ], + "利辛县": [ + 116.2, + 33.15 + ], + "池州市": [ + 117.48, + 30.67 + ], + "贵池区": [ + 117.48, + 30.65 + ], + "东至县": [ + 117.02, + 30.1 + ], + "石台县": [ + 117.48, + 30.22 + ], + "青阳县": [ + 117.85, + 30.65 + ], + "宣城市": [ + 118.75, + 30.95 + ], + "宣州区": [ + 118.75, + 30.95 + ], + "郎溪县": [ + 119.17, + 31.13 + ], + "广德县": [ + 119.42, + 30.9 + ], + "泾县": [ + 118.4, + 30.7 + ], + "绩溪县": [ + 118.6, + 30.07 + ], + "旌德县": [ + 118.53, + 30.28 + ], + "宁国市": [ + 118.98, + 30.63 + ], + "福州市": [ + 119.3, + 26.08 + ], + "鼓楼区": [ + 119.3, + 26.08 + ], + "台江区": [ + 119.3, + 26.07 + ], + "仓山区": [ + 119.32, + 26.05 + ], + "马尾区": [ + 119.45, + 26 + ], + "晋安区": [ + 119.32, + 26.08 + ], + "闽侯县": [ + 119.13, + 26.15 + ], + "连江县": [ + 119.53, + 26.2 + ], + "罗源县": [ + 119.55, + 26.48 + ], + "闽清县": [ + 118.85, + 26.22 + ], + "永泰县": [ + 118.93, + 25.87 + ], + "平潭县": [ + 119.78, + 25.52 + ], + "福清市": [ + 119.38, + 25.72 + ], + "长乐市": [ + 119.52, + 25.97 + ], + "厦门市": [ + 118.08, + 24.48 + ], + "思明区": [ + 118.08, + 24.45 + ], + "海沧区": [ + 117.98, + 24.47 + ], + "湖里区": [ + 118.08, + 24.52 + ], + "集美区": [ + 118.1, + 24.57 + ], + "同安区": [ + 118.15, + 24.73 + ], + "翔安区": [ + 118.23, + 24.62 + ], + "莆田市": [ + 119, + 25.43 + ], + "城厢区": [ + 119, + 25.43 + ], + "涵江区": [ + 119.1, + 25.45 + ], + "荔城区": [ + 119.02, + 25.43 + ], + "秀屿区": [ + 119.08, + 25.32 + ], + "仙游县": [ + 118.68, + 25.37 + ], + "三明市": [ + 117.62, + 26.27 + ], + "梅列区": [ + 117.63, + 26.27 + ], + "三元区": [ + 117.6, + 26.23 + ], + "明溪县": [ + 117.2, + 26.37 + ], + "清流县": [ + 116.82, + 26.18 + ], + "宁化县": [ + 116.65, + 26.27 + ], + "大田县": [ + 117.85, + 25.7 + ], + "尤溪县": [ + 118.18, + 26.17 + ], + "沙县": [ + 117.78, + 26.4 + ], + "将乐县": [ + 117.47, + 26.73 + ], + "泰宁县": [ + 117.17, + 26.9 + ], + "建宁县": [ + 116.83, + 26.83 + ], + "永安市": [ + 117.37, + 25.98 + ], + "泉州市": [ + 118.67, + 24.88 + ], + "鲤城区": [ + 118.6, + 24.92 + ], + "丰泽区": [ + 118.6, + 24.92 + ], + "洛江区": [ + 118.67, + 24.95 + ], + "泉港区": [ + 118.88, + 25.12 + ], + "惠安县": [ + 118.8, + 25.03 + ], + "安溪县": [ + 118.18, + 25.07 + ], + "永春县": [ + 118.3, + 25.32 + ], + "德化县": [ + 118.23, + 25.5 + ], + "金门县": [ + 118.32, + 24.43 + ], + "石狮市": [ + 118.65, + 24.73 + ], + "晋江市": [ + 118.58, + 24.82 + ], + "南安市": [ + 118.38, + 24.97 + ], + "漳州市": [ + 117.65, + 24.52 + ], + "芗城区": [ + 117.65, + 24.52 + ], + "龙文区": [ + 117.72, + 24.52 + ], + "云霄县": [ + 117.33, + 23.95 + ], + "漳浦县": [ + 117.62, + 24.13 + ], + "诏安县": [ + 117.18, + 23.72 + ], + "长泰县": [ + 117.75, + 24.62 + ], + "东山县": [ + 117.43, + 23.7 + ], + "南靖县": [ + 117.37, + 24.52 + ], + "平和县": [ + 117.3, + 24.37 + ], + "华安县": [ + 117.53, + 25.02 + ], + "龙海市": [ + 117.82, + 24.45 + ], + "南平市": [ + 118.17, + 26.65 + ], + "延平区": [ + 118.17, + 26.65 + ], + "顺昌县": [ + 117.8, + 26.8 + ], + "浦城县": [ + 118.53, + 27.92 + ], + "光泽县": [ + 117.33, + 27.55 + ], + "松溪县": [ + 118.78, + 27.53 + ], + "政和县": [ + 118.85, + 27.37 + ], + "邵武市": [ + 117.48, + 27.37 + ], + "武夷山市": [ + 118.03, + 27.77 + ], + "建瓯市": [ + 118.32, + 27.03 + ], + "建阳市": [ + 118.12, + 27.33 + ], + "龙岩市": [ + 117.03, + 25.1 + ], + "新罗区": [ + 117.03, + 25.1 + ], + "长汀县": [ + 116.35, + 25.83 + ], + "永定县": [ + 116.73, + 24.72 + ], + "上杭县": [ + 116.42, + 25.05 + ], + "武平县": [ + 116.1, + 25.1 + ], + "连城县": [ + 116.75, + 25.72 + ], + "漳平市": [ + 117.42, + 25.3 + ], + "宁德市": [ + 119.52, + 26.67 + ], + "蕉城区": [ + 119.52, + 26.67 + ], + "霞浦县": [ + 120, + 26.88 + ], + "古田县": [ + 118.75, + 26.58 + ], + "屏南县": [ + 118.98, + 26.92 + ], + "寿宁县": [ + 119.5, + 27.47 + ], + "周宁县": [ + 119.33, + 27.12 + ], + "柘荣县": [ + 119.9, + 27.23 + ], + "福安市": [ + 119.65, + 27.08 + ], + "福鼎市": [ + 120.22, + 27.33 + ], + "南昌市": [ + 115.85, + 28.68 + ], + "东湖区": [ + 115.9, + 28.68 + ], + "西湖区": [ + 115.87, + 28.67 + ], + "青云谱区": [ + 115.92, + 28.63 + ], + "湾里区": [ + 115.73, + 28.72 + ], + "青山湖区": [ + 115.95, + 28.68 + ], + "南昌县": [ + 115.93, + 28.55 + ], + "新建县": [ + 115.82, + 28.7 + ], + "安义县": [ + 115.55, + 28.85 + ], + "进贤县": [ + 116.27, + 28.37 + ], + "景德镇市": [ + 117.17, + 29.27 + ], + "昌江区": [ + 117.17, + 29.27 + ], + "珠山区": [ + 117.2, + 29.3 + ], + "浮梁县": [ + 117.25, + 29.37 + ], + "乐平市": [ + 117.12, + 28.97 + ], + "萍乡市": [ + 113.85, + 27.63 + ], + "安源区": [ + 113.87, + 27.65 + ], + "湘东区": [ + 113.73, + 27.65 + ], + "莲花县": [ + 113.95, + 27.13 + ], + "上栗县": [ + 113.8, + 27.88 + ], + "芦溪县": [ + 114.03, + 27.63 + ], + "九江市": [ + 116, + 29.7 + ], + "庐山区": [ + 115.98, + 29.68 + ], + "浔阳区": [ + 115.98, + 29.73 + ], + "九江县": [ + 115.88, + 29.62 + ], + "武宁县": [ + 115.1, + 29.27 + ], + "修水县": [ + 114.57, + 29.03 + ], + "永修县": [ + 115.8, + 29.03 + ], + "德安县": [ + 115.77, + 29.33 + ], + "星子县": [ + 116.03, + 29.45 + ], + "都昌县": [ + 116.18, + 29.27 + ], + "湖口县": [ + 116.22, + 29.73 + ], + "彭泽县": [ + 116.55, + 29.9 + ], + "瑞昌市": [ + 115.67, + 29.68 + ], + "新余市": [ + 114.92, + 27.82 + ], + "渝水区": [ + 114.93, + 27.8 + ], + "分宜县": [ + 114.67, + 27.82 + ], + "鹰潭市": [ + 117.07, + 28.27 + ], + "月湖区": [ + 117.05, + 28.23 + ], + "余江县": [ + 116.82, + 28.2 + ], + "贵溪市": [ + 117.22, + 28.28 + ], + "赣州市": [ + 114.93, + 25.83 + ], + "章贡区": [ + 114.93, + 25.87 + ], + "赣县": [ + 115, + 25.87 + ], + "信丰县": [ + 114.93, + 25.38 + ], + "大余县": [ + 114.35, + 25.4 + ], + "上犹县": [ + 114.53, + 25.8 + ], + "崇义县": [ + 114.3, + 25.7 + ], + "安远县": [ + 115.38, + 25.13 + ], + "龙南县": [ + 114.78, + 24.92 + ], + "定南县": [ + 115.03, + 24.78 + ], + "全南县": [ + 114.52, + 24.75 + ], + "宁都县": [ + 116.02, + 26.48 + ], + "于都县": [ + 115.42, + 25.95 + ], + "兴国县": [ + 115.35, + 26.33 + ], + "会昌县": [ + 115.78, + 25.6 + ], + "寻乌县": [ + 115.65, + 24.95 + ], + "石城县": [ + 116.33, + 26.33 + ], + "瑞金市": [ + 116.03, + 25.88 + ], + "南康市": [ + 114.75, + 25.65 + ], + "吉安市": [ + 114.98, + 27.12 + ], + "吉州区": [ + 114.98, + 27.12 + ], + "青原区": [ + 115, + 27.1 + ], + "吉安县": [ + 114.9, + 27.05 + ], + "吉水县": [ + 115.13, + 27.22 + ], + "峡江县": [ + 115.33, + 27.62 + ], + "新干县": [ + 115.4, + 27.77 + ], + "永丰县": [ + 115.43, + 27.32 + ], + "泰和县": [ + 114.88, + 26.8 + ], + "遂川县": [ + 114.52, + 26.33 + ], + "万安县": [ + 114.78, + 26.47 + ], + "安福县": [ + 114.62, + 27.38 + ], + "永新县": [ + 114.23, + 26.95 + ], + "井冈山市": [ + 114.27, + 26.72 + ], + "宜春市": [ + 114.38, + 27.8 + ], + "袁州区": [ + 114.38, + 27.8 + ], + "奉新县": [ + 115.38, + 28.7 + ], + "万载县": [ + 114.43, + 28.12 + ], + "上高县": [ + 114.92, + 28.23 + ], + "宜丰县": [ + 114.78, + 28.38 + ], + "靖安县": [ + 115.35, + 28.87 + ], + "铜鼓县": [ + 114.37, + 28.53 + ], + "丰城市": [ + 115.78, + 28.2 + ], + "樟树市": [ + 115.53, + 28.07 + ], + "高安市": [ + 115.37, + 28.42 + ], + "抚州市": [ + 116.35, + 28 + ], + "临川区": [ + 116.35, + 27.98 + ], + "南城县": [ + 116.63, + 27.55 + ], + "黎川县": [ + 116.92, + 27.3 + ], + "南丰县": [ + 116.53, + 27.22 + ], + "崇仁县": [ + 116.05, + 27.77 + ], + "乐安县": [ + 115.83, + 27.43 + ], + "宜黄县": [ + 116.22, + 27.55 + ], + "金溪县": [ + 116.77, + 27.92 + ], + "资溪县": [ + 117.07, + 27.7 + ], + "东乡县": [ + 116.62, + 28.23 + ], + "广昌县": [ + 116.32, + 26.83 + ], + "上饶市": [ + 117.97, + 28.45 + ], + "信州区": [ + 117.95, + 28.43 + ], + "上饶县": [ + 117.92, + 28.43 + ], + "广丰县": [ + 118.18, + 28.43 + ], + "玉山县": [ + 118.25, + 28.68 + ], + "铅山县": [ + 117.7, + 28.32 + ], + "横峰县": [ + 117.6, + 28.42 + ], + "弋阳县": [ + 117.43, + 28.4 + ], + "余干县": [ + 116.68, + 28.7 + ], + "鄱阳县": [ + 116.67, + 29 + ], + "万年县": [ + 117.07, + 28.7 + ], + "婺源县": [ + 117.85, + 29.25 + ], + "德兴市": [ + 117.57, + 28.95 + ], + "济南市": [ + 116.98, + 36.67 + ], + "历下区": [ + 117.08, + 36.67 + ], + "市中区": [ + 117.57, + 34.87 + ], + "槐荫区": [ + 116.93, + 36.65 + ], + "天桥区": [ + 116.98, + 36.68 + ], + "历城区": [ + 117.07, + 36.68 + ], + "长清区": [ + 116.73, + 36.55 + ], + "平阴县": [ + 116.45, + 36.28 + ], + "济阳县": [ + 117.22, + 36.98 + ], + "商河县": [ + 117.15, + 37.32 + ], + "章丘市": [ + 117.53, + 36.72 + ], + "青岛市": [ + 120.38, + 36.07 + ], + "市南区": [ + 120.38, + 36.07 + ], + "市北区": [ + 120.38, + 36.08 + ], + "四方区": [ + 120.35, + 36.1 + ], + "黄岛区": [ + 120.18, + 35.97 + ], + "崂山区": [ + 120.47, + 36.1 + ], + "李沧区": [ + 120.43, + 36.15 + ], + "城阳区": [ + 120.37, + 36.3 + ], + "胶州市": [ + 120.03, + 36.27 + ], + "即墨市": [ + 120.45, + 36.38 + ], + "平度市": [ + 119.95, + 36.78 + ], + "胶南市": [ + 120.03, + 35.87 + ], + "莱西市": [ + 120.5, + 36.87 + ], + "淄博市": [ + 118.05, + 36.82 + ], + "张店区": [ + 118.03, + 36.82 + ], + "博山区": [ + 117.85, + 36.5 + ], + "临淄区": [ + 118.3, + 36.82 + ], + "周村区": [ + 117.87, + 36.8 + ], + "桓台县": [ + 118.08, + 36.97 + ], + "高青县": [ + 117.82, + 37.17 + ], + "沂源县": [ + 118.17, + 36.18 + ], + "枣庄市": [ + 117.32, + 34.82 + ], + "薛城区": [ + 117.25, + 34.8 + ], + "峄城区": [ + 117.58, + 34.77 + ], + "台儿庄区": [ + 117.73, + 34.57 + ], + "山亭区": [ + 117.45, + 35.08 + ], + "滕州市": [ + 117.15, + 35.08 + ], + "东营市": [ + 118.67, + 37.43 + ], + "东营区": [ + 118.5, + 37.47 + ], + "河口区": [ + 118.53, + 37.88 + ], + "垦利县": [ + 118.55, + 37.58 + ], + "利津县": [ + 118.25, + 37.48 + ], + "广饶县": [ + 118.4, + 37.07 + ], + "烟台市": [ + 121.43, + 37.45 + ], + "芝罘区": [ + 121.38, + 37.53 + ], + "福山区": [ + 121.25, + 37.5 + ], + "牟平区": [ + 121.6, + 37.38 + ], + "莱山区": [ + 121.43, + 37.5 + ], + "长岛县": [ + 120.73, + 37.92 + ], + "龙口市": [ + 120.52, + 37.65 + ], + "莱阳市": [ + 120.7, + 36.98 + ], + "莱州市": [ + 119.93, + 37.18 + ], + "蓬莱市": [ + 120.75, + 37.82 + ], + "招远市": [ + 120.4, + 37.37 + ], + "栖霞市": [ + 120.83, + 37.3 + ], + "海阳市": [ + 121.15, + 36.78 + ], + "潍坊市": [ + 119.15, + 36.7 + ], + "潍城区": [ + 119.1, + 36.72 + ], + "寒亭区": [ + 119.22, + 36.77 + ], + "坊子区": [ + 119.17, + 36.67 + ], + "奎文区": [ + 119.12, + 36.72 + ], + "临朐县": [ + 118.53, + 36.52 + ], + "昌乐县": [ + 118.82, + 36.7 + ], + "青州市": [ + 118.47, + 36.68 + ], + "诸城市": [ + 119.4, + 36 + ], + "寿光市": [ + 118.73, + 36.88 + ], + "安丘市": [ + 119.2, + 36.43 + ], + "高密市": [ + 119.75, + 36.38 + ], + "昌邑市": [ + 119.4, + 36.87 + ], + "济宁市": [ + 116.58, + 35.42 + ], + "任城区": [ + 116.58, + 35.42 + ], + "微山县": [ + 117.13, + 34.82 + ], + "鱼台县": [ + 116.65, + 35 + ], + "金乡县": [ + 116.3, + 35.07 + ], + "嘉祥县": [ + 116.33, + 35.42 + ], + "汶上县": [ + 116.48, + 35.73 + ], + "泗水县": [ + 117.27, + 35.67 + ], + "梁山县": [ + 116.08, + 35.8 + ], + "曲阜市": [ + 116.98, + 35.58 + ], + "兖州市": [ + 116.83, + 35.55 + ], + "邹城市": [ + 116.97, + 35.4 + ], + "泰安市": [ + 117.08, + 36.2 + ], + "泰山区": [ + 117.13, + 36.18 + ], + "岱岳区": [ + 117, + 36.18 + ], + "宁阳县": [ + 116.8, + 35.77 + ], + "东平县": [ + 116.47, + 35.93 + ], + "新泰市": [ + 117.77, + 35.92 + ], + "肥城市": [ + 116.77, + 36.18 + ], + "威海市": [ + 122.12, + 37.52 + ], + "环翠区": [ + 122.12, + 37.5 + ], + "文登市": [ + 122.05, + 37.2 + ], + "荣成市": [ + 122.42, + 37.17 + ], + "乳山市": [ + 121.53, + 36.92 + ], + "日照市": [ + 119.52, + 35.42 + ], + "东港区": [ + 119.45, + 35.42 + ], + "岚山区": [ + 119.33, + 35.1 + ], + "五莲县": [ + 119.2, + 35.75 + ], + "莒县": [ + 118.83, + 35.58 + ], + "莱芜市": [ + 117.67, + 36.22 + ], + "莱城区": [ + 117.65, + 36.2 + ], + "钢城区": [ + 117.8, + 36.07 + ], + "临沂市": [ + 118.35, + 35.05 + ], + "兰山区": [ + 118.33, + 35.07 + ], + "罗庄区": [ + 118.28, + 34.98 + ], + "河东区": [ + 118.4, + 35.08 + ], + "沂南县": [ + 118.47, + 35.55 + ], + "郯城县": [ + 118.35, + 34.62 + ], + "沂水县": [ + 118.62, + 35.78 + ], + "苍山县": [ + 118.05, + 34.85 + ], + "费县": [ + 117.97, + 35.27 + ], + "平邑县": [ + 117.63, + 35.5 + ], + "莒南县": [ + 118.83, + 35.18 + ], + "蒙阴县": [ + 117.93, + 35.72 + ], + "临沭县": [ + 118.65, + 34.92 + ], + "德州市": [ + 116.3, + 37.45 + ], + "德城区": [ + 116.3, + 37.45 + ], + "陵县": [ + 116.57, + 37.33 + ], + "宁津县": [ + 116.78, + 37.65 + ], + "庆云县": [ + 117.38, + 37.78 + ], + "临邑县": [ + 116.87, + 37.18 + ], + "齐河县": [ + 116.75, + 36.8 + ], + "平原县": [ + 116.43, + 37.17 + ], + "夏津县": [ + 116, + 36.95 + ], + "武城县": [ + 116.07, + 37.22 + ], + "乐陵市": [ + 117.23, + 37.73 + ], + "禹城市": [ + 116.63, + 36.93 + ], + "聊城市": [ + 115.98, + 36.45 + ], + "东昌府区": [ + 115.98, + 36.45 + ], + "阳谷县": [ + 115.78, + 36.12 + ], + "莘县": [ + 115.67, + 36.23 + ], + "茌平县": [ + 116.25, + 36.58 + ], + "东阿县": [ + 116.25, + 36.33 + ], + "冠县": [ + 115.43, + 36.48 + ], + "高唐县": [ + 116.23, + 36.87 + ], + "临清市": [ + 115.7, + 36.85 + ], + "滨州市": [ + 117.97, + 37.38 + ], + "滨城区": [ + 118, + 37.38 + ], + "惠民县": [ + 117.5, + 37.48 + ], + "阳信县": [ + 117.58, + 37.63 + ], + "无棣县": [ + 117.6, + 37.73 + ], + "沾化县": [ + 118.13, + 37.7 + ], + "博兴县": [ + 118.13, + 37.15 + ], + "邹平县": [ + 117.73, + 36.88 + ], + "牡丹区": [ + 115.43, + 35.25 + ], + "曹县": [ + 115.53, + 34.83 + ], + "单县": [ + 116.08, + 34.8 + ], + "成武县": [ + 115.88, + 34.95 + ], + "巨野县": [ + 116.08, + 35.4 + ], + "郓城县": [ + 115.93, + 35.6 + ], + "鄄城县": [ + 115.5, + 35.57 + ], + "定陶县": [ + 115.57, + 35.07 + ], + "东明县": [ + 115.08, + 35.28 + ], + "郑州市": [ + 113.62, + 34.75 + ], + "中原区": [ + 113.6, + 34.75 + ], + "二七区": [ + 113.65, + 34.73 + ], + "管城回族区": [ + 113.67, + 34.75 + ], + "金水区": [ + 113.65, + 34.78 + ], + "上街区": [ + 113.28, + 34.82 + ], + "惠济区": [ + 113.6, + 34.87 + ], + "中牟县": [ + 113.97, + 34.72 + ], + "巩义市": [ + 112.98, + 34.77 + ], + "荥阳市": [ + 113.4, + 34.78 + ], + "新密市": [ + 113.38, + 34.53 + ], + "新郑市": [ + 113.73, + 34.4 + ], + "登封市": [ + 113.03, + 34.47 + ], + "开封市": [ + 114.3, + 34.8 + ], + "龙亭区": [ + 114.35, + 34.8 + ], + "顺河回族区": [ + 114.35, + 34.8 + ], + "杞县": [ + 114.78, + 34.55 + ], + "通许县": [ + 114.47, + 34.48 + ], + "尉氏县": [ + 114.18, + 34.42 + ], + "开封县": [ + 114.43, + 34.77 + ], + "兰考县": [ + 114.82, + 34.82 + ], + "洛阳市": [ + 112.45, + 34.62 + ], + "老城区": [ + 112.47, + 34.68 + ], + "西工区": [ + 112.43, + 34.67 + ], + "涧西区": [ + 112.4, + 34.67 + ], + "吉利区": [ + 112.58, + 34.9 + ], + "洛龙区": [ + 112.45, + 34.62 + ], + "孟津县": [ + 112.43, + 34.83 + ], + "新安县": [ + 112.15, + 34.72 + ], + "栾川县": [ + 111.62, + 33.78 + ], + "嵩县": [ + 112.1, + 34.15 + ], + "汝阳县": [ + 112.47, + 34.15 + ], + "宜阳县": [ + 112.17, + 34.52 + ], + "洛宁县": [ + 111.65, + 34.38 + ], + "伊川县": [ + 112.42, + 34.42 + ], + "偃师市": [ + 112.78, + 34.73 + ], + "平顶山市": [ + 113.18, + 33.77 + ], + "新华区": [ + 113.3, + 33.73 + ], + "卫东区": [ + 113.33, + 33.73 + ], + "石龙区": [ + 112.88, + 33.9 + ], + "湛河区": [ + 113.28, + 33.73 + ], + "宝丰县": [ + 113.07, + 33.88 + ], + "叶县": [ + 113.35, + 33.62 + ], + "鲁山县": [ + 112.9, + 33.73 + ], + "郏县": [ + 113.22, + 33.97 + ], + "舞钢市": [ + 113.52, + 33.3 + ], + "汝州市": [ + 112.83, + 34.17 + ], + "安阳市": [ + 114.38, + 36.1 + ], + "文峰区": [ + 114.35, + 36.08 + ], + "北关区": [ + 114.35, + 36.12 + ], + "殷都区": [ + 114.3, + 36.12 + ], + "龙安区": [ + 114.32, + 36.1 + ], + "安阳县": [ + 114.35, + 36.1 + ], + "汤阴县": [ + 114.35, + 35.92 + ], + "滑县": [ + 114.52, + 35.58 + ], + "内黄县": [ + 114.9, + 35.95 + ], + "林州市": [ + 113.82, + 36.07 + ], + "鹤壁市": [ + 114.28, + 35.75 + ], + "鹤山区": [ + 114.15, + 35.95 + ], + "山城区": [ + 114.18, + 35.9 + ], + "淇滨区": [ + 114.3, + 35.73 + ], + "浚县": [ + 114.55, + 35.67 + ], + "淇县": [ + 114.2, + 35.6 + ], + "新乡市": [ + 113.9, + 35.3 + ], + "红旗区": [ + 113.87, + 35.3 + ], + "卫滨区": [ + 113.85, + 35.3 + ], + "凤泉区": [ + 113.92, + 35.38 + ], + "牧野区": [ + 113.9, + 35.32 + ], + "新乡县": [ + 113.8, + 35.2 + ], + "获嘉县": [ + 113.65, + 35.27 + ], + "原阳县": [ + 113.97, + 35.05 + ], + "延津县": [ + 114.2, + 35.15 + ], + "封丘县": [ + 114.42, + 35.05 + ], + "长垣县": [ + 114.68, + 35.2 + ], + "卫辉市": [ + 114.07, + 35.4 + ], + "辉县市": [ + 113.8, + 35.47 + ], + "焦作市": [ + 113.25, + 35.22 + ], + "解放区": [ + 113.22, + 35.25 + ], + "中站区": [ + 113.17, + 35.23 + ], + "马村区": [ + 113.32, + 35.27 + ], + "山阳区": [ + 113.25, + 35.22 + ], + "修武县": [ + 113.43, + 35.23 + ], + "博爱县": [ + 113.07, + 35.17 + ], + "武陟县": [ + 113.38, + 35.1 + ], + "温县": [ + 113.08, + 34.93 + ], + "济源市": [ + 112.58, + 35.07 + ], + "沁阳市": [ + 112.93, + 35.08 + ], + "孟州市": [ + 112.78, + 34.9 + ], + "濮阳市": [ + 115.03, + 35.77 + ], + "华龙区": [ + 115.07, + 35.78 + ], + "清丰县": [ + 115.12, + 35.9 + ], + "南乐县": [ + 115.2, + 36.08 + ], + "范县": [ + 115.5, + 35.87 + ], + "台前县": [ + 115.85, + 36 + ], + "濮阳县": [ + 115.02, + 35.7 + ], + "许昌市": [ + 113.85, + 34.03 + ], + "魏都区": [ + 113.82, + 34.03 + ], + "许昌县": [ + 113.83, + 34 + ], + "鄢陵县": [ + 114.2, + 34.1 + ], + "襄城县": [ + 113.48, + 33.85 + ], + "禹州市": [ + 113.47, + 34.17 + ], + "长葛市": [ + 113.77, + 34.22 + ], + "漯河市": [ + 114.02, + 33.58 + ], + "郾城区": [ + 114, + 33.58 + ], + "召陵区": [ + 114.07, + 33.57 + ], + "舞阳县": [ + 113.6, + 33.43 + ], + "临颍县": [ + 113.93, + 33.82 + ], + "三门峡市": [ + 111.2, + 34.78 + ], + "湖滨区": [ + 111.2, + 34.78 + ], + "渑池县": [ + 111.75, + 34.77 + ], + "陕县": [ + 111.08, + 34.7 + ], + "卢氏县": [ + 111.05, + 34.05 + ], + "义马市": [ + 111.87, + 34.75 + ], + "灵宝市": [ + 110.87, + 34.52 + ], + "南阳市": [ + 112.52, + 33 + ], + "宛城区": [ + 112.55, + 33.02 + ], + "卧龙区": [ + 112.53, + 32.98 + ], + "南召县": [ + 112.43, + 33.5 + ], + "方城县": [ + 113, + 33.27 + ], + "西峡县": [ + 111.48, + 33.28 + ], + "镇平县": [ + 112.23, + 33.03 + ], + "内乡县": [ + 111.85, + 33.05 + ], + "淅川县": [ + 111.48, + 33.13 + ], + "社旗县": [ + 112.93, + 33.05 + ], + "唐河县": [ + 112.83, + 32.7 + ], + "新野县": [ + 112.35, + 32.52 + ], + "桐柏县": [ + 113.4, + 32.37 + ], + "邓州市": [ + 112.08, + 32.68 + ], + "商丘市": [ + 115.65, + 34.45 + ], + "梁园区": [ + 115.63, + 34.45 + ], + "睢阳区": [ + 115.63, + 34.38 + ], + "民权县": [ + 115.13, + 34.65 + ], + "睢县": [ + 115.07, + 34.45 + ], + "宁陵县": [ + 115.32, + 34.45 + ], + "柘城县": [ + 115.3, + 34.07 + ], + "虞城县": [ + 115.85, + 34.4 + ], + "夏邑县": [ + 116.13, + 34.23 + ], + "永城市": [ + 116.43, + 33.92 + ], + "信阳市": [ + 114.07, + 32.13 + ], + "浉河区": [ + 114.05, + 32.12 + ], + "平桥区": [ + 114.12, + 32.1 + ], + "罗山县": [ + 114.53, + 32.2 + ], + "光山县": [ + 114.9, + 32.02 + ], + "新县": [ + 114.87, + 31.63 + ], + "商城县": [ + 115.4, + 31.8 + ], + "固始县": [ + 115.68, + 32.18 + ], + "潢川县": [ + 115.03, + 32.13 + ], + "淮滨县": [ + 115.4, + 32.43 + ], + "息县": [ + 114.73, + 32.35 + ], + "周口市": [ + 114.65, + 33.62 + ], + "扶沟县": [ + 114.38, + 34.07 + ], + "西华县": [ + 114.53, + 33.8 + ], + "商水县": [ + 114.6, + 33.53 + ], + "沈丘县": [ + 115.07, + 33.4 + ], + "郸城县": [ + 115.2, + 33.65 + ], + "淮阳县": [ + 114.88, + 33.73 + ], + "太康县": [ + 114.85, + 34.07 + ], + "鹿邑县": [ + 115.48, + 33.87 + ], + "项城市": [ + 114.9, + 33.45 + ], + "驻马店市": [ + 114.02, + 32.98 + ], + "驿城区": [ + 114.05, + 32.97 + ], + "西平县": [ + 114.02, + 33.38 + ], + "上蔡县": [ + 114.27, + 33.27 + ], + "平舆县": [ + 114.63, + 32.97 + ], + "正阳县": [ + 114.38, + 32.6 + ], + "确山县": [ + 114.02, + 32.8 + ], + "泌阳县": [ + 113.32, + 32.72 + ], + "汝南县": [ + 114.35, + 33 + ], + "遂平县": [ + 114, + 33.15 + ], + "新蔡县": [ + 114.98, + 32.75 + ], + "武汉市": [ + 114.3, + 30.6 + ], + "江岸区": [ + 114.3, + 30.6 + ], + "江汉区": [ + 114.27, + 30.6 + ], + "硚口区": [ + 114.27, + 30.57 + ], + "汉阳区": [ + 114.27, + 30.55 + ], + "武昌区": [ + 114.3, + 30.57 + ], + "青山区": [ + 114.38, + 30.63 + ], + "洪山区": [ + 114.33, + 30.5 + ], + "东西湖区": [ + 114.13, + 30.62 + ], + "汉南区": [ + 114.08, + 30.32 + ], + "蔡甸区": [ + 114.03, + 30.58 + ], + "江夏区": [ + 114.32, + 30.35 + ], + "黄陂区": [ + 114.37, + 30.87 + ], + "新洲区": [ + 114.8, + 30.85 + ], + "黄石市": [ + 115.03, + 30.2 + ], + "黄石港区": [ + 115.07, + 30.23 + ], + "西塞山区": [ + 115.12, + 30.2 + ], + "下陆区": [ + 114.97, + 30.18 + ], + "铁山区": [ + 114.9, + 30.2 + ], + "阳新县": [ + 115.2, + 29.85 + ], + "大冶市": [ + 114.97, + 30.1 + ], + "十堰市": [ + 110.78, + 32.65 + ], + "茅箭区": [ + 110.82, + 32.6 + ], + "张湾区": [ + 110.78, + 32.65 + ], + "郧县": [ + 110.82, + 32.83 + ], + "郧西县": [ + 110.42, + 33 + ], + "竹山县": [ + 110.23, + 32.23 + ], + "竹溪县": [ + 109.72, + 32.32 + ], + "房县": [ + 110.73, + 32.07 + ], + "丹江口市": [ + 111.52, + 32.55 + ], + "宜昌市": [ + 111.28, + 30.7 + ], + "西陵区": [ + 111.27, + 30.7 + ], + "伍家岗区": [ + 111.35, + 30.65 + ], + "点军区": [ + 111.27, + 30.7 + ], + "猇亭区": [ + 111.42, + 30.53 + ], + "夷陵区": [ + 111.32, + 30.77 + ], + "远安县": [ + 111.63, + 31.07 + ], + "兴山县": [ + 110.75, + 31.35 + ], + "秭归县": [ + 110.98, + 30.83 + ], + "长阳土家族自治县": [ + 111.18, + 30.47 + ], + "五峰土家族自治县": [ + 110.67, + 30.2 + ], + "宜都市": [ + 111.45, + 30.4 + ], + "当阳市": [ + 111.78, + 30.82 + ], + "枝江市": [ + 111.77, + 30.43 + ], + "襄樊市": [ + 112.15, + 32.02 + ], + "襄城区": [ + 112.15, + 32.02 + ], + "樊城区": [ + 112.13, + 32.03 + ], + "襄阳区": [ + 112.2, + 32.08 + ], + "南漳县": [ + 111.83, + 31.78 + ], + "谷城县": [ + 111.65, + 32.27 + ], + "保康县": [ + 111.25, + 31.88 + ], + "老河口市": [ + 111.67, + 32.38 + ], + "枣阳市": [ + 112.75, + 32.13 + ], + "宜城市": [ + 112.25, + 31.72 + ], + "鄂州市": [ + 114.88, + 30.4 + ], + "梁子湖区": [ + 114.67, + 30.08 + ], + "华容区": [ + 114.73, + 30.53 + ], + "鄂城区": [ + 114.88, + 30.4 + ], + "荆门市": [ + 112.2, + 31.03 + ], + "东宝区": [ + 112.2, + 31.05 + ], + "掇刀区": [ + 112.2, + 30.98 + ], + "京山县": [ + 113.1, + 31.02 + ], + "沙洋县": [ + 112.58, + 30.7 + ], + "钟祥市": [ + 112.58, + 31.17 + ], + "孝感市": [ + 113.92, + 30.93 + ], + "孝南区": [ + 113.92, + 30.92 + ], + "孝昌县": [ + 113.97, + 31.25 + ], + "大悟县": [ + 114.12, + 31.57 + ], + "云梦县": [ + 113.75, + 31.02 + ], + "应城市": [ + 113.57, + 30.95 + ], + "安陆市": [ + 113.68, + 31.27 + ], + "汉川市": [ + 113.83, + 30.65 + ], + "荆州市": [ + 112.23, + 30.33 + ], + "沙市区": [ + 112.25, + 30.32 + ], + "荆州区": [ + 112.18, + 30.35 + ], + "公安县": [ + 112.23, + 30.07 + ], + "监利县": [ + 112.88, + 29.82 + ], + "江陵县": [ + 112.42, + 30.03 + ], + "石首市": [ + 112.4, + 29.73 + ], + "洪湖市": [ + 113.45, + 29.8 + ], + "松滋市": [ + 111.77, + 30.18 + ], + "黄冈市": [ + 114.87, + 30.45 + ], + "黄州区": [ + 114.88, + 30.43 + ], + "团风县": [ + 114.87, + 30.63 + ], + "红安县": [ + 114.62, + 31.28 + ], + "罗田县": [ + 115.4, + 30.78 + ], + "英山县": [ + 115.67, + 30.75 + ], + "浠水县": [ + 115.27, + 30.45 + ], + "蕲春县": [ + 115.43, + 30.23 + ], + "黄梅县": [ + 115.93, + 30.08 + ], + "麻城市": [ + 115.03, + 31.18 + ], + "武穴市": [ + 115.55, + 29.85 + ], + "咸宁市": [ + 114.32, + 29.85 + ], + "咸安区": [ + 114.3, + 29.87 + ], + "嘉鱼县": [ + 113.9, + 29.98 + ], + "通城县": [ + 113.82, + 29.25 + ], + "崇阳县": [ + 114.03, + 29.55 + ], + "通山县": [ + 114.52, + 29.6 + ], + "赤壁市": [ + 113.88, + 29.72 + ], + "随州市": [ + 113.37, + 31.72 + ], + "曾都区": [ + 113.37, + 31.72 + ], + "广水市": [ + 113.82, + 31.62 + ], + "恩施土家族苗族自治州": [ + 109.47, + 30.3 + ], + "恩施市": [ + 109.47, + 30.3 + ], + "利川市": [ + 108.93, + 30.3 + ], + "建始县": [ + 109.73, + 30.6 + ], + "巴东县": [ + 110.33, + 31.05 + ], + "宣恩县": [ + 109.48, + 29.98 + ], + "咸丰县": [ + 109.15, + 29.68 + ], + "来凤县": [ + 109.4, + 29.52 + ], + "鹤峰县": [ + 110.03, + 29.9 + ], + "仙桃市": [ + 113.45, + 30.37 + ], + "潜江市": [ + 112.88, + 30.42 + ], + "天门市": [ + 113.17, + 30.67 + ], + "神农架林区": [ + 110.67, + 31.75 + ], + "长沙市": [ + 112.93, + 28.23 + ], + "芙蓉区": [ + 113.03, + 28.18 + ], + "天心区": [ + 112.98, + 28.12 + ], + "岳麓区": [ + 112.93, + 28.23 + ], + "开福区": [ + 112.98, + 28.25 + ], + "雨花区": [ + 113.03, + 28.13 + ], + "长沙县": [ + 113.07, + 28.25 + ], + "望城县": [ + 112.82, + 28.37 + ], + "宁乡县": [ + 112.55, + 28.25 + ], + "浏阳市": [ + 113.63, + 28.15 + ], + "株洲市": [ + 113.13, + 27.83 + ], + "荷塘区": [ + 113.17, + 27.87 + ], + "芦淞区": [ + 113.15, + 27.83 + ], + "石峰区": [ + 113.1, + 27.87 + ], + "天元区": [ + 113.12, + 27.83 + ], + "株洲县": [ + 113.13, + 27.72 + ], + "攸县": [ + 113.33, + 27 + ], + "茶陵县": [ + 113.53, + 26.8 + ], + "炎陵县": [ + 113.77, + 26.48 + ], + "醴陵市": [ + 113.48, + 27.67 + ], + "湘潭市": [ + 112.93, + 27.83 + ], + "雨湖区": [ + 112.9, + 27.87 + ], + "岳塘区": [ + 112.95, + 27.87 + ], + "湘潭县": [ + 112.95, + 27.78 + ], + "湘乡市": [ + 112.53, + 27.73 + ], + "韶山市": [ + 112.52, + 27.93 + ], + "衡阳市": [ + 112.57, + 26.9 + ], + "珠晖区": [ + 112.62, + 26.9 + ], + "雁峰区": [ + 112.6, + 26.88 + ], + "石鼓区": [ + 112.6, + 26.9 + ], + "蒸湘区": [ + 112.6, + 26.9 + ], + "南岳区": [ + 112.73, + 27.25 + ], + "衡阳县": [ + 112.37, + 26.97 + ], + "衡南县": [ + 112.67, + 26.73 + ], + "衡山县": [ + 112.87, + 27.23 + ], + "衡东县": [ + 112.95, + 27.08 + ], + "祁东县": [ + 112.12, + 26.78 + ], + "耒阳市": [ + 112.85, + 26.42 + ], + "常宁市": [ + 112.38, + 26.42 + ], + "邵阳市": [ + 111.47, + 27.25 + ], + "双清区": [ + 111.47, + 27.23 + ], + "大祥区": [ + 111.45, + 27.23 + ], + "北塔区": [ + 111.45, + 27.25 + ], + "邵东县": [ + 111.75, + 27.25 + ], + "新邵县": [ + 111.45, + 27.32 + ], + "邵阳县": [ + 111.27, + 27 + ], + "隆回县": [ + 111.03, + 27.12 + ], + "洞口县": [ + 110.57, + 27.05 + ], + "绥宁县": [ + 110.15, + 26.58 + ], + "新宁县": [ + 110.85, + 26.43 + ], + "城步苗族自治县": [ + 110.32, + 26.37 + ], + "武冈市": [ + 110.63, + 26.73 + ], + "岳阳市": [ + 113.12, + 29.37 + ], + "岳阳楼区": [ + 113.1, + 29.37 + ], + "云溪区": [ + 113.3, + 29.47 + ], + "君山区": [ + 113, + 29.43 + ], + "岳阳县": [ + 113.12, + 29.15 + ], + "华容县": [ + 112.57, + 29.52 + ], + "湘阴县": [ + 112.88, + 28.68 + ], + "平江县": [ + 113.58, + 28.72 + ], + "汨罗市": [ + 113.08, + 28.8 + ], + "临湘市": [ + 113.47, + 29.48 + ], + "常德市": [ + 111.68, + 29.05 + ], + "武陵区": [ + 111.68, + 29.03 + ], + "鼎城区": [ + 111.68, + 29.02 + ], + "安乡县": [ + 112.17, + 29.42 + ], + "汉寿县": [ + 111.97, + 28.9 + ], + "澧县": [ + 111.75, + 29.63 + ], + "临澧县": [ + 111.65, + 29.45 + ], + "桃源县": [ + 111.48, + 28.9 + ], + "石门县": [ + 111.38, + 29.58 + ], + "津市市": [ + 111.88, + 29.62 + ], + "张家界市": [ + 110.47, + 29.13 + ], + "永定区": [ + 110.48, + 29.13 + ], + "武陵源区": [ + 110.53, + 29.35 + ], + "慈利县": [ + 111.12, + 29.42 + ], + "桑植县": [ + 110.15, + 29.4 + ], + "益阳市": [ + 112.32, + 28.6 + ], + "资阳区": [ + 112.32, + 28.6 + ], + "赫山区": [ + 112.37, + 28.6 + ], + "南县": [ + 112.4, + 29.38 + ], + "桃江县": [ + 112.12, + 28.53 + ], + "安化县": [ + 111.22, + 28.38 + ], + "沅江市": [ + 112.38, + 28.85 + ], + "郴州市": [ + 113.02, + 25.78 + ], + "北湖区": [ + 113.02, + 25.8 + ], + "苏仙区": [ + 113.03, + 25.8 + ], + "桂阳县": [ + 112.73, + 25.73 + ], + "宜章县": [ + 112.95, + 25.4 + ], + "永兴县": [ + 113.1, + 26.13 + ], + "嘉禾县": [ + 112.37, + 25.58 + ], + "临武县": [ + 112.55, + 25.28 + ], + "汝城县": [ + 113.68, + 25.55 + ], + "桂东县": [ + 113.93, + 26.08 + ], + "安仁县": [ + 113.27, + 26.7 + ], + "资兴市": [ + 113.23, + 25.98 + ], + "永州市": [ + 111.62, + 26.43 + ], + "冷水滩区": [ + 111.6, + 26.43 + ], + "祁阳县": [ + 111.85, + 26.58 + ], + "东安县": [ + 111.28, + 26.4 + ], + "双牌县": [ + 111.65, + 25.97 + ], + "道县": [ + 111.58, + 25.53 + ], + "江永县": [ + 111.33, + 25.28 + ], + "宁远县": [ + 111.93, + 25.6 + ], + "蓝山县": [ + 112.18, + 25.37 + ], + "新田县": [ + 112.22, + 25.92 + ], + "江华瑶族自治县": [ + 111.58, + 25.18 + ], + "怀化市": [ + 110, + 27.57 + ], + "鹤城区": [ + 109.95, + 27.55 + ], + "中方县": [ + 109.93, + 27.4 + ], + "沅陵县": [ + 110.38, + 28.47 + ], + "辰溪县": [ + 110.18, + 28 + ], + "溆浦县": [ + 110.58, + 27.92 + ], + "会同县": [ + 109.72, + 26.87 + ], + "麻阳苗族自治县": [ + 109.8, + 27.87 + ], + "新晃侗族自治县": [ + 109.17, + 27.37 + ], + "芷江侗族自治县": [ + 109.68, + 27.45 + ], + "靖州苗族侗族自治县": [ + 109.68, + 26.58 + ], + "通道侗族自治县": [ + 109.78, + 26.17 + ], + "洪江市": [ + 109.82, + 27.2 + ], + "娄底市": [ + 112, + 27.73 + ], + "娄星区": [ + 112, + 27.73 + ], + "双峰县": [ + 112.2, + 27.45 + ], + "新化县": [ + 111.3, + 27.75 + ], + "冷水江市": [ + 111.43, + 27.68 + ], + "涟源市": [ + 111.67, + 27.7 + ], + "湘西土家族苗族自治州": [ + 109.73, + 28.32 + ], + "吉首市": [ + 109.73, + 28.32 + ], + "泸溪县": [ + 110.22, + 28.22 + ], + "凤凰县": [ + 109.6, + 27.95 + ], + "花垣县": [ + 109.48, + 28.58 + ], + "保靖县": [ + 109.65, + 28.72 + ], + "古丈县": [ + 109.95, + 28.62 + ], + "永顺县": [ + 109.85, + 29 + ], + "龙山县": [ + 109.43, + 29.47 + ], + "广州市": [ + 113.27, + 23.13 + ], + "荔湾区": [ + 113.23, + 23.13 + ], + "越秀区": [ + 113.27, + 23.13 + ], + "海珠区": [ + 113.25, + 23.1 + ], + "天河区": [ + 113.35, + 23.12 + ], + "黄埔区": [ + 113.45, + 23.1 + ], + "番禺区": [ + 113.35, + 22.95 + ], + "花都区": [ + 113.22, + 23.4 + ], + "增城市": [ + 113.83, + 23.3 + ], + "从化市": [ + 113.58, + 23.55 + ], + "韶关市": [ + 113.6, + 24.82 + ], + "武江区": [ + 113.57, + 24.8 + ], + "浈江区": [ + 113.6, + 24.8 + ], + "曲江区": [ + 113.6, + 24.68 + ], + "始兴县": [ + 114.07, + 24.95 + ], + "仁化县": [ + 113.75, + 25.08 + ], + "翁源县": [ + 114.13, + 24.35 + ], + "乳源瑶族自治县": [ + 113.27, + 24.78 + ], + "新丰县": [ + 114.2, + 24.07 + ], + "乐昌市": [ + 113.35, + 25.13 + ], + "南雄市": [ + 114.3, + 25.12 + ], + "深圳市": [ + 114.05, + 22.55 + ], + "罗湖区": [ + 114.12, + 22.55 + ], + "福田区": [ + 114.05, + 22.53 + ], + "南山区": [ + 113.92, + 22.52 + ], + "宝安区": [ + 113.9, + 22.57 + ], + "龙岗区": [ + 114.27, + 22.73 + ], + "盐田区": [ + 114.22, + 22.55 + ], + "珠海市": [ + 113.57, + 22.27 + ], + "香洲区": [ + 113.55, + 22.27 + ], + "斗门区": [ + 113.28, + 22.22 + ], + "金湾区": [ + 113.4, + 22.07 + ], + "汕头市": [ + 116.68, + 23.35 + ], + "龙湖区": [ + 116.72, + 23.37 + ], + "金平区": [ + 116.7, + 23.37 + ], + "潮阳区": [ + 116.6, + 23.27 + ], + "潮南区": [ + 116.43, + 23.25 + ], + "澄海区": [ + 116.77, + 23.48 + ], + "南澳县": [ + 117.02, + 23.42 + ], + "佛山市": [ + 113.12, + 23.02 + ], + "南海区": [ + 113.15, + 23.03 + ], + "顺德区": [ + 113.3, + 22.8 + ], + "三水区": [ + 112.87, + 23.17 + ], + "高明区": [ + 112.88, + 22.9 + ], + "江门市": [ + 113.08, + 22.58 + ], + "新会区": [ + 113.03, + 22.47 + ], + "台山市": [ + 112.78, + 22.25 + ], + "开平市": [ + 112.67, + 22.38 + ], + "鹤山市": [ + 112.97, + 22.77 + ], + "恩平市": [ + 112.3, + 22.18 + ], + "湛江市": [ + 110.35, + 21.27 + ], + "赤坎区": [ + 110.37, + 21.27 + ], + "霞山区": [ + 110.4, + 21.2 + ], + "坡头区": [ + 110.47, + 21.23 + ], + "麻章区": [ + 110.32, + 21.27 + ], + "遂溪县": [ + 110.25, + 21.38 + ], + "徐闻县": [ + 110.17, + 20.33 + ], + "廉江市": [ + 110.27, + 21.62 + ], + "雷州市": [ + 110.08, + 20.92 + ], + "吴川市": [ + 110.77, + 21.43 + ], + "茂名市": [ + 110.92, + 21.67 + ], + "茂南区": [ + 110.92, + 21.63 + ], + "茂港区": [ + 111.02, + 21.47 + ], + "电白县": [ + 111, + 21.5 + ], + "高州市": [ + 110.85, + 21.92 + ], + "化州市": [ + 110.63, + 21.67 + ], + "信宜市": [ + 110.95, + 22.35 + ], + "肇庆市": [ + 112.47, + 23.05 + ], + "端州区": [ + 112.48, + 23.05 + ], + "鼎湖区": [ + 112.57, + 23.17 + ], + "广宁县": [ + 112.43, + 23.63 + ], + "怀集县": [ + 112.18, + 23.92 + ], + "封开县": [ + 111.5, + 23.43 + ], + "德庆县": [ + 111.77, + 23.15 + ], + "高要市": [ + 112.45, + 23.03 + ], + "四会市": [ + 112.68, + 23.33 + ], + "惠州市": [ + 114.42, + 23.12 + ], + "惠城区": [ + 114.4, + 23.08 + ], + "惠阳区": [ + 114.47, + 22.8 + ], + "博罗县": [ + 114.28, + 23.18 + ], + "惠东县": [ + 114.72, + 22.98 + ], + "龙门县": [ + 114.25, + 23.73 + ], + "梅州市": [ + 116.12, + 24.28 + ], + "梅江区": [ + 116.12, + 24.32 + ], + "梅县": [ + 116.05, + 24.28 + ], + "大埔县": [ + 116.7, + 24.35 + ], + "丰顺县": [ + 116.18, + 23.77 + ], + "五华县": [ + 115.77, + 23.93 + ], + "平远县": [ + 115.88, + 24.57 + ], + "蕉岭县": [ + 116.17, + 24.67 + ], + "兴宁市": [ + 115.73, + 24.15 + ], + "汕尾市": [ + 115.37, + 22.78 + ], + "海丰县": [ + 115.33, + 22.97 + ], + "陆河县": [ + 115.65, + 23.3 + ], + "陆丰市": [ + 115.65, + 22.95 + ], + "河源市": [ + 114.7, + 23.73 + ], + "源城区": [ + 114.7, + 23.73 + ], + "紫金县": [ + 115.18, + 23.63 + ], + "龙川县": [ + 115.25, + 24.1 + ], + "连平县": [ + 114.48, + 24.37 + ], + "和平县": [ + 114.93, + 24.45 + ], + "东源县": [ + 114.77, + 23.82 + ], + "阳江市": [ + 111.98, + 21.87 + ], + "江城区": [ + 111.95, + 21.87 + ], + "阳西县": [ + 111.62, + 21.75 + ], + "阳东县": [ + 112.02, + 21.88 + ], + "阳春市": [ + 111.78, + 22.18 + ], + "清远市": [ + 113.03, + 23.7 + ], + "清城区": [ + 113.02, + 23.7 + ], + "佛冈县": [ + 113.53, + 23.88 + ], + "阳山县": [ + 112.63, + 24.48 + ], + "连山壮族瑶族自治县": [ + 112.08, + 24.57 + ], + "连南瑶族自治县": [ + 112.28, + 24.72 + ], + "清新县": [ + 112.98, + 23.73 + ], + "英德市": [ + 113.4, + 24.18 + ], + "连州市": [ + 112.38, + 24.78 + ], + "东莞市": [ + 113.75, + 23.05 + ], + "中山市": [ + 113.38, + 22.52 + ], + "潮州市": [ + 116.62, + 23.67 + ], + "湘桥区": [ + 116.63, + 23.68 + ], + "潮安县": [ + 116.68, + 23.45 + ], + "饶平县": [ + 117, + 23.67 + ], + "揭阳市": [ + 116.37, + 23.55 + ], + "揭东县": [ + 116.42, + 23.57 + ], + "揭西县": [ + 115.83, + 23.43 + ], + "惠来县": [ + 116.28, + 23.03 + ], + "普宁市": [ + 116.18, + 23.3 + ], + "云浮市": [ + 112.03, + 22.92 + ], + "云城区": [ + 112.03, + 22.93 + ], + "新兴县": [ + 112.23, + 22.7 + ], + "郁南县": [ + 111.53, + 23.23 + ], + "云安县": [ + 112, + 23.08 + ], + "罗定市": [ + 111.57, + 22.77 + ], + "南宁市": [ + 108.37, + 22.82 + ], + "兴宁区": [ + 108.38, + 22.87 + ], + "江南区": [ + 108.28, + 22.78 + ], + "西乡塘区": [ + 108.3, + 22.83 + ], + "良庆区": [ + 108.32, + 22.77 + ], + "邕宁区": [ + 108.48, + 22.75 + ], + "武鸣县": [ + 108.27, + 23.17 + ], + "隆安县": [ + 107.68, + 23.18 + ], + "马山县": [ + 108.17, + 23.72 + ], + "上林县": [ + 108.6, + 23.43 + ], + "宾阳县": [ + 108.8, + 23.22 + ], + "横县": [ + 109.27, + 22.68 + ], + "柳州市": [ + 109.42, + 24.33 + ], + "柳南区": [ + 109.38, + 24.35 + ], + "柳江县": [ + 109.33, + 24.27 + ], + "柳城县": [ + 109.23, + 24.65 + ], + "鹿寨县": [ + 109.73, + 24.48 + ], + "融安县": [ + 109.4, + 25.23 + ], + "融水苗族自治县": [ + 109.25, + 25.07 + ], + "三江侗族自治县": [ + 109.6, + 25.78 + ], + "桂林市": [ + 110.28, + 25.28 + ], + "阳朔县": [ + 110.48, + 24.78 + ], + "临桂县": [ + 110.2, + 25.23 + ], + "灵川县": [ + 110.32, + 25.42 + ], + "全州县": [ + 111.07, + 25.93 + ], + "兴安县": [ + 110.67, + 25.62 + ], + "永福县": [ + 109.98, + 24.98 + ], + "灌阳县": [ + 111.15, + 25.48 + ], + "龙胜各族自治县": [ + 110, + 25.8 + ], + "资源县": [ + 110.63, + 26.03 + ], + "平乐县": [ + 110.63, + 24.63 + ], + "恭城瑶族自治县": [ + 110.83, + 24.83 + ], + "梧州市": [ + 111.27, + 23.48 + ], + "苍梧县": [ + 111.23, + 23.42 + ], + "藤县": [ + 110.92, + 23.38 + ], + "蒙山县": [ + 110.52, + 24.2 + ], + "岑溪市": [ + 110.98, + 22.92 + ], + "北海市": [ + 109.12, + 21.48 + ], + "铁山港区": [ + 109.43, + 21.53 + ], + "合浦县": [ + 109.2, + 21.67 + ], + "防城港市": [ + 108.35, + 21.7 + ], + "港口区": [ + 108.37, + 21.65 + ], + "防城区": [ + 108.35, + 21.77 + ], + "上思县": [ + 107.98, + 22.15 + ], + "东兴市": [ + 107.97, + 21.53 + ], + "钦州市": [ + 108.62, + 21.95 + ], + "钦北区": [ + 108.63, + 21.98 + ], + "灵山县": [ + 109.3, + 22.43 + ], + "浦北县": [ + 109.55, + 22.27 + ], + "贵港市": [ + 109.6, + 23.1 + ], + "覃塘区": [ + 109.42, + 23.13 + ], + "平南县": [ + 110.38, + 23.55 + ], + "桂平市": [ + 110.08, + 23.4 + ], + "玉林市": [ + 110.17, + 22.63 + ], + "容县": [ + 110.55, + 22.87 + ], + "陆川县": [ + 110.27, + 22.33 + ], + "博白县": [ + 109.97, + 22.28 + ], + "兴业县": [ + 109.87, + 22.75 + ], + "北流市": [ + 110.35, + 22.72 + ], + "百色市": [ + 106.62, + 23.9 + ], + "田阳县": [ + 106.92, + 23.73 + ], + "田东县": [ + 107.12, + 23.6 + ], + "平果县": [ + 107.58, + 23.32 + ], + "德保县": [ + 106.62, + 23.33 + ], + "靖西县": [ + 106.42, + 23.13 + ], + "那坡县": [ + 105.83, + 23.42 + ], + "凌云县": [ + 106.57, + 24.35 + ], + "乐业县": [ + 106.55, + 24.78 + ], + "田林县": [ + 106.23, + 24.3 + ], + "西林县": [ + 105.1, + 24.5 + ], + "隆林各族自治县": [ + 105.33, + 24.77 + ], + "贺州市": [ + 111.55, + 24.42 + ], + "昭平县": [ + 110.8, + 24.17 + ], + "钟山县": [ + 111.3, + 24.53 + ], + "富川瑶族自治县": [ + 111.27, + 24.83 + ], + "河池市": [ + 108.07, + 24.7 + ], + "金城江区": [ + 108.05, + 24.7 + ], + "南丹县": [ + 107.53, + 24.98 + ], + "天峨县": [ + 107.17, + 25 + ], + "凤山县": [ + 107.05, + 24.55 + ], + "东兰县": [ + 107.37, + 24.52 + ], + "罗城仫佬族自治县": [ + 108.9, + 24.78 + ], + "环江毛南族自治县": [ + 108.25, + 24.83 + ], + "巴马瑶族自治县": [ + 107.25, + 24.15 + ], + "都安瑶族自治县": [ + 108.1, + 23.93 + ], + "大化瑶族自治县": [ + 107.98, + 23.73 + ], + "宜州市": [ + 108.67, + 24.5 + ], + "来宾市": [ + 109.23, + 23.73 + ], + "忻城县": [ + 108.67, + 24.07 + ], + "象州县": [ + 109.68, + 23.97 + ], + "武宣县": [ + 109.67, + 23.6 + ], + "金秀瑶族自治县": [ + 110.18, + 24.13 + ], + "合山市": [ + 108.87, + 23.82 + ], + "崇左市": [ + 107.37, + 22.4 + ], + "扶绥县": [ + 107.9, + 22.63 + ], + "宁明县": [ + 107.07, + 22.13 + ], + "龙州县": [ + 106.85, + 22.35 + ], + "大新县": [ + 107.2, + 22.83 + ], + "天等县": [ + 107.13, + 23.08 + ], + "凭祥市": [ + 106.75, + 22.12 + ], + "海口市": [ + 110.32, + 20.03 + ], + "秀英区": [ + 110.28, + 20.02 + ], + "龙华区": [ + 110.3, + 20.03 + ], + "琼山区": [ + 110.35, + 20 + ], + "美兰区": [ + 110.37, + 20.03 + ], + "三亚市": [ + 109.5, + 18.25 + ], + "五指山市": [ + 109.52, + 18.78 + ], + "琼海市": [ + 110.47, + 19.25 + ], + "儋州市": [ + 109.57, + 19.52 + ], + "文昌市": [ + 110.8, + 19.55 + ], + "万宁市": [ + 110.4, + 18.8 + ], + "东方市": [ + 108.63, + 19.1 + ], + "定安县": [ + 110.32, + 19.7 + ], + "屯昌县": [ + 110.1, + 19.37 + ], + "澄迈县": [ + 110, + 19.73 + ], + "临高县": [ + 109.68, + 19.92 + ], + "白沙黎族自治县": [ + 109.45, + 19.23 + ], + "昌江黎族自治县": [ + 109.05, + 19.25 + ], + "乐东黎族自治县": [ + 109.17, + 18.75 + ], + "陵水黎族自治县": [ + 110.03, + 18.5 + ], + "保亭黎族苗族自治县": [ + 109.7, + 18.63 + ], + "琼中黎族苗族自治县": [ + 109.83, + 19.03 + ], + "重庆市": [ + 106.55, + 29.57 + ], + "万州区": [ + 108.4, + 30.82 + ], + "涪陵区": [ + 107.4, + 29.72 + ], + "渝中区": [ + 106.57, + 29.55 + ], + "大渡口区": [ + 106.48, + 29.48 + ], + "江北区": [ + 106.57, + 29.6 + ], + "沙坪坝区": [ + 106.45, + 29.53 + ], + "九龙坡区": [ + 106.5, + 29.5 + ], + "南岸区": [ + 106.57, + 29.52 + ], + "北碚区": [ + 106.4, + 29.8 + ], + "万盛区": [ + 106.92, + 28.97 + ], + "双桥区": [ + 105.78, + 29.48 + ], + "渝北区": [ + 106.63, + 29.72 + ], + "巴南区": [ + 106.52, + 29.38 + ], + "黔江区": [ + 108.77, + 29.53 + ], + "长寿区": [ + 107.08, + 29.87 + ], + "綦江县": [ + 106.65, + 29.03 + ], + "潼南县": [ + 105.83, + 30.18 + ], + "铜梁县": [ + 106.05, + 29.85 + ], + "大足县": [ + 105.72, + 29.7 + ], + "荣昌县": [ + 105.58, + 29.4 + ], + "璧山县": [ + 106.22, + 29.6 + ], + "梁平县": [ + 107.8, + 30.68 + ], + "城口县": [ + 108.67, + 31.95 + ], + "丰都县": [ + 107.73, + 29.87 + ], + "垫江县": [ + 107.35, + 30.33 + ], + "武隆县": [ + 107.75, + 29.33 + ], + "忠县": [ + 108.02, + 30.3 + ], + "开县": [ + 108.42, + 31.18 + ], + "云阳县": [ + 108.67, + 30.95 + ], + "奉节县": [ + 109.47, + 31.02 + ], + "巫山县": [ + 109.88, + 31.08 + ], + "巫溪县": [ + 109.63, + 31.4 + ], + "石柱土家族自治县": [ + 108.12, + 30 + ], + "秀山土家族苗族自治县": [ + 108.98, + 28.45 + ], + "酉阳土家族苗族自治县": [ + 108.77, + 28.85 + ], + "彭水苗族土家族自治县": [ + 108.17, + 29.3 + ], + "成都市": [ + 104.07, + 30.67 + ], + "锦江区": [ + 104.08, + 30.67 + ], + "青羊区": [ + 104.05, + 30.68 + ], + "金牛区": [ + 104.05, + 30.7 + ], + "武侯区": [ + 104.05, + 30.65 + ], + "成华区": [ + 104.1, + 30.67 + ], + "龙泉驿区": [ + 104.27, + 30.57 + ], + "青白江区": [ + 104.23, + 30.88 + ], + "新都区": [ + 104.15, + 30.83 + ], + "温江区": [ + 103.83, + 30.7 + ], + "金堂县": [ + 104.43, + 30.85 + ], + "双流县": [ + 103.92, + 30.58 + ], + "郫县": [ + 103.88, + 30.82 + ], + "大邑县": [ + 103.52, + 30.58 + ], + "蒲江县": [ + 103.5, + 30.2 + ], + "新津县": [ + 103.82, + 30.42 + ], + "都江堰市": [ + 103.62, + 31 + ], + "彭州市": [ + 103.93, + 30.98 + ], + "邛崃市": [ + 103.47, + 30.42 + ], + "崇州市": [ + 103.67, + 30.63 + ], + "自贡市": [ + 104.78, + 29.35 + ], + "自流井区": [ + 104.77, + 29.35 + ], + "贡井区": [ + 104.72, + 29.35 + ], + "大安区": [ + 104.77, + 29.37 + ], + "沿滩区": [ + 104.87, + 29.27 + ], + "荣县": [ + 104.42, + 29.47 + ], + "富顺县": [ + 104.98, + 29.18 + ], + "攀枝花市": [ + 101.72, + 26.58 + ], + "东区": [ + 101.7, + 26.55 + ], + "西区": [ + 101.6, + 26.6 + ], + "仁和区": [ + 101.73, + 26.5 + ], + "米易县": [ + 102.12, + 26.88 + ], + "盐边县": [ + 101.85, + 26.7 + ], + "泸州市": [ + 105.43, + 28.87 + ], + "江阳区": [ + 105.45, + 28.88 + ], + "纳溪区": [ + 105.37, + 28.77 + ], + "龙马潭区": [ + 105.43, + 28.9 + ], + "泸县": [ + 105.38, + 29.15 + ], + "合江县": [ + 105.83, + 28.82 + ], + "叙永县": [ + 105.43, + 28.17 + ], + "古蔺县": [ + 105.82, + 28.05 + ], + "德阳市": [ + 104.38, + 31.13 + ], + "旌阳区": [ + 104.38, + 31.13 + ], + "中江县": [ + 104.68, + 31.03 + ], + "罗江县": [ + 104.5, + 31.32 + ], + "广汉市": [ + 104.28, + 30.98 + ], + "什邡市": [ + 104.17, + 31.13 + ], + "绵竹市": [ + 104.2, + 31.35 + ], + "绵阳市": [ + 104.73, + 31.47 + ], + "涪城区": [ + 104.73, + 31.47 + ], + "游仙区": [ + 104.75, + 31.47 + ], + "三台县": [ + 105.08, + 31.1 + ], + "盐亭县": [ + 105.38, + 31.22 + ], + "安县": [ + 104.57, + 31.53 + ], + "梓潼县": [ + 105.17, + 31.63 + ], + "北川羌族自治县": [ + 104.45, + 31.82 + ], + "平武县": [ + 104.53, + 32.42 + ], + "江油市": [ + 104.75, + 31.78 + ], + "广元市": [ + 105.83, + 32.43 + ], + "元坝区": [ + 105.97, + 32.32 + ], + "朝天区": [ + 105.88, + 32.65 + ], + "旺苍县": [ + 106.28, + 32.23 + ], + "青川县": [ + 105.23, + 32.58 + ], + "剑阁县": [ + 105.52, + 32.28 + ], + "苍溪县": [ + 105.93, + 31.73 + ], + "遂宁市": [ + 105.57, + 30.52 + ], + "船山区": [ + 105.57, + 30.52 + ], + "安居区": [ + 105.45, + 30.35 + ], + "蓬溪县": [ + 105.72, + 30.78 + ], + "射洪县": [ + 105.38, + 30.87 + ], + "大英县": [ + 105.25, + 30.58 + ], + "内江市": [ + 105.05, + 29.58 + ], + "东兴区": [ + 105.07, + 29.6 + ], + "威远县": [ + 104.67, + 29.53 + ], + "资中县": [ + 104.85, + 29.78 + ], + "隆??县": [ + 105.28, + 29.35 + ], + "乐山市": [ + 103.77, + 29.57 + ], + "沙湾区": [ + 103.55, + 29.42 + ], + "五通桥区": [ + 103.82, + 29.4 + ], + "金口河区": [ + 103.08, + 29.25 + ], + "犍为县": [ + 103.95, + 29.22 + ], + "井研县": [ + 104.07, + 29.65 + ], + "夹江县": [ + 103.57, + 29.73 + ], + "沐川县": [ + 103.9, + 28.97 + ], + "峨边彝族自治县": [ + 103.27, + 29.23 + ], + "马边彝族自治县": [ + 103.55, + 28.83 + ], + "峨眉山市": [ + 103.48, + 29.6 + ], + "南充市": [ + 106.08, + 30.78 + ], + "顺庆区": [ + 106.08, + 30.78 + ], + "高坪区": [ + 106.1, + 30.77 + ], + "嘉陵区": [ + 106.05, + 30.77 + ], + "南部县": [ + 106.07, + 31.35 + ], + "营山县": [ + 106.57, + 31.08 + ], + "蓬安县": [ + 106.42, + 31.03 + ], + "仪陇县": [ + 106.28, + 31.27 + ], + "西充县": [ + 105.88, + 31 + ], + "阆中市": [ + 106, + 31.55 + ], + "眉山市": [ + 103.83, + 30.05 + ], + "东坡区": [ + 103.83, + 30.05 + ], + "仁寿县": [ + 104.15, + 30 + ], + "彭山县": [ + 103.87, + 30.2 + ], + "洪雅县": [ + 103.37, + 29.92 + ], + "丹棱县": [ + 103.52, + 30.02 + ], + "青神县": [ + 103.85, + 29.83 + ], + "宜宾市": [ + 104.62, + 28.77 + ], + "翠屏区": [ + 104.62, + 28.77 + ], + "宜宾县": [ + 104.55, + 28.7 + ], + "南溪县": [ + 104.98, + 28.85 + ], + "江安县": [ + 105.07, + 28.73 + ], + "长宁县": [ + 104.92, + 28.58 + ], + "高县": [ + 104.52, + 28.43 + ], + "珙县": [ + 104.72, + 28.45 + ], + "筠连县": [ + 104.52, + 28.17 + ], + "兴文县": [ + 105.23, + 28.3 + ], + "屏山县": [ + 104.33, + 28.83 + ], + "广安市": [ + 106.63, + 30.47 + ], + "岳池县": [ + 106.43, + 30.55 + ], + "武胜县": [ + 106.28, + 30.35 + ], + "邻水县": [ + 106.93, + 30.33 + ], + "华蓥市": [ + 106.77, + 30.38 + ], + "达州市": [ + 107.5, + 31.22 + ], + "通川区": [ + 107.48, + 31.22 + ], + "达县": [ + 107.5, + 31.2 + ], + "宣汉县": [ + 107.72, + 31.35 + ], + "开江县": [ + 107.87, + 31.08 + ], + "大竹县": [ + 107.2, + 30.73 + ], + "渠县": [ + 106.97, + 30.83 + ], + "万源市": [ + 108.03, + 32.07 + ], + "雅安市": [ + 103, + 29.98 + ], + "雨城区": [ + 103, + 29.98 + ], + "名山县": [ + 103.12, + 30.08 + ], + "荥经县": [ + 102.85, + 29.8 + ], + "汉源县": [ + 102.65, + 29.35 + ], + "石棉县": [ + 102.37, + 29.23 + ], + "天全县": [ + 102.75, + 30.07 + ], + "芦山县": [ + 102.92, + 30.15 + ], + "宝兴县": [ + 102.82, + 30.37 + ], + "巴中市": [ + 106.77, + 31.85 + ], + "巴州区": [ + 106.77, + 31.85 + ], + "通江县": [ + 107.23, + 31.92 + ], + "南江县": [ + 106.83, + 32.35 + ], + "平昌县": [ + 107.1, + 31.57 + ], + "资阳市": [ + 104.65, + 30.12 + ], + "雁江区": [ + 104.65, + 30.12 + ], + "安岳县": [ + 105.33, + 30.1 + ], + "乐至县": [ + 105.02, + 30.28 + ], + "简阳市": [ + 104.55, + 30.4 + ], + "阿坝藏族羌族自治州": [ + 102.22, + 31.9 + ], + "汶川县": [ + 103.58, + 31.48 + ], + "理县": [ + 103.17, + 31.43 + ], + "茂县": [ + 103.85, + 31.68 + ], + "松潘县": [ + 103.6, + 32.63 + ], + "九寨沟县": [ + 104.23, + 33.27 + ], + "金川县": [ + 102.07, + 31.48 + ], + "小金县": [ + 102.37, + 31 + ], + "黑水县": [ + 102.98, + 32.07 + ], + "马尔康县": [ + 102.22, + 31.9 + ], + "壤塘县": [ + 100.98, + 32.27 + ], + "阿坝县": [ + 101.7, + 32.9 + ], + "若尔盖县": [ + 102.95, + 33.58 + ], + "红原县": [ + 102.55, + 32.8 + ], + "甘孜藏族自治州": [ + 101.97, + 30.05 + ], + "康定县": [ + 101.97, + 30.05 + ], + "泸定县": [ + 102.23, + 29.92 + ], + "丹巴县": [ + 101.88, + 30.88 + ], + "九龙县": [ + 101.5, + 29 + ], + "雅江县": [ + 101.02, + 30.03 + ], + "道孚县": [ + 101.12, + 30.98 + ], + "炉霍县": [ + 100.68, + 31.4 + ], + "甘孜县": [ + 99.98, + 31.62 + ], + "新龙县": [ + 100.32, + 30.95 + ], + "德格县": [ + 98.58, + 31.82 + ], + "白玉县": [ + 98.83, + 31.22 + ], + "石渠县": [ + 98.1, + 32.98 + ], + "色达县": [ + 100.33, + 32.27 + ], + "理塘县": [ + 100.27, + 30 + ], + "巴塘县": [ + 99.1, + 30 + ], + "乡城县": [ + 99.8, + 28.93 + ], + "稻城县": [ + 100.3, + 29.03 + ], + "得荣县": [ + 99.28, + 28.72 + ], + "凉山彝族自治州": [ + 102.27, + 27.9 + ], + "西昌市": [ + 102.27, + 27.9 + ], + "木里藏族自治县": [ + 101.28, + 27.93 + ], + "盐源县": [ + 101.5, + 27.43 + ], + "德昌县": [ + 102.18, + 27.4 + ], + "会理县": [ + 102.25, + 26.67 + ], + "会东县": [ + 102.58, + 26.63 + ], + "宁南县": [ + 102.77, + 27.07 + ], + "普格县": [ + 102.53, + 27.38 + ], + "布拖县": [ + 102.82, + 27.72 + ], + "金阳县": [ + 103.25, + 27.7 + ], + "昭觉县": [ + 102.85, + 28.02 + ], + "喜德县": [ + 102.42, + 28.32 + ], + "冕宁县": [ + 102.17, + 28.55 + ], + "越西县": [ + 102.52, + 28.65 + ], + "甘洛县": [ + 102.77, + 28.97 + ], + "美姑县": [ + 103.13, + 28.33 + ], + "雷波县": [ + 103.57, + 28.27 + ], + "贵阳市": [ + 106.63, + 26.65 + ], + "南明区": [ + 106.72, + 26.57 + ], + "云岩区": [ + 106.72, + 26.62 + ], + "乌当区": [ + 106.75, + 26.63 + ], + "白云区": [ + 106.65, + 26.68 + ], + "小河区": [ + 106.7, + 26.53 + ], + "开阳县": [ + 106.97, + 27.07 + ], + "息烽县": [ + 106.73, + 27.1 + ], + "修文县": [ + 106.58, + 26.83 + ], + "清镇市": [ + 106.47, + 26.55 + ], + "六盘水市": [ + 104.83, + 26.6 + ], + "钟山区": [ + 104.83, + 26.6 + ], + "六枝特区": [ + 105.48, + 26.22 + ], + "水城县": [ + 104.95, + 26.55 + ], + "盘县": [ + 104.47, + 25.72 + ], + "遵义市": [ + 106.92, + 27.73 + ], + "红花岗区": [ + 106.92, + 27.65 + ], + "汇川区": [ + 106.92, + 27.73 + ], + "遵义县": [ + 106.83, + 27.53 + ], + "桐梓县": [ + 106.82, + 28.13 + ], + "绥阳县": [ + 107.18, + 27.95 + ], + "正安县": [ + 107.43, + 28.55 + ], + "道真仡佬族苗族自治县": [ + 107.6, + 28.88 + ], + "务川仡佬族苗族自治县": [ + 107.88, + 28.53 + ], + "凤冈县": [ + 107.72, + 27.97 + ], + "湄潭县": [ + 107.48, + 27.77 + ], + "余庆县": [ + 107.88, + 27.22 + ], + "习水县": [ + 106.22, + 28.32 + ], + "赤水市": [ + 105.7, + 28.58 + ], + "仁怀市": [ + 106.42, + 27.82 + ], + "安顺市": [ + 105.95, + 26.25 + ], + "西秀区": [ + 105.92, + 26.25 + ], + "平坝县": [ + 106.25, + 26.42 + ], + "普定县": [ + 105.75, + 26.32 + ], + "镇宁布依族苗族自治县": [ + 105.77, + 26.07 + ], + "关岭布依族苗族自治县": [ + 105.62, + 25.95 + ], + "紫云苗族布依族自治县": [ + 106.08, + 25.75 + ], + "铜仁地区": [ + 109.18, + 27.72 + ], + "铜仁市": [ + 109.18, + 27.72 + ], + "江口县": [ + 108.85, + 27.7 + ], + "玉屏侗族自治县": [ + 108.92, + 27.23 + ], + "石阡县": [ + 108.23, + 27.52 + ], + "思南县": [ + 108.25, + 27.93 + ], + "印江土家族苗族自治县": [ + 108.4, + 28 + ], + "德江县": [ + 108.12, + 28.27 + ], + "沿河土家族自治县": [ + 108.5, + 28.57 + ], + "松桃苗族自治县": [ + 109.2, + 28.17 + ], + "万山特区": [ + 109.2, + 27.52 + ], + "兴义市": [ + 104.9, + 25.08 + ], + "兴仁县": [ + 105.18, + 25.43 + ], + "普安县": [ + 104.95, + 25.78 + ], + "晴隆县": [ + 105.22, + 25.83 + ], + "贞丰县": [ + 105.65, + 25.38 + ], + "望谟县": [ + 106.1, + 25.17 + ], + "册亨县": [ + 105.82, + 24.98 + ], + "安龙县": [ + 105.47, + 25.12 + ], + "毕节地区": [ + 105.28, + 27.3 + ], + "毕节市": [ + 105.28, + 27.3 + ], + "大方县": [ + 105.6, + 27.15 + ], + "黔西县": [ + 106.03, + 27.03 + ], + "金沙县": [ + 106.22, + 27.47 + ], + "织金县": [ + 105.77, + 26.67 + ], + "纳雍县": [ + 105.38, + 26.78 + ], + "赫章县": [ + 104.72, + 27.13 + ], + "黔东南苗族侗族自治州": [ + 107.97, + 26.58 + ], + "凯里市": [ + 107.97, + 26.58 + ], + "黄平县": [ + 107.9, + 26.9 + ], + "施秉县": [ + 108.12, + 27.03 + ], + "三穗县": [ + 108.68, + 26.97 + ], + "镇远县": [ + 108.42, + 27.05 + ], + "岑巩县": [ + 108.82, + 27.18 + ], + "天柱县": [ + 109.2, + 26.92 + ], + "锦屏县": [ + 109.2, + 26.68 + ], + "剑河县": [ + 108.45, + 26.73 + ], + "台江县": [ + 108.32, + 26.67 + ], + "黎平县": [ + 109.13, + 26.23 + ], + "榕江县": [ + 108.52, + 25.93 + ], + "从江县": [ + 108.9, + 25.75 + ], + "雷山县": [ + 108.07, + 26.38 + ], + "麻江县": [ + 107.58, + 26.5 + ], + "丹寨县": [ + 107.8, + 26.2 + ], + "黔南布依族苗族自治州": [ + 107.52, + 26.27 + ], + "都匀市": [ + 107.52, + 26.27 + ], + "福泉市": [ + 107.5, + 26.7 + ], + "荔波县": [ + 107.88, + 25.42 + ], + "贵定县": [ + 107.23, + 26.58 + ], + "瓮安县": [ + 107.47, + 27.07 + ], + "独山县": [ + 107.53, + 25.83 + ], + "平塘县": [ + 107.32, + 25.83 + ], + "罗甸县": [ + 106.75, + 25.43 + ], + "长顺县": [ + 106.45, + 26.03 + ], + "龙里县": [ + 106.97, + 26.45 + ], + "惠水县": [ + 106.65, + 26.13 + ], + "三都水族自治县": [ + 107.87, + 25.98 + ], + "昆明市": [ + 102.72, + 25.05 + ], + "五华区": [ + 102.7, + 25.05 + ], + "盘龙区": [ + 102.72, + 25.03 + ], + "官渡区": [ + 102.75, + 25.02 + ], + "西山区": [ + 102.67, + 25.03 + ], + "东川区": [ + 103.18, + 26.08 + ], + "呈贡县": [ + 102.8, + 24.88 + ], + "晋宁县": [ + 102.6, + 24.67 + ], + "富民县": [ + 102.5, + 25.22 + ], + "宜良县": [ + 103.15, + 24.92 + ], + "石林彝族自治县": [ + 103.27, + 24.77 + ], + "嵩明县": [ + 103.03, + 25.35 + ], + "禄劝彝族苗族自治县": [ + 102.47, + 25.55 + ], + "寻甸回族彝族自治县": [ + 103.25, + 25.57 + ], + "安宁市": [ + 102.48, + 24.92 + ], + "曲靖市": [ + 103.8, + 25.5 + ], + "麒麟区": [ + 103.8, + 25.5 + ], + "马龙县": [ + 103.58, + 25.43 + ], + "陆良县": [ + 103.67, + 25.03 + ], + "师宗县": [ + 103.98, + 24.83 + ], + "罗平县": [ + 104.3, + 24.88 + ], + "富源县": [ + 104.25, + 25.67 + ], + "会泽县": [ + 103.3, + 26.42 + ], + "沾益县": [ + 103.82, + 25.62 + ], + "宣威市": [ + 104.1, + 26.22 + ], + "玉溪市": [ + 102.55, + 24.35 + ], + "江川县": [ + 102.75, + 24.28 + ], + "澄江县": [ + 102.92, + 24.67 + ], + "通海县": [ + 102.75, + 24.12 + ], + "华宁县": [ + 102.93, + 24.2 + ], + "易门县": [ + 102.17, + 24.67 + ], + "峨山彝族自治县": [ + 102.4, + 24.18 + ], + "新平彝族傣族自治县": [ + 101.98, + 24.07 + ], + "保山市": [ + 99.17, + 25.12 + ], + "隆阳区": [ + 99.17, + 25.12 + ], + "施甸县": [ + 99.18, + 24.73 + ], + "腾冲县": [ + 98.5, + 25.03 + ], + "龙陵县": [ + 98.68, + 24.58 + ], + "昌宁县": [ + 99.6, + 24.83 + ], + "昭通市": [ + 103.72, + 27.33 + ], + "昭阳区": [ + 103.72, + 27.33 + ], + "鲁甸县": [ + 103.55, + 27.2 + ], + "巧家县": [ + 102.92, + 26.92 + ], + "盐津县": [ + 104.23, + 28.12 + ], + "大关县": [ + 103.88, + 27.75 + ], + "永善县": [ + 103.63, + 28.23 + ], + "绥江县": [ + 103.95, + 28.6 + ], + "镇雄县": [ + 104.87, + 27.45 + ], + "彝良县": [ + 104.05, + 27.63 + ], + "威信县": [ + 105.05, + 27.85 + ], + "水富县": [ + 104.4, + 28.63 + ], + "丽江市": [ + 100.23, + 26.88 + ], + "古城区": [ + 100.23, + 26.88 + ], + "玉龙纳西族自治县": [ + 100.23, + 26.82 + ], + "永胜县": [ + 100.75, + 26.68 + ], + "华坪县": [ + 101.27, + 26.63 + ], + "宁蒗彝族自治县": [ + 100.85, + 27.28 + ], + "墨江哈尼族自治县": [ + 101.68, + 23.43 + ], + "景东彝族自治县": [ + 100.83, + 24.45 + ], + "景谷傣族彝族自治县": [ + 100.7, + 23.5 + ], + "江城哈尼族彝族自治县": [ + 101.85, + 22.58 + ], + "澜沧拉祜族自治县": [ + 99.93, + 22.55 + ], + "西盟佤族自治县": [ + 99.62, + 22.63 + ], + "临沧市": [ + 100.08, + 23.88 + ], + "临翔区": [ + 100.08, + 23.88 + ], + "凤庆县": [ + 99.92, + 24.6 + ], + "云县": [ + 100.13, + 24.45 + ], + "永德县": [ + 99.25, + 24.03 + ], + "镇康县": [ + 98.83, + 23.78 + ], + "耿马傣族佤族自治县": [ + 99.4, + 23.55 + ], + "沧源佤族自治县": [ + 99.25, + 23.15 + ], + "楚雄彝族自治州": [ + 101.55, + 25.03 + ], + "楚雄市": [ + 101.55, + 25.03 + ], + "双柏县": [ + 101.63, + 24.7 + ], + "牟定县": [ + 101.53, + 25.32 + ], + "南华县": [ + 101.27, + 25.2 + ], + "姚安县": [ + 101.23, + 25.5 + ], + "大姚县": [ + 101.32, + 25.73 + ], + "永仁县": [ + 101.67, + 26.07 + ], + "元谋县": [ + 101.88, + 25.7 + ], + "武定县": [ + 102.4, + 25.53 + ], + "禄丰县": [ + 102.08, + 25.15 + ], + "红河哈尼族彝族自治州": [ + 103.4, + 23.37 + ], + "个旧市": [ + 103.15, + 23.37 + ], + "开远市": [ + 103.27, + 23.72 + ], + "蒙自县": [ + 103.4, + 23.37 + ], + "屏边苗族自治县": [ + 103.68, + 22.98 + ], + "建水县": [ + 102.83, + 23.62 + ], + "石屏县": [ + 102.5, + 23.72 + ], + "弥勒县": [ + 103.43, + 24.4 + ], + "泸西县": [ + 103.77, + 24.53 + ], + "元阳县": [ + 102.83, + 23.23 + ], + "红河县": [ + 102.42, + 23.37 + ], + "绿春县": [ + 102.4, + 23 + ], + "河口瑶族自治县": [ + 103.97, + 22.52 + ], + "文山壮族苗族自治州": [ + 104.25, + 23.37 + ], + "文山县": [ + 104.25, + 23.37 + ], + "砚山县": [ + 104.33, + 23.62 + ], + "西畴县": [ + 104.67, + 23.45 + ], + "麻栗坡县": [ + 104.7, + 23.12 + ], + "马关县": [ + 104.4, + 23.02 + ], + "丘北县": [ + 104.18, + 24.05 + ], + "广南县": [ + 105.07, + 24.05 + ], + "富宁县": [ + 105.62, + 23.63 + ], + "西双版纳傣族自治州": [ + 100.8, + 22.02 + ], + "景洪市": [ + 100.8, + 22.02 + ], + "勐海县": [ + 100.45, + 21.97 + ], + "勐腊县": [ + 101.57, + 21.48 + ], + "大理白族自治州": [ + 100.23, + 25.6 + ], + "大理市": [ + 100.23, + 25.6 + ], + "漾濞彝族自治县": [ + 99.95, + 25.67 + ], + "祥云县": [ + 100.55, + 25.48 + ], + "宾川县": [ + 100.58, + 25.83 + ], + "弥渡县": [ + 100.48, + 25.35 + ], + "南涧彝族自治县": [ + 100.52, + 25.05 + ], + "巍山彝族回族自治县": [ + 100.3, + 25.23 + ], + "永平县": [ + 99.53, + 25.47 + ], + "云龙县": [ + 99.37, + 25.88 + ], + "洱源县": [ + 99.95, + 26.12 + ], + "剑川县": [ + 99.9, + 26.53 + ], + "鹤庆县": [ + 100.18, + 26.57 + ], + "德宏傣族景颇族自治州": [ + 98.58, + 24.43 + ], + "瑞丽市": [ + 97.85, + 24.02 + ], + "潞西市": [ + 98.58, + 24.43 + ], + "梁河县": [ + 98.3, + 24.82 + ], + "盈江县": [ + 97.93, + 24.72 + ], + "陇川县": [ + 97.8, + 24.2 + ], + "怒江傈僳族自治州": [ + 98.85, + 25.85 + ], + "泸水县": [ + 98.85, + 25.85 + ], + "福贡县": [ + 98.87, + 26.9 + ], + "贡山独龙族怒族自治县": [ + 98.67, + 27.73 + ], + "兰坪白族普米族自治县": [ + 99.42, + 26.45 + ], + "迪庆藏族自治州": [ + 99.7, + 27.83 + ], + "香格里拉县": [ + 99.7, + 27.83 + ], + "德钦县": [ + 98.92, + 28.48 + ], + "维西傈僳族自治县": [ + 99.28, + 27.18 + ], + "拉萨市": [ + 91.13, + 29.65 + ], + "林周县": [ + 91.25, + 29.9 + ], + "当雄县": [ + 91.1, + 30.48 + ], + "尼木县": [ + 90.15, + 29.45 + ], + "曲水县": [ + 90.73, + 29.37 + ], + "堆龙德庆县": [ + 91, + 29.65 + ], + "达孜县": [ + 91.35, + 29.68 + ], + "墨竹工卡县": [ + 91.73, + 29.83 + ], + "昌都地区": [ + 97.18, + 31.13 + ], + "昌都县": [ + 97.18, + 31.13 + ], + "江达县": [ + 98.22, + 31.5 + ], + "贡觉县": [ + 98.27, + 30.87 + ], + "类乌齐县": [ + 96.6, + 31.22 + ], + "丁青县": [ + 95.6, + 31.42 + ], + "察雅县": [ + 97.57, + 30.65 + ], + "八宿县": [ + 96.92, + 30.05 + ], + "左贡县": [ + 97.85, + 29.67 + ], + "芒康县": [ + 98.6, + 29.68 + ], + "洛隆县": [ + 95.83, + 30.75 + ], + "边坝县": [ + 94.7, + 30.93 + ], + "山南地区": [ + 91.77, + 29.23 + ], + "乃东县": [ + 91.77, + 29.23 + ], + "扎囊县": [ + 91.33, + 29.25 + ], + "贡嘎县": [ + 90.98, + 29.3 + ], + "桑日县": [ + 92.02, + 29.27 + ], + "琼结县": [ + 91.68, + 29.03 + ], + "曲松县": [ + 92.2, + 29.07 + ], + "措美县": [ + 91.43, + 28.43 + ], + "洛扎县": [ + 90.87, + 28.38 + ], + "加查县": [ + 92.58, + 29.15 + ], + "隆子县": [ + 92.47, + 28.42 + ], + "错那县": [ + 91.95, + 28 + ], + "浪卡子县": [ + 90.4, + 28.97 + ], + "日喀则地区": [ + 88.88, + 29.27 + ], + "日喀则市": [ + 88.88, + 29.27 + ], + "南木林县": [ + 89.1, + 29.68 + ], + "江孜县": [ + 89.6, + 28.92 + ], + "定日县": [ + 87.12, + 28.67 + ], + "萨迦县": [ + 88.02, + 28.9 + ], + "拉孜县": [ + 87.63, + 29.08 + ], + "昂仁县": [ + 87.23, + 29.3 + ], + "谢通门县": [ + 88.27, + 29.43 + ], + "白朗县": [ + 89.27, + 29.12 + ], + "仁布县": [ + 89.83, + 29.23 + ], + "康马县": [ + 89.68, + 28.57 + ], + "定结县": [ + 87.77, + 28.37 + ], + "仲巴县": [ + 84.03, + 29.77 + ], + "亚东县": [ + 88.9, + 27.48 + ], + "吉隆县": [ + 85.3, + 28.85 + ], + "聂拉木县": [ + 85.98, + 28.17 + ], + "萨嘎县": [ + 85.23, + 29.33 + ], + "岗巴县": [ + 88.52, + 28.28 + ], + "那曲地区": [ + 92.07, + 31.48 + ], + "那曲县": [ + 92.07, + 31.48 + ], + "嘉黎县": [ + 93.25, + 30.65 + ], + "比如县": [ + 93.68, + 31.48 + ], + "聂荣县": [ + 92.3, + 32.12 + ], + "安多县": [ + 91.68, + 32.27 + ], + "申扎县": [ + 88.7, + 30.93 + ], + "索县": [ + 93.78, + 31.88 + ], + "班戈县": [ + 90.02, + 31.37 + ], + "巴青县": [ + 94.03, + 31.93 + ], + "尼玛县": [ + 87.23, + 31.78 + ], + "阿里地区": [ + 80.1, + 32.5 + ], + "普兰县": [ + 81.17, + 30.3 + ], + "札达县": [ + 79.8, + 31.48 + ], + "噶尔县": [ + 80.1, + 32.5 + ], + "日土县": [ + 79.72, + 33.38 + ], + "革吉县": [ + 81.12, + 32.4 + ], + "改则县": [ + 84.07, + 32.3 + ], + "措勤县": [ + 85.17, + 31.02 + ], + "林芝地区": [ + 94.37, + 29.68 + ], + "林芝县": [ + 94.37, + 29.68 + ], + "工布江达县": [ + 93.25, + 29.88 + ], + "米林县": [ + 94.22, + 29.22 + ], + "墨脱县": [ + 95.33, + 29.33 + ], + "波密县": [ + 95.77, + 29.87 + ], + "察隅县": [ + 97.47, + 28.67 + ], + "朗县": [ + 93.07, + 29.05 + ], + "西安市": [ + 108.93, + 34.27 + ], + "新城区": [ + 108.95, + 34.27 + ], + "碑林区": [ + 108.93, + 34.23 + ], + "莲湖区": [ + 108.93, + 34.27 + ], + "灞桥区": [ + 109.07, + 34.27 + ], + "未央区": [ + 108.93, + 34.28 + ], + "雁塔区": [ + 108.95, + 34.22 + ], + "阎良区": [ + 109.23, + 34.65 + ], + "临潼区": [ + 109.22, + 34.37 + ], + "长安区": [ + 108.93, + 34.17 + ], + "蓝田县": [ + 109.32, + 34.15 + ], + "周至县": [ + 108.2, + 34.17 + ], + "户县": [ + 108.6, + 34.1 + ], + "高陵县": [ + 109.08, + 34.53 + ], + "铜川市": [ + 108.93, + 34.9 + ], + "王益区": [ + 109.07, + 35.07 + ], + "印台区": [ + 109.1, + 35.1 + ], + "耀州区": [ + 108.98, + 34.92 + ], + "宜君县": [ + 109.12, + 35.4 + ], + "宝鸡市": [ + 107.13, + 34.37 + ], + "渭滨区": [ + 107.15, + 34.37 + ], + "金台区": [ + 107.13, + 34.38 + ], + "陈仓区": [ + 107.37, + 34.37 + ], + "凤翔县": [ + 107.38, + 34.52 + ], + "岐山县": [ + 107.62, + 34.45 + ], + "扶风县": [ + 107.87, + 34.37 + ], + "眉县": [ + 107.75, + 34.28 + ], + "陇县": [ + 106.85, + 34.9 + ], + "千阳县": [ + 107.13, + 34.65 + ], + "麟游县": [ + 107.78, + 34.68 + ], + "凤县": [ + 106.52, + 33.92 + ], + "太白县": [ + 107.32, + 34.07 + ], + "咸阳市": [ + 108.7, + 34.33 + ], + "秦都区": [ + 108.72, + 34.35 + ], + "杨凌区": [ + 108.07, + 34.28 + ], + "渭城区": [ + 108.73, + 34.33 + ], + "三原县": [ + 108.93, + 34.62 + ], + "泾阳县": [ + 108.83, + 34.53 + ], + "乾县": [ + 108.23, + 34.53 + ], + "礼泉县": [ + 108.42, + 34.48 + ], + "永寿县": [ + 108.13, + 34.7 + ], + "彬县": [ + 108.08, + 35.03 + ], + "长武县": [ + 107.78, + 35.2 + ], + "旬邑县": [ + 108.33, + 35.12 + ], + "淳化县": [ + 108.58, + 34.78 + ], + "武功县": [ + 108.2, + 34.27 + ], + "兴平市": [ + 108.48, + 34.3 + ], + "渭南市": [ + 109.5, + 34.5 + ], + "临渭区": [ + 109.48, + 34.5 + ], + "华县": [ + 109.77, + 34.52 + ], + "潼关县": [ + 110.23, + 34.55 + ], + "大荔县": [ + 109.93, + 34.8 + ], + "合阳县": [ + 110.15, + 35.23 + ], + "澄城县": [ + 109.93, + 35.18 + ], + "蒲城县": [ + 109.58, + 34.95 + ], + "白水县": [ + 109.58, + 35.18 + ], + "富平县": [ + 109.18, + 34.75 + ], + "韩城市": [ + 110.43, + 35.48 + ], + "华阴市": [ + 110.08, + 34.57 + ], + "延安市": [ + 109.48, + 36.6 + ], + "宝塔区": [ + 109.48, + 36.6 + ], + "延长县": [ + 110, + 36.58 + ], + "延川县": [ + 110.18, + 36.88 + ], + "子长县": [ + 109.67, + 37.13 + ], + "安塞县": [ + 109.32, + 36.87 + ], + "志丹县": [ + 108.77, + 36.82 + ], + "甘泉县": [ + 109.35, + 36.28 + ], + "富县": [ + 109.37, + 35.98 + ], + "洛川县": [ + 109.43, + 35.77 + ], + "宜川县": [ + 110.17, + 36.05 + ], + "黄龙县": [ + 109.83, + 35.58 + ], + "黄陵县": [ + 109.25, + 35.58 + ], + "汉中市": [ + 107.02, + 33.07 + ], + "汉台区": [ + 107.03, + 33.07 + ], + "南郑县": [ + 106.93, + 33 + ], + "城固县": [ + 107.33, + 33.15 + ], + "洋县": [ + 107.55, + 33.22 + ], + "西乡县": [ + 107.77, + 32.98 + ], + "勉县": [ + 106.67, + 33.15 + ], + "宁强县": [ + 106.25, + 32.83 + ], + "略阳县": [ + 106.15, + 33.33 + ], + "镇巴县": [ + 107.9, + 32.53 + ], + "留坝县": [ + 106.92, + 33.62 + ], + "佛坪县": [ + 107.98, + 33.53 + ], + "榆林市": [ + 109.73, + 38.28 + ], + "榆阳区": [ + 109.75, + 38.28 + ], + "神木县": [ + 110.5, + 38.83 + ], + "府谷县": [ + 111.07, + 39.03 + ], + "横山县": [ + 109.28, + 37.95 + ], + "靖边县": [ + 108.8, + 37.6 + ], + "定边县": [ + 107.6, + 37.58 + ], + "绥德县": [ + 110.25, + 37.5 + ], + "米脂县": [ + 110.18, + 37.75 + ], + "佳县": [ + 110.48, + 38.02 + ], + "吴堡县": [ + 110.73, + 37.45 + ], + "清涧县": [ + 110.12, + 37.08 + ], + "子洲县": [ + 110.03, + 37.62 + ], + "安康市": [ + 109.02, + 32.68 + ], + "汉滨区": [ + 109.02, + 32.68 + ], + "汉阴县": [ + 108.5, + 32.9 + ], + "石泉县": [ + 108.25, + 33.05 + ], + "宁陕县": [ + 108.32, + 33.32 + ], + "紫阳县": [ + 108.53, + 32.52 + ], + "岚皋县": [ + 108.9, + 32.32 + ], + "平利县": [ + 109.35, + 32.4 + ], + "镇坪县": [ + 109.52, + 31.88 + ], + "旬阳县": [ + 109.38, + 32.83 + ], + "白河县": [ + 110.1, + 32.82 + ], + "商洛市": [ + 109.93, + 33.87 + ], + "商州区": [ + 109.93, + 33.87 + ], + "洛南县": [ + 110.13, + 34.08 + ], + "丹凤县": [ + 110.33, + 33.7 + ], + "商南县": [ + 110.88, + 33.53 + ], + "山阳县": [ + 109.88, + 33.53 + ], + "镇安县": [ + 109.15, + 33.43 + ], + "柞水县": [ + 109.1, + 33.68 + ], + "兰州市": [ + 103.82, + 36.07 + ], + "城关区": [ + 103.83, + 36.05 + ], + "西固区": [ + 103.62, + 36.1 + ], + "红古区": [ + 102.87, + 36.33 + ], + "永登县": [ + 103.27, + 36.73 + ], + "皋兰县": [ + 103.95, + 36.33 + ], + "榆中县": [ + 104.12, + 35.85 + ], + "嘉峪关市": [ + 98.27, + 39.8 + ], + "金昌市": [ + 102.18, + 38.5 + ], + "金川区": [ + 102.18, + 38.5 + ], + "永昌县": [ + 101.97, + 38.25 + ], + "白银市": [ + 104.18, + 36.55 + ], + "白银区": [ + 104.18, + 36.55 + ], + "平川区": [ + 104.83, + 36.73 + ], + "靖远县": [ + 104.68, + 36.57 + ], + "会宁县": [ + 105.05, + 35.7 + ], + "景泰县": [ + 104.07, + 37.15 + ], + "天水市": [ + 105.72, + 34.58 + ], + "清水县": [ + 106.13, + 34.75 + ], + "秦安县": [ + 105.67, + 34.87 + ], + "甘谷县": [ + 105.33, + 34.73 + ], + "武山县": [ + 104.88, + 34.72 + ], + "张家川回族自治县": [ + 106.22, + 35 + ], + "武威市": [ + 102.63, + 37.93 + ], + "凉州区": [ + 102.63, + 37.93 + ], + "民勤县": [ + 103.08, + 38.62 + ], + "古浪县": [ + 102.88, + 37.47 + ], + "天祝藏族自治县": [ + 103.13, + 36.98 + ], + "张掖市": [ + 100.45, + 38.93 + ], + "甘州区": [ + 100.45, + 38.93 + ], + "肃南裕固族自治县": [ + 99.62, + 38.83 + ], + "民乐县": [ + 100.82, + 38.43 + ], + "临泽县": [ + 100.17, + 39.13 + ], + "高台县": [ + 99.82, + 39.38 + ], + "山丹县": [ + 101.08, + 38.78 + ], + "平凉市": [ + 106.67, + 35.55 + ], + "崆峒区": [ + 106.67, + 35.55 + ], + "泾川县": [ + 107.37, + 35.33 + ], + "灵台县": [ + 107.62, + 35.07 + ], + "崇信县": [ + 107.03, + 35.3 + ], + "华亭县": [ + 106.65, + 35.22 + ], + "庄浪县": [ + 106.05, + 35.2 + ], + "静宁县": [ + 105.72, + 35.52 + ], + "酒泉市": [ + 98.52, + 39.75 + ], + "肃州区": [ + 98.52, + 39.75 + ], + "金塔县": [ + 98.9, + 39.98 + ], + "肃北蒙古族自治县": [ + 94.88, + 39.52 + ], + "阿克塞哈萨克族自治县": [ + 94.33, + 39.63 + ], + "玉门市": [ + 97.05, + 40.28 + ], + "敦煌市": [ + 94.67, + 40.13 + ], + "庆阳市": [ + 107.63, + 35.73 + ], + "西峰区": [ + 107.63, + 35.73 + ], + "庆城县": [ + 107.88, + 36 + ], + "环县": [ + 107.3, + 36.58 + ], + "华池县": [ + 107.98, + 36.47 + ], + "合水县": [ + 108.02, + 35.82 + ], + "正宁县": [ + 108.37, + 35.5 + ], + "宁县": [ + 107.92, + 35.5 + ], + "镇原县": [ + 107.2, + 35.68 + ], + "定西市": [ + 104.62, + 35.58 + ], + "安定区": [ + 104.62, + 35.58 + ], + "通渭县": [ + 105.25, + 35.2 + ], + "陇西县": [ + 104.63, + 35 + ], + "渭源县": [ + 104.22, + 35.13 + ], + "临洮县": [ + 103.87, + 35.38 + ], + "漳县": [ + 104.47, + 34.85 + ], + "岷县": [ + 104.03, + 34.43 + ], + "陇南市": [ + 104.92, + 33.4 + ], + "武都区": [ + 104.92, + 33.4 + ], + "成县": [ + 105.72, + 33.73 + ], + "文县": [ + 104.68, + 32.95 + ], + "宕昌县": [ + 104.38, + 34.05 + ], + "康县": [ + 105.6, + 33.33 + ], + "西和县": [ + 105.3, + 34.02 + ], + "礼县": [ + 105.17, + 34.18 + ], + "徽县": [ + 106.08, + 33.77 + ], + "两当县": [ + 106.3, + 33.92 + ], + "临夏回族自治州": [ + 103.22, + 35.6 + ], + "临夏市": [ + 103.22, + 35.6 + ], + "临夏县": [ + 103, + 35.5 + ], + "康乐县": [ + 103.72, + 35.37 + ], + "永靖县": [ + 103.32, + 35.93 + ], + "广河县": [ + 103.58, + 35.48 + ], + "和政县": [ + 103.35, + 35.43 + ], + "东乡族自治县": [ + 103.4, + 35.67 + ], + "甘南藏族自治州": [ + 102.92, + 34.98 + ], + "合作市": [ + 102.92, + 34.98 + ], + "临潭县": [ + 103.35, + 34.7 + ], + "卓尼县": [ + 103.5, + 34.58 + ], + "舟曲县": [ + 104.37, + 33.78 + ], + "迭部县": [ + 103.22, + 34.05 + ], + "玛曲县": [ + 102.07, + 34 + ], + "碌曲县": [ + 102.48, + 34.58 + ], + "夏河县": [ + 102.52, + 35.2 + ], + "西宁市": [ + 101.78, + 36.62 + ], + "城东区": [ + 101.8, + 36.62 + ], + "城中区": [ + 101.78, + 36.62 + ], + "城西区": [ + 101.77, + 36.62 + ], + "城北区": [ + 101.77, + 36.67 + ], + "大通回族土族自治县": [ + 101.68, + 36.93 + ], + "湟中县": [ + 101.57, + 36.5 + ], + "湟源县": [ + 101.27, + 36.68 + ], + "海东地区": [ + 102.12, + 36.5 + ], + "平安县": [ + 102.12, + 36.5 + ], + "民和回族土族自治县": [ + 102.8, + 36.33 + ], + "乐都县": [ + 102.4, + 36.48 + ], + "互助土族自治县": [ + 101.95, + 36.83 + ], + "化隆回族自治县": [ + 102.27, + 36.1 + ], + "循化撒拉族自治县": [ + 102.48, + 35.85 + ], + "海北藏族自治州": [ + 100.9, + 36.97 + ], + "门源回族自治县": [ + 101.62, + 37.38 + ], + "祁连县": [ + 100.25, + 38.18 + ], + "海晏县": [ + 100.98, + 36.9 + ], + "刚察县": [ + 100.13, + 37.33 + ], + "黄南藏族自治州": [ + 102.02, + 35.52 + ], + "同仁县": [ + 102.02, + 35.52 + ], + "尖扎县": [ + 102.03, + 35.93 + ], + "泽库县": [ + 101.47, + 35.03 + ], + "河南蒙古族自治县": [ + 101.6, + 34.73 + ], + "海南藏族自治州": [ + 100.62, + 36.28 + ], + "共和县": [ + 100.62, + 36.28 + ], + "同德县": [ + 100.57, + 35.25 + ], + "贵德县": [ + 101.43, + 36.05 + ], + "兴海县": [ + 99.98, + 35.58 + ], + "贵南县": [ + 100.75, + 35.58 + ], + "果洛藏族自治州": [ + 100.23, + 34.48 + ], + "玛沁县": [ + 100.23, + 34.48 + ], + "班玛县": [ + 100.73, + 32.93 + ], + "甘德县": [ + 99.9, + 33.97 + ], + "达日县": [ + 99.65, + 33.75 + ], + "久治县": [ + 101.48, + 33.43 + ], + "玛多县": [ + 98.18, + 34.92 + ], + "玉树藏族自治州": [ + 97.02, + 33 + ], + "玉树县": [ + 97.02, + 33 + ], + "杂多县": [ + 95.3, + 32.9 + ], + "称多县": [ + 97.1, + 33.37 + ], + "治多县": [ + 95.62, + 33.85 + ], + "囊谦县": [ + 96.48, + 32.2 + ], + "曲麻莱县": [ + 95.8, + 34.13 + ], + "海西蒙古族藏族自治州": [ + 97.37, + 37.37 + ], + "格尔木市": [ + 94.9, + 36.42 + ], + "德令哈市": [ + 97.37, + 37.37 + ], + "乌兰县": [ + 98.48, + 36.93 + ], + "都兰县": [ + 98.08, + 36.3 + ], + "天峻县": [ + 99.02, + 37.3 + ], + "银川市": [ + 106.28, + 38.47 + ], + "兴庆区": [ + 106.28, + 38.48 + ], + "西夏区": [ + 106.18, + 38.48 + ], + "金凤区": [ + 106.25, + 38.47 + ], + "永宁县": [ + 106.25, + 38.28 + ], + "贺兰县": [ + 106.35, + 38.55 + ], + "灵武市": [ + 106.33, + 38.1 + ], + "石嘴山市": [ + 106.38, + 39.02 + ], + "大武口区": [ + 106.38, + 39.02 + ], + "惠农区": [ + 106.78, + 39.25 + ], + "平罗县": [ + 106.53, + 38.9 + ], + "吴忠市": [ + 106.2, + 37.98 + ], + "利通区": [ + 106.2, + 37.98 + ], + "盐池县": [ + 107.4, + 37.78 + ], + "同心县": [ + 105.92, + 36.98 + ], + "青铜峡市": [ + 106.07, + 38.02 + ], + "固原市": [ + 106.28, + 36 + ], + "原州区": [ + 106.28, + 36 + ], + "西吉县": [ + 105.73, + 35.97 + ], + "隆德县": [ + 106.12, + 35.62 + ], + "泾源县": [ + 106.33, + 35.48 + ], + "彭阳县": [ + 106.63, + 35.85 + ], + "中卫市": [ + 105.18, + 37.52 + ], + "沙坡头区": [ + 105.18, + 37.52 + ], + "中宁县": [ + 105.67, + 37.48 + ], + "海原县": [ + 105.65, + 36.57 + ], + "乌鲁木齐市": [ + 87.62, + 43.82 + ], + "天山区": [ + 87.65, + 43.78 + ], + "沙依巴克区": [ + 87.6, + 43.78 + ], + "新市区": [ + 87.6, + 43.85 + ], + "水磨沟区": [ + 87.63, + 43.83 + ], + "头屯河区": [ + 87.42, + 43.87 + ], + "达坂城区": [ + 88.3, + 43.35 + ], + "乌鲁木齐县": [ + 87.6, + 43.8 + ], + "克拉玛依市": [ + 84.87, + 45.6 + ], + "独山子区": [ + 84.85, + 44.32 + ], + "克拉玛依区": [ + 84.87, + 45.6 + ], + "白碱滩区": [ + 85.13, + 45.7 + ], + "乌尔禾区": [ + 85.68, + 46.08 + ], + "吐鲁番地区": [ + 89.17, + 42.95 + ], + "吐鲁番市": [ + 89.17, + 42.95 + ], + "鄯善县": [ + 90.22, + 42.87 + ], + "托克逊县": [ + 88.65, + 42.78 + ], + "哈密地区": [ + 93.52, + 42.83 + ], + "哈密市": [ + 93.52, + 42.83 + ], + "伊吾县": [ + 94.7, + 43.25 + ], + "昌吉回族自治州": [ + 87.3, + 44.02 + ], + "昌吉市": [ + 87.3, + 44.02 + ], + "阜康市": [ + 87.98, + 44.15 + ], + "米泉市": [ + 87.65, + 43.97 + ], + "呼图壁县": [ + 86.9, + 44.18 + ], + "玛纳斯县": [ + 86.22, + 44.3 + ], + "奇台县": [ + 89.58, + 44.02 + ], + "吉木萨尔县": [ + 89.18, + 44 + ], + "木垒哈萨克自治县": [ + 90.28, + 43.83 + ], + "博尔塔拉蒙古自治州": [ + 82.07, + 44.9 + ], + "博乐市": [ + 82.07, + 44.9 + ], + "精河县": [ + 82.88, + 44.6 + ], + "温泉县": [ + 81.03, + 44.97 + ], + "巴音郭楞蒙古自治州": [ + 86.15, + 41.77 + ], + "库尔勒市": [ + 86.15, + 41.77 + ], + "轮台县": [ + 84.27, + 41.78 + ], + "尉犁县": [ + 86.25, + 41.33 + ], + "若羌县": [ + 88.17, + 39.02 + ], + "且末县": [ + 85.53, + 38.13 + ], + "焉耆回族自治县": [ + 86.57, + 42.07 + ], + "和静县": [ + 86.4, + 42.32 + ], + "和硕县": [ + 86.87, + 42.27 + ], + "博湖县": [ + 86.63, + 41.98 + ], + "阿克苏地区": [ + 80.27, + 41.17 + ], + "阿克苏市": [ + 80.27, + 41.17 + ], + "温宿县": [ + 80.23, + 41.28 + ], + "库车县": [ + 82.97, + 41.72 + ], + "沙雅县": [ + 82.78, + 41.22 + ], + "新和县": [ + 82.6, + 41.55 + ], + "拜城县": [ + 81.87, + 41.8 + ], + "乌什县": [ + 79.23, + 41.22 + ], + "阿瓦提县": [ + 80.38, + 40.63 + ], + "柯坪县": [ + 79.05, + 40.5 + ], + "阿图什市": [ + 76.17, + 39.72 + ], + "阿克陶县": [ + 75.95, + 39.15 + ], + "阿合奇县": [ + 78.45, + 40.93 + ], + "乌恰县": [ + 75.25, + 39.72 + ], + "喀什地区": [ + 75.98, + 39.47 + ], + "喀什市": [ + 75.98, + 39.47 + ], + "疏附县": [ + 75.85, + 39.38 + ], + "疏勒县": [ + 76.05, + 39.4 + ], + "英吉沙县": [ + 76.17, + 38.93 + ], + "泽普县": [ + 77.27, + 38.18 + ], + "莎车县": [ + 77.23, + 38.42 + ], + "叶城县": [ + 77.42, + 37.88 + ], + "麦盖提县": [ + 77.65, + 38.9 + ], + "岳普湖县": [ + 76.77, + 39.23 + ], + "伽师县": [ + 76.73, + 39.5 + ], + "巴楚县": [ + 78.55, + 39.78 + ], + "和田地区": [ + 79.92, + 37.12 + ], + "和田市": [ + 79.92, + 37.12 + ], + "和田县": [ + 79.93, + 37.1 + ], + "墨玉县": [ + 79.73, + 37.27 + ], + "皮山县": [ + 78.28, + 37.62 + ], + "洛浦县": [ + 80.18, + 37.07 + ], + "策勒县": [ + 80.8, + 37 + ], + "于田县": [ + 81.67, + 36.85 + ], + "民丰县": [ + 82.68, + 37.07 + ], + "伊犁哈萨克自治州": [ + 81.32, + 43.92 + ], + "伊宁市": [ + 81.32, + 43.92 + ], + "奎屯市": [ + 84.9, + 44.42 + ], + "伊宁县": [ + 81.52, + 43.98 + ], + "察布查尔锡伯自治县": [ + 81.15, + 43.83 + ], + "霍城县": [ + 80.88, + 44.05 + ], + "巩留县": [ + 82.23, + 43.48 + ], + "新源县": [ + 83.25, + 43.43 + ], + "昭苏县": [ + 81.13, + 43.15 + ], + "特克斯县": [ + 81.83, + 43.22 + ], + "尼勒克县": [ + 82.5, + 43.78 + ], + "塔城地区": [ + 82.98, + 46.75 + ], + "塔城市": [ + 82.98, + 46.75 + ], + "乌苏市": [ + 84.68, + 44.43 + ], + "额敏县": [ + 83.63, + 46.53 + ], + "沙湾县": [ + 85.62, + 44.33 + ], + "托里县": [ + 83.6, + 45.93 + ], + "裕民县": [ + 82.98, + 46.2 + ], + "和布克赛尔蒙古自治县": [ + 85.72, + 46.8 + ], + "阿勒泰地区": [ + 88.13, + 47.85 + ], + "阿勒泰市": [ + 88.13, + 47.85 + ], + "布尔津县": [ + 86.85, + 47.7 + ], + "富蕴县": [ + 89.52, + 47 + ], + "福海县": [ + 87.5, + 47.12 + ], + "哈巴河县": [ + 86.42, + 48.07 + ], + "青河县": [ + 90.38, + 46.67 + ], + "吉木乃县": [ + 85.88, + 47.43 + ], + "石河子市": [ + 86.03, + 44.3 + ], + "阿拉尔市": [ + 81.28, + 40.55 + ], + "图木舒克市": [ + 79.13, + 39.85 + ], + "五家渠市": [ + 87.53, + 44.17 + ], + "台北市": [ + 121.5, + 25.03 + ], + "高雄市": [ + 120.28, + 22.62 + ], + "基隆市": [ + 121.73, + 25.13 + ], + "台中市": [ + 120.67, + 24.15 + ], + "台南市": [ + 120.2, + 23 + ], + "新竹市": [ + 120.95, + 24.82 + ], + "嘉义市": [ + 120.43, + 23.48 + ], + "台北县": [ + 121.47, + 25.02 + ], + "宜兰县": [ + 121.75, + 24.77 + ], + "桃园县": [ + 121.3, + 24.97 + ], + "苗栗县": [ + 120.8, + 24.53 + ], + "台中县": [ + 120.72, + 24.25 + ], + "彰化县": [ + 120.53, + 24.08 + ], + "南投县": [ + 120.67, + 23.92 + ], + "云林县": [ + 120.53, + 23.72 + ], + "台南县": [ + 120.32, + 23.32 + ], + "高雄县": [ + 120.37, + 22.63 + ], + "屏东县": [ + 120.48, + 22.67 + ], + "台东县": [ + 121.15, + 22.75 + ], + "花莲县": [ + 121.6, + 23.98 + ], + "澎湖县": [ + 119.58, + 23.58 + ], + "北京": [ + 116.407526, + 39.904030 + ], + "天津": [ + 117.200983, + 39.084158 + ], + "河北": [ + 114.468664, + 38.037057 + ], + "山西": [ + 112.562398, + 37.873531 + ], + "内蒙古": [ + 111.765617, + 40.817498 + ], + "辽宁": [ + 123.429440, + 41.835441 + ], + "吉林": [ + 125.325990, + 43.896536 + ], + "黑龙江": [ + 126.661669, + 45.742347 + ], + "上海": [ + 121.473701, + 31.230416 + ], + "江苏": [ + 118.763232, + 32.061707 + ], + "浙江": [ + 120.152791, + 30.267446 + ], + "安徽": [ + 117.284922, + 31.861184 + ], + "福建": [ + 119.295144, + 26.100779 + ], + "江西": [ + 115.909228, + 28.675696 + ], + "山东": [ + 117.020359, + 36.668530 + ], + "河南": [ + 113.753602, + 34.765515 + ], + "湖北": [ + 114.341861, + 30.546498 + ], + "湖南": [ + 112.983810, + 28.112444 + ], + "广东": [ + 113.266530, + 23.132191 + ], + "广西": [ + 108.327546, + 22.815478 + ], + "海南": [ + 110.349228, + 20.017377 + ], + "重庆": [ + 106.551556, + 29.563009 + ], + "四川": [ + 104.075931, + 30.651651 + ], + "贵州": [ + 106.707410, + 26.598194 + ], + "云南": [ + 102.710002, + 25.045806 + ], + "西藏": [ + 91.117212, + 29.646922 + ], + "陕西": [ + 108.954239, + 34.265472 + ], + "甘肃": [ + 103.826308, + 36.059421 + ], + "青海": [ + 101.780199, + 36.620901 + ], + "宁夏": [ + 106.258754, + 38.471317 + ], + "新疆": [ + 87.627704, + 43.793026 + ], + "香港": [ + 114.173355, + 22.320048 + ], + "澳门": [ + 113.549090, + 22.198951 + ], + "台湾": [ + 121.509062, + 25.044332 + ] +} \ No newline at end of file diff --git a/resource/datasets/countries_regions_db.json b/resource/datasets/countries_regions_db.json new file mode 100644 index 0000000..98edf9a --- /dev/null +++ b/resource/datasets/countries_regions_db.json @@ -0,0 +1,218 @@ +{ + "蒲隆地": "BI", + "圣卢西亚": "LC", + "巴巴多斯": "BB", + "安道尔": "AD", + "利比里亚": "LR", + "吉尔吉斯斯坦": "KG", + "阿曼": "OM", + "利比亚": "LY", + "根西": "GG", + "南非": "ZA", + "阿塞拜疆": "AZ", + "巴拉圭": "PY", + "匈牙利": "HU", + "巴勒斯坦": "PS", + "泰国": "TH", + "黎巴嫩": "LB", + "英属维尔京群岛": "VG", + "特立尼达和多巴哥": "TT", + "巴基斯坦": "PK", + "加拿大": "CA", + "保加利亚": "BG", + "马来西亚": "MY", + "叙利亚": "SY", + "毛里塔尼亚": "MR", + "白俄罗斯": "BY", + "秘鲁": "PE", + "摩洛哥": "MA", + "莱索托": "LS", + "法罗群岛": "FO", + "圣基茨和尼维斯": "KN", + "阿根廷": "AR", + "委内瑞拉": "VE", + "塞舌尔": "SC", + "英属印度洋领地": "IO", + "瓦努阿图": "VU", + "纳米比亚": "NA", + "马拉维": "MW", + "克罗地亚": "HR", + "玻利维亚": "BO", + "塞内加尔": "SN", + "希腊": "GR", + "蒙古": "MN", + "东帝汶": "TL", + "新加坡": "SG", + "意大利": "IT", + "皮特凱恩群島": "PN", + "芬兰": "FI", + "圭亚那": "GY", + "福克兰群岛": "FK", + "毛里求斯": "MU", + "马其顿": "MK", + "新西兰": "NZ", + "波斯尼亚-黑塞哥维那": "BA", + "吐瓦鲁": "TV", + "以色列": "IL", + "塞尔维亚": "RS", + "密克罗尼西亚联邦": "FM", + "斯洛文尼亚": "SI", + "阿富汗": "AF", + "科威特": "KW", + "英国": "GB", + "汤加": "TO", + "贝宁": "BJ", + "撒拉威阿拉伯民主共和国": "", + "海地": "HT", + "格鲁吉亚": "GE", + "安提瓜和巴布达": "AG", + "刚果金": "CD", + "澳大利亚": "AU", + "史瓦济兰": "SZ", + "马达加斯加": "MG", + "哥伦比亚": "CO", + "多米尼加共和国": "DO", + "爱沙尼亚": "EE", + "哥斯达黎加": "CR", + "塞浦路斯": "CY", + "沙特阿拉伯": "SA", + "南苏丹": "SS", + "荷兰": "NL", + "圣马力诺": "SM", + "罗马尼亚": "RO", + "智利": "CL", + "几内亚比索": "GW", + "尼加拉瓜": "NI", + "特克斯和凯科斯群岛": "TC", + "珊瑚海群岛领地": "", + "泽西": "JE", + "奥地利": "AT", + "蒙特塞拉特": "MS", + "纽埃": "NU", + "圣文森特和格林纳丁斯": "VC", + "伯利兹": "BZ", + "斯洛伐克": "SK", + "哈萨克斯坦": "KZ", + "直布罗陀": "GI", + "柬埔寨": "KH", + "立陶宛": "LT", + "中非共和国": "CF", + "瑞典": "SE", + "爱尔兰": "IE", + "赤道几内亚": "GQ", + "亚美尼亚": "AM", + "捷克": "CZ", + "冈比亚": "GM", + "格陵兰": "GL", + "科索沃": "", + "印度": "IN", + "多哥": "TG", + "挪威": "NO", + "土耳其": "TR", + "拉脱维亚": "LV", + "佛得角": "CV", + "乌兹别克斯坦": "UZ", + "肯尼亚": "KE", + "博茨瓦纳": "BW", + "加蓬": "GA", + "塔吉克斯坦": "TJ", + "尼日尔": "NE", + "布基纳法索": "BF", + "安圭拉": "AI", + "老挝": "LA", + "阿尔巴尼亚": "AL", + "厄瓜多尔": "EC", + "葡萄牙": "PT", + "乍得": "TD", + "南乔治亚和南桑威奇群岛": "GS", + "几内亚": "GN", + "冰岛": "IS", + "托克劳": "TK", + "摩纳哥": "MC", + "埃及": "EG", + "马绍尔群岛": "MH", + "巴拿马": "PA", + "巴林": "BH", + "苏里南": "SR", + "帕劳": "PW", + "尼日利亚": "NG", + "加纳": "GH", + "牙买加": "JM", + "巴哈马": "BS", + "波兰": "PL", + "土库曼": "TM", + "古巴": "CU", + "吉布提": "DJ", + "马恩岛": "IM", + "巴布亚新几内亚": "PG", + "文莱": "BN", + "摩尔多瓦": "MD", + "开曼群岛": "KY", + "安哥拉": "AO", + "乌克兰": "UA", + "喀麦隆": "CM", + "萨尔瓦多": "SV", + "萨摩亚": "WS", + "黑山": "ME", + "孟加拉国": "BD", + "韩国": "KR", + "苏丹": "SD", + "厄立特里亚": "ER", + "库克群岛": "CK", + "马里": "ML", + "伊朗": "IR", + "伊拉克": "IQ", + "日本": "JP", + "突尼斯": "TN", + "津巴布韦": "ZW", + "菲律宾": "PH", + "约旦": "JO", + "埃塞俄比亚": "ET", + "德国": "DE", + "巴西": "BR", + "卢旺达": "RW", + "洪都拉斯": "HN", + "梵蒂冈": "VA", + "基里巴斯": "KI", + "阿拉伯联合酋长国": "AE", + "墨西哥": "MX", + "塞拉利昂": "SL", + "所罗门群岛": "SB", + "斯里兰卡": "LK", + "俄罗斯": "RU", + "法国": "FR", + "危地马拉": "GT", + "越南": "VN", + "坦桑尼亚": "TZ", + "比利时": "BE", + "丹麦": "DK", + "索马里": "SO", + "美国": "US", + "马尔代夫": "MV", + "列支敦士登": "LI", + "科摩罗": "KM", + "百慕达群岛": "BM", + "不丹": "BT", + "朝鲜": "KP", + "莫桑比克": "MZ", + "印度尼西亚, 印尼": "ID", + "也门": "YE", + "刚果-布拉柴维尔": "CG", + "乌拉圭": "UY", + "圣赫勒拿-阿森松和特里斯坦-达库尼亚": "SH", + "尼泊尔": "NP", + "多米尼克": "DM", + "马耳他": "MT", + "阿尔及利亚": "DZ", + "卡塔尔": "QA", + "赞比亚": "ZM", + "缅甸": "MM", + "卢森堡": "LU", + "斐济": "FJ", + "西班牙": "ES", + "乌干达": "UG", + "中国": "CN", + "中国香港": "HK", + "中国台湾": "TW", + "china": "CN" +} diff --git a/resource/datasets/map_filename.json b/resource/datasets/map_filename.json new file mode 100644 index 0000000..b63752e --- /dev/null +++ b/resource/datasets/map_filename.json @@ -0,0 +1,2550 @@ +{ + "bulma": [ + "bulma.min", + "css" + ], + "jquery": [ + "jquery.min", + "js" + ], + "jquery-ui": [ + "jquery-ui.min", + "js" + ], + "resize-sensor": [ + "ResizeSensor", + "js" + ], + "echarts": [ + "echarts.min", + "js" + ], + "echarts-gl": [ + "echarts-gl.min", + "js" + ], + "echarts-liquidfill": [ + "echarts-liquidfill.min", + "js" + ], + "echarts-wordcloud": [ + "echarts-wordcloud.min", + "js" + ], + "bmap": [ + "bmap.min", + "js" + ], + "chalk": [ + "themes/chalk", + "js" + ], + "essos": [ + "themes/essos", + "js" + ], + "halloween": [ + "themes/halloween", + "js" + ], + "infographic": [ + "themes/infographic", + "js" + ], + "macarons": [ + "themes/macarons", + "js" + ], + "purple-passion": [ + "themes/purple-passion", + "js" + ], + "roma": [ + "themes/roma", + "js" + ], + "romantic": [ + "themes/romantic", + "js" + ], + "shine": [ + "themes/shine", + "js" + ], + "vintage": [ + "themes/vintage", + "js" + ], + "walden": [ + "themes/walden", + "js" + ], + "westeros": [ + "themes/westeros", + "js" + ], + "wonderland": [ + "themes/wonderland", + "js" + ], + "china": [ + "maps/china", + "js" + ], + "china-cities": [ + "maps/china-cities", + "js" + ], + "world": [ + "maps/world", + "js" + ], + "world_china_provinces": [ + "maps/world_china_provinces", + "js" + ], + "广东": [ + "maps/guangdong", + "js" + ], + "安徽": [ + "maps/anhui", + "js" + ], + "福建": [ + "maps/fujian", + "js" + ], + "甘肃": [ + "maps/gansu", + "js" + ], + "广西": [ + "maps/guangxi", + "js" + ], + "贵州": [ + "maps/guizhou", + "js" + ], + "海南": [ + "maps/hainan", + "js" + ], + "河北": [ + "maps/hebei", + "js" + ], + "黑龙江": [ + "maps/heilongjiang", + "js" + ], + "河南": [ + "maps/henan", + "js" + ], + "湖北": [ + "maps/hubei", + "js" + ], + "湖南": [ + "maps/hunan", + "js" + ], + "江苏": [ + "maps/jiangsu", + "js" + ], + "江西": [ + "maps/jiangxi", + "js" + ], + "吉林": [ + "maps/jilin", + "js" + ], + "辽宁": [ + "maps/liaoning", + "js" + ], + "内蒙古": [ + "maps/neimenggu", + "js" + ], + "宁夏": [ + "maps/ningxia", + "js" + ], + "青海": [ + "maps/qinghai", + "js" + ], + "山东": [ + "maps/shandong", + "js" + ], + "山西": [ + "maps/shanxi", + "js" + ], + "陕西": [ + "maps/shanxi1", + "js" + ], + "四川": [ + "maps/sichuan", + "js" + ], + "台湾": [ + "maps/taiwan", + "js" + ], + "新疆": [ + "maps/xinjiang", + "js" + ], + "西藏": [ + "maps/xizang", + "js" + ], + "云南": [ + "maps/yunnan", + "js" + ], + "浙江": [ + "maps/zhejiang", + "js" + ], + "七台河": [ + "maps/hei1_long2_jiang1_qi1_tai2_he2", + "js" + ], + "万宁": [ + "maps/hai3_nan2_wan4_ning2", + "js" + ], + "三亚": [ + "maps/hai3_nan2_san1_ya4", + "js" + ], + "三明": [ + "maps/fu2_jian4_san1_ming2", + "js" + ], + "三沙": [ + "maps/hai3_nan2_san1_sha1", + "js" + ], + "三门峡": [ + "maps/he2_nan2_san1_men2_xia2", + "js" + ], + "上海": [ + "maps/shanghai", + "js" + ], + "上饶": [ + "maps/jiang1_xi1_shang4_rao2", + "js" + ], + "东方": [ + "maps/hai3_nan2_dong1_fang1", + "js" + ], + "东沙群岛": [ + "maps/guang3_dong1_dong1_sha1_qun2_dao3", + "js" + ], + "东莞": [ + "maps/guang3_dong1_dong1_guan1", + "js" + ], + "东营": [ + "maps/shan1_dong1_dong1_ying2", + "js" + ], + "中卫": [ + "maps/ning2_xia4_zhong1_wei4", + "js" + ], + "中山": [ + "maps/guang3_dong1_zhong1_shan1", + "js" + ], + "临夏回族自治州": [ + "maps/gan1_su4_lin2_xia4_hui2_zu2_zi4_zhi4_zhou1", + "js" + ], + "临汾": [ + "maps/shan1_xi1_lin2_fen2", + "js" + ], + "临沂": [ + "maps/shan1_dong1_lin2_yi2", + "js" + ], + "临沧": [ + "maps/yun2_nan2_lin2_cang1", + "js" + ], + "临高县": [ + "maps/hai3_nan2_lin2_gao1_xian4", + "js" + ], + "丹东": [ + "maps/liao2_ning2_dan1_dong1", + "js" + ], + "丽水": [ + "maps/zhe4_jiang1_li4_shui3", + "js" + ], + "丽江": [ + "maps/yun2_nan2_li4_jiang1", + "js" + ], + "乌兰察布": [ + "maps/nei4_meng2_gu3_wu1_lan2_cha2_bu4", + "js" + ], + "乌海": [ + "maps/nei4_meng2_gu3_wu1_hai3", + "js" + ], + "乌鲁木齐": [ + "maps/xin1_jiang1_wu1_lu3_mu4_qi2", + "js" + ], + "乐东黎族自治县": [ + "maps/hai3_nan2_le4_dong1_li2_zu2_zi4_zhi4_xian4", + "js" + ], + "乐山": [ + "maps/si4_chuan1_le4_shan1", + "js" + ], + "九江": [ + "maps/jiang1_xi1_jiu3_jiang1", + "js" + ], + "云浮": [ + "maps/guang3_dong1_yun2_fu2", + "js" + ], + "五家渠": [ + "maps/xin1_jiang1_wu3_jia1_qu2", + "js" + ], + "五指山": [ + "maps/hai3_nan2_wu3_zhi3_shan1", + "js" + ], + "亳州": [ + "maps/an1_hui1_bo2_zhou1", + "js" + ], + "仙桃": [ + "maps/hu2_bei3_xian1_tao2", + "js" + ], + "伊春": [ + "maps/hei1_long2_jiang1_yi1_chun1", + "js" + ], + "伊犁哈萨克自治州": [ + "maps/xin1_jiang1_yi1_li2_ha1_sa4_ke4_zi4_zhi4_zhou1", + "js" + ], + "佛山": [ + "maps/guang3_dong1_fo2_shan1", + "js" + ], + "佳木斯": [ + "maps/hei1_long2_jiang1_jia1_mu4_si1", + "js" + ], + "保亭黎族苗族自治县": [ + "maps/hai3_nan2_bao3_ting2_li2_zu2_miao2_zu2_zi4_zhi4_xian4", + "js" + ], + "保定": [ + "maps/he2_bei3_bao3_ding4", + "js" + ], + "保山": [ + "maps/yun2_nan2_bao3_shan1", + "js" + ], + "信阳": [ + "maps/he2_nan2_xin4_yang2", + "js" + ], + "儋州": [ + "maps/hai3_nan2_dan1_zhou1", + "js" + ], + "克孜勒苏柯尔克孜自治州": [ + "maps/xin1_jiang1_ke4_zi1_le4_su1_ke1_er3_ke4_zi1_zi4_zhi4_zhou1", + "js" + ], + "克拉玛依": [ + "maps/xin1_jiang1_ke4_la1_ma3_yi1", + "js" + ], + "六安": [ + "maps/an1_hui1_liu4_an1", + "js" + ], + "六盘水": [ + "maps/gui4_zhou1_liu4_pan2_shui3", + "js" + ], + "兰州": [ + "maps/gan1_su4_lan2_zhou1", + "js" + ], + "兴安盟": [ + "maps/nei4_meng2_gu3_xing1_an1_meng2", + "js" + ], + "内江": [ + "maps/si4_chuan1_nei4_jiang1", + "js" + ], + "凉山彝族自治州": [ + "maps/si4_chuan1_liang2_shan1_yi2_zu2_zi4_zhi4_zhou1", + "js" + ], + "包头": [ + "maps/nei4_meng2_gu3_bao1_tou2", + "js" + ], + "北京": [ + "maps/beijing", + "js" + ], + "北屯": [ + "maps/xin1_jiang1_bei3_tun2", + "js" + ], + "北海": [ + "maps/guang3_xi1_bei3_hai3", + "js" + ], + "十堰": [ + "maps/hu2_bei3_shi2_yan4", + "js" + ], + "南京": [ + "maps/jiang1_su1_nan2_jing1", + "js" + ], + "南充": [ + "maps/si4_chuan1_nan2_chong1", + "js" + ], + "南宁": [ + "maps/guang3_xi1_nan2_ning2", + "js" + ], + "南平": [ + "maps/fu2_jian4_nan2_ping2", + "js" + ], + "南昌": [ + "maps/jiang1_xi1_nan2_chang1", + "js" + ], + "南通": [ + "maps/jiang1_su1_nan2_tong1", + "js" + ], + "南阳": [ + "maps/he2_nan2_nan2_yang2", + "js" + ], + "博尔塔拉蒙古自治州": [ + "maps/xin1_jiang1_bo2_er3_ta3_la1_meng2_gu3_zi4_zhi4_zhou1", + "js" + ], + "厦门": [ + "maps/fu2_jian4_sha4_men2", + "js" + ], + "双河": [ + "maps/xin1_jiang1_shuang1_he2", + "js" + ], + "双鸭山": [ + "maps/hei1_long2_jiang1_shuang1_ya1_shan1", + "js" + ], + "可克达拉": [ + "maps/xin1_jiang1_ke3_ke4_da2_la1", + "js" + ], + "台州": [ + "maps/zhe4_jiang1_tai2_zhou1", + "js" + ], + "合肥": [ + "maps/an1_hui1_he2_fei2", + "js" + ], + "吉安": [ + "maps/jiang1_xi1_ji2_an1", + "js" + ], + "吉林市": [ + "maps/ji2_lin2_ji2_lin2", + "js" + ], + "吐鲁番": [ + "maps/xin1_jiang1_tu3_lu3_fan1", + "js" + ], + "吕梁": [ + "maps/shan1_xi1_lv3_liang2", + "js" + ], + "吴忠": [ + "maps/ning2_xia4_wu2_zhong1", + "js" + ], + "周口": [ + "maps/he2_nan2_zhou1_kou3", + "js" + ], + "呼伦贝尔": [ + "maps/nei4_meng2_gu3_hu1_lun2_bei4_er3", + "js" + ], + "呼和浩特": [ + "maps/nei4_meng2_gu3_hu1_he2_hao4_te4", + "js" + ], + "和田地区": [ + "maps/xin1_jiang1_he2_tian2_di4_qu1", + "js" + ], + "咸宁": [ + "maps/hu2_bei3_xian2_ning2", + "js" + ], + "咸阳": [ + "maps/shan3_xi1_xian2_yang2", + "js" + ], + "哈密": [ + "maps/xin1_jiang1_ha1_mi4", + "js" + ], + "哈尔滨": [ + "maps/hei1_long2_jiang1_ha1_er3_bin1", + "js" + ], + "唐山": [ + "maps/he2_bei3_tang2_shan1", + "js" + ], + "商丘": [ + "maps/he2_nan2_shang1_qiu1", + "js" + ], + "商洛": [ + "maps/shan3_xi1_shang1_luo4", + "js" + ], + "喀什地区": [ + "maps/xin1_jiang1_ka1_shi2_di4_qu1", + "js" + ], + "嘉兴": [ + "maps/zhe4_jiang1_jia1_xing1", + "js" + ], + "嘉峪关": [ + "maps/gan1_su4_jia1_yu4_guan1", + "js" + ], + "四平": [ + "maps/ji2_lin2_si4_ping2", + "js" + ], + "固原": [ + "maps/ning2_xia4_gu4_yuan2", + "js" + ], + "图木舒克": [ + "maps/xin1_jiang1_tu2_mu4_shu1_ke4", + "js" + ], + "塔城地区": [ + "maps/xin1_jiang1_ta3_cheng2_di4_qu1", + "js" + ], + "大兴安岭地区": [ + "maps/hei1_long2_jiang1_da4_xing1_an1_ling2_di4_qu1", + "js" + ], + "大同": [ + "maps/shan1_xi1_da4_tong2", + "js" + ], + "大庆": [ + "maps/hei1_long2_jiang1_da4_qing4", + "js" + ], + "大理白族自治州": [ + "maps/yun2_nan2_da4_li3_bai2_zu2_zi4_zhi4_zhou1", + "js" + ], + "大连": [ + "maps/liao2_ning2_da4_lian2", + "js" + ], + "天水": [ + "maps/gan1_su4_tian1_shui3", + "js" + ], + "天津": [ + "maps/tianjin", + "js" + ], + "天门": [ + "maps/hu2_bei3_tian1_men2", + "js" + ], + "太原": [ + "maps/shan1_xi1_tai4_yuan2", + "js" + ], + "威海": [ + "maps/shan1_dong1_wei1_hai3", + "js" + ], + "娄底": [ + "maps/hu2_nan2_lou2_di3", + "js" + ], + "孝感": [ + "maps/hu2_bei3_xiao4_gan3", + "js" + ], + "宁德": [ + "maps/fu2_jian4_ning2_de2", + "js" + ], + "宁波": [ + "maps/zhe4_jiang1_ning2_bo1", + "js" + ], + "安庆": [ + "maps/an1_hui1_an1_qing4", + "js" + ], + "安康": [ + "maps/shan3_xi1_an1_kang1", + "js" + ], + "安阳": [ + "maps/he2_nan2_an1_yang2", + "js" + ], + "安顺": [ + "maps/gui4_zhou1_an1_shun4", + "js" + ], + "定安县": [ + "maps/hai3_nan2_ding4_an1_xian4", + "js" + ], + "定西": [ + "maps/gan1_su4_ding4_xi1", + "js" + ], + "宜宾": [ + "maps/si4_chuan1_yi2_bin1", + "js" + ], + "宜昌": [ + "maps/hu2_bei3_yi2_chang1", + "js" + ], + "宜春": [ + "maps/jiang1_xi1_yi2_chun1", + "js" + ], + "宝鸡": [ + "maps/shan3_xi1_bao3_ji1", + "js" + ], + "宣城": [ + "maps/an1_hui1_xuan1_cheng2", + "js" + ], + "宿州": [ + "maps/an1_hui1_su4_zhou1", + "js" + ], + "宿迁": [ + "maps/jiang1_su1_su4_qian1", + "js" + ], + "屯昌县": [ + "maps/hai3_nan2_tun2_chang1_xian4", + "js" + ], + "山南": [ + "maps/xi1_cang2_shan1_nan2", + "js" + ], + "岳阳": [ + "maps/hu2_nan2_yue4_yang2", + "js" + ], + "崇左": [ + "maps/guang3_xi1_chong2_zuo3", + "js" + ], + "巴中": [ + "maps/si4_chuan1_ba1_zhong1", + "js" + ], + "巴彦淖尔": [ + "maps/nei4_meng2_gu3_ba1_yan4_nao4_er3", + "js" + ], + "巴音郭楞蒙古自治州": [ + "maps/xin1_jiang1_ba1_yin1_guo1_leng2_meng2_gu3_zi4_zhi4_zhou1", + "js" + ], + "常州": [ + "maps/jiang1_su1_chang2_zhou1", + "js" + ], + "常德": [ + "maps/hu2_nan2_chang2_de2", + "js" + ], + "平凉": [ + "maps/gan1_su4_ping2_liang2", + "js" + ], + "平顶山": [ + "maps/he2_nan2_ping2_ding3_shan1", + "js" + ], + "广元": [ + "maps/si4_chuan1_guang3_yuan2", + "js" + ], + "广安": [ + "maps/si4_chuan1_guang3_an1", + "js" + ], + "广州": [ + "maps/guang3_dong1_guang3_zhou1", + "js" + ], + "庆阳": [ + "maps/gan1_su4_qing4_yang2", + "js" + ], + "廊坊": [ + "maps/he2_bei3_lang2_fang1", + "js" + ], + "延安": [ + "maps/shan3_xi1_yan2_an1", + "js" + ], + "延边朝鲜族自治州": [ + "maps/ji2_lin2_yan2_bian1_zhao1_xian1_zu2_zi4_zhi4_zhou1", + "js" + ], + "开封": [ + "maps/he2_nan2_kai1_feng1", + "js" + ], + "张家口": [ + "maps/he2_bei3_zhang1_jia1_kou3", + "js" + ], + "张家界": [ + "maps/hu2_nan2_zhang1_jia1_jie4", + "js" + ], + "张掖": [ + "maps/gan1_su4_zhang1_ye4", + "js" + ], + "徐州": [ + "maps/jiang1_su1_xu2_zhou1", + "js" + ], + "德宏傣族景颇族自治州": [ + "maps/yun2_nan2_de2_hong2_dai3_zu2_jing3_po3_zu2_zi4_zhi4_zhou1", + "js" + ], + "德州": [ + "maps/shan1_dong1_de2_zhou1", + "js" + ], + "德阳": [ + "maps/si4_chuan1_de2_yang2", + "js" + ], + "忻州": [ + "maps/shan1_xi1_xin1_zhou1", + "js" + ], + "怀化": [ + "maps/hu2_nan2_huai2_hua4", + "js" + ], + "怒江傈僳族自治州": [ + "maps/yun2_nan2_nu4_jiang1_li4_su4_zu2_zi4_zhi4_zhou1", + "js" + ], + "恩施土家族苗族自治州": [ + "maps/hu2_bei3_en1_shi1_tu3_jia1_zu2_miao2_zu2_zi4_zhi4_zhou1", + "js" + ], + "惠州": [ + "maps/guang3_dong1_hui4_zhou1", + "js" + ], + "成都": [ + "maps/si4_chuan1_cheng2_du1", + "js" + ], + "扬州": [ + "maps/jiang1_su1_yang2_zhou1", + "js" + ], + "承德": [ + "maps/he2_bei3_cheng2_de2", + "js" + ], + "抚州": [ + "maps/jiang1_xi1_fu3_zhou1", + "js" + ], + "抚顺": [ + "maps/liao2_ning2_fu3_shun4", + "js" + ], + "拉萨": [ + "maps/xi1_cang2_la1_sa4", + "js" + ], + "揭阳": [ + "maps/guang3_dong1_jie1_yang2", + "js" + ], + "攀枝花": [ + "maps/si4_chuan1_pan1_zhi1_hua1", + "js" + ], + "文山壮族苗族自治州": [ + "maps/yun2_nan2_wen2_shan1_zhuang4_zu2_miao2_zu2_zi4_zhi4_zhou1", + "js" + ], + "文昌": [ + "maps/hai3_nan2_wen2_chang1", + "js" + ], + "新乡": [ + "maps/he2_nan2_xin1_xiang1", + "js" + ], + "新余": [ + "maps/jiang1_xi1_xin1_yu2", + "js" + ], + "无锡": [ + "maps/jiang1_su1_wu2_xi2", + "js" + ], + "日喀则": [ + "maps/xi1_cang2_ri4_ka1_ze2", + "js" + ], + "日照": [ + "maps/shan1_dong1_ri4_zhao4", + "js" + ], + "昆明": [ + "maps/yun2_nan2_kun1_ming2", + "js" + ], + "昆玉": [ + "maps/xin1_jiang1_kun1_yu4", + "js" + ], + "昌吉回族自治州": [ + "maps/xin1_jiang1_chang1_ji2_hui2_zu2_zi4_zhi4_zhou1", + "js" + ], + "昌江黎族自治县": [ + "maps/hai3_nan2_chang1_jiang1_li2_zu2_zi4_zhi4_xian4", + "js" + ], + "昌都": [ + "maps/xi1_cang2_chang1_du1", + "js" + ], + "昭通": [ + "maps/yun2_nan2_zhao1_tong1", + "js" + ], + "晋中": [ + "maps/shan1_xi1_jin4_zhong1", + "js" + ], + "晋城": [ + "maps/shan1_xi1_jin4_cheng2", + "js" + ], + "普洱": [ + "maps/yun2_nan2_pu3_er3", + "js" + ], + "景德镇": [ + "maps/jiang1_xi1_jing3_de2_zhen4", + "js" + ], + "曲靖": [ + "maps/yun2_nan2_qu1_jing4", + "js" + ], + "朔州": [ + "maps/shan1_xi1_shuo4_zhou1", + "js" + ], + "朝阳": [ + "maps/liao2_ning2_zhao1_yang2", + "js" + ], + "本溪": [ + "maps/liao2_ning2_ben3_xi1", + "js" + ], + "来宾": [ + "maps/guang3_xi1_lai2_bin1", + "js" + ], + "杭州": [ + "maps/zhe4_jiang1_hang2_zhou1", + "js" + ], + "松原": [ + "maps/ji2_lin2_song1_yuan2", + "js" + ], + "林芝": [ + "maps/xi1_cang2_lin2_zhi1", + "js" + ], + "果洛藏族自治州": [ + "maps/qing1_hai3_guo3_luo4_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "枣庄": [ + "maps/shan1_dong1_zao3_zhuang1", + "js" + ], + "柳州": [ + "maps/guang3_xi1_liu3_zhou1", + "js" + ], + "株洲": [ + "maps/hu2_nan2_zhu1_zhou1", + "js" + ], + "桂林": [ + "maps/guang3_xi1_gui4_lin2", + "js" + ], + "梅州": [ + "maps/guang3_dong1_mei2_zhou1", + "js" + ], + "梧州": [ + "maps/guang3_xi1_wu2_zhou1", + "js" + ], + "楚雄彝族自治州": [ + "maps/yun2_nan2_chu3_xiong2_yi2_zu2_zi4_zhi4_zhou1", + "js" + ], + "榆林": [ + "maps/shan3_xi1_yu2_lin2", + "js" + ], + "武威": [ + "maps/gan1_su4_wu3_wei1", + "js" + ], + "武汉": [ + "maps/hu2_bei3_wu3_han4", + "js" + ], + "毕节": [ + "maps/gui4_zhou1_bi4_jie2", + "js" + ], + "永州": [ + "maps/hu2_nan2_yong3_zhou1", + "js" + ], + "汉中": [ + "maps/shan3_xi1_han4_zhong1", + "js" + ], + "汕头": [ + "maps/guang3_dong1_shan4_tou2", + "js" + ], + "汕尾": [ + "maps/guang3_dong1_shan4_wei3", + "js" + ], + "江门": [ + "maps/guang3_dong1_jiang1_men2", + "js" + ], + "池州": [ + "maps/an1_hui1_chi2_zhou1", + "js" + ], + "沈阳": [ + "maps/liao2_ning2_shen3_yang2", + "js" + ], + "沧州": [ + "maps/he2_nan2_cang1_zhou1", + "js" + ], + "河池": [ + "maps/guang3_xi1_he2_chi2", + "js" + ], + "河源": [ + "maps/guang3_dong1_he2_yuan2", + "js" + ], + "泉州": [ + "maps/fu2_jian4_quan2_zhou1", + "js" + ], + "泰安": [ + "maps/shan1_dong1_tai4_an1", + "js" + ], + "泰州": [ + "maps/jiang1_su1_tai4_zhou1", + "js" + ], + "泸州": [ + "maps/si4_chuan1_lu2_zhou1", + "js" + ], + "洛阳": [ + "maps/he2_nan2_luo4_yang2", + "js" + ], + "济南": [ + "maps/shan1_dong1_ji4_nan2", + "js" + ], + "济宁": [ + "maps/shan1_dong1_ji4_ning2", + "js" + ], + "济源": [ + "maps/he2_nan2_ji4_yuan2", + "js" + ], + "海东": [ + "maps/qing1_hai3_hai3_dong1", + "js" + ], + "海北藏族自治州": [ + "maps/qing1_hai3_hai3_bei3_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "海南藏族自治州": [ + "maps/qing1_hai3_hai3_nan2_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "海口": [ + "maps/hai3_nan2_hai3_kou3", + "js" + ], + "海西蒙古族藏族自治州": [ + "maps/qing1_hai3_hai3_xi1_meng2_gu3_zu2_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "淄博": [ + "maps/shan1_dong1_zi1_bo2", + "js" + ], + "淮北": [ + "maps/an1_hui1_huai2_bei3", + "js" + ], + "淮南": [ + "maps/an1_hui1_huai2_nan2", + "js" + ], + "淮安": [ + "maps/jiang1_su1_huai2_an1", + "js" + ], + "深圳": [ + "maps/guang3_dong1_shen1_zhen4", + "js" + ], + "清远": [ + "maps/guang3_dong1_qing1_yuan3", + "js" + ], + "温州": [ + "maps/zhe4_jiang1_wen1_zhou1", + "js" + ], + "渭南": [ + "maps/shan3_xi1_wei4_nan2", + "js" + ], + "湖州": [ + "maps/zhe4_jiang1_hu2_zhou1", + "js" + ], + "湘潭": [ + "maps/hu2_nan2_xiang1_tan2", + "js" + ], + "湘西土家族苗族自治州": [ + "maps/hu2_nan2_xiang1_xi1_tu3_jia1_zu2_miao2_zu2_zi4_zhi4_zhou1", + "js" + ], + "湛江": [ + "maps/guang3_dong1_zhan4_jiang1", + "js" + ], + "滁州": [ + "maps/an1_hui1_chu2_zhou1", + "js" + ], + "滨州": [ + "maps/shan1_dong1_bin1_zhou1", + "js" + ], + "漯河": [ + "maps/he2_nan2_ta4_he2", + "js" + ], + "漳州": [ + "maps/fu2_jian4_zhang1_zhou1", + "js" + ], + "潍坊": [ + "maps/shan1_dong1_wei2_fang1", + "js" + ], + "潜江": [ + "maps/hu2_bei3_qian2_jiang1", + "js" + ], + "潮州": [ + "maps/guang3_dong1_chao2_zhou1", + "js" + ], + "澄迈县": [ + "maps/hai3_nan2_cheng2_mai4_xian4", + "js" + ], + "澳门": [ + "maps/aomen", + "js" + ], + "濮阳": [ + "maps/he2_nan2_pu2_yang2", + "js" + ], + "烟台": [ + "maps/shan1_dong1_yan1_tai2", + "js" + ], + "焦作": [ + "maps/he2_nan2_jiao1_zuo4", + "js" + ], + "牡丹江": [ + "maps/hei1_long2_jiang1_mu3_dan1_jiang1", + "js" + ], + "玉林": [ + "maps/guang3_xi1_yu4_lin2", + "js" + ], + "玉树藏族自治州": [ + "maps/qing1_hai3_yu4_shu4_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "玉溪": [ + "maps/yun2_nan2_yu4_xi1", + "js" + ], + "珠海": [ + "maps/guang3_dong1_zhu1_hai3", + "js" + ], + "琼中黎族苗族自治县": [ + "maps/hai3_nan2_qiong2_zhong1_li2_zu2_miao2_zu2_zi4_zhi4_xian4", + "js" + ], + "琼海": [ + "maps/hai3_nan2_qiong2_hai3", + "js" + ], + "甘南藏族自治州": [ + "maps/gan1_su4_gan1_nan2_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "甘孜藏族自治州": [ + "maps/si4_chuan1_gan1_zi1_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "白城": [ + "maps/ji2_lin2_bai2_cheng2", + "js" + ], + "白山": [ + "maps/ji2_lin2_bai2_shan1", + "js" + ], + "白沙黎族自治县": [ + "maps/hai3_nan2_bai2_sha1_li2_zu2_zi4_zhi4_xian4", + "js" + ], + "白银": [ + "maps/gan1_su4_bai2_yin2", + "js" + ], + "百色": [ + "maps/guang3_xi1_bai3_se4", + "js" + ], + "益阳": [ + "maps/hu2_nan2_yi4_yang2", + "js" + ], + "盐城": [ + "maps/jiang1_su1_yan2_cheng2", + "js" + ], + "盘锦": [ + "maps/liao2_ning2_pan2_jin3", + "js" + ], + "眉山": [ + "maps/si4_chuan1_mei2_shan1", + "js" + ], + "石嘴山": [ + "maps/ning2_xia4_shi2_zui3_shan1", + "js" + ], + "石家庄": [ + "maps/he2_bei3_shi2_jia1_zhuang1", + "js" + ], + "石河子": [ + "maps/xin1_jiang1_shi2_he2_zi3", + "js" + ], + "神农架林区": [ + "maps/hu2_bei3_shen2_nong2_jia4_lin2_qu1", + "js" + ], + "福州": [ + "maps/fu2_jian4_fu2_zhou1", + "js" + ], + "秦皇岛": [ + "maps/he2_bei3_qin2_huang2_dao3", + "js" + ], + "红河哈尼族彝族自治州": [ + "maps/yun2_nan2_hong2_he2_ha1_ni2_zu2_yi2_zu2_zi4_zhi4_zhou1", + "js" + ], + "绍兴": [ + "maps/zhe4_jiang1_shao4_xing1", + "js" + ], + "绥化": [ + "maps/hei1_long2_jiang1_sui1_hua4", + "js" + ], + "绵阳": [ + "maps/si4_chuan1_mian2_yang2", + "js" + ], + "聊城": [ + "maps/shan1_dong1_liao2_cheng2", + "js" + ], + "肇庆": [ + "maps/guang3_dong1_zhao4_qing4", + "js" + ], + "自贡": [ + "maps/si4_chuan1_zi4_gong4", + "js" + ], + "舟山": [ + "maps/zhe4_jiang1_zhou1_shan1", + "js" + ], + "芜湖": [ + "maps/an1_hui1_wu2_hu2", + "js" + ], + "苏州": [ + "maps/jiang1_su1_su1_zhou1", + "js" + ], + "茂名": [ + "maps/guang3_dong1_mao4_ming2", + "js" + ], + "荆州": [ + "maps/hu2_bei3_jing1_zhou1", + "js" + ], + "荆门": [ + "maps/hu2_bei3_jing1_men2", + "js" + ], + "莆田": [ + "maps/fu2_jian4_fu3_tian2", + "js" + ], + "莱芜": [ + "maps/shan1_dong1_lai2_wu2", + "js" + ], + "菏泽": [ + "maps/shan1_dong1_he2_ze2", + "js" + ], + "萍乡": [ + "maps/jiang1_xi1_ping2_xiang1", + "js" + ], + "营口": [ + "maps/liao2_ning2_ying2_kou3", + "js" + ], + "葫芦岛": [ + "maps/liao2_ning2_hu2_lu2_dao3", + "js" + ], + "蚌埠": [ + "maps/an1_hui1_bang4_bu4", + "js" + ], + "衡水": [ + "maps/he2_bei3_heng2_shui3", + "js" + ], + "衡阳": [ + "maps/hu2_nan2_heng2_yang2", + "js" + ], + "衢州": [ + "maps/zhe4_jiang1_qu2_zhou1", + "js" + ], + "襄阳": [ + "maps/hu2_bei3_xiang1_yang2", + "js" + ], + "西双版纳傣族自治州": [ + "maps/yun2_nan2_xi1_shuang1_ban3_na4_dai3_zu2_zi4_zhi4_zhou1", + "js" + ], + "西宁": [ + "maps/qing1_hai3_xi1_ning2", + "js" + ], + "西安": [ + "maps/shan3_xi1_xi1_an1", + "js" + ], + "许昌": [ + "maps/he2_nan2_xu3_chang1", + "js" + ], + "贵港": [ + "maps/guang3_xi1_gui4_gang3", + "js" + ], + "贵阳": [ + "maps/gui4_zhou1_gui4_yang2", + "js" + ], + "贺州": [ + "maps/guang3_xi1_he4_zhou1", + "js" + ], + "资阳": [ + "maps/si4_chuan1_zi1_yang2", + "js" + ], + "赣州": [ + "maps/jiang1_xi1_gan4_zhou1", + "js" + ], + "赤峰": [ + "maps/nei4_meng2_gu3_chi4_feng1", + "js" + ], + "辽源": [ + "maps/ji2_lin2_liao2_yuan2", + "js" + ], + "辽阳": [ + "maps/liao2_ning2_liao2_yang2", + "js" + ], + "达州": [ + "maps/si4_chuan1_da2_zhou1", + "js" + ], + "运城": [ + "maps/shan1_xi1_yun4_cheng2", + "js" + ], + "连云港": [ + "maps/jiang1_su1_lian2_yun2_gang3", + "js" + ], + "迪庆藏族自治州": [ + "maps/yun2_nan2_di2_qing4_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "通化": [ + "maps/ji2_lin2_tong1_hua4", + "js" + ], + "通辽": [ + "maps/nei4_meng2_gu3_tong1_liao2", + "js" + ], + "遂宁": [ + "maps/si4_chuan1_sui4_ning2", + "js" + ], + "遵义": [ + "maps/gui4_zhou1_zun1_yi4", + "js" + ], + "邢台": [ + "maps/he2_bei3_xing2_tai2", + "js" + ], + "那曲地区": [ + "maps/xi1_cang2_na4_qu1_di4_qu1", + "js" + ], + "邯郸": [ + "maps/he2_bei3_han2_dan1", + "js" + ], + "邵阳": [ + "maps/hu2_nan2_shao4_yang2", + "js" + ], + "郑州": [ + "maps/he2_nan2_zheng4_zhou1", + "js" + ], + "郴州": [ + "maps/hu2_nan2_chen1_zhou1", + "js" + ], + "鄂尔多斯": [ + "maps/nei4_meng2_gu3_e4_er3_duo1_si1", + "js" + ], + "鄂州": [ + "maps/hu2_bei3_e4_zhou1", + "js" + ], + "酒泉": [ + "maps/gan1_su4_jiu3_quan2", + "js" + ], + "重庆": [ + "maps/chongqing", + "js" + ], + "金华": [ + "maps/zhe4_jiang1_jin1_hua2", + "js" + ], + "金昌": [ + "maps/gan1_su4_jin1_chang1", + "js" + ], + "钦州": [ + "maps/guang3_xi1_qin1_zhou1", + "js" + ], + "铁岭": [ + "maps/liao2_ning2_tie3_ling2", + "js" + ], + "铁门关": [ + "maps/xin1_jiang1_tie3_men2_guan1", + "js" + ], + "铜仁": [ + "maps/gui4_zhou1_tong2_ren2", + "js" + ], + "铜川": [ + "maps/shan3_xi1_tong2_chuan1", + "js" + ], + "铜陵": [ + "maps/an1_hui1_tong2_ling2", + "js" + ], + "银川": [ + "maps/ning2_xia4_yin2_chuan1", + "js" + ], + "锡林郭勒盟": [ + "maps/nei4_meng2_gu3_xi2_lin2_guo1_le4_meng2", + "js" + ], + "锦州": [ + "maps/liao2_ning2_jin3_zhou1", + "js" + ], + "镇江": [ + "maps/jiang1_su1_zhen4_jiang1", + "js" + ], + "长春": [ + "maps/ji2_lin2_chang2_chun1", + "js" + ], + "长沙": [ + "maps/hu2_nan2_chang2_sha1", + "js" + ], + "长治": [ + "maps/shan1_xi1_chang2_zhi4", + "js" + ], + "阜新": [ + "maps/liao2_ning2_fu4_xin1", + "js" + ], + "阜阳": [ + "maps/an1_hui1_fu4_yang2", + "js" + ], + "防城港": [ + "maps/guang3_xi1_fang2_cheng2_gang3", + "js" + ], + "阳江": [ + "maps/guang3_dong1_yang2_jiang1", + "js" + ], + "阳泉": [ + "maps/shan1_xi1_yang2_quan2", + "js" + ], + "阿克苏地区": [ + "maps/xin1_jiang1_a1_ke4_su1_di4_qu1", + "js" + ], + "阿勒泰地区": [ + "maps/xin1_jiang1_a1_le4_tai4_di4_qu1", + "js" + ], + "阿坝藏族羌族自治州": [ + "maps/si4_chuan1_a1_ba4_cang2_zu2_qiang1_zu2_zi4_zhi4_zhou1", + "js" + ], + "阿拉善盟": [ + "maps/nei4_meng2_gu3_a1_la1_shan4_meng2", + "js" + ], + "阿拉尔": [ + "maps/xin1_jiang1_a1_la1_er3", + "js" + ], + "阿里地区": [ + "maps/xi1_cang2_a1_li3_di4_qu1", + "js" + ], + "陇南": [ + "maps/gan1_su4_long3_nan2", + "js" + ], + "陵水黎族自治县": [ + "maps/hai3_nan2_ling2_shui3_li2_zu2_zi4_zhi4_xian4", + "js" + ], + "随州": [ + "maps/hu2_bei3_sui2_zhou1", + "js" + ], + "雅安": [ + "maps/si4_chuan1_ya3_an1", + "js" + ], + "青岛": [ + "maps/shan1_dong1_qing1_dao3", + "js" + ], + "鞍山": [ + "maps/liao2_ning2_an1_shan1", + "js" + ], + "韶关": [ + "maps/guang3_dong1_shao2_guan1", + "js" + ], + "香港": [ + "maps/xianggang", + "js" + ], + "马鞍山": [ + "maps/an1_hui1_ma3_an1_shan1", + "js" + ], + "驻马店": [ + "maps/he2_nan2_zhu4_ma3_dian4", + "js" + ], + "鸡西": [ + "maps/hei1_long2_jiang1_ji1_xi1", + "js" + ], + "鹤壁": [ + "maps/he2_nan2_he4_bi4", + "js" + ], + "鹤岗": [ + "maps/hei1_long2_jiang1_he4_gang3", + "js" + ], + "鹰潭": [ + "maps/jiang1_xi1_ying1_tan2", + "js" + ], + "黄冈": [ + "maps/hu2_bei3_huang2_gang1", + "js" + ], + "黄南藏族自治州": [ + "maps/qing1_hai3_huang2_nan2_cang2_zu2_zi4_zhi4_zhou1", + "js" + ], + "黄山": [ + "maps/an1_hui1_huang2_shan1", + "js" + ], + "黄石": [ + "maps/hu2_bei3_huang2_shi2", + "js" + ], + "黑河": [ + "maps/hei1_long2_jiang1_hei1_he2", + "js" + ], + "黔东南苗族侗族自治州": [ + "maps/gui4_zhou1_qian2_dong1_nan2_miao2_zu2_tong1_zu2_zi4_zhi4_zhou1", + "js" + ], + "黔南布依族苗族自治州": [ + "maps/gui4_zhou1_qian2_nan2_bu4_yi1_zu2_miao2_zu2_zi4_zhi4_zhou1", + "js" + ], + "黔西南布依族苗族自治州": [ + "maps/gui4_zhou1_qian2_xi1_nan2_bu4_yi1_zu2_miao2_zu2_zi4_zhi4_zhou1", + "js" + ], + "齐齐哈尔": [ + "maps/hei1_long2_jiang1_qi2_qi2_ha1_er3", + "js" + ], + "龙岩": [ + "maps/fu2_jian4_long2_yan2", + "js" + ], + "阿富汗": [ + "maps/Afghanistan", + "js" + ], + "阿尔巴尼亚": [ + "maps/Albania", + "js" + ], + "阿尔及利亚": [ + "maps/Algeria", + "js" + ], + "安道尔": [ + "maps/Andorra", + "js" + ], + "安哥拉": [ + "maps/Angola", + "js" + ], + "安圭拉": [ + "maps/Anguilla", + "js" + ], + "安提瓜和巴布达": [ + "maps/Antigua_and_Barbuda", + "js" + ], + "阿根廷": [ + "maps/Argentina", + "js" + ], + "亚美尼亚": [ + "maps/Armenia", + "js" + ], + "澳大利亚": [ + "maps/Australia", + "js" + ], + "奥地利": [ + "maps/Austria", + "js" + ], + "阿塞拜疆": [ + "maps/Azerbaijan", + "js" + ], + "巴林": [ + "maps/Bahrain", + "js" + ], + "孟加拉国": [ + "maps/Bangladesh", + "js" + ], + "巴巴多斯": [ + "maps/Barbados", + "js" + ], + "白俄罗斯": [ + "maps/Belarus", + "js" + ], + "比利时": [ + "maps/Belgium", + "js" + ], + "伯利兹": [ + "maps/Belize", + "js" + ], + "贝宁": [ + "maps/Benin", + "js" + ], + "百慕达群岛": [ + "maps/Bermuda", + "js" + ], + "不丹": [ + "maps/Bhutan", + "js" + ], + "玻利维亚": [ + "maps/Bolivia", + "js" + ], + "波斯尼亚-黑塞哥维那": [ + "maps/Bosnia_and_Herzegovina", + "js" + ], + "博茨瓦纳": [ + "maps/Botswana", + "js" + ], + "巴西": [ + "maps/Brazil", + "js" + ], + "英属印度洋领地": [ + "maps/British_Indian_Ocean_Territory", + "js" + ], + "英属维尔京群岛": [ + "maps/British_Virgin_Islands", + "js" + ], + "文莱": [ + "maps/Brunei", + "js" + ], + "保加利亚": [ + "maps/Bulgaria", + "js" + ], + "布基纳法索": [ + "maps/Burkina_Faso", + "js" + ], + "蒲隆地": [ + "maps/Burundi", + "js" + ], + "柬埔寨": [ + "maps/Cambodia", + "js" + ], + "喀麦隆": [ + "maps/Cameroon", + "js" + ], + "加拿大": [ + "maps/Canada", + "js" + ], + "佛得角": [ + "maps/Cape_Verde", + "js" + ], + "开曼群岛": [ + "maps/Cayman_Islands", + "js" + ], + "中非共和国": [ + "maps/Central_African_Republic", + "js" + ], + "乍得": [ + "maps/Chad", + "js" + ], + "智利": [ + "maps/Chile", + "js" + ], + "哥伦比亚": [ + "maps/Colombia", + "js" + ], + "科摩罗": [ + "maps/Comoros", + "js" + ], + "刚果-布拉柴维尔": [ + "maps/Congo-Brazzaville", + "js" + ], + "刚果金": [ + "maps/Congo-Kinshasa", + "js" + ], + "库克群岛": [ + "maps/Cook_Islands", + "js" + ], + "珊瑚海群岛领地": [ + "maps/Coral_Sea_Islands_Territory", + "js" + ], + "哥斯达黎加": [ + "maps/Costa_Rica", + "js" + ], + "克罗地亚": [ + "maps/Croatia", + "js" + ], + "古巴": [ + "maps/Cuba", + "js" + ], + "塞浦路斯": [ + "maps/Cyprus", + "js" + ], + "捷克": [ + "maps/Czechia", + "js" + ], + "丹麦": [ + "maps/Denmark", + "js" + ], + "吉布提": [ + "maps/Djibouti", + "js" + ], + "多米尼克": [ + "maps/Dominica", + "js" + ], + "多米尼加共和国": [ + "maps/Dominican_Republic", + "js" + ], + "东帝汶": [ + "maps/East_Timor", + "js" + ], + "厄瓜多尔": [ + "maps/Ecuador", + "js" + ], + "埃及": [ + "maps/Egypt", + "js" + ], + "萨尔瓦多": [ + "maps/El_Salvador", + "js" + ], + "赤道几内亚": [ + "maps/Equatorial_Guinea", + "js" + ], + "厄立特里亚": [ + "maps/Eritrea", + "js" + ], + "爱沙尼亚": [ + "maps/Estonia", + "js" + ], + "埃塞俄比亚": [ + "maps/Ethiopia", + "js" + ], + "福克兰群岛": [ + "maps/Falkland_Islands", + "js" + ], + "法罗群岛": [ + "maps/Faroe_Islands", + "js" + ], + "密克罗尼西亚联邦": [ + "maps/Federated_States_of_Micronesia", + "js" + ], + "斐济": [ + "maps/Fiji", + "js" + ], + "芬兰": [ + "maps/Finland", + "js" + ], + "法国": [ + "maps/France", + "js" + ], + "加蓬": [ + "maps/Gabon", + "js" + ], + "格鲁吉亚": [ + "maps/Georgia", + "js" + ], + "德国": [ + "maps/Germany", + "js" + ], + "加纳": [ + "maps/Ghana", + "js" + ], + "直布罗陀": [ + "maps/Gibraltar", + "js" + ], + "希腊": [ + "maps/Greece", + "js" + ], + "格陵兰": [ + "maps/Greenland", + "js" + ], + "危地马拉": [ + "maps/Guatemala", + "js" + ], + "根西": [ + "maps/Guernsey", + "js" + ], + "几内亚比索": [ + "maps/Guinea-Bissau", + "js" + ], + "几内亚": [ + "maps/Guinea", + "js" + ], + "圭亚那": [ + "maps/Guyana", + "js" + ], + "海地": [ + "maps/Haiti", + "js" + ], + "洪都拉斯": [ + "maps/Honduras", + "js" + ], + "匈牙利": [ + "maps/Hungary", + "js" + ], + "冰岛": [ + "maps/Iceland", + "js" + ], + "印度": [ + "maps/India", + "js" + ], + "印度尼西亚, 印尼": [ + "maps/Indonesia", + "js" + ], + "伊拉克": [ + "maps/Iraq", + "js" + ], + "爱尔兰": [ + "maps/Ireland", + "js" + ], + "伊朗": [ + "maps/Islamic_Republic_of_Iran", + "js" + ], + "马恩岛": [ + "maps/Isle_of_Man", + "js" + ], + "以色列": [ + "maps/Israel", + "js" + ], + "意大利": [ + "maps/Italy", + "js" + ], + "牙买加": [ + "maps/Jamaica", + "js" + ], + "日本": [ + "maps/Japan", + "js" + ], + "泽西": [ + "maps/Jersey", + "js" + ], + "约旦": [ + "maps/Jordan", + "js" + ], + "哈萨克斯坦": [ + "maps/Kazakhstan", + "js" + ], + "肯尼亚": [ + "maps/Kenya", + "js" + ], + "基里巴斯": [ + "maps/Kiribati", + "js" + ], + "科威特": [ + "maps/Kuwait", + "js" + ], + "吉尔吉斯斯坦": [ + "maps/Kyrgyzstan", + "js" + ], + "老挝": [ + "maps/Laos", + "js" + ], + "拉脱维亚": [ + "maps/Latvia", + "js" + ], + "黎巴嫩": [ + "maps/Lebanon", + "js" + ], + "莱索托": [ + "maps/Lesotho", + "js" + ], + "利比里亚": [ + "maps/Liberia", + "js" + ], + "利比亚": [ + "maps/Libya", + "js" + ], + "列支敦士登": [ + "maps/Liechtenstein", + "js" + ], + "立陶宛": [ + "maps/Lithuania", + "js" + ], + "卢森堡": [ + "maps/Luxemburg", + "js" + ], + "马其顿": [ + "maps/Macedonia", + "js" + ], + "马达加斯加": [ + "maps/Madagascar", + "js" + ], + "马拉维": [ + "maps/Malawi", + "js" + ], + "马来西亚": [ + "maps/Malaysia", + "js" + ], + "马尔代夫": [ + "maps/Maldives", + "js" + ], + "马里": [ + "maps/Mali", + "js" + ], + "马耳他": [ + "maps/Malta", + "js" + ], + "马绍尔群岛": [ + "maps/Marshall_Islands", + "js" + ], + "毛里塔尼亚": [ + "maps/Mauritania", + "js" + ], + "毛里求斯": [ + "maps/Mauritius", + "js" + ], + "墨西哥": [ + "maps/Mexico", + "js" + ], + "摩尔多瓦": [ + "maps/Moldova", + "js" + ], + "摩纳哥": [ + "maps/Monaco", + "js" + ], + "蒙古": [ + "maps/Mongolia", + "js" + ], + "黑山": [ + "maps/Montenegro", + "js" + ], + "蒙特塞拉特": [ + "maps/Montserrat", + "js" + ], + "摩洛哥": [ + "maps/Morocco", + "js" + ], + "莫桑比克": [ + "maps/Mozambique", + "js" + ], + "缅甸": [ + "maps/Myanmar", + "js" + ], + "纳米比亚": [ + "maps/Namibia", + "js" + ], + "尼泊尔": [ + "maps/Nepal", + "js" + ], + "新西兰": [ + "maps/New_Zealand", + "js" + ], + "尼加拉瓜": [ + "maps/Nicaragua", + "js" + ], + "尼日尔": [ + "maps/Niger", + "js" + ], + "尼日利亚": [ + "maps/Nigeria", + "js" + ], + "纽埃": [ + "maps/Niue", + "js" + ], + "朝鲜": [ + "maps/North_Korea", + "js" + ], + "挪威": [ + "maps/Norway", + "js" + ], + "阿曼": [ + "maps/Oman", + "js" + ], + "巴基斯坦": [ + "maps/Pakistan", + "js" + ], + "帕劳": [ + "maps/Palau", + "js" + ], + "巴勒斯坦": [ + "maps/Palestine", + "js" + ], + "巴拿马": [ + "maps/Panama", + "js" + ], + "巴布亚新几内亚": [ + "maps/Papua_New_Guinea", + "js" + ], + "巴拉圭": [ + "maps/Paraguay", + "js" + ], + "秘鲁": [ + "maps/Peru", + "js" + ], + "菲律宾": [ + "maps/Philippines", + "js" + ], + "皮特凱恩群島": [ + "maps/Pitcairn_Islands", + "js" + ], + "波兰": [ + "maps/Poland", + "js" + ], + "葡萄牙": [ + "maps/Portugal", + "js" + ], + "卡塔尔": [ + "maps/Qatar", + "js" + ], + "科索沃": [ + "maps/Republic_of_Kosovo", + "js" + ], + "罗马尼亚": [ + "maps/Romania", + "js" + ], + "俄罗斯": [ + "maps/Russia", + "js" + ], + "卢旺达": [ + "maps/Rwanda", + "js" + ], + "撒拉威阿拉伯民主共和国": [ + "maps/Sahrawi_Arab_Democratic_Republic", + "js" + ], + "圣赫勒拿-阿森松和特里斯坦-达库尼亚": [ + "maps/Saint_Helena_Ascension_and_Tristan_da_Cunha", + "js" + ], + "圣基茨和尼维斯": [ + "maps/Saint_Kitts_and_Nevis", + "js" + ], + "圣卢西亚": [ + "maps/Saint_Lucia", + "js" + ], + "圣文森特和格林纳丁斯": [ + "maps/Saint_Vincent_and_the_Grenadines", + "js" + ], + "萨摩亚": [ + "maps/Samoa", + "js" + ], + "圣马力诺": [ + "maps/San_Marino", + "js" + ], + "沙特阿拉伯": [ + "maps/Saudi_Arabia", + "js" + ], + "塞内加尔": [ + "maps/Senegal", + "js" + ], + "塞尔维亚": [ + "maps/Serbia", + "js" + ], + "塞舌尔": [ + "maps/Seychelles", + "js" + ], + "塞拉利昂": [ + "maps/Sierra_Leone", + "js" + ], + "新加坡": [ + "maps/Singapore", + "js" + ], + "斯洛伐克": [ + "maps/Slovakia", + "js" + ], + "斯洛文尼亚": [ + "maps/Slovenia", + "js" + ], + "所罗门群岛": [ + "maps/Solomon_Islands", + "js" + ], + "索马里": [ + "maps/Somalia", + "js" + ], + "南非": [ + "maps/South_Africa", + "js" + ], + "南乔治亚和南桑威奇群岛": [ + "maps/South_Georgia_and_the_South_Sandwich_Islands", + "js" + ], + "韩国": [ + "maps/South_Korea", + "js" + ], + "南苏丹": [ + "maps/South_Sudan", + "js" + ], + "西班牙": [ + "maps/Spain", + "js" + ], + "斯里兰卡": [ + "maps/Sri_Lanka", + "js" + ], + "苏丹": [ + "maps/Sudan", + "js" + ], + "苏里南": [ + "maps/Suriname", + "js" + ], + "史瓦济兰": [ + "maps/Swaziland", + "js" + ], + "瑞士": [ + "maps/Switzerland", + "js" + ], + "瑞典": [ + "maps/Sweden", + "js" + ], + "叙利亚": [ + "maps/Syria", + "js" + ], + "塔吉克斯坦": [ + "maps/Tajikistan", + "js" + ], + "坦桑尼亚": [ + "maps/Tanzania", + "js" + ], + "泰国": [ + "maps/Thailand", + "js" + ], + "巴哈马": [ + "maps/The_Bahamas", + "js" + ], + "冈比亚": [ + "maps/The_Gambia", + "js" + ], + "荷兰": [ + "maps/The_Netherlands", + "js" + ], + "多哥": [ + "maps/Togo", + "js" + ], + "托克劳": [ + "maps/Tokelau", + "js" + ], + "汤加": [ + "maps/Tonga", + "js" + ], + "特立尼达和多巴哥": [ + "maps/Trinidad_and_Tobago", + "js" + ], + "突尼斯": [ + "maps/Tunisia", + "js" + ], + "土耳其": [ + "maps/Turkey", + "js" + ], + "土库曼": [ + "maps/Turkmenistan", + "js" + ], + "特克斯和凯科斯群岛": [ + "maps/Turks_and_Caicos_Islands", + "js" + ], + "吐瓦鲁": [ + "maps/Tuvalu", + "js" + ], + "乌干达": [ + "maps/Uganda", + "js" + ], + "乌克兰": [ + "maps/Ukraine", + "js" + ], + "阿拉伯联合酋长国": [ + "maps/United_Arab_Emirates", + "js" + ], + "英国": [ + "maps/United_Kingdom", + "js" + ], + "乌拉圭": [ + "maps/Uruguay", + "js" + ], + "美国": [ + "maps/USA", + "js" + ], + "乌兹别克斯坦": [ + "maps/Uzbekistan", + "js" + ], + "瓦努阿图": [ + "maps/Vanuatu", + "js" + ], + "梵蒂冈": [ + "maps/Vatican_City", + "js" + ], + "委内瑞拉": [ + "maps/Venezuela", + "js" + ], + "越南": [ + "maps/Vietnam", + "js" + ], + "也门": [ + "maps/Yemen", + "js" + ], + "赞比亚": [ + "maps/Zambia", + "js" + ], + "津巴布韦": [ + "maps/Zimbabwe", + "js" + ] +} diff --git a/resource/render/__init__.py b/resource/render/__init__.py new file mode 100644 index 0000000..78d902e --- /dev/null +++ b/resource/render/__init__.py @@ -0,0 +1 @@ +from .snapshot import make_snapshot diff --git a/resource/render/display.py b/resource/render/display.py new file mode 100644 index 0000000..231939d --- /dev/null +++ b/resource/render/display.py @@ -0,0 +1,62 @@ +from ..types import Optional, Sequence, Union + + +class HTML: + def __init__(self, data: Optional[str] = None): + self.data = data + + def _repr_html_(self): + return self.data + + def __html__(self): + return self._repr_html_() + + +_lib_t1 = """new Promise(function(resolve, reject) { + var script = document.createElement("script"); + script.onload = resolve; + script.onerror = reject; + script.src = "%s"; + document.head.appendChild(script); +}).then(() => { +""" + +_lib_t2 = """ +});""" + +_css_t = """var link = document.createElement("link"); + link.ref = "stylesheet"; + link.type = "text/css"; + link.href = "%s"; + document.head.appendChild(link); +""" + + +class Javascript: + def __init__( + self, + data: Optional[str] = None, + lib: Optional[Union[str, Sequence]] = None, + css: Optional[Union[str, Sequence]] = None, + ): + if isinstance(lib, str): + lib = [lib] + elif lib is None: + lib = [] + if isinstance(css, str): + css = [css] + elif css is None: + css = [] + self.lib = lib + self.css = css + self.data = data or "" + + def _repr_javascript_(self): + r = "" + for c in self.css: + r += _css_t % c + for d in self.lib: + r += _lib_t1 % d + r += self.data + r += _lib_t2 * len(self.lib) + return r diff --git a/resource/render/engine.py b/resource/render/engine.py new file mode 100644 index 0000000..1ecf48f --- /dev/null +++ b/resource/render/engine.py @@ -0,0 +1,121 @@ +import os + +try: + from collections.abc import Iterable +except ImportError: + from collections import Iterable + +from jinja2 import Environment + +from ..commons import utils +from ..datasets import EXTRA, FILENAMES +from ..globals import CurrentConfig, NotebookType +from ..types import Any, Optional +from .display import HTML, Javascript + + +def write_utf8_html_file(file_name: str, html_content: str): + with open(file_name, "w+", encoding="utf-8") as html_file: + html_file.write(html_content) + + +class RenderEngine: + def __init__(self, env: Optional[Environment] = None): + self.env = env or CurrentConfig.GLOBAL_ENV + + @staticmethod + def generate_js_link(chart: Any) -> Any: + if not chart.js_host: + chart.js_host = CurrentConfig.ONLINE_HOST + links = [] + for dep in chart.js_dependencies.items: + # TODO: if? + if dep.startswith("https://api.map.baidu.com"): + links.append(dep) + if dep in FILENAMES: + f, ext = FILENAMES[dep] + links.append("{}{}.{}".format(chart.js_host, f, ext)) + else: + for url, files in EXTRA.items(): + if dep in files: + f, ext = files[dep] + links.append("{}{}.{}".format(url, f, ext)) + break + chart.dependencies = links + return chart + + def render_chart_to_file(self, template_name: str, chart: Any, path: str, **kwargs): + """ + Render a chart or page to local html files. + + :param chart: A Chart or Page object + :param path: The destination file which the html code write to + :param template_name: The name of template file. + """ + tpl = self.env.get_template(template_name) + html = utils.replace_placeholder( + tpl.render(chart=self.generate_js_link(chart), **kwargs) + ) + write_utf8_html_file(path, html) + + def render_chart_to_template(self, template_name: str, chart: Any, **kwargs) -> str: + tpl = self.env.get_template(template_name) + return utils.replace_placeholder( + tpl.render(chart=self.generate_js_link(chart), **kwargs) + ) + + def render_chart_to_notebook(self, template_name: str, **kwargs) -> str: + tpl = self.env.get_template(template_name) + return utils.replace_placeholder(tpl.render(**kwargs)) + + +def render( + chart, path: str, template_name: str, env: Optional[Environment], **kwargs +) -> str: + RenderEngine(env).render_chart_to_file( + template_name=template_name, chart=chart, path=path, **kwargs + ) + return os.path.abspath(path) + + +def render_embed( + chart, template_name: str, env: Optional[Environment], **kwargs +) -> str: + return RenderEngine(env).render_chart_to_template( + template_name=template_name, chart=chart, **kwargs + ) + + +def render_notebook(self, notebook_template, lab_template): + instance = self if isinstance(self, Iterable) else (self,) + if CurrentConfig.NOTEBOOK_TYPE == NotebookType.JUPYTER_NOTEBOOK: + require_config = utils.produce_require_dict(self.js_dependencies, self.js_host) + return HTML( + RenderEngine().render_chart_to_notebook( + template_name=notebook_template, + charts=instance, + config_items=require_config["config_items"], + libraries=require_config["libraries"], + ) + ) + + if CurrentConfig.NOTEBOOK_TYPE == NotebookType.JUPYTER_LAB: + return HTML( + RenderEngine().render_chart_to_notebook( + template_name=lab_template, charts=instance + ) + ) + + if CurrentConfig.NOTEBOOK_TYPE == NotebookType.NTERACT: + return HTML(self.render_embed()) + + if CurrentConfig.NOTEBOOK_TYPE == NotebookType.ZEPPELIN: + print("%html " + self.render_embed()) + + +def load_javascript(chart): + scripts = [] + for dep in chart.js_dependencies.items: + f, ext = FILENAMES[dep] + scripts.append("{}{}.{}".format(CurrentConfig.ONLINE_HOST, f, ext)) + return Javascript(lib=scripts) diff --git a/resource/render/snapshot.py b/resource/render/snapshot.py new file mode 100644 index 0000000..d159e7f --- /dev/null +++ b/resource/render/snapshot.py @@ -0,0 +1,99 @@ +import base64 +import codecs +import logging +import os +from io import BytesIO + +from ..types import Any + +logger = logging.getLogger(__name__) + +PNG_FORMAT = "png" +JPG_FORMAT = "jpeg" +GIF_FORMAT = "gif" +PDF_FORMAT = "pdf" +SVG_FORMAT = "svg" +EPS_FORMAT = "eps" +B64_FORMAT = "base64" + + +def make_snapshot( + engine: Any, + file_name: str, + output_name: str, + delay: float = 2, + pixel_ratio: int = 2, + is_remove_html: bool = False, + **kwargs, +): + logger.info("Generating file ...") + file_type = output_name.split(".")[-1] + + content = engine.make_snapshot( + html_path=file_name, + file_type=file_type, + delay=delay, + pixel_ratio=pixel_ratio, + **kwargs, + ) + if file_type in [SVG_FORMAT, B64_FORMAT]: + save_as_text(content, output_name) + else: + # pdf, gif, png, jpeg + content_array = content.split(",") + if len(content_array) != 2: + raise OSError(content_array) + + image_data = decode_base64(content_array[1]) + + if file_type in [PDF_FORMAT, GIF_FORMAT, EPS_FORMAT]: + save_as(image_data, output_name, file_type) + elif file_type in [PNG_FORMAT, JPG_FORMAT]: + save_as_png(image_data, output_name) + else: + raise TypeError(f"Not supported file type '{file_type}'") + + if "/" not in output_name: + output_name = os.path.join(os.getcwd(), output_name) + + if is_remove_html and not file_name.startswith("http"): + os.unlink(file_name) + logger.info(f"File saved in {output_name}") + + +def decode_base64(data: str) -> bytes: + """Decode base64, padding being optional. + + :param data: Base64 data as an ASCII byte string + :returns: The decoded byte string. + """ + missing_padding = len(data) % 4 + if missing_padding != 0: + data += "=" * (4 - missing_padding) + return base64.decodebytes(data.encode("utf-8")) + + +def save_as_png(image_data: bytes, output_name: str): + with open(output_name, "wb") as f: + f.write(image_data) + + +def save_as_text(image_data: str, output_name: str): + with codecs.open(output_name, "w", encoding="utf-8") as f: + f.write(image_data) + + +def save_as(image_data: bytes, output_name: str, file_type: str): + try: + from PIL import Image + + m = Image.open(BytesIO(image_data)) + m.load() + color = (255, 255, 255) + b = Image.new("RGB", m.size, color) + # BUG for Mac: + # b.paste(m, mask=m.split()[3]) + b.paste(m) + b.save(output_name, file_type, quality=100) + except ModuleNotFoundError: + raise Exception(f"Please install PIL for {file_type} image type") diff --git a/resource/render/templates/components.html b/resource/render/templates/components.html new file mode 100644 index 0000000..4f642a5 --- /dev/null +++ b/resource/render/templates/components.html @@ -0,0 +1,13 @@ +{% import 'macro' as macro %} + + + + + {{ chart.page_title }} + + + +{{ macro.gen_components_content(chart) }} + + + diff --git a/resource/render/templates/macro b/resource/render/templates/macro new file mode 100644 index 0000000..b14a243 --- /dev/null +++ b/resource/render/templates/macro @@ -0,0 +1,231 @@ +{%- macro render_chart_content(c) -%} +
+ {% if c._geo_json_name and c._geo_json %} + + {% endif %} + +{%- endmacro %} + +{%- macro render_notebook_charts(charts, libraries) -%} + +{%- endmacro %} + +{%- macro render_chart_dependencies(c) -%} + {% for dep in c.dependencies %} + + {% endfor %} +{%- endmacro %} + +{%- macro render_chart_css(c) -%} + {% for dep in c.css_libs %} + + {% endfor %} +{%- endmacro %} + +{%- macro display_tablinks(chart) -%} +
+ {% for c in chart %} + + {% endfor %} +
+{%- endmacro %} + +{%- macro switch_tabs() -%} + +{%- endmacro %} + +{%- macro generate_tab_css() %} + +{%- endmacro %} + +{%- macro gen_components_content(chart) %} + {% if chart._component_type == "table" %} + +
+

{{ chart.title_opts.title }}

+

{{ chart.title_opts.subtitle }}

+ {{ chart.html_content }} +
+ {% elif chart._component_type == "image" %} +
+

{{ chart.title_opts.title }}

+

{{ chart.title_opts.subtitle }}

+ +
+ {% endif %} +{%- endmacro %} diff --git a/resource/render/templates/nb_components.html b/resource/render/templates/nb_components.html new file mode 100644 index 0000000..aa486e3 --- /dev/null +++ b/resource/render/templates/nb_components.html @@ -0,0 +1,5 @@ +{% import 'macro' as macro %} + +{% for chart in charts %} +{{ macro.gen_components_content(chart) }} +{% endfor %} diff --git a/resource/render/templates/nb_jupyter_globe.html b/resource/render/templates/nb_jupyter_globe.html new file mode 100644 index 0000000..c6dcb62 --- /dev/null +++ b/resource/render/templates/nb_jupyter_globe.html @@ -0,0 +1,49 @@ + + +{% for chart in charts %} +
+{% endfor %} + + + diff --git a/resource/render/templates/nb_jupyter_lab.html b/resource/render/templates/nb_jupyter_lab.html new file mode 100644 index 0000000..f6b9152 --- /dev/null +++ b/resource/render/templates/nb_jupyter_lab.html @@ -0,0 +1,16 @@ +{% import 'macro' as macro %} + + + + + + +{% for chart in charts %} +{% if chart._component_type in ("table", "image") %} +{{ macro.gen_components_content(chart) }} +{% else %} +{{ macro.render_chart_content(chart) }} +{% endif %} +{% endfor %} + + diff --git a/resource/render/templates/nb_jupyter_lab_tab.html b/resource/render/templates/nb_jupyter_lab_tab.html new file mode 100644 index 0000000..f13e109 --- /dev/null +++ b/resource/render/templates/nb_jupyter_lab_tab.html @@ -0,0 +1,20 @@ +{% import 'macro' as macro %} + + + + + + +{{ macro.generate_tab_css() }} +{{ macro.display_tablinks(charts) }} + +{% for chart in charts %} +{% if chart._component_type in ("table", "image") %} +{{ macro.gen_components_content(chart) }} +{% else %} +{{ macro.render_chart_content(chart) }} +{% endif %} +{% endfor %} +{{ macro.switch_tabs() }} + + diff --git a/resource/render/templates/nb_jupyter_notebook.html b/resource/render/templates/nb_jupyter_notebook.html new file mode 100644 index 0000000..02c4d06 --- /dev/null +++ b/resource/render/templates/nb_jupyter_notebook.html @@ -0,0 +1,21 @@ +{% import 'macro' as macro %} + + + +{% for chart in charts %} +{% if chart._component_type in ("table", "image") %} +{{ macro.gen_components_content(chart) }} +{% else %} +
+{% endif %} +{% endfor %} + +{{ macro.render_notebook_charts(charts, libraries) }} diff --git a/resource/render/templates/nb_jupyter_notebook_tab.html b/resource/render/templates/nb_jupyter_notebook_tab.html new file mode 100644 index 0000000..085e041 --- /dev/null +++ b/resource/render/templates/nb_jupyter_notebook_tab.html @@ -0,0 +1,26 @@ +{% import 'macro' as macro %} + + + +{{ macro.generate_tab_css() }} +{{ macro.display_tablinks(charts) }} + +{% for chart in charts %} +{% if chart._component_type in ("table", "image") %} +{{ macro.gen_components_content(chart) }} +{% else %} +
+{% endif %} +{% endfor %} + +{{ macro.render_notebook_charts(charts, libraries) }} +{{ macro.switch_tabs() }} diff --git a/resource/render/templates/nb_nteract.html b/resource/render/templates/nb_nteract.html new file mode 100644 index 0000000..ebc68f9 --- /dev/null +++ b/resource/render/templates/nb_nteract.html @@ -0,0 +1,13 @@ +{% import 'macro' as macro %} + + + + + {{ macro.render_chart_dependencies(chart) }} + + +{% for c in chart %} +{{ macro.render_chart_content(c) }} +{% endfor %} + + diff --git a/resource/render/templates/simple_chart.html b/resource/render/templates/simple_chart.html new file mode 100644 index 0000000..0cfbc69 --- /dev/null +++ b/resource/render/templates/simple_chart.html @@ -0,0 +1,12 @@ +{% import 'macro' as macro %} + + + + + {{ chart.page_title }} + {{ macro.render_chart_dependencies(chart) }} + + +{{ macro.render_chart_content(chart) }} + + diff --git a/resource/render/templates/simple_globe.html b/resource/render/templates/simple_globe.html new file mode 100644 index 0000000..acfd020 --- /dev/null +++ b/resource/render/templates/simple_globe.html @@ -0,0 +1,42 @@ +{% import 'macro' as macro %} + + + + + {{ chart.page_title }} + {{ macro.render_chart_dependencies(chart) }} + + +
+ + + diff --git a/resource/render/templates/simple_page.html b/resource/render/templates/simple_page.html new file mode 100644 index 0000000..faa7c37 --- /dev/null +++ b/resource/render/templates/simple_page.html @@ -0,0 +1,34 @@ +{% import 'macro' as macro %} + + + + + {{ chart.page_title }} + {{ macro.render_chart_dependencies(chart) }} + {{ macro.render_chart_css(chart) }} + + + +{% if chart.download_button %} + +{% endif %} +
+ {% for c in chart %} + {% if c._component_type in ("table", "image") %} + {{ macro.gen_components_content(c) }} + {% else %} + {{ macro.render_chart_content(c) }} + {% endif %} + {% for _ in range(chart.page_interval) %} + {% if chart.remove_br is false %}
{% endif %} + {% endfor %} + {% endfor %} +
+ + + diff --git a/resource/render/templates/simple_tab.html b/resource/render/templates/simple_tab.html new file mode 100644 index 0000000..edd9544 --- /dev/null +++ b/resource/render/templates/simple_tab.html @@ -0,0 +1,36 @@ +{% import 'macro' as macro %} + + + + + {{ chart.page_title }} + {{ macro.render_chart_dependencies(chart) }} + {{ macro.render_chart_css(chart) }} + + +{% if chart.use_custom_tab_css is not true %} +{{ macro.generate_tab_css() }} +{% else %} + +{% endif %} +{{ macro.display_tablinks(chart) }} + +
+ {% for c in chart %} + {% if c._component_type in ("table", "image") %} + {{ macro.gen_components_content(c) }} + {% else %} + {{ macro.render_chart_content(c) }} + {% endif %} + {% endfor %} +
+ + +{{ macro.switch_tabs() }} + +