diff options
author | sullivan@chromium.org <sullivan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-30 22:50:33 +0000 |
---|---|---|
committer | sullivan@chromium.org <sullivan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-30 22:50:33 +0000 |
commit | 4866066dae7ed82bf802d5e6da310f06a570dcd1 (patch) | |
tree | b0890d0b8f261fa75f47f6ff11a392b5094520cb /chrome/test/data/third_party | |
parent | 074227a6a042e97893268bb93b14372bdfd500bb (diff) | |
download | chromium_src-4866066dae7ed82bf802d5e6da310f06a570dcd1.zip chromium_src-4866066dae7ed82bf802d5e6da310f06a570dcd1.tar.gz chromium_src-4866066dae7ed82bf802d5e6da310f06a570dcd1.tar.bz2 |
Add a copy of the Kraken Benchmark for performance testing.
This copy was fetched from:
hg.mozilla.org/projects/kraken/
Modifications made:
The python script make-hosted.py was run to update the hosted/ directory, and the unused tests, sunspider, and sunspider-compare-results files were deleted.
BUG=
TEST=
Review URL: http://codereview.chromium.org/10070009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134624 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/data/third_party')
36 files changed, 57187 insertions, 0 deletions
diff --git a/chrome/test/data/third_party/kraken/LICENSE b/chrome/test/data/third_party/kraken/LICENSE new file mode 100644 index 0000000..935ca6a --- /dev/null +++ b/chrome/test/data/third_party/kraken/LICENSE @@ -0,0 +1,924 @@ +All files not explicitly mentioned below are MPL 2.0: + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + +================================================================================ +================================================================================ +================================================================================ + +ai-astar.js +ai-astar-data.js +audio-beat-detection.js +audio-beat-detection-data.js +audio-dft.js +audio-dft-data.js +audio-fft.js +audio-fft-data.js +audio-oscillator.js +audio-oscillator-data.js + +The MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +================================================================================ +================================================================================ +================================================================================ + +imaging-darkroom.js +imaging-darkroom-data.js +stanford-crypto-aes.js +stanford-crypto-ccm.js +stanford-crypto-pbkdf2.js +stanford-crypto-sha256-iterative.js + +New BSD License + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +================================================================================ +================================================================================ +================================================================================ + +imaging-desaturate.js + +MPL 1.1 + + MOZILLA PUBLIC LICENSE + Version 1.1 + + --------------- + +1. Definitions. + + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + + 1.1. "Contributor" means each entity that creates or contributes to + the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Code, prior Modifications used by a Contributor, and the Modifications + made by that particular Contributor. + + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + + 1.5. "Executable" means Covered Code in any form other than Source + Code. + + 1.6. "Initial Developer" means the individual or entity identified + as the Initial Developer in the Source Code notice required by Exhibit + A. + + 1.7. "Larger Work" means a work which combines Covered Code or + portions thereof with code not governed by the terms of this License. + + 1.8. "License" means this document. + + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file + containing Original Code or previous Modifications. + + B. Any new file that contains any part of the Original Code or + previous Modifications. + + 1.10. "Original Code" means Source Code of computer software code + which is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this + License is not already Covered Code governed by this License. + + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus + any associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which controls, is + controlled by, or is under common control with You. For purposes of + this definition, "control" means (a) the power, direct or indirect, + to cause the direction or management of such entity, whether by + contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such + entity. + +2. Source Code License. + + 2.1. The Initial Developer Grant. + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + + (b) under Patents Claims infringed by the making, using or + selling of Original Code, to make, have made, use, practice, + sell, and offer for sale, and/or otherwise dispose of the + Original Code (or portions thereof). + + (c) the licenses granted in this Section 2.1(a) and (b) are + effective on the date Initial Developer first distributes + Original Code under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + + 2.2. Contributor Grant. + Subject to third party intellectual property claims, each Contributor + hereby grants You a world-wide, royalty-free, non-exclusive license + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or + selling of Modifications made by that Contributor either alone + and/or in combination with its Contributor Version (or portions + of such combination), to make, use, sell, offer for sale, have + made, and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are + effective on the date Contributor first makes Commercial Use of + the Covered Code. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; + 3) for infringements caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + +3. Distribution Obligations. + + 3.1. Application of License. + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be + distributed only under the terms of this License or a future version + of this License released under Section 6.1, and You must include a + copy of this License with every copy of the Source Code You + distribute. You may not offer or impose any terms on any Source Code + version that alters or restricts the applicable version of this + License or the recipients' rights hereunder. However, You may include + an additional document offering the additional rights described in + Section 3.5. + + 3.2. Availability of Source Code. + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + + 3.3. Description of Modifications. + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that + the Modification is derived, directly or indirectly, from Original + Code provided by the Initial Developer and including the name of the + Initial Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, + Contributor must include a text file with the Source Code + distribution titled "LEGAL" which describes the claim and the + party making the claim in sufficient detail that a recipient will + know whom to contact. If Contributor obtains such knowledge after + the Modification is made available as described in Section 3.2, + Contributor shall promptly modify the LEGAL file in all copies + Contributor makes available thereafter and shall take other steps + (such as notifying appropriate mailing lists or newsgroups) + reasonably calculated to inform those who received the Covered + Code that new knowledge has been obtained. + + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + + 3.5. Required Notices. + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely + to look for such a notice. If You created one or more Modification(s) + You may add your name as a Contributor to the notice described in + Exhibit A. You must also duplicate this License in any documentation + for the Source Code where You describe recipients' rights or ownership + rights relating to Covered Code. You may choose to offer, and to + charge a fee for, warranty, support, indemnity or liability + obligations to one or more recipients of Covered Code. However, You + may do so only on Your own behalf, and not on behalf of the Initial + Developer or any Contributor. You must make it absolutely clear than + any such warranty, support, indemnity or liability obligation is + offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the + Initial Developer or such Contributor as a result of warranty, + support, indemnity or liability terms You offer. + + 3.6. Distribution of Executable Versions. + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of + the Covered Code is available under the terms of this License, + including a description of how and where You have fulfilled the + obligations of Section 3.2. The notice must be conspicuously included + in any notice in an Executable version, related documentation or + collateral in which You describe recipients' rights relating to the + Covered Code. You may distribute the Executable version of Covered + Code or ownership rights under a license of Your choice, which may + contain terms different from this License, provided that You are in + compliance with the terms of this License and that the license for the + Executable version does not attempt to limit or alter the recipient's + rights in the Source Code version from the rights set forth in this + License. If You distribute the Executable version under a different + license You must make it absolutely clear that any terms which differ + from this License are offered by You alone, not by the Initial + Developer or any Contributor. You hereby agree to indemnify the + Initial Developer and every Contributor for any liability incurred by + the Initial Developer or such Contributor as a result of any such + terms You offer. + + 3.7. Larger Works. + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + +4. Inability to Comply Due to Statute or Regulation. + + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Code due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description + must be included in the LEGAL file described in Section 3.4 and must + be included with all distributions of the Source Code. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Application of this License. + + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + +6. Versions of the License. + + 6.1. New Versions. + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version + will be given a distinguishing version number. + + 6.2. Effect of New Versions. + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + + 6.3. Derivative Works. + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that + the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", + "MPL", "NPL" or any confusingly similar phrase do not appear in your + license (except to note that your license differs from this License) + and (b) otherwise make it clear that Your version of the license + contains terms which differ from the Mozilla Public License and + Netscape Public License. (Filling in the name of the Initial + Developer, Original Code or Contributor in the notice described in + Exhibit A shall not of themselves be deemed to be modifications of + this License.) + +7. DISCLAIMER OF WARRANTY. + + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF + DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. + THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE + COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF + ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +8. TERMINATION. + + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom + You file such action is referred to as "Participant") alleging that: + + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate prospectively, + unless if within 60 days after receipt of notice You either: (i) + agree in writing to pay Participant a mutually agreeable reasonable + royalty for Your past and future use of Modifications made by such + Participant, or (ii) withdraw Your litigation claim with respect to + the Contributor Version against such Participant. If within 60 days + of notice, a reasonable royalty and payment arrangement are not + mutually agreed upon in writing by the parties or the litigation claim + is not withdrawn, the rights granted by Participant to You under + Sections 2.1 and/or 2.2 automatically terminate at the expiration of + the 60 day notice period specified above. + + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, then + any rights granted to You by such Participant under Sections 2.1(b) + and 2.2(b) are revoked effective as of the date You first made, used, + sold, distributed, or had made, Modifications made by that + Participant. + + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 8.4. In the event of termination under Sections 8.1 or 8.2 above, + all end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + +9. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR + ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, + WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER + COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN + INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF + LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY + RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW + PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO + THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. + +10. U.S. GOVERNMENT END USERS. + + The Covered Code is a "commercial item," as that term is defined in + 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" and "commercial computer software documentation," as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 + C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), + all U.S. Government End Users acquire Covered Code with only those + rights set forth herein. + +11. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + California law provisions (except to the extent applicable law, if + any, provides otherwise), excluding its conflict-of-law provisions. + With respect to disputes in which at least one party is a citizen of, + or an entity chartered or registered to do business in the United + States of America, any litigation relating to this License shall be + subject to the jurisdiction of the Federal Courts of the Northern + District of California, with venue lying in Santa Clara County, + California, with the losing party responsible for costs, including + without limitation, court costs and reasonable attorneys' fees and + expenses. The application of the United Nations Convention on + Contracts for the International Sale of Goods is expressly excluded. + Any law or regulation which provides that the language of a contract + shall be construed against the drafter shall not apply to this + License. + +12. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +13. MULTIPLE-LICENSED CODE. + + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + +EXHIBIT A -Mozilla Public License. + + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + + The Original Code is ______________________________________. + + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + + Contributor(s): ______________________________________. + + Alternatively, the contents of this file may be used under the terms + of the _____ license (the "[___] License"), in which case the + provisions of [______] License are applicable instead of those + above. If you wish to allow use of your version of this file only + under the terms of the [____] License and not to allow others to use + your version of this file under the MPL, indicate your decision by + deleting the provisions above and replace them with the notice and + other provisions required by the [___] License. If you do not delete + the provisions above, a recipient may use your version of this file + under either the MPL or the [___] License." + + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + +================================================================================ +================================================================================ +================================================================================ + +imaging-guassian-blur.js + +Copyright (C) 2008 John Resig +Copyright (C) 2009-2011; see the AUTHORS file for authors and +copyright holders. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/chrome/test/data/third_party/kraken/README.chromium b/chrome/test/data/third_party/kraken/README.chromium new file mode 100644 index 0000000..b43dd17 --- /dev/null +++ b/chrome/test/data/third_party/kraken/README.chromium @@ -0,0 +1,12 @@ +Name: Kraken JavaScript Benchmark +Short Name: kraken +URL: http://krakenbenchmark.mozilla.org +Version: 1.1 +License: various +Security Critical: no + +Description: +A JavaScript performance benchmark, developed and released by Mozilla. + +Local Modifications: +The python script make-hosted.py was run to update the hosted/ directory, and the unused tests, sunspider, and sunspider-compare-results files were deleted. diff --git a/chrome/test/data/third_party/kraken/changelog.txt b/chrome/test/data/third_party/kraken/changelog.txt new file mode 100644 index 0000000..56bcdef --- /dev/null +++ b/chrome/test/data/third_party/kraken/changelog.txt @@ -0,0 +1,7 @@ +Kraken 1.1 +========== +Fix Bug 599914 - Kraken: audio-beat-detection and audio-fft computes on NaN and undefined. + +Kraken 1.0 +========== +Initial import. diff --git a/chrome/test/data/third_party/kraken/hosted/analyze-results.js b/chrome/test/data/third_party/kraken/hosted/analyze-results.js new file mode 100644 index 0000000..86a6ed6 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/analyze-results.js @@ -0,0 +1,275 @@ +/* + * Copyright (C) 2007 Apple Inc. All rights reserved. + * Copyright (C) 2010 Mozilla Foundation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var count = output.length; + +var itemTotals = {}; +itemTotals.length = count; + +var total = 0; +var categoryTotals = {}; +var testTotalsByCategory = {}; + +var mean = 0; +var categoryMeans = {}; +var testMeansByCategory = {}; + +var stdDev = 0; +var categoryStdDevs = {}; +var testStdDevsByCategory = {}; + +var stdErr = 0; +var categoryStdErrs = {}; +var testStdErrsByCategory = {}; + +function initialize() +{ + itemTotals = {total: []}; + + for (var i = 0; i < categories.length; i++) { + var category = categories[i]; + itemTotals[category] = []; + categoryTotals[category] = 0; + testTotalsByCategory[category] = {}; + categoryMeans[category] = 0; + testMeansByCategory[category] = {}; + categoryStdDevs[category] = 0; + testStdDevsByCategory[category] = {}; + categoryStdErrs[category] = 0; + testStdErrsByCategory[category] = {}; + } + + for (var i = 0; i < tests.length; i++) { + var test = tests[i]; + itemTotals[test] = []; + var category = test.replace(/-.*/, ""); + testTotalsByCategory[category][test] = 0; + testMeansByCategory[category][test] = 0; + testStdDevsByCategory[category][test] = 0; + testStdErrsByCategory[category][test] = 0; + } + + for (var i = 0; i < count; i++) { + itemTotals["total"][i] = 0; + for (var category in categoryTotals) { + itemTotals[category][i] = 0; + for (var test in testTotalsByCategory[category]) { + itemTotals[test][i] = 0; + } + } + } +} + +function computeItemTotals() +{ + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + itemTotals["total"][i] += time; + itemTotals[category][i] += time; + itemTotals[test][i] += time; + } + } +} + +function computeTotals() +{ + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + total += time; + categoryTotals[category] += time; + testTotalsByCategory[category][test] += time; + } + } +} + +function computeMeans() +{ + mean = total / count; + for (var category in categoryTotals) { + categoryMeans[category] = categoryTotals[category] / count; + for (var test in testTotalsByCategory[category]) { + testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count; + } + } +} + +function standardDeviation(mean, items) +{ + var deltaSquaredSum = 0; + for (var i = 0; i < items.length; i++) { + var delta = items[i] - mean; + deltaSquaredSum += delta * delta; + } + variance = deltaSquaredSum / (items.length - 1); + return Math.sqrt(variance); +} + +function computeStdDevs() +{ + stdDev = standardDeviation(mean, itemTotals["total"]); + for (var category in categoryStdDevs) { + categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]); + } + for (var category in categoryStdDevs) { + for (var test in testStdDevsByCategory[category]) { + testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]); + } + } +} + +function computeStdErrors() +{ + var sqrtCount = Math.sqrt(count); + + stdErr = stdDev / sqrtCount; + for (var category in categoryStdErrs) { + categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount; + } + for (var category in categoryStdDevs) { + for (var test in testStdErrsByCategory[category]) { + testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount; + } + } + +} + +var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96]; +var tMax = tDistribution.length; +var tLimit = 1.96; + +function tDist(n) +{ + if (n > tMax) + return tLimit; + return tDistribution[n]; +} + + +function formatResult(meanWidth, mean, stdErr, n) +{ + var meanString = mean.toFixed(1).toString(); + while (meanString.length < meanWidth) { + meanString = " " + meanString; + } + + if (n == 1) + return meanString + "ms"; + + return meanString + "ms +/- " + ((tDist(n) * stdErr / mean) * 100).toFixed(1) + "%"; +} + +function computeLabelWidth() +{ + var width = "Total".length; + for (var category in categoryMeans) { + if (category.length + 2 > width) + width = category.length + 2; + } + for (var i = 0; i < tests.length; i++) { + var shortName = tests[i].replace(/^[^-]*-/, ""); + if (shortName.length + 4 > width) + width = shortName.length + 4; + } + + return width; +} + +function computeMeanWidth() +{ + var width = mean.toFixed(1).toString().length; + for (var category in categoryMeans) { + var candidate = categoryMeans[category].toFixed(2).toString().length; + if (candidate > width) + width = candidate; + for (var test in testMeansByCategory[category]) { + var candidate = testMeansByCategory[category][test].toFixed(2).toString().length; + if (candidate > width) + width = candidate; + } + } + + return width; +} + +if (!this['explanations']) + var explanations = {}; + +function resultLine(labelWidth, indent, label, meanWidth, mean, stdErr) +{ + var result = ""; + for (i = 0; i < indent; i++) { + result += " "; + } + + if (label in explanations) + result += "<a href='" + explanations[label] + "'>" + label + "</a>: "; + else + result += label + ": "; + + for (i = 0; i < (labelWidth - (label.length + indent)); i++) { + result += " "; + } + + return result + formatResult(meanWidth, mean, stdErr, count); +} + +function printOutput() +{ + var labelWidth = computeLabelWidth(); + var meanWidth = computeMeanWidth(); + + print("\n"); + print("==============================================="); + if (count == 1) + print("RESULTS"); + else + print("RESULTS (means and 95% confidence intervals)"); + print("-----------------------------------------------"); + print(resultLine(labelWidth, 0, "Total", meanWidth, mean, stdErr)); + print("-----------------------------------------------"); + for (var category in categoryMeans) { + print(""); + print(resultLine(labelWidth, 2, category, meanWidth, categoryMeans[category], categoryStdErrs[category])); + for (var test in testMeansByCategory[category]) { + var shortName = test.replace(/^[^-]*-/, ""); + print(resultLine(labelWidth, 4, shortName, meanWidth, testMeansByCategory[category][test], testStdErrsByCategory[category][test])); + } + } +} + +initialize(); +computeItemTotals(); +computeTotals(); +computeMeans(); +computeStdDevs(); +computeStdErrors(); +printOutput(); diff --git a/chrome/test/data/third_party/kraken/hosted/compare-results.js b/chrome/test/data/third_party/kraken/hosted/compare-results.js new file mode 100644 index 0000000..583173e --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/compare-results.js @@ -0,0 +1,381 @@ +/* + * Copyright (C) 2007 Apple Inc. All rights reserved. + * Copyright (C) 2010 Mozilla Foundation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +function sunspiderCompareResults(output1, output2) +{ + var count1 = output1.length; + var count2 = output2.length; + + var itemTotals1 = {}; + itemTotals1.length = count1; + + var total1 = 0; + var categoryTotals1 = {}; + var testTotalsByCategory1 = {}; + + var mean1 = 0; + var categoryMeans1 = {}; + var testMeansByCategory1 = {}; + + var stdDev1 = 0; + var categoryStdDevs1 = {}; + var testStdDevsByCategory1 = {}; + + var stdErr1 = 0; + var categoryStdErrs1 = {}; + var testStdErrsByCategory1 = {}; + + var itemTotals2 = {}; + itemTotals2.length = count2; + + var total2 = 0; + var categoryTotals2 = {}; + var testTotalsByCategory2 = {}; + + var mean2 = 0; + var categoryMeans2 = {}; + var testMeansByCategory2 = {}; + + var stdDev2 = 0; + var categoryStdDevs2 = {}; + var testStdDevsByCategory2 = {}; + + var stdErr2 = 0; + var categoryStdErrs2 = {}; + var testStdErrsByCategory2 = {}; + + function initialize() + { + itemTotals1 = {total: []}; + + for (var i = 0; i < categories.length; i++) { + var category = categories[i]; + itemTotals1[category] = []; + categoryTotals1[category] = 0; + testTotalsByCategory1[category] = {}; + categoryMeans1[category] = 0; + testMeansByCategory1[category] = {}; + categoryStdDevs1[category] = 0; + testStdDevsByCategory1[category] = {}; + categoryStdErrs1[category] = 0; + testStdErrsByCategory1[category] = {}; + } + + for (var i = 0; i < tests.length; i++) { + var test = tests[i]; + itemTotals1[test] = []; + var category = test.replace(/-.*/, ""); + testTotalsByCategory1[category][test] = 0; + testMeansByCategory1[category][test] = 0; + testStdDevsByCategory1[category][test] = 0; + testStdErrsByCategory1[category][test] = 0; + } + + for (var i = 0; i < count1; i++) { + itemTotals1["total"][i] = 0; + for (var category in categoryTotals1) { + itemTotals1[category][i] = 0; + for (var test in testTotalsByCategory1[category]) { + itemTotals1[test][i] = 0; + } + } + } + + itemTotals2 = {total: []}; + + for (var i = 0; i < categories.length; i++) { + var category = categories[i]; + itemTotals2[category] = []; + categoryTotals2[category] = 0; + testTotalsByCategory2[category] = {}; + categoryMeans2[category] = 0; + testMeansByCategory2[category] = {}; + categoryStdDevs2[category] = 0; + testStdDevsByCategory2[category] = {}; + categoryStdErrs2[category] = 0; + testStdErrsByCategory2[category] = {}; + } + + for (var i = 0; i < tests.length; i++) { + var test = tests[i]; + itemTotals2[test] = []; + var category = test.replace(/-.*/, ""); + testTotalsByCategory2[category][test] = 0; + testMeansByCategory2[category][test] = 0; + testStdDevsByCategory2[category][test] = 0; + testStdErrsByCategory2[category][test] = 0; + } + + for (var i = 0; i < count2; i++) { + itemTotals2["total"][i] = 0; + for (var category in categoryTotals2) { + itemTotals2[category][i] = 0; + for (var test in testTotalsByCategory2[category]) { + itemTotals2[test][i] = 0; + } + } + } + + } + + function computeItemTotals(output, itemTotals) + { + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + itemTotals["total"][i] += time; + itemTotals[category][i] += time; + itemTotals[test][i] += time; + } + } + } + + function computeTotals(output, categoryTotals, testTotalsByCategory) + { + var total = 0; + + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + total += time; + categoryTotals[category] += time; + testTotalsByCategory[category][test] += time; + } + } + + return total; + } + + function computeMeans(count, total, categoryTotals, categoryMeans, testTotalsByCategory, testMeansByCategory) + { + var mean = total / count; + for (var category in categoryTotals) { + categoryMeans[category] = categoryTotals[category] / count; + for (var test in testTotalsByCategory[category]) { + testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count; + } + } + return mean; + } + + function standardDeviation(mean, items) + { + var deltaSquaredSum = 0; + for (var i = 0; i < items.length; i++) { + var delta = items[i] - mean; + deltaSquaredSum += delta * delta; + } + variance = deltaSquaredSum / (items.length - 1); + return Math.sqrt(variance); + } + + function computeStdDevs(mean, itemTotals, categoryStdDevs, categoryMeans, testStdDevsByCategory, testMeansByCategory) + { + var stdDev = standardDeviation(mean, itemTotals["total"]); + for (var category in categoryStdDevs) { + categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]); + } + for (var category in categoryStdDevs) { + for (var test in testStdDevsByCategory[category]) { + testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]); + } + } + return stdDev; + } + + function computeStdErrors(count, stdDev, categoryStdErrs, categoryStdDevs, testStdErrsByCategory, testStdDevsByCategory) + { + var sqrtCount = Math.sqrt(count); + + var stdErr = stdDev / sqrtCount; + for (var category in categoryStdErrs) { + categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount; + } + for (var category in categoryStdDevs) { + for (var test in testStdErrsByCategory[category]) { + testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount; + } + } + + return stdErr; + } + + var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96]; + var tMax = tDistribution.length; + var tLimit = 1.96; + + function tDist(n) + { + if (n > tMax) + return tLimit; + return tDistribution[n]; + } + + + function formatMean(meanWidth, mean, stdErr, count) + { + var meanString = mean.toFixed(1).toString(); + while (meanString.length < meanWidth) { + meanString = " " + meanString; + } + + var error = "+/- " + ((tDist(count) * stdErr / mean) * 100).toFixed(1) + "% "; + + return meanString + "ms " + error; + } + + function computeLabelWidth() + { + var width = "Total".length; + for (var category in categoryMeans1) { + if (category.length + 2 > width) + width = category.length + 2; + } + for (var i = 0; i < tests.length; i++) { + var shortName = tests[i].replace(/^[^-]*-/, ""); + if (shortName.length + 4 > width) + width = shortName.length + 4; + } + + return width; + } + + function computeMeanWidth(mean, categoryMeans, testMeansByCategory) + { + var width = mean.toFixed(1).toString().length; + for (var category in categoryMeans) { + var candidate = categoryMeans[category].toFixed(1).toString().length; + if (candidate > width) + width = candidate; + for (var test in testMeansByCategory[category]) { + var candidate = testMeansByCategory[category][test].toFixed(1).toString().length; + if (candidate > width) + width = candidate; + } + } + + return width; + } + + function pad(str, n) + { + while (str.length < n) { + str += " "; + } + return str; + } + + function resultLine(labelWidth, indent, label, meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2) + { + result = pad("", indent); + result += label + ": "; + result = pad(result, labelWidth + 2); + + var t = (mean1 - mean2) / (Math.sqrt((stdErr1 * stdErr1) + (stdErr2 * stdErr2))); + var df = count1 + count2 - 2; + + var statisticallySignificant = (Math.abs(t) > tDist(df+1)); + var diff = mean2 - mean1; + var percentage = 100 * diff / mean1; + var isFaster = diff < 0; + var probablySame = (percentage < 0.1) && !statisticallySignificant; + var ratio = isFaster ? (mean1 / mean2) : (mean2 / mean1); + var fixedRatio = (ratio < 1.2) ? ratio.toFixed(3).toString() : ((ratio < 10) ? ratio.toFixed(2).toString() : ratio.toFixed(1).toString()); + var formattedRatio = isFaster ? fixedRatio + "x as fast" : "*" + fixedRatio + "x as slow*"; + + var diffSummary; + var diffDetail; + + if (probablySame) { + diffSummary = "-"; + diffDetail = ""; + } else if (!statisticallySignificant) { + diffSummary = "??"; + diffDetail = " might be " + formattedRatio; + } else { + diffSummary = formattedRatio; + diffDetail = " significant"; + } + + return result + pad(diffSummary, 18) + formatMean(meanWidth1, mean1, stdErr1, count1) + " " + formatMean(meanWidth2, mean2, stdErr2, count2) + diffDetail; + } + + function printOutput() + { + var labelWidth = computeLabelWidth(); + var meanWidth1 = computeMeanWidth(mean1, categoryMeans1, testMeansByCategory1); + var meanWidth2 = computeMeanWidth(mean2, categoryMeans2, testMeansByCategory2); + + print("\n"); + var header = "TEST"; + while (header.length < labelWidth) + header += " "; + header += " COMPARISON FROM TO DETAILS"; + print(header); + print(""); + print("===================================================================================="); + print(""); + print(resultLine(labelWidth, 0, "** TOTAL **", meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2)); + print(""); + print("===================================================================================="); + + for (var category in categoryMeans1) { + print(""); + print(resultLine(labelWidth, 2, category, + meanWidth1, categoryMeans1[category], categoryStdErrs1[category], + meanWidth2, categoryMeans2[category], categoryStdErrs2[category])); + for (var test in testMeansByCategory1[category]) { + var shortName = test.replace(/^[^-]*-/, ""); + print(resultLine(labelWidth, 4, shortName, + meanWidth1, testMeansByCategory1[category][test], testStdErrsByCategory1[category][test], + meanWidth2, testMeansByCategory2[category][test], testStdErrsByCategory2[category][test])); + } + } + } + + initialize(); + + computeItemTotals(output1, itemTotals1); + computeItemTotals(output2, itemTotals2); + + total1 = computeTotals(output1, categoryTotals1, testTotalsByCategory1); + total2 = computeTotals(output2, categoryTotals2, testTotalsByCategory2); + + mean1 = computeMeans(count1, total1, categoryTotals1, categoryMeans1, testTotalsByCategory1, testMeansByCategory1); + mean2 = computeMeans(count2, total2, categoryTotals2, categoryMeans2, testTotalsByCategory2, testMeansByCategory2); + + stdDev1 = computeStdDevs(mean1, itemTotals1, categoryStdDevs1, categoryMeans1, testStdDevsByCategory1, testMeansByCategory1); + stdDev2 = computeStdDevs(mean2, itemTotals2, categoryStdDevs2, categoryMeans2, testStdDevsByCategory2, testMeansByCategory2); + + stdErr1 = computeStdErrors(count1, stdDev1, categoryStdErrs1, categoryStdDevs1, testStdErrsByCategory1, testStdDevsByCategory1); + stdErr2 = computeStdErrors(count2, stdDev2, categoryStdErrs2, categoryStdDevs2, testStdErrsByCategory2, testStdDevsByCategory2); + + printOutput(); +} diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/astar.html b/chrome/test/data/third_party/kraken/hosted/explanations/astar.html new file mode 100644 index 0000000..a481ae6 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/astar.html @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: A* Search Algorithm</title> +<link rel="stylesheet" href="../kraken.css"> +<script src="astar.js"></script> +<script> + function getCanvasContext() { + var canvas = document.getElementById('display'); + if (canvas.getContext) + return canvas.getContext('2d'); + } + + function drawEndpoints(ctx, start, end) { + drawCanvasCell(ctx, start.x, start.y, "rgb(256,0,0)"); + drawCanvasCell(ctx, end.x, end.y, "rgb(256,256,0)"); + } + + function drawSuccessfulPath(nodeList) { + var ctx = getCanvasContext(); + for (var i=0; i < nodeList.length; i++) { + ctx.fillStyle = "rgb(256,0,0)"; + ctx.fillRect((nodeList[i].x * 5) + 1, (nodeList[i].y * 5) + 1, 3, 3); + } + } + + function drawCanvas(graphSet) { + var ctx = getCanvasContext(); + for (var i = 0; i < graphSet.length; i++) { + for (var j = 0; j < graphSet.length; j++) { + var node = graphSet[i][j]; + if (node.isWall()) { + drawCanvasCell(ctx, node.x, node.y, "rgb(0,0,0)"); + } else { + drawCanvasCell(ctx, node.x, node.y, "rgb(50,50,50)"); + } + } + } + drawEndpoints(ctx, start, end); + } + + function drawCanvasCell(ctx, x, y, style) { + ctx.fillStyle = style; + ctx.fillRect(x * 5, y * 5, 5, 5); + } + + function doIt() { + var div = document.getElementById("console"); + div.innerHTML += go(); + div.innerHTML += "<br>"; + drawSuccessfulPath(path); + } +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body onload="drawCanvas(g1);"> +<div id="content"> +<h2>Kraken JavaScript Benchmark: A* Search Algorithm</h2> +<div id="results"> + <p>This benchmark uses the <a href="http://en.wikipedia.org/wiki/A*_search_algorithm">A* search algorithm</a> is used to automatically plot an efficient path between two points,<br> in the presence of obstacles. Adapted from code by <a href="http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript">Brian Gringstead</a>.</p> + <p>Below, you can watch the algorithm plot a path through the maze.</p> + <canvas id="display" width=500 height=500></canvas> + <p><input onclick="drawCanvas(g1); setTimeout(doIt, 10);" type="button" value="Try It!"></p> + <div id="console"></div> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/astar.js b/chrome/test/data/third_party/kraken/hosted/explanations/astar.js new file mode 100644 index 0000000..2d9215c --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/astar.js @@ -0,0 +1,50428 @@ + +Array.prototype.each = function(f) { + if(!f.apply) return; + for(var i=0;i<this.length;i++) { + f.apply(this[i], [i, this]); + } +} +Array.prototype.findGraphNode = function(obj) { + for(var i=0;i<this.length;i++) { + if(this[i].pos == obj.pos) { return this[i]; } + } + return false; +}; +Array.prototype.removeGraphNode = function(obj) { + for(var i=0;i<this.length;i++) { + if(this[i].pos == obj.pos) { this.splice(i,1); } + } + return false; +}; + +function createGraphSet(gridSize, wallFrequency) { + var graphSet = []; + for(var x=0;x<gridSize;x++) { + var row = []; + for(var y=0;y<gridSize;y++) { + // maybe set this node to be wall + var rand = Math.floor(Math.random()*(1/wallFrequency)); + row.push(new GraphNode(x,y,(rand == 0))); + } + graphSet.push(row); + } + return graphSet; +} + +function GraphNode(x,y,isWall) { + this.x = x; + this.y = y; + this._isWall = isWall; + this.pos = {x:x,y:y}; + this.debug = ""; +} + +GraphNode.prototype.toJSON = function() { + return {"x": this.x, "y": this.y, "isWall": this._isWall}; +} + +GraphNode.prototype.toString = function() { + return "[" + this.x + " " + this.y + "]"; +} +GraphNode.prototype.isAt = function(x,y) { + return (x == this.x) && (y == this.y); +}; +GraphNode.prototype.isWall = function() { + return this._isWall; +}; + +// astar.js +// Implements the astar search algorithm in javascript + +var astar = { + init: function(grid) { + for(var x = 0; x < grid.length; x++) { + for(var y = 0; y < grid[x].length; y++) { + grid[x][y].f = 0; + grid[x][y].g = 0; + grid[x][y].h = 0; + // grid[x][y].debug = ""; + grid[x][y].parent = null; + } + } + }, + search: function(grid, start, end) { + astar.init(grid); + + var openList = []; + var closedList = []; + openList.push(start); + + while(openList.length > 0) { + + // Grab the lowest f(x) to process next + var lowInd = 0; + for(var i=0; i<openList.length; i++) { + if(openList[i].f < openList[lowInd].f) { lowInd = i; } + } + var currentNode = openList[lowInd]; + + // End case -- result has been found, return the traced path + if(currentNode.pos == end.pos) { + var curr = currentNode; + var ret = []; + while(curr.parent) { + ret.push(curr); + curr = curr.parent; + } + return ret.reverse(); + } + + // Normal case -- move currentNode from open to closed, process each of its neighbors + openList.removeGraphNode(currentNode); + closedList.push(currentNode); + var neighbors = astar.neighbors(grid, currentNode); + + for(var j=0; j<neighbors.length;j++) { + var neighbor = neighbors[j]; + if(closedList.findGraphNode(neighbor) || neighbor.isWall()) { + // not a valid node to process, skip to next neighbor + continue; + } + + // g score is the shortest distance from start to current node, we need to check if + // the path we have arrived at this neighbor is the shortest one we have seen yet + var gScore = currentNode.g + 1; // 1 is the distance from a node to it's neighbor + var gScoreIsBest = false; + + + if(!openList.findGraphNode(neighbor)) { + // This the the first time we have arrived at this node, it must be the best + // Also, we need to take the h (heuristic) score since we haven't done so yet + + gScoreIsBest = true; + neighbor.h = astar.heuristic(neighbor.pos, end.pos); + openList.push(neighbor); + } + else if(gScore < neighbor.g) { + // We have already seen the node, but last time it had a worse g (distance from start) + gScoreIsBest = true; + } + + if(gScoreIsBest) { + // Found an optimal (so far) path to this node. Store info on how we got here and + // just how good it really is... + neighbor.parent = currentNode; + neighbor.g = gScore; + neighbor.f = neighbor.g + neighbor.h; + // neighbor.debug = "F: " + neighbor.f + "<br />G: " + neighbor.g + "<br />H: " + neighbor.h; + } + } + } + + // No result was found -- empty array signifies failure to find path + return []; + }, + heuristic: function(pos0, pos1) { + // This is the Manhattan distance + var d1 = Math.abs (pos1.x - pos0.x); + var d2 = Math.abs (pos1.y - pos0.y); + return d1 + d2; + }, + neighbors: function(grid, node) { + var ret = []; + var x = node.pos.x; + var y = node.pos.y; + + if(grid[x-1] && grid[x-1][y]) { + ret.push(grid[x-1][y]); + } + if(grid[x+1] && grid[x+1][y]) { + ret.push(grid[x+1][y]); + } + if(grid[x][y-1] && grid[x][y-1]) { + ret.push(grid[x][y-1]); + } + if(grid[x][y+1] && grid[x][y+1]) { + ret.push(grid[x][y+1]); + } + return ret; + } +}; + +function getStartingCell(graphSet) { + for (var j = 0; j < graphSet.length; j++) { + for (var k = 0; k < graphSet[j].length; k++ ) { + if (!graphSet[j][k].isWall()) + return graphSet[j][k]; + } + } + throw "No start?"; +} + +function getEndingCell(graphSet) { + for (var j = graphSet.length - 1; j >= 0; j--) { + for (var k = graphSet[j].length - 1; k >= 0; k-- ) { + if (!graphSet[j][k].isWall()) + return graphSet[j][k]; + } + } + throw "No end?"; +} + + var g1 = [ + [ + { + "x": 0, + "y": 0, + "isWall": false + }, + { + "x": 0, + "y": 1, + "isWall": false + }, + { + "x": 0, + "y": 2, + "isWall": true + }, + { + "x": 0, + "y": 3, + "isWall": false + }, + { + "x": 0, + "y": 4, + "isWall": false + }, + { + "x": 0, + "y": 5, + "isWall": false + }, + { + "x": 0, + "y": 6, + "isWall": false + }, + { + "x": 0, + "y": 7, + "isWall": true + }, + { + "x": 0, + "y": 8, + "isWall": false + }, + { + "x": 0, + "y": 9, + "isWall": false + }, + { + "x": 0, + "y": 10, + "isWall": false + }, + { + "x": 0, + "y": 11, + "isWall": false + }, + { + "x": 0, + "y": 12, + "isWall": false + }, + { + "x": 0, + "y": 13, + "isWall": false + }, + { + "x": 0, + "y": 14, + "isWall": false + }, + { + "x": 0, + "y": 15, + "isWall": false + }, + { + "x": 0, + "y": 16, + "isWall": false + }, + { + "x": 0, + "y": 17, + "isWall": false + }, + { + "x": 0, + "y": 18, + "isWall": false + }, + { + "x": 0, + "y": 19, + "isWall": false + }, + { + "x": 0, + "y": 20, + "isWall": false + }, + { + "x": 0, + "y": 21, + "isWall": true + }, + { + "x": 0, + "y": 22, + "isWall": true + }, + { + "x": 0, + "y": 23, + "isWall": false + }, + { + "x": 0, + "y": 24, + "isWall": false + }, + { + "x": 0, + "y": 25, + "isWall": false + }, + { + "x": 0, + "y": 26, + "isWall": false + }, + { + "x": 0, + "y": 27, + "isWall": false + }, + { + "x": 0, + "y": 28, + "isWall": true + }, + { + "x": 0, + "y": 29, + "isWall": false + }, + { + "x": 0, + "y": 30, + "isWall": false + }, + { + "x": 0, + "y": 31, + "isWall": false + }, + { + "x": 0, + "y": 32, + "isWall": false + }, + { + "x": 0, + "y": 33, + "isWall": true + }, + { + "x": 0, + "y": 34, + "isWall": false + }, + { + "x": 0, + "y": 35, + "isWall": false + }, + { + "x": 0, + "y": 36, + "isWall": true + }, + { + "x": 0, + "y": 37, + "isWall": true + }, + { + "x": 0, + "y": 38, + "isWall": true + }, + { + "x": 0, + "y": 39, + "isWall": false + }, + { + "x": 0, + "y": 40, + "isWall": false + }, + { + "x": 0, + "y": 41, + "isWall": true + }, + { + "x": 0, + "y": 42, + "isWall": false + }, + { + "x": 0, + "y": 43, + "isWall": false + }, + { + "x": 0, + "y": 44, + "isWall": true + }, + { + "x": 0, + "y": 45, + "isWall": false + }, + { + "x": 0, + "y": 46, + "isWall": false + }, + { + "x": 0, + "y": 47, + "isWall": false + }, + { + "x": 0, + "y": 48, + "isWall": false + }, + { + "x": 0, + "y": 49, + "isWall": false + }, + { + "x": 0, + "y": 50, + "isWall": false + }, + { + "x": 0, + "y": 51, + "isWall": true + }, + { + "x": 0, + "y": 52, + "isWall": false + }, + { + "x": 0, + "y": 53, + "isWall": false + }, + { + "x": 0, + "y": 54, + "isWall": true + }, + { + "x": 0, + "y": 55, + "isWall": true + }, + { + "x": 0, + "y": 56, + "isWall": false + }, + { + "x": 0, + "y": 57, + "isWall": false + }, + { + "x": 0, + "y": 58, + "isWall": false + }, + { + "x": 0, + "y": 59, + "isWall": false + }, + { + "x": 0, + "y": 60, + "isWall": true + }, + { + "x": 0, + "y": 61, + "isWall": true + }, + { + "x": 0, + "y": 62, + "isWall": true + }, + { + "x": 0, + "y": 63, + "isWall": false + }, + { + "x": 0, + "y": 64, + "isWall": false + }, + { + "x": 0, + "y": 65, + "isWall": true + }, + { + "x": 0, + "y": 66, + "isWall": false + }, + { + "x": 0, + "y": 67, + "isWall": false + }, + { + "x": 0, + "y": 68, + "isWall": true + }, + { + "x": 0, + "y": 69, + "isWall": false + }, + { + "x": 0, + "y": 70, + "isWall": false + }, + { + "x": 0, + "y": 71, + "isWall": false + }, + { + "x": 0, + "y": 72, + "isWall": true + }, + { + "x": 0, + "y": 73, + "isWall": false + }, + { + "x": 0, + "y": 74, + "isWall": false + }, + { + "x": 0, + "y": 75, + "isWall": false + }, + { + "x": 0, + "y": 76, + "isWall": false + }, + { + "x": 0, + "y": 77, + "isWall": false + }, + { + "x": 0, + "y": 78, + "isWall": true + }, + { + "x": 0, + "y": 79, + "isWall": false + }, + { + "x": 0, + "y": 80, + "isWall": false + }, + { + "x": 0, + "y": 81, + "isWall": false + }, + { + "x": 0, + "y": 82, + "isWall": false + }, + { + "x": 0, + "y": 83, + "isWall": false + }, + { + "x": 0, + "y": 84, + "isWall": false + }, + { + "x": 0, + "y": 85, + "isWall": true + }, + { + "x": 0, + "y": 86, + "isWall": false + }, + { + "x": 0, + "y": 87, + "isWall": false + }, + { + "x": 0, + "y": 88, + "isWall": true + }, + { + "x": 0, + "y": 89, + "isWall": false + }, + { + "x": 0, + "y": 90, + "isWall": false + }, + { + "x": 0, + "y": 91, + "isWall": false + }, + { + "x": 0, + "y": 92, + "isWall": false + }, + { + "x": 0, + "y": 93, + "isWall": false + }, + { + "x": 0, + "y": 94, + "isWall": false + }, + { + "x": 0, + "y": 95, + "isWall": false + }, + { + "x": 0, + "y": 96, + "isWall": true + }, + { + "x": 0, + "y": 97, + "isWall": true + }, + { + "x": 0, + "y": 98, + "isWall": false + }, + { + "x": 0, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 1, + "y": 0, + "isWall": true + }, + { + "x": 1, + "y": 1, + "isWall": false + }, + { + "x": 1, + "y": 2, + "isWall": false + }, + { + "x": 1, + "y": 3, + "isWall": false + }, + { + "x": 1, + "y": 4, + "isWall": false + }, + { + "x": 1, + "y": 5, + "isWall": false + }, + { + "x": 1, + "y": 6, + "isWall": false + }, + { + "x": 1, + "y": 7, + "isWall": false + }, + { + "x": 1, + "y": 8, + "isWall": false + }, + { + "x": 1, + "y": 9, + "isWall": false + }, + { + "x": 1, + "y": 10, + "isWall": true + }, + { + "x": 1, + "y": 11, + "isWall": false + }, + { + "x": 1, + "y": 12, + "isWall": false + }, + { + "x": 1, + "y": 13, + "isWall": false + }, + { + "x": 1, + "y": 14, + "isWall": false + }, + { + "x": 1, + "y": 15, + "isWall": true + }, + { + "x": 1, + "y": 16, + "isWall": false + }, + { + "x": 1, + "y": 17, + "isWall": false + }, + { + "x": 1, + "y": 18, + "isWall": false + }, + { + "x": 1, + "y": 19, + "isWall": false + }, + { + "x": 1, + "y": 20, + "isWall": false + }, + { + "x": 1, + "y": 21, + "isWall": false + }, + { + "x": 1, + "y": 22, + "isWall": false + }, + { + "x": 1, + "y": 23, + "isWall": false + }, + { + "x": 1, + "y": 24, + "isWall": true + }, + { + "x": 1, + "y": 25, + "isWall": false + }, + { + "x": 1, + "y": 26, + "isWall": true + }, + { + "x": 1, + "y": 27, + "isWall": true + }, + { + "x": 1, + "y": 28, + "isWall": false + }, + { + "x": 1, + "y": 29, + "isWall": false + }, + { + "x": 1, + "y": 30, + "isWall": false + }, + { + "x": 1, + "y": 31, + "isWall": true + }, + { + "x": 1, + "y": 32, + "isWall": true + }, + { + "x": 1, + "y": 33, + "isWall": false + }, + { + "x": 1, + "y": 34, + "isWall": false + }, + { + "x": 1, + "y": 35, + "isWall": false + }, + { + "x": 1, + "y": 36, + "isWall": false + }, + { + "x": 1, + "y": 37, + "isWall": false + }, + { + "x": 1, + "y": 38, + "isWall": false + }, + { + "x": 1, + "y": 39, + "isWall": false + }, + { + "x": 1, + "y": 40, + "isWall": true + }, + { + "x": 1, + "y": 41, + "isWall": false + }, + { + "x": 1, + "y": 42, + "isWall": false + }, + { + "x": 1, + "y": 43, + "isWall": false + }, + { + "x": 1, + "y": 44, + "isWall": false + }, + { + "x": 1, + "y": 45, + "isWall": false + }, + { + "x": 1, + "y": 46, + "isWall": true + }, + { + "x": 1, + "y": 47, + "isWall": false + }, + { + "x": 1, + "y": 48, + "isWall": true + }, + { + "x": 1, + "y": 49, + "isWall": true + }, + { + "x": 1, + "y": 50, + "isWall": false + }, + { + "x": 1, + "y": 51, + "isWall": false + }, + { + "x": 1, + "y": 52, + "isWall": false + }, + { + "x": 1, + "y": 53, + "isWall": true + }, + { + "x": 1, + "y": 54, + "isWall": false + }, + { + "x": 1, + "y": 55, + "isWall": false + }, + { + "x": 1, + "y": 56, + "isWall": true + }, + { + "x": 1, + "y": 57, + "isWall": false + }, + { + "x": 1, + "y": 58, + "isWall": true + }, + { + "x": 1, + "y": 59, + "isWall": false + }, + { + "x": 1, + "y": 60, + "isWall": true + }, + { + "x": 1, + "y": 61, + "isWall": true + }, + { + "x": 1, + "y": 62, + "isWall": false + }, + { + "x": 1, + "y": 63, + "isWall": false + }, + { + "x": 1, + "y": 64, + "isWall": true + }, + { + "x": 1, + "y": 65, + "isWall": false + }, + { + "x": 1, + "y": 66, + "isWall": false + }, + { + "x": 1, + "y": 67, + "isWall": false + }, + { + "x": 1, + "y": 68, + "isWall": false + }, + { + "x": 1, + "y": 69, + "isWall": false + }, + { + "x": 1, + "y": 70, + "isWall": false + }, + { + "x": 1, + "y": 71, + "isWall": false + }, + { + "x": 1, + "y": 72, + "isWall": false + }, + { + "x": 1, + "y": 73, + "isWall": false + }, + { + "x": 1, + "y": 74, + "isWall": false + }, + { + "x": 1, + "y": 75, + "isWall": false + }, + { + "x": 1, + "y": 76, + "isWall": false + }, + { + "x": 1, + "y": 77, + "isWall": false + }, + { + "x": 1, + "y": 78, + "isWall": false + }, + { + "x": 1, + "y": 79, + "isWall": false + }, + { + "x": 1, + "y": 80, + "isWall": false + }, + { + "x": 1, + "y": 81, + "isWall": false + }, + { + "x": 1, + "y": 82, + "isWall": false + }, + { + "x": 1, + "y": 83, + "isWall": false + }, + { + "x": 1, + "y": 84, + "isWall": false + }, + { + "x": 1, + "y": 85, + "isWall": true + }, + { + "x": 1, + "y": 86, + "isWall": false + }, + { + "x": 1, + "y": 87, + "isWall": false + }, + { + "x": 1, + "y": 88, + "isWall": true + }, + { + "x": 1, + "y": 89, + "isWall": false + }, + { + "x": 1, + "y": 90, + "isWall": false + }, + { + "x": 1, + "y": 91, + "isWall": false + }, + { + "x": 1, + "y": 92, + "isWall": false + }, + { + "x": 1, + "y": 93, + "isWall": false + }, + { + "x": 1, + "y": 94, + "isWall": true + }, + { + "x": 1, + "y": 95, + "isWall": false + }, + { + "x": 1, + "y": 96, + "isWall": true + }, + { + "x": 1, + "y": 97, + "isWall": false + }, + { + "x": 1, + "y": 98, + "isWall": true + }, + { + "x": 1, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 2, + "y": 0, + "isWall": false + }, + { + "x": 2, + "y": 1, + "isWall": false + }, + { + "x": 2, + "y": 2, + "isWall": false + }, + { + "x": 2, + "y": 3, + "isWall": false + }, + { + "x": 2, + "y": 4, + "isWall": false + }, + { + "x": 2, + "y": 5, + "isWall": false + }, + { + "x": 2, + "y": 6, + "isWall": true + }, + { + "x": 2, + "y": 7, + "isWall": false + }, + { + "x": 2, + "y": 8, + "isWall": false + }, + { + "x": 2, + "y": 9, + "isWall": true + }, + { + "x": 2, + "y": 10, + "isWall": false + }, + { + "x": 2, + "y": 11, + "isWall": true + }, + { + "x": 2, + "y": 12, + "isWall": false + }, + { + "x": 2, + "y": 13, + "isWall": false + }, + { + "x": 2, + "y": 14, + "isWall": false + }, + { + "x": 2, + "y": 15, + "isWall": false + }, + { + "x": 2, + "y": 16, + "isWall": false + }, + { + "x": 2, + "y": 17, + "isWall": false + }, + { + "x": 2, + "y": 18, + "isWall": true + }, + { + "x": 2, + "y": 19, + "isWall": false + }, + { + "x": 2, + "y": 20, + "isWall": false + }, + { + "x": 2, + "y": 21, + "isWall": true + }, + { + "x": 2, + "y": 22, + "isWall": true + }, + { + "x": 2, + "y": 23, + "isWall": false + }, + { + "x": 2, + "y": 24, + "isWall": true + }, + { + "x": 2, + "y": 25, + "isWall": false + }, + { + "x": 2, + "y": 26, + "isWall": false + }, + { + "x": 2, + "y": 27, + "isWall": false + }, + { + "x": 2, + "y": 28, + "isWall": true + }, + { + "x": 2, + "y": 29, + "isWall": false + }, + { + "x": 2, + "y": 30, + "isWall": false + }, + { + "x": 2, + "y": 31, + "isWall": false + }, + { + "x": 2, + "y": 32, + "isWall": true + }, + { + "x": 2, + "y": 33, + "isWall": false + }, + { + "x": 2, + "y": 34, + "isWall": false + }, + { + "x": 2, + "y": 35, + "isWall": true + }, + { + "x": 2, + "y": 36, + "isWall": false + }, + { + "x": 2, + "y": 37, + "isWall": true + }, + { + "x": 2, + "y": 38, + "isWall": true + }, + { + "x": 2, + "y": 39, + "isWall": true + }, + { + "x": 2, + "y": 40, + "isWall": false + }, + { + "x": 2, + "y": 41, + "isWall": true + }, + { + "x": 2, + "y": 42, + "isWall": false + }, + { + "x": 2, + "y": 43, + "isWall": true + }, + { + "x": 2, + "y": 44, + "isWall": false + }, + { + "x": 2, + "y": 45, + "isWall": true + }, + { + "x": 2, + "y": 46, + "isWall": true + }, + { + "x": 2, + "y": 47, + "isWall": false + }, + { + "x": 2, + "y": 48, + "isWall": true + }, + { + "x": 2, + "y": 49, + "isWall": false + }, + { + "x": 2, + "y": 50, + "isWall": false + }, + { + "x": 2, + "y": 51, + "isWall": false + }, + { + "x": 2, + "y": 52, + "isWall": false + }, + { + "x": 2, + "y": 53, + "isWall": false + }, + { + "x": 2, + "y": 54, + "isWall": true + }, + { + "x": 2, + "y": 55, + "isWall": true + }, + { + "x": 2, + "y": 56, + "isWall": false + }, + { + "x": 2, + "y": 57, + "isWall": true + }, + { + "x": 2, + "y": 58, + "isWall": false + }, + { + "x": 2, + "y": 59, + "isWall": false + }, + { + "x": 2, + "y": 60, + "isWall": false + }, + { + "x": 2, + "y": 61, + "isWall": false + }, + { + "x": 2, + "y": 62, + "isWall": true + }, + { + "x": 2, + "y": 63, + "isWall": false + }, + { + "x": 2, + "y": 64, + "isWall": true + }, + { + "x": 2, + "y": 65, + "isWall": true + }, + { + "x": 2, + "y": 66, + "isWall": true + }, + { + "x": 2, + "y": 67, + "isWall": true + }, + { + "x": 2, + "y": 68, + "isWall": false + }, + { + "x": 2, + "y": 69, + "isWall": false + }, + { + "x": 2, + "y": 70, + "isWall": false + }, + { + "x": 2, + "y": 71, + "isWall": false + }, + { + "x": 2, + "y": 72, + "isWall": false + }, + { + "x": 2, + "y": 73, + "isWall": true + }, + { + "x": 2, + "y": 74, + "isWall": false + }, + { + "x": 2, + "y": 75, + "isWall": false + }, + { + "x": 2, + "y": 76, + "isWall": true + }, + { + "x": 2, + "y": 77, + "isWall": false + }, + { + "x": 2, + "y": 78, + "isWall": false + }, + { + "x": 2, + "y": 79, + "isWall": true + }, + { + "x": 2, + "y": 80, + "isWall": false + }, + { + "x": 2, + "y": 81, + "isWall": false + }, + { + "x": 2, + "y": 82, + "isWall": true + }, + { + "x": 2, + "y": 83, + "isWall": false + }, + { + "x": 2, + "y": 84, + "isWall": false + }, + { + "x": 2, + "y": 85, + "isWall": false + }, + { + "x": 2, + "y": 86, + "isWall": false + }, + { + "x": 2, + "y": 87, + "isWall": true + }, + { + "x": 2, + "y": 88, + "isWall": false + }, + { + "x": 2, + "y": 89, + "isWall": false + }, + { + "x": 2, + "y": 90, + "isWall": false + }, + { + "x": 2, + "y": 91, + "isWall": false + }, + { + "x": 2, + "y": 92, + "isWall": false + }, + { + "x": 2, + "y": 93, + "isWall": false + }, + { + "x": 2, + "y": 94, + "isWall": false + }, + { + "x": 2, + "y": 95, + "isWall": false + }, + { + "x": 2, + "y": 96, + "isWall": false + }, + { + "x": 2, + "y": 97, + "isWall": false + }, + { + "x": 2, + "y": 98, + "isWall": false + }, + { + "x": 2, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 3, + "y": 0, + "isWall": false + }, + { + "x": 3, + "y": 1, + "isWall": false + }, + { + "x": 3, + "y": 2, + "isWall": false + }, + { + "x": 3, + "y": 3, + "isWall": true + }, + { + "x": 3, + "y": 4, + "isWall": false + }, + { + "x": 3, + "y": 5, + "isWall": false + }, + { + "x": 3, + "y": 6, + "isWall": false + }, + { + "x": 3, + "y": 7, + "isWall": false + }, + { + "x": 3, + "y": 8, + "isWall": true + }, + { + "x": 3, + "y": 9, + "isWall": false + }, + { + "x": 3, + "y": 10, + "isWall": false + }, + { + "x": 3, + "y": 11, + "isWall": false + }, + { + "x": 3, + "y": 12, + "isWall": false + }, + { + "x": 3, + "y": 13, + "isWall": false + }, + { + "x": 3, + "y": 14, + "isWall": false + }, + { + "x": 3, + "y": 15, + "isWall": false + }, + { + "x": 3, + "y": 16, + "isWall": false + }, + { + "x": 3, + "y": 17, + "isWall": false + }, + { + "x": 3, + "y": 18, + "isWall": false + }, + { + "x": 3, + "y": 19, + "isWall": false + }, + { + "x": 3, + "y": 20, + "isWall": false + }, + { + "x": 3, + "y": 21, + "isWall": false + }, + { + "x": 3, + "y": 22, + "isWall": false + }, + { + "x": 3, + "y": 23, + "isWall": true + }, + { + "x": 3, + "y": 24, + "isWall": false + }, + { + "x": 3, + "y": 25, + "isWall": false + }, + { + "x": 3, + "y": 26, + "isWall": false + }, + { + "x": 3, + "y": 27, + "isWall": false + }, + { + "x": 3, + "y": 28, + "isWall": false + }, + { + "x": 3, + "y": 29, + "isWall": true + }, + { + "x": 3, + "y": 30, + "isWall": false + }, + { + "x": 3, + "y": 31, + "isWall": false + }, + { + "x": 3, + "y": 32, + "isWall": false + }, + { + "x": 3, + "y": 33, + "isWall": false + }, + { + "x": 3, + "y": 34, + "isWall": false + }, + { + "x": 3, + "y": 35, + "isWall": true + }, + { + "x": 3, + "y": 36, + "isWall": false + }, + { + "x": 3, + "y": 37, + "isWall": false + }, + { + "x": 3, + "y": 38, + "isWall": true + }, + { + "x": 3, + "y": 39, + "isWall": false + }, + { + "x": 3, + "y": 40, + "isWall": false + }, + { + "x": 3, + "y": 41, + "isWall": false + }, + { + "x": 3, + "y": 42, + "isWall": false + }, + { + "x": 3, + "y": 43, + "isWall": false + }, + { + "x": 3, + "y": 44, + "isWall": false + }, + { + "x": 3, + "y": 45, + "isWall": false + }, + { + "x": 3, + "y": 46, + "isWall": false + }, + { + "x": 3, + "y": 47, + "isWall": false + }, + { + "x": 3, + "y": 48, + "isWall": false + }, + { + "x": 3, + "y": 49, + "isWall": false + }, + { + "x": 3, + "y": 50, + "isWall": true + }, + { + "x": 3, + "y": 51, + "isWall": false + }, + { + "x": 3, + "y": 52, + "isWall": false + }, + { + "x": 3, + "y": 53, + "isWall": true + }, + { + "x": 3, + "y": 54, + "isWall": true + }, + { + "x": 3, + "y": 55, + "isWall": false + }, + { + "x": 3, + "y": 56, + "isWall": false + }, + { + "x": 3, + "y": 57, + "isWall": false + }, + { + "x": 3, + "y": 58, + "isWall": false + }, + { + "x": 3, + "y": 59, + "isWall": false + }, + { + "x": 3, + "y": 60, + "isWall": false + }, + { + "x": 3, + "y": 61, + "isWall": true + }, + { + "x": 3, + "y": 62, + "isWall": false + }, + { + "x": 3, + "y": 63, + "isWall": true + }, + { + "x": 3, + "y": 64, + "isWall": false + }, + { + "x": 3, + "y": 65, + "isWall": false + }, + { + "x": 3, + "y": 66, + "isWall": false + }, + { + "x": 3, + "y": 67, + "isWall": true + }, + { + "x": 3, + "y": 68, + "isWall": true + }, + { + "x": 3, + "y": 69, + "isWall": false + }, + { + "x": 3, + "y": 70, + "isWall": true + }, + { + "x": 3, + "y": 71, + "isWall": false + }, + { + "x": 3, + "y": 72, + "isWall": false + }, + { + "x": 3, + "y": 73, + "isWall": false + }, + { + "x": 3, + "y": 74, + "isWall": false + }, + { + "x": 3, + "y": 75, + "isWall": false + }, + { + "x": 3, + "y": 76, + "isWall": false + }, + { + "x": 3, + "y": 77, + "isWall": true + }, + { + "x": 3, + "y": 78, + "isWall": true + }, + { + "x": 3, + "y": 79, + "isWall": true + }, + { + "x": 3, + "y": 80, + "isWall": false + }, + { + "x": 3, + "y": 81, + "isWall": false + }, + { + "x": 3, + "y": 82, + "isWall": true + }, + { + "x": 3, + "y": 83, + "isWall": false + }, + { + "x": 3, + "y": 84, + "isWall": false + }, + { + "x": 3, + "y": 85, + "isWall": false + }, + { + "x": 3, + "y": 86, + "isWall": false + }, + { + "x": 3, + "y": 87, + "isWall": true + }, + { + "x": 3, + "y": 88, + "isWall": false + }, + { + "x": 3, + "y": 89, + "isWall": false + }, + { + "x": 3, + "y": 90, + "isWall": false + }, + { + "x": 3, + "y": 91, + "isWall": true + }, + { + "x": 3, + "y": 92, + "isWall": false + }, + { + "x": 3, + "y": 93, + "isWall": false + }, + { + "x": 3, + "y": 94, + "isWall": false + }, + { + "x": 3, + "y": 95, + "isWall": false + }, + { + "x": 3, + "y": 96, + "isWall": false + }, + { + "x": 3, + "y": 97, + "isWall": false + }, + { + "x": 3, + "y": 98, + "isWall": false + }, + { + "x": 3, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 4, + "y": 0, + "isWall": true + }, + { + "x": 4, + "y": 1, + "isWall": false + }, + { + "x": 4, + "y": 2, + "isWall": false + }, + { + "x": 4, + "y": 3, + "isWall": false + }, + { + "x": 4, + "y": 4, + "isWall": false + }, + { + "x": 4, + "y": 5, + "isWall": true + }, + { + "x": 4, + "y": 6, + "isWall": false + }, + { + "x": 4, + "y": 7, + "isWall": false + }, + { + "x": 4, + "y": 8, + "isWall": false + }, + { + "x": 4, + "y": 9, + "isWall": true + }, + { + "x": 4, + "y": 10, + "isWall": true + }, + { + "x": 4, + "y": 11, + "isWall": false + }, + { + "x": 4, + "y": 12, + "isWall": true + }, + { + "x": 4, + "y": 13, + "isWall": false + }, + { + "x": 4, + "y": 14, + "isWall": false + }, + { + "x": 4, + "y": 15, + "isWall": false + }, + { + "x": 4, + "y": 16, + "isWall": false + }, + { + "x": 4, + "y": 17, + "isWall": false + }, + { + "x": 4, + "y": 18, + "isWall": true + }, + { + "x": 4, + "y": 19, + "isWall": false + }, + { + "x": 4, + "y": 20, + "isWall": true + }, + { + "x": 4, + "y": 21, + "isWall": false + }, + { + "x": 4, + "y": 22, + "isWall": false + }, + { + "x": 4, + "y": 23, + "isWall": false + }, + { + "x": 4, + "y": 24, + "isWall": true + }, + { + "x": 4, + "y": 25, + "isWall": false + }, + { + "x": 4, + "y": 26, + "isWall": false + }, + { + "x": 4, + "y": 27, + "isWall": false + }, + { + "x": 4, + "y": 28, + "isWall": true + }, + { + "x": 4, + "y": 29, + "isWall": true + }, + { + "x": 4, + "y": 30, + "isWall": false + }, + { + "x": 4, + "y": 31, + "isWall": false + }, + { + "x": 4, + "y": 32, + "isWall": true + }, + { + "x": 4, + "y": 33, + "isWall": true + }, + { + "x": 4, + "y": 34, + "isWall": true + }, + { + "x": 4, + "y": 35, + "isWall": false + }, + { + "x": 4, + "y": 36, + "isWall": false + }, + { + "x": 4, + "y": 37, + "isWall": true + }, + { + "x": 4, + "y": 38, + "isWall": true + }, + { + "x": 4, + "y": 39, + "isWall": false + }, + { + "x": 4, + "y": 40, + "isWall": false + }, + { + "x": 4, + "y": 41, + "isWall": true + }, + { + "x": 4, + "y": 42, + "isWall": false + }, + { + "x": 4, + "y": 43, + "isWall": false + }, + { + "x": 4, + "y": 44, + "isWall": false + }, + { + "x": 4, + "y": 45, + "isWall": true + }, + { + "x": 4, + "y": 46, + "isWall": true + }, + { + "x": 4, + "y": 47, + "isWall": false + }, + { + "x": 4, + "y": 48, + "isWall": true + }, + { + "x": 4, + "y": 49, + "isWall": false + }, + { + "x": 4, + "y": 50, + "isWall": false + }, + { + "x": 4, + "y": 51, + "isWall": false + }, + { + "x": 4, + "y": 52, + "isWall": true + }, + { + "x": 4, + "y": 53, + "isWall": false + }, + { + "x": 4, + "y": 54, + "isWall": false + }, + { + "x": 4, + "y": 55, + "isWall": false + }, + { + "x": 4, + "y": 56, + "isWall": false + }, + { + "x": 4, + "y": 57, + "isWall": false + }, + { + "x": 4, + "y": 58, + "isWall": true + }, + { + "x": 4, + "y": 59, + "isWall": false + }, + { + "x": 4, + "y": 60, + "isWall": false + }, + { + "x": 4, + "y": 61, + "isWall": false + }, + { + "x": 4, + "y": 62, + "isWall": false + }, + { + "x": 4, + "y": 63, + "isWall": false + }, + { + "x": 4, + "y": 64, + "isWall": false + }, + { + "x": 4, + "y": 65, + "isWall": true + }, + { + "x": 4, + "y": 66, + "isWall": false + }, + { + "x": 4, + "y": 67, + "isWall": true + }, + { + "x": 4, + "y": 68, + "isWall": true + }, + { + "x": 4, + "y": 69, + "isWall": false + }, + { + "x": 4, + "y": 70, + "isWall": false + }, + { + "x": 4, + "y": 71, + "isWall": false + }, + { + "x": 4, + "y": 72, + "isWall": false + }, + { + "x": 4, + "y": 73, + "isWall": false + }, + { + "x": 4, + "y": 74, + "isWall": true + }, + { + "x": 4, + "y": 75, + "isWall": false + }, + { + "x": 4, + "y": 76, + "isWall": false + }, + { + "x": 4, + "y": 77, + "isWall": true + }, + { + "x": 4, + "y": 78, + "isWall": true + }, + { + "x": 4, + "y": 79, + "isWall": false + }, + { + "x": 4, + "y": 80, + "isWall": false + }, + { + "x": 4, + "y": 81, + "isWall": false + }, + { + "x": 4, + "y": 82, + "isWall": false + }, + { + "x": 4, + "y": 83, + "isWall": false + }, + { + "x": 4, + "y": 84, + "isWall": false + }, + { + "x": 4, + "y": 85, + "isWall": false + }, + { + "x": 4, + "y": 86, + "isWall": false + }, + { + "x": 4, + "y": 87, + "isWall": true + }, + { + "x": 4, + "y": 88, + "isWall": false + }, + { + "x": 4, + "y": 89, + "isWall": true + }, + { + "x": 4, + "y": 90, + "isWall": false + }, + { + "x": 4, + "y": 91, + "isWall": false + }, + { + "x": 4, + "y": 92, + "isWall": false + }, + { + "x": 4, + "y": 93, + "isWall": true + }, + { + "x": 4, + "y": 94, + "isWall": false + }, + { + "x": 4, + "y": 95, + "isWall": true + }, + { + "x": 4, + "y": 96, + "isWall": false + }, + { + "x": 4, + "y": 97, + "isWall": false + }, + { + "x": 4, + "y": 98, + "isWall": true + }, + { + "x": 4, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 5, + "y": 0, + "isWall": false + }, + { + "x": 5, + "y": 1, + "isWall": false + }, + { + "x": 5, + "y": 2, + "isWall": false + }, + { + "x": 5, + "y": 3, + "isWall": false + }, + { + "x": 5, + "y": 4, + "isWall": false + }, + { + "x": 5, + "y": 5, + "isWall": true + }, + { + "x": 5, + "y": 6, + "isWall": false + }, + { + "x": 5, + "y": 7, + "isWall": false + }, + { + "x": 5, + "y": 8, + "isWall": true + }, + { + "x": 5, + "y": 9, + "isWall": false + }, + { + "x": 5, + "y": 10, + "isWall": false + }, + { + "x": 5, + "y": 11, + "isWall": false + }, + { + "x": 5, + "y": 12, + "isWall": false + }, + { + "x": 5, + "y": 13, + "isWall": false + }, + { + "x": 5, + "y": 14, + "isWall": false + }, + { + "x": 5, + "y": 15, + "isWall": true + }, + { + "x": 5, + "y": 16, + "isWall": false + }, + { + "x": 5, + "y": 17, + "isWall": false + }, + { + "x": 5, + "y": 18, + "isWall": false + }, + { + "x": 5, + "y": 19, + "isWall": true + }, + { + "x": 5, + "y": 20, + "isWall": false + }, + { + "x": 5, + "y": 21, + "isWall": true + }, + { + "x": 5, + "y": 22, + "isWall": false + }, + { + "x": 5, + "y": 23, + "isWall": false + }, + { + "x": 5, + "y": 24, + "isWall": false + }, + { + "x": 5, + "y": 25, + "isWall": true + }, + { + "x": 5, + "y": 26, + "isWall": true + }, + { + "x": 5, + "y": 27, + "isWall": false + }, + { + "x": 5, + "y": 28, + "isWall": false + }, + { + "x": 5, + "y": 29, + "isWall": true + }, + { + "x": 5, + "y": 30, + "isWall": false + }, + { + "x": 5, + "y": 31, + "isWall": false + }, + { + "x": 5, + "y": 32, + "isWall": true + }, + { + "x": 5, + "y": 33, + "isWall": true + }, + { + "x": 5, + "y": 34, + "isWall": false + }, + { + "x": 5, + "y": 35, + "isWall": true + }, + { + "x": 5, + "y": 36, + "isWall": false + }, + { + "x": 5, + "y": 37, + "isWall": true + }, + { + "x": 5, + "y": 38, + "isWall": false + }, + { + "x": 5, + "y": 39, + "isWall": false + }, + { + "x": 5, + "y": 40, + "isWall": false + }, + { + "x": 5, + "y": 41, + "isWall": false + }, + { + "x": 5, + "y": 42, + "isWall": false + }, + { + "x": 5, + "y": 43, + "isWall": true + }, + { + "x": 5, + "y": 44, + "isWall": false + }, + { + "x": 5, + "y": 45, + "isWall": false + }, + { + "x": 5, + "y": 46, + "isWall": false + }, + { + "x": 5, + "y": 47, + "isWall": false + }, + { + "x": 5, + "y": 48, + "isWall": true + }, + { + "x": 5, + "y": 49, + "isWall": true + }, + { + "x": 5, + "y": 50, + "isWall": false + }, + { + "x": 5, + "y": 51, + "isWall": true + }, + { + "x": 5, + "y": 52, + "isWall": false + }, + { + "x": 5, + "y": 53, + "isWall": false + }, + { + "x": 5, + "y": 54, + "isWall": true + }, + { + "x": 5, + "y": 55, + "isWall": false + }, + { + "x": 5, + "y": 56, + "isWall": false + }, + { + "x": 5, + "y": 57, + "isWall": false + }, + { + "x": 5, + "y": 58, + "isWall": true + }, + { + "x": 5, + "y": 59, + "isWall": true + }, + { + "x": 5, + "y": 60, + "isWall": false + }, + { + "x": 5, + "y": 61, + "isWall": false + }, + { + "x": 5, + "y": 62, + "isWall": false + }, + { + "x": 5, + "y": 63, + "isWall": false + }, + { + "x": 5, + "y": 64, + "isWall": true + }, + { + "x": 5, + "y": 65, + "isWall": true + }, + { + "x": 5, + "y": 66, + "isWall": false + }, + { + "x": 5, + "y": 67, + "isWall": true + }, + { + "x": 5, + "y": 68, + "isWall": true + }, + { + "x": 5, + "y": 69, + "isWall": false + }, + { + "x": 5, + "y": 70, + "isWall": false + }, + { + "x": 5, + "y": 71, + "isWall": true + }, + { + "x": 5, + "y": 72, + "isWall": false + }, + { + "x": 5, + "y": 73, + "isWall": false + }, + { + "x": 5, + "y": 74, + "isWall": false + }, + { + "x": 5, + "y": 75, + "isWall": false + }, + { + "x": 5, + "y": 76, + "isWall": false + }, + { + "x": 5, + "y": 77, + "isWall": false + }, + { + "x": 5, + "y": 78, + "isWall": true + }, + { + "x": 5, + "y": 79, + "isWall": false + }, + { + "x": 5, + "y": 80, + "isWall": false + }, + { + "x": 5, + "y": 81, + "isWall": false + }, + { + "x": 5, + "y": 82, + "isWall": true + }, + { + "x": 5, + "y": 83, + "isWall": false + }, + { + "x": 5, + "y": 84, + "isWall": false + }, + { + "x": 5, + "y": 85, + "isWall": false + }, + { + "x": 5, + "y": 86, + "isWall": false + }, + { + "x": 5, + "y": 87, + "isWall": true + }, + { + "x": 5, + "y": 88, + "isWall": true + }, + { + "x": 5, + "y": 89, + "isWall": false + }, + { + "x": 5, + "y": 90, + "isWall": false + }, + { + "x": 5, + "y": 91, + "isWall": true + }, + { + "x": 5, + "y": 92, + "isWall": false + }, + { + "x": 5, + "y": 93, + "isWall": true + }, + { + "x": 5, + "y": 94, + "isWall": false + }, + { + "x": 5, + "y": 95, + "isWall": false + }, + { + "x": 5, + "y": 96, + "isWall": false + }, + { + "x": 5, + "y": 97, + "isWall": false + }, + { + "x": 5, + "y": 98, + "isWall": true + }, + { + "x": 5, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 6, + "y": 0, + "isWall": false + }, + { + "x": 6, + "y": 1, + "isWall": true + }, + { + "x": 6, + "y": 2, + "isWall": false + }, + { + "x": 6, + "y": 3, + "isWall": false + }, + { + "x": 6, + "y": 4, + "isWall": false + }, + { + "x": 6, + "y": 5, + "isWall": false + }, + { + "x": 6, + "y": 6, + "isWall": false + }, + { + "x": 6, + "y": 7, + "isWall": false + }, + { + "x": 6, + "y": 8, + "isWall": false + }, + { + "x": 6, + "y": 9, + "isWall": false + }, + { + "x": 6, + "y": 10, + "isWall": false + }, + { + "x": 6, + "y": 11, + "isWall": true + }, + { + "x": 6, + "y": 12, + "isWall": true + }, + { + "x": 6, + "y": 13, + "isWall": false + }, + { + "x": 6, + "y": 14, + "isWall": false + }, + { + "x": 6, + "y": 15, + "isWall": true + }, + { + "x": 6, + "y": 16, + "isWall": false + }, + { + "x": 6, + "y": 17, + "isWall": false + }, + { + "x": 6, + "y": 18, + "isWall": false + }, + { + "x": 6, + "y": 19, + "isWall": false + }, + { + "x": 6, + "y": 20, + "isWall": true + }, + { + "x": 6, + "y": 21, + "isWall": false + }, + { + "x": 6, + "y": 22, + "isWall": true + }, + { + "x": 6, + "y": 23, + "isWall": false + }, + { + "x": 6, + "y": 24, + "isWall": false + }, + { + "x": 6, + "y": 25, + "isWall": false + }, + { + "x": 6, + "y": 26, + "isWall": false + }, + { + "x": 6, + "y": 27, + "isWall": true + }, + { + "x": 6, + "y": 28, + "isWall": false + }, + { + "x": 6, + "y": 29, + "isWall": false + }, + { + "x": 6, + "y": 30, + "isWall": false + }, + { + "x": 6, + "y": 31, + "isWall": false + }, + { + "x": 6, + "y": 32, + "isWall": false + }, + { + "x": 6, + "y": 33, + "isWall": false + }, + { + "x": 6, + "y": 34, + "isWall": true + }, + { + "x": 6, + "y": 35, + "isWall": false + }, + { + "x": 6, + "y": 36, + "isWall": false + }, + { + "x": 6, + "y": 37, + "isWall": true + }, + { + "x": 6, + "y": 38, + "isWall": false + }, + { + "x": 6, + "y": 39, + "isWall": true + }, + { + "x": 6, + "y": 40, + "isWall": true + }, + { + "x": 6, + "y": 41, + "isWall": false + }, + { + "x": 6, + "y": 42, + "isWall": false + }, + { + "x": 6, + "y": 43, + "isWall": true + }, + { + "x": 6, + "y": 44, + "isWall": false + }, + { + "x": 6, + "y": 45, + "isWall": false + }, + { + "x": 6, + "y": 46, + "isWall": true + }, + { + "x": 6, + "y": 47, + "isWall": false + }, + { + "x": 6, + "y": 48, + "isWall": true + }, + { + "x": 6, + "y": 49, + "isWall": true + }, + { + "x": 6, + "y": 50, + "isWall": false + }, + { + "x": 6, + "y": 51, + "isWall": true + }, + { + "x": 6, + "y": 52, + "isWall": true + }, + { + "x": 6, + "y": 53, + "isWall": false + }, + { + "x": 6, + "y": 54, + "isWall": false + }, + { + "x": 6, + "y": 55, + "isWall": false + }, + { + "x": 6, + "y": 56, + "isWall": true + }, + { + "x": 6, + "y": 57, + "isWall": false + }, + { + "x": 6, + "y": 58, + "isWall": false + }, + { + "x": 6, + "y": 59, + "isWall": true + }, + { + "x": 6, + "y": 60, + "isWall": false + }, + { + "x": 6, + "y": 61, + "isWall": false + }, + { + "x": 6, + "y": 62, + "isWall": false + }, + { + "x": 6, + "y": 63, + "isWall": false + }, + { + "x": 6, + "y": 64, + "isWall": true + }, + { + "x": 6, + "y": 65, + "isWall": false + }, + { + "x": 6, + "y": 66, + "isWall": false + }, + { + "x": 6, + "y": 67, + "isWall": false + }, + { + "x": 6, + "y": 68, + "isWall": false + }, + { + "x": 6, + "y": 69, + "isWall": true + }, + { + "x": 6, + "y": 70, + "isWall": false + }, + { + "x": 6, + "y": 71, + "isWall": true + }, + { + "x": 6, + "y": 72, + "isWall": false + }, + { + "x": 6, + "y": 73, + "isWall": false + }, + { + "x": 6, + "y": 74, + "isWall": false + }, + { + "x": 6, + "y": 75, + "isWall": false + }, + { + "x": 6, + "y": 76, + "isWall": false + }, + { + "x": 6, + "y": 77, + "isWall": false + }, + { + "x": 6, + "y": 78, + "isWall": false + }, + { + "x": 6, + "y": 79, + "isWall": false + }, + { + "x": 6, + "y": 80, + "isWall": false + }, + { + "x": 6, + "y": 81, + "isWall": false + }, + { + "x": 6, + "y": 82, + "isWall": true + }, + { + "x": 6, + "y": 83, + "isWall": false + }, + { + "x": 6, + "y": 84, + "isWall": true + }, + { + "x": 6, + "y": 85, + "isWall": false + }, + { + "x": 6, + "y": 86, + "isWall": false + }, + { + "x": 6, + "y": 87, + "isWall": false + }, + { + "x": 6, + "y": 88, + "isWall": false + }, + { + "x": 6, + "y": 89, + "isWall": false + }, + { + "x": 6, + "y": 90, + "isWall": false + }, + { + "x": 6, + "y": 91, + "isWall": false + }, + { + "x": 6, + "y": 92, + "isWall": false + }, + { + "x": 6, + "y": 93, + "isWall": true + }, + { + "x": 6, + "y": 94, + "isWall": false + }, + { + "x": 6, + "y": 95, + "isWall": false + }, + { + "x": 6, + "y": 96, + "isWall": true + }, + { + "x": 6, + "y": 97, + "isWall": false + }, + { + "x": 6, + "y": 98, + "isWall": false + }, + { + "x": 6, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 7, + "y": 0, + "isWall": false + }, + { + "x": 7, + "y": 1, + "isWall": false + }, + { + "x": 7, + "y": 2, + "isWall": true + }, + { + "x": 7, + "y": 3, + "isWall": false + }, + { + "x": 7, + "y": 4, + "isWall": false + }, + { + "x": 7, + "y": 5, + "isWall": false + }, + { + "x": 7, + "y": 6, + "isWall": false + }, + { + "x": 7, + "y": 7, + "isWall": true + }, + { + "x": 7, + "y": 8, + "isWall": false + }, + { + "x": 7, + "y": 9, + "isWall": false + }, + { + "x": 7, + "y": 10, + "isWall": false + }, + { + "x": 7, + "y": 11, + "isWall": false + }, + { + "x": 7, + "y": 12, + "isWall": true + }, + { + "x": 7, + "y": 13, + "isWall": true + }, + { + "x": 7, + "y": 14, + "isWall": false + }, + { + "x": 7, + "y": 15, + "isWall": false + }, + { + "x": 7, + "y": 16, + "isWall": false + }, + { + "x": 7, + "y": 17, + "isWall": false + }, + { + "x": 7, + "y": 18, + "isWall": false + }, + { + "x": 7, + "y": 19, + "isWall": true + }, + { + "x": 7, + "y": 20, + "isWall": false + }, + { + "x": 7, + "y": 21, + "isWall": true + }, + { + "x": 7, + "y": 22, + "isWall": false + }, + { + "x": 7, + "y": 23, + "isWall": false + }, + { + "x": 7, + "y": 24, + "isWall": false + }, + { + "x": 7, + "y": 25, + "isWall": false + }, + { + "x": 7, + "y": 26, + "isWall": false + }, + { + "x": 7, + "y": 27, + "isWall": false + }, + { + "x": 7, + "y": 28, + "isWall": false + }, + { + "x": 7, + "y": 29, + "isWall": false + }, + { + "x": 7, + "y": 30, + "isWall": false + }, + { + "x": 7, + "y": 31, + "isWall": true + }, + { + "x": 7, + "y": 32, + "isWall": false + }, + { + "x": 7, + "y": 33, + "isWall": false + }, + { + "x": 7, + "y": 34, + "isWall": false + }, + { + "x": 7, + "y": 35, + "isWall": false + }, + { + "x": 7, + "y": 36, + "isWall": false + }, + { + "x": 7, + "y": 37, + "isWall": false + }, + { + "x": 7, + "y": 38, + "isWall": false + }, + { + "x": 7, + "y": 39, + "isWall": false + }, + { + "x": 7, + "y": 40, + "isWall": false + }, + { + "x": 7, + "y": 41, + "isWall": false + }, + { + "x": 7, + "y": 42, + "isWall": false + }, + { + "x": 7, + "y": 43, + "isWall": false + }, + { + "x": 7, + "y": 44, + "isWall": false + }, + { + "x": 7, + "y": 45, + "isWall": false + }, + { + "x": 7, + "y": 46, + "isWall": false + }, + { + "x": 7, + "y": 47, + "isWall": false + }, + { + "x": 7, + "y": 48, + "isWall": true + }, + { + "x": 7, + "y": 49, + "isWall": false + }, + { + "x": 7, + "y": 50, + "isWall": true + }, + { + "x": 7, + "y": 51, + "isWall": false + }, + { + "x": 7, + "y": 52, + "isWall": true + }, + { + "x": 7, + "y": 53, + "isWall": true + }, + { + "x": 7, + "y": 54, + "isWall": true + }, + { + "x": 7, + "y": 55, + "isWall": false + }, + { + "x": 7, + "y": 56, + "isWall": false + }, + { + "x": 7, + "y": 57, + "isWall": true + }, + { + "x": 7, + "y": 58, + "isWall": true + }, + { + "x": 7, + "y": 59, + "isWall": false + }, + { + "x": 7, + "y": 60, + "isWall": true + }, + { + "x": 7, + "y": 61, + "isWall": false + }, + { + "x": 7, + "y": 62, + "isWall": false + }, + { + "x": 7, + "y": 63, + "isWall": false + }, + { + "x": 7, + "y": 64, + "isWall": true + }, + { + "x": 7, + "y": 65, + "isWall": false + }, + { + "x": 7, + "y": 66, + "isWall": true + }, + { + "x": 7, + "y": 67, + "isWall": true + }, + { + "x": 7, + "y": 68, + "isWall": false + }, + { + "x": 7, + "y": 69, + "isWall": false + }, + { + "x": 7, + "y": 70, + "isWall": false + }, + { + "x": 7, + "y": 71, + "isWall": false + }, + { + "x": 7, + "y": 72, + "isWall": false + }, + { + "x": 7, + "y": 73, + "isWall": true + }, + { + "x": 7, + "y": 74, + "isWall": false + }, + { + "x": 7, + "y": 75, + "isWall": true + }, + { + "x": 7, + "y": 76, + "isWall": false + }, + { + "x": 7, + "y": 77, + "isWall": false + }, + { + "x": 7, + "y": 78, + "isWall": false + }, + { + "x": 7, + "y": 79, + "isWall": true + }, + { + "x": 7, + "y": 80, + "isWall": false + }, + { + "x": 7, + "y": 81, + "isWall": true + }, + { + "x": 7, + "y": 82, + "isWall": false + }, + { + "x": 7, + "y": 83, + "isWall": false + }, + { + "x": 7, + "y": 84, + "isWall": false + }, + { + "x": 7, + "y": 85, + "isWall": false + }, + { + "x": 7, + "y": 86, + "isWall": false + }, + { + "x": 7, + "y": 87, + "isWall": true + }, + { + "x": 7, + "y": 88, + "isWall": false + }, + { + "x": 7, + "y": 89, + "isWall": false + }, + { + "x": 7, + "y": 90, + "isWall": true + }, + { + "x": 7, + "y": 91, + "isWall": true + }, + { + "x": 7, + "y": 92, + "isWall": false + }, + { + "x": 7, + "y": 93, + "isWall": false + }, + { + "x": 7, + "y": 94, + "isWall": false + }, + { + "x": 7, + "y": 95, + "isWall": false + }, + { + "x": 7, + "y": 96, + "isWall": false + }, + { + "x": 7, + "y": 97, + "isWall": true + }, + { + "x": 7, + "y": 98, + "isWall": false + }, + { + "x": 7, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 8, + "y": 0, + "isWall": false + }, + { + "x": 8, + "y": 1, + "isWall": false + }, + { + "x": 8, + "y": 2, + "isWall": false + }, + { + "x": 8, + "y": 3, + "isWall": false + }, + { + "x": 8, + "y": 4, + "isWall": false + }, + { + "x": 8, + "y": 5, + "isWall": false + }, + { + "x": 8, + "y": 6, + "isWall": false + }, + { + "x": 8, + "y": 7, + "isWall": true + }, + { + "x": 8, + "y": 8, + "isWall": false + }, + { + "x": 8, + "y": 9, + "isWall": false + }, + { + "x": 8, + "y": 10, + "isWall": true + }, + { + "x": 8, + "y": 11, + "isWall": true + }, + { + "x": 8, + "y": 12, + "isWall": true + }, + { + "x": 8, + "y": 13, + "isWall": true + }, + { + "x": 8, + "y": 14, + "isWall": false + }, + { + "x": 8, + "y": 15, + "isWall": false + }, + { + "x": 8, + "y": 16, + "isWall": false + }, + { + "x": 8, + "y": 17, + "isWall": false + }, + { + "x": 8, + "y": 18, + "isWall": false + }, + { + "x": 8, + "y": 19, + "isWall": false + }, + { + "x": 8, + "y": 20, + "isWall": false + }, + { + "x": 8, + "y": 21, + "isWall": false + }, + { + "x": 8, + "y": 22, + "isWall": false + }, + { + "x": 8, + "y": 23, + "isWall": false + }, + { + "x": 8, + "y": 24, + "isWall": false + }, + { + "x": 8, + "y": 25, + "isWall": false + }, + { + "x": 8, + "y": 26, + "isWall": false + }, + { + "x": 8, + "y": 27, + "isWall": true + }, + { + "x": 8, + "y": 28, + "isWall": false + }, + { + "x": 8, + "y": 29, + "isWall": false + }, + { + "x": 8, + "y": 30, + "isWall": true + }, + { + "x": 8, + "y": 31, + "isWall": true + }, + { + "x": 8, + "y": 32, + "isWall": true + }, + { + "x": 8, + "y": 33, + "isWall": false + }, + { + "x": 8, + "y": 34, + "isWall": false + }, + { + "x": 8, + "y": 35, + "isWall": false + }, + { + "x": 8, + "y": 36, + "isWall": true + }, + { + "x": 8, + "y": 37, + "isWall": false + }, + { + "x": 8, + "y": 38, + "isWall": false + }, + { + "x": 8, + "y": 39, + "isWall": false + }, + { + "x": 8, + "y": 40, + "isWall": false + }, + { + "x": 8, + "y": 41, + "isWall": false + }, + { + "x": 8, + "y": 42, + "isWall": false + }, + { + "x": 8, + "y": 43, + "isWall": false + }, + { + "x": 8, + "y": 44, + "isWall": false + }, + { + "x": 8, + "y": 45, + "isWall": false + }, + { + "x": 8, + "y": 46, + "isWall": false + }, + { + "x": 8, + "y": 47, + "isWall": true + }, + { + "x": 8, + "y": 48, + "isWall": false + }, + { + "x": 8, + "y": 49, + "isWall": true + }, + { + "x": 8, + "y": 50, + "isWall": false + }, + { + "x": 8, + "y": 51, + "isWall": false + }, + { + "x": 8, + "y": 52, + "isWall": false + }, + { + "x": 8, + "y": 53, + "isWall": true + }, + { + "x": 8, + "y": 54, + "isWall": true + }, + { + "x": 8, + "y": 55, + "isWall": false + }, + { + "x": 8, + "y": 56, + "isWall": true + }, + { + "x": 8, + "y": 57, + "isWall": false + }, + { + "x": 8, + "y": 58, + "isWall": true + }, + { + "x": 8, + "y": 59, + "isWall": false + }, + { + "x": 8, + "y": 60, + "isWall": false + }, + { + "x": 8, + "y": 61, + "isWall": true + }, + { + "x": 8, + "y": 62, + "isWall": true + }, + { + "x": 8, + "y": 63, + "isWall": false + }, + { + "x": 8, + "y": 64, + "isWall": true + }, + { + "x": 8, + "y": 65, + "isWall": false + }, + { + "x": 8, + "y": 66, + "isWall": false + }, + { + "x": 8, + "y": 67, + "isWall": false + }, + { + "x": 8, + "y": 68, + "isWall": true + }, + { + "x": 8, + "y": 69, + "isWall": false + }, + { + "x": 8, + "y": 70, + "isWall": false + }, + { + "x": 8, + "y": 71, + "isWall": true + }, + { + "x": 8, + "y": 72, + "isWall": true + }, + { + "x": 8, + "y": 73, + "isWall": true + }, + { + "x": 8, + "y": 74, + "isWall": false + }, + { + "x": 8, + "y": 75, + "isWall": false + }, + { + "x": 8, + "y": 76, + "isWall": false + }, + { + "x": 8, + "y": 77, + "isWall": false + }, + { + "x": 8, + "y": 78, + "isWall": true + }, + { + "x": 8, + "y": 79, + "isWall": false + }, + { + "x": 8, + "y": 80, + "isWall": true + }, + { + "x": 8, + "y": 81, + "isWall": false + }, + { + "x": 8, + "y": 82, + "isWall": false + }, + { + "x": 8, + "y": 83, + "isWall": false + }, + { + "x": 8, + "y": 84, + "isWall": false + }, + { + "x": 8, + "y": 85, + "isWall": false + }, + { + "x": 8, + "y": 86, + "isWall": false + }, + { + "x": 8, + "y": 87, + "isWall": false + }, + { + "x": 8, + "y": 88, + "isWall": false + }, + { + "x": 8, + "y": 89, + "isWall": false + }, + { + "x": 8, + "y": 90, + "isWall": true + }, + { + "x": 8, + "y": 91, + "isWall": false + }, + { + "x": 8, + "y": 92, + "isWall": false + }, + { + "x": 8, + "y": 93, + "isWall": false + }, + { + "x": 8, + "y": 94, + "isWall": false + }, + { + "x": 8, + "y": 95, + "isWall": false + }, + { + "x": 8, + "y": 96, + "isWall": false + }, + { + "x": 8, + "y": 97, + "isWall": true + }, + { + "x": 8, + "y": 98, + "isWall": false + }, + { + "x": 8, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 9, + "y": 0, + "isWall": false + }, + { + "x": 9, + "y": 1, + "isWall": true + }, + { + "x": 9, + "y": 2, + "isWall": false + }, + { + "x": 9, + "y": 3, + "isWall": false + }, + { + "x": 9, + "y": 4, + "isWall": false + }, + { + "x": 9, + "y": 5, + "isWall": false + }, + { + "x": 9, + "y": 6, + "isWall": false + }, + { + "x": 9, + "y": 7, + "isWall": false + }, + { + "x": 9, + "y": 8, + "isWall": false + }, + { + "x": 9, + "y": 9, + "isWall": false + }, + { + "x": 9, + "y": 10, + "isWall": false + }, + { + "x": 9, + "y": 11, + "isWall": false + }, + { + "x": 9, + "y": 12, + "isWall": false + }, + { + "x": 9, + "y": 13, + "isWall": false + }, + { + "x": 9, + "y": 14, + "isWall": false + }, + { + "x": 9, + "y": 15, + "isWall": true + }, + { + "x": 9, + "y": 16, + "isWall": true + }, + { + "x": 9, + "y": 17, + "isWall": false + }, + { + "x": 9, + "y": 18, + "isWall": false + }, + { + "x": 9, + "y": 19, + "isWall": false + }, + { + "x": 9, + "y": 20, + "isWall": false + }, + { + "x": 9, + "y": 21, + "isWall": false + }, + { + "x": 9, + "y": 22, + "isWall": false + }, + { + "x": 9, + "y": 23, + "isWall": true + }, + { + "x": 9, + "y": 24, + "isWall": false + }, + { + "x": 9, + "y": 25, + "isWall": false + }, + { + "x": 9, + "y": 26, + "isWall": true + }, + { + "x": 9, + "y": 27, + "isWall": false + }, + { + "x": 9, + "y": 28, + "isWall": false + }, + { + "x": 9, + "y": 29, + "isWall": false + }, + { + "x": 9, + "y": 30, + "isWall": false + }, + { + "x": 9, + "y": 31, + "isWall": true + }, + { + "x": 9, + "y": 32, + "isWall": false + }, + { + "x": 9, + "y": 33, + "isWall": false + }, + { + "x": 9, + "y": 34, + "isWall": false + }, + { + "x": 9, + "y": 35, + "isWall": false + }, + { + "x": 9, + "y": 36, + "isWall": false + }, + { + "x": 9, + "y": 37, + "isWall": false + }, + { + "x": 9, + "y": 38, + "isWall": true + }, + { + "x": 9, + "y": 39, + "isWall": false + }, + { + "x": 9, + "y": 40, + "isWall": false + }, + { + "x": 9, + "y": 41, + "isWall": true + }, + { + "x": 9, + "y": 42, + "isWall": false + }, + { + "x": 9, + "y": 43, + "isWall": false + }, + { + "x": 9, + "y": 44, + "isWall": false + }, + { + "x": 9, + "y": 45, + "isWall": false + }, + { + "x": 9, + "y": 46, + "isWall": true + }, + { + "x": 9, + "y": 47, + "isWall": false + }, + { + "x": 9, + "y": 48, + "isWall": true + }, + { + "x": 9, + "y": 49, + "isWall": true + }, + { + "x": 9, + "y": 50, + "isWall": false + }, + { + "x": 9, + "y": 51, + "isWall": false + }, + { + "x": 9, + "y": 52, + "isWall": false + }, + { + "x": 9, + "y": 53, + "isWall": false + }, + { + "x": 9, + "y": 54, + "isWall": true + }, + { + "x": 9, + "y": 55, + "isWall": false + }, + { + "x": 9, + "y": 56, + "isWall": false + }, + { + "x": 9, + "y": 57, + "isWall": false + }, + { + "x": 9, + "y": 58, + "isWall": false + }, + { + "x": 9, + "y": 59, + "isWall": false + }, + { + "x": 9, + "y": 60, + "isWall": false + }, + { + "x": 9, + "y": 61, + "isWall": false + }, + { + "x": 9, + "y": 62, + "isWall": false + }, + { + "x": 9, + "y": 63, + "isWall": true + }, + { + "x": 9, + "y": 64, + "isWall": true + }, + { + "x": 9, + "y": 65, + "isWall": false + }, + { + "x": 9, + "y": 66, + "isWall": false + }, + { + "x": 9, + "y": 67, + "isWall": false + }, + { + "x": 9, + "y": 68, + "isWall": false + }, + { + "x": 9, + "y": 69, + "isWall": false + }, + { + "x": 9, + "y": 70, + "isWall": false + }, + { + "x": 9, + "y": 71, + "isWall": true + }, + { + "x": 9, + "y": 72, + "isWall": false + }, + { + "x": 9, + "y": 73, + "isWall": false + }, + { + "x": 9, + "y": 74, + "isWall": false + }, + { + "x": 9, + "y": 75, + "isWall": false + }, + { + "x": 9, + "y": 76, + "isWall": false + }, + { + "x": 9, + "y": 77, + "isWall": true + }, + { + "x": 9, + "y": 78, + "isWall": false + }, + { + "x": 9, + "y": 79, + "isWall": true + }, + { + "x": 9, + "y": 80, + "isWall": true + }, + { + "x": 9, + "y": 81, + "isWall": true + }, + { + "x": 9, + "y": 82, + "isWall": false + }, + { + "x": 9, + "y": 83, + "isWall": false + }, + { + "x": 9, + "y": 84, + "isWall": true + }, + { + "x": 9, + "y": 85, + "isWall": false + }, + { + "x": 9, + "y": 86, + "isWall": true + }, + { + "x": 9, + "y": 87, + "isWall": true + }, + { + "x": 9, + "y": 88, + "isWall": false + }, + { + "x": 9, + "y": 89, + "isWall": false + }, + { + "x": 9, + "y": 90, + "isWall": true + }, + { + "x": 9, + "y": 91, + "isWall": false + }, + { + "x": 9, + "y": 92, + "isWall": true + }, + { + "x": 9, + "y": 93, + "isWall": false + }, + { + "x": 9, + "y": 94, + "isWall": false + }, + { + "x": 9, + "y": 95, + "isWall": false + }, + { + "x": 9, + "y": 96, + "isWall": false + }, + { + "x": 9, + "y": 97, + "isWall": false + }, + { + "x": 9, + "y": 98, + "isWall": false + }, + { + "x": 9, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 10, + "y": 0, + "isWall": false + }, + { + "x": 10, + "y": 1, + "isWall": true + }, + { + "x": 10, + "y": 2, + "isWall": false + }, + { + "x": 10, + "y": 3, + "isWall": false + }, + { + "x": 10, + "y": 4, + "isWall": true + }, + { + "x": 10, + "y": 5, + "isWall": false + }, + { + "x": 10, + "y": 6, + "isWall": false + }, + { + "x": 10, + "y": 7, + "isWall": false + }, + { + "x": 10, + "y": 8, + "isWall": true + }, + { + "x": 10, + "y": 9, + "isWall": true + }, + { + "x": 10, + "y": 10, + "isWall": false + }, + { + "x": 10, + "y": 11, + "isWall": false + }, + { + "x": 10, + "y": 12, + "isWall": false + }, + { + "x": 10, + "y": 13, + "isWall": true + }, + { + "x": 10, + "y": 14, + "isWall": false + }, + { + "x": 10, + "y": 15, + "isWall": false + }, + { + "x": 10, + "y": 16, + "isWall": false + }, + { + "x": 10, + "y": 17, + "isWall": false + }, + { + "x": 10, + "y": 18, + "isWall": false + }, + { + "x": 10, + "y": 19, + "isWall": false + }, + { + "x": 10, + "y": 20, + "isWall": false + }, + { + "x": 10, + "y": 21, + "isWall": false + }, + { + "x": 10, + "y": 22, + "isWall": true + }, + { + "x": 10, + "y": 23, + "isWall": false + }, + { + "x": 10, + "y": 24, + "isWall": false + }, + { + "x": 10, + "y": 25, + "isWall": false + }, + { + "x": 10, + "y": 26, + "isWall": false + }, + { + "x": 10, + "y": 27, + "isWall": false + }, + { + "x": 10, + "y": 28, + "isWall": false + }, + { + "x": 10, + "y": 29, + "isWall": true + }, + { + "x": 10, + "y": 30, + "isWall": false + }, + { + "x": 10, + "y": 31, + "isWall": false + }, + { + "x": 10, + "y": 32, + "isWall": false + }, + { + "x": 10, + "y": 33, + "isWall": false + }, + { + "x": 10, + "y": 34, + "isWall": false + }, + { + "x": 10, + "y": 35, + "isWall": true + }, + { + "x": 10, + "y": 36, + "isWall": false + }, + { + "x": 10, + "y": 37, + "isWall": true + }, + { + "x": 10, + "y": 38, + "isWall": true + }, + { + "x": 10, + "y": 39, + "isWall": false + }, + { + "x": 10, + "y": 40, + "isWall": false + }, + { + "x": 10, + "y": 41, + "isWall": false + }, + { + "x": 10, + "y": 42, + "isWall": true + }, + { + "x": 10, + "y": 43, + "isWall": false + }, + { + "x": 10, + "y": 44, + "isWall": false + }, + { + "x": 10, + "y": 45, + "isWall": true + }, + { + "x": 10, + "y": 46, + "isWall": true + }, + { + "x": 10, + "y": 47, + "isWall": false + }, + { + "x": 10, + "y": 48, + "isWall": false + }, + { + "x": 10, + "y": 49, + "isWall": false + }, + { + "x": 10, + "y": 50, + "isWall": false + }, + { + "x": 10, + "y": 51, + "isWall": true + }, + { + "x": 10, + "y": 52, + "isWall": true + }, + { + "x": 10, + "y": 53, + "isWall": true + }, + { + "x": 10, + "y": 54, + "isWall": false + }, + { + "x": 10, + "y": 55, + "isWall": false + }, + { + "x": 10, + "y": 56, + "isWall": false + }, + { + "x": 10, + "y": 57, + "isWall": false + }, + { + "x": 10, + "y": 58, + "isWall": false + }, + { + "x": 10, + "y": 59, + "isWall": true + }, + { + "x": 10, + "y": 60, + "isWall": true + }, + { + "x": 10, + "y": 61, + "isWall": true + }, + { + "x": 10, + "y": 62, + "isWall": true + }, + { + "x": 10, + "y": 63, + "isWall": false + }, + { + "x": 10, + "y": 64, + "isWall": false + }, + { + "x": 10, + "y": 65, + "isWall": true + }, + { + "x": 10, + "y": 66, + "isWall": false + }, + { + "x": 10, + "y": 67, + "isWall": false + }, + { + "x": 10, + "y": 68, + "isWall": false + }, + { + "x": 10, + "y": 69, + "isWall": false + }, + { + "x": 10, + "y": 70, + "isWall": true + }, + { + "x": 10, + "y": 71, + "isWall": true + }, + { + "x": 10, + "y": 72, + "isWall": false + }, + { + "x": 10, + "y": 73, + "isWall": false + }, + { + "x": 10, + "y": 74, + "isWall": false + }, + { + "x": 10, + "y": 75, + "isWall": false + }, + { + "x": 10, + "y": 76, + "isWall": true + }, + { + "x": 10, + "y": 77, + "isWall": false + }, + { + "x": 10, + "y": 78, + "isWall": false + }, + { + "x": 10, + "y": 79, + "isWall": true + }, + { + "x": 10, + "y": 80, + "isWall": true + }, + { + "x": 10, + "y": 81, + "isWall": false + }, + { + "x": 10, + "y": 82, + "isWall": true + }, + { + "x": 10, + "y": 83, + "isWall": false + }, + { + "x": 10, + "y": 84, + "isWall": false + }, + { + "x": 10, + "y": 85, + "isWall": true + }, + { + "x": 10, + "y": 86, + "isWall": true + }, + { + "x": 10, + "y": 87, + "isWall": true + }, + { + "x": 10, + "y": 88, + "isWall": false + }, + { + "x": 10, + "y": 89, + "isWall": false + }, + { + "x": 10, + "y": 90, + "isWall": true + }, + { + "x": 10, + "y": 91, + "isWall": false + }, + { + "x": 10, + "y": 92, + "isWall": false + }, + { + "x": 10, + "y": 93, + "isWall": true + }, + { + "x": 10, + "y": 94, + "isWall": false + }, + { + "x": 10, + "y": 95, + "isWall": false + }, + { + "x": 10, + "y": 96, + "isWall": false + }, + { + "x": 10, + "y": 97, + "isWall": false + }, + { + "x": 10, + "y": 98, + "isWall": true + }, + { + "x": 10, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 11, + "y": 0, + "isWall": false + }, + { + "x": 11, + "y": 1, + "isWall": true + }, + { + "x": 11, + "y": 2, + "isWall": false + }, + { + "x": 11, + "y": 3, + "isWall": true + }, + { + "x": 11, + "y": 4, + "isWall": true + }, + { + "x": 11, + "y": 5, + "isWall": false + }, + { + "x": 11, + "y": 6, + "isWall": true + }, + { + "x": 11, + "y": 7, + "isWall": false + }, + { + "x": 11, + "y": 8, + "isWall": false + }, + { + "x": 11, + "y": 9, + "isWall": false + }, + { + "x": 11, + "y": 10, + "isWall": false + }, + { + "x": 11, + "y": 11, + "isWall": false + }, + { + "x": 11, + "y": 12, + "isWall": false + }, + { + "x": 11, + "y": 13, + "isWall": false + }, + { + "x": 11, + "y": 14, + "isWall": false + }, + { + "x": 11, + "y": 15, + "isWall": true + }, + { + "x": 11, + "y": 16, + "isWall": false + }, + { + "x": 11, + "y": 17, + "isWall": false + }, + { + "x": 11, + "y": 18, + "isWall": true + }, + { + "x": 11, + "y": 19, + "isWall": false + }, + { + "x": 11, + "y": 20, + "isWall": true + }, + { + "x": 11, + "y": 21, + "isWall": false + }, + { + "x": 11, + "y": 22, + "isWall": false + }, + { + "x": 11, + "y": 23, + "isWall": false + }, + { + "x": 11, + "y": 24, + "isWall": false + }, + { + "x": 11, + "y": 25, + "isWall": false + }, + { + "x": 11, + "y": 26, + "isWall": true + }, + { + "x": 11, + "y": 27, + "isWall": false + }, + { + "x": 11, + "y": 28, + "isWall": true + }, + { + "x": 11, + "y": 29, + "isWall": false + }, + { + "x": 11, + "y": 30, + "isWall": false + }, + { + "x": 11, + "y": 31, + "isWall": false + }, + { + "x": 11, + "y": 32, + "isWall": false + }, + { + "x": 11, + "y": 33, + "isWall": true + }, + { + "x": 11, + "y": 34, + "isWall": true + }, + { + "x": 11, + "y": 35, + "isWall": true + }, + { + "x": 11, + "y": 36, + "isWall": false + }, + { + "x": 11, + "y": 37, + "isWall": true + }, + { + "x": 11, + "y": 38, + "isWall": false + }, + { + "x": 11, + "y": 39, + "isWall": false + }, + { + "x": 11, + "y": 40, + "isWall": false + }, + { + "x": 11, + "y": 41, + "isWall": false + }, + { + "x": 11, + "y": 42, + "isWall": false + }, + { + "x": 11, + "y": 43, + "isWall": false + }, + { + "x": 11, + "y": 44, + "isWall": false + }, + { + "x": 11, + "y": 45, + "isWall": false + }, + { + "x": 11, + "y": 46, + "isWall": false + }, + { + "x": 11, + "y": 47, + "isWall": false + }, + { + "x": 11, + "y": 48, + "isWall": false + }, + { + "x": 11, + "y": 49, + "isWall": false + }, + { + "x": 11, + "y": 50, + "isWall": false + }, + { + "x": 11, + "y": 51, + "isWall": false + }, + { + "x": 11, + "y": 52, + "isWall": false + }, + { + "x": 11, + "y": 53, + "isWall": true + }, + { + "x": 11, + "y": 54, + "isWall": true + }, + { + "x": 11, + "y": 55, + "isWall": true + }, + { + "x": 11, + "y": 56, + "isWall": false + }, + { + "x": 11, + "y": 57, + "isWall": false + }, + { + "x": 11, + "y": 58, + "isWall": false + }, + { + "x": 11, + "y": 59, + "isWall": false + }, + { + "x": 11, + "y": 60, + "isWall": false + }, + { + "x": 11, + "y": 61, + "isWall": true + }, + { + "x": 11, + "y": 62, + "isWall": false + }, + { + "x": 11, + "y": 63, + "isWall": false + }, + { + "x": 11, + "y": 64, + "isWall": false + }, + { + "x": 11, + "y": 65, + "isWall": false + }, + { + "x": 11, + "y": 66, + "isWall": true + }, + { + "x": 11, + "y": 67, + "isWall": false + }, + { + "x": 11, + "y": 68, + "isWall": true + }, + { + "x": 11, + "y": 69, + "isWall": false + }, + { + "x": 11, + "y": 70, + "isWall": true + }, + { + "x": 11, + "y": 71, + "isWall": false + }, + { + "x": 11, + "y": 72, + "isWall": false + }, + { + "x": 11, + "y": 73, + "isWall": false + }, + { + "x": 11, + "y": 74, + "isWall": false + }, + { + "x": 11, + "y": 75, + "isWall": false + }, + { + "x": 11, + "y": 76, + "isWall": false + }, + { + "x": 11, + "y": 77, + "isWall": false + }, + { + "x": 11, + "y": 78, + "isWall": false + }, + { + "x": 11, + "y": 79, + "isWall": false + }, + { + "x": 11, + "y": 80, + "isWall": false + }, + { + "x": 11, + "y": 81, + "isWall": true + }, + { + "x": 11, + "y": 82, + "isWall": false + }, + { + "x": 11, + "y": 83, + "isWall": false + }, + { + "x": 11, + "y": 84, + "isWall": true + }, + { + "x": 11, + "y": 85, + "isWall": false + }, + { + "x": 11, + "y": 86, + "isWall": false + }, + { + "x": 11, + "y": 87, + "isWall": false + }, + { + "x": 11, + "y": 88, + "isWall": false + }, + { + "x": 11, + "y": 89, + "isWall": false + }, + { + "x": 11, + "y": 90, + "isWall": true + }, + { + "x": 11, + "y": 91, + "isWall": false + }, + { + "x": 11, + "y": 92, + "isWall": true + }, + { + "x": 11, + "y": 93, + "isWall": false + }, + { + "x": 11, + "y": 94, + "isWall": true + }, + { + "x": 11, + "y": 95, + "isWall": false + }, + { + "x": 11, + "y": 96, + "isWall": false + }, + { + "x": 11, + "y": 97, + "isWall": false + }, + { + "x": 11, + "y": 98, + "isWall": true + }, + { + "x": 11, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 12, + "y": 0, + "isWall": false + }, + { + "x": 12, + "y": 1, + "isWall": true + }, + { + "x": 12, + "y": 2, + "isWall": false + }, + { + "x": 12, + "y": 3, + "isWall": false + }, + { + "x": 12, + "y": 4, + "isWall": false + }, + { + "x": 12, + "y": 5, + "isWall": true + }, + { + "x": 12, + "y": 6, + "isWall": true + }, + { + "x": 12, + "y": 7, + "isWall": true + }, + { + "x": 12, + "y": 8, + "isWall": false + }, + { + "x": 12, + "y": 9, + "isWall": true + }, + { + "x": 12, + "y": 10, + "isWall": false + }, + { + "x": 12, + "y": 11, + "isWall": false + }, + { + "x": 12, + "y": 12, + "isWall": false + }, + { + "x": 12, + "y": 13, + "isWall": false + }, + { + "x": 12, + "y": 14, + "isWall": false + }, + { + "x": 12, + "y": 15, + "isWall": false + }, + { + "x": 12, + "y": 16, + "isWall": false + }, + { + "x": 12, + "y": 17, + "isWall": true + }, + { + "x": 12, + "y": 18, + "isWall": false + }, + { + "x": 12, + "y": 19, + "isWall": false + }, + { + "x": 12, + "y": 20, + "isWall": false + }, + { + "x": 12, + "y": 21, + "isWall": false + }, + { + "x": 12, + "y": 22, + "isWall": false + }, + { + "x": 12, + "y": 23, + "isWall": false + }, + { + "x": 12, + "y": 24, + "isWall": false + }, + { + "x": 12, + "y": 25, + "isWall": true + }, + { + "x": 12, + "y": 26, + "isWall": false + }, + { + "x": 12, + "y": 27, + "isWall": false + }, + { + "x": 12, + "y": 28, + "isWall": false + }, + { + "x": 12, + "y": 29, + "isWall": false + }, + { + "x": 12, + "y": 30, + "isWall": false + }, + { + "x": 12, + "y": 31, + "isWall": false + }, + { + "x": 12, + "y": 32, + "isWall": false + }, + { + "x": 12, + "y": 33, + "isWall": false + }, + { + "x": 12, + "y": 34, + "isWall": true + }, + { + "x": 12, + "y": 35, + "isWall": false + }, + { + "x": 12, + "y": 36, + "isWall": false + }, + { + "x": 12, + "y": 37, + "isWall": false + }, + { + "x": 12, + "y": 38, + "isWall": false + }, + { + "x": 12, + "y": 39, + "isWall": false + }, + { + "x": 12, + "y": 40, + "isWall": true + }, + { + "x": 12, + "y": 41, + "isWall": true + }, + { + "x": 12, + "y": 42, + "isWall": false + }, + { + "x": 12, + "y": 43, + "isWall": false + }, + { + "x": 12, + "y": 44, + "isWall": false + }, + { + "x": 12, + "y": 45, + "isWall": false + }, + { + "x": 12, + "y": 46, + "isWall": true + }, + { + "x": 12, + "y": 47, + "isWall": false + }, + { + "x": 12, + "y": 48, + "isWall": false + }, + { + "x": 12, + "y": 49, + "isWall": false + }, + { + "x": 12, + "y": 50, + "isWall": false + }, + { + "x": 12, + "y": 51, + "isWall": true + }, + { + "x": 12, + "y": 52, + "isWall": false + }, + { + "x": 12, + "y": 53, + "isWall": true + }, + { + "x": 12, + "y": 54, + "isWall": false + }, + { + "x": 12, + "y": 55, + "isWall": false + }, + { + "x": 12, + "y": 56, + "isWall": true + }, + { + "x": 12, + "y": 57, + "isWall": false + }, + { + "x": 12, + "y": 58, + "isWall": false + }, + { + "x": 12, + "y": 59, + "isWall": false + }, + { + "x": 12, + "y": 60, + "isWall": false + }, + { + "x": 12, + "y": 61, + "isWall": false + }, + { + "x": 12, + "y": 62, + "isWall": false + }, + { + "x": 12, + "y": 63, + "isWall": false + }, + { + "x": 12, + "y": 64, + "isWall": false + }, + { + "x": 12, + "y": 65, + "isWall": false + }, + { + "x": 12, + "y": 66, + "isWall": true + }, + { + "x": 12, + "y": 67, + "isWall": true + }, + { + "x": 12, + "y": 68, + "isWall": false + }, + { + "x": 12, + "y": 69, + "isWall": false + }, + { + "x": 12, + "y": 70, + "isWall": true + }, + { + "x": 12, + "y": 71, + "isWall": false + }, + { + "x": 12, + "y": 72, + "isWall": false + }, + { + "x": 12, + "y": 73, + "isWall": false + }, + { + "x": 12, + "y": 74, + "isWall": false + }, + { + "x": 12, + "y": 75, + "isWall": false + }, + { + "x": 12, + "y": 76, + "isWall": false + }, + { + "x": 12, + "y": 77, + "isWall": false + }, + { + "x": 12, + "y": 78, + "isWall": false + }, + { + "x": 12, + "y": 79, + "isWall": false + }, + { + "x": 12, + "y": 80, + "isWall": false + }, + { + "x": 12, + "y": 81, + "isWall": false + }, + { + "x": 12, + "y": 82, + "isWall": true + }, + { + "x": 12, + "y": 83, + "isWall": false + }, + { + "x": 12, + "y": 84, + "isWall": false + }, + { + "x": 12, + "y": 85, + "isWall": true + }, + { + "x": 12, + "y": 86, + "isWall": false + }, + { + "x": 12, + "y": 87, + "isWall": false + }, + { + "x": 12, + "y": 88, + "isWall": false + }, + { + "x": 12, + "y": 89, + "isWall": true + }, + { + "x": 12, + "y": 90, + "isWall": true + }, + { + "x": 12, + "y": 91, + "isWall": true + }, + { + "x": 12, + "y": 92, + "isWall": false + }, + { + "x": 12, + "y": 93, + "isWall": true + }, + { + "x": 12, + "y": 94, + "isWall": false + }, + { + "x": 12, + "y": 95, + "isWall": false + }, + { + "x": 12, + "y": 96, + "isWall": false + }, + { + "x": 12, + "y": 97, + "isWall": true + }, + { + "x": 12, + "y": 98, + "isWall": false + }, + { + "x": 12, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 13, + "y": 0, + "isWall": false + }, + { + "x": 13, + "y": 1, + "isWall": false + }, + { + "x": 13, + "y": 2, + "isWall": false + }, + { + "x": 13, + "y": 3, + "isWall": false + }, + { + "x": 13, + "y": 4, + "isWall": false + }, + { + "x": 13, + "y": 5, + "isWall": false + }, + { + "x": 13, + "y": 6, + "isWall": true + }, + { + "x": 13, + "y": 7, + "isWall": true + }, + { + "x": 13, + "y": 8, + "isWall": false + }, + { + "x": 13, + "y": 9, + "isWall": false + }, + { + "x": 13, + "y": 10, + "isWall": false + }, + { + "x": 13, + "y": 11, + "isWall": false + }, + { + "x": 13, + "y": 12, + "isWall": false + }, + { + "x": 13, + "y": 13, + "isWall": false + }, + { + "x": 13, + "y": 14, + "isWall": false + }, + { + "x": 13, + "y": 15, + "isWall": true + }, + { + "x": 13, + "y": 16, + "isWall": false + }, + { + "x": 13, + "y": 17, + "isWall": true + }, + { + "x": 13, + "y": 18, + "isWall": true + }, + { + "x": 13, + "y": 19, + "isWall": false + }, + { + "x": 13, + "y": 20, + "isWall": true + }, + { + "x": 13, + "y": 21, + "isWall": true + }, + { + "x": 13, + "y": 22, + "isWall": false + }, + { + "x": 13, + "y": 23, + "isWall": false + }, + { + "x": 13, + "y": 24, + "isWall": false + }, + { + "x": 13, + "y": 25, + "isWall": false + }, + { + "x": 13, + "y": 26, + "isWall": true + }, + { + "x": 13, + "y": 27, + "isWall": false + }, + { + "x": 13, + "y": 28, + "isWall": false + }, + { + "x": 13, + "y": 29, + "isWall": false + }, + { + "x": 13, + "y": 30, + "isWall": true + }, + { + "x": 13, + "y": 31, + "isWall": true + }, + { + "x": 13, + "y": 32, + "isWall": false + }, + { + "x": 13, + "y": 33, + "isWall": false + }, + { + "x": 13, + "y": 34, + "isWall": false + }, + { + "x": 13, + "y": 35, + "isWall": false + }, + { + "x": 13, + "y": 36, + "isWall": true + }, + { + "x": 13, + "y": 37, + "isWall": false + }, + { + "x": 13, + "y": 38, + "isWall": true + }, + { + "x": 13, + "y": 39, + "isWall": false + }, + { + "x": 13, + "y": 40, + "isWall": false + }, + { + "x": 13, + "y": 41, + "isWall": true + }, + { + "x": 13, + "y": 42, + "isWall": false + }, + { + "x": 13, + "y": 43, + "isWall": false + }, + { + "x": 13, + "y": 44, + "isWall": false + }, + { + "x": 13, + "y": 45, + "isWall": true + }, + { + "x": 13, + "y": 46, + "isWall": false + }, + { + "x": 13, + "y": 47, + "isWall": false + }, + { + "x": 13, + "y": 48, + "isWall": true + }, + { + "x": 13, + "y": 49, + "isWall": true + }, + { + "x": 13, + "y": 50, + "isWall": true + }, + { + "x": 13, + "y": 51, + "isWall": false + }, + { + "x": 13, + "y": 52, + "isWall": false + }, + { + "x": 13, + "y": 53, + "isWall": false + }, + { + "x": 13, + "y": 54, + "isWall": false + }, + { + "x": 13, + "y": 55, + "isWall": true + }, + { + "x": 13, + "y": 56, + "isWall": false + }, + { + "x": 13, + "y": 57, + "isWall": false + }, + { + "x": 13, + "y": 58, + "isWall": false + }, + { + "x": 13, + "y": 59, + "isWall": false + }, + { + "x": 13, + "y": 60, + "isWall": false + }, + { + "x": 13, + "y": 61, + "isWall": false + }, + { + "x": 13, + "y": 62, + "isWall": false + }, + { + "x": 13, + "y": 63, + "isWall": false + }, + { + "x": 13, + "y": 64, + "isWall": false + }, + { + "x": 13, + "y": 65, + "isWall": false + }, + { + "x": 13, + "y": 66, + "isWall": false + }, + { + "x": 13, + "y": 67, + "isWall": false + }, + { + "x": 13, + "y": 68, + "isWall": true + }, + { + "x": 13, + "y": 69, + "isWall": false + }, + { + "x": 13, + "y": 70, + "isWall": true + }, + { + "x": 13, + "y": 71, + "isWall": true + }, + { + "x": 13, + "y": 72, + "isWall": false + }, + { + "x": 13, + "y": 73, + "isWall": false + }, + { + "x": 13, + "y": 74, + "isWall": true + }, + { + "x": 13, + "y": 75, + "isWall": false + }, + { + "x": 13, + "y": 76, + "isWall": true + }, + { + "x": 13, + "y": 77, + "isWall": true + }, + { + "x": 13, + "y": 78, + "isWall": false + }, + { + "x": 13, + "y": 79, + "isWall": false + }, + { + "x": 13, + "y": 80, + "isWall": false + }, + { + "x": 13, + "y": 81, + "isWall": false + }, + { + "x": 13, + "y": 82, + "isWall": false + }, + { + "x": 13, + "y": 83, + "isWall": false + }, + { + "x": 13, + "y": 84, + "isWall": false + }, + { + "x": 13, + "y": 85, + "isWall": false + }, + { + "x": 13, + "y": 86, + "isWall": false + }, + { + "x": 13, + "y": 87, + "isWall": false + }, + { + "x": 13, + "y": 88, + "isWall": true + }, + { + "x": 13, + "y": 89, + "isWall": false + }, + { + "x": 13, + "y": 90, + "isWall": false + }, + { + "x": 13, + "y": 91, + "isWall": true + }, + { + "x": 13, + "y": 92, + "isWall": false + }, + { + "x": 13, + "y": 93, + "isWall": true + }, + { + "x": 13, + "y": 94, + "isWall": false + }, + { + "x": 13, + "y": 95, + "isWall": true + }, + { + "x": 13, + "y": 96, + "isWall": false + }, + { + "x": 13, + "y": 97, + "isWall": true + }, + { + "x": 13, + "y": 98, + "isWall": false + }, + { + "x": 13, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 14, + "y": 0, + "isWall": false + }, + { + "x": 14, + "y": 1, + "isWall": false + }, + { + "x": 14, + "y": 2, + "isWall": false + }, + { + "x": 14, + "y": 3, + "isWall": false + }, + { + "x": 14, + "y": 4, + "isWall": false + }, + { + "x": 14, + "y": 5, + "isWall": false + }, + { + "x": 14, + "y": 6, + "isWall": false + }, + { + "x": 14, + "y": 7, + "isWall": true + }, + { + "x": 14, + "y": 8, + "isWall": false + }, + { + "x": 14, + "y": 9, + "isWall": true + }, + { + "x": 14, + "y": 10, + "isWall": false + }, + { + "x": 14, + "y": 11, + "isWall": false + }, + { + "x": 14, + "y": 12, + "isWall": true + }, + { + "x": 14, + "y": 13, + "isWall": false + }, + { + "x": 14, + "y": 14, + "isWall": false + }, + { + "x": 14, + "y": 15, + "isWall": false + }, + { + "x": 14, + "y": 16, + "isWall": true + }, + { + "x": 14, + "y": 17, + "isWall": false + }, + { + "x": 14, + "y": 18, + "isWall": false + }, + { + "x": 14, + "y": 19, + "isWall": false + }, + { + "x": 14, + "y": 20, + "isWall": true + }, + { + "x": 14, + "y": 21, + "isWall": false + }, + { + "x": 14, + "y": 22, + "isWall": false + }, + { + "x": 14, + "y": 23, + "isWall": true + }, + { + "x": 14, + "y": 24, + "isWall": false + }, + { + "x": 14, + "y": 25, + "isWall": true + }, + { + "x": 14, + "y": 26, + "isWall": false + }, + { + "x": 14, + "y": 27, + "isWall": true + }, + { + "x": 14, + "y": 28, + "isWall": true + }, + { + "x": 14, + "y": 29, + "isWall": true + }, + { + "x": 14, + "y": 30, + "isWall": false + }, + { + "x": 14, + "y": 31, + "isWall": false + }, + { + "x": 14, + "y": 32, + "isWall": true + }, + { + "x": 14, + "y": 33, + "isWall": false + }, + { + "x": 14, + "y": 34, + "isWall": false + }, + { + "x": 14, + "y": 35, + "isWall": true + }, + { + "x": 14, + "y": 36, + "isWall": false + }, + { + "x": 14, + "y": 37, + "isWall": false + }, + { + "x": 14, + "y": 38, + "isWall": false + }, + { + "x": 14, + "y": 39, + "isWall": false + }, + { + "x": 14, + "y": 40, + "isWall": true + }, + { + "x": 14, + "y": 41, + "isWall": false + }, + { + "x": 14, + "y": 42, + "isWall": false + }, + { + "x": 14, + "y": 43, + "isWall": false + }, + { + "x": 14, + "y": 44, + "isWall": false + }, + { + "x": 14, + "y": 45, + "isWall": false + }, + { + "x": 14, + "y": 46, + "isWall": true + }, + { + "x": 14, + "y": 47, + "isWall": true + }, + { + "x": 14, + "y": 48, + "isWall": false + }, + { + "x": 14, + "y": 49, + "isWall": false + }, + { + "x": 14, + "y": 50, + "isWall": false + }, + { + "x": 14, + "y": 51, + "isWall": false + }, + { + "x": 14, + "y": 52, + "isWall": false + }, + { + "x": 14, + "y": 53, + "isWall": true + }, + { + "x": 14, + "y": 54, + "isWall": false + }, + { + "x": 14, + "y": 55, + "isWall": true + }, + { + "x": 14, + "y": 56, + "isWall": false + }, + { + "x": 14, + "y": 57, + "isWall": false + }, + { + "x": 14, + "y": 58, + "isWall": false + }, + { + "x": 14, + "y": 59, + "isWall": true + }, + { + "x": 14, + "y": 60, + "isWall": false + }, + { + "x": 14, + "y": 61, + "isWall": true + }, + { + "x": 14, + "y": 62, + "isWall": false + }, + { + "x": 14, + "y": 63, + "isWall": false + }, + { + "x": 14, + "y": 64, + "isWall": true + }, + { + "x": 14, + "y": 65, + "isWall": false + }, + { + "x": 14, + "y": 66, + "isWall": false + }, + { + "x": 14, + "y": 67, + "isWall": false + }, + { + "x": 14, + "y": 68, + "isWall": true + }, + { + "x": 14, + "y": 69, + "isWall": false + }, + { + "x": 14, + "y": 70, + "isWall": false + }, + { + "x": 14, + "y": 71, + "isWall": true + }, + { + "x": 14, + "y": 72, + "isWall": false + }, + { + "x": 14, + "y": 73, + "isWall": false + }, + { + "x": 14, + "y": 74, + "isWall": true + }, + { + "x": 14, + "y": 75, + "isWall": false + }, + { + "x": 14, + "y": 76, + "isWall": true + }, + { + "x": 14, + "y": 77, + "isWall": true + }, + { + "x": 14, + "y": 78, + "isWall": false + }, + { + "x": 14, + "y": 79, + "isWall": false + }, + { + "x": 14, + "y": 80, + "isWall": false + }, + { + "x": 14, + "y": 81, + "isWall": false + }, + { + "x": 14, + "y": 82, + "isWall": false + }, + { + "x": 14, + "y": 83, + "isWall": true + }, + { + "x": 14, + "y": 84, + "isWall": false + }, + { + "x": 14, + "y": 85, + "isWall": false + }, + { + "x": 14, + "y": 86, + "isWall": false + }, + { + "x": 14, + "y": 87, + "isWall": false + }, + { + "x": 14, + "y": 88, + "isWall": true + }, + { + "x": 14, + "y": 89, + "isWall": false + }, + { + "x": 14, + "y": 90, + "isWall": false + }, + { + "x": 14, + "y": 91, + "isWall": true + }, + { + "x": 14, + "y": 92, + "isWall": false + }, + { + "x": 14, + "y": 93, + "isWall": false + }, + { + "x": 14, + "y": 94, + "isWall": false + }, + { + "x": 14, + "y": 95, + "isWall": false + }, + { + "x": 14, + "y": 96, + "isWall": false + }, + { + "x": 14, + "y": 97, + "isWall": false + }, + { + "x": 14, + "y": 98, + "isWall": false + }, + { + "x": 14, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 15, + "y": 0, + "isWall": false + }, + { + "x": 15, + "y": 1, + "isWall": true + }, + { + "x": 15, + "y": 2, + "isWall": false + }, + { + "x": 15, + "y": 3, + "isWall": false + }, + { + "x": 15, + "y": 4, + "isWall": false + }, + { + "x": 15, + "y": 5, + "isWall": false + }, + { + "x": 15, + "y": 6, + "isWall": false + }, + { + "x": 15, + "y": 7, + "isWall": false + }, + { + "x": 15, + "y": 8, + "isWall": false + }, + { + "x": 15, + "y": 9, + "isWall": false + }, + { + "x": 15, + "y": 10, + "isWall": false + }, + { + "x": 15, + "y": 11, + "isWall": true + }, + { + "x": 15, + "y": 12, + "isWall": true + }, + { + "x": 15, + "y": 13, + "isWall": true + }, + { + "x": 15, + "y": 14, + "isWall": false + }, + { + "x": 15, + "y": 15, + "isWall": false + }, + { + "x": 15, + "y": 16, + "isWall": false + }, + { + "x": 15, + "y": 17, + "isWall": false + }, + { + "x": 15, + "y": 18, + "isWall": false + }, + { + "x": 15, + "y": 19, + "isWall": false + }, + { + "x": 15, + "y": 20, + "isWall": false + }, + { + "x": 15, + "y": 21, + "isWall": true + }, + { + "x": 15, + "y": 22, + "isWall": false + }, + { + "x": 15, + "y": 23, + "isWall": true + }, + { + "x": 15, + "y": 24, + "isWall": true + }, + { + "x": 15, + "y": 25, + "isWall": false + }, + { + "x": 15, + "y": 26, + "isWall": false + }, + { + "x": 15, + "y": 27, + "isWall": false + }, + { + "x": 15, + "y": 28, + "isWall": false + }, + { + "x": 15, + "y": 29, + "isWall": true + }, + { + "x": 15, + "y": 30, + "isWall": false + }, + { + "x": 15, + "y": 31, + "isWall": false + }, + { + "x": 15, + "y": 32, + "isWall": false + }, + { + "x": 15, + "y": 33, + "isWall": false + }, + { + "x": 15, + "y": 34, + "isWall": false + }, + { + "x": 15, + "y": 35, + "isWall": false + }, + { + "x": 15, + "y": 36, + "isWall": true + }, + { + "x": 15, + "y": 37, + "isWall": true + }, + { + "x": 15, + "y": 38, + "isWall": true + }, + { + "x": 15, + "y": 39, + "isWall": true + }, + { + "x": 15, + "y": 40, + "isWall": false + }, + { + "x": 15, + "y": 41, + "isWall": false + }, + { + "x": 15, + "y": 42, + "isWall": true + }, + { + "x": 15, + "y": 43, + "isWall": false + }, + { + "x": 15, + "y": 44, + "isWall": false + }, + { + "x": 15, + "y": 45, + "isWall": false + }, + { + "x": 15, + "y": 46, + "isWall": true + }, + { + "x": 15, + "y": 47, + "isWall": false + }, + { + "x": 15, + "y": 48, + "isWall": true + }, + { + "x": 15, + "y": 49, + "isWall": true + }, + { + "x": 15, + "y": 50, + "isWall": false + }, + { + "x": 15, + "y": 51, + "isWall": false + }, + { + "x": 15, + "y": 52, + "isWall": false + }, + { + "x": 15, + "y": 53, + "isWall": false + }, + { + "x": 15, + "y": 54, + "isWall": true + }, + { + "x": 15, + "y": 55, + "isWall": false + }, + { + "x": 15, + "y": 56, + "isWall": false + }, + { + "x": 15, + "y": 57, + "isWall": false + }, + { + "x": 15, + "y": 58, + "isWall": false + }, + { + "x": 15, + "y": 59, + "isWall": true + }, + { + "x": 15, + "y": 60, + "isWall": false + }, + { + "x": 15, + "y": 61, + "isWall": false + }, + { + "x": 15, + "y": 62, + "isWall": false + }, + { + "x": 15, + "y": 63, + "isWall": true + }, + { + "x": 15, + "y": 64, + "isWall": false + }, + { + "x": 15, + "y": 65, + "isWall": true + }, + { + "x": 15, + "y": 66, + "isWall": false + }, + { + "x": 15, + "y": 67, + "isWall": false + }, + { + "x": 15, + "y": 68, + "isWall": true + }, + { + "x": 15, + "y": 69, + "isWall": true + }, + { + "x": 15, + "y": 70, + "isWall": false + }, + { + "x": 15, + "y": 71, + "isWall": false + }, + { + "x": 15, + "y": 72, + "isWall": false + }, + { + "x": 15, + "y": 73, + "isWall": false + }, + { + "x": 15, + "y": 74, + "isWall": false + }, + { + "x": 15, + "y": 75, + "isWall": true + }, + { + "x": 15, + "y": 76, + "isWall": true + }, + { + "x": 15, + "y": 77, + "isWall": false + }, + { + "x": 15, + "y": 78, + "isWall": false + }, + { + "x": 15, + "y": 79, + "isWall": false + }, + { + "x": 15, + "y": 80, + "isWall": true + }, + { + "x": 15, + "y": 81, + "isWall": true + }, + { + "x": 15, + "y": 82, + "isWall": false + }, + { + "x": 15, + "y": 83, + "isWall": false + }, + { + "x": 15, + "y": 84, + "isWall": true + }, + { + "x": 15, + "y": 85, + "isWall": false + }, + { + "x": 15, + "y": 86, + "isWall": true + }, + { + "x": 15, + "y": 87, + "isWall": true + }, + { + "x": 15, + "y": 88, + "isWall": false + }, + { + "x": 15, + "y": 89, + "isWall": true + }, + { + "x": 15, + "y": 90, + "isWall": false + }, + { + "x": 15, + "y": 91, + "isWall": false + }, + { + "x": 15, + "y": 92, + "isWall": false + }, + { + "x": 15, + "y": 93, + "isWall": false + }, + { + "x": 15, + "y": 94, + "isWall": false + }, + { + "x": 15, + "y": 95, + "isWall": false + }, + { + "x": 15, + "y": 96, + "isWall": true + }, + { + "x": 15, + "y": 97, + "isWall": false + }, + { + "x": 15, + "y": 98, + "isWall": false + }, + { + "x": 15, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 16, + "y": 0, + "isWall": true + }, + { + "x": 16, + "y": 1, + "isWall": false + }, + { + "x": 16, + "y": 2, + "isWall": true + }, + { + "x": 16, + "y": 3, + "isWall": false + }, + { + "x": 16, + "y": 4, + "isWall": false + }, + { + "x": 16, + "y": 5, + "isWall": true + }, + { + "x": 16, + "y": 6, + "isWall": false + }, + { + "x": 16, + "y": 7, + "isWall": false + }, + { + "x": 16, + "y": 8, + "isWall": false + }, + { + "x": 16, + "y": 9, + "isWall": true + }, + { + "x": 16, + "y": 10, + "isWall": true + }, + { + "x": 16, + "y": 11, + "isWall": false + }, + { + "x": 16, + "y": 12, + "isWall": false + }, + { + "x": 16, + "y": 13, + "isWall": false + }, + { + "x": 16, + "y": 14, + "isWall": false + }, + { + "x": 16, + "y": 15, + "isWall": false + }, + { + "x": 16, + "y": 16, + "isWall": true + }, + { + "x": 16, + "y": 17, + "isWall": true + }, + { + "x": 16, + "y": 18, + "isWall": false + }, + { + "x": 16, + "y": 19, + "isWall": false + }, + { + "x": 16, + "y": 20, + "isWall": false + }, + { + "x": 16, + "y": 21, + "isWall": true + }, + { + "x": 16, + "y": 22, + "isWall": false + }, + { + "x": 16, + "y": 23, + "isWall": false + }, + { + "x": 16, + "y": 24, + "isWall": false + }, + { + "x": 16, + "y": 25, + "isWall": true + }, + { + "x": 16, + "y": 26, + "isWall": true + }, + { + "x": 16, + "y": 27, + "isWall": false + }, + { + "x": 16, + "y": 28, + "isWall": false + }, + { + "x": 16, + "y": 29, + "isWall": false + }, + { + "x": 16, + "y": 30, + "isWall": false + }, + { + "x": 16, + "y": 31, + "isWall": true + }, + { + "x": 16, + "y": 32, + "isWall": false + }, + { + "x": 16, + "y": 33, + "isWall": false + }, + { + "x": 16, + "y": 34, + "isWall": true + }, + { + "x": 16, + "y": 35, + "isWall": true + }, + { + "x": 16, + "y": 36, + "isWall": true + }, + { + "x": 16, + "y": 37, + "isWall": false + }, + { + "x": 16, + "y": 38, + "isWall": true + }, + { + "x": 16, + "y": 39, + "isWall": true + }, + { + "x": 16, + "y": 40, + "isWall": true + }, + { + "x": 16, + "y": 41, + "isWall": true + }, + { + "x": 16, + "y": 42, + "isWall": true + }, + { + "x": 16, + "y": 43, + "isWall": false + }, + { + "x": 16, + "y": 44, + "isWall": false + }, + { + "x": 16, + "y": 45, + "isWall": false + }, + { + "x": 16, + "y": 46, + "isWall": true + }, + { + "x": 16, + "y": 47, + "isWall": false + }, + { + "x": 16, + "y": 48, + "isWall": false + }, + { + "x": 16, + "y": 49, + "isWall": true + }, + { + "x": 16, + "y": 50, + "isWall": false + }, + { + "x": 16, + "y": 51, + "isWall": false + }, + { + "x": 16, + "y": 52, + "isWall": false + }, + { + "x": 16, + "y": 53, + "isWall": false + }, + { + "x": 16, + "y": 54, + "isWall": false + }, + { + "x": 16, + "y": 55, + "isWall": false + }, + { + "x": 16, + "y": 56, + "isWall": false + }, + { + "x": 16, + "y": 57, + "isWall": false + }, + { + "x": 16, + "y": 58, + "isWall": false + }, + { + "x": 16, + "y": 59, + "isWall": true + }, + { + "x": 16, + "y": 60, + "isWall": false + }, + { + "x": 16, + "y": 61, + "isWall": false + }, + { + "x": 16, + "y": 62, + "isWall": true + }, + { + "x": 16, + "y": 63, + "isWall": false + }, + { + "x": 16, + "y": 64, + "isWall": false + }, + { + "x": 16, + "y": 65, + "isWall": false + }, + { + "x": 16, + "y": 66, + "isWall": false + }, + { + "x": 16, + "y": 67, + "isWall": false + }, + { + "x": 16, + "y": 68, + "isWall": true + }, + { + "x": 16, + "y": 69, + "isWall": false + }, + { + "x": 16, + "y": 70, + "isWall": true + }, + { + "x": 16, + "y": 71, + "isWall": true + }, + { + "x": 16, + "y": 72, + "isWall": false + }, + { + "x": 16, + "y": 73, + "isWall": false + }, + { + "x": 16, + "y": 74, + "isWall": false + }, + { + "x": 16, + "y": 75, + "isWall": false + }, + { + "x": 16, + "y": 76, + "isWall": false + }, + { + "x": 16, + "y": 77, + "isWall": false + }, + { + "x": 16, + "y": 78, + "isWall": false + }, + { + "x": 16, + "y": 79, + "isWall": false + }, + { + "x": 16, + "y": 80, + "isWall": false + }, + { + "x": 16, + "y": 81, + "isWall": false + }, + { + "x": 16, + "y": 82, + "isWall": true + }, + { + "x": 16, + "y": 83, + "isWall": false + }, + { + "x": 16, + "y": 84, + "isWall": false + }, + { + "x": 16, + "y": 85, + "isWall": false + }, + { + "x": 16, + "y": 86, + "isWall": false + }, + { + "x": 16, + "y": 87, + "isWall": true + }, + { + "x": 16, + "y": 88, + "isWall": false + }, + { + "x": 16, + "y": 89, + "isWall": false + }, + { + "x": 16, + "y": 90, + "isWall": true + }, + { + "x": 16, + "y": 91, + "isWall": true + }, + { + "x": 16, + "y": 92, + "isWall": false + }, + { + "x": 16, + "y": 93, + "isWall": false + }, + { + "x": 16, + "y": 94, + "isWall": false + }, + { + "x": 16, + "y": 95, + "isWall": false + }, + { + "x": 16, + "y": 96, + "isWall": false + }, + { + "x": 16, + "y": 97, + "isWall": false + }, + { + "x": 16, + "y": 98, + "isWall": false + }, + { + "x": 16, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 17, + "y": 0, + "isWall": true + }, + { + "x": 17, + "y": 1, + "isWall": false + }, + { + "x": 17, + "y": 2, + "isWall": false + }, + { + "x": 17, + "y": 3, + "isWall": false + }, + { + "x": 17, + "y": 4, + "isWall": true + }, + { + "x": 17, + "y": 5, + "isWall": false + }, + { + "x": 17, + "y": 6, + "isWall": false + }, + { + "x": 17, + "y": 7, + "isWall": true + }, + { + "x": 17, + "y": 8, + "isWall": false + }, + { + "x": 17, + "y": 9, + "isWall": true + }, + { + "x": 17, + "y": 10, + "isWall": false + }, + { + "x": 17, + "y": 11, + "isWall": false + }, + { + "x": 17, + "y": 12, + "isWall": true + }, + { + "x": 17, + "y": 13, + "isWall": true + }, + { + "x": 17, + "y": 14, + "isWall": false + }, + { + "x": 17, + "y": 15, + "isWall": false + }, + { + "x": 17, + "y": 16, + "isWall": true + }, + { + "x": 17, + "y": 17, + "isWall": false + }, + { + "x": 17, + "y": 18, + "isWall": false + }, + { + "x": 17, + "y": 19, + "isWall": false + }, + { + "x": 17, + "y": 20, + "isWall": false + }, + { + "x": 17, + "y": 21, + "isWall": false + }, + { + "x": 17, + "y": 22, + "isWall": false + }, + { + "x": 17, + "y": 23, + "isWall": true + }, + { + "x": 17, + "y": 24, + "isWall": false + }, + { + "x": 17, + "y": 25, + "isWall": true + }, + { + "x": 17, + "y": 26, + "isWall": false + }, + { + "x": 17, + "y": 27, + "isWall": true + }, + { + "x": 17, + "y": 28, + "isWall": false + }, + { + "x": 17, + "y": 29, + "isWall": true + }, + { + "x": 17, + "y": 30, + "isWall": false + }, + { + "x": 17, + "y": 31, + "isWall": false + }, + { + "x": 17, + "y": 32, + "isWall": false + }, + { + "x": 17, + "y": 33, + "isWall": true + }, + { + "x": 17, + "y": 34, + "isWall": false + }, + { + "x": 17, + "y": 35, + "isWall": false + }, + { + "x": 17, + "y": 36, + "isWall": true + }, + { + "x": 17, + "y": 37, + "isWall": false + }, + { + "x": 17, + "y": 38, + "isWall": false + }, + { + "x": 17, + "y": 39, + "isWall": true + }, + { + "x": 17, + "y": 40, + "isWall": false + }, + { + "x": 17, + "y": 41, + "isWall": false + }, + { + "x": 17, + "y": 42, + "isWall": false + }, + { + "x": 17, + "y": 43, + "isWall": false + }, + { + "x": 17, + "y": 44, + "isWall": false + }, + { + "x": 17, + "y": 45, + "isWall": false + }, + { + "x": 17, + "y": 46, + "isWall": false + }, + { + "x": 17, + "y": 47, + "isWall": true + }, + { + "x": 17, + "y": 48, + "isWall": false + }, + { + "x": 17, + "y": 49, + "isWall": true + }, + { + "x": 17, + "y": 50, + "isWall": false + }, + { + "x": 17, + "y": 51, + "isWall": false + }, + { + "x": 17, + "y": 52, + "isWall": false + }, + { + "x": 17, + "y": 53, + "isWall": false + }, + { + "x": 17, + "y": 54, + "isWall": false + }, + { + "x": 17, + "y": 55, + "isWall": false + }, + { + "x": 17, + "y": 56, + "isWall": false + }, + { + "x": 17, + "y": 57, + "isWall": true + }, + { + "x": 17, + "y": 58, + "isWall": true + }, + { + "x": 17, + "y": 59, + "isWall": true + }, + { + "x": 17, + "y": 60, + "isWall": false + }, + { + "x": 17, + "y": 61, + "isWall": true + }, + { + "x": 17, + "y": 62, + "isWall": false + }, + { + "x": 17, + "y": 63, + "isWall": false + }, + { + "x": 17, + "y": 64, + "isWall": false + }, + { + "x": 17, + "y": 65, + "isWall": true + }, + { + "x": 17, + "y": 66, + "isWall": false + }, + { + "x": 17, + "y": 67, + "isWall": false + }, + { + "x": 17, + "y": 68, + "isWall": false + }, + { + "x": 17, + "y": 69, + "isWall": false + }, + { + "x": 17, + "y": 70, + "isWall": true + }, + { + "x": 17, + "y": 71, + "isWall": true + }, + { + "x": 17, + "y": 72, + "isWall": true + }, + { + "x": 17, + "y": 73, + "isWall": true + }, + { + "x": 17, + "y": 74, + "isWall": false + }, + { + "x": 17, + "y": 75, + "isWall": false + }, + { + "x": 17, + "y": 76, + "isWall": true + }, + { + "x": 17, + "y": 77, + "isWall": true + }, + { + "x": 17, + "y": 78, + "isWall": false + }, + { + "x": 17, + "y": 79, + "isWall": true + }, + { + "x": 17, + "y": 80, + "isWall": true + }, + { + "x": 17, + "y": 81, + "isWall": false + }, + { + "x": 17, + "y": 82, + "isWall": false + }, + { + "x": 17, + "y": 83, + "isWall": true + }, + { + "x": 17, + "y": 84, + "isWall": true + }, + { + "x": 17, + "y": 85, + "isWall": false + }, + { + "x": 17, + "y": 86, + "isWall": false + }, + { + "x": 17, + "y": 87, + "isWall": false + }, + { + "x": 17, + "y": 88, + "isWall": false + }, + { + "x": 17, + "y": 89, + "isWall": true + }, + { + "x": 17, + "y": 90, + "isWall": true + }, + { + "x": 17, + "y": 91, + "isWall": false + }, + { + "x": 17, + "y": 92, + "isWall": false + }, + { + "x": 17, + "y": 93, + "isWall": true + }, + { + "x": 17, + "y": 94, + "isWall": false + }, + { + "x": 17, + "y": 95, + "isWall": true + }, + { + "x": 17, + "y": 96, + "isWall": false + }, + { + "x": 17, + "y": 97, + "isWall": false + }, + { + "x": 17, + "y": 98, + "isWall": false + }, + { + "x": 17, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 18, + "y": 0, + "isWall": false + }, + { + "x": 18, + "y": 1, + "isWall": false + }, + { + "x": 18, + "y": 2, + "isWall": false + }, + { + "x": 18, + "y": 3, + "isWall": true + }, + { + "x": 18, + "y": 4, + "isWall": false + }, + { + "x": 18, + "y": 5, + "isWall": true + }, + { + "x": 18, + "y": 6, + "isWall": true + }, + { + "x": 18, + "y": 7, + "isWall": false + }, + { + "x": 18, + "y": 8, + "isWall": false + }, + { + "x": 18, + "y": 9, + "isWall": false + }, + { + "x": 18, + "y": 10, + "isWall": false + }, + { + "x": 18, + "y": 11, + "isWall": false + }, + { + "x": 18, + "y": 12, + "isWall": false + }, + { + "x": 18, + "y": 13, + "isWall": false + }, + { + "x": 18, + "y": 14, + "isWall": true + }, + { + "x": 18, + "y": 15, + "isWall": false + }, + { + "x": 18, + "y": 16, + "isWall": false + }, + { + "x": 18, + "y": 17, + "isWall": false + }, + { + "x": 18, + "y": 18, + "isWall": true + }, + { + "x": 18, + "y": 19, + "isWall": false + }, + { + "x": 18, + "y": 20, + "isWall": false + }, + { + "x": 18, + "y": 21, + "isWall": false + }, + { + "x": 18, + "y": 22, + "isWall": false + }, + { + "x": 18, + "y": 23, + "isWall": false + }, + { + "x": 18, + "y": 24, + "isWall": true + }, + { + "x": 18, + "y": 25, + "isWall": false + }, + { + "x": 18, + "y": 26, + "isWall": false + }, + { + "x": 18, + "y": 27, + "isWall": false + }, + { + "x": 18, + "y": 28, + "isWall": false + }, + { + "x": 18, + "y": 29, + "isWall": false + }, + { + "x": 18, + "y": 30, + "isWall": false + }, + { + "x": 18, + "y": 31, + "isWall": true + }, + { + "x": 18, + "y": 32, + "isWall": false + }, + { + "x": 18, + "y": 33, + "isWall": false + }, + { + "x": 18, + "y": 34, + "isWall": false + }, + { + "x": 18, + "y": 35, + "isWall": false + }, + { + "x": 18, + "y": 36, + "isWall": false + }, + { + "x": 18, + "y": 37, + "isWall": false + }, + { + "x": 18, + "y": 38, + "isWall": false + }, + { + "x": 18, + "y": 39, + "isWall": false + }, + { + "x": 18, + "y": 40, + "isWall": false + }, + { + "x": 18, + "y": 41, + "isWall": true + }, + { + "x": 18, + "y": 42, + "isWall": false + }, + { + "x": 18, + "y": 43, + "isWall": false + }, + { + "x": 18, + "y": 44, + "isWall": false + }, + { + "x": 18, + "y": 45, + "isWall": false + }, + { + "x": 18, + "y": 46, + "isWall": true + }, + { + "x": 18, + "y": 47, + "isWall": false + }, + { + "x": 18, + "y": 48, + "isWall": false + }, + { + "x": 18, + "y": 49, + "isWall": false + }, + { + "x": 18, + "y": 50, + "isWall": false + }, + { + "x": 18, + "y": 51, + "isWall": true + }, + { + "x": 18, + "y": 52, + "isWall": true + }, + { + "x": 18, + "y": 53, + "isWall": false + }, + { + "x": 18, + "y": 54, + "isWall": false + }, + { + "x": 18, + "y": 55, + "isWall": true + }, + { + "x": 18, + "y": 56, + "isWall": true + }, + { + "x": 18, + "y": 57, + "isWall": false + }, + { + "x": 18, + "y": 58, + "isWall": false + }, + { + "x": 18, + "y": 59, + "isWall": false + }, + { + "x": 18, + "y": 60, + "isWall": true + }, + { + "x": 18, + "y": 61, + "isWall": false + }, + { + "x": 18, + "y": 62, + "isWall": true + }, + { + "x": 18, + "y": 63, + "isWall": true + }, + { + "x": 18, + "y": 64, + "isWall": false + }, + { + "x": 18, + "y": 65, + "isWall": true + }, + { + "x": 18, + "y": 66, + "isWall": false + }, + { + "x": 18, + "y": 67, + "isWall": true + }, + { + "x": 18, + "y": 68, + "isWall": false + }, + { + "x": 18, + "y": 69, + "isWall": false + }, + { + "x": 18, + "y": 70, + "isWall": false + }, + { + "x": 18, + "y": 71, + "isWall": false + }, + { + "x": 18, + "y": 72, + "isWall": true + }, + { + "x": 18, + "y": 73, + "isWall": true + }, + { + "x": 18, + "y": 74, + "isWall": false + }, + { + "x": 18, + "y": 75, + "isWall": false + }, + { + "x": 18, + "y": 76, + "isWall": false + }, + { + "x": 18, + "y": 77, + "isWall": true + }, + { + "x": 18, + "y": 78, + "isWall": true + }, + { + "x": 18, + "y": 79, + "isWall": true + }, + { + "x": 18, + "y": 80, + "isWall": false + }, + { + "x": 18, + "y": 81, + "isWall": true + }, + { + "x": 18, + "y": 82, + "isWall": false + }, + { + "x": 18, + "y": 83, + "isWall": false + }, + { + "x": 18, + "y": 84, + "isWall": false + }, + { + "x": 18, + "y": 85, + "isWall": true + }, + { + "x": 18, + "y": 86, + "isWall": false + }, + { + "x": 18, + "y": 87, + "isWall": false + }, + { + "x": 18, + "y": 88, + "isWall": true + }, + { + "x": 18, + "y": 89, + "isWall": false + }, + { + "x": 18, + "y": 90, + "isWall": false + }, + { + "x": 18, + "y": 91, + "isWall": false + }, + { + "x": 18, + "y": 92, + "isWall": false + }, + { + "x": 18, + "y": 93, + "isWall": true + }, + { + "x": 18, + "y": 94, + "isWall": false + }, + { + "x": 18, + "y": 95, + "isWall": true + }, + { + "x": 18, + "y": 96, + "isWall": false + }, + { + "x": 18, + "y": 97, + "isWall": false + }, + { + "x": 18, + "y": 98, + "isWall": false + }, + { + "x": 18, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 19, + "y": 0, + "isWall": false + }, + { + "x": 19, + "y": 1, + "isWall": false + }, + { + "x": 19, + "y": 2, + "isWall": true + }, + { + "x": 19, + "y": 3, + "isWall": false + }, + { + "x": 19, + "y": 4, + "isWall": false + }, + { + "x": 19, + "y": 5, + "isWall": false + }, + { + "x": 19, + "y": 6, + "isWall": false + }, + { + "x": 19, + "y": 7, + "isWall": true + }, + { + "x": 19, + "y": 8, + "isWall": true + }, + { + "x": 19, + "y": 9, + "isWall": true + }, + { + "x": 19, + "y": 10, + "isWall": true + }, + { + "x": 19, + "y": 11, + "isWall": false + }, + { + "x": 19, + "y": 12, + "isWall": false + }, + { + "x": 19, + "y": 13, + "isWall": false + }, + { + "x": 19, + "y": 14, + "isWall": true + }, + { + "x": 19, + "y": 15, + "isWall": false + }, + { + "x": 19, + "y": 16, + "isWall": false + }, + { + "x": 19, + "y": 17, + "isWall": true + }, + { + "x": 19, + "y": 18, + "isWall": true + }, + { + "x": 19, + "y": 19, + "isWall": false + }, + { + "x": 19, + "y": 20, + "isWall": true + }, + { + "x": 19, + "y": 21, + "isWall": false + }, + { + "x": 19, + "y": 22, + "isWall": true + }, + { + "x": 19, + "y": 23, + "isWall": true + }, + { + "x": 19, + "y": 24, + "isWall": false + }, + { + "x": 19, + "y": 25, + "isWall": false + }, + { + "x": 19, + "y": 26, + "isWall": true + }, + { + "x": 19, + "y": 27, + "isWall": false + }, + { + "x": 19, + "y": 28, + "isWall": true + }, + { + "x": 19, + "y": 29, + "isWall": false + }, + { + "x": 19, + "y": 30, + "isWall": true + }, + { + "x": 19, + "y": 31, + "isWall": false + }, + { + "x": 19, + "y": 32, + "isWall": true + }, + { + "x": 19, + "y": 33, + "isWall": false + }, + { + "x": 19, + "y": 34, + "isWall": false + }, + { + "x": 19, + "y": 35, + "isWall": false + }, + { + "x": 19, + "y": 36, + "isWall": false + }, + { + "x": 19, + "y": 37, + "isWall": false + }, + { + "x": 19, + "y": 38, + "isWall": false + }, + { + "x": 19, + "y": 39, + "isWall": true + }, + { + "x": 19, + "y": 40, + "isWall": false + }, + { + "x": 19, + "y": 41, + "isWall": false + }, + { + "x": 19, + "y": 42, + "isWall": false + }, + { + "x": 19, + "y": 43, + "isWall": true + }, + { + "x": 19, + "y": 44, + "isWall": false + }, + { + "x": 19, + "y": 45, + "isWall": false + }, + { + "x": 19, + "y": 46, + "isWall": false + }, + { + "x": 19, + "y": 47, + "isWall": false + }, + { + "x": 19, + "y": 48, + "isWall": false + }, + { + "x": 19, + "y": 49, + "isWall": false + }, + { + "x": 19, + "y": 50, + "isWall": false + }, + { + "x": 19, + "y": 51, + "isWall": true + }, + { + "x": 19, + "y": 52, + "isWall": true + }, + { + "x": 19, + "y": 53, + "isWall": false + }, + { + "x": 19, + "y": 54, + "isWall": true + }, + { + "x": 19, + "y": 55, + "isWall": false + }, + { + "x": 19, + "y": 56, + "isWall": false + }, + { + "x": 19, + "y": 57, + "isWall": false + }, + { + "x": 19, + "y": 58, + "isWall": true + }, + { + "x": 19, + "y": 59, + "isWall": false + }, + { + "x": 19, + "y": 60, + "isWall": false + }, + { + "x": 19, + "y": 61, + "isWall": false + }, + { + "x": 19, + "y": 62, + "isWall": false + }, + { + "x": 19, + "y": 63, + "isWall": false + }, + { + "x": 19, + "y": 64, + "isWall": true + }, + { + "x": 19, + "y": 65, + "isWall": false + }, + { + "x": 19, + "y": 66, + "isWall": false + }, + { + "x": 19, + "y": 67, + "isWall": true + }, + { + "x": 19, + "y": 68, + "isWall": false + }, + { + "x": 19, + "y": 69, + "isWall": false + }, + { + "x": 19, + "y": 70, + "isWall": false + }, + { + "x": 19, + "y": 71, + "isWall": false + }, + { + "x": 19, + "y": 72, + "isWall": false + }, + { + "x": 19, + "y": 73, + "isWall": false + }, + { + "x": 19, + "y": 74, + "isWall": false + }, + { + "x": 19, + "y": 75, + "isWall": true + }, + { + "x": 19, + "y": 76, + "isWall": true + }, + { + "x": 19, + "y": 77, + "isWall": false + }, + { + "x": 19, + "y": 78, + "isWall": false + }, + { + "x": 19, + "y": 79, + "isWall": false + }, + { + "x": 19, + "y": 80, + "isWall": false + }, + { + "x": 19, + "y": 81, + "isWall": false + }, + { + "x": 19, + "y": 82, + "isWall": true + }, + { + "x": 19, + "y": 83, + "isWall": false + }, + { + "x": 19, + "y": 84, + "isWall": false + }, + { + "x": 19, + "y": 85, + "isWall": false + }, + { + "x": 19, + "y": 86, + "isWall": true + }, + { + "x": 19, + "y": 87, + "isWall": false + }, + { + "x": 19, + "y": 88, + "isWall": true + }, + { + "x": 19, + "y": 89, + "isWall": false + }, + { + "x": 19, + "y": 90, + "isWall": true + }, + { + "x": 19, + "y": 91, + "isWall": false + }, + { + "x": 19, + "y": 92, + "isWall": true + }, + { + "x": 19, + "y": 93, + "isWall": false + }, + { + "x": 19, + "y": 94, + "isWall": false + }, + { + "x": 19, + "y": 95, + "isWall": false + }, + { + "x": 19, + "y": 96, + "isWall": false + }, + { + "x": 19, + "y": 97, + "isWall": true + }, + { + "x": 19, + "y": 98, + "isWall": false + }, + { + "x": 19, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 20, + "y": 0, + "isWall": false + }, + { + "x": 20, + "y": 1, + "isWall": true + }, + { + "x": 20, + "y": 2, + "isWall": true + }, + { + "x": 20, + "y": 3, + "isWall": true + }, + { + "x": 20, + "y": 4, + "isWall": false + }, + { + "x": 20, + "y": 5, + "isWall": false + }, + { + "x": 20, + "y": 6, + "isWall": false + }, + { + "x": 20, + "y": 7, + "isWall": true + }, + { + "x": 20, + "y": 8, + "isWall": true + }, + { + "x": 20, + "y": 9, + "isWall": false + }, + { + "x": 20, + "y": 10, + "isWall": false + }, + { + "x": 20, + "y": 11, + "isWall": false + }, + { + "x": 20, + "y": 12, + "isWall": false + }, + { + "x": 20, + "y": 13, + "isWall": false + }, + { + "x": 20, + "y": 14, + "isWall": true + }, + { + "x": 20, + "y": 15, + "isWall": false + }, + { + "x": 20, + "y": 16, + "isWall": false + }, + { + "x": 20, + "y": 17, + "isWall": true + }, + { + "x": 20, + "y": 18, + "isWall": false + }, + { + "x": 20, + "y": 19, + "isWall": true + }, + { + "x": 20, + "y": 20, + "isWall": false + }, + { + "x": 20, + "y": 21, + "isWall": true + }, + { + "x": 20, + "y": 22, + "isWall": false + }, + { + "x": 20, + "y": 23, + "isWall": false + }, + { + "x": 20, + "y": 24, + "isWall": false + }, + { + "x": 20, + "y": 25, + "isWall": true + }, + { + "x": 20, + "y": 26, + "isWall": false + }, + { + "x": 20, + "y": 27, + "isWall": false + }, + { + "x": 20, + "y": 28, + "isWall": false + }, + { + "x": 20, + "y": 29, + "isWall": true + }, + { + "x": 20, + "y": 30, + "isWall": false + }, + { + "x": 20, + "y": 31, + "isWall": false + }, + { + "x": 20, + "y": 32, + "isWall": false + }, + { + "x": 20, + "y": 33, + "isWall": true + }, + { + "x": 20, + "y": 34, + "isWall": false + }, + { + "x": 20, + "y": 35, + "isWall": true + }, + { + "x": 20, + "y": 36, + "isWall": false + }, + { + "x": 20, + "y": 37, + "isWall": true + }, + { + "x": 20, + "y": 38, + "isWall": false + }, + { + "x": 20, + "y": 39, + "isWall": false + }, + { + "x": 20, + "y": 40, + "isWall": false + }, + { + "x": 20, + "y": 41, + "isWall": false + }, + { + "x": 20, + "y": 42, + "isWall": false + }, + { + "x": 20, + "y": 43, + "isWall": false + }, + { + "x": 20, + "y": 44, + "isWall": false + }, + { + "x": 20, + "y": 45, + "isWall": false + }, + { + "x": 20, + "y": 46, + "isWall": true + }, + { + "x": 20, + "y": 47, + "isWall": true + }, + { + "x": 20, + "y": 48, + "isWall": false + }, + { + "x": 20, + "y": 49, + "isWall": true + }, + { + "x": 20, + "y": 50, + "isWall": false + }, + { + "x": 20, + "y": 51, + "isWall": false + }, + { + "x": 20, + "y": 52, + "isWall": true + }, + { + "x": 20, + "y": 53, + "isWall": false + }, + { + "x": 20, + "y": 54, + "isWall": false + }, + { + "x": 20, + "y": 55, + "isWall": false + }, + { + "x": 20, + "y": 56, + "isWall": false + }, + { + "x": 20, + "y": 57, + "isWall": false + }, + { + "x": 20, + "y": 58, + "isWall": true + }, + { + "x": 20, + "y": 59, + "isWall": true + }, + { + "x": 20, + "y": 60, + "isWall": true + }, + { + "x": 20, + "y": 61, + "isWall": true + }, + { + "x": 20, + "y": 62, + "isWall": false + }, + { + "x": 20, + "y": 63, + "isWall": false + }, + { + "x": 20, + "y": 64, + "isWall": true + }, + { + "x": 20, + "y": 65, + "isWall": true + }, + { + "x": 20, + "y": 66, + "isWall": false + }, + { + "x": 20, + "y": 67, + "isWall": false + }, + { + "x": 20, + "y": 68, + "isWall": false + }, + { + "x": 20, + "y": 69, + "isWall": false + }, + { + "x": 20, + "y": 70, + "isWall": false + }, + { + "x": 20, + "y": 71, + "isWall": false + }, + { + "x": 20, + "y": 72, + "isWall": true + }, + { + "x": 20, + "y": 73, + "isWall": false + }, + { + "x": 20, + "y": 74, + "isWall": false + }, + { + "x": 20, + "y": 75, + "isWall": false + }, + { + "x": 20, + "y": 76, + "isWall": false + }, + { + "x": 20, + "y": 77, + "isWall": false + }, + { + "x": 20, + "y": 78, + "isWall": true + }, + { + "x": 20, + "y": 79, + "isWall": true + }, + { + "x": 20, + "y": 80, + "isWall": false + }, + { + "x": 20, + "y": 81, + "isWall": false + }, + { + "x": 20, + "y": 82, + "isWall": false + }, + { + "x": 20, + "y": 83, + "isWall": false + }, + { + "x": 20, + "y": 84, + "isWall": false + }, + { + "x": 20, + "y": 85, + "isWall": false + }, + { + "x": 20, + "y": 86, + "isWall": false + }, + { + "x": 20, + "y": 87, + "isWall": false + }, + { + "x": 20, + "y": 88, + "isWall": true + }, + { + "x": 20, + "y": 89, + "isWall": false + }, + { + "x": 20, + "y": 90, + "isWall": false + }, + { + "x": 20, + "y": 91, + "isWall": false + }, + { + "x": 20, + "y": 92, + "isWall": false + }, + { + "x": 20, + "y": 93, + "isWall": false + }, + { + "x": 20, + "y": 94, + "isWall": true + }, + { + "x": 20, + "y": 95, + "isWall": true + }, + { + "x": 20, + "y": 96, + "isWall": false + }, + { + "x": 20, + "y": 97, + "isWall": false + }, + { + "x": 20, + "y": 98, + "isWall": false + }, + { + "x": 20, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 21, + "y": 0, + "isWall": true + }, + { + "x": 21, + "y": 1, + "isWall": false + }, + { + "x": 21, + "y": 2, + "isWall": false + }, + { + "x": 21, + "y": 3, + "isWall": false + }, + { + "x": 21, + "y": 4, + "isWall": false + }, + { + "x": 21, + "y": 5, + "isWall": false + }, + { + "x": 21, + "y": 6, + "isWall": false + }, + { + "x": 21, + "y": 7, + "isWall": true + }, + { + "x": 21, + "y": 8, + "isWall": false + }, + { + "x": 21, + "y": 9, + "isWall": false + }, + { + "x": 21, + "y": 10, + "isWall": false + }, + { + "x": 21, + "y": 11, + "isWall": false + }, + { + "x": 21, + "y": 12, + "isWall": false + }, + { + "x": 21, + "y": 13, + "isWall": false + }, + { + "x": 21, + "y": 14, + "isWall": false + }, + { + "x": 21, + "y": 15, + "isWall": false + }, + { + "x": 21, + "y": 16, + "isWall": true + }, + { + "x": 21, + "y": 17, + "isWall": false + }, + { + "x": 21, + "y": 18, + "isWall": false + }, + { + "x": 21, + "y": 19, + "isWall": false + }, + { + "x": 21, + "y": 20, + "isWall": true + }, + { + "x": 21, + "y": 21, + "isWall": false + }, + { + "x": 21, + "y": 22, + "isWall": false + }, + { + "x": 21, + "y": 23, + "isWall": false + }, + { + "x": 21, + "y": 24, + "isWall": true + }, + { + "x": 21, + "y": 25, + "isWall": false + }, + { + "x": 21, + "y": 26, + "isWall": false + }, + { + "x": 21, + "y": 27, + "isWall": true + }, + { + "x": 21, + "y": 28, + "isWall": false + }, + { + "x": 21, + "y": 29, + "isWall": false + }, + { + "x": 21, + "y": 30, + "isWall": true + }, + { + "x": 21, + "y": 31, + "isWall": true + }, + { + "x": 21, + "y": 32, + "isWall": false + }, + { + "x": 21, + "y": 33, + "isWall": false + }, + { + "x": 21, + "y": 34, + "isWall": true + }, + { + "x": 21, + "y": 35, + "isWall": false + }, + { + "x": 21, + "y": 36, + "isWall": false + }, + { + "x": 21, + "y": 37, + "isWall": false + }, + { + "x": 21, + "y": 38, + "isWall": true + }, + { + "x": 21, + "y": 39, + "isWall": false + }, + { + "x": 21, + "y": 40, + "isWall": true + }, + { + "x": 21, + "y": 41, + "isWall": false + }, + { + "x": 21, + "y": 42, + "isWall": true + }, + { + "x": 21, + "y": 43, + "isWall": false + }, + { + "x": 21, + "y": 44, + "isWall": false + }, + { + "x": 21, + "y": 45, + "isWall": false + }, + { + "x": 21, + "y": 46, + "isWall": false + }, + { + "x": 21, + "y": 47, + "isWall": true + }, + { + "x": 21, + "y": 48, + "isWall": false + }, + { + "x": 21, + "y": 49, + "isWall": true + }, + { + "x": 21, + "y": 50, + "isWall": false + }, + { + "x": 21, + "y": 51, + "isWall": true + }, + { + "x": 21, + "y": 52, + "isWall": false + }, + { + "x": 21, + "y": 53, + "isWall": true + }, + { + "x": 21, + "y": 54, + "isWall": false + }, + { + "x": 21, + "y": 55, + "isWall": false + }, + { + "x": 21, + "y": 56, + "isWall": false + }, + { + "x": 21, + "y": 57, + "isWall": true + }, + { + "x": 21, + "y": 58, + "isWall": false + }, + { + "x": 21, + "y": 59, + "isWall": false + }, + { + "x": 21, + "y": 60, + "isWall": false + }, + { + "x": 21, + "y": 61, + "isWall": true + }, + { + "x": 21, + "y": 62, + "isWall": false + }, + { + "x": 21, + "y": 63, + "isWall": true + }, + { + "x": 21, + "y": 64, + "isWall": false + }, + { + "x": 21, + "y": 65, + "isWall": false + }, + { + "x": 21, + "y": 66, + "isWall": false + }, + { + "x": 21, + "y": 67, + "isWall": true + }, + { + "x": 21, + "y": 68, + "isWall": false + }, + { + "x": 21, + "y": 69, + "isWall": false + }, + { + "x": 21, + "y": 70, + "isWall": false + }, + { + "x": 21, + "y": 71, + "isWall": false + }, + { + "x": 21, + "y": 72, + "isWall": false + }, + { + "x": 21, + "y": 73, + "isWall": true + }, + { + "x": 21, + "y": 74, + "isWall": false + }, + { + "x": 21, + "y": 75, + "isWall": false + }, + { + "x": 21, + "y": 76, + "isWall": false + }, + { + "x": 21, + "y": 77, + "isWall": false + }, + { + "x": 21, + "y": 78, + "isWall": false + }, + { + "x": 21, + "y": 79, + "isWall": true + }, + { + "x": 21, + "y": 80, + "isWall": false + }, + { + "x": 21, + "y": 81, + "isWall": false + }, + { + "x": 21, + "y": 82, + "isWall": false + }, + { + "x": 21, + "y": 83, + "isWall": false + }, + { + "x": 21, + "y": 84, + "isWall": true + }, + { + "x": 21, + "y": 85, + "isWall": true + }, + { + "x": 21, + "y": 86, + "isWall": false + }, + { + "x": 21, + "y": 87, + "isWall": false + }, + { + "x": 21, + "y": 88, + "isWall": false + }, + { + "x": 21, + "y": 89, + "isWall": false + }, + { + "x": 21, + "y": 90, + "isWall": false + }, + { + "x": 21, + "y": 91, + "isWall": false + }, + { + "x": 21, + "y": 92, + "isWall": false + }, + { + "x": 21, + "y": 93, + "isWall": true + }, + { + "x": 21, + "y": 94, + "isWall": false + }, + { + "x": 21, + "y": 95, + "isWall": false + }, + { + "x": 21, + "y": 96, + "isWall": false + }, + { + "x": 21, + "y": 97, + "isWall": false + }, + { + "x": 21, + "y": 98, + "isWall": false + }, + { + "x": 21, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 22, + "y": 0, + "isWall": false + }, + { + "x": 22, + "y": 1, + "isWall": false + }, + { + "x": 22, + "y": 2, + "isWall": false + }, + { + "x": 22, + "y": 3, + "isWall": false + }, + { + "x": 22, + "y": 4, + "isWall": true + }, + { + "x": 22, + "y": 5, + "isWall": false + }, + { + "x": 22, + "y": 6, + "isWall": false + }, + { + "x": 22, + "y": 7, + "isWall": false + }, + { + "x": 22, + "y": 8, + "isWall": false + }, + { + "x": 22, + "y": 9, + "isWall": false + }, + { + "x": 22, + "y": 10, + "isWall": false + }, + { + "x": 22, + "y": 11, + "isWall": false + }, + { + "x": 22, + "y": 12, + "isWall": false + }, + { + "x": 22, + "y": 13, + "isWall": false + }, + { + "x": 22, + "y": 14, + "isWall": false + }, + { + "x": 22, + "y": 15, + "isWall": false + }, + { + "x": 22, + "y": 16, + "isWall": false + }, + { + "x": 22, + "y": 17, + "isWall": false + }, + { + "x": 22, + "y": 18, + "isWall": false + }, + { + "x": 22, + "y": 19, + "isWall": false + }, + { + "x": 22, + "y": 20, + "isWall": true + }, + { + "x": 22, + "y": 21, + "isWall": false + }, + { + "x": 22, + "y": 22, + "isWall": false + }, + { + "x": 22, + "y": 23, + "isWall": false + }, + { + "x": 22, + "y": 24, + "isWall": false + }, + { + "x": 22, + "y": 25, + "isWall": false + }, + { + "x": 22, + "y": 26, + "isWall": false + }, + { + "x": 22, + "y": 27, + "isWall": true + }, + { + "x": 22, + "y": 28, + "isWall": false + }, + { + "x": 22, + "y": 29, + "isWall": true + }, + { + "x": 22, + "y": 30, + "isWall": false + }, + { + "x": 22, + "y": 31, + "isWall": false + }, + { + "x": 22, + "y": 32, + "isWall": false + }, + { + "x": 22, + "y": 33, + "isWall": true + }, + { + "x": 22, + "y": 34, + "isWall": false + }, + { + "x": 22, + "y": 35, + "isWall": false + }, + { + "x": 22, + "y": 36, + "isWall": false + }, + { + "x": 22, + "y": 37, + "isWall": false + }, + { + "x": 22, + "y": 38, + "isWall": false + }, + { + "x": 22, + "y": 39, + "isWall": false + }, + { + "x": 22, + "y": 40, + "isWall": false + }, + { + "x": 22, + "y": 41, + "isWall": false + }, + { + "x": 22, + "y": 42, + "isWall": false + }, + { + "x": 22, + "y": 43, + "isWall": false + }, + { + "x": 22, + "y": 44, + "isWall": false + }, + { + "x": 22, + "y": 45, + "isWall": false + }, + { + "x": 22, + "y": 46, + "isWall": false + }, + { + "x": 22, + "y": 47, + "isWall": false + }, + { + "x": 22, + "y": 48, + "isWall": false + }, + { + "x": 22, + "y": 49, + "isWall": false + }, + { + "x": 22, + "y": 50, + "isWall": false + }, + { + "x": 22, + "y": 51, + "isWall": true + }, + { + "x": 22, + "y": 52, + "isWall": true + }, + { + "x": 22, + "y": 53, + "isWall": false + }, + { + "x": 22, + "y": 54, + "isWall": true + }, + { + "x": 22, + "y": 55, + "isWall": false + }, + { + "x": 22, + "y": 56, + "isWall": false + }, + { + "x": 22, + "y": 57, + "isWall": false + }, + { + "x": 22, + "y": 58, + "isWall": false + }, + { + "x": 22, + "y": 59, + "isWall": false + }, + { + "x": 22, + "y": 60, + "isWall": true + }, + { + "x": 22, + "y": 61, + "isWall": false + }, + { + "x": 22, + "y": 62, + "isWall": false + }, + { + "x": 22, + "y": 63, + "isWall": false + }, + { + "x": 22, + "y": 64, + "isWall": true + }, + { + "x": 22, + "y": 65, + "isWall": false + }, + { + "x": 22, + "y": 66, + "isWall": false + }, + { + "x": 22, + "y": 67, + "isWall": false + }, + { + "x": 22, + "y": 68, + "isWall": false + }, + { + "x": 22, + "y": 69, + "isWall": false + }, + { + "x": 22, + "y": 70, + "isWall": true + }, + { + "x": 22, + "y": 71, + "isWall": true + }, + { + "x": 22, + "y": 72, + "isWall": true + }, + { + "x": 22, + "y": 73, + "isWall": false + }, + { + "x": 22, + "y": 74, + "isWall": false + }, + { + "x": 22, + "y": 75, + "isWall": false + }, + { + "x": 22, + "y": 76, + "isWall": false + }, + { + "x": 22, + "y": 77, + "isWall": true + }, + { + "x": 22, + "y": 78, + "isWall": true + }, + { + "x": 22, + "y": 79, + "isWall": true + }, + { + "x": 22, + "y": 80, + "isWall": false + }, + { + "x": 22, + "y": 81, + "isWall": false + }, + { + "x": 22, + "y": 82, + "isWall": false + }, + { + "x": 22, + "y": 83, + "isWall": false + }, + { + "x": 22, + "y": 84, + "isWall": true + }, + { + "x": 22, + "y": 85, + "isWall": false + }, + { + "x": 22, + "y": 86, + "isWall": true + }, + { + "x": 22, + "y": 87, + "isWall": true + }, + { + "x": 22, + "y": 88, + "isWall": false + }, + { + "x": 22, + "y": 89, + "isWall": true + }, + { + "x": 22, + "y": 90, + "isWall": false + }, + { + "x": 22, + "y": 91, + "isWall": false + }, + { + "x": 22, + "y": 92, + "isWall": true + }, + { + "x": 22, + "y": 93, + "isWall": false + }, + { + "x": 22, + "y": 94, + "isWall": false + }, + { + "x": 22, + "y": 95, + "isWall": false + }, + { + "x": 22, + "y": 96, + "isWall": false + }, + { + "x": 22, + "y": 97, + "isWall": true + }, + { + "x": 22, + "y": 98, + "isWall": true + }, + { + "x": 22, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 23, + "y": 0, + "isWall": false + }, + { + "x": 23, + "y": 1, + "isWall": false + }, + { + "x": 23, + "y": 2, + "isWall": false + }, + { + "x": 23, + "y": 3, + "isWall": true + }, + { + "x": 23, + "y": 4, + "isWall": false + }, + { + "x": 23, + "y": 5, + "isWall": false + }, + { + "x": 23, + "y": 6, + "isWall": true + }, + { + "x": 23, + "y": 7, + "isWall": false + }, + { + "x": 23, + "y": 8, + "isWall": false + }, + { + "x": 23, + "y": 9, + "isWall": false + }, + { + "x": 23, + "y": 10, + "isWall": false + }, + { + "x": 23, + "y": 11, + "isWall": false + }, + { + "x": 23, + "y": 12, + "isWall": false + }, + { + "x": 23, + "y": 13, + "isWall": false + }, + { + "x": 23, + "y": 14, + "isWall": true + }, + { + "x": 23, + "y": 15, + "isWall": false + }, + { + "x": 23, + "y": 16, + "isWall": true + }, + { + "x": 23, + "y": 17, + "isWall": false + }, + { + "x": 23, + "y": 18, + "isWall": false + }, + { + "x": 23, + "y": 19, + "isWall": true + }, + { + "x": 23, + "y": 20, + "isWall": true + }, + { + "x": 23, + "y": 21, + "isWall": false + }, + { + "x": 23, + "y": 22, + "isWall": false + }, + { + "x": 23, + "y": 23, + "isWall": false + }, + { + "x": 23, + "y": 24, + "isWall": false + }, + { + "x": 23, + "y": 25, + "isWall": false + }, + { + "x": 23, + "y": 26, + "isWall": false + }, + { + "x": 23, + "y": 27, + "isWall": true + }, + { + "x": 23, + "y": 28, + "isWall": true + }, + { + "x": 23, + "y": 29, + "isWall": false + }, + { + "x": 23, + "y": 30, + "isWall": true + }, + { + "x": 23, + "y": 31, + "isWall": false + }, + { + "x": 23, + "y": 32, + "isWall": true + }, + { + "x": 23, + "y": 33, + "isWall": false + }, + { + "x": 23, + "y": 34, + "isWall": false + }, + { + "x": 23, + "y": 35, + "isWall": false + }, + { + "x": 23, + "y": 36, + "isWall": false + }, + { + "x": 23, + "y": 37, + "isWall": true + }, + { + "x": 23, + "y": 38, + "isWall": false + }, + { + "x": 23, + "y": 39, + "isWall": false + }, + { + "x": 23, + "y": 40, + "isWall": false + }, + { + "x": 23, + "y": 41, + "isWall": false + }, + { + "x": 23, + "y": 42, + "isWall": false + }, + { + "x": 23, + "y": 43, + "isWall": false + }, + { + "x": 23, + "y": 44, + "isWall": true + }, + { + "x": 23, + "y": 45, + "isWall": false + }, + { + "x": 23, + "y": 46, + "isWall": false + }, + { + "x": 23, + "y": 47, + "isWall": false + }, + { + "x": 23, + "y": 48, + "isWall": false + }, + { + "x": 23, + "y": 49, + "isWall": false + }, + { + "x": 23, + "y": 50, + "isWall": true + }, + { + "x": 23, + "y": 51, + "isWall": true + }, + { + "x": 23, + "y": 52, + "isWall": true + }, + { + "x": 23, + "y": 53, + "isWall": true + }, + { + "x": 23, + "y": 54, + "isWall": false + }, + { + "x": 23, + "y": 55, + "isWall": false + }, + { + "x": 23, + "y": 56, + "isWall": true + }, + { + "x": 23, + "y": 57, + "isWall": false + }, + { + "x": 23, + "y": 58, + "isWall": false + }, + { + "x": 23, + "y": 59, + "isWall": false + }, + { + "x": 23, + "y": 60, + "isWall": true + }, + { + "x": 23, + "y": 61, + "isWall": false + }, + { + "x": 23, + "y": 62, + "isWall": false + }, + { + "x": 23, + "y": 63, + "isWall": true + }, + { + "x": 23, + "y": 64, + "isWall": true + }, + { + "x": 23, + "y": 65, + "isWall": true + }, + { + "x": 23, + "y": 66, + "isWall": false + }, + { + "x": 23, + "y": 67, + "isWall": false + }, + { + "x": 23, + "y": 68, + "isWall": true + }, + { + "x": 23, + "y": 69, + "isWall": true + }, + { + "x": 23, + "y": 70, + "isWall": false + }, + { + "x": 23, + "y": 71, + "isWall": false + }, + { + "x": 23, + "y": 72, + "isWall": true + }, + { + "x": 23, + "y": 73, + "isWall": false + }, + { + "x": 23, + "y": 74, + "isWall": true + }, + { + "x": 23, + "y": 75, + "isWall": false + }, + { + "x": 23, + "y": 76, + "isWall": true + }, + { + "x": 23, + "y": 77, + "isWall": false + }, + { + "x": 23, + "y": 78, + "isWall": true + }, + { + "x": 23, + "y": 79, + "isWall": false + }, + { + "x": 23, + "y": 80, + "isWall": false + }, + { + "x": 23, + "y": 81, + "isWall": false + }, + { + "x": 23, + "y": 82, + "isWall": false + }, + { + "x": 23, + "y": 83, + "isWall": false + }, + { + "x": 23, + "y": 84, + "isWall": false + }, + { + "x": 23, + "y": 85, + "isWall": false + }, + { + "x": 23, + "y": 86, + "isWall": true + }, + { + "x": 23, + "y": 87, + "isWall": false + }, + { + "x": 23, + "y": 88, + "isWall": false + }, + { + "x": 23, + "y": 89, + "isWall": true + }, + { + "x": 23, + "y": 90, + "isWall": false + }, + { + "x": 23, + "y": 91, + "isWall": true + }, + { + "x": 23, + "y": 92, + "isWall": false + }, + { + "x": 23, + "y": 93, + "isWall": false + }, + { + "x": 23, + "y": 94, + "isWall": false + }, + { + "x": 23, + "y": 95, + "isWall": false + }, + { + "x": 23, + "y": 96, + "isWall": false + }, + { + "x": 23, + "y": 97, + "isWall": false + }, + { + "x": 23, + "y": 98, + "isWall": false + }, + { + "x": 23, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 24, + "y": 0, + "isWall": true + }, + { + "x": 24, + "y": 1, + "isWall": true + }, + { + "x": 24, + "y": 2, + "isWall": true + }, + { + "x": 24, + "y": 3, + "isWall": true + }, + { + "x": 24, + "y": 4, + "isWall": true + }, + { + "x": 24, + "y": 5, + "isWall": true + }, + { + "x": 24, + "y": 6, + "isWall": true + }, + { + "x": 24, + "y": 7, + "isWall": true + }, + { + "x": 24, + "y": 8, + "isWall": true + }, + { + "x": 24, + "y": 9, + "isWall": true + }, + { + "x": 24, + "y": 10, + "isWall": true + }, + { + "x": 24, + "y": 11, + "isWall": true + }, + { + "x": 24, + "y": 12, + "isWall": true + }, + { + "x": 24, + "y": 13, + "isWall": true + }, + { + "x": 24, + "y": 14, + "isWall": true + }, + { + "x": 24, + "y": 15, + "isWall": true + }, + { + "x": 24, + "y": 16, + "isWall": true + }, + { + "x": 24, + "y": 17, + "isWall": true + }, + { + "x": 24, + "y": 18, + "isWall": true + }, + { + "x": 24, + "y": 19, + "isWall": true + }, + { + "x": 24, + "y": 20, + "isWall": true + }, + { + "x": 24, + "y": 21, + "isWall": true + }, + { + "x": 24, + "y": 22, + "isWall": true + }, + { + "x": 24, + "y": 23, + "isWall": true + }, + { + "x": 24, + "y": 24, + "isWall": true + }, + { + "x": 24, + "y": 25, + "isWall": true + }, + { + "x": 24, + "y": 26, + "isWall": true + }, + { + "x": 24, + "y": 27, + "isWall": true + }, + { + "x": 24, + "y": 28, + "isWall": true + }, + { + "x": 24, + "y": 29, + "isWall": true + }, + { + "x": 24, + "y": 30, + "isWall": true + }, + { + "x": 24, + "y": 31, + "isWall": true + }, + { + "x": 24, + "y": 32, + "isWall": true + }, + { + "x": 24, + "y": 33, + "isWall": true + }, + { + "x": 24, + "y": 34, + "isWall": true + }, + { + "x": 24, + "y": 35, + "isWall": true + }, + { + "x": 24, + "y": 36, + "isWall": true + }, + { + "x": 24, + "y": 37, + "isWall": true + }, + { + "x": 24, + "y": 38, + "isWall": true + }, + { + "x": 24, + "y": 39, + "isWall": true + }, + { + "x": 24, + "y": 40, + "isWall": true + }, + { + "x": 24, + "y": 41, + "isWall": true + }, + { + "x": 24, + "y": 42, + "isWall": true + }, + { + "x": 24, + "y": 43, + "isWall": true + }, + { + "x": 24, + "y": 44, + "isWall": true + }, + { + "x": 24, + "y": 45, + "isWall": true + }, + { + "x": 24, + "y": 46, + "isWall": true + }, + { + "x": 24, + "y": 47, + "isWall": true + }, + { + "x": 24, + "y": 48, + "isWall": true + }, + { + "x": 24, + "y": 49, + "isWall": true + }, + { + "x": 24, + "y": 50, + "isWall": true + }, + { + "x": 24, + "y": 51, + "isWall": true + }, + { + "x": 24, + "y": 52, + "isWall": true + }, + { + "x": 24, + "y": 53, + "isWall": true + }, + { + "x": 24, + "y": 54, + "isWall": true + }, + { + "x": 24, + "y": 55, + "isWall": true + }, + { + "x": 24, + "y": 56, + "isWall": true + }, + { + "x": 24, + "y": 57, + "isWall": true + }, + { + "x": 24, + "y": 58, + "isWall": true + }, + { + "x": 24, + "y": 59, + "isWall": true + }, + { + "x": 24, + "y": 60, + "isWall": true + }, + { + "x": 24, + "y": 61, + "isWall": true + }, + { + "x": 24, + "y": 62, + "isWall": true + }, + { + "x": 24, + "y": 63, + "isWall": true + }, + { + "x": 24, + "y": 64, + "isWall": true + }, + { + "x": 24, + "y": 65, + "isWall": true + }, + { + "x": 24, + "y": 66, + "isWall": true + }, + { + "x": 24, + "y": 67, + "isWall": true + }, + { + "x": 24, + "y": 68, + "isWall": true + }, + { + "x": 24, + "y": 69, + "isWall": true + }, + { + "x": 24, + "y": 70, + "isWall": true + }, + { + "x": 24, + "y": 71, + "isWall": true + }, + { + "x": 24, + "y": 72, + "isWall": true + }, + { + "x": 24, + "y": 73, + "isWall": true + }, + { + "x": 24, + "y": 74, + "isWall": false + }, + { + "x": 24, + "y": 75, + "isWall": true + }, + { + "x": 24, + "y": 76, + "isWall": false + }, + { + "x": 24, + "y": 77, + "isWall": true + }, + { + "x": 24, + "y": 78, + "isWall": false + }, + { + "x": 24, + "y": 79, + "isWall": false + }, + { + "x": 24, + "y": 80, + "isWall": false + }, + { + "x": 24, + "y": 81, + "isWall": false + }, + { + "x": 24, + "y": 82, + "isWall": true + }, + { + "x": 24, + "y": 83, + "isWall": false + }, + { + "x": 24, + "y": 84, + "isWall": false + }, + { + "x": 24, + "y": 85, + "isWall": false + }, + { + "x": 24, + "y": 86, + "isWall": true + }, + { + "x": 24, + "y": 87, + "isWall": false + }, + { + "x": 24, + "y": 88, + "isWall": true + }, + { + "x": 24, + "y": 89, + "isWall": true + }, + { + "x": 24, + "y": 90, + "isWall": false + }, + { + "x": 24, + "y": 91, + "isWall": false + }, + { + "x": 24, + "y": 92, + "isWall": true + }, + { + "x": 24, + "y": 93, + "isWall": false + }, + { + "x": 24, + "y": 94, + "isWall": false + }, + { + "x": 24, + "y": 95, + "isWall": true + }, + { + "x": 24, + "y": 96, + "isWall": false + }, + { + "x": 24, + "y": 97, + "isWall": false + }, + { + "x": 24, + "y": 98, + "isWall": false + }, + { + "x": 24, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 25, + "y": 0, + "isWall": true + }, + { + "x": 25, + "y": 1, + "isWall": false + }, + { + "x": 25, + "y": 2, + "isWall": false + }, + { + "x": 25, + "y": 3, + "isWall": false + }, + { + "x": 25, + "y": 4, + "isWall": true + }, + { + "x": 25, + "y": 5, + "isWall": false + }, + { + "x": 25, + "y": 6, + "isWall": false + }, + { + "x": 25, + "y": 7, + "isWall": true + }, + { + "x": 25, + "y": 8, + "isWall": true + }, + { + "x": 25, + "y": 9, + "isWall": true + }, + { + "x": 25, + "y": 10, + "isWall": false + }, + { + "x": 25, + "y": 11, + "isWall": false + }, + { + "x": 25, + "y": 12, + "isWall": true + }, + { + "x": 25, + "y": 13, + "isWall": false + }, + { + "x": 25, + "y": 14, + "isWall": false + }, + { + "x": 25, + "y": 15, + "isWall": false + }, + { + "x": 25, + "y": 16, + "isWall": false + }, + { + "x": 25, + "y": 17, + "isWall": false + }, + { + "x": 25, + "y": 18, + "isWall": false + }, + { + "x": 25, + "y": 19, + "isWall": true + }, + { + "x": 25, + "y": 20, + "isWall": false + }, + { + "x": 25, + "y": 21, + "isWall": false + }, + { + "x": 25, + "y": 22, + "isWall": true + }, + { + "x": 25, + "y": 23, + "isWall": false + }, + { + "x": 25, + "y": 24, + "isWall": true + }, + { + "x": 25, + "y": 25, + "isWall": false + }, + { + "x": 25, + "y": 26, + "isWall": false + }, + { + "x": 25, + "y": 27, + "isWall": true + }, + { + "x": 25, + "y": 28, + "isWall": false + }, + { + "x": 25, + "y": 29, + "isWall": false + }, + { + "x": 25, + "y": 30, + "isWall": false + }, + { + "x": 25, + "y": 31, + "isWall": false + }, + { + "x": 25, + "y": 32, + "isWall": false + }, + { + "x": 25, + "y": 33, + "isWall": false + }, + { + "x": 25, + "y": 34, + "isWall": false + }, + { + "x": 25, + "y": 35, + "isWall": true + }, + { + "x": 25, + "y": 36, + "isWall": false + }, + { + "x": 25, + "y": 37, + "isWall": true + }, + { + "x": 25, + "y": 38, + "isWall": false + }, + { + "x": 25, + "y": 39, + "isWall": true + }, + { + "x": 25, + "y": 40, + "isWall": false + }, + { + "x": 25, + "y": 41, + "isWall": true + }, + { + "x": 25, + "y": 42, + "isWall": false + }, + { + "x": 25, + "y": 43, + "isWall": false + }, + { + "x": 25, + "y": 44, + "isWall": false + }, + { + "x": 25, + "y": 45, + "isWall": false + }, + { + "x": 25, + "y": 46, + "isWall": false + }, + { + "x": 25, + "y": 47, + "isWall": false + }, + { + "x": 25, + "y": 48, + "isWall": false + }, + { + "x": 25, + "y": 49, + "isWall": true + }, + { + "x": 25, + "y": 50, + "isWall": true + }, + { + "x": 25, + "y": 51, + "isWall": true + }, + { + "x": 25, + "y": 52, + "isWall": false + }, + { + "x": 25, + "y": 53, + "isWall": true + }, + { + "x": 25, + "y": 54, + "isWall": true + }, + { + "x": 25, + "y": 55, + "isWall": false + }, + { + "x": 25, + "y": 56, + "isWall": false + }, + { + "x": 25, + "y": 57, + "isWall": true + }, + { + "x": 25, + "y": 58, + "isWall": false + }, + { + "x": 25, + "y": 59, + "isWall": true + }, + { + "x": 25, + "y": 60, + "isWall": false + }, + { + "x": 25, + "y": 61, + "isWall": false + }, + { + "x": 25, + "y": 62, + "isWall": false + }, + { + "x": 25, + "y": 63, + "isWall": false + }, + { + "x": 25, + "y": 64, + "isWall": false + }, + { + "x": 25, + "y": 65, + "isWall": false + }, + { + "x": 25, + "y": 66, + "isWall": false + }, + { + "x": 25, + "y": 67, + "isWall": false + }, + { + "x": 25, + "y": 68, + "isWall": true + }, + { + "x": 25, + "y": 69, + "isWall": true + }, + { + "x": 25, + "y": 70, + "isWall": false + }, + { + "x": 25, + "y": 71, + "isWall": false + }, + { + "x": 25, + "y": 72, + "isWall": false + }, + { + "x": 25, + "y": 73, + "isWall": false + }, + { + "x": 25, + "y": 74, + "isWall": true + }, + { + "x": 25, + "y": 75, + "isWall": false + }, + { + "x": 25, + "y": 76, + "isWall": false + }, + { + "x": 25, + "y": 77, + "isWall": false + }, + { + "x": 25, + "y": 78, + "isWall": true + }, + { + "x": 25, + "y": 79, + "isWall": false + }, + { + "x": 25, + "y": 80, + "isWall": true + }, + { + "x": 25, + "y": 81, + "isWall": true + }, + { + "x": 25, + "y": 82, + "isWall": false + }, + { + "x": 25, + "y": 83, + "isWall": false + }, + { + "x": 25, + "y": 84, + "isWall": true + }, + { + "x": 25, + "y": 85, + "isWall": false + }, + { + "x": 25, + "y": 86, + "isWall": false + }, + { + "x": 25, + "y": 87, + "isWall": false + }, + { + "x": 25, + "y": 88, + "isWall": false + }, + { + "x": 25, + "y": 89, + "isWall": false + }, + { + "x": 25, + "y": 90, + "isWall": false + }, + { + "x": 25, + "y": 91, + "isWall": true + }, + { + "x": 25, + "y": 92, + "isWall": false + }, + { + "x": 25, + "y": 93, + "isWall": false + }, + { + "x": 25, + "y": 94, + "isWall": false + }, + { + "x": 25, + "y": 95, + "isWall": true + }, + { + "x": 25, + "y": 96, + "isWall": true + }, + { + "x": 25, + "y": 97, + "isWall": false + }, + { + "x": 25, + "y": 98, + "isWall": false + }, + { + "x": 25, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 26, + "y": 0, + "isWall": true + }, + { + "x": 26, + "y": 1, + "isWall": false + }, + { + "x": 26, + "y": 2, + "isWall": false + }, + { + "x": 26, + "y": 3, + "isWall": false + }, + { + "x": 26, + "y": 4, + "isWall": true + }, + { + "x": 26, + "y": 5, + "isWall": false + }, + { + "x": 26, + "y": 6, + "isWall": false + }, + { + "x": 26, + "y": 7, + "isWall": false + }, + { + "x": 26, + "y": 8, + "isWall": false + }, + { + "x": 26, + "y": 9, + "isWall": false + }, + { + "x": 26, + "y": 10, + "isWall": false + }, + { + "x": 26, + "y": 11, + "isWall": true + }, + { + "x": 26, + "y": 12, + "isWall": false + }, + { + "x": 26, + "y": 13, + "isWall": false + }, + { + "x": 26, + "y": 14, + "isWall": false + }, + { + "x": 26, + "y": 15, + "isWall": false + }, + { + "x": 26, + "y": 16, + "isWall": false + }, + { + "x": 26, + "y": 17, + "isWall": false + }, + { + "x": 26, + "y": 18, + "isWall": false + }, + { + "x": 26, + "y": 19, + "isWall": false + }, + { + "x": 26, + "y": 20, + "isWall": true + }, + { + "x": 26, + "y": 21, + "isWall": false + }, + { + "x": 26, + "y": 22, + "isWall": true + }, + { + "x": 26, + "y": 23, + "isWall": false + }, + { + "x": 26, + "y": 24, + "isWall": false + }, + { + "x": 26, + "y": 25, + "isWall": false + }, + { + "x": 26, + "y": 26, + "isWall": false + }, + { + "x": 26, + "y": 27, + "isWall": false + }, + { + "x": 26, + "y": 28, + "isWall": false + }, + { + "x": 26, + "y": 29, + "isWall": true + }, + { + "x": 26, + "y": 30, + "isWall": false + }, + { + "x": 26, + "y": 31, + "isWall": false + }, + { + "x": 26, + "y": 32, + "isWall": false + }, + { + "x": 26, + "y": 33, + "isWall": false + }, + { + "x": 26, + "y": 34, + "isWall": false + }, + { + "x": 26, + "y": 35, + "isWall": true + }, + { + "x": 26, + "y": 36, + "isWall": false + }, + { + "x": 26, + "y": 37, + "isWall": true + }, + { + "x": 26, + "y": 38, + "isWall": true + }, + { + "x": 26, + "y": 39, + "isWall": false + }, + { + "x": 26, + "y": 40, + "isWall": true + }, + { + "x": 26, + "y": 41, + "isWall": false + }, + { + "x": 26, + "y": 42, + "isWall": false + }, + { + "x": 26, + "y": 43, + "isWall": false + }, + { + "x": 26, + "y": 44, + "isWall": false + }, + { + "x": 26, + "y": 45, + "isWall": true + }, + { + "x": 26, + "y": 46, + "isWall": false + }, + { + "x": 26, + "y": 47, + "isWall": false + }, + { + "x": 26, + "y": 48, + "isWall": false + }, + { + "x": 26, + "y": 49, + "isWall": false + }, + { + "x": 26, + "y": 50, + "isWall": false + }, + { + "x": 26, + "y": 51, + "isWall": true + }, + { + "x": 26, + "y": 52, + "isWall": false + }, + { + "x": 26, + "y": 53, + "isWall": false + }, + { + "x": 26, + "y": 54, + "isWall": false + }, + { + "x": 26, + "y": 55, + "isWall": false + }, + { + "x": 26, + "y": 56, + "isWall": false + }, + { + "x": 26, + "y": 57, + "isWall": false + }, + { + "x": 26, + "y": 58, + "isWall": false + }, + { + "x": 26, + "y": 59, + "isWall": false + }, + { + "x": 26, + "y": 60, + "isWall": true + }, + { + "x": 26, + "y": 61, + "isWall": true + }, + { + "x": 26, + "y": 62, + "isWall": false + }, + { + "x": 26, + "y": 63, + "isWall": false + }, + { + "x": 26, + "y": 64, + "isWall": true + }, + { + "x": 26, + "y": 65, + "isWall": true + }, + { + "x": 26, + "y": 66, + "isWall": false + }, + { + "x": 26, + "y": 67, + "isWall": true + }, + { + "x": 26, + "y": 68, + "isWall": false + }, + { + "x": 26, + "y": 69, + "isWall": true + }, + { + "x": 26, + "y": 70, + "isWall": false + }, + { + "x": 26, + "y": 71, + "isWall": true + }, + { + "x": 26, + "y": 72, + "isWall": false + }, + { + "x": 26, + "y": 73, + "isWall": false + }, + { + "x": 26, + "y": 74, + "isWall": true + }, + { + "x": 26, + "y": 75, + "isWall": false + }, + { + "x": 26, + "y": 76, + "isWall": false + }, + { + "x": 26, + "y": 77, + "isWall": false + }, + { + "x": 26, + "y": 78, + "isWall": false + }, + { + "x": 26, + "y": 79, + "isWall": false + }, + { + "x": 26, + "y": 80, + "isWall": false + }, + { + "x": 26, + "y": 81, + "isWall": false + }, + { + "x": 26, + "y": 82, + "isWall": true + }, + { + "x": 26, + "y": 83, + "isWall": false + }, + { + "x": 26, + "y": 84, + "isWall": false + }, + { + "x": 26, + "y": 85, + "isWall": false + }, + { + "x": 26, + "y": 86, + "isWall": true + }, + { + "x": 26, + "y": 87, + "isWall": true + }, + { + "x": 26, + "y": 88, + "isWall": false + }, + { + "x": 26, + "y": 89, + "isWall": false + }, + { + "x": 26, + "y": 90, + "isWall": false + }, + { + "x": 26, + "y": 91, + "isWall": false + }, + { + "x": 26, + "y": 92, + "isWall": false + }, + { + "x": 26, + "y": 93, + "isWall": false + }, + { + "x": 26, + "y": 94, + "isWall": false + }, + { + "x": 26, + "y": 95, + "isWall": false + }, + { + "x": 26, + "y": 96, + "isWall": false + }, + { + "x": 26, + "y": 97, + "isWall": false + }, + { + "x": 26, + "y": 98, + "isWall": false + }, + { + "x": 26, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 27, + "y": 0, + "isWall": false + }, + { + "x": 27, + "y": 1, + "isWall": false + }, + { + "x": 27, + "y": 2, + "isWall": false + }, + { + "x": 27, + "y": 3, + "isWall": false + }, + { + "x": 27, + "y": 4, + "isWall": false + }, + { + "x": 27, + "y": 5, + "isWall": false + }, + { + "x": 27, + "y": 6, + "isWall": true + }, + { + "x": 27, + "y": 7, + "isWall": false + }, + { + "x": 27, + "y": 8, + "isWall": false + }, + { + "x": 27, + "y": 9, + "isWall": false + }, + { + "x": 27, + "y": 10, + "isWall": true + }, + { + "x": 27, + "y": 11, + "isWall": false + }, + { + "x": 27, + "y": 12, + "isWall": false + }, + { + "x": 27, + "y": 13, + "isWall": false + }, + { + "x": 27, + "y": 14, + "isWall": false + }, + { + "x": 27, + "y": 15, + "isWall": false + }, + { + "x": 27, + "y": 16, + "isWall": false + }, + { + "x": 27, + "y": 17, + "isWall": false + }, + { + "x": 27, + "y": 18, + "isWall": false + }, + { + "x": 27, + "y": 19, + "isWall": true + }, + { + "x": 27, + "y": 20, + "isWall": false + }, + { + "x": 27, + "y": 21, + "isWall": false + }, + { + "x": 27, + "y": 22, + "isWall": true + }, + { + "x": 27, + "y": 23, + "isWall": false + }, + { + "x": 27, + "y": 24, + "isWall": false + }, + { + "x": 27, + "y": 25, + "isWall": false + }, + { + "x": 27, + "y": 26, + "isWall": true + }, + { + "x": 27, + "y": 27, + "isWall": false + }, + { + "x": 27, + "y": 28, + "isWall": true + }, + { + "x": 27, + "y": 29, + "isWall": false + }, + { + "x": 27, + "y": 30, + "isWall": false + }, + { + "x": 27, + "y": 31, + "isWall": true + }, + { + "x": 27, + "y": 32, + "isWall": false + }, + { + "x": 27, + "y": 33, + "isWall": true + }, + { + "x": 27, + "y": 34, + "isWall": false + }, + { + "x": 27, + "y": 35, + "isWall": false + }, + { + "x": 27, + "y": 36, + "isWall": false + }, + { + "x": 27, + "y": 37, + "isWall": true + }, + { + "x": 27, + "y": 38, + "isWall": false + }, + { + "x": 27, + "y": 39, + "isWall": false + }, + { + "x": 27, + "y": 40, + "isWall": true + }, + { + "x": 27, + "y": 41, + "isWall": false + }, + { + "x": 27, + "y": 42, + "isWall": true + }, + { + "x": 27, + "y": 43, + "isWall": true + }, + { + "x": 27, + "y": 44, + "isWall": true + }, + { + "x": 27, + "y": 45, + "isWall": false + }, + { + "x": 27, + "y": 46, + "isWall": true + }, + { + "x": 27, + "y": 47, + "isWall": false + }, + { + "x": 27, + "y": 48, + "isWall": false + }, + { + "x": 27, + "y": 49, + "isWall": false + }, + { + "x": 27, + "y": 50, + "isWall": false + }, + { + "x": 27, + "y": 51, + "isWall": false + }, + { + "x": 27, + "y": 52, + "isWall": true + }, + { + "x": 27, + "y": 53, + "isWall": true + }, + { + "x": 27, + "y": 54, + "isWall": false + }, + { + "x": 27, + "y": 55, + "isWall": false + }, + { + "x": 27, + "y": 56, + "isWall": false + }, + { + "x": 27, + "y": 57, + "isWall": true + }, + { + "x": 27, + "y": 58, + "isWall": false + }, + { + "x": 27, + "y": 59, + "isWall": true + }, + { + "x": 27, + "y": 60, + "isWall": false + }, + { + "x": 27, + "y": 61, + "isWall": false + }, + { + "x": 27, + "y": 62, + "isWall": false + }, + { + "x": 27, + "y": 63, + "isWall": true + }, + { + "x": 27, + "y": 64, + "isWall": false + }, + { + "x": 27, + "y": 65, + "isWall": false + }, + { + "x": 27, + "y": 66, + "isWall": false + }, + { + "x": 27, + "y": 67, + "isWall": true + }, + { + "x": 27, + "y": 68, + "isWall": true + }, + { + "x": 27, + "y": 69, + "isWall": false + }, + { + "x": 27, + "y": 70, + "isWall": false + }, + { + "x": 27, + "y": 71, + "isWall": true + }, + { + "x": 27, + "y": 72, + "isWall": false + }, + { + "x": 27, + "y": 73, + "isWall": false + }, + { + "x": 27, + "y": 74, + "isWall": true + }, + { + "x": 27, + "y": 75, + "isWall": false + }, + { + "x": 27, + "y": 76, + "isWall": false + }, + { + "x": 27, + "y": 77, + "isWall": true + }, + { + "x": 27, + "y": 78, + "isWall": false + }, + { + "x": 27, + "y": 79, + "isWall": false + }, + { + "x": 27, + "y": 80, + "isWall": true + }, + { + "x": 27, + "y": 81, + "isWall": true + }, + { + "x": 27, + "y": 82, + "isWall": false + }, + { + "x": 27, + "y": 83, + "isWall": false + }, + { + "x": 27, + "y": 84, + "isWall": false + }, + { + "x": 27, + "y": 85, + "isWall": false + }, + { + "x": 27, + "y": 86, + "isWall": true + }, + { + "x": 27, + "y": 87, + "isWall": false + }, + { + "x": 27, + "y": 88, + "isWall": true + }, + { + "x": 27, + "y": 89, + "isWall": false + }, + { + "x": 27, + "y": 90, + "isWall": false + }, + { + "x": 27, + "y": 91, + "isWall": true + }, + { + "x": 27, + "y": 92, + "isWall": true + }, + { + "x": 27, + "y": 93, + "isWall": false + }, + { + "x": 27, + "y": 94, + "isWall": true + }, + { + "x": 27, + "y": 95, + "isWall": false + }, + { + "x": 27, + "y": 96, + "isWall": false + }, + { + "x": 27, + "y": 97, + "isWall": false + }, + { + "x": 27, + "y": 98, + "isWall": false + }, + { + "x": 27, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 28, + "y": 0, + "isWall": true + }, + { + "x": 28, + "y": 1, + "isWall": false + }, + { + "x": 28, + "y": 2, + "isWall": false + }, + { + "x": 28, + "y": 3, + "isWall": false + }, + { + "x": 28, + "y": 4, + "isWall": false + }, + { + "x": 28, + "y": 5, + "isWall": true + }, + { + "x": 28, + "y": 6, + "isWall": true + }, + { + "x": 28, + "y": 7, + "isWall": false + }, + { + "x": 28, + "y": 8, + "isWall": true + }, + { + "x": 28, + "y": 9, + "isWall": false + }, + { + "x": 28, + "y": 10, + "isWall": false + }, + { + "x": 28, + "y": 11, + "isWall": true + }, + { + "x": 28, + "y": 12, + "isWall": true + }, + { + "x": 28, + "y": 13, + "isWall": false + }, + { + "x": 28, + "y": 14, + "isWall": false + }, + { + "x": 28, + "y": 15, + "isWall": true + }, + { + "x": 28, + "y": 16, + "isWall": false + }, + { + "x": 28, + "y": 17, + "isWall": false + }, + { + "x": 28, + "y": 18, + "isWall": false + }, + { + "x": 28, + "y": 19, + "isWall": false + }, + { + "x": 28, + "y": 20, + "isWall": false + }, + { + "x": 28, + "y": 21, + "isWall": false + }, + { + "x": 28, + "y": 22, + "isWall": false + }, + { + "x": 28, + "y": 23, + "isWall": false + }, + { + "x": 28, + "y": 24, + "isWall": false + }, + { + "x": 28, + "y": 25, + "isWall": true + }, + { + "x": 28, + "y": 26, + "isWall": false + }, + { + "x": 28, + "y": 27, + "isWall": false + }, + { + "x": 28, + "y": 28, + "isWall": true + }, + { + "x": 28, + "y": 29, + "isWall": false + }, + { + "x": 28, + "y": 30, + "isWall": false + }, + { + "x": 28, + "y": 31, + "isWall": true + }, + { + "x": 28, + "y": 32, + "isWall": false + }, + { + "x": 28, + "y": 33, + "isWall": false + }, + { + "x": 28, + "y": 34, + "isWall": false + }, + { + "x": 28, + "y": 35, + "isWall": false + }, + { + "x": 28, + "y": 36, + "isWall": true + }, + { + "x": 28, + "y": 37, + "isWall": true + }, + { + "x": 28, + "y": 38, + "isWall": false + }, + { + "x": 28, + "y": 39, + "isWall": true + }, + { + "x": 28, + "y": 40, + "isWall": false + }, + { + "x": 28, + "y": 41, + "isWall": true + }, + { + "x": 28, + "y": 42, + "isWall": false + }, + { + "x": 28, + "y": 43, + "isWall": false + }, + { + "x": 28, + "y": 44, + "isWall": false + }, + { + "x": 28, + "y": 45, + "isWall": true + }, + { + "x": 28, + "y": 46, + "isWall": false + }, + { + "x": 28, + "y": 47, + "isWall": false + }, + { + "x": 28, + "y": 48, + "isWall": false + }, + { + "x": 28, + "y": 49, + "isWall": false + }, + { + "x": 28, + "y": 50, + "isWall": false + }, + { + "x": 28, + "y": 51, + "isWall": false + }, + { + "x": 28, + "y": 52, + "isWall": true + }, + { + "x": 28, + "y": 53, + "isWall": false + }, + { + "x": 28, + "y": 54, + "isWall": true + }, + { + "x": 28, + "y": 55, + "isWall": true + }, + { + "x": 28, + "y": 56, + "isWall": false + }, + { + "x": 28, + "y": 57, + "isWall": false + }, + { + "x": 28, + "y": 58, + "isWall": true + }, + { + "x": 28, + "y": 59, + "isWall": true + }, + { + "x": 28, + "y": 60, + "isWall": false + }, + { + "x": 28, + "y": 61, + "isWall": true + }, + { + "x": 28, + "y": 62, + "isWall": false + }, + { + "x": 28, + "y": 63, + "isWall": false + }, + { + "x": 28, + "y": 64, + "isWall": false + }, + { + "x": 28, + "y": 65, + "isWall": false + }, + { + "x": 28, + "y": 66, + "isWall": false + }, + { + "x": 28, + "y": 67, + "isWall": true + }, + { + "x": 28, + "y": 68, + "isWall": false + }, + { + "x": 28, + "y": 69, + "isWall": true + }, + { + "x": 28, + "y": 70, + "isWall": false + }, + { + "x": 28, + "y": 71, + "isWall": false + }, + { + "x": 28, + "y": 72, + "isWall": false + }, + { + "x": 28, + "y": 73, + "isWall": false + }, + { + "x": 28, + "y": 74, + "isWall": false + }, + { + "x": 28, + "y": 75, + "isWall": false + }, + { + "x": 28, + "y": 76, + "isWall": true + }, + { + "x": 28, + "y": 77, + "isWall": false + }, + { + "x": 28, + "y": 78, + "isWall": true + }, + { + "x": 28, + "y": 79, + "isWall": true + }, + { + "x": 28, + "y": 80, + "isWall": true + }, + { + "x": 28, + "y": 81, + "isWall": true + }, + { + "x": 28, + "y": 82, + "isWall": true + }, + { + "x": 28, + "y": 83, + "isWall": true + }, + { + "x": 28, + "y": 84, + "isWall": false + }, + { + "x": 28, + "y": 85, + "isWall": true + }, + { + "x": 28, + "y": 86, + "isWall": false + }, + { + "x": 28, + "y": 87, + "isWall": true + }, + { + "x": 28, + "y": 88, + "isWall": false + }, + { + "x": 28, + "y": 89, + "isWall": false + }, + { + "x": 28, + "y": 90, + "isWall": false + }, + { + "x": 28, + "y": 91, + "isWall": false + }, + { + "x": 28, + "y": 92, + "isWall": false + }, + { + "x": 28, + "y": 93, + "isWall": true + }, + { + "x": 28, + "y": 94, + "isWall": false + }, + { + "x": 28, + "y": 95, + "isWall": false + }, + { + "x": 28, + "y": 96, + "isWall": false + }, + { + "x": 28, + "y": 97, + "isWall": false + }, + { + "x": 28, + "y": 98, + "isWall": true + }, + { + "x": 28, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 29, + "y": 0, + "isWall": true + }, + { + "x": 29, + "y": 1, + "isWall": false + }, + { + "x": 29, + "y": 2, + "isWall": false + }, + { + "x": 29, + "y": 3, + "isWall": true + }, + { + "x": 29, + "y": 4, + "isWall": true + }, + { + "x": 29, + "y": 5, + "isWall": false + }, + { + "x": 29, + "y": 6, + "isWall": false + }, + { + "x": 29, + "y": 7, + "isWall": false + }, + { + "x": 29, + "y": 8, + "isWall": true + }, + { + "x": 29, + "y": 9, + "isWall": true + }, + { + "x": 29, + "y": 10, + "isWall": true + }, + { + "x": 29, + "y": 11, + "isWall": false + }, + { + "x": 29, + "y": 12, + "isWall": true + }, + { + "x": 29, + "y": 13, + "isWall": false + }, + { + "x": 29, + "y": 14, + "isWall": false + }, + { + "x": 29, + "y": 15, + "isWall": false + }, + { + "x": 29, + "y": 16, + "isWall": false + }, + { + "x": 29, + "y": 17, + "isWall": false + }, + { + "x": 29, + "y": 18, + "isWall": false + }, + { + "x": 29, + "y": 19, + "isWall": false + }, + { + "x": 29, + "y": 20, + "isWall": true + }, + { + "x": 29, + "y": 21, + "isWall": false + }, + { + "x": 29, + "y": 22, + "isWall": false + }, + { + "x": 29, + "y": 23, + "isWall": false + }, + { + "x": 29, + "y": 24, + "isWall": false + }, + { + "x": 29, + "y": 25, + "isWall": false + }, + { + "x": 29, + "y": 26, + "isWall": false + }, + { + "x": 29, + "y": 27, + "isWall": false + }, + { + "x": 29, + "y": 28, + "isWall": true + }, + { + "x": 29, + "y": 29, + "isWall": false + }, + { + "x": 29, + "y": 30, + "isWall": false + }, + { + "x": 29, + "y": 31, + "isWall": false + }, + { + "x": 29, + "y": 32, + "isWall": false + }, + { + "x": 29, + "y": 33, + "isWall": true + }, + { + "x": 29, + "y": 34, + "isWall": false + }, + { + "x": 29, + "y": 35, + "isWall": false + }, + { + "x": 29, + "y": 36, + "isWall": false + }, + { + "x": 29, + "y": 37, + "isWall": false + }, + { + "x": 29, + "y": 38, + "isWall": false + }, + { + "x": 29, + "y": 39, + "isWall": false + }, + { + "x": 29, + "y": 40, + "isWall": false + }, + { + "x": 29, + "y": 41, + "isWall": false + }, + { + "x": 29, + "y": 42, + "isWall": false + }, + { + "x": 29, + "y": 43, + "isWall": false + }, + { + "x": 29, + "y": 44, + "isWall": true + }, + { + "x": 29, + "y": 45, + "isWall": false + }, + { + "x": 29, + "y": 46, + "isWall": false + }, + { + "x": 29, + "y": 47, + "isWall": false + }, + { + "x": 29, + "y": 48, + "isWall": false + }, + { + "x": 29, + "y": 49, + "isWall": false + }, + { + "x": 29, + "y": 50, + "isWall": false + }, + { + "x": 29, + "y": 51, + "isWall": false + }, + { + "x": 29, + "y": 52, + "isWall": false + }, + { + "x": 29, + "y": 53, + "isWall": false + }, + { + "x": 29, + "y": 54, + "isWall": true + }, + { + "x": 29, + "y": 55, + "isWall": false + }, + { + "x": 29, + "y": 56, + "isWall": false + }, + { + "x": 29, + "y": 57, + "isWall": false + }, + { + "x": 29, + "y": 58, + "isWall": true + }, + { + "x": 29, + "y": 59, + "isWall": false + }, + { + "x": 29, + "y": 60, + "isWall": false + }, + { + "x": 29, + "y": 61, + "isWall": false + }, + { + "x": 29, + "y": 62, + "isWall": true + }, + { + "x": 29, + "y": 63, + "isWall": false + }, + { + "x": 29, + "y": 64, + "isWall": false + }, + { + "x": 29, + "y": 65, + "isWall": true + }, + { + "x": 29, + "y": 66, + "isWall": false + }, + { + "x": 29, + "y": 67, + "isWall": false + }, + { + "x": 29, + "y": 68, + "isWall": false + }, + { + "x": 29, + "y": 69, + "isWall": false + }, + { + "x": 29, + "y": 70, + "isWall": false + }, + { + "x": 29, + "y": 71, + "isWall": false + }, + { + "x": 29, + "y": 72, + "isWall": false + }, + { + "x": 29, + "y": 73, + "isWall": false + }, + { + "x": 29, + "y": 74, + "isWall": false + }, + { + "x": 29, + "y": 75, + "isWall": true + }, + { + "x": 29, + "y": 76, + "isWall": true + }, + { + "x": 29, + "y": 77, + "isWall": false + }, + { + "x": 29, + "y": 78, + "isWall": true + }, + { + "x": 29, + "y": 79, + "isWall": true + }, + { + "x": 29, + "y": 80, + "isWall": true + }, + { + "x": 29, + "y": 81, + "isWall": false + }, + { + "x": 29, + "y": 82, + "isWall": false + }, + { + "x": 29, + "y": 83, + "isWall": true + }, + { + "x": 29, + "y": 84, + "isWall": true + }, + { + "x": 29, + "y": 85, + "isWall": false + }, + { + "x": 29, + "y": 86, + "isWall": false + }, + { + "x": 29, + "y": 87, + "isWall": false + }, + { + "x": 29, + "y": 88, + "isWall": false + }, + { + "x": 29, + "y": 89, + "isWall": true + }, + { + "x": 29, + "y": 90, + "isWall": false + }, + { + "x": 29, + "y": 91, + "isWall": true + }, + { + "x": 29, + "y": 92, + "isWall": false + }, + { + "x": 29, + "y": 93, + "isWall": false + }, + { + "x": 29, + "y": 94, + "isWall": false + }, + { + "x": 29, + "y": 95, + "isWall": false + }, + { + "x": 29, + "y": 96, + "isWall": false + }, + { + "x": 29, + "y": 97, + "isWall": false + }, + { + "x": 29, + "y": 98, + "isWall": false + }, + { + "x": 29, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 30, + "y": 0, + "isWall": false + }, + { + "x": 30, + "y": 1, + "isWall": false + }, + { + "x": 30, + "y": 2, + "isWall": false + }, + { + "x": 30, + "y": 3, + "isWall": false + }, + { + "x": 30, + "y": 4, + "isWall": false + }, + { + "x": 30, + "y": 5, + "isWall": true + }, + { + "x": 30, + "y": 6, + "isWall": false + }, + { + "x": 30, + "y": 7, + "isWall": false + }, + { + "x": 30, + "y": 8, + "isWall": false + }, + { + "x": 30, + "y": 9, + "isWall": true + }, + { + "x": 30, + "y": 10, + "isWall": true + }, + { + "x": 30, + "y": 11, + "isWall": false + }, + { + "x": 30, + "y": 12, + "isWall": false + }, + { + "x": 30, + "y": 13, + "isWall": true + }, + { + "x": 30, + "y": 14, + "isWall": false + }, + { + "x": 30, + "y": 15, + "isWall": false + }, + { + "x": 30, + "y": 16, + "isWall": true + }, + { + "x": 30, + "y": 17, + "isWall": true + }, + { + "x": 30, + "y": 18, + "isWall": true + }, + { + "x": 30, + "y": 19, + "isWall": false + }, + { + "x": 30, + "y": 20, + "isWall": true + }, + { + "x": 30, + "y": 21, + "isWall": false + }, + { + "x": 30, + "y": 22, + "isWall": false + }, + { + "x": 30, + "y": 23, + "isWall": false + }, + { + "x": 30, + "y": 24, + "isWall": true + }, + { + "x": 30, + "y": 25, + "isWall": true + }, + { + "x": 30, + "y": 26, + "isWall": false + }, + { + "x": 30, + "y": 27, + "isWall": false + }, + { + "x": 30, + "y": 28, + "isWall": true + }, + { + "x": 30, + "y": 29, + "isWall": false + }, + { + "x": 30, + "y": 30, + "isWall": false + }, + { + "x": 30, + "y": 31, + "isWall": false + }, + { + "x": 30, + "y": 32, + "isWall": false + }, + { + "x": 30, + "y": 33, + "isWall": true + }, + { + "x": 30, + "y": 34, + "isWall": false + }, + { + "x": 30, + "y": 35, + "isWall": false + }, + { + "x": 30, + "y": 36, + "isWall": false + }, + { + "x": 30, + "y": 37, + "isWall": false + }, + { + "x": 30, + "y": 38, + "isWall": false + }, + { + "x": 30, + "y": 39, + "isWall": true + }, + { + "x": 30, + "y": 40, + "isWall": false + }, + { + "x": 30, + "y": 41, + "isWall": true + }, + { + "x": 30, + "y": 42, + "isWall": false + }, + { + "x": 30, + "y": 43, + "isWall": false + }, + { + "x": 30, + "y": 44, + "isWall": false + }, + { + "x": 30, + "y": 45, + "isWall": false + }, + { + "x": 30, + "y": 46, + "isWall": false + }, + { + "x": 30, + "y": 47, + "isWall": false + }, + { + "x": 30, + "y": 48, + "isWall": false + }, + { + "x": 30, + "y": 49, + "isWall": true + }, + { + "x": 30, + "y": 50, + "isWall": false + }, + { + "x": 30, + "y": 51, + "isWall": true + }, + { + "x": 30, + "y": 52, + "isWall": false + }, + { + "x": 30, + "y": 53, + "isWall": false + }, + { + "x": 30, + "y": 54, + "isWall": false + }, + { + "x": 30, + "y": 55, + "isWall": false + }, + { + "x": 30, + "y": 56, + "isWall": false + }, + { + "x": 30, + "y": 57, + "isWall": true + }, + { + "x": 30, + "y": 58, + "isWall": false + }, + { + "x": 30, + "y": 59, + "isWall": true + }, + { + "x": 30, + "y": 60, + "isWall": true + }, + { + "x": 30, + "y": 61, + "isWall": false + }, + { + "x": 30, + "y": 62, + "isWall": false + }, + { + "x": 30, + "y": 63, + "isWall": true + }, + { + "x": 30, + "y": 64, + "isWall": false + }, + { + "x": 30, + "y": 65, + "isWall": false + }, + { + "x": 30, + "y": 66, + "isWall": false + }, + { + "x": 30, + "y": 67, + "isWall": false + }, + { + "x": 30, + "y": 68, + "isWall": false + }, + { + "x": 30, + "y": 69, + "isWall": false + }, + { + "x": 30, + "y": 70, + "isWall": true + }, + { + "x": 30, + "y": 71, + "isWall": true + }, + { + "x": 30, + "y": 72, + "isWall": false + }, + { + "x": 30, + "y": 73, + "isWall": false + }, + { + "x": 30, + "y": 74, + "isWall": false + }, + { + "x": 30, + "y": 75, + "isWall": false + }, + { + "x": 30, + "y": 76, + "isWall": false + }, + { + "x": 30, + "y": 77, + "isWall": false + }, + { + "x": 30, + "y": 78, + "isWall": false + }, + { + "x": 30, + "y": 79, + "isWall": false + }, + { + "x": 30, + "y": 80, + "isWall": false + }, + { + "x": 30, + "y": 81, + "isWall": false + }, + { + "x": 30, + "y": 82, + "isWall": false + }, + { + "x": 30, + "y": 83, + "isWall": false + }, + { + "x": 30, + "y": 84, + "isWall": false + }, + { + "x": 30, + "y": 85, + "isWall": true + }, + { + "x": 30, + "y": 86, + "isWall": false + }, + { + "x": 30, + "y": 87, + "isWall": true + }, + { + "x": 30, + "y": 88, + "isWall": true + }, + { + "x": 30, + "y": 89, + "isWall": false + }, + { + "x": 30, + "y": 90, + "isWall": false + }, + { + "x": 30, + "y": 91, + "isWall": true + }, + { + "x": 30, + "y": 92, + "isWall": false + }, + { + "x": 30, + "y": 93, + "isWall": false + }, + { + "x": 30, + "y": 94, + "isWall": true + }, + { + "x": 30, + "y": 95, + "isWall": false + }, + { + "x": 30, + "y": 96, + "isWall": true + }, + { + "x": 30, + "y": 97, + "isWall": false + }, + { + "x": 30, + "y": 98, + "isWall": false + }, + { + "x": 30, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 31, + "y": 0, + "isWall": false + }, + { + "x": 31, + "y": 1, + "isWall": false + }, + { + "x": 31, + "y": 2, + "isWall": false + }, + { + "x": 31, + "y": 3, + "isWall": false + }, + { + "x": 31, + "y": 4, + "isWall": false + }, + { + "x": 31, + "y": 5, + "isWall": false + }, + { + "x": 31, + "y": 6, + "isWall": false + }, + { + "x": 31, + "y": 7, + "isWall": false + }, + { + "x": 31, + "y": 8, + "isWall": false + }, + { + "x": 31, + "y": 9, + "isWall": false + }, + { + "x": 31, + "y": 10, + "isWall": true + }, + { + "x": 31, + "y": 11, + "isWall": true + }, + { + "x": 31, + "y": 12, + "isWall": true + }, + { + "x": 31, + "y": 13, + "isWall": false + }, + { + "x": 31, + "y": 14, + "isWall": true + }, + { + "x": 31, + "y": 15, + "isWall": false + }, + { + "x": 31, + "y": 16, + "isWall": true + }, + { + "x": 31, + "y": 17, + "isWall": false + }, + { + "x": 31, + "y": 18, + "isWall": true + }, + { + "x": 31, + "y": 19, + "isWall": false + }, + { + "x": 31, + "y": 20, + "isWall": true + }, + { + "x": 31, + "y": 21, + "isWall": false + }, + { + "x": 31, + "y": 22, + "isWall": false + }, + { + "x": 31, + "y": 23, + "isWall": false + }, + { + "x": 31, + "y": 24, + "isWall": false + }, + { + "x": 31, + "y": 25, + "isWall": true + }, + { + "x": 31, + "y": 26, + "isWall": true + }, + { + "x": 31, + "y": 27, + "isWall": true + }, + { + "x": 31, + "y": 28, + "isWall": false + }, + { + "x": 31, + "y": 29, + "isWall": false + }, + { + "x": 31, + "y": 30, + "isWall": true + }, + { + "x": 31, + "y": 31, + "isWall": true + }, + { + "x": 31, + "y": 32, + "isWall": false + }, + { + "x": 31, + "y": 33, + "isWall": true + }, + { + "x": 31, + "y": 34, + "isWall": false + }, + { + "x": 31, + "y": 35, + "isWall": true + }, + { + "x": 31, + "y": 36, + "isWall": false + }, + { + "x": 31, + "y": 37, + "isWall": false + }, + { + "x": 31, + "y": 38, + "isWall": false + }, + { + "x": 31, + "y": 39, + "isWall": false + }, + { + "x": 31, + "y": 40, + "isWall": false + }, + { + "x": 31, + "y": 41, + "isWall": false + }, + { + "x": 31, + "y": 42, + "isWall": false + }, + { + "x": 31, + "y": 43, + "isWall": true + }, + { + "x": 31, + "y": 44, + "isWall": false + }, + { + "x": 31, + "y": 45, + "isWall": true + }, + { + "x": 31, + "y": 46, + "isWall": false + }, + { + "x": 31, + "y": 47, + "isWall": false + }, + { + "x": 31, + "y": 48, + "isWall": true + }, + { + "x": 31, + "y": 49, + "isWall": false + }, + { + "x": 31, + "y": 50, + "isWall": false + }, + { + "x": 31, + "y": 51, + "isWall": false + }, + { + "x": 31, + "y": 52, + "isWall": false + }, + { + "x": 31, + "y": 53, + "isWall": true + }, + { + "x": 31, + "y": 54, + "isWall": false + }, + { + "x": 31, + "y": 55, + "isWall": false + }, + { + "x": 31, + "y": 56, + "isWall": true + }, + { + "x": 31, + "y": 57, + "isWall": false + }, + { + "x": 31, + "y": 58, + "isWall": true + }, + { + "x": 31, + "y": 59, + "isWall": false + }, + { + "x": 31, + "y": 60, + "isWall": false + }, + { + "x": 31, + "y": 61, + "isWall": false + }, + { + "x": 31, + "y": 62, + "isWall": false + }, + { + "x": 31, + "y": 63, + "isWall": false + }, + { + "x": 31, + "y": 64, + "isWall": false + }, + { + "x": 31, + "y": 65, + "isWall": false + }, + { + "x": 31, + "y": 66, + "isWall": true + }, + { + "x": 31, + "y": 67, + "isWall": false + }, + { + "x": 31, + "y": 68, + "isWall": true + }, + { + "x": 31, + "y": 69, + "isWall": false + }, + { + "x": 31, + "y": 70, + "isWall": true + }, + { + "x": 31, + "y": 71, + "isWall": false + }, + { + "x": 31, + "y": 72, + "isWall": false + }, + { + "x": 31, + "y": 73, + "isWall": true + }, + { + "x": 31, + "y": 74, + "isWall": false + }, + { + "x": 31, + "y": 75, + "isWall": false + }, + { + "x": 31, + "y": 76, + "isWall": false + }, + { + "x": 31, + "y": 77, + "isWall": true + }, + { + "x": 31, + "y": 78, + "isWall": false + }, + { + "x": 31, + "y": 79, + "isWall": false + }, + { + "x": 31, + "y": 80, + "isWall": false + }, + { + "x": 31, + "y": 81, + "isWall": false + }, + { + "x": 31, + "y": 82, + "isWall": false + }, + { + "x": 31, + "y": 83, + "isWall": false + }, + { + "x": 31, + "y": 84, + "isWall": true + }, + { + "x": 31, + "y": 85, + "isWall": false + }, + { + "x": 31, + "y": 86, + "isWall": false + }, + { + "x": 31, + "y": 87, + "isWall": false + }, + { + "x": 31, + "y": 88, + "isWall": true + }, + { + "x": 31, + "y": 89, + "isWall": true + }, + { + "x": 31, + "y": 90, + "isWall": false + }, + { + "x": 31, + "y": 91, + "isWall": false + }, + { + "x": 31, + "y": 92, + "isWall": false + }, + { + "x": 31, + "y": 93, + "isWall": false + }, + { + "x": 31, + "y": 94, + "isWall": false + }, + { + "x": 31, + "y": 95, + "isWall": false + }, + { + "x": 31, + "y": 96, + "isWall": false + }, + { + "x": 31, + "y": 97, + "isWall": false + }, + { + "x": 31, + "y": 98, + "isWall": true + }, + { + "x": 31, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 32, + "y": 0, + "isWall": false + }, + { + "x": 32, + "y": 1, + "isWall": false + }, + { + "x": 32, + "y": 2, + "isWall": true + }, + { + "x": 32, + "y": 3, + "isWall": true + }, + { + "x": 32, + "y": 4, + "isWall": false + }, + { + "x": 32, + "y": 5, + "isWall": true + }, + { + "x": 32, + "y": 6, + "isWall": false + }, + { + "x": 32, + "y": 7, + "isWall": false + }, + { + "x": 32, + "y": 8, + "isWall": false + }, + { + "x": 32, + "y": 9, + "isWall": false + }, + { + "x": 32, + "y": 10, + "isWall": false + }, + { + "x": 32, + "y": 11, + "isWall": true + }, + { + "x": 32, + "y": 12, + "isWall": false + }, + { + "x": 32, + "y": 13, + "isWall": false + }, + { + "x": 32, + "y": 14, + "isWall": false + }, + { + "x": 32, + "y": 15, + "isWall": false + }, + { + "x": 32, + "y": 16, + "isWall": false + }, + { + "x": 32, + "y": 17, + "isWall": false + }, + { + "x": 32, + "y": 18, + "isWall": true + }, + { + "x": 32, + "y": 19, + "isWall": false + }, + { + "x": 32, + "y": 20, + "isWall": false + }, + { + "x": 32, + "y": 21, + "isWall": false + }, + { + "x": 32, + "y": 22, + "isWall": false + }, + { + "x": 32, + "y": 23, + "isWall": false + }, + { + "x": 32, + "y": 24, + "isWall": false + }, + { + "x": 32, + "y": 25, + "isWall": false + }, + { + "x": 32, + "y": 26, + "isWall": false + }, + { + "x": 32, + "y": 27, + "isWall": true + }, + { + "x": 32, + "y": 28, + "isWall": false + }, + { + "x": 32, + "y": 29, + "isWall": false + }, + { + "x": 32, + "y": 30, + "isWall": false + }, + { + "x": 32, + "y": 31, + "isWall": false + }, + { + "x": 32, + "y": 32, + "isWall": false + }, + { + "x": 32, + "y": 33, + "isWall": false + }, + { + "x": 32, + "y": 34, + "isWall": false + }, + { + "x": 32, + "y": 35, + "isWall": false + }, + { + "x": 32, + "y": 36, + "isWall": false + }, + { + "x": 32, + "y": 37, + "isWall": true + }, + { + "x": 32, + "y": 38, + "isWall": true + }, + { + "x": 32, + "y": 39, + "isWall": false + }, + { + "x": 32, + "y": 40, + "isWall": false + }, + { + "x": 32, + "y": 41, + "isWall": true + }, + { + "x": 32, + "y": 42, + "isWall": false + }, + { + "x": 32, + "y": 43, + "isWall": true + }, + { + "x": 32, + "y": 44, + "isWall": false + }, + { + "x": 32, + "y": 45, + "isWall": false + }, + { + "x": 32, + "y": 46, + "isWall": false + }, + { + "x": 32, + "y": 47, + "isWall": false + }, + { + "x": 32, + "y": 48, + "isWall": false + }, + { + "x": 32, + "y": 49, + "isWall": false + }, + { + "x": 32, + "y": 50, + "isWall": false + }, + { + "x": 32, + "y": 51, + "isWall": false + }, + { + "x": 32, + "y": 52, + "isWall": false + }, + { + "x": 32, + "y": 53, + "isWall": true + }, + { + "x": 32, + "y": 54, + "isWall": false + }, + { + "x": 32, + "y": 55, + "isWall": false + }, + { + "x": 32, + "y": 56, + "isWall": true + }, + { + "x": 32, + "y": 57, + "isWall": false + }, + { + "x": 32, + "y": 58, + "isWall": false + }, + { + "x": 32, + "y": 59, + "isWall": true + }, + { + "x": 32, + "y": 60, + "isWall": true + }, + { + "x": 32, + "y": 61, + "isWall": false + }, + { + "x": 32, + "y": 62, + "isWall": false + }, + { + "x": 32, + "y": 63, + "isWall": true + }, + { + "x": 32, + "y": 64, + "isWall": false + }, + { + "x": 32, + "y": 65, + "isWall": false + }, + { + "x": 32, + "y": 66, + "isWall": true + }, + { + "x": 32, + "y": 67, + "isWall": false + }, + { + "x": 32, + "y": 68, + "isWall": true + }, + { + "x": 32, + "y": 69, + "isWall": true + }, + { + "x": 32, + "y": 70, + "isWall": true + }, + { + "x": 32, + "y": 71, + "isWall": false + }, + { + "x": 32, + "y": 72, + "isWall": false + }, + { + "x": 32, + "y": 73, + "isWall": false + }, + { + "x": 32, + "y": 74, + "isWall": false + }, + { + "x": 32, + "y": 75, + "isWall": false + }, + { + "x": 32, + "y": 76, + "isWall": false + }, + { + "x": 32, + "y": 77, + "isWall": false + }, + { + "x": 32, + "y": 78, + "isWall": false + }, + { + "x": 32, + "y": 79, + "isWall": false + }, + { + "x": 32, + "y": 80, + "isWall": true + }, + { + "x": 32, + "y": 81, + "isWall": false + }, + { + "x": 32, + "y": 82, + "isWall": true + }, + { + "x": 32, + "y": 83, + "isWall": false + }, + { + "x": 32, + "y": 84, + "isWall": false + }, + { + "x": 32, + "y": 85, + "isWall": true + }, + { + "x": 32, + "y": 86, + "isWall": false + }, + { + "x": 32, + "y": 87, + "isWall": true + }, + { + "x": 32, + "y": 88, + "isWall": true + }, + { + "x": 32, + "y": 89, + "isWall": true + }, + { + "x": 32, + "y": 90, + "isWall": false + }, + { + "x": 32, + "y": 91, + "isWall": true + }, + { + "x": 32, + "y": 92, + "isWall": false + }, + { + "x": 32, + "y": 93, + "isWall": true + }, + { + "x": 32, + "y": 94, + "isWall": false + }, + { + "x": 32, + "y": 95, + "isWall": true + }, + { + "x": 32, + "y": 96, + "isWall": false + }, + { + "x": 32, + "y": 97, + "isWall": false + }, + { + "x": 32, + "y": 98, + "isWall": true + }, + { + "x": 32, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 33, + "y": 0, + "isWall": false + }, + { + "x": 33, + "y": 1, + "isWall": true + }, + { + "x": 33, + "y": 2, + "isWall": false + }, + { + "x": 33, + "y": 3, + "isWall": false + }, + { + "x": 33, + "y": 4, + "isWall": false + }, + { + "x": 33, + "y": 5, + "isWall": true + }, + { + "x": 33, + "y": 6, + "isWall": false + }, + { + "x": 33, + "y": 7, + "isWall": false + }, + { + "x": 33, + "y": 8, + "isWall": false + }, + { + "x": 33, + "y": 9, + "isWall": false + }, + { + "x": 33, + "y": 10, + "isWall": false + }, + { + "x": 33, + "y": 11, + "isWall": true + }, + { + "x": 33, + "y": 12, + "isWall": true + }, + { + "x": 33, + "y": 13, + "isWall": true + }, + { + "x": 33, + "y": 14, + "isWall": false + }, + { + "x": 33, + "y": 15, + "isWall": true + }, + { + "x": 33, + "y": 16, + "isWall": false + }, + { + "x": 33, + "y": 17, + "isWall": false + }, + { + "x": 33, + "y": 18, + "isWall": true + }, + { + "x": 33, + "y": 19, + "isWall": true + }, + { + "x": 33, + "y": 20, + "isWall": false + }, + { + "x": 33, + "y": 21, + "isWall": false + }, + { + "x": 33, + "y": 22, + "isWall": false + }, + { + "x": 33, + "y": 23, + "isWall": false + }, + { + "x": 33, + "y": 24, + "isWall": false + }, + { + "x": 33, + "y": 25, + "isWall": false + }, + { + "x": 33, + "y": 26, + "isWall": true + }, + { + "x": 33, + "y": 27, + "isWall": false + }, + { + "x": 33, + "y": 28, + "isWall": false + }, + { + "x": 33, + "y": 29, + "isWall": false + }, + { + "x": 33, + "y": 30, + "isWall": true + }, + { + "x": 33, + "y": 31, + "isWall": false + }, + { + "x": 33, + "y": 32, + "isWall": false + }, + { + "x": 33, + "y": 33, + "isWall": false + }, + { + "x": 33, + "y": 34, + "isWall": false + }, + { + "x": 33, + "y": 35, + "isWall": true + }, + { + "x": 33, + "y": 36, + "isWall": false + }, + { + "x": 33, + "y": 37, + "isWall": false + }, + { + "x": 33, + "y": 38, + "isWall": false + }, + { + "x": 33, + "y": 39, + "isWall": true + }, + { + "x": 33, + "y": 40, + "isWall": false + }, + { + "x": 33, + "y": 41, + "isWall": true + }, + { + "x": 33, + "y": 42, + "isWall": false + }, + { + "x": 33, + "y": 43, + "isWall": false + }, + { + "x": 33, + "y": 44, + "isWall": true + }, + { + "x": 33, + "y": 45, + "isWall": false + }, + { + "x": 33, + "y": 46, + "isWall": false + }, + { + "x": 33, + "y": 47, + "isWall": false + }, + { + "x": 33, + "y": 48, + "isWall": true + }, + { + "x": 33, + "y": 49, + "isWall": false + }, + { + "x": 33, + "y": 50, + "isWall": false + }, + { + "x": 33, + "y": 51, + "isWall": true + }, + { + "x": 33, + "y": 52, + "isWall": true + }, + { + "x": 33, + "y": 53, + "isWall": false + }, + { + "x": 33, + "y": 54, + "isWall": false + }, + { + "x": 33, + "y": 55, + "isWall": true + }, + { + "x": 33, + "y": 56, + "isWall": false + }, + { + "x": 33, + "y": 57, + "isWall": true + }, + { + "x": 33, + "y": 58, + "isWall": true + }, + { + "x": 33, + "y": 59, + "isWall": false + }, + { + "x": 33, + "y": 60, + "isWall": false + }, + { + "x": 33, + "y": 61, + "isWall": false + }, + { + "x": 33, + "y": 62, + "isWall": true + }, + { + "x": 33, + "y": 63, + "isWall": true + }, + { + "x": 33, + "y": 64, + "isWall": false + }, + { + "x": 33, + "y": 65, + "isWall": false + }, + { + "x": 33, + "y": 66, + "isWall": true + }, + { + "x": 33, + "y": 67, + "isWall": true + }, + { + "x": 33, + "y": 68, + "isWall": false + }, + { + "x": 33, + "y": 69, + "isWall": false + }, + { + "x": 33, + "y": 70, + "isWall": false + }, + { + "x": 33, + "y": 71, + "isWall": false + }, + { + "x": 33, + "y": 72, + "isWall": false + }, + { + "x": 33, + "y": 73, + "isWall": true + }, + { + "x": 33, + "y": 74, + "isWall": true + }, + { + "x": 33, + "y": 75, + "isWall": true + }, + { + "x": 33, + "y": 76, + "isWall": false + }, + { + "x": 33, + "y": 77, + "isWall": false + }, + { + "x": 33, + "y": 78, + "isWall": false + }, + { + "x": 33, + "y": 79, + "isWall": true + }, + { + "x": 33, + "y": 80, + "isWall": true + }, + { + "x": 33, + "y": 81, + "isWall": false + }, + { + "x": 33, + "y": 82, + "isWall": false + }, + { + "x": 33, + "y": 83, + "isWall": false + }, + { + "x": 33, + "y": 84, + "isWall": false + }, + { + "x": 33, + "y": 85, + "isWall": false + }, + { + "x": 33, + "y": 86, + "isWall": false + }, + { + "x": 33, + "y": 87, + "isWall": false + }, + { + "x": 33, + "y": 88, + "isWall": false + }, + { + "x": 33, + "y": 89, + "isWall": true + }, + { + "x": 33, + "y": 90, + "isWall": false + }, + { + "x": 33, + "y": 91, + "isWall": false + }, + { + "x": 33, + "y": 92, + "isWall": false + }, + { + "x": 33, + "y": 93, + "isWall": false + }, + { + "x": 33, + "y": 94, + "isWall": false + }, + { + "x": 33, + "y": 95, + "isWall": false + }, + { + "x": 33, + "y": 96, + "isWall": false + }, + { + "x": 33, + "y": 97, + "isWall": false + }, + { + "x": 33, + "y": 98, + "isWall": true + }, + { + "x": 33, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 34, + "y": 0, + "isWall": false + }, + { + "x": 34, + "y": 1, + "isWall": true + }, + { + "x": 34, + "y": 2, + "isWall": true + }, + { + "x": 34, + "y": 3, + "isWall": false + }, + { + "x": 34, + "y": 4, + "isWall": false + }, + { + "x": 34, + "y": 5, + "isWall": false + }, + { + "x": 34, + "y": 6, + "isWall": false + }, + { + "x": 34, + "y": 7, + "isWall": true + }, + { + "x": 34, + "y": 8, + "isWall": false + }, + { + "x": 34, + "y": 9, + "isWall": false + }, + { + "x": 34, + "y": 10, + "isWall": false + }, + { + "x": 34, + "y": 11, + "isWall": false + }, + { + "x": 34, + "y": 12, + "isWall": true + }, + { + "x": 34, + "y": 13, + "isWall": false + }, + { + "x": 34, + "y": 14, + "isWall": true + }, + { + "x": 34, + "y": 15, + "isWall": false + }, + { + "x": 34, + "y": 16, + "isWall": false + }, + { + "x": 34, + "y": 17, + "isWall": false + }, + { + "x": 34, + "y": 18, + "isWall": false + }, + { + "x": 34, + "y": 19, + "isWall": true + }, + { + "x": 34, + "y": 20, + "isWall": false + }, + { + "x": 34, + "y": 21, + "isWall": false + }, + { + "x": 34, + "y": 22, + "isWall": false + }, + { + "x": 34, + "y": 23, + "isWall": false + }, + { + "x": 34, + "y": 24, + "isWall": true + }, + { + "x": 34, + "y": 25, + "isWall": false + }, + { + "x": 34, + "y": 26, + "isWall": true + }, + { + "x": 34, + "y": 27, + "isWall": false + }, + { + "x": 34, + "y": 28, + "isWall": true + }, + { + "x": 34, + "y": 29, + "isWall": true + }, + { + "x": 34, + "y": 30, + "isWall": true + }, + { + "x": 34, + "y": 31, + "isWall": false + }, + { + "x": 34, + "y": 32, + "isWall": false + }, + { + "x": 34, + "y": 33, + "isWall": false + }, + { + "x": 34, + "y": 34, + "isWall": false + }, + { + "x": 34, + "y": 35, + "isWall": false + }, + { + "x": 34, + "y": 36, + "isWall": false + }, + { + "x": 34, + "y": 37, + "isWall": false + }, + { + "x": 34, + "y": 38, + "isWall": false + }, + { + "x": 34, + "y": 39, + "isWall": false + }, + { + "x": 34, + "y": 40, + "isWall": false + }, + { + "x": 34, + "y": 41, + "isWall": true + }, + { + "x": 34, + "y": 42, + "isWall": false + }, + { + "x": 34, + "y": 43, + "isWall": true + }, + { + "x": 34, + "y": 44, + "isWall": false + }, + { + "x": 34, + "y": 45, + "isWall": true + }, + { + "x": 34, + "y": 46, + "isWall": false + }, + { + "x": 34, + "y": 47, + "isWall": false + }, + { + "x": 34, + "y": 48, + "isWall": false + }, + { + "x": 34, + "y": 49, + "isWall": true + }, + { + "x": 34, + "y": 50, + "isWall": false + }, + { + "x": 34, + "y": 51, + "isWall": false + }, + { + "x": 34, + "y": 52, + "isWall": false + }, + { + "x": 34, + "y": 53, + "isWall": false + }, + { + "x": 34, + "y": 54, + "isWall": false + }, + { + "x": 34, + "y": 55, + "isWall": false + }, + { + "x": 34, + "y": 56, + "isWall": false + }, + { + "x": 34, + "y": 57, + "isWall": true + }, + { + "x": 34, + "y": 58, + "isWall": false + }, + { + "x": 34, + "y": 59, + "isWall": false + }, + { + "x": 34, + "y": 60, + "isWall": false + }, + { + "x": 34, + "y": 61, + "isWall": true + }, + { + "x": 34, + "y": 62, + "isWall": false + }, + { + "x": 34, + "y": 63, + "isWall": true + }, + { + "x": 34, + "y": 64, + "isWall": true + }, + { + "x": 34, + "y": 65, + "isWall": false + }, + { + "x": 34, + "y": 66, + "isWall": false + }, + { + "x": 34, + "y": 67, + "isWall": false + }, + { + "x": 34, + "y": 68, + "isWall": false + }, + { + "x": 34, + "y": 69, + "isWall": false + }, + { + "x": 34, + "y": 70, + "isWall": true + }, + { + "x": 34, + "y": 71, + "isWall": false + }, + { + "x": 34, + "y": 72, + "isWall": false + }, + { + "x": 34, + "y": 73, + "isWall": false + }, + { + "x": 34, + "y": 74, + "isWall": false + }, + { + "x": 34, + "y": 75, + "isWall": false + }, + { + "x": 34, + "y": 76, + "isWall": false + }, + { + "x": 34, + "y": 77, + "isWall": false + }, + { + "x": 34, + "y": 78, + "isWall": false + }, + { + "x": 34, + "y": 79, + "isWall": false + }, + { + "x": 34, + "y": 80, + "isWall": false + }, + { + "x": 34, + "y": 81, + "isWall": false + }, + { + "x": 34, + "y": 82, + "isWall": false + }, + { + "x": 34, + "y": 83, + "isWall": true + }, + { + "x": 34, + "y": 84, + "isWall": false + }, + { + "x": 34, + "y": 85, + "isWall": true + }, + { + "x": 34, + "y": 86, + "isWall": false + }, + { + "x": 34, + "y": 87, + "isWall": true + }, + { + "x": 34, + "y": 88, + "isWall": false + }, + { + "x": 34, + "y": 89, + "isWall": true + }, + { + "x": 34, + "y": 90, + "isWall": true + }, + { + "x": 34, + "y": 91, + "isWall": true + }, + { + "x": 34, + "y": 92, + "isWall": false + }, + { + "x": 34, + "y": 93, + "isWall": false + }, + { + "x": 34, + "y": 94, + "isWall": false + }, + { + "x": 34, + "y": 95, + "isWall": true + }, + { + "x": 34, + "y": 96, + "isWall": false + }, + { + "x": 34, + "y": 97, + "isWall": false + }, + { + "x": 34, + "y": 98, + "isWall": false + }, + { + "x": 34, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 35, + "y": 0, + "isWall": false + }, + { + "x": 35, + "y": 1, + "isWall": false + }, + { + "x": 35, + "y": 2, + "isWall": true + }, + { + "x": 35, + "y": 3, + "isWall": false + }, + { + "x": 35, + "y": 4, + "isWall": false + }, + { + "x": 35, + "y": 5, + "isWall": false + }, + { + "x": 35, + "y": 6, + "isWall": false + }, + { + "x": 35, + "y": 7, + "isWall": false + }, + { + "x": 35, + "y": 8, + "isWall": false + }, + { + "x": 35, + "y": 9, + "isWall": false + }, + { + "x": 35, + "y": 10, + "isWall": false + }, + { + "x": 35, + "y": 11, + "isWall": true + }, + { + "x": 35, + "y": 12, + "isWall": false + }, + { + "x": 35, + "y": 13, + "isWall": false + }, + { + "x": 35, + "y": 14, + "isWall": false + }, + { + "x": 35, + "y": 15, + "isWall": false + }, + { + "x": 35, + "y": 16, + "isWall": false + }, + { + "x": 35, + "y": 17, + "isWall": false + }, + { + "x": 35, + "y": 18, + "isWall": true + }, + { + "x": 35, + "y": 19, + "isWall": true + }, + { + "x": 35, + "y": 20, + "isWall": false + }, + { + "x": 35, + "y": 21, + "isWall": false + }, + { + "x": 35, + "y": 22, + "isWall": true + }, + { + "x": 35, + "y": 23, + "isWall": false + }, + { + "x": 35, + "y": 24, + "isWall": true + }, + { + "x": 35, + "y": 25, + "isWall": false + }, + { + "x": 35, + "y": 26, + "isWall": true + }, + { + "x": 35, + "y": 27, + "isWall": false + }, + { + "x": 35, + "y": 28, + "isWall": true + }, + { + "x": 35, + "y": 29, + "isWall": false + }, + { + "x": 35, + "y": 30, + "isWall": true + }, + { + "x": 35, + "y": 31, + "isWall": false + }, + { + "x": 35, + "y": 32, + "isWall": false + }, + { + "x": 35, + "y": 33, + "isWall": false + }, + { + "x": 35, + "y": 34, + "isWall": true + }, + { + "x": 35, + "y": 35, + "isWall": false + }, + { + "x": 35, + "y": 36, + "isWall": true + }, + { + "x": 35, + "y": 37, + "isWall": false + }, + { + "x": 35, + "y": 38, + "isWall": true + }, + { + "x": 35, + "y": 39, + "isWall": false + }, + { + "x": 35, + "y": 40, + "isWall": false + }, + { + "x": 35, + "y": 41, + "isWall": false + }, + { + "x": 35, + "y": 42, + "isWall": false + }, + { + "x": 35, + "y": 43, + "isWall": true + }, + { + "x": 35, + "y": 44, + "isWall": false + }, + { + "x": 35, + "y": 45, + "isWall": false + }, + { + "x": 35, + "y": 46, + "isWall": false + }, + { + "x": 35, + "y": 47, + "isWall": false + }, + { + "x": 35, + "y": 48, + "isWall": false + }, + { + "x": 35, + "y": 49, + "isWall": true + }, + { + "x": 35, + "y": 50, + "isWall": false + }, + { + "x": 35, + "y": 51, + "isWall": false + }, + { + "x": 35, + "y": 52, + "isWall": false + }, + { + "x": 35, + "y": 53, + "isWall": false + }, + { + "x": 35, + "y": 54, + "isWall": false + }, + { + "x": 35, + "y": 55, + "isWall": false + }, + { + "x": 35, + "y": 56, + "isWall": false + }, + { + "x": 35, + "y": 57, + "isWall": false + }, + { + "x": 35, + "y": 58, + "isWall": true + }, + { + "x": 35, + "y": 59, + "isWall": false + }, + { + "x": 35, + "y": 60, + "isWall": false + }, + { + "x": 35, + "y": 61, + "isWall": false + }, + { + "x": 35, + "y": 62, + "isWall": false + }, + { + "x": 35, + "y": 63, + "isWall": true + }, + { + "x": 35, + "y": 64, + "isWall": true + }, + { + "x": 35, + "y": 65, + "isWall": true + }, + { + "x": 35, + "y": 66, + "isWall": false + }, + { + "x": 35, + "y": 67, + "isWall": true + }, + { + "x": 35, + "y": 68, + "isWall": false + }, + { + "x": 35, + "y": 69, + "isWall": false + }, + { + "x": 35, + "y": 70, + "isWall": false + }, + { + "x": 35, + "y": 71, + "isWall": false + }, + { + "x": 35, + "y": 72, + "isWall": false + }, + { + "x": 35, + "y": 73, + "isWall": false + }, + { + "x": 35, + "y": 74, + "isWall": false + }, + { + "x": 35, + "y": 75, + "isWall": false + }, + { + "x": 35, + "y": 76, + "isWall": false + }, + { + "x": 35, + "y": 77, + "isWall": false + }, + { + "x": 35, + "y": 78, + "isWall": false + }, + { + "x": 35, + "y": 79, + "isWall": false + }, + { + "x": 35, + "y": 80, + "isWall": false + }, + { + "x": 35, + "y": 81, + "isWall": false + }, + { + "x": 35, + "y": 82, + "isWall": false + }, + { + "x": 35, + "y": 83, + "isWall": false + }, + { + "x": 35, + "y": 84, + "isWall": false + }, + { + "x": 35, + "y": 85, + "isWall": false + }, + { + "x": 35, + "y": 86, + "isWall": false + }, + { + "x": 35, + "y": 87, + "isWall": false + }, + { + "x": 35, + "y": 88, + "isWall": true + }, + { + "x": 35, + "y": 89, + "isWall": false + }, + { + "x": 35, + "y": 90, + "isWall": false + }, + { + "x": 35, + "y": 91, + "isWall": false + }, + { + "x": 35, + "y": 92, + "isWall": false + }, + { + "x": 35, + "y": 93, + "isWall": false + }, + { + "x": 35, + "y": 94, + "isWall": true + }, + { + "x": 35, + "y": 95, + "isWall": false + }, + { + "x": 35, + "y": 96, + "isWall": true + }, + { + "x": 35, + "y": 97, + "isWall": true + }, + { + "x": 35, + "y": 98, + "isWall": false + }, + { + "x": 35, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 36, + "y": 0, + "isWall": false + }, + { + "x": 36, + "y": 1, + "isWall": false + }, + { + "x": 36, + "y": 2, + "isWall": false + }, + { + "x": 36, + "y": 3, + "isWall": true + }, + { + "x": 36, + "y": 4, + "isWall": false + }, + { + "x": 36, + "y": 5, + "isWall": false + }, + { + "x": 36, + "y": 6, + "isWall": false + }, + { + "x": 36, + "y": 7, + "isWall": false + }, + { + "x": 36, + "y": 8, + "isWall": true + }, + { + "x": 36, + "y": 9, + "isWall": true + }, + { + "x": 36, + "y": 10, + "isWall": false + }, + { + "x": 36, + "y": 11, + "isWall": false + }, + { + "x": 36, + "y": 12, + "isWall": false + }, + { + "x": 36, + "y": 13, + "isWall": false + }, + { + "x": 36, + "y": 14, + "isWall": false + }, + { + "x": 36, + "y": 15, + "isWall": false + }, + { + "x": 36, + "y": 16, + "isWall": false + }, + { + "x": 36, + "y": 17, + "isWall": true + }, + { + "x": 36, + "y": 18, + "isWall": false + }, + { + "x": 36, + "y": 19, + "isWall": false + }, + { + "x": 36, + "y": 20, + "isWall": false + }, + { + "x": 36, + "y": 21, + "isWall": true + }, + { + "x": 36, + "y": 22, + "isWall": true + }, + { + "x": 36, + "y": 23, + "isWall": false + }, + { + "x": 36, + "y": 24, + "isWall": true + }, + { + "x": 36, + "y": 25, + "isWall": false + }, + { + "x": 36, + "y": 26, + "isWall": false + }, + { + "x": 36, + "y": 27, + "isWall": false + }, + { + "x": 36, + "y": 28, + "isWall": true + }, + { + "x": 36, + "y": 29, + "isWall": true + }, + { + "x": 36, + "y": 30, + "isWall": true + }, + { + "x": 36, + "y": 31, + "isWall": false + }, + { + "x": 36, + "y": 32, + "isWall": true + }, + { + "x": 36, + "y": 33, + "isWall": false + }, + { + "x": 36, + "y": 34, + "isWall": false + }, + { + "x": 36, + "y": 35, + "isWall": false + }, + { + "x": 36, + "y": 36, + "isWall": true + }, + { + "x": 36, + "y": 37, + "isWall": true + }, + { + "x": 36, + "y": 38, + "isWall": false + }, + { + "x": 36, + "y": 39, + "isWall": false + }, + { + "x": 36, + "y": 40, + "isWall": true + }, + { + "x": 36, + "y": 41, + "isWall": false + }, + { + "x": 36, + "y": 42, + "isWall": false + }, + { + "x": 36, + "y": 43, + "isWall": true + }, + { + "x": 36, + "y": 44, + "isWall": false + }, + { + "x": 36, + "y": 45, + "isWall": false + }, + { + "x": 36, + "y": 46, + "isWall": true + }, + { + "x": 36, + "y": 47, + "isWall": true + }, + { + "x": 36, + "y": 48, + "isWall": false + }, + { + "x": 36, + "y": 49, + "isWall": false + }, + { + "x": 36, + "y": 50, + "isWall": false + }, + { + "x": 36, + "y": 51, + "isWall": false + }, + { + "x": 36, + "y": 52, + "isWall": true + }, + { + "x": 36, + "y": 53, + "isWall": false + }, + { + "x": 36, + "y": 54, + "isWall": false + }, + { + "x": 36, + "y": 55, + "isWall": false + }, + { + "x": 36, + "y": 56, + "isWall": false + }, + { + "x": 36, + "y": 57, + "isWall": false + }, + { + "x": 36, + "y": 58, + "isWall": false + }, + { + "x": 36, + "y": 59, + "isWall": true + }, + { + "x": 36, + "y": 60, + "isWall": true + }, + { + "x": 36, + "y": 61, + "isWall": true + }, + { + "x": 36, + "y": 62, + "isWall": false + }, + { + "x": 36, + "y": 63, + "isWall": false + }, + { + "x": 36, + "y": 64, + "isWall": false + }, + { + "x": 36, + "y": 65, + "isWall": true + }, + { + "x": 36, + "y": 66, + "isWall": false + }, + { + "x": 36, + "y": 67, + "isWall": false + }, + { + "x": 36, + "y": 68, + "isWall": false + }, + { + "x": 36, + "y": 69, + "isWall": true + }, + { + "x": 36, + "y": 70, + "isWall": false + }, + { + "x": 36, + "y": 71, + "isWall": false + }, + { + "x": 36, + "y": 72, + "isWall": false + }, + { + "x": 36, + "y": 73, + "isWall": false + }, + { + "x": 36, + "y": 74, + "isWall": false + }, + { + "x": 36, + "y": 75, + "isWall": true + }, + { + "x": 36, + "y": 76, + "isWall": false + }, + { + "x": 36, + "y": 77, + "isWall": true + }, + { + "x": 36, + "y": 78, + "isWall": true + }, + { + "x": 36, + "y": 79, + "isWall": true + }, + { + "x": 36, + "y": 80, + "isWall": false + }, + { + "x": 36, + "y": 81, + "isWall": false + }, + { + "x": 36, + "y": 82, + "isWall": true + }, + { + "x": 36, + "y": 83, + "isWall": true + }, + { + "x": 36, + "y": 84, + "isWall": false + }, + { + "x": 36, + "y": 85, + "isWall": false + }, + { + "x": 36, + "y": 86, + "isWall": false + }, + { + "x": 36, + "y": 87, + "isWall": true + }, + { + "x": 36, + "y": 88, + "isWall": false + }, + { + "x": 36, + "y": 89, + "isWall": false + }, + { + "x": 36, + "y": 90, + "isWall": false + }, + { + "x": 36, + "y": 91, + "isWall": false + }, + { + "x": 36, + "y": 92, + "isWall": false + }, + { + "x": 36, + "y": 93, + "isWall": false + }, + { + "x": 36, + "y": 94, + "isWall": false + }, + { + "x": 36, + "y": 95, + "isWall": false + }, + { + "x": 36, + "y": 96, + "isWall": true + }, + { + "x": 36, + "y": 97, + "isWall": false + }, + { + "x": 36, + "y": 98, + "isWall": false + }, + { + "x": 36, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 37, + "y": 0, + "isWall": false + }, + { + "x": 37, + "y": 1, + "isWall": true + }, + { + "x": 37, + "y": 2, + "isWall": false + }, + { + "x": 37, + "y": 3, + "isWall": true + }, + { + "x": 37, + "y": 4, + "isWall": false + }, + { + "x": 37, + "y": 5, + "isWall": false + }, + { + "x": 37, + "y": 6, + "isWall": false + }, + { + "x": 37, + "y": 7, + "isWall": false + }, + { + "x": 37, + "y": 8, + "isWall": false + }, + { + "x": 37, + "y": 9, + "isWall": false + }, + { + "x": 37, + "y": 10, + "isWall": false + }, + { + "x": 37, + "y": 11, + "isWall": false + }, + { + "x": 37, + "y": 12, + "isWall": false + }, + { + "x": 37, + "y": 13, + "isWall": false + }, + { + "x": 37, + "y": 14, + "isWall": false + }, + { + "x": 37, + "y": 15, + "isWall": false + }, + { + "x": 37, + "y": 16, + "isWall": true + }, + { + "x": 37, + "y": 17, + "isWall": true + }, + { + "x": 37, + "y": 18, + "isWall": false + }, + { + "x": 37, + "y": 19, + "isWall": false + }, + { + "x": 37, + "y": 20, + "isWall": false + }, + { + "x": 37, + "y": 21, + "isWall": false + }, + { + "x": 37, + "y": 22, + "isWall": false + }, + { + "x": 37, + "y": 23, + "isWall": true + }, + { + "x": 37, + "y": 24, + "isWall": true + }, + { + "x": 37, + "y": 25, + "isWall": false + }, + { + "x": 37, + "y": 26, + "isWall": false + }, + { + "x": 37, + "y": 27, + "isWall": false + }, + { + "x": 37, + "y": 28, + "isWall": true + }, + { + "x": 37, + "y": 29, + "isWall": false + }, + { + "x": 37, + "y": 30, + "isWall": false + }, + { + "x": 37, + "y": 31, + "isWall": true + }, + { + "x": 37, + "y": 32, + "isWall": false + }, + { + "x": 37, + "y": 33, + "isWall": false + }, + { + "x": 37, + "y": 34, + "isWall": false + }, + { + "x": 37, + "y": 35, + "isWall": false + }, + { + "x": 37, + "y": 36, + "isWall": true + }, + { + "x": 37, + "y": 37, + "isWall": true + }, + { + "x": 37, + "y": 38, + "isWall": true + }, + { + "x": 37, + "y": 39, + "isWall": true + }, + { + "x": 37, + "y": 40, + "isWall": false + }, + { + "x": 37, + "y": 41, + "isWall": false + }, + { + "x": 37, + "y": 42, + "isWall": false + }, + { + "x": 37, + "y": 43, + "isWall": false + }, + { + "x": 37, + "y": 44, + "isWall": false + }, + { + "x": 37, + "y": 45, + "isWall": false + }, + { + "x": 37, + "y": 46, + "isWall": false + }, + { + "x": 37, + "y": 47, + "isWall": false + }, + { + "x": 37, + "y": 48, + "isWall": true + }, + { + "x": 37, + "y": 49, + "isWall": false + }, + { + "x": 37, + "y": 50, + "isWall": false + }, + { + "x": 37, + "y": 51, + "isWall": false + }, + { + "x": 37, + "y": 52, + "isWall": false + }, + { + "x": 37, + "y": 53, + "isWall": true + }, + { + "x": 37, + "y": 54, + "isWall": false + }, + { + "x": 37, + "y": 55, + "isWall": false + }, + { + "x": 37, + "y": 56, + "isWall": false + }, + { + "x": 37, + "y": 57, + "isWall": false + }, + { + "x": 37, + "y": 58, + "isWall": false + }, + { + "x": 37, + "y": 59, + "isWall": false + }, + { + "x": 37, + "y": 60, + "isWall": false + }, + { + "x": 37, + "y": 61, + "isWall": false + }, + { + "x": 37, + "y": 62, + "isWall": true + }, + { + "x": 37, + "y": 63, + "isWall": true + }, + { + "x": 37, + "y": 64, + "isWall": true + }, + { + "x": 37, + "y": 65, + "isWall": true + }, + { + "x": 37, + "y": 66, + "isWall": false + }, + { + "x": 37, + "y": 67, + "isWall": true + }, + { + "x": 37, + "y": 68, + "isWall": true + }, + { + "x": 37, + "y": 69, + "isWall": false + }, + { + "x": 37, + "y": 70, + "isWall": false + }, + { + "x": 37, + "y": 71, + "isWall": true + }, + { + "x": 37, + "y": 72, + "isWall": true + }, + { + "x": 37, + "y": 73, + "isWall": false + }, + { + "x": 37, + "y": 74, + "isWall": false + }, + { + "x": 37, + "y": 75, + "isWall": false + }, + { + "x": 37, + "y": 76, + "isWall": true + }, + { + "x": 37, + "y": 77, + "isWall": false + }, + { + "x": 37, + "y": 78, + "isWall": false + }, + { + "x": 37, + "y": 79, + "isWall": false + }, + { + "x": 37, + "y": 80, + "isWall": false + }, + { + "x": 37, + "y": 81, + "isWall": false + }, + { + "x": 37, + "y": 82, + "isWall": false + }, + { + "x": 37, + "y": 83, + "isWall": true + }, + { + "x": 37, + "y": 84, + "isWall": true + }, + { + "x": 37, + "y": 85, + "isWall": true + }, + { + "x": 37, + "y": 86, + "isWall": false + }, + { + "x": 37, + "y": 87, + "isWall": false + }, + { + "x": 37, + "y": 88, + "isWall": false + }, + { + "x": 37, + "y": 89, + "isWall": false + }, + { + "x": 37, + "y": 90, + "isWall": true + }, + { + "x": 37, + "y": 91, + "isWall": false + }, + { + "x": 37, + "y": 92, + "isWall": false + }, + { + "x": 37, + "y": 93, + "isWall": false + }, + { + "x": 37, + "y": 94, + "isWall": false + }, + { + "x": 37, + "y": 95, + "isWall": false + }, + { + "x": 37, + "y": 96, + "isWall": false + }, + { + "x": 37, + "y": 97, + "isWall": false + }, + { + "x": 37, + "y": 98, + "isWall": true + }, + { + "x": 37, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 38, + "y": 0, + "isWall": true + }, + { + "x": 38, + "y": 1, + "isWall": false + }, + { + "x": 38, + "y": 2, + "isWall": false + }, + { + "x": 38, + "y": 3, + "isWall": false + }, + { + "x": 38, + "y": 4, + "isWall": true + }, + { + "x": 38, + "y": 5, + "isWall": false + }, + { + "x": 38, + "y": 6, + "isWall": true + }, + { + "x": 38, + "y": 7, + "isWall": false + }, + { + "x": 38, + "y": 8, + "isWall": false + }, + { + "x": 38, + "y": 9, + "isWall": false + }, + { + "x": 38, + "y": 10, + "isWall": false + }, + { + "x": 38, + "y": 11, + "isWall": false + }, + { + "x": 38, + "y": 12, + "isWall": true + }, + { + "x": 38, + "y": 13, + "isWall": false + }, + { + "x": 38, + "y": 14, + "isWall": true + }, + { + "x": 38, + "y": 15, + "isWall": true + }, + { + "x": 38, + "y": 16, + "isWall": false + }, + { + "x": 38, + "y": 17, + "isWall": true + }, + { + "x": 38, + "y": 18, + "isWall": true + }, + { + "x": 38, + "y": 19, + "isWall": false + }, + { + "x": 38, + "y": 20, + "isWall": true + }, + { + "x": 38, + "y": 21, + "isWall": true + }, + { + "x": 38, + "y": 22, + "isWall": true + }, + { + "x": 38, + "y": 23, + "isWall": false + }, + { + "x": 38, + "y": 24, + "isWall": false + }, + { + "x": 38, + "y": 25, + "isWall": true + }, + { + "x": 38, + "y": 26, + "isWall": true + }, + { + "x": 38, + "y": 27, + "isWall": true + }, + { + "x": 38, + "y": 28, + "isWall": false + }, + { + "x": 38, + "y": 29, + "isWall": false + }, + { + "x": 38, + "y": 30, + "isWall": false + }, + { + "x": 38, + "y": 31, + "isWall": false + }, + { + "x": 38, + "y": 32, + "isWall": false + }, + { + "x": 38, + "y": 33, + "isWall": false + }, + { + "x": 38, + "y": 34, + "isWall": false + }, + { + "x": 38, + "y": 35, + "isWall": false + }, + { + "x": 38, + "y": 36, + "isWall": false + }, + { + "x": 38, + "y": 37, + "isWall": false + }, + { + "x": 38, + "y": 38, + "isWall": false + }, + { + "x": 38, + "y": 39, + "isWall": true + }, + { + "x": 38, + "y": 40, + "isWall": false + }, + { + "x": 38, + "y": 41, + "isWall": true + }, + { + "x": 38, + "y": 42, + "isWall": true + }, + { + "x": 38, + "y": 43, + "isWall": false + }, + { + "x": 38, + "y": 44, + "isWall": false + }, + { + "x": 38, + "y": 45, + "isWall": false + }, + { + "x": 38, + "y": 46, + "isWall": false + }, + { + "x": 38, + "y": 47, + "isWall": false + }, + { + "x": 38, + "y": 48, + "isWall": false + }, + { + "x": 38, + "y": 49, + "isWall": false + }, + { + "x": 38, + "y": 50, + "isWall": false + }, + { + "x": 38, + "y": 51, + "isWall": false + }, + { + "x": 38, + "y": 52, + "isWall": false + }, + { + "x": 38, + "y": 53, + "isWall": true + }, + { + "x": 38, + "y": 54, + "isWall": false + }, + { + "x": 38, + "y": 55, + "isWall": false + }, + { + "x": 38, + "y": 56, + "isWall": false + }, + { + "x": 38, + "y": 57, + "isWall": true + }, + { + "x": 38, + "y": 58, + "isWall": false + }, + { + "x": 38, + "y": 59, + "isWall": true + }, + { + "x": 38, + "y": 60, + "isWall": false + }, + { + "x": 38, + "y": 61, + "isWall": false + }, + { + "x": 38, + "y": 62, + "isWall": false + }, + { + "x": 38, + "y": 63, + "isWall": false + }, + { + "x": 38, + "y": 64, + "isWall": false + }, + { + "x": 38, + "y": 65, + "isWall": false + }, + { + "x": 38, + "y": 66, + "isWall": false + }, + { + "x": 38, + "y": 67, + "isWall": false + }, + { + "x": 38, + "y": 68, + "isWall": false + }, + { + "x": 38, + "y": 69, + "isWall": false + }, + { + "x": 38, + "y": 70, + "isWall": false + }, + { + "x": 38, + "y": 71, + "isWall": false + }, + { + "x": 38, + "y": 72, + "isWall": false + }, + { + "x": 38, + "y": 73, + "isWall": false + }, + { + "x": 38, + "y": 74, + "isWall": true + }, + { + "x": 38, + "y": 75, + "isWall": false + }, + { + "x": 38, + "y": 76, + "isWall": false + }, + { + "x": 38, + "y": 77, + "isWall": false + }, + { + "x": 38, + "y": 78, + "isWall": false + }, + { + "x": 38, + "y": 79, + "isWall": false + }, + { + "x": 38, + "y": 80, + "isWall": false + }, + { + "x": 38, + "y": 81, + "isWall": false + }, + { + "x": 38, + "y": 82, + "isWall": false + }, + { + "x": 38, + "y": 83, + "isWall": false + }, + { + "x": 38, + "y": 84, + "isWall": false + }, + { + "x": 38, + "y": 85, + "isWall": true + }, + { + "x": 38, + "y": 86, + "isWall": true + }, + { + "x": 38, + "y": 87, + "isWall": false + }, + { + "x": 38, + "y": 88, + "isWall": false + }, + { + "x": 38, + "y": 89, + "isWall": false + }, + { + "x": 38, + "y": 90, + "isWall": true + }, + { + "x": 38, + "y": 91, + "isWall": true + }, + { + "x": 38, + "y": 92, + "isWall": true + }, + { + "x": 38, + "y": 93, + "isWall": false + }, + { + "x": 38, + "y": 94, + "isWall": true + }, + { + "x": 38, + "y": 95, + "isWall": false + }, + { + "x": 38, + "y": 96, + "isWall": true + }, + { + "x": 38, + "y": 97, + "isWall": false + }, + { + "x": 38, + "y": 98, + "isWall": false + }, + { + "x": 38, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 39, + "y": 0, + "isWall": true + }, + { + "x": 39, + "y": 1, + "isWall": false + }, + { + "x": 39, + "y": 2, + "isWall": false + }, + { + "x": 39, + "y": 3, + "isWall": true + }, + { + "x": 39, + "y": 4, + "isWall": false + }, + { + "x": 39, + "y": 5, + "isWall": true + }, + { + "x": 39, + "y": 6, + "isWall": false + }, + { + "x": 39, + "y": 7, + "isWall": false + }, + { + "x": 39, + "y": 8, + "isWall": false + }, + { + "x": 39, + "y": 9, + "isWall": false + }, + { + "x": 39, + "y": 10, + "isWall": false + }, + { + "x": 39, + "y": 11, + "isWall": true + }, + { + "x": 39, + "y": 12, + "isWall": false + }, + { + "x": 39, + "y": 13, + "isWall": false + }, + { + "x": 39, + "y": 14, + "isWall": true + }, + { + "x": 39, + "y": 15, + "isWall": false + }, + { + "x": 39, + "y": 16, + "isWall": true + }, + { + "x": 39, + "y": 17, + "isWall": false + }, + { + "x": 39, + "y": 18, + "isWall": false + }, + { + "x": 39, + "y": 19, + "isWall": true + }, + { + "x": 39, + "y": 20, + "isWall": true + }, + { + "x": 39, + "y": 21, + "isWall": true + }, + { + "x": 39, + "y": 22, + "isWall": false + }, + { + "x": 39, + "y": 23, + "isWall": true + }, + { + "x": 39, + "y": 24, + "isWall": false + }, + { + "x": 39, + "y": 25, + "isWall": true + }, + { + "x": 39, + "y": 26, + "isWall": false + }, + { + "x": 39, + "y": 27, + "isWall": false + }, + { + "x": 39, + "y": 28, + "isWall": false + }, + { + "x": 39, + "y": 29, + "isWall": false + }, + { + "x": 39, + "y": 30, + "isWall": false + }, + { + "x": 39, + "y": 31, + "isWall": false + }, + { + "x": 39, + "y": 32, + "isWall": false + }, + { + "x": 39, + "y": 33, + "isWall": false + }, + { + "x": 39, + "y": 34, + "isWall": false + }, + { + "x": 39, + "y": 35, + "isWall": false + }, + { + "x": 39, + "y": 36, + "isWall": false + }, + { + "x": 39, + "y": 37, + "isWall": false + }, + { + "x": 39, + "y": 38, + "isWall": false + }, + { + "x": 39, + "y": 39, + "isWall": false + }, + { + "x": 39, + "y": 40, + "isWall": false + }, + { + "x": 39, + "y": 41, + "isWall": false + }, + { + "x": 39, + "y": 42, + "isWall": false + }, + { + "x": 39, + "y": 43, + "isWall": false + }, + { + "x": 39, + "y": 44, + "isWall": false + }, + { + "x": 39, + "y": 45, + "isWall": false + }, + { + "x": 39, + "y": 46, + "isWall": false + }, + { + "x": 39, + "y": 47, + "isWall": false + }, + { + "x": 39, + "y": 48, + "isWall": false + }, + { + "x": 39, + "y": 49, + "isWall": false + }, + { + "x": 39, + "y": 50, + "isWall": false + }, + { + "x": 39, + "y": 51, + "isWall": false + }, + { + "x": 39, + "y": 52, + "isWall": true + }, + { + "x": 39, + "y": 53, + "isWall": false + }, + { + "x": 39, + "y": 54, + "isWall": false + }, + { + "x": 39, + "y": 55, + "isWall": true + }, + { + "x": 39, + "y": 56, + "isWall": false + }, + { + "x": 39, + "y": 57, + "isWall": true + }, + { + "x": 39, + "y": 58, + "isWall": true + }, + { + "x": 39, + "y": 59, + "isWall": false + }, + { + "x": 39, + "y": 60, + "isWall": false + }, + { + "x": 39, + "y": 61, + "isWall": false + }, + { + "x": 39, + "y": 62, + "isWall": false + }, + { + "x": 39, + "y": 63, + "isWall": true + }, + { + "x": 39, + "y": 64, + "isWall": false + }, + { + "x": 39, + "y": 65, + "isWall": false + }, + { + "x": 39, + "y": 66, + "isWall": false + }, + { + "x": 39, + "y": 67, + "isWall": false + }, + { + "x": 39, + "y": 68, + "isWall": false + }, + { + "x": 39, + "y": 69, + "isWall": false + }, + { + "x": 39, + "y": 70, + "isWall": true + }, + { + "x": 39, + "y": 71, + "isWall": true + }, + { + "x": 39, + "y": 72, + "isWall": false + }, + { + "x": 39, + "y": 73, + "isWall": true + }, + { + "x": 39, + "y": 74, + "isWall": true + }, + { + "x": 39, + "y": 75, + "isWall": true + }, + { + "x": 39, + "y": 76, + "isWall": false + }, + { + "x": 39, + "y": 77, + "isWall": false + }, + { + "x": 39, + "y": 78, + "isWall": false + }, + { + "x": 39, + "y": 79, + "isWall": false + }, + { + "x": 39, + "y": 80, + "isWall": true + }, + { + "x": 39, + "y": 81, + "isWall": true + }, + { + "x": 39, + "y": 82, + "isWall": false + }, + { + "x": 39, + "y": 83, + "isWall": false + }, + { + "x": 39, + "y": 84, + "isWall": false + }, + { + "x": 39, + "y": 85, + "isWall": false + }, + { + "x": 39, + "y": 86, + "isWall": false + }, + { + "x": 39, + "y": 87, + "isWall": true + }, + { + "x": 39, + "y": 88, + "isWall": false + }, + { + "x": 39, + "y": 89, + "isWall": false + }, + { + "x": 39, + "y": 90, + "isWall": false + }, + { + "x": 39, + "y": 91, + "isWall": true + }, + { + "x": 39, + "y": 92, + "isWall": true + }, + { + "x": 39, + "y": 93, + "isWall": false + }, + { + "x": 39, + "y": 94, + "isWall": false + }, + { + "x": 39, + "y": 95, + "isWall": false + }, + { + "x": 39, + "y": 96, + "isWall": false + }, + { + "x": 39, + "y": 97, + "isWall": false + }, + { + "x": 39, + "y": 98, + "isWall": false + }, + { + "x": 39, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 40, + "y": 0, + "isWall": true + }, + { + "x": 40, + "y": 1, + "isWall": true + }, + { + "x": 40, + "y": 2, + "isWall": true + }, + { + "x": 40, + "y": 3, + "isWall": false + }, + { + "x": 40, + "y": 4, + "isWall": true + }, + { + "x": 40, + "y": 5, + "isWall": false + }, + { + "x": 40, + "y": 6, + "isWall": true + }, + { + "x": 40, + "y": 7, + "isWall": true + }, + { + "x": 40, + "y": 8, + "isWall": false + }, + { + "x": 40, + "y": 9, + "isWall": true + }, + { + "x": 40, + "y": 10, + "isWall": false + }, + { + "x": 40, + "y": 11, + "isWall": true + }, + { + "x": 40, + "y": 12, + "isWall": false + }, + { + "x": 40, + "y": 13, + "isWall": false + }, + { + "x": 40, + "y": 14, + "isWall": false + }, + { + "x": 40, + "y": 15, + "isWall": false + }, + { + "x": 40, + "y": 16, + "isWall": true + }, + { + "x": 40, + "y": 17, + "isWall": false + }, + { + "x": 40, + "y": 18, + "isWall": false + }, + { + "x": 40, + "y": 19, + "isWall": false + }, + { + "x": 40, + "y": 20, + "isWall": false + }, + { + "x": 40, + "y": 21, + "isWall": false + }, + { + "x": 40, + "y": 22, + "isWall": false + }, + { + "x": 40, + "y": 23, + "isWall": false + }, + { + "x": 40, + "y": 24, + "isWall": true + }, + { + "x": 40, + "y": 25, + "isWall": false + }, + { + "x": 40, + "y": 26, + "isWall": false + }, + { + "x": 40, + "y": 27, + "isWall": false + }, + { + "x": 40, + "y": 28, + "isWall": true + }, + { + "x": 40, + "y": 29, + "isWall": true + }, + { + "x": 40, + "y": 30, + "isWall": false + }, + { + "x": 40, + "y": 31, + "isWall": false + }, + { + "x": 40, + "y": 32, + "isWall": false + }, + { + "x": 40, + "y": 33, + "isWall": true + }, + { + "x": 40, + "y": 34, + "isWall": false + }, + { + "x": 40, + "y": 35, + "isWall": false + }, + { + "x": 40, + "y": 36, + "isWall": false + }, + { + "x": 40, + "y": 37, + "isWall": true + }, + { + "x": 40, + "y": 38, + "isWall": false + }, + { + "x": 40, + "y": 39, + "isWall": false + }, + { + "x": 40, + "y": 40, + "isWall": true + }, + { + "x": 40, + "y": 41, + "isWall": true + }, + { + "x": 40, + "y": 42, + "isWall": false + }, + { + "x": 40, + "y": 43, + "isWall": true + }, + { + "x": 40, + "y": 44, + "isWall": true + }, + { + "x": 40, + "y": 45, + "isWall": false + }, + { + "x": 40, + "y": 46, + "isWall": true + }, + { + "x": 40, + "y": 47, + "isWall": false + }, + { + "x": 40, + "y": 48, + "isWall": false + }, + { + "x": 40, + "y": 49, + "isWall": true + }, + { + "x": 40, + "y": 50, + "isWall": false + }, + { + "x": 40, + "y": 51, + "isWall": true + }, + { + "x": 40, + "y": 52, + "isWall": true + }, + { + "x": 40, + "y": 53, + "isWall": true + }, + { + "x": 40, + "y": 54, + "isWall": false + }, + { + "x": 40, + "y": 55, + "isWall": false + }, + { + "x": 40, + "y": 56, + "isWall": false + }, + { + "x": 40, + "y": 57, + "isWall": false + }, + { + "x": 40, + "y": 58, + "isWall": false + }, + { + "x": 40, + "y": 59, + "isWall": false + }, + { + "x": 40, + "y": 60, + "isWall": false + }, + { + "x": 40, + "y": 61, + "isWall": false + }, + { + "x": 40, + "y": 62, + "isWall": false + }, + { + "x": 40, + "y": 63, + "isWall": true + }, + { + "x": 40, + "y": 64, + "isWall": false + }, + { + "x": 40, + "y": 65, + "isWall": true + }, + { + "x": 40, + "y": 66, + "isWall": false + }, + { + "x": 40, + "y": 67, + "isWall": false + }, + { + "x": 40, + "y": 68, + "isWall": false + }, + { + "x": 40, + "y": 69, + "isWall": false + }, + { + "x": 40, + "y": 70, + "isWall": false + }, + { + "x": 40, + "y": 71, + "isWall": false + }, + { + "x": 40, + "y": 72, + "isWall": false + }, + { + "x": 40, + "y": 73, + "isWall": false + }, + { + "x": 40, + "y": 74, + "isWall": false + }, + { + "x": 40, + "y": 75, + "isWall": false + }, + { + "x": 40, + "y": 76, + "isWall": true + }, + { + "x": 40, + "y": 77, + "isWall": false + }, + { + "x": 40, + "y": 78, + "isWall": true + }, + { + "x": 40, + "y": 79, + "isWall": false + }, + { + "x": 40, + "y": 80, + "isWall": false + }, + { + "x": 40, + "y": 81, + "isWall": false + }, + { + "x": 40, + "y": 82, + "isWall": false + }, + { + "x": 40, + "y": 83, + "isWall": false + }, + { + "x": 40, + "y": 84, + "isWall": false + }, + { + "x": 40, + "y": 85, + "isWall": false + }, + { + "x": 40, + "y": 86, + "isWall": false + }, + { + "x": 40, + "y": 87, + "isWall": false + }, + { + "x": 40, + "y": 88, + "isWall": false + }, + { + "x": 40, + "y": 89, + "isWall": false + }, + { + "x": 40, + "y": 90, + "isWall": true + }, + { + "x": 40, + "y": 91, + "isWall": false + }, + { + "x": 40, + "y": 92, + "isWall": false + }, + { + "x": 40, + "y": 93, + "isWall": false + }, + { + "x": 40, + "y": 94, + "isWall": false + }, + { + "x": 40, + "y": 95, + "isWall": true + }, + { + "x": 40, + "y": 96, + "isWall": true + }, + { + "x": 40, + "y": 97, + "isWall": false + }, + { + "x": 40, + "y": 98, + "isWall": false + }, + { + "x": 40, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 41, + "y": 0, + "isWall": false + }, + { + "x": 41, + "y": 1, + "isWall": true + }, + { + "x": 41, + "y": 2, + "isWall": true + }, + { + "x": 41, + "y": 3, + "isWall": false + }, + { + "x": 41, + "y": 4, + "isWall": true + }, + { + "x": 41, + "y": 5, + "isWall": false + }, + { + "x": 41, + "y": 6, + "isWall": false + }, + { + "x": 41, + "y": 7, + "isWall": false + }, + { + "x": 41, + "y": 8, + "isWall": true + }, + { + "x": 41, + "y": 9, + "isWall": false + }, + { + "x": 41, + "y": 10, + "isWall": true + }, + { + "x": 41, + "y": 11, + "isWall": false + }, + { + "x": 41, + "y": 12, + "isWall": false + }, + { + "x": 41, + "y": 13, + "isWall": false + }, + { + "x": 41, + "y": 14, + "isWall": false + }, + { + "x": 41, + "y": 15, + "isWall": false + }, + { + "x": 41, + "y": 16, + "isWall": false + }, + { + "x": 41, + "y": 17, + "isWall": false + }, + { + "x": 41, + "y": 18, + "isWall": false + }, + { + "x": 41, + "y": 19, + "isWall": false + }, + { + "x": 41, + "y": 20, + "isWall": false + }, + { + "x": 41, + "y": 21, + "isWall": false + }, + { + "x": 41, + "y": 22, + "isWall": false + }, + { + "x": 41, + "y": 23, + "isWall": false + }, + { + "x": 41, + "y": 24, + "isWall": false + }, + { + "x": 41, + "y": 25, + "isWall": true + }, + { + "x": 41, + "y": 26, + "isWall": true + }, + { + "x": 41, + "y": 27, + "isWall": false + }, + { + "x": 41, + "y": 28, + "isWall": false + }, + { + "x": 41, + "y": 29, + "isWall": false + }, + { + "x": 41, + "y": 30, + "isWall": false + }, + { + "x": 41, + "y": 31, + "isWall": false + }, + { + "x": 41, + "y": 32, + "isWall": false + }, + { + "x": 41, + "y": 33, + "isWall": false + }, + { + "x": 41, + "y": 34, + "isWall": false + }, + { + "x": 41, + "y": 35, + "isWall": false + }, + { + "x": 41, + "y": 36, + "isWall": false + }, + { + "x": 41, + "y": 37, + "isWall": true + }, + { + "x": 41, + "y": 38, + "isWall": false + }, + { + "x": 41, + "y": 39, + "isWall": false + }, + { + "x": 41, + "y": 40, + "isWall": false + }, + { + "x": 41, + "y": 41, + "isWall": false + }, + { + "x": 41, + "y": 42, + "isWall": false + }, + { + "x": 41, + "y": 43, + "isWall": false + }, + { + "x": 41, + "y": 44, + "isWall": false + }, + { + "x": 41, + "y": 45, + "isWall": true + }, + { + "x": 41, + "y": 46, + "isWall": false + }, + { + "x": 41, + "y": 47, + "isWall": true + }, + { + "x": 41, + "y": 48, + "isWall": false + }, + { + "x": 41, + "y": 49, + "isWall": false + }, + { + "x": 41, + "y": 50, + "isWall": false + }, + { + "x": 41, + "y": 51, + "isWall": false + }, + { + "x": 41, + "y": 52, + "isWall": false + }, + { + "x": 41, + "y": 53, + "isWall": false + }, + { + "x": 41, + "y": 54, + "isWall": false + }, + { + "x": 41, + "y": 55, + "isWall": false + }, + { + "x": 41, + "y": 56, + "isWall": false + }, + { + "x": 41, + "y": 57, + "isWall": false + }, + { + "x": 41, + "y": 58, + "isWall": false + }, + { + "x": 41, + "y": 59, + "isWall": false + }, + { + "x": 41, + "y": 60, + "isWall": false + }, + { + "x": 41, + "y": 61, + "isWall": true + }, + { + "x": 41, + "y": 62, + "isWall": false + }, + { + "x": 41, + "y": 63, + "isWall": false + }, + { + "x": 41, + "y": 64, + "isWall": false + }, + { + "x": 41, + "y": 65, + "isWall": false + }, + { + "x": 41, + "y": 66, + "isWall": false + }, + { + "x": 41, + "y": 67, + "isWall": false + }, + { + "x": 41, + "y": 68, + "isWall": false + }, + { + "x": 41, + "y": 69, + "isWall": true + }, + { + "x": 41, + "y": 70, + "isWall": true + }, + { + "x": 41, + "y": 71, + "isWall": false + }, + { + "x": 41, + "y": 72, + "isWall": true + }, + { + "x": 41, + "y": 73, + "isWall": false + }, + { + "x": 41, + "y": 74, + "isWall": false + }, + { + "x": 41, + "y": 75, + "isWall": true + }, + { + "x": 41, + "y": 76, + "isWall": true + }, + { + "x": 41, + "y": 77, + "isWall": false + }, + { + "x": 41, + "y": 78, + "isWall": false + }, + { + "x": 41, + "y": 79, + "isWall": false + }, + { + "x": 41, + "y": 80, + "isWall": false + }, + { + "x": 41, + "y": 81, + "isWall": true + }, + { + "x": 41, + "y": 82, + "isWall": false + }, + { + "x": 41, + "y": 83, + "isWall": true + }, + { + "x": 41, + "y": 84, + "isWall": false + }, + { + "x": 41, + "y": 85, + "isWall": false + }, + { + "x": 41, + "y": 86, + "isWall": false + }, + { + "x": 41, + "y": 87, + "isWall": false + }, + { + "x": 41, + "y": 88, + "isWall": false + }, + { + "x": 41, + "y": 89, + "isWall": false + }, + { + "x": 41, + "y": 90, + "isWall": false + }, + { + "x": 41, + "y": 91, + "isWall": false + }, + { + "x": 41, + "y": 92, + "isWall": true + }, + { + "x": 41, + "y": 93, + "isWall": false + }, + { + "x": 41, + "y": 94, + "isWall": false + }, + { + "x": 41, + "y": 95, + "isWall": false + }, + { + "x": 41, + "y": 96, + "isWall": false + }, + { + "x": 41, + "y": 97, + "isWall": false + }, + { + "x": 41, + "y": 98, + "isWall": false + }, + { + "x": 41, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 42, + "y": 0, + "isWall": false + }, + { + "x": 42, + "y": 1, + "isWall": false + }, + { + "x": 42, + "y": 2, + "isWall": false + }, + { + "x": 42, + "y": 3, + "isWall": false + }, + { + "x": 42, + "y": 4, + "isWall": true + }, + { + "x": 42, + "y": 5, + "isWall": true + }, + { + "x": 42, + "y": 6, + "isWall": false + }, + { + "x": 42, + "y": 7, + "isWall": true + }, + { + "x": 42, + "y": 8, + "isWall": true + }, + { + "x": 42, + "y": 9, + "isWall": false + }, + { + "x": 42, + "y": 10, + "isWall": true + }, + { + "x": 42, + "y": 11, + "isWall": false + }, + { + "x": 42, + "y": 12, + "isWall": false + }, + { + "x": 42, + "y": 13, + "isWall": true + }, + { + "x": 42, + "y": 14, + "isWall": false + }, + { + "x": 42, + "y": 15, + "isWall": true + }, + { + "x": 42, + "y": 16, + "isWall": false + }, + { + "x": 42, + "y": 17, + "isWall": false + }, + { + "x": 42, + "y": 18, + "isWall": false + }, + { + "x": 42, + "y": 19, + "isWall": false + }, + { + "x": 42, + "y": 20, + "isWall": true + }, + { + "x": 42, + "y": 21, + "isWall": true + }, + { + "x": 42, + "y": 22, + "isWall": true + }, + { + "x": 42, + "y": 23, + "isWall": true + }, + { + "x": 42, + "y": 24, + "isWall": true + }, + { + "x": 42, + "y": 25, + "isWall": true + }, + { + "x": 42, + "y": 26, + "isWall": false + }, + { + "x": 42, + "y": 27, + "isWall": true + }, + { + "x": 42, + "y": 28, + "isWall": false + }, + { + "x": 42, + "y": 29, + "isWall": false + }, + { + "x": 42, + "y": 30, + "isWall": false + }, + { + "x": 42, + "y": 31, + "isWall": true + }, + { + "x": 42, + "y": 32, + "isWall": true + }, + { + "x": 42, + "y": 33, + "isWall": false + }, + { + "x": 42, + "y": 34, + "isWall": true + }, + { + "x": 42, + "y": 35, + "isWall": true + }, + { + "x": 42, + "y": 36, + "isWall": true + }, + { + "x": 42, + "y": 37, + "isWall": false + }, + { + "x": 42, + "y": 38, + "isWall": true + }, + { + "x": 42, + "y": 39, + "isWall": true + }, + { + "x": 42, + "y": 40, + "isWall": false + }, + { + "x": 42, + "y": 41, + "isWall": true + }, + { + "x": 42, + "y": 42, + "isWall": true + }, + { + "x": 42, + "y": 43, + "isWall": false + }, + { + "x": 42, + "y": 44, + "isWall": true + }, + { + "x": 42, + "y": 45, + "isWall": false + }, + { + "x": 42, + "y": 46, + "isWall": false + }, + { + "x": 42, + "y": 47, + "isWall": true + }, + { + "x": 42, + "y": 48, + "isWall": true + }, + { + "x": 42, + "y": 49, + "isWall": false + }, + { + "x": 42, + "y": 50, + "isWall": false + }, + { + "x": 42, + "y": 51, + "isWall": true + }, + { + "x": 42, + "y": 52, + "isWall": false + }, + { + "x": 42, + "y": 53, + "isWall": false + }, + { + "x": 42, + "y": 54, + "isWall": true + }, + { + "x": 42, + "y": 55, + "isWall": true + }, + { + "x": 42, + "y": 56, + "isWall": false + }, + { + "x": 42, + "y": 57, + "isWall": false + }, + { + "x": 42, + "y": 58, + "isWall": true + }, + { + "x": 42, + "y": 59, + "isWall": false + }, + { + "x": 42, + "y": 60, + "isWall": false + }, + { + "x": 42, + "y": 61, + "isWall": true + }, + { + "x": 42, + "y": 62, + "isWall": false + }, + { + "x": 42, + "y": 63, + "isWall": false + }, + { + "x": 42, + "y": 64, + "isWall": true + }, + { + "x": 42, + "y": 65, + "isWall": false + }, + { + "x": 42, + "y": 66, + "isWall": false + }, + { + "x": 42, + "y": 67, + "isWall": false + }, + { + "x": 42, + "y": 68, + "isWall": false + }, + { + "x": 42, + "y": 69, + "isWall": true + }, + { + "x": 42, + "y": 70, + "isWall": false + }, + { + "x": 42, + "y": 71, + "isWall": true + }, + { + "x": 42, + "y": 72, + "isWall": false + }, + { + "x": 42, + "y": 73, + "isWall": false + }, + { + "x": 42, + "y": 74, + "isWall": false + }, + { + "x": 42, + "y": 75, + "isWall": false + }, + { + "x": 42, + "y": 76, + "isWall": false + }, + { + "x": 42, + "y": 77, + "isWall": false + }, + { + "x": 42, + "y": 78, + "isWall": false + }, + { + "x": 42, + "y": 79, + "isWall": false + }, + { + "x": 42, + "y": 80, + "isWall": false + }, + { + "x": 42, + "y": 81, + "isWall": false + }, + { + "x": 42, + "y": 82, + "isWall": true + }, + { + "x": 42, + "y": 83, + "isWall": false + }, + { + "x": 42, + "y": 84, + "isWall": false + }, + { + "x": 42, + "y": 85, + "isWall": false + }, + { + "x": 42, + "y": 86, + "isWall": false + }, + { + "x": 42, + "y": 87, + "isWall": false + }, + { + "x": 42, + "y": 88, + "isWall": true + }, + { + "x": 42, + "y": 89, + "isWall": false + }, + { + "x": 42, + "y": 90, + "isWall": false + }, + { + "x": 42, + "y": 91, + "isWall": true + }, + { + "x": 42, + "y": 92, + "isWall": true + }, + { + "x": 42, + "y": 93, + "isWall": true + }, + { + "x": 42, + "y": 94, + "isWall": false + }, + { + "x": 42, + "y": 95, + "isWall": false + }, + { + "x": 42, + "y": 96, + "isWall": true + }, + { + "x": 42, + "y": 97, + "isWall": false + }, + { + "x": 42, + "y": 98, + "isWall": false + }, + { + "x": 42, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 43, + "y": 0, + "isWall": false + }, + { + "x": 43, + "y": 1, + "isWall": false + }, + { + "x": 43, + "y": 2, + "isWall": false + }, + { + "x": 43, + "y": 3, + "isWall": false + }, + { + "x": 43, + "y": 4, + "isWall": false + }, + { + "x": 43, + "y": 5, + "isWall": false + }, + { + "x": 43, + "y": 6, + "isWall": false + }, + { + "x": 43, + "y": 7, + "isWall": false + }, + { + "x": 43, + "y": 8, + "isWall": false + }, + { + "x": 43, + "y": 9, + "isWall": false + }, + { + "x": 43, + "y": 10, + "isWall": true + }, + { + "x": 43, + "y": 11, + "isWall": false + }, + { + "x": 43, + "y": 12, + "isWall": false + }, + { + "x": 43, + "y": 13, + "isWall": false + }, + { + "x": 43, + "y": 14, + "isWall": false + }, + { + "x": 43, + "y": 15, + "isWall": false + }, + { + "x": 43, + "y": 16, + "isWall": false + }, + { + "x": 43, + "y": 17, + "isWall": true + }, + { + "x": 43, + "y": 18, + "isWall": false + }, + { + "x": 43, + "y": 19, + "isWall": false + }, + { + "x": 43, + "y": 20, + "isWall": false + }, + { + "x": 43, + "y": 21, + "isWall": false + }, + { + "x": 43, + "y": 22, + "isWall": false + }, + { + "x": 43, + "y": 23, + "isWall": false + }, + { + "x": 43, + "y": 24, + "isWall": true + }, + { + "x": 43, + "y": 25, + "isWall": true + }, + { + "x": 43, + "y": 26, + "isWall": false + }, + { + "x": 43, + "y": 27, + "isWall": true + }, + { + "x": 43, + "y": 28, + "isWall": false + }, + { + "x": 43, + "y": 29, + "isWall": false + }, + { + "x": 43, + "y": 30, + "isWall": false + }, + { + "x": 43, + "y": 31, + "isWall": false + }, + { + "x": 43, + "y": 32, + "isWall": true + }, + { + "x": 43, + "y": 33, + "isWall": false + }, + { + "x": 43, + "y": 34, + "isWall": false + }, + { + "x": 43, + "y": 35, + "isWall": false + }, + { + "x": 43, + "y": 36, + "isWall": false + }, + { + "x": 43, + "y": 37, + "isWall": true + }, + { + "x": 43, + "y": 38, + "isWall": false + }, + { + "x": 43, + "y": 39, + "isWall": false + }, + { + "x": 43, + "y": 40, + "isWall": false + }, + { + "x": 43, + "y": 41, + "isWall": false + }, + { + "x": 43, + "y": 42, + "isWall": true + }, + { + "x": 43, + "y": 43, + "isWall": false + }, + { + "x": 43, + "y": 44, + "isWall": false + }, + { + "x": 43, + "y": 45, + "isWall": false + }, + { + "x": 43, + "y": 46, + "isWall": false + }, + { + "x": 43, + "y": 47, + "isWall": false + }, + { + "x": 43, + "y": 48, + "isWall": false + }, + { + "x": 43, + "y": 49, + "isWall": false + }, + { + "x": 43, + "y": 50, + "isWall": true + }, + { + "x": 43, + "y": 51, + "isWall": false + }, + { + "x": 43, + "y": 52, + "isWall": false + }, + { + "x": 43, + "y": 53, + "isWall": false + }, + { + "x": 43, + "y": 54, + "isWall": true + }, + { + "x": 43, + "y": 55, + "isWall": true + }, + { + "x": 43, + "y": 56, + "isWall": false + }, + { + "x": 43, + "y": 57, + "isWall": true + }, + { + "x": 43, + "y": 58, + "isWall": true + }, + { + "x": 43, + "y": 59, + "isWall": true + }, + { + "x": 43, + "y": 60, + "isWall": false + }, + { + "x": 43, + "y": 61, + "isWall": false + }, + { + "x": 43, + "y": 62, + "isWall": false + }, + { + "x": 43, + "y": 63, + "isWall": false + }, + { + "x": 43, + "y": 64, + "isWall": false + }, + { + "x": 43, + "y": 65, + "isWall": true + }, + { + "x": 43, + "y": 66, + "isWall": false + }, + { + "x": 43, + "y": 67, + "isWall": false + }, + { + "x": 43, + "y": 68, + "isWall": true + }, + { + "x": 43, + "y": 69, + "isWall": false + }, + { + "x": 43, + "y": 70, + "isWall": false + }, + { + "x": 43, + "y": 71, + "isWall": true + }, + { + "x": 43, + "y": 72, + "isWall": false + }, + { + "x": 43, + "y": 73, + "isWall": false + }, + { + "x": 43, + "y": 74, + "isWall": false + }, + { + "x": 43, + "y": 75, + "isWall": false + }, + { + "x": 43, + "y": 76, + "isWall": false + }, + { + "x": 43, + "y": 77, + "isWall": true + }, + { + "x": 43, + "y": 78, + "isWall": false + }, + { + "x": 43, + "y": 79, + "isWall": false + }, + { + "x": 43, + "y": 80, + "isWall": false + }, + { + "x": 43, + "y": 81, + "isWall": true + }, + { + "x": 43, + "y": 82, + "isWall": false + }, + { + "x": 43, + "y": 83, + "isWall": false + }, + { + "x": 43, + "y": 84, + "isWall": false + }, + { + "x": 43, + "y": 85, + "isWall": true + }, + { + "x": 43, + "y": 86, + "isWall": false + }, + { + "x": 43, + "y": 87, + "isWall": false + }, + { + "x": 43, + "y": 88, + "isWall": false + }, + { + "x": 43, + "y": 89, + "isWall": true + }, + { + "x": 43, + "y": 90, + "isWall": false + }, + { + "x": 43, + "y": 91, + "isWall": true + }, + { + "x": 43, + "y": 92, + "isWall": false + }, + { + "x": 43, + "y": 93, + "isWall": false + }, + { + "x": 43, + "y": 94, + "isWall": false + }, + { + "x": 43, + "y": 95, + "isWall": false + }, + { + "x": 43, + "y": 96, + "isWall": true + }, + { + "x": 43, + "y": 97, + "isWall": false + }, + { + "x": 43, + "y": 98, + "isWall": false + }, + { + "x": 43, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 44, + "y": 0, + "isWall": false + }, + { + "x": 44, + "y": 1, + "isWall": false + }, + { + "x": 44, + "y": 2, + "isWall": false + }, + { + "x": 44, + "y": 3, + "isWall": false + }, + { + "x": 44, + "y": 4, + "isWall": false + }, + { + "x": 44, + "y": 5, + "isWall": false + }, + { + "x": 44, + "y": 6, + "isWall": false + }, + { + "x": 44, + "y": 7, + "isWall": false + }, + { + "x": 44, + "y": 8, + "isWall": false + }, + { + "x": 44, + "y": 9, + "isWall": false + }, + { + "x": 44, + "y": 10, + "isWall": true + }, + { + "x": 44, + "y": 11, + "isWall": false + }, + { + "x": 44, + "y": 12, + "isWall": false + }, + { + "x": 44, + "y": 13, + "isWall": false + }, + { + "x": 44, + "y": 14, + "isWall": false + }, + { + "x": 44, + "y": 15, + "isWall": true + }, + { + "x": 44, + "y": 16, + "isWall": true + }, + { + "x": 44, + "y": 17, + "isWall": false + }, + { + "x": 44, + "y": 18, + "isWall": true + }, + { + "x": 44, + "y": 19, + "isWall": false + }, + { + "x": 44, + "y": 20, + "isWall": false + }, + { + "x": 44, + "y": 21, + "isWall": false + }, + { + "x": 44, + "y": 22, + "isWall": false + }, + { + "x": 44, + "y": 23, + "isWall": false + }, + { + "x": 44, + "y": 24, + "isWall": false + }, + { + "x": 44, + "y": 25, + "isWall": true + }, + { + "x": 44, + "y": 26, + "isWall": false + }, + { + "x": 44, + "y": 27, + "isWall": false + }, + { + "x": 44, + "y": 28, + "isWall": true + }, + { + "x": 44, + "y": 29, + "isWall": true + }, + { + "x": 44, + "y": 30, + "isWall": false + }, + { + "x": 44, + "y": 31, + "isWall": false + }, + { + "x": 44, + "y": 32, + "isWall": true + }, + { + "x": 44, + "y": 33, + "isWall": true + }, + { + "x": 44, + "y": 34, + "isWall": false + }, + { + "x": 44, + "y": 35, + "isWall": false + }, + { + "x": 44, + "y": 36, + "isWall": false + }, + { + "x": 44, + "y": 37, + "isWall": false + }, + { + "x": 44, + "y": 38, + "isWall": false + }, + { + "x": 44, + "y": 39, + "isWall": false + }, + { + "x": 44, + "y": 40, + "isWall": true + }, + { + "x": 44, + "y": 41, + "isWall": false + }, + { + "x": 44, + "y": 42, + "isWall": false + }, + { + "x": 44, + "y": 43, + "isWall": false + }, + { + "x": 44, + "y": 44, + "isWall": true + }, + { + "x": 44, + "y": 45, + "isWall": false + }, + { + "x": 44, + "y": 46, + "isWall": false + }, + { + "x": 44, + "y": 47, + "isWall": true + }, + { + "x": 44, + "y": 48, + "isWall": false + }, + { + "x": 44, + "y": 49, + "isWall": false + }, + { + "x": 44, + "y": 50, + "isWall": false + }, + { + "x": 44, + "y": 51, + "isWall": false + }, + { + "x": 44, + "y": 52, + "isWall": true + }, + { + "x": 44, + "y": 53, + "isWall": false + }, + { + "x": 44, + "y": 54, + "isWall": false + }, + { + "x": 44, + "y": 55, + "isWall": true + }, + { + "x": 44, + "y": 56, + "isWall": false + }, + { + "x": 44, + "y": 57, + "isWall": false + }, + { + "x": 44, + "y": 58, + "isWall": false + }, + { + "x": 44, + "y": 59, + "isWall": false + }, + { + "x": 44, + "y": 60, + "isWall": false + }, + { + "x": 44, + "y": 61, + "isWall": false + }, + { + "x": 44, + "y": 62, + "isWall": true + }, + { + "x": 44, + "y": 63, + "isWall": false + }, + { + "x": 44, + "y": 64, + "isWall": true + }, + { + "x": 44, + "y": 65, + "isWall": false + }, + { + "x": 44, + "y": 66, + "isWall": false + }, + { + "x": 44, + "y": 67, + "isWall": true + }, + { + "x": 44, + "y": 68, + "isWall": false + }, + { + "x": 44, + "y": 69, + "isWall": false + }, + { + "x": 44, + "y": 70, + "isWall": false + }, + { + "x": 44, + "y": 71, + "isWall": true + }, + { + "x": 44, + "y": 72, + "isWall": true + }, + { + "x": 44, + "y": 73, + "isWall": false + }, + { + "x": 44, + "y": 74, + "isWall": false + }, + { + "x": 44, + "y": 75, + "isWall": true + }, + { + "x": 44, + "y": 76, + "isWall": false + }, + { + "x": 44, + "y": 77, + "isWall": false + }, + { + "x": 44, + "y": 78, + "isWall": false + }, + { + "x": 44, + "y": 79, + "isWall": false + }, + { + "x": 44, + "y": 80, + "isWall": true + }, + { + "x": 44, + "y": 81, + "isWall": true + }, + { + "x": 44, + "y": 82, + "isWall": false + }, + { + "x": 44, + "y": 83, + "isWall": false + }, + { + "x": 44, + "y": 84, + "isWall": false + }, + { + "x": 44, + "y": 85, + "isWall": false + }, + { + "x": 44, + "y": 86, + "isWall": true + }, + { + "x": 44, + "y": 87, + "isWall": true + }, + { + "x": 44, + "y": 88, + "isWall": true + }, + { + "x": 44, + "y": 89, + "isWall": false + }, + { + "x": 44, + "y": 90, + "isWall": false + }, + { + "x": 44, + "y": 91, + "isWall": false + }, + { + "x": 44, + "y": 92, + "isWall": false + }, + { + "x": 44, + "y": 93, + "isWall": true + }, + { + "x": 44, + "y": 94, + "isWall": true + }, + { + "x": 44, + "y": 95, + "isWall": true + }, + { + "x": 44, + "y": 96, + "isWall": false + }, + { + "x": 44, + "y": 97, + "isWall": false + }, + { + "x": 44, + "y": 98, + "isWall": false + }, + { + "x": 44, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 45, + "y": 0, + "isWall": false + }, + { + "x": 45, + "y": 1, + "isWall": true + }, + { + "x": 45, + "y": 2, + "isWall": false + }, + { + "x": 45, + "y": 3, + "isWall": false + }, + { + "x": 45, + "y": 4, + "isWall": false + }, + { + "x": 45, + "y": 5, + "isWall": true + }, + { + "x": 45, + "y": 6, + "isWall": false + }, + { + "x": 45, + "y": 7, + "isWall": true + }, + { + "x": 45, + "y": 8, + "isWall": false + }, + { + "x": 45, + "y": 9, + "isWall": false + }, + { + "x": 45, + "y": 10, + "isWall": false + }, + { + "x": 45, + "y": 11, + "isWall": false + }, + { + "x": 45, + "y": 12, + "isWall": false + }, + { + "x": 45, + "y": 13, + "isWall": false + }, + { + "x": 45, + "y": 14, + "isWall": false + }, + { + "x": 45, + "y": 15, + "isWall": false + }, + { + "x": 45, + "y": 16, + "isWall": false + }, + { + "x": 45, + "y": 17, + "isWall": true + }, + { + "x": 45, + "y": 18, + "isWall": false + }, + { + "x": 45, + "y": 19, + "isWall": false + }, + { + "x": 45, + "y": 20, + "isWall": false + }, + { + "x": 45, + "y": 21, + "isWall": false + }, + { + "x": 45, + "y": 22, + "isWall": true + }, + { + "x": 45, + "y": 23, + "isWall": false + }, + { + "x": 45, + "y": 24, + "isWall": true + }, + { + "x": 45, + "y": 25, + "isWall": true + }, + { + "x": 45, + "y": 26, + "isWall": true + }, + { + "x": 45, + "y": 27, + "isWall": false + }, + { + "x": 45, + "y": 28, + "isWall": true + }, + { + "x": 45, + "y": 29, + "isWall": false + }, + { + "x": 45, + "y": 30, + "isWall": true + }, + { + "x": 45, + "y": 31, + "isWall": false + }, + { + "x": 45, + "y": 32, + "isWall": false + }, + { + "x": 45, + "y": 33, + "isWall": true + }, + { + "x": 45, + "y": 34, + "isWall": false + }, + { + "x": 45, + "y": 35, + "isWall": false + }, + { + "x": 45, + "y": 36, + "isWall": false + }, + { + "x": 45, + "y": 37, + "isWall": false + }, + { + "x": 45, + "y": 38, + "isWall": false + }, + { + "x": 45, + "y": 39, + "isWall": true + }, + { + "x": 45, + "y": 40, + "isWall": true + }, + { + "x": 45, + "y": 41, + "isWall": false + }, + { + "x": 45, + "y": 42, + "isWall": false + }, + { + "x": 45, + "y": 43, + "isWall": false + }, + { + "x": 45, + "y": 44, + "isWall": false + }, + { + "x": 45, + "y": 45, + "isWall": true + }, + { + "x": 45, + "y": 46, + "isWall": false + }, + { + "x": 45, + "y": 47, + "isWall": false + }, + { + "x": 45, + "y": 48, + "isWall": true + }, + { + "x": 45, + "y": 49, + "isWall": false + }, + { + "x": 45, + "y": 50, + "isWall": true + }, + { + "x": 45, + "y": 51, + "isWall": true + }, + { + "x": 45, + "y": 52, + "isWall": false + }, + { + "x": 45, + "y": 53, + "isWall": false + }, + { + "x": 45, + "y": 54, + "isWall": false + }, + { + "x": 45, + "y": 55, + "isWall": true + }, + { + "x": 45, + "y": 56, + "isWall": false + }, + { + "x": 45, + "y": 57, + "isWall": true + }, + { + "x": 45, + "y": 58, + "isWall": false + }, + { + "x": 45, + "y": 59, + "isWall": false + }, + { + "x": 45, + "y": 60, + "isWall": false + }, + { + "x": 45, + "y": 61, + "isWall": false + }, + { + "x": 45, + "y": 62, + "isWall": false + }, + { + "x": 45, + "y": 63, + "isWall": true + }, + { + "x": 45, + "y": 64, + "isWall": false + }, + { + "x": 45, + "y": 65, + "isWall": false + }, + { + "x": 45, + "y": 66, + "isWall": false + }, + { + "x": 45, + "y": 67, + "isWall": true + }, + { + "x": 45, + "y": 68, + "isWall": false + }, + { + "x": 45, + "y": 69, + "isWall": false + }, + { + "x": 45, + "y": 70, + "isWall": false + }, + { + "x": 45, + "y": 71, + "isWall": false + }, + { + "x": 45, + "y": 72, + "isWall": false + }, + { + "x": 45, + "y": 73, + "isWall": false + }, + { + "x": 45, + "y": 74, + "isWall": false + }, + { + "x": 45, + "y": 75, + "isWall": false + }, + { + "x": 45, + "y": 76, + "isWall": false + }, + { + "x": 45, + "y": 77, + "isWall": true + }, + { + "x": 45, + "y": 78, + "isWall": false + }, + { + "x": 45, + "y": 79, + "isWall": false + }, + { + "x": 45, + "y": 80, + "isWall": false + }, + { + "x": 45, + "y": 81, + "isWall": true + }, + { + "x": 45, + "y": 82, + "isWall": true + }, + { + "x": 45, + "y": 83, + "isWall": false + }, + { + "x": 45, + "y": 84, + "isWall": false + }, + { + "x": 45, + "y": 85, + "isWall": false + }, + { + "x": 45, + "y": 86, + "isWall": false + }, + { + "x": 45, + "y": 87, + "isWall": true + }, + { + "x": 45, + "y": 88, + "isWall": false + }, + { + "x": 45, + "y": 89, + "isWall": true + }, + { + "x": 45, + "y": 90, + "isWall": true + }, + { + "x": 45, + "y": 91, + "isWall": true + }, + { + "x": 45, + "y": 92, + "isWall": false + }, + { + "x": 45, + "y": 93, + "isWall": false + }, + { + "x": 45, + "y": 94, + "isWall": false + }, + { + "x": 45, + "y": 95, + "isWall": false + }, + { + "x": 45, + "y": 96, + "isWall": true + }, + { + "x": 45, + "y": 97, + "isWall": true + }, + { + "x": 45, + "y": 98, + "isWall": false + }, + { + "x": 45, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 46, + "y": 0, + "isWall": true + }, + { + "x": 46, + "y": 1, + "isWall": false + }, + { + "x": 46, + "y": 2, + "isWall": false + }, + { + "x": 46, + "y": 3, + "isWall": false + }, + { + "x": 46, + "y": 4, + "isWall": false + }, + { + "x": 46, + "y": 5, + "isWall": false + }, + { + "x": 46, + "y": 6, + "isWall": false + }, + { + "x": 46, + "y": 7, + "isWall": false + }, + { + "x": 46, + "y": 8, + "isWall": true + }, + { + "x": 46, + "y": 9, + "isWall": true + }, + { + "x": 46, + "y": 10, + "isWall": false + }, + { + "x": 46, + "y": 11, + "isWall": false + }, + { + "x": 46, + "y": 12, + "isWall": true + }, + { + "x": 46, + "y": 13, + "isWall": false + }, + { + "x": 46, + "y": 14, + "isWall": false + }, + { + "x": 46, + "y": 15, + "isWall": false + }, + { + "x": 46, + "y": 16, + "isWall": false + }, + { + "x": 46, + "y": 17, + "isWall": false + }, + { + "x": 46, + "y": 18, + "isWall": false + }, + { + "x": 46, + "y": 19, + "isWall": false + }, + { + "x": 46, + "y": 20, + "isWall": true + }, + { + "x": 46, + "y": 21, + "isWall": false + }, + { + "x": 46, + "y": 22, + "isWall": false + }, + { + "x": 46, + "y": 23, + "isWall": false + }, + { + "x": 46, + "y": 24, + "isWall": false + }, + { + "x": 46, + "y": 25, + "isWall": false + }, + { + "x": 46, + "y": 26, + "isWall": false + }, + { + "x": 46, + "y": 27, + "isWall": false + }, + { + "x": 46, + "y": 28, + "isWall": true + }, + { + "x": 46, + "y": 29, + "isWall": false + }, + { + "x": 46, + "y": 30, + "isWall": false + }, + { + "x": 46, + "y": 31, + "isWall": false + }, + { + "x": 46, + "y": 32, + "isWall": true + }, + { + "x": 46, + "y": 33, + "isWall": false + }, + { + "x": 46, + "y": 34, + "isWall": false + }, + { + "x": 46, + "y": 35, + "isWall": false + }, + { + "x": 46, + "y": 36, + "isWall": false + }, + { + "x": 46, + "y": 37, + "isWall": false + }, + { + "x": 46, + "y": 38, + "isWall": false + }, + { + "x": 46, + "y": 39, + "isWall": false + }, + { + "x": 46, + "y": 40, + "isWall": true + }, + { + "x": 46, + "y": 41, + "isWall": false + }, + { + "x": 46, + "y": 42, + "isWall": false + }, + { + "x": 46, + "y": 43, + "isWall": true + }, + { + "x": 46, + "y": 44, + "isWall": false + }, + { + "x": 46, + "y": 45, + "isWall": false + }, + { + "x": 46, + "y": 46, + "isWall": false + }, + { + "x": 46, + "y": 47, + "isWall": false + }, + { + "x": 46, + "y": 48, + "isWall": false + }, + { + "x": 46, + "y": 49, + "isWall": false + }, + { + "x": 46, + "y": 50, + "isWall": true + }, + { + "x": 46, + "y": 51, + "isWall": false + }, + { + "x": 46, + "y": 52, + "isWall": false + }, + { + "x": 46, + "y": 53, + "isWall": true + }, + { + "x": 46, + "y": 54, + "isWall": false + }, + { + "x": 46, + "y": 55, + "isWall": false + }, + { + "x": 46, + "y": 56, + "isWall": false + }, + { + "x": 46, + "y": 57, + "isWall": false + }, + { + "x": 46, + "y": 58, + "isWall": false + }, + { + "x": 46, + "y": 59, + "isWall": true + }, + { + "x": 46, + "y": 60, + "isWall": false + }, + { + "x": 46, + "y": 61, + "isWall": false + }, + { + "x": 46, + "y": 62, + "isWall": false + }, + { + "x": 46, + "y": 63, + "isWall": false + }, + { + "x": 46, + "y": 64, + "isWall": false + }, + { + "x": 46, + "y": 65, + "isWall": false + }, + { + "x": 46, + "y": 66, + "isWall": false + }, + { + "x": 46, + "y": 67, + "isWall": true + }, + { + "x": 46, + "y": 68, + "isWall": false + }, + { + "x": 46, + "y": 69, + "isWall": true + }, + { + "x": 46, + "y": 70, + "isWall": false + }, + { + "x": 46, + "y": 71, + "isWall": true + }, + { + "x": 46, + "y": 72, + "isWall": false + }, + { + "x": 46, + "y": 73, + "isWall": false + }, + { + "x": 46, + "y": 74, + "isWall": false + }, + { + "x": 46, + "y": 75, + "isWall": true + }, + { + "x": 46, + "y": 76, + "isWall": false + }, + { + "x": 46, + "y": 77, + "isWall": false + }, + { + "x": 46, + "y": 78, + "isWall": false + }, + { + "x": 46, + "y": 79, + "isWall": true + }, + { + "x": 46, + "y": 80, + "isWall": false + }, + { + "x": 46, + "y": 81, + "isWall": false + }, + { + "x": 46, + "y": 82, + "isWall": true + }, + { + "x": 46, + "y": 83, + "isWall": false + }, + { + "x": 46, + "y": 84, + "isWall": false + }, + { + "x": 46, + "y": 85, + "isWall": false + }, + { + "x": 46, + "y": 86, + "isWall": false + }, + { + "x": 46, + "y": 87, + "isWall": false + }, + { + "x": 46, + "y": 88, + "isWall": false + }, + { + "x": 46, + "y": 89, + "isWall": false + }, + { + "x": 46, + "y": 90, + "isWall": false + }, + { + "x": 46, + "y": 91, + "isWall": false + }, + { + "x": 46, + "y": 92, + "isWall": false + }, + { + "x": 46, + "y": 93, + "isWall": true + }, + { + "x": 46, + "y": 94, + "isWall": false + }, + { + "x": 46, + "y": 95, + "isWall": false + }, + { + "x": 46, + "y": 96, + "isWall": false + }, + { + "x": 46, + "y": 97, + "isWall": false + }, + { + "x": 46, + "y": 98, + "isWall": false + }, + { + "x": 46, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 47, + "y": 0, + "isWall": false + }, + { + "x": 47, + "y": 1, + "isWall": false + }, + { + "x": 47, + "y": 2, + "isWall": true + }, + { + "x": 47, + "y": 3, + "isWall": false + }, + { + "x": 47, + "y": 4, + "isWall": false + }, + { + "x": 47, + "y": 5, + "isWall": true + }, + { + "x": 47, + "y": 6, + "isWall": false + }, + { + "x": 47, + "y": 7, + "isWall": true + }, + { + "x": 47, + "y": 8, + "isWall": false + }, + { + "x": 47, + "y": 9, + "isWall": false + }, + { + "x": 47, + "y": 10, + "isWall": false + }, + { + "x": 47, + "y": 11, + "isWall": false + }, + { + "x": 47, + "y": 12, + "isWall": false + }, + { + "x": 47, + "y": 13, + "isWall": false + }, + { + "x": 47, + "y": 14, + "isWall": true + }, + { + "x": 47, + "y": 15, + "isWall": false + }, + { + "x": 47, + "y": 16, + "isWall": false + }, + { + "x": 47, + "y": 17, + "isWall": false + }, + { + "x": 47, + "y": 18, + "isWall": false + }, + { + "x": 47, + "y": 19, + "isWall": true + }, + { + "x": 47, + "y": 20, + "isWall": true + }, + { + "x": 47, + "y": 21, + "isWall": false + }, + { + "x": 47, + "y": 22, + "isWall": true + }, + { + "x": 47, + "y": 23, + "isWall": false + }, + { + "x": 47, + "y": 24, + "isWall": false + }, + { + "x": 47, + "y": 25, + "isWall": true + }, + { + "x": 47, + "y": 26, + "isWall": false + }, + { + "x": 47, + "y": 27, + "isWall": false + }, + { + "x": 47, + "y": 28, + "isWall": false + }, + { + "x": 47, + "y": 29, + "isWall": false + }, + { + "x": 47, + "y": 30, + "isWall": false + }, + { + "x": 47, + "y": 31, + "isWall": false + }, + { + "x": 47, + "y": 32, + "isWall": true + }, + { + "x": 47, + "y": 33, + "isWall": false + }, + { + "x": 47, + "y": 34, + "isWall": true + }, + { + "x": 47, + "y": 35, + "isWall": false + }, + { + "x": 47, + "y": 36, + "isWall": false + }, + { + "x": 47, + "y": 37, + "isWall": true + }, + { + "x": 47, + "y": 38, + "isWall": false + }, + { + "x": 47, + "y": 39, + "isWall": false + }, + { + "x": 47, + "y": 40, + "isWall": false + }, + { + "x": 47, + "y": 41, + "isWall": false + }, + { + "x": 47, + "y": 42, + "isWall": false + }, + { + "x": 47, + "y": 43, + "isWall": false + }, + { + "x": 47, + "y": 44, + "isWall": false + }, + { + "x": 47, + "y": 45, + "isWall": false + }, + { + "x": 47, + "y": 46, + "isWall": true + }, + { + "x": 47, + "y": 47, + "isWall": false + }, + { + "x": 47, + "y": 48, + "isWall": false + }, + { + "x": 47, + "y": 49, + "isWall": false + }, + { + "x": 47, + "y": 50, + "isWall": true + }, + { + "x": 47, + "y": 51, + "isWall": false + }, + { + "x": 47, + "y": 52, + "isWall": true + }, + { + "x": 47, + "y": 53, + "isWall": false + }, + { + "x": 47, + "y": 54, + "isWall": false + }, + { + "x": 47, + "y": 55, + "isWall": false + }, + { + "x": 47, + "y": 56, + "isWall": false + }, + { + "x": 47, + "y": 57, + "isWall": true + }, + { + "x": 47, + "y": 58, + "isWall": false + }, + { + "x": 47, + "y": 59, + "isWall": false + }, + { + "x": 47, + "y": 60, + "isWall": false + }, + { + "x": 47, + "y": 61, + "isWall": false + }, + { + "x": 47, + "y": 62, + "isWall": true + }, + { + "x": 47, + "y": 63, + "isWall": false + }, + { + "x": 47, + "y": 64, + "isWall": false + }, + { + "x": 47, + "y": 65, + "isWall": false + }, + { + "x": 47, + "y": 66, + "isWall": false + }, + { + "x": 47, + "y": 67, + "isWall": false + }, + { + "x": 47, + "y": 68, + "isWall": true + }, + { + "x": 47, + "y": 69, + "isWall": false + }, + { + "x": 47, + "y": 70, + "isWall": false + }, + { + "x": 47, + "y": 71, + "isWall": true + }, + { + "x": 47, + "y": 72, + "isWall": false + }, + { + "x": 47, + "y": 73, + "isWall": true + }, + { + "x": 47, + "y": 74, + "isWall": false + }, + { + "x": 47, + "y": 75, + "isWall": false + }, + { + "x": 47, + "y": 76, + "isWall": false + }, + { + "x": 47, + "y": 77, + "isWall": false + }, + { + "x": 47, + "y": 78, + "isWall": false + }, + { + "x": 47, + "y": 79, + "isWall": false + }, + { + "x": 47, + "y": 80, + "isWall": false + }, + { + "x": 47, + "y": 81, + "isWall": false + }, + { + "x": 47, + "y": 82, + "isWall": false + }, + { + "x": 47, + "y": 83, + "isWall": false + }, + { + "x": 47, + "y": 84, + "isWall": false + }, + { + "x": 47, + "y": 85, + "isWall": false + }, + { + "x": 47, + "y": 86, + "isWall": true + }, + { + "x": 47, + "y": 87, + "isWall": false + }, + { + "x": 47, + "y": 88, + "isWall": true + }, + { + "x": 47, + "y": 89, + "isWall": false + }, + { + "x": 47, + "y": 90, + "isWall": false + }, + { + "x": 47, + "y": 91, + "isWall": true + }, + { + "x": 47, + "y": 92, + "isWall": false + }, + { + "x": 47, + "y": 93, + "isWall": false + }, + { + "x": 47, + "y": 94, + "isWall": false + }, + { + "x": 47, + "y": 95, + "isWall": false + }, + { + "x": 47, + "y": 96, + "isWall": false + }, + { + "x": 47, + "y": 97, + "isWall": true + }, + { + "x": 47, + "y": 98, + "isWall": true + }, + { + "x": 47, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 48, + "y": 0, + "isWall": true + }, + { + "x": 48, + "y": 1, + "isWall": false + }, + { + "x": 48, + "y": 2, + "isWall": false + }, + { + "x": 48, + "y": 3, + "isWall": false + }, + { + "x": 48, + "y": 4, + "isWall": true + }, + { + "x": 48, + "y": 5, + "isWall": true + }, + { + "x": 48, + "y": 6, + "isWall": false + }, + { + "x": 48, + "y": 7, + "isWall": false + }, + { + "x": 48, + "y": 8, + "isWall": false + }, + { + "x": 48, + "y": 9, + "isWall": true + }, + { + "x": 48, + "y": 10, + "isWall": false + }, + { + "x": 48, + "y": 11, + "isWall": false + }, + { + "x": 48, + "y": 12, + "isWall": false + }, + { + "x": 48, + "y": 13, + "isWall": false + }, + { + "x": 48, + "y": 14, + "isWall": true + }, + { + "x": 48, + "y": 15, + "isWall": false + }, + { + "x": 48, + "y": 16, + "isWall": true + }, + { + "x": 48, + "y": 17, + "isWall": true + }, + { + "x": 48, + "y": 18, + "isWall": false + }, + { + "x": 48, + "y": 19, + "isWall": true + }, + { + "x": 48, + "y": 20, + "isWall": true + }, + { + "x": 48, + "y": 21, + "isWall": true + }, + { + "x": 48, + "y": 22, + "isWall": false + }, + { + "x": 48, + "y": 23, + "isWall": true + }, + { + "x": 48, + "y": 24, + "isWall": false + }, + { + "x": 48, + "y": 25, + "isWall": false + }, + { + "x": 48, + "y": 26, + "isWall": true + }, + { + "x": 48, + "y": 27, + "isWall": false + }, + { + "x": 48, + "y": 28, + "isWall": true + }, + { + "x": 48, + "y": 29, + "isWall": true + }, + { + "x": 48, + "y": 30, + "isWall": false + }, + { + "x": 48, + "y": 31, + "isWall": false + }, + { + "x": 48, + "y": 32, + "isWall": false + }, + { + "x": 48, + "y": 33, + "isWall": false + }, + { + "x": 48, + "y": 34, + "isWall": true + }, + { + "x": 48, + "y": 35, + "isWall": false + }, + { + "x": 48, + "y": 36, + "isWall": true + }, + { + "x": 48, + "y": 37, + "isWall": false + }, + { + "x": 48, + "y": 38, + "isWall": false + }, + { + "x": 48, + "y": 39, + "isWall": false + }, + { + "x": 48, + "y": 40, + "isWall": true + }, + { + "x": 48, + "y": 41, + "isWall": false + }, + { + "x": 48, + "y": 42, + "isWall": false + }, + { + "x": 48, + "y": 43, + "isWall": true + }, + { + "x": 48, + "y": 44, + "isWall": false + }, + { + "x": 48, + "y": 45, + "isWall": false + }, + { + "x": 48, + "y": 46, + "isWall": true + }, + { + "x": 48, + "y": 47, + "isWall": false + }, + { + "x": 48, + "y": 48, + "isWall": false + }, + { + "x": 48, + "y": 49, + "isWall": false + }, + { + "x": 48, + "y": 50, + "isWall": false + }, + { + "x": 48, + "y": 51, + "isWall": true + }, + { + "x": 48, + "y": 52, + "isWall": false + }, + { + "x": 48, + "y": 53, + "isWall": true + }, + { + "x": 48, + "y": 54, + "isWall": false + }, + { + "x": 48, + "y": 55, + "isWall": false + }, + { + "x": 48, + "y": 56, + "isWall": true + }, + { + "x": 48, + "y": 57, + "isWall": false + }, + { + "x": 48, + "y": 58, + "isWall": false + }, + { + "x": 48, + "y": 59, + "isWall": false + }, + { + "x": 48, + "y": 60, + "isWall": true + }, + { + "x": 48, + "y": 61, + "isWall": true + }, + { + "x": 48, + "y": 62, + "isWall": true + }, + { + "x": 48, + "y": 63, + "isWall": false + }, + { + "x": 48, + "y": 64, + "isWall": true + }, + { + "x": 48, + "y": 65, + "isWall": false + }, + { + "x": 48, + "y": 66, + "isWall": false + }, + { + "x": 48, + "y": 67, + "isWall": false + }, + { + "x": 48, + "y": 68, + "isWall": false + }, + { + "x": 48, + "y": 69, + "isWall": false + }, + { + "x": 48, + "y": 70, + "isWall": false + }, + { + "x": 48, + "y": 71, + "isWall": false + }, + { + "x": 48, + "y": 72, + "isWall": false + }, + { + "x": 48, + "y": 73, + "isWall": false + }, + { + "x": 48, + "y": 74, + "isWall": false + }, + { + "x": 48, + "y": 75, + "isWall": false + }, + { + "x": 48, + "y": 76, + "isWall": false + }, + { + "x": 48, + "y": 77, + "isWall": false + }, + { + "x": 48, + "y": 78, + "isWall": false + }, + { + "x": 48, + "y": 79, + "isWall": false + }, + { + "x": 48, + "y": 80, + "isWall": false + }, + { + "x": 48, + "y": 81, + "isWall": false + }, + { + "x": 48, + "y": 82, + "isWall": false + }, + { + "x": 48, + "y": 83, + "isWall": false + }, + { + "x": 48, + "y": 84, + "isWall": false + }, + { + "x": 48, + "y": 85, + "isWall": false + }, + { + "x": 48, + "y": 86, + "isWall": true + }, + { + "x": 48, + "y": 87, + "isWall": false + }, + { + "x": 48, + "y": 88, + "isWall": false + }, + { + "x": 48, + "y": 89, + "isWall": true + }, + { + "x": 48, + "y": 90, + "isWall": false + }, + { + "x": 48, + "y": 91, + "isWall": true + }, + { + "x": 48, + "y": 92, + "isWall": false + }, + { + "x": 48, + "y": 93, + "isWall": false + }, + { + "x": 48, + "y": 94, + "isWall": false + }, + { + "x": 48, + "y": 95, + "isWall": true + }, + { + "x": 48, + "y": 96, + "isWall": false + }, + { + "x": 48, + "y": 97, + "isWall": false + }, + { + "x": 48, + "y": 98, + "isWall": true + }, + { + "x": 48, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 49, + "y": 0, + "isWall": false + }, + { + "x": 49, + "y": 1, + "isWall": false + }, + { + "x": 49, + "y": 2, + "isWall": true + }, + { + "x": 49, + "y": 3, + "isWall": false + }, + { + "x": 49, + "y": 4, + "isWall": false + }, + { + "x": 49, + "y": 5, + "isWall": false + }, + { + "x": 49, + "y": 6, + "isWall": false + }, + { + "x": 49, + "y": 7, + "isWall": false + }, + { + "x": 49, + "y": 8, + "isWall": false + }, + { + "x": 49, + "y": 9, + "isWall": true + }, + { + "x": 49, + "y": 10, + "isWall": true + }, + { + "x": 49, + "y": 11, + "isWall": false + }, + { + "x": 49, + "y": 12, + "isWall": true + }, + { + "x": 49, + "y": 13, + "isWall": true + }, + { + "x": 49, + "y": 14, + "isWall": false + }, + { + "x": 49, + "y": 15, + "isWall": false + }, + { + "x": 49, + "y": 16, + "isWall": false + }, + { + "x": 49, + "y": 17, + "isWall": false + }, + { + "x": 49, + "y": 18, + "isWall": false + }, + { + "x": 49, + "y": 19, + "isWall": true + }, + { + "x": 49, + "y": 20, + "isWall": true + }, + { + "x": 49, + "y": 21, + "isWall": false + }, + { + "x": 49, + "y": 22, + "isWall": true + }, + { + "x": 49, + "y": 23, + "isWall": true + }, + { + "x": 49, + "y": 24, + "isWall": false + }, + { + "x": 49, + "y": 25, + "isWall": true + }, + { + "x": 49, + "y": 26, + "isWall": false + }, + { + "x": 49, + "y": 27, + "isWall": true + }, + { + "x": 49, + "y": 28, + "isWall": false + }, + { + "x": 49, + "y": 29, + "isWall": true + }, + { + "x": 49, + "y": 30, + "isWall": false + }, + { + "x": 49, + "y": 31, + "isWall": false + }, + { + "x": 49, + "y": 32, + "isWall": false + }, + { + "x": 49, + "y": 33, + "isWall": false + }, + { + "x": 49, + "y": 34, + "isWall": false + }, + { + "x": 49, + "y": 35, + "isWall": false + }, + { + "x": 49, + "y": 36, + "isWall": true + }, + { + "x": 49, + "y": 37, + "isWall": true + }, + { + "x": 49, + "y": 38, + "isWall": false + }, + { + "x": 49, + "y": 39, + "isWall": false + }, + { + "x": 49, + "y": 40, + "isWall": true + }, + { + "x": 49, + "y": 41, + "isWall": false + }, + { + "x": 49, + "y": 42, + "isWall": false + }, + { + "x": 49, + "y": 43, + "isWall": false + }, + { + "x": 49, + "y": 44, + "isWall": false + }, + { + "x": 49, + "y": 45, + "isWall": false + }, + { + "x": 49, + "y": 46, + "isWall": false + }, + { + "x": 49, + "y": 47, + "isWall": true + }, + { + "x": 49, + "y": 48, + "isWall": false + }, + { + "x": 49, + "y": 49, + "isWall": false + }, + { + "x": 49, + "y": 50, + "isWall": true + }, + { + "x": 49, + "y": 51, + "isWall": false + }, + { + "x": 49, + "y": 52, + "isWall": false + }, + { + "x": 49, + "y": 53, + "isWall": false + }, + { + "x": 49, + "y": 54, + "isWall": false + }, + { + "x": 49, + "y": 55, + "isWall": false + }, + { + "x": 49, + "y": 56, + "isWall": false + }, + { + "x": 49, + "y": 57, + "isWall": false + }, + { + "x": 49, + "y": 58, + "isWall": false + }, + { + "x": 49, + "y": 59, + "isWall": false + }, + { + "x": 49, + "y": 60, + "isWall": true + }, + { + "x": 49, + "y": 61, + "isWall": true + }, + { + "x": 49, + "y": 62, + "isWall": false + }, + { + "x": 49, + "y": 63, + "isWall": false + }, + { + "x": 49, + "y": 64, + "isWall": false + }, + { + "x": 49, + "y": 65, + "isWall": true + }, + { + "x": 49, + "y": 66, + "isWall": false + }, + { + "x": 49, + "y": 67, + "isWall": true + }, + { + "x": 49, + "y": 68, + "isWall": false + }, + { + "x": 49, + "y": 69, + "isWall": true + }, + { + "x": 49, + "y": 70, + "isWall": false + }, + { + "x": 49, + "y": 71, + "isWall": false + }, + { + "x": 49, + "y": 72, + "isWall": true + }, + { + "x": 49, + "y": 73, + "isWall": false + }, + { + "x": 49, + "y": 74, + "isWall": false + }, + { + "x": 49, + "y": 75, + "isWall": false + }, + { + "x": 49, + "y": 76, + "isWall": false + }, + { + "x": 49, + "y": 77, + "isWall": true + }, + { + "x": 49, + "y": 78, + "isWall": true + }, + { + "x": 49, + "y": 79, + "isWall": false + }, + { + "x": 49, + "y": 80, + "isWall": false + }, + { + "x": 49, + "y": 81, + "isWall": false + }, + { + "x": 49, + "y": 82, + "isWall": false + }, + { + "x": 49, + "y": 83, + "isWall": false + }, + { + "x": 49, + "y": 84, + "isWall": false + }, + { + "x": 49, + "y": 85, + "isWall": false + }, + { + "x": 49, + "y": 86, + "isWall": false + }, + { + "x": 49, + "y": 87, + "isWall": false + }, + { + "x": 49, + "y": 88, + "isWall": false + }, + { + "x": 49, + "y": 89, + "isWall": false + }, + { + "x": 49, + "y": 90, + "isWall": false + }, + { + "x": 49, + "y": 91, + "isWall": false + }, + { + "x": 49, + "y": 92, + "isWall": false + }, + { + "x": 49, + "y": 93, + "isWall": false + }, + { + "x": 49, + "y": 94, + "isWall": true + }, + { + "x": 49, + "y": 95, + "isWall": true + }, + { + "x": 49, + "y": 96, + "isWall": true + }, + { + "x": 49, + "y": 97, + "isWall": false + }, + { + "x": 49, + "y": 98, + "isWall": false + }, + { + "x": 49, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 50, + "y": 0, + "isWall": false + }, + { + "x": 50, + "y": 1, + "isWall": false + }, + { + "x": 50, + "y": 2, + "isWall": false + }, + { + "x": 50, + "y": 3, + "isWall": true + }, + { + "x": 50, + "y": 4, + "isWall": false + }, + { + "x": 50, + "y": 5, + "isWall": false + }, + { + "x": 50, + "y": 6, + "isWall": false + }, + { + "x": 50, + "y": 7, + "isWall": false + }, + { + "x": 50, + "y": 8, + "isWall": false + }, + { + "x": 50, + "y": 9, + "isWall": false + }, + { + "x": 50, + "y": 10, + "isWall": false + }, + { + "x": 50, + "y": 11, + "isWall": false + }, + { + "x": 50, + "y": 12, + "isWall": false + }, + { + "x": 50, + "y": 13, + "isWall": false + }, + { + "x": 50, + "y": 14, + "isWall": false + }, + { + "x": 50, + "y": 15, + "isWall": true + }, + { + "x": 50, + "y": 16, + "isWall": false + }, + { + "x": 50, + "y": 17, + "isWall": true + }, + { + "x": 50, + "y": 18, + "isWall": false + }, + { + "x": 50, + "y": 19, + "isWall": false + }, + { + "x": 50, + "y": 20, + "isWall": true + }, + { + "x": 50, + "y": 21, + "isWall": false + }, + { + "x": 50, + "y": 22, + "isWall": false + }, + { + "x": 50, + "y": 23, + "isWall": false + }, + { + "x": 50, + "y": 24, + "isWall": true + }, + { + "x": 50, + "y": 25, + "isWall": true + }, + { + "x": 50, + "y": 26, + "isWall": true + }, + { + "x": 50, + "y": 27, + "isWall": false + }, + { + "x": 50, + "y": 28, + "isWall": false + }, + { + "x": 50, + "y": 29, + "isWall": true + }, + { + "x": 50, + "y": 30, + "isWall": false + }, + { + "x": 50, + "y": 31, + "isWall": false + }, + { + "x": 50, + "y": 32, + "isWall": false + }, + { + "x": 50, + "y": 33, + "isWall": false + }, + { + "x": 50, + "y": 34, + "isWall": false + }, + { + "x": 50, + "y": 35, + "isWall": false + }, + { + "x": 50, + "y": 36, + "isWall": false + }, + { + "x": 50, + "y": 37, + "isWall": true + }, + { + "x": 50, + "y": 38, + "isWall": true + }, + { + "x": 50, + "y": 39, + "isWall": false + }, + { + "x": 50, + "y": 40, + "isWall": true + }, + { + "x": 50, + "y": 41, + "isWall": true + }, + { + "x": 50, + "y": 42, + "isWall": false + }, + { + "x": 50, + "y": 43, + "isWall": false + }, + { + "x": 50, + "y": 44, + "isWall": false + }, + { + "x": 50, + "y": 45, + "isWall": false + }, + { + "x": 50, + "y": 46, + "isWall": true + }, + { + "x": 50, + "y": 47, + "isWall": false + }, + { + "x": 50, + "y": 48, + "isWall": false + }, + { + "x": 50, + "y": 49, + "isWall": true + }, + { + "x": 50, + "y": 50, + "isWall": false + }, + { + "x": 50, + "y": 51, + "isWall": false + }, + { + "x": 50, + "y": 52, + "isWall": false + }, + { + "x": 50, + "y": 53, + "isWall": false + }, + { + "x": 50, + "y": 54, + "isWall": true + }, + { + "x": 50, + "y": 55, + "isWall": false + }, + { + "x": 50, + "y": 56, + "isWall": false + }, + { + "x": 50, + "y": 57, + "isWall": false + }, + { + "x": 50, + "y": 58, + "isWall": false + }, + { + "x": 50, + "y": 59, + "isWall": false + }, + { + "x": 50, + "y": 60, + "isWall": true + }, + { + "x": 50, + "y": 61, + "isWall": true + }, + { + "x": 50, + "y": 62, + "isWall": false + }, + { + "x": 50, + "y": 63, + "isWall": false + }, + { + "x": 50, + "y": 64, + "isWall": false + }, + { + "x": 50, + "y": 65, + "isWall": false + }, + { + "x": 50, + "y": 66, + "isWall": false + }, + { + "x": 50, + "y": 67, + "isWall": false + }, + { + "x": 50, + "y": 68, + "isWall": false + }, + { + "x": 50, + "y": 69, + "isWall": false + }, + { + "x": 50, + "y": 70, + "isWall": false + }, + { + "x": 50, + "y": 71, + "isWall": false + }, + { + "x": 50, + "y": 72, + "isWall": true + }, + { + "x": 50, + "y": 73, + "isWall": false + }, + { + "x": 50, + "y": 74, + "isWall": false + }, + { + "x": 50, + "y": 75, + "isWall": true + }, + { + "x": 50, + "y": 76, + "isWall": false + }, + { + "x": 50, + "y": 77, + "isWall": true + }, + { + "x": 50, + "y": 78, + "isWall": false + }, + { + "x": 50, + "y": 79, + "isWall": false + }, + { + "x": 50, + "y": 80, + "isWall": false + }, + { + "x": 50, + "y": 81, + "isWall": false + }, + { + "x": 50, + "y": 82, + "isWall": false + }, + { + "x": 50, + "y": 83, + "isWall": false + }, + { + "x": 50, + "y": 84, + "isWall": false + }, + { + "x": 50, + "y": 85, + "isWall": true + }, + { + "x": 50, + "y": 86, + "isWall": false + }, + { + "x": 50, + "y": 87, + "isWall": false + }, + { + "x": 50, + "y": 88, + "isWall": false + }, + { + "x": 50, + "y": 89, + "isWall": false + }, + { + "x": 50, + "y": 90, + "isWall": false + }, + { + "x": 50, + "y": 91, + "isWall": true + }, + { + "x": 50, + "y": 92, + "isWall": false + }, + { + "x": 50, + "y": 93, + "isWall": false + }, + { + "x": 50, + "y": 94, + "isWall": false + }, + { + "x": 50, + "y": 95, + "isWall": false + }, + { + "x": 50, + "y": 96, + "isWall": false + }, + { + "x": 50, + "y": 97, + "isWall": true + }, + { + "x": 50, + "y": 98, + "isWall": false + }, + { + "x": 50, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 51, + "y": 0, + "isWall": true + }, + { + "x": 51, + "y": 1, + "isWall": false + }, + { + "x": 51, + "y": 2, + "isWall": false + }, + { + "x": 51, + "y": 3, + "isWall": true + }, + { + "x": 51, + "y": 4, + "isWall": true + }, + { + "x": 51, + "y": 5, + "isWall": true + }, + { + "x": 51, + "y": 6, + "isWall": true + }, + { + "x": 51, + "y": 7, + "isWall": true + }, + { + "x": 51, + "y": 8, + "isWall": true + }, + { + "x": 51, + "y": 9, + "isWall": true + }, + { + "x": 51, + "y": 10, + "isWall": true + }, + { + "x": 51, + "y": 11, + "isWall": true + }, + { + "x": 51, + "y": 12, + "isWall": true + }, + { + "x": 51, + "y": 13, + "isWall": true + }, + { + "x": 51, + "y": 14, + "isWall": true + }, + { + "x": 51, + "y": 15, + "isWall": true + }, + { + "x": 51, + "y": 16, + "isWall": true + }, + { + "x": 51, + "y": 17, + "isWall": true + }, + { + "x": 51, + "y": 18, + "isWall": true + }, + { + "x": 51, + "y": 19, + "isWall": true + }, + { + "x": 51, + "y": 20, + "isWall": true + }, + { + "x": 51, + "y": 21, + "isWall": true + }, + { + "x": 51, + "y": 22, + "isWall": true + }, + { + "x": 51, + "y": 23, + "isWall": true + }, + { + "x": 51, + "y": 24, + "isWall": true + }, + { + "x": 51, + "y": 25, + "isWall": true + }, + { + "x": 51, + "y": 26, + "isWall": true + }, + { + "x": 51, + "y": 27, + "isWall": true + }, + { + "x": 51, + "y": 28, + "isWall": true + }, + { + "x": 51, + "y": 29, + "isWall": true + }, + { + "x": 51, + "y": 30, + "isWall": true + }, + { + "x": 51, + "y": 31, + "isWall": true + }, + { + "x": 51, + "y": 32, + "isWall": true + }, + { + "x": 51, + "y": 33, + "isWall": true + }, + { + "x": 51, + "y": 34, + "isWall": true + }, + { + "x": 51, + "y": 35, + "isWall": true + }, + { + "x": 51, + "y": 36, + "isWall": true + }, + { + "x": 51, + "y": 37, + "isWall": true + }, + { + "x": 51, + "y": 38, + "isWall": true + }, + { + "x": 51, + "y": 39, + "isWall": true + }, + { + "x": 51, + "y": 40, + "isWall": true + }, + { + "x": 51, + "y": 41, + "isWall": true + }, + { + "x": 51, + "y": 42, + "isWall": true + }, + { + "x": 51, + "y": 43, + "isWall": true + }, + { + "x": 51, + "y": 44, + "isWall": true + }, + { + "x": 51, + "y": 45, + "isWall": true + }, + { + "x": 51, + "y": 46, + "isWall": true + }, + { + "x": 51, + "y": 47, + "isWall": true + }, + { + "x": 51, + "y": 48, + "isWall": true + }, + { + "x": 51, + "y": 49, + "isWall": true + }, + { + "x": 51, + "y": 50, + "isWall": true + }, + { + "x": 51, + "y": 51, + "isWall": true + }, + { + "x": 51, + "y": 52, + "isWall": true + }, + { + "x": 51, + "y": 53, + "isWall": true + }, + { + "x": 51, + "y": 54, + "isWall": true + }, + { + "x": 51, + "y": 55, + "isWall": true + }, + { + "x": 51, + "y": 56, + "isWall": true + }, + { + "x": 51, + "y": 57, + "isWall": true + }, + { + "x": 51, + "y": 58, + "isWall": true + }, + { + "x": 51, + "y": 59, + "isWall": true + }, + { + "x": 51, + "y": 60, + "isWall": true + }, + { + "x": 51, + "y": 61, + "isWall": true + }, + { + "x": 51, + "y": 62, + "isWall": true + }, + { + "x": 51, + "y": 63, + "isWall": true + }, + { + "x": 51, + "y": 64, + "isWall": true + }, + { + "x": 51, + "y": 65, + "isWall": true + }, + { + "x": 51, + "y": 66, + "isWall": true + }, + { + "x": 51, + "y": 67, + "isWall": true + }, + { + "x": 51, + "y": 68, + "isWall": true + }, + { + "x": 51, + "y": 69, + "isWall": true + }, + { + "x": 51, + "y": 70, + "isWall": true + }, + { + "x": 51, + "y": 71, + "isWall": true + }, + { + "x": 51, + "y": 72, + "isWall": true + }, + { + "x": 51, + "y": 73, + "isWall": true + }, + { + "x": 51, + "y": 74, + "isWall": true + }, + { + "x": 51, + "y": 75, + "isWall": true + }, + { + "x": 51, + "y": 76, + "isWall": true + }, + { + "x": 51, + "y": 77, + "isWall": true + }, + { + "x": 51, + "y": 78, + "isWall": true + }, + { + "x": 51, + "y": 79, + "isWall": true + }, + { + "x": 51, + "y": 80, + "isWall": true + }, + { + "x": 51, + "y": 81, + "isWall": true + }, + { + "x": 51, + "y": 82, + "isWall": true + }, + { + "x": 51, + "y": 83, + "isWall": true + }, + { + "x": 51, + "y": 84, + "isWall": true + }, + { + "x": 51, + "y": 85, + "isWall": true + }, + { + "x": 51, + "y": 86, + "isWall": true + }, + { + "x": 51, + "y": 87, + "isWall": true + }, + { + "x": 51, + "y": 88, + "isWall": true + }, + { + "x": 51, + "y": 89, + "isWall": true + }, + { + "x": 51, + "y": 90, + "isWall": true + }, + { + "x": 51, + "y": 91, + "isWall": true + }, + { + "x": 51, + "y": 92, + "isWall": true + }, + { + "x": 51, + "y": 93, + "isWall": true + }, + { + "x": 51, + "y": 94, + "isWall": true + }, + { + "x": 51, + "y": 95, + "isWall": true + }, + { + "x": 51, + "y": 96, + "isWall": true + }, + { + "x": 51, + "y": 97, + "isWall": true + }, + { + "x": 51, + "y": 98, + "isWall": true + }, + { + "x": 51, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 52, + "y": 0, + "isWall": false + }, + { + "x": 52, + "y": 1, + "isWall": false + }, + { + "x": 52, + "y": 2, + "isWall": false + }, + { + "x": 52, + "y": 3, + "isWall": false + }, + { + "x": 52, + "y": 4, + "isWall": true + }, + { + "x": 52, + "y": 5, + "isWall": false + }, + { + "x": 52, + "y": 6, + "isWall": true + }, + { + "x": 52, + "y": 7, + "isWall": false + }, + { + "x": 52, + "y": 8, + "isWall": false + }, + { + "x": 52, + "y": 9, + "isWall": false + }, + { + "x": 52, + "y": 10, + "isWall": true + }, + { + "x": 52, + "y": 11, + "isWall": true + }, + { + "x": 52, + "y": 12, + "isWall": false + }, + { + "x": 52, + "y": 13, + "isWall": true + }, + { + "x": 52, + "y": 14, + "isWall": false + }, + { + "x": 52, + "y": 15, + "isWall": false + }, + { + "x": 52, + "y": 16, + "isWall": false + }, + { + "x": 52, + "y": 17, + "isWall": false + }, + { + "x": 52, + "y": 18, + "isWall": false + }, + { + "x": 52, + "y": 19, + "isWall": true + }, + { + "x": 52, + "y": 20, + "isWall": false + }, + { + "x": 52, + "y": 21, + "isWall": true + }, + { + "x": 52, + "y": 22, + "isWall": false + }, + { + "x": 52, + "y": 23, + "isWall": false + }, + { + "x": 52, + "y": 24, + "isWall": false + }, + { + "x": 52, + "y": 25, + "isWall": false + }, + { + "x": 52, + "y": 26, + "isWall": false + }, + { + "x": 52, + "y": 27, + "isWall": false + }, + { + "x": 52, + "y": 28, + "isWall": false + }, + { + "x": 52, + "y": 29, + "isWall": false + }, + { + "x": 52, + "y": 30, + "isWall": false + }, + { + "x": 52, + "y": 31, + "isWall": false + }, + { + "x": 52, + "y": 32, + "isWall": false + }, + { + "x": 52, + "y": 33, + "isWall": false + }, + { + "x": 52, + "y": 34, + "isWall": false + }, + { + "x": 52, + "y": 35, + "isWall": false + }, + { + "x": 52, + "y": 36, + "isWall": false + }, + { + "x": 52, + "y": 37, + "isWall": false + }, + { + "x": 52, + "y": 38, + "isWall": false + }, + { + "x": 52, + "y": 39, + "isWall": false + }, + { + "x": 52, + "y": 40, + "isWall": true + }, + { + "x": 52, + "y": 41, + "isWall": true + }, + { + "x": 52, + "y": 42, + "isWall": false + }, + { + "x": 52, + "y": 43, + "isWall": true + }, + { + "x": 52, + "y": 44, + "isWall": false + }, + { + "x": 52, + "y": 45, + "isWall": false + }, + { + "x": 52, + "y": 46, + "isWall": true + }, + { + "x": 52, + "y": 47, + "isWall": false + }, + { + "x": 52, + "y": 48, + "isWall": true + }, + { + "x": 52, + "y": 49, + "isWall": true + }, + { + "x": 52, + "y": 50, + "isWall": true + }, + { + "x": 52, + "y": 51, + "isWall": false + }, + { + "x": 52, + "y": 52, + "isWall": false + }, + { + "x": 52, + "y": 53, + "isWall": false + }, + { + "x": 52, + "y": 54, + "isWall": true + }, + { + "x": 52, + "y": 55, + "isWall": false + }, + { + "x": 52, + "y": 56, + "isWall": false + }, + { + "x": 52, + "y": 57, + "isWall": false + }, + { + "x": 52, + "y": 58, + "isWall": false + }, + { + "x": 52, + "y": 59, + "isWall": false + }, + { + "x": 52, + "y": 60, + "isWall": true + }, + { + "x": 52, + "y": 61, + "isWall": true + }, + { + "x": 52, + "y": 62, + "isWall": false + }, + { + "x": 52, + "y": 63, + "isWall": false + }, + { + "x": 52, + "y": 64, + "isWall": false + }, + { + "x": 52, + "y": 65, + "isWall": false + }, + { + "x": 52, + "y": 66, + "isWall": false + }, + { + "x": 52, + "y": 67, + "isWall": false + }, + { + "x": 52, + "y": 68, + "isWall": false + }, + { + "x": 52, + "y": 69, + "isWall": false + }, + { + "x": 52, + "y": 70, + "isWall": false + }, + { + "x": 52, + "y": 71, + "isWall": true + }, + { + "x": 52, + "y": 72, + "isWall": true + }, + { + "x": 52, + "y": 73, + "isWall": true + }, + { + "x": 52, + "y": 74, + "isWall": false + }, + { + "x": 52, + "y": 75, + "isWall": false + }, + { + "x": 52, + "y": 76, + "isWall": true + }, + { + "x": 52, + "y": 77, + "isWall": false + }, + { + "x": 52, + "y": 78, + "isWall": false + }, + { + "x": 52, + "y": 79, + "isWall": false + }, + { + "x": 52, + "y": 80, + "isWall": false + }, + { + "x": 52, + "y": 81, + "isWall": true + }, + { + "x": 52, + "y": 82, + "isWall": true + }, + { + "x": 52, + "y": 83, + "isWall": false + }, + { + "x": 52, + "y": 84, + "isWall": false + }, + { + "x": 52, + "y": 85, + "isWall": false + }, + { + "x": 52, + "y": 86, + "isWall": true + }, + { + "x": 52, + "y": 87, + "isWall": false + }, + { + "x": 52, + "y": 88, + "isWall": false + }, + { + "x": 52, + "y": 89, + "isWall": false + }, + { + "x": 52, + "y": 90, + "isWall": false + }, + { + "x": 52, + "y": 91, + "isWall": false + }, + { + "x": 52, + "y": 92, + "isWall": false + }, + { + "x": 52, + "y": 93, + "isWall": true + }, + { + "x": 52, + "y": 94, + "isWall": false + }, + { + "x": 52, + "y": 95, + "isWall": false + }, + { + "x": 52, + "y": 96, + "isWall": false + }, + { + "x": 52, + "y": 97, + "isWall": true + }, + { + "x": 52, + "y": 98, + "isWall": true + }, + { + "x": 52, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 53, + "y": 0, + "isWall": false + }, + { + "x": 53, + "y": 1, + "isWall": true + }, + { + "x": 53, + "y": 2, + "isWall": false + }, + { + "x": 53, + "y": 3, + "isWall": false + }, + { + "x": 53, + "y": 4, + "isWall": false + }, + { + "x": 53, + "y": 5, + "isWall": true + }, + { + "x": 53, + "y": 6, + "isWall": false + }, + { + "x": 53, + "y": 7, + "isWall": false + }, + { + "x": 53, + "y": 8, + "isWall": false + }, + { + "x": 53, + "y": 9, + "isWall": false + }, + { + "x": 53, + "y": 10, + "isWall": true + }, + { + "x": 53, + "y": 11, + "isWall": false + }, + { + "x": 53, + "y": 12, + "isWall": true + }, + { + "x": 53, + "y": 13, + "isWall": false + }, + { + "x": 53, + "y": 14, + "isWall": false + }, + { + "x": 53, + "y": 15, + "isWall": false + }, + { + "x": 53, + "y": 16, + "isWall": true + }, + { + "x": 53, + "y": 17, + "isWall": false + }, + { + "x": 53, + "y": 18, + "isWall": true + }, + { + "x": 53, + "y": 19, + "isWall": true + }, + { + "x": 53, + "y": 20, + "isWall": true + }, + { + "x": 53, + "y": 21, + "isWall": false + }, + { + "x": 53, + "y": 22, + "isWall": true + }, + { + "x": 53, + "y": 23, + "isWall": false + }, + { + "x": 53, + "y": 24, + "isWall": true + }, + { + "x": 53, + "y": 25, + "isWall": false + }, + { + "x": 53, + "y": 26, + "isWall": false + }, + { + "x": 53, + "y": 27, + "isWall": false + }, + { + "x": 53, + "y": 28, + "isWall": true + }, + { + "x": 53, + "y": 29, + "isWall": true + }, + { + "x": 53, + "y": 30, + "isWall": false + }, + { + "x": 53, + "y": 31, + "isWall": false + }, + { + "x": 53, + "y": 32, + "isWall": true + }, + { + "x": 53, + "y": 33, + "isWall": false + }, + { + "x": 53, + "y": 34, + "isWall": false + }, + { + "x": 53, + "y": 35, + "isWall": false + }, + { + "x": 53, + "y": 36, + "isWall": true + }, + { + "x": 53, + "y": 37, + "isWall": true + }, + { + "x": 53, + "y": 38, + "isWall": false + }, + { + "x": 53, + "y": 39, + "isWall": false + }, + { + "x": 53, + "y": 40, + "isWall": false + }, + { + "x": 53, + "y": 41, + "isWall": false + }, + { + "x": 53, + "y": 42, + "isWall": false + }, + { + "x": 53, + "y": 43, + "isWall": false + }, + { + "x": 53, + "y": 44, + "isWall": true + }, + { + "x": 53, + "y": 45, + "isWall": true + }, + { + "x": 53, + "y": 46, + "isWall": false + }, + { + "x": 53, + "y": 47, + "isWall": false + }, + { + "x": 53, + "y": 48, + "isWall": true + }, + { + "x": 53, + "y": 49, + "isWall": false + }, + { + "x": 53, + "y": 50, + "isWall": false + }, + { + "x": 53, + "y": 51, + "isWall": false + }, + { + "x": 53, + "y": 52, + "isWall": false + }, + { + "x": 53, + "y": 53, + "isWall": false + }, + { + "x": 53, + "y": 54, + "isWall": true + }, + { + "x": 53, + "y": 55, + "isWall": true + }, + { + "x": 53, + "y": 56, + "isWall": false + }, + { + "x": 53, + "y": 57, + "isWall": false + }, + { + "x": 53, + "y": 58, + "isWall": false + }, + { + "x": 53, + "y": 59, + "isWall": false + }, + { + "x": 53, + "y": 60, + "isWall": true + }, + { + "x": 53, + "y": 61, + "isWall": false + }, + { + "x": 53, + "y": 62, + "isWall": false + }, + { + "x": 53, + "y": 63, + "isWall": false + }, + { + "x": 53, + "y": 64, + "isWall": true + }, + { + "x": 53, + "y": 65, + "isWall": false + }, + { + "x": 53, + "y": 66, + "isWall": true + }, + { + "x": 53, + "y": 67, + "isWall": true + }, + { + "x": 53, + "y": 68, + "isWall": false + }, + { + "x": 53, + "y": 69, + "isWall": true + }, + { + "x": 53, + "y": 70, + "isWall": false + }, + { + "x": 53, + "y": 71, + "isWall": false + }, + { + "x": 53, + "y": 72, + "isWall": false + }, + { + "x": 53, + "y": 73, + "isWall": false + }, + { + "x": 53, + "y": 74, + "isWall": false + }, + { + "x": 53, + "y": 75, + "isWall": false + }, + { + "x": 53, + "y": 76, + "isWall": false + }, + { + "x": 53, + "y": 77, + "isWall": false + }, + { + "x": 53, + "y": 78, + "isWall": false + }, + { + "x": 53, + "y": 79, + "isWall": true + }, + { + "x": 53, + "y": 80, + "isWall": false + }, + { + "x": 53, + "y": 81, + "isWall": false + }, + { + "x": 53, + "y": 82, + "isWall": false + }, + { + "x": 53, + "y": 83, + "isWall": true + }, + { + "x": 53, + "y": 84, + "isWall": true + }, + { + "x": 53, + "y": 85, + "isWall": false + }, + { + "x": 53, + "y": 86, + "isWall": false + }, + { + "x": 53, + "y": 87, + "isWall": true + }, + { + "x": 53, + "y": 88, + "isWall": true + }, + { + "x": 53, + "y": 89, + "isWall": false + }, + { + "x": 53, + "y": 90, + "isWall": true + }, + { + "x": 53, + "y": 91, + "isWall": false + }, + { + "x": 53, + "y": 92, + "isWall": false + }, + { + "x": 53, + "y": 93, + "isWall": true + }, + { + "x": 53, + "y": 94, + "isWall": false + }, + { + "x": 53, + "y": 95, + "isWall": false + }, + { + "x": 53, + "y": 96, + "isWall": true + }, + { + "x": 53, + "y": 97, + "isWall": true + }, + { + "x": 53, + "y": 98, + "isWall": true + }, + { + "x": 53, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 54, + "y": 0, + "isWall": false + }, + { + "x": 54, + "y": 1, + "isWall": true + }, + { + "x": 54, + "y": 2, + "isWall": false + }, + { + "x": 54, + "y": 3, + "isWall": false + }, + { + "x": 54, + "y": 4, + "isWall": false + }, + { + "x": 54, + "y": 5, + "isWall": false + }, + { + "x": 54, + "y": 6, + "isWall": false + }, + { + "x": 54, + "y": 7, + "isWall": false + }, + { + "x": 54, + "y": 8, + "isWall": true + }, + { + "x": 54, + "y": 9, + "isWall": false + }, + { + "x": 54, + "y": 10, + "isWall": false + }, + { + "x": 54, + "y": 11, + "isWall": false + }, + { + "x": 54, + "y": 12, + "isWall": false + }, + { + "x": 54, + "y": 13, + "isWall": true + }, + { + "x": 54, + "y": 14, + "isWall": false + }, + { + "x": 54, + "y": 15, + "isWall": true + }, + { + "x": 54, + "y": 16, + "isWall": false + }, + { + "x": 54, + "y": 17, + "isWall": false + }, + { + "x": 54, + "y": 18, + "isWall": false + }, + { + "x": 54, + "y": 19, + "isWall": true + }, + { + "x": 54, + "y": 20, + "isWall": true + }, + { + "x": 54, + "y": 21, + "isWall": true + }, + { + "x": 54, + "y": 22, + "isWall": false + }, + { + "x": 54, + "y": 23, + "isWall": false + }, + { + "x": 54, + "y": 24, + "isWall": true + }, + { + "x": 54, + "y": 25, + "isWall": true + }, + { + "x": 54, + "y": 26, + "isWall": true + }, + { + "x": 54, + "y": 27, + "isWall": false + }, + { + "x": 54, + "y": 28, + "isWall": false + }, + { + "x": 54, + "y": 29, + "isWall": false + }, + { + "x": 54, + "y": 30, + "isWall": false + }, + { + "x": 54, + "y": 31, + "isWall": false + }, + { + "x": 54, + "y": 32, + "isWall": false + }, + { + "x": 54, + "y": 33, + "isWall": false + }, + { + "x": 54, + "y": 34, + "isWall": false + }, + { + "x": 54, + "y": 35, + "isWall": true + }, + { + "x": 54, + "y": 36, + "isWall": false + }, + { + "x": 54, + "y": 37, + "isWall": false + }, + { + "x": 54, + "y": 38, + "isWall": false + }, + { + "x": 54, + "y": 39, + "isWall": false + }, + { + "x": 54, + "y": 40, + "isWall": true + }, + { + "x": 54, + "y": 41, + "isWall": false + }, + { + "x": 54, + "y": 42, + "isWall": false + }, + { + "x": 54, + "y": 43, + "isWall": false + }, + { + "x": 54, + "y": 44, + "isWall": false + }, + { + "x": 54, + "y": 45, + "isWall": false + }, + { + "x": 54, + "y": 46, + "isWall": false + }, + { + "x": 54, + "y": 47, + "isWall": true + }, + { + "x": 54, + "y": 48, + "isWall": false + }, + { + "x": 54, + "y": 49, + "isWall": false + }, + { + "x": 54, + "y": 50, + "isWall": false + }, + { + "x": 54, + "y": 51, + "isWall": false + }, + { + "x": 54, + "y": 52, + "isWall": false + }, + { + "x": 54, + "y": 53, + "isWall": true + }, + { + "x": 54, + "y": 54, + "isWall": true + }, + { + "x": 54, + "y": 55, + "isWall": true + }, + { + "x": 54, + "y": 56, + "isWall": true + }, + { + "x": 54, + "y": 57, + "isWall": true + }, + { + "x": 54, + "y": 58, + "isWall": true + }, + { + "x": 54, + "y": 59, + "isWall": true + }, + { + "x": 54, + "y": 60, + "isWall": true + }, + { + "x": 54, + "y": 61, + "isWall": true + }, + { + "x": 54, + "y": 62, + "isWall": true + }, + { + "x": 54, + "y": 63, + "isWall": true + }, + { + "x": 54, + "y": 64, + "isWall": true + }, + { + "x": 54, + "y": 65, + "isWall": true + }, + { + "x": 54, + "y": 66, + "isWall": true + }, + { + "x": 54, + "y": 67, + "isWall": true + }, + { + "x": 54, + "y": 68, + "isWall": false + }, + { + "x": 54, + "y": 69, + "isWall": false + }, + { + "x": 54, + "y": 70, + "isWall": false + }, + { + "x": 54, + "y": 71, + "isWall": false + }, + { + "x": 54, + "y": 72, + "isWall": true + }, + { + "x": 54, + "y": 73, + "isWall": false + }, + { + "x": 54, + "y": 74, + "isWall": false + }, + { + "x": 54, + "y": 75, + "isWall": false + }, + { + "x": 54, + "y": 76, + "isWall": false + }, + { + "x": 54, + "y": 77, + "isWall": false + }, + { + "x": 54, + "y": 78, + "isWall": false + }, + { + "x": 54, + "y": 79, + "isWall": false + }, + { + "x": 54, + "y": 80, + "isWall": false + }, + { + "x": 54, + "y": 81, + "isWall": false + }, + { + "x": 54, + "y": 82, + "isWall": false + }, + { + "x": 54, + "y": 83, + "isWall": false + }, + { + "x": 54, + "y": 84, + "isWall": true + }, + { + "x": 54, + "y": 85, + "isWall": true + }, + { + "x": 54, + "y": 86, + "isWall": false + }, + { + "x": 54, + "y": 87, + "isWall": false + }, + { + "x": 54, + "y": 88, + "isWall": false + }, + { + "x": 54, + "y": 89, + "isWall": true + }, + { + "x": 54, + "y": 90, + "isWall": false + }, + { + "x": 54, + "y": 91, + "isWall": true + }, + { + "x": 54, + "y": 92, + "isWall": true + }, + { + "x": 54, + "y": 93, + "isWall": true + }, + { + "x": 54, + "y": 94, + "isWall": false + }, + { + "x": 54, + "y": 95, + "isWall": false + }, + { + "x": 54, + "y": 96, + "isWall": false + }, + { + "x": 54, + "y": 97, + "isWall": false + }, + { + "x": 54, + "y": 98, + "isWall": true + }, + { + "x": 54, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 55, + "y": 0, + "isWall": false + }, + { + "x": 55, + "y": 1, + "isWall": false + }, + { + "x": 55, + "y": 2, + "isWall": true + }, + { + "x": 55, + "y": 3, + "isWall": true + }, + { + "x": 55, + "y": 4, + "isWall": false + }, + { + "x": 55, + "y": 5, + "isWall": true + }, + { + "x": 55, + "y": 6, + "isWall": false + }, + { + "x": 55, + "y": 7, + "isWall": false + }, + { + "x": 55, + "y": 8, + "isWall": true + }, + { + "x": 55, + "y": 9, + "isWall": false + }, + { + "x": 55, + "y": 10, + "isWall": false + }, + { + "x": 55, + "y": 11, + "isWall": false + }, + { + "x": 55, + "y": 12, + "isWall": false + }, + { + "x": 55, + "y": 13, + "isWall": false + }, + { + "x": 55, + "y": 14, + "isWall": false + }, + { + "x": 55, + "y": 15, + "isWall": false + }, + { + "x": 55, + "y": 16, + "isWall": false + }, + { + "x": 55, + "y": 17, + "isWall": false + }, + { + "x": 55, + "y": 18, + "isWall": false + }, + { + "x": 55, + "y": 19, + "isWall": true + }, + { + "x": 55, + "y": 20, + "isWall": true + }, + { + "x": 55, + "y": 21, + "isWall": false + }, + { + "x": 55, + "y": 22, + "isWall": true + }, + { + "x": 55, + "y": 23, + "isWall": true + }, + { + "x": 55, + "y": 24, + "isWall": false + }, + { + "x": 55, + "y": 25, + "isWall": false + }, + { + "x": 55, + "y": 26, + "isWall": true + }, + { + "x": 55, + "y": 27, + "isWall": false + }, + { + "x": 55, + "y": 28, + "isWall": false + }, + { + "x": 55, + "y": 29, + "isWall": false + }, + { + "x": 55, + "y": 30, + "isWall": false + }, + { + "x": 55, + "y": 31, + "isWall": true + }, + { + "x": 55, + "y": 32, + "isWall": true + }, + { + "x": 55, + "y": 33, + "isWall": true + }, + { + "x": 55, + "y": 34, + "isWall": false + }, + { + "x": 55, + "y": 35, + "isWall": true + }, + { + "x": 55, + "y": 36, + "isWall": false + }, + { + "x": 55, + "y": 37, + "isWall": false + }, + { + "x": 55, + "y": 38, + "isWall": false + }, + { + "x": 55, + "y": 39, + "isWall": false + }, + { + "x": 55, + "y": 40, + "isWall": true + }, + { + "x": 55, + "y": 41, + "isWall": false + }, + { + "x": 55, + "y": 42, + "isWall": true + }, + { + "x": 55, + "y": 43, + "isWall": false + }, + { + "x": 55, + "y": 44, + "isWall": false + }, + { + "x": 55, + "y": 45, + "isWall": true + }, + { + "x": 55, + "y": 46, + "isWall": true + }, + { + "x": 55, + "y": 47, + "isWall": false + }, + { + "x": 55, + "y": 48, + "isWall": true + }, + { + "x": 55, + "y": 49, + "isWall": false + }, + { + "x": 55, + "y": 50, + "isWall": false + }, + { + "x": 55, + "y": 51, + "isWall": true + }, + { + "x": 55, + "y": 52, + "isWall": false + }, + { + "x": 55, + "y": 53, + "isWall": false + }, + { + "x": 55, + "y": 54, + "isWall": false + }, + { + "x": 55, + "y": 55, + "isWall": false + }, + { + "x": 55, + "y": 56, + "isWall": true + }, + { + "x": 55, + "y": 57, + "isWall": false + }, + { + "x": 55, + "y": 58, + "isWall": false + }, + { + "x": 55, + "y": 59, + "isWall": false + }, + { + "x": 55, + "y": 60, + "isWall": false + }, + { + "x": 55, + "y": 61, + "isWall": false + }, + { + "x": 55, + "y": 62, + "isWall": true + }, + { + "x": 55, + "y": 63, + "isWall": false + }, + { + "x": 55, + "y": 64, + "isWall": false + }, + { + "x": 55, + "y": 65, + "isWall": false + }, + { + "x": 55, + "y": 66, + "isWall": false + }, + { + "x": 55, + "y": 67, + "isWall": false + }, + { + "x": 55, + "y": 68, + "isWall": false + }, + { + "x": 55, + "y": 69, + "isWall": false + }, + { + "x": 55, + "y": 70, + "isWall": false + }, + { + "x": 55, + "y": 71, + "isWall": false + }, + { + "x": 55, + "y": 72, + "isWall": false + }, + { + "x": 55, + "y": 73, + "isWall": false + }, + { + "x": 55, + "y": 74, + "isWall": false + }, + { + "x": 55, + "y": 75, + "isWall": true + }, + { + "x": 55, + "y": 76, + "isWall": false + }, + { + "x": 55, + "y": 77, + "isWall": false + }, + { + "x": 55, + "y": 78, + "isWall": false + }, + { + "x": 55, + "y": 79, + "isWall": true + }, + { + "x": 55, + "y": 80, + "isWall": true + }, + { + "x": 55, + "y": 81, + "isWall": false + }, + { + "x": 55, + "y": 82, + "isWall": false + }, + { + "x": 55, + "y": 83, + "isWall": false + }, + { + "x": 55, + "y": 84, + "isWall": false + }, + { + "x": 55, + "y": 85, + "isWall": true + }, + { + "x": 55, + "y": 86, + "isWall": true + }, + { + "x": 55, + "y": 87, + "isWall": false + }, + { + "x": 55, + "y": 88, + "isWall": true + }, + { + "x": 55, + "y": 89, + "isWall": false + }, + { + "x": 55, + "y": 90, + "isWall": true + }, + { + "x": 55, + "y": 91, + "isWall": true + }, + { + "x": 55, + "y": 92, + "isWall": false + }, + { + "x": 55, + "y": 93, + "isWall": false + }, + { + "x": 55, + "y": 94, + "isWall": false + }, + { + "x": 55, + "y": 95, + "isWall": true + }, + { + "x": 55, + "y": 96, + "isWall": false + }, + { + "x": 55, + "y": 97, + "isWall": false + }, + { + "x": 55, + "y": 98, + "isWall": true + }, + { + "x": 55, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 56, + "y": 0, + "isWall": false + }, + { + "x": 56, + "y": 1, + "isWall": true + }, + { + "x": 56, + "y": 2, + "isWall": false + }, + { + "x": 56, + "y": 3, + "isWall": false + }, + { + "x": 56, + "y": 4, + "isWall": true + }, + { + "x": 56, + "y": 5, + "isWall": true + }, + { + "x": 56, + "y": 6, + "isWall": false + }, + { + "x": 56, + "y": 7, + "isWall": false + }, + { + "x": 56, + "y": 8, + "isWall": false + }, + { + "x": 56, + "y": 9, + "isWall": true + }, + { + "x": 56, + "y": 10, + "isWall": false + }, + { + "x": 56, + "y": 11, + "isWall": false + }, + { + "x": 56, + "y": 12, + "isWall": false + }, + { + "x": 56, + "y": 13, + "isWall": false + }, + { + "x": 56, + "y": 14, + "isWall": false + }, + { + "x": 56, + "y": 15, + "isWall": false + }, + { + "x": 56, + "y": 16, + "isWall": true + }, + { + "x": 56, + "y": 17, + "isWall": true + }, + { + "x": 56, + "y": 18, + "isWall": false + }, + { + "x": 56, + "y": 19, + "isWall": false + }, + { + "x": 56, + "y": 20, + "isWall": false + }, + { + "x": 56, + "y": 21, + "isWall": false + }, + { + "x": 56, + "y": 22, + "isWall": false + }, + { + "x": 56, + "y": 23, + "isWall": true + }, + { + "x": 56, + "y": 24, + "isWall": false + }, + { + "x": 56, + "y": 25, + "isWall": false + }, + { + "x": 56, + "y": 26, + "isWall": true + }, + { + "x": 56, + "y": 27, + "isWall": true + }, + { + "x": 56, + "y": 28, + "isWall": false + }, + { + "x": 56, + "y": 29, + "isWall": false + }, + { + "x": 56, + "y": 30, + "isWall": false + }, + { + "x": 56, + "y": 31, + "isWall": true + }, + { + "x": 56, + "y": 32, + "isWall": false + }, + { + "x": 56, + "y": 33, + "isWall": false + }, + { + "x": 56, + "y": 34, + "isWall": false + }, + { + "x": 56, + "y": 35, + "isWall": false + }, + { + "x": 56, + "y": 36, + "isWall": false + }, + { + "x": 56, + "y": 37, + "isWall": false + }, + { + "x": 56, + "y": 38, + "isWall": true + }, + { + "x": 56, + "y": 39, + "isWall": false + }, + { + "x": 56, + "y": 40, + "isWall": false + }, + { + "x": 56, + "y": 41, + "isWall": false + }, + { + "x": 56, + "y": 42, + "isWall": true + }, + { + "x": 56, + "y": 43, + "isWall": false + }, + { + "x": 56, + "y": 44, + "isWall": false + }, + { + "x": 56, + "y": 45, + "isWall": false + }, + { + "x": 56, + "y": 46, + "isWall": true + }, + { + "x": 56, + "y": 47, + "isWall": false + }, + { + "x": 56, + "y": 48, + "isWall": false + }, + { + "x": 56, + "y": 49, + "isWall": true + }, + { + "x": 56, + "y": 50, + "isWall": false + }, + { + "x": 56, + "y": 51, + "isWall": true + }, + { + "x": 56, + "y": 52, + "isWall": true + }, + { + "x": 56, + "y": 53, + "isWall": false + }, + { + "x": 56, + "y": 54, + "isWall": false + }, + { + "x": 56, + "y": 55, + "isWall": false + }, + { + "x": 56, + "y": 56, + "isWall": false + }, + { + "x": 56, + "y": 57, + "isWall": false + }, + { + "x": 56, + "y": 58, + "isWall": false + }, + { + "x": 56, + "y": 59, + "isWall": false + }, + { + "x": 56, + "y": 60, + "isWall": true + }, + { + "x": 56, + "y": 61, + "isWall": false + }, + { + "x": 56, + "y": 62, + "isWall": true + }, + { + "x": 56, + "y": 63, + "isWall": false + }, + { + "x": 56, + "y": 64, + "isWall": false + }, + { + "x": 56, + "y": 65, + "isWall": true + }, + { + "x": 56, + "y": 66, + "isWall": false + }, + { + "x": 56, + "y": 67, + "isWall": true + }, + { + "x": 56, + "y": 68, + "isWall": false + }, + { + "x": 56, + "y": 69, + "isWall": false + }, + { + "x": 56, + "y": 70, + "isWall": false + }, + { + "x": 56, + "y": 71, + "isWall": false + }, + { + "x": 56, + "y": 72, + "isWall": false + }, + { + "x": 56, + "y": 73, + "isWall": false + }, + { + "x": 56, + "y": 74, + "isWall": false + }, + { + "x": 56, + "y": 75, + "isWall": false + }, + { + "x": 56, + "y": 76, + "isWall": true + }, + { + "x": 56, + "y": 77, + "isWall": true + }, + { + "x": 56, + "y": 78, + "isWall": true + }, + { + "x": 56, + "y": 79, + "isWall": false + }, + { + "x": 56, + "y": 80, + "isWall": true + }, + { + "x": 56, + "y": 81, + "isWall": true + }, + { + "x": 56, + "y": 82, + "isWall": false + }, + { + "x": 56, + "y": 83, + "isWall": false + }, + { + "x": 56, + "y": 84, + "isWall": false + }, + { + "x": 56, + "y": 85, + "isWall": false + }, + { + "x": 56, + "y": 86, + "isWall": true + }, + { + "x": 56, + "y": 87, + "isWall": false + }, + { + "x": 56, + "y": 88, + "isWall": true + }, + { + "x": 56, + "y": 89, + "isWall": true + }, + { + "x": 56, + "y": 90, + "isWall": true + }, + { + "x": 56, + "y": 91, + "isWall": false + }, + { + "x": 56, + "y": 92, + "isWall": true + }, + { + "x": 56, + "y": 93, + "isWall": false + }, + { + "x": 56, + "y": 94, + "isWall": false + }, + { + "x": 56, + "y": 95, + "isWall": false + }, + { + "x": 56, + "y": 96, + "isWall": true + }, + { + "x": 56, + "y": 97, + "isWall": false + }, + { + "x": 56, + "y": 98, + "isWall": false + }, + { + "x": 56, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 57, + "y": 0, + "isWall": false + }, + { + "x": 57, + "y": 1, + "isWall": false + }, + { + "x": 57, + "y": 2, + "isWall": true + }, + { + "x": 57, + "y": 3, + "isWall": false + }, + { + "x": 57, + "y": 4, + "isWall": false + }, + { + "x": 57, + "y": 5, + "isWall": true + }, + { + "x": 57, + "y": 6, + "isWall": false + }, + { + "x": 57, + "y": 7, + "isWall": false + }, + { + "x": 57, + "y": 8, + "isWall": false + }, + { + "x": 57, + "y": 9, + "isWall": true + }, + { + "x": 57, + "y": 10, + "isWall": false + }, + { + "x": 57, + "y": 11, + "isWall": false + }, + { + "x": 57, + "y": 12, + "isWall": true + }, + { + "x": 57, + "y": 13, + "isWall": false + }, + { + "x": 57, + "y": 14, + "isWall": true + }, + { + "x": 57, + "y": 15, + "isWall": false + }, + { + "x": 57, + "y": 16, + "isWall": false + }, + { + "x": 57, + "y": 17, + "isWall": false + }, + { + "x": 57, + "y": 18, + "isWall": true + }, + { + "x": 57, + "y": 19, + "isWall": false + }, + { + "x": 57, + "y": 20, + "isWall": true + }, + { + "x": 57, + "y": 21, + "isWall": false + }, + { + "x": 57, + "y": 22, + "isWall": true + }, + { + "x": 57, + "y": 23, + "isWall": false + }, + { + "x": 57, + "y": 24, + "isWall": false + }, + { + "x": 57, + "y": 25, + "isWall": false + }, + { + "x": 57, + "y": 26, + "isWall": false + }, + { + "x": 57, + "y": 27, + "isWall": true + }, + { + "x": 57, + "y": 28, + "isWall": false + }, + { + "x": 57, + "y": 29, + "isWall": false + }, + { + "x": 57, + "y": 30, + "isWall": false + }, + { + "x": 57, + "y": 31, + "isWall": true + }, + { + "x": 57, + "y": 32, + "isWall": false + }, + { + "x": 57, + "y": 33, + "isWall": false + }, + { + "x": 57, + "y": 34, + "isWall": true + }, + { + "x": 57, + "y": 35, + "isWall": false + }, + { + "x": 57, + "y": 36, + "isWall": false + }, + { + "x": 57, + "y": 37, + "isWall": false + }, + { + "x": 57, + "y": 38, + "isWall": false + }, + { + "x": 57, + "y": 39, + "isWall": true + }, + { + "x": 57, + "y": 40, + "isWall": false + }, + { + "x": 57, + "y": 41, + "isWall": true + }, + { + "x": 57, + "y": 42, + "isWall": true + }, + { + "x": 57, + "y": 43, + "isWall": false + }, + { + "x": 57, + "y": 44, + "isWall": true + }, + { + "x": 57, + "y": 45, + "isWall": true + }, + { + "x": 57, + "y": 46, + "isWall": true + }, + { + "x": 57, + "y": 47, + "isWall": false + }, + { + "x": 57, + "y": 48, + "isWall": true + }, + { + "x": 57, + "y": 49, + "isWall": true + }, + { + "x": 57, + "y": 50, + "isWall": true + }, + { + "x": 57, + "y": 51, + "isWall": true + }, + { + "x": 57, + "y": 52, + "isWall": false + }, + { + "x": 57, + "y": 53, + "isWall": true + }, + { + "x": 57, + "y": 54, + "isWall": false + }, + { + "x": 57, + "y": 55, + "isWall": true + }, + { + "x": 57, + "y": 56, + "isWall": true + }, + { + "x": 57, + "y": 57, + "isWall": false + }, + { + "x": 57, + "y": 58, + "isWall": true + }, + { + "x": 57, + "y": 59, + "isWall": false + }, + { + "x": 57, + "y": 60, + "isWall": false + }, + { + "x": 57, + "y": 61, + "isWall": false + }, + { + "x": 57, + "y": 62, + "isWall": false + }, + { + "x": 57, + "y": 63, + "isWall": true + }, + { + "x": 57, + "y": 64, + "isWall": true + }, + { + "x": 57, + "y": 65, + "isWall": false + }, + { + "x": 57, + "y": 66, + "isWall": false + }, + { + "x": 57, + "y": 67, + "isWall": false + }, + { + "x": 57, + "y": 68, + "isWall": false + }, + { + "x": 57, + "y": 69, + "isWall": false + }, + { + "x": 57, + "y": 70, + "isWall": false + }, + { + "x": 57, + "y": 71, + "isWall": false + }, + { + "x": 57, + "y": 72, + "isWall": true + }, + { + "x": 57, + "y": 73, + "isWall": false + }, + { + "x": 57, + "y": 74, + "isWall": false + }, + { + "x": 57, + "y": 75, + "isWall": false + }, + { + "x": 57, + "y": 76, + "isWall": false + }, + { + "x": 57, + "y": 77, + "isWall": false + }, + { + "x": 57, + "y": 78, + "isWall": false + }, + { + "x": 57, + "y": 79, + "isWall": true + }, + { + "x": 57, + "y": 80, + "isWall": false + }, + { + "x": 57, + "y": 81, + "isWall": false + }, + { + "x": 57, + "y": 82, + "isWall": false + }, + { + "x": 57, + "y": 83, + "isWall": false + }, + { + "x": 57, + "y": 84, + "isWall": false + }, + { + "x": 57, + "y": 85, + "isWall": false + }, + { + "x": 57, + "y": 86, + "isWall": false + }, + { + "x": 57, + "y": 87, + "isWall": false + }, + { + "x": 57, + "y": 88, + "isWall": false + }, + { + "x": 57, + "y": 89, + "isWall": false + }, + { + "x": 57, + "y": 90, + "isWall": false + }, + { + "x": 57, + "y": 91, + "isWall": false + }, + { + "x": 57, + "y": 92, + "isWall": false + }, + { + "x": 57, + "y": 93, + "isWall": false + }, + { + "x": 57, + "y": 94, + "isWall": true + }, + { + "x": 57, + "y": 95, + "isWall": false + }, + { + "x": 57, + "y": 96, + "isWall": false + }, + { + "x": 57, + "y": 97, + "isWall": false + }, + { + "x": 57, + "y": 98, + "isWall": false + }, + { + "x": 57, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 58, + "y": 0, + "isWall": false + }, + { + "x": 58, + "y": 1, + "isWall": true + }, + { + "x": 58, + "y": 2, + "isWall": false + }, + { + "x": 58, + "y": 3, + "isWall": false + }, + { + "x": 58, + "y": 4, + "isWall": false + }, + { + "x": 58, + "y": 5, + "isWall": false + }, + { + "x": 58, + "y": 6, + "isWall": false + }, + { + "x": 58, + "y": 7, + "isWall": false + }, + { + "x": 58, + "y": 8, + "isWall": false + }, + { + "x": 58, + "y": 9, + "isWall": false + }, + { + "x": 58, + "y": 10, + "isWall": false + }, + { + "x": 58, + "y": 11, + "isWall": false + }, + { + "x": 58, + "y": 12, + "isWall": false + }, + { + "x": 58, + "y": 13, + "isWall": false + }, + { + "x": 58, + "y": 14, + "isWall": false + }, + { + "x": 58, + "y": 15, + "isWall": false + }, + { + "x": 58, + "y": 16, + "isWall": false + }, + { + "x": 58, + "y": 17, + "isWall": false + }, + { + "x": 58, + "y": 18, + "isWall": false + }, + { + "x": 58, + "y": 19, + "isWall": false + }, + { + "x": 58, + "y": 20, + "isWall": false + }, + { + "x": 58, + "y": 21, + "isWall": false + }, + { + "x": 58, + "y": 22, + "isWall": true + }, + { + "x": 58, + "y": 23, + "isWall": false + }, + { + "x": 58, + "y": 24, + "isWall": true + }, + { + "x": 58, + "y": 25, + "isWall": false + }, + { + "x": 58, + "y": 26, + "isWall": false + }, + { + "x": 58, + "y": 27, + "isWall": true + }, + { + "x": 58, + "y": 28, + "isWall": true + }, + { + "x": 58, + "y": 29, + "isWall": false + }, + { + "x": 58, + "y": 30, + "isWall": false + }, + { + "x": 58, + "y": 31, + "isWall": true + }, + { + "x": 58, + "y": 32, + "isWall": false + }, + { + "x": 58, + "y": 33, + "isWall": true + }, + { + "x": 58, + "y": 34, + "isWall": false + }, + { + "x": 58, + "y": 35, + "isWall": false + }, + { + "x": 58, + "y": 36, + "isWall": false + }, + { + "x": 58, + "y": 37, + "isWall": false + }, + { + "x": 58, + "y": 38, + "isWall": false + }, + { + "x": 58, + "y": 39, + "isWall": false + }, + { + "x": 58, + "y": 40, + "isWall": false + }, + { + "x": 58, + "y": 41, + "isWall": false + }, + { + "x": 58, + "y": 42, + "isWall": false + }, + { + "x": 58, + "y": 43, + "isWall": false + }, + { + "x": 58, + "y": 44, + "isWall": true + }, + { + "x": 58, + "y": 45, + "isWall": false + }, + { + "x": 58, + "y": 46, + "isWall": false + }, + { + "x": 58, + "y": 47, + "isWall": false + }, + { + "x": 58, + "y": 48, + "isWall": false + }, + { + "x": 58, + "y": 49, + "isWall": false + }, + { + "x": 58, + "y": 50, + "isWall": false + }, + { + "x": 58, + "y": 51, + "isWall": false + }, + { + "x": 58, + "y": 52, + "isWall": false + }, + { + "x": 58, + "y": 53, + "isWall": false + }, + { + "x": 58, + "y": 54, + "isWall": true + }, + { + "x": 58, + "y": 55, + "isWall": false + }, + { + "x": 58, + "y": 56, + "isWall": true + }, + { + "x": 58, + "y": 57, + "isWall": false + }, + { + "x": 58, + "y": 58, + "isWall": false + }, + { + "x": 58, + "y": 59, + "isWall": false + }, + { + "x": 58, + "y": 60, + "isWall": true + }, + { + "x": 58, + "y": 61, + "isWall": false + }, + { + "x": 58, + "y": 62, + "isWall": false + }, + { + "x": 58, + "y": 63, + "isWall": true + }, + { + "x": 58, + "y": 64, + "isWall": false + }, + { + "x": 58, + "y": 65, + "isWall": false + }, + { + "x": 58, + "y": 66, + "isWall": false + }, + { + "x": 58, + "y": 67, + "isWall": true + }, + { + "x": 58, + "y": 68, + "isWall": false + }, + { + "x": 58, + "y": 69, + "isWall": false + }, + { + "x": 58, + "y": 70, + "isWall": false + }, + { + "x": 58, + "y": 71, + "isWall": false + }, + { + "x": 58, + "y": 72, + "isWall": false + }, + { + "x": 58, + "y": 73, + "isWall": true + }, + { + "x": 58, + "y": 74, + "isWall": false + }, + { + "x": 58, + "y": 75, + "isWall": false + }, + { + "x": 58, + "y": 76, + "isWall": true + }, + { + "x": 58, + "y": 77, + "isWall": false + }, + { + "x": 58, + "y": 78, + "isWall": false + }, + { + "x": 58, + "y": 79, + "isWall": false + }, + { + "x": 58, + "y": 80, + "isWall": false + }, + { + "x": 58, + "y": 81, + "isWall": false + }, + { + "x": 58, + "y": 82, + "isWall": true + }, + { + "x": 58, + "y": 83, + "isWall": false + }, + { + "x": 58, + "y": 84, + "isWall": false + }, + { + "x": 58, + "y": 85, + "isWall": true + }, + { + "x": 58, + "y": 86, + "isWall": false + }, + { + "x": 58, + "y": 87, + "isWall": false + }, + { + "x": 58, + "y": 88, + "isWall": true + }, + { + "x": 58, + "y": 89, + "isWall": false + }, + { + "x": 58, + "y": 90, + "isWall": false + }, + { + "x": 58, + "y": 91, + "isWall": false + }, + { + "x": 58, + "y": 92, + "isWall": true + }, + { + "x": 58, + "y": 93, + "isWall": true + }, + { + "x": 58, + "y": 94, + "isWall": true + }, + { + "x": 58, + "y": 95, + "isWall": false + }, + { + "x": 58, + "y": 96, + "isWall": true + }, + { + "x": 58, + "y": 97, + "isWall": true + }, + { + "x": 58, + "y": 98, + "isWall": true + }, + { + "x": 58, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 59, + "y": 0, + "isWall": true + }, + { + "x": 59, + "y": 1, + "isWall": false + }, + { + "x": 59, + "y": 2, + "isWall": true + }, + { + "x": 59, + "y": 3, + "isWall": false + }, + { + "x": 59, + "y": 4, + "isWall": false + }, + { + "x": 59, + "y": 5, + "isWall": false + }, + { + "x": 59, + "y": 6, + "isWall": false + }, + { + "x": 59, + "y": 7, + "isWall": true + }, + { + "x": 59, + "y": 8, + "isWall": true + }, + { + "x": 59, + "y": 9, + "isWall": false + }, + { + "x": 59, + "y": 10, + "isWall": false + }, + { + "x": 59, + "y": 11, + "isWall": false + }, + { + "x": 59, + "y": 12, + "isWall": true + }, + { + "x": 59, + "y": 13, + "isWall": false + }, + { + "x": 59, + "y": 14, + "isWall": true + }, + { + "x": 59, + "y": 15, + "isWall": false + }, + { + "x": 59, + "y": 16, + "isWall": false + }, + { + "x": 59, + "y": 17, + "isWall": false + }, + { + "x": 59, + "y": 18, + "isWall": false + }, + { + "x": 59, + "y": 19, + "isWall": false + }, + { + "x": 59, + "y": 20, + "isWall": false + }, + { + "x": 59, + "y": 21, + "isWall": false + }, + { + "x": 59, + "y": 22, + "isWall": true + }, + { + "x": 59, + "y": 23, + "isWall": false + }, + { + "x": 59, + "y": 24, + "isWall": true + }, + { + "x": 59, + "y": 25, + "isWall": false + }, + { + "x": 59, + "y": 26, + "isWall": false + }, + { + "x": 59, + "y": 27, + "isWall": false + }, + { + "x": 59, + "y": 28, + "isWall": false + }, + { + "x": 59, + "y": 29, + "isWall": false + }, + { + "x": 59, + "y": 30, + "isWall": false + }, + { + "x": 59, + "y": 31, + "isWall": false + }, + { + "x": 59, + "y": 32, + "isWall": false + }, + { + "x": 59, + "y": 33, + "isWall": false + }, + { + "x": 59, + "y": 34, + "isWall": true + }, + { + "x": 59, + "y": 35, + "isWall": false + }, + { + "x": 59, + "y": 36, + "isWall": false + }, + { + "x": 59, + "y": 37, + "isWall": false + }, + { + "x": 59, + "y": 38, + "isWall": false + }, + { + "x": 59, + "y": 39, + "isWall": false + }, + { + "x": 59, + "y": 40, + "isWall": false + }, + { + "x": 59, + "y": 41, + "isWall": true + }, + { + "x": 59, + "y": 42, + "isWall": true + }, + { + "x": 59, + "y": 43, + "isWall": false + }, + { + "x": 59, + "y": 44, + "isWall": true + }, + { + "x": 59, + "y": 45, + "isWall": false + }, + { + "x": 59, + "y": 46, + "isWall": false + }, + { + "x": 59, + "y": 47, + "isWall": true + }, + { + "x": 59, + "y": 48, + "isWall": true + }, + { + "x": 59, + "y": 49, + "isWall": true + }, + { + "x": 59, + "y": 50, + "isWall": false + }, + { + "x": 59, + "y": 51, + "isWall": false + }, + { + "x": 59, + "y": 52, + "isWall": true + }, + { + "x": 59, + "y": 53, + "isWall": false + }, + { + "x": 59, + "y": 54, + "isWall": false + }, + { + "x": 59, + "y": 55, + "isWall": true + }, + { + "x": 59, + "y": 56, + "isWall": false + }, + { + "x": 59, + "y": 57, + "isWall": false + }, + { + "x": 59, + "y": 58, + "isWall": false + }, + { + "x": 59, + "y": 59, + "isWall": false + }, + { + "x": 59, + "y": 60, + "isWall": false + }, + { + "x": 59, + "y": 61, + "isWall": false + }, + { + "x": 59, + "y": 62, + "isWall": true + }, + { + "x": 59, + "y": 63, + "isWall": false + }, + { + "x": 59, + "y": 64, + "isWall": true + }, + { + "x": 59, + "y": 65, + "isWall": false + }, + { + "x": 59, + "y": 66, + "isWall": false + }, + { + "x": 59, + "y": 67, + "isWall": false + }, + { + "x": 59, + "y": 68, + "isWall": false + }, + { + "x": 59, + "y": 69, + "isWall": false + }, + { + "x": 59, + "y": 70, + "isWall": false + }, + { + "x": 59, + "y": 71, + "isWall": false + }, + { + "x": 59, + "y": 72, + "isWall": true + }, + { + "x": 59, + "y": 73, + "isWall": false + }, + { + "x": 59, + "y": 74, + "isWall": false + }, + { + "x": 59, + "y": 75, + "isWall": true + }, + { + "x": 59, + "y": 76, + "isWall": false + }, + { + "x": 59, + "y": 77, + "isWall": false + }, + { + "x": 59, + "y": 78, + "isWall": false + }, + { + "x": 59, + "y": 79, + "isWall": false + }, + { + "x": 59, + "y": 80, + "isWall": false + }, + { + "x": 59, + "y": 81, + "isWall": true + }, + { + "x": 59, + "y": 82, + "isWall": true + }, + { + "x": 59, + "y": 83, + "isWall": true + }, + { + "x": 59, + "y": 84, + "isWall": false + }, + { + "x": 59, + "y": 85, + "isWall": false + }, + { + "x": 59, + "y": 86, + "isWall": false + }, + { + "x": 59, + "y": 87, + "isWall": false + }, + { + "x": 59, + "y": 88, + "isWall": false + }, + { + "x": 59, + "y": 89, + "isWall": false + }, + { + "x": 59, + "y": 90, + "isWall": true + }, + { + "x": 59, + "y": 91, + "isWall": false + }, + { + "x": 59, + "y": 92, + "isWall": false + }, + { + "x": 59, + "y": 93, + "isWall": false + }, + { + "x": 59, + "y": 94, + "isWall": false + }, + { + "x": 59, + "y": 95, + "isWall": false + }, + { + "x": 59, + "y": 96, + "isWall": false + }, + { + "x": 59, + "y": 97, + "isWall": true + }, + { + "x": 59, + "y": 98, + "isWall": true + }, + { + "x": 59, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 60, + "y": 0, + "isWall": false + }, + { + "x": 60, + "y": 1, + "isWall": false + }, + { + "x": 60, + "y": 2, + "isWall": true + }, + { + "x": 60, + "y": 3, + "isWall": false + }, + { + "x": 60, + "y": 4, + "isWall": true + }, + { + "x": 60, + "y": 5, + "isWall": true + }, + { + "x": 60, + "y": 6, + "isWall": false + }, + { + "x": 60, + "y": 7, + "isWall": false + }, + { + "x": 60, + "y": 8, + "isWall": false + }, + { + "x": 60, + "y": 9, + "isWall": false + }, + { + "x": 60, + "y": 10, + "isWall": true + }, + { + "x": 60, + "y": 11, + "isWall": true + }, + { + "x": 60, + "y": 12, + "isWall": false + }, + { + "x": 60, + "y": 13, + "isWall": false + }, + { + "x": 60, + "y": 14, + "isWall": false + }, + { + "x": 60, + "y": 15, + "isWall": true + }, + { + "x": 60, + "y": 16, + "isWall": false + }, + { + "x": 60, + "y": 17, + "isWall": false + }, + { + "x": 60, + "y": 18, + "isWall": false + }, + { + "x": 60, + "y": 19, + "isWall": false + }, + { + "x": 60, + "y": 20, + "isWall": false + }, + { + "x": 60, + "y": 21, + "isWall": true + }, + { + "x": 60, + "y": 22, + "isWall": false + }, + { + "x": 60, + "y": 23, + "isWall": false + }, + { + "x": 60, + "y": 24, + "isWall": false + }, + { + "x": 60, + "y": 25, + "isWall": false + }, + { + "x": 60, + "y": 26, + "isWall": true + }, + { + "x": 60, + "y": 27, + "isWall": true + }, + { + "x": 60, + "y": 28, + "isWall": true + }, + { + "x": 60, + "y": 29, + "isWall": false + }, + { + "x": 60, + "y": 30, + "isWall": false + }, + { + "x": 60, + "y": 31, + "isWall": false + }, + { + "x": 60, + "y": 32, + "isWall": false + }, + { + "x": 60, + "y": 33, + "isWall": true + }, + { + "x": 60, + "y": 34, + "isWall": false + }, + { + "x": 60, + "y": 35, + "isWall": false + }, + { + "x": 60, + "y": 36, + "isWall": true + }, + { + "x": 60, + "y": 37, + "isWall": false + }, + { + "x": 60, + "y": 38, + "isWall": false + }, + { + "x": 60, + "y": 39, + "isWall": false + }, + { + "x": 60, + "y": 40, + "isWall": false + }, + { + "x": 60, + "y": 41, + "isWall": false + }, + { + "x": 60, + "y": 42, + "isWall": false + }, + { + "x": 60, + "y": 43, + "isWall": true + }, + { + "x": 60, + "y": 44, + "isWall": true + }, + { + "x": 60, + "y": 45, + "isWall": false + }, + { + "x": 60, + "y": 46, + "isWall": false + }, + { + "x": 60, + "y": 47, + "isWall": false + }, + { + "x": 60, + "y": 48, + "isWall": false + }, + { + "x": 60, + "y": 49, + "isWall": true + }, + { + "x": 60, + "y": 50, + "isWall": true + }, + { + "x": 60, + "y": 51, + "isWall": false + }, + { + "x": 60, + "y": 52, + "isWall": false + }, + { + "x": 60, + "y": 53, + "isWall": true + }, + { + "x": 60, + "y": 54, + "isWall": false + }, + { + "x": 60, + "y": 55, + "isWall": false + }, + { + "x": 60, + "y": 56, + "isWall": false + }, + { + "x": 60, + "y": 57, + "isWall": false + }, + { + "x": 60, + "y": 58, + "isWall": true + }, + { + "x": 60, + "y": 59, + "isWall": false + }, + { + "x": 60, + "y": 60, + "isWall": false + }, + { + "x": 60, + "y": 61, + "isWall": false + }, + { + "x": 60, + "y": 62, + "isWall": false + }, + { + "x": 60, + "y": 63, + "isWall": false + }, + { + "x": 60, + "y": 64, + "isWall": true + }, + { + "x": 60, + "y": 65, + "isWall": false + }, + { + "x": 60, + "y": 66, + "isWall": false + }, + { + "x": 60, + "y": 67, + "isWall": false + }, + { + "x": 60, + "y": 68, + "isWall": false + }, + { + "x": 60, + "y": 69, + "isWall": false + }, + { + "x": 60, + "y": 70, + "isWall": false + }, + { + "x": 60, + "y": 71, + "isWall": true + }, + { + "x": 60, + "y": 72, + "isWall": false + }, + { + "x": 60, + "y": 73, + "isWall": false + }, + { + "x": 60, + "y": 74, + "isWall": true + }, + { + "x": 60, + "y": 75, + "isWall": true + }, + { + "x": 60, + "y": 76, + "isWall": false + }, + { + "x": 60, + "y": 77, + "isWall": false + }, + { + "x": 60, + "y": 78, + "isWall": false + }, + { + "x": 60, + "y": 79, + "isWall": false + }, + { + "x": 60, + "y": 80, + "isWall": true + }, + { + "x": 60, + "y": 81, + "isWall": false + }, + { + "x": 60, + "y": 82, + "isWall": false + }, + { + "x": 60, + "y": 83, + "isWall": false + }, + { + "x": 60, + "y": 84, + "isWall": false + }, + { + "x": 60, + "y": 85, + "isWall": false + }, + { + "x": 60, + "y": 86, + "isWall": true + }, + { + "x": 60, + "y": 87, + "isWall": false + }, + { + "x": 60, + "y": 88, + "isWall": false + }, + { + "x": 60, + "y": 89, + "isWall": false + }, + { + "x": 60, + "y": 90, + "isWall": false + }, + { + "x": 60, + "y": 91, + "isWall": false + }, + { + "x": 60, + "y": 92, + "isWall": false + }, + { + "x": 60, + "y": 93, + "isWall": true + }, + { + "x": 60, + "y": 94, + "isWall": false + }, + { + "x": 60, + "y": 95, + "isWall": false + }, + { + "x": 60, + "y": 96, + "isWall": true + }, + { + "x": 60, + "y": 97, + "isWall": true + }, + { + "x": 60, + "y": 98, + "isWall": false + }, + { + "x": 60, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 61, + "y": 0, + "isWall": false + }, + { + "x": 61, + "y": 1, + "isWall": false + }, + { + "x": 61, + "y": 2, + "isWall": false + }, + { + "x": 61, + "y": 3, + "isWall": false + }, + { + "x": 61, + "y": 4, + "isWall": false + }, + { + "x": 61, + "y": 5, + "isWall": true + }, + { + "x": 61, + "y": 6, + "isWall": false + }, + { + "x": 61, + "y": 7, + "isWall": false + }, + { + "x": 61, + "y": 8, + "isWall": false + }, + { + "x": 61, + "y": 9, + "isWall": false + }, + { + "x": 61, + "y": 10, + "isWall": false + }, + { + "x": 61, + "y": 11, + "isWall": false + }, + { + "x": 61, + "y": 12, + "isWall": false + }, + { + "x": 61, + "y": 13, + "isWall": true + }, + { + "x": 61, + "y": 14, + "isWall": false + }, + { + "x": 61, + "y": 15, + "isWall": true + }, + { + "x": 61, + "y": 16, + "isWall": false + }, + { + "x": 61, + "y": 17, + "isWall": true + }, + { + "x": 61, + "y": 18, + "isWall": false + }, + { + "x": 61, + "y": 19, + "isWall": true + }, + { + "x": 61, + "y": 20, + "isWall": false + }, + { + "x": 61, + "y": 21, + "isWall": false + }, + { + "x": 61, + "y": 22, + "isWall": false + }, + { + "x": 61, + "y": 23, + "isWall": true + }, + { + "x": 61, + "y": 24, + "isWall": false + }, + { + "x": 61, + "y": 25, + "isWall": false + }, + { + "x": 61, + "y": 26, + "isWall": false + }, + { + "x": 61, + "y": 27, + "isWall": false + }, + { + "x": 61, + "y": 28, + "isWall": false + }, + { + "x": 61, + "y": 29, + "isWall": false + }, + { + "x": 61, + "y": 30, + "isWall": false + }, + { + "x": 61, + "y": 31, + "isWall": false + }, + { + "x": 61, + "y": 32, + "isWall": true + }, + { + "x": 61, + "y": 33, + "isWall": false + }, + { + "x": 61, + "y": 34, + "isWall": true + }, + { + "x": 61, + "y": 35, + "isWall": false + }, + { + "x": 61, + "y": 36, + "isWall": false + }, + { + "x": 61, + "y": 37, + "isWall": false + }, + { + "x": 61, + "y": 38, + "isWall": false + }, + { + "x": 61, + "y": 39, + "isWall": false + }, + { + "x": 61, + "y": 40, + "isWall": false + }, + { + "x": 61, + "y": 41, + "isWall": false + }, + { + "x": 61, + "y": 42, + "isWall": false + }, + { + "x": 61, + "y": 43, + "isWall": true + }, + { + "x": 61, + "y": 44, + "isWall": true + }, + { + "x": 61, + "y": 45, + "isWall": true + }, + { + "x": 61, + "y": 46, + "isWall": false + }, + { + "x": 61, + "y": 47, + "isWall": false + }, + { + "x": 61, + "y": 48, + "isWall": false + }, + { + "x": 61, + "y": 49, + "isWall": true + }, + { + "x": 61, + "y": 50, + "isWall": false + }, + { + "x": 61, + "y": 51, + "isWall": false + }, + { + "x": 61, + "y": 52, + "isWall": false + }, + { + "x": 61, + "y": 53, + "isWall": false + }, + { + "x": 61, + "y": 54, + "isWall": false + }, + { + "x": 61, + "y": 55, + "isWall": false + }, + { + "x": 61, + "y": 56, + "isWall": true + }, + { + "x": 61, + "y": 57, + "isWall": false + }, + { + "x": 61, + "y": 58, + "isWall": true + }, + { + "x": 61, + "y": 59, + "isWall": false + }, + { + "x": 61, + "y": 60, + "isWall": false + }, + { + "x": 61, + "y": 61, + "isWall": false + }, + { + "x": 61, + "y": 62, + "isWall": false + }, + { + "x": 61, + "y": 63, + "isWall": false + }, + { + "x": 61, + "y": 64, + "isWall": false + }, + { + "x": 61, + "y": 65, + "isWall": false + }, + { + "x": 61, + "y": 66, + "isWall": true + }, + { + "x": 61, + "y": 67, + "isWall": true + }, + { + "x": 61, + "y": 68, + "isWall": false + }, + { + "x": 61, + "y": 69, + "isWall": false + }, + { + "x": 61, + "y": 70, + "isWall": false + }, + { + "x": 61, + "y": 71, + "isWall": false + }, + { + "x": 61, + "y": 72, + "isWall": true + }, + { + "x": 61, + "y": 73, + "isWall": false + }, + { + "x": 61, + "y": 74, + "isWall": false + }, + { + "x": 61, + "y": 75, + "isWall": false + }, + { + "x": 61, + "y": 76, + "isWall": false + }, + { + "x": 61, + "y": 77, + "isWall": false + }, + { + "x": 61, + "y": 78, + "isWall": false + }, + { + "x": 61, + "y": 79, + "isWall": false + }, + { + "x": 61, + "y": 80, + "isWall": false + }, + { + "x": 61, + "y": 81, + "isWall": false + }, + { + "x": 61, + "y": 82, + "isWall": false + }, + { + "x": 61, + "y": 83, + "isWall": false + }, + { + "x": 61, + "y": 84, + "isWall": true + }, + { + "x": 61, + "y": 85, + "isWall": false + }, + { + "x": 61, + "y": 86, + "isWall": false + }, + { + "x": 61, + "y": 87, + "isWall": false + }, + { + "x": 61, + "y": 88, + "isWall": true + }, + { + "x": 61, + "y": 89, + "isWall": true + }, + { + "x": 61, + "y": 90, + "isWall": false + }, + { + "x": 61, + "y": 91, + "isWall": false + }, + { + "x": 61, + "y": 92, + "isWall": false + }, + { + "x": 61, + "y": 93, + "isWall": false + }, + { + "x": 61, + "y": 94, + "isWall": false + }, + { + "x": 61, + "y": 95, + "isWall": false + }, + { + "x": 61, + "y": 96, + "isWall": true + }, + { + "x": 61, + "y": 97, + "isWall": true + }, + { + "x": 61, + "y": 98, + "isWall": false + }, + { + "x": 61, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 62, + "y": 0, + "isWall": true + }, + { + "x": 62, + "y": 1, + "isWall": false + }, + { + "x": 62, + "y": 2, + "isWall": false + }, + { + "x": 62, + "y": 3, + "isWall": false + }, + { + "x": 62, + "y": 4, + "isWall": true + }, + { + "x": 62, + "y": 5, + "isWall": true + }, + { + "x": 62, + "y": 6, + "isWall": false + }, + { + "x": 62, + "y": 7, + "isWall": true + }, + { + "x": 62, + "y": 8, + "isWall": true + }, + { + "x": 62, + "y": 9, + "isWall": true + }, + { + "x": 62, + "y": 10, + "isWall": false + }, + { + "x": 62, + "y": 11, + "isWall": true + }, + { + "x": 62, + "y": 12, + "isWall": true + }, + { + "x": 62, + "y": 13, + "isWall": true + }, + { + "x": 62, + "y": 14, + "isWall": false + }, + { + "x": 62, + "y": 15, + "isWall": true + }, + { + "x": 62, + "y": 16, + "isWall": false + }, + { + "x": 62, + "y": 17, + "isWall": false + }, + { + "x": 62, + "y": 18, + "isWall": false + }, + { + "x": 62, + "y": 19, + "isWall": false + }, + { + "x": 62, + "y": 20, + "isWall": false + }, + { + "x": 62, + "y": 21, + "isWall": true + }, + { + "x": 62, + "y": 22, + "isWall": false + }, + { + "x": 62, + "y": 23, + "isWall": false + }, + { + "x": 62, + "y": 24, + "isWall": false + }, + { + "x": 62, + "y": 25, + "isWall": true + }, + { + "x": 62, + "y": 26, + "isWall": false + }, + { + "x": 62, + "y": 27, + "isWall": false + }, + { + "x": 62, + "y": 28, + "isWall": false + }, + { + "x": 62, + "y": 29, + "isWall": true + }, + { + "x": 62, + "y": 30, + "isWall": false + }, + { + "x": 62, + "y": 31, + "isWall": false + }, + { + "x": 62, + "y": 32, + "isWall": false + }, + { + "x": 62, + "y": 33, + "isWall": false + }, + { + "x": 62, + "y": 34, + "isWall": false + }, + { + "x": 62, + "y": 35, + "isWall": false + }, + { + "x": 62, + "y": 36, + "isWall": false + }, + { + "x": 62, + "y": 37, + "isWall": false + }, + { + "x": 62, + "y": 38, + "isWall": false + }, + { + "x": 62, + "y": 39, + "isWall": false + }, + { + "x": 62, + "y": 40, + "isWall": true + }, + { + "x": 62, + "y": 41, + "isWall": false + }, + { + "x": 62, + "y": 42, + "isWall": false + }, + { + "x": 62, + "y": 43, + "isWall": false + }, + { + "x": 62, + "y": 44, + "isWall": false + }, + { + "x": 62, + "y": 45, + "isWall": false + }, + { + "x": 62, + "y": 46, + "isWall": false + }, + { + "x": 62, + "y": 47, + "isWall": false + }, + { + "x": 62, + "y": 48, + "isWall": false + }, + { + "x": 62, + "y": 49, + "isWall": false + }, + { + "x": 62, + "y": 50, + "isWall": false + }, + { + "x": 62, + "y": 51, + "isWall": false + }, + { + "x": 62, + "y": 52, + "isWall": false + }, + { + "x": 62, + "y": 53, + "isWall": false + }, + { + "x": 62, + "y": 54, + "isWall": true + }, + { + "x": 62, + "y": 55, + "isWall": false + }, + { + "x": 62, + "y": 56, + "isWall": false + }, + { + "x": 62, + "y": 57, + "isWall": true + }, + { + "x": 62, + "y": 58, + "isWall": false + }, + { + "x": 62, + "y": 59, + "isWall": false + }, + { + "x": 62, + "y": 60, + "isWall": false + }, + { + "x": 62, + "y": 61, + "isWall": true + }, + { + "x": 62, + "y": 62, + "isWall": true + }, + { + "x": 62, + "y": 63, + "isWall": true + }, + { + "x": 62, + "y": 64, + "isWall": true + }, + { + "x": 62, + "y": 65, + "isWall": true + }, + { + "x": 62, + "y": 66, + "isWall": true + }, + { + "x": 62, + "y": 67, + "isWall": true + }, + { + "x": 62, + "y": 68, + "isWall": false + }, + { + "x": 62, + "y": 69, + "isWall": false + }, + { + "x": 62, + "y": 70, + "isWall": false + }, + { + "x": 62, + "y": 71, + "isWall": false + }, + { + "x": 62, + "y": 72, + "isWall": false + }, + { + "x": 62, + "y": 73, + "isWall": false + }, + { + "x": 62, + "y": 74, + "isWall": false + }, + { + "x": 62, + "y": 75, + "isWall": false + }, + { + "x": 62, + "y": 76, + "isWall": false + }, + { + "x": 62, + "y": 77, + "isWall": false + }, + { + "x": 62, + "y": 78, + "isWall": true + }, + { + "x": 62, + "y": 79, + "isWall": false + }, + { + "x": 62, + "y": 80, + "isWall": false + }, + { + "x": 62, + "y": 81, + "isWall": false + }, + { + "x": 62, + "y": 82, + "isWall": false + }, + { + "x": 62, + "y": 83, + "isWall": false + }, + { + "x": 62, + "y": 84, + "isWall": true + }, + { + "x": 62, + "y": 85, + "isWall": false + }, + { + "x": 62, + "y": 86, + "isWall": true + }, + { + "x": 62, + "y": 87, + "isWall": false + }, + { + "x": 62, + "y": 88, + "isWall": true + }, + { + "x": 62, + "y": 89, + "isWall": false + }, + { + "x": 62, + "y": 90, + "isWall": false + }, + { + "x": 62, + "y": 91, + "isWall": true + }, + { + "x": 62, + "y": 92, + "isWall": true + }, + { + "x": 62, + "y": 93, + "isWall": false + }, + { + "x": 62, + "y": 94, + "isWall": false + }, + { + "x": 62, + "y": 95, + "isWall": true + }, + { + "x": 62, + "y": 96, + "isWall": false + }, + { + "x": 62, + "y": 97, + "isWall": false + }, + { + "x": 62, + "y": 98, + "isWall": false + }, + { + "x": 62, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 63, + "y": 0, + "isWall": false + }, + { + "x": 63, + "y": 1, + "isWall": false + }, + { + "x": 63, + "y": 2, + "isWall": true + }, + { + "x": 63, + "y": 3, + "isWall": true + }, + { + "x": 63, + "y": 4, + "isWall": false + }, + { + "x": 63, + "y": 5, + "isWall": false + }, + { + "x": 63, + "y": 6, + "isWall": false + }, + { + "x": 63, + "y": 7, + "isWall": false + }, + { + "x": 63, + "y": 8, + "isWall": true + }, + { + "x": 63, + "y": 9, + "isWall": true + }, + { + "x": 63, + "y": 10, + "isWall": true + }, + { + "x": 63, + "y": 11, + "isWall": true + }, + { + "x": 63, + "y": 12, + "isWall": false + }, + { + "x": 63, + "y": 13, + "isWall": false + }, + { + "x": 63, + "y": 14, + "isWall": true + }, + { + "x": 63, + "y": 15, + "isWall": true + }, + { + "x": 63, + "y": 16, + "isWall": true + }, + { + "x": 63, + "y": 17, + "isWall": true + }, + { + "x": 63, + "y": 18, + "isWall": false + }, + { + "x": 63, + "y": 19, + "isWall": true + }, + { + "x": 63, + "y": 20, + "isWall": false + }, + { + "x": 63, + "y": 21, + "isWall": true + }, + { + "x": 63, + "y": 22, + "isWall": false + }, + { + "x": 63, + "y": 23, + "isWall": true + }, + { + "x": 63, + "y": 24, + "isWall": false + }, + { + "x": 63, + "y": 25, + "isWall": true + }, + { + "x": 63, + "y": 26, + "isWall": false + }, + { + "x": 63, + "y": 27, + "isWall": false + }, + { + "x": 63, + "y": 28, + "isWall": true + }, + { + "x": 63, + "y": 29, + "isWall": false + }, + { + "x": 63, + "y": 30, + "isWall": true + }, + { + "x": 63, + "y": 31, + "isWall": false + }, + { + "x": 63, + "y": 32, + "isWall": true + }, + { + "x": 63, + "y": 33, + "isWall": false + }, + { + "x": 63, + "y": 34, + "isWall": true + }, + { + "x": 63, + "y": 35, + "isWall": false + }, + { + "x": 63, + "y": 36, + "isWall": false + }, + { + "x": 63, + "y": 37, + "isWall": false + }, + { + "x": 63, + "y": 38, + "isWall": false + }, + { + "x": 63, + "y": 39, + "isWall": false + }, + { + "x": 63, + "y": 40, + "isWall": false + }, + { + "x": 63, + "y": 41, + "isWall": true + }, + { + "x": 63, + "y": 42, + "isWall": true + }, + { + "x": 63, + "y": 43, + "isWall": false + }, + { + "x": 63, + "y": 44, + "isWall": false + }, + { + "x": 63, + "y": 45, + "isWall": false + }, + { + "x": 63, + "y": 46, + "isWall": true + }, + { + "x": 63, + "y": 47, + "isWall": false + }, + { + "x": 63, + "y": 48, + "isWall": true + }, + { + "x": 63, + "y": 49, + "isWall": true + }, + { + "x": 63, + "y": 50, + "isWall": false + }, + { + "x": 63, + "y": 51, + "isWall": false + }, + { + "x": 63, + "y": 52, + "isWall": false + }, + { + "x": 63, + "y": 53, + "isWall": true + }, + { + "x": 63, + "y": 54, + "isWall": false + }, + { + "x": 63, + "y": 55, + "isWall": true + }, + { + "x": 63, + "y": 56, + "isWall": false + }, + { + "x": 63, + "y": 57, + "isWall": false + }, + { + "x": 63, + "y": 58, + "isWall": false + }, + { + "x": 63, + "y": 59, + "isWall": false + }, + { + "x": 63, + "y": 60, + "isWall": false + }, + { + "x": 63, + "y": 61, + "isWall": false + }, + { + "x": 63, + "y": 62, + "isWall": false + }, + { + "x": 63, + "y": 63, + "isWall": false + }, + { + "x": 63, + "y": 64, + "isWall": false + }, + { + "x": 63, + "y": 65, + "isWall": true + }, + { + "x": 63, + "y": 66, + "isWall": false + }, + { + "x": 63, + "y": 67, + "isWall": false + }, + { + "x": 63, + "y": 68, + "isWall": false + }, + { + "x": 63, + "y": 69, + "isWall": false + }, + { + "x": 63, + "y": 70, + "isWall": false + }, + { + "x": 63, + "y": 71, + "isWall": false + }, + { + "x": 63, + "y": 72, + "isWall": true + }, + { + "x": 63, + "y": 73, + "isWall": false + }, + { + "x": 63, + "y": 74, + "isWall": false + }, + { + "x": 63, + "y": 75, + "isWall": false + }, + { + "x": 63, + "y": 76, + "isWall": false + }, + { + "x": 63, + "y": 77, + "isWall": true + }, + { + "x": 63, + "y": 78, + "isWall": false + }, + { + "x": 63, + "y": 79, + "isWall": false + }, + { + "x": 63, + "y": 80, + "isWall": false + }, + { + "x": 63, + "y": 81, + "isWall": false + }, + { + "x": 63, + "y": 82, + "isWall": true + }, + { + "x": 63, + "y": 83, + "isWall": false + }, + { + "x": 63, + "y": 84, + "isWall": false + }, + { + "x": 63, + "y": 85, + "isWall": false + }, + { + "x": 63, + "y": 86, + "isWall": true + }, + { + "x": 63, + "y": 87, + "isWall": false + }, + { + "x": 63, + "y": 88, + "isWall": true + }, + { + "x": 63, + "y": 89, + "isWall": false + }, + { + "x": 63, + "y": 90, + "isWall": false + }, + { + "x": 63, + "y": 91, + "isWall": true + }, + { + "x": 63, + "y": 92, + "isWall": false + }, + { + "x": 63, + "y": 93, + "isWall": false + }, + { + "x": 63, + "y": 94, + "isWall": false + }, + { + "x": 63, + "y": 95, + "isWall": true + }, + { + "x": 63, + "y": 96, + "isWall": false + }, + { + "x": 63, + "y": 97, + "isWall": true + }, + { + "x": 63, + "y": 98, + "isWall": true + }, + { + "x": 63, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 64, + "y": 0, + "isWall": false + }, + { + "x": 64, + "y": 1, + "isWall": false + }, + { + "x": 64, + "y": 2, + "isWall": false + }, + { + "x": 64, + "y": 3, + "isWall": false + }, + { + "x": 64, + "y": 4, + "isWall": false + }, + { + "x": 64, + "y": 5, + "isWall": true + }, + { + "x": 64, + "y": 6, + "isWall": false + }, + { + "x": 64, + "y": 7, + "isWall": false + }, + { + "x": 64, + "y": 8, + "isWall": false + }, + { + "x": 64, + "y": 9, + "isWall": true + }, + { + "x": 64, + "y": 10, + "isWall": false + }, + { + "x": 64, + "y": 11, + "isWall": false + }, + { + "x": 64, + "y": 12, + "isWall": false + }, + { + "x": 64, + "y": 13, + "isWall": false + }, + { + "x": 64, + "y": 14, + "isWall": false + }, + { + "x": 64, + "y": 15, + "isWall": false + }, + { + "x": 64, + "y": 16, + "isWall": true + }, + { + "x": 64, + "y": 17, + "isWall": false + }, + { + "x": 64, + "y": 18, + "isWall": false + }, + { + "x": 64, + "y": 19, + "isWall": false + }, + { + "x": 64, + "y": 20, + "isWall": false + }, + { + "x": 64, + "y": 21, + "isWall": true + }, + { + "x": 64, + "y": 22, + "isWall": true + }, + { + "x": 64, + "y": 23, + "isWall": false + }, + { + "x": 64, + "y": 24, + "isWall": false + }, + { + "x": 64, + "y": 25, + "isWall": true + }, + { + "x": 64, + "y": 26, + "isWall": true + }, + { + "x": 64, + "y": 27, + "isWall": false + }, + { + "x": 64, + "y": 28, + "isWall": false + }, + { + "x": 64, + "y": 29, + "isWall": false + }, + { + "x": 64, + "y": 30, + "isWall": false + }, + { + "x": 64, + "y": 31, + "isWall": false + }, + { + "x": 64, + "y": 32, + "isWall": false + }, + { + "x": 64, + "y": 33, + "isWall": true + }, + { + "x": 64, + "y": 34, + "isWall": false + }, + { + "x": 64, + "y": 35, + "isWall": true + }, + { + "x": 64, + "y": 36, + "isWall": false + }, + { + "x": 64, + "y": 37, + "isWall": false + }, + { + "x": 64, + "y": 38, + "isWall": false + }, + { + "x": 64, + "y": 39, + "isWall": false + }, + { + "x": 64, + "y": 40, + "isWall": true + }, + { + "x": 64, + "y": 41, + "isWall": false + }, + { + "x": 64, + "y": 42, + "isWall": true + }, + { + "x": 64, + "y": 43, + "isWall": true + }, + { + "x": 64, + "y": 44, + "isWall": true + }, + { + "x": 64, + "y": 45, + "isWall": false + }, + { + "x": 64, + "y": 46, + "isWall": false + }, + { + "x": 64, + "y": 47, + "isWall": false + }, + { + "x": 64, + "y": 48, + "isWall": true + }, + { + "x": 64, + "y": 49, + "isWall": false + }, + { + "x": 64, + "y": 50, + "isWall": false + }, + { + "x": 64, + "y": 51, + "isWall": false + }, + { + "x": 64, + "y": 52, + "isWall": true + }, + { + "x": 64, + "y": 53, + "isWall": false + }, + { + "x": 64, + "y": 54, + "isWall": false + }, + { + "x": 64, + "y": 55, + "isWall": false + }, + { + "x": 64, + "y": 56, + "isWall": false + }, + { + "x": 64, + "y": 57, + "isWall": true + }, + { + "x": 64, + "y": 58, + "isWall": true + }, + { + "x": 64, + "y": 59, + "isWall": false + }, + { + "x": 64, + "y": 60, + "isWall": false + }, + { + "x": 64, + "y": 61, + "isWall": true + }, + { + "x": 64, + "y": 62, + "isWall": false + }, + { + "x": 64, + "y": 63, + "isWall": false + }, + { + "x": 64, + "y": 64, + "isWall": false + }, + { + "x": 64, + "y": 65, + "isWall": false + }, + { + "x": 64, + "y": 66, + "isWall": false + }, + { + "x": 64, + "y": 67, + "isWall": false + }, + { + "x": 64, + "y": 68, + "isWall": true + }, + { + "x": 64, + "y": 69, + "isWall": false + }, + { + "x": 64, + "y": 70, + "isWall": false + }, + { + "x": 64, + "y": 71, + "isWall": true + }, + { + "x": 64, + "y": 72, + "isWall": false + }, + { + "x": 64, + "y": 73, + "isWall": false + }, + { + "x": 64, + "y": 74, + "isWall": false + }, + { + "x": 64, + "y": 75, + "isWall": false + }, + { + "x": 64, + "y": 76, + "isWall": false + }, + { + "x": 64, + "y": 77, + "isWall": false + }, + { + "x": 64, + "y": 78, + "isWall": false + }, + { + "x": 64, + "y": 79, + "isWall": true + }, + { + "x": 64, + "y": 80, + "isWall": false + }, + { + "x": 64, + "y": 81, + "isWall": false + }, + { + "x": 64, + "y": 82, + "isWall": true + }, + { + "x": 64, + "y": 83, + "isWall": true + }, + { + "x": 64, + "y": 84, + "isWall": false + }, + { + "x": 64, + "y": 85, + "isWall": false + }, + { + "x": 64, + "y": 86, + "isWall": false + }, + { + "x": 64, + "y": 87, + "isWall": false + }, + { + "x": 64, + "y": 88, + "isWall": false + }, + { + "x": 64, + "y": 89, + "isWall": true + }, + { + "x": 64, + "y": 90, + "isWall": false + }, + { + "x": 64, + "y": 91, + "isWall": false + }, + { + "x": 64, + "y": 92, + "isWall": false + }, + { + "x": 64, + "y": 93, + "isWall": true + }, + { + "x": 64, + "y": 94, + "isWall": false + }, + { + "x": 64, + "y": 95, + "isWall": true + }, + { + "x": 64, + "y": 96, + "isWall": false + }, + { + "x": 64, + "y": 97, + "isWall": true + }, + { + "x": 64, + "y": 98, + "isWall": false + }, + { + "x": 64, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 65, + "y": 0, + "isWall": true + }, + { + "x": 65, + "y": 1, + "isWall": true + }, + { + "x": 65, + "y": 2, + "isWall": false + }, + { + "x": 65, + "y": 3, + "isWall": false + }, + { + "x": 65, + "y": 4, + "isWall": true + }, + { + "x": 65, + "y": 5, + "isWall": false + }, + { + "x": 65, + "y": 6, + "isWall": false + }, + { + "x": 65, + "y": 7, + "isWall": false + }, + { + "x": 65, + "y": 8, + "isWall": true + }, + { + "x": 65, + "y": 9, + "isWall": false + }, + { + "x": 65, + "y": 10, + "isWall": false + }, + { + "x": 65, + "y": 11, + "isWall": false + }, + { + "x": 65, + "y": 12, + "isWall": false + }, + { + "x": 65, + "y": 13, + "isWall": false + }, + { + "x": 65, + "y": 14, + "isWall": false + }, + { + "x": 65, + "y": 15, + "isWall": false + }, + { + "x": 65, + "y": 16, + "isWall": true + }, + { + "x": 65, + "y": 17, + "isWall": false + }, + { + "x": 65, + "y": 18, + "isWall": false + }, + { + "x": 65, + "y": 19, + "isWall": false + }, + { + "x": 65, + "y": 20, + "isWall": false + }, + { + "x": 65, + "y": 21, + "isWall": false + }, + { + "x": 65, + "y": 22, + "isWall": false + }, + { + "x": 65, + "y": 23, + "isWall": false + }, + { + "x": 65, + "y": 24, + "isWall": false + }, + { + "x": 65, + "y": 25, + "isWall": false + }, + { + "x": 65, + "y": 26, + "isWall": false + }, + { + "x": 65, + "y": 27, + "isWall": false + }, + { + "x": 65, + "y": 28, + "isWall": false + }, + { + "x": 65, + "y": 29, + "isWall": false + }, + { + "x": 65, + "y": 30, + "isWall": false + }, + { + "x": 65, + "y": 31, + "isWall": false + }, + { + "x": 65, + "y": 32, + "isWall": false + }, + { + "x": 65, + "y": 33, + "isWall": false + }, + { + "x": 65, + "y": 34, + "isWall": false + }, + { + "x": 65, + "y": 35, + "isWall": false + }, + { + "x": 65, + "y": 36, + "isWall": false + }, + { + "x": 65, + "y": 37, + "isWall": false + }, + { + "x": 65, + "y": 38, + "isWall": false + }, + { + "x": 65, + "y": 39, + "isWall": false + }, + { + "x": 65, + "y": 40, + "isWall": false + }, + { + "x": 65, + "y": 41, + "isWall": false + }, + { + "x": 65, + "y": 42, + "isWall": true + }, + { + "x": 65, + "y": 43, + "isWall": false + }, + { + "x": 65, + "y": 44, + "isWall": false + }, + { + "x": 65, + "y": 45, + "isWall": false + }, + { + "x": 65, + "y": 46, + "isWall": false + }, + { + "x": 65, + "y": 47, + "isWall": true + }, + { + "x": 65, + "y": 48, + "isWall": false + }, + { + "x": 65, + "y": 49, + "isWall": false + }, + { + "x": 65, + "y": 50, + "isWall": false + }, + { + "x": 65, + "y": 51, + "isWall": true + }, + { + "x": 65, + "y": 52, + "isWall": false + }, + { + "x": 65, + "y": 53, + "isWall": true + }, + { + "x": 65, + "y": 54, + "isWall": false + }, + { + "x": 65, + "y": 55, + "isWall": false + }, + { + "x": 65, + "y": 56, + "isWall": true + }, + { + "x": 65, + "y": 57, + "isWall": false + }, + { + "x": 65, + "y": 58, + "isWall": false + }, + { + "x": 65, + "y": 59, + "isWall": false + }, + { + "x": 65, + "y": 60, + "isWall": false + }, + { + "x": 65, + "y": 61, + "isWall": false + }, + { + "x": 65, + "y": 62, + "isWall": false + }, + { + "x": 65, + "y": 63, + "isWall": false + }, + { + "x": 65, + "y": 64, + "isWall": false + }, + { + "x": 65, + "y": 65, + "isWall": false + }, + { + "x": 65, + "y": 66, + "isWall": false + }, + { + "x": 65, + "y": 67, + "isWall": false + }, + { + "x": 65, + "y": 68, + "isWall": true + }, + { + "x": 65, + "y": 69, + "isWall": false + }, + { + "x": 65, + "y": 70, + "isWall": false + }, + { + "x": 65, + "y": 71, + "isWall": false + }, + { + "x": 65, + "y": 72, + "isWall": false + }, + { + "x": 65, + "y": 73, + "isWall": true + }, + { + "x": 65, + "y": 74, + "isWall": false + }, + { + "x": 65, + "y": 75, + "isWall": false + }, + { + "x": 65, + "y": 76, + "isWall": false + }, + { + "x": 65, + "y": 77, + "isWall": false + }, + { + "x": 65, + "y": 78, + "isWall": true + }, + { + "x": 65, + "y": 79, + "isWall": true + }, + { + "x": 65, + "y": 80, + "isWall": true + }, + { + "x": 65, + "y": 81, + "isWall": false + }, + { + "x": 65, + "y": 82, + "isWall": false + }, + { + "x": 65, + "y": 83, + "isWall": false + }, + { + "x": 65, + "y": 84, + "isWall": true + }, + { + "x": 65, + "y": 85, + "isWall": false + }, + { + "x": 65, + "y": 86, + "isWall": false + }, + { + "x": 65, + "y": 87, + "isWall": true + }, + { + "x": 65, + "y": 88, + "isWall": true + }, + { + "x": 65, + "y": 89, + "isWall": false + }, + { + "x": 65, + "y": 90, + "isWall": true + }, + { + "x": 65, + "y": 91, + "isWall": false + }, + { + "x": 65, + "y": 92, + "isWall": false + }, + { + "x": 65, + "y": 93, + "isWall": false + }, + { + "x": 65, + "y": 94, + "isWall": false + }, + { + "x": 65, + "y": 95, + "isWall": false + }, + { + "x": 65, + "y": 96, + "isWall": false + }, + { + "x": 65, + "y": 97, + "isWall": false + }, + { + "x": 65, + "y": 98, + "isWall": false + }, + { + "x": 65, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 66, + "y": 0, + "isWall": true + }, + { + "x": 66, + "y": 1, + "isWall": false + }, + { + "x": 66, + "y": 2, + "isWall": true + }, + { + "x": 66, + "y": 3, + "isWall": false + }, + { + "x": 66, + "y": 4, + "isWall": true + }, + { + "x": 66, + "y": 5, + "isWall": false + }, + { + "x": 66, + "y": 6, + "isWall": false + }, + { + "x": 66, + "y": 7, + "isWall": true + }, + { + "x": 66, + "y": 8, + "isWall": true + }, + { + "x": 66, + "y": 9, + "isWall": false + }, + { + "x": 66, + "y": 10, + "isWall": false + }, + { + "x": 66, + "y": 11, + "isWall": false + }, + { + "x": 66, + "y": 12, + "isWall": true + }, + { + "x": 66, + "y": 13, + "isWall": false + }, + { + "x": 66, + "y": 14, + "isWall": false + }, + { + "x": 66, + "y": 15, + "isWall": false + }, + { + "x": 66, + "y": 16, + "isWall": false + }, + { + "x": 66, + "y": 17, + "isWall": false + }, + { + "x": 66, + "y": 18, + "isWall": false + }, + { + "x": 66, + "y": 19, + "isWall": false + }, + { + "x": 66, + "y": 20, + "isWall": true + }, + { + "x": 66, + "y": 21, + "isWall": false + }, + { + "x": 66, + "y": 22, + "isWall": true + }, + { + "x": 66, + "y": 23, + "isWall": false + }, + { + "x": 66, + "y": 24, + "isWall": false + }, + { + "x": 66, + "y": 25, + "isWall": true + }, + { + "x": 66, + "y": 26, + "isWall": false + }, + { + "x": 66, + "y": 27, + "isWall": false + }, + { + "x": 66, + "y": 28, + "isWall": false + }, + { + "x": 66, + "y": 29, + "isWall": true + }, + { + "x": 66, + "y": 30, + "isWall": false + }, + { + "x": 66, + "y": 31, + "isWall": true + }, + { + "x": 66, + "y": 32, + "isWall": false + }, + { + "x": 66, + "y": 33, + "isWall": false + }, + { + "x": 66, + "y": 34, + "isWall": false + }, + { + "x": 66, + "y": 35, + "isWall": true + }, + { + "x": 66, + "y": 36, + "isWall": false + }, + { + "x": 66, + "y": 37, + "isWall": false + }, + { + "x": 66, + "y": 38, + "isWall": true + }, + { + "x": 66, + "y": 39, + "isWall": false + }, + { + "x": 66, + "y": 40, + "isWall": false + }, + { + "x": 66, + "y": 41, + "isWall": true + }, + { + "x": 66, + "y": 42, + "isWall": false + }, + { + "x": 66, + "y": 43, + "isWall": false + }, + { + "x": 66, + "y": 44, + "isWall": true + }, + { + "x": 66, + "y": 45, + "isWall": false + }, + { + "x": 66, + "y": 46, + "isWall": true + }, + { + "x": 66, + "y": 47, + "isWall": false + }, + { + "x": 66, + "y": 48, + "isWall": true + }, + { + "x": 66, + "y": 49, + "isWall": false + }, + { + "x": 66, + "y": 50, + "isWall": false + }, + { + "x": 66, + "y": 51, + "isWall": false + }, + { + "x": 66, + "y": 52, + "isWall": true + }, + { + "x": 66, + "y": 53, + "isWall": false + }, + { + "x": 66, + "y": 54, + "isWall": false + }, + { + "x": 66, + "y": 55, + "isWall": true + }, + { + "x": 66, + "y": 56, + "isWall": false + }, + { + "x": 66, + "y": 57, + "isWall": false + }, + { + "x": 66, + "y": 58, + "isWall": false + }, + { + "x": 66, + "y": 59, + "isWall": true + }, + { + "x": 66, + "y": 60, + "isWall": false + }, + { + "x": 66, + "y": 61, + "isWall": true + }, + { + "x": 66, + "y": 62, + "isWall": false + }, + { + "x": 66, + "y": 63, + "isWall": false + }, + { + "x": 66, + "y": 64, + "isWall": false + }, + { + "x": 66, + "y": 65, + "isWall": false + }, + { + "x": 66, + "y": 66, + "isWall": false + }, + { + "x": 66, + "y": 67, + "isWall": false + }, + { + "x": 66, + "y": 68, + "isWall": true + }, + { + "x": 66, + "y": 69, + "isWall": true + }, + { + "x": 66, + "y": 70, + "isWall": true + }, + { + "x": 66, + "y": 71, + "isWall": false + }, + { + "x": 66, + "y": 72, + "isWall": false + }, + { + "x": 66, + "y": 73, + "isWall": false + }, + { + "x": 66, + "y": 74, + "isWall": true + }, + { + "x": 66, + "y": 75, + "isWall": false + }, + { + "x": 66, + "y": 76, + "isWall": true + }, + { + "x": 66, + "y": 77, + "isWall": false + }, + { + "x": 66, + "y": 78, + "isWall": true + }, + { + "x": 66, + "y": 79, + "isWall": false + }, + { + "x": 66, + "y": 80, + "isWall": true + }, + { + "x": 66, + "y": 81, + "isWall": false + }, + { + "x": 66, + "y": 82, + "isWall": true + }, + { + "x": 66, + "y": 83, + "isWall": true + }, + { + "x": 66, + "y": 84, + "isWall": false + }, + { + "x": 66, + "y": 85, + "isWall": false + }, + { + "x": 66, + "y": 86, + "isWall": true + }, + { + "x": 66, + "y": 87, + "isWall": true + }, + { + "x": 66, + "y": 88, + "isWall": false + }, + { + "x": 66, + "y": 89, + "isWall": false + }, + { + "x": 66, + "y": 90, + "isWall": false + }, + { + "x": 66, + "y": 91, + "isWall": false + }, + { + "x": 66, + "y": 92, + "isWall": true + }, + { + "x": 66, + "y": 93, + "isWall": false + }, + { + "x": 66, + "y": 94, + "isWall": true + }, + { + "x": 66, + "y": 95, + "isWall": false + }, + { + "x": 66, + "y": 96, + "isWall": true + }, + { + "x": 66, + "y": 97, + "isWall": true + }, + { + "x": 66, + "y": 98, + "isWall": false + }, + { + "x": 66, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 67, + "y": 0, + "isWall": false + }, + { + "x": 67, + "y": 1, + "isWall": false + }, + { + "x": 67, + "y": 2, + "isWall": false + }, + { + "x": 67, + "y": 3, + "isWall": true + }, + { + "x": 67, + "y": 4, + "isWall": false + }, + { + "x": 67, + "y": 5, + "isWall": false + }, + { + "x": 67, + "y": 6, + "isWall": false + }, + { + "x": 67, + "y": 7, + "isWall": false + }, + { + "x": 67, + "y": 8, + "isWall": true + }, + { + "x": 67, + "y": 9, + "isWall": false + }, + { + "x": 67, + "y": 10, + "isWall": false + }, + { + "x": 67, + "y": 11, + "isWall": true + }, + { + "x": 67, + "y": 12, + "isWall": true + }, + { + "x": 67, + "y": 13, + "isWall": false + }, + { + "x": 67, + "y": 14, + "isWall": false + }, + { + "x": 67, + "y": 15, + "isWall": false + }, + { + "x": 67, + "y": 16, + "isWall": false + }, + { + "x": 67, + "y": 17, + "isWall": false + }, + { + "x": 67, + "y": 18, + "isWall": true + }, + { + "x": 67, + "y": 19, + "isWall": false + }, + { + "x": 67, + "y": 20, + "isWall": false + }, + { + "x": 67, + "y": 21, + "isWall": false + }, + { + "x": 67, + "y": 22, + "isWall": true + }, + { + "x": 67, + "y": 23, + "isWall": true + }, + { + "x": 67, + "y": 24, + "isWall": false + }, + { + "x": 67, + "y": 25, + "isWall": true + }, + { + "x": 67, + "y": 26, + "isWall": false + }, + { + "x": 67, + "y": 27, + "isWall": true + }, + { + "x": 67, + "y": 28, + "isWall": false + }, + { + "x": 67, + "y": 29, + "isWall": false + }, + { + "x": 67, + "y": 30, + "isWall": false + }, + { + "x": 67, + "y": 31, + "isWall": true + }, + { + "x": 67, + "y": 32, + "isWall": false + }, + { + "x": 67, + "y": 33, + "isWall": true + }, + { + "x": 67, + "y": 34, + "isWall": false + }, + { + "x": 67, + "y": 35, + "isWall": false + }, + { + "x": 67, + "y": 36, + "isWall": true + }, + { + "x": 67, + "y": 37, + "isWall": false + }, + { + "x": 67, + "y": 38, + "isWall": false + }, + { + "x": 67, + "y": 39, + "isWall": false + }, + { + "x": 67, + "y": 40, + "isWall": false + }, + { + "x": 67, + "y": 41, + "isWall": false + }, + { + "x": 67, + "y": 42, + "isWall": false + }, + { + "x": 67, + "y": 43, + "isWall": true + }, + { + "x": 67, + "y": 44, + "isWall": false + }, + { + "x": 67, + "y": 45, + "isWall": false + }, + { + "x": 67, + "y": 46, + "isWall": true + }, + { + "x": 67, + "y": 47, + "isWall": false + }, + { + "x": 67, + "y": 48, + "isWall": true + }, + { + "x": 67, + "y": 49, + "isWall": true + }, + { + "x": 67, + "y": 50, + "isWall": false + }, + { + "x": 67, + "y": 51, + "isWall": false + }, + { + "x": 67, + "y": 52, + "isWall": false + }, + { + "x": 67, + "y": 53, + "isWall": true + }, + { + "x": 67, + "y": 54, + "isWall": false + }, + { + "x": 67, + "y": 55, + "isWall": false + }, + { + "x": 67, + "y": 56, + "isWall": true + }, + { + "x": 67, + "y": 57, + "isWall": false + }, + { + "x": 67, + "y": 58, + "isWall": true + }, + { + "x": 67, + "y": 59, + "isWall": false + }, + { + "x": 67, + "y": 60, + "isWall": true + }, + { + "x": 67, + "y": 61, + "isWall": true + }, + { + "x": 67, + "y": 62, + "isWall": false + }, + { + "x": 67, + "y": 63, + "isWall": false + }, + { + "x": 67, + "y": 64, + "isWall": false + }, + { + "x": 67, + "y": 65, + "isWall": false + }, + { + "x": 67, + "y": 66, + "isWall": true + }, + { + "x": 67, + "y": 67, + "isWall": true + }, + { + "x": 67, + "y": 68, + "isWall": true + }, + { + "x": 67, + "y": 69, + "isWall": false + }, + { + "x": 67, + "y": 70, + "isWall": true + }, + { + "x": 67, + "y": 71, + "isWall": false + }, + { + "x": 67, + "y": 72, + "isWall": false + }, + { + "x": 67, + "y": 73, + "isWall": true + }, + { + "x": 67, + "y": 74, + "isWall": false + }, + { + "x": 67, + "y": 75, + "isWall": false + }, + { + "x": 67, + "y": 76, + "isWall": false + }, + { + "x": 67, + "y": 77, + "isWall": true + }, + { + "x": 67, + "y": 78, + "isWall": false + }, + { + "x": 67, + "y": 79, + "isWall": false + }, + { + "x": 67, + "y": 80, + "isWall": true + }, + { + "x": 67, + "y": 81, + "isWall": false + }, + { + "x": 67, + "y": 82, + "isWall": false + }, + { + "x": 67, + "y": 83, + "isWall": false + }, + { + "x": 67, + "y": 84, + "isWall": false + }, + { + "x": 67, + "y": 85, + "isWall": true + }, + { + "x": 67, + "y": 86, + "isWall": false + }, + { + "x": 67, + "y": 87, + "isWall": false + }, + { + "x": 67, + "y": 88, + "isWall": false + }, + { + "x": 67, + "y": 89, + "isWall": false + }, + { + "x": 67, + "y": 90, + "isWall": false + }, + { + "x": 67, + "y": 91, + "isWall": false + }, + { + "x": 67, + "y": 92, + "isWall": false + }, + { + "x": 67, + "y": 93, + "isWall": false + }, + { + "x": 67, + "y": 94, + "isWall": true + }, + { + "x": 67, + "y": 95, + "isWall": false + }, + { + "x": 67, + "y": 96, + "isWall": true + }, + { + "x": 67, + "y": 97, + "isWall": false + }, + { + "x": 67, + "y": 98, + "isWall": false + }, + { + "x": 67, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 68, + "y": 0, + "isWall": false + }, + { + "x": 68, + "y": 1, + "isWall": false + }, + { + "x": 68, + "y": 2, + "isWall": false + }, + { + "x": 68, + "y": 3, + "isWall": true + }, + { + "x": 68, + "y": 4, + "isWall": false + }, + { + "x": 68, + "y": 5, + "isWall": true + }, + { + "x": 68, + "y": 6, + "isWall": false + }, + { + "x": 68, + "y": 7, + "isWall": false + }, + { + "x": 68, + "y": 8, + "isWall": false + }, + { + "x": 68, + "y": 9, + "isWall": false + }, + { + "x": 68, + "y": 10, + "isWall": false + }, + { + "x": 68, + "y": 11, + "isWall": false + }, + { + "x": 68, + "y": 12, + "isWall": false + }, + { + "x": 68, + "y": 13, + "isWall": false + }, + { + "x": 68, + "y": 14, + "isWall": false + }, + { + "x": 68, + "y": 15, + "isWall": false + }, + { + "x": 68, + "y": 16, + "isWall": true + }, + { + "x": 68, + "y": 17, + "isWall": false + }, + { + "x": 68, + "y": 18, + "isWall": false + }, + { + "x": 68, + "y": 19, + "isWall": false + }, + { + "x": 68, + "y": 20, + "isWall": true + }, + { + "x": 68, + "y": 21, + "isWall": false + }, + { + "x": 68, + "y": 22, + "isWall": false + }, + { + "x": 68, + "y": 23, + "isWall": false + }, + { + "x": 68, + "y": 24, + "isWall": false + }, + { + "x": 68, + "y": 25, + "isWall": false + }, + { + "x": 68, + "y": 26, + "isWall": false + }, + { + "x": 68, + "y": 27, + "isWall": true + }, + { + "x": 68, + "y": 28, + "isWall": true + }, + { + "x": 68, + "y": 29, + "isWall": false + }, + { + "x": 68, + "y": 30, + "isWall": false + }, + { + "x": 68, + "y": 31, + "isWall": false + }, + { + "x": 68, + "y": 32, + "isWall": true + }, + { + "x": 68, + "y": 33, + "isWall": true + }, + { + "x": 68, + "y": 34, + "isWall": false + }, + { + "x": 68, + "y": 35, + "isWall": false + }, + { + "x": 68, + "y": 36, + "isWall": false + }, + { + "x": 68, + "y": 37, + "isWall": false + }, + { + "x": 68, + "y": 38, + "isWall": true + }, + { + "x": 68, + "y": 39, + "isWall": true + }, + { + "x": 68, + "y": 40, + "isWall": false + }, + { + "x": 68, + "y": 41, + "isWall": false + }, + { + "x": 68, + "y": 42, + "isWall": true + }, + { + "x": 68, + "y": 43, + "isWall": true + }, + { + "x": 68, + "y": 44, + "isWall": false + }, + { + "x": 68, + "y": 45, + "isWall": true + }, + { + "x": 68, + "y": 46, + "isWall": false + }, + { + "x": 68, + "y": 47, + "isWall": true + }, + { + "x": 68, + "y": 48, + "isWall": false + }, + { + "x": 68, + "y": 49, + "isWall": true + }, + { + "x": 68, + "y": 50, + "isWall": true + }, + { + "x": 68, + "y": 51, + "isWall": false + }, + { + "x": 68, + "y": 52, + "isWall": false + }, + { + "x": 68, + "y": 53, + "isWall": false + }, + { + "x": 68, + "y": 54, + "isWall": true + }, + { + "x": 68, + "y": 55, + "isWall": false + }, + { + "x": 68, + "y": 56, + "isWall": true + }, + { + "x": 68, + "y": 57, + "isWall": true + }, + { + "x": 68, + "y": 58, + "isWall": false + }, + { + "x": 68, + "y": 59, + "isWall": false + }, + { + "x": 68, + "y": 60, + "isWall": false + }, + { + "x": 68, + "y": 61, + "isWall": false + }, + { + "x": 68, + "y": 62, + "isWall": false + }, + { + "x": 68, + "y": 63, + "isWall": true + }, + { + "x": 68, + "y": 64, + "isWall": false + }, + { + "x": 68, + "y": 65, + "isWall": false + }, + { + "x": 68, + "y": 66, + "isWall": false + }, + { + "x": 68, + "y": 67, + "isWall": false + }, + { + "x": 68, + "y": 68, + "isWall": false + }, + { + "x": 68, + "y": 69, + "isWall": true + }, + { + "x": 68, + "y": 70, + "isWall": true + }, + { + "x": 68, + "y": 71, + "isWall": false + }, + { + "x": 68, + "y": 72, + "isWall": false + }, + { + "x": 68, + "y": 73, + "isWall": false + }, + { + "x": 68, + "y": 74, + "isWall": false + }, + { + "x": 68, + "y": 75, + "isWall": true + }, + { + "x": 68, + "y": 76, + "isWall": false + }, + { + "x": 68, + "y": 77, + "isWall": true + }, + { + "x": 68, + "y": 78, + "isWall": false + }, + { + "x": 68, + "y": 79, + "isWall": false + }, + { + "x": 68, + "y": 80, + "isWall": false + }, + { + "x": 68, + "y": 81, + "isWall": true + }, + { + "x": 68, + "y": 82, + "isWall": true + }, + { + "x": 68, + "y": 83, + "isWall": false + }, + { + "x": 68, + "y": 84, + "isWall": false + }, + { + "x": 68, + "y": 85, + "isWall": false + }, + { + "x": 68, + "y": 86, + "isWall": true + }, + { + "x": 68, + "y": 87, + "isWall": false + }, + { + "x": 68, + "y": 88, + "isWall": false + }, + { + "x": 68, + "y": 89, + "isWall": false + }, + { + "x": 68, + "y": 90, + "isWall": true + }, + { + "x": 68, + "y": 91, + "isWall": false + }, + { + "x": 68, + "y": 92, + "isWall": true + }, + { + "x": 68, + "y": 93, + "isWall": false + }, + { + "x": 68, + "y": 94, + "isWall": false + }, + { + "x": 68, + "y": 95, + "isWall": false + }, + { + "x": 68, + "y": 96, + "isWall": false + }, + { + "x": 68, + "y": 97, + "isWall": true + }, + { + "x": 68, + "y": 98, + "isWall": false + }, + { + "x": 68, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 69, + "y": 0, + "isWall": true + }, + { + "x": 69, + "y": 1, + "isWall": true + }, + { + "x": 69, + "y": 2, + "isWall": true + }, + { + "x": 69, + "y": 3, + "isWall": false + }, + { + "x": 69, + "y": 4, + "isWall": false + }, + { + "x": 69, + "y": 5, + "isWall": true + }, + { + "x": 69, + "y": 6, + "isWall": false + }, + { + "x": 69, + "y": 7, + "isWall": true + }, + { + "x": 69, + "y": 8, + "isWall": false + }, + { + "x": 69, + "y": 9, + "isWall": false + }, + { + "x": 69, + "y": 10, + "isWall": false + }, + { + "x": 69, + "y": 11, + "isWall": false + }, + { + "x": 69, + "y": 12, + "isWall": true + }, + { + "x": 69, + "y": 13, + "isWall": false + }, + { + "x": 69, + "y": 14, + "isWall": false + }, + { + "x": 69, + "y": 15, + "isWall": false + }, + { + "x": 69, + "y": 16, + "isWall": false + }, + { + "x": 69, + "y": 17, + "isWall": false + }, + { + "x": 69, + "y": 18, + "isWall": true + }, + { + "x": 69, + "y": 19, + "isWall": false + }, + { + "x": 69, + "y": 20, + "isWall": false + }, + { + "x": 69, + "y": 21, + "isWall": true + }, + { + "x": 69, + "y": 22, + "isWall": false + }, + { + "x": 69, + "y": 23, + "isWall": false + }, + { + "x": 69, + "y": 24, + "isWall": true + }, + { + "x": 69, + "y": 25, + "isWall": false + }, + { + "x": 69, + "y": 26, + "isWall": false + }, + { + "x": 69, + "y": 27, + "isWall": true + }, + { + "x": 69, + "y": 28, + "isWall": true + }, + { + "x": 69, + "y": 29, + "isWall": false + }, + { + "x": 69, + "y": 30, + "isWall": true + }, + { + "x": 69, + "y": 31, + "isWall": true + }, + { + "x": 69, + "y": 32, + "isWall": false + }, + { + "x": 69, + "y": 33, + "isWall": false + }, + { + "x": 69, + "y": 34, + "isWall": true + }, + { + "x": 69, + "y": 35, + "isWall": false + }, + { + "x": 69, + "y": 36, + "isWall": true + }, + { + "x": 69, + "y": 37, + "isWall": false + }, + { + "x": 69, + "y": 38, + "isWall": false + }, + { + "x": 69, + "y": 39, + "isWall": false + }, + { + "x": 69, + "y": 40, + "isWall": false + }, + { + "x": 69, + "y": 41, + "isWall": false + }, + { + "x": 69, + "y": 42, + "isWall": false + }, + { + "x": 69, + "y": 43, + "isWall": false + }, + { + "x": 69, + "y": 44, + "isWall": false + }, + { + "x": 69, + "y": 45, + "isWall": false + }, + { + "x": 69, + "y": 46, + "isWall": false + }, + { + "x": 69, + "y": 47, + "isWall": false + }, + { + "x": 69, + "y": 48, + "isWall": true + }, + { + "x": 69, + "y": 49, + "isWall": false + }, + { + "x": 69, + "y": 50, + "isWall": false + }, + { + "x": 69, + "y": 51, + "isWall": true + }, + { + "x": 69, + "y": 52, + "isWall": false + }, + { + "x": 69, + "y": 53, + "isWall": false + }, + { + "x": 69, + "y": 54, + "isWall": true + }, + { + "x": 69, + "y": 55, + "isWall": true + }, + { + "x": 69, + "y": 56, + "isWall": false + }, + { + "x": 69, + "y": 57, + "isWall": false + }, + { + "x": 69, + "y": 58, + "isWall": false + }, + { + "x": 69, + "y": 59, + "isWall": false + }, + { + "x": 69, + "y": 60, + "isWall": false + }, + { + "x": 69, + "y": 61, + "isWall": true + }, + { + "x": 69, + "y": 62, + "isWall": false + }, + { + "x": 69, + "y": 63, + "isWall": false + }, + { + "x": 69, + "y": 64, + "isWall": true + }, + { + "x": 69, + "y": 65, + "isWall": false + }, + { + "x": 69, + "y": 66, + "isWall": false + }, + { + "x": 69, + "y": 67, + "isWall": false + }, + { + "x": 69, + "y": 68, + "isWall": true + }, + { + "x": 69, + "y": 69, + "isWall": false + }, + { + "x": 69, + "y": 70, + "isWall": false + }, + { + "x": 69, + "y": 71, + "isWall": false + }, + { + "x": 69, + "y": 72, + "isWall": false + }, + { + "x": 69, + "y": 73, + "isWall": true + }, + { + "x": 69, + "y": 74, + "isWall": false + }, + { + "x": 69, + "y": 75, + "isWall": false + }, + { + "x": 69, + "y": 76, + "isWall": true + }, + { + "x": 69, + "y": 77, + "isWall": true + }, + { + "x": 69, + "y": 78, + "isWall": false + }, + { + "x": 69, + "y": 79, + "isWall": false + }, + { + "x": 69, + "y": 80, + "isWall": false + }, + { + "x": 69, + "y": 81, + "isWall": false + }, + { + "x": 69, + "y": 82, + "isWall": false + }, + { + "x": 69, + "y": 83, + "isWall": false + }, + { + "x": 69, + "y": 84, + "isWall": false + }, + { + "x": 69, + "y": 85, + "isWall": false + }, + { + "x": 69, + "y": 86, + "isWall": false + }, + { + "x": 69, + "y": 87, + "isWall": false + }, + { + "x": 69, + "y": 88, + "isWall": false + }, + { + "x": 69, + "y": 89, + "isWall": false + }, + { + "x": 69, + "y": 90, + "isWall": true + }, + { + "x": 69, + "y": 91, + "isWall": true + }, + { + "x": 69, + "y": 92, + "isWall": false + }, + { + "x": 69, + "y": 93, + "isWall": false + }, + { + "x": 69, + "y": 94, + "isWall": false + }, + { + "x": 69, + "y": 95, + "isWall": false + }, + { + "x": 69, + "y": 96, + "isWall": false + }, + { + "x": 69, + "y": 97, + "isWall": true + }, + { + "x": 69, + "y": 98, + "isWall": false + }, + { + "x": 69, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 70, + "y": 0, + "isWall": true + }, + { + "x": 70, + "y": 1, + "isWall": true + }, + { + "x": 70, + "y": 2, + "isWall": false + }, + { + "x": 70, + "y": 3, + "isWall": false + }, + { + "x": 70, + "y": 4, + "isWall": false + }, + { + "x": 70, + "y": 5, + "isWall": false + }, + { + "x": 70, + "y": 6, + "isWall": true + }, + { + "x": 70, + "y": 7, + "isWall": false + }, + { + "x": 70, + "y": 8, + "isWall": false + }, + { + "x": 70, + "y": 9, + "isWall": false + }, + { + "x": 70, + "y": 10, + "isWall": false + }, + { + "x": 70, + "y": 11, + "isWall": true + }, + { + "x": 70, + "y": 12, + "isWall": true + }, + { + "x": 70, + "y": 13, + "isWall": false + }, + { + "x": 70, + "y": 14, + "isWall": true + }, + { + "x": 70, + "y": 15, + "isWall": false + }, + { + "x": 70, + "y": 16, + "isWall": false + }, + { + "x": 70, + "y": 17, + "isWall": false + }, + { + "x": 70, + "y": 18, + "isWall": true + }, + { + "x": 70, + "y": 19, + "isWall": false + }, + { + "x": 70, + "y": 20, + "isWall": false + }, + { + "x": 70, + "y": 21, + "isWall": false + }, + { + "x": 70, + "y": 22, + "isWall": false + }, + { + "x": 70, + "y": 23, + "isWall": false + }, + { + "x": 70, + "y": 24, + "isWall": false + }, + { + "x": 70, + "y": 25, + "isWall": false + }, + { + "x": 70, + "y": 26, + "isWall": true + }, + { + "x": 70, + "y": 27, + "isWall": false + }, + { + "x": 70, + "y": 28, + "isWall": false + }, + { + "x": 70, + "y": 29, + "isWall": false + }, + { + "x": 70, + "y": 30, + "isWall": true + }, + { + "x": 70, + "y": 31, + "isWall": false + }, + { + "x": 70, + "y": 32, + "isWall": false + }, + { + "x": 70, + "y": 33, + "isWall": false + }, + { + "x": 70, + "y": 34, + "isWall": false + }, + { + "x": 70, + "y": 35, + "isWall": true + }, + { + "x": 70, + "y": 36, + "isWall": false + }, + { + "x": 70, + "y": 37, + "isWall": false + }, + { + "x": 70, + "y": 38, + "isWall": false + }, + { + "x": 70, + "y": 39, + "isWall": false + }, + { + "x": 70, + "y": 40, + "isWall": false + }, + { + "x": 70, + "y": 41, + "isWall": false + }, + { + "x": 70, + "y": 42, + "isWall": true + }, + { + "x": 70, + "y": 43, + "isWall": false + }, + { + "x": 70, + "y": 44, + "isWall": true + }, + { + "x": 70, + "y": 45, + "isWall": false + }, + { + "x": 70, + "y": 46, + "isWall": true + }, + { + "x": 70, + "y": 47, + "isWall": true + }, + { + "x": 70, + "y": 48, + "isWall": false + }, + { + "x": 70, + "y": 49, + "isWall": false + }, + { + "x": 70, + "y": 50, + "isWall": false + }, + { + "x": 70, + "y": 51, + "isWall": true + }, + { + "x": 70, + "y": 52, + "isWall": true + }, + { + "x": 70, + "y": 53, + "isWall": false + }, + { + "x": 70, + "y": 54, + "isWall": false + }, + { + "x": 70, + "y": 55, + "isWall": true + }, + { + "x": 70, + "y": 56, + "isWall": false + }, + { + "x": 70, + "y": 57, + "isWall": true + }, + { + "x": 70, + "y": 58, + "isWall": false + }, + { + "x": 70, + "y": 59, + "isWall": false + }, + { + "x": 70, + "y": 60, + "isWall": false + }, + { + "x": 70, + "y": 61, + "isWall": false + }, + { + "x": 70, + "y": 62, + "isWall": true + }, + { + "x": 70, + "y": 63, + "isWall": true + }, + { + "x": 70, + "y": 64, + "isWall": false + }, + { + "x": 70, + "y": 65, + "isWall": false + }, + { + "x": 70, + "y": 66, + "isWall": false + }, + { + "x": 70, + "y": 67, + "isWall": false + }, + { + "x": 70, + "y": 68, + "isWall": true + }, + { + "x": 70, + "y": 69, + "isWall": true + }, + { + "x": 70, + "y": 70, + "isWall": true + }, + { + "x": 70, + "y": 71, + "isWall": false + }, + { + "x": 70, + "y": 72, + "isWall": false + }, + { + "x": 70, + "y": 73, + "isWall": true + }, + { + "x": 70, + "y": 74, + "isWall": false + }, + { + "x": 70, + "y": 75, + "isWall": true + }, + { + "x": 70, + "y": 76, + "isWall": true + }, + { + "x": 70, + "y": 77, + "isWall": false + }, + { + "x": 70, + "y": 78, + "isWall": true + }, + { + "x": 70, + "y": 79, + "isWall": false + }, + { + "x": 70, + "y": 80, + "isWall": true + }, + { + "x": 70, + "y": 81, + "isWall": false + }, + { + "x": 70, + "y": 82, + "isWall": false + }, + { + "x": 70, + "y": 83, + "isWall": false + }, + { + "x": 70, + "y": 84, + "isWall": false + }, + { + "x": 70, + "y": 85, + "isWall": true + }, + { + "x": 70, + "y": 86, + "isWall": true + }, + { + "x": 70, + "y": 87, + "isWall": false + }, + { + "x": 70, + "y": 88, + "isWall": false + }, + { + "x": 70, + "y": 89, + "isWall": true + }, + { + "x": 70, + "y": 90, + "isWall": false + }, + { + "x": 70, + "y": 91, + "isWall": false + }, + { + "x": 70, + "y": 92, + "isWall": true + }, + { + "x": 70, + "y": 93, + "isWall": false + }, + { + "x": 70, + "y": 94, + "isWall": false + }, + { + "x": 70, + "y": 95, + "isWall": true + }, + { + "x": 70, + "y": 96, + "isWall": true + }, + { + "x": 70, + "y": 97, + "isWall": false + }, + { + "x": 70, + "y": 98, + "isWall": false + }, + { + "x": 70, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 71, + "y": 0, + "isWall": false + }, + { + "x": 71, + "y": 1, + "isWall": false + }, + { + "x": 71, + "y": 2, + "isWall": true + }, + { + "x": 71, + "y": 3, + "isWall": false + }, + { + "x": 71, + "y": 4, + "isWall": true + }, + { + "x": 71, + "y": 5, + "isWall": true + }, + { + "x": 71, + "y": 6, + "isWall": false + }, + { + "x": 71, + "y": 7, + "isWall": false + }, + { + "x": 71, + "y": 8, + "isWall": true + }, + { + "x": 71, + "y": 9, + "isWall": false + }, + { + "x": 71, + "y": 10, + "isWall": true + }, + { + "x": 71, + "y": 11, + "isWall": true + }, + { + "x": 71, + "y": 12, + "isWall": false + }, + { + "x": 71, + "y": 13, + "isWall": false + }, + { + "x": 71, + "y": 14, + "isWall": false + }, + { + "x": 71, + "y": 15, + "isWall": true + }, + { + "x": 71, + "y": 16, + "isWall": true + }, + { + "x": 71, + "y": 17, + "isWall": false + }, + { + "x": 71, + "y": 18, + "isWall": false + }, + { + "x": 71, + "y": 19, + "isWall": false + }, + { + "x": 71, + "y": 20, + "isWall": false + }, + { + "x": 71, + "y": 21, + "isWall": false + }, + { + "x": 71, + "y": 22, + "isWall": false + }, + { + "x": 71, + "y": 23, + "isWall": true + }, + { + "x": 71, + "y": 24, + "isWall": false + }, + { + "x": 71, + "y": 25, + "isWall": false + }, + { + "x": 71, + "y": 26, + "isWall": true + }, + { + "x": 71, + "y": 27, + "isWall": true + }, + { + "x": 71, + "y": 28, + "isWall": false + }, + { + "x": 71, + "y": 29, + "isWall": false + }, + { + "x": 71, + "y": 30, + "isWall": false + }, + { + "x": 71, + "y": 31, + "isWall": false + }, + { + "x": 71, + "y": 32, + "isWall": false + }, + { + "x": 71, + "y": 33, + "isWall": true + }, + { + "x": 71, + "y": 34, + "isWall": false + }, + { + "x": 71, + "y": 35, + "isWall": false + }, + { + "x": 71, + "y": 36, + "isWall": false + }, + { + "x": 71, + "y": 37, + "isWall": true + }, + { + "x": 71, + "y": 38, + "isWall": false + }, + { + "x": 71, + "y": 39, + "isWall": true + }, + { + "x": 71, + "y": 40, + "isWall": false + }, + { + "x": 71, + "y": 41, + "isWall": false + }, + { + "x": 71, + "y": 42, + "isWall": false + }, + { + "x": 71, + "y": 43, + "isWall": true + }, + { + "x": 71, + "y": 44, + "isWall": false + }, + { + "x": 71, + "y": 45, + "isWall": false + }, + { + "x": 71, + "y": 46, + "isWall": false + }, + { + "x": 71, + "y": 47, + "isWall": true + }, + { + "x": 71, + "y": 48, + "isWall": true + }, + { + "x": 71, + "y": 49, + "isWall": false + }, + { + "x": 71, + "y": 50, + "isWall": false + }, + { + "x": 71, + "y": 51, + "isWall": false + }, + { + "x": 71, + "y": 52, + "isWall": true + }, + { + "x": 71, + "y": 53, + "isWall": false + }, + { + "x": 71, + "y": 54, + "isWall": false + }, + { + "x": 71, + "y": 55, + "isWall": false + }, + { + "x": 71, + "y": 56, + "isWall": false + }, + { + "x": 71, + "y": 57, + "isWall": true + }, + { + "x": 71, + "y": 58, + "isWall": false + }, + { + "x": 71, + "y": 59, + "isWall": false + }, + { + "x": 71, + "y": 60, + "isWall": true + }, + { + "x": 71, + "y": 61, + "isWall": false + }, + { + "x": 71, + "y": 62, + "isWall": false + }, + { + "x": 71, + "y": 63, + "isWall": false + }, + { + "x": 71, + "y": 64, + "isWall": false + }, + { + "x": 71, + "y": 65, + "isWall": false + }, + { + "x": 71, + "y": 66, + "isWall": true + }, + { + "x": 71, + "y": 67, + "isWall": true + }, + { + "x": 71, + "y": 68, + "isWall": false + }, + { + "x": 71, + "y": 69, + "isWall": false + }, + { + "x": 71, + "y": 70, + "isWall": false + }, + { + "x": 71, + "y": 71, + "isWall": true + }, + { + "x": 71, + "y": 72, + "isWall": false + }, + { + "x": 71, + "y": 73, + "isWall": true + }, + { + "x": 71, + "y": 74, + "isWall": false + }, + { + "x": 71, + "y": 75, + "isWall": false + }, + { + "x": 71, + "y": 76, + "isWall": true + }, + { + "x": 71, + "y": 77, + "isWall": false + }, + { + "x": 71, + "y": 78, + "isWall": true + }, + { + "x": 71, + "y": 79, + "isWall": false + }, + { + "x": 71, + "y": 80, + "isWall": false + }, + { + "x": 71, + "y": 81, + "isWall": false + }, + { + "x": 71, + "y": 82, + "isWall": false + }, + { + "x": 71, + "y": 83, + "isWall": false + }, + { + "x": 71, + "y": 84, + "isWall": true + }, + { + "x": 71, + "y": 85, + "isWall": true + }, + { + "x": 71, + "y": 86, + "isWall": false + }, + { + "x": 71, + "y": 87, + "isWall": false + }, + { + "x": 71, + "y": 88, + "isWall": false + }, + { + "x": 71, + "y": 89, + "isWall": false + }, + { + "x": 71, + "y": 90, + "isWall": true + }, + { + "x": 71, + "y": 91, + "isWall": true + }, + { + "x": 71, + "y": 92, + "isWall": true + }, + { + "x": 71, + "y": 93, + "isWall": true + }, + { + "x": 71, + "y": 94, + "isWall": true + }, + { + "x": 71, + "y": 95, + "isWall": false + }, + { + "x": 71, + "y": 96, + "isWall": true + }, + { + "x": 71, + "y": 97, + "isWall": false + }, + { + "x": 71, + "y": 98, + "isWall": false + }, + { + "x": 71, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 72, + "y": 0, + "isWall": false + }, + { + "x": 72, + "y": 1, + "isWall": false + }, + { + "x": 72, + "y": 2, + "isWall": false + }, + { + "x": 72, + "y": 3, + "isWall": true + }, + { + "x": 72, + "y": 4, + "isWall": false + }, + { + "x": 72, + "y": 5, + "isWall": false + }, + { + "x": 72, + "y": 6, + "isWall": true + }, + { + "x": 72, + "y": 7, + "isWall": false + }, + { + "x": 72, + "y": 8, + "isWall": true + }, + { + "x": 72, + "y": 9, + "isWall": false + }, + { + "x": 72, + "y": 10, + "isWall": true + }, + { + "x": 72, + "y": 11, + "isWall": false + }, + { + "x": 72, + "y": 12, + "isWall": false + }, + { + "x": 72, + "y": 13, + "isWall": false + }, + { + "x": 72, + "y": 14, + "isWall": false + }, + { + "x": 72, + "y": 15, + "isWall": false + }, + { + "x": 72, + "y": 16, + "isWall": false + }, + { + "x": 72, + "y": 17, + "isWall": false + }, + { + "x": 72, + "y": 18, + "isWall": true + }, + { + "x": 72, + "y": 19, + "isWall": false + }, + { + "x": 72, + "y": 20, + "isWall": false + }, + { + "x": 72, + "y": 21, + "isWall": false + }, + { + "x": 72, + "y": 22, + "isWall": true + }, + { + "x": 72, + "y": 23, + "isWall": false + }, + { + "x": 72, + "y": 24, + "isWall": false + }, + { + "x": 72, + "y": 25, + "isWall": false + }, + { + "x": 72, + "y": 26, + "isWall": true + }, + { + "x": 72, + "y": 27, + "isWall": false + }, + { + "x": 72, + "y": 28, + "isWall": false + }, + { + "x": 72, + "y": 29, + "isWall": false + }, + { + "x": 72, + "y": 30, + "isWall": true + }, + { + "x": 72, + "y": 31, + "isWall": true + }, + { + "x": 72, + "y": 32, + "isWall": false + }, + { + "x": 72, + "y": 33, + "isWall": false + }, + { + "x": 72, + "y": 34, + "isWall": false + }, + { + "x": 72, + "y": 35, + "isWall": false + }, + { + "x": 72, + "y": 36, + "isWall": true + }, + { + "x": 72, + "y": 37, + "isWall": false + }, + { + "x": 72, + "y": 38, + "isWall": false + }, + { + "x": 72, + "y": 39, + "isWall": true + }, + { + "x": 72, + "y": 40, + "isWall": false + }, + { + "x": 72, + "y": 41, + "isWall": true + }, + { + "x": 72, + "y": 42, + "isWall": false + }, + { + "x": 72, + "y": 43, + "isWall": false + }, + { + "x": 72, + "y": 44, + "isWall": false + }, + { + "x": 72, + "y": 45, + "isWall": false + }, + { + "x": 72, + "y": 46, + "isWall": false + }, + { + "x": 72, + "y": 47, + "isWall": true + }, + { + "x": 72, + "y": 48, + "isWall": false + }, + { + "x": 72, + "y": 49, + "isWall": false + }, + { + "x": 72, + "y": 50, + "isWall": false + }, + { + "x": 72, + "y": 51, + "isWall": true + }, + { + "x": 72, + "y": 52, + "isWall": false + }, + { + "x": 72, + "y": 53, + "isWall": false + }, + { + "x": 72, + "y": 54, + "isWall": false + }, + { + "x": 72, + "y": 55, + "isWall": false + }, + { + "x": 72, + "y": 56, + "isWall": false + }, + { + "x": 72, + "y": 57, + "isWall": true + }, + { + "x": 72, + "y": 58, + "isWall": true + }, + { + "x": 72, + "y": 59, + "isWall": false + }, + { + "x": 72, + "y": 60, + "isWall": true + }, + { + "x": 72, + "y": 61, + "isWall": true + }, + { + "x": 72, + "y": 62, + "isWall": false + }, + { + "x": 72, + "y": 63, + "isWall": false + }, + { + "x": 72, + "y": 64, + "isWall": false + }, + { + "x": 72, + "y": 65, + "isWall": true + }, + { + "x": 72, + "y": 66, + "isWall": false + }, + { + "x": 72, + "y": 67, + "isWall": false + }, + { + "x": 72, + "y": 68, + "isWall": true + }, + { + "x": 72, + "y": 69, + "isWall": false + }, + { + "x": 72, + "y": 70, + "isWall": false + }, + { + "x": 72, + "y": 71, + "isWall": false + }, + { + "x": 72, + "y": 72, + "isWall": false + }, + { + "x": 72, + "y": 73, + "isWall": false + }, + { + "x": 72, + "y": 74, + "isWall": false + }, + { + "x": 72, + "y": 75, + "isWall": false + }, + { + "x": 72, + "y": 76, + "isWall": false + }, + { + "x": 72, + "y": 77, + "isWall": false + }, + { + "x": 72, + "y": 78, + "isWall": false + }, + { + "x": 72, + "y": 79, + "isWall": false + }, + { + "x": 72, + "y": 80, + "isWall": false + }, + { + "x": 72, + "y": 81, + "isWall": true + }, + { + "x": 72, + "y": 82, + "isWall": true + }, + { + "x": 72, + "y": 83, + "isWall": true + }, + { + "x": 72, + "y": 84, + "isWall": false + }, + { + "x": 72, + "y": 85, + "isWall": false + }, + { + "x": 72, + "y": 86, + "isWall": false + }, + { + "x": 72, + "y": 87, + "isWall": true + }, + { + "x": 72, + "y": 88, + "isWall": false + }, + { + "x": 72, + "y": 89, + "isWall": false + }, + { + "x": 72, + "y": 90, + "isWall": false + }, + { + "x": 72, + "y": 91, + "isWall": false + }, + { + "x": 72, + "y": 92, + "isWall": true + }, + { + "x": 72, + "y": 93, + "isWall": false + }, + { + "x": 72, + "y": 94, + "isWall": false + }, + { + "x": 72, + "y": 95, + "isWall": false + }, + { + "x": 72, + "y": 96, + "isWall": false + }, + { + "x": 72, + "y": 97, + "isWall": false + }, + { + "x": 72, + "y": 98, + "isWall": false + }, + { + "x": 72, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 73, + "y": 0, + "isWall": true + }, + { + "x": 73, + "y": 1, + "isWall": false + }, + { + "x": 73, + "y": 2, + "isWall": false + }, + { + "x": 73, + "y": 3, + "isWall": false + }, + { + "x": 73, + "y": 4, + "isWall": false + }, + { + "x": 73, + "y": 5, + "isWall": false + }, + { + "x": 73, + "y": 6, + "isWall": true + }, + { + "x": 73, + "y": 7, + "isWall": false + }, + { + "x": 73, + "y": 8, + "isWall": true + }, + { + "x": 73, + "y": 9, + "isWall": false + }, + { + "x": 73, + "y": 10, + "isWall": false + }, + { + "x": 73, + "y": 11, + "isWall": true + }, + { + "x": 73, + "y": 12, + "isWall": false + }, + { + "x": 73, + "y": 13, + "isWall": true + }, + { + "x": 73, + "y": 14, + "isWall": false + }, + { + "x": 73, + "y": 15, + "isWall": false + }, + { + "x": 73, + "y": 16, + "isWall": false + }, + { + "x": 73, + "y": 17, + "isWall": true + }, + { + "x": 73, + "y": 18, + "isWall": false + }, + { + "x": 73, + "y": 19, + "isWall": false + }, + { + "x": 73, + "y": 20, + "isWall": true + }, + { + "x": 73, + "y": 21, + "isWall": false + }, + { + "x": 73, + "y": 22, + "isWall": true + }, + { + "x": 73, + "y": 23, + "isWall": false + }, + { + "x": 73, + "y": 24, + "isWall": false + }, + { + "x": 73, + "y": 25, + "isWall": true + }, + { + "x": 73, + "y": 26, + "isWall": true + }, + { + "x": 73, + "y": 27, + "isWall": false + }, + { + "x": 73, + "y": 28, + "isWall": true + }, + { + "x": 73, + "y": 29, + "isWall": false + }, + { + "x": 73, + "y": 30, + "isWall": true + }, + { + "x": 73, + "y": 31, + "isWall": false + }, + { + "x": 73, + "y": 32, + "isWall": true + }, + { + "x": 73, + "y": 33, + "isWall": true + }, + { + "x": 73, + "y": 34, + "isWall": false + }, + { + "x": 73, + "y": 35, + "isWall": true + }, + { + "x": 73, + "y": 36, + "isWall": false + }, + { + "x": 73, + "y": 37, + "isWall": false + }, + { + "x": 73, + "y": 38, + "isWall": true + }, + { + "x": 73, + "y": 39, + "isWall": false + }, + { + "x": 73, + "y": 40, + "isWall": false + }, + { + "x": 73, + "y": 41, + "isWall": false + }, + { + "x": 73, + "y": 42, + "isWall": false + }, + { + "x": 73, + "y": 43, + "isWall": false + }, + { + "x": 73, + "y": 44, + "isWall": false + }, + { + "x": 73, + "y": 45, + "isWall": false + }, + { + "x": 73, + "y": 46, + "isWall": false + }, + { + "x": 73, + "y": 47, + "isWall": false + }, + { + "x": 73, + "y": 48, + "isWall": true + }, + { + "x": 73, + "y": 49, + "isWall": true + }, + { + "x": 73, + "y": 50, + "isWall": false + }, + { + "x": 73, + "y": 51, + "isWall": true + }, + { + "x": 73, + "y": 52, + "isWall": false + }, + { + "x": 73, + "y": 53, + "isWall": false + }, + { + "x": 73, + "y": 54, + "isWall": true + }, + { + "x": 73, + "y": 55, + "isWall": false + }, + { + "x": 73, + "y": 56, + "isWall": false + }, + { + "x": 73, + "y": 57, + "isWall": false + }, + { + "x": 73, + "y": 58, + "isWall": false + }, + { + "x": 73, + "y": 59, + "isWall": false + }, + { + "x": 73, + "y": 60, + "isWall": false + }, + { + "x": 73, + "y": 61, + "isWall": false + }, + { + "x": 73, + "y": 62, + "isWall": false + }, + { + "x": 73, + "y": 63, + "isWall": false + }, + { + "x": 73, + "y": 64, + "isWall": false + }, + { + "x": 73, + "y": 65, + "isWall": false + }, + { + "x": 73, + "y": 66, + "isWall": true + }, + { + "x": 73, + "y": 67, + "isWall": false + }, + { + "x": 73, + "y": 68, + "isWall": false + }, + { + "x": 73, + "y": 69, + "isWall": false + }, + { + "x": 73, + "y": 70, + "isWall": false + }, + { + "x": 73, + "y": 71, + "isWall": false + }, + { + "x": 73, + "y": 72, + "isWall": false + }, + { + "x": 73, + "y": 73, + "isWall": false + }, + { + "x": 73, + "y": 74, + "isWall": false + }, + { + "x": 73, + "y": 75, + "isWall": false + }, + { + "x": 73, + "y": 76, + "isWall": true + }, + { + "x": 73, + "y": 77, + "isWall": false + }, + { + "x": 73, + "y": 78, + "isWall": true + }, + { + "x": 73, + "y": 79, + "isWall": true + }, + { + "x": 73, + "y": 80, + "isWall": true + }, + { + "x": 73, + "y": 81, + "isWall": false + }, + { + "x": 73, + "y": 82, + "isWall": true + }, + { + "x": 73, + "y": 83, + "isWall": false + }, + { + "x": 73, + "y": 84, + "isWall": false + }, + { + "x": 73, + "y": 85, + "isWall": false + }, + { + "x": 73, + "y": 86, + "isWall": true + }, + { + "x": 73, + "y": 87, + "isWall": true + }, + { + "x": 73, + "y": 88, + "isWall": false + }, + { + "x": 73, + "y": 89, + "isWall": false + }, + { + "x": 73, + "y": 90, + "isWall": false + }, + { + "x": 73, + "y": 91, + "isWall": false + }, + { + "x": 73, + "y": 92, + "isWall": false + }, + { + "x": 73, + "y": 93, + "isWall": true + }, + { + "x": 73, + "y": 94, + "isWall": false + }, + { + "x": 73, + "y": 95, + "isWall": false + }, + { + "x": 73, + "y": 96, + "isWall": false + }, + { + "x": 73, + "y": 97, + "isWall": false + }, + { + "x": 73, + "y": 98, + "isWall": false + }, + { + "x": 73, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 74, + "y": 0, + "isWall": false + }, + { + "x": 74, + "y": 1, + "isWall": false + }, + { + "x": 74, + "y": 2, + "isWall": true + }, + { + "x": 74, + "y": 3, + "isWall": true + }, + { + "x": 74, + "y": 4, + "isWall": false + }, + { + "x": 74, + "y": 5, + "isWall": false + }, + { + "x": 74, + "y": 6, + "isWall": false + }, + { + "x": 74, + "y": 7, + "isWall": false + }, + { + "x": 74, + "y": 8, + "isWall": true + }, + { + "x": 74, + "y": 9, + "isWall": false + }, + { + "x": 74, + "y": 10, + "isWall": false + }, + { + "x": 74, + "y": 11, + "isWall": true + }, + { + "x": 74, + "y": 12, + "isWall": true + }, + { + "x": 74, + "y": 13, + "isWall": true + }, + { + "x": 74, + "y": 14, + "isWall": false + }, + { + "x": 74, + "y": 15, + "isWall": false + }, + { + "x": 74, + "y": 16, + "isWall": false + }, + { + "x": 74, + "y": 17, + "isWall": false + }, + { + "x": 74, + "y": 18, + "isWall": false + }, + { + "x": 74, + "y": 19, + "isWall": false + }, + { + "x": 74, + "y": 20, + "isWall": false + }, + { + "x": 74, + "y": 21, + "isWall": false + }, + { + "x": 74, + "y": 22, + "isWall": false + }, + { + "x": 74, + "y": 23, + "isWall": true + }, + { + "x": 74, + "y": 24, + "isWall": false + }, + { + "x": 74, + "y": 25, + "isWall": false + }, + { + "x": 74, + "y": 26, + "isWall": false + }, + { + "x": 74, + "y": 27, + "isWall": false + }, + { + "x": 74, + "y": 28, + "isWall": false + }, + { + "x": 74, + "y": 29, + "isWall": false + }, + { + "x": 74, + "y": 30, + "isWall": true + }, + { + "x": 74, + "y": 31, + "isWall": false + }, + { + "x": 74, + "y": 32, + "isWall": true + }, + { + "x": 74, + "y": 33, + "isWall": true + }, + { + "x": 74, + "y": 34, + "isWall": true + }, + { + "x": 74, + "y": 35, + "isWall": false + }, + { + "x": 74, + "y": 36, + "isWall": false + }, + { + "x": 74, + "y": 37, + "isWall": false + }, + { + "x": 74, + "y": 38, + "isWall": false + }, + { + "x": 74, + "y": 39, + "isWall": false + }, + { + "x": 74, + "y": 40, + "isWall": false + }, + { + "x": 74, + "y": 41, + "isWall": false + }, + { + "x": 74, + "y": 42, + "isWall": false + }, + { + "x": 74, + "y": 43, + "isWall": false + }, + { + "x": 74, + "y": 44, + "isWall": true + }, + { + "x": 74, + "y": 45, + "isWall": true + }, + { + "x": 74, + "y": 46, + "isWall": false + }, + { + "x": 74, + "y": 47, + "isWall": true + }, + { + "x": 74, + "y": 48, + "isWall": false + }, + { + "x": 74, + "y": 49, + "isWall": false + }, + { + "x": 74, + "y": 50, + "isWall": true + }, + { + "x": 74, + "y": 51, + "isWall": true + }, + { + "x": 74, + "y": 52, + "isWall": false + }, + { + "x": 74, + "y": 53, + "isWall": false + }, + { + "x": 74, + "y": 54, + "isWall": true + }, + { + "x": 74, + "y": 55, + "isWall": false + }, + { + "x": 74, + "y": 56, + "isWall": false + }, + { + "x": 74, + "y": 57, + "isWall": false + }, + { + "x": 74, + "y": 58, + "isWall": false + }, + { + "x": 74, + "y": 59, + "isWall": false + }, + { + "x": 74, + "y": 60, + "isWall": false + }, + { + "x": 74, + "y": 61, + "isWall": false + }, + { + "x": 74, + "y": 62, + "isWall": false + }, + { + "x": 74, + "y": 63, + "isWall": false + }, + { + "x": 74, + "y": 64, + "isWall": false + }, + { + "x": 74, + "y": 65, + "isWall": false + }, + { + "x": 74, + "y": 66, + "isWall": false + }, + { + "x": 74, + "y": 67, + "isWall": false + }, + { + "x": 74, + "y": 68, + "isWall": true + }, + { + "x": 74, + "y": 69, + "isWall": false + }, + { + "x": 74, + "y": 70, + "isWall": false + }, + { + "x": 74, + "y": 71, + "isWall": true + }, + { + "x": 74, + "y": 72, + "isWall": false + }, + { + "x": 74, + "y": 73, + "isWall": true + }, + { + "x": 74, + "y": 74, + "isWall": false + }, + { + "x": 74, + "y": 75, + "isWall": false + }, + { + "x": 74, + "y": 76, + "isWall": false + }, + { + "x": 74, + "y": 77, + "isWall": false + }, + { + "x": 74, + "y": 78, + "isWall": false + }, + { + "x": 74, + "y": 79, + "isWall": false + }, + { + "x": 74, + "y": 80, + "isWall": false + }, + { + "x": 74, + "y": 81, + "isWall": false + }, + { + "x": 74, + "y": 82, + "isWall": false + }, + { + "x": 74, + "y": 83, + "isWall": false + }, + { + "x": 74, + "y": 84, + "isWall": false + }, + { + "x": 74, + "y": 85, + "isWall": true + }, + { + "x": 74, + "y": 86, + "isWall": false + }, + { + "x": 74, + "y": 87, + "isWall": false + }, + { + "x": 74, + "y": 88, + "isWall": true + }, + { + "x": 74, + "y": 89, + "isWall": false + }, + { + "x": 74, + "y": 90, + "isWall": true + }, + { + "x": 74, + "y": 91, + "isWall": false + }, + { + "x": 74, + "y": 92, + "isWall": true + }, + { + "x": 74, + "y": 93, + "isWall": false + }, + { + "x": 74, + "y": 94, + "isWall": false + }, + { + "x": 74, + "y": 95, + "isWall": true + }, + { + "x": 74, + "y": 96, + "isWall": false + }, + { + "x": 74, + "y": 97, + "isWall": false + }, + { + "x": 74, + "y": 98, + "isWall": false + }, + { + "x": 74, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 75, + "y": 0, + "isWall": true + }, + { + "x": 75, + "y": 1, + "isWall": true + }, + { + "x": 75, + "y": 2, + "isWall": false + }, + { + "x": 75, + "y": 3, + "isWall": false + }, + { + "x": 75, + "y": 4, + "isWall": false + }, + { + "x": 75, + "y": 5, + "isWall": true + }, + { + "x": 75, + "y": 6, + "isWall": false + }, + { + "x": 75, + "y": 7, + "isWall": false + }, + { + "x": 75, + "y": 8, + "isWall": false + }, + { + "x": 75, + "y": 9, + "isWall": true + }, + { + "x": 75, + "y": 10, + "isWall": true + }, + { + "x": 75, + "y": 11, + "isWall": false + }, + { + "x": 75, + "y": 12, + "isWall": false + }, + { + "x": 75, + "y": 13, + "isWall": true + }, + { + "x": 75, + "y": 14, + "isWall": false + }, + { + "x": 75, + "y": 15, + "isWall": true + }, + { + "x": 75, + "y": 16, + "isWall": true + }, + { + "x": 75, + "y": 17, + "isWall": false + }, + { + "x": 75, + "y": 18, + "isWall": false + }, + { + "x": 75, + "y": 19, + "isWall": true + }, + { + "x": 75, + "y": 20, + "isWall": false + }, + { + "x": 75, + "y": 21, + "isWall": false + }, + { + "x": 75, + "y": 22, + "isWall": false + }, + { + "x": 75, + "y": 23, + "isWall": false + }, + { + "x": 75, + "y": 24, + "isWall": true + }, + { + "x": 75, + "y": 25, + "isWall": true + }, + { + "x": 75, + "y": 26, + "isWall": true + }, + { + "x": 75, + "y": 27, + "isWall": true + }, + { + "x": 75, + "y": 28, + "isWall": false + }, + { + "x": 75, + "y": 29, + "isWall": false + }, + { + "x": 75, + "y": 30, + "isWall": false + }, + { + "x": 75, + "y": 31, + "isWall": false + }, + { + "x": 75, + "y": 32, + "isWall": false + }, + { + "x": 75, + "y": 33, + "isWall": true + }, + { + "x": 75, + "y": 34, + "isWall": true + }, + { + "x": 75, + "y": 35, + "isWall": false + }, + { + "x": 75, + "y": 36, + "isWall": false + }, + { + "x": 75, + "y": 37, + "isWall": false + }, + { + "x": 75, + "y": 38, + "isWall": true + }, + { + "x": 75, + "y": 39, + "isWall": true + }, + { + "x": 75, + "y": 40, + "isWall": true + }, + { + "x": 75, + "y": 41, + "isWall": false + }, + { + "x": 75, + "y": 42, + "isWall": false + }, + { + "x": 75, + "y": 43, + "isWall": false + }, + { + "x": 75, + "y": 44, + "isWall": false + }, + { + "x": 75, + "y": 45, + "isWall": true + }, + { + "x": 75, + "y": 46, + "isWall": false + }, + { + "x": 75, + "y": 47, + "isWall": true + }, + { + "x": 75, + "y": 48, + "isWall": true + }, + { + "x": 75, + "y": 49, + "isWall": false + }, + { + "x": 75, + "y": 50, + "isWall": false + }, + { + "x": 75, + "y": 51, + "isWall": false + }, + { + "x": 75, + "y": 52, + "isWall": false + }, + { + "x": 75, + "y": 53, + "isWall": false + }, + { + "x": 75, + "y": 54, + "isWall": false + }, + { + "x": 75, + "y": 55, + "isWall": false + }, + { + "x": 75, + "y": 56, + "isWall": false + }, + { + "x": 75, + "y": 57, + "isWall": false + }, + { + "x": 75, + "y": 58, + "isWall": false + }, + { + "x": 75, + "y": 59, + "isWall": false + }, + { + "x": 75, + "y": 60, + "isWall": false + }, + { + "x": 75, + "y": 61, + "isWall": false + }, + { + "x": 75, + "y": 62, + "isWall": false + }, + { + "x": 75, + "y": 63, + "isWall": true + }, + { + "x": 75, + "y": 64, + "isWall": false + }, + { + "x": 75, + "y": 65, + "isWall": false + }, + { + "x": 75, + "y": 66, + "isWall": false + }, + { + "x": 75, + "y": 67, + "isWall": false + }, + { + "x": 75, + "y": 68, + "isWall": false + }, + { + "x": 75, + "y": 69, + "isWall": false + }, + { + "x": 75, + "y": 70, + "isWall": false + }, + { + "x": 75, + "y": 71, + "isWall": false + }, + { + "x": 75, + "y": 72, + "isWall": true + }, + { + "x": 75, + "y": 73, + "isWall": false + }, + { + "x": 75, + "y": 74, + "isWall": false + }, + { + "x": 75, + "y": 75, + "isWall": true + }, + { + "x": 75, + "y": 76, + "isWall": true + }, + { + "x": 75, + "y": 77, + "isWall": false + }, + { + "x": 75, + "y": 78, + "isWall": false + }, + { + "x": 75, + "y": 79, + "isWall": false + }, + { + "x": 75, + "y": 80, + "isWall": false + }, + { + "x": 75, + "y": 81, + "isWall": false + }, + { + "x": 75, + "y": 82, + "isWall": false + }, + { + "x": 75, + "y": 83, + "isWall": true + }, + { + "x": 75, + "y": 84, + "isWall": true + }, + { + "x": 75, + "y": 85, + "isWall": true + }, + { + "x": 75, + "y": 86, + "isWall": false + }, + { + "x": 75, + "y": 87, + "isWall": false + }, + { + "x": 75, + "y": 88, + "isWall": false + }, + { + "x": 75, + "y": 89, + "isWall": false + }, + { + "x": 75, + "y": 90, + "isWall": false + }, + { + "x": 75, + "y": 91, + "isWall": true + }, + { + "x": 75, + "y": 92, + "isWall": false + }, + { + "x": 75, + "y": 93, + "isWall": false + }, + { + "x": 75, + "y": 94, + "isWall": false + }, + { + "x": 75, + "y": 95, + "isWall": true + }, + { + "x": 75, + "y": 96, + "isWall": false + }, + { + "x": 75, + "y": 97, + "isWall": false + }, + { + "x": 75, + "y": 98, + "isWall": false + }, + { + "x": 75, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 76, + "y": 0, + "isWall": false + }, + { + "x": 76, + "y": 1, + "isWall": true + }, + { + "x": 76, + "y": 2, + "isWall": false + }, + { + "x": 76, + "y": 3, + "isWall": false + }, + { + "x": 76, + "y": 4, + "isWall": false + }, + { + "x": 76, + "y": 5, + "isWall": false + }, + { + "x": 76, + "y": 6, + "isWall": false + }, + { + "x": 76, + "y": 7, + "isWall": false + }, + { + "x": 76, + "y": 8, + "isWall": false + }, + { + "x": 76, + "y": 9, + "isWall": false + }, + { + "x": 76, + "y": 10, + "isWall": false + }, + { + "x": 76, + "y": 11, + "isWall": false + }, + { + "x": 76, + "y": 12, + "isWall": false + }, + { + "x": 76, + "y": 13, + "isWall": false + }, + { + "x": 76, + "y": 14, + "isWall": false + }, + { + "x": 76, + "y": 15, + "isWall": false + }, + { + "x": 76, + "y": 16, + "isWall": true + }, + { + "x": 76, + "y": 17, + "isWall": true + }, + { + "x": 76, + "y": 18, + "isWall": false + }, + { + "x": 76, + "y": 19, + "isWall": false + }, + { + "x": 76, + "y": 20, + "isWall": true + }, + { + "x": 76, + "y": 21, + "isWall": true + }, + { + "x": 76, + "y": 22, + "isWall": true + }, + { + "x": 76, + "y": 23, + "isWall": false + }, + { + "x": 76, + "y": 24, + "isWall": false + }, + { + "x": 76, + "y": 25, + "isWall": false + }, + { + "x": 76, + "y": 26, + "isWall": false + }, + { + "x": 76, + "y": 27, + "isWall": true + }, + { + "x": 76, + "y": 28, + "isWall": false + }, + { + "x": 76, + "y": 29, + "isWall": false + }, + { + "x": 76, + "y": 30, + "isWall": true + }, + { + "x": 76, + "y": 31, + "isWall": true + }, + { + "x": 76, + "y": 32, + "isWall": true + }, + { + "x": 76, + "y": 33, + "isWall": false + }, + { + "x": 76, + "y": 34, + "isWall": false + }, + { + "x": 76, + "y": 35, + "isWall": false + }, + { + "x": 76, + "y": 36, + "isWall": true + }, + { + "x": 76, + "y": 37, + "isWall": false + }, + { + "x": 76, + "y": 38, + "isWall": false + }, + { + "x": 76, + "y": 39, + "isWall": true + }, + { + "x": 76, + "y": 40, + "isWall": false + }, + { + "x": 76, + "y": 41, + "isWall": true + }, + { + "x": 76, + "y": 42, + "isWall": true + }, + { + "x": 76, + "y": 43, + "isWall": true + }, + { + "x": 76, + "y": 44, + "isWall": false + }, + { + "x": 76, + "y": 45, + "isWall": false + }, + { + "x": 76, + "y": 46, + "isWall": true + }, + { + "x": 76, + "y": 47, + "isWall": false + }, + { + "x": 76, + "y": 48, + "isWall": false + }, + { + "x": 76, + "y": 49, + "isWall": false + }, + { + "x": 76, + "y": 50, + "isWall": true + }, + { + "x": 76, + "y": 51, + "isWall": false + }, + { + "x": 76, + "y": 52, + "isWall": true + }, + { + "x": 76, + "y": 53, + "isWall": false + }, + { + "x": 76, + "y": 54, + "isWall": false + }, + { + "x": 76, + "y": 55, + "isWall": false + }, + { + "x": 76, + "y": 56, + "isWall": false + }, + { + "x": 76, + "y": 57, + "isWall": true + }, + { + "x": 76, + "y": 58, + "isWall": true + }, + { + "x": 76, + "y": 59, + "isWall": false + }, + { + "x": 76, + "y": 60, + "isWall": false + }, + { + "x": 76, + "y": 61, + "isWall": false + }, + { + "x": 76, + "y": 62, + "isWall": true + }, + { + "x": 76, + "y": 63, + "isWall": true + }, + { + "x": 76, + "y": 64, + "isWall": false + }, + { + "x": 76, + "y": 65, + "isWall": false + }, + { + "x": 76, + "y": 66, + "isWall": true + }, + { + "x": 76, + "y": 67, + "isWall": false + }, + { + "x": 76, + "y": 68, + "isWall": true + }, + { + "x": 76, + "y": 69, + "isWall": false + }, + { + "x": 76, + "y": 70, + "isWall": true + }, + { + "x": 76, + "y": 71, + "isWall": true + }, + { + "x": 76, + "y": 72, + "isWall": false + }, + { + "x": 76, + "y": 73, + "isWall": false + }, + { + "x": 76, + "y": 74, + "isWall": false + }, + { + "x": 76, + "y": 75, + "isWall": true + }, + { + "x": 76, + "y": 76, + "isWall": false + }, + { + "x": 76, + "y": 77, + "isWall": false + }, + { + "x": 76, + "y": 78, + "isWall": true + }, + { + "x": 76, + "y": 79, + "isWall": false + }, + { + "x": 76, + "y": 80, + "isWall": false + }, + { + "x": 76, + "y": 81, + "isWall": true + }, + { + "x": 76, + "y": 82, + "isWall": false + }, + { + "x": 76, + "y": 83, + "isWall": true + }, + { + "x": 76, + "y": 84, + "isWall": false + }, + { + "x": 76, + "y": 85, + "isWall": false + }, + { + "x": 76, + "y": 86, + "isWall": false + }, + { + "x": 76, + "y": 87, + "isWall": false + }, + { + "x": 76, + "y": 88, + "isWall": true + }, + { + "x": 76, + "y": 89, + "isWall": false + }, + { + "x": 76, + "y": 90, + "isWall": false + }, + { + "x": 76, + "y": 91, + "isWall": true + }, + { + "x": 76, + "y": 92, + "isWall": false + }, + { + "x": 76, + "y": 93, + "isWall": false + }, + { + "x": 76, + "y": 94, + "isWall": true + }, + { + "x": 76, + "y": 95, + "isWall": false + }, + { + "x": 76, + "y": 96, + "isWall": false + }, + { + "x": 76, + "y": 97, + "isWall": true + }, + { + "x": 76, + "y": 98, + "isWall": false + }, + { + "x": 76, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 77, + "y": 0, + "isWall": true + }, + { + "x": 77, + "y": 1, + "isWall": false + }, + { + "x": 77, + "y": 2, + "isWall": false + }, + { + "x": 77, + "y": 3, + "isWall": true + }, + { + "x": 77, + "y": 4, + "isWall": false + }, + { + "x": 77, + "y": 5, + "isWall": false + }, + { + "x": 77, + "y": 6, + "isWall": true + }, + { + "x": 77, + "y": 7, + "isWall": true + }, + { + "x": 77, + "y": 8, + "isWall": false + }, + { + "x": 77, + "y": 9, + "isWall": false + }, + { + "x": 77, + "y": 10, + "isWall": false + }, + { + "x": 77, + "y": 11, + "isWall": false + }, + { + "x": 77, + "y": 12, + "isWall": false + }, + { + "x": 77, + "y": 13, + "isWall": false + }, + { + "x": 77, + "y": 14, + "isWall": false + }, + { + "x": 77, + "y": 15, + "isWall": false + }, + { + "x": 77, + "y": 16, + "isWall": false + }, + { + "x": 77, + "y": 17, + "isWall": false + }, + { + "x": 77, + "y": 18, + "isWall": true + }, + { + "x": 77, + "y": 19, + "isWall": false + }, + { + "x": 77, + "y": 20, + "isWall": true + }, + { + "x": 77, + "y": 21, + "isWall": true + }, + { + "x": 77, + "y": 22, + "isWall": false + }, + { + "x": 77, + "y": 23, + "isWall": false + }, + { + "x": 77, + "y": 24, + "isWall": false + }, + { + "x": 77, + "y": 25, + "isWall": false + }, + { + "x": 77, + "y": 26, + "isWall": true + }, + { + "x": 77, + "y": 27, + "isWall": true + }, + { + "x": 77, + "y": 28, + "isWall": false + }, + { + "x": 77, + "y": 29, + "isWall": false + }, + { + "x": 77, + "y": 30, + "isWall": false + }, + { + "x": 77, + "y": 31, + "isWall": false + }, + { + "x": 77, + "y": 32, + "isWall": false + }, + { + "x": 77, + "y": 33, + "isWall": false + }, + { + "x": 77, + "y": 34, + "isWall": false + }, + { + "x": 77, + "y": 35, + "isWall": false + }, + { + "x": 77, + "y": 36, + "isWall": true + }, + { + "x": 77, + "y": 37, + "isWall": true + }, + { + "x": 77, + "y": 38, + "isWall": false + }, + { + "x": 77, + "y": 39, + "isWall": false + }, + { + "x": 77, + "y": 40, + "isWall": false + }, + { + "x": 77, + "y": 41, + "isWall": false + }, + { + "x": 77, + "y": 42, + "isWall": true + }, + { + "x": 77, + "y": 43, + "isWall": true + }, + { + "x": 77, + "y": 44, + "isWall": true + }, + { + "x": 77, + "y": 45, + "isWall": false + }, + { + "x": 77, + "y": 46, + "isWall": false + }, + { + "x": 77, + "y": 47, + "isWall": false + }, + { + "x": 77, + "y": 48, + "isWall": false + }, + { + "x": 77, + "y": 49, + "isWall": false + }, + { + "x": 77, + "y": 50, + "isWall": false + }, + { + "x": 77, + "y": 51, + "isWall": false + }, + { + "x": 77, + "y": 52, + "isWall": false + }, + { + "x": 77, + "y": 53, + "isWall": false + }, + { + "x": 77, + "y": 54, + "isWall": false + }, + { + "x": 77, + "y": 55, + "isWall": false + }, + { + "x": 77, + "y": 56, + "isWall": false + }, + { + "x": 77, + "y": 57, + "isWall": false + }, + { + "x": 77, + "y": 58, + "isWall": false + }, + { + "x": 77, + "y": 59, + "isWall": false + }, + { + "x": 77, + "y": 60, + "isWall": false + }, + { + "x": 77, + "y": 61, + "isWall": false + }, + { + "x": 77, + "y": 62, + "isWall": true + }, + { + "x": 77, + "y": 63, + "isWall": false + }, + { + "x": 77, + "y": 64, + "isWall": false + }, + { + "x": 77, + "y": 65, + "isWall": true + }, + { + "x": 77, + "y": 66, + "isWall": true + }, + { + "x": 77, + "y": 67, + "isWall": false + }, + { + "x": 77, + "y": 68, + "isWall": false + }, + { + "x": 77, + "y": 69, + "isWall": false + }, + { + "x": 77, + "y": 70, + "isWall": false + }, + { + "x": 77, + "y": 71, + "isWall": false + }, + { + "x": 77, + "y": 72, + "isWall": false + }, + { + "x": 77, + "y": 73, + "isWall": false + }, + { + "x": 77, + "y": 74, + "isWall": false + }, + { + "x": 77, + "y": 75, + "isWall": true + }, + { + "x": 77, + "y": 76, + "isWall": false + }, + { + "x": 77, + "y": 77, + "isWall": false + }, + { + "x": 77, + "y": 78, + "isWall": false + }, + { + "x": 77, + "y": 79, + "isWall": true + }, + { + "x": 77, + "y": 80, + "isWall": true + }, + { + "x": 77, + "y": 81, + "isWall": true + }, + { + "x": 77, + "y": 82, + "isWall": false + }, + { + "x": 77, + "y": 83, + "isWall": false + }, + { + "x": 77, + "y": 84, + "isWall": false + }, + { + "x": 77, + "y": 85, + "isWall": false + }, + { + "x": 77, + "y": 86, + "isWall": false + }, + { + "x": 77, + "y": 87, + "isWall": true + }, + { + "x": 77, + "y": 88, + "isWall": true + }, + { + "x": 77, + "y": 89, + "isWall": false + }, + { + "x": 77, + "y": 90, + "isWall": false + }, + { + "x": 77, + "y": 91, + "isWall": false + }, + { + "x": 77, + "y": 92, + "isWall": true + }, + { + "x": 77, + "y": 93, + "isWall": true + }, + { + "x": 77, + "y": 94, + "isWall": false + }, + { + "x": 77, + "y": 95, + "isWall": false + }, + { + "x": 77, + "y": 96, + "isWall": true + }, + { + "x": 77, + "y": 97, + "isWall": false + }, + { + "x": 77, + "y": 98, + "isWall": true + }, + { + "x": 77, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 78, + "y": 0, + "isWall": false + }, + { + "x": 78, + "y": 1, + "isWall": false + }, + { + "x": 78, + "y": 2, + "isWall": false + }, + { + "x": 78, + "y": 3, + "isWall": true + }, + { + "x": 78, + "y": 4, + "isWall": false + }, + { + "x": 78, + "y": 5, + "isWall": false + }, + { + "x": 78, + "y": 6, + "isWall": false + }, + { + "x": 78, + "y": 7, + "isWall": false + }, + { + "x": 78, + "y": 8, + "isWall": false + }, + { + "x": 78, + "y": 9, + "isWall": true + }, + { + "x": 78, + "y": 10, + "isWall": true + }, + { + "x": 78, + "y": 11, + "isWall": false + }, + { + "x": 78, + "y": 12, + "isWall": true + }, + { + "x": 78, + "y": 13, + "isWall": true + }, + { + "x": 78, + "y": 14, + "isWall": false + }, + { + "x": 78, + "y": 15, + "isWall": false + }, + { + "x": 78, + "y": 16, + "isWall": false + }, + { + "x": 78, + "y": 17, + "isWall": false + }, + { + "x": 78, + "y": 18, + "isWall": true + }, + { + "x": 78, + "y": 19, + "isWall": false + }, + { + "x": 78, + "y": 20, + "isWall": false + }, + { + "x": 78, + "y": 21, + "isWall": false + }, + { + "x": 78, + "y": 22, + "isWall": false + }, + { + "x": 78, + "y": 23, + "isWall": false + }, + { + "x": 78, + "y": 24, + "isWall": true + }, + { + "x": 78, + "y": 25, + "isWall": true + }, + { + "x": 78, + "y": 26, + "isWall": true + }, + { + "x": 78, + "y": 27, + "isWall": false + }, + { + "x": 78, + "y": 28, + "isWall": true + }, + { + "x": 78, + "y": 29, + "isWall": true + }, + { + "x": 78, + "y": 30, + "isWall": false + }, + { + "x": 78, + "y": 31, + "isWall": false + }, + { + "x": 78, + "y": 32, + "isWall": false + }, + { + "x": 78, + "y": 33, + "isWall": false + }, + { + "x": 78, + "y": 34, + "isWall": false + }, + { + "x": 78, + "y": 35, + "isWall": false + }, + { + "x": 78, + "y": 36, + "isWall": false + }, + { + "x": 78, + "y": 37, + "isWall": false + }, + { + "x": 78, + "y": 38, + "isWall": true + }, + { + "x": 78, + "y": 39, + "isWall": false + }, + { + "x": 78, + "y": 40, + "isWall": true + }, + { + "x": 78, + "y": 41, + "isWall": false + }, + { + "x": 78, + "y": 42, + "isWall": false + }, + { + "x": 78, + "y": 43, + "isWall": true + }, + { + "x": 78, + "y": 44, + "isWall": true + }, + { + "x": 78, + "y": 45, + "isWall": true + }, + { + "x": 78, + "y": 46, + "isWall": false + }, + { + "x": 78, + "y": 47, + "isWall": false + }, + { + "x": 78, + "y": 48, + "isWall": false + }, + { + "x": 78, + "y": 49, + "isWall": false + }, + { + "x": 78, + "y": 50, + "isWall": false + }, + { + "x": 78, + "y": 51, + "isWall": true + }, + { + "x": 78, + "y": 52, + "isWall": false + }, + { + "x": 78, + "y": 53, + "isWall": false + }, + { + "x": 78, + "y": 54, + "isWall": false + }, + { + "x": 78, + "y": 55, + "isWall": false + }, + { + "x": 78, + "y": 56, + "isWall": false + }, + { + "x": 78, + "y": 57, + "isWall": true + }, + { + "x": 78, + "y": 58, + "isWall": false + }, + { + "x": 78, + "y": 59, + "isWall": false + }, + { + "x": 78, + "y": 60, + "isWall": false + }, + { + "x": 78, + "y": 61, + "isWall": false + }, + { + "x": 78, + "y": 62, + "isWall": false + }, + { + "x": 78, + "y": 63, + "isWall": false + }, + { + "x": 78, + "y": 64, + "isWall": true + }, + { + "x": 78, + "y": 65, + "isWall": false + }, + { + "x": 78, + "y": 66, + "isWall": false + }, + { + "x": 78, + "y": 67, + "isWall": false + }, + { + "x": 78, + "y": 68, + "isWall": true + }, + { + "x": 78, + "y": 69, + "isWall": true + }, + { + "x": 78, + "y": 70, + "isWall": false + }, + { + "x": 78, + "y": 71, + "isWall": true + }, + { + "x": 78, + "y": 72, + "isWall": false + }, + { + "x": 78, + "y": 73, + "isWall": true + }, + { + "x": 78, + "y": 74, + "isWall": false + }, + { + "x": 78, + "y": 75, + "isWall": false + }, + { + "x": 78, + "y": 76, + "isWall": true + }, + { + "x": 78, + "y": 77, + "isWall": true + }, + { + "x": 78, + "y": 78, + "isWall": false + }, + { + "x": 78, + "y": 79, + "isWall": true + }, + { + "x": 78, + "y": 80, + "isWall": true + }, + { + "x": 78, + "y": 81, + "isWall": true + }, + { + "x": 78, + "y": 82, + "isWall": true + }, + { + "x": 78, + "y": 83, + "isWall": false + }, + { + "x": 78, + "y": 84, + "isWall": false + }, + { + "x": 78, + "y": 85, + "isWall": false + }, + { + "x": 78, + "y": 86, + "isWall": false + }, + { + "x": 78, + "y": 87, + "isWall": false + }, + { + "x": 78, + "y": 88, + "isWall": true + }, + { + "x": 78, + "y": 89, + "isWall": false + }, + { + "x": 78, + "y": 90, + "isWall": false + }, + { + "x": 78, + "y": 91, + "isWall": false + }, + { + "x": 78, + "y": 92, + "isWall": false + }, + { + "x": 78, + "y": 93, + "isWall": false + }, + { + "x": 78, + "y": 94, + "isWall": false + }, + { + "x": 78, + "y": 95, + "isWall": false + }, + { + "x": 78, + "y": 96, + "isWall": false + }, + { + "x": 78, + "y": 97, + "isWall": false + }, + { + "x": 78, + "y": 98, + "isWall": true + }, + { + "x": 78, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 79, + "y": 0, + "isWall": false + }, + { + "x": 79, + "y": 1, + "isWall": false + }, + { + "x": 79, + "y": 2, + "isWall": false + }, + { + "x": 79, + "y": 3, + "isWall": false + }, + { + "x": 79, + "y": 4, + "isWall": false + }, + { + "x": 79, + "y": 5, + "isWall": false + }, + { + "x": 79, + "y": 6, + "isWall": false + }, + { + "x": 79, + "y": 7, + "isWall": false + }, + { + "x": 79, + "y": 8, + "isWall": true + }, + { + "x": 79, + "y": 9, + "isWall": true + }, + { + "x": 79, + "y": 10, + "isWall": false + }, + { + "x": 79, + "y": 11, + "isWall": true + }, + { + "x": 79, + "y": 12, + "isWall": false + }, + { + "x": 79, + "y": 13, + "isWall": false + }, + { + "x": 79, + "y": 14, + "isWall": false + }, + { + "x": 79, + "y": 15, + "isWall": true + }, + { + "x": 79, + "y": 16, + "isWall": false + }, + { + "x": 79, + "y": 17, + "isWall": false + }, + { + "x": 79, + "y": 18, + "isWall": false + }, + { + "x": 79, + "y": 19, + "isWall": false + }, + { + "x": 79, + "y": 20, + "isWall": false + }, + { + "x": 79, + "y": 21, + "isWall": true + }, + { + "x": 79, + "y": 22, + "isWall": false + }, + { + "x": 79, + "y": 23, + "isWall": false + }, + { + "x": 79, + "y": 24, + "isWall": false + }, + { + "x": 79, + "y": 25, + "isWall": false + }, + { + "x": 79, + "y": 26, + "isWall": false + }, + { + "x": 79, + "y": 27, + "isWall": false + }, + { + "x": 79, + "y": 28, + "isWall": false + }, + { + "x": 79, + "y": 29, + "isWall": false + }, + { + "x": 79, + "y": 30, + "isWall": true + }, + { + "x": 79, + "y": 31, + "isWall": false + }, + { + "x": 79, + "y": 32, + "isWall": false + }, + { + "x": 79, + "y": 33, + "isWall": false + }, + { + "x": 79, + "y": 34, + "isWall": false + }, + { + "x": 79, + "y": 35, + "isWall": true + }, + { + "x": 79, + "y": 36, + "isWall": false + }, + { + "x": 79, + "y": 37, + "isWall": false + }, + { + "x": 79, + "y": 38, + "isWall": false + }, + { + "x": 79, + "y": 39, + "isWall": false + }, + { + "x": 79, + "y": 40, + "isWall": false + }, + { + "x": 79, + "y": 41, + "isWall": false + }, + { + "x": 79, + "y": 42, + "isWall": false + }, + { + "x": 79, + "y": 43, + "isWall": false + }, + { + "x": 79, + "y": 44, + "isWall": true + }, + { + "x": 79, + "y": 45, + "isWall": false + }, + { + "x": 79, + "y": 46, + "isWall": false + }, + { + "x": 79, + "y": 47, + "isWall": true + }, + { + "x": 79, + "y": 48, + "isWall": false + }, + { + "x": 79, + "y": 49, + "isWall": true + }, + { + "x": 79, + "y": 50, + "isWall": false + }, + { + "x": 79, + "y": 51, + "isWall": false + }, + { + "x": 79, + "y": 52, + "isWall": true + }, + { + "x": 79, + "y": 53, + "isWall": false + }, + { + "x": 79, + "y": 54, + "isWall": false + }, + { + "x": 79, + "y": 55, + "isWall": true + }, + { + "x": 79, + "y": 56, + "isWall": false + }, + { + "x": 79, + "y": 57, + "isWall": false + }, + { + "x": 79, + "y": 58, + "isWall": false + }, + { + "x": 79, + "y": 59, + "isWall": false + }, + { + "x": 79, + "y": 60, + "isWall": false + }, + { + "x": 79, + "y": 61, + "isWall": false + }, + { + "x": 79, + "y": 62, + "isWall": false + }, + { + "x": 79, + "y": 63, + "isWall": false + }, + { + "x": 79, + "y": 64, + "isWall": true + }, + { + "x": 79, + "y": 65, + "isWall": true + }, + { + "x": 79, + "y": 66, + "isWall": false + }, + { + "x": 79, + "y": 67, + "isWall": false + }, + { + "x": 79, + "y": 68, + "isWall": false + }, + { + "x": 79, + "y": 69, + "isWall": false + }, + { + "x": 79, + "y": 70, + "isWall": false + }, + { + "x": 79, + "y": 71, + "isWall": true + }, + { + "x": 79, + "y": 72, + "isWall": false + }, + { + "x": 79, + "y": 73, + "isWall": false + }, + { + "x": 79, + "y": 74, + "isWall": false + }, + { + "x": 79, + "y": 75, + "isWall": false + }, + { + "x": 79, + "y": 76, + "isWall": false + }, + { + "x": 79, + "y": 77, + "isWall": false + }, + { + "x": 79, + "y": 78, + "isWall": true + }, + { + "x": 79, + "y": 79, + "isWall": false + }, + { + "x": 79, + "y": 80, + "isWall": false + }, + { + "x": 79, + "y": 81, + "isWall": true + }, + { + "x": 79, + "y": 82, + "isWall": true + }, + { + "x": 79, + "y": 83, + "isWall": true + }, + { + "x": 79, + "y": 84, + "isWall": false + }, + { + "x": 79, + "y": 85, + "isWall": false + }, + { + "x": 79, + "y": 86, + "isWall": false + }, + { + "x": 79, + "y": 87, + "isWall": false + }, + { + "x": 79, + "y": 88, + "isWall": true + }, + { + "x": 79, + "y": 89, + "isWall": false + }, + { + "x": 79, + "y": 90, + "isWall": true + }, + { + "x": 79, + "y": 91, + "isWall": false + }, + { + "x": 79, + "y": 92, + "isWall": false + }, + { + "x": 79, + "y": 93, + "isWall": false + }, + { + "x": 79, + "y": 94, + "isWall": false + }, + { + "x": 79, + "y": 95, + "isWall": false + }, + { + "x": 79, + "y": 96, + "isWall": false + }, + { + "x": 79, + "y": 97, + "isWall": true + }, + { + "x": 79, + "y": 98, + "isWall": true + }, + { + "x": 79, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 80, + "y": 0, + "isWall": false + }, + { + "x": 80, + "y": 1, + "isWall": false + }, + { + "x": 80, + "y": 2, + "isWall": false + }, + { + "x": 80, + "y": 3, + "isWall": false + }, + { + "x": 80, + "y": 4, + "isWall": true + }, + { + "x": 80, + "y": 5, + "isWall": false + }, + { + "x": 80, + "y": 6, + "isWall": false + }, + { + "x": 80, + "y": 7, + "isWall": false + }, + { + "x": 80, + "y": 8, + "isWall": false + }, + { + "x": 80, + "y": 9, + "isWall": false + }, + { + "x": 80, + "y": 10, + "isWall": true + }, + { + "x": 80, + "y": 11, + "isWall": true + }, + { + "x": 80, + "y": 12, + "isWall": false + }, + { + "x": 80, + "y": 13, + "isWall": false + }, + { + "x": 80, + "y": 14, + "isWall": false + }, + { + "x": 80, + "y": 15, + "isWall": false + }, + { + "x": 80, + "y": 16, + "isWall": false + }, + { + "x": 80, + "y": 17, + "isWall": true + }, + { + "x": 80, + "y": 18, + "isWall": false + }, + { + "x": 80, + "y": 19, + "isWall": false + }, + { + "x": 80, + "y": 20, + "isWall": true + }, + { + "x": 80, + "y": 21, + "isWall": false + }, + { + "x": 80, + "y": 22, + "isWall": false + }, + { + "x": 80, + "y": 23, + "isWall": true + }, + { + "x": 80, + "y": 24, + "isWall": false + }, + { + "x": 80, + "y": 25, + "isWall": true + }, + { + "x": 80, + "y": 26, + "isWall": false + }, + { + "x": 80, + "y": 27, + "isWall": false + }, + { + "x": 80, + "y": 28, + "isWall": false + }, + { + "x": 80, + "y": 29, + "isWall": false + }, + { + "x": 80, + "y": 30, + "isWall": false + }, + { + "x": 80, + "y": 31, + "isWall": true + }, + { + "x": 80, + "y": 32, + "isWall": false + }, + { + "x": 80, + "y": 33, + "isWall": false + }, + { + "x": 80, + "y": 34, + "isWall": false + }, + { + "x": 80, + "y": 35, + "isWall": true + }, + { + "x": 80, + "y": 36, + "isWall": true + }, + { + "x": 80, + "y": 37, + "isWall": false + }, + { + "x": 80, + "y": 38, + "isWall": true + }, + { + "x": 80, + "y": 39, + "isWall": false + }, + { + "x": 80, + "y": 40, + "isWall": true + }, + { + "x": 80, + "y": 41, + "isWall": false + }, + { + "x": 80, + "y": 42, + "isWall": false + }, + { + "x": 80, + "y": 43, + "isWall": false + }, + { + "x": 80, + "y": 44, + "isWall": false + }, + { + "x": 80, + "y": 45, + "isWall": false + }, + { + "x": 80, + "y": 46, + "isWall": false + }, + { + "x": 80, + "y": 47, + "isWall": false + }, + { + "x": 80, + "y": 48, + "isWall": false + }, + { + "x": 80, + "y": 49, + "isWall": true + }, + { + "x": 80, + "y": 50, + "isWall": false + }, + { + "x": 80, + "y": 51, + "isWall": false + }, + { + "x": 80, + "y": 52, + "isWall": true + }, + { + "x": 80, + "y": 53, + "isWall": true + }, + { + "x": 80, + "y": 54, + "isWall": true + }, + { + "x": 80, + "y": 55, + "isWall": false + }, + { + "x": 80, + "y": 56, + "isWall": true + }, + { + "x": 80, + "y": 57, + "isWall": false + }, + { + "x": 80, + "y": 58, + "isWall": false + }, + { + "x": 80, + "y": 59, + "isWall": false + }, + { + "x": 80, + "y": 60, + "isWall": true + }, + { + "x": 80, + "y": 61, + "isWall": true + }, + { + "x": 80, + "y": 62, + "isWall": false + }, + { + "x": 80, + "y": 63, + "isWall": false + }, + { + "x": 80, + "y": 64, + "isWall": true + }, + { + "x": 80, + "y": 65, + "isWall": false + }, + { + "x": 80, + "y": 66, + "isWall": true + }, + { + "x": 80, + "y": 67, + "isWall": true + }, + { + "x": 80, + "y": 68, + "isWall": false + }, + { + "x": 80, + "y": 69, + "isWall": true + }, + { + "x": 80, + "y": 70, + "isWall": false + }, + { + "x": 80, + "y": 71, + "isWall": false + }, + { + "x": 80, + "y": 72, + "isWall": false + }, + { + "x": 80, + "y": 73, + "isWall": false + }, + { + "x": 80, + "y": 74, + "isWall": true + }, + { + "x": 80, + "y": 75, + "isWall": false + }, + { + "x": 80, + "y": 76, + "isWall": false + }, + { + "x": 80, + "y": 77, + "isWall": false + }, + { + "x": 80, + "y": 78, + "isWall": false + }, + { + "x": 80, + "y": 79, + "isWall": false + }, + { + "x": 80, + "y": 80, + "isWall": false + }, + { + "x": 80, + "y": 81, + "isWall": false + }, + { + "x": 80, + "y": 82, + "isWall": true + }, + { + "x": 80, + "y": 83, + "isWall": true + }, + { + "x": 80, + "y": 84, + "isWall": true + }, + { + "x": 80, + "y": 85, + "isWall": false + }, + { + "x": 80, + "y": 86, + "isWall": false + }, + { + "x": 80, + "y": 87, + "isWall": true + }, + { + "x": 80, + "y": 88, + "isWall": false + }, + { + "x": 80, + "y": 89, + "isWall": false + }, + { + "x": 80, + "y": 90, + "isWall": false + }, + { + "x": 80, + "y": 91, + "isWall": false + }, + { + "x": 80, + "y": 92, + "isWall": false + }, + { + "x": 80, + "y": 93, + "isWall": false + }, + { + "x": 80, + "y": 94, + "isWall": false + }, + { + "x": 80, + "y": 95, + "isWall": true + }, + { + "x": 80, + "y": 96, + "isWall": false + }, + { + "x": 80, + "y": 97, + "isWall": false + }, + { + "x": 80, + "y": 98, + "isWall": false + }, + { + "x": 80, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 81, + "y": 0, + "isWall": false + }, + { + "x": 81, + "y": 1, + "isWall": false + }, + { + "x": 81, + "y": 2, + "isWall": false + }, + { + "x": 81, + "y": 3, + "isWall": false + }, + { + "x": 81, + "y": 4, + "isWall": false + }, + { + "x": 81, + "y": 5, + "isWall": false + }, + { + "x": 81, + "y": 6, + "isWall": true + }, + { + "x": 81, + "y": 7, + "isWall": false + }, + { + "x": 81, + "y": 8, + "isWall": false + }, + { + "x": 81, + "y": 9, + "isWall": false + }, + { + "x": 81, + "y": 10, + "isWall": false + }, + { + "x": 81, + "y": 11, + "isWall": true + }, + { + "x": 81, + "y": 12, + "isWall": true + }, + { + "x": 81, + "y": 13, + "isWall": false + }, + { + "x": 81, + "y": 14, + "isWall": false + }, + { + "x": 81, + "y": 15, + "isWall": false + }, + { + "x": 81, + "y": 16, + "isWall": false + }, + { + "x": 81, + "y": 17, + "isWall": false + }, + { + "x": 81, + "y": 18, + "isWall": false + }, + { + "x": 81, + "y": 19, + "isWall": true + }, + { + "x": 81, + "y": 20, + "isWall": false + }, + { + "x": 81, + "y": 21, + "isWall": false + }, + { + "x": 81, + "y": 22, + "isWall": false + }, + { + "x": 81, + "y": 23, + "isWall": false + }, + { + "x": 81, + "y": 24, + "isWall": true + }, + { + "x": 81, + "y": 25, + "isWall": false + }, + { + "x": 81, + "y": 26, + "isWall": false + }, + { + "x": 81, + "y": 27, + "isWall": false + }, + { + "x": 81, + "y": 28, + "isWall": false + }, + { + "x": 81, + "y": 29, + "isWall": false + }, + { + "x": 81, + "y": 30, + "isWall": true + }, + { + "x": 81, + "y": 31, + "isWall": false + }, + { + "x": 81, + "y": 32, + "isWall": false + }, + { + "x": 81, + "y": 33, + "isWall": true + }, + { + "x": 81, + "y": 34, + "isWall": true + }, + { + "x": 81, + "y": 35, + "isWall": false + }, + { + "x": 81, + "y": 36, + "isWall": false + }, + { + "x": 81, + "y": 37, + "isWall": false + }, + { + "x": 81, + "y": 38, + "isWall": false + }, + { + "x": 81, + "y": 39, + "isWall": false + }, + { + "x": 81, + "y": 40, + "isWall": false + }, + { + "x": 81, + "y": 41, + "isWall": true + }, + { + "x": 81, + "y": 42, + "isWall": false + }, + { + "x": 81, + "y": 43, + "isWall": false + }, + { + "x": 81, + "y": 44, + "isWall": false + }, + { + "x": 81, + "y": 45, + "isWall": true + }, + { + "x": 81, + "y": 46, + "isWall": true + }, + { + "x": 81, + "y": 47, + "isWall": false + }, + { + "x": 81, + "y": 48, + "isWall": true + }, + { + "x": 81, + "y": 49, + "isWall": false + }, + { + "x": 81, + "y": 50, + "isWall": false + }, + { + "x": 81, + "y": 51, + "isWall": false + }, + { + "x": 81, + "y": 52, + "isWall": true + }, + { + "x": 81, + "y": 53, + "isWall": false + }, + { + "x": 81, + "y": 54, + "isWall": true + }, + { + "x": 81, + "y": 55, + "isWall": false + }, + { + "x": 81, + "y": 56, + "isWall": false + }, + { + "x": 81, + "y": 57, + "isWall": false + }, + { + "x": 81, + "y": 58, + "isWall": false + }, + { + "x": 81, + "y": 59, + "isWall": true + }, + { + "x": 81, + "y": 60, + "isWall": true + }, + { + "x": 81, + "y": 61, + "isWall": false + }, + { + "x": 81, + "y": 62, + "isWall": false + }, + { + "x": 81, + "y": 63, + "isWall": false + }, + { + "x": 81, + "y": 64, + "isWall": true + }, + { + "x": 81, + "y": 65, + "isWall": false + }, + { + "x": 81, + "y": 66, + "isWall": false + }, + { + "x": 81, + "y": 67, + "isWall": false + }, + { + "x": 81, + "y": 68, + "isWall": false + }, + { + "x": 81, + "y": 69, + "isWall": false + }, + { + "x": 81, + "y": 70, + "isWall": false + }, + { + "x": 81, + "y": 71, + "isWall": false + }, + { + "x": 81, + "y": 72, + "isWall": false + }, + { + "x": 81, + "y": 73, + "isWall": false + }, + { + "x": 81, + "y": 74, + "isWall": false + }, + { + "x": 81, + "y": 75, + "isWall": false + }, + { + "x": 81, + "y": 76, + "isWall": true + }, + { + "x": 81, + "y": 77, + "isWall": false + }, + { + "x": 81, + "y": 78, + "isWall": false + }, + { + "x": 81, + "y": 79, + "isWall": false + }, + { + "x": 81, + "y": 80, + "isWall": false + }, + { + "x": 81, + "y": 81, + "isWall": false + }, + { + "x": 81, + "y": 82, + "isWall": false + }, + { + "x": 81, + "y": 83, + "isWall": false + }, + { + "x": 81, + "y": 84, + "isWall": false + }, + { + "x": 81, + "y": 85, + "isWall": true + }, + { + "x": 81, + "y": 86, + "isWall": false + }, + { + "x": 81, + "y": 87, + "isWall": false + }, + { + "x": 81, + "y": 88, + "isWall": false + }, + { + "x": 81, + "y": 89, + "isWall": false + }, + { + "x": 81, + "y": 90, + "isWall": false + }, + { + "x": 81, + "y": 91, + "isWall": false + }, + { + "x": 81, + "y": 92, + "isWall": false + }, + { + "x": 81, + "y": 93, + "isWall": false + }, + { + "x": 81, + "y": 94, + "isWall": true + }, + { + "x": 81, + "y": 95, + "isWall": true + }, + { + "x": 81, + "y": 96, + "isWall": true + }, + { + "x": 81, + "y": 97, + "isWall": true + }, + { + "x": 81, + "y": 98, + "isWall": true + }, + { + "x": 81, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 82, + "y": 0, + "isWall": false + }, + { + "x": 82, + "y": 1, + "isWall": false + }, + { + "x": 82, + "y": 2, + "isWall": true + }, + { + "x": 82, + "y": 3, + "isWall": false + }, + { + "x": 82, + "y": 4, + "isWall": false + }, + { + "x": 82, + "y": 5, + "isWall": false + }, + { + "x": 82, + "y": 6, + "isWall": false + }, + { + "x": 82, + "y": 7, + "isWall": false + }, + { + "x": 82, + "y": 8, + "isWall": false + }, + { + "x": 82, + "y": 9, + "isWall": true + }, + { + "x": 82, + "y": 10, + "isWall": false + }, + { + "x": 82, + "y": 11, + "isWall": false + }, + { + "x": 82, + "y": 12, + "isWall": false + }, + { + "x": 82, + "y": 13, + "isWall": false + }, + { + "x": 82, + "y": 14, + "isWall": false + }, + { + "x": 82, + "y": 15, + "isWall": false + }, + { + "x": 82, + "y": 16, + "isWall": false + }, + { + "x": 82, + "y": 17, + "isWall": true + }, + { + "x": 82, + "y": 18, + "isWall": true + }, + { + "x": 82, + "y": 19, + "isWall": false + }, + { + "x": 82, + "y": 20, + "isWall": true + }, + { + "x": 82, + "y": 21, + "isWall": false + }, + { + "x": 82, + "y": 22, + "isWall": true + }, + { + "x": 82, + "y": 23, + "isWall": false + }, + { + "x": 82, + "y": 24, + "isWall": true + }, + { + "x": 82, + "y": 25, + "isWall": false + }, + { + "x": 82, + "y": 26, + "isWall": true + }, + { + "x": 82, + "y": 27, + "isWall": true + }, + { + "x": 82, + "y": 28, + "isWall": false + }, + { + "x": 82, + "y": 29, + "isWall": false + }, + { + "x": 82, + "y": 30, + "isWall": true + }, + { + "x": 82, + "y": 31, + "isWall": false + }, + { + "x": 82, + "y": 32, + "isWall": false + }, + { + "x": 82, + "y": 33, + "isWall": false + }, + { + "x": 82, + "y": 34, + "isWall": false + }, + { + "x": 82, + "y": 35, + "isWall": false + }, + { + "x": 82, + "y": 36, + "isWall": false + }, + { + "x": 82, + "y": 37, + "isWall": true + }, + { + "x": 82, + "y": 38, + "isWall": false + }, + { + "x": 82, + "y": 39, + "isWall": false + }, + { + "x": 82, + "y": 40, + "isWall": false + }, + { + "x": 82, + "y": 41, + "isWall": false + }, + { + "x": 82, + "y": 42, + "isWall": true + }, + { + "x": 82, + "y": 43, + "isWall": true + }, + { + "x": 82, + "y": 44, + "isWall": false + }, + { + "x": 82, + "y": 45, + "isWall": false + }, + { + "x": 82, + "y": 46, + "isWall": true + }, + { + "x": 82, + "y": 47, + "isWall": false + }, + { + "x": 82, + "y": 48, + "isWall": true + }, + { + "x": 82, + "y": 49, + "isWall": false + }, + { + "x": 82, + "y": 50, + "isWall": false + }, + { + "x": 82, + "y": 51, + "isWall": false + }, + { + "x": 82, + "y": 52, + "isWall": true + }, + { + "x": 82, + "y": 53, + "isWall": true + }, + { + "x": 82, + "y": 54, + "isWall": true + }, + { + "x": 82, + "y": 55, + "isWall": false + }, + { + "x": 82, + "y": 56, + "isWall": false + }, + { + "x": 82, + "y": 57, + "isWall": false + }, + { + "x": 82, + "y": 58, + "isWall": false + }, + { + "x": 82, + "y": 59, + "isWall": false + }, + { + "x": 82, + "y": 60, + "isWall": true + }, + { + "x": 82, + "y": 61, + "isWall": false + }, + { + "x": 82, + "y": 62, + "isWall": false + }, + { + "x": 82, + "y": 63, + "isWall": true + }, + { + "x": 82, + "y": 64, + "isWall": false + }, + { + "x": 82, + "y": 65, + "isWall": false + }, + { + "x": 82, + "y": 66, + "isWall": false + }, + { + "x": 82, + "y": 67, + "isWall": false + }, + { + "x": 82, + "y": 68, + "isWall": false + }, + { + "x": 82, + "y": 69, + "isWall": false + }, + { + "x": 82, + "y": 70, + "isWall": false + }, + { + "x": 82, + "y": 71, + "isWall": false + }, + { + "x": 82, + "y": 72, + "isWall": false + }, + { + "x": 82, + "y": 73, + "isWall": false + }, + { + "x": 82, + "y": 74, + "isWall": false + }, + { + "x": 82, + "y": 75, + "isWall": false + }, + { + "x": 82, + "y": 76, + "isWall": false + }, + { + "x": 82, + "y": 77, + "isWall": false + }, + { + "x": 82, + "y": 78, + "isWall": true + }, + { + "x": 82, + "y": 79, + "isWall": false + }, + { + "x": 82, + "y": 80, + "isWall": false + }, + { + "x": 82, + "y": 81, + "isWall": false + }, + { + "x": 82, + "y": 82, + "isWall": false + }, + { + "x": 82, + "y": 83, + "isWall": true + }, + { + "x": 82, + "y": 84, + "isWall": false + }, + { + "x": 82, + "y": 85, + "isWall": false + }, + { + "x": 82, + "y": 86, + "isWall": false + }, + { + "x": 82, + "y": 87, + "isWall": true + }, + { + "x": 82, + "y": 88, + "isWall": false + }, + { + "x": 82, + "y": 89, + "isWall": false + }, + { + "x": 82, + "y": 90, + "isWall": true + }, + { + "x": 82, + "y": 91, + "isWall": true + }, + { + "x": 82, + "y": 92, + "isWall": true + }, + { + "x": 82, + "y": 93, + "isWall": false + }, + { + "x": 82, + "y": 94, + "isWall": false + }, + { + "x": 82, + "y": 95, + "isWall": false + }, + { + "x": 82, + "y": 96, + "isWall": true + }, + { + "x": 82, + "y": 97, + "isWall": true + }, + { + "x": 82, + "y": 98, + "isWall": false + }, + { + "x": 82, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 83, + "y": 0, + "isWall": true + }, + { + "x": 83, + "y": 1, + "isWall": false + }, + { + "x": 83, + "y": 2, + "isWall": false + }, + { + "x": 83, + "y": 3, + "isWall": false + }, + { + "x": 83, + "y": 4, + "isWall": false + }, + { + "x": 83, + "y": 5, + "isWall": false + }, + { + "x": 83, + "y": 6, + "isWall": true + }, + { + "x": 83, + "y": 7, + "isWall": false + }, + { + "x": 83, + "y": 8, + "isWall": false + }, + { + "x": 83, + "y": 9, + "isWall": false + }, + { + "x": 83, + "y": 10, + "isWall": true + }, + { + "x": 83, + "y": 11, + "isWall": false + }, + { + "x": 83, + "y": 12, + "isWall": false + }, + { + "x": 83, + "y": 13, + "isWall": false + }, + { + "x": 83, + "y": 14, + "isWall": false + }, + { + "x": 83, + "y": 15, + "isWall": false + }, + { + "x": 83, + "y": 16, + "isWall": false + }, + { + "x": 83, + "y": 17, + "isWall": false + }, + { + "x": 83, + "y": 18, + "isWall": false + }, + { + "x": 83, + "y": 19, + "isWall": false + }, + { + "x": 83, + "y": 20, + "isWall": false + }, + { + "x": 83, + "y": 21, + "isWall": false + }, + { + "x": 83, + "y": 22, + "isWall": false + }, + { + "x": 83, + "y": 23, + "isWall": false + }, + { + "x": 83, + "y": 24, + "isWall": true + }, + { + "x": 83, + "y": 25, + "isWall": true + }, + { + "x": 83, + "y": 26, + "isWall": false + }, + { + "x": 83, + "y": 27, + "isWall": true + }, + { + "x": 83, + "y": 28, + "isWall": false + }, + { + "x": 83, + "y": 29, + "isWall": false + }, + { + "x": 83, + "y": 30, + "isWall": false + }, + { + "x": 83, + "y": 31, + "isWall": false + }, + { + "x": 83, + "y": 32, + "isWall": false + }, + { + "x": 83, + "y": 33, + "isWall": false + }, + { + "x": 83, + "y": 34, + "isWall": false + }, + { + "x": 83, + "y": 35, + "isWall": false + }, + { + "x": 83, + "y": 36, + "isWall": true + }, + { + "x": 83, + "y": 37, + "isWall": false + }, + { + "x": 83, + "y": 38, + "isWall": false + }, + { + "x": 83, + "y": 39, + "isWall": false + }, + { + "x": 83, + "y": 40, + "isWall": false + }, + { + "x": 83, + "y": 41, + "isWall": false + }, + { + "x": 83, + "y": 42, + "isWall": false + }, + { + "x": 83, + "y": 43, + "isWall": false + }, + { + "x": 83, + "y": 44, + "isWall": true + }, + { + "x": 83, + "y": 45, + "isWall": false + }, + { + "x": 83, + "y": 46, + "isWall": true + }, + { + "x": 83, + "y": 47, + "isWall": false + }, + { + "x": 83, + "y": 48, + "isWall": true + }, + { + "x": 83, + "y": 49, + "isWall": false + }, + { + "x": 83, + "y": 50, + "isWall": true + }, + { + "x": 83, + "y": 51, + "isWall": false + }, + { + "x": 83, + "y": 52, + "isWall": false + }, + { + "x": 83, + "y": 53, + "isWall": false + }, + { + "x": 83, + "y": 54, + "isWall": false + }, + { + "x": 83, + "y": 55, + "isWall": false + }, + { + "x": 83, + "y": 56, + "isWall": false + }, + { + "x": 83, + "y": 57, + "isWall": false + }, + { + "x": 83, + "y": 58, + "isWall": true + }, + { + "x": 83, + "y": 59, + "isWall": true + }, + { + "x": 83, + "y": 60, + "isWall": true + }, + { + "x": 83, + "y": 61, + "isWall": false + }, + { + "x": 83, + "y": 62, + "isWall": false + }, + { + "x": 83, + "y": 63, + "isWall": false + }, + { + "x": 83, + "y": 64, + "isWall": false + }, + { + "x": 83, + "y": 65, + "isWall": false + }, + { + "x": 83, + "y": 66, + "isWall": true + }, + { + "x": 83, + "y": 67, + "isWall": false + }, + { + "x": 83, + "y": 68, + "isWall": true + }, + { + "x": 83, + "y": 69, + "isWall": false + }, + { + "x": 83, + "y": 70, + "isWall": false + }, + { + "x": 83, + "y": 71, + "isWall": true + }, + { + "x": 83, + "y": 72, + "isWall": false + }, + { + "x": 83, + "y": 73, + "isWall": false + }, + { + "x": 83, + "y": 74, + "isWall": false + }, + { + "x": 83, + "y": 75, + "isWall": true + }, + { + "x": 83, + "y": 76, + "isWall": true + }, + { + "x": 83, + "y": 77, + "isWall": false + }, + { + "x": 83, + "y": 78, + "isWall": false + }, + { + "x": 83, + "y": 79, + "isWall": false + }, + { + "x": 83, + "y": 80, + "isWall": true + }, + { + "x": 83, + "y": 81, + "isWall": false + }, + { + "x": 83, + "y": 82, + "isWall": false + }, + { + "x": 83, + "y": 83, + "isWall": true + }, + { + "x": 83, + "y": 84, + "isWall": false + }, + { + "x": 83, + "y": 85, + "isWall": true + }, + { + "x": 83, + "y": 86, + "isWall": true + }, + { + "x": 83, + "y": 87, + "isWall": true + }, + { + "x": 83, + "y": 88, + "isWall": false + }, + { + "x": 83, + "y": 89, + "isWall": false + }, + { + "x": 83, + "y": 90, + "isWall": true + }, + { + "x": 83, + "y": 91, + "isWall": true + }, + { + "x": 83, + "y": 92, + "isWall": false + }, + { + "x": 83, + "y": 93, + "isWall": true + }, + { + "x": 83, + "y": 94, + "isWall": true + }, + { + "x": 83, + "y": 95, + "isWall": false + }, + { + "x": 83, + "y": 96, + "isWall": false + }, + { + "x": 83, + "y": 97, + "isWall": true + }, + { + "x": 83, + "y": 98, + "isWall": true + }, + { + "x": 83, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 84, + "y": 0, + "isWall": false + }, + { + "x": 84, + "y": 1, + "isWall": false + }, + { + "x": 84, + "y": 2, + "isWall": true + }, + { + "x": 84, + "y": 3, + "isWall": true + }, + { + "x": 84, + "y": 4, + "isWall": false + }, + { + "x": 84, + "y": 5, + "isWall": false + }, + { + "x": 84, + "y": 6, + "isWall": false + }, + { + "x": 84, + "y": 7, + "isWall": true + }, + { + "x": 84, + "y": 8, + "isWall": false + }, + { + "x": 84, + "y": 9, + "isWall": false + }, + { + "x": 84, + "y": 10, + "isWall": false + }, + { + "x": 84, + "y": 11, + "isWall": false + }, + { + "x": 84, + "y": 12, + "isWall": false + }, + { + "x": 84, + "y": 13, + "isWall": false + }, + { + "x": 84, + "y": 14, + "isWall": false + }, + { + "x": 84, + "y": 15, + "isWall": false + }, + { + "x": 84, + "y": 16, + "isWall": true + }, + { + "x": 84, + "y": 17, + "isWall": true + }, + { + "x": 84, + "y": 18, + "isWall": false + }, + { + "x": 84, + "y": 19, + "isWall": false + }, + { + "x": 84, + "y": 20, + "isWall": false + }, + { + "x": 84, + "y": 21, + "isWall": false + }, + { + "x": 84, + "y": 22, + "isWall": false + }, + { + "x": 84, + "y": 23, + "isWall": true + }, + { + "x": 84, + "y": 24, + "isWall": false + }, + { + "x": 84, + "y": 25, + "isWall": false + }, + { + "x": 84, + "y": 26, + "isWall": false + }, + { + "x": 84, + "y": 27, + "isWall": true + }, + { + "x": 84, + "y": 28, + "isWall": true + }, + { + "x": 84, + "y": 29, + "isWall": false + }, + { + "x": 84, + "y": 30, + "isWall": true + }, + { + "x": 84, + "y": 31, + "isWall": false + }, + { + "x": 84, + "y": 32, + "isWall": false + }, + { + "x": 84, + "y": 33, + "isWall": true + }, + { + "x": 84, + "y": 34, + "isWall": false + }, + { + "x": 84, + "y": 35, + "isWall": true + }, + { + "x": 84, + "y": 36, + "isWall": false + }, + { + "x": 84, + "y": 37, + "isWall": false + }, + { + "x": 84, + "y": 38, + "isWall": false + }, + { + "x": 84, + "y": 39, + "isWall": false + }, + { + "x": 84, + "y": 40, + "isWall": false + }, + { + "x": 84, + "y": 41, + "isWall": false + }, + { + "x": 84, + "y": 42, + "isWall": false + }, + { + "x": 84, + "y": 43, + "isWall": false + }, + { + "x": 84, + "y": 44, + "isWall": true + }, + { + "x": 84, + "y": 45, + "isWall": true + }, + { + "x": 84, + "y": 46, + "isWall": false + }, + { + "x": 84, + "y": 47, + "isWall": true + }, + { + "x": 84, + "y": 48, + "isWall": false + }, + { + "x": 84, + "y": 49, + "isWall": false + }, + { + "x": 84, + "y": 50, + "isWall": false + }, + { + "x": 84, + "y": 51, + "isWall": true + }, + { + "x": 84, + "y": 52, + "isWall": true + }, + { + "x": 84, + "y": 53, + "isWall": true + }, + { + "x": 84, + "y": 54, + "isWall": false + }, + { + "x": 84, + "y": 55, + "isWall": true + }, + { + "x": 84, + "y": 56, + "isWall": true + }, + { + "x": 84, + "y": 57, + "isWall": false + }, + { + "x": 84, + "y": 58, + "isWall": true + }, + { + "x": 84, + "y": 59, + "isWall": true + }, + { + "x": 84, + "y": 60, + "isWall": false + }, + { + "x": 84, + "y": 61, + "isWall": false + }, + { + "x": 84, + "y": 62, + "isWall": false + }, + { + "x": 84, + "y": 63, + "isWall": false + }, + { + "x": 84, + "y": 64, + "isWall": false + }, + { + "x": 84, + "y": 65, + "isWall": false + }, + { + "x": 84, + "y": 66, + "isWall": false + }, + { + "x": 84, + "y": 67, + "isWall": false + }, + { + "x": 84, + "y": 68, + "isWall": false + }, + { + "x": 84, + "y": 69, + "isWall": false + }, + { + "x": 84, + "y": 70, + "isWall": false + }, + { + "x": 84, + "y": 71, + "isWall": true + }, + { + "x": 84, + "y": 72, + "isWall": false + }, + { + "x": 84, + "y": 73, + "isWall": true + }, + { + "x": 84, + "y": 74, + "isWall": false + }, + { + "x": 84, + "y": 75, + "isWall": false + }, + { + "x": 84, + "y": 76, + "isWall": false + }, + { + "x": 84, + "y": 77, + "isWall": false + }, + { + "x": 84, + "y": 78, + "isWall": false + }, + { + "x": 84, + "y": 79, + "isWall": true + }, + { + "x": 84, + "y": 80, + "isWall": false + }, + { + "x": 84, + "y": 81, + "isWall": false + }, + { + "x": 84, + "y": 82, + "isWall": false + }, + { + "x": 84, + "y": 83, + "isWall": false + }, + { + "x": 84, + "y": 84, + "isWall": false + }, + { + "x": 84, + "y": 85, + "isWall": false + }, + { + "x": 84, + "y": 86, + "isWall": false + }, + { + "x": 84, + "y": 87, + "isWall": true + }, + { + "x": 84, + "y": 88, + "isWall": true + }, + { + "x": 84, + "y": 89, + "isWall": false + }, + { + "x": 84, + "y": 90, + "isWall": false + }, + { + "x": 84, + "y": 91, + "isWall": true + }, + { + "x": 84, + "y": 92, + "isWall": false + }, + { + "x": 84, + "y": 93, + "isWall": false + }, + { + "x": 84, + "y": 94, + "isWall": false + }, + { + "x": 84, + "y": 95, + "isWall": false + }, + { + "x": 84, + "y": 96, + "isWall": false + }, + { + "x": 84, + "y": 97, + "isWall": true + }, + { + "x": 84, + "y": 98, + "isWall": false + }, + { + "x": 84, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 85, + "y": 0, + "isWall": false + }, + { + "x": 85, + "y": 1, + "isWall": false + }, + { + "x": 85, + "y": 2, + "isWall": true + }, + { + "x": 85, + "y": 3, + "isWall": true + }, + { + "x": 85, + "y": 4, + "isWall": false + }, + { + "x": 85, + "y": 5, + "isWall": false + }, + { + "x": 85, + "y": 6, + "isWall": true + }, + { + "x": 85, + "y": 7, + "isWall": false + }, + { + "x": 85, + "y": 8, + "isWall": true + }, + { + "x": 85, + "y": 9, + "isWall": false + }, + { + "x": 85, + "y": 10, + "isWall": false + }, + { + "x": 85, + "y": 11, + "isWall": false + }, + { + "x": 85, + "y": 12, + "isWall": false + }, + { + "x": 85, + "y": 13, + "isWall": false + }, + { + "x": 85, + "y": 14, + "isWall": false + }, + { + "x": 85, + "y": 15, + "isWall": false + }, + { + "x": 85, + "y": 16, + "isWall": true + }, + { + "x": 85, + "y": 17, + "isWall": false + }, + { + "x": 85, + "y": 18, + "isWall": false + }, + { + "x": 85, + "y": 19, + "isWall": false + }, + { + "x": 85, + "y": 20, + "isWall": false + }, + { + "x": 85, + "y": 21, + "isWall": true + }, + { + "x": 85, + "y": 22, + "isWall": true + }, + { + "x": 85, + "y": 23, + "isWall": false + }, + { + "x": 85, + "y": 24, + "isWall": true + }, + { + "x": 85, + "y": 25, + "isWall": true + }, + { + "x": 85, + "y": 26, + "isWall": false + }, + { + "x": 85, + "y": 27, + "isWall": true + }, + { + "x": 85, + "y": 28, + "isWall": false + }, + { + "x": 85, + "y": 29, + "isWall": false + }, + { + "x": 85, + "y": 30, + "isWall": true + }, + { + "x": 85, + "y": 31, + "isWall": false + }, + { + "x": 85, + "y": 32, + "isWall": false + }, + { + "x": 85, + "y": 33, + "isWall": true + }, + { + "x": 85, + "y": 34, + "isWall": false + }, + { + "x": 85, + "y": 35, + "isWall": false + }, + { + "x": 85, + "y": 36, + "isWall": false + }, + { + "x": 85, + "y": 37, + "isWall": false + }, + { + "x": 85, + "y": 38, + "isWall": true + }, + { + "x": 85, + "y": 39, + "isWall": false + }, + { + "x": 85, + "y": 40, + "isWall": true + }, + { + "x": 85, + "y": 41, + "isWall": false + }, + { + "x": 85, + "y": 42, + "isWall": false + }, + { + "x": 85, + "y": 43, + "isWall": false + }, + { + "x": 85, + "y": 44, + "isWall": true + }, + { + "x": 85, + "y": 45, + "isWall": false + }, + { + "x": 85, + "y": 46, + "isWall": false + }, + { + "x": 85, + "y": 47, + "isWall": false + }, + { + "x": 85, + "y": 48, + "isWall": false + }, + { + "x": 85, + "y": 49, + "isWall": false + }, + { + "x": 85, + "y": 50, + "isWall": false + }, + { + "x": 85, + "y": 51, + "isWall": true + }, + { + "x": 85, + "y": 52, + "isWall": false + }, + { + "x": 85, + "y": 53, + "isWall": true + }, + { + "x": 85, + "y": 54, + "isWall": false + }, + { + "x": 85, + "y": 55, + "isWall": false + }, + { + "x": 85, + "y": 56, + "isWall": false + }, + { + "x": 85, + "y": 57, + "isWall": false + }, + { + "x": 85, + "y": 58, + "isWall": false + }, + { + "x": 85, + "y": 59, + "isWall": true + }, + { + "x": 85, + "y": 60, + "isWall": true + }, + { + "x": 85, + "y": 61, + "isWall": false + }, + { + "x": 85, + "y": 62, + "isWall": false + }, + { + "x": 85, + "y": 63, + "isWall": true + }, + { + "x": 85, + "y": 64, + "isWall": false + }, + { + "x": 85, + "y": 65, + "isWall": false + }, + { + "x": 85, + "y": 66, + "isWall": false + }, + { + "x": 85, + "y": 67, + "isWall": false + }, + { + "x": 85, + "y": 68, + "isWall": false + }, + { + "x": 85, + "y": 69, + "isWall": false + }, + { + "x": 85, + "y": 70, + "isWall": true + }, + { + "x": 85, + "y": 71, + "isWall": false + }, + { + "x": 85, + "y": 72, + "isWall": false + }, + { + "x": 85, + "y": 73, + "isWall": false + }, + { + "x": 85, + "y": 74, + "isWall": true + }, + { + "x": 85, + "y": 75, + "isWall": true + }, + { + "x": 85, + "y": 76, + "isWall": false + }, + { + "x": 85, + "y": 77, + "isWall": false + }, + { + "x": 85, + "y": 78, + "isWall": true + }, + { + "x": 85, + "y": 79, + "isWall": true + }, + { + "x": 85, + "y": 80, + "isWall": false + }, + { + "x": 85, + "y": 81, + "isWall": false + }, + { + "x": 85, + "y": 82, + "isWall": true + }, + { + "x": 85, + "y": 83, + "isWall": true + }, + { + "x": 85, + "y": 84, + "isWall": true + }, + { + "x": 85, + "y": 85, + "isWall": false + }, + { + "x": 85, + "y": 86, + "isWall": false + }, + { + "x": 85, + "y": 87, + "isWall": false + }, + { + "x": 85, + "y": 88, + "isWall": false + }, + { + "x": 85, + "y": 89, + "isWall": false + }, + { + "x": 85, + "y": 90, + "isWall": false + }, + { + "x": 85, + "y": 91, + "isWall": true + }, + { + "x": 85, + "y": 92, + "isWall": false + }, + { + "x": 85, + "y": 93, + "isWall": true + }, + { + "x": 85, + "y": 94, + "isWall": true + }, + { + "x": 85, + "y": 95, + "isWall": false + }, + { + "x": 85, + "y": 96, + "isWall": false + }, + { + "x": 85, + "y": 97, + "isWall": true + }, + { + "x": 85, + "y": 98, + "isWall": false + }, + { + "x": 85, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 86, + "y": 0, + "isWall": false + }, + { + "x": 86, + "y": 1, + "isWall": true + }, + { + "x": 86, + "y": 2, + "isWall": true + }, + { + "x": 86, + "y": 3, + "isWall": true + }, + { + "x": 86, + "y": 4, + "isWall": true + }, + { + "x": 86, + "y": 5, + "isWall": false + }, + { + "x": 86, + "y": 6, + "isWall": true + }, + { + "x": 86, + "y": 7, + "isWall": true + }, + { + "x": 86, + "y": 8, + "isWall": false + }, + { + "x": 86, + "y": 9, + "isWall": false + }, + { + "x": 86, + "y": 10, + "isWall": false + }, + { + "x": 86, + "y": 11, + "isWall": true + }, + { + "x": 86, + "y": 12, + "isWall": true + }, + { + "x": 86, + "y": 13, + "isWall": false + }, + { + "x": 86, + "y": 14, + "isWall": false + }, + { + "x": 86, + "y": 15, + "isWall": false + }, + { + "x": 86, + "y": 16, + "isWall": false + }, + { + "x": 86, + "y": 17, + "isWall": true + }, + { + "x": 86, + "y": 18, + "isWall": false + }, + { + "x": 86, + "y": 19, + "isWall": false + }, + { + "x": 86, + "y": 20, + "isWall": false + }, + { + "x": 86, + "y": 21, + "isWall": true + }, + { + "x": 86, + "y": 22, + "isWall": false + }, + { + "x": 86, + "y": 23, + "isWall": true + }, + { + "x": 86, + "y": 24, + "isWall": true + }, + { + "x": 86, + "y": 25, + "isWall": false + }, + { + "x": 86, + "y": 26, + "isWall": false + }, + { + "x": 86, + "y": 27, + "isWall": false + }, + { + "x": 86, + "y": 28, + "isWall": true + }, + { + "x": 86, + "y": 29, + "isWall": false + }, + { + "x": 86, + "y": 30, + "isWall": false + }, + { + "x": 86, + "y": 31, + "isWall": false + }, + { + "x": 86, + "y": 32, + "isWall": false + }, + { + "x": 86, + "y": 33, + "isWall": true + }, + { + "x": 86, + "y": 34, + "isWall": false + }, + { + "x": 86, + "y": 35, + "isWall": true + }, + { + "x": 86, + "y": 36, + "isWall": false + }, + { + "x": 86, + "y": 37, + "isWall": false + }, + { + "x": 86, + "y": 38, + "isWall": true + }, + { + "x": 86, + "y": 39, + "isWall": false + }, + { + "x": 86, + "y": 40, + "isWall": false + }, + { + "x": 86, + "y": 41, + "isWall": true + }, + { + "x": 86, + "y": 42, + "isWall": false + }, + { + "x": 86, + "y": 43, + "isWall": true + }, + { + "x": 86, + "y": 44, + "isWall": false + }, + { + "x": 86, + "y": 45, + "isWall": false + }, + { + "x": 86, + "y": 46, + "isWall": false + }, + { + "x": 86, + "y": 47, + "isWall": true + }, + { + "x": 86, + "y": 48, + "isWall": false + }, + { + "x": 86, + "y": 49, + "isWall": false + }, + { + "x": 86, + "y": 50, + "isWall": false + }, + { + "x": 86, + "y": 51, + "isWall": false + }, + { + "x": 86, + "y": 52, + "isWall": false + }, + { + "x": 86, + "y": 53, + "isWall": false + }, + { + "x": 86, + "y": 54, + "isWall": false + }, + { + "x": 86, + "y": 55, + "isWall": false + }, + { + "x": 86, + "y": 56, + "isWall": false + }, + { + "x": 86, + "y": 57, + "isWall": false + }, + { + "x": 86, + "y": 58, + "isWall": true + }, + { + "x": 86, + "y": 59, + "isWall": true + }, + { + "x": 86, + "y": 60, + "isWall": false + }, + { + "x": 86, + "y": 61, + "isWall": false + }, + { + "x": 86, + "y": 62, + "isWall": false + }, + { + "x": 86, + "y": 63, + "isWall": true + }, + { + "x": 86, + "y": 64, + "isWall": false + }, + { + "x": 86, + "y": 65, + "isWall": true + }, + { + "x": 86, + "y": 66, + "isWall": true + }, + { + "x": 86, + "y": 67, + "isWall": false + }, + { + "x": 86, + "y": 68, + "isWall": false + }, + { + "x": 86, + "y": 69, + "isWall": false + }, + { + "x": 86, + "y": 70, + "isWall": false + }, + { + "x": 86, + "y": 71, + "isWall": false + }, + { + "x": 86, + "y": 72, + "isWall": false + }, + { + "x": 86, + "y": 73, + "isWall": true + }, + { + "x": 86, + "y": 74, + "isWall": false + }, + { + "x": 86, + "y": 75, + "isWall": true + }, + { + "x": 86, + "y": 76, + "isWall": false + }, + { + "x": 86, + "y": 77, + "isWall": false + }, + { + "x": 86, + "y": 78, + "isWall": false + }, + { + "x": 86, + "y": 79, + "isWall": false + }, + { + "x": 86, + "y": 80, + "isWall": false + }, + { + "x": 86, + "y": 81, + "isWall": false + }, + { + "x": 86, + "y": 82, + "isWall": false + }, + { + "x": 86, + "y": 83, + "isWall": false + }, + { + "x": 86, + "y": 84, + "isWall": false + }, + { + "x": 86, + "y": 85, + "isWall": false + }, + { + "x": 86, + "y": 86, + "isWall": true + }, + { + "x": 86, + "y": 87, + "isWall": false + }, + { + "x": 86, + "y": 88, + "isWall": false + }, + { + "x": 86, + "y": 89, + "isWall": false + }, + { + "x": 86, + "y": 90, + "isWall": false + }, + { + "x": 86, + "y": 91, + "isWall": false + }, + { + "x": 86, + "y": 92, + "isWall": false + }, + { + "x": 86, + "y": 93, + "isWall": true + }, + { + "x": 86, + "y": 94, + "isWall": true + }, + { + "x": 86, + "y": 95, + "isWall": false + }, + { + "x": 86, + "y": 96, + "isWall": false + }, + { + "x": 86, + "y": 97, + "isWall": false + }, + { + "x": 86, + "y": 98, + "isWall": false + }, + { + "x": 86, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 87, + "y": 0, + "isWall": true + }, + { + "x": 87, + "y": 1, + "isWall": false + }, + { + "x": 87, + "y": 2, + "isWall": true + }, + { + "x": 87, + "y": 3, + "isWall": false + }, + { + "x": 87, + "y": 4, + "isWall": false + }, + { + "x": 87, + "y": 5, + "isWall": true + }, + { + "x": 87, + "y": 6, + "isWall": false + }, + { + "x": 87, + "y": 7, + "isWall": false + }, + { + "x": 87, + "y": 8, + "isWall": false + }, + { + "x": 87, + "y": 9, + "isWall": false + }, + { + "x": 87, + "y": 10, + "isWall": false + }, + { + "x": 87, + "y": 11, + "isWall": true + }, + { + "x": 87, + "y": 12, + "isWall": true + }, + { + "x": 87, + "y": 13, + "isWall": false + }, + { + "x": 87, + "y": 14, + "isWall": false + }, + { + "x": 87, + "y": 15, + "isWall": false + }, + { + "x": 87, + "y": 16, + "isWall": false + }, + { + "x": 87, + "y": 17, + "isWall": true + }, + { + "x": 87, + "y": 18, + "isWall": false + }, + { + "x": 87, + "y": 19, + "isWall": false + }, + { + "x": 87, + "y": 20, + "isWall": true + }, + { + "x": 87, + "y": 21, + "isWall": true + }, + { + "x": 87, + "y": 22, + "isWall": false + }, + { + "x": 87, + "y": 23, + "isWall": true + }, + { + "x": 87, + "y": 24, + "isWall": false + }, + { + "x": 87, + "y": 25, + "isWall": false + }, + { + "x": 87, + "y": 26, + "isWall": false + }, + { + "x": 87, + "y": 27, + "isWall": true + }, + { + "x": 87, + "y": 28, + "isWall": false + }, + { + "x": 87, + "y": 29, + "isWall": false + }, + { + "x": 87, + "y": 30, + "isWall": true + }, + { + "x": 87, + "y": 31, + "isWall": false + }, + { + "x": 87, + "y": 32, + "isWall": false + }, + { + "x": 87, + "y": 33, + "isWall": false + }, + { + "x": 87, + "y": 34, + "isWall": false + }, + { + "x": 87, + "y": 35, + "isWall": false + }, + { + "x": 87, + "y": 36, + "isWall": true + }, + { + "x": 87, + "y": 37, + "isWall": false + }, + { + "x": 87, + "y": 38, + "isWall": false + }, + { + "x": 87, + "y": 39, + "isWall": false + }, + { + "x": 87, + "y": 40, + "isWall": true + }, + { + "x": 87, + "y": 41, + "isWall": false + }, + { + "x": 87, + "y": 42, + "isWall": false + }, + { + "x": 87, + "y": 43, + "isWall": false + }, + { + "x": 87, + "y": 44, + "isWall": false + }, + { + "x": 87, + "y": 45, + "isWall": false + }, + { + "x": 87, + "y": 46, + "isWall": true + }, + { + "x": 87, + "y": 47, + "isWall": true + }, + { + "x": 87, + "y": 48, + "isWall": true + }, + { + "x": 87, + "y": 49, + "isWall": true + }, + { + "x": 87, + "y": 50, + "isWall": false + }, + { + "x": 87, + "y": 51, + "isWall": false + }, + { + "x": 87, + "y": 52, + "isWall": true + }, + { + "x": 87, + "y": 53, + "isWall": false + }, + { + "x": 87, + "y": 54, + "isWall": false + }, + { + "x": 87, + "y": 55, + "isWall": false + }, + { + "x": 87, + "y": 56, + "isWall": false + }, + { + "x": 87, + "y": 57, + "isWall": false + }, + { + "x": 87, + "y": 58, + "isWall": false + }, + { + "x": 87, + "y": 59, + "isWall": false + }, + { + "x": 87, + "y": 60, + "isWall": false + }, + { + "x": 87, + "y": 61, + "isWall": false + }, + { + "x": 87, + "y": 62, + "isWall": false + }, + { + "x": 87, + "y": 63, + "isWall": false + }, + { + "x": 87, + "y": 64, + "isWall": true + }, + { + "x": 87, + "y": 65, + "isWall": true + }, + { + "x": 87, + "y": 66, + "isWall": true + }, + { + "x": 87, + "y": 67, + "isWall": false + }, + { + "x": 87, + "y": 68, + "isWall": false + }, + { + "x": 87, + "y": 69, + "isWall": false + }, + { + "x": 87, + "y": 70, + "isWall": true + }, + { + "x": 87, + "y": 71, + "isWall": false + }, + { + "x": 87, + "y": 72, + "isWall": false + }, + { + "x": 87, + "y": 73, + "isWall": false + }, + { + "x": 87, + "y": 74, + "isWall": false + }, + { + "x": 87, + "y": 75, + "isWall": true + }, + { + "x": 87, + "y": 76, + "isWall": false + }, + { + "x": 87, + "y": 77, + "isWall": false + }, + { + "x": 87, + "y": 78, + "isWall": true + }, + { + "x": 87, + "y": 79, + "isWall": false + }, + { + "x": 87, + "y": 80, + "isWall": true + }, + { + "x": 87, + "y": 81, + "isWall": false + }, + { + "x": 87, + "y": 82, + "isWall": false + }, + { + "x": 87, + "y": 83, + "isWall": false + }, + { + "x": 87, + "y": 84, + "isWall": false + }, + { + "x": 87, + "y": 85, + "isWall": true + }, + { + "x": 87, + "y": 86, + "isWall": false + }, + { + "x": 87, + "y": 87, + "isWall": false + }, + { + "x": 87, + "y": 88, + "isWall": false + }, + { + "x": 87, + "y": 89, + "isWall": false + }, + { + "x": 87, + "y": 90, + "isWall": false + }, + { + "x": 87, + "y": 91, + "isWall": true + }, + { + "x": 87, + "y": 92, + "isWall": false + }, + { + "x": 87, + "y": 93, + "isWall": false + }, + { + "x": 87, + "y": 94, + "isWall": false + }, + { + "x": 87, + "y": 95, + "isWall": false + }, + { + "x": 87, + "y": 96, + "isWall": false + }, + { + "x": 87, + "y": 97, + "isWall": true + }, + { + "x": 87, + "y": 98, + "isWall": false + }, + { + "x": 87, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 88, + "y": 0, + "isWall": false + }, + { + "x": 88, + "y": 1, + "isWall": true + }, + { + "x": 88, + "y": 2, + "isWall": true + }, + { + "x": 88, + "y": 3, + "isWall": false + }, + { + "x": 88, + "y": 4, + "isWall": false + }, + { + "x": 88, + "y": 5, + "isWall": false + }, + { + "x": 88, + "y": 6, + "isWall": true + }, + { + "x": 88, + "y": 7, + "isWall": false + }, + { + "x": 88, + "y": 8, + "isWall": false + }, + { + "x": 88, + "y": 9, + "isWall": false + }, + { + "x": 88, + "y": 10, + "isWall": false + }, + { + "x": 88, + "y": 11, + "isWall": false + }, + { + "x": 88, + "y": 12, + "isWall": true + }, + { + "x": 88, + "y": 13, + "isWall": true + }, + { + "x": 88, + "y": 14, + "isWall": false + }, + { + "x": 88, + "y": 15, + "isWall": true + }, + { + "x": 88, + "y": 16, + "isWall": false + }, + { + "x": 88, + "y": 17, + "isWall": false + }, + { + "x": 88, + "y": 18, + "isWall": false + }, + { + "x": 88, + "y": 19, + "isWall": false + }, + { + "x": 88, + "y": 20, + "isWall": true + }, + { + "x": 88, + "y": 21, + "isWall": false + }, + { + "x": 88, + "y": 22, + "isWall": false + }, + { + "x": 88, + "y": 23, + "isWall": false + }, + { + "x": 88, + "y": 24, + "isWall": false + }, + { + "x": 88, + "y": 25, + "isWall": false + }, + { + "x": 88, + "y": 26, + "isWall": false + }, + { + "x": 88, + "y": 27, + "isWall": false + }, + { + "x": 88, + "y": 28, + "isWall": false + }, + { + "x": 88, + "y": 29, + "isWall": true + }, + { + "x": 88, + "y": 30, + "isWall": true + }, + { + "x": 88, + "y": 31, + "isWall": false + }, + { + "x": 88, + "y": 32, + "isWall": false + }, + { + "x": 88, + "y": 33, + "isWall": true + }, + { + "x": 88, + "y": 34, + "isWall": false + }, + { + "x": 88, + "y": 35, + "isWall": false + }, + { + "x": 88, + "y": 36, + "isWall": false + }, + { + "x": 88, + "y": 37, + "isWall": false + }, + { + "x": 88, + "y": 38, + "isWall": false + }, + { + "x": 88, + "y": 39, + "isWall": false + }, + { + "x": 88, + "y": 40, + "isWall": false + }, + { + "x": 88, + "y": 41, + "isWall": false + }, + { + "x": 88, + "y": 42, + "isWall": true + }, + { + "x": 88, + "y": 43, + "isWall": true + }, + { + "x": 88, + "y": 44, + "isWall": false + }, + { + "x": 88, + "y": 45, + "isWall": true + }, + { + "x": 88, + "y": 46, + "isWall": false + }, + { + "x": 88, + "y": 47, + "isWall": true + }, + { + "x": 88, + "y": 48, + "isWall": false + }, + { + "x": 88, + "y": 49, + "isWall": false + }, + { + "x": 88, + "y": 50, + "isWall": true + }, + { + "x": 88, + "y": 51, + "isWall": true + }, + { + "x": 88, + "y": 52, + "isWall": false + }, + { + "x": 88, + "y": 53, + "isWall": false + }, + { + "x": 88, + "y": 54, + "isWall": true + }, + { + "x": 88, + "y": 55, + "isWall": false + }, + { + "x": 88, + "y": 56, + "isWall": false + }, + { + "x": 88, + "y": 57, + "isWall": false + }, + { + "x": 88, + "y": 58, + "isWall": false + }, + { + "x": 88, + "y": 59, + "isWall": true + }, + { + "x": 88, + "y": 60, + "isWall": false + }, + { + "x": 88, + "y": 61, + "isWall": false + }, + { + "x": 88, + "y": 62, + "isWall": true + }, + { + "x": 88, + "y": 63, + "isWall": false + }, + { + "x": 88, + "y": 64, + "isWall": false + }, + { + "x": 88, + "y": 65, + "isWall": true + }, + { + "x": 88, + "y": 66, + "isWall": true + }, + { + "x": 88, + "y": 67, + "isWall": true + }, + { + "x": 88, + "y": 68, + "isWall": false + }, + { + "x": 88, + "y": 69, + "isWall": true + }, + { + "x": 88, + "y": 70, + "isWall": false + }, + { + "x": 88, + "y": 71, + "isWall": false + }, + { + "x": 88, + "y": 72, + "isWall": false + }, + { + "x": 88, + "y": 73, + "isWall": false + }, + { + "x": 88, + "y": 74, + "isWall": true + }, + { + "x": 88, + "y": 75, + "isWall": true + }, + { + "x": 88, + "y": 76, + "isWall": false + }, + { + "x": 88, + "y": 77, + "isWall": false + }, + { + "x": 88, + "y": 78, + "isWall": false + }, + { + "x": 88, + "y": 79, + "isWall": true + }, + { + "x": 88, + "y": 80, + "isWall": false + }, + { + "x": 88, + "y": 81, + "isWall": true + }, + { + "x": 88, + "y": 82, + "isWall": false + }, + { + "x": 88, + "y": 83, + "isWall": false + }, + { + "x": 88, + "y": 84, + "isWall": true + }, + { + "x": 88, + "y": 85, + "isWall": false + }, + { + "x": 88, + "y": 86, + "isWall": true + }, + { + "x": 88, + "y": 87, + "isWall": false + }, + { + "x": 88, + "y": 88, + "isWall": false + }, + { + "x": 88, + "y": 89, + "isWall": true + }, + { + "x": 88, + "y": 90, + "isWall": true + }, + { + "x": 88, + "y": 91, + "isWall": true + }, + { + "x": 88, + "y": 92, + "isWall": false + }, + { + "x": 88, + "y": 93, + "isWall": true + }, + { + "x": 88, + "y": 94, + "isWall": true + }, + { + "x": 88, + "y": 95, + "isWall": false + }, + { + "x": 88, + "y": 96, + "isWall": true + }, + { + "x": 88, + "y": 97, + "isWall": false + }, + { + "x": 88, + "y": 98, + "isWall": false + }, + { + "x": 88, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 89, + "y": 0, + "isWall": false + }, + { + "x": 89, + "y": 1, + "isWall": false + }, + { + "x": 89, + "y": 2, + "isWall": false + }, + { + "x": 89, + "y": 3, + "isWall": false + }, + { + "x": 89, + "y": 4, + "isWall": false + }, + { + "x": 89, + "y": 5, + "isWall": false + }, + { + "x": 89, + "y": 6, + "isWall": false + }, + { + "x": 89, + "y": 7, + "isWall": false + }, + { + "x": 89, + "y": 8, + "isWall": false + }, + { + "x": 89, + "y": 9, + "isWall": true + }, + { + "x": 89, + "y": 10, + "isWall": false + }, + { + "x": 89, + "y": 11, + "isWall": false + }, + { + "x": 89, + "y": 12, + "isWall": false + }, + { + "x": 89, + "y": 13, + "isWall": false + }, + { + "x": 89, + "y": 14, + "isWall": true + }, + { + "x": 89, + "y": 15, + "isWall": false + }, + { + "x": 89, + "y": 16, + "isWall": false + }, + { + "x": 89, + "y": 17, + "isWall": true + }, + { + "x": 89, + "y": 18, + "isWall": false + }, + { + "x": 89, + "y": 19, + "isWall": false + }, + { + "x": 89, + "y": 20, + "isWall": true + }, + { + "x": 89, + "y": 21, + "isWall": false + }, + { + "x": 89, + "y": 22, + "isWall": false + }, + { + "x": 89, + "y": 23, + "isWall": true + }, + { + "x": 89, + "y": 24, + "isWall": true + }, + { + "x": 89, + "y": 25, + "isWall": false + }, + { + "x": 89, + "y": 26, + "isWall": false + }, + { + "x": 89, + "y": 27, + "isWall": false + }, + { + "x": 89, + "y": 28, + "isWall": true + }, + { + "x": 89, + "y": 29, + "isWall": false + }, + { + "x": 89, + "y": 30, + "isWall": true + }, + { + "x": 89, + "y": 31, + "isWall": true + }, + { + "x": 89, + "y": 32, + "isWall": false + }, + { + "x": 89, + "y": 33, + "isWall": true + }, + { + "x": 89, + "y": 34, + "isWall": false + }, + { + "x": 89, + "y": 35, + "isWall": false + }, + { + "x": 89, + "y": 36, + "isWall": true + }, + { + "x": 89, + "y": 37, + "isWall": false + }, + { + "x": 89, + "y": 38, + "isWall": false + }, + { + "x": 89, + "y": 39, + "isWall": true + }, + { + "x": 89, + "y": 40, + "isWall": false + }, + { + "x": 89, + "y": 41, + "isWall": false + }, + { + "x": 89, + "y": 42, + "isWall": true + }, + { + "x": 89, + "y": 43, + "isWall": true + }, + { + "x": 89, + "y": 44, + "isWall": false + }, + { + "x": 89, + "y": 45, + "isWall": false + }, + { + "x": 89, + "y": 46, + "isWall": false + }, + { + "x": 89, + "y": 47, + "isWall": false + }, + { + "x": 89, + "y": 48, + "isWall": false + }, + { + "x": 89, + "y": 49, + "isWall": true + }, + { + "x": 89, + "y": 50, + "isWall": true + }, + { + "x": 89, + "y": 51, + "isWall": false + }, + { + "x": 89, + "y": 52, + "isWall": false + }, + { + "x": 89, + "y": 53, + "isWall": false + }, + { + "x": 89, + "y": 54, + "isWall": true + }, + { + "x": 89, + "y": 55, + "isWall": false + }, + { + "x": 89, + "y": 56, + "isWall": false + }, + { + "x": 89, + "y": 57, + "isWall": true + }, + { + "x": 89, + "y": 58, + "isWall": true + }, + { + "x": 89, + "y": 59, + "isWall": false + }, + { + "x": 89, + "y": 60, + "isWall": true + }, + { + "x": 89, + "y": 61, + "isWall": true + }, + { + "x": 89, + "y": 62, + "isWall": false + }, + { + "x": 89, + "y": 63, + "isWall": false + }, + { + "x": 89, + "y": 64, + "isWall": false + }, + { + "x": 89, + "y": 65, + "isWall": false + }, + { + "x": 89, + "y": 66, + "isWall": false + }, + { + "x": 89, + "y": 67, + "isWall": false + }, + { + "x": 89, + "y": 68, + "isWall": false + }, + { + "x": 89, + "y": 69, + "isWall": true + }, + { + "x": 89, + "y": 70, + "isWall": true + }, + { + "x": 89, + "y": 71, + "isWall": false + }, + { + "x": 89, + "y": 72, + "isWall": true + }, + { + "x": 89, + "y": 73, + "isWall": true + }, + { + "x": 89, + "y": 74, + "isWall": false + }, + { + "x": 89, + "y": 75, + "isWall": false + }, + { + "x": 89, + "y": 76, + "isWall": false + }, + { + "x": 89, + "y": 77, + "isWall": false + }, + { + "x": 89, + "y": 78, + "isWall": false + }, + { + "x": 89, + "y": 79, + "isWall": true + }, + { + "x": 89, + "y": 80, + "isWall": false + }, + { + "x": 89, + "y": 81, + "isWall": false + }, + { + "x": 89, + "y": 82, + "isWall": false + }, + { + "x": 89, + "y": 83, + "isWall": false + }, + { + "x": 89, + "y": 84, + "isWall": false + }, + { + "x": 89, + "y": 85, + "isWall": true + }, + { + "x": 89, + "y": 86, + "isWall": false + }, + { + "x": 89, + "y": 87, + "isWall": false + }, + { + "x": 89, + "y": 88, + "isWall": false + }, + { + "x": 89, + "y": 89, + "isWall": false + }, + { + "x": 89, + "y": 90, + "isWall": true + }, + { + "x": 89, + "y": 91, + "isWall": false + }, + { + "x": 89, + "y": 92, + "isWall": false + }, + { + "x": 89, + "y": 93, + "isWall": false + }, + { + "x": 89, + "y": 94, + "isWall": false + }, + { + "x": 89, + "y": 95, + "isWall": false + }, + { + "x": 89, + "y": 96, + "isWall": false + }, + { + "x": 89, + "y": 97, + "isWall": false + }, + { + "x": 89, + "y": 98, + "isWall": false + }, + { + "x": 89, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 90, + "y": 0, + "isWall": false + }, + { + "x": 90, + "y": 1, + "isWall": false + }, + { + "x": 90, + "y": 2, + "isWall": false + }, + { + "x": 90, + "y": 3, + "isWall": false + }, + { + "x": 90, + "y": 4, + "isWall": true + }, + { + "x": 90, + "y": 5, + "isWall": true + }, + { + "x": 90, + "y": 6, + "isWall": false + }, + { + "x": 90, + "y": 7, + "isWall": false + }, + { + "x": 90, + "y": 8, + "isWall": false + }, + { + "x": 90, + "y": 9, + "isWall": true + }, + { + "x": 90, + "y": 10, + "isWall": false + }, + { + "x": 90, + "y": 11, + "isWall": false + }, + { + "x": 90, + "y": 12, + "isWall": false + }, + { + "x": 90, + "y": 13, + "isWall": false + }, + { + "x": 90, + "y": 14, + "isWall": false + }, + { + "x": 90, + "y": 15, + "isWall": false + }, + { + "x": 90, + "y": 16, + "isWall": false + }, + { + "x": 90, + "y": 17, + "isWall": false + }, + { + "x": 90, + "y": 18, + "isWall": false + }, + { + "x": 90, + "y": 19, + "isWall": false + }, + { + "x": 90, + "y": 20, + "isWall": true + }, + { + "x": 90, + "y": 21, + "isWall": false + }, + { + "x": 90, + "y": 22, + "isWall": false + }, + { + "x": 90, + "y": 23, + "isWall": false + }, + { + "x": 90, + "y": 24, + "isWall": false + }, + { + "x": 90, + "y": 25, + "isWall": false + }, + { + "x": 90, + "y": 26, + "isWall": false + }, + { + "x": 90, + "y": 27, + "isWall": true + }, + { + "x": 90, + "y": 28, + "isWall": false + }, + { + "x": 90, + "y": 29, + "isWall": false + }, + { + "x": 90, + "y": 30, + "isWall": true + }, + { + "x": 90, + "y": 31, + "isWall": false + }, + { + "x": 90, + "y": 32, + "isWall": false + }, + { + "x": 90, + "y": 33, + "isWall": false + }, + { + "x": 90, + "y": 34, + "isWall": true + }, + { + "x": 90, + "y": 35, + "isWall": true + }, + { + "x": 90, + "y": 36, + "isWall": false + }, + { + "x": 90, + "y": 37, + "isWall": false + }, + { + "x": 90, + "y": 38, + "isWall": false + }, + { + "x": 90, + "y": 39, + "isWall": false + }, + { + "x": 90, + "y": 40, + "isWall": false + }, + { + "x": 90, + "y": 41, + "isWall": false + }, + { + "x": 90, + "y": 42, + "isWall": false + }, + { + "x": 90, + "y": 43, + "isWall": false + }, + { + "x": 90, + "y": 44, + "isWall": false + }, + { + "x": 90, + "y": 45, + "isWall": false + }, + { + "x": 90, + "y": 46, + "isWall": false + }, + { + "x": 90, + "y": 47, + "isWall": false + }, + { + "x": 90, + "y": 48, + "isWall": false + }, + { + "x": 90, + "y": 49, + "isWall": true + }, + { + "x": 90, + "y": 50, + "isWall": false + }, + { + "x": 90, + "y": 51, + "isWall": false + }, + { + "x": 90, + "y": 52, + "isWall": false + }, + { + "x": 90, + "y": 53, + "isWall": false + }, + { + "x": 90, + "y": 54, + "isWall": false + }, + { + "x": 90, + "y": 55, + "isWall": false + }, + { + "x": 90, + "y": 56, + "isWall": true + }, + { + "x": 90, + "y": 57, + "isWall": false + }, + { + "x": 90, + "y": 58, + "isWall": false + }, + { + "x": 90, + "y": 59, + "isWall": false + }, + { + "x": 90, + "y": 60, + "isWall": true + }, + { + "x": 90, + "y": 61, + "isWall": false + }, + { + "x": 90, + "y": 62, + "isWall": false + }, + { + "x": 90, + "y": 63, + "isWall": false + }, + { + "x": 90, + "y": 64, + "isWall": false + }, + { + "x": 90, + "y": 65, + "isWall": true + }, + { + "x": 90, + "y": 66, + "isWall": false + }, + { + "x": 90, + "y": 67, + "isWall": false + }, + { + "x": 90, + "y": 68, + "isWall": false + }, + { + "x": 90, + "y": 69, + "isWall": false + }, + { + "x": 90, + "y": 70, + "isWall": false + }, + { + "x": 90, + "y": 71, + "isWall": false + }, + { + "x": 90, + "y": 72, + "isWall": false + }, + { + "x": 90, + "y": 73, + "isWall": true + }, + { + "x": 90, + "y": 74, + "isWall": false + }, + { + "x": 90, + "y": 75, + "isWall": false + }, + { + "x": 90, + "y": 76, + "isWall": false + }, + { + "x": 90, + "y": 77, + "isWall": false + }, + { + "x": 90, + "y": 78, + "isWall": true + }, + { + "x": 90, + "y": 79, + "isWall": false + }, + { + "x": 90, + "y": 80, + "isWall": false + }, + { + "x": 90, + "y": 81, + "isWall": false + }, + { + "x": 90, + "y": 82, + "isWall": false + }, + { + "x": 90, + "y": 83, + "isWall": false + }, + { + "x": 90, + "y": 84, + "isWall": false + }, + { + "x": 90, + "y": 85, + "isWall": true + }, + { + "x": 90, + "y": 86, + "isWall": false + }, + { + "x": 90, + "y": 87, + "isWall": false + }, + { + "x": 90, + "y": 88, + "isWall": false + }, + { + "x": 90, + "y": 89, + "isWall": true + }, + { + "x": 90, + "y": 90, + "isWall": false + }, + { + "x": 90, + "y": 91, + "isWall": false + }, + { + "x": 90, + "y": 92, + "isWall": true + }, + { + "x": 90, + "y": 93, + "isWall": true + }, + { + "x": 90, + "y": 94, + "isWall": false + }, + { + "x": 90, + "y": 95, + "isWall": true + }, + { + "x": 90, + "y": 96, + "isWall": false + }, + { + "x": 90, + "y": 97, + "isWall": true + }, + { + "x": 90, + "y": 98, + "isWall": false + }, + { + "x": 90, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 91, + "y": 0, + "isWall": false + }, + { + "x": 91, + "y": 1, + "isWall": false + }, + { + "x": 91, + "y": 2, + "isWall": false + }, + { + "x": 91, + "y": 3, + "isWall": false + }, + { + "x": 91, + "y": 4, + "isWall": false + }, + { + "x": 91, + "y": 5, + "isWall": false + }, + { + "x": 91, + "y": 6, + "isWall": false + }, + { + "x": 91, + "y": 7, + "isWall": false + }, + { + "x": 91, + "y": 8, + "isWall": false + }, + { + "x": 91, + "y": 9, + "isWall": false + }, + { + "x": 91, + "y": 10, + "isWall": true + }, + { + "x": 91, + "y": 11, + "isWall": false + }, + { + "x": 91, + "y": 12, + "isWall": false + }, + { + "x": 91, + "y": 13, + "isWall": false + }, + { + "x": 91, + "y": 14, + "isWall": false + }, + { + "x": 91, + "y": 15, + "isWall": false + }, + { + "x": 91, + "y": 16, + "isWall": false + }, + { + "x": 91, + "y": 17, + "isWall": false + }, + { + "x": 91, + "y": 18, + "isWall": false + }, + { + "x": 91, + "y": 19, + "isWall": false + }, + { + "x": 91, + "y": 20, + "isWall": false + }, + { + "x": 91, + "y": 21, + "isWall": false + }, + { + "x": 91, + "y": 22, + "isWall": false + }, + { + "x": 91, + "y": 23, + "isWall": false + }, + { + "x": 91, + "y": 24, + "isWall": true + }, + { + "x": 91, + "y": 25, + "isWall": false + }, + { + "x": 91, + "y": 26, + "isWall": false + }, + { + "x": 91, + "y": 27, + "isWall": false + }, + { + "x": 91, + "y": 28, + "isWall": true + }, + { + "x": 91, + "y": 29, + "isWall": true + }, + { + "x": 91, + "y": 30, + "isWall": false + }, + { + "x": 91, + "y": 31, + "isWall": true + }, + { + "x": 91, + "y": 32, + "isWall": false + }, + { + "x": 91, + "y": 33, + "isWall": false + }, + { + "x": 91, + "y": 34, + "isWall": true + }, + { + "x": 91, + "y": 35, + "isWall": false + }, + { + "x": 91, + "y": 36, + "isWall": true + }, + { + "x": 91, + "y": 37, + "isWall": true + }, + { + "x": 91, + "y": 38, + "isWall": false + }, + { + "x": 91, + "y": 39, + "isWall": false + }, + { + "x": 91, + "y": 40, + "isWall": false + }, + { + "x": 91, + "y": 41, + "isWall": false + }, + { + "x": 91, + "y": 42, + "isWall": true + }, + { + "x": 91, + "y": 43, + "isWall": false + }, + { + "x": 91, + "y": 44, + "isWall": false + }, + { + "x": 91, + "y": 45, + "isWall": false + }, + { + "x": 91, + "y": 46, + "isWall": false + }, + { + "x": 91, + "y": 47, + "isWall": false + }, + { + "x": 91, + "y": 48, + "isWall": true + }, + { + "x": 91, + "y": 49, + "isWall": true + }, + { + "x": 91, + "y": 50, + "isWall": false + }, + { + "x": 91, + "y": 51, + "isWall": false + }, + { + "x": 91, + "y": 52, + "isWall": false + }, + { + "x": 91, + "y": 53, + "isWall": true + }, + { + "x": 91, + "y": 54, + "isWall": true + }, + { + "x": 91, + "y": 55, + "isWall": false + }, + { + "x": 91, + "y": 56, + "isWall": false + }, + { + "x": 91, + "y": 57, + "isWall": false + }, + { + "x": 91, + "y": 58, + "isWall": false + }, + { + "x": 91, + "y": 59, + "isWall": true + }, + { + "x": 91, + "y": 60, + "isWall": true + }, + { + "x": 91, + "y": 61, + "isWall": false + }, + { + "x": 91, + "y": 62, + "isWall": false + }, + { + "x": 91, + "y": 63, + "isWall": false + }, + { + "x": 91, + "y": 64, + "isWall": true + }, + { + "x": 91, + "y": 65, + "isWall": false + }, + { + "x": 91, + "y": 66, + "isWall": true + }, + { + "x": 91, + "y": 67, + "isWall": false + }, + { + "x": 91, + "y": 68, + "isWall": false + }, + { + "x": 91, + "y": 69, + "isWall": false + }, + { + "x": 91, + "y": 70, + "isWall": false + }, + { + "x": 91, + "y": 71, + "isWall": false + }, + { + "x": 91, + "y": 72, + "isWall": false + }, + { + "x": 91, + "y": 73, + "isWall": false + }, + { + "x": 91, + "y": 74, + "isWall": false + }, + { + "x": 91, + "y": 75, + "isWall": false + }, + { + "x": 91, + "y": 76, + "isWall": false + }, + { + "x": 91, + "y": 77, + "isWall": false + }, + { + "x": 91, + "y": 78, + "isWall": false + }, + { + "x": 91, + "y": 79, + "isWall": false + }, + { + "x": 91, + "y": 80, + "isWall": false + }, + { + "x": 91, + "y": 81, + "isWall": true + }, + { + "x": 91, + "y": 82, + "isWall": false + }, + { + "x": 91, + "y": 83, + "isWall": false + }, + { + "x": 91, + "y": 84, + "isWall": false + }, + { + "x": 91, + "y": 85, + "isWall": true + }, + { + "x": 91, + "y": 86, + "isWall": true + }, + { + "x": 91, + "y": 87, + "isWall": false + }, + { + "x": 91, + "y": 88, + "isWall": false + }, + { + "x": 91, + "y": 89, + "isWall": true + }, + { + "x": 91, + "y": 90, + "isWall": false + }, + { + "x": 91, + "y": 91, + "isWall": false + }, + { + "x": 91, + "y": 92, + "isWall": false + }, + { + "x": 91, + "y": 93, + "isWall": false + }, + { + "x": 91, + "y": 94, + "isWall": false + }, + { + "x": 91, + "y": 95, + "isWall": false + }, + { + "x": 91, + "y": 96, + "isWall": false + }, + { + "x": 91, + "y": 97, + "isWall": false + }, + { + "x": 91, + "y": 98, + "isWall": false + }, + { + "x": 91, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 92, + "y": 0, + "isWall": false + }, + { + "x": 92, + "y": 1, + "isWall": false + }, + { + "x": 92, + "y": 2, + "isWall": false + }, + { + "x": 92, + "y": 3, + "isWall": false + }, + { + "x": 92, + "y": 4, + "isWall": false + }, + { + "x": 92, + "y": 5, + "isWall": true + }, + { + "x": 92, + "y": 6, + "isWall": false + }, + { + "x": 92, + "y": 7, + "isWall": false + }, + { + "x": 92, + "y": 8, + "isWall": false + }, + { + "x": 92, + "y": 9, + "isWall": true + }, + { + "x": 92, + "y": 10, + "isWall": true + }, + { + "x": 92, + "y": 11, + "isWall": true + }, + { + "x": 92, + "y": 12, + "isWall": false + }, + { + "x": 92, + "y": 13, + "isWall": false + }, + { + "x": 92, + "y": 14, + "isWall": false + }, + { + "x": 92, + "y": 15, + "isWall": true + }, + { + "x": 92, + "y": 16, + "isWall": false + }, + { + "x": 92, + "y": 17, + "isWall": false + }, + { + "x": 92, + "y": 18, + "isWall": false + }, + { + "x": 92, + "y": 19, + "isWall": false + }, + { + "x": 92, + "y": 20, + "isWall": false + }, + { + "x": 92, + "y": 21, + "isWall": false + }, + { + "x": 92, + "y": 22, + "isWall": false + }, + { + "x": 92, + "y": 23, + "isWall": true + }, + { + "x": 92, + "y": 24, + "isWall": false + }, + { + "x": 92, + "y": 25, + "isWall": false + }, + { + "x": 92, + "y": 26, + "isWall": true + }, + { + "x": 92, + "y": 27, + "isWall": false + }, + { + "x": 92, + "y": 28, + "isWall": true + }, + { + "x": 92, + "y": 29, + "isWall": false + }, + { + "x": 92, + "y": 30, + "isWall": false + }, + { + "x": 92, + "y": 31, + "isWall": true + }, + { + "x": 92, + "y": 32, + "isWall": true + }, + { + "x": 92, + "y": 33, + "isWall": false + }, + { + "x": 92, + "y": 34, + "isWall": true + }, + { + "x": 92, + "y": 35, + "isWall": false + }, + { + "x": 92, + "y": 36, + "isWall": false + }, + { + "x": 92, + "y": 37, + "isWall": true + }, + { + "x": 92, + "y": 38, + "isWall": false + }, + { + "x": 92, + "y": 39, + "isWall": true + }, + { + "x": 92, + "y": 40, + "isWall": false + }, + { + "x": 92, + "y": 41, + "isWall": false + }, + { + "x": 92, + "y": 42, + "isWall": false + }, + { + "x": 92, + "y": 43, + "isWall": true + }, + { + "x": 92, + "y": 44, + "isWall": false + }, + { + "x": 92, + "y": 45, + "isWall": false + }, + { + "x": 92, + "y": 46, + "isWall": false + }, + { + "x": 92, + "y": 47, + "isWall": false + }, + { + "x": 92, + "y": 48, + "isWall": false + }, + { + "x": 92, + "y": 49, + "isWall": false + }, + { + "x": 92, + "y": 50, + "isWall": true + }, + { + "x": 92, + "y": 51, + "isWall": false + }, + { + "x": 92, + "y": 52, + "isWall": false + }, + { + "x": 92, + "y": 53, + "isWall": false + }, + { + "x": 92, + "y": 54, + "isWall": false + }, + { + "x": 92, + "y": 55, + "isWall": false + }, + { + "x": 92, + "y": 56, + "isWall": true + }, + { + "x": 92, + "y": 57, + "isWall": false + }, + { + "x": 92, + "y": 58, + "isWall": false + }, + { + "x": 92, + "y": 59, + "isWall": false + }, + { + "x": 92, + "y": 60, + "isWall": false + }, + { + "x": 92, + "y": 61, + "isWall": true + }, + { + "x": 92, + "y": 62, + "isWall": false + }, + { + "x": 92, + "y": 63, + "isWall": false + }, + { + "x": 92, + "y": 64, + "isWall": false + }, + { + "x": 92, + "y": 65, + "isWall": false + }, + { + "x": 92, + "y": 66, + "isWall": false + }, + { + "x": 92, + "y": 67, + "isWall": true + }, + { + "x": 92, + "y": 68, + "isWall": true + }, + { + "x": 92, + "y": 69, + "isWall": false + }, + { + "x": 92, + "y": 70, + "isWall": true + }, + { + "x": 92, + "y": 71, + "isWall": true + }, + { + "x": 92, + "y": 72, + "isWall": false + }, + { + "x": 92, + "y": 73, + "isWall": false + }, + { + "x": 92, + "y": 74, + "isWall": true + }, + { + "x": 92, + "y": 75, + "isWall": true + }, + { + "x": 92, + "y": 76, + "isWall": true + }, + { + "x": 92, + "y": 77, + "isWall": true + }, + { + "x": 92, + "y": 78, + "isWall": true + }, + { + "x": 92, + "y": 79, + "isWall": false + }, + { + "x": 92, + "y": 80, + "isWall": true + }, + { + "x": 92, + "y": 81, + "isWall": true + }, + { + "x": 92, + "y": 82, + "isWall": false + }, + { + "x": 92, + "y": 83, + "isWall": true + }, + { + "x": 92, + "y": 84, + "isWall": false + }, + { + "x": 92, + "y": 85, + "isWall": false + }, + { + "x": 92, + "y": 86, + "isWall": false + }, + { + "x": 92, + "y": 87, + "isWall": true + }, + { + "x": 92, + "y": 88, + "isWall": true + }, + { + "x": 92, + "y": 89, + "isWall": true + }, + { + "x": 92, + "y": 90, + "isWall": true + }, + { + "x": 92, + "y": 91, + "isWall": false + }, + { + "x": 92, + "y": 92, + "isWall": false + }, + { + "x": 92, + "y": 93, + "isWall": true + }, + { + "x": 92, + "y": 94, + "isWall": true + }, + { + "x": 92, + "y": 95, + "isWall": true + }, + { + "x": 92, + "y": 96, + "isWall": false + }, + { + "x": 92, + "y": 97, + "isWall": false + }, + { + "x": 92, + "y": 98, + "isWall": false + }, + { + "x": 92, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 93, + "y": 0, + "isWall": false + }, + { + "x": 93, + "y": 1, + "isWall": true + }, + { + "x": 93, + "y": 2, + "isWall": false + }, + { + "x": 93, + "y": 3, + "isWall": false + }, + { + "x": 93, + "y": 4, + "isWall": false + }, + { + "x": 93, + "y": 5, + "isWall": false + }, + { + "x": 93, + "y": 6, + "isWall": false + }, + { + "x": 93, + "y": 7, + "isWall": false + }, + { + "x": 93, + "y": 8, + "isWall": true + }, + { + "x": 93, + "y": 9, + "isWall": true + }, + { + "x": 93, + "y": 10, + "isWall": false + }, + { + "x": 93, + "y": 11, + "isWall": false + }, + { + "x": 93, + "y": 12, + "isWall": false + }, + { + "x": 93, + "y": 13, + "isWall": true + }, + { + "x": 93, + "y": 14, + "isWall": true + }, + { + "x": 93, + "y": 15, + "isWall": false + }, + { + "x": 93, + "y": 16, + "isWall": true + }, + { + "x": 93, + "y": 17, + "isWall": true + }, + { + "x": 93, + "y": 18, + "isWall": true + }, + { + "x": 93, + "y": 19, + "isWall": true + }, + { + "x": 93, + "y": 20, + "isWall": false + }, + { + "x": 93, + "y": 21, + "isWall": true + }, + { + "x": 93, + "y": 22, + "isWall": true + }, + { + "x": 93, + "y": 23, + "isWall": false + }, + { + "x": 93, + "y": 24, + "isWall": false + }, + { + "x": 93, + "y": 25, + "isWall": true + }, + { + "x": 93, + "y": 26, + "isWall": true + }, + { + "x": 93, + "y": 27, + "isWall": false + }, + { + "x": 93, + "y": 28, + "isWall": true + }, + { + "x": 93, + "y": 29, + "isWall": true + }, + { + "x": 93, + "y": 30, + "isWall": true + }, + { + "x": 93, + "y": 31, + "isWall": true + }, + { + "x": 93, + "y": 32, + "isWall": false + }, + { + "x": 93, + "y": 33, + "isWall": false + }, + { + "x": 93, + "y": 34, + "isWall": true + }, + { + "x": 93, + "y": 35, + "isWall": false + }, + { + "x": 93, + "y": 36, + "isWall": false + }, + { + "x": 93, + "y": 37, + "isWall": false + }, + { + "x": 93, + "y": 38, + "isWall": false + }, + { + "x": 93, + "y": 39, + "isWall": true + }, + { + "x": 93, + "y": 40, + "isWall": true + }, + { + "x": 93, + "y": 41, + "isWall": true + }, + { + "x": 93, + "y": 42, + "isWall": true + }, + { + "x": 93, + "y": 43, + "isWall": false + }, + { + "x": 93, + "y": 44, + "isWall": false + }, + { + "x": 93, + "y": 45, + "isWall": false + }, + { + "x": 93, + "y": 46, + "isWall": false + }, + { + "x": 93, + "y": 47, + "isWall": false + }, + { + "x": 93, + "y": 48, + "isWall": false + }, + { + "x": 93, + "y": 49, + "isWall": false + }, + { + "x": 93, + "y": 50, + "isWall": false + }, + { + "x": 93, + "y": 51, + "isWall": true + }, + { + "x": 93, + "y": 52, + "isWall": false + }, + { + "x": 93, + "y": 53, + "isWall": false + }, + { + "x": 93, + "y": 54, + "isWall": true + }, + { + "x": 93, + "y": 55, + "isWall": false + }, + { + "x": 93, + "y": 56, + "isWall": false + }, + { + "x": 93, + "y": 57, + "isWall": true + }, + { + "x": 93, + "y": 58, + "isWall": true + }, + { + "x": 93, + "y": 59, + "isWall": false + }, + { + "x": 93, + "y": 60, + "isWall": false + }, + { + "x": 93, + "y": 61, + "isWall": false + }, + { + "x": 93, + "y": 62, + "isWall": false + }, + { + "x": 93, + "y": 63, + "isWall": false + }, + { + "x": 93, + "y": 64, + "isWall": false + }, + { + "x": 93, + "y": 65, + "isWall": false + }, + { + "x": 93, + "y": 66, + "isWall": true + }, + { + "x": 93, + "y": 67, + "isWall": false + }, + { + "x": 93, + "y": 68, + "isWall": true + }, + { + "x": 93, + "y": 69, + "isWall": false + }, + { + "x": 93, + "y": 70, + "isWall": true + }, + { + "x": 93, + "y": 71, + "isWall": false + }, + { + "x": 93, + "y": 72, + "isWall": true + }, + { + "x": 93, + "y": 73, + "isWall": false + }, + { + "x": 93, + "y": 74, + "isWall": false + }, + { + "x": 93, + "y": 75, + "isWall": false + }, + { + "x": 93, + "y": 76, + "isWall": false + }, + { + "x": 93, + "y": 77, + "isWall": false + }, + { + "x": 93, + "y": 78, + "isWall": true + }, + { + "x": 93, + "y": 79, + "isWall": false + }, + { + "x": 93, + "y": 80, + "isWall": false + }, + { + "x": 93, + "y": 81, + "isWall": false + }, + { + "x": 93, + "y": 82, + "isWall": false + }, + { + "x": 93, + "y": 83, + "isWall": true + }, + { + "x": 93, + "y": 84, + "isWall": false + }, + { + "x": 93, + "y": 85, + "isWall": false + }, + { + "x": 93, + "y": 86, + "isWall": false + }, + { + "x": 93, + "y": 87, + "isWall": true + }, + { + "x": 93, + "y": 88, + "isWall": true + }, + { + "x": 93, + "y": 89, + "isWall": false + }, + { + "x": 93, + "y": 90, + "isWall": false + }, + { + "x": 93, + "y": 91, + "isWall": false + }, + { + "x": 93, + "y": 92, + "isWall": true + }, + { + "x": 93, + "y": 93, + "isWall": false + }, + { + "x": 93, + "y": 94, + "isWall": false + }, + { + "x": 93, + "y": 95, + "isWall": true + }, + { + "x": 93, + "y": 96, + "isWall": false + }, + { + "x": 93, + "y": 97, + "isWall": false + }, + { + "x": 93, + "y": 98, + "isWall": true + }, + { + "x": 93, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 94, + "y": 0, + "isWall": false + }, + { + "x": 94, + "y": 1, + "isWall": true + }, + { + "x": 94, + "y": 2, + "isWall": false + }, + { + "x": 94, + "y": 3, + "isWall": false + }, + { + "x": 94, + "y": 4, + "isWall": false + }, + { + "x": 94, + "y": 5, + "isWall": false + }, + { + "x": 94, + "y": 6, + "isWall": false + }, + { + "x": 94, + "y": 7, + "isWall": false + }, + { + "x": 94, + "y": 8, + "isWall": true + }, + { + "x": 94, + "y": 9, + "isWall": false + }, + { + "x": 94, + "y": 10, + "isWall": false + }, + { + "x": 94, + "y": 11, + "isWall": false + }, + { + "x": 94, + "y": 12, + "isWall": false + }, + { + "x": 94, + "y": 13, + "isWall": false + }, + { + "x": 94, + "y": 14, + "isWall": false + }, + { + "x": 94, + "y": 15, + "isWall": true + }, + { + "x": 94, + "y": 16, + "isWall": false + }, + { + "x": 94, + "y": 17, + "isWall": false + }, + { + "x": 94, + "y": 18, + "isWall": true + }, + { + "x": 94, + "y": 19, + "isWall": false + }, + { + "x": 94, + "y": 20, + "isWall": false + }, + { + "x": 94, + "y": 21, + "isWall": false + }, + { + "x": 94, + "y": 22, + "isWall": false + }, + { + "x": 94, + "y": 23, + "isWall": true + }, + { + "x": 94, + "y": 24, + "isWall": false + }, + { + "x": 94, + "y": 25, + "isWall": false + }, + { + "x": 94, + "y": 26, + "isWall": true + }, + { + "x": 94, + "y": 27, + "isWall": false + }, + { + "x": 94, + "y": 28, + "isWall": true + }, + { + "x": 94, + "y": 29, + "isWall": false + }, + { + "x": 94, + "y": 30, + "isWall": false + }, + { + "x": 94, + "y": 31, + "isWall": false + }, + { + "x": 94, + "y": 32, + "isWall": true + }, + { + "x": 94, + "y": 33, + "isWall": false + }, + { + "x": 94, + "y": 34, + "isWall": false + }, + { + "x": 94, + "y": 35, + "isWall": false + }, + { + "x": 94, + "y": 36, + "isWall": false + }, + { + "x": 94, + "y": 37, + "isWall": true + }, + { + "x": 94, + "y": 38, + "isWall": false + }, + { + "x": 94, + "y": 39, + "isWall": false + }, + { + "x": 94, + "y": 40, + "isWall": false + }, + { + "x": 94, + "y": 41, + "isWall": false + }, + { + "x": 94, + "y": 42, + "isWall": false + }, + { + "x": 94, + "y": 43, + "isWall": true + }, + { + "x": 94, + "y": 44, + "isWall": false + }, + { + "x": 94, + "y": 45, + "isWall": false + }, + { + "x": 94, + "y": 46, + "isWall": false + }, + { + "x": 94, + "y": 47, + "isWall": false + }, + { + "x": 94, + "y": 48, + "isWall": false + }, + { + "x": 94, + "y": 49, + "isWall": false + }, + { + "x": 94, + "y": 50, + "isWall": false + }, + { + "x": 94, + "y": 51, + "isWall": true + }, + { + "x": 94, + "y": 52, + "isWall": false + }, + { + "x": 94, + "y": 53, + "isWall": true + }, + { + "x": 94, + "y": 54, + "isWall": true + }, + { + "x": 94, + "y": 55, + "isWall": false + }, + { + "x": 94, + "y": 56, + "isWall": true + }, + { + "x": 94, + "y": 57, + "isWall": true + }, + { + "x": 94, + "y": 58, + "isWall": false + }, + { + "x": 94, + "y": 59, + "isWall": true + }, + { + "x": 94, + "y": 60, + "isWall": false + }, + { + "x": 94, + "y": 61, + "isWall": true + }, + { + "x": 94, + "y": 62, + "isWall": true + }, + { + "x": 94, + "y": 63, + "isWall": true + }, + { + "x": 94, + "y": 64, + "isWall": true + }, + { + "x": 94, + "y": 65, + "isWall": false + }, + { + "x": 94, + "y": 66, + "isWall": true + }, + { + "x": 94, + "y": 67, + "isWall": false + }, + { + "x": 94, + "y": 68, + "isWall": true + }, + { + "x": 94, + "y": 69, + "isWall": false + }, + { + "x": 94, + "y": 70, + "isWall": true + }, + { + "x": 94, + "y": 71, + "isWall": true + }, + { + "x": 94, + "y": 72, + "isWall": false + }, + { + "x": 94, + "y": 73, + "isWall": false + }, + { + "x": 94, + "y": 74, + "isWall": false + }, + { + "x": 94, + "y": 75, + "isWall": false + }, + { + "x": 94, + "y": 76, + "isWall": false + }, + { + "x": 94, + "y": 77, + "isWall": false + }, + { + "x": 94, + "y": 78, + "isWall": false + }, + { + "x": 94, + "y": 79, + "isWall": true + }, + { + "x": 94, + "y": 80, + "isWall": false + }, + { + "x": 94, + "y": 81, + "isWall": false + }, + { + "x": 94, + "y": 82, + "isWall": false + }, + { + "x": 94, + "y": 83, + "isWall": true + }, + { + "x": 94, + "y": 84, + "isWall": true + }, + { + "x": 94, + "y": 85, + "isWall": false + }, + { + "x": 94, + "y": 86, + "isWall": false + }, + { + "x": 94, + "y": 87, + "isWall": false + }, + { + "x": 94, + "y": 88, + "isWall": false + }, + { + "x": 94, + "y": 89, + "isWall": false + }, + { + "x": 94, + "y": 90, + "isWall": true + }, + { + "x": 94, + "y": 91, + "isWall": false + }, + { + "x": 94, + "y": 92, + "isWall": false + }, + { + "x": 94, + "y": 93, + "isWall": false + }, + { + "x": 94, + "y": 94, + "isWall": false + }, + { + "x": 94, + "y": 95, + "isWall": false + }, + { + "x": 94, + "y": 96, + "isWall": false + }, + { + "x": 94, + "y": 97, + "isWall": false + }, + { + "x": 94, + "y": 98, + "isWall": false + }, + { + "x": 94, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 95, + "y": 0, + "isWall": true + }, + { + "x": 95, + "y": 1, + "isWall": true + }, + { + "x": 95, + "y": 2, + "isWall": false + }, + { + "x": 95, + "y": 3, + "isWall": false + }, + { + "x": 95, + "y": 4, + "isWall": false + }, + { + "x": 95, + "y": 5, + "isWall": true + }, + { + "x": 95, + "y": 6, + "isWall": true + }, + { + "x": 95, + "y": 7, + "isWall": false + }, + { + "x": 95, + "y": 8, + "isWall": false + }, + { + "x": 95, + "y": 9, + "isWall": false + }, + { + "x": 95, + "y": 10, + "isWall": false + }, + { + "x": 95, + "y": 11, + "isWall": false + }, + { + "x": 95, + "y": 12, + "isWall": true + }, + { + "x": 95, + "y": 13, + "isWall": false + }, + { + "x": 95, + "y": 14, + "isWall": false + }, + { + "x": 95, + "y": 15, + "isWall": false + }, + { + "x": 95, + "y": 16, + "isWall": false + }, + { + "x": 95, + "y": 17, + "isWall": false + }, + { + "x": 95, + "y": 18, + "isWall": false + }, + { + "x": 95, + "y": 19, + "isWall": false + }, + { + "x": 95, + "y": 20, + "isWall": true + }, + { + "x": 95, + "y": 21, + "isWall": true + }, + { + "x": 95, + "y": 22, + "isWall": false + }, + { + "x": 95, + "y": 23, + "isWall": false + }, + { + "x": 95, + "y": 24, + "isWall": false + }, + { + "x": 95, + "y": 25, + "isWall": false + }, + { + "x": 95, + "y": 26, + "isWall": false + }, + { + "x": 95, + "y": 27, + "isWall": false + }, + { + "x": 95, + "y": 28, + "isWall": true + }, + { + "x": 95, + "y": 29, + "isWall": false + }, + { + "x": 95, + "y": 30, + "isWall": true + }, + { + "x": 95, + "y": 31, + "isWall": false + }, + { + "x": 95, + "y": 32, + "isWall": false + }, + { + "x": 95, + "y": 33, + "isWall": false + }, + { + "x": 95, + "y": 34, + "isWall": true + }, + { + "x": 95, + "y": 35, + "isWall": true + }, + { + "x": 95, + "y": 36, + "isWall": false + }, + { + "x": 95, + "y": 37, + "isWall": false + }, + { + "x": 95, + "y": 38, + "isWall": true + }, + { + "x": 95, + "y": 39, + "isWall": false + }, + { + "x": 95, + "y": 40, + "isWall": false + }, + { + "x": 95, + "y": 41, + "isWall": false + }, + { + "x": 95, + "y": 42, + "isWall": true + }, + { + "x": 95, + "y": 43, + "isWall": false + }, + { + "x": 95, + "y": 44, + "isWall": false + }, + { + "x": 95, + "y": 45, + "isWall": false + }, + { + "x": 95, + "y": 46, + "isWall": false + }, + { + "x": 95, + "y": 47, + "isWall": true + }, + { + "x": 95, + "y": 48, + "isWall": false + }, + { + "x": 95, + "y": 49, + "isWall": true + }, + { + "x": 95, + "y": 50, + "isWall": false + }, + { + "x": 95, + "y": 51, + "isWall": false + }, + { + "x": 95, + "y": 52, + "isWall": false + }, + { + "x": 95, + "y": 53, + "isWall": false + }, + { + "x": 95, + "y": 54, + "isWall": false + }, + { + "x": 95, + "y": 55, + "isWall": false + }, + { + "x": 95, + "y": 56, + "isWall": true + }, + { + "x": 95, + "y": 57, + "isWall": false + }, + { + "x": 95, + "y": 58, + "isWall": false + }, + { + "x": 95, + "y": 59, + "isWall": false + }, + { + "x": 95, + "y": 60, + "isWall": false + }, + { + "x": 95, + "y": 61, + "isWall": false + }, + { + "x": 95, + "y": 62, + "isWall": false + }, + { + "x": 95, + "y": 63, + "isWall": false + }, + { + "x": 95, + "y": 64, + "isWall": false + }, + { + "x": 95, + "y": 65, + "isWall": true + }, + { + "x": 95, + "y": 66, + "isWall": true + }, + { + "x": 95, + "y": 67, + "isWall": true + }, + { + "x": 95, + "y": 68, + "isWall": false + }, + { + "x": 95, + "y": 69, + "isWall": false + }, + { + "x": 95, + "y": 70, + "isWall": false + }, + { + "x": 95, + "y": 71, + "isWall": true + }, + { + "x": 95, + "y": 72, + "isWall": true + }, + { + "x": 95, + "y": 73, + "isWall": false + }, + { + "x": 95, + "y": 74, + "isWall": false + }, + { + "x": 95, + "y": 75, + "isWall": false + }, + { + "x": 95, + "y": 76, + "isWall": true + }, + { + "x": 95, + "y": 77, + "isWall": true + }, + { + "x": 95, + "y": 78, + "isWall": false + }, + { + "x": 95, + "y": 79, + "isWall": false + }, + { + "x": 95, + "y": 80, + "isWall": false + }, + { + "x": 95, + "y": 81, + "isWall": true + }, + { + "x": 95, + "y": 82, + "isWall": true + }, + { + "x": 95, + "y": 83, + "isWall": false + }, + { + "x": 95, + "y": 84, + "isWall": true + }, + { + "x": 95, + "y": 85, + "isWall": true + }, + { + "x": 95, + "y": 86, + "isWall": false + }, + { + "x": 95, + "y": 87, + "isWall": false + }, + { + "x": 95, + "y": 88, + "isWall": false + }, + { + "x": 95, + "y": 89, + "isWall": true + }, + { + "x": 95, + "y": 90, + "isWall": false + }, + { + "x": 95, + "y": 91, + "isWall": false + }, + { + "x": 95, + "y": 92, + "isWall": true + }, + { + "x": 95, + "y": 93, + "isWall": false + }, + { + "x": 95, + "y": 94, + "isWall": false + }, + { + "x": 95, + "y": 95, + "isWall": true + }, + { + "x": 95, + "y": 96, + "isWall": false + }, + { + "x": 95, + "y": 97, + "isWall": true + }, + { + "x": 95, + "y": 98, + "isWall": false + }, + { + "x": 95, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 96, + "y": 0, + "isWall": false + }, + { + "x": 96, + "y": 1, + "isWall": false + }, + { + "x": 96, + "y": 2, + "isWall": false + }, + { + "x": 96, + "y": 3, + "isWall": false + }, + { + "x": 96, + "y": 4, + "isWall": true + }, + { + "x": 96, + "y": 5, + "isWall": true + }, + { + "x": 96, + "y": 6, + "isWall": false + }, + { + "x": 96, + "y": 7, + "isWall": false + }, + { + "x": 96, + "y": 8, + "isWall": false + }, + { + "x": 96, + "y": 9, + "isWall": true + }, + { + "x": 96, + "y": 10, + "isWall": false + }, + { + "x": 96, + "y": 11, + "isWall": false + }, + { + "x": 96, + "y": 12, + "isWall": false + }, + { + "x": 96, + "y": 13, + "isWall": true + }, + { + "x": 96, + "y": 14, + "isWall": false + }, + { + "x": 96, + "y": 15, + "isWall": false + }, + { + "x": 96, + "y": 16, + "isWall": false + }, + { + "x": 96, + "y": 17, + "isWall": true + }, + { + "x": 96, + "y": 18, + "isWall": true + }, + { + "x": 96, + "y": 19, + "isWall": false + }, + { + "x": 96, + "y": 20, + "isWall": true + }, + { + "x": 96, + "y": 21, + "isWall": true + }, + { + "x": 96, + "y": 22, + "isWall": false + }, + { + "x": 96, + "y": 23, + "isWall": false + }, + { + "x": 96, + "y": 24, + "isWall": true + }, + { + "x": 96, + "y": 25, + "isWall": false + }, + { + "x": 96, + "y": 26, + "isWall": true + }, + { + "x": 96, + "y": 27, + "isWall": true + }, + { + "x": 96, + "y": 28, + "isWall": false + }, + { + "x": 96, + "y": 29, + "isWall": false + }, + { + "x": 96, + "y": 30, + "isWall": true + }, + { + "x": 96, + "y": 31, + "isWall": true + }, + { + "x": 96, + "y": 32, + "isWall": true + }, + { + "x": 96, + "y": 33, + "isWall": true + }, + { + "x": 96, + "y": 34, + "isWall": true + }, + { + "x": 96, + "y": 35, + "isWall": true + }, + { + "x": 96, + "y": 36, + "isWall": false + }, + { + "x": 96, + "y": 37, + "isWall": false + }, + { + "x": 96, + "y": 38, + "isWall": false + }, + { + "x": 96, + "y": 39, + "isWall": true + }, + { + "x": 96, + "y": 40, + "isWall": false + }, + { + "x": 96, + "y": 41, + "isWall": false + }, + { + "x": 96, + "y": 42, + "isWall": false + }, + { + "x": 96, + "y": 43, + "isWall": true + }, + { + "x": 96, + "y": 44, + "isWall": false + }, + { + "x": 96, + "y": 45, + "isWall": false + }, + { + "x": 96, + "y": 46, + "isWall": false + }, + { + "x": 96, + "y": 47, + "isWall": false + }, + { + "x": 96, + "y": 48, + "isWall": false + }, + { + "x": 96, + "y": 49, + "isWall": false + }, + { + "x": 96, + "y": 50, + "isWall": false + }, + { + "x": 96, + "y": 51, + "isWall": false + }, + { + "x": 96, + "y": 52, + "isWall": false + }, + { + "x": 96, + "y": 53, + "isWall": false + }, + { + "x": 96, + "y": 54, + "isWall": false + }, + { + "x": 96, + "y": 55, + "isWall": true + }, + { + "x": 96, + "y": 56, + "isWall": false + }, + { + "x": 96, + "y": 57, + "isWall": false + }, + { + "x": 96, + "y": 58, + "isWall": false + }, + { + "x": 96, + "y": 59, + "isWall": false + }, + { + "x": 96, + "y": 60, + "isWall": false + }, + { + "x": 96, + "y": 61, + "isWall": true + }, + { + "x": 96, + "y": 62, + "isWall": true + }, + { + "x": 96, + "y": 63, + "isWall": false + }, + { + "x": 96, + "y": 64, + "isWall": false + }, + { + "x": 96, + "y": 65, + "isWall": false + }, + { + "x": 96, + "y": 66, + "isWall": false + }, + { + "x": 96, + "y": 67, + "isWall": true + }, + { + "x": 96, + "y": 68, + "isWall": false + }, + { + "x": 96, + "y": 69, + "isWall": false + }, + { + "x": 96, + "y": 70, + "isWall": true + }, + { + "x": 96, + "y": 71, + "isWall": false + }, + { + "x": 96, + "y": 72, + "isWall": false + }, + { + "x": 96, + "y": 73, + "isWall": true + }, + { + "x": 96, + "y": 74, + "isWall": true + }, + { + "x": 96, + "y": 75, + "isWall": false + }, + { + "x": 96, + "y": 76, + "isWall": false + }, + { + "x": 96, + "y": 77, + "isWall": false + }, + { + "x": 96, + "y": 78, + "isWall": false + }, + { + "x": 96, + "y": 79, + "isWall": false + }, + { + "x": 96, + "y": 80, + "isWall": false + }, + { + "x": 96, + "y": 81, + "isWall": true + }, + { + "x": 96, + "y": 82, + "isWall": false + }, + { + "x": 96, + "y": 83, + "isWall": false + }, + { + "x": 96, + "y": 84, + "isWall": true + }, + { + "x": 96, + "y": 85, + "isWall": false + }, + { + "x": 96, + "y": 86, + "isWall": false + }, + { + "x": 96, + "y": 87, + "isWall": true + }, + { + "x": 96, + "y": 88, + "isWall": false + }, + { + "x": 96, + "y": 89, + "isWall": true + }, + { + "x": 96, + "y": 90, + "isWall": true + }, + { + "x": 96, + "y": 91, + "isWall": false + }, + { + "x": 96, + "y": 92, + "isWall": true + }, + { + "x": 96, + "y": 93, + "isWall": false + }, + { + "x": 96, + "y": 94, + "isWall": true + }, + { + "x": 96, + "y": 95, + "isWall": false + }, + { + "x": 96, + "y": 96, + "isWall": false + }, + { + "x": 96, + "y": 97, + "isWall": false + }, + { + "x": 96, + "y": 98, + "isWall": true + }, + { + "x": 96, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 97, + "y": 0, + "isWall": false + }, + { + "x": 97, + "y": 1, + "isWall": false + }, + { + "x": 97, + "y": 2, + "isWall": true + }, + { + "x": 97, + "y": 3, + "isWall": false + }, + { + "x": 97, + "y": 4, + "isWall": true + }, + { + "x": 97, + "y": 5, + "isWall": false + }, + { + "x": 97, + "y": 6, + "isWall": false + }, + { + "x": 97, + "y": 7, + "isWall": true + }, + { + "x": 97, + "y": 8, + "isWall": false + }, + { + "x": 97, + "y": 9, + "isWall": false + }, + { + "x": 97, + "y": 10, + "isWall": false + }, + { + "x": 97, + "y": 11, + "isWall": false + }, + { + "x": 97, + "y": 12, + "isWall": true + }, + { + "x": 97, + "y": 13, + "isWall": true + }, + { + "x": 97, + "y": 14, + "isWall": false + }, + { + "x": 97, + "y": 15, + "isWall": false + }, + { + "x": 97, + "y": 16, + "isWall": false + }, + { + "x": 97, + "y": 17, + "isWall": true + }, + { + "x": 97, + "y": 18, + "isWall": false + }, + { + "x": 97, + "y": 19, + "isWall": false + }, + { + "x": 97, + "y": 20, + "isWall": false + }, + { + "x": 97, + "y": 21, + "isWall": false + }, + { + "x": 97, + "y": 22, + "isWall": true + }, + { + "x": 97, + "y": 23, + "isWall": false + }, + { + "x": 97, + "y": 24, + "isWall": false + }, + { + "x": 97, + "y": 25, + "isWall": false + }, + { + "x": 97, + "y": 26, + "isWall": false + }, + { + "x": 97, + "y": 27, + "isWall": false + }, + { + "x": 97, + "y": 28, + "isWall": false + }, + { + "x": 97, + "y": 29, + "isWall": true + }, + { + "x": 97, + "y": 30, + "isWall": false + }, + { + "x": 97, + "y": 31, + "isWall": false + }, + { + "x": 97, + "y": 32, + "isWall": false + }, + { + "x": 97, + "y": 33, + "isWall": false + }, + { + "x": 97, + "y": 34, + "isWall": true + }, + { + "x": 97, + "y": 35, + "isWall": false + }, + { + "x": 97, + "y": 36, + "isWall": false + }, + { + "x": 97, + "y": 37, + "isWall": false + }, + { + "x": 97, + "y": 38, + "isWall": false + }, + { + "x": 97, + "y": 39, + "isWall": false + }, + { + "x": 97, + "y": 40, + "isWall": false + }, + { + "x": 97, + "y": 41, + "isWall": false + }, + { + "x": 97, + "y": 42, + "isWall": false + }, + { + "x": 97, + "y": 43, + "isWall": false + }, + { + "x": 97, + "y": 44, + "isWall": false + }, + { + "x": 97, + "y": 45, + "isWall": false + }, + { + "x": 97, + "y": 46, + "isWall": false + }, + { + "x": 97, + "y": 47, + "isWall": false + }, + { + "x": 97, + "y": 48, + "isWall": false + }, + { + "x": 97, + "y": 49, + "isWall": false + }, + { + "x": 97, + "y": 50, + "isWall": false + }, + { + "x": 97, + "y": 51, + "isWall": false + }, + { + "x": 97, + "y": 52, + "isWall": true + }, + { + "x": 97, + "y": 53, + "isWall": false + }, + { + "x": 97, + "y": 54, + "isWall": true + }, + { + "x": 97, + "y": 55, + "isWall": false + }, + { + "x": 97, + "y": 56, + "isWall": false + }, + { + "x": 97, + "y": 57, + "isWall": false + }, + { + "x": 97, + "y": 58, + "isWall": false + }, + { + "x": 97, + "y": 59, + "isWall": false + }, + { + "x": 97, + "y": 60, + "isWall": true + }, + { + "x": 97, + "y": 61, + "isWall": false + }, + { + "x": 97, + "y": 62, + "isWall": false + }, + { + "x": 97, + "y": 63, + "isWall": false + }, + { + "x": 97, + "y": 64, + "isWall": true + }, + { + "x": 97, + "y": 65, + "isWall": true + }, + { + "x": 97, + "y": 66, + "isWall": false + }, + { + "x": 97, + "y": 67, + "isWall": true + }, + { + "x": 97, + "y": 68, + "isWall": true + }, + { + "x": 97, + "y": 69, + "isWall": false + }, + { + "x": 97, + "y": 70, + "isWall": false + }, + { + "x": 97, + "y": 71, + "isWall": false + }, + { + "x": 97, + "y": 72, + "isWall": false + }, + { + "x": 97, + "y": 73, + "isWall": false + }, + { + "x": 97, + "y": 74, + "isWall": true + }, + { + "x": 97, + "y": 75, + "isWall": false + }, + { + "x": 97, + "y": 76, + "isWall": false + }, + { + "x": 97, + "y": 77, + "isWall": true + }, + { + "x": 97, + "y": 78, + "isWall": true + }, + { + "x": 97, + "y": 79, + "isWall": false + }, + { + "x": 97, + "y": 80, + "isWall": true + }, + { + "x": 97, + "y": 81, + "isWall": true + }, + { + "x": 97, + "y": 82, + "isWall": true + }, + { + "x": 97, + "y": 83, + "isWall": false + }, + { + "x": 97, + "y": 84, + "isWall": true + }, + { + "x": 97, + "y": 85, + "isWall": true + }, + { + "x": 97, + "y": 86, + "isWall": false + }, + { + "x": 97, + "y": 87, + "isWall": true + }, + { + "x": 97, + "y": 88, + "isWall": false + }, + { + "x": 97, + "y": 89, + "isWall": false + }, + { + "x": 97, + "y": 90, + "isWall": false + }, + { + "x": 97, + "y": 91, + "isWall": true + }, + { + "x": 97, + "y": 92, + "isWall": true + }, + { + "x": 97, + "y": 93, + "isWall": false + }, + { + "x": 97, + "y": 94, + "isWall": false + }, + { + "x": 97, + "y": 95, + "isWall": false + }, + { + "x": 97, + "y": 96, + "isWall": false + }, + { + "x": 97, + "y": 97, + "isWall": false + }, + { + "x": 97, + "y": 98, + "isWall": false + }, + { + "x": 97, + "y": 99, + "isWall": true + } + ], + [ + { + "x": 98, + "y": 0, + "isWall": false + }, + { + "x": 98, + "y": 1, + "isWall": false + }, + { + "x": 98, + "y": 2, + "isWall": false + }, + { + "x": 98, + "y": 3, + "isWall": false + }, + { + "x": 98, + "y": 4, + "isWall": false + }, + { + "x": 98, + "y": 5, + "isWall": false + }, + { + "x": 98, + "y": 6, + "isWall": false + }, + { + "x": 98, + "y": 7, + "isWall": true + }, + { + "x": 98, + "y": 8, + "isWall": true + }, + { + "x": 98, + "y": 9, + "isWall": false + }, + { + "x": 98, + "y": 10, + "isWall": false + }, + { + "x": 98, + "y": 11, + "isWall": false + }, + { + "x": 98, + "y": 12, + "isWall": true + }, + { + "x": 98, + "y": 13, + "isWall": false + }, + { + "x": 98, + "y": 14, + "isWall": false + }, + { + "x": 98, + "y": 15, + "isWall": false + }, + { + "x": 98, + "y": 16, + "isWall": false + }, + { + "x": 98, + "y": 17, + "isWall": false + }, + { + "x": 98, + "y": 18, + "isWall": false + }, + { + "x": 98, + "y": 19, + "isWall": true + }, + { + "x": 98, + "y": 20, + "isWall": false + }, + { + "x": 98, + "y": 21, + "isWall": false + }, + { + "x": 98, + "y": 22, + "isWall": true + }, + { + "x": 98, + "y": 23, + "isWall": false + }, + { + "x": 98, + "y": 24, + "isWall": false + }, + { + "x": 98, + "y": 25, + "isWall": false + }, + { + "x": 98, + "y": 26, + "isWall": false + }, + { + "x": 98, + "y": 27, + "isWall": true + }, + { + "x": 98, + "y": 28, + "isWall": false + }, + { + "x": 98, + "y": 29, + "isWall": false + }, + { + "x": 98, + "y": 30, + "isWall": false + }, + { + "x": 98, + "y": 31, + "isWall": false + }, + { + "x": 98, + "y": 32, + "isWall": false + }, + { + "x": 98, + "y": 33, + "isWall": false + }, + { + "x": 98, + "y": 34, + "isWall": true + }, + { + "x": 98, + "y": 35, + "isWall": false + }, + { + "x": 98, + "y": 36, + "isWall": true + }, + { + "x": 98, + "y": 37, + "isWall": true + }, + { + "x": 98, + "y": 38, + "isWall": false + }, + { + "x": 98, + "y": 39, + "isWall": false + }, + { + "x": 98, + "y": 40, + "isWall": true + }, + { + "x": 98, + "y": 41, + "isWall": true + }, + { + "x": 98, + "y": 42, + "isWall": false + }, + { + "x": 98, + "y": 43, + "isWall": false + }, + { + "x": 98, + "y": 44, + "isWall": false + }, + { + "x": 98, + "y": 45, + "isWall": false + }, + { + "x": 98, + "y": 46, + "isWall": true + }, + { + "x": 98, + "y": 47, + "isWall": false + }, + { + "x": 98, + "y": 48, + "isWall": false + }, + { + "x": 98, + "y": 49, + "isWall": false + }, + { + "x": 98, + "y": 50, + "isWall": true + }, + { + "x": 98, + "y": 51, + "isWall": false + }, + { + "x": 98, + "y": 52, + "isWall": true + }, + { + "x": 98, + "y": 53, + "isWall": false + }, + { + "x": 98, + "y": 54, + "isWall": true + }, + { + "x": 98, + "y": 55, + "isWall": false + }, + { + "x": 98, + "y": 56, + "isWall": true + }, + { + "x": 98, + "y": 57, + "isWall": false + }, + { + "x": 98, + "y": 58, + "isWall": false + }, + { + "x": 98, + "y": 59, + "isWall": false + }, + { + "x": 98, + "y": 60, + "isWall": true + }, + { + "x": 98, + "y": 61, + "isWall": false + }, + { + "x": 98, + "y": 62, + "isWall": false + }, + { + "x": 98, + "y": 63, + "isWall": true + }, + { + "x": 98, + "y": 64, + "isWall": false + }, + { + "x": 98, + "y": 65, + "isWall": false + }, + { + "x": 98, + "y": 66, + "isWall": false + }, + { + "x": 98, + "y": 67, + "isWall": false + }, + { + "x": 98, + "y": 68, + "isWall": false + }, + { + "x": 98, + "y": 69, + "isWall": false + }, + { + "x": 98, + "y": 70, + "isWall": true + }, + { + "x": 98, + "y": 71, + "isWall": true + }, + { + "x": 98, + "y": 72, + "isWall": false + }, + { + "x": 98, + "y": 73, + "isWall": false + }, + { + "x": 98, + "y": 74, + "isWall": true + }, + { + "x": 98, + "y": 75, + "isWall": true + }, + { + "x": 98, + "y": 76, + "isWall": false + }, + { + "x": 98, + "y": 77, + "isWall": false + }, + { + "x": 98, + "y": 78, + "isWall": true + }, + { + "x": 98, + "y": 79, + "isWall": false + }, + { + "x": 98, + "y": 80, + "isWall": false + }, + { + "x": 98, + "y": 81, + "isWall": false + }, + { + "x": 98, + "y": 82, + "isWall": false + }, + { + "x": 98, + "y": 83, + "isWall": false + }, + { + "x": 98, + "y": 84, + "isWall": false + }, + { + "x": 98, + "y": 85, + "isWall": true + }, + { + "x": 98, + "y": 86, + "isWall": false + }, + { + "x": 98, + "y": 87, + "isWall": false + }, + { + "x": 98, + "y": 88, + "isWall": false + }, + { + "x": 98, + "y": 89, + "isWall": false + }, + { + "x": 98, + "y": 90, + "isWall": false + }, + { + "x": 98, + "y": 91, + "isWall": false + }, + { + "x": 98, + "y": 92, + "isWall": false + }, + { + "x": 98, + "y": 93, + "isWall": false + }, + { + "x": 98, + "y": 94, + "isWall": false + }, + { + "x": 98, + "y": 95, + "isWall": false + }, + { + "x": 98, + "y": 96, + "isWall": false + }, + { + "x": 98, + "y": 97, + "isWall": true + }, + { + "x": 98, + "y": 98, + "isWall": true + }, + { + "x": 98, + "y": 99, + "isWall": false + } + ], + [ + { + "x": 99, + "y": 0, + "isWall": true + }, + { + "x": 99, + "y": 1, + "isWall": false + }, + { + "x": 99, + "y": 2, + "isWall": false + }, + { + "x": 99, + "y": 3, + "isWall": false + }, + { + "x": 99, + "y": 4, + "isWall": true + }, + { + "x": 99, + "y": 5, + "isWall": false + }, + { + "x": 99, + "y": 6, + "isWall": true + }, + { + "x": 99, + "y": 7, + "isWall": false + }, + { + "x": 99, + "y": 8, + "isWall": false + }, + { + "x": 99, + "y": 9, + "isWall": false + }, + { + "x": 99, + "y": 10, + "isWall": false + }, + { + "x": 99, + "y": 11, + "isWall": false + }, + { + "x": 99, + "y": 12, + "isWall": false + }, + { + "x": 99, + "y": 13, + "isWall": true + }, + { + "x": 99, + "y": 14, + "isWall": true + }, + { + "x": 99, + "y": 15, + "isWall": false + }, + { + "x": 99, + "y": 16, + "isWall": false + }, + { + "x": 99, + "y": 17, + "isWall": false + }, + { + "x": 99, + "y": 18, + "isWall": false + }, + { + "x": 99, + "y": 19, + "isWall": false + }, + { + "x": 99, + "y": 20, + "isWall": false + }, + { + "x": 99, + "y": 21, + "isWall": true + }, + { + "x": 99, + "y": 22, + "isWall": false + }, + { + "x": 99, + "y": 23, + "isWall": false + }, + { + "x": 99, + "y": 24, + "isWall": true + }, + { + "x": 99, + "y": 25, + "isWall": true + }, + { + "x": 99, + "y": 26, + "isWall": false + }, + { + "x": 99, + "y": 27, + "isWall": false + }, + { + "x": 99, + "y": 28, + "isWall": true + }, + { + "x": 99, + "y": 29, + "isWall": false + }, + { + "x": 99, + "y": 30, + "isWall": false + }, + { + "x": 99, + "y": 31, + "isWall": false + }, + { + "x": 99, + "y": 32, + "isWall": true + }, + { + "x": 99, + "y": 33, + "isWall": true + }, + { + "x": 99, + "y": 34, + "isWall": false + }, + { + "x": 99, + "y": 35, + "isWall": false + }, + { + "x": 99, + "y": 36, + "isWall": false + }, + { + "x": 99, + "y": 37, + "isWall": true + }, + { + "x": 99, + "y": 38, + "isWall": true + }, + { + "x": 99, + "y": 39, + "isWall": false + }, + { + "x": 99, + "y": 40, + "isWall": true + }, + { + "x": 99, + "y": 41, + "isWall": false + }, + { + "x": 99, + "y": 42, + "isWall": false + }, + { + "x": 99, + "y": 43, + "isWall": false + }, + { + "x": 99, + "y": 44, + "isWall": false + }, + { + "x": 99, + "y": 45, + "isWall": true + }, + { + "x": 99, + "y": 46, + "isWall": false + }, + { + "x": 99, + "y": 47, + "isWall": true + }, + { + "x": 99, + "y": 48, + "isWall": true + }, + { + "x": 99, + "y": 49, + "isWall": true + }, + { + "x": 99, + "y": 50, + "isWall": false + }, + { + "x": 99, + "y": 51, + "isWall": false + }, + { + "x": 99, + "y": 52, + "isWall": false + }, + { + "x": 99, + "y": 53, + "isWall": false + }, + { + "x": 99, + "y": 54, + "isWall": false + }, + { + "x": 99, + "y": 55, + "isWall": false + }, + { + "x": 99, + "y": 56, + "isWall": false + }, + { + "x": 99, + "y": 57, + "isWall": false + }, + { + "x": 99, + "y": 58, + "isWall": true + }, + { + "x": 99, + "y": 59, + "isWall": false + }, + { + "x": 99, + "y": 60, + "isWall": true + }, + { + "x": 99, + "y": 61, + "isWall": false + }, + { + "x": 99, + "y": 62, + "isWall": false + }, + { + "x": 99, + "y": 63, + "isWall": true + }, + { + "x": 99, + "y": 64, + "isWall": true + }, + { + "x": 99, + "y": 65, + "isWall": true + }, + { + "x": 99, + "y": 66, + "isWall": true + }, + { + "x": 99, + "y": 67, + "isWall": false + }, + { + "x": 99, + "y": 68, + "isWall": false + }, + { + "x": 99, + "y": 69, + "isWall": false + }, + { + "x": 99, + "y": 70, + "isWall": false + }, + { + "x": 99, + "y": 71, + "isWall": false + }, + { + "x": 99, + "y": 72, + "isWall": false + }, + { + "x": 99, + "y": 73, + "isWall": false + }, + { + "x": 99, + "y": 74, + "isWall": false + }, + { + "x": 99, + "y": 75, + "isWall": false + }, + { + "x": 99, + "y": 76, + "isWall": true + }, + { + "x": 99, + "y": 77, + "isWall": false + }, + { + "x": 99, + "y": 78, + "isWall": true + }, + { + "x": 99, + "y": 79, + "isWall": true + }, + { + "x": 99, + "y": 80, + "isWall": true + }, + { + "x": 99, + "y": 81, + "isWall": true + }, + { + "x": 99, + "y": 82, + "isWall": false + }, + { + "x": 99, + "y": 83, + "isWall": false + }, + { + "x": 99, + "y": 84, + "isWall": false + }, + { + "x": 99, + "y": 85, + "isWall": false + }, + { + "x": 99, + "y": 86, + "isWall": false + }, + { + "x": 99, + "y": 87, + "isWall": false + }, + { + "x": 99, + "y": 88, + "isWall": false + }, + { + "x": 99, + "y": 89, + "isWall": false + }, + { + "x": 99, + "y": 90, + "isWall": false + }, + { + "x": 99, + "y": 91, + "isWall": false + }, + { + "x": 99, + "y": 92, + "isWall": false + }, + { + "x": 99, + "y": 93, + "isWall": false + }, + { + "x": 99, + "y": 94, + "isWall": true + }, + { + "x": 99, + "y": 95, + "isWall": false + }, + { + "x": 99, + "y": 96, + "isWall": false + }, + { + "x": 99, + "y": 97, + "isWall": false + }, + { + "x": 99, + "y": 98, + "isWall": false + }, + { + "x": 99, + "y": 99, + "isWall": true + } + ] + ]; + + for (var i=0; i < g1.length; i++) { + for (var j=0; j<g1[i].length; j++) { + g1[i][j] = new GraphNode(g1[i][j].x, g1[i][j].y, g1[i][j].isWall); + } + } + + var start = getStartingCell(g1); + var end = getEndingCell(g1); + var path = []; +function go() { + //var g = createGraphSet(100, .3); + //print(JSON.stringify(g, undefined, " ")); + //var g1 = JSON.parse(JSON.stringify(g)); + + + + + //print(JSON.stringify(start)); + //print(JSON.stringify(end)); + + var startTime = Date.now(); + if (this.connectShark) { + connectShark(); + startShark(); + } + path = astar.search(g1, start, end); + if (this.connectShark) { + stopShark(); + disconnectShark(); + } + var searchTime = Date.now() - startTime; + return searchTime + "ms"; +}; + +//print(go()); diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/beat-detection.html b/chrome/test/data/third_party/kraken/hosted/explanations/beat-detection.html new file mode 100644 index 0000000..9113a83 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/beat-detection.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Beat Detection</h2> +<div id="results"> + <p>This benchmark performs <a href="http://en.wikipedia.org/wiki/Beat_detection">beat detection</a> on an Audio sample using <a href="http://beatdetektor.svn.sourceforge.net/viewvc/beatdetektor/trunk/core/js/beatdetektor.js?revision=18&view=markup">code</a> from <a href="http://www.cubicproductions.com/index.php?option=com_content&view=article&id=67&Itemid=82">BeatDetektor</a> and <a href="http://github.com/corbanbrook/dsp.js/">DSP.js</a>.</p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/darkroom.html b/chrome/test/data/third_party/kraken/hosted/explanations/darkroom.html new file mode 100644 index 0000000..3fc3431 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/darkroom.html @@ -0,0 +1,256 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> +<link type="text/css" href="jquery-ui-1.8.2.custom.css" rel="stylesheet"/> +<script type="text/javascript" src="jquery-1.4.2.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.2.custom.min.js"></script> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> + +<script type="text/javascript" src="darkroom.js"></script> +<style> +#imagedisplay { + width: 70%; + /*background: blue;*/ + padding-top: 15px; + padding-bottom: 15px; + float: left; +} + +#imagedisplay-inner { + width: 100%; + height: 100%; + -moz-border-radius: 30px; + border: 30px dashed #eeeeee; +} + +#controls { + background: rgba(0, 0, 0, .5); + width: 30%; + min-width: 100px; + float: right; +} + +.blackbg #controls { + color: white; +} + +.graybg #controls { + color: #aaaaaa; +} + +#controls h4 { +} + +.slidergroup { + margin: 5px; +} + +.slidergroup tr { + font-size: 11px; +} + +.slider { + margin-left: 15px; + margin-right: 15px; +} + +body { + font-family: sans-serif; +} + +#log { + font-size: 70%; + margin-left: 10px; + margin-right: 10px; +} + +.indrag { + background: rgba(0,128,128,.25); + cursor: default; +} + +.options { + margin: 10px; +} + +.canzoomin { + cursor: -moz-zoom-in; +} + +.canzoomout { + cursor: -moz-zoom-out ! important; +} + +.cangrab { + cursor: -moz-grab; +} + +.isgrabbing { + cursor: -moz-grabbing ! important; +} + +.blackbg { + background: black; +} + +.whitebg { + background: white; +} + +.graybg { + background: gray; +} + +span { + font-size: 11px; +} + + </style> + +</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Darkroom</h2> +<div id="results"> + <p>This benchmark performs a variety of photo manipulations. You can try these manipulations out in the interface below.</p> + <p> </p> + <div id="imagedisplay"> + <center><canvas id="canvas"></canvas></center> + </div> + + <div id="controls"> + <div class="slidergroup"> + <h4>Exposure</h4> + <table border="0"> + <tr> + <td>Black Point</td> + <td width="100%"><div class="slider" id="blackPoint"></div></td> + </tr> + + <tr> + <td>Fill</td> + <td><div class="slider" id="fill"></div></td> + </tr> + <tr> + <td>Brightness</td> + <td><div class="slider" id="brightness"></div></td> + </tr> + + <tr> + <td>Contrast</td> + <td><div class="slider" id="contrast"></div></td> + </tr> + <tr> + <td>Saturation</td> + <td><div class="slider" id="saturation"></div></td> + </tr> + + <tr> + <td>Temperature</td> + <td><div class="slider" id="temperature"></div></td> + </tr> + </table> + </div> + <div class="slidergroup"> + <h4>Tone Control</h4> + + <table border="0"> + <tr> + <td>Split Point</td> + <td><div class="slider" id="splitPoint"></div></td> + </tr> + <tr><td><b>Shadows</b></td></tr> + <tr> + <td>Hue</td> + + <td width="100%"><div class="slider" id="shadowsHue"></div></td> + </tr> + <tr> + <td>Saturation</td> + <td><div class="slider" id="shadowsSaturation"></div></td> + </tr> + <tr><td><b>Highlights</b></td></tr> + <tr> + + <td>Hue</td> + <td><div class="slider" id="highlightsHue"></div></td> + </tr> + <tr> + <td>Saturation</td> + <td><div class="slider" id="highlightsSaturation"></div></td> + </tr> + </table> + + </div> + + <div class="slidergroup"> + <h4>Geometry</h4> + <table border="0" width="100%"> + <tr><td>Angle (+/- 90.0)</td></tr> + <tr> + <td width="100%"><div class="slider" id="angle"></div></td> + + </tr> + <tr><td>Fine Angle (+/- 2.0)</td></tr> + <tr> + <td><div class="slider" id="fineangle"></div></td> + </tr> + </table> + </div> + + <div class="options"> + + <span>Background: <div style="display: inline-block; width: 15px; height: 15px; border: 1px solid white; background: black;" onclick="SetBackground(0);"></div> + <div style="display: inline-block; width: 15px; height: 15px; border: 1px solid white; background: gray;" onclick="SetBackground(1);"></div> + <div style="display: inline-block; width: 15px; height: 15px; border: 1px solid white; background: white;" onclick="SetBackground(2);"></div> + </span><br> + + <span style="font-weight: bold;">Drag and drop a new image onto the canvas to load.</span><br> + + <button onclick="ZoomReset()">Reset Zoom</button> + + <button onclick="DoReset()">Reset All</button> + <button onclick="DoRedisplay()">Repaint</button><br><br> + <input type="checkbox" id="correct_before" onchange="CheckboxToggled()">Color correct before scaling for display<br><br> + </div> + + <div id="log"></div> + + </div> + +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/darkroom.js b/chrome/test/data/third_party/kraken/hosted/explanations/darkroom.js new file mode 100644 index 0000000..001c054 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/darkroom.js @@ -0,0 +1,571 @@ +/* -*- Mode: js2; js2-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40; -*- */ + +// The if (0) block of function definitions here tries to use +// faster math primitives, based on being able to reinterpret +// floats as ints and vice versa. We do that using the +// WebGL arrays. + +if (0) { + +var gConversionBuffer = new ArrayBuffer(4); +var gFloatConversion = new WebGLFloatArray(gConversionBuffer); +var gIntConversion = new WebGLIntArray(gConversionBuffer); + +function AsFloat(i) { + gIntConversion[0] = i; + return gFloatConversion[0]; +} + +function AsInt(f) { + gFloatConversion[0] = f; + return gIntConversion[0]; +} + +// magic constants used for various floating point manipulations +var kMagicFloatToInt = (1 << 23); +var kOneAsInt = 0x3F800000; +var kScaleUp = AsFloat(0x00800000); +var kScaleDown = 1.0 / kScaleUp; + +function ToInt(f) { + // force integer part into lower bits of mantissa + var i = ReinterpretFloatAsInt(f + kMagicFloatToInt); + // return lower bits of mantissa + return i & 0x3FFFFF; +} + +function FastLog2(x) { + return (AsInt(x) - kOneAsInt) * kScaleDown; +} + +function FastPower(x, p) { + return AsFloat(p * AsInt(x) + (1.0 - p) * kOneAsInt); +} + +var LOG2_HALF = FastLog2(0.5); + +function FastBias(b, x) { + return FastPower(x, FastLog2(b) / LOG2_HALF); +} + +} else { + +function FastLog2(x) { + return Math.log(x) / Math.LN2; +} + +var LOG2_HALF = FastLog2(0.5); + +function FastBias(b, x) { + return Math.pow(x, FastLog2(b) / LOG2_HALF); +} + +} + +function FastGain(g, x) { + return (x < 0.5) ? + FastBias(1.0 - g, 2.0 * x) * 0.5 : + 1.0 - FastBias(1.0 - g, 2.0 - 2.0 * x) * 0.5; +} + +function Clamp(x) { + return (x < 0.0) ? 0.0 : ((x > 1.0) ? 1.0 : x); +} + +function ProcessImageData(imageData, params) { + var saturation = params.saturation; + var contrast = params.contrast; + var brightness = params.brightness; + var blackPoint = params.blackPoint; + var fill = params.fill; + var temperature = params.temperature; + var shadowsHue = params.shadowsHue; + var shadowsSaturation = params.shadowsSaturation; + var highlightsHue = params.highlightsHue; + var highlightsSaturation = params.highlightsSaturation; + var splitPoint = params.splitPoint; + + var brightness_a, brightness_b; + var oo255 = 1.0 / 255.0; + + // do some adjustments + fill *= 0.2; + brightness = (brightness - 1.0) * 0.75 + 1.0; + if (brightness < 1.0) { + brightness_a = brightness; + brightness_b = 0.0; + } else { + brightness_b = brightness - 1.0; + brightness_a = 1.0 - brightness_b; + } + contrast = contrast * 0.5; + contrast = (contrast - 0.5) * 0.75 + 0.5; + temperature = (temperature / 2000.0) * 0.1; + if (temperature > 0.0) temperature *= 2.0; + splitPoint = ((splitPoint + 1.0) * 0.5); + + // apply to pixels + var sz = imageData.width * imageData.height; + var data = imageData.data; + for (var j = 0; j < sz; j++) { + var r = data[j*4+0] * oo255; + var g = data[j*4+1] * oo255; + var b = data[j*4+2] * oo255; + // convert RGB to YIQ + // this is a less than ideal colorspace; + // HSL would probably be better, but more expensive + var y = 0.299 * r + 0.587 * g + 0.114 * b; + var i = 0.596 * r - 0.275 * g - 0.321 * b; + var q = 0.212 * r - 0.523 * g + 0.311 * b; + i = i + temperature; + q = q - temperature; + i = i * saturation; + q = q * saturation; + y = (1.0 + blackPoint) * y - blackPoint; + y = y + fill; + y = y * brightness_a + brightness_b; + y = FastGain(contrast, Clamp(y)); + + if (y < splitPoint) { + q = q + (shadowsHue * shadowsSaturation) * (splitPoint - y); + } else { + i = i + (highlightsHue * highlightsSaturation) * (y - splitPoint); + } + + // convert back to RGB for display + r = y + 0.956 * i + 0.621 * q; + g = y - 0.272 * i - 0.647 * q; + b = y - 1.105 * i + 1.702 * q; + + // clamping is "free" as part of the ImageData object + data[j*4+0] = r * 255.0; + data[j*4+1] = g * 255.0; + data[j*4+2] = b * 255.0; + } +} + +// +// UI code +// + +var gFullCanvas = null; +var gFullContext = null; +var gFullImage = null; +var gDisplayCanvas = null; +var gDisplayContext = null; +var gZoomPoint = null; +var gDisplaySize = null; +var gZoomSize = [600, 600]; +var gMouseStart = null; +var gMouseOrig = [0, 0]; +var gDirty = true; + +// If true, apply image correction to the original +// source image before scaling down; if false, +// scale down first. +var gCorrectBefore = false; + +var gParams = null; +var gIgnoreChanges = true; + +function OnSliderChanged() { + if (gIgnoreChanges) + return; + + gDirty = true; + + gParams = {}; + + // The values will come in as 0.0 .. 1.0; some params want + // a different range. + var ranges = { + "saturation": [0, 2], + "contrast": [0, 2], + "brightness": [0, 2], + "temperature": [-2000, 2000], + "splitPoint": [-1, 1] + }; + + $(".slider").each(function(index, e) { + var val = Math.floor($(e).slider("value")) / 1000.0; + var id = e.getAttribute("id"); + if (id in ranges) + val = val * (ranges[id][1] - ranges[id][0]) + ranges[id][0]; + gParams[id] = val; + }); + + Redisplay(); +} + +function ClampZoomPointToTranslation() { + var tx = gZoomPoint[0] - gZoomSize[0]/2; + var ty = gZoomPoint[1] - gZoomSize[1]/2; + tx = Math.max(0, tx); + ty = Math.max(0, ty); + + if (tx + gZoomSize[0] > gFullImage.width) + tx = gFullImage.width - gZoomSize[0]; + if (ty + gZoomSize[1] > gFullImage.height) + ty = gFullImage.height - gZoomSize[1]; + return [tx, ty]; +} + +function Redisplay() { + if (!gParams) + return; + + var angle = + (gParams.angle*2.0 - 1.0) * 90.0 + + (gParams.fineangle*2.0 - 1.0) * 2.0; + + angle = Math.max(-90, Math.min(90, angle)); + angle = (angle * Math.PI) / 180.0; + + var processTime; + var processWidth, processHeight; + + var t0 = (new Date()).getTime(); + + // Render the image with rotation; we only need to render + // if we're either correcting just the portion that's visible, + // or if we're correcting the full thing and the sliders have been + // changed. Otherwise, what's in the full canvas is already corrected + // and correct. + if ((gCorrectBefore && gDirty) || + !gCorrectBefore) + { + gFullContext.save(); + gFullContext.translate(Math.floor(gFullImage.width / 2), Math.floor(gFullImage.height / 2)); + gFullContext.rotate(angle); + gFullContext.globalCompositeOperation = "copy"; + gFullContext.drawImage(gFullImage, + -Math.floor(gFullImage.width / 2), + -Math.floor(gFullImage.height / 2)); + gFullContext.restore(); + } + + function FullToDisplay() { + gDisplayContext.save(); + if (gZoomPoint) { + var pt = ClampZoomPointToTranslation(); + + gDisplayContext.translate(-pt[0], -pt[1]); + } else { + gDisplayContext.translate(0, 0); + var ratio = gDisplaySize[0] / gFullCanvas.width; + gDisplayContext.scale(ratio, ratio); + } + + gDisplayContext.globalCompositeOperation = "copy"; + gDisplayContext.drawImage(gFullCanvas, 0, 0); + gDisplayContext.restore(); + } + + function ProcessCanvas(cx, canvas) { + var ts = (new Date()).getTime(); + + var data = cx.getImageData(0, 0, canvas.width, canvas.height); + ProcessImageData(data, gParams); + cx.putImageData(data, 0, 0); + + processWidth = canvas.width; + processHeight = canvas.height; + + processTime = (new Date()).getTime() - ts; + } + + if (gCorrectBefore) { + if (gDirty) { + ProcessCanvas(gFullContext, gFullCanvas); + } else { + processTime = -1; + } + gDirty = false; + FullToDisplay(); + } else { + FullToDisplay(); + ProcessCanvas(gDisplayContext, gDisplayCanvas); + } + + var t3 = (new Date()).getTime(); + + if (processTime != -1) { + $("#log")[0].innerHTML = "<p>" + + "Size: " + processWidth + "x" + processHeight + " (" + (processWidth*processHeight) + " pixels)<br>" + + "Process: " + processTime + "ms" + " Total: " + (t3-t0) + "ms<br>" + + "Throughput: " + Math.floor((processWidth*processHeight) / (processTime / 1000.0)) + " pixels per second<br>" + + "FPS: " + (Math.floor((1000.0 / (t3-t0)) * 100) / 100) + "<br>" + + "</p>"; + } else { + $("#log")[0].innerHTML = "<p>(No stats when zoomed and no processing done)</p>"; + } +} + +function ZoomToPoint(x, y) { + if (gZoomSize[0] > gFullImage.width || + gZoomSize[1] > gFullImage.height) + return; + + var r = gDisplaySize[0] / gFullCanvas.width; + + gDisplayCanvas.width = gZoomSize[0]; + gDisplayCanvas.height = gZoomSize[1]; + gZoomPoint = [x/r, y/r]; + $("#canvas").removeClass("canzoomin").addClass("cangrab"); + Redisplay(); +} + +function ZoomReset() { + gDisplayCanvas.width = gDisplaySize[0]; + gDisplayCanvas.height = gDisplaySize[1]; + gZoomPoint = null; + $("#canvas").removeClass("canzoomout cangrab isgrabbing").addClass("canzoomin"); + Redisplay(); +} + +function LoadImage(url) { + if (!gFullCanvas) + gFullCanvas = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas"); + if (!gDisplayCanvas) + gDisplayCanvas = $("#canvas")[0]; + + var img = new Image(); + img.onload = function() { + var w = img.width; + var h = img.height; + + gFullImage = img; + + gFullCanvas.width = w; + gFullCanvas.height = h; + gFullContext = gFullCanvas.getContext("2d"); + + // XXX use the actual size of the visible region, so that + // we rescale along with the window + var dim = 600; + if (Math.max(w,h) > dim) { + var scale = dim / Math.max(w,h); + w *= scale; + h *= scale; + } + + gDisplayCanvas.width = Math.floor(w); + gDisplayCanvas.height = Math.floor(h); + gDisplaySize = [ Math.floor(w), Math.floor(h) ]; + gDisplayContext = gDisplayCanvas.getContext("2d"); + + $("#canvas").removeClass("canzoomin canzoomout cangrab isgrabbing"); + + if (gZoomSize[0] <= gFullImage.width && + gZoomSize[1] <= gFullImage.height) + { + $("#canvas").addClass("canzoomin"); + } + + OnSliderChanged(); + }; + //img.src = "foo.jpg"; + //img.src = "Nina6.jpg"; + img.src = url ? url : "sunspots.jpg"; +} + +function SetupDnD() { + $("#imagedisplay").bind({ + dragenter: function(e) { + $("#imagedisplay").addClass("indrag"); + return false; + }, + + dragover: function(e) { + return false; + }, + + dragleave: function(e) { + $("#imagedisplay").removeClass("indrag"); + return false; + }, + + drop: function(e) { + e = e.originalEvent; + var dt = e.dataTransfer; + var files = dt.files; + + if (files.length > 0) { + var file = files[0]; + var reader = new FileReader(); + reader.onload = function(e) { LoadImage(e.target.result); }; + reader.readAsDataURL(file); + } + + $("#imagedisplay").removeClass("indrag"); + return false; + } + }); +} + +function SetupZoomClick() { + $("#canvas").bind({ + click: function(e) { + if (gZoomPoint) + return true; + + var bounds = $("#canvas")[0].getBoundingClientRect(); + var x = e.clientX - bounds.left; + var y = e.clientY - bounds.top; + + ZoomToPoint(x, y); + return false; + }, + + mousedown: function(e) { + if (!gZoomPoint) + return true; + + $("#canvas").addClass("isgrabbing"); + + gMouseOrig[0] = gZoomPoint[0]; + gMouseOrig[1] = gZoomPoint[1]; + gMouseStart = [ e.clientX, e.clientY ]; + + return false; + }, + + mouseup: function(e) { + if (!gZoomPoint || !gMouseStart) + return true; + $("#canvas").removeClass("isgrabbing"); + + gZoomPoint = ClampZoomPointToTranslation(); + + gZoomPoint[0] += gZoomSize[0]/2; + gZoomPoint[1] += gZoomSize[1]/2; + + gMouseStart = null; + return false; + }, + + mousemove: function(e) { + if (!gZoomPoint || !gMouseStart) + return true; + + gZoomPoint[0] = gMouseOrig[0] + (gMouseStart[0] - e.clientX); + gZoomPoint[1] = gMouseOrig[1] + (gMouseStart[1] - e.clientY); + Redisplay(); + + return false; + } + }); + +} + +function CheckboxToggled(skipRedisplay) { + gCorrectBefore = $("#correct_before")[0].checked ? true : false; + + if (!skipRedisplay) + Redisplay(); +} + +function ResetSliders() { + gIgnoreChanges = true; + + $(".slider").each(function(index, e) { $(e).slider("value", 500); }); + $("#blackPoint").slider("value", 0); + $("#fill").slider("value", 0); + $("#shadowsSaturation").slider("value", 0); + $("#highlightsSaturation").slider("value", 0); + + gIgnoreChanges = false; +} + +function DoReset() { + ResetSliders(); + ZoomReset(); + OnSliderChanged(); +} + +function DoRedisplay() { + Redisplay(); +} + +// Speed test: run 10 processings, report in thousands-of-pixels-per-second +function Benchmark() { + var times = []; + + var width = gFullCanvas.width; + var height = gFullCanvas.height; + + $("#benchmark-status")[0].innerHTML = "Resetting..."; + + ResetSliders(); + + setTimeout(RunOneTiming, 0); + + function RunOneTiming() { + + $("#benchmark-status")[0].innerHTML = "Running... " + (times.length + 1); + + // reset to original image + gFullContext.save(); + gFullContext.translate(Math.floor(gFullImage.width / 2), Math.floor(gFullImage.height / 2)); + gFullContext.globalCompositeOperation = "copy"; + gFullContext.drawImage(gFullImage, + -Math.floor(gFullImage.width / 2), + -Math.floor(gFullImage.height / 2)); + gFullContext.restore(); + + // time the processing + var start = (new Date()).getTime(); + var data = gFullContext.getImageData(0, 0, width, height); + ProcessImageData(data, gParams); + gFullContext.putImageData(data, 0, 0); + var end = (new Date()).getTime(); + times.push(end - start); + + if (times.length < 5) { + setTimeout(RunOneTiming, 0); + } else { + displayResults(); + } + + } + + function displayResults() { + var totalTime = times.reduce(function(p, c) { return p + c; }); + var totalPixels = height * width * times.length; + var MPixelsPerSec = totalPixels / totalTime / 1000; + $("#benchmark-status")[0].innerHTML = "Complete: " + MPixelsPerSec.toFixed(2) + " megapixels/sec"; + $("#benchmark-ua")[0].innerHTML = navigator.userAgent; + } +} + +function SetBackground(n) { + $("body").removeClass("blackbg whitebg graybg"); + + switch (n) { + case 0: // black + $("body").addClass("blackbg"); + break; + case 1: // gray + $("body").addClass("graybg"); + break; + case 2: // white + $("body").addClass("whitebg"); + break; + } +} + +$(function() { + $(".slider").slider({ + orientation: 'horizontal', + range: "min", + max: 1000, + value: 500, + slide: OnSliderChanged, + change: OnSliderChanged + }); + ResetSliders(); + SetupDnD(); + SetupZoomClick(); + CheckboxToggled(true); + LoadImage(); + }); diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/desaturate.html b/chrome/test/data/third_party/kraken/hosted/explanations/desaturate.html new file mode 100644 index 0000000..7da8571 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/desaturate.html @@ -0,0 +1,119 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Desaturate</h2> +<div id="results"> + <p>This benchmark <a href="http://en.wikipedia.org/wiki/Colorfulness">desaturates</a> a photo using code from <a href="http://www.pixastic.com/">Pixastic</a>.</p> + <p><small>Photo courtesy <a href="http://www.flickr.com/photos/katclay/4296523922/in/photostream/">Kat Clay</a> from Flickr</small>.</p> + <img id="image" src="squid.png" width="400" height="267"> + <canvas id="canvas" width="400" height="267"></canvas> + <script> + /* + * Pixastic Lib - Desaturation filter - v0.1.1 + * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/ + * License: [http://www.pixastic.com/lib/license.txt] (MPL 1.1) + */ + + var Pixastic = {}; + Pixastic.Actions = {}; + Pixastic.Actions.desaturate = { + process : function(params) { + var useAverage = !!(params.options.average && params.options.average != "false"); + var data = params.data; + var rect = params.options.rect; + var w = rect.width; + var h = rect.height; + + var p = w*h; + var pix = p*4, pix1, pix2; + + if (useAverage) { + while (p--) + data[pix-=4] = data[pix1=pix+1] = data[pix2=pix+2] = (data[pix]+data[pix1]+data[pix2])/3 + } else { + while (p--) + data[pix-=4] = data[pix1=pix+1] = data[pix2=pix+2] = (data[pix]*0.3 + data[pix1]*0.59 + data[pix2]*0.11); + } + return true; + } + } + + function desaturateTest() { + var results = document.getElementById('blur-result'); + results.innerHTML = "Running test..."; + + window.setTimeout(function() { + var canvas = document.getElementById('canvas'); + var ctx = canvas.getContext('2d'); + var img = document.getElementById('image') + ctx.drawImage(img, 0, 0, img.width, img.height); + + var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); + var width = imgData.width, height = imgData.height; + var data = imgData.data; + + var len = data.length; + var startTime = (new Date()).getTime(); + + var params = { + options: { + rect: { width: width, height: height} + }, + data: imgData.data + } + Pixastic.Actions.desaturate.process(params); + + var finishTime = Date.now() - startTime; + for (var i = 0; i < data.length; i++) { + imgData.data[i] = data[i]; + } + //imgData.data = data; + ctx.putImageData(imgData, 0, 0); + results.innerHTML = "Finished: " + finishTime + "ms"; + }, 10); + } + </script> + <p><input type="button" value="Desaturate Test" onclick="desaturateTest();"> <span id="blur-result"></span></p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/dft.html b/chrome/test/data/third_party/kraken/hosted/explanations/dft.html new file mode 100644 index 0000000..4e46ce9 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/dft.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Discrete Fourier Transform</h2> +<div id="results"> + <p>This benchmark performs a <a href="http://en.wikipedia.org/wiki/Discrete_Fourier_transform">Discrete Fourier Transform</a> on an Audio sample using code from <a href="http://github.com/corbanbrook/dsp.js/">DSP.js</a>.</p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/fft.html b/chrome/test/data/third_party/kraken/hosted/explanations/fft.html new file mode 100644 index 0000000..4dbf17d --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/fft.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Fast Fourier Transform</h2> +<div id="results"> + <p>This benchmark performs a <a href="http://en.wikipedia.org/wiki/Fast_Fourier_transform">Fast Fourier Transform</a> on an Audio sample using code from <a href="http://github.com/corbanbrook/dsp.js/">DSP.js</a>.</p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/gaussian-blur.html b/chrome/test/data/third_party/kraken/hosted/explanations/gaussian-blur.html new file mode 100644 index 0000000..4c73ea4 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/gaussian-blur.html @@ -0,0 +1,139 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Gaussian Blur</h2> +<div id="results"> + <p>This benchmark performs a <a href="http://en.wikipedia.org/wiki/Gaussian_blur">Gaussian blur</a> on a photo.</p> + <p><small>Photo courtesy <a href="http://www.flickr.com/photos/katclay/4296523922/in/photostream/">Kat Clay</a> from Flickr</small>.</p> + <img id="image" src="squid.png" width="400" height="267"> + <canvas id="canvas" width="400" height="267"></canvas> + <script> + var sigma = 10; // radius + var kernel, kernelSize, kernelSum; + buildKernel(); + + try { + // Opera createImageData fix + if (!("createImageData" in CanvasRenderingContext2D.prototype)) { + CanvasRenderingContext2D.prototype.createImageData = function(sw,sh) { return this.getImageData(0,0,sw,sh); } + } + } catch(e) {} + + function buildKernel() { + var ss = sigma * sigma; + var factor = 2 * Math.PI * ss; + kernel = []; + kernel.push([]); + var i = 0, j; + do { + var g = Math.exp(-(i * i) / (2 * ss)) / factor; + if (g < 1e-3) break; + kernel[0].push(g); + ++i; + } while (i < 7); + kernelSize = i; + for (j = 1; j < kernelSize; ++j) { + kernel.push([]); + for (i = 0; i < kernelSize; ++i) { + var g = Math.exp(-(i * i + j * j) / (2 * ss)) / factor; + kernel[j].push(g); + } + } + kernelSum = 0; + for (j = 1 - kernelSize; j < kernelSize; ++j) { + for (i = 1 - kernelSize; i < kernelSize; ++i) { + kernelSum += kernel[Math.abs(j)][Math.abs(i)]; + } + } + } + + function blurTest() { + var results = document.getElementById('blur-result'); + results.innerHTML = "Running test..."; + + window.setTimeout(function() { + var canvas = document.getElementById('canvas'); + var ctx = canvas.getContext('2d'); + var img = document.getElementById('image') + ctx.drawImage(img, 0, 0, img.width, img.height); + + var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); + var width = imgData.width, height = imgData.height; + var data = imgData.data; + + var len = data.length; + var startTime = (new Date()).getTime(); + + for (var y = 0; y < height; ++y) { + for (var x = 0; x < width; ++x) { + var r = 0, g = 0, b = 0, a = 0; + for (j = 1 - kernelSize; j < kernelSize; ++j) { + if (y + j < 0 || y + j >= height) continue; + for (i = 1 - kernelSize; i < kernelSize; ++i) { + if (x + i < 0 || x + i >= width) continue; + r += data[4 * ((y + j) * width + (x + i)) + 0] * kernel[Math.abs(j)][Math.abs(i)]; + g += data[4 * ((y + j) * width + (x + i)) + 1] * kernel[Math.abs(j)][Math.abs(i)]; + b += data[4 * ((y + j) * width + (x + i)) + 2] * kernel[Math.abs(j)][Math.abs(i)]; + a += data[4 * ((y + j) * width + (x + i)) + 3] * kernel[Math.abs(j)][Math.abs(i)]; + } + } + data[4 * (y * width + x) + 0] = r / kernelSum; + data[4 * (y * width + x) + 1] = g / kernelSum; + data[4 * (y * width + x) + 2] = b / kernelSum; + data[4 * (y * width + x) + 3] = a / kernelSum; + } + } + var finishTime = Date.now() - startTime; + for (var i = 0; i < data.length; i++) { + imgData.data[i] = data[i]; + } + //imgData.data = data; + ctx.putImageData(imgData, 0, 0); + results.innerHTML = "Finished: " + finishTime + "ms"; + }, 10); + } + </script> + <p><input type="button" value="Blur Test" onclick="blurTest();"> <span id="blur-result"></span></p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/jquery-1.4.2.min.js b/chrome/test/data/third_party/kraken/hosted/explanations/jquery-1.4.2.min.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/jquery-1.4.2.min.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? +e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= +j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, +"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= +true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| +c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", +L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, +"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ +a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], +d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== +a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& +!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= +true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", +i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", +" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= +this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= +e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= +null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, +"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= +a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, +isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= +{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; +if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& +!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, +toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, +u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), +function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; +if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; +for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- +1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, +CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, +relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= +l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; +h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= +m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| +!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= +h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, +gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; +c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? +a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& +this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| +u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== +1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); +this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], +"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, +animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= +j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); +this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| +c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? +function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= +this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; +k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& +f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/jquery-ui-1.8.2.custom.css b/chrome/test/data/third_party/kraken/hosted/explanations/jquery-ui-1.8.2.custom.css new file mode 100644 index 0000000..00628d3 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/jquery-ui-1.8.2.custom.css @@ -0,0 +1,489 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* +* jQuery UI CSS Framework +* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } +.ui-widget-content a { color: #333333; } +.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; } +.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } +.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable +----------------------------------*/ +.ui-selectable-helper { border:1px dotted black } +/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +/* IE7-/Win - Fix extra vertical space in lists */ +.ui-accordion a { zoom: 1; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete +----------------------------------*/ +.ui-autocomplete { position: absolute; cursor: default; } +.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* Menu +----------------------------------*/ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* Button +----------------------------------*/ + +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + + + + +/* Dialog +----------------------------------*/ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/jquery-ui-1.8.2.custom.min.js b/chrome/test/data/third_party/kraken/hosted/explanations/jquery-ui-1.8.2.custom.min.js new file mode 100644 index 0000000..c11e844 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/jquery-ui-1.8.2.custom.min.js @@ -0,0 +1,1012 @@ +/*! + * jQuery UI 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +(function(c){c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.2",plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")== +"hidden")return false;b=b&&b=="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,f,g){return c.ui.isOverAxis(a,d,f)&&c.ui.isOverAxis(b,e,g)},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108, +NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect", +"none")},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x", +1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==undefined)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b=="absolute"||b=="relative"||b=="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");return(/input|select|textarea|button|object/.test(b)? +!a.disabled:"a"==b||"area"==b?a.href||!isNaN(d):!isNaN(d))&&!c(a)["area"==b?"parents":"closest"](":hidden").length},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Widget + */ +(function(b){var j=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add(this).each(function(){b(this).triggerHandler("remove")});return j.call(b(this),a,c)})};b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend({},c.options);b[e][a].prototype= +b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==undefined){h=i;return false}}):this.each(function(){var g= +b.data(this,a);if(g){d&&g.option(d);g._init()}else b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){this.element=b(c).data(this.widgetName,this);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create(); +this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===undefined)return this.options[a];d={};d[a]=c}b.each(d,function(f, +h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a= +b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/*! + * jQuery UI Mouse 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&& +this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault(); +return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&& +this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX- +a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var m=/left|center|right/,n=/top|center|bottom/,p=c.fn.position,q=c.fn.offset;c.fn.position=function(a){if(!a||!a.of)return p.apply(this,arguments);a=c.extend({},a);var b=c(a.of),d=(a.collision||"flip").split(" "),e=a.offset?a.offset.split(" "):[0,0],g,h,i;if(a.of.nodeType===9){g=b.width();h=b.height();i={top:0,left:0}}else if(a.of.scrollTo&&a.of.document){g=b.width();h=b.height();i={top:b.scrollTop(),left:b.scrollLeft()}}else if(a.of.preventDefault){a.at="left top";g=h= +0;i={top:a.of.pageY,left:a.of.pageX}}else{g=b.outerWidth();h=b.outerHeight();i=b.offset()}c.each(["my","at"],function(){var f=(a[this]||"").split(" ");if(f.length===1)f=m.test(f[0])?f.concat(["center"]):n.test(f[0])?["center"].concat(f):["center","center"];f[0]=m.test(f[0])?f[0]:"center";f[1]=n.test(f[1])?f[1]:"center";a[this]=f});if(d.length===1)d[1]=d[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(a.at[0]==="right")i.left+=g;else if(a.at[0]==="center")i.left+= +g/2;if(a.at[1]==="bottom")i.top+=h;else if(a.at[1]==="center")i.top+=h/2;i.left+=e[0];i.top+=e[1];return this.each(function(){var f=c(this),k=f.outerWidth(),l=f.outerHeight(),j=c.extend({},i);if(a.my[0]==="right")j.left-=k;else if(a.my[0]==="center")j.left-=k/2;if(a.my[1]==="bottom")j.top-=l;else if(a.my[1]==="center")j.top-=l/2;j.left=parseInt(j.left);j.top=parseInt(j.top);c.each(["left","top"],function(o,r){c.ui.position[d[o]]&&c.ui.position[d[o]][r](j,{targetWidth:g,targetHeight:h,elemWidth:k, +elemHeight:l,offset:e,my:a.my,at:a.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(j,{using:a.using}))})};c.ui.position={fit:{left:function(a,b){var d=c(window);b=a.left+b.elemWidth-d.width()-d.scrollLeft();a.left=b>0?a.left-b:Math.max(0,a.left)},top:function(a,b){var d=c(window);b=a.top+b.elemHeight-d.height()-d.scrollTop();a.top=b>0?a.top-b:Math.max(0,a.top)}},flip:{left:function(a,b){if(b.at[0]!=="center"){var d=c(window);d=a.left+b.elemWidth-d.width()-d.scrollLeft();var e=b.my[0]==="left"? +-b.elemWidth:b.my[0]==="right"?b.elemWidth:0,g=-2*b.offset[0];a.left+=a.left<0?e+b.targetWidth+g:d>0?e-b.targetWidth+g:0}},top:function(a,b){if(b.at[1]!=="center"){var d=c(window);d=a.top+b.elemHeight-d.height()-d.scrollTop();var e=b.my[1]==="top"?-b.elemHeight:b.my[1]==="bottom"?b.elemHeight:0,g=b.at[1]==="top"?b.targetHeight:-b.targetHeight,h=-2*b.offset[1];a.top+=a.top<0?e+b.targetHeight+h:d>0?e+g+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(a,b){if(/static/.test(c.curCSS(a,"position")))a.style.position= +"relative";var d=c(a),e=d.offset(),g=parseInt(c.curCSS(a,"top",true),10)||0,h=parseInt(c.curCSS(a,"left",true),10)||0;e={top:b.top-e.top+g,left:b.left-e.left+h};"using"in b?b.using.call(a,e):d.css(e)};c.fn.offset=function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(){c.offset.setOffset(this,a)});return q.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); +d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element, +b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== +"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&& +a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"), +10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft(): +f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+ +this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+ +Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left- +this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs= +this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.2"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable"); +if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper; +c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver= +1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left; +this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper= +this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a= +d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options; +if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!= +"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX- +b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()- +c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this, +width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&& +o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t= +p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&& +(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"), +10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery); +;/* + * jQuery UI Droppable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Droppables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.mouse.js + * jquery.ui.draggable.js + */ +(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this); +a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&& +this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass); +this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g= +d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop", +a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.2"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height; +switch(c){case "fit":return i<e&&g<k&&j<f&&h<l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=i&& +e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!= +"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem|| +a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e= +d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery); +;/* + * jQuery UI Resizable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.resizable",d.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");d.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element, +_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&d.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(d('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!d(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var e=0;e<c.length;e++){var g=d.trim(c[e]),f=d('<div class="ui-resizable-handle '+("ui-resizable-"+g)+'"></div>');/sw|se|ne|nw/.test(g)&&f.css({zIndex:++a.zIndex});"se"==g&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[g]=".ui-resizable-"+g;this.element.append(f)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=d(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=d(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}d(this.handles[i])}};this._renderAxis(this.element);this._handles=d(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();d(this.element).addClass("ui-resizable-autohide").hover(function(){d(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){d(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){d(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(d(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +e=this.element;this.resizing=true;this.documentScroll={top:d(document).scrollTop(),left:d(document).scrollLeft()};if(e.is(".ui-draggable")||/absolute/.test(e.css("position")))e.css({position:"absolute",top:c.top,left:c.left});d.browser.opera&&/relative/.test(e.css("position"))&&e.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var g=m(this.helper.css("top"));if(a.containment){c+=d(a.containment).scrollLeft()||0;g+=d(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:g};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:c,top:g};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=d(".ui-resizable-"+this.axis).css("cursor");d("body").css("cursor",a=="auto"?this.axis+"-resize":a);e.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,e=this._change[this.axis];if(!e)return false;c=e.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var e=this._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName);e=g&&d.ui.hasScroll(e[0],"left")?0:c.sizeDiff.height; +g={width:c.size.width-(g?0:c.sizeDiff.width),height:c.size.height-e};e=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var f=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(d.extend(g,{top:f,left:e}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}d("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", +b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(k(b.left))this.position.left=b.left;if(k(b.top))this.position.top=b.top;if(k(b.height))this.size.height=b.height;if(k(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,e=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(e=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(e=="nw"){b.top= +a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,e=k(b.width)&&a.maxWidth&&a.maxWidth<b.width,g=k(b.height)&&a.maxHeight&&a.maxHeight<b.height,f=k(b.width)&&a.minWidth&&a.minWidth>b.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(f)b.width=a.minWidth;if(h)b.height=a.minHeight;if(e)b.width=a.maxWidth;if(g)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, +l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(f&&l)b.left=i-a.minWidth;if(e&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(g&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var e=[c.css("borderTopWidth"), +c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],g=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=d.map(e,function(f,h){f=parseInt(f,10)||0;h=parseInt(g[h],10)||0;return f+h})}d.browser.msie&&(d(b).is(":hidden")||d(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset= +this.element.offset();if(this._helper){this.helper=this.helper||d('<div style="overflow:hidden;"></div>');var a=d.browser.msie&&d.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ +a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return d.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return d.extend(this._change.n.apply(this, +arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return d.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){d.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});d.extend(d.ui.resizable, +{version:"1.8.2"});d.ui.plugin.add("resizable","alsoResize",{start:function(){var b=d(this).data("resizable").options,a=function(c){d(c).each(function(){d(this).data("resizable-alsoresize",{width:parseInt(d(this).width(),10),height:parseInt(d(this).height(),10),left:parseInt(d(this).css("left"),10),top:parseInt(d(this).css("top"),10)})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else d.each(b.alsoResize,function(c){a(c)}); +else a(b.alsoResize)},resize:function(){var b=d(this).data("resizable"),a=b.options,c=b.originalSize,e=b.originalPosition,g={height:b.size.height-c.height||0,width:b.size.width-c.width||0,top:b.position.top-e.top||0,left:b.position.left-e.left||0},f=function(h,i){d(h).each(function(){var j=d(this),l=d(this).data("resizable-alsoresize"),p={};d.each((i&&i.length?i:["width","height","top","left"])||["width","height","top","left"],function(n,o){if((n=(l[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(/relative/.test(j.css("position"))&& +d.browser.opera){b._revertToRelativePosition=true;j.css({position:"absolute",top:"auto",left:"auto"})}j.css(p)})};typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?d.each(a.alsoResize,function(h,i){f(h,i)}):f(a.alsoResize)},stop:function(){var b=d(this).data("resizable");if(b._revertToRelativePosition&&d.browser.opera){b._revertToRelativePosition=false;el.css({position:"relative"})}d(this).removeData("resizable-alsoresize-start")}});d.ui.plugin.add("resizable","animate",{stop:function(b){var a= +d(this).data("resizable"),c=a.options,e=a._proportionallyResizeElements,g=e.length&&/textarea/i.test(e[0].nodeName),f=g&&d.ui.hasScroll(e[0],"left")?0:a.sizeDiff.height;g={width:a.size.width-(g?0:a.sizeDiff.width),height:a.size.height-f};f=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(d.extend(g,h&&f?{top:h,left:f}:{}),{duration:c.animateDuration,easing:c.animateEasing, +step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};e&&e.length&&d(e[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});d.ui.plugin.add("resizable","containment",{start:function(){var b=d(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof d?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= +d(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:d(document),left:0,top:0,width:d(document).width(),height:d(document).height()||document.body.parentNode.scrollHeight}}else{var e=d(a),g=[];d(["Top","Right","Left","Bottom"]).each(function(i,j){g[i]=m(e.css("padding"+j))});b.containerOffset=e.offset();b.containerPosition=e.position();b.containerSize={height:e.innerHeight()-g[3],width:e.innerWidth()-g[1]};c=b.containerOffset; +var f=b.containerSize.height,h=b.containerSize.width;h=d.ui.hasScroll(a,"left")?a.scrollWidth:h;f=d.ui.hasScroll(a)?a.scrollHeight:f;b.parentData={element:a,left:c.left,top:c.top,width:h,height:f}}}},resize:function(b){var a=d(this).data("resizable"),c=a.options,e=a.containerOffset,g=a.position;b=a._aspectRatio||b.shiftKey;var f={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))f=e;if(g.left<(a._helper?e.left:0)){a.size.width+=a._helper?a.position.left-e.left: +a.position.left-f.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?e.left:0}if(g.top<(a._helper?e.top:0)){a.size.height+=a._helper?a.position.top-e.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?e.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-f.left:a.offset.left-f.left)+a.sizeDiff.width);e=Math.abs((a._helper?a.offset.top-f.top:a.offset.top- +e.top)+a.sizeDiff.height);g=a.containerElement.get(0)==a.element.parent().get(0);f=/relative|absolute/.test(a.containerElement.css("position"));if(g&&f)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(e+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-e;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=d(this).data("resizable"),a=b.options,c=b.containerOffset,e=b.containerPosition, +g=b.containerElement,f=d(b.helper),h=f.offset(),i=f.outerWidth()-b.sizeDiff.width;f=f.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f});b._helper&&!a.animate&&/static/.test(g.css("position"))&&d(this).css({left:h.left-e.left-c.left,width:i,height:f})}});d.ui.plugin.add("resizable","ghost",{start:function(){var b=d(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, +display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=d(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=d(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});d.ui.plugin.add("resizable","grid",{resize:function(){var b= +d(this).data("resizable"),a=b.options,c=b.size,e=b.originalSize,g=b.originalPosition,f=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-e.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-e.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a}else if(/^(ne)$/.test(f)){b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}else{if(/^(sw)$/.test(f)){b.size.width=e.width+h;b.size.height= +e.height+a}else{b.size.width=e.width+h;b.size.height=e.height+a;b.position.top=g.top-a}b.position.left=g.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +; +/* + * jQuery UI Selectable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function($) { + +$.widget("ui.selectable", $.ui.mouse, { + options: { + appendTo: 'body', + autoRefresh: true, + distance: 0, + filter: '*', + tolerance: 'touch' + }, + _create: function() { + var self = this; + + this.element.addClass("ui-selectable"); + + this.dragged = false; + + // cache selectee children based on filter + var selectees; + this.refresh = function() { + selectees = $(self.options.filter, self.element[0]); + selectees.each(function() { + var $this = $(this); + var pos = $this.offset(); + $.data(this, "selectable-item", { + element: this, + $element: $this, + left: pos.left, + top: pos.top, + right: pos.left + $this.outerWidth(), + bottom: pos.top + $this.outerHeight(), + startselected: false, + selected: $this.hasClass('ui-selected'), + selecting: $this.hasClass('ui-selecting'), + unselecting: $this.hasClass('ui-unselecting') + }); + }); + }; + this.refresh(); + + this.selectees = selectees.addClass("ui-selectee"); + + this._mouseInit(); + + this.helper = $("<div class='ui-selectable-helper'></div>"); + }, + + destroy: function() { + this.selectees + .removeClass("ui-selectee") + .removeData("selectable-item"); + this.element + .removeClass("ui-selectable ui-selectable-disabled") + .removeData("selectable") + .unbind(".selectable"); + this._mouseDestroy(); + + return this; + }, + + _mouseStart: function(event) { + var self = this; + + this.opos = [event.pageX, event.pageY]; + + if (this.options.disabled) + return; + + var options = this.options; + + this.selectees = $(options.filter, this.element[0]); + + this._trigger("start", event); + + $(options.appendTo).append(this.helper); + // position helper (lasso) + this.helper.css({ + "z-index": 100, + "position": "absolute", + "left": event.clientX, + "top": event.clientY, + "width": 0, + "height": 0 + }); + + if (options.autoRefresh) { + this.refresh(); + } + + this.selectees.filter('.ui-selected').each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.startselected = true; + if (!event.metaKey) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + }); + + $(event.target).parents().andSelf().each(function() { + var selectee = $.data(this, "selectable-item"); + if (selectee) { + var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected'); + selectee.$element + .removeClass(doSelect ? "ui-unselecting" : "ui-selected") + .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); + selectee.unselecting = !doSelect; + selectee.selecting = doSelect; + selectee.selected = doSelect; + // selectable (UN)SELECTING callback + if (doSelect) { + self._trigger("selecting", event, { + selecting: selectee.element + }); + } else { + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + return false; + } + }); + + }, + + _mouseDrag: function(event) { + var self = this; + this.dragged = true; + + if (this.options.disabled) + return; + + var options = this.options; + + var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; + if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; } + if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; } + this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); + + this.selectees.each(function() { + var selectee = $.data(this, "selectable-item"); + //prevent helper from being selected if appendTo: selectable + if (!selectee || selectee.element == self.element[0]) + return; + var hit = false; + if (options.tolerance == 'touch') { + hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); + } else if (options.tolerance == 'fit') { + hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); + } + + if (hit) { + // SELECT + if (selectee.selected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + } + if (selectee.unselecting) { + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + } + if (!selectee.selecting) { + selectee.$element.addClass('ui-selecting'); + selectee.selecting = true; + // selectable SELECTING callback + self._trigger("selecting", event, { + selecting: selectee.element + }); + } + } else { + // UNSELECT + if (selectee.selecting) { + if (event.metaKey && selectee.startselected) { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + selectee.$element.addClass('ui-selected'); + selectee.selected = true; + } else { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + if (selectee.startselected) { + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + } + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + if (selectee.selected) { + if (!event.metaKey && !selectee.startselected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + } + }); + + return false; + }, + + _mouseStop: function(event) { + var self = this; + + this.dragged = false; + + var options = this.options; + + $('.ui-unselecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + selectee.startselected = false; + self._trigger("unselected", event, { + unselected: selectee.element + }); + }); + $('.ui-selecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-selecting').addClass('ui-selected'); + selectee.selecting = false; + selectee.selected = true; + selectee.startselected = true; + self._trigger("selected", event, { + selected: selectee.element + }); + }); + this._trigger("stop", event); + + this.helper.remove(); + + return false; + } + +}); + +$.extend($.ui.selectable, { + version: "1.8.2" +}); + +})(jQuery); +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting"); +b.unselecting=true;f._trigger("unselecting",c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f= +this;this.dragged=true;if(!this.options.disabled){var d=this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected"); +a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting= +true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected= +false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.2"})})(jQuery); +;/* + * jQuery UI Sortable 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Sortables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem= +c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset, +{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment(); +if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+ +this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+ +b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+ +"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a, +c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate", +null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem): +d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c}, +_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/ +2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b= +d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a= +this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)? +h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"), +b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)? +i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement, +c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height= +this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()- +parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0], +this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b= +1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change", +a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]== +this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options; +if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b= +d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width- +this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+ +this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top; +if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f- +this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+ +(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&& +this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]|| +this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update", +g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity", +this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e= +0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.2"})})(jQuery); +;/* + * jQuery UI Accordion 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},_create:function(){var a=this.options,b=this;this.running=0;this.element.addClass("ui-accordion ui-widget ui-helper-reset"); +this.element.children("li").addClass("ui-accordion-li-fix");this.headers=this.element.find(a.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){c(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(a.navigation){var d=this.element.find("a").filter(a.navigationFilter);if(d.length){var f=d.closest(".ui-accordion-header");this.active=f.length?f:d.closest(".ui-accordion-content").prev()}}this.active=this._findActive(this.active||a.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");this._createIcons();this.resize();this.element.attr("role","tablist");this.headers.attr("role", +"tab").bind("keydown",function(g){return b._keydown(g)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();this.active.length?this.active.attr("aria-expanded","true").attr("tabIndex","0"):this.headers.eq(0).attr("tabIndex","0");c.browser.safari||this.headers.find("a").attr("tabIndex","-1");a.event&&this.headers.bind(a.event+".accordion",function(g){b._clickHandler.call(b,g,this);g.preventDefault()})},_createIcons:function(){var a= +this.options;if(a.icons){c("<span/>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion"); +this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(a.autoHeight||a.fillHeight)b.css("height", +"");return this},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();b&&this._createIcons()}},_keydown:function(a){var b=c.ui.keyCode;if(!(this.options.disabled||a.altKey||a.ctrlKey)){var d=this.headers.length,f=this.headers.index(a.target),g=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:g=this.headers[(f+1)%d];break;case b.LEFT:case b.UP:g=this.headers[(f-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target}, +a.target);a.preventDefault()}if(g){c(a.target).attr("tabIndex","-1");c(g).attr("tabIndex","0");g.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0, +b-c(this).innerHeight()+c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a=="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d= +this.options;if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]==this.active[0];d.active=d.collapsible&&b?false:c(".ui-accordion-header",this.element).index(a);if(!(this.running||!d.collapsible&&b)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected); +a.next().addClass("ui-accordion-content-active")}e=a.next();f=this.active.next();g={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):e,oldContent:f};d=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(e,f,g,b,d)}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +this.active.next().addClass("ui-accordion-content-active");var f=this.active.next(),g={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:f},e=this.active=c([]);this._toggle(e,f,g)}},_toggle:function(a,b,d,f,g){var e=this.options,k=this;this.toShow=a;this.toHide=b;this.data=d;var i=function(){if(k)return k._completed.apply(k,arguments)};this._trigger("changestart",null,this.data);this.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&f?{toShow:c([]), +toHide:b,complete:i,down:g,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:i,down:g,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;f=c.ui.accordion.animations;var h=e.duration,j=e.animated;if(j&&!f[j]&&!c.easing[j])j="slide";f[j]||(f[j]=function(l){this.slide(l,{easing:j, +duration:h||700})});f[j](d)}else{if(e.collapsible&&f)a.toggle();else{b.hide();a.show()}i(true)}b.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();a.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(a){var b=this.options;this.running=a?0:--this.running;if(!this.running){b.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion, +{version:"1.8.2",animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),f=0,g={},e={},k;b=a.toShow;k=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(i,h){e[h]="hide";i=(""+c.css(a.toShow[0], +h)).match(/^([\d+-.]+)(.*)$/);g[h]={value:i[1],unit:i[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(e,{step:function(i,h){if(h.prop=="height")f=h.end-h.start===0?0:(h.now-h.start)/(h.end-h.start);a.toShow[0].style[h.prop]=f*g[h.prop].value+g[h.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css("width",k);a.toShow.css({overflow:d});a.complete()}})}else a.toHide.animate({height:"hide"}, +a);else a.toShow.animate({height:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(e){e.widget("ui.autocomplete",{options:{minLength:1,delay:300},_create:function(){var a=this,c=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(d){var b=e.ui.keyCode;switch(d.keyCode){case b.PAGE_UP:a._move("previousPage",d);break;case b.PAGE_DOWN:a._move("nextPage",d);break;case b.UP:a._move("previous",d);d.preventDefault(); +break;case b.DOWN:a._move("next",d);d.preventDefault();break;case b.ENTER:case b.NUMPAD_ENTER:a.menu.active&&d.preventDefault();case b.TAB:if(!a.menu.active)return;a.menu.select(d);break;case b.ESCAPE:a.element.val(a.term);a.close(d);break;case b.LEFT:case b.RIGHT:case b.SHIFT:case b.CONTROL:case b.ALT:case b.COMMAND:case b.COMMAND_RIGHT:case b.INSERT:case b.CAPS_LOCK:case b.END:case b.HOME:break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){a.search(null,d)},a.options.delay); +break}}).bind("focus.autocomplete",function(){a.selectedItem=null;a.previous=a.element.val()}).bind("blur.autocomplete",function(d){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(d);a._change(d)},150)});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("<ul></ul>").addClass("ui-autocomplete").appendTo("body",c).mousedown(function(){setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(d,b){b=b.item.data("item.autocomplete"); +false!==a._trigger("focus",null,{item:b})&&/^key/.test(d.originalEvent.type)&&a.element.val(b.value)},selected:function(d,b){b=b.item.data("item.autocomplete");false!==a._trigger("select",d,{item:b})&&a.element.val(b.value);a.close(d);d=a.previous;if(a.element[0]!==c.activeElement){a.element.focus();a.previous=d}a.selectedItem=b},blur:function(){a.menu.element.is(":visible")&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()}, +destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource()},_initSource:function(){var a,c;if(e.isArray(this.options.source)){a=this.options.source;this.source=function(d,b){b(e.ui.autocomplete.filter(a,d.term))}}else if(typeof this.options.source=== +"string"){c=this.options.source;this.source=function(d,b){e.getJSON(c,d,b)}}else this.source=this.options.source},search:function(a,c){a=a!=null?a:this.element.val();if(a.length<this.options.minLength)return this.close(c);clearTimeout(this.closing);if(this._trigger("search")!==false)return this._search(a)},_search:function(a){this.term=this.element.addClass("ui-autocomplete-loading").val();this.source({term:a},this.response)},_response:function(a){if(a.length){a=this._normalize(a);this._suggest(a); +this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return e.map(a,function(c){if(typeof c==="string")return{label:c,value:c};return e.extend({label:c.label|| +c.value,value:c.value||c.label},c)})},_suggest:function(a){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1),d;this._renderMenu(c,a);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position({my:"left top",at:"left bottom",of:this.element,collision:"none"});a=c.width("").width();d=this.element.width();c.width(Math.max(a,d))},_renderMenu:function(a,c){var d=this;e.each(c,function(b,f){d._renderItem(a,f)})},_renderItem:function(a,c){return e("<li></li>").data("item.autocomplete", +c).append("<a>"+c.label+"</a>").appendTo(a)},_move:function(a,c){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](c);else this.search(null,c)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")},filter:function(a,c){var d=new RegExp(e.ui.autocomplete.escapeRegex(c), +"i");return e.grep(a,function(b){return d.test(b.label||b.value||b)})}})})(jQuery); +(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(e(c.target).closest(".ui-menu-item a").length){c.preventDefault();a.select(c)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(c){a.activate(c,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,c){this.deactivate();if(this.hasScroll()){var d=c.offset().top-this.element.offset().top,b=this.element.attr("scrollTop"),f=this.element.height();if(d<0)this.element.attr("scrollTop",b+d);else d>f&&this.element.attr("scrollTop",b+d-f+c.height())}this.active=c.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:c})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); +this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prev().length},last:function(){return this.active&&!this.active.next().length},move:function(a,c,d){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);a.length?this.activate(d,a):this.activate(d,this.element.children(c))}else this.activate(d,this.element.children(c))},nextPage:function(a){if(this.hasScroll())if(!this.active|| +this.last())this.activate(a,this.element.children(":first"));else{var c=this.active.offset().top,d=this.element.height(),b=this.element.children("li").filter(function(){var f=e(this).offset().top-c-d+e(this).height();return f<10&&f>-10});b.length||(b=this.element.children(":last"));this.activate(a,b)}else this.activate(a,this.element.children(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last")); +else{var c=this.active.offset().top,d=this.element.height();result=this.element.children("li").filter(function(){var b=e(this).offset().top-c+d-e(this).height();return b<10&&b>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery); +;/* + * jQuery UI Button 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Button + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",i);this._determineButtonType(); +this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button", +function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button", +function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button", +function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")? +"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()); +this.hasTitle||this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", +true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"), +c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":""));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon"); +this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");var a=this,b=a.options,d=b.title||a.originalTitle||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), +h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id", +e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); +a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== +b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index", +c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== +f[0]&&e.shiftKey){g.focus(1);return false}}});c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();a._trigger("open");a._isOpen=true;return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a, +function(g,f){g=c('<button type="button"></button>').text(g).click(function(){f.apply(b.element[0],arguments)}).appendTo(e);c.fn.button&&g.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging"); +b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===undefined?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position"); +a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop", +f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0];a=a||c.ui.dialog.prototype.options.position;if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(e,g){if(+b[e]===b[e]){d[e]=b[e];b[e]= +g}})}else if(typeof a==="object"){if("left"in a){b[0]="left";d[0]=a.left}else if("right"in a){b[0]="right";d[0]=-a.right}if("top"in a){b[1]="top";d[1]=a.top}else if("bottom"in a){b[1]="bottom";d[1]=-a.bottom}}(a=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position({my:b.join(" "),at:b.join(" "),offset:d.join(" "),of:window,collision:"fit",using:function(e){var g=c(this).css(e).offset().top;g<0&&c(this).css("top",e.top-g)}});a||this.uiDialog.hide()},_setOption:function(a, +b){var d=this,e=d.uiDialog,g=e.is(":data(resizable)"),f=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case "draggable":b?d._makeDraggable():e.draggable("destroy");break; +case "height":f=true;break;case "maxHeight":g&&e.resizable("option","maxHeight",b);f=true;break;case "maxWidth":g&&e.resizable("option","maxWidth",b);f=true;break;case "minHeight":g&&e.resizable("option","minHeight",b);f=true;break;case "minWidth":g&&e.resizable("option","minWidth",b);f=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title", +d.uiDialogTitlebar).html(""+(b||" "));break;case "width":f=true;break}c.Widget.prototype._setOption.apply(d,arguments);f&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:"auto"}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight", +this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.2",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&& +c(document).bind(c.ui.dialog.overlay.events,function(d){return c(d.target).zIndex()>=c.ui.dialog.overlay.maxZ})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&& +b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight, +document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0, +height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery); +;/* + * jQuery UI Slider 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");b.disabled&&this.element.addClass("ui-slider-disabled ui-disabled"); +this.range=d([]);if(b.range){if(b.range===true){this.range=d("<div></div>");if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(b.range==="min"||b.range==="max")this.range.addClass("ui-slider-range-"+b.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle"); +if(b.values&&b.values.length)for(;d(".ui-slider-handle",this.element).length<b.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur(); +else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),g,h,i;if(!a.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= +false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");g=a._start(c,f);if(g===false)return}break}i=a.options.step;g=a.options.values&&a.options.values.length?(h=a.values(f)):(h=a.value());switch(c.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(g+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(g-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(g=== +a._valueMax())return;h=a._trimAlignValue(g+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(g===a._valueMin())return;h=a._trimAlignValue(g-i);break}a._slide(c,f,h);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(c,e);a._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(a){var b=this.options,c,e,f,g,h,i;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c={x:a.pageX,y:a.pageY};e=this._normValueFromMouse(c);f=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(j){var k=Math.abs(e-h.values(j));if(f>k){f=k;g=d(this);i=j}});if(b.range===true&&this.values(1)===b.min){i+=1;g=d(this.handles[i])}if(this._start(a, +i)===false)return false;this._mouseSliding=true;h._handleIndex=i;g.addClass("ui-state-active").focus();b=g.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-g.width()/2,top:a.pageY-b.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)};e=this._normValueFromMouse(c);this._slide(a,i,e);return this._animateOff=true},_mouseStart:function(){return true}, +_mouseDrag:function(a){var b=this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b; +if(this.orientation==="horizontal"){b=this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value= +this.values(b);c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var e;if(this.options.values&&this.options.values.length){e=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>e||b===1&&c<e))c=e;if(c!==this.values(b)){e=this.values();e[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b], +value:c});a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value= +this._trimAlignValue(a);this._refreshValue();this._change(null,0)}return this._value()},values:function(a,b){var c,e,f;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):this.value(); +else return this._values()},_setOption:function(a,b){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation(); +this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a]; +return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<this._valueMin())return this._valueMin();if(a>this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=a%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,e=!this._animateOff?b.animate:false,f,g={},h,i,j,k;if(this.options.values&&this.options.values.length)this.handles.each(function(l){f=(c.values(l)-c._valueMin())/(c._valueMax()-c._valueMin())*100;g[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](g,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(l===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},b.animate);if(l===1)c.range[e?"animate":"css"]({width:f- +h+"%"},{queue:false,duration:b.animate})}else{if(l===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},b.animate);if(l===1)c.range[e?"animate":"css"]({height:f-h+"%"},{queue:false,duration:b.animate})}h=f});else{i=this.value();j=this._valueMin();k=this._valueMax();f=k!==j?(i-j)/(k-j)*100:0;g[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](g,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.2"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d){function s(){return++u}function v(){return++w}var u=0,w=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'},_create:function(){this._tabify(true)},_setOption:function(c,e){if(c=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[c]=e;this._tabify()}},_tabId:function(c){return c.title&&c.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+s()},_sanitizeSelector:function(c){return c.replace(/:/g,"\\:")},_cookie:function(){var c=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+v());return d.cookie.apply(null,[c].concat(d.makeArray(arguments)))},_ui:function(c,e){return{tab:c,panel:e,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var c= +d(this);c.html(c.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function e(g,f){g.css({display:""});!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}this.list=this.element.find("ol,ul").eq(0);this.lis=d("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);var a=this,b=this.options,h=/^#.+/;this.anchors.each(function(g,f){var j=d(f).attr("href"),l=j.split("#")[0],p;if(l&&(l===location.toString().split("#")[0]|| +(p=d("base")[0])&&l===p.href)){j=f.hash;f.href=j}if(h.test(j))a.panels=a.panels.add(a._sanitizeSelector(j));else if(j!="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=a._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(b.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else b.disabled.push(g)});if(c){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(b.selected===undefined){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){b.selected=g;return false}});if(typeof b.selected!="number"&&b.cookie)b.selected=parseInt(a._cookie(),10);if(typeof b.selected!="number"&&this.lis.filter(".ui-tabs-selected").length)b.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));b.selected=b.selected||(this.lis.length?0:-1)}else if(b.selected===null)b.selected=-1;b.selected=b.selected>=0&&this.anchors[b.selected]||b.selected<0?b.selected:0;b.disabled=d.unique(b.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(b.selected,b.disabled)!=-1&&b.disabled.splice(d.inArray(b.selected,b.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(b.selected>=0&&this.anchors.length){this.panels.eq(b.selected).removeClass("ui-tabs-hide");this.lis.eq(b.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[b.selected],a.panels[b.selected]))});this.load(b.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else b.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[b.collapsible?"addClass": +"removeClass"]("ui-tabs-collapsible");b.cookie&&this._cookie(b.selected,b.cookie);c=0;for(var i;i=this.lis[c];c++)d(i)[d.inArray(c,b.disabled)!=-1&&!d(i).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");b.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(b.event!="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs", +function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(b.fx)if(d.isArray(b.fx)){m=b.fx[0];o=b.fx[1]}else m=o=b.fx;var q=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);a._trigger("show", +null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},r=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};this.anchors.bind(b.event+".tabs", +function(){var g=this,f=d(this).closest("li"),j=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(this.hash));if(f.hasClass("ui-tabs-selected")&&!b.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}b.selected=a.anchors.index(this);a.abort();if(b.collapsible)if(f.hasClass("ui-tabs-selected")){b.selected=-1;b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){r(g, +j)}).dequeue("tabs");this.blur();return false}else if(!j.length){b.cookie&&a._cookie(b.selected,b.cookie);a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this));this.blur();return false}b.cookie&&a._cookie(b.selected,b.cookie);if(l.length){j.length&&a.element.queue("tabs",function(){r(g,j)});a.element.queue("tabs",function(){q(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs", +function(){return false})},destroy:function(){var c=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(b,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this, +"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});c.cookie&&this._cookie(null,c.cookie);return this},add:function(c,e,a){if(a===undefined)a=this.anchors.length;var b=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,e));c=!c.indexOf("#")?c.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", +true);var i=d("#"+c);i.length||(i=d(h.panelTemplate).attr("id",c).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);i.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");i.removeClass("ui-tabs-hide"); +this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(c){var e=this.options,a=this.lis.eq(c).remove(),b=this.panels.eq(c).remove();if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(c+(c+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=c}),function(h){return h>=c?--h:h});this._tabify();this._trigger("remove", +null,this._ui(a.find("a")[0],b[0]));return this},enable:function(c){var e=this.options;if(d.inArray(c,e.disabled)!=-1){this.lis.eq(c).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=c});this._trigger("enable",null,this._ui(this.anchors[c],this.panels[c]));return this}},disable:function(c){var e=this.options;if(c!=e.selected){this.lis.eq(c).addClass("ui-state-disabled");e.disabled.push(c);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}return this}, +select:function(c){if(typeof c=="string")c=this.anchors.index(this.anchors.filter("[href$="+c+"]"));else if(c===null)c=-1;if(c==-1&&this.options.collapsible)c=this.options.selected;this.anchors.eq(c).trigger(this.options.event+".tabs");return this},load:function(c){var e=this,a=this.options,b=this.anchors.eq(c)[0],h=d.data(b,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(b,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(c).addClass("ui-state-processing"); +if(a.spinner){var i=d("span",b);i.data("label.tabs",i.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(b.hash)).html(k);e._cleanup();a.cache&&d.data(b,"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[c],e.panels[c]));try{a.ajaxOptions.error(k,n,c,b)}catch(m){}}}));e.element.dequeue("tabs");return this}}, +abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(c,e){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.2"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(c,e){var a=this,b=this.options,h=a._rotate||(a._rotate= +function(i){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=b.selected;a.select(++k<a.anchors.length?k:0)},c);i&&i.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(i){i.clientX&&a.rotate(null)}:function(){t=b.selected;h()});if(c){this.element.bind("tabsshow",h);this.anchors.bind(b.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(b.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery); +;/* + * jQuery UI Datepicker 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Datepicker + * + * Depends: + * jquery.ui.core.js + */ +(function(d){function J(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= +"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", +"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}function E(a,b){d.extend(a, +b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.2"}});var y=(new Date).getTime();d.extend(J.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]= +f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}}, +_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& +b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f== +""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, +c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), +true);this._updateDatepicker(b);this._updateAlternate(b)}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});b=b&&b.constructor== +Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]); +d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}}, +_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b= +d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false; +for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&& +this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&& +!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass,b.dpDiv).add(d("td."+d.datepicker._currentClass,b.dpDiv));c[0]?d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker(); +return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey|| +a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target, +a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat")); +var c=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target|| +a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a); +d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&& +d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=d.datepicker._getBorders(b.dpDiv);b.dpDiv.find("iframe.ui-datepicker-cover").css({left:-i[0],top:-i[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f, +h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover"); +this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover"); +this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);var e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); +a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus()},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(), +k=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>k&&k>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"]; +a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val(): +"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&& +!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth; +b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){a=this._getInst(d(a)[0]); +a.input&&a._selectingMonthYear&&!d.browser.msie&&a.input.focus();a._selectingMonthYear=!a._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a, +"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")|| +this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null; +for(var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff,f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,k=c=-1,l=-1,u=-1,j=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+ +s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,w,G){p=o(p)?G:w;for(w=0;w<p.length;w++)if(b.substr(s,p[w].length)==p[w]){s+=p[w].length;return w+1}throw"Unknown name at position "+s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(j)if(a.charAt(z)=="'"&&!o("'"))j=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":k=m("m");break;case "M":k=n("M",i,g);break; +case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();k=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();k=v.getMonth()+1;l=v.getDate();break;case "'":if(o("'"))r();else j=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){k=1;l=u;do{e=this._getDaysInMonth(c,k-1);if(l<=e)break;k++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c, +k-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=k||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c? +c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=j+1<a.length&&a.charAt(j+1)==o)&&j++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},k=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var j=0;j<a.length;j++)if(u)if(a.charAt(j)=="'"&&!i("'"))u=false;else l+=a.charAt(j);else switch(a.charAt(j)){case "d":l+=g("d",b.getDate(),2);break; +case "D":l+=k("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=k("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(j)}return l},_possibleChars:function(a){for(var b="",c=false, +e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"), +e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))}, +_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,k=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,j=u.exec(h);j;){switch(j[2]||"d"){case "d":case "D":g+=parseInt(j[1],10);break;case "w":case "W":g+=parseInt(j[1], +10)*7;break;case "m":case "M":l+=parseInt(j[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(k,l));break;case "y":case "Y":k+=parseInt(j[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(k,l));break}j=u.exec(h)}return new Date(k,l,g)};if(b=(b=b==null?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):b)&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null; +a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear|| +a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),k=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? +new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),j=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=j&&n<j?j:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-k,1)),this._getFormatConfig(a)); +n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+k+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m, +g+k,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+k+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";k=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&& +a.currentDay?u:b;k=!h?k:this.formatDate(k,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+ +y+".datepicker._gotoToday('#"+a.id+"');\">"+k+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;k=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),w=this._get(a,"showOtherMonths"),G=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var K=this._getDefaultDate(a),H="",C=0;C<i[0];C++){for(var L= +"",D=0;D<i[1];D++){var M=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c? +f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,j,o,C>0||D>0,z,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=k?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, +A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var N=0;N<A;N++){x+="<tr>";var O=!k?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,I=B&&!G||!F[0]||j&&q<j||o&&q>o;O+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==M.getTime()&&g==a.selectedMonth&& +a._keyEvent||K.getTime()==q.getTime()&&K.getTime()==M.getTime()?" "+this._dayOverClass:"")+(I?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!w?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!B||w)&&F[2]?' title="'+F[2]+'"':"")+(I?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!w?" ":I?'<span class="ui-state-default">'+q.getDate()+ +"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=O+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");L+=x}H+=L}H+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>': +"");a._keyEvent=false;return H},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var k=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),j='<div class="ui-datepicker-title">',o="";if(h||!k)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+ +a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(j+=o+(h||!(k&&l)?" ":""));if(h||!l)j+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b, +i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(j+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)j+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";j+="</select>"}j+=this._get(a,"yearSuffix");if(u)j+=(h||!(k&&l)?" ":"")+o;j+="</div>";return j},_adjustInstDate:function(a,b,c){var e= +a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a, +"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); +c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= +function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b)); +return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new J;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.2";window["DP_jQuery_"+y]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b){b.widget("ui.progressbar",{options:{value:0},_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===undefined)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){switch(a){case "value":this.options.value=c;this._refreshValue();this._trigger("change");break}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;if(a<this._valueMin())a=this._valueMin();if(a>this._valueMax())a=this._valueMax();return a}, +_valueMin:function(){return 0},_valueMax:function(){return 100},_refreshValue:function(){var a=this.value();this.valueDiv[a===this._valueMax()?"addClass":"removeClass"]("ui-corner-right").width(a+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.2"})})(jQuery); +;/* + * jQuery UI Effects 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f){function k(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return l.transparent;return l[f.trim(c).toLowerCase()]}function q(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return k(b)}function m(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function n(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in r||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function s(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function j(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(f.isFunction(b)){d=b;b=null}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:f.fx.speeds[b]||f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=q(b.elem,a);b.end=k(b.end);b.colorInit= +true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var l={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189, +183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255, +165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},o=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.each(function(){var e=f(this),g=e.attr("style")||" ",h=n(m.call(this)),p,t=e.attr("className");f.each(o,function(u, +i){c[i]&&e[i+"Class"](c[i])});p=n(m.call(this));e.attr("className",t);e.animate(s(h,p),a,b,function(){f.each(o,function(u,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)})})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a? +f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===undefined?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.2",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!== +null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent(); +var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"}); +c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=j.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c|| +typeof c=="number"||f.fx.speeds[c])return this._show.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c])return this._hide.apply(this,arguments);else{var a=j.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||typeof c=="boolean"||f.isFunction(c))return this.__toggle.apply(this, +arguments);else{var a=j.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c, +a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+ +b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2, +10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)* +a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c, +a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==undefined)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==undefined)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c, +a,b,d,e,g){if(g==undefined)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0, +d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery); +;/* + * jQuery UI Effects Blind 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","left"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,g);b.effects.removeWrapper(a); +c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Bounce 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * jquery.effects.core.js + */ +(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","left"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/ +3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a); +b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Clip 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","left","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,c/2)}var h={};h[g.size]= +f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Drop 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","left","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e=="show"?1: +0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Explode 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f= +0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100* +f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration, +a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Scale 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a, +b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity= +1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","left","width","height","overflow","opacity"],g=["position","top","left","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=c.effects.setMode(a, +b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};if(m=="box"||m=="both"){if(d.from.y!= +d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);a.css("overflow","hidden").css(a.from); +if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);child.to=c.effects.setTransition(child, +f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,n?e:g);c.effects.removeWrapper(a);b.callback&& +b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Shake 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","left"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=(h=="pos"?"-=":"+=")+ +e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery); +;/* + * jQuery UI Effects Slide 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","left"],e=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(e=="show")a.css(f,b=="pos"?-g:g);var i={};i[f]=(e=="show"?b=="pos"? +"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Transfer 1.8.2 + * + * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * jquery.effects.core.js + */ +(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +;
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/oscillator.html b/chrome/test/data/third_party/kraken/hosted/explanations/oscillator.html new file mode 100644 index 0000000..59ca3e8 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/oscillator.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: Gaussian Blur</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: Oscillator</h2> +<div id="results"> + <p>This benchmark generates a soundwave using code from <a href="http://github.com/corbanbrook/dsp.js/">DSP.js</a>.</p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/parse-financial.html b/chrome/test/data/third_party/kraken/hosted/explanations/parse-financial.html new file mode 100644 index 0000000..83f987d --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/parse-financial.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: JSON Parse - Financial</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: JSON Parse - Financial</h2> +<div id="results"> + <p>This benchmark parses <a href="http://www.json.org">JSON</a> records.</p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/squid.png b/chrome/test/data/third_party/kraken/hosted/explanations/squid.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/squid.png diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/stringify-tinderbox.html b/chrome/test/data/third_party/kraken/hosted/explanations/stringify-tinderbox.html new file mode 100644 index 0000000..150fcfc --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/stringify-tinderbox.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark: JSON Stringify - Tinderbox</title> +<link rel="stylesheet" href="../kraken.css"> +<script> + +</script> +<style> #display { border: 5px solid rgb(0,0,50);}</style> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark: JSON Stringify - Tinderbox</h2> +<div id="results"> + <p>This benchmark serializes <a href="http://tests.themasta.com/tinderboxpushlog/?tree=Firefox">Tinderbox</a> build data to <a href="http://www.json.org">JSON</a>.</p> +</div> +</div> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/hosted/explanations/sunspots.jpg b/chrome/test/data/third_party/kraken/hosted/explanations/sunspots.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/explanations/sunspots.jpg diff --git a/chrome/test/data/third_party/kraken/hosted/index.html b/chrome/test/data/third_party/kraken/hosted/index.html new file mode 100644 index 0000000..3d308db --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/index.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark (version 1.1)</title> +<link rel="stylesheet" href="kraken.css"> +</head> + +<body> +<div id="content"> + <h2>Kraken JavaScript Benchmark (version 1.1)</h2> + <div id="results"> + <p><a href="kraken-1.1/driver.html">Begin</a> <small>(This will start a rather big download)</small></p> + <p></p> + </div> +</div> +</body> +</html> diff --git a/chrome/test/data/third_party/kraken/hosted/json2.js b/chrome/test/data/third_party/kraken/hosted/json2.js new file mode 100644 index 0000000..39d8f37 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/json2.js @@ -0,0 +1,481 @@ +/* + http://www.JSON.org/json2.js + 2009-09-29 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + This code should be minified before deployment. + See http://javascript.crockford.com/jsmin.html + + USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO + NOT CONTROL. + + + This file creates a global JSON object containing two methods: stringify + and parse. + + JSON.stringify(value, replacer, space) + value any JavaScript value, usually an object or array. + + replacer an optional parameter that determines how object + values are stringified for objects. It can be a + function or an array of strings. + + space an optional parameter that specifies the indentation + of nested structures. If it is omitted, the text will + be packed without extra whitespace. If it is a number, + it will specify the number of spaces to indent at each + level. If it is a string (such as '\t' or ' '), + it contains the characters used to indent at each level. + + This method produces a JSON text from a JavaScript value. + + When an object value is found, if the object contains a toJSON + method, its toJSON method will be called and the result will be + stringified. A toJSON method does not serialize: it returns the + value represented by the name/value pair that should be serialized, + or undefined if nothing should be serialized. The toJSON method + will be passed the key associated with the value, and this will be + bound to the value + + For example, this would serialize Dates as ISO strings. + + Date.prototype.toJSON = function (key) { + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + + You can provide an optional replacer method. It will be passed the + key and value of each member, with this bound to the containing + object. The value that is returned from your method will be + serialized. If your method returns undefined, then the member will + be excluded from the serialization. + + If the replacer parameter is an array of strings, then it will be + used to select the members to be serialized. It filters the results + such that only members with keys listed in the replacer array are + stringified. + + Values that do not have JSON representations, such as undefined or + functions, will not be serialized. Such values in objects will be + dropped; in arrays they will be replaced with null. You can use + a replacer function to replace those with JSON values. + JSON.stringify(undefined) returns undefined. + + The optional space parameter produces a stringification of the + value that is filled with line breaks and indentation to make it + easier to read. + + If the space parameter is a non-empty string, then that string will + be used for indentation. If the space parameter is a number, then + the indentation will be that many spaces. + + Example: + + text = JSON.stringify(['e', {pluribus: 'unum'}]); + // text is '["e",{"pluribus":"unum"}]' + + + text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); + // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' + + text = JSON.stringify([new Date()], function (key, value) { + return this[key] instanceof Date ? + 'Date(' + this[key] + ')' : value; + }); + // text is '["Date(---current time---)"]' + + + JSON.parse(text, reviver) + This method parses a JSON text to produce an object or array. + It can throw a SyntaxError exception. + + The optional reviver parameter is a function that can filter and + transform the results. It receives each of the keys and values, + and its return value is used instead of the original value. + If it returns what it received, then the structure is not modified. + If it returns undefined then the member is deleted. + + Example: + + // Parse the text. Values that look like ISO date strings will + // be converted to Date objects. + + myData = JSON.parse(text, function (key, value) { + var a; + if (typeof value === 'string') { + a = +/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); + if (a) { + return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], + +a[5], +a[6])); + } + } + return value; + }); + + myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { + var d; + if (typeof value === 'string' && + value.slice(0, 5) === 'Date(' && + value.slice(-1) === ')') { + d = new Date(value.slice(5, -1)); + if (d) { + return d; + } + } + return value; + }); + + + This is a reference implementation. You are free to copy, modify, or + redistribute. +*/ + +/*jslint evil: true, strict: false */ + +/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, + call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, + getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, + lastIndex, length, parse, prototype, push, replace, slice, stringify, + test, toJSON, toString, valueOf +*/ + + +// Create a JSON object only if one does not already exist. We create the +// methods in a closure to avoid creating global variables. + +if (!this.JSON) { + this.JSON = {}; +} + +(function () { + + function f(n) { + // Format integers to have at least two digits. + return n < 10 ? '0' + n : n; + } + + if (typeof Date.prototype.toJSON !== 'function') { + + Date.prototype.toJSON = function (key) { + + return isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { // table of character substitutions + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + + + function quote(string) { + +// If the string contains no control characters, no quote characters, and no +// backslash characters, then we can safely slap some quotes around it. +// Otherwise we must also replace the offending characters with safe escape +// sequences. + + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + + + function str(key, holder) { + +// Produce a string from holder[key]. + + var i, // The loop counter. + k, // The member key. + v, // The member value. + length, + mind = gap, + partial, + value = holder[key]; + +// If the value has a toJSON method, call it to obtain a replacement value. + + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + +// If we were called with a replacer function, then call the replacer to +// obtain a replacement value. + + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + +// What happens next depends on the value's type. + + switch (typeof value) { + case 'string': + return quote(value); + + case 'number': + +// JSON numbers must be finite. Encode non-finite numbers as null. + + return isFinite(value) ? String(value) : 'null'; + + case 'boolean': + case 'null': + +// If the value is a boolean or null, convert it to a string. Note: +// typeof null does not produce 'null'. The case is included here in +// the remote chance that this gets fixed someday. + + return String(value); + +// If the type is 'object', we might be dealing with an object or an array or +// null. + + case 'object': + +// Due to a specification blunder in ECMAScript, typeof null is 'object', +// so watch out for that case. + + if (!value) { + return 'null'; + } + +// Make an array to hold the partial results of stringifying this object value. + + gap += indent; + partial = []; + +// Is the value an array? + + if (Object.prototype.toString.apply(value) === '[object Array]') { + +// The value is an array. Stringify every element. Use null as a placeholder +// for non-JSON values. + + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + +// Join all of the elements together, separated with commas, and wrap them in +// brackets. + + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + +// If the replacer is an array, use it to select the members to be stringified. + + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + +// Otherwise, iterate through all of the keys in the object. + + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + +// Join all of the member texts together, separated with commas, +// and wrap them in braces. + + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + +// If the JSON object does not yet have a stringify method, give it one. + + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + +// The stringify method takes a value and an optional replacer, and an optional +// space parameter, and returns a JSON text. The replacer can be a function +// that can replace values, or an array of strings that will select the keys. +// A default replacer method can be provided. Use of the space parameter can +// produce text that is more easily readable. + + var i; + gap = ''; + indent = ''; + +// If the space parameter is a number, make an indent string containing that +// many spaces. + + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + +// If the space parameter is a string, it will be used as the indent string. + + } else if (typeof space === 'string') { + indent = space; + } + +// If there is a replacer, it must be a function or an array. +// Otherwise, throw an error. + + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + +// Make a fake root object containing our value under the key of ''. +// Return the result of stringifying the value. + + return str('', {'': value}); + }; + } + + +// If the JSON object does not yet have a parse method, give it one. + + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + +// The parse method takes a text and an optional reviver function, and returns +// a JavaScript value if the text is a valid JSON text. + + var j; + + function walk(holder, key) { + +// The walk method is used to recursively walk the resulting structure so +// that modifications can be made. + + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + + +// Parsing happens in four stages. In the first stage, we replace certain +// Unicode characters with escape sequences. JavaScript handles many characters +// incorrectly, either silently deleting them, or treating them as line endings. + + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + +// In the second stage, we run the text against regular expressions that look +// for non-JSON patterns. We are especially concerned with '()' and 'new' +// because they can cause invocation, and '=' because it can cause mutation. +// But just to be safe, we want to reject all unexpected forms. + +// We split the second stage into 4 regexp operations in order to work around +// crippling inefficiencies in IE's and Safari's regexp engines. First we +// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we +// replace all simple value tokens with ']' characters. Third, we delete all +// open brackets that follow a colon or comma or that begin the text. Finally, +// we look to see that the remaining characters are only whitespace or ']' or +// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. + + if (/^[\],:{}\s]*$/. +test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). +replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). +replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + +// In the third stage we use the eval function to compile the text into a +// JavaScript structure. The '{' operator is subject to a syntactic ambiguity +// in JavaScript: it can begin a block or an object literal. We wrap the text +// in parens to eliminate the ambiguity. + + j = eval('(' + text + ')'); + +// In the optional fourth stage, we recursively walk the new structure, passing +// each name/value pair to a reviver function for possible transformation. + + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + +// If the text is not JSON parseable, then a SyntaxError is thrown. + + throw new SyntaxError('JSON.parse'); + }; + } +}()); diff --git a/chrome/test/data/third_party/kraken/hosted/kraken-1.1/driver.html b/chrome/test/data/third_party/kraken/hosted/kraken-1.1/driver.html new file mode 100644 index 0000000..bfb2c94 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/kraken-1.1/driver.html @@ -0,0 +1,144 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark (kraken-1.1 test suite - In Progress...)</title> +<link rel="stylesheet" href="../kraken.css"> +</head> + +<body onload="start()"> +<div id="content"> +<h2>Kraken JavaScript Benchmark <small>(In Progress...)</small></h2> +<div id="results"> + +<h3>Content Version: kraken-1.1</h3> + +<script src="test-prefix.js"></script> +<script src="test-contents.js"></script> +<script> +var testIndex = -1; +var currentRepeat = -1; +var repeatCount = 10; + +var currentSquare = 1; + +var output = []; +output.length = repeatCount; +for (var i = 0; i < output.length; i++) { + output[i] = {}; +} + +function initSquares() { + var squaresDiv = document.getElementById("squares"); + var id = 0; + for (var i = 0; i < repeatCount; i++) { + for (var j = 0; j <= tests.length; j++) { + id++; + squaresDiv.innerHTML += "<span class='incomplete-square' id='square-" + id + "'>\u25A0</span>"; + } + squaresDiv.innerHTML += "<br>"; + } +} + +function completeSquare() { + var square = document.getElementById("square-" + currentSquare); + if (square) { + square.className = "complete-square"; + currentSquare++; + } +} + +function start() +{ + initSquares(); + window.setTimeout(reallyNext, 500); +} + +function next() +{ + window.setTimeout(reallyNext, 10); +} + +function reallyNext() +{ + completeSquare(); + document.getElementById("frameparent").innerHTML = ""; + document.getElementById("frameparent").innerHTML = "<iframe id='testframe'>"; + var testFrame = document.getElementById("testframe"); + testIndex++; + if (testIndex < tests.length) { + testFrame.contentDocument.open(); + testFrame.contentDocument.write(testContents[testIndex]); + testFrame.contentDocument.close; + } else if (++currentRepeat < repeatCount) { + testIndex = 0; + testFrame.contentDocument.open(); + testFrame.contentDocument.write(testContents[testIndex]); + testFrame.contentDocument.close; + } else { + finish(); + } +} + +function recordResult(time) +{ + if (currentRepeat >= 0) // negative repeats are warmups + output[currentRepeat][tests[testIndex]] = time; + next(); +} + +function finish() +{ + var outputString = "{"; + outputString += '"v": "kraken-1.1", '; + for (var test in output[0]) { + outputString += '"' + test + '":['; + for (var i = 0; i < output.length; i++) { + outputString += output[i][test] + ","; + } + outputString = outputString.substring(0, outputString.length - 1); + outputString += "],"; + } + outputString = outputString.substring(0, outputString.length - 1); + outputString += "}"; + + location = "results.html?" + encodeURI(outputString); +} + +</script> + +<div id="frameparent"> +</div> +<div id="squares"></div> +</div> +</div> +</body> +</html> diff --git a/chrome/test/data/third_party/kraken/hosted/kraken-1.1/results.html b/chrome/test/data/third_party/kraken/hosted/kraken-1.1/results.html new file mode 100644 index 0000000..4a5cb32 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/kraken-1.1/results.html @@ -0,0 +1,126 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark Results (kraken-1.1 test suite)</title> +<link rel="stylesheet" href="../kraken.css"> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark Results</h2> +<div id="results"> +<h3>Content Version: kraken-1.1</h3> + +<p><a href="driver.html">Run Again</a></p> + +<p><input style="width: 100%;" id="selfUrl" type="text" readonly="readonly"><br> +<small>(You can bookmark this results URL for later comparison.)</small></p> + +<form onsubmit="event.preventDefault(); compare(other.value);">To compare to another run, paste a saved result URL in the text field below and press enter:<br> +<input style="width: 100%;" name="other" type="text"><br> +</form> + +<pre id="console"></pre> +</div> +</div> +<script src="../json2.js"></script> +<script> + +//XXX generate this automatically +var explanations = { + "astar":"../explanations/astar.html", + "gaussian-blur":"../explanations/gaussian-blur.html", + "darkroom":"../explanations/darkroom.html", + "desaturate":"../explanations/desaturate.html", + "beat-detection":"../explanations/beat-detection.html", + "dft":"../explanations/dft.html", + "fft":"../explanations/fft.html", + "oscillator":"../explanations/oscillator.html", + "parse-financial":"../explanations/parse-financial.html", + "stringify-tinderbox":"../explanations/stringify-tinderbox.html" + +} + +var selfUrlInput = document.getElementById("selfUrl"); +selfUrlInput.value = location; + +var outputJSON = JSON.parse(decodeURI(location.search.substring(1))); +var version = outputJSON["v"]; +delete outputJSON["v"]; +var output = pivot(outputJSON); + +function pivot(input) { + var output = []; + for (var test in input) { + for (var i = 0; i < input[test].length; i++) { + if (!output[i]) + output[i] = {}; + output[i][test] = input[test][i]; + } + } + return output; +} + +function print(str) { + var console = document.getElementById("console"); + console.innerHTML += str; + console.innerHTML += "<br>"; +} +</script> + +<script src="test-prefix.js"></script> +<script src="../analyze-results.js"></script> +<script src="../compare-results.js"></script> + +<script> +var output2 = output; +var version2 = version; + +function compare(other) +{ + document.getElementById("console").innerHTML = ""; + + var output1JSON = JSON.parse(decodeURI(other.split("?")[1])); + var version1 = output1JSON["v"]; + delete output1JSON["v"]; + if (version1 != version2) { + print("ERROR: cannot compare version " + version1 + ' with version ' + version2); + } else { + var output1 = pivot(output1JSON); + sunspiderCompareResults(output1, output2); + } +} +</script> + + +</body> +</html> diff --git a/chrome/test/data/third_party/kraken/hosted/kraken-1.1/test-prefix.js b/chrome/test/data/third_party/kraken/hosted/kraken-1.1/test-prefix.js new file mode 100644 index 0000000..ef48529 --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/kraken-1.1/test-prefix.js @@ -0,0 +1,2 @@ +var tests = [ "ai-astar", "audio-beat-detection", "audio-dft", "audio-fft", "audio-oscillator", "imaging-gaussian-blur", "imaging-darkroom", "imaging-desaturate", "json-parse-financial", "json-stringify-tinderbox", "stanford-crypto-aes", "stanford-crypto-ccm", "stanford-crypto-pbkdf2", "stanford-crypto-sha256-iterative" ]; +var categories = [ "ai", "audio", "imaging", "json", "stanford" ]; diff --git a/chrome/test/data/third_party/kraken/hosted/kraken.css b/chrome/test/data/third_party/kraken/hosted/kraken.css new file mode 100644 index 0000000..52d8e3b --- /dev/null +++ b/chrome/test/data/third_party/kraken/hosted/kraken.css @@ -0,0 +1,54 @@ + +body { + font-family: Helvetica, Arial, sans-serif; + margin: 20px; + background-color: #ffffff; + color: #1B0636 +} + +h2 { + background-color: #fff; + padding: 30px 20px 20px 20px; + border-bottom: 3px solid white; + color: black; + zoom: 1.0 /* I CAN HAS LAYOUT? (ie hack) */ +} + +#content { + width: 1000px; + margin-left: auto; + margin-right: auto; +} + +#results { + padding: 0 20px 20px 20px; +} + + +:link { color: #1363A1 } +:visited { color: #1363A1 } + +#testframe { float: left; + margin-top: 20px; + width: 500px; + height: 200px; + background-color: white; + border: 1px solid #1B0636;} + +#squares { + float: left; + margin-left: 10px; + margin-top: 20px; +} + +span.incomplete-square { + color: #cccccc; +} + +span.complete-square { + color: #e7c0c0; +} + +small.fine { + color: #cccccc; +}
\ No newline at end of file diff --git a/chrome/test/data/third_party/kraken/make-hosted.py b/chrome/test/data/third_party/kraken/make-hosted.py new file mode 100755 index 0000000..370fbce --- /dev/null +++ b/chrome/test/data/third_party/kraken/make-hosted.py @@ -0,0 +1,106 @@ +#!/usr/bin/python + +# Copyright (C) 2007 Apple Inc. All rights reserved. +# Copyright (C) 2010 Mozilla Foundation +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +from __future__ import with_statement +import os +import shutil + +suites = ["kraken-1.1", "kraken-1.0", "sunspider-0.9.1"] + +def readTemplate(path): + with open(path, 'r') as f: + return f.read() + +template = readTemplate("resources/TEMPLATE.html") +driverTemplate = readTemplate("resources/driver-TEMPLATE.html") +resultsTemplate = readTemplate("resources/results-TEMPLATE.html") + +def testListForSuite(suite): + tests = [] + with open("./tests/%s/LIST" % suite, "r") as f: + for line in f.readlines(): + tests.append(line.strip()) + return tests + +def categoriesFromTests(tests): + categories = set() + for test in tests: + categories.add(test[:test.find("-")]) + categories = list(categories) + categories.sort() + return categories + +def escapeTestContent(test,suite): + with open("tests/" + suite + "/" + test + ".js") as f: + script = f.read() + output = template + output = output.replace("@NAME@", test) + output = output.replace("@SCRIPT@", script) + dataPath = "tests/" + suite + "/" + test + "-data.js" + if (os.path.exists(dataPath)): + with open(dataPath) as f: + datascript = f.read() + output = output.replace("@DATASCRIPT@", datascript) + datascript = None + output = output.replace("\\", "\\\\") + output = output.replace('"', '\\"') + output = output.replace("\n", "\\n\\\n") + return output + +def testContentsFromTests(suite, tests): + testContents = []; + for test in tests: + testContents.append(escapeTestContent(test, suite)) + return testContents + +def writeTemplate(suite, template, fileName): + output = template.replace("@SUITE@", suite) + with open("hosted/" + suite + "/" + fileName, "w") as f: + f.write(output) + +for suite in suites: + suiteDir = os.path.join("hosted", suite) + if not os.path.exists(suiteDir): + os.mkdir(suiteDir) + tests = testListForSuite(suite) + categories = categoriesFromTests(tests) + testContents = testContentsFromTests(suite, tests) + writeTemplate(suite, driverTemplate, "driver.html") + writeTemplate(suite, resultsTemplate, "results.html") + + prefix = "var tests = [ " + ", ".join(['"%s"' % s for s in tests]) + " ];\n" + prefix += "var categories = [ " + ", ".join(['"%s"' % s for s in categories]) + " ];\n" + with open("hosted/" + suite + "/test-prefix.js", "w") as f: + f.write(prefix) + + contents = "var testContents = [ " + ", ".join(['"%s"' % s for s in testContents]) + " ];\n" + with open("hosted/" + suite + "/test-contents.js", "w") as f: + f.write(contents) + +shutil.copyfile("resources/analyze-results.js", "hosted/analyze-results.js") +shutil.copyfile("resources/compare-results.js", "hosted/compare-results.js") + +print("You're awesome!") diff --git a/chrome/test/data/third_party/kraken/resources/TEMPLATE.html b/chrome/test/data/third_party/kraken/resources/TEMPLATE.html new file mode 100644 index 0000000..aee8730 --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/TEMPLATE.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>SunSpider @NAME@</title> +<link rel="stylesheet" href="../kraken.css"> +</head> + +<body> +<h3>@NAME@</h3> +<div id="console"> +</div> +<script> +function record(time) { + document.getElementById("console").innerHTML = time + "ms"; + if (window.parent) { + parent.recordResult(time); + } +} + +@DATASCRIPT@ + +var _sunSpiderStartDate = new Date(); + +@SCRIPT@ + +var _sunSpiderInterval = new Date() - _sunSpiderStartDate; + +record(_sunSpiderInterval); +</script> + + +</body> +</html> diff --git a/chrome/test/data/third_party/kraken/resources/analyze-results.js b/chrome/test/data/third_party/kraken/resources/analyze-results.js new file mode 100644 index 0000000..86a6ed6 --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/analyze-results.js @@ -0,0 +1,275 @@ +/* + * Copyright (C) 2007 Apple Inc. All rights reserved. + * Copyright (C) 2010 Mozilla Foundation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var count = output.length; + +var itemTotals = {}; +itemTotals.length = count; + +var total = 0; +var categoryTotals = {}; +var testTotalsByCategory = {}; + +var mean = 0; +var categoryMeans = {}; +var testMeansByCategory = {}; + +var stdDev = 0; +var categoryStdDevs = {}; +var testStdDevsByCategory = {}; + +var stdErr = 0; +var categoryStdErrs = {}; +var testStdErrsByCategory = {}; + +function initialize() +{ + itemTotals = {total: []}; + + for (var i = 0; i < categories.length; i++) { + var category = categories[i]; + itemTotals[category] = []; + categoryTotals[category] = 0; + testTotalsByCategory[category] = {}; + categoryMeans[category] = 0; + testMeansByCategory[category] = {}; + categoryStdDevs[category] = 0; + testStdDevsByCategory[category] = {}; + categoryStdErrs[category] = 0; + testStdErrsByCategory[category] = {}; + } + + for (var i = 0; i < tests.length; i++) { + var test = tests[i]; + itemTotals[test] = []; + var category = test.replace(/-.*/, ""); + testTotalsByCategory[category][test] = 0; + testMeansByCategory[category][test] = 0; + testStdDevsByCategory[category][test] = 0; + testStdErrsByCategory[category][test] = 0; + } + + for (var i = 0; i < count; i++) { + itemTotals["total"][i] = 0; + for (var category in categoryTotals) { + itemTotals[category][i] = 0; + for (var test in testTotalsByCategory[category]) { + itemTotals[test][i] = 0; + } + } + } +} + +function computeItemTotals() +{ + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + itemTotals["total"][i] += time; + itemTotals[category][i] += time; + itemTotals[test][i] += time; + } + } +} + +function computeTotals() +{ + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + total += time; + categoryTotals[category] += time; + testTotalsByCategory[category][test] += time; + } + } +} + +function computeMeans() +{ + mean = total / count; + for (var category in categoryTotals) { + categoryMeans[category] = categoryTotals[category] / count; + for (var test in testTotalsByCategory[category]) { + testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count; + } + } +} + +function standardDeviation(mean, items) +{ + var deltaSquaredSum = 0; + for (var i = 0; i < items.length; i++) { + var delta = items[i] - mean; + deltaSquaredSum += delta * delta; + } + variance = deltaSquaredSum / (items.length - 1); + return Math.sqrt(variance); +} + +function computeStdDevs() +{ + stdDev = standardDeviation(mean, itemTotals["total"]); + for (var category in categoryStdDevs) { + categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]); + } + for (var category in categoryStdDevs) { + for (var test in testStdDevsByCategory[category]) { + testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]); + } + } +} + +function computeStdErrors() +{ + var sqrtCount = Math.sqrt(count); + + stdErr = stdDev / sqrtCount; + for (var category in categoryStdErrs) { + categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount; + } + for (var category in categoryStdDevs) { + for (var test in testStdErrsByCategory[category]) { + testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount; + } + } + +} + +var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96]; +var tMax = tDistribution.length; +var tLimit = 1.96; + +function tDist(n) +{ + if (n > tMax) + return tLimit; + return tDistribution[n]; +} + + +function formatResult(meanWidth, mean, stdErr, n) +{ + var meanString = mean.toFixed(1).toString(); + while (meanString.length < meanWidth) { + meanString = " " + meanString; + } + + if (n == 1) + return meanString + "ms"; + + return meanString + "ms +/- " + ((tDist(n) * stdErr / mean) * 100).toFixed(1) + "%"; +} + +function computeLabelWidth() +{ + var width = "Total".length; + for (var category in categoryMeans) { + if (category.length + 2 > width) + width = category.length + 2; + } + for (var i = 0; i < tests.length; i++) { + var shortName = tests[i].replace(/^[^-]*-/, ""); + if (shortName.length + 4 > width) + width = shortName.length + 4; + } + + return width; +} + +function computeMeanWidth() +{ + var width = mean.toFixed(1).toString().length; + for (var category in categoryMeans) { + var candidate = categoryMeans[category].toFixed(2).toString().length; + if (candidate > width) + width = candidate; + for (var test in testMeansByCategory[category]) { + var candidate = testMeansByCategory[category][test].toFixed(2).toString().length; + if (candidate > width) + width = candidate; + } + } + + return width; +} + +if (!this['explanations']) + var explanations = {}; + +function resultLine(labelWidth, indent, label, meanWidth, mean, stdErr) +{ + var result = ""; + for (i = 0; i < indent; i++) { + result += " "; + } + + if (label in explanations) + result += "<a href='" + explanations[label] + "'>" + label + "</a>: "; + else + result += label + ": "; + + for (i = 0; i < (labelWidth - (label.length + indent)); i++) { + result += " "; + } + + return result + formatResult(meanWidth, mean, stdErr, count); +} + +function printOutput() +{ + var labelWidth = computeLabelWidth(); + var meanWidth = computeMeanWidth(); + + print("\n"); + print("==============================================="); + if (count == 1) + print("RESULTS"); + else + print("RESULTS (means and 95% confidence intervals)"); + print("-----------------------------------------------"); + print(resultLine(labelWidth, 0, "Total", meanWidth, mean, stdErr)); + print("-----------------------------------------------"); + for (var category in categoryMeans) { + print(""); + print(resultLine(labelWidth, 2, category, meanWidth, categoryMeans[category], categoryStdErrs[category])); + for (var test in testMeansByCategory[category]) { + var shortName = test.replace(/^[^-]*-/, ""); + print(resultLine(labelWidth, 4, shortName, meanWidth, testMeansByCategory[category][test], testStdErrsByCategory[category][test])); + } + } +} + +initialize(); +computeItemTotals(); +computeTotals(); +computeMeans(); +computeStdDevs(); +computeStdErrors(); +printOutput(); diff --git a/chrome/test/data/third_party/kraken/resources/compare-results.js b/chrome/test/data/third_party/kraken/resources/compare-results.js new file mode 100644 index 0000000..583173e --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/compare-results.js @@ -0,0 +1,381 @@ +/* + * Copyright (C) 2007 Apple Inc. All rights reserved. + * Copyright (C) 2010 Mozilla Foundation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +function sunspiderCompareResults(output1, output2) +{ + var count1 = output1.length; + var count2 = output2.length; + + var itemTotals1 = {}; + itemTotals1.length = count1; + + var total1 = 0; + var categoryTotals1 = {}; + var testTotalsByCategory1 = {}; + + var mean1 = 0; + var categoryMeans1 = {}; + var testMeansByCategory1 = {}; + + var stdDev1 = 0; + var categoryStdDevs1 = {}; + var testStdDevsByCategory1 = {}; + + var stdErr1 = 0; + var categoryStdErrs1 = {}; + var testStdErrsByCategory1 = {}; + + var itemTotals2 = {}; + itemTotals2.length = count2; + + var total2 = 0; + var categoryTotals2 = {}; + var testTotalsByCategory2 = {}; + + var mean2 = 0; + var categoryMeans2 = {}; + var testMeansByCategory2 = {}; + + var stdDev2 = 0; + var categoryStdDevs2 = {}; + var testStdDevsByCategory2 = {}; + + var stdErr2 = 0; + var categoryStdErrs2 = {}; + var testStdErrsByCategory2 = {}; + + function initialize() + { + itemTotals1 = {total: []}; + + for (var i = 0; i < categories.length; i++) { + var category = categories[i]; + itemTotals1[category] = []; + categoryTotals1[category] = 0; + testTotalsByCategory1[category] = {}; + categoryMeans1[category] = 0; + testMeansByCategory1[category] = {}; + categoryStdDevs1[category] = 0; + testStdDevsByCategory1[category] = {}; + categoryStdErrs1[category] = 0; + testStdErrsByCategory1[category] = {}; + } + + for (var i = 0; i < tests.length; i++) { + var test = tests[i]; + itemTotals1[test] = []; + var category = test.replace(/-.*/, ""); + testTotalsByCategory1[category][test] = 0; + testMeansByCategory1[category][test] = 0; + testStdDevsByCategory1[category][test] = 0; + testStdErrsByCategory1[category][test] = 0; + } + + for (var i = 0; i < count1; i++) { + itemTotals1["total"][i] = 0; + for (var category in categoryTotals1) { + itemTotals1[category][i] = 0; + for (var test in testTotalsByCategory1[category]) { + itemTotals1[test][i] = 0; + } + } + } + + itemTotals2 = {total: []}; + + for (var i = 0; i < categories.length; i++) { + var category = categories[i]; + itemTotals2[category] = []; + categoryTotals2[category] = 0; + testTotalsByCategory2[category] = {}; + categoryMeans2[category] = 0; + testMeansByCategory2[category] = {}; + categoryStdDevs2[category] = 0; + testStdDevsByCategory2[category] = {}; + categoryStdErrs2[category] = 0; + testStdErrsByCategory2[category] = {}; + } + + for (var i = 0; i < tests.length; i++) { + var test = tests[i]; + itemTotals2[test] = []; + var category = test.replace(/-.*/, ""); + testTotalsByCategory2[category][test] = 0; + testMeansByCategory2[category][test] = 0; + testStdDevsByCategory2[category][test] = 0; + testStdErrsByCategory2[category][test] = 0; + } + + for (var i = 0; i < count2; i++) { + itemTotals2["total"][i] = 0; + for (var category in categoryTotals2) { + itemTotals2[category][i] = 0; + for (var test in testTotalsByCategory2[category]) { + itemTotals2[test][i] = 0; + } + } + } + + } + + function computeItemTotals(output, itemTotals) + { + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + itemTotals["total"][i] += time; + itemTotals[category][i] += time; + itemTotals[test][i] += time; + } + } + } + + function computeTotals(output, categoryTotals, testTotalsByCategory) + { + var total = 0; + + for (var i = 0; i < output.length; i++) { + var result = output[i]; + for (var test in result) { + var time = result[test]; + var category = test.replace(/-.*/, ""); + total += time; + categoryTotals[category] += time; + testTotalsByCategory[category][test] += time; + } + } + + return total; + } + + function computeMeans(count, total, categoryTotals, categoryMeans, testTotalsByCategory, testMeansByCategory) + { + var mean = total / count; + for (var category in categoryTotals) { + categoryMeans[category] = categoryTotals[category] / count; + for (var test in testTotalsByCategory[category]) { + testMeansByCategory[category][test] = testTotalsByCategory[category][test] / count; + } + } + return mean; + } + + function standardDeviation(mean, items) + { + var deltaSquaredSum = 0; + for (var i = 0; i < items.length; i++) { + var delta = items[i] - mean; + deltaSquaredSum += delta * delta; + } + variance = deltaSquaredSum / (items.length - 1); + return Math.sqrt(variance); + } + + function computeStdDevs(mean, itemTotals, categoryStdDevs, categoryMeans, testStdDevsByCategory, testMeansByCategory) + { + var stdDev = standardDeviation(mean, itemTotals["total"]); + for (var category in categoryStdDevs) { + categoryStdDevs[category] = standardDeviation(categoryMeans[category], itemTotals[category]); + } + for (var category in categoryStdDevs) { + for (var test in testStdDevsByCategory[category]) { + testStdDevsByCategory[category][test] = standardDeviation(testMeansByCategory[category][test], itemTotals[test]); + } + } + return stdDev; + } + + function computeStdErrors(count, stdDev, categoryStdErrs, categoryStdDevs, testStdErrsByCategory, testStdDevsByCategory) + { + var sqrtCount = Math.sqrt(count); + + var stdErr = stdDev / sqrtCount; + for (var category in categoryStdErrs) { + categoryStdErrs[category] = categoryStdDevs[category] / sqrtCount; + } + for (var category in categoryStdDevs) { + for (var test in testStdErrsByCategory[category]) { + testStdErrsByCategory[category][test] = testStdDevsByCategory[category][test] / sqrtCount; + } + } + + return stdErr; + } + + var tDistribution = [NaN, NaN, 12.71, 4.30, 3.18, 2.78, 2.57, 2.45, 2.36, 2.31, 2.26, 2.23, 2.20, 2.18, 2.16, 2.14, 2.13, 2.12, 2.11, 2.10, 2.09, 2.09, 2.08, 2.07, 2.07, 2.06, 2.06, 2.06, 2.05, 2.05, 2.05, 2.04, 2.04, 2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.02, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.01, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.99, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.98, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.97, 1.96]; + var tMax = tDistribution.length; + var tLimit = 1.96; + + function tDist(n) + { + if (n > tMax) + return tLimit; + return tDistribution[n]; + } + + + function formatMean(meanWidth, mean, stdErr, count) + { + var meanString = mean.toFixed(1).toString(); + while (meanString.length < meanWidth) { + meanString = " " + meanString; + } + + var error = "+/- " + ((tDist(count) * stdErr / mean) * 100).toFixed(1) + "% "; + + return meanString + "ms " + error; + } + + function computeLabelWidth() + { + var width = "Total".length; + for (var category in categoryMeans1) { + if (category.length + 2 > width) + width = category.length + 2; + } + for (var i = 0; i < tests.length; i++) { + var shortName = tests[i].replace(/^[^-]*-/, ""); + if (shortName.length + 4 > width) + width = shortName.length + 4; + } + + return width; + } + + function computeMeanWidth(mean, categoryMeans, testMeansByCategory) + { + var width = mean.toFixed(1).toString().length; + for (var category in categoryMeans) { + var candidate = categoryMeans[category].toFixed(1).toString().length; + if (candidate > width) + width = candidate; + for (var test in testMeansByCategory[category]) { + var candidate = testMeansByCategory[category][test].toFixed(1).toString().length; + if (candidate > width) + width = candidate; + } + } + + return width; + } + + function pad(str, n) + { + while (str.length < n) { + str += " "; + } + return str; + } + + function resultLine(labelWidth, indent, label, meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2) + { + result = pad("", indent); + result += label + ": "; + result = pad(result, labelWidth + 2); + + var t = (mean1 - mean2) / (Math.sqrt((stdErr1 * stdErr1) + (stdErr2 * stdErr2))); + var df = count1 + count2 - 2; + + var statisticallySignificant = (Math.abs(t) > tDist(df+1)); + var diff = mean2 - mean1; + var percentage = 100 * diff / mean1; + var isFaster = diff < 0; + var probablySame = (percentage < 0.1) && !statisticallySignificant; + var ratio = isFaster ? (mean1 / mean2) : (mean2 / mean1); + var fixedRatio = (ratio < 1.2) ? ratio.toFixed(3).toString() : ((ratio < 10) ? ratio.toFixed(2).toString() : ratio.toFixed(1).toString()); + var formattedRatio = isFaster ? fixedRatio + "x as fast" : "*" + fixedRatio + "x as slow*"; + + var diffSummary; + var diffDetail; + + if (probablySame) { + diffSummary = "-"; + diffDetail = ""; + } else if (!statisticallySignificant) { + diffSummary = "??"; + diffDetail = " might be " + formattedRatio; + } else { + diffSummary = formattedRatio; + diffDetail = " significant"; + } + + return result + pad(diffSummary, 18) + formatMean(meanWidth1, mean1, stdErr1, count1) + " " + formatMean(meanWidth2, mean2, stdErr2, count2) + diffDetail; + } + + function printOutput() + { + var labelWidth = computeLabelWidth(); + var meanWidth1 = computeMeanWidth(mean1, categoryMeans1, testMeansByCategory1); + var meanWidth2 = computeMeanWidth(mean2, categoryMeans2, testMeansByCategory2); + + print("\n"); + var header = "TEST"; + while (header.length < labelWidth) + header += " "; + header += " COMPARISON FROM TO DETAILS"; + print(header); + print(""); + print("===================================================================================="); + print(""); + print(resultLine(labelWidth, 0, "** TOTAL **", meanWidth1, mean1, stdErr1, meanWidth2, mean2, stdErr2)); + print(""); + print("===================================================================================="); + + for (var category in categoryMeans1) { + print(""); + print(resultLine(labelWidth, 2, category, + meanWidth1, categoryMeans1[category], categoryStdErrs1[category], + meanWidth2, categoryMeans2[category], categoryStdErrs2[category])); + for (var test in testMeansByCategory1[category]) { + var shortName = test.replace(/^[^-]*-/, ""); + print(resultLine(labelWidth, 4, shortName, + meanWidth1, testMeansByCategory1[category][test], testStdErrsByCategory1[category][test], + meanWidth2, testMeansByCategory2[category][test], testStdErrsByCategory2[category][test])); + } + } + } + + initialize(); + + computeItemTotals(output1, itemTotals1); + computeItemTotals(output2, itemTotals2); + + total1 = computeTotals(output1, categoryTotals1, testTotalsByCategory1); + total2 = computeTotals(output2, categoryTotals2, testTotalsByCategory2); + + mean1 = computeMeans(count1, total1, categoryTotals1, categoryMeans1, testTotalsByCategory1, testMeansByCategory1); + mean2 = computeMeans(count2, total2, categoryTotals2, categoryMeans2, testTotalsByCategory2, testMeansByCategory2); + + stdDev1 = computeStdDevs(mean1, itemTotals1, categoryStdDevs1, categoryMeans1, testStdDevsByCategory1, testMeansByCategory1); + stdDev2 = computeStdDevs(mean2, itemTotals2, categoryStdDevs2, categoryMeans2, testStdDevsByCategory2, testMeansByCategory2); + + stdErr1 = computeStdErrors(count1, stdDev1, categoryStdErrs1, categoryStdDevs1, testStdErrsByCategory1, testStdDevsByCategory1); + stdErr2 = computeStdErrors(count2, stdDev2, categoryStdErrs2, categoryStdDevs2, testStdErrsByCategory2, testStdDevsByCategory2); + + printOutput(); +} diff --git a/chrome/test/data/third_party/kraken/resources/driver-TEMPLATE.html b/chrome/test/data/third_party/kraken/resources/driver-TEMPLATE.html new file mode 100644 index 0000000..f4522b7 --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/driver-TEMPLATE.html @@ -0,0 +1,144 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark (@SUITE@ test suite - In Progress...)</title> +<link rel="stylesheet" href="../kraken.css"> +</head> + +<body onload="start()"> +<div id="content"> +<h2>Kraken JavaScript Benchmark <small>(In Progress...)</small></h2> +<div id="results"> + +<h3>Content Version: @SUITE@</h3> + +<script src="test-prefix.js"></script> +<script src="test-contents.js"></script> +<script> +var testIndex = -1; +var currentRepeat = -1; +var repeatCount = 10; + +var currentSquare = 1; + +var output = []; +output.length = repeatCount; +for (var i = 0; i < output.length; i++) { + output[i] = {}; +} + +function initSquares() { + var squaresDiv = document.getElementById("squares"); + var id = 0; + for (var i = 0; i < repeatCount; i++) { + for (var j = 0; j <= tests.length; j++) { + id++; + squaresDiv.innerHTML += "<span class='incomplete-square' id='square-" + id + "'>\u25A0</span>"; + } + squaresDiv.innerHTML += "<br>"; + } +} + +function completeSquare() { + var square = document.getElementById("square-" + currentSquare); + if (square) { + square.className = "complete-square"; + currentSquare++; + } +} + +function start() +{ + initSquares(); + window.setTimeout(reallyNext, 500); +} + +function next() +{ + window.setTimeout(reallyNext, 10); +} + +function reallyNext() +{ + completeSquare(); + document.getElementById("frameparent").innerHTML = ""; + document.getElementById("frameparent").innerHTML = "<iframe id='testframe'>"; + var testFrame = document.getElementById("testframe"); + testIndex++; + if (testIndex < tests.length) { + testFrame.contentDocument.open(); + testFrame.contentDocument.write(testContents[testIndex]); + testFrame.contentDocument.close; + } else if (++currentRepeat < repeatCount) { + testIndex = 0; + testFrame.contentDocument.open(); + testFrame.contentDocument.write(testContents[testIndex]); + testFrame.contentDocument.close; + } else { + finish(); + } +} + +function recordResult(time) +{ + if (currentRepeat >= 0) // negative repeats are warmups + output[currentRepeat][tests[testIndex]] = time; + next(); +} + +function finish() +{ + var outputString = "{"; + outputString += '"v": "@SUITE@", '; + for (var test in output[0]) { + outputString += '"' + test + '":['; + for (var i = 0; i < output.length; i++) { + outputString += output[i][test] + ","; + } + outputString = outputString.substring(0, outputString.length - 1); + outputString += "],"; + } + outputString = outputString.substring(0, outputString.length - 1); + outputString += "}"; + + location = "results.html?" + encodeURI(outputString); +} + +</script> + +<div id="frameparent"> +</div> +<div id="squares"></div> +</div> +</div> +</body> +</html> diff --git a/chrome/test/data/third_party/kraken/resources/results-TEMPLATE.html b/chrome/test/data/third_party/kraken/resources/results-TEMPLATE.html new file mode 100644 index 0000000..75821e3 --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/results-TEMPLATE.html @@ -0,0 +1,126 @@ +<!DOCTYPE html> +<html> +<head> + +<meta charset=utf8> + +<!-- + Copyright (C) 2007 Apple Inc. All rights reserved. + Copyright (C) 2010 Mozilla Foundation + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--> + +<title>Kraken JavaScript Benchmark Results (@SUITE@ test suite)</title> +<link rel="stylesheet" href="../kraken.css"> +</head> + +<body> +<div id="content"> +<h2>Kraken JavaScript Benchmark Results</h2> +<div id="results"> +<h3>Content Version: @SUITE@</h3> + +<p><a href="driver.html">Run Again</a></p> + +<p><input style="width: 100%;" id="selfUrl" type="text" readonly="readonly"><br> +<small>(You can bookmark this results URL for later comparison.)</small></p> + +<form onsubmit="event.preventDefault(); compare(other.value);">To compare to another run, paste a saved result URL in the text field below and press enter:<br> +<input style="width: 100%;" name="other" type="text"><br> +</form> + +<pre id="console"></pre> +</div> +</div> +<script src="../json2.js"></script> +<script> + +//XXX generate this automatically +var explanations = { + "astar":"../explanations/astar.html", + "gaussian-blur":"../explanations/gaussian-blur.html", + "darkroom":"../explanations/darkroom.html", + "desaturate":"../explanations/desaturate.html", + "beat-detection":"../explanations/beat-detection.html", + "dft":"../explanations/dft.html", + "fft":"../explanations/fft.html", + "oscillator":"../explanations/oscillator.html", + "parse-financial":"../explanations/parse-financial.html", + "stringify-tinderbox":"../explanations/stringify-tinderbox.html" + +} + +var selfUrlInput = document.getElementById("selfUrl"); +selfUrlInput.value = location; + +var outputJSON = JSON.parse(decodeURI(location.search.substring(1))); +var version = outputJSON["v"]; +delete outputJSON["v"]; +var output = pivot(outputJSON); + +function pivot(input) { + var output = []; + for (var test in input) { + for (var i = 0; i < input[test].length; i++) { + if (!output[i]) + output[i] = {}; + output[i][test] = input[test][i]; + } + } + return output; +} + +function print(str) { + var console = document.getElementById("console"); + console.innerHTML += str; + console.innerHTML += "<br>"; +} +</script> + +<script src="test-prefix.js"></script> +<script src="../analyze-results.js"></script> +<script src="../compare-results.js"></script> + +<script> +var output2 = output; +var version2 = version; + +function compare(other) +{ + document.getElementById("console").innerHTML = ""; + + var output1JSON = JSON.parse(decodeURI(other.split("?")[1])); + var version1 = output1JSON["v"]; + delete output1JSON["v"]; + if (version1 != version2) { + print("ERROR: cannot compare version " + version1 + ' with version ' + version2); + } else { + var output1 = pivot(output1JSON); + sunspiderCompareResults(output1, output2); + } +} +</script> + + +</body> +</html> diff --git a/chrome/test/data/third_party/kraken/resources/sunspider-standalone-compare.js b/chrome/test/data/third_party/kraken/resources/sunspider-standalone-compare.js new file mode 100644 index 0000000..e82c155 --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/sunspider-standalone-compare.js @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2007 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +sunspiderCompareResults(output1, output2); diff --git a/chrome/test/data/third_party/kraken/resources/sunspider-standalone-driver.js b/chrome/test/data/third_party/kraken/resources/sunspider-standalone-driver.js new file mode 100644 index 0000000..627c33a --- /dev/null +++ b/chrome/test/data/third_party/kraken/resources/sunspider-standalone-driver.js @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2007 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var results = new Array(); + +var time = 0; +var times = []; +times.length = tests.length; + +for (var krakenCounter = 0; krakenCounter < tests.length; krakenCounter++) { + var testBase = "tests/" + suiteName + "/" + tests[krakenCounter]; + var testName = testBase + ".js"; + var testData = testBase + "-data.js"; + // load test data + load(testData); + var startTime = new Date; + load(testName); + times[krakenCounter] = new Date() - startTime; + gc(); +} + +function recordResults(tests, times) +{ + var output = "{\n"; + + for (j = 0; j < tests.length; j++) { + output += ' "' + tests[j] + '": ' + times[j] + ',\n'; + } + output = output.substring(0, output.length - 2) + "\n"; + + output += "}"; + print(output); +} + +recordResults(tests, times); |